zen-code 4.10.2 → 5.0.0

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 (128) hide show
  1. package/dist/app.js +149 -239
  2. package/dist/{chunk-vbb3m0vz.js → chunk-069q9hkz.js} +1 -1
  3. package/dist/chunk-06trk066.js +1 -0
  4. package/dist/chunk-0kfw8bwn.js +2 -0
  5. package/dist/chunk-0mq8786q.js +281 -0
  6. package/dist/{chunk-mmx0k2yq.js → chunk-0qz8rr2k.js} +1 -1
  7. package/dist/chunk-1d47g6nc.js +2 -0
  8. package/dist/{chunk-nqh1pptf.js → chunk-1gssqf6g.js} +1 -1
  9. package/dist/{chunk-s5cqejr6.js → chunk-1rcc9xzn.js} +1 -1
  10. package/dist/{chunk-tjvhqr94.js → chunk-2bjeg40f.js} +1 -1
  11. package/dist/chunk-2gd8vzrf.js +2 -0
  12. package/dist/{chunk-spx7nn8t.js → chunk-2gprcgep.js} +2 -2
  13. package/dist/chunk-3k3c686f.js +1 -0
  14. package/dist/chunk-43h0n2td.js +1 -0
  15. package/dist/{chunk-8f19qk9r.js → chunk-492hjs9k.js} +1 -1
  16. package/dist/{chunk-pe8mzxwn.js → chunk-4eaqmt3c.js} +11 -11
  17. package/dist/{chunk-y8qhrx11.js → chunk-4fs853nh.js} +1 -1
  18. package/dist/chunk-5fe27s34.js +2 -0
  19. package/dist/{chunk-4wnmk2tj.js → chunk-5hqvapp1.js} +3 -3
  20. package/dist/chunk-6b3vfr39.js +2 -0
  21. package/dist/{chunk-t6440ajd.js → chunk-6j695pam.js} +2 -2
  22. package/dist/{chunk-pzb224c5.js → chunk-6saqxa3z.js} +2 -2
  23. package/dist/{chunk-tjg2e8v3.js → chunk-78ksrp8v.js} +2 -2
  24. package/dist/chunk-7cx9kda0.js +228 -0
  25. package/dist/chunk-7qba2raw.js +2 -0
  26. package/dist/chunk-81b2s97q.js +1 -0
  27. package/dist/chunk-88w3txtb.js +160 -0
  28. package/dist/chunk-8ygdre0g.js +1 -0
  29. package/dist/{chunk-fzh0v6r0.js → chunk-9011y634.js} +2 -2
  30. package/dist/chunk-9zcr1qh6.js +1 -0
  31. package/dist/chunk-a0nr8jva.js +2 -0
  32. package/dist/{chunk-5c3bpcpm.js → chunk-agevsn2e.js} +1 -1
  33. package/dist/{chunk-8tbtavry.js → chunk-akc3s5aw.js} +2 -2
  34. package/dist/{chunk-spa69h7p.js → chunk-b0beqmg2.js} +2 -2
  35. package/dist/{chunk-zg54h6gy.js → chunk-b175s7dm.js} +1 -1
  36. package/dist/chunk-bk32cwxa.js +5 -0
  37. package/dist/{chunk-vrnj0659.js → chunk-bn077sjq.js} +15 -15
  38. package/dist/{chunk-qxebn3jw.js → chunk-c9yrpb3g.js} +3 -3
  39. package/dist/{chunk-hnnwbfqk.js → chunk-cb0f54ar.js} +2 -2
  40. package/dist/chunk-ctqtahz4.js +1 -0
  41. package/dist/{chunk-gt8c6dne.js → chunk-d2sr8fnm.js} +1 -1
  42. package/dist/chunk-d5gzkkgg.js +1 -0
  43. package/dist/{chunk-bzgznka5.js → chunk-dh2f4xyb.js} +1 -1
  44. package/dist/chunk-dr32dt9y.js +1 -0
  45. package/dist/chunk-dv1vt080.js +1 -0
  46. package/dist/{chunk-vfxjbdz4.js → chunk-dz9sqfph.js} +1 -1
  47. package/dist/chunk-e7mbewmw.js +1 -0
  48. package/dist/chunk-em03xqy9.js +1 -0
  49. package/dist/chunk-fkt5b511.js +1 -0
  50. package/dist/{chunk-k4q8j7pg.js → chunk-gphssgy6.js} +1 -1
  51. package/dist/chunk-h2hk7vx4.js +1 -0
  52. package/dist/{chunk-c7kd2qrp.js → chunk-h7ypcqp3.js} +112 -111
  53. package/dist/{chunk-nsw5168d.js → chunk-j8tq0e8m.js} +2 -2
  54. package/dist/{chunk-40ht9pe1.js → chunk-jd1razfg.js} +2 -2
  55. package/dist/chunk-jhxvctg5.js +8 -0
  56. package/dist/chunk-kada5fyh.js +1 -0
  57. package/dist/chunk-kgc6ws03.js +1 -0
  58. package/dist/chunk-mk8ggmt8.js +17 -0
  59. package/dist/{chunk-e8kxa5vj.js → chunk-mv5m8bf4.js} +2 -2
  60. package/dist/chunk-mv8a5svx.js +1 -0
  61. package/dist/chunk-n61yv4t5.js +2 -0
  62. package/dist/chunk-nt2yp4jh.js +1 -0
  63. package/dist/chunk-p7ew4trx.js +1 -0
  64. package/dist/{chunk-s1tbdcs8.js → chunk-pgnhcznr.js} +1 -1
  65. package/dist/chunk-q8cfxky4.js +8 -0
  66. package/dist/{chunk-g2zskge5.js → chunk-q8zsxwd8.js} +2 -2
  67. package/dist/{chunk-nmzx5nmt.js → chunk-qfa5v4n5.js} +1 -1
  68. package/dist/chunk-qhzztj83.js +1 -0
  69. package/dist/chunk-snmkgfbe.js +15 -0
  70. package/dist/chunk-ss4bh5wb.js +2 -0
  71. package/dist/chunk-sv0k2v66.js +1 -0
  72. package/dist/{chunk-wmyc17aa.js → chunk-tbav8trq.js} +1 -1
  73. package/dist/chunk-tmyzfvsy.js +1 -0
  74. package/dist/chunk-ts4jreym.js +7 -0
  75. package/dist/chunk-tws3wcnm.js +2 -0
  76. package/dist/chunk-v0e9bsvt.js +89 -0
  77. package/dist/{chunk-n9rpnke9.js → chunk-vwj4n000.js} +1 -1
  78. package/dist/{chunk-gfhmzpy7.js → chunk-wd6s7gg7.js} +2 -3
  79. package/dist/{chunk-f0m4532p.js → chunk-y524zd2h.js} +5 -5
  80. package/dist/{chunk-hve2a279.js → chunk-yb71zqvt.js} +2 -2
  81. package/dist/{chunk-n7s6my89.js → chunk-yejgw2hm.js} +32 -32
  82. package/dist/{chunk-g974hxbz.js → chunk-yfjs6pf8.js} +1 -1
  83. package/dist/chunk-zhqdp4ak.js +2 -0
  84. package/dist/chunk-zkd3m39v.js +1 -0
  85. package/dist/cli.js +1 -1
  86. package/dist/nonInteractive.js +80 -80
  87. package/dist/zen-core.js +644 -0
  88. package/dist/zen-keyboard.js +1 -1
  89. package/package.json +5 -3
  90. package/dist/chunk-0ddrb30y.js +0 -1
  91. package/dist/chunk-215an3fz.js +0 -1
  92. package/dist/chunk-4z0w0ng1.js +0 -2
  93. package/dist/chunk-57bj89e2.js +0 -1
  94. package/dist/chunk-5a5mepqj.js +0 -1
  95. package/dist/chunk-7kw7ss8d.js +0 -1
  96. package/dist/chunk-86m0rmtc.js +0 -1
  97. package/dist/chunk-9rayxazs.js +0 -8
  98. package/dist/chunk-a9gpb2tx.js +0 -2
  99. package/dist/chunk-a9tw6d68.js +0 -1
  100. package/dist/chunk-anbtppz1.js +0 -294
  101. package/dist/chunk-bca8tkkr.js +0 -1
  102. package/dist/chunk-bdqds8vh.js +0 -1
  103. package/dist/chunk-dvbb3dd1.js +0 -233
  104. package/dist/chunk-ehmmd8qc.js +0 -1
  105. package/dist/chunk-ejfa95sm.js +0 -1
  106. package/dist/chunk-f7cps5x1.js +0 -1
  107. package/dist/chunk-fbemqjck.js +0 -2
  108. package/dist/chunk-feeqtzv5.js +0 -1
  109. package/dist/chunk-g9911ymn.js +0 -1
  110. package/dist/chunk-h8fdexm4.js +0 -2
  111. package/dist/chunk-hp2jzn9x.js +0 -166
  112. package/dist/chunk-js4qp900.js +0 -2
  113. package/dist/chunk-m21hvv91.js +0 -2
  114. package/dist/chunk-mnnyjmgw.js +0 -224
  115. package/dist/chunk-mw7x6xqp.js +0 -1
  116. package/dist/chunk-nk62q95g.js +0 -93
  117. package/dist/chunk-pg1ppq4y.js +0 -1
  118. package/dist/chunk-q1cxrg0x.js +0 -2
  119. package/dist/chunk-swc7se71.js +0 -2
  120. package/dist/chunk-swyc15ym.js +0 -1
  121. package/dist/chunk-t2s3s6af.js +0 -1
  122. package/dist/chunk-vdmq9d9x.js +0 -4
  123. package/dist/chunk-wt3p1w1g.js +0 -1
  124. package/dist/chunk-y5ry5c7v.js +0 -1
  125. package/dist/chunk-yy8p9zph.js +0 -2
  126. package/dist/chunk-z61m3anh.js +0 -1
  127. package/dist/chunk-zr90qp47.js +0 -1
  128. package/dist/chunk-zsa62xr0.js +0 -2
@@ -1,224 +0,0 @@
1
- import{eg as UJ,fg as HO}from"./chunk-fzh0v6r0.js";import{hg as fX}from"./chunk-f0m4532p.js";import{mg as p9,rg as aX,sg as _W,tg as vW,vg as gW}from"./chunk-pe8mzxwn.js";import{Dk as sX,Ek as g9,Fj as fW,_h as e1,fi as J8,ri as TX,wi as u9}from"./chunk-nk62q95g.js";import{Fk as L8,Hk as z}from"./chunk-nmzx5nmt.js";import{Ik as jO}from"./chunk-e8kxa5vj.js";import{Jk as f}from"./chunk-q1cxrg0x.js";import{$k as P4,Kk as w4,Pk as z6,Yk as X4,Zk as z8,_k as L,al as u,bl as l,cl as T8,dl as N4,el as s,fl as M,gl as b,hl as e,il as p,jl as E8,kl as C8,ll as i,ml as D0,nl as N,ol as a,pl as Y4,ql as S8,rl as R4,sl as I4,tl as q}from"./chunk-tjg2e8v3.js";import{Dl as t1,Fl as P,Il as bG}from"./chunk-y8qhrx11.js";var j9=P((c4)=>{Object.defineProperty(c4,"__esModule",{value:!0});c4.regexpCode=c4.getEsmExportName=c4.getProperty=c4.safeStringify=c4.stringify=c4.strConcat=c4.addCodeArg=c4.str=c4._=c4.nil=c4._Code=c4.Name=c4.IDENTIFIER=c4._CodeOrName=void 0;class qQ{}c4._CodeOrName=qQ;c4.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class v1 extends qQ{constructor(Q){super();if(!c4.IDENTIFIER.test(Q))throw Error("CodeGen: name must be a valid identifier");this.str=Q}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}c4.Name=v1;class T0 extends qQ{constructor(Q){super();this._items=typeof Q==="string"?[Q]:Q}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let Q=this._items[0];return Q===""||Q==='""'}get str(){var Q;return(Q=this._str)!==null&&Q!==void 0?Q:this._str=this._items.reduce((X,Y)=>`${X}${Y}`,"")}get names(){var Q;return(Q=this._names)!==null&&Q!==void 0?Q:this._names=this._items.reduce((X,Y)=>{if(Y instanceof v1)X[Y.str]=(X[Y.str]||0)+1;return X},{})}}c4._Code=T0;c4.nil=new T0("");function p4(Q,...X){let Y=[Q[0]],Z=0;while(Z<X.length)U6(Y,X[Z]),Y.push(Q[++Z]);return new T0(Y)}c4._=p4;var A6=new T0("+");function d4(Q,...X){let Y=[O9(Q[0])],Z=0;while(Z<X.length)Y.push(A6),U6(Y,X[Z]),Y.push(A6,O9(Q[++Z]));return tG(Y),new T0(Y)}c4.str=d4;function U6(Q,X){if(X instanceof T0)Q.push(...X._items);else if(X instanceof v1)Q.push(X);else Q.push(X3(X))}c4.addCodeArg=U6;function tG(Q){let X=1;while(X<Q.length-1){if(Q[X]===A6){let Y=eG(Q[X-1],Q[X+1]);if(Y!==void 0){Q.splice(X-1,3,Y);continue}Q[X++]="+"}X++}}function eG(Q,X){if(X==='""')return Q;if(Q==='""')return X;if(typeof Q=="string"){if(X instanceof v1||Q[Q.length-1]!=='"')return;if(typeof X!="string")return`${Q.slice(0,-1)}${X}"`;if(X[0]==='"')return Q.slice(0,-1)+X.slice(1);return}if(typeof X=="string"&&X[0]==='"'&&!(Q instanceof v1))return`"${Q}${X.slice(1)}`;return}function Q3(Q,X){return X.emptyStr()?Q:Q.emptyStr()?X:d4`${Q}${X}`}c4.strConcat=Q3;function X3(Q){return typeof Q=="number"||typeof Q=="boolean"||Q===null?Q:O9(Array.isArray(Q)?Q.join(","):Q)}function Y3(Q){return new T0(O9(Q))}c4.stringify=Y3;function O9(Q){return JSON.stringify(Q).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}c4.safeStringify=O9;function Z3(Q){return typeof Q=="string"&&c4.IDENTIFIER.test(Q)?new T0(`.${Q}`):p4`[${Q}]`}c4.getProperty=Z3;function W3(Q){if(typeof Q=="string"&&c4.IDENTIFIER.test(Q))return new T0(`${Q}`);throw Error(`CodeGen: invalid export name: ${Q}, use explicit $id name mapping`)}c4.getEsmExportName=W3;function J3(Q){return new T0(Q.toString())}c4.regexpCode=J3});var b6=P((a4)=>{Object.defineProperty(a4,"__esModule",{value:!0});a4.ValueScope=a4.ValueScopeName=a4.Scope=a4.varKinds=a4.UsedValueState=void 0;var O0=j9();class n4 extends Error{constructor(Q){super(`CodeGen: "code" for ${Q} not defined`);this.value=Q.value}}var bQ;(function(Q){Q[Q.Started=0]="Started",Q[Q.Completed=1]="Completed"})(bQ||(a4.UsedValueState=bQ={}));a4.varKinds={const:new O0.Name("const"),let:new O0.Name("let"),var:new O0.Name("var")};class q6{constructor({prefixes:Q,parent:X}={}){this._names={},this._prefixes=Q,this._parent=X}toName(Q){return Q instanceof O0.Name?Q:this.name(Q)}name(Q){return new O0.Name(this._newName(Q))}_newName(Q){let X=this._names[Q]||this._nameGroup(Q);return`${Q}${X.index++}`}_nameGroup(Q){var X,Y;if(((Y=(X=this._parent)===null||X===void 0?void 0:X._prefixes)===null||Y===void 0?void 0:Y.has(Q))||this._prefixes&&!this._prefixes.has(Q))throw Error(`CodeGen: prefix "${Q}" is not allowed in this scope`);return this._names[Q]={prefix:Q,index:0}}}a4.Scope=q6;class M6 extends O0.Name{constructor(Q,X){super(X);this.prefix=Q}setValue(Q,{property:X,itemIndex:Y}){this.value=Q,this.scopePath=O0._`.${new O0.Name(X)}[${Y}]`}}a4.ValueScopeName=M6;var U3=O0._`\n`;class s4 extends q6{constructor(Q){super(Q);this._values={},this._scope=Q.scope,this.opts={...Q,_n:Q.lines?U3:O0.nil}}get(){return this._scope}name(Q){return new M6(Q,this._newName(Q))}value(Q,X){var Y;if(X.ref===void 0)throw Error("CodeGen: ref must be passed in value");let Z=this.toName(Q),{prefix:W}=Z,J=(Y=X.key)!==null&&Y!==void 0?Y:X.ref,$=this._values[W];if($){let B=$.get(J);if(B)return B}else $=this._values[W]=new Map;$.set(J,Z);let G=this._scope[W]||(this._scope[W]=[]),K=G.length;return G[K]=X.ref,Z.setValue(X,{property:W,itemIndex:K}),Z}getValue(Q,X){let Y=this._values[Q];if(!Y)return;return Y.get(X)}scopeRefs(Q,X=this._values){return this._reduceValues(X,(Y)=>{if(Y.scopePath===void 0)throw Error(`CodeGen: name "${Y}" has no value`);return O0._`${Q}${Y.scopePath}`})}scopeCode(Q=this._values,X,Y){return this._reduceValues(Q,(Z)=>{if(Z.value===void 0)throw Error(`CodeGen: name "${Z}" has no value`);return Z.value.code},X,Y)}_reduceValues(Q,X,Y={},Z){let W=O0.nil;for(let J in Q){let $=Q[J];if(!$)continue;let G=Y[J]=Y[J]||new Map;$.forEach((K)=>{if(G.has(K))return;G.set(K,bQ.Started);let B=X(K);if(B){let H=this.opts.es5?a4.varKinds.var:a4.varKinds.const;W=O0._`${W}${H} ${K} = ${B};${this.opts._n}`}else if(B=Z===null||Z===void 0?void 0:Z(K))W=O0._`${W}${B}${this.opts._n}`;else throw new n4(K);G.set(K,bQ.Completed)})}return W}}a4.ValueScope=s4});var x=P((j0)=>{Object.defineProperty(j0,"__esModule",{value:!0});j0.or=j0.and=j0.not=j0.CodeGen=j0.operators=j0.varKinds=j0.ValueScopeName=j0.ValueScope=j0.Scope=j0.Name=j0.regexpCode=j0.stringify=j0.getProperty=j0.nil=j0.strConcat=j0.str=j0._=void 0;var v=j9(),E0=b6(),r0=j9();Object.defineProperty(j0,"_",{enumerable:!0,get:function(){return r0._}});Object.defineProperty(j0,"str",{enumerable:!0,get:function(){return r0.str}});Object.defineProperty(j0,"strConcat",{enumerable:!0,get:function(){return r0.strConcat}});Object.defineProperty(j0,"nil",{enumerable:!0,get:function(){return r0.nil}});Object.defineProperty(j0,"getProperty",{enumerable:!0,get:function(){return r0.getProperty}});Object.defineProperty(j0,"stringify",{enumerable:!0,get:function(){return r0.stringify}});Object.defineProperty(j0,"regexpCode",{enumerable:!0,get:function(){return r0.regexpCode}});Object.defineProperty(j0,"Name",{enumerable:!0,get:function(){return r0.Name}});var TQ=b6();Object.defineProperty(j0,"Scope",{enumerable:!0,get:function(){return TQ.Scope}});Object.defineProperty(j0,"ValueScope",{enumerable:!0,get:function(){return TQ.ValueScope}});Object.defineProperty(j0,"ValueScopeName",{enumerable:!0,get:function(){return TQ.ValueScopeName}});Object.defineProperty(j0,"varKinds",{enumerable:!0,get:function(){return TQ.varKinds}});j0.operators={GT:new v._Code(">"),GTE:new v._Code(">="),LT:new v._Code("<"),LTE:new v._Code("<="),EQ:new v._Code("==="),NEQ:new v._Code("!=="),NOT:new v._Code("!"),OR:new v._Code("||"),AND:new v._Code("&&"),ADD:new v._Code("+")};class t0{optimizeNodes(){return this}optimizeNames(Q,X){return this}}class r4 extends t0{constructor(Q,X,Y){super();this.varKind=Q,this.name=X,this.rhs=Y}render({es5:Q,_n:X}){let Y=Q?E0.varKinds.var:this.varKind,Z=this.rhs===void 0?"":` = ${this.rhs}`;return`${Y} ${this.name}${Z};`+X}optimizeNames(Q,X){if(!Q[this.name.str])return;if(this.rhs)this.rhs=h1(this.rhs,Q,X);return this}get names(){return this.rhs instanceof v._CodeOrName?this.rhs.names:{}}}class N6 extends t0{constructor(Q,X,Y){super();this.lhs=Q,this.rhs=X,this.sideEffects=Y}render({_n:Q}){return`${this.lhs} = ${this.rhs};`+Q}optimizeNames(Q,X){if(this.lhs instanceof v.Name&&!Q[this.lhs.str]&&!this.sideEffects)return;return this.rhs=h1(this.rhs,Q,X),this}get names(){let Q=this.lhs instanceof v.Name?{}:{...this.lhs.names};return IQ(Q,this.rhs)}}class t4 extends N6{constructor(Q,X,Y,Z){super(Q,Y,Z);this.op=X}render({_n:Q}){return`${this.lhs} ${this.op}= ${this.rhs};`+Q}}class e4 extends t0{constructor(Q){super();this.label=Q,this.names={}}render({_n:Q}){return`${this.label}:`+Q}}class QY extends t0{constructor(Q){super();this.label=Q,this.names={}}render({_n:Q}){return`break${this.label?` ${this.label}`:""};`+Q}}class XY extends t0{constructor(Q){super();this.error=Q}render({_n:Q}){return`throw ${this.error};`+Q}get names(){return this.error.names}}class YY extends t0{constructor(Q){super();this.code=Q}render({_n:Q}){return`${this.code};`+Q}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(Q,X){return this.code=h1(this.code,Q,X),this}get names(){return this.code instanceof v._CodeOrName?this.code.names:{}}}class EQ extends t0{constructor(Q=[]){super();this.nodes=Q}render(Q){return this.nodes.reduce((X,Y)=>X+Y.render(Q),"")}optimizeNodes(){let{nodes:Q}=this,X=Q.length;while(X--){let Y=Q[X].optimizeNodes();if(Array.isArray(Y))Q.splice(X,1,...Y);else if(Y)Q[X]=Y;else Q.splice(X,1)}return Q.length>0?this:void 0}optimizeNames(Q,X){let{nodes:Y}=this,Z=Y.length;while(Z--){let W=Y[Z];if(W.optimizeNames(Q,X))continue;b3(Q,W.names),Y.splice(Z,1)}return Y.length>0?this:void 0}get names(){return this.nodes.reduce((Q,X)=>L1(Q,X.names),{})}}class e0 extends EQ{render(Q){return"{"+Q._n+super.render(Q)+"}"+Q._n}}class ZY extends EQ{}class A9 extends e0{}A9.kind="else";class h0 extends e0{constructor(Q,X){super(X);this.condition=Q}render(Q){let X=`if(${this.condition})`+super.render(Q);if(this.else)X+="else "+this.else.render(Q);return X}optimizeNodes(){super.optimizeNodes();let Q=this.condition;if(Q===!0)return this.nodes;let X=this.else;if(X){let Y=X.optimizeNodes();X=this.else=Array.isArray(Y)?new A9(Y):Y}if(X){if(Q===!1)return X instanceof h0?X:X.nodes;if(this.nodes.length)return this;return new h0(KY(Q),X instanceof h0?[X]:X.nodes)}if(Q===!1||!this.nodes.length)return;return this}optimizeNames(Q,X){var Y;if(this.else=(Y=this.else)===null||Y===void 0?void 0:Y.optimizeNames(Q,X),!(super.optimizeNames(Q,X)||this.else))return;return this.condition=h1(this.condition,Q,X),this}get names(){let Q=super.names;if(IQ(Q,this.condition),this.else)L1(Q,this.else.names);return Q}}h0.kind="if";class g1 extends e0{}g1.kind="for";class WY extends g1{constructor(Q){super();this.iteration=Q}render(Q){return`for(${this.iteration})`+super.render(Q)}optimizeNames(Q,X){if(!super.optimizeNames(Q,X))return;return this.iteration=h1(this.iteration,Q,X),this}get names(){return L1(super.names,this.iteration.names)}}class JY extends g1{constructor(Q,X,Y,Z){super();this.varKind=Q,this.name=X,this.from=Y,this.to=Z}render(Q){let X=Q.es5?E0.varKinds.var:this.varKind,{name:Y,from:Z,to:W}=this;return`for(${X} ${Y}=${Z}; ${Y}<${W}; ${Y}++)`+super.render(Q)}get names(){let Q=IQ(super.names,this.from);return IQ(Q,this.to)}}class w6 extends g1{constructor(Q,X,Y,Z){super();this.loop=Q,this.varKind=X,this.name=Y,this.iterable=Z}render(Q){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(Q)}optimizeNames(Q,X){if(!super.optimizeNames(Q,X))return;return this.iterable=h1(this.iterable,Q,X),this}get names(){return L1(super.names,this.iterable.names)}}class wQ extends e0{constructor(Q,X,Y){super();this.name=Q,this.args=X,this.async=Y}render(Q){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(Q)}}wQ.kind="func";class PQ extends EQ{render(Q){return"return "+super.render(Q)}}PQ.kind="return";class $Y extends e0{render(Q){let X="try"+super.render(Q);if(this.catch)X+=this.catch.render(Q);if(this.finally)X+=this.finally.render(Q);return X}optimizeNodes(){var Q,X;return super.optimizeNodes(),(Q=this.catch)===null||Q===void 0||Q.optimizeNodes(),(X=this.finally)===null||X===void 0||X.optimizeNodes(),this}optimizeNames(Q,X){var Y,Z;return super.optimizeNames(Q,X),(Y=this.catch)===null||Y===void 0||Y.optimizeNames(Q,X),(Z=this.finally)===null||Z===void 0||Z.optimizeNames(Q,X),this}get names(){let Q=super.names;if(this.catch)L1(Q,this.catch.names);if(this.finally)L1(Q,this.finally.names);return Q}}class NQ extends e0{constructor(Q){super();this.error=Q}render(Q){return`catch(${this.error})`+super.render(Q)}}NQ.kind="catch";class RQ extends e0{render(Q){return"finally"+super.render(Q)}}RQ.kind="finally";class GY{constructor(Q,X={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...X,_n:X.lines?`
2
- `:""},this._extScope=Q,this._scope=new E0.Scope({parent:Q}),this._nodes=[new ZY]}toString(){return this._root.render(this.opts)}name(Q){return this._scope.name(Q)}scopeName(Q){return this._extScope.name(Q)}scopeValue(Q,X){let Y=this._extScope.value(Q,X);return(this._values[Y.prefix]||(this._values[Y.prefix]=new Set)).add(Y),Y}getScopeValue(Q,X){return this._extScope.getValue(Q,X)}scopeRefs(Q){return this._extScope.scopeRefs(Q,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(Q,X,Y,Z){let W=this._scope.toName(X);if(Y!==void 0&&Z)this._constants[W.str]=Y;return this._leafNode(new r4(Q,W,Y)),W}const(Q,X,Y){return this._def(E0.varKinds.const,Q,X,Y)}let(Q,X,Y){return this._def(E0.varKinds.let,Q,X,Y)}var(Q,X,Y){return this._def(E0.varKinds.var,Q,X,Y)}assign(Q,X,Y){return this._leafNode(new N6(Q,X,Y))}add(Q,X){return this._leafNode(new t4(Q,j0.operators.ADD,X))}code(Q){if(typeof Q=="function")Q();else if(Q!==v.nil)this._leafNode(new YY(Q));return this}object(...Q){let X=["{"];for(let[Y,Z]of Q){if(X.length>1)X.push(",");if(X.push(Y),Y!==Z||this.opts.es5)X.push(":"),(0,v.addCodeArg)(X,Z)}return X.push("}"),new v._Code(X)}if(Q,X,Y){if(this._blockNode(new h0(Q)),X&&Y)this.code(X).else().code(Y).endIf();else if(X)this.code(X).endIf();else if(Y)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(Q){return this._elseNode(new h0(Q))}else(){return this._elseNode(new A9)}endIf(){return this._endBlockNode(h0,A9)}_for(Q,X){if(this._blockNode(Q),X)this.code(X).endFor();return this}for(Q,X){return this._for(new WY(Q),X)}forRange(Q,X,Y,Z,W=this.opts.es5?E0.varKinds.var:E0.varKinds.let){let J=this._scope.toName(Q);return this._for(new JY(W,J,X,Y),()=>Z(J))}forOf(Q,X,Y,Z=E0.varKinds.const){let W=this._scope.toName(Q);if(this.opts.es5){let J=X instanceof v.Name?X:this.var("_arr",X);return this.forRange("_i",0,v._`${J}.length`,($)=>{this.var(W,v._`${J}[${$}]`),Y(W)})}return this._for(new w6("of",Z,W,X),()=>Y(W))}forIn(Q,X,Y,Z=this.opts.es5?E0.varKinds.var:E0.varKinds.const){if(this.opts.ownProperties)return this.forOf(Q,v._`Object.keys(${X})`,Y);let W=this._scope.toName(Q);return this._for(new w6("in",Z,W,X),()=>Y(W))}endFor(){return this._endBlockNode(g1)}label(Q){return this._leafNode(new e4(Q))}break(Q){return this._leafNode(new QY(Q))}return(Q){let X=new PQ;if(this._blockNode(X),this.code(Q),X.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(PQ)}try(Q,X,Y){if(!X&&!Y)throw Error('CodeGen: "try" without "catch" and "finally"');let Z=new $Y;if(this._blockNode(Z),this.code(Q),X){let W=this.name("e");this._currNode=Z.catch=new NQ(W),X(W)}if(Y)this._currNode=Z.finally=new RQ,this.code(Y);return this._endBlockNode(NQ,RQ)}throw(Q){return this._leafNode(new XY(Q))}block(Q,X){if(this._blockStarts.push(this._nodes.length),Q)this.code(Q).endBlock(X);return this}endBlock(Q){let X=this._blockStarts.pop();if(X===void 0)throw Error("CodeGen: not in self-balancing block");let Y=this._nodes.length-X;if(Y<0||Q!==void 0&&Y!==Q)throw Error(`CodeGen: wrong number of nodes: ${Y} vs ${Q} expected`);return this._nodes.length=X,this}func(Q,X=v.nil,Y,Z){if(this._blockNode(new wQ(Q,X,Y)),Z)this.code(Z).endFunc();return this}endFunc(){return this._endBlockNode(wQ)}optimize(Q=1){while(Q-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(Q){return this._currNode.nodes.push(Q),this}_blockNode(Q){this._currNode.nodes.push(Q),this._nodes.push(Q)}_endBlockNode(Q,X){let Y=this._currNode;if(Y instanceof Q||X&&Y instanceof X)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${X?`${Q.kind}/${X.kind}`:Q.kind}"`)}_elseNode(Q){let X=this._currNode;if(!(X instanceof h0))throw Error('CodeGen: "else" without "if"');return this._currNode=X.else=Q,this}get _root(){return this._nodes[0]}get _currNode(){let Q=this._nodes;return Q[Q.length-1]}set _currNode(Q){let X=this._nodes;X[X.length-1]=Q}}j0.CodeGen=GY;function L1(Q,X){for(let Y in X)Q[Y]=(Q[Y]||0)+(X[Y]||0);return Q}function IQ(Q,X){return X instanceof v._CodeOrName?L1(Q,X.names):Q}function h1(Q,X,Y){if(Q instanceof v.Name)return Z(Q);if(!W(Q))return Q;return new v._Code(Q._items.reduce((J,$)=>{if($ instanceof v.Name)$=Z($);if($ instanceof v._Code)J.push(...$._items);else J.push($);return J},[]));function Z(J){let $=Y[J.str];if($===void 0||X[J.str]!==1)return J;return delete X[J.str],$}function W(J){return J instanceof v._Code&&J._items.some(($)=>$ instanceof v.Name&&X[$.str]===1&&Y[$.str]!==void 0)}}function b3(Q,X){for(let Y in X)Q[Y]=(Q[Y]||0)-(X[Y]||0)}function KY(Q){return typeof Q=="boolean"||typeof Q=="number"||Q===null?!Q:v._`!${P6(Q)}`}j0.not=KY;var w3=BY(j0.operators.AND);function P3(...Q){return Q.reduce(w3)}j0.and=P3;var N3=BY(j0.operators.OR);function R3(...Q){return Q.reduce(N3)}j0.or=R3;function BY(Q){return(X,Y)=>X===v.nil?Y:Y===v.nil?X:v._`${P6(X)} ${Q} ${P6(Y)}`}function P6(Q){return Q instanceof v.Name?Q:v._`(${Q})`}});var g=P((UY)=>{Object.defineProperty(UY,"__esModule",{value:!0});UY.checkStrictMode=UY.getErrorPath=UY.Type=UY.useFunc=UY.setEvaluated=UY.evaluatedPropsToName=UY.mergeEvaluated=UY.eachItem=UY.unescapeJsonPointer=UY.escapeJsonPointer=UY.escapeFragment=UY.unescapeFragment=UY.schemaRefOrVal=UY.schemaHasRulesButRef=UY.schemaHasRules=UY.checkUnknownRules=UY.alwaysValidSchema=UY.toHash=void 0;var m=x(),C3=j9();function S3(Q){let X={};for(let Y of Q)X[Y]=!0;return X}UY.toHash=S3;function k3(Q,X){if(typeof X=="boolean")return X;if(Object.keys(X).length===0)return!0;return zY(Q,X),!VY(X,Q.self.RULES.all)}UY.alwaysValidSchema=k3;function zY(Q,X=Q.schema){let{opts:Y,self:Z}=Q;if(!Y.strictSchema)return;if(typeof X==="boolean")return;let W=Z.RULES.keywords;for(let J in X)if(!W[J])AY(Q,`unknown keyword: "${J}"`)}UY.checkUnknownRules=zY;function VY(Q,X){if(typeof Q=="boolean")return!Q;for(let Y in Q)if(X[Y])return!0;return!1}UY.schemaHasRules=VY;function y3(Q,X){if(typeof Q=="boolean")return!Q;for(let Y in Q)if(Y!=="$ref"&&X.all[Y])return!0;return!1}UY.schemaHasRulesButRef=y3;function x3({topSchemaRef:Q,schemaPath:X},Y,Z,W){if(!W){if(typeof Y=="number"||typeof Y=="boolean")return Y;if(typeof Y=="string")return m._`${Y}`}return m._`${Q}${X}${(0,m.getProperty)(Z)}`}UY.schemaRefOrVal=x3;function f3(Q){return OY(decodeURIComponent(Q))}UY.unescapeFragment=f3;function _3(Q){return encodeURIComponent(I6(Q))}UY.escapeFragment=_3;function I6(Q){if(typeof Q=="number")return`${Q}`;return Q.replace(/~/g,"~0").replace(/\//g,"~1")}UY.escapeJsonPointer=I6;function OY(Q){return Q.replace(/~1/g,"/").replace(/~0/g,"~")}UY.unescapeJsonPointer=OY;function v3(Q,X){if(Array.isArray(Q))for(let Y of Q)X(Y);else X(Q)}UY.eachItem=v3;function FY({mergeNames:Q,mergeToName:X,mergeValues:Y,resultToName:Z}){return(W,J,$,G)=>{let K=$===void 0?J:$ instanceof m.Name?(J instanceof m.Name?Q(W,J,$):X(W,J,$),$):J instanceof m.Name?(X(W,$,J),J):Y(J,$);return G===m.Name&&!(K instanceof m.Name)?Z(W,K):K}}UY.mergeEvaluated={props:FY({mergeNames:(Q,X,Y)=>Q.if(m._`${Y} !== true && ${X} !== undefined`,()=>{Q.if(m._`${X} === true`,()=>Q.assign(Y,!0),()=>Q.assign(Y,m._`${Y} || {}`).code(m._`Object.assign(${Y}, ${X})`))}),mergeToName:(Q,X,Y)=>Q.if(m._`${Y} !== true`,()=>{if(X===!0)Q.assign(Y,!0);else Q.assign(Y,m._`${Y} || {}`),T6(Q,Y,X)}),mergeValues:(Q,X)=>Q===!0?!0:{...Q,...X},resultToName:jY}),items:FY({mergeNames:(Q,X,Y)=>Q.if(m._`${Y} !== true && ${X} !== undefined`,()=>Q.assign(Y,m._`${X} === true ? true : ${Y} > ${X} ? ${Y} : ${X}`)),mergeToName:(Q,X,Y)=>Q.if(m._`${Y} !== true`,()=>Q.assign(Y,X===!0?!0:m._`${Y} > ${X} ? ${Y} : ${X}`)),mergeValues:(Q,X)=>Q===!0?!0:Math.max(Q,X),resultToName:(Q,X)=>Q.var("items",X)})};function jY(Q,X){if(X===!0)return Q.var("props",!0);let Y=Q.var("props",m._`{}`);if(X!==void 0)T6(Q,Y,X);return Y}UY.evaluatedPropsToName=jY;function T6(Q,X,Y){Object.keys(Y).forEach((Z)=>Q.assign(m._`${X}${(0,m.getProperty)(Z)}`,!0))}UY.setEvaluated=T6;var LY={};function g3(Q,X){return Q.scopeValue("func",{ref:X,code:LY[X.code]||(LY[X.code]=new C3._Code(X.code))})}UY.useFunc=g3;var R6;(function(Q){Q[Q.Num=0]="Num",Q[Q.Str=1]="Str"})(R6||(UY.Type=R6={}));function h3(Q,X,Y){if(Q instanceof m.Name){let Z=X===R6.Num;return Y?Z?m._`"[" + ${Q} + "]"`:m._`"['" + ${Q} + "']"`:Z?m._`"/" + ${Q}`:m._`"/" + ${Q}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return Y?(0,m.getProperty)(Q).toString():"/"+I6(Q)}UY.getErrorPath=h3;function AY(Q,X,Y=Q.opts.strictSchema){if(!Y)return;if(X=`strict mode: ${X}`,Y===!0)throw Error(X);Q.self.logger.warn(X)}UY.checkStrictMode=AY});var u0=P((qY)=>{Object.defineProperty(qY,"__esModule",{value:!0});var K0=x(),ZK={data:new K0.Name("data"),valCxt:new K0.Name("valCxt"),instancePath:new K0.Name("instancePath"),parentData:new K0.Name("parentData"),parentDataProperty:new K0.Name("parentDataProperty"),rootData:new K0.Name("rootData"),dynamicAnchors:new K0.Name("dynamicAnchors"),vErrors:new K0.Name("vErrors"),errors:new K0.Name("errors"),this:new K0.Name("this"),self:new K0.Name("self"),scope:new K0.Name("scope"),json:new K0.Name("json"),jsonPos:new K0.Name("jsonPos"),jsonLen:new K0.Name("jsonLen"),jsonPart:new K0.Name("jsonPart")};qY.default=ZK});var U9=P((PY)=>{Object.defineProperty(PY,"__esModule",{value:!0});PY.extendErrors=PY.resetErrorsCount=PY.reportExtraError=PY.reportError=PY.keyword$DataError=PY.keywordError=void 0;var h=x(),SQ=g(),H0=u0();PY.keywordError={message:({keyword:Q})=>h.str`must pass "${Q}" keyword validation`};PY.keyword$DataError={message:({keyword:Q,schemaType:X})=>X?h.str`"${Q}" keyword must be ${X} ($data)`:h.str`"${Q}" keyword is invalid ($data)`};function JK(Q,X=PY.keywordError,Y,Z){let{it:W}=Q,{gen:J,compositeRule:$,allErrors:G}=W,K=wY(Q,X,Y);if(Z!==null&&Z!==void 0?Z:$||G)MY(J,K);else bY(W,h._`[${K}]`)}PY.reportError=JK;function $K(Q,X=PY.keywordError,Y){let{it:Z}=Q,{gen:W,compositeRule:J,allErrors:$}=Z,G=wY(Q,X,Y);if(MY(W,G),!(J||$))bY(Z,H0.default.vErrors)}PY.reportExtraError=$K;function GK(Q,X){Q.assign(H0.default.errors,X),Q.if(h._`${H0.default.vErrors} !== null`,()=>Q.if(X,()=>Q.assign(h._`${H0.default.vErrors}.length`,X),()=>Q.assign(H0.default.vErrors,null)))}PY.resetErrorsCount=GK;function KK({gen:Q,keyword:X,schemaValue:Y,data:Z,errsCount:W,it:J}){if(W===void 0)throw Error("ajv implementation error");let $=Q.name("err");Q.forRange("i",W,H0.default.errors,(G)=>{if(Q.const($,h._`${H0.default.vErrors}[${G}]`),Q.if(h._`${$}.instancePath === undefined`,()=>Q.assign(h._`${$}.instancePath`,(0,h.strConcat)(H0.default.instancePath,J.errorPath))),Q.assign(h._`${$}.schemaPath`,h.str`${J.errSchemaPath}/${X}`),J.opts.verbose)Q.assign(h._`${$}.schema`,Y),Q.assign(h._`${$}.data`,Z)})}PY.extendErrors=KK;function MY(Q,X){let Y=Q.const("err",X);Q.if(h._`${H0.default.vErrors} === null`,()=>Q.assign(H0.default.vErrors,h._`[${Y}]`),h._`${H0.default.vErrors}.push(${Y})`),Q.code(h._`${H0.default.errors}++`)}function bY(Q,X){let{gen:Y,validateName:Z,schemaEnv:W}=Q;if(W.$async)Y.throw(h._`new ${Q.ValidationError}(${X})`);else Y.assign(h._`${Z}.errors`,X),Y.return(!1)}var z1={keyword:new h.Name("keyword"),schemaPath:new h.Name("schemaPath"),params:new h.Name("params"),propertyName:new h.Name("propertyName"),message:new h.Name("message"),schema:new h.Name("schema"),parentSchema:new h.Name("parentSchema")};function wY(Q,X,Y){let{createErrors:Z}=Q.it;if(Z===!1)return h._`{}`;return BK(Q,X,Y)}function BK(Q,X,Y={}){let{gen:Z,it:W}=Q,J=[HK(W,Y),FK(Q,Y)];return LK(Q,X,J),Z.object(...J)}function HK({errorPath:Q},{instancePath:X}){let Y=X?h.str`${Q}${(0,SQ.getErrorPath)(X,SQ.Type.Str)}`:Q;return[H0.default.instancePath,(0,h.strConcat)(H0.default.instancePath,Y)]}function FK({keyword:Q,it:{errSchemaPath:X}},{schemaPath:Y,parentSchema:Z}){let W=Z?X:h.str`${X}/${Q}`;if(Y)W=h.str`${W}${(0,SQ.getErrorPath)(Y,SQ.Type.Str)}`;return[z1.schemaPath,W]}function LK(Q,{params:X,message:Y},Z){let{keyword:W,data:J,schemaValue:$,it:G}=Q,{opts:K,propertyName:B,topSchemaRef:H,schemaPath:F}=G;if(Z.push([z1.keyword,W],[z1.params,typeof X=="function"?X(Q):X||h._`{}`]),K.messages)Z.push([z1.message,typeof Y=="function"?Y(Q):Y]);if(K.verbose)Z.push([z1.schema,$],[z1.parentSchema,h._`${H}${F}`],[H0.default.data,J]);if(B)Z.push([z1.propertyName,B])}});var EY=P((IY)=>{Object.defineProperty(IY,"__esModule",{value:!0});IY.boolOrEmptySchema=IY.topBoolOrEmptySchema=void 0;var AK=U9(),UK=x(),DK=u0(),qK={message:"boolean schema is false"};function MK(Q){let{gen:X,schema:Y,validateName:Z}=Q;if(Y===!1)RY(Q,!1);else if(typeof Y=="object"&&Y.$async===!0)X.return(DK.default.data);else X.assign(UK._`${Z}.errors`,null),X.return(!0)}IY.topBoolOrEmptySchema=MK;function bK(Q,X){let{gen:Y,schema:Z}=Q;if(Z===!1)Y.var(X,!1),RY(Q);else Y.var(X,!0)}IY.boolOrEmptySchema=bK;function RY(Q,X){let{gen:Y,data:Z}=Q,W={gen:Y,keyword:"false schema",data:Z,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:Q};(0,AK.reportError)(W,qK,void 0,X)}});var C6=P((CY)=>{Object.defineProperty(CY,"__esModule",{value:!0});CY.getRules=CY.isJSONType=void 0;var PK=["string","number","integer","boolean","null","object","array"],NK=new Set(PK);function RK(Q){return typeof Q=="string"&&NK.has(Q)}CY.isJSONType=RK;function IK(){let Q={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...Q,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},Q.number,Q.string,Q.array,Q.object],post:{rules:[]},all:{},keywords:{}}}CY.getRules=IK});var S6=P((xY)=>{Object.defineProperty(xY,"__esModule",{value:!0});xY.shouldUseRule=xY.shouldUseGroup=xY.schemaHasRulesForType=void 0;function EK({schema:Q,self:X},Y){let Z=X.RULES.types[Y];return Z&&Z!==!0&&kY(Q,Z)}xY.schemaHasRulesForType=EK;function kY(Q,X){return X.rules.some((Y)=>yY(Q,Y))}xY.shouldUseGroup=kY;function yY(Q,X){var Y;return Q[X.keyword]!==void 0||((Y=X.definition.implements)===null||Y===void 0?void 0:Y.some((Z)=>Q[Z]!==void 0))}xY.shouldUseRule=yY});var D9=P((hY)=>{Object.defineProperty(hY,"__esModule",{value:!0});hY.reportTypeError=hY.checkDataTypes=hY.checkDataType=hY.coerceAndCheckDataType=hY.getJSONTypes=hY.getSchemaTypes=hY.DataType=void 0;var kK=C6(),yK=S6(),xK=U9(),y=x(),_Y=g(),u1;(function(Q){Q[Q.Correct=0]="Correct",Q[Q.Wrong=1]="Wrong"})(u1||(hY.DataType=u1={}));function fK(Q){let X=vY(Q.type);if(X.includes("null")){if(Q.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!X.length&&Q.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if(Q.nullable===!0)X.push("null")}return X}hY.getSchemaTypes=fK;function vY(Q){let X=Array.isArray(Q)?Q:Q?[Q]:[];if(X.every(kK.isJSONType))return X;throw Error("type must be JSONType or JSONType[]: "+X.join(","))}hY.getJSONTypes=vY;function _K(Q,X){let{gen:Y,data:Z,opts:W}=Q,J=vK(X,W.coerceTypes),$=X.length>0&&!(J.length===0&&X.length===1&&(0,yK.schemaHasRulesForType)(Q,X[0]));if($){let G=y6(X,Z,W.strictNumbers,u1.Wrong);Y.if(G,()=>{if(J.length)gK(Q,X,J);else x6(Q)})}return $}hY.coerceAndCheckDataType=_K;var gY=new Set(["string","number","integer","boolean","null"]);function vK(Q,X){return X?Q.filter((Y)=>gY.has(Y)||X==="array"&&Y==="array"):[]}function gK(Q,X,Y){let{gen:Z,data:W,opts:J}=Q,$=Z.let("dataType",y._`typeof ${W}`),G=Z.let("coerced",y._`undefined`);if(J.coerceTypes==="array")Z.if(y._`${$} == 'object' && Array.isArray(${W}) && ${W}.length == 1`,()=>Z.assign(W,y._`${W}[0]`).assign($,y._`typeof ${W}`).if(y6(X,W,J.strictNumbers),()=>Z.assign(G,W)));Z.if(y._`${G} !== undefined`);for(let B of Y)if(gY.has(B)||B==="array"&&J.coerceTypes==="array")K(B);Z.else(),x6(Q),Z.endIf(),Z.if(y._`${G} !== undefined`,()=>{Z.assign(W,G),hK(Q,G)});function K(B){switch(B){case"string":Z.elseIf(y._`${$} == "number" || ${$} == "boolean"`).assign(G,y._`"" + ${W}`).elseIf(y._`${W} === null`).assign(G,y._`""`);return;case"number":Z.elseIf(y._`${$} == "boolean" || ${W} === null
3
- || (${$} == "string" && ${W} && ${W} == +${W})`).assign(G,y._`+${W}`);return;case"integer":Z.elseIf(y._`${$} === "boolean" || ${W} === null
4
- || (${$} === "string" && ${W} && ${W} == +${W} && !(${W} % 1))`).assign(G,y._`+${W}`);return;case"boolean":Z.elseIf(y._`${W} === "false" || ${W} === 0 || ${W} === null`).assign(G,!1).elseIf(y._`${W} === "true" || ${W} === 1`).assign(G,!0);return;case"null":Z.elseIf(y._`${W} === "" || ${W} === 0 || ${W} === false`),Z.assign(G,null);return;case"array":Z.elseIf(y._`${$} === "string" || ${$} === "number"
5
- || ${$} === "boolean" || ${W} === null`).assign(G,y._`[${W}]`)}}}function hK({gen:Q,parentData:X,parentDataProperty:Y},Z){Q.if(y._`${X} !== undefined`,()=>Q.assign(y._`${X}[${Y}]`,Z))}function k6(Q,X,Y,Z=u1.Correct){let W=Z===u1.Correct?y.operators.EQ:y.operators.NEQ,J;switch(Q){case"null":return y._`${X} ${W} null`;case"array":J=y._`Array.isArray(${X})`;break;case"object":J=y._`${X} && typeof ${X} == "object" && !Array.isArray(${X})`;break;case"integer":J=$(y._`!(${X} % 1) && !isNaN(${X})`);break;case"number":J=$();break;default:return y._`typeof ${X} ${W} ${Q}`}return Z===u1.Correct?J:(0,y.not)(J);function $(G=y.nil){return(0,y.and)(y._`typeof ${X} == "number"`,G,Y?y._`isFinite(${X})`:y.nil)}}hY.checkDataType=k6;function y6(Q,X,Y,Z){if(Q.length===1)return k6(Q[0],X,Y,Z);let W,J=(0,_Y.toHash)(Q);if(J.array&&J.object){let $=y._`typeof ${X} != "object"`;W=J.null?$:y._`!${X} || ${$}`,delete J.null,delete J.array,delete J.object}else W=y.nil;if(J.number)delete J.integer;for(let $ in J)W=(0,y.and)(W,k6($,X,Y,Z));return W}hY.checkDataTypes=y6;var uK={message:({schema:Q})=>`must be ${Q}`,params:({schema:Q,schemaValue:X})=>typeof Q=="string"?y._`{type: ${Q}}`:y._`{type: ${X}}`};function x6(Q){let X=lK(Q);(0,xK.reportError)(X,uK)}hY.reportTypeError=x6;function lK(Q){let{gen:X,data:Y,schema:Z}=Q,W=(0,_Y.schemaRefOrVal)(Q,Z,"type");return{gen:X,keyword:"type",data:Y,schema:Z.type,schemaCode:W,schemaValue:W,parentSchema:Z,params:{},it:Q}}});var dY=P((mY)=>{Object.defineProperty(mY,"__esModule",{value:!0});mY.assignDefaults=void 0;var l1=x(),sK=g();function aK(Q,X){let{properties:Y,items:Z}=Q.schema;if(X==="object"&&Y)for(let W in Y)lY(Q,W,Y[W].default);else if(X==="array"&&Array.isArray(Z))Z.forEach((W,J)=>lY(Q,J,W.default))}mY.assignDefaults=aK;function lY(Q,X,Y){let{gen:Z,compositeRule:W,data:J,opts:$}=Q;if(Y===void 0)return;let G=l1._`${J}${(0,l1.getProperty)(X)}`;if(W){(0,sK.checkStrictMode)(Q,`default is ignored for: ${G}`);return}let K=l1._`${G} === undefined`;if($.useDefaults==="empty")K=l1._`${K} || ${G} === null || ${G} === ""`;Z.if(K,l1._`${G} = ${(0,l1.stringify)(Y)}`)}});var w0=P((nY)=>{Object.defineProperty(nY,"__esModule",{value:!0});nY.validateUnion=nY.validateArray=nY.usePattern=nY.callValidateCode=nY.schemaProperties=nY.allSchemaProperties=nY.noPropertyInData=nY.propertyInData=nY.isOwnProperty=nY.hasPropFunc=nY.reportMissingProp=nY.checkMissingProp=nY.checkReportMissingProp=void 0;var d=x(),f6=g(),Q1=u0(),oK=g();function rK(Q,X){let{gen:Y,data:Z,it:W}=Q;Y.if(v6(Y,Z,X,W.opts.ownProperties),()=>{Q.setParams({missingProperty:d._`${X}`},!0),Q.error()})}nY.checkReportMissingProp=rK;function tK({gen:Q,data:X,it:{opts:Y}},Z,W){return(0,d.or)(...Z.map((J)=>(0,d.and)(v6(Q,X,J,Y.ownProperties),d._`${W} = ${J}`)))}nY.checkMissingProp=tK;function eK(Q,X){Q.setParams({missingProperty:X},!0),Q.error()}nY.reportMissingProp=eK;function cY(Q){return Q.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:d._`Object.prototype.hasOwnProperty`})}nY.hasPropFunc=cY;function _6(Q,X,Y){return d._`${cY(Q)}.call(${X}, ${Y})`}nY.isOwnProperty=_6;function QB(Q,X,Y,Z){let W=d._`${X}${(0,d.getProperty)(Y)} !== undefined`;return Z?d._`${W} && ${_6(Q,X,Y)}`:W}nY.propertyInData=QB;function v6(Q,X,Y,Z){let W=d._`${X}${(0,d.getProperty)(Y)} === undefined`;return Z?(0,d.or)(W,(0,d.not)(_6(Q,X,Y))):W}nY.noPropertyInData=v6;function iY(Q){return Q?Object.keys(Q).filter((X)=>X!=="__proto__"):[]}nY.allSchemaProperties=iY;function XB(Q,X){return iY(X).filter((Y)=>!(0,f6.alwaysValidSchema)(Q,X[Y]))}nY.schemaProperties=XB;function YB({schemaCode:Q,data:X,it:{gen:Y,topSchemaRef:Z,schemaPath:W,errorPath:J},it:$},G,K,B){let H=B?d._`${Q}, ${X}, ${Z}${W}`:X,F=[[Q1.default.instancePath,(0,d.strConcat)(Q1.default.instancePath,J)],[Q1.default.parentData,$.parentData],[Q1.default.parentDataProperty,$.parentDataProperty],[Q1.default.rootData,Q1.default.rootData]];if($.opts.dynamicRef)F.push([Q1.default.dynamicAnchors,Q1.default.dynamicAnchors]);let O=d._`${H}, ${Y.object(...F)}`;return K!==d.nil?d._`${G}.call(${K}, ${O})`:d._`${G}(${O})`}nY.callValidateCode=YB;var ZB=d._`new RegExp`;function WB({gen:Q,it:{opts:X}},Y){let Z=X.unicodeRegExp?"u":"",{regExp:W}=X.code,J=W(Y,Z);return Q.scopeValue("pattern",{key:J.toString(),ref:J,code:d._`${W.code==="new RegExp"?ZB:(0,oK.useFunc)(Q,W)}(${Y}, ${Z})`})}nY.usePattern=WB;function JB(Q){let{gen:X,data:Y,keyword:Z,it:W}=Q,J=X.name("valid");if(W.allErrors){let G=X.let("valid",!0);return $(()=>X.assign(G,!1)),G}return X.var(J,!0),$(()=>X.break()),J;function $(G){let K=X.const("len",d._`${Y}.length`);X.forRange("i",0,K,(B)=>{Q.subschema({keyword:Z,dataProp:B,dataPropType:f6.Type.Num},J),X.if((0,d.not)(J),G)})}}nY.validateArray=JB;function $B(Q){let{gen:X,schema:Y,keyword:Z,it:W}=Q;if(!Array.isArray(Y))throw Error("ajv implementation error");if(Y.some((K)=>(0,f6.alwaysValidSchema)(W,K))&&!W.opts.unevaluated)return;let $=X.let("valid",!1),G=X.name("_valid");X.block(()=>Y.forEach((K,B)=>{let H=Q.subschema({keyword:Z,schemaProp:B,compositeRule:!0},G);if(X.assign($,d._`${$} || ${G}`),!Q.mergeValidEvaluated(H,G))X.if((0,d.not)($))})),Q.result($,()=>Q.reset(),()=>Q.error(!0))}nY.validateUnion=$B});var eY=P((rY)=>{Object.defineProperty(rY,"__esModule",{value:!0});rY.validateKeywordUsage=rY.validSchemaType=rY.funcKeywordCode=rY.macroKeywordCode=void 0;var F0=x(),V1=u0(),DB=w0(),qB=U9();function MB(Q,X){let{gen:Y,keyword:Z,schema:W,parentSchema:J,it:$}=Q,G=X.macro.call($.self,W,J,$),K=oY(Y,Z,G);if($.opts.validateSchema!==!1)$.self.validateSchema(G,!0);let B=Y.name("valid");Q.subschema({schema:G,schemaPath:F0.nil,errSchemaPath:`${$.errSchemaPath}/${Z}`,topSchemaRef:K,compositeRule:!0},B),Q.pass(B,()=>Q.error(!0))}rY.macroKeywordCode=MB;function bB(Q,X){var Y;let{gen:Z,keyword:W,schema:J,parentSchema:$,$data:G,it:K}=Q;PB(K,X);let B=!G&&X.compile?X.compile.call(K.self,J,$,K):X.validate,H=oY(Z,W,B),F=Z.let("valid");Q.block$data(F,O),Q.ok((Y=X.valid)!==null&&Y!==void 0?Y:F);function O(){if(X.errors===!1){if(V(),X.modifying)aY(Q);D(()=>Q.error())}else{let U=X.async?A():j();if(X.modifying)aY(Q);D(()=>wB(Q,U))}}function A(){let U=Z.let("ruleErrs",null);return Z.try(()=>V(F0._`await `),(w)=>Z.assign(F,!1).if(F0._`${w} instanceof ${K.ValidationError}`,()=>Z.assign(U,F0._`${w}.errors`),()=>Z.throw(w))),U}function j(){let U=F0._`${H}.errors`;return Z.assign(U,null),V(F0.nil),U}function V(U=X.async?F0._`await `:F0.nil){let w=K.opts.passContext?V1.default.this:V1.default.self,E=!(("compile"in X)&&!G||X.schema===!1);Z.assign(F,F0._`${U}${(0,DB.callValidateCode)(Q,H,w,E)}`,X.modifying)}function D(U){var w;Z.if((0,F0.not)((w=X.valid)!==null&&w!==void 0?w:F),U)}}rY.funcKeywordCode=bB;function aY(Q){let{gen:X,data:Y,it:Z}=Q;X.if(Z.parentData,()=>X.assign(Y,F0._`${Z.parentData}[${Z.parentDataProperty}]`))}function wB(Q,X){let{gen:Y}=Q;Y.if(F0._`Array.isArray(${X})`,()=>{Y.assign(V1.default.vErrors,F0._`${V1.default.vErrors} === null ? ${X} : ${V1.default.vErrors}.concat(${X})`).assign(V1.default.errors,F0._`${V1.default.vErrors}.length`),(0,qB.extendErrors)(Q)},()=>Q.error())}function PB({schemaEnv:Q},X){if(X.async&&!Q.$async)throw Error("async keyword in sync schema")}function oY(Q,X,Y){if(Y===void 0)throw Error(`keyword "${X}" failed to compile`);return Q.scopeValue("keyword",typeof Y=="function"?{ref:Y}:{ref:Y,code:(0,F0.stringify)(Y)})}function NB(Q,X,Y=!1){return!X.length||X.some((Z)=>Z==="array"?Array.isArray(Q):Z==="object"?Q&&typeof Q=="object"&&!Array.isArray(Q):typeof Q==Z||Y&&typeof Q>"u")}rY.validSchemaType=NB;function RB({schema:Q,opts:X,self:Y,errSchemaPath:Z},W,J){if(Array.isArray(W.keyword)?!W.keyword.includes(J):W.keyword!==J)throw Error("ajv implementation error");let $=W.dependencies;if($===null||$===void 0?void 0:$.some((G)=>!Object.prototype.hasOwnProperty.call(Q,G)))throw Error(`parent schema must have dependencies of ${J}: ${$.join(",")}`);if(W.validateSchema){if(!W.validateSchema(Q[J])){let K=`keyword "${J}" value is invalid at path "${Z}": `+Y.errorsText(W.validateSchema.errors);if(X.validateSchema==="log")Y.logger.error(K);else throw Error(K)}}}rY.validateKeywordUsage=RB});var Z7=P((X7)=>{Object.defineProperty(X7,"__esModule",{value:!0});X7.extendSubschemaMode=X7.extendSubschemaData=X7.getSubschema=void 0;var x0=x(),Q7=g();function CB(Q,{keyword:X,schemaProp:Y,schema:Z,schemaPath:W,errSchemaPath:J,topSchemaRef:$}){if(X!==void 0&&Z!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(X!==void 0){let G=Q.schema[X];return Y===void 0?{schema:G,schemaPath:x0._`${Q.schemaPath}${(0,x0.getProperty)(X)}`,errSchemaPath:`${Q.errSchemaPath}/${X}`}:{schema:G[Y],schemaPath:x0._`${Q.schemaPath}${(0,x0.getProperty)(X)}${(0,x0.getProperty)(Y)}`,errSchemaPath:`${Q.errSchemaPath}/${X}/${(0,Q7.escapeFragment)(Y)}`}}if(Z!==void 0){if(W===void 0||J===void 0||$===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:Z,schemaPath:W,topSchemaRef:$,errSchemaPath:J}}throw Error('either "keyword" or "schema" must be passed')}X7.getSubschema=CB;function SB(Q,X,{dataProp:Y,dataPropType:Z,data:W,dataTypes:J,propertyName:$}){if(W!==void 0&&Y!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:G}=X;if(Y!==void 0){let{errorPath:B,dataPathArr:H,opts:F}=X,O=G.let("data",x0._`${X.data}${(0,x0.getProperty)(Y)}`,!0);K(O),Q.errorPath=x0.str`${B}${(0,Q7.getErrorPath)(Y,Z,F.jsPropertySyntax)}`,Q.parentDataProperty=x0._`${Y}`,Q.dataPathArr=[...H,Q.parentDataProperty]}if(W!==void 0){let B=W instanceof x0.Name?W:G.let("data",W,!0);if(K(B),$!==void 0)Q.propertyName=$}if(J)Q.dataTypes=J;function K(B){Q.data=B,Q.dataLevel=X.dataLevel+1,Q.dataTypes=[],X.definedProperties=new Set,Q.parentData=X.data,Q.dataNames=[...X.dataNames,B]}}X7.extendSubschemaData=SB;function kB(Q,{jtdDiscriminator:X,jtdMetadata:Y,compositeRule:Z,createErrors:W,allErrors:J}){if(Z!==void 0)Q.compositeRule=Z;if(W!==void 0)Q.createErrors=W;if(J!==void 0)Q.allErrors=J;Q.jtdDiscriminator=X,Q.jtdMetadata=Y}X7.extendSubschemaMode=kB});var g6=P((nA,W7)=>{W7.exports=function Q(X,Y){if(X===Y)return!0;if(X&&Y&&typeof X=="object"&&typeof Y=="object"){if(X.constructor!==Y.constructor)return!1;var Z,W,J;if(Array.isArray(X)){if(Z=X.length,Z!=Y.length)return!1;for(W=Z;W--!==0;)if(!Q(X[W],Y[W]))return!1;return!0}if(X.constructor===RegExp)return X.source===Y.source&&X.flags===Y.flags;if(X.valueOf!==Object.prototype.valueOf)return X.valueOf()===Y.valueOf();if(X.toString!==Object.prototype.toString)return X.toString()===Y.toString();if(J=Object.keys(X),Z=J.length,Z!==Object.keys(Y).length)return!1;for(W=Z;W--!==0;)if(!Object.prototype.hasOwnProperty.call(Y,J[W]))return!1;for(W=Z;W--!==0;){var $=J[W];if(!Q(X[$],Y[$]))return!1}return!0}return X!==X&&Y!==Y}});var $7=P((sA,J7)=>{var X1=J7.exports=function(Q,X,Y){if(typeof X=="function")Y=X,X={};Y=X.cb||Y;var Z=typeof Y=="function"?Y:Y.pre||function(){},W=Y.post||function(){};kQ(X,Z,W,Q,"",Q)};X1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};X1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};X1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};X1.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function kQ(Q,X,Y,Z,W,J,$,G,K,B){if(Z&&typeof Z=="object"&&!Array.isArray(Z)){X(Z,W,J,$,G,K,B);for(var H in Z){var F=Z[H];if(Array.isArray(F)){if(H in X1.arrayKeywords)for(var O=0;O<F.length;O++)kQ(Q,X,Y,F[O],W+"/"+H+"/"+O,J,W,H,Z,O)}else if(H in X1.propsKeywords){if(F&&typeof F=="object")for(var A in F)kQ(Q,X,Y,F[A],W+"/"+H+"/"+fB(A),J,W,H,Z,A)}else if(H in X1.keywords||Q.allKeys&&!(H in X1.skipKeywords))kQ(Q,X,Y,F,W+"/"+H,J,W,H,Z)}Y(Z,W,J,$,G,K,B)}}function fB(Q){return Q.replace(/~/g,"~0").replace(/\//g,"~1")}});var q9=P((H7)=>{Object.defineProperty(H7,"__esModule",{value:!0});H7.getSchemaRefs=H7.resolveUrl=H7.normalizeId=H7._getFullPath=H7.getFullPath=H7.inlineRef=void 0;var _B=g(),vB=g6(),gB=$7(),hB=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function uB(Q,X=!0){if(typeof Q=="boolean")return!0;if(X===!0)return!h6(Q);if(!X)return!1;return G7(Q)<=X}H7.inlineRef=uB;var lB=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function h6(Q){for(let X in Q){if(lB.has(X))return!0;let Y=Q[X];if(Array.isArray(Y)&&Y.some(h6))return!0;if(typeof Y=="object"&&h6(Y))return!0}return!1}function G7(Q){let X=0;for(let Y in Q){if(Y==="$ref")return 1/0;if(X++,hB.has(Y))continue;if(typeof Q[Y]=="object")(0,_B.eachItem)(Q[Y],(Z)=>X+=G7(Z));if(X===1/0)return 1/0}return X}function K7(Q,X="",Y){if(Y!==!1)X=m1(X);let Z=Q.parse(X);return B7(Q,Z)}H7.getFullPath=K7;function B7(Q,X){return Q.serialize(X).split("#")[0]+"#"}H7._getFullPath=B7;var mB=/#\/?$/;function m1(Q){return Q?Q.replace(mB,""):""}H7.normalizeId=m1;function pB(Q,X,Y){return Y=m1(Y),Q.resolve(X,Y)}H7.resolveUrl=pB;var dB=/^[a-z_][-a-z0-9._]*$/i;function cB(Q,X){if(typeof Q=="boolean")return{};let{schemaId:Y,uriResolver:Z}=this.opts,W=m1(Q[Y]||X),J={"":W},$=K7(Z,W,!1),G={},K=new Set;return gB(Q,{allKeys:!0},(F,O,A,j)=>{if(j===void 0)return;let V=$+O,D=J[j];if(typeof F[Y]=="string")D=U.call(this,F[Y]);w.call(this,F.$anchor),w.call(this,F.$dynamicAnchor),J[O]=D;function U(E){let I=this.opts.uriResolver.resolve;if(E=m1(D?I(D,E):E),K.has(E))throw H(E);K.add(E);let T=this.refs[E];if(typeof T=="string")T=this.refs[T];if(typeof T=="object")B(F,T.schema,E);else if(E!==m1(V))if(E[0]==="#")B(F,G[E],E),G[E]=F;else this.refs[E]=V;return E}function w(E){if(typeof E=="string"){if(!dB.test(E))throw Error(`invalid anchor "${E}"`);U.call(this,`#${E}`)}}}),G;function B(F,O,A){if(O!==void 0&&!vB(F,O))throw H(A)}function H(F){return Error(`reference "${F}" resolves to more than one schema`)}}H7.getSchemaRefs=cB});var w9=P((R7)=>{Object.defineProperty(R7,"__esModule",{value:!0});R7.getData=R7.KeywordCxt=R7.validateFunctionCode=void 0;var j7=EY(),L7=D9(),l6=S6(),yQ=D9(),rB=dY(),b9=eY(),u6=Z7(),R=x(),k=u0(),tB=q9(),l0=g(),M9=U9();function eB(Q){if(D7(Q)){if(q7(Q),U7(Q)){YH(Q);return}}A7(Q,()=>(0,j7.topBoolOrEmptySchema)(Q))}R7.validateFunctionCode=eB;function A7({gen:Q,validateName:X,schema:Y,schemaEnv:Z,opts:W},J){if(W.code.es5)Q.func(X,R._`${k.default.data}, ${k.default.valCxt}`,Z.$async,()=>{Q.code(R._`"use strict"; ${z7(Y,W)}`),XH(Q,W),Q.code(J)});else Q.func(X,R._`${k.default.data}, ${QH(W)}`,Z.$async,()=>Q.code(z7(Y,W)).code(J))}function QH(Q){return R._`{${k.default.instancePath}="", ${k.default.parentData}, ${k.default.parentDataProperty}, ${k.default.rootData}=${k.default.data}${Q.dynamicRef?R._`, ${k.default.dynamicAnchors}={}`:R.nil}}={}`}function XH(Q,X){Q.if(k.default.valCxt,()=>{if(Q.var(k.default.instancePath,R._`${k.default.valCxt}.${k.default.instancePath}`),Q.var(k.default.parentData,R._`${k.default.valCxt}.${k.default.parentData}`),Q.var(k.default.parentDataProperty,R._`${k.default.valCxt}.${k.default.parentDataProperty}`),Q.var(k.default.rootData,R._`${k.default.valCxt}.${k.default.rootData}`),X.dynamicRef)Q.var(k.default.dynamicAnchors,R._`${k.default.valCxt}.${k.default.dynamicAnchors}`)},()=>{if(Q.var(k.default.instancePath,R._`""`),Q.var(k.default.parentData,R._`undefined`),Q.var(k.default.parentDataProperty,R._`undefined`),Q.var(k.default.rootData,k.default.data),X.dynamicRef)Q.var(k.default.dynamicAnchors,R._`{}`)})}function YH(Q){let{schema:X,opts:Y,gen:Z}=Q;A7(Q,()=>{if(Y.$comment&&X.$comment)b7(Q);if(GH(Q),Z.let(k.default.vErrors,null),Z.let(k.default.errors,0),Y.unevaluated)ZH(Q);M7(Q),HH(Q)});return}function ZH(Q){let{gen:X,validateName:Y}=Q;Q.evaluated=X.const("evaluated",R._`${Y}.evaluated`),X.if(R._`${Q.evaluated}.dynamicProps`,()=>X.assign(R._`${Q.evaluated}.props`,R._`undefined`)),X.if(R._`${Q.evaluated}.dynamicItems`,()=>X.assign(R._`${Q.evaluated}.items`,R._`undefined`))}function z7(Q,X){let Y=typeof Q=="object"&&Q[X.schemaId];return Y&&(X.code.source||X.code.process)?R._`/*# sourceURL=${Y} */`:R.nil}function WH(Q,X){if(D7(Q)){if(q7(Q),U7(Q)){JH(Q,X);return}}(0,j7.boolOrEmptySchema)(Q,X)}function U7({schema:Q,self:X}){if(typeof Q=="boolean")return!Q;for(let Y in Q)if(X.RULES.all[Y])return!0;return!1}function D7(Q){return typeof Q.schema!="boolean"}function JH(Q,X){let{schema:Y,gen:Z,opts:W}=Q;if(W.$comment&&Y.$comment)b7(Q);KH(Q),BH(Q);let J=Z.const("_errs",k.default.errors);M7(Q,J),Z.var(X,R._`${J} === ${k.default.errors}`)}function q7(Q){(0,l0.checkUnknownRules)(Q),$H(Q)}function M7(Q,X){if(Q.opts.jtd)return V7(Q,[],!1,X);let Y=(0,L7.getSchemaTypes)(Q.schema),Z=(0,L7.coerceAndCheckDataType)(Q,Y);V7(Q,Y,!Z,X)}function $H(Q){let{schema:X,errSchemaPath:Y,opts:Z,self:W}=Q;if(X.$ref&&Z.ignoreKeywordsWithRef&&(0,l0.schemaHasRulesButRef)(X,W.RULES))W.logger.warn(`$ref: keywords ignored in schema at path "${Y}"`)}function GH(Q){let{schema:X,opts:Y}=Q;if(X.default!==void 0&&Y.useDefaults&&Y.strictSchema)(0,l0.checkStrictMode)(Q,"default is ignored in the schema root")}function KH(Q){let X=Q.schema[Q.opts.schemaId];if(X)Q.baseId=(0,tB.resolveUrl)(Q.opts.uriResolver,Q.baseId,X)}function BH(Q){if(Q.schema.$async&&!Q.schemaEnv.$async)throw Error("async schema in sync schema")}function b7({gen:Q,schemaEnv:X,schema:Y,errSchemaPath:Z,opts:W}){let J=Y.$comment;if(W.$comment===!0)Q.code(R._`${k.default.self}.logger.log(${J})`);else if(typeof W.$comment=="function"){let $=R.str`${Z}/$comment`,G=Q.scopeValue("root",{ref:X.root});Q.code(R._`${k.default.self}.opts.$comment(${J}, ${$}, ${G}.schema)`)}}function HH(Q){let{gen:X,schemaEnv:Y,validateName:Z,ValidationError:W,opts:J}=Q;if(Y.$async)X.if(R._`${k.default.errors} === 0`,()=>X.return(k.default.data),()=>X.throw(R._`new ${W}(${k.default.vErrors})`));else{if(X.assign(R._`${Z}.errors`,k.default.vErrors),J.unevaluated)FH(Q);X.return(R._`${k.default.errors} === 0`)}}function FH({gen:Q,evaluated:X,props:Y,items:Z}){if(Y instanceof R.Name)Q.assign(R._`${X}.props`,Y);if(Z instanceof R.Name)Q.assign(R._`${X}.items`,Z)}function V7(Q,X,Y,Z){let{gen:W,schema:J,data:$,allErrors:G,opts:K,self:B}=Q,{RULES:H}=B;if(J.$ref&&(K.ignoreKeywordsWithRef||!(0,l0.schemaHasRulesButRef)(J,H))){W.block(()=>P7(Q,"$ref",H.all.$ref.definition));return}if(!K.jtd)LH(Q,X);W.block(()=>{for(let O of H.rules)F(O);F(H.post)});function F(O){if(!(0,l6.shouldUseGroup)(J,O))return;if(O.type){if(W.if((0,yQ.checkDataType)(O.type,$,K.strictNumbers)),O7(Q,O),X.length===1&&X[0]===O.type&&Y)W.else(),(0,yQ.reportTypeError)(Q);W.endIf()}else O7(Q,O);if(!G)W.if(R._`${k.default.errors} === ${Z||0}`)}}function O7(Q,X){let{gen:Y,schema:Z,opts:{useDefaults:W}}=Q;if(W)(0,rB.assignDefaults)(Q,X.type);Y.block(()=>{for(let J of X.rules)if((0,l6.shouldUseRule)(Z,J))P7(Q,J.keyword,J.definition,X.type)})}function LH(Q,X){if(Q.schemaEnv.meta||!Q.opts.strictTypes)return;if(zH(Q,X),!Q.opts.allowUnionTypes)VH(Q,X);OH(Q,Q.dataTypes)}function zH(Q,X){if(!X.length)return;if(!Q.dataTypes.length){Q.dataTypes=X;return}X.forEach((Y)=>{if(!w7(Q.dataTypes,Y))m6(Q,`type "${Y}" not allowed by context "${Q.dataTypes.join(",")}"`)}),AH(Q,X)}function VH(Q,X){if(X.length>1&&!(X.length===2&&X.includes("null")))m6(Q,"use allowUnionTypes to allow union type keyword")}function OH(Q,X){let Y=Q.self.RULES.all;for(let Z in Y){let W=Y[Z];if(typeof W=="object"&&(0,l6.shouldUseRule)(Q.schema,W)){let{type:J}=W.definition;if(J.length&&!J.some(($)=>jH(X,$)))m6(Q,`missing type "${J.join(",")}" for keyword "${Z}"`)}}}function jH(Q,X){return Q.includes(X)||X==="number"&&Q.includes("integer")}function w7(Q,X){return Q.includes(X)||X==="integer"&&Q.includes("number")}function AH(Q,X){let Y=[];for(let Z of Q.dataTypes)if(w7(X,Z))Y.push(Z);else if(X.includes("integer")&&Z==="number")Y.push("integer");Q.dataTypes=Y}function m6(Q,X){let Y=Q.schemaEnv.baseId+Q.errSchemaPath;X+=` at "${Y}" (strictTypes)`,(0,l0.checkStrictMode)(Q,X,Q.opts.strictTypes)}class p6{constructor(Q,X,Y){if((0,b9.validateKeywordUsage)(Q,X,Y),this.gen=Q.gen,this.allErrors=Q.allErrors,this.keyword=Y,this.data=Q.data,this.schema=Q.schema[Y],this.$data=X.$data&&Q.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,l0.schemaRefOrVal)(Q,this.schema,Y,this.$data),this.schemaType=X.schemaType,this.parentSchema=Q.schema,this.params={},this.it=Q,this.def=X,this.$data)this.schemaCode=Q.gen.const("vSchema",N7(this.$data,Q));else if(this.schemaCode=this.schemaValue,!(0,b9.validSchemaType)(this.schema,X.schemaType,X.allowUndefined))throw Error(`${Y} value must be ${JSON.stringify(X.schemaType)}`);if("code"in X?X.trackErrors:X.errors!==!1)this.errsCount=Q.gen.const("_errs",k.default.errors)}result(Q,X,Y){this.failResult((0,R.not)(Q),X,Y)}failResult(Q,X,Y){if(this.gen.if(Q),Y)Y();else this.error();if(X){if(this.gen.else(),X(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass(Q,X){this.failResult((0,R.not)(Q),void 0,X)}fail(Q){if(Q===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if(Q),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(Q){if(!this.$data)return this.fail(Q);let{schemaCode:X}=this;this.fail(R._`${X} !== undefined && (${(0,R.or)(this.invalid$data(),Q)})`)}error(Q,X,Y){if(X){this.setParams(X),this._error(Q,Y),this.setParams({});return}this._error(Q,Y)}_error(Q,X){(Q?M9.reportExtraError:M9.reportError)(this,this.def.error,X)}$dataError(){(0,M9.reportError)(this,this.def.$dataError||M9.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,M9.resetErrorsCount)(this.gen,this.errsCount)}ok(Q){if(!this.allErrors)this.gen.if(Q)}setParams(Q,X){if(X)Object.assign(this.params,Q);else this.params=Q}block$data(Q,X,Y=R.nil){this.gen.block(()=>{this.check$data(Q,Y),X()})}check$data(Q=R.nil,X=R.nil){if(!this.$data)return;let{gen:Y,schemaCode:Z,schemaType:W,def:J}=this;if(Y.if((0,R.or)(R._`${Z} === undefined`,X)),Q!==R.nil)Y.assign(Q,!0);if(W.length||J.validateSchema){if(Y.elseIf(this.invalid$data()),this.$dataError(),Q!==R.nil)Y.assign(Q,!1)}Y.else()}invalid$data(){let{gen:Q,schemaCode:X,schemaType:Y,def:Z,it:W}=this;return(0,R.or)(J(),$());function J(){if(Y.length){if(!(X instanceof R.Name))throw Error("ajv implementation error");let G=Array.isArray(Y)?Y:[Y];return R._`${(0,yQ.checkDataTypes)(G,X,W.opts.strictNumbers,yQ.DataType.Wrong)}`}return R.nil}function $(){if(Z.validateSchema){let G=Q.scopeValue("validate$data",{ref:Z.validateSchema});return R._`!${G}(${X})`}return R.nil}}subschema(Q,X){let Y=(0,u6.getSubschema)(this.it,Q);(0,u6.extendSubschemaData)(Y,this.it,Q),(0,u6.extendSubschemaMode)(Y,Q);let Z={...this.it,...Y,items:void 0,props:void 0};return WH(Z,X),Z}mergeEvaluated(Q,X){let{it:Y,gen:Z}=this;if(!Y.opts.unevaluated)return;if(Y.props!==!0&&Q.props!==void 0)Y.props=l0.mergeEvaluated.props(Z,Q.props,Y.props,X);if(Y.items!==!0&&Q.items!==void 0)Y.items=l0.mergeEvaluated.items(Z,Q.items,Y.items,X)}mergeValidEvaluated(Q,X){let{it:Y,gen:Z}=this;if(Y.opts.unevaluated&&(Y.props!==!0||Y.items!==!0))return Z.if(X,()=>this.mergeEvaluated(Q,R.Name)),!0}}R7.KeywordCxt=p6;function P7(Q,X,Y,Z){let W=new p6(Q,Y,X);if("code"in Y)Y.code(W,Z);else if(W.$data&&Y.validate)(0,b9.funcKeywordCode)(W,Y);else if("macro"in Y)(0,b9.macroKeywordCode)(W,Y);else if(Y.compile||Y.validate)(0,b9.funcKeywordCode)(W,Y)}var UH=/^\/(?:[^~]|~0|~1)*$/,DH=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function N7(Q,{dataLevel:X,dataNames:Y,dataPathArr:Z}){let W,J;if(Q==="")return k.default.rootData;if(Q[0]==="/"){if(!UH.test(Q))throw Error(`Invalid JSON-pointer: ${Q}`);W=Q,J=k.default.rootData}else{let B=DH.exec(Q);if(!B)throw Error(`Invalid JSON-pointer: ${Q}`);let H=+B[1];if(W=B[2],W==="#"){if(H>=X)throw Error(K("property/index",H));return Z[X-H]}if(H>X)throw Error(K("data",H));if(J=Y[X-H],!W)return J}let $=J,G=W.split("/");for(let B of G)if(B)J=R._`${J}${(0,R.getProperty)((0,l0.unescapeJsonPointer)(B))}`,$=R._`${$} && ${J}`;return $;function K(B,H){return`Cannot access ${B} ${H} levels up, current level is ${X}`}}R7.getData=N7});var xQ=P((E7)=>{Object.defineProperty(E7,"__esModule",{value:!0});class T7 extends Error{constructor(Q){super("validation failed");this.errors=Q,this.ajv=this.validation=!0}}E7.default=T7});var P9=P((S7)=>{Object.defineProperty(S7,"__esModule",{value:!0});var d6=q9();class C7 extends Error{constructor(Q,X,Y,Z){super(Z||`can't resolve reference ${Y} from id ${X}`);this.missingRef=(0,d6.resolveUrl)(Q,X,Y),this.missingSchema=(0,d6.normalizeId)((0,d6.getFullPath)(Q,this.missingRef))}}S7.default=C7});var _Q=P((x7)=>{Object.defineProperty(x7,"__esModule",{value:!0});x7.resolveSchema=x7.getCompilingSchema=x7.resolveRef=x7.compileSchema=x7.SchemaEnv=void 0;var C0=x(),PH=xQ(),O1=u0(),S0=q9(),k7=g(),NH=w9();class N9{constructor(Q){var X;this.refs={},this.dynamicAnchors={};let Y;if(typeof Q.schema=="object")Y=Q.schema;this.schema=Q.schema,this.schemaId=Q.schemaId,this.root=Q.root||this,this.baseId=(X=Q.baseId)!==null&&X!==void 0?X:(0,S0.normalizeId)(Y===null||Y===void 0?void 0:Y[Q.schemaId||"$id"]),this.schemaPath=Q.schemaPath,this.localRefs=Q.localRefs,this.meta=Q.meta,this.$async=Y===null||Y===void 0?void 0:Y.$async,this.refs={}}}x7.SchemaEnv=N9;function i6(Q){let X=y7.call(this,Q);if(X)return X;let Y=(0,S0.getFullPath)(this.opts.uriResolver,Q.root.baseId),{es5:Z,lines:W}=this.opts.code,{ownProperties:J}=this.opts,$=new C0.CodeGen(this.scope,{es5:Z,lines:W,ownProperties:J}),G;if(Q.$async)G=$.scopeValue("Error",{ref:PH.default,code:C0._`require("ajv/dist/runtime/validation_error").default`});let K=$.scopeName("validate");Q.validateName=K;let B={gen:$,allErrors:this.opts.allErrors,data:O1.default.data,parentData:O1.default.parentData,parentDataProperty:O1.default.parentDataProperty,dataNames:[O1.default.data],dataPathArr:[C0.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:$.scopeValue("schema",this.opts.code.source===!0?{ref:Q.schema,code:(0,C0.stringify)(Q.schema)}:{ref:Q.schema}),validateName:K,ValidationError:G,schema:Q.schema,schemaEnv:Q,rootId:Y,baseId:Q.baseId||Y,schemaPath:C0.nil,errSchemaPath:Q.schemaPath||(this.opts.jtd?"":"#"),errorPath:C0._`""`,opts:this.opts,self:this},H;try{this._compilations.add(Q),(0,NH.validateFunctionCode)(B),$.optimize(this.opts.code.optimize);let F=$.toString();if(H=`${$.scopeRefs(O1.default.scope)}return ${F}`,this.opts.code.process)H=this.opts.code.process(H,Q);let A=Function(`${O1.default.self}`,`${O1.default.scope}`,H)(this,this.scope.get());if(this.scope.value(K,{ref:A}),A.errors=null,A.schema=Q.schema,A.schemaEnv=Q,Q.$async)A.$async=!0;if(this.opts.code.source===!0)A.source={validateName:K,validateCode:F,scopeValues:$._values};if(this.opts.unevaluated){let{props:j,items:V}=B;if(A.evaluated={props:j instanceof C0.Name?void 0:j,items:V instanceof C0.Name?void 0:V,dynamicProps:j instanceof C0.Name,dynamicItems:V instanceof C0.Name},A.source)A.source.evaluated=(0,C0.stringify)(A.evaluated)}return Q.validate=A,Q}catch(F){if(delete Q.validate,delete Q.validateName,H)this.logger.error("Error compiling schema, function code:",H);throw F}finally{this._compilations.delete(Q)}}x7.compileSchema=i6;function RH(Q,X,Y){var Z;Y=(0,S0.resolveUrl)(this.opts.uriResolver,X,Y);let W=Q.refs[Y];if(W)return W;let J=EH.call(this,Q,Y);if(J===void 0){let $=(Z=Q.localRefs)===null||Z===void 0?void 0:Z[Y],{schemaId:G}=this.opts;if($)J=new N9({schema:$,schemaId:G,root:Q,baseId:X})}if(J===void 0)return;return Q.refs[Y]=IH.call(this,J)}x7.resolveRef=RH;function IH(Q){if((0,S0.inlineRef)(Q.schema,this.opts.inlineRefs))return Q.schema;return Q.validate?Q:i6.call(this,Q)}function y7(Q){for(let X of this._compilations)if(TH(X,Q))return X}x7.getCompilingSchema=y7;function TH(Q,X){return Q.schema===X.schema&&Q.root===X.root&&Q.baseId===X.baseId}function EH(Q,X){let Y;while(typeof(Y=this.refs[X])=="string")X=Y;return Y||this.schemas[X]||fQ.call(this,Q,X)}function fQ(Q,X){let Y=this.opts.uriResolver.parse(X),Z=(0,S0._getFullPath)(this.opts.uriResolver,Y),W=(0,S0.getFullPath)(this.opts.uriResolver,Q.baseId,void 0);if(Object.keys(Q.schema).length>0&&Z===W)return c6.call(this,Y,Q);let J=(0,S0.normalizeId)(Z),$=this.refs[J]||this.schemas[J];if(typeof $=="string"){let G=fQ.call(this,Q,$);if(typeof(G===null||G===void 0?void 0:G.schema)!=="object")return;return c6.call(this,Y,G)}if(typeof($===null||$===void 0?void 0:$.schema)!=="object")return;if(!$.validate)i6.call(this,$);if(J===(0,S0.normalizeId)(X)){let{schema:G}=$,{schemaId:K}=this.opts,B=G[K];if(B)W=(0,S0.resolveUrl)(this.opts.uriResolver,W,B);return new N9({schema:G,schemaId:K,root:Q,baseId:W})}return c6.call(this,Y,$)}x7.resolveSchema=fQ;var CH=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function c6(Q,{baseId:X,schema:Y,root:Z}){var W;if(((W=Q.fragment)===null||W===void 0?void 0:W[0])!=="/")return;for(let G of Q.fragment.slice(1).split("/")){if(typeof Y==="boolean")return;let K=Y[(0,k7.unescapeFragment)(G)];if(K===void 0)return;Y=K;let B=typeof Y==="object"&&Y[this.opts.schemaId];if(!CH.has(G)&&B)X=(0,S0.resolveUrl)(this.opts.uriResolver,X,B)}let J;if(typeof Y!="boolean"&&Y.$ref&&!(0,k7.schemaHasRulesButRef)(Y,this.RULES)){let G=(0,S0.resolveUrl)(this.opts.uriResolver,X,Y.$ref);J=fQ.call(this,Z,G)}let{schemaId:$}=this.opts;if(J=J||new N9({schema:Y,schemaId:$,root:Z,baseId:X}),J.schema!==J.root.schema)return J;return}});var _7=P((QU,fH)=>{fH.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var s6=P((XU,u7)=>{var _H=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),g7=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function n6(Q){let X="",Y=0,Z=0;for(Z=0;Z<Q.length;Z++){if(Y=Q[Z].charCodeAt(0),Y===48)continue;if(!(Y>=48&&Y<=57||Y>=65&&Y<=70||Y>=97&&Y<=102))return"";X+=Q[Z];break}for(Z+=1;Z<Q.length;Z++){if(Y=Q[Z].charCodeAt(0),!(Y>=48&&Y<=57||Y>=65&&Y<=70||Y>=97&&Y<=102))return"";X+=Q[Z]}return X}var vH=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function v7(Q){return Q.length=0,!0}function gH(Q,X,Y){if(Q.length){let Z=n6(Q);if(Z!=="")X.push(Z);else return Y.error=!0,!1;Q.length=0}return!0}function hH(Q){let X=0,Y={error:!1,address:"",zone:""},Z=[],W=[],J=!1,$=!1,G=gH;for(let K=0;K<Q.length;K++){let B=Q[K];if(B==="["||B==="]")continue;if(B===":"){if(J===!0)$=!0;if(!G(W,Z,Y))break;if(++X>7){Y.error=!0;break}if(K>0&&Q[K-1]===":")J=!0;Z.push(":");continue}else if(B==="%"){if(!G(W,Z,Y))break;G=v7}else{W.push(B);continue}}if(W.length)if(G===v7)Y.zone=W.join("");else if($)Z.push(W.join(""));else Z.push(n6(W));return Y.address=Z.join(""),Y}function h7(Q){if(uH(Q,":")<2)return{host:Q,isIPV6:!1};let X=hH(Q);if(!X.error){let{address:Y,address:Z}=X;if(X.zone)Y+="%"+X.zone,Z+="%25"+X.zone;return{host:Y,isIPV6:!0,escapedHost:Z}}else return{host:Q,isIPV6:!1}}function uH(Q,X){let Y=0;for(let Z=0;Z<Q.length;Z++)if(Q[Z]===X)Y++;return Y}function lH(Q){let X=Q,Y=[],Z=-1,W=0;while(W=X.length){if(W===1)if(X===".")break;else if(X==="/"){Y.push("/");break}else{Y.push(X);break}else if(W===2){if(X[0]==="."){if(X[1]===".")break;else if(X[1]==="/"){X=X.slice(2);continue}}else if(X[0]==="/"){if(X[1]==="."||X[1]==="/"){Y.push("/");break}}}else if(W===3){if(X==="/.."){if(Y.length!==0)Y.pop();Y.push("/");break}}if(X[0]==="."){if(X[1]==="."){if(X[2]==="/"){X=X.slice(3);continue}}else if(X[1]==="/"){X=X.slice(2);continue}}else if(X[0]==="/"){if(X[1]==="."){if(X[2]==="/"){X=X.slice(2);continue}else if(X[2]==="."){if(X[3]==="/"){if(X=X.slice(3),Y.length!==0)Y.pop();continue}}}}if((Z=X.indexOf("/",1))===-1){Y.push(X);break}else Y.push(X.slice(0,Z)),X=X.slice(Z)}return Y.join("")}function mH(Q,X){let Y=X!==!0?escape:unescape;if(Q.scheme!==void 0)Q.scheme=Y(Q.scheme);if(Q.userinfo!==void 0)Q.userinfo=Y(Q.userinfo);if(Q.host!==void 0)Q.host=Y(Q.host);if(Q.path!==void 0)Q.path=Y(Q.path);if(Q.query!==void 0)Q.query=Y(Q.query);if(Q.fragment!==void 0)Q.fragment=Y(Q.fragment);return Q}function pH(Q){let X=[];if(Q.userinfo!==void 0)X.push(Q.userinfo),X.push("@");if(Q.host!==void 0){let Y=unescape(Q.host);if(!g7(Y)){let Z=h7(Y);if(Z.isIPV6===!0)Y=`[${Z.escapedHost}]`;else Y=Q.host}X.push(Y)}if(typeof Q.port==="number"||typeof Q.port==="string")X.push(":"),X.push(String(Q.port));return X.length?X.join(""):void 0}u7.exports={nonSimpleDomain:vH,recomposeAuthority:pH,normalizeComponentEncoding:mH,removeDotSegments:lH,isIPv4:g7,isUUID:_H,normalizeIPv6:h7,stringArrayToHexStripped:n6}});var c7=P((YU,d7)=>{var{isUUID:dH}=s6(),cH=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,iH=["http","https","ws","wss","urn","urn:uuid"];function nH(Q){return iH.indexOf(Q)!==-1}function a6(Q){if(Q.secure===!0)return!0;else if(Q.secure===!1)return!1;else if(Q.scheme)return Q.scheme.length===3&&(Q.scheme[0]==="w"||Q.scheme[0]==="W")&&(Q.scheme[1]==="s"||Q.scheme[1]==="S")&&(Q.scheme[2]==="s"||Q.scheme[2]==="S");else return!1}function l7(Q){if(!Q.host)Q.error=Q.error||"HTTP URIs must have a host.";return Q}function m7(Q){let X=String(Q.scheme).toLowerCase()==="https";if(Q.port===(X?443:80)||Q.port==="")Q.port=void 0;if(!Q.path)Q.path="/";return Q}function sH(Q){return Q.secure=a6(Q),Q.resourceName=(Q.path||"/")+(Q.query?"?"+Q.query:""),Q.path=void 0,Q.query=void 0,Q}function aH(Q){if(Q.port===(a6(Q)?443:80)||Q.port==="")Q.port=void 0;if(typeof Q.secure==="boolean")Q.scheme=Q.secure?"wss":"ws",Q.secure=void 0;if(Q.resourceName){let[X,Y]=Q.resourceName.split("?");Q.path=X&&X!=="/"?X:void 0,Q.query=Y,Q.resourceName=void 0}return Q.fragment=void 0,Q}function oH(Q,X){if(!Q.path)return Q.error="URN can not be parsed",Q;let Y=Q.path.match(cH);if(Y){let Z=X.scheme||Q.scheme||"urn";Q.nid=Y[1].toLowerCase(),Q.nss=Y[2];let W=`${Z}:${X.nid||Q.nid}`,J=o6(W);if(Q.path=void 0,J)Q=J.parse(Q,X)}else Q.error=Q.error||"URN can not be parsed.";return Q}function rH(Q,X){if(Q.nid===void 0)throw Error("URN without nid cannot be serialized");let Y=X.scheme||Q.scheme||"urn",Z=Q.nid.toLowerCase(),W=`${Y}:${X.nid||Z}`,J=o6(W);if(J)Q=J.serialize(Q,X);let $=Q,G=Q.nss;return $.path=`${Z||X.nid}:${G}`,X.skipEscape=!0,$}function tH(Q,X){let Y=Q;if(Y.uuid=Y.nss,Y.nss=void 0,!X.tolerant&&(!Y.uuid||!dH(Y.uuid)))Y.error=Y.error||"UUID is not valid.";return Y}function eH(Q){let X=Q;return X.nss=(Q.uuid||"").toLowerCase(),X}var p7={scheme:"http",domainHost:!0,parse:l7,serialize:m7},QF={scheme:"https",domainHost:p7.domainHost,parse:l7,serialize:m7},vQ={scheme:"ws",domainHost:!0,parse:sH,serialize:aH},XF={scheme:"wss",domainHost:vQ.domainHost,parse:vQ.parse,serialize:vQ.serialize},YF={scheme:"urn",parse:oH,serialize:rH,skipNormalize:!0},ZF={scheme:"urn:uuid",parse:tH,serialize:eH,skipNormalize:!0},gQ={http:p7,https:QF,ws:vQ,wss:XF,urn:YF,"urn:uuid":ZF};Object.setPrototypeOf(gQ,null);function o6(Q){return Q&&(gQ[Q]||gQ[Q.toLowerCase()])||void 0}d7.exports={wsIsSecure:a6,SCHEMES:gQ,isValidSchemeName:nH,getSchemeHandler:o6}});var s7=P((ZU,uQ)=>{var{normalizeIPv6:WF,removeDotSegments:R9,recomposeAuthority:JF,normalizeComponentEncoding:hQ,isIPv4:$F,nonSimpleDomain:GF}=s6(),{SCHEMES:KF,getSchemeHandler:i7}=c7();function BF(Q,X){if(typeof Q==="string")Q=f0(m0(Q,X),X);else if(typeof Q==="object")Q=m0(f0(Q,X),X);return Q}function HF(Q,X,Y){let Z=Y?Object.assign({scheme:"null"},Y):{scheme:"null"},W=n7(m0(Q,Z),m0(X,Z),Z,!0);return Z.skipEscape=!0,f0(W,Z)}function n7(Q,X,Y,Z){let W={};if(!Z)Q=m0(f0(Q,Y),Y),X=m0(f0(X,Y),Y);if(Y=Y||{},!Y.tolerant&&X.scheme)W.scheme=X.scheme,W.userinfo=X.userinfo,W.host=X.host,W.port=X.port,W.path=R9(X.path||""),W.query=X.query;else{if(X.userinfo!==void 0||X.host!==void 0||X.port!==void 0)W.userinfo=X.userinfo,W.host=X.host,W.port=X.port,W.path=R9(X.path||""),W.query=X.query;else{if(!X.path)if(W.path=Q.path,X.query!==void 0)W.query=X.query;else W.query=Q.query;else{if(X.path[0]==="/")W.path=R9(X.path);else{if((Q.userinfo!==void 0||Q.host!==void 0||Q.port!==void 0)&&!Q.path)W.path="/"+X.path;else if(!Q.path)W.path=X.path;else W.path=Q.path.slice(0,Q.path.lastIndexOf("/")+1)+X.path;W.path=R9(W.path)}W.query=X.query}W.userinfo=Q.userinfo,W.host=Q.host,W.port=Q.port}W.scheme=Q.scheme}return W.fragment=X.fragment,W}function FF(Q,X,Y){if(typeof Q==="string")Q=unescape(Q),Q=f0(hQ(m0(Q,Y),!0),{...Y,skipEscape:!0});else if(typeof Q==="object")Q=f0(hQ(Q,!0),{...Y,skipEscape:!0});if(typeof X==="string")X=unescape(X),X=f0(hQ(m0(X,Y),!0),{...Y,skipEscape:!0});else if(typeof X==="object")X=f0(hQ(X,!0),{...Y,skipEscape:!0});return Q.toLowerCase()===X.toLowerCase()}function f0(Q,X){let Y={host:Q.host,scheme:Q.scheme,userinfo:Q.userinfo,port:Q.port,path:Q.path,query:Q.query,nid:Q.nid,nss:Q.nss,uuid:Q.uuid,fragment:Q.fragment,reference:Q.reference,resourceName:Q.resourceName,secure:Q.secure,error:""},Z=Object.assign({},X),W=[],J=i7(Z.scheme||Y.scheme);if(J&&J.serialize)J.serialize(Y,Z);if(Y.path!==void 0)if(!Z.skipEscape){if(Y.path=escape(Y.path),Y.scheme!==void 0)Y.path=Y.path.split("%3A").join(":")}else Y.path=unescape(Y.path);if(Z.reference!=="suffix"&&Y.scheme)W.push(Y.scheme,":");let $=JF(Y);if($!==void 0){if(Z.reference!=="suffix")W.push("//");if(W.push($),Y.path&&Y.path[0]!=="/")W.push("/")}if(Y.path!==void 0){let G=Y.path;if(!Z.absolutePath&&(!J||!J.absolutePath))G=R9(G);if($===void 0&&G[0]==="/"&&G[1]==="/")G="/%2F"+G.slice(2);W.push(G)}if(Y.query!==void 0)W.push("?",Y.query);if(Y.fragment!==void 0)W.push("#",Y.fragment);return W.join("")}var LF=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function m0(Q,X){let Y=Object.assign({},X),Z={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},W=!1;if(Y.reference==="suffix")if(Y.scheme)Q=Y.scheme+":"+Q;else Q="//"+Q;let J=Q.match(LF);if(J){if(Z.scheme=J[1],Z.userinfo=J[3],Z.host=J[4],Z.port=parseInt(J[5],10),Z.path=J[6]||"",Z.query=J[7],Z.fragment=J[8],isNaN(Z.port))Z.port=J[5];if(Z.host)if($F(Z.host)===!1){let K=WF(Z.host);Z.host=K.host.toLowerCase(),W=K.isIPV6}else W=!0;if(Z.scheme===void 0&&Z.userinfo===void 0&&Z.host===void 0&&Z.port===void 0&&Z.query===void 0&&!Z.path)Z.reference="same-document";else if(Z.scheme===void 0)Z.reference="relative";else if(Z.fragment===void 0)Z.reference="absolute";else Z.reference="uri";if(Y.reference&&Y.reference!=="suffix"&&Y.reference!==Z.reference)Z.error=Z.error||"URI is not a "+Y.reference+" reference.";let $=i7(Y.scheme||Z.scheme);if(!Y.unicodeSupport&&(!$||!$.unicodeSupport)){if(Z.host&&(Y.domainHost||$&&$.domainHost)&&W===!1&&GF(Z.host))try{Z.host=URL.domainToASCII(Z.host.toLowerCase())}catch(G){Z.error=Z.error||"Host's domain name can not be converted to ASCII: "+G}}if(!$||$&&!$.skipNormalize){if(Q.indexOf("%")!==-1){if(Z.scheme!==void 0)Z.scheme=unescape(Z.scheme);if(Z.host!==void 0)Z.host=unescape(Z.host)}if(Z.path)Z.path=escape(unescape(Z.path));if(Z.fragment)Z.fragment=encodeURI(decodeURIComponent(Z.fragment))}if($&&$.parse)$.parse(Z,Y)}else Z.error=Z.error||"URI can not be parsed.";return Z}var r6={SCHEMES:KF,normalize:BF,resolve:HF,resolveComponent:n7,equal:FF,serialize:f0,parse:m0};uQ.exports=r6;uQ.exports.default=r6;uQ.exports.fastUri=r6});var r7=P((o7)=>{Object.defineProperty(o7,"__esModule",{value:!0});var a7=s7();a7.code='require("ajv/dist/runtime/uri").default';o7.default=a7});var J5=P((p0)=>{Object.defineProperty(p0,"__esModule",{value:!0});p0.CodeGen=p0.Name=p0.nil=p0.stringify=p0.str=p0._=p0.KeywordCxt=void 0;var VF=w9();Object.defineProperty(p0,"KeywordCxt",{enumerable:!0,get:function(){return VF.KeywordCxt}});var p1=x();Object.defineProperty(p0,"_",{enumerable:!0,get:function(){return p1._}});Object.defineProperty(p0,"str",{enumerable:!0,get:function(){return p1.str}});Object.defineProperty(p0,"stringify",{enumerable:!0,get:function(){return p1.stringify}});Object.defineProperty(p0,"nil",{enumerable:!0,get:function(){return p1.nil}});Object.defineProperty(p0,"Name",{enumerable:!0,get:function(){return p1.Name}});Object.defineProperty(p0,"CodeGen",{enumerable:!0,get:function(){return p1.CodeGen}});var OF=xQ(),Y5=P9(),jF=C6(),I9=_Q(),AF=x(),T9=q9(),lQ=D9(),e6=g(),t7=_7(),UF=r7(),Z5=(Q,X)=>new RegExp(Q,X);Z5.code="new RegExp";var DF=["removeAdditional","useDefaults","coerceTypes"],qF=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),MF={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},bF={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},e7=200;function wF(Q){var X,Y,Z,W,J,$,G,K,B,H,F,O,A,j,V,D,U,w,E,I,T,Q0,B0,X0,Y0;let o1=Q.strict,K8=(X=Q.code)===null||X===void 0?void 0:X.optimize,vX=K8===!0||K8===void 0?1:K8||0,gX=(Z=(Y=Q.code)===null||Y===void 0?void 0:Y.regExp)!==null&&Z!==void 0?Z:Z5,XJ=(W=Q.uriResolver)!==null&&W!==void 0?W:UF.default;return{strictSchema:($=(J=Q.strictSchema)!==null&&J!==void 0?J:o1)!==null&&$!==void 0?$:!0,strictNumbers:(K=(G=Q.strictNumbers)!==null&&G!==void 0?G:o1)!==null&&K!==void 0?K:!0,strictTypes:(H=(B=Q.strictTypes)!==null&&B!==void 0?B:o1)!==null&&H!==void 0?H:"log",strictTuples:(O=(F=Q.strictTuples)!==null&&F!==void 0?F:o1)!==null&&O!==void 0?O:"log",strictRequired:(j=(A=Q.strictRequired)!==null&&A!==void 0?A:o1)!==null&&j!==void 0?j:!1,code:Q.code?{...Q.code,optimize:vX,regExp:gX}:{optimize:vX,regExp:gX},loopRequired:(V=Q.loopRequired)!==null&&V!==void 0?V:e7,loopEnum:(D=Q.loopEnum)!==null&&D!==void 0?D:e7,meta:(U=Q.meta)!==null&&U!==void 0?U:!0,messages:(w=Q.messages)!==null&&w!==void 0?w:!0,inlineRefs:(E=Q.inlineRefs)!==null&&E!==void 0?E:!0,schemaId:(I=Q.schemaId)!==null&&I!==void 0?I:"$id",addUsedSchema:(T=Q.addUsedSchema)!==null&&T!==void 0?T:!0,validateSchema:(Q0=Q.validateSchema)!==null&&Q0!==void 0?Q0:!0,validateFormats:(B0=Q.validateFormats)!==null&&B0!==void 0?B0:!0,unicodeRegExp:(X0=Q.unicodeRegExp)!==null&&X0!==void 0?X0:!0,int32range:(Y0=Q.int32range)!==null&&Y0!==void 0?Y0:!0,uriResolver:XJ}}class mQ{constructor(Q={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,Q=this.opts={...Q,...wF(Q)};let{es5:X,lines:Y}=this.opts.code;this.scope=new AF.ValueScope({scope:{},prefixes:qF,es5:X,lines:Y}),this.logger=EF(Q.logger);let Z=Q.validateFormats;if(Q.validateFormats=!1,this.RULES=(0,jF.getRules)(),Q5.call(this,MF,Q,"NOT SUPPORTED"),Q5.call(this,bF,Q,"DEPRECATED","warn"),this._metaOpts=IF.call(this),Q.formats)NF.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),Q.keywords)RF.call(this,Q.keywords);if(typeof Q.meta=="object")this.addMetaSchema(Q.meta);PF.call(this),Q.validateFormats=Z}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:Q,meta:X,schemaId:Y}=this.opts,Z=t7;if(Y==="id")Z={...t7},Z.id=Z.$id,delete Z.$id;if(X&&Q)this.addMetaSchema(Z,Z[Y],!1)}defaultMeta(){let{meta:Q,schemaId:X}=this.opts;return this.opts.defaultMeta=typeof Q=="object"?Q[X]||Q:void 0}validate(Q,X){let Y;if(typeof Q=="string"){if(Y=this.getSchema(Q),!Y)throw Error(`no schema with key or ref "${Q}"`)}else Y=this.compile(Q);let Z=Y(X);if(!("$async"in Y))this.errors=Y.errors;return Z}compile(Q,X){let Y=this._addSchema(Q,X);return Y.validate||this._compileSchemaEnv(Y)}compileAsync(Q,X){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:Y}=this.opts;return Z.call(this,Q,X);async function Z(B,H){await W.call(this,B.$schema);let F=this._addSchema(B,H);return F.validate||J.call(this,F)}async function W(B){if(B&&!this.getSchema(B))await Z.call(this,{$ref:B},!0)}async function J(B){try{return this._compileSchemaEnv(B)}catch(H){if(!(H instanceof Y5.default))throw H;return $.call(this,H),await G.call(this,H.missingSchema),J.call(this,B)}}function $({missingSchema:B,missingRef:H}){if(this.refs[B])throw Error(`AnySchema ${B} is loaded but ${H} cannot be resolved`)}async function G(B){let H=await K.call(this,B);if(!this.refs[B])await W.call(this,H.$schema);if(!this.refs[B])this.addSchema(H,B,X)}async function K(B){let H=this._loading[B];if(H)return H;try{return await(this._loading[B]=Y(B))}finally{delete this._loading[B]}}}addSchema(Q,X,Y,Z=this.opts.validateSchema){if(Array.isArray(Q)){for(let J of Q)this.addSchema(J,void 0,Y,Z);return this}let W;if(typeof Q==="object"){let{schemaId:J}=this.opts;if(W=Q[J],W!==void 0&&typeof W!="string")throw Error(`schema ${J} must be string`)}return X=(0,T9.normalizeId)(X||W),this._checkUnique(X),this.schemas[X]=this._addSchema(Q,Y,X,Z,!0),this}addMetaSchema(Q,X,Y=this.opts.validateSchema){return this.addSchema(Q,X,!0,Y),this}validateSchema(Q,X){if(typeof Q=="boolean")return!0;let Y;if(Y=Q.$schema,Y!==void 0&&typeof Y!="string")throw Error("$schema must be a string");if(Y=Y||this.opts.defaultMeta||this.defaultMeta(),!Y)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let Z=this.validate(Y,Q);if(!Z&&X){let W="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(W);else throw Error(W)}return Z}getSchema(Q){let X;while(typeof(X=X5.call(this,Q))=="string")Q=X;if(X===void 0){let{schemaId:Y}=this.opts,Z=new I9.SchemaEnv({schema:{},schemaId:Y});if(X=I9.resolveSchema.call(this,Z,Q),!X)return;this.refs[Q]=X}return X.validate||this._compileSchemaEnv(X)}removeSchema(Q){if(Q instanceof RegExp)return this._removeAllSchemas(this.schemas,Q),this._removeAllSchemas(this.refs,Q),this;switch(typeof Q){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let X=X5.call(this,Q);if(typeof X=="object")this._cache.delete(X.schema);return delete this.schemas[Q],delete this.refs[Q],this}case"object":{let X=Q;this._cache.delete(X);let Y=Q[this.opts.schemaId];if(Y)Y=(0,T9.normalizeId)(Y),delete this.schemas[Y],delete this.refs[Y];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(Q){for(let X of Q)this.addKeyword(X);return this}addKeyword(Q,X){let Y;if(typeof Q=="string"){if(Y=Q,typeof X=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),X.keyword=Y}else if(typeof Q=="object"&&X===void 0){if(X=Q,Y=X.keyword,Array.isArray(Y)&&!Y.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(SF.call(this,Y,X),!X)return(0,e6.eachItem)(Y,(W)=>t6.call(this,W)),this;yF.call(this,X);let Z={...X,type:(0,lQ.getJSONTypes)(X.type),schemaType:(0,lQ.getJSONTypes)(X.schemaType)};return(0,e6.eachItem)(Y,Z.type.length===0?(W)=>t6.call(this,W,Z):(W)=>Z.type.forEach((J)=>t6.call(this,W,Z,J))),this}getKeyword(Q){let X=this.RULES.all[Q];return typeof X=="object"?X.definition:!!X}removeKeyword(Q){let{RULES:X}=this;delete X.keywords[Q],delete X.all[Q];for(let Y of X.rules){let Z=Y.rules.findIndex((W)=>W.keyword===Q);if(Z>=0)Y.rules.splice(Z,1)}return this}addFormat(Q,X){if(typeof X=="string")X=new RegExp(X);return this.formats[Q]=X,this}errorsText(Q=this.errors,{separator:X=", ",dataVar:Y="data"}={}){if(!Q||Q.length===0)return"No errors";return Q.map((Z)=>`${Y}${Z.instancePath} ${Z.message}`).reduce((Z,W)=>Z+X+W)}$dataMetaSchema(Q,X){let Y=this.RULES.all;Q=JSON.parse(JSON.stringify(Q));for(let Z of X){let W=Z.split("/").slice(1),J=Q;for(let $ of W)J=J[$];for(let $ in Y){let G=Y[$];if(typeof G!="object")continue;let{$data:K}=G.definition,B=J[$];if(K&&B)J[$]=W5(B)}}return Q}_removeAllSchemas(Q,X){for(let Y in Q){let Z=Q[Y];if(!X||X.test(Y)){if(typeof Z=="string")delete Q[Y];else if(Z&&!Z.meta)this._cache.delete(Z.schema),delete Q[Y]}}}_addSchema(Q,X,Y,Z=this.opts.validateSchema,W=this.opts.addUsedSchema){let J,{schemaId:$}=this.opts;if(typeof Q=="object")J=Q[$];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof Q!="boolean")throw Error("schema must be object or boolean");let G=this._cache.get(Q);if(G!==void 0)return G;Y=(0,T9.normalizeId)(J||Y);let K=T9.getSchemaRefs.call(this,Q,Y);if(G=new I9.SchemaEnv({schema:Q,schemaId:$,meta:X,baseId:Y,localRefs:K}),this._cache.set(G.schema,G),W&&!Y.startsWith("#")){if(Y)this._checkUnique(Y);this.refs[Y]=G}if(Z)this.validateSchema(Q,!0);return G}_checkUnique(Q){if(this.schemas[Q]||this.refs[Q])throw Error(`schema with key or id "${Q}" already exists`)}_compileSchemaEnv(Q){if(Q.meta)this._compileMetaSchema(Q);else I9.compileSchema.call(this,Q);if(!Q.validate)throw Error("ajv implementation error");return Q.validate}_compileMetaSchema(Q){let X=this.opts;this.opts=this._metaOpts;try{I9.compileSchema.call(this,Q)}finally{this.opts=X}}}mQ.ValidationError=OF.default;mQ.MissingRefError=Y5.default;p0.default=mQ;function Q5(Q,X,Y,Z="error"){for(let W in Q){let J=W;if(J in X)this.logger[Z](`${Y}: option ${W}. ${Q[J]}`)}}function X5(Q){return Q=(0,T9.normalizeId)(Q),this.schemas[Q]||this.refs[Q]}function PF(){let Q=this.opts.schemas;if(!Q)return;if(Array.isArray(Q))this.addSchema(Q);else for(let X in Q)this.addSchema(Q[X],X)}function NF(){for(let Q in this.opts.formats){let X=this.opts.formats[Q];if(X)this.addFormat(Q,X)}}function RF(Q){if(Array.isArray(Q)){this.addVocabulary(Q);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let X in Q){let Y=Q[X];if(!Y.keyword)Y.keyword=X;this.addKeyword(Y)}}function IF(){let Q={...this.opts};for(let X of DF)delete Q[X];return Q}var TF={log(){},warn(){},error(){}};function EF(Q){if(Q===!1)return TF;if(Q===void 0)return console;if(Q.log&&Q.warn&&Q.error)return Q;throw Error("logger must implement log, warn and error methods")}var CF=/^[a-z_$][a-z0-9_$:-]*$/i;function SF(Q,X){let{RULES:Y}=this;if((0,e6.eachItem)(Q,(Z)=>{if(Y.keywords[Z])throw Error(`Keyword ${Z} is already defined`);if(!CF.test(Z))throw Error(`Keyword ${Z} has invalid name`)}),!X)return;if(X.$data&&!(("code"in X)||("validate"in X)))throw Error('$data keyword must have "code" or "validate" function')}function t6(Q,X,Y){var Z;let W=X===null||X===void 0?void 0:X.post;if(Y&&W)throw Error('keyword with "post" flag cannot have "type"');let{RULES:J}=this,$=W?J.post:J.rules.find(({type:K})=>K===Y);if(!$)$={type:Y,rules:[]},J.rules.push($);if(J.keywords[Q]=!0,!X)return;let G={keyword:Q,definition:{...X,type:(0,lQ.getJSONTypes)(X.type),schemaType:(0,lQ.getJSONTypes)(X.schemaType)}};if(X.before)kF.call(this,$,G,X.before);else $.rules.push(G);J.all[Q]=G,(Z=X.implements)===null||Z===void 0||Z.forEach((K)=>this.addKeyword(K))}function kF(Q,X,Y){let Z=Q.rules.findIndex((W)=>W.keyword===Y);if(Z>=0)Q.rules.splice(Z,0,X);else Q.rules.push(X),this.logger.warn(`rule ${Y} is not defined`)}function yF(Q){let{metaSchema:X}=Q;if(X===void 0)return;if(Q.$data&&this.opts.$data)X=W5(X);Q.validateSchema=this.compile(X,!0)}var xF={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function W5(Q){return{anyOf:[Q,xF]}}});var G5=P(($5)=>{Object.defineProperty($5,"__esModule",{value:!0});var vF={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};$5.default=vF});var z5=P((F5)=>{Object.defineProperty(F5,"__esModule",{value:!0});F5.callRef=F5.getValidate=void 0;var hF=P9(),K5=w0(),A0=x(),d1=u0(),B5=_Q(),pQ=g(),uF={keyword:"$ref",schemaType:"string",code(Q){let{gen:X,schema:Y,it:Z}=Q,{baseId:W,schemaEnv:J,validateName:$,opts:G,self:K}=Z,{root:B}=J;if((Y==="#"||Y==="#/")&&W===B.baseId)return F();let H=B5.resolveRef.call(K,B,W,Y);if(H===void 0)throw new hF.default(Z.opts.uriResolver,W,Y);if(H instanceof B5.SchemaEnv)return O(H);return A(H);function F(){if(J===B)return dQ(Q,$,J,J.$async);let j=X.scopeValue("root",{ref:B});return dQ(Q,A0._`${j}.validate`,B,B.$async)}function O(j){let V=H5(Q,j);dQ(Q,V,j,j.$async)}function A(j){let V=X.scopeValue("schema",G.code.source===!0?{ref:j,code:(0,A0.stringify)(j)}:{ref:j}),D=X.name("valid"),U=Q.subschema({schema:j,dataTypes:[],schemaPath:A0.nil,topSchemaRef:V,errSchemaPath:Y},D);Q.mergeEvaluated(U),Q.ok(D)}}};function H5(Q,X){let{gen:Y}=Q;return X.validate?Y.scopeValue("validate",{ref:X.validate}):A0._`${Y.scopeValue("wrapper",{ref:X})}.validate`}F5.getValidate=H5;function dQ(Q,X,Y,Z){let{gen:W,it:J}=Q,{allErrors:$,schemaEnv:G,opts:K}=J,B=K.passContext?d1.default.this:A0.nil;if(Z)H();else F();function H(){if(!G.$async)throw Error("async schema referenced by sync schema");let j=W.let("valid");W.try(()=>{if(W.code(A0._`await ${(0,K5.callValidateCode)(Q,X,B)}`),A(X),!$)W.assign(j,!0)},(V)=>{if(W.if(A0._`!(${V} instanceof ${J.ValidationError})`,()=>W.throw(V)),O(V),!$)W.assign(j,!1)}),Q.ok(j)}function F(){Q.result((0,K5.callValidateCode)(Q,X,B),()=>A(X),()=>O(X))}function O(j){let V=A0._`${j}.errors`;W.assign(d1.default.vErrors,A0._`${d1.default.vErrors} === null ? ${V} : ${d1.default.vErrors}.concat(${V})`),W.assign(d1.default.errors,A0._`${d1.default.vErrors}.length`)}function A(j){var V;if(!J.opts.unevaluated)return;let D=(V=Y===null||Y===void 0?void 0:Y.validate)===null||V===void 0?void 0:V.evaluated;if(J.props!==!0)if(D&&!D.dynamicProps){if(D.props!==void 0)J.props=pQ.mergeEvaluated.props(W,D.props,J.props)}else{let U=W.var("props",A0._`${j}.evaluated.props`);J.props=pQ.mergeEvaluated.props(W,U,J.props,A0.Name)}if(J.items!==!0)if(D&&!D.dynamicItems){if(D.items!==void 0)J.items=pQ.mergeEvaluated.items(W,D.items,J.items)}else{let U=W.var("items",A0._`${j}.evaluated.items`);J.items=pQ.mergeEvaluated.items(W,U,J.items,A0.Name)}}}F5.callRef=dQ;F5.default=uF});var O5=P((V5)=>{Object.defineProperty(V5,"__esModule",{value:!0});var pF=G5(),dF=z5(),cF=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",pF.default,dF.default];V5.default=cF});var A5=P((j5)=>{Object.defineProperty(j5,"__esModule",{value:!0});var cQ=x(),Y1=cQ.operators,iQ={maximum:{okStr:"<=",ok:Y1.LTE,fail:Y1.GT},minimum:{okStr:">=",ok:Y1.GTE,fail:Y1.LT},exclusiveMaximum:{okStr:"<",ok:Y1.LT,fail:Y1.GTE},exclusiveMinimum:{okStr:">",ok:Y1.GT,fail:Y1.LTE}},nF={message:({keyword:Q,schemaCode:X})=>cQ.str`must be ${iQ[Q].okStr} ${X}`,params:({keyword:Q,schemaCode:X})=>cQ._`{comparison: ${iQ[Q].okStr}, limit: ${X}}`},sF={keyword:Object.keys(iQ),type:"number",schemaType:"number",$data:!0,error:nF,code(Q){let{keyword:X,data:Y,schemaCode:Z}=Q;Q.fail$data(cQ._`${Y} ${iQ[X].fail} ${Z} || isNaN(${Y})`)}};j5.default=sF});var D5=P((U5)=>{Object.defineProperty(U5,"__esModule",{value:!0});var E9=x(),oF={message:({schemaCode:Q})=>E9.str`must be multiple of ${Q}`,params:({schemaCode:Q})=>E9._`{multipleOf: ${Q}}`},rF={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:oF,code(Q){let{gen:X,data:Y,schemaCode:Z,it:W}=Q,J=W.opts.multipleOfPrecision,$=X.let("res"),G=J?E9._`Math.abs(Math.round(${$}) - ${$}) > 1e-${J}`:E9._`${$} !== parseInt(${$})`;Q.fail$data(E9._`(${Z} === 0 || (${$} = ${Y}/${Z}, ${G}))`)}};U5.default=rF});var b5=P((M5)=>{Object.defineProperty(M5,"__esModule",{value:!0});function q5(Q){let X=Q.length,Y=0,Z=0,W;while(Z<X)if(Y++,W=Q.charCodeAt(Z++),W>=55296&&W<=56319&&Z<X){if(W=Q.charCodeAt(Z),(W&64512)===56320)Z++}return Y}M5.default=q5;q5.code='require("ajv/dist/runtime/ucs2length").default'});var P5=P((w5)=>{Object.defineProperty(w5,"__esModule",{value:!0});var j1=x(),QL=g(),XL=b5(),YL={message({keyword:Q,schemaCode:X}){let Y=Q==="maxLength"?"more":"fewer";return j1.str`must NOT have ${Y} than ${X} characters`},params:({schemaCode:Q})=>j1._`{limit: ${Q}}`},ZL={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:YL,code(Q){let{keyword:X,data:Y,schemaCode:Z,it:W}=Q,J=X==="maxLength"?j1.operators.GT:j1.operators.LT,$=W.opts.unicode===!1?j1._`${Y}.length`:j1._`${(0,QL.useFunc)(Q.gen,XL.default)}(${Y})`;Q.fail$data(j1._`${$} ${J} ${Z}`)}};w5.default=ZL});var R5=P((N5)=>{Object.defineProperty(N5,"__esModule",{value:!0});var JL=w0(),$L=g(),c1=x(),GL={message:({schemaCode:Q})=>c1.str`must match pattern "${Q}"`,params:({schemaCode:Q})=>c1._`{pattern: ${Q}}`},KL={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:GL,code(Q){let{gen:X,data:Y,$data:Z,schema:W,schemaCode:J,it:$}=Q,G=$.opts.unicodeRegExp?"u":"";if(Z){let{regExp:K}=$.opts.code,B=K.code==="new RegExp"?c1._`new RegExp`:(0,$L.useFunc)(X,K),H=X.let("valid");X.try(()=>X.assign(H,c1._`${B}(${J}, ${G}).test(${Y})`),()=>X.assign(H,!1)),Q.fail$data(c1._`!${H}`)}else{let K=(0,JL.usePattern)(Q,W);Q.fail$data(c1._`!${K}.test(${Y})`)}}};N5.default=KL});var T5=P((I5)=>{Object.defineProperty(I5,"__esModule",{value:!0});var C9=x(),HL={message({keyword:Q,schemaCode:X}){let Y=Q==="maxProperties"?"more":"fewer";return C9.str`must NOT have ${Y} than ${X} properties`},params:({schemaCode:Q})=>C9._`{limit: ${Q}}`},FL={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:HL,code(Q){let{keyword:X,data:Y,schemaCode:Z}=Q,W=X==="maxProperties"?C9.operators.GT:C9.operators.LT;Q.fail$data(C9._`Object.keys(${Y}).length ${W} ${Z}`)}};I5.default=FL});var C5=P((E5)=>{Object.defineProperty(E5,"__esModule",{value:!0});var S9=w0(),k9=x(),zL=g(),VL={message:({params:{missingProperty:Q}})=>k9.str`must have required property '${Q}'`,params:({params:{missingProperty:Q}})=>k9._`{missingProperty: ${Q}}`},OL={keyword:"required",type:"object",schemaType:"array",$data:!0,error:VL,code(Q){let{gen:X,schema:Y,schemaCode:Z,data:W,$data:J,it:$}=Q,{opts:G}=$;if(!J&&Y.length===0)return;let K=Y.length>=G.loopRequired;if($.allErrors)B();else H();if(G.strictRequired){let A=Q.parentSchema.properties,{definedProperties:j}=Q.it;for(let V of Y)if((A===null||A===void 0?void 0:A[V])===void 0&&!j.has(V)){let D=$.schemaEnv.baseId+$.errSchemaPath,U=`required property "${V}" is not defined at "${D}" (strictRequired)`;(0,zL.checkStrictMode)($,U,$.opts.strictRequired)}}function B(){if(K||J)Q.block$data(k9.nil,F);else for(let A of Y)(0,S9.checkReportMissingProp)(Q,A)}function H(){let A=X.let("missing");if(K||J){let j=X.let("valid",!0);Q.block$data(j,()=>O(A,j)),Q.ok(j)}else X.if((0,S9.checkMissingProp)(Q,Y,A)),(0,S9.reportMissingProp)(Q,A),X.else()}function F(){X.forOf("prop",Z,(A)=>{Q.setParams({missingProperty:A}),X.if((0,S9.noPropertyInData)(X,W,A,G.ownProperties),()=>Q.error())})}function O(A,j){Q.setParams({missingProperty:A}),X.forOf(A,Z,()=>{X.assign(j,(0,S9.propertyInData)(X,W,A,G.ownProperties)),X.if((0,k9.not)(j),()=>{Q.error(),X.break()})},k9.nil)}}};E5.default=OL});var k5=P((S5)=>{Object.defineProperty(S5,"__esModule",{value:!0});var y9=x(),AL={message({keyword:Q,schemaCode:X}){let Y=Q==="maxItems"?"more":"fewer";return y9.str`must NOT have ${Y} than ${X} items`},params:({schemaCode:Q})=>y9._`{limit: ${Q}}`},UL={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:AL,code(Q){let{keyword:X,data:Y,schemaCode:Z}=Q,W=X==="maxItems"?y9.operators.GT:y9.operators.LT;Q.fail$data(y9._`${Y}.length ${W} ${Z}`)}};S5.default=UL});var nQ=P((x5)=>{Object.defineProperty(x5,"__esModule",{value:!0});var y5=g6();y5.code='require("ajv/dist/runtime/equal").default';x5.default=y5});var _5=P((f5)=>{Object.defineProperty(f5,"__esModule",{value:!0});var QX=D9(),G0=x(),ML=g(),bL=nQ(),wL={message:({params:{i:Q,j:X}})=>G0.str`must NOT have duplicate items (items ## ${X} and ${Q} are identical)`,params:({params:{i:Q,j:X}})=>G0._`{i: ${Q}, j: ${X}}`},PL={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:wL,code(Q){let{gen:X,data:Y,$data:Z,schema:W,parentSchema:J,schemaCode:$,it:G}=Q;if(!Z&&!W)return;let K=X.let("valid"),B=J.items?(0,QX.getSchemaTypes)(J.items):[];Q.block$data(K,H,G0._`${$} === false`),Q.ok(K);function H(){let j=X.let("i",G0._`${Y}.length`),V=X.let("j");Q.setParams({i:j,j:V}),X.assign(K,!0),X.if(G0._`${j} > 1`,()=>(F()?O:A)(j,V))}function F(){return B.length>0&&!B.some((j)=>j==="object"||j==="array")}function O(j,V){let D=X.name("item"),U=(0,QX.checkDataTypes)(B,D,G.opts.strictNumbers,QX.DataType.Wrong),w=X.const("indices",G0._`{}`);X.for(G0._`;${j}--;`,()=>{if(X.let(D,G0._`${Y}[${j}]`),X.if(U,G0._`continue`),B.length>1)X.if(G0._`typeof ${D} == "string"`,G0._`${D} += "_"`);X.if(G0._`typeof ${w}[${D}] == "number"`,()=>{X.assign(V,G0._`${w}[${D}]`),Q.error(),X.assign(K,!1).break()}).code(G0._`${w}[${D}] = ${j}`)})}function A(j,V){let D=(0,ML.useFunc)(X,bL.default),U=X.name("outer");X.label(U).for(G0._`;${j}--;`,()=>X.for(G0._`${V} = ${j}; ${V}--;`,()=>X.if(G0._`${D}(${Y}[${j}], ${Y}[${V}])`,()=>{Q.error(),X.assign(K,!1).break(U)})))}}};f5.default=PL});var g5=P((v5)=>{Object.defineProperty(v5,"__esModule",{value:!0});var XX=x(),RL=g(),IL=nQ(),TL={message:"must be equal to constant",params:({schemaCode:Q})=>XX._`{allowedValue: ${Q}}`},EL={keyword:"const",$data:!0,error:TL,code(Q){let{gen:X,data:Y,$data:Z,schemaCode:W,schema:J}=Q;if(Z||J&&typeof J=="object")Q.fail$data(XX._`!${(0,RL.useFunc)(X,IL.default)}(${Y}, ${W})`);else Q.fail(XX._`${J} !== ${Y}`)}};v5.default=EL});var u5=P((h5)=>{Object.defineProperty(h5,"__esModule",{value:!0});var x9=x(),SL=g(),kL=nQ(),yL={message:"must be equal to one of the allowed values",params:({schemaCode:Q})=>x9._`{allowedValues: ${Q}}`},xL={keyword:"enum",schemaType:"array",$data:!0,error:yL,code(Q){let{gen:X,data:Y,$data:Z,schema:W,schemaCode:J,it:$}=Q;if(!Z&&W.length===0)throw Error("enum must have non-empty array");let G=W.length>=$.opts.loopEnum,K,B=()=>K!==null&&K!==void 0?K:K=(0,SL.useFunc)(X,kL.default),H;if(G||Z)H=X.let("valid"),Q.block$data(H,F);else{if(!Array.isArray(W))throw Error("ajv implementation error");let A=X.const("vSchema",J);H=(0,x9.or)(...W.map((j,V)=>O(A,V)))}Q.pass(H);function F(){X.assign(H,!1),X.forOf("v",J,(A)=>X.if(x9._`${B()}(${Y}, ${A})`,()=>X.assign(H,!0).break()))}function O(A,j){let V=W[j];return typeof V==="object"&&V!==null?x9._`${B()}(${Y}, ${A}[${j}])`:x9._`${Y} === ${V}`}}};h5.default=xL});var m5=P((l5)=>{Object.defineProperty(l5,"__esModule",{value:!0});var _L=A5(),vL=D5(),gL=P5(),hL=R5(),uL=T5(),lL=C5(),mL=k5(),pL=_5(),dL=g5(),cL=u5(),iL=[_L.default,vL.default,gL.default,hL.default,uL.default,lL.default,mL.default,pL.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},dL.default,cL.default];l5.default=iL});var ZX=P((d5)=>{Object.defineProperty(d5,"__esModule",{value:!0});d5.validateAdditionalItems=void 0;var A1=x(),YX=g(),sL={message:({params:{len:Q}})=>A1.str`must NOT have more than ${Q} items`,params:({params:{len:Q}})=>A1._`{limit: ${Q}}`},aL={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:sL,code(Q){let{parentSchema:X,it:Y}=Q,{items:Z}=X;if(!Array.isArray(Z)){(0,YX.checkStrictMode)(Y,'"additionalItems" is ignored when "items" is not an array of schemas');return}p5(Q,Z)}};function p5(Q,X){let{gen:Y,schema:Z,data:W,keyword:J,it:$}=Q;$.items=!0;let G=Y.const("len",A1._`${W}.length`);if(Z===!1)Q.setParams({len:X.length}),Q.pass(A1._`${G} <= ${X.length}`);else if(typeof Z=="object"&&!(0,YX.alwaysValidSchema)($,Z)){let B=Y.var("valid",A1._`${G} <= ${X.length}`);Y.if((0,A1.not)(B),()=>K(B)),Q.ok(B)}function K(B){Y.forRange("i",X.length,G,(H)=>{if(Q.subschema({keyword:J,dataProp:H,dataPropType:YX.Type.Num},B),!$.allErrors)Y.if((0,A1.not)(B),()=>Y.break())})}}d5.validateAdditionalItems=p5;d5.default=aL});var WX=P((s5)=>{Object.defineProperty(s5,"__esModule",{value:!0});s5.validateTuple=void 0;var i5=x(),sQ=g(),rL=w0(),tL={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(Q){let{schema:X,it:Y}=Q;if(Array.isArray(X))return n5(Q,"additionalItems",X);if(Y.items=!0,(0,sQ.alwaysValidSchema)(Y,X))return;Q.ok((0,rL.validateArray)(Q))}};function n5(Q,X,Y=Q.schema){let{gen:Z,parentSchema:W,data:J,keyword:$,it:G}=Q;if(H(W),G.opts.unevaluated&&Y.length&&G.items!==!0)G.items=sQ.mergeEvaluated.items(Z,Y.length,G.items);let K=Z.name("valid"),B=Z.const("len",i5._`${J}.length`);Y.forEach((F,O)=>{if((0,sQ.alwaysValidSchema)(G,F))return;Z.if(i5._`${B} > ${O}`,()=>Q.subschema({keyword:$,schemaProp:O,dataProp:O},K)),Q.ok(K)});function H(F){let{opts:O,errSchemaPath:A}=G,j=Y.length,V=j===F.minItems&&(j===F.maxItems||F[X]===!1);if(O.strictTuples&&!V){let D=`"${$}" is ${j}-tuple, but minItems or maxItems/${X} are not specified or different at path "${A}"`;(0,sQ.checkStrictMode)(G,D,O.strictTuples)}}}s5.validateTuple=n5;s5.default=tL});var r5=P((o5)=>{Object.defineProperty(o5,"__esModule",{value:!0});var Qz=WX(),Xz={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:(Q)=>(0,Qz.validateTuple)(Q,"items")};o5.default=Xz});var QZ=P((e5)=>{Object.defineProperty(e5,"__esModule",{value:!0});var t5=x(),Zz=g(),Wz=w0(),Jz=ZX(),$z={message:({params:{len:Q}})=>t5.str`must NOT have more than ${Q} items`,params:({params:{len:Q}})=>t5._`{limit: ${Q}}`},Gz={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:$z,code(Q){let{schema:X,parentSchema:Y,it:Z}=Q,{prefixItems:W}=Y;if(Z.items=!0,(0,Zz.alwaysValidSchema)(Z,X))return;if(W)(0,Jz.validateAdditionalItems)(Q,W);else Q.ok((0,Wz.validateArray)(Q))}};e5.default=Gz});var YZ=P((XZ)=>{Object.defineProperty(XZ,"__esModule",{value:!0});var P0=x(),aQ=g(),Bz={message:({params:{min:Q,max:X}})=>X===void 0?P0.str`must contain at least ${Q} valid item(s)`:P0.str`must contain at least ${Q} and no more than ${X} valid item(s)`,params:({params:{min:Q,max:X}})=>X===void 0?P0._`{minContains: ${Q}}`:P0._`{minContains: ${Q}, maxContains: ${X}}`},Hz={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Bz,code(Q){let{gen:X,schema:Y,parentSchema:Z,data:W,it:J}=Q,$,G,{minContains:K,maxContains:B}=Z;if(J.opts.next)$=K===void 0?1:K,G=B;else $=1;let H=X.const("len",P0._`${W}.length`);if(Q.setParams({min:$,max:G}),G===void 0&&$===0){(0,aQ.checkStrictMode)(J,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(G!==void 0&&$>G){(0,aQ.checkStrictMode)(J,'"minContains" > "maxContains" is always invalid'),Q.fail();return}if((0,aQ.alwaysValidSchema)(J,Y)){let V=P0._`${H} >= ${$}`;if(G!==void 0)V=P0._`${V} && ${H} <= ${G}`;Q.pass(V);return}J.items=!0;let F=X.name("valid");if(G===void 0&&$===1)A(F,()=>X.if(F,()=>X.break()));else if($===0){if(X.let(F,!0),G!==void 0)X.if(P0._`${W}.length > 0`,O)}else X.let(F,!1),O();Q.result(F,()=>Q.reset());function O(){let V=X.name("_valid"),D=X.let("count",0);A(V,()=>X.if(V,()=>j(D)))}function A(V,D){X.forRange("i",0,H,(U)=>{Q.subschema({keyword:"contains",dataProp:U,dataPropType:aQ.Type.Num,compositeRule:!0},V),D()})}function j(V){if(X.code(P0._`${V}++`),G===void 0)X.if(P0._`${V} >= ${$}`,()=>X.assign(F,!0).break());else if(X.if(P0._`${V} > ${G}`,()=>X.assign(F,!1).break()),$===1)X.assign(F,!0);else X.if(P0._`${V} >= ${$}`,()=>X.assign(F,!0))}}};XZ.default=Hz});var KZ=P((JZ)=>{Object.defineProperty(JZ,"__esModule",{value:!0});JZ.validateSchemaDeps=JZ.validatePropertyDeps=JZ.error=void 0;var JX=x(),Lz=g(),f9=w0();JZ.error={message:({params:{property:Q,depsCount:X,deps:Y}})=>{let Z=X===1?"property":"properties";return JX.str`must have ${Z} ${Y} when property ${Q} is present`},params:({params:{property:Q,depsCount:X,deps:Y,missingProperty:Z}})=>JX._`{property: ${Q},
6
- missingProperty: ${Z},
7
- depsCount: ${X},
8
- deps: ${Y}}`};var zz={keyword:"dependencies",type:"object",schemaType:"object",error:JZ.error,code(Q){let[X,Y]=Vz(Q);ZZ(Q,X),WZ(Q,Y)}};function Vz({schema:Q}){let X={},Y={};for(let Z in Q){if(Z==="__proto__")continue;let W=Array.isArray(Q[Z])?X:Y;W[Z]=Q[Z]}return[X,Y]}function ZZ(Q,X=Q.schema){let{gen:Y,data:Z,it:W}=Q;if(Object.keys(X).length===0)return;let J=Y.let("missing");for(let $ in X){let G=X[$];if(G.length===0)continue;let K=(0,f9.propertyInData)(Y,Z,$,W.opts.ownProperties);if(Q.setParams({property:$,depsCount:G.length,deps:G.join(", ")}),W.allErrors)Y.if(K,()=>{for(let B of G)(0,f9.checkReportMissingProp)(Q,B)});else Y.if(JX._`${K} && (${(0,f9.checkMissingProp)(Q,G,J)})`),(0,f9.reportMissingProp)(Q,J),Y.else()}}JZ.validatePropertyDeps=ZZ;function WZ(Q,X=Q.schema){let{gen:Y,data:Z,keyword:W,it:J}=Q,$=Y.name("valid");for(let G in X){if((0,Lz.alwaysValidSchema)(J,X[G]))continue;Y.if((0,f9.propertyInData)(Y,Z,G,J.opts.ownProperties),()=>{let K=Q.subschema({keyword:W,schemaProp:G},$);Q.mergeValidEvaluated(K,$)},()=>Y.var($,!0)),Q.ok($)}}JZ.validateSchemaDeps=WZ;JZ.default=zz});var FZ=P((HZ)=>{Object.defineProperty(HZ,"__esModule",{value:!0});var BZ=x(),Az=g(),Uz={message:"property name must be valid",params:({params:Q})=>BZ._`{propertyName: ${Q.propertyName}}`},Dz={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Uz,code(Q){let{gen:X,schema:Y,data:Z,it:W}=Q;if((0,Az.alwaysValidSchema)(W,Y))return;let J=X.name("valid");X.forIn("key",Z,($)=>{Q.setParams({propertyName:$}),Q.subschema({keyword:"propertyNames",data:$,dataTypes:["string"],propertyName:$,compositeRule:!0},J),X.if((0,BZ.not)(J),()=>{if(Q.error(!0),!W.allErrors)X.break()})}),Q.ok(J)}};HZ.default=Dz});var $X=P((LZ)=>{Object.defineProperty(LZ,"__esModule",{value:!0});var oQ=w0(),k0=x(),Mz=u0(),rQ=g(),bz={message:"must NOT have additional properties",params:({params:Q})=>k0._`{additionalProperty: ${Q.additionalProperty}}`},wz={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:bz,code(Q){let{gen:X,schema:Y,parentSchema:Z,data:W,errsCount:J,it:$}=Q;if(!J)throw Error("ajv implementation error");let{allErrors:G,opts:K}=$;if($.props=!0,K.removeAdditional!=="all"&&(0,rQ.alwaysValidSchema)($,Y))return;let B=(0,oQ.allSchemaProperties)(Z.properties),H=(0,oQ.allSchemaProperties)(Z.patternProperties);F(),Q.ok(k0._`${J} === ${Mz.default.errors}`);function F(){X.forIn("key",W,(D)=>{if(!B.length&&!H.length)j(D);else X.if(O(D),()=>j(D))})}function O(D){let U;if(B.length>8){let w=(0,rQ.schemaRefOrVal)($,Z.properties,"properties");U=(0,oQ.isOwnProperty)(X,w,D)}else if(B.length)U=(0,k0.or)(...B.map((w)=>k0._`${D} === ${w}`));else U=k0.nil;if(H.length)U=(0,k0.or)(U,...H.map((w)=>k0._`${(0,oQ.usePattern)(Q,w)}.test(${D})`));return(0,k0.not)(U)}function A(D){X.code(k0._`delete ${W}[${D}]`)}function j(D){if(K.removeAdditional==="all"||K.removeAdditional&&Y===!1){A(D);return}if(Y===!1){if(Q.setParams({additionalProperty:D}),Q.error(),!G)X.break();return}if(typeof Y=="object"&&!(0,rQ.alwaysValidSchema)($,Y)){let U=X.name("valid");if(K.removeAdditional==="failing")V(D,U,!1),X.if((0,k0.not)(U),()=>{Q.reset(),A(D)});else if(V(D,U),!G)X.if((0,k0.not)(U),()=>X.break())}}function V(D,U,w){let E={keyword:"additionalProperties",dataProp:D,dataPropType:rQ.Type.Str};if(w===!1)Object.assign(E,{compositeRule:!0,createErrors:!1,allErrors:!1});Q.subschema(E,U)}}};LZ.default=wz});var jZ=P((OZ)=>{Object.defineProperty(OZ,"__esModule",{value:!0});var Nz=w9(),zZ=w0(),GX=g(),VZ=$X(),Rz={keyword:"properties",type:"object",schemaType:"object",code(Q){let{gen:X,schema:Y,parentSchema:Z,data:W,it:J}=Q;if(J.opts.removeAdditional==="all"&&Z.additionalProperties===void 0)VZ.default.code(new Nz.KeywordCxt(J,VZ.default,"additionalProperties"));let $=(0,zZ.allSchemaProperties)(Y);for(let F of $)J.definedProperties.add(F);if(J.opts.unevaluated&&$.length&&J.props!==!0)J.props=GX.mergeEvaluated.props(X,(0,GX.toHash)($),J.props);let G=$.filter((F)=>!(0,GX.alwaysValidSchema)(J,Y[F]));if(G.length===0)return;let K=X.name("valid");for(let F of G){if(B(F))H(F);else{if(X.if((0,zZ.propertyInData)(X,W,F,J.opts.ownProperties)),H(F),!J.allErrors)X.else().var(K,!0);X.endIf()}Q.it.definedProperties.add(F),Q.ok(K)}function B(F){return J.opts.useDefaults&&!J.compositeRule&&Y[F].default!==void 0}function H(F){Q.subschema({keyword:"properties",schemaProp:F,dataProp:F},K)}}};OZ.default=Rz});var MZ=P((qZ)=>{Object.defineProperty(qZ,"__esModule",{value:!0});var AZ=w0(),tQ=x(),UZ=g(),DZ=g(),Tz={keyword:"patternProperties",type:"object",schemaType:"object",code(Q){let{gen:X,schema:Y,data:Z,parentSchema:W,it:J}=Q,{opts:$}=J,G=(0,AZ.allSchemaProperties)(Y),K=G.filter((V)=>(0,UZ.alwaysValidSchema)(J,Y[V]));if(G.length===0||K.length===G.length&&(!J.opts.unevaluated||J.props===!0))return;let B=$.strictSchema&&!$.allowMatchingProperties&&W.properties,H=X.name("valid");if(J.props!==!0&&!(J.props instanceof tQ.Name))J.props=(0,DZ.evaluatedPropsToName)(X,J.props);let{props:F}=J;O();function O(){for(let V of G){if(B)A(V);if(J.allErrors)j(V);else X.var(H,!0),j(V),X.if(H)}}function A(V){for(let D in B)if(new RegExp(V).test(D))(0,UZ.checkStrictMode)(J,`property ${D} matches pattern ${V} (use allowMatchingProperties)`)}function j(V){X.forIn("key",Z,(D)=>{X.if(tQ._`${(0,AZ.usePattern)(Q,V)}.test(${D})`,()=>{let U=K.includes(V);if(!U)Q.subschema({keyword:"patternProperties",schemaProp:V,dataProp:D,dataPropType:DZ.Type.Str},H);if(J.opts.unevaluated&&F!==!0)X.assign(tQ._`${F}[${D}]`,!0);else if(!U&&!J.allErrors)X.if((0,tQ.not)(H),()=>X.break())})})}}};qZ.default=Tz});var wZ=P((bZ)=>{Object.defineProperty(bZ,"__esModule",{value:!0});var Cz=g(),Sz={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(Q){let{gen:X,schema:Y,it:Z}=Q;if((0,Cz.alwaysValidSchema)(Z,Y)){Q.fail();return}let W=X.name("valid");Q.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},W),Q.failResult(W,()=>Q.reset(),()=>Q.error())},error:{message:"must NOT be valid"}};bZ.default=Sz});var NZ=P((PZ)=>{Object.defineProperty(PZ,"__esModule",{value:!0});var yz=w0(),xz={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:yz.validateUnion,error:{message:"must match a schema in anyOf"}};PZ.default=xz});var IZ=P((RZ)=>{Object.defineProperty(RZ,"__esModule",{value:!0});var eQ=x(),_z=g(),vz={message:"must match exactly one schema in oneOf",params:({params:Q})=>eQ._`{passingSchemas: ${Q.passing}}`},gz={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:vz,code(Q){let{gen:X,schema:Y,parentSchema:Z,it:W}=Q;if(!Array.isArray(Y))throw Error("ajv implementation error");if(W.opts.discriminator&&Z.discriminator)return;let J=Y,$=X.let("valid",!1),G=X.let("passing",null),K=X.name("_valid");Q.setParams({passing:G}),X.block(B),Q.result($,()=>Q.reset(),()=>Q.error(!0));function B(){J.forEach((H,F)=>{let O;if((0,_z.alwaysValidSchema)(W,H))X.var(K,!0);else O=Q.subschema({keyword:"oneOf",schemaProp:F,compositeRule:!0},K);if(F>0)X.if(eQ._`${K} && ${$}`).assign($,!1).assign(G,eQ._`[${G}, ${F}]`).else();X.if(K,()=>{if(X.assign($,!0),X.assign(G,F),O)Q.mergeEvaluated(O,eQ.Name)})})}}};RZ.default=gz});var EZ=P((TZ)=>{Object.defineProperty(TZ,"__esModule",{value:!0});var uz=g(),lz={keyword:"allOf",schemaType:"array",code(Q){let{gen:X,schema:Y,it:Z}=Q;if(!Array.isArray(Y))throw Error("ajv implementation error");let W=X.name("valid");Y.forEach((J,$)=>{if((0,uz.alwaysValidSchema)(Z,J))return;let G=Q.subschema({keyword:"allOf",schemaProp:$},W);Q.ok(W),Q.mergeEvaluated(G)})}};TZ.default=lz});var yZ=P((kZ)=>{Object.defineProperty(kZ,"__esModule",{value:!0});var Q8=x(),SZ=g(),pz={message:({params:Q})=>Q8.str`must match "${Q.ifClause}" schema`,params:({params:Q})=>Q8._`{failingKeyword: ${Q.ifClause}}`},dz={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:pz,code(Q){let{gen:X,parentSchema:Y,it:Z}=Q;if(Y.then===void 0&&Y.else===void 0)(0,SZ.checkStrictMode)(Z,'"if" without "then" and "else" is ignored');let W=CZ(Z,"then"),J=CZ(Z,"else");if(!W&&!J)return;let $=X.let("valid",!0),G=X.name("_valid");if(K(),Q.reset(),W&&J){let H=X.let("ifClause");Q.setParams({ifClause:H}),X.if(G,B("then",H),B("else",H))}else if(W)X.if(G,B("then"));else X.if((0,Q8.not)(G),B("else"));Q.pass($,()=>Q.error(!0));function K(){let H=Q.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},G);Q.mergeEvaluated(H)}function B(H,F){return()=>{let O=Q.subschema({keyword:H},G);if(X.assign($,G),Q.mergeValidEvaluated(O,$),F)X.assign(F,Q8._`${H}`);else Q.setParams({ifClause:H})}}}};function CZ(Q,X){let Y=Q.schema[X];return Y!==void 0&&!(0,SZ.alwaysValidSchema)(Q,Y)}kZ.default=dz});var fZ=P((xZ)=>{Object.defineProperty(xZ,"__esModule",{value:!0});var iz=g(),nz={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:Q,parentSchema:X,it:Y}){if(X.if===void 0)(0,iz.checkStrictMode)(Y,`"${Q}" without "if" is ignored`)}};xZ.default=nz});var vZ=P((_Z)=>{Object.defineProperty(_Z,"__esModule",{value:!0});var az=ZX(),oz=r5(),rz=WX(),tz=QZ(),ez=YZ(),QV=KZ(),XV=FZ(),YV=$X(),ZV=jZ(),WV=MZ(),JV=wZ(),$V=NZ(),GV=IZ(),KV=EZ(),BV=yZ(),HV=fZ();function FV(Q=!1){let X=[JV.default,$V.default,GV.default,KV.default,BV.default,HV.default,XV.default,YV.default,QV.default,ZV.default,WV.default];if(Q)X.push(oz.default,tz.default);else X.push(az.default,rz.default);return X.push(ez.default),X}_Z.default=FV});var hZ=P((gZ)=>{Object.defineProperty(gZ,"__esModule",{value:!0});var o=x(),zV={message:({schemaCode:Q})=>o.str`must match format "${Q}"`,params:({schemaCode:Q})=>o._`{format: ${Q}}`},VV={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:zV,code(Q,X){let{gen:Y,data:Z,$data:W,schema:J,schemaCode:$,it:G}=Q,{opts:K,errSchemaPath:B,schemaEnv:H,self:F}=G;if(!K.validateFormats)return;if(W)O();else A();function O(){let j=Y.scopeValue("formats",{ref:F.formats,code:K.code.formats}),V=Y.const("fDef",o._`${j}[${$}]`),D=Y.let("fType"),U=Y.let("format");Y.if(o._`typeof ${V} == "object" && !(${V} instanceof RegExp)`,()=>Y.assign(D,o._`${V}.type || "string"`).assign(U,o._`${V}.validate`),()=>Y.assign(D,o._`"string"`).assign(U,V)),Q.fail$data((0,o.or)(w(),E()));function w(){if(K.strictSchema===!1)return o.nil;return o._`${$} && !${U}`}function E(){let I=H.$async?o._`(${V}.async ? await ${U}(${Z}) : ${U}(${Z}))`:o._`${U}(${Z})`,T=o._`(typeof ${U} == "function" ? ${I} : ${U}.test(${Z}))`;return o._`${U} && ${U} !== true && ${D} === ${X} && !${T}`}}function A(){let j=F.formats[J];if(!j){w();return}if(j===!0)return;let[V,D,U]=E(j);if(V===X)Q.pass(I());function w(){if(K.strictSchema===!1){F.logger.warn(T());return}throw Error(T());function T(){return`unknown format "${J}" ignored in schema at path "${B}"`}}function E(T){let Q0=T instanceof RegExp?(0,o.regexpCode)(T):K.code.formats?o._`${K.code.formats}${(0,o.getProperty)(J)}`:void 0,B0=Y.scopeValue("formats",{key:J,ref:T,code:Q0});if(typeof T=="object"&&!(T instanceof RegExp))return[T.type||"string",T.validate,o._`${B0}.validate`];return["string",T,B0]}function I(){if(typeof j=="object"&&!(j instanceof RegExp)&&j.async){if(!H.$async)throw Error("async format in sync schema");return o._`await ${U}(${Z})`}return typeof D=="function"?o._`${U}(${Z})`:o._`${U}.test(${Z})`}}}};gZ.default=VV});var lZ=P((uZ)=>{Object.defineProperty(uZ,"__esModule",{value:!0});var jV=hZ(),AV=[jV.default];uZ.default=AV});var dZ=P((mZ)=>{Object.defineProperty(mZ,"__esModule",{value:!0});mZ.contentVocabulary=mZ.metadataVocabulary=void 0;mZ.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];mZ.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var nZ=P((iZ)=>{Object.defineProperty(iZ,"__esModule",{value:!0});var qV=O5(),MV=m5(),bV=vZ(),wV=lZ(),cZ=dZ(),PV=[qV.default,MV.default,(0,bV.default)(),wV.default,cZ.metadataVocabulary,cZ.contentVocabulary];iZ.default=PV});var rZ=P((aZ)=>{Object.defineProperty(aZ,"__esModule",{value:!0});aZ.DiscrError=void 0;var sZ;(function(Q){Q.Tag="tag",Q.Mapping="mapping"})(sZ||(aZ.DiscrError=sZ={}))});var QW=P((eZ)=>{Object.defineProperty(eZ,"__esModule",{value:!0});var i1=x(),KX=rZ(),tZ=_Q(),RV=P9(),IV=g(),TV={message:({params:{discrError:Q,tagName:X}})=>Q===KX.DiscrError.Tag?`tag "${X}" must be string`:`value of tag "${X}" must be in oneOf`,params:({params:{discrError:Q,tag:X,tagName:Y}})=>i1._`{error: ${Q}, tag: ${Y}, tagValue: ${X}}`},EV={keyword:"discriminator",type:"object",schemaType:"object",error:TV,code(Q){let{gen:X,data:Y,schema:Z,parentSchema:W,it:J}=Q,{oneOf:$}=W;if(!J.opts.discriminator)throw Error("discriminator: requires discriminator option");let G=Z.propertyName;if(typeof G!="string")throw Error("discriminator: requires propertyName");if(Z.mapping)throw Error("discriminator: mapping is not supported");if(!$)throw Error("discriminator: requires oneOf keyword");let K=X.let("valid",!1),B=X.const("tag",i1._`${Y}${(0,i1.getProperty)(G)}`);X.if(i1._`typeof ${B} == "string"`,()=>H(),()=>Q.error(!1,{discrError:KX.DiscrError.Tag,tag:B,tagName:G})),Q.ok(K);function H(){let A=O();X.if(!1);for(let j in A)X.elseIf(i1._`${B} === ${j}`),X.assign(K,F(A[j]));X.else(),Q.error(!1,{discrError:KX.DiscrError.Mapping,tag:B,tagName:G}),X.endIf()}function F(A){let j=X.name("valid"),V=Q.subschema({keyword:"oneOf",schemaProp:A},j);return Q.mergeEvaluated(V,i1.Name),j}function O(){var A;let j={},V=U(W),D=!0;for(let I=0;I<$.length;I++){let T=$[I];if((T===null||T===void 0?void 0:T.$ref)&&!(0,IV.schemaHasRulesButRef)(T,J.self.RULES)){let B0=T.$ref;if(T=tZ.resolveRef.call(J.self,J.schemaEnv.root,J.baseId,B0),T instanceof tZ.SchemaEnv)T=T.schema;if(T===void 0)throw new RV.default(J.opts.uriResolver,J.baseId,B0)}let Q0=(A=T===null||T===void 0?void 0:T.properties)===null||A===void 0?void 0:A[G];if(typeof Q0!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${G}"`);D=D&&(V||U(T)),w(Q0,I)}if(!D)throw Error(`discriminator: "${G}" must be required`);return j;function U({required:I}){return Array.isArray(I)&&I.includes(G)}function w(I,T){if(I.const)E(I.const,T);else if(I.enum)for(let Q0 of I.enum)E(Q0,T);else throw Error(`discriminator: "properties/${G}" must have "const" or "enum"`)}function E(I,T){if(typeof I!="string"||I in j)throw Error(`discriminator: "${G}" values must be unique strings`);j[I]=T}}}};eZ.default=EV});var XW=P((rU,SV)=>{SV.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var HX=P((U0,BX)=>{Object.defineProperty(U0,"__esModule",{value:!0});U0.MissingRefError=U0.ValidationError=U0.CodeGen=U0.Name=U0.nil=U0.stringify=U0.str=U0._=U0.KeywordCxt=U0.Ajv=void 0;var kV=J5(),yV=nZ(),xV=QW(),YW=XW(),fV=["/properties"],X8="http://json-schema.org/draft-07/schema";class _9 extends kV.default{_addVocabularies(){if(super._addVocabularies(),yV.default.forEach((Q)=>this.addVocabulary(Q)),this.opts.discriminator)this.addKeyword(xV.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let Q=this.opts.$data?this.$dataMetaSchema(YW,fV):YW;this.addMetaSchema(Q,X8,!1),this.refs["http://json-schema.org/schema"]=X8}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(X8)?X8:void 0)}}U0.Ajv=_9;BX.exports=U0=_9;BX.exports.Ajv=_9;Object.defineProperty(U0,"__esModule",{value:!0});U0.default=_9;var _V=w9();Object.defineProperty(U0,"KeywordCxt",{enumerable:!0,get:function(){return _V.KeywordCxt}});var n1=x();Object.defineProperty(U0,"_",{enumerable:!0,get:function(){return n1._}});Object.defineProperty(U0,"str",{enumerable:!0,get:function(){return n1.str}});Object.defineProperty(U0,"stringify",{enumerable:!0,get:function(){return n1.stringify}});Object.defineProperty(U0,"nil",{enumerable:!0,get:function(){return n1.nil}});Object.defineProperty(U0,"Name",{enumerable:!0,get:function(){return n1.Name}});Object.defineProperty(U0,"CodeGen",{enumerable:!0,get:function(){return n1.CodeGen}});var vV=xQ();Object.defineProperty(U0,"ValidationError",{enumerable:!0,get:function(){return vV.default}});var gV=P9();Object.defineProperty(U0,"MissingRefError",{enumerable:!0,get:function(){return gV.default}})});var LW=P((HW)=>{Object.defineProperty(HW,"__esModule",{value:!0});HW.formatNames=HW.fastFormats=HW.fullFormats=void 0;function _0(Q,X){return{validate:Q,compare:X}}HW.fullFormats={date:_0($W,VX),time:_0(LX(!0),OX),"date-time":_0(ZW(!0),KW),"iso-time":_0(LX(),GW),"iso-date-time":_0(ZW(),BW),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:iV,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:eV,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:nV,int32:{type:"number",validate:oV},int64:{type:"number",validate:rV},float:{type:"number",validate:JW},double:{type:"number",validate:JW},password:!0,binary:!0};HW.fastFormats={...HW.fullFormats,date:_0(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,VX),time:_0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,OX),"date-time":_0(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KW),"iso-time":_0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,GW),"iso-date-time":_0(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,BW),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};HW.formatNames=Object.keys(HW.fullFormats);function lV(Q){return Q%4===0&&(Q%100!==0||Q%400===0)}var mV=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,pV=[0,31,28,31,30,31,30,31,31,30,31,30,31];function $W(Q){let X=mV.exec(Q);if(!X)return!1;let Y=+X[1],Z=+X[2],W=+X[3];return Z>=1&&Z<=12&&W>=1&&W<=(Z===2&&lV(Y)?29:pV[Z])}function VX(Q,X){if(!(Q&&X))return;if(Q>X)return 1;if(Q<X)return-1;return 0}var FX=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function LX(Q){return function(Y){let Z=FX.exec(Y);if(!Z)return!1;let W=+Z[1],J=+Z[2],$=+Z[3],G=Z[4],K=Z[5]==="-"?-1:1,B=+(Z[6]||0),H=+(Z[7]||0);if(B>23||H>59||Q&&!G)return!1;if(W<=23&&J<=59&&$<60)return!0;let F=J-H*K,O=W-B*K-(F<0?1:0);return(O===23||O===-1)&&(F===59||F===-1)&&$<61}}function OX(Q,X){if(!(Q&&X))return;let Y=new Date("2020-01-01T"+Q).valueOf(),Z=new Date("2020-01-01T"+X).valueOf();if(!(Y&&Z))return;return Y-Z}function GW(Q,X){if(!(Q&&X))return;let Y=FX.exec(Q),Z=FX.exec(X);if(!(Y&&Z))return;if(Q=Y[1]+Y[2]+Y[3],X=Z[1]+Z[2]+Z[3],Q>X)return 1;if(Q<X)return-1;return 0}var zX=/t|\s/i;function ZW(Q){let X=LX(Q);return function(Z){let W=Z.split(zX);return W.length===2&&$W(W[0])&&X(W[1])}}function KW(Q,X){if(!(Q&&X))return;let Y=new Date(Q).valueOf(),Z=new Date(X).valueOf();if(!(Y&&Z))return;return Y-Z}function BW(Q,X){if(!(Q&&X))return;let[Y,Z]=Q.split(zX),[W,J]=X.split(zX),$=VX(Y,W);if($===void 0)return;return $||OX(Z,J)}var dV=/\/|:/,cV=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function iV(Q){return dV.test(Q)&&cV.test(Q)}var WW=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function nV(Q){return WW.lastIndex=0,WW.test(Q)}var sV=-2147483648,aV=2147483647;function oV(Q){return Number.isInteger(Q)&&Q<=aV&&Q>=sV}function rV(Q){return Number.isInteger(Q)}function JW(){return!0}var tV=/[^\\]\\Z/;function eV(Q){if(tV.test(Q))return!1;try{return new RegExp(Q),!0}catch(X){return!1}}});var VW=P((zW)=>{Object.defineProperty(zW,"__esModule",{value:!0});zW.formatLimitDefinition=void 0;var XO=HX(),y0=x(),Z1=y0.operators,Y8={formatMaximum:{okStr:"<=",ok:Z1.LTE,fail:Z1.GT},formatMinimum:{okStr:">=",ok:Z1.GTE,fail:Z1.LT},formatExclusiveMaximum:{okStr:"<",ok:Z1.LT,fail:Z1.GTE},formatExclusiveMinimum:{okStr:">",ok:Z1.GT,fail:Z1.LTE}},YO={message:({keyword:Q,schemaCode:X})=>y0.str`should be ${Y8[Q].okStr} ${X}`,params:({keyword:Q,schemaCode:X})=>y0._`{comparison: ${Y8[Q].okStr}, limit: ${X}}`};zW.formatLimitDefinition={keyword:Object.keys(Y8),type:"string",schemaType:"string",$data:!0,error:YO,code(Q){let{gen:X,data:Y,schemaCode:Z,keyword:W,it:J}=Q,{opts:$,self:G}=J;if(!$.validateFormats)return;let K=new XO.KeywordCxt(J,G.RULES.all.format.definition,"format");if(K.$data)B();else H();function B(){let O=X.scopeValue("formats",{ref:G.formats,code:$.code.formats}),A=X.const("fmt",y0._`${O}[${K.schemaCode}]`);Q.fail$data((0,y0.or)(y0._`typeof ${A} != "object"`,y0._`${A} instanceof RegExp`,y0._`typeof ${A}.compare != "function"`,F(A)))}function H(){let O=K.schema,A=G.formats[O];if(!A||A===!0)return;if(typeof A!="object"||A instanceof RegExp||typeof A.compare!="function")throw Error(`"${W}": format "${O}" does not define "compare" function`);let j=X.scopeValue("formats",{key:O,ref:A,code:$.code.formats?y0._`${$.code.formats}${(0,y0.getProperty)(O)}`:void 0});Q.fail$data(F(j))}function F(O){return y0._`${O}.compare(${Y}, ${Z}) ${Y8[W].fail} 0`}},dependencies:["format"]};var ZO=(Q)=>{return Q.addKeyword(zW.formatLimitDefinition),Q};zW.default=ZO});var UW=P((v9,AW)=>{Object.defineProperty(v9,"__esModule",{value:!0});var s1=LW(),JO=VW(),UX=x(),OW=new UX.Name("fullFormats"),$O=new UX.Name("fastFormats"),DX=(Q,X={keywords:!0})=>{if(Array.isArray(X))return jW(Q,X,s1.fullFormats,OW),Q;let[Y,Z]=X.mode==="fast"?[s1.fastFormats,$O]:[s1.fullFormats,OW],W=X.formats||s1.formatNames;if(jW(Q,W,Y,Z),X.keywords)(0,JO.default)(Q);return Q};DX.get=(Q,X="full")=>{let Z=(X==="fast"?s1.fastFormats:s1.fullFormats)[Q];if(!Z)throw Error(`Unknown format "${Q}"`);return Z};function jW(Q,X,Y,Z){var W,J;(W=(J=Q.opts.code).formats)!==null&&W!==void 0||(J.formats=UX._`require("ajv-formats/dist/formats").${Z}`);for(let $ of X)Q.addFormat($,Y[$])}AW.exports=v9=DX;Object.defineProperty(v9,"__esModule",{value:!0});v9.default=DX});var _X=t1(jO(),1);import EW from"node:fs/promises";import{join as h9,resolve as d0,relative as EX,sep as CW,basename as CX,dirname as SX}from"node:path";import{existsSync as $8,readdirSync as hW,lstatSync as kX,statSync as G8,readFileSync as uW}from"node:fs";import{homedir as AO}from"node:os";var B8=z.object({serverName:z.string(),name:z.string(),args:z.unknown()}),lX=z.tuple([z.custom(),z.array(z.union([z.custom(),z.custom()]))]),YJ=z.union([z.string(),z.custom(),lX,z.custom()]),ZJ=z.object({...B8.shape,result:lX}),hX=z.object({...B8.shape,result:YJ}),uX=z.object({headers:z.record(z.string()),args:z.unknown()}).partial(),mX=z.object({beforeToolCall:z.function().args(B8,z.custom(),z.custom()).returns(z.union([z.promise(uX),uX,z.void(),z.promise(z.void())])).optional(),afterToolCall:z.function().args(ZJ,z.custom(),z.custom()).returns(z.union([z.promise(hX.pick({result:!0})),hX.pick({result:!0}),z.void(),z.promise(z.void())])).optional()});var r1=["audio","image","resource","resource_link","text"],WJ=z.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),JJ=z.union([z.string(),z.number().int()]),$J=z.union([z.literal("content").describe("Put tool output into the ToolMessage.content array"),z.literal("artifact").describe("Put tool output into the ToolMessage.artifact array")]),GJ=z.object(Object.fromEntries(r1.map((Q)=>[Q,z.union([z.literal("content").describe(`Put all ${Q} tool output into the ToolMessage.content array`),z.literal("artifact").describe(`Put all ${Q} tool output into the ToolMessage.artifact array`)]).describe(`Where to place ${Q} tool output in the LangChain ToolMessage`).optional()]))),KJ=z.union([$J,GJ]).describe("Defines where to place each tool output type in the LangChain ToolMessage.\n\nItems in the `content` field will be used as input context for the LLM, while the artifact field is\nused for capturing tool output that won't be shown to the model, to be used in some later workflow\nstep.\n\nFor example, imagine that you have a SQL query tool that can return huge result sets. Rather than\nsending these large outputs directly to the model, perhaps you want the model to be able to inspect\nthe output in a code execution environment. In this case, you would set the output handling for the\n`resource` type to `artifact` (it's default value), and then upon initialization of your code\nexecution environment, you would look through your message history for `ToolMessage`s with the\n`artifact` field set to `resource`, and use the `content` field during initialization of the\nenvironment."),BJ=z.custom((Q)=>{if(!Q||typeof Q!=="object")return!1;let X=["redirectUrl","clientMetadata","clientInformation","tokens","saveTokens"];if(!("redirectUrl"in Q))return!1;if(!("clientMetadata"in Q))return!1;for(let Y of X)if(!(Y in Q))return!1;return!0},{message:"Must be a valid OAuthClientProvider implementation with required properties: redirectUrl, clientMetadata, clientInformation, tokens, saveTokens"}),H8=z.object({outputHandling:KJ.optional(),defaultToolTimeout:z.number().min(1).optional()}),HJ=z.object({enabled:z.boolean().describe("Whether to automatically restart the process if it exits").optional(),maxAttempts:z.number().describe("The maximum number of restart attempts").optional(),delayMs:z.number().describe("The delay in milliseconds between restart attempts").optional()}).describe("Configuration for stdio transport restart"),FJ=z.object({transport:z.literal("stdio").optional(),type:z.literal("stdio").optional(),command:z.string().describe("The executable to run the server"),args:z.array(z.string()).describe("Command line arguments to pass to the executable"),env:z.record(z.string()).describe("The environment to use when spawning the process").optional(),encoding:z.string().describe("The encoding to use when reading from the process").optional(),stderr:z.union([z.literal("overlapped"),z.literal("pipe"),z.literal("ignore"),z.literal("inherit")]).describe("How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`").optional().default("inherit"),cwd:z.string().describe("The working directory to use when spawning the process").optional(),restart:HJ.optional()}).and(H8).describe("Configuration for stdio transport connection"),LJ=z.object({enabled:z.boolean().describe("Whether to automatically reconnect if the connection is lost").optional(),maxAttempts:z.number().describe("The maximum number of reconnection attempts").optional(),delayMs:z.number().describe("The delay in milliseconds between reconnection attempts").optional()}).describe("Configuration for streamable HTTP transport reconnection"),zJ=z.object({transport:z.union([z.literal("http"),z.literal("sse")]).optional(),type:z.union([z.literal("http"),z.literal("sse")]).optional(),url:z.string().url(),headers:z.record(z.string()).optional(),authProvider:BJ.optional(),reconnect:LJ.optional(),automaticSSEFallback:z.boolean().optional().default(!0)}).and(H8).describe("Configuration for streamable HTTP transport connection"),m9=z.union([FJ,zJ]).describe("Configuration for a single MCP server"),VJ=z.object({type:z.literal("tool"),name:z.string(),args:z.unknown(),server:z.string()}),OJ=z.object({type:z.literal("unknown")}),jJ=z.union([VJ,OJ]),c0=z.object({server:z.string(),options:m9}),AJ=z.object({onMessage:z.function().args(z.object({level:WJ,logger:z.optional(z.string()),data:z.unknown()}),c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onProgress:z.function().args(z.object({progress:z.number(),total:z.optional(z.number()),message:z.optional(z.string())}),jJ).returns(z.union([z.void(),z.promise(z.void())])).optional(),onCancelled:z.function().args(z.object({requestId:JJ,reason:z.string().optional()}),c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onInitialized:z.function().args(c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onPromptsListChanged:z.function().args(c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onResourcesListChanged:z.function().args(c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onResourcesUpdated:z.function().args(z.object({uri:z.string()}),c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onRootsListChanged:z.function().args(c0).returns(z.union([z.void(),z.promise(z.void())])).optional(),onToolsListChanged:z.function().args(c0).returns(z.union([z.void(),z.promise(z.void())])).optional()}),pX=z.object({mcpServers:z.record(m9).describe("A map of server names to their configuration"),throwOnLoadError:z.boolean().describe("Whether to throw an error if a tool fails to load").optional().default(!0),prefixToolNameWithServerName:z.boolean().describe("Whether to prefix tool names with the server name").optional().default(!1),additionalToolNamePrefix:z.string().describe("An additional prefix to add to the tool name").optional().default(""),useStandardContentBlocks:z.boolean().describe("If true, the tool will use LangChain's standard multimodal content blocks for tools that output\nimage or audio content. When true, embedded resources will be converted to `StandardFileBlock`\nobjects. When `false`, all artifacts are left in their MCP format, but embedded resources will\nbe converted to `StandardFileBlock` objects if `outputHandling` causes embedded resources to be\ntreated as content, as otherwise ChatModel providers will not be able to interpret them.").optional().default(!1),onConnectionError:z.union([z.enum(["throw","ignore"]),z.function().args(z.object({serverName:z.string(),error:z.unknown()})).returns(z.void())]).describe("Behavior when a server fails to connect: 'throw' to error immediately, 'ignore' to skip failed servers, or a function for custom error handling").optional().default("throw")}).and(H8).and(mX).and(AJ).describe("Configuration for the MCP client");function l9(Q,X=!1){if(Q==null)return{};if(typeof Q==="string")return Object.fromEntries(r1.map((Z)=>[Z,Q]));let Y={};for(let Z of r1)if(Q[Z]||X)Y[Z]=Q[Z]??(Z==="resource"?"artifact":"content");return Y}function dX(Q,X){let Y=l9(Q),Z=l9(X);return{...Y,...Z}}var cX=t1(UJ(),1),DJ="@langchain/mcp-adapters",F8={};function U1(Q="client"){let X=`${DJ}:${Q}`;if(!F8[X])F8[X]=cX.default(X);return F8[X]}var N0=U1("tools");function qJ(Q){let X=Q.$defs??Q.definitions??{};function Y(Z,W=new Set){if(typeof Z!=="object"||Z===null)return Z;if(Z.$ref&&typeof Z.$ref==="string"){let $=Z.$ref,G=$.match(/^#\/\$defs\/(.+)$/),K=$.match(/^#\/definitions\/(.+)$/),B=G||K;if(B){let H=B[1],F=X[H];if(F){if(W.has($))return N0(`WARNING: Circular reference detected for ${$}, using empty object`),{type:"object"};let O=new Set(W);O.add($);let{$ref:A,...j}=Z;return{...Y(F,O),...j}}else N0(`WARNING: Could not resolve $ref: ${$}`)}return Z}let J={};for(let[$,G]of Object.entries(Z)){if($==="$defs"||$==="definitions")continue;if(Array.isArray(G))J[$]=G.map((K)=>typeof K==="object"&&K!==null?Y(K,W):K);else if(typeof G==="object"&&G!==null)J[$]=Y(G,W);else J[$]=G}return J}return Y(Q)}function J1(Q,X){let Y={...Q};for(let[Z,W]of Object.entries(X)){let J=Y[Z];if(Z==="required"&&Array.isArray(J))Y[Z]=[...new Set([...J,...W])];else if(Z==="const"){let{const:$,enum:G}=Y,K=new Set;if(G)for(let B of G)K.add(B);if($!==void 0)K.add($);K.add(W),delete Y.const,Y.enum=[...K]}else if(Z==="enum"&&Array.isArray(W)){let $=new Set;if(Array.isArray(J))for(let G of J)$.add(G);if(Y.const!==void 0)$.add(Y.const),delete Y.const;for(let G of W)$.add(G);Y[Z]=[...$]}else if(Z==="properties"&&typeof J==="object"&&J!==null){let $={...J};for(let[G,K]of Object.entries(W))if($[G]&&typeof $[G]==="object"&&typeof K==="object")$[G]=J1($[G],K);else $[G]=K;Y[Z]=$}else if(Array.isArray(W)&&Array.isArray(J))Y[Z]=[...J,...W];else if(typeof W==="object"&&W!==null&&!Array.isArray(W)&&typeof J==="object"&&J!==null&&!Array.isArray(J))Y[Z]=J1(J,W);else Y[Z]=W}return Y}function iX(Q){let X={};if(Q.then&&typeof Q.then==="object"){let Y=Q.then;if(Y.properties)X=J1(X,{properties:Y.properties});if(Y.required)X.required=[...new Set([...X.required||[],...Y.required])]}if(Q.else&&typeof Q.else==="object"){let Y=Q.else;if(Y.properties)X=J1(X,{properties:Y.properties});if(Y.required)X.required=[...new Set([...X.required||[],...Y.required])]}return X}function W1(Q){if(typeof Q!=="object"||Q===null)return Q;let{allOf:X,anyOf:Y,oneOf:Z,not:W,if:J,then:$,else:G,$schema:K,unevaluatedProperties:B,...H}=Q,F={...H};if(J||$||G){let A=iX({if:J,then:$,else:G});F=J1(F,A),N0("INFO: Extracted properties from if/then/else conditional")}if(Array.isArray(X)){for(let A of X){if(A.if||A.then||A.else){let V=iX(A);F=J1(F,V)}let j=W1(A);F=J1(F,j)}N0(`INFO: Flattened allOf with ${X.length} schemas into base schema`)}let O=Y||Z;if(Array.isArray(O)&&O.length>0){let A=O.every((U)=>typeof U==="object"&&U!==null&&(U.type==="object"||U.properties)),j={},V=[],D=A?O:O.filter((U)=>typeof U==="object"&&U!==null&&(U.type==="object"||U.properties));for(let U of D){let w=W1(U);if(w.properties)Object.assign(j,w.properties);if(w.required&&Array.isArray(w.required))V.push(new Set(w.required));if(w.type&&!F.type)F.type=w.type}if(Object.keys(j).length>0)F.properties={...F.properties,...j};if(V.length>0){let U=V.reduce((w,E)=>{return new Set([...w].filter((I)=>E.has(I)))});if(U.size>0)F.required=[...new Set([...F.required||[],...U])]}N0(`INFO: Merged ${D.length} object schemas from ${Y?"anyOf":"oneOf"}`)}if(F.properties&&!F.type)F.type="object";if(F.properties){let A={};for(let[j,V]of Object.entries(F.properties))if(typeof V==="object"&&V!==null)A[j]=W1(V);else A[j]=V;F.properties=A}if(F.items){if(Array.isArray(F.items))F.items=F.items.map((A)=>typeof A==="object"&&A!==null?W1(A):A);else if(typeof F.items==="object")F.items=W1(F.items)}if(typeof F.additionalProperties==="object"&&F.additionalProperties!==null)F.additionalProperties=W1(F.additionalProperties);return F}var $1=class extends Error{constructor(Q,X){super(Q);if(this.name="ToolException",X&&(X instanceof z8||X instanceof L8)){let Y=Error(q.prettifyError(X)),Z=X.stack?.split(`
9
- `)||[];Y.stack=X.stack?.split(`
10
- `).slice(Z.findIndex((W)=>W.includes(" at"))).join(`
11
- `),this.cause=Y}else if(X)this.cause=X}};function MJ(Q){return typeof Q==="object"&&Q!==null&&"name"in Q&&Q.name==="ToolException"}function bJ(Q){return typeof Q==="object"&&Q!==null&&"uri"in Q&&typeof Q.uri==="string"&&(!("blob"in Q)||Q.blob==null)&&(!("text"in Q)||Q.text==null)}async function*oX(Q,X){if(bJ(Q)){let Y=await X.readResource({uri:Q.uri});for(let Z of Y.contents)yield*oX(Z,X);return}if("blob"in Q&&Q.blob!=null)yield{type:"file",source_type:"base64",data:Q.blob,mime_type:Q.mimeType,...Q.uri!=null?{metadata:{uri:Q.uri}}:{}};if("text"in Q&&Q.text!=null)yield{type:"file",source_type:"text",mime_type:Q.mimeType,text:Q.text,...Q.uri!=null?{metadata:{uri:Q.uri}}:{}}}async function rX(Q,X,Y,Z,W){let J=[];switch(Q.type){case"text":return[{type:"text",...X?{source_type:"text"}:{},text:Q.text}];case"image":if(X)return[{type:"image",source_type:"base64",data:Q.data,mime_type:Q.mimeType}];return[{type:"image_url",image_url:{url:`data:${Q.mimeType};base64,${Q.data}`}}];case"audio":return[{type:"audio",source_type:"base64",data:Q.data,mime_type:Q.mimeType}];case"resource":for await(let $ of oX(Q.resource,Y))J.push($);return J;case"resource_link":return[{type:"file",source_type:"url",url:Q.uri,mime_type:Q.mimeType}];default:throw new $1(`MCP tool '${Z}' on server '${W}' returned a content block with unexpected type "${Q.type}." Expected one of ${r1.map(($)=>`"${$}"`).join(", ")}.`)}}async function wJ(Q,X,Y,Z,W){if(X)return rX(Q,X,Y,Z,W);if((!("blob"in Q)||Q.blob==null)&&(!("text"in Q)||Q.text==null)&&"uri"in Q&&typeof Q.uri==="string")return(await Y.readResource({uri:Q.uri})).contents.map(($)=>({type:"resource",resource:{...$}}));return[Q]}function nX(Q,X){if(X==="content"||X==="artifact")return X;return l9(X)[Q]??(Q==="resource"?"artifact":"content")}async function PJ({serverName:Q,toolName:X,result:Y,client:Z,useStandardContentBlocks:W,outputHandling:J}){if(!Y)throw new $1(`MCP tool '${X}' on server '${Q}' returned an invalid result - tool call response was undefined`);if(!Array.isArray(Y.content))throw new $1(`MCP tool '${X}' on server '${Q}' returned an invalid result - expected an array of content, but was ${typeof Y.content}`);if(Y.isError)throw new $1(`MCP tool '${X}' on server '${Q}' returned an error: ${Y.content.map((F)=>F.type==="text"?F.text:"").join(`
12
- `)}`);let $=(await Promise.all(Y.content.filter((F)=>nX(F.type,J)==="content").map((F)=>rX(F,W,Z,X,Q)))).flat(),G=(await Promise.all(Y.content.filter((F)=>nX(F.type,J)==="artifact").map((F)=>{return wJ(F,W,Z,X,Q)}))).flat(),K=Y.structuredContent,B=Y._meta,H=[...G];if(K)H.push({type:"mcp_structured_content",data:K});if(B)H.push({type:"mcp_meta",data:B});if($.length===1&&$[0].type==="text"){let F=$[0],O=F.text;if(K||B)return[{...F,...K?{structuredContent:K}:{},...B?{meta:B}:{}},H];return[O,H]}return[$,H]}async function NJ({serverName:Q,toolName:X,client:Y,args:Z,config:W,useStandardContentBlocks:J,outputHandling:$,onProgress:G,beforeToolCall:K,afterToolCall:B}){try{N0(`INFO: Calling tool ${X}(${JSON.stringify(Z)})`);let H=W?.metadata?.timeoutMs??W?.timeout,F={...H?{timeout:H}:{},...W?.signal?{signal:W.signal}:{},...G?{onprogress:(Y0)=>{G?.(Y0,{type:"tool",name:X,args:Z,server:Q})}}:{}},O={};try{O=aX(W)}catch(Y0){N0(`State can't be derrived as LangGraph is not used: ${String(Y0)}`)}let A=await K?.({name:X,args:Z,serverName:Q},O,W??{}),j=Object.assign(Z,A?.args||{}),V=A?.headers||{},D=Object.entries(V).length>0;if(D&&typeof Y.fork!=="function")throw new $1(`MCP client for server "${Q}" does not support header changes`);let U=D&&typeof Y.fork==="function"?await Y.fork(V):Y,w=[{name:X,arguments:j}];if(Object.keys(F).length>0)w.push(void 0),w.push(F);let E=await U.callTool(...w),[I,T]=await PJ({serverName:Q,toolName:X,result:E,client:U,useStandardContentBlocks:J,outputHandling:$}),Q0=typeof I==="string"?I:Array.isArray(I)?I:[I],B0=T.filter((Y0)=>Y0.type==="resource"||Y0.type!=="mcp_structured_content"&&Y0.type!=="mcp_meta"&&typeof Y0==="object"&&Y0!==null&&("source_type"in Y0)),X0=await B?.({name:X,args:j,result:[Q0,B0],serverName:Q},O,W??{});if(!X0)return[I,T];if(typeof X0.result==="string")return[X0.result,[]];if(Array.isArray(X0.result))return X0.result;if(e1.isInstance(X0.result))return[X0.result.contentBlocks,[]];if(X0?.result instanceof p9)return X0.result;throw Error(`Unexpected result value type from afterToolCall: expected either a Command, a ToolMessage or a tuple of ContentBlock and Artifact, but got ${X0.result}`)}catch(H){if(H instanceof z8||H instanceof L8)throw new $1(q.prettifyError(H),H);if(N0(`Error calling tool ${X}: ${String(H)}`),MJ(H))throw H;throw new $1(`Error calling tool ${X}: ${String(H)}`)}}var RJ={throwOnLoadError:!0,prefixToolNameWithServerName:!1,additionalToolNamePrefix:"",useStandardContentBlocks:!1};async function V8(Q,X,Y){let{throwOnLoadError:Z,prefixToolNameWithServerName:W,additionalToolNamePrefix:J,useStandardContentBlocks:$,outputHandling:G,defaultToolTimeout:K}={...RJ,...Y??{}},B=[],H;do H=await X.listTools({...H?.nextCursor?{cursor:H.nextCursor}:{}}),B.push(...H.tools||[]);while(H.nextCursor);N0(`INFO: Found ${B.length} MCP tools`);let F=J?`${J}__`:"",O=W?`${Q}__`:"",A=`${F}${O}`;return(await Promise.all(B.filter((j)=>!!j.name).map(async(j)=>{try{if(!j.inputSchema.properties)j.inputSchema.properties={};let V=qJ(j.inputSchema),D=W1(V),U=new sX({name:`${A}${j.name}`,description:j.description||"",schema:D,responseFormat:"content_and_artifact",metadata:{annotations:j.annotations},defaultConfig:K?{timeout:K}:void 0,func:async(w,E,I)=>{return NJ({serverName:Q,toolName:j.name,client:X,args:w,config:I,useStandardContentBlocks:$,outputHandling:G,onProgress:Y?.onProgress,beforeToolCall:Y?.beforeToolCall,afterToolCall:Y?.afterToolCall})}});return N0(`INFO: Successfully loaded tool: ${U.name}`),U}catch(V){if(N0(`ERROR: Failed to load tool "${j.name}":`,V),Z)throw V;return null}}))).filter(Boolean)}var IJ="@langchain/mcp-adapters",TJ="1.1.3",EJ="LangChain.js adapters for Model Context Protocol (MCP)",CJ="LangChain",SJ="MIT",kJ="module",yJ="pnpm@10.14.0",xJ={type:"git",url:"git@github.com:langchain-ai/langchainjs.git"},fJ="https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-mcp-adapters/",_J={url:"https://github.com/langchain-ai/langchainjs/issues"},vJ={build:"turbo build:compile build:examples --filter @langchain/core --output-logs new-only","build:compile":"tsdown","build:examples":"tsc -p ./examples/tsconfig.json",clean:"rm -rf dist/ dist-cjs/ .turbo/",format:'prettier --write "src/**/*.ts" "examples/**/*.ts"',"format:check":'prettier --check "src" "examples/**/*.ts"',lint:"run-s lint:eslint lint:dpdm","lint:dpdm":"dpdm --skip-dynamic-imports circular --exit-code circular:1 --no-warning --no-tree src/**/*.ts examples/**/*.ts","lint:eslint":"eslint --cache src/ examples/","lint:fix":"pnpm lint:eslint --fix && pnpm lint:dpdm",test:"vitest run","test:coverage":"vitest run --coverage","test:watch":"vitest"},gJ=["langchain","mcp","model-context-protocol","ai","tools"],hJ={"@modelcontextprotocol/sdk":"^1.26.0",debug:"^4.4.3",zod:"^3.25.76 || ^4"},uJ={"@langchain/core":"^1.0.0","@langchain/langgraph":"^1.0.0"},lJ={"@langchain/core":{optional:!1},"@langchain/langgraph":{optional:!1}},mJ={"extended-eventsource":"^1.7.0"},pJ={"@eslint/js":"^9.36.0","@langchain/core":"workspace:^","@langchain/eslint":"workspace:*","@langchain/langgraph":"^1.0.0","@langchain/openai":"workspace:*","@langchain/tsconfig":"workspace:*","@tsconfig/recommended":"^1.0.10","@types/debug":"^4.1.12","@types/express":"^5.0.6","@types/node":"^22.18.8","@vitest/coverage-v8":"^3.2.4",dotenv:"^16.6.1",dpdm:"^3.14.0",eslint:"^9.36.0",eventsource:"^4.1.0",express:"^5.2.1",langchain:"workspace:*","npm-run-all2":"^8.0.4",prettier:"^3.6.2","ts-node":"^10.9.2",typescript:"~5.8.3","typescript-eslint":"^8.45.0",vitest:"^3.2.4"},dJ={node:">=20.10.0"},cJ={example:"examples"},iJ="./dist/index.cjs",nJ="./dist/index.d.cts",sJ={".":{input:"./src/index.ts",require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"},import:{types:"./dist/index.d.ts",default:"./dist/index.js"}},"./package.json":"./package.json"},aJ=["dist/","CHANGELOG.md","README.md","LICENSE"],oJ="./dist/index.js",O8={name:IJ,version:TJ,description:EJ,author:CJ,license:SJ,type:kJ,packageManager:yJ,repository:xJ,homepage:fJ,bugs:_J,scripts:vJ,keywords:gJ,dependencies:hJ,peerDependencies:uJ,peerDependenciesMeta:lJ,optionalDependencies:mJ,devDependencies:pJ,engines:dJ,directories:cJ,main:iJ,types:nJ,exports:sJ,files:aJ,module:oJ};class A8 extends Error{constructor(Q,X){super(Q),this.name="ParseError",this.type=X.type,this.field=X.field,this.value=X.value,this.line=X.line}}function j8(Q){}function d9(Q){if(typeof Q=="function")throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:X=j8,onError:Y=j8,onRetry:Z=j8,onComment:W}=Q,J="",$=!0,G,K="",B="";function H(V){let D=$?V.replace(/^\xEF\xBB\xBF/,""):V,[U,w]=rJ(`${J}${D}`);for(let E of U)F(E);J=w,$=!1}function F(V){if(V===""){A();return}if(V.startsWith(":")){W&&W(V.slice(V.startsWith(": ")?2:1));return}let D=V.indexOf(":");if(D!==-1){let U=V.slice(0,D),w=V[D+1]===" "?2:1,E=V.slice(D+w);O(U,E,V);return}O(V,"",V)}function O(V,D,U){switch(V){case"event":B=D;break;case"data":K=`${K}${D}
13
- `;break;case"id":G=D.includes("\x00")?void 0:D;break;case"retry":/^\d+$/.test(D)?Z(parseInt(D,10)):Y(new A8(`Invalid \`retry\` value: "${D}"`,{type:"invalid-retry",value:D,line:U}));break;default:Y(new A8(`Unknown field "${V.length>20?`${V.slice(0,20)}…`:V}"`,{type:"unknown-field",field:V,value:D,line:U}));break}}function A(){K.length>0&&X({id:G,event:B||void 0,data:K.endsWith(`
14
- `)?K.slice(0,-1):K}),G=void 0,K="",B=""}function j(V={}){J&&V.consume&&F(J),$=!0,G=void 0,K="",B="",J=""}return{feed:H,reset:j}}function rJ(Q){let X=[],Y="",Z=0;for(;Z<Q.length;){let W=Q.indexOf("\r",Z),J=Q.indexOf(`
15
- `,Z),$=-1;if(W!==-1&&J!==-1?$=Math.min(W,J):W!==-1?W===Q.length-1?$=-1:$=W:J!==-1&&($=J),$===-1){Y=Q.slice(Z);break}else{let G=Q.slice(Z,$);X.push(G),Z=$+1,Q[Z-1]==="\r"&&Q[Z]===`
16
- `&&Z++}}return[X,Y]}class U8 extends Event{constructor(Q,X){var Y,Z;super(Q),this.code=(Y=X==null?void 0:X.code)!=null?Y:void 0,this.message=(Z=X==null?void 0:X.message)!=null?Z:void 0}[Symbol.for("nodejs.util.inspect.custom")](Q,X,Y){return Y(tX(this),X)}[Symbol.for("Deno.customInspect")](Q,X){return Q(tX(this),X)}}function tJ(Q){let X=globalThis.DOMException;return typeof X=="function"?new X(Q,"SyntaxError"):SyntaxError(Q)}function D8(Q){return Q instanceof Error?"errors"in Q&&Array.isArray(Q.errors)?Q.errors.map(D8).join(", "):("cause"in Q)&&Q.cause instanceof Error?`${Q}: ${D8(Q.cause)}`:Q.message:`${Q}`}function tX(Q){return{type:Q.type,message:Q.message,code:Q.code,defaultPrevented:Q.defaultPrevented,cancelable:Q.cancelable,timeStamp:Q.timeStamp}}var Q4=(Q)=>{throw TypeError(Q)},I8=(Q,X,Y)=>X.has(Q)||Q4("Cannot "+Y),_=(Q,X,Y)=>(I8(Q,X,"read from private field"),Y?Y.call(Q):X.get(Q)),t=(Q,X,Y)=>X.has(Q)?Q4("Cannot add the same private member more than once"):X instanceof WeakSet?X.add(Q):X.set(Q,Y),c=(Q,X,Y,Z)=>(I8(Q,X,"write to private field"),X.set(Q,Y),Y),v0=(Q,X,Y)=>(I8(Q,X,"access private method"),Y),z0,G1,D1,c9,i9,Y9,b1,Z9,i0,q1,w1,M1,Q9,R0,q8,M8,b8,eX,w8,P8,X9,N8,R8;class P1 extends EventTarget{constructor(Q,X){var Y,Z;super(),t(this,R0),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,t(this,z0),t(this,G1),t(this,D1),t(this,c9),t(this,i9),t(this,Y9),t(this,b1),t(this,Z9,null),t(this,i0),t(this,q1),t(this,w1,null),t(this,M1,null),t(this,Q9,null),t(this,M8,async(W)=>{var J;_(this,q1).reset();let{body:$,redirected:G,status:K,headers:B}=W;if(K===204){v0(this,R0,X9).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(G?c(this,D1,new URL(W.url)):c(this,D1,void 0),K!==200){v0(this,R0,X9).call(this,`Non-200 status code (${K})`,K);return}if(!(B.get("content-type")||"").startsWith("text/event-stream")){v0(this,R0,X9).call(this,'Invalid content type, expected "text/event-stream"',K);return}if(_(this,z0)===this.CLOSED)return;c(this,z0,this.OPEN);let H=new Event("open");if((J=_(this,Q9))==null||J.call(this,H),this.dispatchEvent(H),typeof $!="object"||!$||!("getReader"in $)){v0(this,R0,X9).call(this,"Invalid response body, expected a web ReadableStream",K),this.close();return}let F=new TextDecoder,O=$.getReader(),A=!0;do{let{done:j,value:V}=await O.read();V&&_(this,q1).feed(F.decode(V,{stream:!j})),j&&(A=!1,_(this,q1).reset(),v0(this,R0,N8).call(this))}while(A)}),t(this,b8,(W)=>{c(this,i0,void 0),!(W.name==="AbortError"||W.type==="aborted")&&v0(this,R0,N8).call(this,D8(W))}),t(this,w8,(W)=>{typeof W.id=="string"&&c(this,Z9,W.id);let J=new MessageEvent(W.event||"message",{data:W.data,origin:_(this,D1)?_(this,D1).origin:_(this,G1).origin,lastEventId:W.id||""});_(this,M1)&&(!W.event||W.event==="message")&&_(this,M1).call(this,J),this.dispatchEvent(J)}),t(this,P8,(W)=>{c(this,Y9,W)}),t(this,R8,()=>{c(this,b1,void 0),_(this,z0)===this.CONNECTING&&v0(this,R0,q8).call(this)});try{if(Q instanceof URL)c(this,G1,Q);else if(typeof Q=="string")c(this,G1,new URL(Q,eJ()));else throw Error("Invalid URL")}catch{throw tJ("An invalid or illegal string was specified")}c(this,q1,d9({onEvent:_(this,w8),onRetry:_(this,P8)})),c(this,z0,this.CONNECTING),c(this,Y9,3000),c(this,i9,(Y=X==null?void 0:X.fetch)!=null?Y:globalThis.fetch),c(this,c9,(Z=X==null?void 0:X.withCredentials)!=null?Z:!1),v0(this,R0,q8).call(this)}get readyState(){return _(this,z0)}get url(){return _(this,G1).href}get withCredentials(){return _(this,c9)}get onerror(){return _(this,w1)}set onerror(Q){c(this,w1,Q)}get onmessage(){return _(this,M1)}set onmessage(Q){c(this,M1,Q)}get onopen(){return _(this,Q9)}set onopen(Q){c(this,Q9,Q)}addEventListener(Q,X,Y){let Z=X;super.addEventListener(Q,Z,Y)}removeEventListener(Q,X,Y){let Z=X;super.removeEventListener(Q,Z,Y)}close(){_(this,b1)&&clearTimeout(_(this,b1)),_(this,z0)!==this.CLOSED&&(_(this,i0)&&_(this,i0).abort(),c(this,z0,this.CLOSED),c(this,i0,void 0))}}z0=new WeakMap,G1=new WeakMap,D1=new WeakMap,c9=new WeakMap,i9=new WeakMap,Y9=new WeakMap,b1=new WeakMap,Z9=new WeakMap,i0=new WeakMap,q1=new WeakMap,w1=new WeakMap,M1=new WeakMap,Q9=new WeakMap,R0=new WeakSet,q8=function(){c(this,z0,this.CONNECTING),c(this,i0,new AbortController),_(this,i9)(_(this,G1),v0(this,R0,eX).call(this)).then(_(this,M8)).catch(_(this,b8))},M8=new WeakMap,b8=new WeakMap,eX=function(){var Q;let X={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",..._(this,Z9)?{"Last-Event-ID":_(this,Z9)}:void 0},cache:"no-store",signal:(Q=_(this,i0))==null?void 0:Q.signal};return"window"in globalThis&&(X.credentials=this.withCredentials?"include":"same-origin"),X},w8=new WeakMap,P8=new WeakMap,X9=function(Q,X){var Y;_(this,z0)!==this.CLOSED&&c(this,z0,this.CLOSED);let Z=new U8("error",{code:X,message:Q});(Y=_(this,w1))==null||Y.call(this,Z),this.dispatchEvent(Z)},N8=function(Q,X){var Y;if(_(this,z0)===this.CLOSED)return;c(this,z0,this.CONNECTING);let Z=new U8("error",{code:X,message:Q});(Y=_(this,w1))==null||Y.call(this,Z),this.dispatchEvent(Z),c(this,b1,setTimeout(_(this,R8),_(this,Y9)))},R8=new WeakMap,P1.CONNECTING=0,P1.OPEN=1,P1.CLOSED=2;function eJ(){let Q="document"in globalThis?globalThis.document:void 0;return Q&&typeof Q=="object"&&"baseURI"in Q&&typeof Q.baseURI=="string"?Q.baseURI:void 0}function N1(Q){if(!Q)return{};if(Q instanceof Headers)return Object.fromEntries(Q.entries());if(Array.isArray(Q))return Object.fromEntries(Q);return{...Q}}function n9(Q=fetch,X){if(!X)return Q;return async(Y,Z)=>{let W={...X,...Z,headers:Z?.headers?{...N1(X.headers),...N1(Z.headers)}:X.headers};return Q(Y,W)}}var I1="2025-11-25";var Z4=[I1,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],n0="io.modelcontextprotocol/related-task",a9="2.0",Z0=Y4((Q)=>Q!==null&&(typeof Q==="object"||typeof Q==="function")),W4=p([L(),u().int()]),J4=L(),Vj=e({ttl:p([u(),T8()]).optional(),pollInterval:u().optional()}),X$=b({ttl:u().optional()}),Y$=b({taskId:L()}),k8=e({progressToken:W4.optional(),[n0]:Y$.optional()}),q0=b({_meta:k8.optional()}),W9=q0.extend({task:X$.optional()}),$4=(Q)=>W9.safeParse(Q).success,W0=b({method:L(),params:q0.loose().optional()}),M0=b({_meta:k8.optional()}),b0=b({method:L(),params:M0.loose().optional()}),J0=e({_meta:k8.optional()}),o9=p([L(),u().int()]),G4=b({jsonrpc:N(a9),id:o9,...W0.shape}).strict(),J9=(Q)=>G4.safeParse(Q).success,K4=b({jsonrpc:N(a9),...b0.shape}).strict(),B4=(Q)=>K4.safeParse(Q).success,y8=b({jsonrpc:N(a9),id:o9,result:J0}).strict(),K1=(Q)=>y8.safeParse(Q).success;var S;(function(Q){Q[Q.ConnectionClosed=-32000]="ConnectionClosed",Q[Q.RequestTimeout=-32001]="RequestTimeout",Q[Q.ParseError=-32700]="ParseError",Q[Q.InvalidRequest=-32600]="InvalidRequest",Q[Q.MethodNotFound=-32601]="MethodNotFound",Q[Q.InvalidParams=-32602]="InvalidParams",Q[Q.InternalError=-32603]="InternalError",Q[Q.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(S||(S={}));var x8=b({jsonrpc:N(a9),id:o9.optional(),error:b({code:u().int(),message:L(),data:s().optional()})}).strict();var H4=(Q)=>x8.safeParse(Q).success;var s0=p([G4,K4,y8,x8]),Oj=p([y8,x8]),B1=J0.strict(),Z$=M0.extend({requestId:o9.optional(),reason:L().optional()}),T1=b0.extend({method:N("notifications/cancelled"),params:Z$}),W$=b({src:L(),mimeType:L().optional(),sizes:M(L()).optional(),theme:D0(["light","dark"]).optional()}),$9=b({icons:M(W$).optional()}),R1=b({name:L(),title:L().optional()}),F4=R1.extend({...R1.shape,...$9.shape,version:L(),websiteUrl:L().optional(),description:L().optional()}),J$=C8(b({applyDefaults:l().optional()}),i(L(),s())),$$=S8((Q)=>{if(Q&&typeof Q==="object"&&!Array.isArray(Q)){if(Object.keys(Q).length===0)return{form:{}}}return Q},C8(b({form:J$.optional(),url:Z0.optional()}),i(L(),s()).optional())),G$=e({list:Z0.optional(),cancel:Z0.optional(),requests:e({sampling:e({createMessage:Z0.optional()}).optional(),elicitation:e({create:Z0.optional()}).optional()}).optional()}),K$=e({list:Z0.optional(),cancel:Z0.optional(),requests:e({tools:e({call:Z0.optional()}).optional()}).optional()}),B$=b({experimental:i(L(),Z0).optional(),sampling:b({context:Z0.optional(),tools:Z0.optional()}).optional(),elicitation:$$.optional(),roots:b({listChanged:l().optional()}).optional(),tasks:G$.optional()}),H$=q0.extend({protocolVersion:L(),capabilities:B$,clientInfo:F4}),F$=W0.extend({method:N("initialize"),params:H$});var L$=b({experimental:i(L(),Z0).optional(),logging:Z0.optional(),completions:Z0.optional(),prompts:b({listChanged:l().optional()}).optional(),resources:b({subscribe:l().optional(),listChanged:l().optional()}).optional(),tools:b({listChanged:l().optional()}).optional(),tasks:K$.optional()}),f8=J0.extend({protocolVersion:L(),capabilities:L$,serverInfo:F4,instructions:L().optional()}),r9=b0.extend({method:N("notifications/initialized"),params:M0.optional()}),L4=(Q)=>r9.safeParse(Q).success,t9=W0.extend({method:N("ping"),params:q0.optional()}),z$=b({progress:u(),total:a(u()),message:a(L())}),V$=b({...M0.shape,...z$.shape,progressToken:W4}),e9=b0.extend({method:N("notifications/progress"),params:V$}),O$=q0.extend({cursor:J4.optional()}),G9=W0.extend({params:O$.optional()}),K9=J0.extend({nextCursor:J4.optional()}),j$=D0(["working","input_required","completed","failed","cancelled"]),B9=b({taskId:L(),status:j$,ttl:p([u(),T8()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:a(u()),statusMessage:a(L())}),H1=J0.extend({task:B9}),A$=M0.merge(B9),H9=b0.extend({method:N("notifications/tasks/status"),params:A$}),QQ=W0.extend({method:N("tasks/get"),params:q0.extend({taskId:L()})}),XQ=J0.merge(B9),YQ=W0.extend({method:N("tasks/result"),params:q0.extend({taskId:L()})}),jj=J0.loose(),ZQ=G9.extend({method:N("tasks/list")}),WQ=K9.extend({tasks:M(B9)}),JQ=W0.extend({method:N("tasks/cancel"),params:q0.extend({taskId:L()})}),z4=J0.merge(B9),V4=b({uri:L(),mimeType:a(L()),_meta:i(L(),s()).optional()}),O4=V4.extend({text:L()}),_8=L().refine((Q)=>{try{return atob(Q),!0}catch{return!1}},{message:"Invalid Base64 string"}),j4=V4.extend({blob:_8}),F9=D0(["user","assistant"]),E1=b({audience:M(F9).optional(),priority:u().min(0).max(1).optional(),lastModified:X4.datetime({offset:!0}).optional()}),A4=b({...R1.shape,...$9.shape,uri:L(),description:a(L()),mimeType:a(L()),annotations:E1.optional(),_meta:a(e({}))}),U$=b({...R1.shape,...$9.shape,uriTemplate:L(),description:a(L()),mimeType:a(L()),annotations:E1.optional(),_meta:a(e({}))}),D$=G9.extend({method:N("resources/list")}),v8=K9.extend({resources:M(A4)}),q$=G9.extend({method:N("resources/templates/list")}),g8=K9.extend({resourceTemplates:M(U$)}),h8=q0.extend({uri:L()}),M$=h8,b$=W0.extend({method:N("resources/read"),params:M$}),u8=J0.extend({contents:M(p([O4,j4]))}),L9=b0.extend({method:N("notifications/resources/list_changed"),params:M0.optional()}),w$=h8,P$=W0.extend({method:N("resources/subscribe"),params:w$}),N$=h8,R$=W0.extend({method:N("resources/unsubscribe"),params:N$}),I$=M0.extend({uri:L()}),l8=b0.extend({method:N("notifications/resources/updated"),params:I$}),T$=b({name:L(),description:a(L()),required:a(l())}),E$=b({...R1.shape,...$9.shape,description:a(L()),arguments:a(M(T$)),_meta:a(e({}))}),C$=G9.extend({method:N("prompts/list")}),m8=K9.extend({prompts:M(E$)}),S$=q0.extend({name:L(),arguments:i(L(),L()).optional()}),k$=W0.extend({method:N("prompts/get"),params:S$}),p8=b({type:N("text"),text:L(),annotations:E1.optional(),_meta:i(L(),s()).optional()}),d8=b({type:N("image"),data:_8,mimeType:L(),annotations:E1.optional(),_meta:i(L(),s()).optional()}),c8=b({type:N("audio"),data:_8,mimeType:L(),annotations:E1.optional(),_meta:i(L(),s()).optional()}),y$=b({type:N("tool_use"),name:L(),id:L(),input:i(L(),s()),_meta:i(L(),s()).optional()}),x$=b({type:N("resource"),resource:p([O4,j4]),annotations:E1.optional(),_meta:i(L(),s()).optional()}),f$=A4.extend({type:N("resource_link")}),i8=p([p8,d8,c8,f$,x$]),_$=b({role:F9,content:i8}),n8=J0.extend({description:L().optional(),messages:M(_$)}),z9=b0.extend({method:N("notifications/prompts/list_changed"),params:M0.optional()}),v$=b({title:L().optional(),readOnlyHint:l().optional(),destructiveHint:l().optional(),idempotentHint:l().optional(),openWorldHint:l().optional()}),g$=b({taskSupport:D0(["required","optional","forbidden"]).optional()}),U4=b({...R1.shape,...$9.shape,description:L().optional(),inputSchema:b({type:N("object"),properties:i(L(),Z0).optional(),required:M(L()).optional()}).catchall(s()),outputSchema:b({type:N("object"),properties:i(L(),Z0).optional(),required:M(L()).optional()}).catchall(s()).optional(),annotations:v$.optional(),execution:g$.optional(),_meta:i(L(),s()).optional()}),h$=G9.extend({method:N("tools/list")}),s8=K9.extend({tools:M(U4)}),C1=J0.extend({content:M(i8).default([]),structuredContent:i(L(),s()).optional(),isError:l().optional()}),Aj=C1.or(J0.extend({toolResult:s()})),u$=W9.extend({name:L(),arguments:i(L(),s()).optional()}),l$=W0.extend({method:N("tools/call"),params:u$}),V9=b0.extend({method:N("notifications/tools/list_changed"),params:M0.optional()}),D4=b({autoRefresh:l().default(!0),debounceMs:u().int().nonnegative().default(300)}),q4=D0(["debug","info","notice","warning","error","critical","alert","emergency"]),m$=q0.extend({level:q4}),p$=W0.extend({method:N("logging/setLevel"),params:m$}),d$=M0.extend({level:q4,logger:L().optional(),data:s()}),a8=b0.extend({method:N("notifications/message"),params:d$}),c$=b({name:L().optional()}),i$=b({hints:M(c$).optional(),costPriority:u().min(0).max(1).optional(),speedPriority:u().min(0).max(1).optional(),intelligencePriority:u().min(0).max(1).optional()}),n$=b({mode:D0(["auto","required","none"]).optional()}),s$=b({type:N("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:M(i8).default([]),structuredContent:b({}).loose().optional(),isError:l().optional(),_meta:i(L(),s()).optional()}),a$=E8("type",[p8,d8,c8]),s9=E8("type",[p8,d8,c8,y$,s$]),o$=b({role:F9,content:p([s9,M(s9)]),_meta:i(L(),s()).optional()}),r$=W9.extend({messages:M(o$),modelPreferences:i$.optional(),systemPrompt:L().optional(),includeContext:D0(["none","thisServer","allServers"]).optional(),temperature:u().optional(),maxTokens:u().int(),stopSequences:M(L()).optional(),metadata:Z0.optional(),tools:M(U4).optional(),toolChoice:n$.optional()}),o8=W0.extend({method:N("sampling/createMessage"),params:r$}),r8=J0.extend({model:L(),stopReason:a(D0(["endTurn","stopSequence","maxTokens"]).or(L())),role:F9,content:a$}),t8=J0.extend({model:L(),stopReason:a(D0(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:F9,content:p([s9,M(s9)])}),t$=b({type:N("boolean"),title:L().optional(),description:L().optional(),default:l().optional()}),e$=b({type:N("string"),title:L().optional(),description:L().optional(),minLength:u().optional(),maxLength:u().optional(),format:D0(["email","uri","date","date-time"]).optional(),default:L().optional()}),QG=b({type:D0(["number","integer"]),title:L().optional(),description:L().optional(),minimum:u().optional(),maximum:u().optional(),default:u().optional()}),XG=b({type:N("string"),title:L().optional(),description:L().optional(),enum:M(L()),default:L().optional()}),YG=b({type:N("string"),title:L().optional(),description:L().optional(),oneOf:M(b({const:L(),title:L()})),default:L().optional()}),ZG=b({type:N("string"),title:L().optional(),description:L().optional(),enum:M(L()),enumNames:M(L()).optional(),default:L().optional()}),WG=p([XG,YG]),JG=b({type:N("array"),title:L().optional(),description:L().optional(),minItems:u().optional(),maxItems:u().optional(),items:b({type:N("string"),enum:M(L())}),default:M(L()).optional()}),$G=b({type:N("array"),title:L().optional(),description:L().optional(),minItems:u().optional(),maxItems:u().optional(),items:b({anyOf:M(b({const:L(),title:L()}))}),default:M(L()).optional()}),GG=p([JG,$G]),KG=p([ZG,WG,GG]),BG=p([KG,t$,e$,QG]),HG=W9.extend({mode:N("form").optional(),message:L(),requestedSchema:b({type:N("object"),properties:i(L(),BG),required:M(L()).optional()})}),FG=W9.extend({mode:N("url"),message:L(),elicitationId:L(),url:L().url()}),LG=p([HG,FG]),e8=W0.extend({method:N("elicitation/create"),params:LG}),zG=M0.extend({elicitationId:L()}),VG=b0.extend({method:N("notifications/elicitation/complete"),params:zG}),Q6=J0.extend({action:D0(["accept","decline","cancel"]),content:S8((Q)=>Q===null?void 0:Q,i(L(),p([L(),u(),l(),M(L())])).optional())}),OG=b({type:N("ref/resource"),uri:L()});var jG=b({type:N("ref/prompt"),name:L()}),AG=q0.extend({ref:p([jG,OG]),argument:b({name:L(),value:L()}),context:b({arguments:i(L(),L()).optional()}).optional()}),UG=W0.extend({method:N("completion/complete"),params:AG});var X6=J0.extend({completion:e({values:M(L()).max(100),total:a(u().int()),hasMore:a(l())})}),DG=b({uri:L().startsWith("file://"),name:L().optional(),_meta:i(L(),s()).optional()}),qG=W0.extend({method:N("roots/list"),params:q0.optional()}),MG=J0.extend({roots:M(DG)}),Y6=b0.extend({method:N("notifications/roots/list_changed"),params:M0.optional()}),Uj=p([t9,F$,UG,p$,k$,C$,D$,q$,b$,P$,R$,l$,h$,QQ,YQ,ZQ,JQ]),Dj=p([T1,e9,r9,Y6,H9]),qj=p([B1,r8,t8,Q6,MG,XQ,WQ,H1]),Mj=p([t9,o8,e8,qG,QQ,YQ,ZQ,JQ]),bj=p([T1,e9,a8,l8,L9,V9,z9,H9,VG]),wj=p([B1,f8,X6,n8,m8,v8,g8,u8,C1,s8,XQ,WQ,H1]);class C extends Error{constructor(Q,X,Y){super(`MCP error ${Q}: ${X}`);this.code=Q,this.data=Y,this.name="McpError"}static fromError(Q,X,Y){if(Q===S.UrlElicitationRequired&&Y){let Z=Y;if(Z.elicitations)return new M4(Z.elicitations,X)}return new C(Q,X,Y)}}class M4 extends C{constructor(Q,X=`URL elicitation${Q.length>1?"s":""} required`){super(S.UrlElicitationRequired,X,{elicitations:Q})}get elicitations(){return this.data?.elicitations??[]}}var Z6;Z6=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then((Q)=>Q.webcrypto);async function wG(Q){return(await Z6).getRandomValues(new Uint8Array(Q))}async function PG(Q){let Y=Math.pow(2,8)-Math.pow(2,8)%66,Z="";while(Z.length<Q){let W=await wG(Q-Z.length);for(let J of W)if(J<Y)Z+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~"[J%66]}return Z}async function NG(Q){return await PG(Q)}async function RG(Q){let X=await(await Z6).subtle.digest("SHA-256",new TextEncoder().encode(Q));return btoa(String.fromCharCode(...new Uint8Array(X))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function W6(Q){if(!Q)Q=43;if(Q<43||Q>128)throw`Expected a length between 43 and 128. Received ${Q}.`;let X=await NG(Q),Y=await RG(X);return{code_verifier:X,code_challenge:Y}}var $0=P4().superRefine((Q,X)=>{if(!URL.canParse(Q))return X.addIssue({code:R4.custom,message:"URL must be parseable",fatal:!0}),w4}).refine((Q)=>{let X=new URL(Q);return X.protocol!=="javascript:"&&X.protocol!=="data:"&&X.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),T4=e({resource:L().url(),authorization_servers:M($0).optional(),jwks_uri:L().url().optional(),scopes_supported:M(L()).optional(),bearer_methods_supported:M(L()).optional(),resource_signing_alg_values_supported:M(L()).optional(),resource_name:L().optional(),resource_documentation:L().optional(),resource_policy_uri:L().url().optional(),resource_tos_uri:L().url().optional(),tls_client_certificate_bound_access_tokens:l().optional(),authorization_details_types_supported:M(L()).optional(),dpop_signing_alg_values_supported:M(L()).optional(),dpop_bound_access_tokens_required:l().optional()}),J6=e({issuer:L(),authorization_endpoint:$0,token_endpoint:$0,registration_endpoint:$0.optional(),scopes_supported:M(L()).optional(),response_types_supported:M(L()),response_modes_supported:M(L()).optional(),grant_types_supported:M(L()).optional(),token_endpoint_auth_methods_supported:M(L()).optional(),token_endpoint_auth_signing_alg_values_supported:M(L()).optional(),service_documentation:$0.optional(),revocation_endpoint:$0.optional(),revocation_endpoint_auth_methods_supported:M(L()).optional(),revocation_endpoint_auth_signing_alg_values_supported:M(L()).optional(),introspection_endpoint:L().optional(),introspection_endpoint_auth_methods_supported:M(L()).optional(),introspection_endpoint_auth_signing_alg_values_supported:M(L()).optional(),code_challenge_methods_supported:M(L()).optional(),client_id_metadata_document_supported:l().optional()}),IG=e({issuer:L(),authorization_endpoint:$0,token_endpoint:$0,userinfo_endpoint:$0.optional(),jwks_uri:$0,registration_endpoint:$0.optional(),scopes_supported:M(L()).optional(),response_types_supported:M(L()),response_modes_supported:M(L()).optional(),grant_types_supported:M(L()).optional(),acr_values_supported:M(L()).optional(),subject_types_supported:M(L()),id_token_signing_alg_values_supported:M(L()),id_token_encryption_alg_values_supported:M(L()).optional(),id_token_encryption_enc_values_supported:M(L()).optional(),userinfo_signing_alg_values_supported:M(L()).optional(),userinfo_encryption_alg_values_supported:M(L()).optional(),userinfo_encryption_enc_values_supported:M(L()).optional(),request_object_signing_alg_values_supported:M(L()).optional(),request_object_encryption_alg_values_supported:M(L()).optional(),request_object_encryption_enc_values_supported:M(L()).optional(),token_endpoint_auth_methods_supported:M(L()).optional(),token_endpoint_auth_signing_alg_values_supported:M(L()).optional(),display_values_supported:M(L()).optional(),claim_types_supported:M(L()).optional(),claims_supported:M(L()).optional(),service_documentation:L().optional(),claims_locales_supported:M(L()).optional(),ui_locales_supported:M(L()).optional(),claims_parameter_supported:l().optional(),request_parameter_supported:l().optional(),request_uri_parameter_supported:l().optional(),require_request_uri_registration:l().optional(),op_policy_uri:$0.optional(),op_tos_uri:$0.optional(),client_id_metadata_document_supported:l().optional()}),E4=b({...IG.shape,...J6.pick({code_challenge_methods_supported:!0}).shape}),C4=b({access_token:L(),id_token:L().optional(),token_type:L(),expires_in:I4.number().optional(),scope:L().optional(),refresh_token:L().optional()}).strip(),S4=b({error:L(),error_description:L().optional(),error_uri:L().optional()}),b4=$0.optional().or(N("").transform(()=>{return})),TG=b({redirect_uris:M($0),token_endpoint_auth_method:L().optional(),grant_types:M(L()).optional(),response_types:M(L()).optional(),client_name:L().optional(),client_uri:$0.optional(),logo_uri:b4,scope:L().optional(),contacts:M(L()).optional(),tos_uri:b4,policy_uri:L().optional(),jwks_uri:$0.optional(),jwks:N4().optional(),software_id:L().optional(),software_version:L().optional(),software_statement:L().optional()}).strip(),EG=b({client_id:L(),client_secret:L().optional(),client_id_issued_at:u().optional(),client_secret_expires_at:u().optional()}).strip(),k4=TG.merge(EG),Rj=b({error:L(),error_description:L().optional()}).strip(),Ij=b({token:L(),token_type_hint:L().optional()}).strip();function y4(Q){let X=typeof Q==="string"?new URL(Q):new URL(Q.href);return X.hash="",X}function x4({requestedResource:Q,configuredResource:X}){let Y=typeof Q==="string"?new URL(Q):new URL(Q.href),Z=typeof X==="string"?new URL(X):new URL(X.href);if(Y.origin!==Z.origin)return!1;if(Y.pathname.length<Z.pathname.length)return!1;let W=Y.pathname.endsWith("/")?Y.pathname:Y.pathname+"/",J=Z.pathname.endsWith("/")?Z.pathname:Z.pathname+"/";return W.startsWith(J)}class r extends Error{constructor(Q,X){super(Q);this.errorUri=X,this.name=this.constructor.name}toResponseObject(){let Q={error:this.errorCode,error_description:this.message};if(this.errorUri)Q.error_uri=this.errorUri;return Q}get errorCode(){return this.constructor.errorCode}}class $Q extends r{}$Q.errorCode="invalid_request";class S1 extends r{}S1.errorCode="invalid_client";class k1 extends r{}k1.errorCode="invalid_grant";class y1 extends r{}y1.errorCode="unauthorized_client";class GQ extends r{}GQ.errorCode="unsupported_grant_type";class KQ extends r{}KQ.errorCode="invalid_scope";class BQ extends r{}BQ.errorCode="access_denied";class a0 extends r{}a0.errorCode="server_error";class HQ extends r{}HQ.errorCode="temporarily_unavailable";class FQ extends r{}FQ.errorCode="unsupported_response_type";class LQ extends r{}LQ.errorCode="unsupported_token_type";class zQ extends r{}zQ.errorCode="invalid_token";class VQ extends r{}VQ.errorCode="method_not_allowed";class OQ extends r{}OQ.errorCode="too_many_requests";class x1 extends r{}x1.errorCode="invalid_client_metadata";class jQ extends r{}jQ.errorCode="insufficient_scope";class AQ extends r{}AQ.errorCode="invalid_target";var f4={[$Q.errorCode]:$Q,[S1.errorCode]:S1,[k1.errorCode]:k1,[y1.errorCode]:y1,[GQ.errorCode]:GQ,[KQ.errorCode]:KQ,[BQ.errorCode]:BQ,[a0.errorCode]:a0,[HQ.errorCode]:HQ,[FQ.errorCode]:FQ,[LQ.errorCode]:LQ,[zQ.errorCode]:zQ,[VQ.errorCode]:VQ,[OQ.errorCode]:OQ,[x1.errorCode]:x1,[jQ.errorCode]:jQ,[AQ.errorCode]:AQ};class V0 extends Error{constructor(Q){super(Q??"Unauthorized")}}function CG(Q){return["client_secret_basic","client_secret_post","none"].includes(Q)}var $6="code",G6="S256";function SG(Q,X){let Y=Q.client_secret!==void 0;if(X.length===0)return Y?"client_secret_post":"none";if("token_endpoint_auth_method"in Q&&Q.token_endpoint_auth_method&&CG(Q.token_endpoint_auth_method)&&X.includes(Q.token_endpoint_auth_method))return Q.token_endpoint_auth_method;if(Y&&X.includes("client_secret_basic"))return"client_secret_basic";if(Y&&X.includes("client_secret_post"))return"client_secret_post";if(X.includes("none"))return"none";return Y?"client_secret_post":"none"}function kG(Q,X,Y,Z){let{client_id:W,client_secret:J}=X;switch(Q){case"client_secret_basic":yG(W,J,Y);return;case"client_secret_post":xG(W,J,Z);return;case"none":fG(W,Z);return;default:throw Error(`Unsupported client authentication method: ${Q}`)}}function yG(Q,X,Y){if(!X)throw Error("client_secret_basic authentication requires a client_secret");let Z=btoa(`${Q}:${X}`);Y.set("Authorization",`Basic ${Z}`)}function xG(Q,X,Y){if(Y.set("client_id",Q),X)Y.set("client_secret",X)}function fG(Q,X){X.set("client_id",Q)}async function v4(Q){let X=Q instanceof Response?Q.status:void 0,Y=Q instanceof Response?await Q.text():Q;try{let Z=S4.parse(JSON.parse(Y)),{error:W,error_description:J,error_uri:$}=Z;return new(f4[W]||a0)(J||"",$)}catch(Z){let W=`${X?`HTTP ${X}: `:""}Invalid OAuth error response: ${Z}. Raw body: ${Y}`;return new a0(W)}}async function g0(Q,X){try{return await K6(Q,X)}catch(Y){if(Y instanceof S1||Y instanceof y1)return await Q.invalidateCredentials?.("all"),await K6(Q,X);else if(Y instanceof k1)return await Q.invalidateCredentials?.("tokens"),await K6(Q,X);throw Y}}async function K6(Q,{serverUrl:X,authorizationCode:Y,scope:Z,resourceMetadataUrl:W,fetchFn:J}){let $,G;try{if($=await gG(X,{resourceMetadataUrl:W},J),$.authorization_servers&&$.authorization_servers.length>0)G=$.authorization_servers[0]}catch{}if(!G)G=new URL("/",X);let K=await vG(X,Q,$),B=await pG(G,{fetchFn:J}),H=await Promise.resolve(Q.clientInformation());if(!H){if(Y!==void 0)throw Error("Existing OAuth client information is required when exchanging an authorization code");let D=B?.client_id_metadata_document_supported===!0,U=Q.clientMetadataUrl;if(U&&!_G(U))throw new x1(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${U}`);if(D&&U)H={client_id:U},await Q.saveClientInformation?.(H);else{if(!Q.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let E=await sG(G,{metadata:B,clientMetadata:Q.clientMetadata,fetchFn:J});await Q.saveClientInformation(E),H=E}}let F=!Q.redirectUrl;if(Y!==void 0||F){let D=await nG(Q,G,{metadata:B,resource:K,authorizationCode:Y,fetchFn:J});return await Q.saveTokens(D),"AUTHORIZED"}let O=await Q.tokens();if(O?.refresh_token)try{let D=await iG(G,{metadata:B,clientInformation:H,refreshToken:O.refresh_token,resource:K,addClientAuthentication:Q.addClientAuthentication,fetchFn:J});return await Q.saveTokens(D),"AUTHORIZED"}catch(D){if(!(D instanceof r)||D instanceof a0);else throw D}let A=Q.state?await Q.state():void 0,{authorizationUrl:j,codeVerifier:V}=await dG(G,{metadata:B,clientInformation:H,state:A,redirectUrl:Q.redirectUrl,scope:Z||$?.scopes_supported?.join(" ")||Q.clientMetadata.scope,resource:K});return await Q.saveCodeVerifier(V),await Q.redirectToAuthorization(j),"REDIRECT"}function _G(Q){if(!Q)return!1;try{let X=new URL(Q);return X.protocol==="https:"&&X.pathname!=="/"}catch{return!1}}async function vG(Q,X,Y){let Z=y4(Q);if(X.validateResourceURL)return await X.validateResourceURL(Z,Y?.resource);if(!Y)return;if(!x4({requestedResource:Z,configuredResource:Y.resource}))throw Error(`Protected resource ${Y.resource} does not match expected ${Z} (or origin)`);return new URL(Y.resource)}function f1(Q){let X=Q.headers.get("WWW-Authenticate");if(!X)return{};let[Y,Z]=X.split(" ");if(Y.toLowerCase()!=="bearer"||!Z)return{};let W=B6(Q,"resource_metadata")||void 0,J;if(W)try{J=new URL(W)}catch{}let $=B6(Q,"scope")||void 0,G=B6(Q,"error")||void 0;return{resourceMetadataUrl:J,scope:$,error:G}}function B6(Q,X){let Y=Q.headers.get("WWW-Authenticate");if(!Y)return null;let Z=new RegExp(`${X}=(?:"([^"]+)"|([^\\s,]+))`),W=Y.match(Z);if(W)return W[1]||W[2];return null}async function gG(Q,X,Y=fetch){let Z=await lG(Q,"oauth-protected-resource",Y,{protocolVersion:X?.protocolVersion,metadataUrl:X?.resourceMetadataUrl});if(!Z||Z.status===404)throw await Z?.body?.cancel(),Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!Z.ok)throw await Z.body?.cancel(),Error(`HTTP ${Z.status} trying to load well-known OAuth protected resource metadata.`);return T4.parse(await Z.json())}async function H6(Q,X,Y=fetch){try{return await Y(Q,{headers:X})}catch(Z){if(Z instanceof TypeError)if(X)return H6(Q,void 0,Y);else return;throw Z}}function hG(Q,X="",Y={}){if(X.endsWith("/"))X=X.slice(0,-1);return Y.prependPathname?`${X}/.well-known/${Q}`:`/.well-known/${Q}${X}`}async function _4(Q,X,Y=fetch){return await H6(Q,{"MCP-Protocol-Version":X},Y)}function uG(Q,X){return!Q||Q.status>=400&&Q.status<500&&X!=="/"}async function lG(Q,X,Y,Z){let W=new URL(Q),J=Z?.protocolVersion??I1,$;if(Z?.metadataUrl)$=new URL(Z.metadataUrl);else{let K=hG(X,W.pathname);$=new URL(K,Z?.metadataServerUrl??W),$.search=W.search}let G=await _4($,J,Y);if(!Z?.metadataUrl&&uG(G,W.pathname)){let K=new URL(`/.well-known/${X}`,W);G=await _4(K,J,Y)}return G}function mG(Q){let X=typeof Q==="string"?new URL(Q):Q,Y=X.pathname!=="/",Z=[];if(!Y)return Z.push({url:new URL("/.well-known/oauth-authorization-server",X.origin),type:"oauth"}),Z.push({url:new URL("/.well-known/openid-configuration",X.origin),type:"oidc"}),Z;let W=X.pathname;if(W.endsWith("/"))W=W.slice(0,-1);return Z.push({url:new URL(`/.well-known/oauth-authorization-server${W}`,X.origin),type:"oauth"}),Z.push({url:new URL(`/.well-known/openid-configuration${W}`,X.origin),type:"oidc"}),Z.push({url:new URL(`${W}/.well-known/openid-configuration`,X.origin),type:"oidc"}),Z}async function pG(Q,{fetchFn:X=fetch,protocolVersion:Y=I1}={}){let Z={"MCP-Protocol-Version":Y,Accept:"application/json"},W=mG(Q);for(let{url:J,type:$}of W){let G=await H6(J,Z,X);if(!G)continue;if(!G.ok){if(await G.body?.cancel(),G.status>=400&&G.status<500)continue;throw Error(`HTTP ${G.status} trying to load ${$==="oauth"?"OAuth":"OpenID provider"} metadata from ${J}`)}if($==="oauth")return J6.parse(await G.json());else return E4.parse(await G.json())}return}async function dG(Q,{metadata:X,clientInformation:Y,redirectUrl:Z,scope:W,state:J,resource:$}){let G;if(X){if(G=new URL(X.authorization_endpoint),!X.response_types_supported.includes($6))throw Error(`Incompatible auth server: does not support response type ${$6}`);if(X.code_challenge_methods_supported&&!X.code_challenge_methods_supported.includes(G6))throw Error(`Incompatible auth server: does not support code challenge method ${G6}`)}else G=new URL("/authorize",Q);let K=await W6(),B=K.code_verifier,H=K.code_challenge;if(G.searchParams.set("response_type",$6),G.searchParams.set("client_id",Y.client_id),G.searchParams.set("code_challenge",H),G.searchParams.set("code_challenge_method",G6),G.searchParams.set("redirect_uri",String(Z)),J)G.searchParams.set("state",J);if(W)G.searchParams.set("scope",W);if(W?.includes("offline_access"))G.searchParams.append("prompt","consent");if($)G.searchParams.set("resource",$.href);return{authorizationUrl:G,codeVerifier:B}}function cG(Q,X,Y){return new URLSearchParams({grant_type:"authorization_code",code:Q,code_verifier:X,redirect_uri:String(Y)})}async function g4(Q,{metadata:X,tokenRequestParams:Y,clientInformation:Z,addClientAuthentication:W,resource:J,fetchFn:$}){let G=X?.token_endpoint?new URL(X.token_endpoint):new URL("/token",Q),K=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});if(J)Y.set("resource",J.href);if(W)await W(K,Y,G,X);else if(Z){let H=X?.token_endpoint_auth_methods_supported??[],F=SG(Z,H);kG(F,Z,K,Y)}let B=await($??fetch)(G,{method:"POST",headers:K,body:Y});if(!B.ok)throw await v4(B);return C4.parse(await B.json())}async function iG(Q,{metadata:X,clientInformation:Y,refreshToken:Z,resource:W,addClientAuthentication:J,fetchFn:$}){let G=new URLSearchParams({grant_type:"refresh_token",refresh_token:Z}),K=await g4(Q,{metadata:X,tokenRequestParams:G,clientInformation:Y,addClientAuthentication:J,resource:W,fetchFn:$});return{refresh_token:Z,...K}}async function nG(Q,X,{metadata:Y,resource:Z,authorizationCode:W,fetchFn:J}={}){let $=Q.clientMetadata.scope,G;if(Q.prepareTokenRequest)G=await Q.prepareTokenRequest($);if(!G){if(!W)throw Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!Q.redirectUrl)throw Error("redirectUrl is required for authorization_code flow");let B=await Q.codeVerifier();G=cG(W,B,Q.redirectUrl)}let K=await Q.clientInformation();return g4(X,{metadata:Y,tokenRequestParams:G,clientInformation:K??void 0,addClientAuthentication:Q.addClientAuthentication,resource:Z,fetchFn:J})}async function sG(Q,{metadata:X,clientMetadata:Y,fetchFn:Z}){let W;if(X){if(!X.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");W=new URL(X.registration_endpoint)}else W=new URL("/register",Q);let J=await(Z??fetch)(W,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Y)});if(!J.ok)throw await v4(J);return k4.parse(await J.json())}class h4 extends Error{constructor(Q,X,Y){super(`SSE error: ${X}`);this.code=Q,this.event=Y}}class F6{constructor(Q,X){this._url=Q,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=X?.eventSourceInit,this._requestInit=X?.requestInit,this._authProvider=X?.authProvider,this._fetch=X?.fetch,this._fetchWithInit=n9(X?.fetch,X?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new V0("No auth provider");let Q;try{Q=await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(X){throw this.onerror?.(X),X}if(Q!=="AUTHORIZED")throw new V0;return await this._startOrAuth()}async _commonHeaders(){let Q={};if(this._authProvider){let Y=await this._authProvider.tokens();if(Y)Q.Authorization=`Bearer ${Y.access_token}`}if(this._protocolVersion)Q["mcp-protocol-version"]=this._protocolVersion;let X=N1(this._requestInit?.headers);return new Headers({...Q,...X})}_startOrAuth(){let Q=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((X,Y)=>{this._eventSource=new P1(this._url.href,{...this._eventSourceInit,fetch:async(Z,W)=>{let J=await this._commonHeaders();J.set("Accept","text/event-stream");let $=await Q(Z,{...W,headers:J});if($.status===401&&$.headers.has("www-authenticate")){let{resourceMetadataUrl:G,scope:K}=f1($);this._resourceMetadataUrl=G,this._scope=K}return $}}),this._abortController=new AbortController,this._eventSource.onerror=(Z)=>{if(Z.code===401&&this._authProvider){this._authThenStart().then(X,Y);return}let W=new h4(Z.code,Z.message,Z);Y(W),this.onerror?.(W)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(Z)=>{let W=Z;try{if(this._endpoint=new URL(W.data,this._url),this._endpoint.origin!==this._url.origin)throw Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(J){Y(J),this.onerror?.(J),this.close();return}X()}),this._eventSource.onmessage=(Z)=>{let W=Z,J;try{J=s0.parse(JSON.parse(W.data))}catch($){this.onerror?.($);return}this.onmessage?.(J)}})}async start(){if(this._eventSource)throw Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(Q){if(!this._authProvider)throw new V0("No auth provider");if(await g0(this._authProvider,{serverUrl:this._url,authorizationCode:Q,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new V0("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(Q){if(!this._endpoint)throw Error("Not connected");try{let X=await this._commonHeaders();X.set("content-type","application/json");let Y={...this._requestInit,method:"POST",headers:X,body:JSON.stringify(Q),signal:this._abortController?.signal},Z=await(this._fetch??fetch)(this._endpoint,Y);if(!Z.ok){let W=await Z.text().catch(()=>null);if(Z.status===401&&this._authProvider){let{resourceMetadataUrl:J,scope:$}=f1(Z);if(this._resourceMetadataUrl=J,this._scope=$,await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new V0;return this.send(Q)}throw Error(`Error POSTing to endpoint (HTTP ${Z.status}): ${W}`)}await Z.body?.cancel()}catch(X){throw this.onerror?.(X),X}}setProtocolVersion(Q){this._protocolVersion=Q}}class L6 extends TransformStream{constructor({onError:Q,onRetry:X,onComment:Y}={}){let Z;super({start(W){Z=d9({onEvent:(J)=>{W.enqueue(J)},onError(J){Q==="terminate"?W.error(J):typeof Q=="function"&&Q(J)},onRetry:X,onComment:Y})},transform(W){Z.feed(W)}})}}var aG={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};class F1 extends Error{constructor(Q,X){super(`Streamable HTTP error: ${X}`);this.code=Q}}class UQ{constructor(Q,X){this._hasCompletedAuthFlow=!1,this._url=Q,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=X?.requestInit,this._authProvider=X?.authProvider,this._fetch=X?.fetch,this._fetchWithInit=n9(X?.fetch,X?.requestInit),this._sessionId=X?.sessionId,this._reconnectionOptions=X?.reconnectionOptions??aG}async _authThenStart(){if(!this._authProvider)throw new V0("No auth provider");let Q;try{Q=await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(X){throw this.onerror?.(X),X}if(Q!=="AUTHORIZED")throw new V0;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let Q={};if(this._authProvider){let Y=await this._authProvider.tokens();if(Y)Q.Authorization=`Bearer ${Y.access_token}`}if(this._sessionId)Q["mcp-session-id"]=this._sessionId;if(this._protocolVersion)Q["mcp-protocol-version"]=this._protocolVersion;let X=N1(this._requestInit?.headers);return new Headers({...Q,...X})}async _startOrAuthSse(Q){let{resumptionToken:X}=Q;try{let Y=await this._commonHeaders();if(Y.set("Accept","text/event-stream"),X)Y.set("last-event-id",X);let Z=await(this._fetch??fetch)(this._url,{method:"GET",headers:Y,signal:this._abortController?.signal});if(!Z.ok){if(await Z.body?.cancel(),Z.status===401&&this._authProvider)return await this._authThenStart();if(Z.status===405)return;throw new F1(Z.status,`Failed to open SSE stream: ${Z.statusText}`)}this._handleSseStream(Z.body,Q,!0)}catch(Y){throw this.onerror?.(Y),Y}}_getNextReconnectionDelay(Q){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let X=this._reconnectionOptions.initialReconnectionDelay,Y=this._reconnectionOptions.reconnectionDelayGrowFactor,Z=this._reconnectionOptions.maxReconnectionDelay;return Math.min(X*Math.pow(Y,Q),Z)}_scheduleReconnection(Q,X=0){let Y=this._reconnectionOptions.maxRetries;if(X>=Y){this.onerror?.(Error(`Maximum reconnection attempts (${Y}) exceeded.`));return}let Z=this._getNextReconnectionDelay(X);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(Q).catch((W)=>{this.onerror?.(Error(`Failed to reconnect SSE stream: ${W instanceof Error?W.message:String(W)}`)),this._scheduleReconnection(Q,X+1)})},Z)}_handleSseStream(Q,X,Y){if(!Q)return;let{onresumptiontoken:Z,replayMessageId:W}=X,J,$=!1,G=!1;(async()=>{try{let B=Q.pipeThrough(new TextDecoderStream).pipeThrough(new L6({onRetry:(O)=>{this._serverRetryMs=O}})).getReader();while(!0){let{value:O,done:A}=await B.read();if(A)break;if(O.id)J=O.id,$=!0,Z?.(O.id);if(!O.data)continue;if(!O.event||O.event==="message")try{let j=s0.parse(JSON.parse(O.data));if(K1(j)){if(G=!0,W!==void 0)j.id=W}this.onmessage?.(j)}catch(j){this.onerror?.(j)}}if((Y||$)&&!G&&this._abortController&&!this._abortController.signal.aborted)this._scheduleReconnection({resumptionToken:J,onresumptiontoken:Z,replayMessageId:W},0)}catch(B){if(this.onerror?.(Error(`SSE stream disconnected: ${B}`)),(Y||$)&&!G&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:J,onresumptiontoken:Z,replayMessageId:W},0)}catch(O){this.onerror?.(Error(`Failed to reconnect: ${O instanceof Error?O.message:String(O)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(Q){if(!this._authProvider)throw new V0("No auth provider");if(await g0(this._authProvider,{serverUrl:this._url,authorizationCode:Q,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new V0("Failed to authorize")}async close(){if(this._reconnectionTimeout)clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0;this._abortController?.abort(),this.onclose?.()}async send(Q,X){try{let{resumptionToken:Y,onresumptiontoken:Z}=X||{};if(Y){this._startOrAuthSse({resumptionToken:Y,replayMessageId:J9(Q)?Q.id:void 0}).catch((F)=>this.onerror?.(F));return}let W=await this._commonHeaders();W.set("content-type","application/json"),W.set("accept","application/json, text/event-stream");let J={...this._requestInit,method:"POST",headers:W,body:JSON.stringify(Q),signal:this._abortController?.signal},$=await(this._fetch??fetch)(this._url,J),G=$.headers.get("mcp-session-id");if(G)this._sessionId=G;if(!$.ok){let F=await $.text().catch(()=>null);if($.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new F1(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:O,scope:A}=f1($);if(this._resourceMetadataUrl=O,this._scope=A,await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new V0;return this._hasCompletedAuthFlow=!0,this.send(Q)}if($.status===403&&this._authProvider){let{resourceMetadataUrl:O,scope:A,error:j}=f1($);if(j==="insufficient_scope"){let V=$.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===V)throw new F1(403,"Server returned 403 after trying upscoping");if(A)this._scope=A;if(O)this._resourceMetadataUrl=O;if(this._lastUpscopingHeader=V??void 0,await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new V0;return this.send(Q)}}throw new F1($.status,`Error POSTing to endpoint: ${F}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,$.status===202){if(await $.body?.cancel(),L4(Q))this._startOrAuthSse({resumptionToken:void 0}).catch((F)=>this.onerror?.(F));return}let B=(Array.isArray(Q)?Q:[Q]).filter((F)=>("method"in F)&&("id"in F)&&F.id!==void 0).length>0,H=$.headers.get("content-type");if(B)if(H?.includes("text/event-stream"))this._handleSseStream($.body,{onresumptiontoken:Z},!1);else if(H?.includes("application/json")){let F=await $.json(),O=Array.isArray(F)?F.map((A)=>s0.parse(A)):[s0.parse(F)];for(let A of O)this.onmessage?.(A)}else throw await $.body?.cancel(),new F1(-1,`Unexpected content type: ${H}`);else await $.body?.cancel()}catch(Y){throw this.onerror?.(Y),Y}}get sessionId(){return this._sessionId}async terminateSession(){if(!this._sessionId)return;try{let Q=await this._commonHeaders(),X={...this._requestInit,method:"DELETE",headers:Q,signal:this._abortController?.signal},Y=await(this._fetch??fetch)(this._url,X);if(await Y.body?.cancel(),!Y.ok&&Y.status!==405)throw new F1(Y.status,`Failed to terminate session: ${Y.statusText}`);this._sessionId=void 0}catch(Q){throw this.onerror?.(Q),Q}}setProtocolVersion(Q){this._protocolVersion=Q}get protocolVersion(){return this._protocolVersion}async resumeStream(Q,X){await this._startOrAuthSse({resumptionToken:Q,onresumptiontoken:X?.onresumptiontoken})}}function _1(Q){return!!Q._zod}function I0(Q,X){if(_1(Q))return z6(Q,X);return Q.safeParse(X)}function DQ(Q){if(!Q)return;let X;if(_1(Q))X=Q._zod?.def?.shape;else X=Q.shape;if(!X)return;if(typeof X==="function")try{return X()}catch{return}return X}function u4(Q){if(_1(Q)){let J=Q._zod?.def;if(J){if(J.value!==void 0)return J.value;if(Array.isArray(J.values)&&J.values.length>0)return J.values[0]}}let Y=Q._def;if(Y){if(Y.value!==void 0)return Y.value;if(Array.isArray(Y.values)&&Y.values.length>0)return Y.values[0]}let Z=Q.value;if(Z!==void 0)return Z;return}function o0(Q){return Q==="completed"||Q==="failed"||Q==="cancelled"}function V6(Q){let Y=DQ(Q)?.method;if(!Y)throw Error("Schema is missing a method literal");let Z=u4(Y);if(typeof Z!=="string")throw Error("Schema method literal must be a string");return Z}function O6(Q,X){let Y=I0(Q,X);if(!Y.success)throw Y.error;return Y.data}var rG=60000;class j6{constructor(Q){if(this._options=Q,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(T1,(X)=>{this._oncancel(X)}),this.setNotificationHandler(e9,(X)=>{this._onprogress(X)}),this.setRequestHandler(t9,(X)=>({})),this._taskStore=Q?.taskStore,this._taskMessageQueue=Q?.taskMessageQueue,this._taskStore)this.setRequestHandler(QQ,async(X,Y)=>{let Z=await this._taskStore.getTask(X.params.taskId,Y.sessionId);if(!Z)throw new C(S.InvalidParams,"Failed to retrieve task: Task not found");return{...Z}}),this.setRequestHandler(YQ,async(X,Y)=>{let Z=async()=>{let W=X.params.taskId;if(this._taskMessageQueue){let $;while($=await this._taskMessageQueue.dequeue(W,Y.sessionId)){if($.type==="response"||$.type==="error"){let G=$.message,K=G.id,B=this._requestResolvers.get(K);if(B)if(this._requestResolvers.delete(K),$.type==="response")B(G);else{let H=G,F=new C(H.error.code,H.error.message,H.error.data);B(F)}else{let H=$.type==="response"?"Response":"Error";this._onerror(Error(`${H} handler missing for request ${K}`))}continue}await this._transport?.send($.message,{relatedRequestId:Y.requestId})}}let J=await this._taskStore.getTask(W,Y.sessionId);if(!J)throw new C(S.InvalidParams,`Task not found: ${W}`);if(!o0(J.status))return await this._waitForTaskUpdate(W,Y.signal),await Z();if(o0(J.status)){let $=await this._taskStore.getTaskResult(W,Y.sessionId);return this._clearTaskQueue(W),{...$,_meta:{...$._meta,[n0]:{taskId:W}}}}return await Z()};return await Z()}),this.setRequestHandler(ZQ,async(X,Y)=>{try{let{tasks:Z,nextCursor:W}=await this._taskStore.listTasks(X.params?.cursor,Y.sessionId);return{tasks:Z,nextCursor:W,_meta:{}}}catch(Z){throw new C(S.InvalidParams,`Failed to list tasks: ${Z instanceof Error?Z.message:String(Z)}`)}}),this.setRequestHandler(JQ,async(X,Y)=>{try{let Z=await this._taskStore.getTask(X.params.taskId,Y.sessionId);if(!Z)throw new C(S.InvalidParams,`Task not found: ${X.params.taskId}`);if(o0(Z.status))throw new C(S.InvalidParams,`Cannot cancel task in terminal status: ${Z.status}`);await this._taskStore.updateTaskStatus(X.params.taskId,"cancelled","Client cancelled task execution.",Y.sessionId),this._clearTaskQueue(X.params.taskId);let W=await this._taskStore.getTask(X.params.taskId,Y.sessionId);if(!W)throw new C(S.InvalidParams,`Task not found after cancellation: ${X.params.taskId}`);return{_meta:{},...W}}catch(Z){if(Z instanceof C)throw Z;throw new C(S.InvalidRequest,`Failed to cancel task: ${Z instanceof Error?Z.message:String(Z)}`)}})}async _oncancel(Q){if(!Q.params.requestId)return;this._requestHandlerAbortControllers.get(Q.params.requestId)?.abort(Q.params.reason)}_setupTimeout(Q,X,Y,Z,W=!1){this._timeoutInfo.set(Q,{timeoutId:setTimeout(Z,X),startTime:Date.now(),timeout:X,maxTotalTimeout:Y,resetTimeoutOnProgress:W,onTimeout:Z})}_resetTimeout(Q){let X=this._timeoutInfo.get(Q);if(!X)return!1;let Y=Date.now()-X.startTime;if(X.maxTotalTimeout&&Y>=X.maxTotalTimeout)throw this._timeoutInfo.delete(Q),C.fromError(S.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:X.maxTotalTimeout,totalElapsed:Y});return clearTimeout(X.timeoutId),X.timeoutId=setTimeout(X.onTimeout,X.timeout),!0}_cleanupTimeout(Q){let X=this._timeoutInfo.get(Q);if(X)clearTimeout(X.timeoutId),this._timeoutInfo.delete(Q)}async connect(Q){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=Q;let X=this.transport?.onclose;this._transport.onclose=()=>{X?.(),this._onclose()};let Y=this.transport?.onerror;this._transport.onerror=(W)=>{Y?.(W),this._onerror(W)};let Z=this._transport?.onmessage;this._transport.onmessage=(W,J)=>{if(Z?.(W,J),K1(W)||H4(W))this._onresponse(W);else if(J9(W))this._onrequest(W,J);else if(B4(W))this._onnotification(W);else this._onerror(Error(`Unknown message type: ${JSON.stringify(W)}`))},await this._transport.start()}_onclose(){let Q=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let Y of this._requestHandlerAbortControllers.values())Y.abort();this._requestHandlerAbortControllers.clear();let X=C.fromError(S.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let Y of Q.values())Y(X)}_onerror(Q){this.onerror?.(Q)}_onnotification(Q){let X=this._notificationHandlers.get(Q.method)??this.fallbackNotificationHandler;if(X===void 0)return;Promise.resolve().then(()=>X(Q)).catch((Y)=>this._onerror(Error(`Uncaught error in notification handler: ${Y}`)))}_onrequest(Q,X){let Y=this._requestHandlers.get(Q.method)??this.fallbackRequestHandler,Z=this._transport,W=Q.params?._meta?.[n0]?.taskId;if(Y===void 0){let B={jsonrpc:"2.0",id:Q.id,error:{code:S.MethodNotFound,message:"Method not found"}};if(W&&this._taskMessageQueue)this._enqueueTaskMessage(W,{type:"error",message:B,timestamp:Date.now()},Z?.sessionId).catch((H)=>this._onerror(Error(`Failed to enqueue error response: ${H}`)));else Z?.send(B).catch((H)=>this._onerror(Error(`Failed to send an error response: ${H}`)));return}let J=new AbortController;this._requestHandlerAbortControllers.set(Q.id,J);let $=$4(Q.params)?Q.params.task:void 0,G=this._taskStore?this.requestTaskStore(Q,Z?.sessionId):void 0,K={signal:J.signal,sessionId:Z?.sessionId,_meta:Q.params?._meta,sendNotification:async(B)=>{if(J.signal.aborted)return;let H={relatedRequestId:Q.id};if(W)H.relatedTask={taskId:W};await this.notification(B,H)},sendRequest:async(B,H,F)=>{if(J.signal.aborted)throw new C(S.ConnectionClosed,"Request was cancelled");let O={...F,relatedRequestId:Q.id};if(W&&!O.relatedTask)O.relatedTask={taskId:W};let A=O.relatedTask?.taskId??W;if(A&&G)await G.updateTaskStatus(A,"input_required");return await this.request(B,H,O)},authInfo:X?.authInfo,requestId:Q.id,requestInfo:X?.requestInfo,taskId:W,taskStore:G,taskRequestedTtl:$?.ttl,closeSSEStream:X?.closeSSEStream,closeStandaloneSSEStream:X?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if($)this.assertTaskHandlerCapability(Q.method)}).then(()=>Y(Q,K)).then(async(B)=>{if(J.signal.aborted)return;let H={result:B,jsonrpc:"2.0",id:Q.id};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"response",message:H,timestamp:Date.now()},Z?.sessionId);else await Z?.send(H)},async(B)=>{if(J.signal.aborted)return;let H={jsonrpc:"2.0",id:Q.id,error:{code:Number.isSafeInteger(B.code)?B.code:S.InternalError,message:B.message??"Internal error",...B.data!==void 0&&{data:B.data}}};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"error",message:H,timestamp:Date.now()},Z?.sessionId);else await Z?.send(H)}).catch((B)=>this._onerror(Error(`Failed to send response: ${B}`))).finally(()=>{this._requestHandlerAbortControllers.delete(Q.id)})}_onprogress(Q){let{progressToken:X,...Y}=Q.params,Z=Number(X),W=this._progressHandlers.get(Z);if(!W){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(Q)}`));return}let J=this._responseHandlers.get(Z),$=this._timeoutInfo.get(Z);if($&&J&&$.resetTimeoutOnProgress)try{this._resetTimeout(Z)}catch(G){this._responseHandlers.delete(Z),this._progressHandlers.delete(Z),this._cleanupTimeout(Z),J(G);return}W(Y)}_onresponse(Q){let X=Number(Q.id),Y=this._requestResolvers.get(X);if(Y){if(this._requestResolvers.delete(X),K1(Q))Y(Q);else{let J=new C(Q.error.code,Q.error.message,Q.error.data);Y(J)}return}let Z=this._responseHandlers.get(X);if(Z===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(Q)}`));return}this._responseHandlers.delete(X),this._cleanupTimeout(X);let W=!1;if(K1(Q)&&Q.result&&typeof Q.result==="object"){let J=Q.result;if(J.task&&typeof J.task==="object"){let $=J.task;if(typeof $.taskId==="string")W=!0,this._taskProgressTokens.set($.taskId,X)}}if(!W)this._progressHandlers.delete(X);if(K1(Q))Z(Q);else{let J=C.fromError(Q.error.code,Q.error.message,Q.error.data);Z(J)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(Q,X,Y){let{task:Z}=Y??{};if(!Z){try{yield{type:"result",result:await this.request(Q,X,Y)}}catch(J){yield{type:"error",error:J instanceof C?J:new C(S.InternalError,String(J))}}return}let W;try{let J=await this.request(Q,H1,Y);if(J.task)W=J.task.taskId,yield{type:"taskCreated",task:J.task};else throw new C(S.InternalError,"Task creation did not return a task");while(!0){let $=await this.getTask({taskId:W},Y);if(yield{type:"taskStatus",task:$},o0($.status)){if($.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:W},X,Y)};else if($.status==="failed")yield{type:"error",error:new C(S.InternalError,`Task ${W} failed`)};else if($.status==="cancelled")yield{type:"error",error:new C(S.InternalError,`Task ${W} was cancelled`)};return}if($.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:W},X,Y)};return}let G=$.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((K)=>setTimeout(K,G)),Y?.signal?.throwIfAborted()}}catch(J){yield{type:"error",error:J instanceof C?J:new C(S.InternalError,String(J))}}}request(Q,X,Y){let{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:J,task:$,relatedTask:G}=Y??{};return new Promise((K,B)=>{let H=(U)=>{B(U)};if(!this._transport){H(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod(Q.method),$)this.assertTaskCapability(Q.method)}catch(U){H(U);return}Y?.signal?.throwIfAborted();let F=this._requestMessageId++,O={...Q,jsonrpc:"2.0",id:F};if(Y?.onprogress)this._progressHandlers.set(F,Y.onprogress),O.params={...Q.params,_meta:{...Q.params?._meta||{},progressToken:F}};if($)O.params={...O.params,task:$};if(G)O.params={...O.params,_meta:{...O.params?._meta||{},[n0]:G}};let A=(U)=>{this._responseHandlers.delete(F),this._progressHandlers.delete(F),this._cleanupTimeout(F),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:F,reason:String(U)}},{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:J}).catch((E)=>this._onerror(Error(`Failed to send cancellation: ${E}`)));let w=U instanceof C?U:new C(S.RequestTimeout,String(U));B(w)};this._responseHandlers.set(F,(U)=>{if(Y?.signal?.aborted)return;if(U instanceof Error)return B(U);try{let w=I0(X,U.result);if(!w.success)B(w.error);else K(w.data)}catch(w){B(w)}}),Y?.signal?.addEventListener("abort",()=>{A(Y?.signal?.reason)});let j=Y?.timeout??rG,V=()=>A(C.fromError(S.RequestTimeout,"Request timed out",{timeout:j}));this._setupTimeout(F,j,Y?.maxTotalTimeout,V,Y?.resetTimeoutOnProgress??!1);let D=G?.taskId;if(D){let U=(w)=>{let E=this._responseHandlers.get(F);if(E)E(w);else this._onerror(Error(`Response handler missing for side-channeled request ${F}`))};this._requestResolvers.set(F,U),this._enqueueTaskMessage(D,{type:"request",message:O,timestamp:Date.now()}).catch((w)=>{this._cleanupTimeout(F),B(w)})}else this._transport.send(O,{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:J}).catch((U)=>{this._cleanupTimeout(F),B(U)})})}async getTask(Q,X){return this.request({method:"tasks/get",params:Q},XQ,X)}async getTaskResult(Q,X,Y){return this.request({method:"tasks/result",params:Q},X,Y)}async listTasks(Q,X){return this.request({method:"tasks/list",params:Q},WQ,X)}async cancelTask(Q,X){return this.request({method:"tasks/cancel",params:Q},z4,X)}async notification(Q,X){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability(Q.method);let Y=X?.relatedTask?.taskId;if(Y){let $={...Q,jsonrpc:"2.0",params:{...Q.params,_meta:{...Q.params?._meta||{},[n0]:X.relatedTask}}};await this._enqueueTaskMessage(Y,{type:"notification",message:$,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(Q.method)&&!Q.params&&!X?.relatedRequestId&&!X?.relatedTask){if(this._pendingDebouncedNotifications.has(Q.method))return;this._pendingDebouncedNotifications.add(Q.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(Q.method),!this._transport)return;let $={...Q,jsonrpc:"2.0"};if(X?.relatedTask)$={...$,params:{...$.params,_meta:{...$.params?._meta||{},[n0]:X.relatedTask}}};this._transport?.send($,X).catch((G)=>this._onerror(G))});return}let J={...Q,jsonrpc:"2.0"};if(X?.relatedTask)J={...J,params:{...J.params,_meta:{...J.params?._meta||{},[n0]:X.relatedTask}}};await this._transport.send(J,X)}setRequestHandler(Q,X){let Y=V6(Q);this.assertRequestHandlerCapability(Y),this._requestHandlers.set(Y,(Z,W)=>{let J=O6(Q,Z);return Promise.resolve(X(J,W))})}removeRequestHandler(Q){this._requestHandlers.delete(Q)}assertCanSetRequestHandler(Q){if(this._requestHandlers.has(Q))throw Error(`A request handler for ${Q} already exists, which would be overridden`)}setNotificationHandler(Q,X){let Y=V6(Q);this._notificationHandlers.set(Y,(Z)=>{let W=O6(Q,Z);return Promise.resolve(X(W))})}removeNotificationHandler(Q){this._notificationHandlers.delete(Q)}_cleanupTaskProgressHandler(Q){let X=this._taskProgressTokens.get(Q);if(X!==void 0)this._progressHandlers.delete(X),this._taskProgressTokens.delete(Q)}async _enqueueTaskMessage(Q,X,Y){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let Z=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(Q,X,Y,Z)}async _clearTaskQueue(Q,X){if(this._taskMessageQueue){let Y=await this._taskMessageQueue.dequeueAll(Q,X);for(let Z of Y)if(Z.type==="request"&&J9(Z.message)){let W=Z.message.id,J=this._requestResolvers.get(W);if(J)J(new C(S.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(W);else this._onerror(Error(`Resolver missing for request ${W} during task ${Q} cleanup`))}}}async _waitForTaskUpdate(Q,X){let Y=this._options?.defaultTaskPollInterval??1000;try{let Z=await this._taskStore?.getTask(Q);if(Z?.pollInterval)Y=Z.pollInterval}catch{}return new Promise((Z,W)=>{if(X.aborted){W(new C(S.InvalidRequest,"Request cancelled"));return}let J=setTimeout(Z,Y);X.addEventListener("abort",()=>{clearTimeout(J),W(new C(S.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(Q,X){let Y=this._taskStore;if(!Y)throw Error("No task store configured");return{createTask:async(Z)=>{if(!Q)throw Error("No request provided");return await Y.createTask(Z,Q.id,{method:Q.method,params:Q.params},X)},getTask:async(Z)=>{let W=await Y.getTask(Z,X);if(!W)throw new C(S.InvalidParams,"Failed to retrieve task: Task not found");return W},storeTaskResult:async(Z,W,J)=>{await Y.storeTaskResult(Z,W,J,X);let $=await Y.getTask(Z,X);if($){let G=H9.parse({method:"notifications/tasks/status",params:$});if(await this.notification(G),o0($.status))this._cleanupTaskProgressHandler(Z)}},getTaskResult:(Z)=>{return Y.getTaskResult(Z,X)},updateTaskStatus:async(Z,W,J)=>{let $=await Y.getTask(Z,X);if(!$)throw new C(S.InvalidParams,`Task "${Z}" not found - it may have been cleaned up`);if(o0($.status))throw new C(S.InvalidParams,`Cannot update task "${Z}" from terminal status "${$.status}" to "${W}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await Y.updateTaskStatus(Z,W,J,X);let G=await Y.getTask(Z,X);if(G){let K=H9.parse({method:"notifications/tasks/status",params:G});if(await this.notification(K),o0(G.status))this._cleanupTaskProgressHandler(Z)}},listTasks:(Z)=>{return Y.listTasks(Z,X)}}}}function l4(Q){return Q!==null&&typeof Q==="object"&&!Array.isArray(Q)}function m4(Q,X){let Y={...Q};for(let Z in X){let W=Z,J=X[W];if(J===void 0)continue;let $=Y[W];if(l4($)&&l4(J))Y[W]={...$,...J};else Y[W]=J}return Y}var DW=t1(HX(),1),qW=t1(UW(),1);function GO(){let Q=new DW.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return qW.default(Q),Q}class qX{constructor(Q){this._ajv=Q??GO()}getValidator(Q){let X="$id"in Q&&typeof Q.$id==="string"?this._ajv.getSchema(Q.$id)??this._ajv.compile(Q):this._ajv.compile(Q);return(Y)=>{if(X(Y))return{valid:!0,data:Y,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(X.errors)}}}}class MX{constructor(Q){this._client=Q}async*callToolStream(Q,X=C1,Y){let Z=this._client,W={...Y,task:Y?.task??(Z.isToolTask(Q.name)?{}:void 0)},J=Z.requestStream({method:"tools/call",params:Q},X,W),$=Z.getToolOutputValidator(Q.name);for await(let G of J){if(G.type==="result"&&$){let K=G.result;if(!K.structuredContent&&!K.isError){yield{type:"error",error:new C(S.InvalidRequest,`Tool ${Q.name} has an output schema but did not return structured content`)};return}if(K.structuredContent)try{let B=$(K.structuredContent);if(!B.valid){yield{type:"error",error:new C(S.InvalidParams,`Structured content does not match the tool's output schema: ${B.errorMessage}`)};return}}catch(B){if(B instanceof C){yield{type:"error",error:B};return}yield{type:"error",error:new C(S.InvalidParams,`Failed to validate structured content: ${B instanceof Error?B.message:String(B)}`)};return}}yield G}}async getTask(Q,X){return this._client.getTask({taskId:Q},X)}async getTaskResult(Q,X,Y){return this._client.getTaskResult({taskId:Q},X,Y)}async listTasks(Q,X){return this._client.listTasks(Q?{cursor:Q}:void 0,X)}async cancelTask(Q,X){return this._client.cancelTask({taskId:Q},X)}requestStream(Q,X,Y){return this._client.requestStream(Q,X,Y)}}function MW(Q,X,Y){if(!Q)throw Error(`${Y} does not support task creation (required for ${X})`);switch(X){case"tools/call":if(!Q.tools?.call)throw Error(`${Y} does not support task creation for tools/call (required for ${X})`);break;default:break}}function bW(Q,X,Y){if(!Q)throw Error(`${Y} does not support task creation (required for ${X})`);switch(X){case"sampling/createMessage":if(!Q.sampling?.createMessage)throw Error(`${Y} does not support task creation for sampling/createMessage (required for ${X})`);break;case"elicitation/create":if(!Q.elicitation?.create)throw Error(`${Y} does not support task creation for elicitation/create (required for ${X})`);break;default:break}}function Z8(Q,X){if(!Q||X===null||typeof X!=="object")return;if(Q.type==="object"&&Q.properties&&typeof Q.properties==="object"){let Y=X,Z=Q.properties;for(let W of Object.keys(Z)){let J=Z[W];if(Y[W]===void 0&&Object.prototype.hasOwnProperty.call(J,"default"))Y[W]=J.default;if(Y[W]!==void 0)Z8(J,Y[W])}}if(Array.isArray(Q.anyOf)){for(let Y of Q.anyOf)if(typeof Y!=="boolean")Z8(Y,X)}if(Array.isArray(Q.oneOf)){for(let Y of Q.oneOf)if(typeof Y!=="boolean")Z8(Y,X)}}function KO(Q){if(!Q)return{supportsFormMode:!1,supportsUrlMode:!1};let X=Q.form!==void 0,Y=Q.url!==void 0;return{supportsFormMode:X||!X&&!Y,supportsUrlMode:Y}}class bX extends j6{constructor(Q,X){super(X);if(this._clientInfo=Q,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=X?.capabilities??{},this._jsonSchemaValidator=X?.jsonSchemaValidator??new qX,X?.listChanged)this._pendingListChangedConfig=X.listChanged}_setupListChangedHandlers(Q){if(Q.tools&&this._serverCapabilities?.tools?.listChanged)this._setupListChangedHandler("tools",V9,Q.tools,async()=>{return(await this.listTools()).tools});if(Q.prompts&&this._serverCapabilities?.prompts?.listChanged)this._setupListChangedHandler("prompts",z9,Q.prompts,async()=>{return(await this.listPrompts()).prompts});if(Q.resources&&this._serverCapabilities?.resources?.listChanged)this._setupListChangedHandler("resources",L9,Q.resources,async()=>{return(await this.listResources()).resources})}get experimental(){if(!this._experimental)this._experimental={tasks:new MX(this)};return this._experimental}registerCapabilities(Q){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=m4(this._capabilities,Q)}setRequestHandler(Q,X){let Z=DQ(Q)?.method;if(!Z)throw Error("Schema is missing a method literal");let W;if(_1(Z)){let $=Z;W=$._zod?.def?.value??$.value}else{let $=Z;W=$._def?.value??$.value}if(typeof W!=="string")throw Error("Schema method literal must be a string");let J=W;if(J==="elicitation/create"){let $=async(G,K)=>{let B=I0(e8,G);if(!B.success){let U=B.error instanceof Error?B.error.message:String(B.error);throw new C(S.InvalidParams,`Invalid elicitation request: ${U}`)}let{params:H}=B.data;H.mode=H.mode??"form";let{supportsFormMode:F,supportsUrlMode:O}=KO(this._capabilities.elicitation);if(H.mode==="form"&&!F)throw new C(S.InvalidParams,"Client does not support form-mode elicitation requests");if(H.mode==="url"&&!O)throw new C(S.InvalidParams,"Client does not support URL-mode elicitation requests");let A=await Promise.resolve(X(G,K));if(H.task){let U=I0(H1,A);if(!U.success){let w=U.error instanceof Error?U.error.message:String(U.error);throw new C(S.InvalidParams,`Invalid task creation result: ${w}`)}return U.data}let j=I0(Q6,A);if(!j.success){let U=j.error instanceof Error?j.error.message:String(j.error);throw new C(S.InvalidParams,`Invalid elicitation result: ${U}`)}let V=j.data,D=H.mode==="form"?H.requestedSchema:void 0;if(H.mode==="form"&&V.action==="accept"&&V.content&&D){if(this._capabilities.elicitation?.form?.applyDefaults)try{Z8(D,V.content)}catch{}}return V};return super.setRequestHandler(Q,$)}if(J==="sampling/createMessage"){let $=async(G,K)=>{let B=I0(o8,G);if(!B.success){let V=B.error instanceof Error?B.error.message:String(B.error);throw new C(S.InvalidParams,`Invalid sampling request: ${V}`)}let{params:H}=B.data,F=await Promise.resolve(X(G,K));if(H.task){let V=I0(H1,F);if(!V.success){let D=V.error instanceof Error?V.error.message:String(V.error);throw new C(S.InvalidParams,`Invalid task creation result: ${D}`)}return V.data}let A=H.tools||H.toolChoice?t8:r8,j=I0(A,F);if(!j.success){let V=j.error instanceof Error?j.error.message:String(j.error);throw new C(S.InvalidParams,`Invalid sampling result: ${V}`)}return j.data};return super.setRequestHandler(Q,$)}return super.setRequestHandler(Q,X)}assertCapability(Q,X){if(!this._serverCapabilities?.[Q])throw Error(`Server does not support ${Q} (required for ${X})`)}async connect(Q,X){if(await super.connect(Q),Q.sessionId!==void 0)return;try{let Y=await this.request({method:"initialize",params:{protocolVersion:I1,capabilities:this._capabilities,clientInfo:this._clientInfo}},f8,X);if(Y===void 0)throw Error(`Server sent invalid initialize result: ${Y}`);if(!Z4.includes(Y.protocolVersion))throw Error(`Server's protocol version is not supported: ${Y.protocolVersion}`);if(this._serverCapabilities=Y.capabilities,this._serverVersion=Y.serverInfo,Q.setProtocolVersion)Q.setProtocolVersion(Y.protocolVersion);if(this._instructions=Y.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig)this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0}catch(Y){throw this.close(),Y}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(Q){switch(Q){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${Q})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${Q})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw Error(`Server does not support resources (required for ${Q})`);if(Q==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${Q})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${Q})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${Q})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(Q){switch(Q){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${Q})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(Q){if(!this._capabilities)return;switch(Q){case"sampling/createMessage":if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${Q})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${Q})`);break;case"roots/list":if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${Q})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Client does not support tasks capability (required for ${Q})`);break;case"ping":break}}assertTaskCapability(Q){MW(this._serverCapabilities?.tasks?.requests,Q,"Server")}assertTaskHandlerCapability(Q){if(!this._capabilities)return;bW(this._capabilities.tasks?.requests,Q,"Client")}async ping(Q){return this.request({method:"ping"},B1,Q)}async complete(Q,X){return this.request({method:"completion/complete",params:Q},X6,X)}async setLoggingLevel(Q,X){return this.request({method:"logging/setLevel",params:{level:Q}},B1,X)}async getPrompt(Q,X){return this.request({method:"prompts/get",params:Q},n8,X)}async listPrompts(Q,X){return this.request({method:"prompts/list",params:Q},m8,X)}async listResources(Q,X){return this.request({method:"resources/list",params:Q},v8,X)}async listResourceTemplates(Q,X){return this.request({method:"resources/templates/list",params:Q},g8,X)}async readResource(Q,X){return this.request({method:"resources/read",params:Q},u8,X)}async subscribeResource(Q,X){return this.request({method:"resources/subscribe",params:Q},B1,X)}async unsubscribeResource(Q,X){return this.request({method:"resources/unsubscribe",params:Q},B1,X)}async callTool(Q,X=C1,Y){if(this.isToolTaskRequired(Q.name))throw new C(S.InvalidRequest,`Tool "${Q.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let Z=await this.request({method:"tools/call",params:Q},X,Y),W=this.getToolOutputValidator(Q.name);if(W){if(!Z.structuredContent&&!Z.isError)throw new C(S.InvalidRequest,`Tool ${Q.name} has an output schema but did not return structured content`);if(Z.structuredContent)try{let J=W(Z.structuredContent);if(!J.valid)throw new C(S.InvalidParams,`Structured content does not match the tool's output schema: ${J.errorMessage}`)}catch(J){if(J instanceof C)throw J;throw new C(S.InvalidParams,`Failed to validate structured content: ${J instanceof Error?J.message:String(J)}`)}}return Z}isToolTask(Q){if(!this._serverCapabilities?.tasks?.requests?.tools?.call)return!1;return this._cachedKnownTaskTools.has(Q)}isToolTaskRequired(Q){return this._cachedRequiredTaskTools.has(Q)}cacheToolMetadata(Q){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let X of Q){if(X.outputSchema){let Z=this._jsonSchemaValidator.getValidator(X.outputSchema);this._cachedToolOutputValidators.set(X.name,Z)}let Y=X.execution?.taskSupport;if(Y==="required"||Y==="optional")this._cachedKnownTaskTools.add(X.name);if(Y==="required")this._cachedRequiredTaskTools.add(X.name)}}getToolOutputValidator(Q){return this._cachedToolOutputValidators.get(Q)}async listTools(Q,X){let Y=await this.request({method:"tools/list",params:Q},s8,X);return this.cacheToolMetadata(Y.tools),Y}_setupListChangedHandler(Q,X,Y,Z){let W=D4.safeParse(Y);if(!W.success)throw Error(`Invalid ${Q} listChanged options: ${W.error.message}`);if(typeof Y.onChanged!=="function")throw Error(`Invalid ${Q} listChanged options: onChanged must be a function`);let{autoRefresh:J,debounceMs:$}=W.data,{onChanged:G}=Y,K=async()=>{if(!J){G(null,null);return}try{let H=await Z();G(null,H)}catch(H){let F=H instanceof Error?H:Error(String(H));G(F,null)}},B=()=>{if($){let H=this._listChangedDebounceTimers.get(Q);if(H)clearTimeout(H);let F=setTimeout(K,$);this._listChangedDebounceTimers.set(Q,F)}else K()};this.setNotificationHandler(X,B)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var PW=t1(HO(),1);import W8 from"node:process";import{PassThrough as FO}from"node:stream";class wX{append(Q){this._buffer=this._buffer?Buffer.concat([this._buffer,Q]):Q}readMessage(){if(!this._buffer)return null;let Q=this._buffer.indexOf(`
17
- `);if(Q===-1)return null;let X=this._buffer.toString("utf8",0,Q).replace(/\r$/,"");return this._buffer=this._buffer.subarray(Q+1),BO(X)}clear(){this._buffer=void 0}}function BO(Q){return s0.parse(JSON.parse(Q))}function wW(Q){return JSON.stringify(Q)+`
18
- `}var LO=W8.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function zO(){let Q={};for(let X of LO){let Y=W8.env[X];if(Y===void 0)continue;if(Y.startsWith("()"))continue;Q[X]=Y}return Q}class PX{constructor(Q){if(this._readBuffer=new wX,this._stderrStream=null,this._serverParams=Q,Q.stderr==="pipe"||Q.stderr==="overlapped")this._stderrStream=new FO}async start(){if(this._process)throw Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((Q,X)=>{if(this._process=PW.default(this._serverParams.command,this._serverParams.args??[],{env:{...zO(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:W8.platform==="win32"&&VO(),cwd:this._serverParams.cwd}),this._process.on("error",(Y)=>{X(Y),this.onerror?.(Y)}),this._process.on("spawn",()=>{Q()}),this._process.on("close",(Y)=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",(Y)=>{this.onerror?.(Y)}),this._process.stdout?.on("data",(Y)=>{this._readBuffer.append(Y),this.processReadBuffer()}),this._process.stdout?.on("error",(Y)=>{this.onerror?.(Y)}),this._stderrStream&&this._process.stderr)this._process.stderr.pipe(this._stderrStream)})}get stderr(){if(this._stderrStream)return this._stderrStream;return this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){while(!0)try{let Q=this._readBuffer.readMessage();if(Q===null)break;this.onmessage?.(Q)}catch(Q){this.onerror?.(Q)}}async close(){if(this._process){let Q=this._process;this._process=void 0;let X=new Promise((Y)=>{Q.once("close",()=>{Y()})});try{Q.stdin?.end()}catch{}if(await Promise.race([X,new Promise((Y)=>setTimeout(Y,2000).unref())]),Q.exitCode===null){try{Q.kill("SIGTERM")}catch{}await Promise.race([X,new Promise((Y)=>setTimeout(Y,2000).unref())])}if(Q.exitCode===null)try{Q.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(Q){return new Promise((X)=>{if(!this._process?.stdin)throw Error("Not connected");let Y=wW(Q);if(this._process.stdin.write(Y))X();else this._process.stdin.once("drain",X)})}}function VO(){return"type"in W8}var a1=U1("connection"),OO=["http","sse","stdio"],RW=class{#Y=new Map;#Q;constructor(Q={}){this.#Q=Q}async createClient(...Q){let[X,Y,Z]=Q;if(!OO.includes(X))throw Error(`Invalid transport type: ${X}`);let W=X==="http"?await this.#J(Y,Z):X==="sse"?await this.#Z(Y,Z):await this.#W(Z),J=new bX({name:O8.name,version:O8.version});if(await J.connect(W),this.#Q.onMessage)J.setNotificationHandler(a8,(B)=>this.#Q.onMessage?.(B.params,{server:Y,options:Z}));if(this.#Q.onInitialized)J.setNotificationHandler(r9,()=>this.#Q.onInitialized?.({server:Y,options:Z}));if(this.#Q.onCancelled)J.setNotificationHandler(T1,(B)=>{let{requestId:H,reason:F}=B.params;if(H==null)return;let O=this.#Q.onCancelled?.({requestId:H,reason:F},{server:Y,options:Z});if(O&&typeof O.catch==="function")O.catch(()=>{})});if(this.#Q.onPromptsListChanged)J.setNotificationHandler(z9,()=>this.#Q.onPromptsListChanged?.({server:Y,options:Z}));if(this.#Q.onResourcesListChanged)J.setNotificationHandler(L9,()=>this.#Q.onResourcesListChanged?.({server:Y,options:Z}));if(this.#Q.onResourcesUpdated)J.setNotificationHandler(l8,(B)=>this.#Q.onResourcesUpdated?.(B.params,{server:Y,options:Z}));if(this.#Q.onRootsListChanged)J.setNotificationHandler(Y6,()=>this.#Q.onRootsListChanged?.({server:Y,options:Z}));if(this.#Q.onToolsListChanged)J.setNotificationHandler(V9,()=>this.#Q.onToolsListChanged?.({server:Y,options:Z}));let $=X==="stdio"?{serverName:Y}:{serverName:Y,headers:NW(Z.headers),authProvider:Z.authProvider},G=(B)=>{return this.#$($,B)},K=new Proxy(J,{get(B,H){if(H==="fork")return G.bind(this);return B[H]}});return this.#Y.set($,{transport:W,client:K,transportOptions:Z,closeCallback:async()=>K.close()}),K}#$(Q,X){let[,Y]=[...this.#Y.entries()].find(([W])=>Q===W)??[];if(!Y)throw Error("Transport not found");let Z=Y.transportOptions.type??Y.transportOptions.transport;if(Z==="stdio")throw Error("Forking stdio transport is not supported");return this.createClient(Z,Q.serverName,{...Y.transportOptions,headers:X})}get(Q){if(typeof Q==="string")return this.#X({serverName:Q})?.connection.client;return this.#X(Q)?.connection.client}getAllClients(){return Array.from(this.#Y.values()).map((Q)=>Q.client)}#X(Q){let X=NW(Q.headers),[Y,Z]=[...this.#Y.entries()].find(([W])=>{if(Q.headers&&Q.authProvider)return W.serverName===Q.serverName&&W.headers===X&&W.authProvider===Q.authProvider;if(Q.headers&&!Q.authProvider)return W.serverName===Q.serverName&&W.headers===X;if(Q.authProvider&&!Q.headers)return W.serverName===Q.serverName&&W.authProvider===Q.authProvider;return W.serverName===Q.serverName})??[];if(Y&&Z)return{key:Y,connection:Z};return}has(Q){return Boolean(typeof Q==="string"?this.get(Q):this.get(Q))}async delete(Q){if(!Q){await Promise.all(Array.from(this.#Y.values()).map((Y)=>Y.closeCallback())),this.#Y.clear();return}let X=this.#X(Q);if(X)await X.connection.closeCallback(),this.#Y.delete(X.key)}getTransport(Q){if("listTools"in Q)return[...this.#Y.values()].find((Z)=>Z.client===Q)?.transport;let X=this.#X(Q);if(X)return X.connection.transport;return}async#J(Q,X){let{url:Y,headers:Z,reconnect:W,authProvider:J}=X,$={...J?{authProvider:J}:{},...Z?{requestInit:{headers:Z}}:{}};if(W!=null){let G={initialReconnectionDelay:W?.delayMs??1000,maxReconnectionDelay:W?.delayMs??30000,maxRetries:W?.maxAttempts??2,reconnectionDelayGrowFactor:1.5};if(W.enabled===!1)G.maxRetries=0;$.reconnectionOptions=G}if($.requestInit?.headers)a1(`DEBUG: Using custom headers for SSE transport to server "${Q}"`);if($.authProvider)a1(`DEBUG: Using OAuth authentication for Streamable HTTP transport to server "${Q}"`);if($.reconnectionOptions)if($.reconnectionOptions.maxRetries===0)a1(`DEBUG: Disabling reconnection for Streamable HTTP transport to server "${Q}"`);else a1(`DEBUG: Using custom reconnection options for Streamable HTTP transport to server "${Q}"`);return Object.keys($).length>0?new UQ(new URL(Y),$):new UQ(new URL(Y))}async#Z(Q,X){let{url:Y,headers:Z,authProvider:W}=X,J={};if(W)J.authProvider=W,a1(`DEBUG: Using OAuth authentication for SSE transport to server "${Q}"`);if(Z)J.eventSourceInit={fetch:async($,G)=>{let K=new Headers(G?.headers);if(W){let B=await W.tokens();if(B)K.set("Authorization",`Bearer ${B.access_token}`)}return Object.entries(Z).forEach(([B,H])=>{K.set(B,H)}),K.set("Accept","text/event-stream"),fetch($,{...G,headers:K})}},J.requestInit={headers:Z},a1(`DEBUG: Using custom headers for SSE transport to server "${Q}"`);return new F6(new URL(Y),J)}#W(Q){let{command:X,args:Y,env:Z,stderr:W,cwd:J}=Q;return new PX({command:X,args:Y,stderr:W,cwd:J,...Z?{env:{PATH:process.env.PATH,...Z}}:{}})}};function NW(Q){if(!Q)return;return Object.entries(Q).sort(([X],[Y])=>X.localeCompare(Y)).map(([X,Y])=>`${X}: ${Y}`).join(`
19
- `)}var n=U1(),L0=class extends Error{constructor(Q,X){super(Q);this.serverName=X,this.name="MCPClientError"}};function IW(Q){if(typeof Q!=="object"||Q===null||Array.isArray(Q))return!1;if("transport"in Q&&Q.transport==="stdio")return!0;if("type"in Q&&Q.type==="stdio")return!0;if("command"in Q&&typeof Q.command==="string")return!0;return!1}function TW(Q){if(typeof Q!=="object"||Q===null||Array.isArray(Q))return!1;if("transport"in Q&&typeof Q.transport==="string"&&["http","sse"].includes(Q.transport)||"type"in Q&&typeof Q.type==="string"&&["http","sse"].includes(Q.type))return!0;if("url"in Q&&typeof Q.url==="string")try{return new URL(Q.url),!0}catch{return!1}return!1}var NX=class{#Y={};#Q;#$={};#X;#J;#Z;#W=new Set;get config(){return JSON.parse(JSON.stringify(this.#J))}constructor(Q){let X,Y=pX;if("mcpServers"in Q)X=Y.parse(Q);else{let Z=z.record(m9).parse(Q);X=Y.parse({mcpServers:Z})}if(Object.keys(X.mcpServers).length===0)throw new L0("No MCP servers provided");for(let[Z,W]of Object.entries(X.mcpServers)){let J=dX(X.outputHandling,W.outputHandling),$=X.defaultToolTimeout??W.defaultToolTimeout;this.#$[Z]={throwOnLoadError:X.throwOnLoadError,prefixToolNameWithServerName:X.prefixToolNameWithServerName,additionalToolNamePrefix:X.additionalToolNamePrefix,useStandardContentBlocks:X.useStandardContentBlocks,...Object.keys(J).length>0?{outputHandling:J}:{},...$?{defaultToolTimeout:$}:{},onProgress:X.onProgress,beforeToolCall:X.beforeToolCall,afterToolCall:X.afterToolCall}}this.#J=X,this.#Q=X.mcpServers,this.#X=new RW(X),this.#Z=X.onConnectionError}async initializeConnections(Q){if(!this.#Q||Object.keys(this.#Q).length===0)throw new L0("No connections to initialize");for(let[X,Y]of Object.entries(this.#Q)){if((this.#Z==="ignore"||typeof this.#Z==="function")&&this.#W.has(X))continue;try{await this._initializeConnection(X,Y,Q),this.#W.delete(X)}catch(Z){if(this.#Z==="throw")throw Z;if(typeof this.#Z==="function"){this.#Z({serverName:X,error:Z}),this.#W.add(X),n(`WARN: Failed to initialize connection to server "${X}": ${String(Z)}`);continue}this.#W.add(X),n(`WARN: Failed to initialize connection to server "${X}": ${String(Z)}`);continue}}if(this.#Z==="ignore"&&Object.keys(this.#Y).length===0)n("WARN: No servers successfully connected. All connection attempts failed.");return this.#Y}async getTools(...Q){if(Q.length===0||Q.every((Z)=>typeof Z==="string")){await this.initializeConnections();let Z=Q;return Z.length===0?this._getAllToolsAsFlatArray():this._getToolsFromServers(Z)}let[X,Y]=Q;return await this.initializeConnections(Y),X.length===0?this._getAllToolsAsFlatArray():this._getToolsFromServers(X)}async setLoggingLevel(...Q){if(Q.length===1&&typeof Q[0]==="string"){let Z=Q[0];await Promise.all(this.#X.getAllClients().map((W)=>W.setLoggingLevel(Z)));return}let[X,Y]=Q;await this.#X.get(X)?.setLoggingLevel(Y)}async getClient(Q,X){return await this.initializeConnections(X),this.#X.get({serverName:Q,headers:X?.headers,authProvider:X?.authProvider})}async listResources(...Q){let X,Y;if(Q.length===0||Q.every((J)=>typeof J==="string"))X=Q,await this.initializeConnections();else[X,Y]=Q,await this.initializeConnections(Y);let Z=X.length>0?X:Object.keys(this.#J.mcpServers),W={};for(let J of Z){let $=await this.getClient(J,Y);if(!$){n(`WARN: Server "${J}" not found or not connected`);continue}try{let G=await $.listResources();W[J]=G.resources.map((K)=>({uri:K.uri,name:K.title??K.name,description:K.description,mimeType:K.mimeType})),n(`INFO: Listed ${W[J].length} resources from server "${J}"`)}catch(G){n(`ERROR: Failed to list resources from server "${J}": ${G}`),W[J]=[]}}return W}async listResourceTemplates(...Q){let X,Y;if(Q.length===0||Q.every((J)=>typeof J==="string"))X=Q,await this.initializeConnections();else[X,Y]=Q,await this.initializeConnections(Y);let Z=X.length>0?X:Object.keys(this.#J.mcpServers),W={};for(let J of Z){let $=await this.getClient(J,Y);if(!$){n(`WARN: Server "${J}" not found or not connected`);continue}try{let G=await $.listResourceTemplates();W[J]=G.resourceTemplates.map((K)=>({uriTemplate:K.uriTemplate,name:K.title??K.name,description:K.description,mimeType:K.mimeType})),n(`INFO: Listed ${W[J].length} resource templates from server "${J}"`)}catch(G){n(`ERROR: Failed to list resource templates from server "${J}": ${G}`),W[J]=[]}}return W}async readResource(Q,X,Y){await this.initializeConnections(Y);let Z=await this.getClient(Q,Y);if(!Z)throw new L0(`Server "${Q}" not found or not connected`,Q);try{return n(`INFO: Reading resource "${X}" from server "${Q}"`),(await Z.readResource({uri:X})).contents.map((J)=>({uri:J.uri,mimeType:J.mimeType,text:"text"in J?J.text:void 0,blob:"blob"in J?J.blob:void 0}))}catch(W){throw new L0(`Failed to read resource "${X}" from server "${Q}": ${W}`,Q)}}async close(){n("INFO: Closing all MCP connections..."),this.#Y={},this.#W.clear(),await this.#X.delete(),n("INFO: All MCP connections closed")}async _initializeConnection(Q,X,Y){if(IW(X)){if(n(`INFO: Initializing stdio connection to server "${Q}"...`),this.#X.has(Q))return;await this._initializeStdioConnection(Q,X)}else if(TW(X)){let{authProvider:Z,headers:W}=Y??{},J={...X,authProvider:Z??X.authProvider,headers:{...W,...X.headers}},$={serverName:Q,headers:J.headers,authProvider:J.authProvider};if(this.#X.has($))return;if(X.type==="sse"||X.transport==="sse")await this._initializeSSEConnection(Q,J);else await this._initializeStreamableHTTPConnection(Q,J)}else throw new L0(`Unsupported transport type for server "${Q}"`,Q)}async _initializeStdioConnection(Q,X){let{command:Y,args:Z,restart:W}=X;n(`DEBUG: Creating stdio transport for server "${Q}" with command: ${Y} ${Z.join(" ")}`);try{let J=await this.#X.createClient("stdio",Q,X),$=this.#X.getTransport({serverName:Q});if(W?.enabled)this._setupStdioRestart(Q,$,X,W);await this._loadToolsForServer(Q,J)}catch(J){throw new L0(`Failed to connect to stdio server "${Q}": ${J}`,Q)}}_setupStdioRestart(Q,X,Y,Z){let W=X.onclose;X.onclose=async()=>{if(W)await W();if(this.#X.get(Q))n(`INFO: Process for server "${Q}" exited, attempting to restart...`),await this._attemptReconnect(Q,Y,Z.maxAttempts,Z.delayMs)}}_getHttpErrorCode(Q){let X=Q,{code:Y}=X;if(Y==null){let Z=X.message.match(/\(HTTP (\d\d\d)\)/);if(Z&&Z.length>1)Y=parseInt(Z[1],10)}return Y}_createAuthenticationErrorMessage(Q,X,Y,Z){return`Authentication failed for ${Y} server "${Q}" at ${X}. Please check your credentials, authorization headers, or OAuth configuration. Original error: ${Z}`}_toSSEConnectionURL(Q){let X=new URL(Q),Y=X.pathname.split("/"),Z=Y.at(-1);if(Z&&Z==="mcp")Y[Y.length-1]="sse";return X.pathname=Y.join("/"),X.toString()}async _initializeStreamableHTTPConnection(Q,X){let{url:Y,type:Z,transport:W}=X,J=X.automaticSSEFallback??!0,$=Z||W;if(n(`DEBUG: Creating Streamable HTTP transport for server "${Q}" with URL: ${Y}`),$==="http"||$==null)try{let G=await this.#X.createClient("http",Q,X);await this._loadToolsForServer(Q,G)}catch(G){let K=this._getHttpErrorCode(G);if(J&&K!=null&&K>=400&&K<500)try{await this._initializeSSEConnection(Q,X)}catch(B){let H=this._toSSEConnectionURL(Y);if(H!==Y)try{await this._initializeSSEConnection(Q,{...X,url:H})}catch(F){if(K===401)throw new L0(this._createAuthenticationErrorMessage(Q,Y,"HTTP",`${G}. Also tried SSE fallback at ${Y} and ${H}, but both failed with authentication errors.`),Q);throw new L0(`Failed to connect to streamable HTTP server "${Q}, url: ${Y}": ${G}. Additionally, tried falling back to SSE at ${Y} and ${H}, but this also failed: ${F}`,Q)}else{if(K===401)throw new L0(this._createAuthenticationErrorMessage(Q,Y,"HTTP",`${G}. Also tried SSE fallback at ${Y}, but it failed with authentication error: ${B}`),Q);throw new L0(`Failed to connect to streamable HTTP server after trying to fall back to SSE: "${Q}, url: ${Y}": ${G} (SSE fallback failed with error ${B})`,Q)}}else{if(K===401)throw new L0(this._createAuthenticationErrorMessage(Q,Y,"HTTP",`${G}`),Q);throw new L0(`Failed to connect to streamable HTTP server "${Q}, url: ${Y}": ${G}`,Q)}}}async _initializeSSEConnection(Q,X){let{url:Y,headers:Z,reconnect:W,authProvider:J}=X;try{let $=await this.#X.createClient("sse",Q,X),G=this.#X.getTransport({serverName:Q,headers:Z,authProvider:J});if(W?.enabled)this._setupSSEReconnect(Q,G,X,W);await this._loadToolsForServer(Q,$)}catch($){if($&&$.name==="MCPClientError")throw $;if($&&this._getHttpErrorCode($)===401)throw new L0(this._createAuthenticationErrorMessage(Q,Y,"SSE",`${$}`),Q);throw new L0(`Failed to create SSE transport for server "${Q}, url: ${Y}": ${$}`,Q)}}_setupSSEReconnect(Q,X,Y,Z){let W=X.onclose;X.onclose=async()=>{if(W)await W();if(this.#X.get({serverName:Q,headers:Y.headers,authProvider:Y.authProvider}))n(`INFO: HTTP connection for server "${Q}" closed, attempting to reconnect...`),await this._attemptReconnect(Q,Y,Z.maxAttempts,Z.delayMs)}}async _loadToolsForServer(Q,X){try{n(`DEBUG: Loading tools for server "${Q}"...`);let Y=await V8(Q,X,this.#$[Q]);this.#Y[Q]=Y,n(`INFO: Successfully loaded ${Y.length} tools from server "${Q}"`)}catch(Y){throw new L0(`Failed to load tools from server "${Q}": ${Y}`)}}async _attemptReconnect(Q,X,Y=3,Z=1000){let W=!1,J=0;if("headers"in X||"authProvider"in X){let{headers:$,authProvider:G}=X;await this.#G({serverName:Q,authProvider:G,headers:$})}else await this.#G({serverName:Q});while(!W&&(Y===void 0||J<Y)){J+=1,n(`INFO: Reconnection attempt ${J}${Y?`/${Y}`:""} for server "${Q}"`);try{if(Z)await new Promise((G)=>{setTimeout(G,Z)});if(IW(X))await this._initializeStdioConnection(Q,X);else if(TW(X))if(X.type==="sse"||X.transport==="sse")await this._initializeSSEConnection(Q,X);else await this._initializeStreamableHTTPConnection(Q,X);let $="headers"in X?{serverName:Q,headers:X.headers,authProvider:X.authProvider}:{serverName:Q};if(this.#X.has($))W=!0,n(`INFO: Successfully reconnected to server "${Q}"`)}catch($){n(`ERROR: Failed to reconnect to server "${Q}" (attempt ${J}): ${$}`)}}if(!W)n(`ERROR: Failed to reconnect to server "${Q}" after ${J} attempts`)}async#G(Q){let{serverName:X,authProvider:Y,headers:Z}=Q;delete this.#Y[X],await this.#X.delete({serverName:X,authProvider:Y,headers:Z})}_getAllToolsAsFlatArray(){let Q=[];for(let X of Object.values(this.#Y))Q.push(...X);return Q}_getToolsFromServers(Q){let X=[];for(let Y of Q){let Z=this.#Y[Y];if(Z)X.push(...Z)}return X}};var Yq=f.enum(["openai","anthropic","gemini","deepseek","moonshot","zhipu","custom"]),lW=f.object({id:f.string(),name:f.string().optional().describe("Display name for the model"),provider_id:f.string().describe("Foreign key reference to provider"),model_name:f.string().describe("Actual model ID to use (e.g., gpt-4o, claude-3-5-sonnet)"),stream_usage:f.boolean().default(!1),enable_thinking:f.boolean().default(!1),temperature:f.number().default(0.7),max_tokens:f.number().default(4096),top_p:f.number().default(1),frequency_penalty:f.number().default(0),presence_penalty:f.number().default(0)}),mW=f.object({id:f.string(),name:f.string().describe("prompt name, must be unique")}),Zq=f.object({id:f.string(),prompt_id:f.string().describe("reference to prompt"),version:f.number().int().positive().describe("version number, starts from 1"),content:f.string().describe("prompt content for this version"),metadata:f.any().optional().describe("version-specific metadata"),change_note:f.string().optional().describe("description of changes in this version")}),UO=f.any().describe("middleware custom params, must be a valid JSON object"),pW=f.object({id:f.string().describe("middleware id, must be unique, folder/middleware/middleware_name"),name:f.string(),description:f.string()}),dW=f.object({id:f.string(),name:f.string(),description:f.string(),system_prompt:mW.shape.id,middlewares:f.record(pW.shape.id,f.union([f.boolean(),UO])),model:lW.shape.id}),Wq=f.object({agents:f.array(dW),prompts:f.array(mW),models:f.array(lW)});class cW{_schemas=new Map;_implementations=new Map;registerSchema(Q){let X=pW.safeParse(Q);if(!X.success)throw Error(`Invalid Middleware schema: ${X.error.message}`);this._schemas.set(X.data.id,X.data)}registerImplementation(Q){if(this._implementations.set(Q.id,Q),!this._schemas.has(Q.id))this.registerSchema({id:Q.id,name:Q.name,description:Q.description})}getSchema(Q){return this._schemas.get(Q)}getImplementation(Q){return this._implementations.get(Q)}hasImplementation(Q){return this._implementations.has(Q)}listSchemas(){return Array.from(this._schemas.values())}listImplementations(){return Array.from(this._implementations.values())}async execute(Q,X){let Y=this._implementations.get(Q);if(!Y)throw Error(`Middleware implementation not found: ${Q}`);if(Y.paramsSchema){let Z=Y.paramsSchema.safeParse(X);if(!Z.success)throw Error(`Invalid context for middleware ${Q}: ${Z.error.message}`);X=Z.data}return await Y.execute(X)}}class yX{_data;constructor(Q){let X=dW.safeParse(Q);if(!X.success)throw Error(`Invalid Agent data: ${X.error.message}`);this._data=X.data}get id(){return this._data.id}get name(){return this._data.name}get description(){return this._data.description}get systemPromptId(){return this._data.system_prompt}get modelId(){return this._data.model}get middlewares(){let Q={};for(let[X,Y]of Object.entries(this._data.middlewares))Q[X]=typeof Y==="boolean"?{enabled:Y}:{enabled:!0,customParams:Y};return Q}getMiddlewareConfig(Q){let X=this._data.middlewares[Q];if(X===void 0)return;return typeof X==="boolean"?{enabled:X}:{enabled:!0,customParams:X}}toJSON(){return JSON.parse(JSON.stringify(this._data))}}class iW{constructor(Q){this.storage=Q}async addModel(Q){await this.storage.insertModel(Q)}async getModel(Q){let X=await this.storage.getModel(Q);if(!X)return;return this.rowToModel(X)}async listModels(){return(await this.storage.getAllModels()).map((X)=>this.rowToModel(X))}async updateModel(Q){await this.storage.updateModel(Q)}async deleteModel(Q){await this.storage.deleteModel(Q)}async addPrompt(Q,X,Y){await this.storage.insertPrompt(Q,X,Y)}async getPrompt(Q){let X=await this.storage.getPrompt(Q);if(!X)return;return{id:X.id,name:X.name}}async getPromptWithContent(Q){let X=await this.storage.getPromptWithCurrentVersion(Q);if(!X)return;return{id:X.id,name:X.name,current_version:X.current_version,content:X.content,change_note:X.change_note,created_at:X.created_at,updated_at:X.updated_at}}async getPromptByName(Q){let X=await this.storage.getPromptByName(Q);if(!X)return;return{id:X.id,name:X.name}}async getPromptByNameWithContent(Q){let X=await this.storage.getPromptWithCurrentVersionByName(Q);if(!X)return;return{id:X.id,name:X.name,current_version:X.current_version,content:X.content,change_note:X.change_note,created_at:X.created_at,updated_at:X.updated_at}}async listPrompts(){return(await this.storage.getAllPrompts()).map((X)=>({id:X.id,name:X.name}))}async listPromptsWithContent(){return(await this.storage.getAllPromptsWithCurrentVersion()).map((X)=>({id:X.id,name:X.name,current_version:X.current_version,content:X.content,change_note:X.change_note,created_at:X.created_at,updated_at:X.updated_at}))}async updatePrompt(Q){await this.storage.updatePrompt(Q)}async deletePrompt(Q){await this.storage.deletePrompt(Q)}async createPromptVersion(Q,X,Y){return this.storage.createPromptVersion(Q,X,Y)}async getPromptVersion(Q,X){return this.storage.getPromptVersion(Q,X)}async getPromptVersions(Q){return this.storage.getPromptVersions(Q)}async rollbackPromptVersion(Q,X){return this.storage.rollbackPromptVersion(Q,X)}async addMiddleware(Q){await this.storage.insertMiddleware(Q)}async getMiddleware(Q){let X=await this.storage.getMiddleware(Q);if(!X)return;return{id:X.id,name:X.name,description:X.description}}async listMiddlewares(){return(await this.storage.getAllMiddlewares()).map((X)=>({id:X.id,name:X.name,description:X.description}))}async updateMiddleware(Q){await this.storage.updateMiddleware(Q)}async deleteMiddleware(Q){await this.storage.deleteMiddleware(Q)}async addAgent(Q){await this.storage.insertAgent(Q)}async getAgent(Q){let X=await this.storage.getAgent(Q);if(!X)return;return new yX({id:X.id,name:X.name,description:X.description,system_prompt:X.system_prompt_id,model:X.model_id,middlewares:X.middlewares})}async listAgents(){return(await this.storage.getAllAgents()).map((X)=>new yX({id:X.id,name:X.name,description:X.description,system_prompt:X.system_prompt_id,model:X.model_id,middlewares:X.middlewares}))}async updateAgent(Q){await this.storage.updateAgent(Q)}async deleteAgent(Q){await this.storage.deleteAgent(Q)}async getAgentWithDependencies(Q){return this.storage.getAgentWithDependencies(Q)}rowToModel(Q){return{id:Q.id,name:Q.name??void 0,provider_id:Q.provider_id,model_name:Q.model_name,stream_usage:Boolean(Q.stream_usage),enable_thinking:Boolean(Q.enable_thinking),temperature:Q.temperature,max_tokens:Q.max_tokens,top_p:Q.top_p,frequency_penalty:Q.frequency_penalty,presence_penalty:Q.presence_penalty}}}class nW{constructor(Q){this.storage=Q}async validateAgent(Q){let X=[],Y=await this.storage.getAgent(Q);if(!Y)return X.push(`Agent ${Q} not found`),{valid:!1,errors:X};if(!await this.storage.getModel(Y.model_id))X.push(`Model ${Y.model_id} not found`);if(!await this.storage.getPrompt(Y.system_prompt_id))X.push(`Prompt ${Y.system_prompt_id} not found`);for(let J of Object.keys(Y.middlewares))if(!await this.storage.getMiddleware(J))X.push(`Middleware ${J} not found`);return{valid:X.length===0,errors:X}}async validateAll(){let Q=new Map,X=await this.storage.getAllAgents();for(let Y of X)Q.set(Y.id,await this.validateAgent(Y.id));return Q}}var DO=q.object({id:q.string(),name:q.string(),content:q.string(),change_note:q.string().optional()}),qO=q.object({models:q.array(q.object({id:q.string(),name:q.string().optional(),model_name:q.string(),provider_id:q.string(),stream_usage:q.boolean(),enable_thinking:q.boolean(),temperature:q.number(),max_tokens:q.number(),top_p:q.number(),frequency_penalty:q.number(),presence_penalty:q.number()})),prompts:q.array(DO),agents:q.array(q.object({id:q.string(),name:q.string(),description:q.string(),system_prompt:q.string(),model:q.string(),middlewares:q.record(q.string(),q.unknown())}))});class sW{constructor(Q){this.storage=Q}async toJSON(){let[Q,X,Y]=await Promise.all([this.storage.getAllModels(),this.storage.getAllPromptsWithCurrentVersion(),this.storage.getAllAgents()]);return{models:Q.map((Z)=>({id:Z.id,name:Z.name??void 0,model_name:Z.model_name,provider_id:Z.provider_id,stream_usage:Boolean(Z.stream_usage),enable_thinking:Boolean(Z.enable_thinking),temperature:Z.temperature,max_tokens:Z.max_tokens,top_p:Z.top_p,frequency_penalty:Z.frequency_penalty,presence_penalty:Z.presence_penalty})),prompts:X.map((Z)=>({id:Z.id,name:Z.name,content:Z.content,change_note:Z.change_note||void 0})),agents:Y.map((Z)=>({id:Z.id,name:Z.name,description:Z.description,system_prompt:Z.system_prompt_id,model:Z.model_id,middlewares:Z.middlewares}))}}async fromJSON(Q){let X=qO.safeParse(Q);if(!X.success)throw Error(`Invalid AgentPackage data: ${X.error.message}`);await this.storage.transaction(async()=>{for(let Y of X.data.models)await this.storage.insertModel(Y);for(let Y of X.data.prompts)await this.storage.insertPrompt({id:Y.id,name:Y.name},Y.content,Y.change_note);for(let Y of X.data.agents)await this.storage.insertAgent(Y)})}}class xX{storage;repository;validator;serializer;middlewares=new cW;getModel;getPrompt;getPromptByName;getPromptWithContent;getPromptByNameWithContent;getMiddleware;getAgent;listModels;listPrompts;listPromptsWithContent;listMiddlewares;listAgents;validateAgent;validateAll;toJSON;constructor(Q){this.storage=Q,this.repository=new iW(Q),this.validator=new nW(Q),this.serializer=new sW(Q),this.getModel=this.repository.getModel.bind(this.repository),this.getPrompt=this.repository.getPrompt.bind(this.repository),this.getPromptByName=this.repository.getPromptByName.bind(this.repository),this.getPromptWithContent=this.repository.getPromptWithContent.bind(this.repository),this.getPromptByNameWithContent=this.repository.getPromptByNameWithContent.bind(this.repository),this.getMiddleware=this.repository.getMiddleware.bind(this.repository),this.getAgent=this.repository.getAgent.bind(this.repository),this.listModels=this.repository.listModels.bind(this.repository),this.listPrompts=this.repository.listPrompts.bind(this.repository),this.listPromptsWithContent=this.repository.listPromptsWithContent.bind(this.repository),this.listMiddlewares=this.repository.listMiddlewares.bind(this.repository),this.listAgents=this.repository.listAgents.bind(this.repository),this.validateAgent=this.validator.validateAgent.bind(this.validator),this.validateAll=this.validator.validateAll.bind(this.validator),this.toJSON=this.serializer.toJSON.bind(this.serializer)}async addModel(Q){await this.repository.addModel(Q)}async addPrompt(Q,X,Y){await this.repository.addPrompt(Q,X,Y)}async addMiddleware(Q){await this.repository.addMiddleware(Q),this.middlewares.registerSchema(Q)}async addAgent(Q){await this.repository.addAgent(Q)}static async fromStorage(Q){let X=new xX(Q);return(await Q.getAllMiddlewares()).forEach((Z)=>{X.middlewares.registerSchema({id:Z.id,name:Z.name,description:Z.description})}),X}static async loadFromJSON(Q,X){let Y=new xX(Q);return await Y.serializer.fromJSON(X),Y}}class aW{now(){return new Date().toISOString()}boolToInt(Q){return Q?1:0}intToBool(Q){return Q===1}safeStringify(Q){if(Q===null||Q===void 0)return null;return JSON.stringify(Q)}safeParse(Q){if(!Q)return null;try{return JSON.parse(Q)}catch{return null}}}class MO extends aW{initialize(){}models=new Map;prompts=new Map;promptVersions=new Map;promptsByName=new Map;middlewares=new Map;agents=new Map;agentMiddlewares=new Map;constructor(){super()}close(){return Promise.resolve().then(()=>{this.models.clear(),this.prompts.clear(),this.promptVersions.clear(),this.promptsByName.clear(),this.middlewares.clear(),this.agents.clear(),this.agentMiddlewares.clear()})}async transaction(Q){let X={models:new Map(this.models),prompts:new Map(this.prompts),promptVersions:new Map(this.promptVersions),promptsByName:new Map(this.promptsByName),middlewares:new Map(this.middlewares),agents:new Map(this.agents),agentMiddlewares:new Map(this.agentMiddlewares)};try{return await Q()}catch(Y){throw this.models=X.models,this.prompts=X.prompts,this.promptVersions=X.promptVersions,this.promptsByName=X.promptsByName,this.middlewares=X.middlewares,this.agents=X.agents,this.agentMiddlewares=X.agentMiddlewares,Y}}insertModel(Q){return Promise.resolve().then(()=>{if(this.models.has(Q.id))throw Error(`Model with id ${Q.id} already exists`);let X={id:Q.id,name:Q.name??null,provider_id:Q.provider_id,model_name:Q.model_name,stream_usage:this.boolToInt(Q.stream_usage),enable_thinking:this.boolToInt(Q.enable_thinking),temperature:Q.temperature,max_tokens:Q.max_tokens,top_p:Q.top_p,frequency_penalty:Q.frequency_penalty,presence_penalty:Q.presence_penalty,created_at:this.now(),updated_at:this.now()};this.models.set(Q.id,X)})}getModel(Q){return Promise.resolve(this.models.get(Q))}getAllModels(){return Promise.resolve(Array.from(this.models.values()))}updateModel(Q){return Promise.resolve().then(()=>{let X=this.models.get(Q.id);if(!X)throw Error(`Model with id ${Q.id} not found`);let Y={...X,name:Q.name??null,provider_id:Q.provider_id,model_name:Q.model_name,stream_usage:this.boolToInt(Q.stream_usage),enable_thinking:this.boolToInt(Q.enable_thinking),temperature:Q.temperature,max_tokens:Q.max_tokens,top_p:Q.top_p,frequency_penalty:Q.frequency_penalty,presence_penalty:Q.presence_penalty,updated_at:this.now()};this.models.set(Q.id,Y)})}deleteModel(Q){return Promise.resolve().then(()=>{for(let X of this.agents.values())if(X.model_id===Q)throw Error(`Cannot delete model ${Q}: it is referenced by agent ${X.id}`);this.models.delete(Q)})}insertPrompt(Q,X,Y){return Promise.resolve().then(()=>{if(this.prompts.has(Q.id))throw Error(`Prompt with id ${Q.id} already exists`);if(this.promptsByName.has(Q.name))throw Error(`Prompt with name ${Q.name} already exists`);let Z=this.now(),W={id:Q.id,name:Q.name,current_version:1,created_at:Z,updated_at:Z},J={id:`${Q.id}-v1`,prompt_id:Q.id,version:1,content:X,metadata:null,change_note:Y||null,created_at:Z};this.prompts.set(Q.id,W),this.promptsByName.set(Q.name,W),this.promptVersions.set(Q.id,[J])})}getPrompt(Q){return Promise.resolve(this.prompts.get(Q))}getPromptByName(Q){return Promise.resolve(this.promptsByName.get(Q))}getPromptWithCurrentVersion(Q){let X=this.prompts.get(Q);if(!X)return Promise.resolve(void 0);let Z=(this.promptVersions.get(Q)||[]).find((W)=>W.version===X.current_version);if(!Z)return Promise.resolve(void 0);return Promise.resolve({...X,content:Z.content,metadata:Z.metadata,change_note:Z.change_note})}getPromptWithCurrentVersionByName(Q){let X=this.promptsByName.get(Q);if(!X)return Promise.resolve(void 0);return this.getPromptWithCurrentVersion(X.id)}getAllPrompts(){return Promise.resolve(Array.from(this.prompts.values()))}getAllPromptsWithCurrentVersion(){let Q=[];for(let X of this.prompts.values()){let Z=(this.promptVersions.get(X.id)||[]).find((W)=>W.version===X.current_version);if(Z)Q.push({...X,content:Z.content,metadata:Z.metadata,change_note:Z.change_note})}return Promise.resolve(Q)}updatePrompt(Q){return Promise.resolve().then(()=>{let X=this.prompts.get(Q.id);if(!X)throw Error(`Prompt with id ${Q.id} not found`);let Y={...X,name:Q.name,updated_at:this.now()};if(this.prompts.set(Q.id,Y),X.name!==Q.name)this.promptsByName.delete(X.name);this.promptsByName.set(Q.name,Y)})}deletePrompt(Q){return Promise.resolve().then(()=>{let X=this.prompts.get(Q);if(!X)throw Error(`Prompt with id ${Q} not found`);for(let Y of this.agents.values())if(Y.system_prompt_id===Q)throw Error(`Cannot delete prompt ${Q}: it is referenced by agent ${Y.id}`);this.prompts.delete(Q),this.promptsByName.delete(X.name),this.promptVersions.delete(Q)})}createPromptVersion(Q,X,Y){return this.transaction(()=>{let Z=this.prompts.get(Q);if(!Z)throw Error(`Prompt with id ${Q} not found`);let W=Z.current_version+1,J=this.now(),$={id:`${Q}-v${W}`,prompt_id:Q,version:W,content:X,metadata:null,change_note:Y||null,created_at:J},G=this.promptVersions.get(Q)||[];G.push($),this.promptVersions.set(Q,G);let K={...Z,current_version:W,updated_at:J};return this.prompts.set(Q,K),this.promptsByName.set(K.name,K),$})}getPromptVersion(Q,X){let Y=this.promptVersions.get(Q)||[];return Promise.resolve(Y.find((Z)=>Z.version===X))}getPromptVersions(Q){let X=this.promptVersions.get(Q)||[];return Promise.resolve([...X].sort((Y,Z)=>Z.version-Y.version))}rollbackPromptVersion(Q,X){return this.transaction(()=>{let Y=this.prompts.get(Q);if(!Y)throw Error(`Prompt with id ${Q} not found`);if(!(this.promptVersions.get(Q)||[]).some(($)=>$.version===X))throw Error(`Version ${X} not found for prompt ${Q}`);let J={...Y,current_version:X,updated_at:this.now()};this.prompts.set(Q,J),this.promptsByName.set(J.name,J)})}insertMiddleware(Q){return Promise.resolve().then(()=>{if(this.middlewares.has(Q.id))throw Error(`Middleware with id ${Q.id} already exists`);let X={id:Q.id,name:Q.name,description:Q.description,created_at:this.now(),updated_at:this.now(),parameters:null};this.middlewares.set(Q.id,X)})}getMiddleware(Q){return Promise.resolve(this.middlewares.get(Q))}getAllMiddlewares(){return Promise.resolve(Array.from(this.middlewares.values()))}updateMiddleware(Q){return Promise.resolve().then(()=>{let X=this.middlewares.get(Q.id);if(!X)throw Error(`Middleware with id ${Q.id} not found`);let Y={...X,name:Q.name,description:Q.description,updated_at:this.now()};this.middlewares.set(Q.id,Y)})}deleteMiddleware(Q){return Promise.resolve().then(()=>{this.middlewares.delete(Q)})}insertAgent(Q){return Promise.resolve().then(()=>{if(this.agents.has(Q.id))throw Error(`Agent with id ${Q.id} already exists`);if(!this.models.has(Q.model))throw Error(`Model ${Q.model} not found`);if(!this.prompts.has(Q.system_prompt))throw Error(`Prompt ${Q.system_prompt} not found`);let X={id:Q.id,name:Q.name,description:Q.description,system_prompt_id:Q.system_prompt,model_id:Q.model,created_at:this.now(),updated_at:this.now()};this.agents.set(Q.id,X);let Y=[];for(let[Z,W]of Object.entries(Q.middlewares)){if(!this.middlewares.has(Z))throw Error(`Middleware ${Z} not found`);Y.push({agent_id:Q.id,middleware_id:Z,enabled:typeof W==="boolean"?this.boolToInt(W):1,custom_params:typeof W==="boolean"?null:this.safeStringify(W)})}this.agentMiddlewares.set(Q.id,Y)})}async getAgent(Q){let X=this.agents.get(Q);if(!X)return;let Y={},Z=this.agentMiddlewares.get(Q)||[];for(let W of Z)if(W.enabled===0)Y[W.middleware_id]=!1;else if(W.custom_params)Y[W.middleware_id]=this.safeParse(W.custom_params);else Y[W.middleware_id]=!0;return{...X,middlewares:Y}}async getAllAgents(){let Q=[];for(let X of this.agents.values()){let Y={},Z=this.agentMiddlewares.get(X.id)||[];for(let W of Z)if(W.custom_params)Y[W.middleware_id]=this.safeParse(W.custom_params);else Y[W.middleware_id]=this.intToBool(W.enabled);Q.push({...X,middlewares:Y})}return Q}updateAgent(Q){return Promise.resolve().then(()=>{let X=this.agents.get(Q.id);if(!X)throw Error(`Agent with id ${Q.id} not found`);if(!this.models.has(Q.model))throw Error(`Model ${Q.model} not found`);if(!this.prompts.has(Q.system_prompt))throw Error(`Prompt ${Q.system_prompt} not found`);let Y={...X,name:Q.name,description:Q.description,system_prompt_id:Q.system_prompt,model_id:Q.model,updated_at:this.now()};this.agents.set(Q.id,Y);let Z=[];for(let[W,J]of Object.entries(Q.middlewares)){if(!this.middlewares.has(W))throw Error(`Middleware ${W} not found`);Z.push({agent_id:Q.id,middleware_id:W,enabled:typeof J==="boolean"?this.boolToInt(J):1,custom_params:typeof J==="boolean"?null:this.safeStringify(J)})}this.agentMiddlewares.set(Q.id,Z)})}deleteAgent(Q){return Promise.resolve().then(()=>{this.agents.delete(Q),this.agentMiddlewares.delete(Q)})}async getAgentWithDependencies(Q){let X=this.agents.get(Q);if(!X)return;let Y=this.models.get(X.model_id);if(!Y)throw Error(`Model ${X.model_id} not found`);let Z=await this.getPromptWithCurrentVersion(X.system_prompt_id);if(!Z)throw Error(`Prompt ${X.system_prompt_id} not found`);return{agent:X,model:Y,systemPrompt:Z}}}function bO(Q,X,Y){return{id:Y?.id??X.name,name:X.name,description:X.description,paramsSchema:X.schema,execute:Q}}var Jq=bO,wO=!0,PO="5m",NO=3,RO=q.object({enableCaching:q.boolean().optional(),ttl:q.enum(["5m","1h"]).optional(),minMessagesToCache:q.number().optional(),unsupportedModelBehavior:q.enum(["ignore","warn","raise"]).optional()});class oW extends Error{constructor(Q){super(Q);this.name="PromptCachingMiddlewareError"}}function $q(Q){return fX({name:"PromptCachingMiddleware",contextSchema:RO,wrapModelCall:(X,Y)=>{let Z=X.runtime.context.enableCaching??Q?.enableCaching??wO,W=X.runtime.context.ttl??Q?.ttl??PO,J=X.runtime.context.minMessagesToCache??Q?.minMessagesToCache??NO;if(!Z||!X.model)return Y(X);if(X.state.messages.length+(X.systemPrompt?1:0)<J)return Y(X);let G=X.messages.at(-1);if(!G)return Y(X);let K=Object.getPrototypeOf(G).constructor;if(Array.isArray(G.content)){let B=G.content.at(-1);if(!B)return Y(X);if(typeof B==="object"&&"type"in B&&B.type==="text"&&"text"in B){let F=B.text;if(F===""||F==null||typeof F==="object"&&Object.keys(F).length===0)return Y(X)}let H=new K({...G,content:[...G.content.slice(0,-1),{...B,cache_control:{type:"ephemeral",ttl:W}}]});return Y({...X,messages:[...X.messages.slice(0,-1),H]})}else if(typeof G.content==="string"){if(!G.content||G.content.trim()==="")return Y(X);let B=new K({...G,content:[{type:"text",text:G.content,cache_control:{type:"ephemeral",ttl:W}}]});return Y({...X,messages:[...X.messages.slice(0,-1),B]})}throw new oW("Last message content is not a string or array")}})}var IO=`
20
-
21
- ## Project Documentation
22
-
23
- {docs_content}`;class TO{name="AgentsMdMiddleware";stateSchema=void 0;contextSchema=void 0;tools=[];projectRoot;systemPromptTemplate;constructor(Q={}){this.projectRoot=Q.projectRoot||process.cwd(),this.systemPromptTemplate=IO}async findDocumentationFile(){let Q=["CLAUDE.md","AGENTS.md"];for(let X of Q){let Y=h9(this.projectRoot,X);try{return await EW.access(Y),{content:await EW.readFile(Y,"utf-8"),filename:X}}catch{continue}}return null}async wrapModelCall(Q,X){let Y=await this.findDocumentationFile();if(!Y)return await X(Q);let Z=this.systemPromptTemplate.replace("{docs_content}",Y.content),W;if(Q.systemPrompt)W=Q.systemPrompt+`
24
-
25
- `+Z;else W=Z;let J=new u9(W),$={...Q,systemMessage:J};return await X($)}}var EO=10485760,CO=64,RX=1024;function IX(Q,X){try{let Y=d0(Q),Z=d0(X),W=EX(Z,Y);if(!W)return!0;if(W.startsWith("..")||W.includes(":")){let J=`${CW}.claude${CW}skills`;if(X.includes(J)){let $=AO(),G=EX($,Y);if(!G||!G.startsWith("..")&&!G.includes(":"))return!0}return!1}return!0}catch(Y){return!1}}function SO(Q,X){if(!Q)return[!1,"name is required"];if(Q.length>CO)return[!1,"name exceeds 64 characters"];if(!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(Q))return[!1,"name must be lowercase alphanumeric with single hyphens only"];if(Q!==X)return[!1,`name '${Q}' must match directory name '${X}'`];return[!0,""]}function kO(Q,X){try{let Y=G8(Q);if(Y.size>EO)return console.warn(`Skipping ${Q}: file too large (${Y.size} bytes)`),null;let Z=uW(Q,"utf-8"),W=/^---\s*\n([\s\S]*?)\n---\s*\n/,J=Z.match(W);if(!J)return console.warn(`Skipping ${Q}: no valid YAML frontmatter found`),null;let $=J[1],G;try{G=_X.parse($)}catch(j){return console.warn(`Invalid YAML in ${Q}: ${j}`),null}if(typeof G!=="object"||G===null)return console.warn(`Skipping ${Q}: frontmatter is not a mapping`),null;let{name:K,description:B}=G;if(!K||!B)return console.warn(`Skipping ${Q}: missing required 'name' or 'description'`),null;let H=CX(SX(Q)),[F,O]=SO(String(K),H);if(!F)console.warn(`Skill '${K}' in ${Q} does not follow Agent Skills spec: ${O}. Consider renaming to be spec-compliant.`);let A=String(B);if(A.length>RX)console.warn(`Description exceeds ${RX} chars in ${Q}, truncating`),A=A.substring(0,RX);return{name:String(K),description:A,path:Q,source:X,license:G.license,compatibility:G.compatibility,metadata:G.metadata,allowed_tools:G["allowed-tools"]}}catch(Y){return console.warn(`Error reading ${Q}: ${Y.message}`),null}}function SW(Q,X){if(!$8(Q))return[];let Y;try{Y=d0(Q)}catch(J){return[]}let Z=[],W;try{W=hW(Q)}catch(J){return[]}for(let J of W){let $=h9(Q,J),G,K;try{G=kX($),K=G8($)}catch(O){continue}if(!K.isDirectory())continue;if(G.isSymbolicLink()){let O=d0($);if(!IX(O,Y))continue}let B=h9($,"SKILL.md");if(!$8(B))continue;if(kX(B).isSymbolicLink()){let O=d0(B);if(!IX(O,Y))continue}else if(!IX(B,Y))continue;let F=kO(B,X);if(F)Z.push(F)}return Z}function yO(Q,X){let Y=new Map;if(Q){let Z=SW(Q,"user");for(let W of Z)Y.set(W.name,W)}if(X){let Z=SW(X,"project");for(let W of Z)Y.set(W.name,W)}return Array.from(Y.values())}var xO=`
26
-
27
- ## Skills System
28
-
29
- You have access to a skills library that provides specialized capabilities and domain knowledge.
30
-
31
- {skills_locations}
32
-
33
- **Available Skills:**
34
-
35
- {skills_list}
36
-
37
- **How to Use Skills (Progressive Disclosure):**
38
-
39
- Skills follow a **progressive disclosure** pattern - you know they exist (name + description above), but you only read the full instructions when needed:
40
-
41
- 1. **Recognize when a skill applies**: Check if the user's task matches any skill's description
42
- 2. **Read the skill's full instructions**: The skill list above shows the exact path to use with read_file
43
- 3. **Follow the skill's instructions**: SKILL.md contains step-by-step workflows, best practices, and examples
44
- 4. **Access supporting files**: Skills may include Python scripts, configs, or reference docs - use absolute paths
45
-
46
- **When to Use Skills:**
47
- - When the user's request matches a skill's domain (e.g., "research X" → web-research skill)
48
- - When you need specialized knowledge or structured workflows
49
- - When a skill provides proven patterns for complex tasks
50
-
51
- **Skills are Self-Documenting:**
52
- - Each SKILL.md tells you exactly what the skill does and how to use it
53
- - The skill list above shows the full path for each skill's SKILL.md file
54
-
55
- **Executing Skill Scripts:**
56
- Skills may contain Python scripts or other executable files. Always use absolute paths from the skill list.
57
-
58
- **Example Workflow:**
59
-
60
- User: "Can you research the latest developments in quantum computing?"
61
-
62
- 1. Check available skills above → See "web-research" skill with its full path
63
- 2. Read the skill using the path shown in the list
64
- 3. Follow the skill's research workflow (search → organize → synthesize)
65
- 4. Use any helper scripts with absolute paths
66
-
67
- Remember: Skills are tools to make you more capable and consistent. When in doubt, check if a skill exists for the task!
68
- `;class fO{name="SkillsMiddleware";stateSchema=void 0;contextSchema=void 0;tools=[];skillsDir;projectSkillsDir;userSkillsDisplay;systemPromptTemplate;constructor(Q={}){this.skillsDir=Q.skillsDir,this.projectSkillsDir=Q.projectSkillsDir||"./.claude/skills",this.userSkillsDisplay=this.skillsDir||"~/.claude/skills",this.systemPromptTemplate=xO}formatSkillsLocations(){let Q=[];if(this.userSkillsDisplay)Q.push(`**User Skills**: \`${this.userSkillsDisplay}\``);if(this.projectSkillsDir)Q.push(`**Project Skills**: \`${this.projectSkillsDir}\` (overrides user skills)`);return Q.join(`
69
- `)}formatSkillsList(Q){if(!Q.length){let W=[`${this.userSkillsDisplay}/`];if(this.projectSkillsDir)W.push(`${this.projectSkillsDir}/`);return`(No skills available yet. You can create skills in ${W.join(" or ")})`}let X=Q.filter((W)=>W.source==="user"),Y=Q.filter((W)=>W.source==="project"),Z=[];if(X.length){Z.push("**User Skills:**");for(let W of X)Z.push(`- **${W.name}**: ${W.description}`),Z.push(` → Read \`${W.path}\` for full instructions`);Z.push("")}if(Y.length){Z.push("**Project Skills:**");for(let W of Y)Z.push(`- **${W.name}**: ${W.description}`),Z.push(` → Read \`${W.path}\` for full instructions`)}return Z.join(`
70
- `)}async wrapModelCall(Q,X){let Y=yO(this.skillsDir,this.projectSkillsDir),Z=this.formatSkillsLocations(),W=this.formatSkillsList(Y),J=this.systemPromptTemplate.replace("{skills_locations}",Z).replace("{skills_list}",W),$;if(Q.systemPrompt)$=Q.systemPrompt+`
71
-
72
- `+J;else $=J;let G=new u9($),K={...Q,systemMessage:G};return await X(K)}}var _O=10485760;function kW(Q,X){try{let Y=d0(Q),Z=d0(X),W=EX(Z,Y);if(!W)return!0;if(W.startsWith("..")||W.includes(":"))return!1;return!0}catch{return!1}}function vO(Q,X){try{let Y=G8(Q);if(Y.size>_O)return console.warn(`Skipping ${Q}: file too large (${Y.size} bytes)`),null;let Z=uW(Q,"utf-8"),W=/^---\s*\n([\s\S]*?)\n---\s*\n/,J=Z.match(W);if(!J){let B=CX(SX(Q)),H=Z.split(`
73
- `).find((F)=>F.trim().startsWith("#"));return{name:B,description:H?H.replace(/^#+\s*/,""):B,path:Q,source:X}}let $;try{$=_X.parse(J[1])}catch{return console.warn(`Invalid YAML in ${Q}`),null}if(typeof $!=="object"||$===null)return null;let G=$.name||CX(SX(Q)),K=$.description||String(G);return{name:String(G),description:String(K),path:Q,source:X,tags:$.tags,category:$.category,created:$.created,last_updated:$.last_updated,priority:$.priority,context_scope:$.context_scope}}catch(Y){return console.warn(`Error reading ${Q}: ${Y.message}`),null}}function yW(Q,X){if(!$8(Q))return[];let Y;try{Y=d0(Q)}catch{return[]}let Z=[],W;try{W=hW(Q)}catch{return[]}for(let J of W){let $=h9(Q,J),G,K;try{G=kX($),K=G8($)}catch{continue}if(!K.isDirectory())continue;if(G.isSymbolicLink()){let F=d0($);if(!kW(F,Y))continue}let B=h9($,"MEMORY.md");if(!$8(B))continue;if(!kW(B,Y))continue;let H=vO(B,X);if(H)Z.push(H)}return Z}function Gq(Q,X){let Y=new Map;if(Q)for(let Z of yW(Q,"user"))Y.set(Z.name,Z);if(X)for(let Z of yW(X,"project"))Y.set(Z.name,Z);return Array.from(Y.values())}var gO=q.object({}),hO=q.object({commands:q.array(q.object({name:q.string().describe("MCP tool name"),args:q.record(q.string(),q.any()).describe("Tool parameters in JSON object format")})).describe("List of MCP tools to execute")});class rW{name="MCPMiddleware";stateSchema=void 0;contextSchema=void 0;mcpClient=null;cacheTools=[];configProvider;directInject;lastRefresh=null;serverStatuses=new Map;initializing=!1;initializationPromise=null;loadMcpToolsTool;executeMcpToolTool;constructor(Q){this.configProvider=Q.configProvider,this.directInject=Q.directInject??!1,this.initialize().catch((X)=>{console.error("Failed to initialize MCPMiddleware:",X)}),this.createTools()}async getConfig(){return await this.configProvider()}async initialize(){if(this.initializing)return this.initializationPromise;return this.initializing=!0,this.initializationPromise=(async()=>{try{let Q=await this.getConfig();if(!Q||!Q.servers||Object.keys(Q.servers).length===0){this.mcpClient=null,this.serverStatuses.clear(),this.cacheTools=[];return}this.mcpClient=new NX({throwOnLoadError:!0,prefixToolNameWithServerName:!1,additionalToolNamePrefix:"",useStandardContentBlocks:!0,onConnectionError:"ignore",mcpServers:Q.servers});try{await this.mcpClient.initializeConnections(),this.cacheTools=await this.mcpClient.getTools()}catch(X){console.warn("MCP server connection failed:",X),this.cacheTools=[]}this.lastRefresh=Date.now()}finally{this.initializing=!1}})(),this.initializationPromise}async getAllTools(){if(this.initializing&&this.initializationPromise)await this.initializationPromise;if(!this.mcpClient)await this.initialize();if(!this.mcpClient)return[];if(this.cacheTools.length===0)this.cacheTools=await this.mcpClient.getTools();return this.cacheTools}async cleanup(){if(this.mcpClient){try{await this.mcpClient.close()}catch(Q){console.warn("Failed to close MCP client during cleanup:",Q)}this.mcpClient=null}this.lastRefresh=null,this.serverStatuses.clear(),this.cacheTools=[]}async getStatus(){let Q=this.cacheTools,X=await this.getConfig(),Y=X?.servers?Object.keys(X.servers):[];return{isInitialized:this.mcpClient!==null,toolCount:Q.length,lastRefresh:this.lastRefresh,servers:Y}}async executeTool(Q,X){if(this.initializing&&this.initializationPromise)await this.initializationPromise;if(!this.mcpClient)await this.initialize();if(!this.mcpClient)throw Error("MCP client not initialized. No MCP configuration found.");let Y=await this.getAllTools(),Z=Y.find((W)=>W.name===Q);if(!Z){let W=Y.map((J)=>J.name).join(", ");throw Error(`Tool not found: ${Q}. Available: ${W||"none"}`)}try{return await Z.invoke(X)}catch(W){throw Error(`Failed to execute MCP tool '${Q}': ${W.message||String(W)}`)}}createTools(){this.loadMcpToolsTool=g9(async()=>{let Q=await this.getStatus(),X=await this.getAllTools();return JSON.stringify({tools:X.map((Y)=>({name:Y.name,description:Y.description,schema:Y.schema})),status:Q},null,2)},{name:"load_mcp_tools",description:`Load and query all available MCP tools.
74
-
75
- Returns:
76
- - tools: List of MCP tools, each containing name, description, schema
77
- - status: MCP connection status, including toolCount, servers, etc.
78
-
79
- Use cases:
80
- - Query which MCP tools are available
81
- - Get tool parameter formats
82
- - Check MCP connection status
83
-
84
- Important: The tool list is dynamic. Call this command when needed to get the latest information.`,schema:gO}),this.executeMcpToolTool=g9(async({commands:Q})=>{let X=[];for(let Y of Q){let{name:Z,args:W}=Y;try{let J=await this.executeTool(Z,W);X.push({tool:Z,result:J})}catch(J){X.push({tool:Z,result:null,error:J.message||String(J)})}}return JSON.stringify({results:X},null,2)},{name:"execute_mcp_tool",description:`Execute one or more MCP tools.
85
-
86
- Usage format:
87
- - commands: Array of MCP tools, each containing name and args
88
-
89
- Examples:
90
- - Single tool: {commands: [{name: "filesystem.read_file", args: {path: "/path/to/file"}}]}
91
- - Multiple tools: {commands: [{name: "tool1", args: {...}}, {name: "tool2", args: {...}}]}
92
-
93
- Important:
94
- - All tools execute independently; failure of one does not affect others
95
- - Results are returned in command order
96
- - Suitable for batch execution of MCP-related operations`,schema:hO})}get tools(){if(this.directInject)return this.cacheTools;return[this.loadMcpToolsTool,this.executeMcpToolTool]}async wrapModelCall(Q,X){if(this.directInject)return await X(Q);let Y=`
97
- ## MCP Tools
98
-
99
- Using MCP tools requires two steps:
100
-
101
- 1. **load_mcp_tools** - Query available MCP tools
102
- - Returns list of all MCP tools and their parameter formats
103
- - Includes MCP connection status
104
-
105
- 2. **execute_mcp_tool** - Execute MCP tools
106
- - Supports single or multiple batch execution
107
- - Format: {commands: [{name, args}, ...]}
108
-
109
- **Important**:
110
- - Standard tools (read_file, glob_files) are called directly, no MCP commands needed
111
- - MCP tools require first calling load_mcp_tools to query
112
- - Then call execute_mcp_tool to execute
113
- `,Z;if(Q.systemPrompt)Z=Q.systemPrompt+Y;else Z=Y;let W={...Q,systemPrompt:Z};return await X(W)}}function Kq(Q){return new rW(Q)}var tW=new gW({task_store:new vW(q.record(q.string(),q.any()).default(()=>({})),{reducer:(Q,X)=>({...Q,...X})})}),Bq=tW,Hq=tW,uO=q.object({task_id:q.string().optional().describe("The task id to ask the subagent, if not provided, will use the tool call id"),subagent_id:q.string().describe('REQUIRED. The specific ID of the subagent to invoke (e.g., "agents/default", "agents/manager"). Must match exactly one of the available subagents listed in the system prompt.'),subagent_type:q.string().describe('REQUIRED. The type/category of subagent (e.g., "general-purpose", "statusline-setup"). Must be one of the available agent types listed in the tool description.'),task_description:q.string().describe("Describe the user state and what you want the subagent to do."),data_transfer:q.any().optional().describe("Data to transfer to the subagent.")}),lO=`Launch a new agent to handle complex, multi-step tasks autonomously.
114
-
115
- Available agent types and the tools they have access to:
116
- {agent_types}
117
-
118
- **IMPORTANT: Both subagent_id AND subagent_type are REQUIRED parameters. You must provide BOTH.**
119
-
120
- - subagent_id: The specific ID of the subagent (e.g., "agents/default", "agents/manager")
121
- - subagent_type: The type category of the subagent (e.g., "general-purpose", "statusline-setup")
122
-
123
- When NOT to use the Agent tool:
124
- - If you want to read a specific file path, use the Read or Glob tool instead of the Agent tool, to find the match more quickly
125
- - If you are searching for a specific class definition like "class Foo", use the Glob tool instead, to find the match more quickly
126
- - If you are searching for code within a specific file or set of 2-3 files, use the Read tool instead of the Agent tool, to find the match more quickly
127
- - Other tasks that are not related to the agent descriptions above
128
-
129
-
130
- Usage notes:
131
- 1. Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses
132
- 2. When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
133
- 3. Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
134
- 4. The agent's outputs should generally be trusted
135
- 5. Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent
136
- 6. If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.
137
-
138
- Example usage:
139
-
140
- <example_agent_descriptions>
141
- "code-reviewer": use this agent after you are done writing a significant piece of code
142
- "greeting-responder": use this agent when to respond to user greetings with a friendly joke
143
- </example_agent_description>
144
-
145
- <example>
146
- user: "Please write a function that checks if a number is prime"
147
- assistant: Sure let me write a function that checks if a number is prime
148
- assistant: First let me use the Write tool to write a function that checks if a number is prime
149
- assistant: I'm going to use the Write tool to write the following code:
150
- <code>
151
- function isPrime(n) {
152
- if (n <= 1) return false
153
- for (let i = 2; i * i <= n; i++) {
154
- if (n % i === 0) return false
155
- }
156
- return true
157
- }
158
- </code>
159
- <commentary>
160
- Since a signficant piece of code was written and the task was completed, now use the code-reviewer agent to review the code
161
- </commentary>
162
- assistant: Now let me use the code-reviewer agent to review the code
163
- assistant: Uses the Task tool to launch the with the code-reviewer agent
164
- </example>
165
-
166
- <example>
167
- user: "Hello"
168
- <commentary>
169
- Since the user is greeting, use the greeting-responder agent to respond with a friendly joke
170
- </commentary>
171
- assistant: "I'm going to use the Task tool to launch the with the greeting-responder agent"
172
- </example>
173
- `,eW=(Q,X)=>g9(async(Y,Z)=>{let W=Z.state,J=Y.task_id||Z.toolCall.id,$={messages:[]};if(J&&W?.task_store?.[J])$=W?.task_store[J];else $=JSON.parse(JSON.stringify(W)),$.messages=[],$.task_store={};let G=await Q(J,Y,W);if($.messages.push(new TX({content:Y.task_description})),Y.data_transfer)$.messages.push(new TX({content:`Here is the data to help you complete the task: ${JSON.stringify(Y.data_transfer,null,2)}`}));let K=await G.invoke($),B=K.messages.at(-1),H={task_store:{...W?.task_store||{},[J]:K},messages:[{role:"tool",content:`task_id: ${J}
174
- ---
175
- `+(B?.text||""),tool_call_id:Z.toolCall.id}]};return X?.pass_through_keys?.forEach((F)=>{if(F in K)H[F]=K[F]}),new p9({update:H})},{name:X?.name||"task",description:X?.description||lO,schema:uO}),Fq=eW;async function Lq(Q){return(await Q.listAgents()).map((Y)=>({id:Y.id,name:Y.name||Y.id,description:Y.description||""}))}var mO=`
176
- ## SubAgents System
177
-
178
- You have access to a subagent system that can delegate specialized tasks to other agents.
179
-
180
- **Available SubAgents:**
181
-
182
- {subagents_list}
183
-
184
- **How to Use SubAgents (Progressive Disclosure):**
185
-
186
- SubAgents follow a **progressive disclosure** pattern - you know they exist (name + description above), but you only delegate tasks when needed:
187
-
188
- 1. **Recognize when to delegate**: Check if the user's task matches a subagent's specialization
189
- 2. **Use the task tool**: Call the tool with the subagent's ID and a clear task description
190
- 3. **Provide context**: Use the \`data_transfer\` parameter to pass relevant information
191
- 4. **Get results**: The subagent will process the task and return results
192
-
193
- **When to Use SubAgents:**
194
- - When the user's request requires specialized knowledge or workflows
195
- - When a task is complex and can be broken down into subtasks
196
- - When you need parallel processing or different expertise areas
197
- - When a subagent provides proven patterns for specific domains
198
-
199
- **SubAgent Tool Usage:**
200
-
201
- The \`task\` tool is available for delegation:
202
-
203
- - **subagent_id**: The ID of the subagent to delegate to
204
- - **task_description**: Clear description of what needs to be done
205
- - **task_id** (optional): Identifier for tracking, it will automatically be generated after you run a subagent.
206
- - **data_transfer** (optional): Context/data to pass to the subagent
207
-
208
- **Example Workflow:**
209
-
210
- User: "Can you have the research agent look into quantum computing developments?"
211
-
212
- 1. Check available subagents above → See "research" subagent with ID
213
- 2. Use task tool with appropriate parameters
214
- 3. Provide clear task description and any necessary context
215
- 4. Process the results from the subagent
216
-
217
- Remember: SubAgents are tools to distribute work and leverage specialized capabilities. When in doubt, check if a subagent exists for the task!
218
- `;function pO(Q){let X=[];for(let Y of Q)X.push(`- **${Y.id}**: ${Y.description}`),X.push(` → Use task with subagent_id: "${Y.id}"`);return X.join(`
219
- `)}class dO{name="SubAgentsMiddleware";stateSchema;contextSchema;tools=[];agents;formatAgentListFn;agentListString;constructor(Q){if(this.agents=Q.agents,this.formatAgentListFn=Q.formatAgentList||pO,Q.stateSchema)this.stateSchema=Q.stateSchema;if(Q.contextSchema)this.contextSchema=Q.contextSchema;this.agentListString=this.formatAgentListFn(this.agents);let X=eW(async(Y,Z,W)=>{return await Q.createAgent(Y,Z,W)},{name:Q.toolName,description:Q.toolDescription,pass_through_keys:Q.passThroughKeys});this.tools.push(X)}async wrapModelCall(Q,X){let Y=mO.replace("{subagents_list}",this.agentListString),Z;if(Q.systemPrompt)Z=Q.systemPrompt+`
220
-
221
- `+Y;else Z=Y;let W={...Q,systemMessage:new u9(Z)};return await X(W)}}var cO=q.function({input:q.tuple([q.custom(),q.custom(),q.custom()]),output:q.union([q.string(),q.promise(q.string())])}),QJ=["approve","edit","reject","respond"],iO=q.enum(QJ),nO=q.object({allowedDecisions:q.array(iO),description:q.union([q.string(),cO]).optional(),argsSchema:q.record(q.string(),q.any()).optional()}),xW=q.object({interruptOn:q.record(q.string(),q.union([q.boolean(),nO])).optional(),descriptionPrefix:q.string().default("Tool execution requires approval")});function zq(Q){let X=async(Z,W,J,$)=>{let{name:G,args:K}=Z,B=W.description,H;if(typeof B==="function")H=await B(Z,J,$);else if(B!==void 0)H=B;else H=`${Q.descriptionPrefix??"Tool execution requires approval"}
222
-
223
- Tool: ${G}
224
- Args: ${JSON.stringify(K,null,2)}`;let F={name:G,args:K,description:H},O={actionName:G,allowedDecisions:W.allowedDecisions};if(W.argsSchema)O.argsSchema=W.argsSchema;return{actionRequest:F,reviewConfig:O}},Y=(Z,W,J)=>{let $=J.allowedDecisions;if(Z.type==="approve"&&$.includes("approve"))return{revisedToolCall:W,toolMessage:null};if(Z.type==="edit"&&$.includes("edit")){let K=Z.editedAction;if(!K||typeof K.name!=="string")throw Error(`Invalid edited action for tool "${W.name}": name must be a string`);if(!K.args||typeof K.args!=="object")throw Error(`Invalid edited action for tool "${W.name}": args must be an object`);return{revisedToolCall:{type:"tool_call",name:K.name,args:K.args,id:W.id},toolMessage:null}}if(Z.type==="reject"&&$.includes("reject")){if(Z.message!==void 0&&typeof Z.message!=="string")throw Error(`Tool call response for "${W.name}" must be a string, got ${typeof Z.message}`);let K=Z.message??`User rejected the tool call for \`${W.name}\` with id ${W.id}`,B=new e1({content:K,name:W.name,tool_call_id:W.id,status:"error"});return{revisedToolCall:W,toolMessage:B}}if(Z.type==="respond"&&$.includes("respond")){if(typeof Z.message!=="string")throw Error(`Tool call response for "${W.name}" must be a string, got ${typeof Z.message}`);let K=new e1({content:Z.message,name:W.name,tool_call_id:W.id,status:"success"});return{revisedToolCall:W,toolMessage:K}}let G=`Unexpected human decision: ${JSON.stringify(Z)}. Decision type '${Z.type}' is not allowed for tool '${W.name}'. Expected one of ${JSON.stringify($)} based on the tool's configuration.`;throw Error(G)};return fX({name:"HumanInTheLoopMiddleware",contextSchema:xW,afterModel:{canJumpTo:["model"],hook:async(Z,W)=>{let J=fW(xW,{...Q,...W.context||{}});if(!J)return;let{messages:$}=Z;if(!$.length)return;let G=[...$].reverse().find((I)=>J8.isInstance(I));if(!G||!J8.isInstance(G)||!G.tool_calls?.length)return;if(!J.interruptOn)return;let K={};for(let[I,T]of Object.entries(J.interruptOn))if(typeof T==="boolean"){if(T===!0)K[I]={allowedDecisions:[...QJ]}}else if(T.allowedDecisions)K[I]=T;let B=[],H=[];for(let I of G.tool_calls)if(I.name in K)B.push(I);else H.push(I);if(!B.length)return;let F=[],O=[];for(let I of B){let T=K[I.name],{actionRequest:Q0,reviewConfig:B0}=await X(I,T,Z,W);F.push(Q0),O.push(B0)}let V=(await _W({actionRequests:F,reviewConfigs:O})).decisions;if(!V||!Array.isArray(V))throw Error("Invalid HITLResponse: decisions must be a non-empty array");if(V.length!==B.length)throw Error(`Number of human decisions (${V.length}) does not match number of hanging tool calls (${B.length}).`);let D=[...H],U=[],w=V.some((I)=>I.type==="reject"||I.type==="respond");for(let I=0;I<V.length;I++){let T=V[I],Q0=B[I],B0=K[Q0.name],{revisedToolCall:X0,toolMessage:Y0}=Y(T,Q0,B0);if(X0&&(!w||T.type==="reject"||T.type==="respond"))D.push(X0);if(Y0)U.push(Y0)}if(J8.isInstance(G))G.tool_calls=D;let E=w?"model":void 0;return{messages:[G,...U],jumpTo:E}}}})}export{Yq as wf,lW as xf,mW as yf,Zq as zf,UO as Af,pW as Bf,dW as Cf,Wq as Df,cW as Ef,yX as Ff,iW as Gf,nW as Hf,sW as If,xX as Jf,aW as Kf,MO as Lf,bO as Mf,Jq as Nf,$q as Of,TO as Pf,yO as Qf,fO as Rf,Gq as Sf,gO as Tf,hO as Uf,rW as Vf,Kq as Wf,tW as Xf,Bq as Yf,Hq as Zf,uO as _f,eW as $f,Fq as ag,Lq as bg,dO as cg,zq as dg};