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
@@ -0,0 +1,228 @@
1
+ import{Mf as m9}from"./chunk-y524zd2h.js";import{Rf as i9,Wf as bX,Xf as KJ,Yf as ZJ,_f as WJ}from"./chunk-4eaqmt3c.js";import{bh as aU,ch as Z$}from"./chunk-9011y634.js";import{Kh as Q9,Xh as K8,dj as GJ,hi as h4,mi as A1,tk as MX,uk as h9}from"./chunk-v0e9bsvt.js";import{Dk as M8}from"./chunk-mv5m8bf4.js";import{Ok as P8,Qk as L}from"./chunk-qfa5v4n5.js";import{Rk as y}from"./chunk-0kfw8bwn.js";import{Al as QY,Bl as D,Sk as oX,Xk as P6,el as TX,fl as R8,gl as V,hl as rX,il as u,jl as l,kl as l8,ll as tX,ml as s,nl as M,ol as b,pl as e,ql as p,rl as m8,sl as p8,tl as i,ul as j0,vl as R,wl as a,xl as EX,yl as d8,zl as eX}from"./chunk-78ksrp8v.js";import{$l as G3,Wl as Z1,Yl as N}from"./chunk-4fs853nh.js";var q9=N((AY)=>{Object.defineProperty(AY,"__esModule",{value:!0});AY.regexpCode=AY.getEsmExportName=AY.getProperty=AY.safeStringify=AY.stringify=AY.strConcat=AY.addCodeArg=AY.str=AY._=AY.nil=AY._Code=AY.Name=AY.IDENTIFIER=AY._CodeOrName=void 0;class wQ{}AY._CodeOrName=wQ;AY.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class g1 extends wQ{constructor(Q){super();if(!AY.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}}}AY.Name=g1;class T0 extends wQ{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 g1)X[Y.str]=(X[Y.str]||0)+1;return X},{})}}AY._Code=T0;AY.nil=new T0("");function zY(Q,...X){let Y=[Q[0]],Z=0;while(Z<X.length)S6(Y,X[Z]),Y.push(Q[++Z]);return new T0(Y)}AY._=zY;var C6=new T0("+");function qY(Q,...X){let Y=[z9(Q[0])],Z=0;while(Z<X.length)Y.push(C6),S6(Y,X[Z]),Y.push(C6,z9(Q[++Z]));return v3(Y),new T0(Y)}AY.str=qY;function S6(Q,X){if(X instanceof T0)Q.push(...X._items);else if(X instanceof g1)Q.push(X);else Q.push(u3(X))}AY.addCodeArg=S6;function v3(Q){let X=1;while(X<Q.length-1){if(Q[X]===C6){let Y=g3(Q[X-1],Q[X+1]);if(Y!==void 0){Q.splice(X-1,3,Y);continue}Q[X++]="+"}X++}}function g3(Q,X){if(X==='""')return Q;if(Q==='""')return X;if(typeof Q=="string"){if(X instanceof g1||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 g1))return`"${Q}${X.slice(1)}`;return}function h3(Q,X){return X.emptyStr()?Q:Q.emptyStr()?X:qY`${Q}${X}`}AY.strConcat=h3;function u3(Q){return typeof Q=="number"||typeof Q=="boolean"||Q===null?Q:z9(Array.isArray(Q)?Q.join(","):Q)}function l3(Q){return new T0(z9(Q))}AY.stringify=l3;function z9(Q){return JSON.stringify(Q).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}AY.safeStringify=z9;function m3(Q){return typeof Q=="string"&&AY.IDENTIFIER.test(Q)?new T0(`.${Q}`):zY`[${Q}]`}AY.getProperty=m3;function p3(Q){if(typeof Q=="string"&&AY.IDENTIFIER.test(Q))return new T0(`${Q}`);throw Error(`CodeGen: invalid export name: ${Q}, use explicit $id name mapping`)}AY.getEsmExportName=p3;function d3(Q){return new T0(Q.toString())}AY.regexpCode=d3});var _6=N((bY)=>{Object.defineProperty(bY,"__esModule",{value:!0});bY.ValueScope=bY.ValueScopeName=bY.Scope=bY.varKinds=bY.UsedValueState=void 0;var U0=q9();class DY extends Error{constructor(Q){super(`CodeGen: "code" for ${Q} not defined`);this.value=Q.value}}var RQ;(function(Q){Q[Q.Started=0]="Started",Q[Q.Completed=1]="Completed"})(RQ||(bY.UsedValueState=RQ={}));bY.varKinds={const:new U0.Name("const"),let:new U0.Name("let"),var:new U0.Name("var")};class x6{constructor({prefixes:Q,parent:X}={}){this._names={},this._prefixes=Q,this._parent=X}toName(Q){return Q instanceof U0.Name?Q:this.name(Q)}name(Q){return new U0.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}}}bY.Scope=x6;class y6 extends U0.Name{constructor(Q,X){super(X);this.prefix=Q}setValue(Q,{property:X,itemIndex:Y}){this.value=Q,this.scopePath=U0._`.${new U0.Name(X)}[${Y}]`}}bY.ValueScopeName=y6;var ZK=U0._`\n`;class MY extends x6{constructor(Q){super(Q);this._values={},this._scope=Q.scope,this.opts={...Q,_n:Q.lines?ZK:U0.nil}}get(){return this._scope}name(Q){return new y6(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 U0._`${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=U0.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,RQ.Started);let B=X(K);if(B){let F=this.opts.es5?bY.varKinds.var:bY.varKinds.const;W=U0._`${W}${F} ${K} = ${B};${this.opts._n}`}else if(B=Z===null||Z===void 0?void 0:Z(K))W=U0._`${W}${B}${this.opts._n}`;else throw new DY(K);G.set(K,RQ.Completed)})}return W}}bY.ValueScope=MY});var _=N((z0)=>{Object.defineProperty(z0,"__esModule",{value:!0});z0.or=z0.and=z0.not=z0.CodeGen=z0.operators=z0.varKinds=z0.ValueScopeName=z0.ValueScope=z0.Scope=z0.Name=z0.regexpCode=z0.stringify=z0.getProperty=z0.nil=z0.strConcat=z0.str=z0._=void 0;var v=q9(),E0=_6(),o0=q9();Object.defineProperty(z0,"_",{enumerable:!0,get:function(){return o0._}});Object.defineProperty(z0,"str",{enumerable:!0,get:function(){return o0.str}});Object.defineProperty(z0,"strConcat",{enumerable:!0,get:function(){return o0.strConcat}});Object.defineProperty(z0,"nil",{enumerable:!0,get:function(){return o0.nil}});Object.defineProperty(z0,"getProperty",{enumerable:!0,get:function(){return o0.getProperty}});Object.defineProperty(z0,"stringify",{enumerable:!0,get:function(){return o0.stringify}});Object.defineProperty(z0,"regexpCode",{enumerable:!0,get:function(){return o0.regexpCode}});Object.defineProperty(z0,"Name",{enumerable:!0,get:function(){return o0.Name}});var SQ=_6();Object.defineProperty(z0,"Scope",{enumerable:!0,get:function(){return SQ.Scope}});Object.defineProperty(z0,"ValueScope",{enumerable:!0,get:function(){return SQ.ValueScope}});Object.defineProperty(z0,"ValueScopeName",{enumerable:!0,get:function(){return SQ.ValueScopeName}});Object.defineProperty(z0,"varKinds",{enumerable:!0,get:function(){return SQ.varKinds}});z0.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 r0{optimizeNodes(){return this}optimizeNames(Q,X){return this}}class NY extends r0{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=u1(this.rhs,Q,X);return this}get names(){return this.rhs instanceof v._CodeOrName?this.rhs.names:{}}}class g6 extends r0{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=u1(this.rhs,Q,X),this}get names(){let Q=this.lhs instanceof v.Name?{}:{...this.lhs.names};return CQ(Q,this.rhs)}}class RY extends g6{constructor(Q,X,Y,Z){super(Q,Y,Z);this.op=X}render({_n:Q}){return`${this.lhs} ${this.op}= ${this.rhs};`+Q}}class PY extends r0{constructor(Q){super();this.label=Q,this.names={}}render({_n:Q}){return`${this.label}:`+Q}}class IY extends r0{constructor(Q){super();this.label=Q,this.names={}}render({_n:Q}){return`break${this.label?` ${this.label}`:""};`+Q}}class TY extends r0{constructor(Q){super();this.error=Q}render({_n:Q}){return`throw ${this.error};`+Q}get names(){return this.error.names}}class EY extends r0{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=u1(this.code,Q,X),this}get names(){return this.code instanceof v._CodeOrName?this.code.names:{}}}class kQ extends r0{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;GK(Q,W.names),Y.splice(Z,1)}return Y.length>0?this:void 0}get names(){return this.nodes.reduce((Q,X)=>V1(Q,X.names),{})}}class t0 extends kQ{render(Q){return"{"+Q._n+super.render(Q)+"}"+Q._n}}class CY extends kQ{}class A9 extends t0{}A9.kind="else";class h0 extends t0{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(_Y(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=u1(this.condition,Q,X),this}get names(){let Q=super.names;if(CQ(Q,this.condition),this.else)V1(Q,this.else.names);return Q}}h0.kind="if";class h1 extends t0{}h1.kind="for";class SY extends h1{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=u1(this.iteration,Q,X),this}get names(){return V1(super.names,this.iteration.names)}}class kY extends h1{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=CQ(super.names,this.from);return CQ(Q,this.to)}}class f6 extends h1{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=u1(this.iterable,Q,X),this}get names(){return V1(super.names,this.iterable.names)}}class PQ extends t0{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)}}PQ.kind="func";class IQ extends kQ{render(Q){return"return "+super.render(Q)}}IQ.kind="return";class xY extends t0{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)V1(Q,this.catch.names);if(this.finally)V1(Q,this.finally.names);return Q}}class TQ extends t0{constructor(Q){super();this.error=Q}render(Q){return`catch(${this.error})`+super.render(Q)}}TQ.kind="catch";class EQ extends t0{render(Q){return"finally"+super.render(Q)}}EQ.kind="finally";class yY{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 CY]}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 NY(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 g6(Q,X,Y))}add(Q,X){return this._leafNode(new RY(Q,z0.operators.ADD,X))}code(Q){if(typeof Q=="function")Q();else if(Q!==v.nil)this._leafNode(new EY(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 SY(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 kY(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 f6("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 f6("in",Z,W,X),()=>Y(W))}endFor(){return this._endBlockNode(h1)}label(Q){return this._leafNode(new PY(Q))}break(Q){return this._leafNode(new IY(Q))}return(Q){let X=new IQ;if(this._blockNode(X),this.code(Q),X.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(IQ)}try(Q,X,Y){if(!X&&!Y)throw Error('CodeGen: "try" without "catch" and "finally"');let Z=new xY;if(this._blockNode(Z),this.code(Q),X){let W=this.name("e");this._currNode=Z.catch=new TQ(W),X(W)}if(Y)this._currNode=Z.finally=new EQ,this.code(Y);return this._endBlockNode(TQ,EQ)}throw(Q){return this._leafNode(new TY(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 PQ(Q,X,Y)),Z)this.code(Z).endFunc();return this}endFunc(){return this._endBlockNode(PQ)}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}}z0.CodeGen=yY;function V1(Q,X){for(let Y in X)Q[Y]=(Q[Y]||0)+(X[Y]||0);return Q}function CQ(Q,X){return X instanceof v._CodeOrName?V1(Q,X.names):Q}function u1(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 GK(Q,X){for(let Y in X)Q[Y]=(Q[Y]||0)-(X[Y]||0)}function _Y(Q){return typeof Q=="boolean"||typeof Q=="number"||Q===null?!Q:v._`!${v6(Q)}`}z0.not=_Y;var KK=fY(z0.operators.AND);function BK(...Q){return Q.reduce(KK)}z0.and=BK;var FK=fY(z0.operators.OR);function HK(...Q){return Q.reduce(FK)}z0.or=HK;function fY(Q){return(X,Y)=>X===v.nil?Y:Y===v.nil?X:v._`${v6(X)} ${Q} ${v6(Y)}`}function v6(Q){return Q instanceof v.Name?Q:v._`(${Q})`}});var g=N((cY)=>{Object.defineProperty(cY,"__esModule",{value:!0});cY.checkStrictMode=cY.getErrorPath=cY.Type=cY.useFunc=cY.setEvaluated=cY.evaluatedPropsToName=cY.mergeEvaluated=cY.eachItem=cY.unescapeJsonPointer=cY.escapeJsonPointer=cY.escapeFragment=cY.unescapeFragment=cY.schemaRefOrVal=cY.schemaHasRulesButRef=cY.schemaHasRules=cY.checkUnknownRules=cY.alwaysValidSchema=cY.toHash=void 0;var m=_(),UK=q9();function zK(Q){let X={};for(let Y of Q)X[Y]=!0;return X}cY.toHash=zK;function qK(Q,X){if(typeof X=="boolean")return X;if(Object.keys(X).length===0)return!0;return uY(Q,X),!lY(X,Q.self.RULES.all)}cY.alwaysValidSchema=qK;function uY(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])dY(Q,`unknown keyword: "${J}"`)}cY.checkUnknownRules=uY;function lY(Q,X){if(typeof Q=="boolean")return!Q;for(let Y in Q)if(X[Y])return!0;return!1}cY.schemaHasRules=lY;function AK(Q,X){if(typeof Q=="boolean")return!Q;for(let Y in Q)if(Y!=="$ref"&&X.all[Y])return!0;return!1}cY.schemaHasRulesButRef=AK;function jK({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)}`}cY.schemaRefOrVal=jK;function DK(Q){return mY(decodeURIComponent(Q))}cY.unescapeFragment=DK;function MK(Q){return encodeURIComponent(u6(Q))}cY.escapeFragment=MK;function u6(Q){if(typeof Q=="number")return`${Q}`;return Q.replace(/~/g,"~0").replace(/\//g,"~1")}cY.escapeJsonPointer=u6;function mY(Q){return Q.replace(/~1/g,"/").replace(/~0/g,"~")}cY.unescapeJsonPointer=mY;function bK(Q,X){if(Array.isArray(Q))for(let Y of Q)X(Y);else X(Q)}cY.eachItem=bK;function gY({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}}cY.mergeEvaluated={props:gY({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} || {}`),l6(Q,Y,X)}),mergeValues:(Q,X)=>Q===!0?!0:{...Q,...X},resultToName:pY}),items:gY({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 pY(Q,X){if(X===!0)return Q.var("props",!0);let Y=Q.var("props",m._`{}`);if(X!==void 0)l6(Q,Y,X);return Y}cY.evaluatedPropsToName=pY;function l6(Q,X,Y){Object.keys(Y).forEach((Z)=>Q.assign(m._`${X}${(0,m.getProperty)(Z)}`,!0))}cY.setEvaluated=l6;var hY={};function wK(Q,X){return Q.scopeValue("func",{ref:X,code:hY[X.code]||(hY[X.code]=new UK._Code(X.code))})}cY.useFunc=wK;var h6;(function(Q){Q[Q.Num=0]="Num",Q[Q.Str=1]="Str"})(h6||(cY.Type=h6={}));function NK(Q,X,Y){if(Q instanceof m.Name){let Z=X===h6.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():"/"+u6(Q)}cY.getErrorPath=NK;function dY(Q,X,Y=Q.opts.strictSchema){if(!Y)return;if(X=`strict mode: ${X}`,Y===!0)throw Error(X);Q.self.logger.warn(X)}cY.checkStrictMode=dY});var u0=N((nY)=>{Object.defineProperty(nY,"__esModule",{value:!0});var K0=_(),mK={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")};nY.default=mK});var j9=N((rY)=>{Object.defineProperty(rY,"__esModule",{value:!0});rY.extendErrors=rY.resetErrorsCount=rY.reportExtraError=rY.reportError=rY.keyword$DataError=rY.keywordError=void 0;var h=_(),yQ=g(),F0=u0();rY.keywordError={message:({keyword:Q})=>h.str`must pass "${Q}" keyword validation`};rY.keyword$DataError={message:({keyword:Q,schemaType:X})=>X?h.str`"${Q}" keyword must be ${X} ($data)`:h.str`"${Q}" keyword is invalid ($data)`};function dK(Q,X=rY.keywordError,Y,Z){let{it:W}=Q,{gen:J,compositeRule:$,allErrors:G}=W,K=oY(Q,X,Y);if(Z!==null&&Z!==void 0?Z:$||G)sY(J,K);else aY(W,h._`[${K}]`)}rY.reportError=dK;function cK(Q,X=rY.keywordError,Y){let{it:Z}=Q,{gen:W,compositeRule:J,allErrors:$}=Z,G=oY(Q,X,Y);if(sY(W,G),!(J||$))aY(Z,F0.default.vErrors)}rY.reportExtraError=cK;function iK(Q,X){Q.assign(F0.default.errors,X),Q.if(h._`${F0.default.vErrors} !== null`,()=>Q.if(X,()=>Q.assign(h._`${F0.default.vErrors}.length`,X),()=>Q.assign(F0.default.vErrors,null)))}rY.resetErrorsCount=iK;function nK({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,F0.default.errors,(G)=>{if(Q.const($,h._`${F0.default.vErrors}[${G}]`),Q.if(h._`${$}.instancePath === undefined`,()=>Q.assign(h._`${$}.instancePath`,(0,h.strConcat)(F0.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)})}rY.extendErrors=nK;function sY(Q,X){let Y=Q.const("err",X);Q.if(h._`${F0.default.vErrors} === null`,()=>Q.assign(F0.default.vErrors,h._`[${Y}]`),h._`${F0.default.vErrors}.push(${Y})`),Q.code(h._`${F0.default.errors}++`)}function aY(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 L1={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 oY(Q,X,Y){let{createErrors:Z}=Q.it;if(Z===!1)return h._`{}`;return sK(Q,X,Y)}function sK(Q,X,Y={}){let{gen:Z,it:W}=Q,J=[aK(W,Y),oK(Q,Y)];return rK(Q,X,J),Z.object(...J)}function aK({errorPath:Q},{instancePath:X}){let Y=X?h.str`${Q}${(0,yQ.getErrorPath)(X,yQ.Type.Str)}`:Q;return[F0.default.instancePath,(0,h.strConcat)(F0.default.instancePath,Y)]}function oK({keyword:Q,it:{errSchemaPath:X}},{schemaPath:Y,parentSchema:Z}){let W=Z?X:h.str`${X}/${Q}`;if(Y)W=h.str`${W}${(0,yQ.getErrorPath)(Y,yQ.Type.Str)}`;return[L1.schemaPath,W]}function rK(Q,{params:X,message:Y},Z){let{keyword:W,data:J,schemaValue:$,it:G}=Q,{opts:K,propertyName:B,topSchemaRef:F,schemaPath:H}=G;if(Z.push([L1.keyword,W],[L1.params,typeof X=="function"?X(Q):X||h._`{}`]),K.messages)Z.push([L1.message,typeof Y=="function"?Y(Q):Y]);if(K.verbose)Z.push([L1.schema,$],[L1.parentSchema,h._`${F}${H}`],[F0.default.data,J]);if(B)Z.push([L1.propertyName,B])}});var Y7=N((Q7)=>{Object.defineProperty(Q7,"__esModule",{value:!0});Q7.boolOrEmptySchema=Q7.topBoolOrEmptySchema=void 0;var YB=j9(),ZB=_(),WB=u0(),JB={message:"boolean schema is false"};function $B(Q){let{gen:X,schema:Y,validateName:Z}=Q;if(Y===!1)eY(Q,!1);else if(typeof Y=="object"&&Y.$async===!0)X.return(WB.default.data);else X.assign(ZB._`${Z}.errors`,null),X.return(!0)}Q7.topBoolOrEmptySchema=$B;function GB(Q,X){let{gen:Y,schema:Z}=Q;if(Z===!1)Y.var(X,!1),eY(Q);else Y.var(X,!0)}Q7.boolOrEmptySchema=GB;function eY(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,YB.reportError)(W,JB,void 0,X)}});var p6=N((Z7)=>{Object.defineProperty(Z7,"__esModule",{value:!0});Z7.getRules=Z7.isJSONType=void 0;var BB=["string","number","integer","boolean","null","object","array"],FB=new Set(BB);function HB(Q){return typeof Q=="string"&&FB.has(Q)}Z7.isJSONType=HB;function VB(){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:{}}}Z7.getRules=VB});var d6=N((G7)=>{Object.defineProperty(G7,"__esModule",{value:!0});G7.shouldUseRule=G7.shouldUseGroup=G7.schemaHasRulesForType=void 0;function OB({schema:Q,self:X},Y){let Z=X.RULES.types[Y];return Z&&Z!==!0&&J7(Q,Z)}G7.schemaHasRulesForType=OB;function J7(Q,X){return X.rules.some((Y)=>$7(Q,Y))}G7.shouldUseGroup=J7;function $7(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))}G7.shouldUseRule=$7});var D9=N((V7)=>{Object.defineProperty(V7,"__esModule",{value:!0});V7.reportTypeError=V7.checkDataTypes=V7.checkDataType=V7.coerceAndCheckDataType=V7.getJSONTypes=V7.getSchemaTypes=V7.DataType=void 0;var qB=p6(),AB=d6(),jB=j9(),x=_(),B7=g(),l1;(function(Q){Q[Q.Correct=0]="Correct",Q[Q.Wrong=1]="Wrong"})(l1||(V7.DataType=l1={}));function DB(Q){let X=F7(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}V7.getSchemaTypes=DB;function F7(Q){let X=Array.isArray(Q)?Q:Q?[Q]:[];if(X.every(qB.isJSONType))return X;throw Error("type must be JSONType or JSONType[]: "+X.join(","))}V7.getJSONTypes=F7;function MB(Q,X){let{gen:Y,data:Z,opts:W}=Q,J=bB(X,W.coerceTypes),$=X.length>0&&!(J.length===0&&X.length===1&&(0,AB.schemaHasRulesForType)(Q,X[0]));if($){let G=i6(X,Z,W.strictNumbers,l1.Wrong);Y.if(G,()=>{if(J.length)wB(Q,X,J);else n6(Q)})}return $}V7.coerceAndCheckDataType=MB;var H7=new Set(["string","number","integer","boolean","null"]);function bB(Q,X){return X?Q.filter((Y)=>H7.has(Y)||X==="array"&&Y==="array"):[]}function wB(Q,X,Y){let{gen:Z,data:W,opts:J}=Q,$=Z.let("dataType",x._`typeof ${W}`),G=Z.let("coerced",x._`undefined`);if(J.coerceTypes==="array")Z.if(x._`${$} == 'object' && Array.isArray(${W}) && ${W}.length == 1`,()=>Z.assign(W,x._`${W}[0]`).assign($,x._`typeof ${W}`).if(i6(X,W,J.strictNumbers),()=>Z.assign(G,W)));Z.if(x._`${G} !== undefined`);for(let B of Y)if(H7.has(B)||B==="array"&&J.coerceTypes==="array")K(B);Z.else(),n6(Q),Z.endIf(),Z.if(x._`${G} !== undefined`,()=>{Z.assign(W,G),NB(Q,G)});function K(B){switch(B){case"string":Z.elseIf(x._`${$} == "number" || ${$} == "boolean"`).assign(G,x._`"" + ${W}`).elseIf(x._`${W} === null`).assign(G,x._`""`);return;case"number":Z.elseIf(x._`${$} == "boolean" || ${W} === null
3
+ || (${$} == "string" && ${W} && ${W} == +${W})`).assign(G,x._`+${W}`);return;case"integer":Z.elseIf(x._`${$} === "boolean" || ${W} === null
4
+ || (${$} === "string" && ${W} && ${W} == +${W} && !(${W} % 1))`).assign(G,x._`+${W}`);return;case"boolean":Z.elseIf(x._`${W} === "false" || ${W} === 0 || ${W} === null`).assign(G,!1).elseIf(x._`${W} === "true" || ${W} === 1`).assign(G,!0);return;case"null":Z.elseIf(x._`${W} === "" || ${W} === 0 || ${W} === false`),Z.assign(G,null);return;case"array":Z.elseIf(x._`${$} === "string" || ${$} === "number"
5
+ || ${$} === "boolean" || ${W} === null`).assign(G,x._`[${W}]`)}}}function NB({gen:Q,parentData:X,parentDataProperty:Y},Z){Q.if(x._`${X} !== undefined`,()=>Q.assign(x._`${X}[${Y}]`,Z))}function c6(Q,X,Y,Z=l1.Correct){let W=Z===l1.Correct?x.operators.EQ:x.operators.NEQ,J;switch(Q){case"null":return x._`${X} ${W} null`;case"array":J=x._`Array.isArray(${X})`;break;case"object":J=x._`${X} && typeof ${X} == "object" && !Array.isArray(${X})`;break;case"integer":J=$(x._`!(${X} % 1) && !isNaN(${X})`);break;case"number":J=$();break;default:return x._`typeof ${X} ${W} ${Q}`}return Z===l1.Correct?J:(0,x.not)(J);function $(G=x.nil){return(0,x.and)(x._`typeof ${X} == "number"`,G,Y?x._`isFinite(${X})`:x.nil)}}V7.checkDataType=c6;function i6(Q,X,Y,Z){if(Q.length===1)return c6(Q[0],X,Y,Z);let W,J=(0,B7.toHash)(Q);if(J.array&&J.object){let $=x._`typeof ${X} != "object"`;W=J.null?$:x._`!${X} || ${$}`,delete J.null,delete J.array,delete J.object}else W=x.nil;if(J.number)delete J.integer;for(let $ in J)W=(0,x.and)(W,c6($,X,Y,Z));return W}V7.checkDataTypes=i6;var RB={message:({schema:Q})=>`must be ${Q}`,params:({schema:Q,schemaValue:X})=>typeof Q=="string"?x._`{type: ${Q}}`:x._`{type: ${X}}`};function n6(Q){let X=PB(Q);(0,jB.reportError)(X,RB)}V7.reportTypeError=n6;function PB(Q){let{gen:X,data:Y,schema:Z}=Q,W=(0,B7.schemaRefOrVal)(Q,Z,"type");return{gen:X,keyword:"type",data:Y,schema:Z.type,schemaCode:W,schemaValue:W,parentSchema:Z,params:{},it:Q}}});var q7=N((U7)=>{Object.defineProperty(U7,"__esModule",{value:!0});U7.assignDefaults=void 0;var m1=_(),xB=g();function yB(Q,X){let{properties:Y,items:Z}=Q.schema;if(X==="object"&&Y)for(let W in Y)O7(Q,W,Y[W].default);else if(X==="array"&&Array.isArray(Z))Z.forEach((W,J)=>O7(Q,J,W.default))}U7.assignDefaults=yB;function O7(Q,X,Y){let{gen:Z,compositeRule:W,data:J,opts:$}=Q;if(Y===void 0)return;let G=m1._`${J}${(0,m1.getProperty)(X)}`;if(W){(0,xB.checkStrictMode)(Q,`default is ignored for: ${G}`);return}let K=m1._`${G} === undefined`;if($.useDefaults==="empty")K=m1._`${K} || ${G} === null || ${G} === ""`;Z.if(K,m1._`${G} = ${(0,m1.stringify)(Y)}`)}});var w0=N((D7)=>{Object.defineProperty(D7,"__esModule",{value:!0});D7.validateUnion=D7.validateArray=D7.usePattern=D7.callValidateCode=D7.schemaProperties=D7.allSchemaProperties=D7.noPropertyInData=D7.propertyInData=D7.isOwnProperty=D7.hasPropFunc=D7.reportMissingProp=D7.checkMissingProp=D7.checkReportMissingProp=void 0;var d=_(),s6=g(),e0=u0(),_B=g();function fB(Q,X){let{gen:Y,data:Z,it:W}=Q;Y.if(o6(Y,Z,X,W.opts.ownProperties),()=>{Q.setParams({missingProperty:d._`${X}`},!0),Q.error()})}D7.checkReportMissingProp=fB;function vB({gen:Q,data:X,it:{opts:Y}},Z,W){return(0,d.or)(...Z.map((J)=>(0,d.and)(o6(Q,X,J,Y.ownProperties),d._`${W} = ${J}`)))}D7.checkMissingProp=vB;function gB(Q,X){Q.setParams({missingProperty:X},!0),Q.error()}D7.reportMissingProp=gB;function A7(Q){return Q.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:d._`Object.prototype.hasOwnProperty`})}D7.hasPropFunc=A7;function a6(Q,X,Y){return d._`${A7(Q)}.call(${X}, ${Y})`}D7.isOwnProperty=a6;function hB(Q,X,Y,Z){let W=d._`${X}${(0,d.getProperty)(Y)} !== undefined`;return Z?d._`${W} && ${a6(Q,X,Y)}`:W}D7.propertyInData=hB;function o6(Q,X,Y,Z){let W=d._`${X}${(0,d.getProperty)(Y)} === undefined`;return Z?(0,d.or)(W,(0,d.not)(a6(Q,X,Y))):W}D7.noPropertyInData=o6;function j7(Q){return Q?Object.keys(Q).filter((X)=>X!=="__proto__"):[]}D7.allSchemaProperties=j7;function uB(Q,X){return j7(X).filter((Y)=>!(0,s6.alwaysValidSchema)(Q,X[Y]))}D7.schemaProperties=uB;function lB({schemaCode:Q,data:X,it:{gen:Y,topSchemaRef:Z,schemaPath:W,errorPath:J},it:$},G,K,B){let F=B?d._`${Q}, ${X}, ${Z}${W}`:X,H=[[e0.default.instancePath,(0,d.strConcat)(e0.default.instancePath,J)],[e0.default.parentData,$.parentData],[e0.default.parentDataProperty,$.parentDataProperty],[e0.default.rootData,e0.default.rootData]];if($.opts.dynamicRef)H.push([e0.default.dynamicAnchors,e0.default.dynamicAnchors]);let O=d._`${F}, ${Y.object(...H)}`;return K!==d.nil?d._`${G}.call(${K}, ${O})`:d._`${G}(${O})`}D7.callValidateCode=lB;var mB=d._`new RegExp`;function pB({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"?mB:(0,_B.useFunc)(Q,W)}(${Y}, ${Z})`})}D7.usePattern=pB;function dB(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:s6.Type.Num},J),X.if((0,d.not)(J),G)})}}D7.validateArray=dB;function cB(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,s6.alwaysValidSchema)(W,K))&&!W.opts.unevaluated)return;let $=X.let("valid",!1),G=X.name("_valid");X.block(()=>Y.forEach((K,B)=>{let F=Q.subschema({keyword:Z,schemaProp:B,compositeRule:!0},G);if(X.assign($,d._`${$} || ${G}`),!Q.mergeValidEvaluated(F,G))X.if((0,d.not)($))})),Q.result($,()=>Q.reset(),()=>Q.error(!0))}D7.validateUnion=cB});var P7=N((N7)=>{Object.defineProperty(N7,"__esModule",{value:!0});N7.validateKeywordUsage=N7.validSchemaType=N7.funcKeywordCode=N7.macroKeywordCode=void 0;var H0=_(),O1=u0(),WF=w0(),JF=j9();function $F(Q,X){let{gen:Y,keyword:Z,schema:W,parentSchema:J,it:$}=Q,G=X.macro.call($.self,W,J,$),K=w7(Y,Z,G);if($.opts.validateSchema!==!1)$.self.validateSchema(G,!0);let B=Y.name("valid");Q.subschema({schema:G,schemaPath:H0.nil,errSchemaPath:`${$.errSchemaPath}/${Z}`,topSchemaRef:K,compositeRule:!0},B),Q.pass(B,()=>Q.error(!0))}N7.macroKeywordCode=$F;function GF(Q,X){var Y;let{gen:Z,keyword:W,schema:J,parentSchema:$,$data:G,it:K}=Q;BF(K,X);let B=!G&&X.compile?X.compile.call(K.self,J,$,K):X.validate,F=w7(Z,W,B),H=Z.let("valid");Q.block$data(H,O),Q.ok((Y=X.valid)!==null&&Y!==void 0?Y:H);function O(){if(X.errors===!1){if(U(),X.modifying)b7(Q);j(()=>Q.error())}else{let A=X.async?q():z();if(X.modifying)b7(Q);j(()=>KF(Q,A))}}function q(){let A=Z.let("ruleErrs",null);return Z.try(()=>U(H0._`await `),(w)=>Z.assign(H,!1).if(H0._`${w} instanceof ${K.ValidationError}`,()=>Z.assign(A,H0._`${w}.errors`),()=>Z.throw(w))),A}function z(){let A=H0._`${F}.errors`;return Z.assign(A,null),U(H0.nil),A}function U(A=X.async?H0._`await `:H0.nil){let w=K.opts.passContext?O1.default.this:O1.default.self,E=!(("compile"in X)&&!G||X.schema===!1);Z.assign(H,H0._`${A}${(0,WF.callValidateCode)(Q,F,w,E)}`,X.modifying)}function j(A){var w;Z.if((0,H0.not)((w=X.valid)!==null&&w!==void 0?w:H),A)}}N7.funcKeywordCode=GF;function b7(Q){let{gen:X,data:Y,it:Z}=Q;X.if(Z.parentData,()=>X.assign(Y,H0._`${Z.parentData}[${Z.parentDataProperty}]`))}function KF(Q,X){let{gen:Y}=Q;Y.if(H0._`Array.isArray(${X})`,()=>{Y.assign(O1.default.vErrors,H0._`${O1.default.vErrors} === null ? ${X} : ${O1.default.vErrors}.concat(${X})`).assign(O1.default.errors,H0._`${O1.default.vErrors}.length`),(0,JF.extendErrors)(Q)},()=>Q.error())}function BF({schemaEnv:Q},X){if(X.async&&!Q.$async)throw Error("async keyword in sync schema")}function w7(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,H0.stringify)(Y)})}function FF(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")}N7.validSchemaType=FF;function HF({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)}}}N7.validateKeywordUsage=HF});var C7=N((T7)=>{Object.defineProperty(T7,"__esModule",{value:!0});T7.extendSubschemaMode=T7.extendSubschemaData=T7.getSubschema=void 0;var y0=_(),I7=g();function UF(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:y0._`${Q.schemaPath}${(0,y0.getProperty)(X)}`,errSchemaPath:`${Q.errSchemaPath}/${X}`}:{schema:G[Y],schemaPath:y0._`${Q.schemaPath}${(0,y0.getProperty)(X)}${(0,y0.getProperty)(Y)}`,errSchemaPath:`${Q.errSchemaPath}/${X}/${(0,I7.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')}T7.getSubschema=UF;function zF(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:F,opts:H}=X,O=G.let("data",y0._`${X.data}${(0,y0.getProperty)(Y)}`,!0);K(O),Q.errorPath=y0.str`${B}${(0,I7.getErrorPath)(Y,Z,H.jsPropertySyntax)}`,Q.parentDataProperty=y0._`${Y}`,Q.dataPathArr=[...F,Q.parentDataProperty]}if(W!==void 0){let B=W instanceof y0.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]}}T7.extendSubschemaData=zF;function qF(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}T7.extendSubschemaMode=qF});var r6=N((Oj,S7)=>{S7.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 x7=N((Uj,k7)=>{var Q1=k7.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(){};_Q(X,Z,W,Q,"",Q)};Q1.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Q1.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Q1.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Q1.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 _Q(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 F in Z){var H=Z[F];if(Array.isArray(H)){if(F in Q1.arrayKeywords)for(var O=0;O<H.length;O++)_Q(Q,X,Y,H[O],W+"/"+F+"/"+O,J,W,F,Z,O)}else if(F in Q1.propsKeywords){if(H&&typeof H=="object")for(var q in H)_Q(Q,X,Y,H[q],W+"/"+F+"/"+DF(q),J,W,F,Z,q)}else if(F in Q1.keywords||Q.allKeys&&!(F in Q1.skipKeywords))_Q(Q,X,Y,H,W+"/"+F,J,W,F,Z)}Y(Z,W,J,$,G,K,B)}}function DF(Q){return Q.replace(/~/g,"~0").replace(/\//g,"~1")}});var M9=N((v7)=>{Object.defineProperty(v7,"__esModule",{value:!0});v7.getSchemaRefs=v7.resolveUrl=v7.normalizeId=v7._getFullPath=v7.getFullPath=v7.inlineRef=void 0;var MF=g(),bF=r6(),wF=x7(),NF=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RF(Q,X=!0){if(typeof Q=="boolean")return!0;if(X===!0)return!t6(Q);if(!X)return!1;return y7(Q)<=X}v7.inlineRef=RF;var PF=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function t6(Q){for(let X in Q){if(PF.has(X))return!0;let Y=Q[X];if(Array.isArray(Y)&&Y.some(t6))return!0;if(typeof Y=="object"&&t6(Y))return!0}return!1}function y7(Q){let X=0;for(let Y in Q){if(Y==="$ref")return 1/0;if(X++,NF.has(Y))continue;if(typeof Q[Y]=="object")(0,MF.eachItem)(Q[Y],(Z)=>X+=y7(Z));if(X===1/0)return 1/0}return X}function _7(Q,X="",Y){if(Y!==!1)X=p1(X);let Z=Q.parse(X);return f7(Q,Z)}v7.getFullPath=_7;function f7(Q,X){return Q.serialize(X).split("#")[0]+"#"}v7._getFullPath=f7;var IF=/#\/?$/;function p1(Q){return Q?Q.replace(IF,""):""}v7.normalizeId=p1;function TF(Q,X,Y){return Y=p1(Y),Q.resolve(X,Y)}v7.resolveUrl=TF;var EF=/^[a-z_][-a-z0-9._]*$/i;function CF(Q,X){if(typeof Q=="boolean")return{};let{schemaId:Y,uriResolver:Z}=this.opts,W=p1(Q[Y]||X),J={"":W},$=_7(Z,W,!1),G={},K=new Set;return wF(Q,{allKeys:!0},(H,O,q,z)=>{if(z===void 0)return;let U=$+O,j=J[z];if(typeof H[Y]=="string")j=A.call(this,H[Y]);w.call(this,H.$anchor),w.call(this,H.$dynamicAnchor),J[O]=j;function A(E){let I=this.opts.uriResolver.resolve;if(E=p1(j?I(j,E):E),K.has(E))throw F(E);K.add(E);let T=this.refs[E];if(typeof T=="string")T=this.refs[T];if(typeof T=="object")B(H,T.schema,E);else if(E!==p1(U))if(E[0]==="#")B(H,G[E],E),G[E]=H;else this.refs[E]=U;return E}function w(E){if(typeof E=="string"){if(!EF.test(E))throw Error(`invalid anchor "${E}"`);A.call(this,`#${E}`)}}}),G;function B(H,O,q){if(O!==void 0&&!bF(H,O))throw F(q)}function F(H){return Error(`reference "${H}" resolves to more than one schema`)}}v7.getSchemaRefs=CF});var N9=N((e7)=>{Object.defineProperty(e7,"__esModule",{value:!0});e7.getData=e7.KeywordCxt=e7.validateFunctionCode=void 0;var p7=Y7(),h7=D9(),Q4=d6(),fQ=D9(),fF=q7(),w9=P7(),e6=C7(),P=_(),k=u0(),vF=M9(),l0=g(),b9=j9();function gF(Q){if(i7(Q)){if(n7(Q),c7(Q)){lF(Q);return}}d7(Q,()=>(0,p7.topBoolOrEmptySchema)(Q))}e7.validateFunctionCode=gF;function d7({gen:Q,validateName:X,schema:Y,schemaEnv:Z,opts:W},J){if(W.code.es5)Q.func(X,P._`${k.default.data}, ${k.default.valCxt}`,Z.$async,()=>{Q.code(P._`"use strict"; ${u7(Y,W)}`),uF(Q,W),Q.code(J)});else Q.func(X,P._`${k.default.data}, ${hF(W)}`,Z.$async,()=>Q.code(u7(Y,W)).code(J))}function hF(Q){return P._`{${k.default.instancePath}="", ${k.default.parentData}, ${k.default.parentDataProperty}, ${k.default.rootData}=${k.default.data}${Q.dynamicRef?P._`, ${k.default.dynamicAnchors}={}`:P.nil}}={}`}function uF(Q,X){Q.if(k.default.valCxt,()=>{if(Q.var(k.default.instancePath,P._`${k.default.valCxt}.${k.default.instancePath}`),Q.var(k.default.parentData,P._`${k.default.valCxt}.${k.default.parentData}`),Q.var(k.default.parentDataProperty,P._`${k.default.valCxt}.${k.default.parentDataProperty}`),Q.var(k.default.rootData,P._`${k.default.valCxt}.${k.default.rootData}`),X.dynamicRef)Q.var(k.default.dynamicAnchors,P._`${k.default.valCxt}.${k.default.dynamicAnchors}`)},()=>{if(Q.var(k.default.instancePath,P._`""`),Q.var(k.default.parentData,P._`undefined`),Q.var(k.default.parentDataProperty,P._`undefined`),Q.var(k.default.rootData,k.default.data),X.dynamicRef)Q.var(k.default.dynamicAnchors,P._`{}`)})}function lF(Q){let{schema:X,opts:Y,gen:Z}=Q;d7(Q,()=>{if(Y.$comment&&X.$comment)a7(Q);if(iF(Q),Z.let(k.default.vErrors,null),Z.let(k.default.errors,0),Y.unevaluated)mF(Q);s7(Q),aF(Q)});return}function mF(Q){let{gen:X,validateName:Y}=Q;Q.evaluated=X.const("evaluated",P._`${Y}.evaluated`),X.if(P._`${Q.evaluated}.dynamicProps`,()=>X.assign(P._`${Q.evaluated}.props`,P._`undefined`)),X.if(P._`${Q.evaluated}.dynamicItems`,()=>X.assign(P._`${Q.evaluated}.items`,P._`undefined`))}function u7(Q,X){let Y=typeof Q=="object"&&Q[X.schemaId];return Y&&(X.code.source||X.code.process)?P._`/*# sourceURL=${Y} */`:P.nil}function pF(Q,X){if(i7(Q)){if(n7(Q),c7(Q)){dF(Q,X);return}}(0,p7.boolOrEmptySchema)(Q,X)}function c7({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 i7(Q){return typeof Q.schema!="boolean"}function dF(Q,X){let{schema:Y,gen:Z,opts:W}=Q;if(W.$comment&&Y.$comment)a7(Q);nF(Q),sF(Q);let J=Z.const("_errs",k.default.errors);s7(Q,J),Z.var(X,P._`${J} === ${k.default.errors}`)}function n7(Q){(0,l0.checkUnknownRules)(Q),cF(Q)}function s7(Q,X){if(Q.opts.jtd)return l7(Q,[],!1,X);let Y=(0,h7.getSchemaTypes)(Q.schema),Z=(0,h7.coerceAndCheckDataType)(Q,Y);l7(Q,Y,!Z,X)}function cF(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 iF(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 nF(Q){let X=Q.schema[Q.opts.schemaId];if(X)Q.baseId=(0,vF.resolveUrl)(Q.opts.uriResolver,Q.baseId,X)}function sF(Q){if(Q.schema.$async&&!Q.schemaEnv.$async)throw Error("async schema in sync schema")}function a7({gen:Q,schemaEnv:X,schema:Y,errSchemaPath:Z,opts:W}){let J=Y.$comment;if(W.$comment===!0)Q.code(P._`${k.default.self}.logger.log(${J})`);else if(typeof W.$comment=="function"){let $=P.str`${Z}/$comment`,G=Q.scopeValue("root",{ref:X.root});Q.code(P._`${k.default.self}.opts.$comment(${J}, ${$}, ${G}.schema)`)}}function aF(Q){let{gen:X,schemaEnv:Y,validateName:Z,ValidationError:W,opts:J}=Q;if(Y.$async)X.if(P._`${k.default.errors} === 0`,()=>X.return(k.default.data),()=>X.throw(P._`new ${W}(${k.default.vErrors})`));else{if(X.assign(P._`${Z}.errors`,k.default.vErrors),J.unevaluated)oF(Q);X.return(P._`${k.default.errors} === 0`)}}function oF({gen:Q,evaluated:X,props:Y,items:Z}){if(Y instanceof P.Name)Q.assign(P._`${X}.props`,Y);if(Z instanceof P.Name)Q.assign(P._`${X}.items`,Z)}function l7(Q,X,Y,Z){let{gen:W,schema:J,data:$,allErrors:G,opts:K,self:B}=Q,{RULES:F}=B;if(J.$ref&&(K.ignoreKeywordsWithRef||!(0,l0.schemaHasRulesButRef)(J,F))){W.block(()=>r7(Q,"$ref",F.all.$ref.definition));return}if(!K.jtd)rF(Q,X);W.block(()=>{for(let O of F.rules)H(O);H(F.post)});function H(O){if(!(0,Q4.shouldUseGroup)(J,O))return;if(O.type){if(W.if((0,fQ.checkDataType)(O.type,$,K.strictNumbers)),m7(Q,O),X.length===1&&X[0]===O.type&&Y)W.else(),(0,fQ.reportTypeError)(Q);W.endIf()}else m7(Q,O);if(!G)W.if(P._`${k.default.errors} === ${Z||0}`)}}function m7(Q,X){let{gen:Y,schema:Z,opts:{useDefaults:W}}=Q;if(W)(0,fF.assignDefaults)(Q,X.type);Y.block(()=>{for(let J of X.rules)if((0,Q4.shouldUseRule)(Z,J))r7(Q,J.keyword,J.definition,X.type)})}function rF(Q,X){if(Q.schemaEnv.meta||!Q.opts.strictTypes)return;if(tF(Q,X),!Q.opts.allowUnionTypes)eF(Q,X);QH(Q,Q.dataTypes)}function tF(Q,X){if(!X.length)return;if(!Q.dataTypes.length){Q.dataTypes=X;return}X.forEach((Y)=>{if(!o7(Q.dataTypes,Y))X4(Q,`type "${Y}" not allowed by context "${Q.dataTypes.join(",")}"`)}),YH(Q,X)}function eF(Q,X){if(X.length>1&&!(X.length===2&&X.includes("null")))X4(Q,"use allowUnionTypes to allow union type keyword")}function QH(Q,X){let Y=Q.self.RULES.all;for(let Z in Y){let W=Y[Z];if(typeof W=="object"&&(0,Q4.shouldUseRule)(Q.schema,W)){let{type:J}=W.definition;if(J.length&&!J.some(($)=>XH(X,$)))X4(Q,`missing type "${J.join(",")}" for keyword "${Z}"`)}}}function XH(Q,X){return Q.includes(X)||X==="number"&&Q.includes("integer")}function o7(Q,X){return Q.includes(X)||X==="integer"&&Q.includes("number")}function YH(Q,X){let Y=[];for(let Z of Q.dataTypes)if(o7(X,Z))Y.push(Z);else if(X.includes("integer")&&Z==="number")Y.push("integer");Q.dataTypes=Y}function X4(Q,X){let Y=Q.schemaEnv.baseId+Q.errSchemaPath;X+=` at "${Y}" (strictTypes)`,(0,l0.checkStrictMode)(Q,X,Q.opts.strictTypes)}class Y4{constructor(Q,X,Y){if((0,w9.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",t7(this.$data,Q));else if(this.schemaCode=this.schemaValue,!(0,w9.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,P.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,P.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(P._`${X} !== undefined && (${(0,P.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?b9.reportExtraError:b9.reportError)(this,this.def.error,X)}$dataError(){(0,b9.reportError)(this,this.def.$dataError||b9.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,b9.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=P.nil){this.gen.block(()=>{this.check$data(Q,Y),X()})}check$data(Q=P.nil,X=P.nil){if(!this.$data)return;let{gen:Y,schemaCode:Z,schemaType:W,def:J}=this;if(Y.if((0,P.or)(P._`${Z} === undefined`,X)),Q!==P.nil)Y.assign(Q,!0);if(W.length||J.validateSchema){if(Y.elseIf(this.invalid$data()),this.$dataError(),Q!==P.nil)Y.assign(Q,!1)}Y.else()}invalid$data(){let{gen:Q,schemaCode:X,schemaType:Y,def:Z,it:W}=this;return(0,P.or)(J(),$());function J(){if(Y.length){if(!(X instanceof P.Name))throw Error("ajv implementation error");let G=Array.isArray(Y)?Y:[Y];return P._`${(0,fQ.checkDataTypes)(G,X,W.opts.strictNumbers,fQ.DataType.Wrong)}`}return P.nil}function $(){if(Z.validateSchema){let G=Q.scopeValue("validate$data",{ref:Z.validateSchema});return P._`!${G}(${X})`}return P.nil}}subschema(Q,X){let Y=(0,e6.getSubschema)(this.it,Q);(0,e6.extendSubschemaData)(Y,this.it,Q),(0,e6.extendSubschemaMode)(Y,Q);let Z={...this.it,...Y,items:void 0,props:void 0};return pF(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,P.Name)),!0}}e7.KeywordCxt=Y4;function r7(Q,X,Y,Z){let W=new Y4(Q,Y,X);if("code"in Y)Y.code(W,Z);else if(W.$data&&Y.validate)(0,w9.funcKeywordCode)(W,Y);else if("macro"in Y)(0,w9.macroKeywordCode)(W,Y);else if(Y.compile||Y.validate)(0,w9.funcKeywordCode)(W,Y)}var ZH=/^\/(?:[^~]|~0|~1)*$/,WH=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function t7(Q,{dataLevel:X,dataNames:Y,dataPathArr:Z}){let W,J;if(Q==="")return k.default.rootData;if(Q[0]==="/"){if(!ZH.test(Q))throw Error(`Invalid JSON-pointer: ${Q}`);W=Q,J=k.default.rootData}else{let B=WH.exec(Q);if(!B)throw Error(`Invalid JSON-pointer: ${Q}`);let F=+B[1];if(W=B[2],W==="#"){if(F>=X)throw Error(K("property/index",F));return Z[X-F]}if(F>X)throw Error(K("data",F));if(J=Y[X-F],!W)return J}let $=J,G=W.split("/");for(let B of G)if(B)J=P._`${J}${(0,P.getProperty)((0,l0.unescapeJsonPointer)(B))}`,$=P._`${$} && ${J}`;return $;function K(B,F){return`Cannot access ${B} ${F} levels up, current level is ${X}`}}e7.getData=t7});var vQ=N((Y5)=>{Object.defineProperty(Y5,"__esModule",{value:!0});class X5 extends Error{constructor(Q){super("validation failed");this.errors=Q,this.ajv=this.validation=!0}}Y5.default=X5});var R9=N((W5)=>{Object.defineProperty(W5,"__esModule",{value:!0});var Z4=M9();class Z5 extends Error{constructor(Q,X,Y,Z){super(Z||`can't resolve reference ${Y} from id ${X}`);this.missingRef=(0,Z4.resolveUrl)(Q,X,Y),this.missingSchema=(0,Z4.normalizeId)((0,Z4.getFullPath)(Q,this.missingRef))}}W5.default=Z5});var hQ=N((G5)=>{Object.defineProperty(G5,"__esModule",{value:!0});G5.resolveSchema=G5.getCompilingSchema=G5.resolveRef=G5.compileSchema=G5.SchemaEnv=void 0;var C0=_(),BH=vQ(),U1=u0(),S0=M9(),J5=g(),FH=N9();class P9{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={}}}G5.SchemaEnv=P9;function J4(Q){let X=$5.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:BH.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:U1.default.data,parentData:U1.default.parentData,parentDataProperty:U1.default.parentDataProperty,dataNames:[U1.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},F;try{this._compilations.add(Q),(0,FH.validateFunctionCode)(B),$.optimize(this.opts.code.optimize);let H=$.toString();if(F=`${$.scopeRefs(U1.default.scope)}return ${H}`,this.opts.code.process)F=this.opts.code.process(F,Q);let q=Function(`${U1.default.self}`,`${U1.default.scope}`,F)(this,this.scope.get());if(this.scope.value(K,{ref:q}),q.errors=null,q.schema=Q.schema,q.schemaEnv=Q,Q.$async)q.$async=!0;if(this.opts.code.source===!0)q.source={validateName:K,validateCode:H,scopeValues:$._values};if(this.opts.unevaluated){let{props:z,items:U}=B;if(q.evaluated={props:z instanceof C0.Name?void 0:z,items:U instanceof C0.Name?void 0:U,dynamicProps:z instanceof C0.Name,dynamicItems:U instanceof C0.Name},q.source)q.source.evaluated=(0,C0.stringify)(q.evaluated)}return Q.validate=q,Q}catch(H){if(delete Q.validate,delete Q.validateName,F)this.logger.error("Error compiling schema, function code:",F);throw H}finally{this._compilations.delete(Q)}}G5.compileSchema=J4;function HH(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=OH.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 P9({schema:$,schemaId:G,root:Q,baseId:X})}if(J===void 0)return;return Q.refs[Y]=VH.call(this,J)}G5.resolveRef=HH;function VH(Q){if((0,S0.inlineRef)(Q.schema,this.opts.inlineRefs))return Q.schema;return Q.validate?Q:J4.call(this,Q)}function $5(Q){for(let X of this._compilations)if(LH(X,Q))return X}G5.getCompilingSchema=$5;function LH(Q,X){return Q.schema===X.schema&&Q.root===X.root&&Q.baseId===X.baseId}function OH(Q,X){let Y;while(typeof(Y=this.refs[X])=="string")X=Y;return Y||this.schemas[X]||gQ.call(this,Q,X)}function gQ(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 W4.call(this,Y,Q);let J=(0,S0.normalizeId)(Z),$=this.refs[J]||this.schemas[J];if(typeof $=="string"){let G=gQ.call(this,Q,$);if(typeof(G===null||G===void 0?void 0:G.schema)!=="object")return;return W4.call(this,Y,G)}if(typeof($===null||$===void 0?void 0:$.schema)!=="object")return;if(!$.validate)J4.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 P9({schema:G,schemaId:K,root:Q,baseId:W})}return W4.call(this,Y,$)}G5.resolveSchema=gQ;var UH=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function W4(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,J5.unescapeFragment)(G)];if(K===void 0)return;Y=K;let B=typeof Y==="object"&&Y[this.opts.schemaId];if(!UH.has(G)&&B)X=(0,S0.resolveUrl)(this.opts.uriResolver,X,B)}let J;if(typeof Y!="boolean"&&Y.$ref&&!(0,J5.schemaHasRulesButRef)(Y,this.RULES)){let G=(0,S0.resolveUrl)(this.opts.uriResolver,X,Y.$ref);J=gQ.call(this,Z,G)}let{schemaId:$}=this.opts;if(J=J||new P9({schema:Y,schemaId:$,root:Z,baseId:X}),J.schema!==J.root.schema)return J;return}});var B5=N((Mj,DH)=>{DH.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 G4=N((bj,L5)=>{var MH=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),H5=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 $4(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 bH=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function F5(Q){return Q.length=0,!0}function wH(Q,X,Y){if(Q.length){let Z=$4(Q);if(Z!=="")X.push(Z);else return Y.error=!0,!1;Q.length=0}return!0}function NH(Q){let X=0,Y={error:!1,address:"",zone:""},Z=[],W=[],J=!1,$=!1,G=wH;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=F5}else{W.push(B);continue}}if(W.length)if(G===F5)Y.zone=W.join("");else if($)Z.push(W.join(""));else Z.push($4(W));return Y.address=Z.join(""),Y}function V5(Q){if(RH(Q,":")<2)return{host:Q,isIPV6:!1};let X=NH(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 RH(Q,X){let Y=0;for(let Z=0;Z<Q.length;Z++)if(Q[Z]===X)Y++;return Y}function PH(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 IH(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 TH(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(!H5(Y)){let Z=V5(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}L5.exports={nonSimpleDomain:bH,recomposeAuthority:TH,normalizeComponentEncoding:IH,removeDotSegments:PH,isIPv4:H5,isUUID:MH,normalizeIPv6:V5,stringArrayToHexStripped:$4}});var A5=N((wj,q5)=>{var{isUUID:EH}=G4(),CH=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,SH=["http","https","ws","wss","urn","urn:uuid"];function kH(Q){return SH.indexOf(Q)!==-1}function K4(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 O5(Q){if(!Q.host)Q.error=Q.error||"HTTP URIs must have a host.";return Q}function U5(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 xH(Q){return Q.secure=K4(Q),Q.resourceName=(Q.path||"/")+(Q.query?"?"+Q.query:""),Q.path=void 0,Q.query=void 0,Q}function yH(Q){if(Q.port===(K4(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 _H(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=B4(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 fH(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=B4(W);if(J)Q=J.serialize(Q,X);let $=Q,G=Q.nss;return $.path=`${Z||X.nid}:${G}`,X.skipEscape=!0,$}function vH(Q,X){let Y=Q;if(Y.uuid=Y.nss,Y.nss=void 0,!X.tolerant&&(!Y.uuid||!EH(Y.uuid)))Y.error=Y.error||"UUID is not valid.";return Y}function gH(Q){let X=Q;return X.nss=(Q.uuid||"").toLowerCase(),X}var z5={scheme:"http",domainHost:!0,parse:O5,serialize:U5},hH={scheme:"https",domainHost:z5.domainHost,parse:O5,serialize:U5},uQ={scheme:"ws",domainHost:!0,parse:xH,serialize:yH},uH={scheme:"wss",domainHost:uQ.domainHost,parse:uQ.parse,serialize:uQ.serialize},lH={scheme:"urn",parse:_H,serialize:fH,skipNormalize:!0},mH={scheme:"urn:uuid",parse:vH,serialize:gH,skipNormalize:!0},lQ={http:z5,https:hH,ws:uQ,wss:uH,urn:lH,"urn:uuid":mH};Object.setPrototypeOf(lQ,null);function B4(Q){return Q&&(lQ[Q]||lQ[Q.toLowerCase()])||void 0}q5.exports={wsIsSecure:K4,SCHEMES:lQ,isValidSchemeName:kH,getSchemeHandler:B4}});var M5=N((Nj,pQ)=>{var{normalizeIPv6:pH,removeDotSegments:I9,recomposeAuthority:dH,normalizeComponentEncoding:mQ,isIPv4:cH,nonSimpleDomain:iH}=G4(),{SCHEMES:nH,getSchemeHandler:j5}=A5();function sH(Q,X){if(typeof Q==="string")Q=_0(m0(Q,X),X);else if(typeof Q==="object")Q=m0(_0(Q,X),X);return Q}function aH(Q,X,Y){let Z=Y?Object.assign({scheme:"null"},Y):{scheme:"null"},W=D5(m0(Q,Z),m0(X,Z),Z,!0);return Z.skipEscape=!0,_0(W,Z)}function D5(Q,X,Y,Z){let W={};if(!Z)Q=m0(_0(Q,Y),Y),X=m0(_0(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=I9(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=I9(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=I9(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=I9(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 oH(Q,X,Y){if(typeof Q==="string")Q=unescape(Q),Q=_0(mQ(m0(Q,Y),!0),{...Y,skipEscape:!0});else if(typeof Q==="object")Q=_0(mQ(Q,!0),{...Y,skipEscape:!0});if(typeof X==="string")X=unescape(X),X=_0(mQ(m0(X,Y),!0),{...Y,skipEscape:!0});else if(typeof X==="object")X=_0(mQ(X,!0),{...Y,skipEscape:!0});return Q.toLowerCase()===X.toLowerCase()}function _0(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=j5(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 $=dH(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=I9(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 rH=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\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(rH);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(cH(Z.host)===!1){let K=pH(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 $=j5(Y.scheme||Z.scheme);if(!Y.unicodeSupport&&(!$||!$.unicodeSupport)){if(Z.host&&(Y.domainHost||$&&$.domainHost)&&W===!1&&iH(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 F4={SCHEMES:nH,normalize:sH,resolve:aH,resolveComponent:D5,equal:oH,serialize:_0,parse:m0};pQ.exports=F4;pQ.exports.default=F4;pQ.exports.fastUri=F4});var N5=N((w5)=>{Object.defineProperty(w5,"__esModule",{value:!0});var b5=M5();b5.code='require("ajv/dist/runtime/uri").default';w5.default=b5});var k5=N((p0)=>{Object.defineProperty(p0,"__esModule",{value:!0});p0.CodeGen=p0.Name=p0.nil=p0.stringify=p0.str=p0._=p0.KeywordCxt=void 0;var eH=N9();Object.defineProperty(p0,"KeywordCxt",{enumerable:!0,get:function(){return eH.KeywordCxt}});var d1=_();Object.defineProperty(p0,"_",{enumerable:!0,get:function(){return d1._}});Object.defineProperty(p0,"str",{enumerable:!0,get:function(){return d1.str}});Object.defineProperty(p0,"stringify",{enumerable:!0,get:function(){return d1.stringify}});Object.defineProperty(p0,"nil",{enumerable:!0,get:function(){return d1.nil}});Object.defineProperty(p0,"Name",{enumerable:!0,get:function(){return d1.Name}});Object.defineProperty(p0,"CodeGen",{enumerable:!0,get:function(){return d1.CodeGen}});var QV=vQ(),E5=R9(),XV=p6(),T9=hQ(),YV=_(),E9=M9(),dQ=D9(),V4=g(),R5=B5(),ZV=N5(),C5=(Q,X)=>new RegExp(Q,X);C5.code="new RegExp";var WV=["removeAdditional","useDefaults","coerceTypes"],JV=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),$V={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."},GV={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},P5=200;function KV(Q){var X,Y,Z,W,J,$,G,K,B,F,H,O,q,z,U,j,A,w,E,I,T,Q0,B0,X0,Y0;let r1=Q.strict,F8=(X=Q.code)===null||X===void 0?void 0:X.optimize,p4=F8===!0||F8===void 0?1:F8||0,d4=(Z=(Y=Q.code)===null||Y===void 0?void 0:Y.regExp)!==null&&Z!==void 0?Z:C5,HJ=(W=Q.uriResolver)!==null&&W!==void 0?W:ZV.default;return{strictSchema:($=(J=Q.strictSchema)!==null&&J!==void 0?J:r1)!==null&&$!==void 0?$:!0,strictNumbers:(K=(G=Q.strictNumbers)!==null&&G!==void 0?G:r1)!==null&&K!==void 0?K:!0,strictTypes:(F=(B=Q.strictTypes)!==null&&B!==void 0?B:r1)!==null&&F!==void 0?F:"log",strictTuples:(O=(H=Q.strictTuples)!==null&&H!==void 0?H:r1)!==null&&O!==void 0?O:"log",strictRequired:(z=(q=Q.strictRequired)!==null&&q!==void 0?q:r1)!==null&&z!==void 0?z:!1,code:Q.code?{...Q.code,optimize:p4,regExp:d4}:{optimize:p4,regExp:d4},loopRequired:(U=Q.loopRequired)!==null&&U!==void 0?U:P5,loopEnum:(j=Q.loopEnum)!==null&&j!==void 0?j:P5,meta:(A=Q.meta)!==null&&A!==void 0?A:!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:HJ}}class cQ{constructor(Q={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,Q=this.opts={...Q,...KV(Q)};let{es5:X,lines:Y}=this.opts.code;this.scope=new YV.ValueScope({scope:{},prefixes:JV,es5:X,lines:Y}),this.logger=OV(Q.logger);let Z=Q.validateFormats;if(Q.validateFormats=!1,this.RULES=(0,XV.getRules)(),I5.call(this,$V,Q,"NOT SUPPORTED"),I5.call(this,GV,Q,"DEPRECATED","warn"),this._metaOpts=VV.call(this),Q.formats)FV.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),Q.keywords)HV.call(this,Q.keywords);if(typeof Q.meta=="object")this.addMetaSchema(Q.meta);BV.call(this),Q.validateFormats=Z}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:Q,meta:X,schemaId:Y}=this.opts,Z=R5;if(Y==="id")Z={...R5},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,F){await W.call(this,B.$schema);let H=this._addSchema(B,F);return H.validate||J.call(this,H)}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(F){if(!(F instanceof E5.default))throw F;return $.call(this,F),await G.call(this,F.missingSchema),J.call(this,B)}}function $({missingSchema:B,missingRef:F}){if(this.refs[B])throw Error(`AnySchema ${B} is loaded but ${F} cannot be resolved`)}async function G(B){let F=await K.call(this,B);if(!this.refs[B])await W.call(this,F.$schema);if(!this.refs[B])this.addSchema(F,B,X)}async function K(B){let F=this._loading[B];if(F)return F;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,E9.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=T5.call(this,Q))=="string")Q=X;if(X===void 0){let{schemaId:Y}=this.opts,Z=new T9.SchemaEnv({schema:{},schemaId:Y});if(X=T9.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=T5.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,E9.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(zV.call(this,Y,X),!X)return(0,V4.eachItem)(Y,(W)=>H4.call(this,W)),this;AV.call(this,X);let Z={...X,type:(0,dQ.getJSONTypes)(X.type),schemaType:(0,dQ.getJSONTypes)(X.schemaType)};return(0,V4.eachItem)(Y,Z.type.length===0?(W)=>H4.call(this,W,Z):(W)=>Z.type.forEach((J)=>H4.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[$]=S5(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,E9.normalizeId)(J||Y);let K=E9.getSchemaRefs.call(this,Q,Y);if(G=new T9.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 T9.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{T9.compileSchema.call(this,Q)}finally{this.opts=X}}}cQ.ValidationError=QV.default;cQ.MissingRefError=E5.default;p0.default=cQ;function I5(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 T5(Q){return Q=(0,E9.normalizeId)(Q),this.schemas[Q]||this.refs[Q]}function BV(){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 FV(){for(let Q in this.opts.formats){let X=this.opts.formats[Q];if(X)this.addFormat(Q,X)}}function HV(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 VV(){let Q={...this.opts};for(let X of WV)delete Q[X];return Q}var LV={log(){},warn(){},error(){}};function OV(Q){if(Q===!1)return LV;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 UV=/^[a-z_$][a-z0-9_$:-]*$/i;function zV(Q,X){let{RULES:Y}=this;if((0,V4.eachItem)(Q,(Z)=>{if(Y.keywords[Z])throw Error(`Keyword ${Z} is already defined`);if(!UV.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 H4(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,dQ.getJSONTypes)(X.type),schemaType:(0,dQ.getJSONTypes)(X.schemaType)}};if(X.before)qV.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 qV(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 AV(Q){let{metaSchema:X}=Q;if(X===void 0)return;if(Q.$data&&this.opts.$data)X=S5(X);Q.validateSchema=this.compile(X,!0)}var jV={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function S5(Q){return{anyOf:[Q,jV]}}});var y5=N((x5)=>{Object.defineProperty(x5,"__esModule",{value:!0});var bV={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};x5.default=bV});var u5=N((g5)=>{Object.defineProperty(g5,"__esModule",{value:!0});g5.callRef=g5.getValidate=void 0;var NV=R9(),_5=w0(),q0=_(),c1=u0(),f5=hQ(),iQ=g(),RV={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 H();let F=f5.resolveRef.call(K,B,W,Y);if(F===void 0)throw new NV.default(Z.opts.uriResolver,W,Y);if(F instanceof f5.SchemaEnv)return O(F);return q(F);function H(){if(J===B)return nQ(Q,$,J,J.$async);let z=X.scopeValue("root",{ref:B});return nQ(Q,q0._`${z}.validate`,B,B.$async)}function O(z){let U=v5(Q,z);nQ(Q,U,z,z.$async)}function q(z){let U=X.scopeValue("schema",G.code.source===!0?{ref:z,code:(0,q0.stringify)(z)}:{ref:z}),j=X.name("valid"),A=Q.subschema({schema:z,dataTypes:[],schemaPath:q0.nil,topSchemaRef:U,errSchemaPath:Y},j);Q.mergeEvaluated(A),Q.ok(j)}}};function v5(Q,X){let{gen:Y}=Q;return X.validate?Y.scopeValue("validate",{ref:X.validate}):q0._`${Y.scopeValue("wrapper",{ref:X})}.validate`}g5.getValidate=v5;function nQ(Q,X,Y,Z){let{gen:W,it:J}=Q,{allErrors:$,schemaEnv:G,opts:K}=J,B=K.passContext?c1.default.this:q0.nil;if(Z)F();else H();function F(){if(!G.$async)throw Error("async schema referenced by sync schema");let z=W.let("valid");W.try(()=>{if(W.code(q0._`await ${(0,_5.callValidateCode)(Q,X,B)}`),q(X),!$)W.assign(z,!0)},(U)=>{if(W.if(q0._`!(${U} instanceof ${J.ValidationError})`,()=>W.throw(U)),O(U),!$)W.assign(z,!1)}),Q.ok(z)}function H(){Q.result((0,_5.callValidateCode)(Q,X,B),()=>q(X),()=>O(X))}function O(z){let U=q0._`${z}.errors`;W.assign(c1.default.vErrors,q0._`${c1.default.vErrors} === null ? ${U} : ${c1.default.vErrors}.concat(${U})`),W.assign(c1.default.errors,q0._`${c1.default.vErrors}.length`)}function q(z){var U;if(!J.opts.unevaluated)return;let j=(U=Y===null||Y===void 0?void 0:Y.validate)===null||U===void 0?void 0:U.evaluated;if(J.props!==!0)if(j&&!j.dynamicProps){if(j.props!==void 0)J.props=iQ.mergeEvaluated.props(W,j.props,J.props)}else{let A=W.var("props",q0._`${z}.evaluated.props`);J.props=iQ.mergeEvaluated.props(W,A,J.props,q0.Name)}if(J.items!==!0)if(j&&!j.dynamicItems){if(j.items!==void 0)J.items=iQ.mergeEvaluated.items(W,j.items,J.items)}else{let A=W.var("items",q0._`${z}.evaluated.items`);J.items=iQ.mergeEvaluated.items(W,A,J.items,q0.Name)}}}g5.callRef=nQ;g5.default=RV});var m5=N((l5)=>{Object.defineProperty(l5,"__esModule",{value:!0});var TV=y5(),EV=u5(),CV=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",TV.default,EV.default];l5.default=CV});var d5=N((p5)=>{Object.defineProperty(p5,"__esModule",{value:!0});var sQ=_(),X1=sQ.operators,aQ={maximum:{okStr:"<=",ok:X1.LTE,fail:X1.GT},minimum:{okStr:">=",ok:X1.GTE,fail:X1.LT},exclusiveMaximum:{okStr:"<",ok:X1.LT,fail:X1.GTE},exclusiveMinimum:{okStr:">",ok:X1.GT,fail:X1.LTE}},kV={message:({keyword:Q,schemaCode:X})=>sQ.str`must be ${aQ[Q].okStr} ${X}`,params:({keyword:Q,schemaCode:X})=>sQ._`{comparison: ${aQ[Q].okStr}, limit: ${X}}`},xV={keyword:Object.keys(aQ),type:"number",schemaType:"number",$data:!0,error:kV,code(Q){let{keyword:X,data:Y,schemaCode:Z}=Q;Q.fail$data(sQ._`${Y} ${aQ[X].fail} ${Z} || isNaN(${Y})`)}};p5.default=xV});var i5=N((c5)=>{Object.defineProperty(c5,"__esModule",{value:!0});var C9=_(),_V={message:({schemaCode:Q})=>C9.str`must be multiple of ${Q}`,params:({schemaCode:Q})=>C9._`{multipleOf: ${Q}}`},fV={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:_V,code(Q){let{gen:X,data:Y,schemaCode:Z,it:W}=Q,J=W.opts.multipleOfPrecision,$=X.let("res"),G=J?C9._`Math.abs(Math.round(${$}) - ${$}) > 1e-${J}`:C9._`${$} !== parseInt(${$})`;Q.fail$data(C9._`(${Z} === 0 || (${$} = ${Y}/${Z}, ${G}))`)}};c5.default=fV});var a5=N((s5)=>{Object.defineProperty(s5,"__esModule",{value:!0});function n5(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}s5.default=n5;n5.code='require("ajv/dist/runtime/ucs2length").default'});var r5=N((o5)=>{Object.defineProperty(o5,"__esModule",{value:!0});var z1=_(),hV=g(),uV=a5(),lV={message({keyword:Q,schemaCode:X}){let Y=Q==="maxLength"?"more":"fewer";return z1.str`must NOT have ${Y} than ${X} characters`},params:({schemaCode:Q})=>z1._`{limit: ${Q}}`},mV={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:lV,code(Q){let{keyword:X,data:Y,schemaCode:Z,it:W}=Q,J=X==="maxLength"?z1.operators.GT:z1.operators.LT,$=W.opts.unicode===!1?z1._`${Y}.length`:z1._`${(0,hV.useFunc)(Q.gen,uV.default)}(${Y})`;Q.fail$data(z1._`${$} ${J} ${Z}`)}};o5.default=mV});var e5=N((t5)=>{Object.defineProperty(t5,"__esModule",{value:!0});var dV=w0(),cV=g(),i1=_(),iV={message:({schemaCode:Q})=>i1.str`must match pattern "${Q}"`,params:({schemaCode:Q})=>i1._`{pattern: ${Q}}`},nV={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:iV,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"?i1._`new RegExp`:(0,cV.useFunc)(X,K),F=X.let("valid");X.try(()=>X.assign(F,i1._`${B}(${J}, ${G}).test(${Y})`),()=>X.assign(F,!1)),Q.fail$data(i1._`!${F}`)}else{let K=(0,dV.usePattern)(Q,W);Q.fail$data(i1._`!${K}.test(${Y})`)}}};t5.default=nV});var XZ=N((QZ)=>{Object.defineProperty(QZ,"__esModule",{value:!0});var S9=_(),aV={message({keyword:Q,schemaCode:X}){let Y=Q==="maxProperties"?"more":"fewer";return S9.str`must NOT have ${Y} than ${X} properties`},params:({schemaCode:Q})=>S9._`{limit: ${Q}}`},oV={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:aV,code(Q){let{keyword:X,data:Y,schemaCode:Z}=Q,W=X==="maxProperties"?S9.operators.GT:S9.operators.LT;Q.fail$data(S9._`Object.keys(${Y}).length ${W} ${Z}`)}};QZ.default=oV});var ZZ=N((YZ)=>{Object.defineProperty(YZ,"__esModule",{value:!0});var k9=w0(),x9=_(),tV=g(),eV={message:({params:{missingProperty:Q}})=>x9.str`must have required property '${Q}'`,params:({params:{missingProperty:Q}})=>x9._`{missingProperty: ${Q}}`},QL={keyword:"required",type:"object",schemaType:"array",$data:!0,error:eV,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 F();if(G.strictRequired){let q=Q.parentSchema.properties,{definedProperties:z}=Q.it;for(let U of Y)if((q===null||q===void 0?void 0:q[U])===void 0&&!z.has(U)){let j=$.schemaEnv.baseId+$.errSchemaPath,A=`required property "${U}" is not defined at "${j}" (strictRequired)`;(0,tV.checkStrictMode)($,A,$.opts.strictRequired)}}function B(){if(K||J)Q.block$data(x9.nil,H);else for(let q of Y)(0,k9.checkReportMissingProp)(Q,q)}function F(){let q=X.let("missing");if(K||J){let z=X.let("valid",!0);Q.block$data(z,()=>O(q,z)),Q.ok(z)}else X.if((0,k9.checkMissingProp)(Q,Y,q)),(0,k9.reportMissingProp)(Q,q),X.else()}function H(){X.forOf("prop",Z,(q)=>{Q.setParams({missingProperty:q}),X.if((0,k9.noPropertyInData)(X,W,q,G.ownProperties),()=>Q.error())})}function O(q,z){Q.setParams({missingProperty:q}),X.forOf(q,Z,()=>{X.assign(z,(0,k9.propertyInData)(X,W,q,G.ownProperties)),X.if((0,x9.not)(z),()=>{Q.error(),X.break()})},x9.nil)}}};YZ.default=QL});var JZ=N((WZ)=>{Object.defineProperty(WZ,"__esModule",{value:!0});var y9=_(),YL={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}}`},ZL={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:YL,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}`)}};WZ.default=ZL});var oQ=N((GZ)=>{Object.defineProperty(GZ,"__esModule",{value:!0});var $Z=r6();$Z.code='require("ajv/dist/runtime/equal").default';GZ.default=$Z});var BZ=N((KZ)=>{Object.defineProperty(KZ,"__esModule",{value:!0});var L4=D9(),G0=_(),$L=g(),GL=oQ(),KL={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}}`},BL={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:KL,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,L4.getSchemaTypes)(J.items):[];Q.block$data(K,F,G0._`${$} === false`),Q.ok(K);function F(){let z=X.let("i",G0._`${Y}.length`),U=X.let("j");Q.setParams({i:z,j:U}),X.assign(K,!0),X.if(G0._`${z} > 1`,()=>(H()?O:q)(z,U))}function H(){return B.length>0&&!B.some((z)=>z==="object"||z==="array")}function O(z,U){let j=X.name("item"),A=(0,L4.checkDataTypes)(B,j,G.opts.strictNumbers,L4.DataType.Wrong),w=X.const("indices",G0._`{}`);X.for(G0._`;${z}--;`,()=>{if(X.let(j,G0._`${Y}[${z}]`),X.if(A,G0._`continue`),B.length>1)X.if(G0._`typeof ${j} == "string"`,G0._`${j} += "_"`);X.if(G0._`typeof ${w}[${j}] == "number"`,()=>{X.assign(U,G0._`${w}[${j}]`),Q.error(),X.assign(K,!1).break()}).code(G0._`${w}[${j}] = ${z}`)})}function q(z,U){let j=(0,$L.useFunc)(X,GL.default),A=X.name("outer");X.label(A).for(G0._`;${z}--;`,()=>X.for(G0._`${U} = ${z}; ${U}--;`,()=>X.if(G0._`${j}(${Y}[${z}], ${Y}[${U}])`,()=>{Q.error(),X.assign(K,!1).break(A)})))}}};KZ.default=BL});var HZ=N((FZ)=>{Object.defineProperty(FZ,"__esModule",{value:!0});var O4=_(),HL=g(),VL=oQ(),LL={message:"must be equal to constant",params:({schemaCode:Q})=>O4._`{allowedValue: ${Q}}`},OL={keyword:"const",$data:!0,error:LL,code(Q){let{gen:X,data:Y,$data:Z,schemaCode:W,schema:J}=Q;if(Z||J&&typeof J=="object")Q.fail$data(O4._`!${(0,HL.useFunc)(X,VL.default)}(${Y}, ${W})`);else Q.fail(O4._`${J} !== ${Y}`)}};FZ.default=OL});var LZ=N((VZ)=>{Object.defineProperty(VZ,"__esModule",{value:!0});var _9=_(),zL=g(),qL=oQ(),AL={message:"must be equal to one of the allowed values",params:({schemaCode:Q})=>_9._`{allowedValues: ${Q}}`},jL={keyword:"enum",schemaType:"array",$data:!0,error:AL,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,zL.useFunc)(X,qL.default),F;if(G||Z)F=X.let("valid"),Q.block$data(F,H);else{if(!Array.isArray(W))throw Error("ajv implementation error");let q=X.const("vSchema",J);F=(0,_9.or)(...W.map((z,U)=>O(q,U)))}Q.pass(F);function H(){X.assign(F,!1),X.forOf("v",J,(q)=>X.if(_9._`${B()}(${Y}, ${q})`,()=>X.assign(F,!0).break()))}function O(q,z){let U=W[z];return typeof U==="object"&&U!==null?_9._`${B()}(${Y}, ${q}[${z}])`:_9._`${Y} === ${U}`}}};VZ.default=jL});var UZ=N((OZ)=>{Object.defineProperty(OZ,"__esModule",{value:!0});var ML=d5(),bL=i5(),wL=r5(),NL=e5(),RL=XZ(),PL=ZZ(),IL=JZ(),TL=BZ(),EL=HZ(),CL=LZ(),SL=[ML.default,bL.default,wL.default,NL.default,RL.default,PL.default,IL.default,TL.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},EL.default,CL.default];OZ.default=SL});var z4=N((qZ)=>{Object.defineProperty(qZ,"__esModule",{value:!0});qZ.validateAdditionalItems=void 0;var q1=_(),U4=g(),xL={message:({params:{len:Q}})=>q1.str`must NOT have more than ${Q} items`,params:({params:{len:Q}})=>q1._`{limit: ${Q}}`},yL={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:xL,code(Q){let{parentSchema:X,it:Y}=Q,{items:Z}=X;if(!Array.isArray(Z)){(0,U4.checkStrictMode)(Y,'"additionalItems" is ignored when "items" is not an array of schemas');return}zZ(Q,Z)}};function zZ(Q,X){let{gen:Y,schema:Z,data:W,keyword:J,it:$}=Q;$.items=!0;let G=Y.const("len",q1._`${W}.length`);if(Z===!1)Q.setParams({len:X.length}),Q.pass(q1._`${G} <= ${X.length}`);else if(typeof Z=="object"&&!(0,U4.alwaysValidSchema)($,Z)){let B=Y.var("valid",q1._`${G} <= ${X.length}`);Y.if((0,q1.not)(B),()=>K(B)),Q.ok(B)}function K(B){Y.forRange("i",X.length,G,(F)=>{if(Q.subschema({keyword:J,dataProp:F,dataPropType:U4.Type.Num},B),!$.allErrors)Y.if((0,q1.not)(B),()=>Y.break())})}}qZ.validateAdditionalItems=zZ;qZ.default=yL});var q4=N((MZ)=>{Object.defineProperty(MZ,"__esModule",{value:!0});MZ.validateTuple=void 0;var jZ=_(),rQ=g(),fL=w0(),vL={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(Q){let{schema:X,it:Y}=Q;if(Array.isArray(X))return DZ(Q,"additionalItems",X);if(Y.items=!0,(0,rQ.alwaysValidSchema)(Y,X))return;Q.ok((0,fL.validateArray)(Q))}};function DZ(Q,X,Y=Q.schema){let{gen:Z,parentSchema:W,data:J,keyword:$,it:G}=Q;if(F(W),G.opts.unevaluated&&Y.length&&G.items!==!0)G.items=rQ.mergeEvaluated.items(Z,Y.length,G.items);let K=Z.name("valid"),B=Z.const("len",jZ._`${J}.length`);Y.forEach((H,O)=>{if((0,rQ.alwaysValidSchema)(G,H))return;Z.if(jZ._`${B} > ${O}`,()=>Q.subschema({keyword:$,schemaProp:O,dataProp:O},K)),Q.ok(K)});function F(H){let{opts:O,errSchemaPath:q}=G,z=Y.length,U=z===H.minItems&&(z===H.maxItems||H[X]===!1);if(O.strictTuples&&!U){let j=`"${$}" is ${z}-tuple, but minItems or maxItems/${X} are not specified or different at path "${q}"`;(0,rQ.checkStrictMode)(G,j,O.strictTuples)}}}MZ.validateTuple=DZ;MZ.default=vL});var NZ=N((wZ)=>{Object.defineProperty(wZ,"__esModule",{value:!0});var hL=q4(),uL={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:(Q)=>(0,hL.validateTuple)(Q,"items")};wZ.default=uL});var IZ=N((PZ)=>{Object.defineProperty(PZ,"__esModule",{value:!0});var RZ=_(),mL=g(),pL=w0(),dL=z4(),cL={message:({params:{len:Q}})=>RZ.str`must NOT have more than ${Q} items`,params:({params:{len:Q}})=>RZ._`{limit: ${Q}}`},iL={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:cL,code(Q){let{schema:X,parentSchema:Y,it:Z}=Q,{prefixItems:W}=Y;if(Z.items=!0,(0,mL.alwaysValidSchema)(Z,X))return;if(W)(0,dL.validateAdditionalItems)(Q,W);else Q.ok((0,pL.validateArray)(Q))}};PZ.default=iL});var EZ=N((TZ)=>{Object.defineProperty(TZ,"__esModule",{value:!0});var N0=_(),tQ=g(),sL={message:({params:{min:Q,max:X}})=>X===void 0?N0.str`must contain at least ${Q} valid item(s)`:N0.str`must contain at least ${Q} and no more than ${X} valid item(s)`,params:({params:{min:Q,max:X}})=>X===void 0?N0._`{minContains: ${Q}}`:N0._`{minContains: ${Q}, maxContains: ${X}}`},aL={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:sL,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 F=X.const("len",N0._`${W}.length`);if(Q.setParams({min:$,max:G}),G===void 0&&$===0){(0,tQ.checkStrictMode)(J,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(G!==void 0&&$>G){(0,tQ.checkStrictMode)(J,'"minContains" > "maxContains" is always invalid'),Q.fail();return}if((0,tQ.alwaysValidSchema)(J,Y)){let U=N0._`${F} >= ${$}`;if(G!==void 0)U=N0._`${U} && ${F} <= ${G}`;Q.pass(U);return}J.items=!0;let H=X.name("valid");if(G===void 0&&$===1)q(H,()=>X.if(H,()=>X.break()));else if($===0){if(X.let(H,!0),G!==void 0)X.if(N0._`${W}.length > 0`,O)}else X.let(H,!1),O();Q.result(H,()=>Q.reset());function O(){let U=X.name("_valid"),j=X.let("count",0);q(U,()=>X.if(U,()=>z(j)))}function q(U,j){X.forRange("i",0,F,(A)=>{Q.subschema({keyword:"contains",dataProp:A,dataPropType:tQ.Type.Num,compositeRule:!0},U),j()})}function z(U){if(X.code(N0._`${U}++`),G===void 0)X.if(N0._`${U} >= ${$}`,()=>X.assign(H,!0).break());else if(X.if(N0._`${U} > ${G}`,()=>X.assign(H,!1).break()),$===1)X.assign(H,!0);else X.if(N0._`${U} >= ${$}`,()=>X.assign(H,!0))}}};TZ.default=aL});var _Z=N((kZ)=>{Object.defineProperty(kZ,"__esModule",{value:!0});kZ.validateSchemaDeps=kZ.validatePropertyDeps=kZ.error=void 0;var A4=_(),rL=g(),f9=w0();kZ.error={message:({params:{property:Q,depsCount:X,deps:Y}})=>{let Z=X===1?"property":"properties";return A4.str`must have ${Z} ${Y} when property ${Q} is present`},params:({params:{property:Q,depsCount:X,deps:Y,missingProperty:Z}})=>A4._`{property: ${Q},
6
+ missingProperty: ${Z},
7
+ depsCount: ${X},
8
+ deps: ${Y}}`};var tL={keyword:"dependencies",type:"object",schemaType:"object",error:kZ.error,code(Q){let[X,Y]=eL(Q);CZ(Q,X),SZ(Q,Y)}};function eL({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 CZ(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(A4._`${K} && (${(0,f9.checkMissingProp)(Q,G,J)})`),(0,f9.reportMissingProp)(Q,J),Y.else()}}kZ.validatePropertyDeps=CZ;function SZ(Q,X=Q.schema){let{gen:Y,data:Z,keyword:W,it:J}=Q,$=Y.name("valid");for(let G in X){if((0,rL.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($)}}kZ.validateSchemaDeps=SZ;kZ.default=tL});var gZ=N((vZ)=>{Object.defineProperty(vZ,"__esModule",{value:!0});var fZ=_(),YO=g(),ZO={message:"property name must be valid",params:({params:Q})=>fZ._`{propertyName: ${Q.propertyName}}`},WO={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:ZO,code(Q){let{gen:X,schema:Y,data:Z,it:W}=Q;if((0,YO.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,fZ.not)(J),()=>{if(Q.error(!0),!W.allErrors)X.break()})}),Q.ok(J)}};vZ.default=WO});var j4=N((hZ)=>{Object.defineProperty(hZ,"__esModule",{value:!0});var eQ=w0(),k0=_(),$O=u0(),Q8=g(),GO={message:"must NOT have additional properties",params:({params:Q})=>k0._`{additionalProperty: ${Q.additionalProperty}}`},KO={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:GO,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,Q8.alwaysValidSchema)($,Y))return;let B=(0,eQ.allSchemaProperties)(Z.properties),F=(0,eQ.allSchemaProperties)(Z.patternProperties);H(),Q.ok(k0._`${J} === ${$O.default.errors}`);function H(){X.forIn("key",W,(j)=>{if(!B.length&&!F.length)z(j);else X.if(O(j),()=>z(j))})}function O(j){let A;if(B.length>8){let w=(0,Q8.schemaRefOrVal)($,Z.properties,"properties");A=(0,eQ.isOwnProperty)(X,w,j)}else if(B.length)A=(0,k0.or)(...B.map((w)=>k0._`${j} === ${w}`));else A=k0.nil;if(F.length)A=(0,k0.or)(A,...F.map((w)=>k0._`${(0,eQ.usePattern)(Q,w)}.test(${j})`));return(0,k0.not)(A)}function q(j){X.code(k0._`delete ${W}[${j}]`)}function z(j){if(K.removeAdditional==="all"||K.removeAdditional&&Y===!1){q(j);return}if(Y===!1){if(Q.setParams({additionalProperty:j}),Q.error(),!G)X.break();return}if(typeof Y=="object"&&!(0,Q8.alwaysValidSchema)($,Y)){let A=X.name("valid");if(K.removeAdditional==="failing")U(j,A,!1),X.if((0,k0.not)(A),()=>{Q.reset(),q(j)});else if(U(j,A),!G)X.if((0,k0.not)(A),()=>X.break())}}function U(j,A,w){let E={keyword:"additionalProperties",dataProp:j,dataPropType:Q8.Type.Str};if(w===!1)Object.assign(E,{compositeRule:!0,createErrors:!1,allErrors:!1});Q.subschema(E,A)}}};hZ.default=KO});var pZ=N((mZ)=>{Object.defineProperty(mZ,"__esModule",{value:!0});var FO=N9(),uZ=w0(),D4=g(),lZ=j4(),HO={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)lZ.default.code(new FO.KeywordCxt(J,lZ.default,"additionalProperties"));let $=(0,uZ.allSchemaProperties)(Y);for(let H of $)J.definedProperties.add(H);if(J.opts.unevaluated&&$.length&&J.props!==!0)J.props=D4.mergeEvaluated.props(X,(0,D4.toHash)($),J.props);let G=$.filter((H)=>!(0,D4.alwaysValidSchema)(J,Y[H]));if(G.length===0)return;let K=X.name("valid");for(let H of G){if(B(H))F(H);else{if(X.if((0,uZ.propertyInData)(X,W,H,J.opts.ownProperties)),F(H),!J.allErrors)X.else().var(K,!0);X.endIf()}Q.it.definedProperties.add(H),Q.ok(K)}function B(H){return J.opts.useDefaults&&!J.compositeRule&&Y[H].default!==void 0}function F(H){Q.subschema({keyword:"properties",schemaProp:H,dataProp:H},K)}}};mZ.default=HO});var sZ=N((nZ)=>{Object.defineProperty(nZ,"__esModule",{value:!0});var dZ=w0(),X8=_(),cZ=g(),iZ=g(),LO={keyword:"patternProperties",type:"object",schemaType:"object",code(Q){let{gen:X,schema:Y,data:Z,parentSchema:W,it:J}=Q,{opts:$}=J,G=(0,dZ.allSchemaProperties)(Y),K=G.filter((U)=>(0,cZ.alwaysValidSchema)(J,Y[U]));if(G.length===0||K.length===G.length&&(!J.opts.unevaluated||J.props===!0))return;let B=$.strictSchema&&!$.allowMatchingProperties&&W.properties,F=X.name("valid");if(J.props!==!0&&!(J.props instanceof X8.Name))J.props=(0,iZ.evaluatedPropsToName)(X,J.props);let{props:H}=J;O();function O(){for(let U of G){if(B)q(U);if(J.allErrors)z(U);else X.var(F,!0),z(U),X.if(F)}}function q(U){for(let j in B)if(new RegExp(U).test(j))(0,cZ.checkStrictMode)(J,`property ${j} matches pattern ${U} (use allowMatchingProperties)`)}function z(U){X.forIn("key",Z,(j)=>{X.if(X8._`${(0,dZ.usePattern)(Q,U)}.test(${j})`,()=>{let A=K.includes(U);if(!A)Q.subschema({keyword:"patternProperties",schemaProp:U,dataProp:j,dataPropType:iZ.Type.Str},F);if(J.opts.unevaluated&&H!==!0)X.assign(X8._`${H}[${j}]`,!0);else if(!A&&!J.allErrors)X.if((0,X8.not)(F),()=>X.break())})})}}};nZ.default=LO});var oZ=N((aZ)=>{Object.defineProperty(aZ,"__esModule",{value:!0});var UO=g(),zO={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(Q){let{gen:X,schema:Y,it:Z}=Q;if((0,UO.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"}};aZ.default=zO});var tZ=N((rZ)=>{Object.defineProperty(rZ,"__esModule",{value:!0});var AO=w0(),jO={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:AO.validateUnion,error:{message:"must match a schema in anyOf"}};rZ.default=jO});var QW=N((eZ)=>{Object.defineProperty(eZ,"__esModule",{value:!0});var Y8=_(),MO=g(),bO={message:"must match exactly one schema in oneOf",params:({params:Q})=>Y8._`{passingSchemas: ${Q.passing}}`},wO={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:bO,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((F,H)=>{let O;if((0,MO.alwaysValidSchema)(W,F))X.var(K,!0);else O=Q.subschema({keyword:"oneOf",schemaProp:H,compositeRule:!0},K);if(H>0)X.if(Y8._`${K} && ${$}`).assign($,!1).assign(G,Y8._`[${G}, ${H}]`).else();X.if(K,()=>{if(X.assign($,!0),X.assign(G,H),O)Q.mergeEvaluated(O,Y8.Name)})})}}};eZ.default=wO});var YW=N((XW)=>{Object.defineProperty(XW,"__esModule",{value:!0});var RO=g(),PO={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,RO.alwaysValidSchema)(Z,J))return;let G=Q.subschema({keyword:"allOf",schemaProp:$},W);Q.ok(W),Q.mergeEvaluated(G)})}};XW.default=PO});var $W=N((JW)=>{Object.defineProperty(JW,"__esModule",{value:!0});var Z8=_(),WW=g(),TO={message:({params:Q})=>Z8.str`must match "${Q.ifClause}" schema`,params:({params:Q})=>Z8._`{failingKeyword: ${Q.ifClause}}`},EO={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:TO,code(Q){let{gen:X,parentSchema:Y,it:Z}=Q;if(Y.then===void 0&&Y.else===void 0)(0,WW.checkStrictMode)(Z,'"if" without "then" and "else" is ignored');let W=ZW(Z,"then"),J=ZW(Z,"else");if(!W&&!J)return;let $=X.let("valid",!0),G=X.name("_valid");if(K(),Q.reset(),W&&J){let F=X.let("ifClause");Q.setParams({ifClause:F}),X.if(G,B("then",F),B("else",F))}else if(W)X.if(G,B("then"));else X.if((0,Z8.not)(G),B("else"));Q.pass($,()=>Q.error(!0));function K(){let F=Q.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},G);Q.mergeEvaluated(F)}function B(F,H){return()=>{let O=Q.subschema({keyword:F},G);if(X.assign($,G),Q.mergeValidEvaluated(O,$),H)X.assign(H,Z8._`${F}`);else Q.setParams({ifClause:F})}}}};function ZW(Q,X){let Y=Q.schema[X];return Y!==void 0&&!(0,WW.alwaysValidSchema)(Q,Y)}JW.default=EO});var KW=N((GW)=>{Object.defineProperty(GW,"__esModule",{value:!0});var SO=g(),kO={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:Q,parentSchema:X,it:Y}){if(X.if===void 0)(0,SO.checkStrictMode)(Y,`"${Q}" without "if" is ignored`)}};GW.default=kO});var FW=N((BW)=>{Object.defineProperty(BW,"__esModule",{value:!0});var yO=z4(),_O=NZ(),fO=q4(),vO=IZ(),gO=EZ(),hO=_Z(),uO=gZ(),lO=j4(),mO=pZ(),pO=sZ(),dO=oZ(),cO=tZ(),iO=QW(),nO=YW(),sO=$W(),aO=KW();function oO(Q=!1){let X=[dO.default,cO.default,iO.default,nO.default,sO.default,aO.default,uO.default,lO.default,hO.default,mO.default,pO.default];if(Q)X.push(_O.default,vO.default);else X.push(yO.default,fO.default);return X.push(gO.default),X}BW.default=oO});var VW=N((HW)=>{Object.defineProperty(HW,"__esModule",{value:!0});var o=_(),tO={message:({schemaCode:Q})=>o.str`must match format "${Q}"`,params:({schemaCode:Q})=>o._`{format: ${Q}}`},eO={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:tO,code(Q,X){let{gen:Y,data:Z,$data:W,schema:J,schemaCode:$,it:G}=Q,{opts:K,errSchemaPath:B,schemaEnv:F,self:H}=G;if(!K.validateFormats)return;if(W)O();else q();function O(){let z=Y.scopeValue("formats",{ref:H.formats,code:K.code.formats}),U=Y.const("fDef",o._`${z}[${$}]`),j=Y.let("fType"),A=Y.let("format");Y.if(o._`typeof ${U} == "object" && !(${U} instanceof RegExp)`,()=>Y.assign(j,o._`${U}.type || "string"`).assign(A,o._`${U}.validate`),()=>Y.assign(j,o._`"string"`).assign(A,U)),Q.fail$data((0,o.or)(w(),E()));function w(){if(K.strictSchema===!1)return o.nil;return o._`${$} && !${A}`}function E(){let I=F.$async?o._`(${U}.async ? await ${A}(${Z}) : ${A}(${Z}))`:o._`${A}(${Z})`,T=o._`(typeof ${A} == "function" ? ${I} : ${A}.test(${Z}))`;return o._`${A} && ${A} !== true && ${j} === ${X} && !${T}`}}function q(){let z=H.formats[J];if(!z){w();return}if(z===!0)return;let[U,j,A]=E(z);if(U===X)Q.pass(I());function w(){if(K.strictSchema===!1){H.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 z=="object"&&!(z instanceof RegExp)&&z.async){if(!F.$async)throw Error("async format in sync schema");return o._`await ${A}(${Z})`}return typeof j=="function"?o._`${A}(${Z})`:o._`${A}.test(${Z})`}}}};HW.default=eO});var OW=N((LW)=>{Object.defineProperty(LW,"__esModule",{value:!0});var XU=VW(),YU=[XU.default];LW.default=YU});var qW=N((UW)=>{Object.defineProperty(UW,"__esModule",{value:!0});UW.contentVocabulary=UW.metadataVocabulary=void 0;UW.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];UW.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var DW=N((jW)=>{Object.defineProperty(jW,"__esModule",{value:!0});var JU=m5(),$U=UZ(),GU=FW(),KU=OW(),AW=qW(),BU=[JU.default,$U.default,(0,GU.default)(),KU.default,AW.metadataVocabulary,AW.contentVocabulary];jW.default=BU});var NW=N((bW)=>{Object.defineProperty(bW,"__esModule",{value:!0});bW.DiscrError=void 0;var MW;(function(Q){Q.Tag="tag",Q.Mapping="mapping"})(MW||(bW.DiscrError=MW={}))});var IW=N((PW)=>{Object.defineProperty(PW,"__esModule",{value:!0});var n1=_(),M4=NW(),RW=hQ(),HU=R9(),VU=g(),LU={message:({params:{discrError:Q,tagName:X}})=>Q===M4.DiscrError.Tag?`tag "${X}" must be string`:`value of tag "${X}" must be in oneOf`,params:({params:{discrError:Q,tag:X,tagName:Y}})=>n1._`{error: ${Q}, tag: ${Y}, tagValue: ${X}}`},OU={keyword:"discriminator",type:"object",schemaType:"object",error:LU,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",n1._`${Y}${(0,n1.getProperty)(G)}`);X.if(n1._`typeof ${B} == "string"`,()=>F(),()=>Q.error(!1,{discrError:M4.DiscrError.Tag,tag:B,tagName:G})),Q.ok(K);function F(){let q=O();X.if(!1);for(let z in q)X.elseIf(n1._`${B} === ${z}`),X.assign(K,H(q[z]));X.else(),Q.error(!1,{discrError:M4.DiscrError.Mapping,tag:B,tagName:G}),X.endIf()}function H(q){let z=X.name("valid"),U=Q.subschema({keyword:"oneOf",schemaProp:q},z);return Q.mergeEvaluated(U,n1.Name),z}function O(){var q;let z={},U=A(W),j=!0;for(let I=0;I<$.length;I++){let T=$[I];if((T===null||T===void 0?void 0:T.$ref)&&!(0,VU.schemaHasRulesButRef)(T,J.self.RULES)){let B0=T.$ref;if(T=RW.resolveRef.call(J.self,J.schemaEnv.root,J.baseId,B0),T instanceof RW.SchemaEnv)T=T.schema;if(T===void 0)throw new HU.default(J.opts.uriResolver,J.baseId,B0)}let Q0=(q=T===null||T===void 0?void 0:T.properties)===null||q===void 0?void 0:q[G];if(typeof Q0!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${G}"`);j=j&&(U||A(T)),w(Q0,I)}if(!j)throw Error(`discriminator: "${G}" must be required`);return z;function A({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 z)throw Error(`discriminator: "${G}" values must be unique strings`);z[I]=T}}}};PW.default=OU});var TW=N((AD,zU)=>{zU.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 w4=N((A0,b4)=>{Object.defineProperty(A0,"__esModule",{value:!0});A0.MissingRefError=A0.ValidationError=A0.CodeGen=A0.Name=A0.nil=A0.stringify=A0.str=A0._=A0.KeywordCxt=A0.Ajv=void 0;var qU=k5(),AU=DW(),jU=IW(),EW=TW(),DU=["/properties"],W8="http://json-schema.org/draft-07/schema";class v9 extends qU.default{_addVocabularies(){if(super._addVocabularies(),AU.default.forEach((Q)=>this.addVocabulary(Q)),this.opts.discriminator)this.addKeyword(jU.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let Q=this.opts.$data?this.$dataMetaSchema(EW,DU):EW;this.addMetaSchema(Q,W8,!1),this.refs["http://json-schema.org/schema"]=W8}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(W8)?W8:void 0)}}A0.Ajv=v9;b4.exports=A0=v9;b4.exports.Ajv=v9;Object.defineProperty(A0,"__esModule",{value:!0});A0.default=v9;var MU=N9();Object.defineProperty(A0,"KeywordCxt",{enumerable:!0,get:function(){return MU.KeywordCxt}});var s1=_();Object.defineProperty(A0,"_",{enumerable:!0,get:function(){return s1._}});Object.defineProperty(A0,"str",{enumerable:!0,get:function(){return s1.str}});Object.defineProperty(A0,"stringify",{enumerable:!0,get:function(){return s1.stringify}});Object.defineProperty(A0,"nil",{enumerable:!0,get:function(){return s1.nil}});Object.defineProperty(A0,"Name",{enumerable:!0,get:function(){return s1.Name}});Object.defineProperty(A0,"CodeGen",{enumerable:!0,get:function(){return s1.CodeGen}});var bU=vQ();Object.defineProperty(A0,"ValidationError",{enumerable:!0,get:function(){return bU.default}});var wU=R9();Object.defineProperty(A0,"MissingRefError",{enumerable:!0,get:function(){return wU.default}})});var hW=N((vW)=>{Object.defineProperty(vW,"__esModule",{value:!0});vW.formatNames=vW.fastFormats=vW.fullFormats=void 0;function f0(Q,X){return{validate:Q,compare:X}}vW.fullFormats={date:f0(xW,I4),time:f0(R4(!0),T4),"date-time":f0(CW(!0),_W),"iso-time":f0(R4(),yW),"iso-date-time":f0(CW(),fW),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:SU,"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:gU,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:kU,int32:{type:"number",validate:_U},int64:{type:"number",validate:fU},float:{type:"number",validate:kW},double:{type:"number",validate:kW},password:!0,binary:!0};vW.fastFormats={...vW.fullFormats,date:f0(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,I4),time:f0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,T4),"date-time":f0(/^\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,_W),"iso-time":f0(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,yW),"iso-date-time":f0(/^\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,fW),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};vW.formatNames=Object.keys(vW.fullFormats);function PU(Q){return Q%4===0&&(Q%100!==0||Q%400===0)}var IU=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,TU=[0,31,28,31,30,31,30,31,31,30,31,30,31];function xW(Q){let X=IU.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&&PU(Y)?29:TU[Z])}function I4(Q,X){if(!(Q&&X))return;if(Q>X)return 1;if(Q<X)return-1;return 0}var N4=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function R4(Q){return function(Y){let Z=N4.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),F=+(Z[7]||0);if(B>23||F>59||Q&&!G)return!1;if(W<=23&&J<=59&&$<60)return!0;let H=J-F*K,O=W-B*K-(H<0?1:0);return(O===23||O===-1)&&(H===59||H===-1)&&$<61}}function T4(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 yW(Q,X){if(!(Q&&X))return;let Y=N4.exec(Q),Z=N4.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 P4=/t|\s/i;function CW(Q){let X=R4(Q);return function(Z){let W=Z.split(P4);return W.length===2&&xW(W[0])&&X(W[1])}}function _W(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 fW(Q,X){if(!(Q&&X))return;let[Y,Z]=Q.split(P4),[W,J]=X.split(P4),$=I4(Y,W);if($===void 0)return;return $||T4(Z,J)}var EU=/\/|:/,CU=/^(?:[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 SU(Q){return EU.test(Q)&&CU.test(Q)}var SW=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function kU(Q){return SW.lastIndex=0,SW.test(Q)}var xU=-2147483648,yU=2147483647;function _U(Q){return Number.isInteger(Q)&&Q<=yU&&Q>=xU}function fU(Q){return Number.isInteger(Q)}function kW(){return!0}var vU=/[^\\]\\Z/;function gU(Q){if(vU.test(Q))return!1;try{return new RegExp(Q),!0}catch(X){return!1}}});var lW=N((uW)=>{Object.defineProperty(uW,"__esModule",{value:!0});uW.formatLimitDefinition=void 0;var uU=w4(),x0=_(),Y1=x0.operators,J8={formatMaximum:{okStr:"<=",ok:Y1.LTE,fail:Y1.GT},formatMinimum:{okStr:">=",ok:Y1.GTE,fail:Y1.LT},formatExclusiveMaximum:{okStr:"<",ok:Y1.LT,fail:Y1.GTE},formatExclusiveMinimum:{okStr:">",ok:Y1.GT,fail:Y1.LTE}},lU={message:({keyword:Q,schemaCode:X})=>x0.str`should be ${J8[Q].okStr} ${X}`,params:({keyword:Q,schemaCode:X})=>x0._`{comparison: ${J8[Q].okStr}, limit: ${X}}`};uW.formatLimitDefinition={keyword:Object.keys(J8),type:"string",schemaType:"string",$data:!0,error:lU,code(Q){let{gen:X,data:Y,schemaCode:Z,keyword:W,it:J}=Q,{opts:$,self:G}=J;if(!$.validateFormats)return;let K=new uU.KeywordCxt(J,G.RULES.all.format.definition,"format");if(K.$data)B();else F();function B(){let O=X.scopeValue("formats",{ref:G.formats,code:$.code.formats}),q=X.const("fmt",x0._`${O}[${K.schemaCode}]`);Q.fail$data((0,x0.or)(x0._`typeof ${q} != "object"`,x0._`${q} instanceof RegExp`,x0._`typeof ${q}.compare != "function"`,H(q)))}function F(){let O=K.schema,q=G.formats[O];if(!q||q===!0)return;if(typeof q!="object"||q instanceof RegExp||typeof q.compare!="function")throw Error(`"${W}": format "${O}" does not define "compare" function`);let z=X.scopeValue("formats",{key:O,ref:q,code:$.code.formats?x0._`${$.code.formats}${(0,x0.getProperty)(O)}`:void 0});Q.fail$data(H(z))}function H(O){return x0._`${O}.compare(${Y}, ${Z}) ${J8[W].fail} 0`}},dependencies:["format"]};var mU=(Q)=>{return Q.addKeyword(uW.formatLimitDefinition),Q};uW.default=mU});var cW=N((g9,dW)=>{Object.defineProperty(g9,"__esModule",{value:!0});var a1=hW(),dU=lW(),S4=_(),mW=new S4.Name("fullFormats"),cU=new S4.Name("fastFormats"),k4=(Q,X={keywords:!0})=>{if(Array.isArray(X))return pW(Q,X,a1.fullFormats,mW),Q;let[Y,Z]=X.mode==="fast"?[a1.fastFormats,cU]:[a1.fullFormats,mW],W=X.formats||a1.formatNames;if(pW(Q,W,Y,Z),X.keywords)(0,dU.default)(Q);return Q};k4.get=(Q,X="full")=>{let Z=(X==="fast"?a1.fastFormats:a1.fullFormats)[Q];if(!Z)throw Error(`Unknown format "${Q}"`);return Z};function pW(Q,X,Y,Z){var W,J;(W=(J=Q.opts.code).formats)!==null&&W!==void 0||(J.formats=S4._`require("ajv-formats/dist/formats").${Z}`);for(let $ of X)Q.addFormat($,Y[$])}dW.exports=g9=k4;Object.defineProperty(g9,"__esModule",{value:!0});g9.default=k4});var Uz=y.enum(["openai","anthropic","gemini","deepseek","moonshot","zhipu","custom"]),c4=y.object({id:y.string(),name:y.string().optional().describe("Display name for the model"),provider_id:y.string().describe("Foreign key reference to provider"),model_name:y.string().describe("Actual model ID to use (e.g., gpt-4o, claude-3-5-sonnet)"),stream_usage:y.boolean().default(!1),enable_thinking:y.boolean().default(!1),temperature:y.number().default(0.7),max_tokens:y.number().default(4096),top_p:y.number().default(1),frequency_penalty:y.number().default(0),presence_penalty:y.number().default(0)}),i4=y.object({id:y.string(),name:y.string().describe("prompt name, must be unique")}),zz=y.object({id:y.string(),prompt_id:y.string().describe("reference to prompt"),version:y.number().int().positive().describe("version number, starts from 1"),content:y.string().describe("prompt content for this version"),metadata:y.any().optional().describe("version-specific metadata"),change_note:y.string().optional().describe("description of changes in this version")}),VJ=y.any().describe("middleware custom params, must be a valid JSON object"),H8=y.object({id:y.string().describe("middleware id, must be unique, folder/middleware/middleware_name"),name:y.string(),description:y.string()}),V8=y.object({id:y.string(),name:y.string(),description:y.string(),system_prompt:i4.shape.id,middlewares:y.record(H8.shape.id,y.union([y.boolean(),VJ])),model:c4.shape.id}),qz=y.object({agents:y.array(V8),prompts:y.array(i4),models:y.array(c4)});class L8{_schemas=new Map;_implementations=new Map;registerSchema(Q){let X=H8.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 l9{_data;constructor(Q){let X=V8.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 O8{storage;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 l9({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 l9({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 U8{storage;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 LJ=D.object({id:D.string(),name:D.string(),content:D.string(),change_note:D.string().optional()}),OJ=D.object({models:D.array(D.object({id:D.string(),name:D.string().optional(),model_name:D.string(),provider_id:D.string(),stream_usage:D.boolean(),enable_thinking:D.boolean(),temperature:D.number(),max_tokens:D.number(),top_p:D.number(),frequency_penalty:D.number(),presence_penalty:D.number()})),prompts:D.array(LJ),agents:D.array(D.object({id:D.string(),name:D.string(),description:D.string(),system_prompt:D.string(),model:D.string(),middlewares:D.record(D.string(),D.unknown())}))});class z8{storage;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=OJ.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 q8{storage;repository;validator;serializer;middlewares=new L8;getModel;getPrompt;getPromptByName;getPromptWithContent;getPromptByNameWithContent;getMiddleware;getAgent;listModels;listPrompts;listPromptsWithContent;listMiddlewares;listAgents;validateAgent;validateAll;toJSON;constructor(Q){this.storage=Q,this.repository=new O8(Q),this.validator=new U8(Q),this.serializer=new z8(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 q8(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 q8(Q);return await Y.serializer.fromJSON(X),Y}}class A8{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 UJ extends A8{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 zJ(Q,X,Y){return{id:Y?.id??X.name,name:X.name,description:X.description,paramsSchema:X.schema,execute:Q}}var dz=zJ;var qJ=!0,AJ="5m",jJ=3,DJ=D.object({enableCaching:D.boolean().optional(),ttl:D.enum(["5m","1h"]).optional(),minMessagesToCache:D.number().optional(),unsupportedModelBehavior:D.enum(["ignore","warn","raise"]).optional()});class n4 extends Error{constructor(Q){super(Q);this.name="PromptCachingMiddlewareError"}}function sz(Q){return m9({name:"PromptCachingMiddleware",contextSchema:DJ,wrapModelCall:(X,Y)=>{let Z=X.runtime.context.enableCaching??Q?.enableCaching??qJ,W=X.runtime.context.ttl??Q?.ttl??AJ,J=X.runtime.context.minMessagesToCache??Q?.minMessagesToCache??jJ;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 H=B.text;if(H===""||H==null||typeof H==="object"&&Object.keys(H).length===0)return Y(X)}let F=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),F]})}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 n4("Last message content is not a string or array")}})}import s4 from"fs/promises";import{join as MJ}from"path";var bJ=`
9
+
10
+ ## Project Documentation
11
+
12
+ {docs_content}`;class wJ{name="AgentsMdMiddleware";stateSchema=void 0;contextSchema=void 0;tools=[];projectRoot;systemPromptTemplate;constructor(Q={}){this.projectRoot=Q.projectRoot||process.cwd(),this.systemPromptTemplate=bJ}async findDocumentationFile(){let Q=["CLAUDE.md","AGENTS.md"];for(let X of Q){let Y=MJ(this.projectRoot,X);try{return await s4.access(Y),{content:await s4.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+`
13
+
14
+ `+Z;else W=Z;let J=new A1(W),$={...Q,systemMessage:J};return await X($)}}var YX=Z1(M8(),1);import{readFileSync as NJ,statSync as XX,existsSync as a4,readdirSync as RJ,lstatSync as o4}from"fs";import{join as r4,resolve as t1,sep as t4,relative as e4,dirname as PJ,basename as IJ}from"path";import{homedir as TJ}from"os";var EJ=10485760,CJ=64,j8=1024;function D8(Q,X){try{let Y=t1(Q),Z=t1(X),W=e4(Z,Y);if(!W)return!0;if(W.startsWith("..")||W.includes(":")){let J=`${t4}.claude${t4}skills`;if(X.includes(J)){let $=TJ(),G=e4($,Y);if(!G||!G.startsWith("..")&&!G.includes(":"))return!0}return!1}return!0}catch(Y){return!1}}function SJ(Q,X){if(!Q)return[!1,"name is required"];if(Q.length>CJ)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 kJ(Q,X){try{let Y=XX(Q);if(Y.size>EJ)return console.warn(`Skipping ${Q}: file too large (${Y.size} bytes)`),null;let Z=NJ(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=YX.parse($)}catch(z){return console.warn(`Invalid YAML in ${Q}: ${z}`),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 F=IJ(PJ(Q)),[H,O]=SJ(String(K),F);if(!H)console.warn(`Skill '${K}' in ${Q} does not follow Agent Skills spec: ${O}. Consider renaming to be spec-compliant.`);let q=String(B);if(q.length>j8)console.warn(`Description exceeds ${j8} chars in ${Q}, truncating`),q=q.substring(0,j8);return{name:String(K),description:q,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 QX(Q,X){if(!a4(Q))return[];let Y;try{Y=t1(Q)}catch(J){return[]}let Z=[],W;try{W=RJ(Q)}catch(J){return[]}for(let J of W){let $=r4(Q,J),G,K;try{G=o4($),K=XX($)}catch(O){continue}if(!K.isDirectory())continue;if(G.isSymbolicLink()){let O=t1($);if(!D8(O,Y))continue}let B=r4($,"SKILL.md");if(!a4(B))continue;if(o4(B).isSymbolicLink()){let O=t1(B);if(!D8(O,Y))continue}else if(!D8(B,Y))continue;let H=kJ(B,X);if(H)Z.push(H)}return Z}function ZX(Q,X){let Y=new Map;if(Q){let Z=QX(Q,"user");for(let W of Z)Y.set(W.name,W)}if(X){let Z=QX(X,"project");for(let W of Z)Y.set(W.name,W)}return Array.from(Y.values())}var xJ=`
15
+
16
+ ## Skills System
17
+
18
+ You have access to a skills library that provides specialized capabilities and domain knowledge.
19
+
20
+ {skills_locations}
21
+
22
+ **Available Skills:**
23
+
24
+ {skills_list}
25
+
26
+ **How to Use Skills (Progressive Disclosure):**
27
+
28
+ Skills follow a **progressive disclosure** pattern - you know they exist (name + description above), but you only read the full instructions when needed:
29
+
30
+ 1. **Recognize when a skill applies**: Check if the user's task matches any skill's description
31
+ 2. **Read the skill's full instructions**: The skill list above shows the exact path to use with read_file
32
+ 3. **Follow the skill's instructions**: SKILL.md contains step-by-step workflows, best practices, and examples
33
+ 4. **Access supporting files**: Skills may include Python scripts, configs, or reference docs - use absolute paths
34
+
35
+ **When to Use Skills:**
36
+ - When the user's request matches a skill's domain (e.g., "research X" → web-research skill)
37
+ - When you need specialized knowledge or structured workflows
38
+ - When a skill provides proven patterns for complex tasks
39
+
40
+ **Skills are Self-Documenting:**
41
+ - Each SKILL.md tells you exactly what the skill does and how to use it
42
+ - The skill list above shows the full path for each skill's SKILL.md file
43
+
44
+ **Executing Skill Scripts:**
45
+ Skills may contain Python scripts or other executable files. Always use absolute paths from the skill list.
46
+
47
+ **Example Workflow:**
48
+
49
+ User: "Can you research the latest developments in quantum computing?"
50
+
51
+ 1. Check available skills above → See "web-research" skill with its full path
52
+ 2. Read the skill using the path shown in the list
53
+ 3. Follow the skill's research workflow (search → organize → synthesize)
54
+ 4. Use any helper scripts with absolute paths
55
+
56
+ Remember: Skills are tools to make you more capable and consistent. When in doubt, check if a skill exists for the task!
57
+ `;class yJ{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=xJ}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(`
58
+ `)}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(`
59
+ `)}async wrapModelCall(Q,X){let Y=ZX(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+`
60
+
61
+ `+J;else $=J;let G=new A1($),K={...Q,systemMessage:G};return await X(K)}}var HX=Z1(M8(),1);import{readFileSync as _J,statSync as FX,existsSync as WX,readdirSync as fJ,lstatSync as vJ}from"fs";import{join as JX,resolve as p9,relative as gJ,dirname as $X,basename as GX}from"path";var hJ=10485760;function KX(Q,X){try{let Y=p9(Q),Z=p9(X),W=gJ(Z,Y);if(!W)return!0;if(W.startsWith("..")||W.includes(":"))return!1;return!0}catch{return!1}}function uJ(Q,X){try{let Y=FX(Q);if(Y.size>hJ)return console.warn(`Skipping ${Q}: file too large (${Y.size} bytes)`),null;let Z=_J(Q,"utf-8"),W=/^---\s*\n([\s\S]*?)\n---\s*\n/,J=Z.match(W);if(!J){let B=GX($X(Q)),F=Z.split(`
62
+ `).find((H)=>H.trim().startsWith("#"));return{name:B,description:F?F.replace(/^#+\s*/,""):B,path:Q,source:X}}let $;try{$=HX.parse(J[1])}catch{return console.warn(`Invalid YAML in ${Q}`),null}if(typeof $!=="object"||$===null)return null;let G=$.name||GX($X(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 BX(Q,X){if(!WX(Q))return[];let Y;try{Y=p9(Q)}catch{return[]}let Z=[],W;try{W=fJ(Q)}catch{return[]}for(let J of W){let $=JX(Q,J),G,K;try{G=vJ($),K=FX($)}catch{continue}if(!K.isDirectory())continue;if(G.isSymbolicLink()){let H=p9($);if(!KX(H,Y))continue}let B=JX($,"MEMORY.md");if(!WX(B))continue;if(!KX(B,Y))continue;let F=uJ(B,X);if(F)Z.push(F)}return Z}function Lq(Q,X){let Y=new Map;if(Q)for(let Z of BX(Q,"user"))Y.set(Z.name,Z);if(X)for(let Z of BX(X,"project"))Y.set(Z.name,Z);return Array.from(Y.values())}var b8=L.object({serverName:L.string(),name:L.string(),args:L.unknown()}),OX=L.tuple([L.custom(),L.array(L.union([L.custom(),L.custom()]))]),lJ=L.union([L.string(),L.custom(),OX,L.custom()]),mJ=L.object({...b8.shape,result:OX}),VX=L.object({...b8.shape,result:lJ}),LX=L.object({headers:L.record(L.string()),args:L.unknown()}).partial(),UX=L.object({beforeToolCall:L.function().args(b8,L.custom(),L.custom()).returns(L.union([L.promise(LX),LX,L.void(),L.promise(L.void())])).optional(),afterToolCall:L.function().args(mJ,L.custom(),L.custom()).returns(L.union([L.promise(VX.pick({result:!0})),VX.pick({result:!0}),L.void(),L.promise(L.void())])).optional()});var e1=["audio","image","resource","resource_link","text"],pJ=L.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),dJ=L.union([L.string(),L.number().int()]),cJ=L.union([L.literal("content").describe("Put tool output into the ToolMessage.content array"),L.literal("artifact").describe("Put tool output into the ToolMessage.artifact array")]),iJ=L.object(Object.fromEntries(e1.map((Q)=>[Q,L.union([L.literal("content").describe(`Put all ${Q} tool output into the ToolMessage.content array`),L.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()]))),nJ=L.union([cJ,iJ]).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."),sJ=L.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"}),w8=L.object({outputHandling:nJ.optional(),defaultToolTimeout:L.number().min(1).optional()}),aJ=L.object({enabled:L.boolean().describe("Whether to automatically restart the process if it exits").optional(),maxAttempts:L.number().describe("The maximum number of restart attempts").optional(),delayMs:L.number().describe("The delay in milliseconds between restart attempts").optional()}).describe("Configuration for stdio transport restart"),oJ=L.object({transport:L.literal("stdio").optional(),type:L.literal("stdio").optional(),command:L.string().describe("The executable to run the server"),args:L.array(L.string()).describe("Command line arguments to pass to the executable"),env:L.record(L.string()).describe("The environment to use when spawning the process").optional(),encoding:L.string().describe("The encoding to use when reading from the process").optional(),stderr:L.union([L.literal("overlapped"),L.literal("pipe"),L.literal("ignore"),L.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:L.string().describe("The working directory to use when spawning the process").optional(),restart:aJ.optional()}).and(w8).describe("Configuration for stdio transport connection"),rJ=L.object({enabled:L.boolean().describe("Whether to automatically reconnect if the connection is lost").optional(),maxAttempts:L.number().describe("The maximum number of reconnection attempts").optional(),delayMs:L.number().describe("The delay in milliseconds between reconnection attempts").optional()}).describe("Configuration for streamable HTTP transport reconnection"),tJ=L.object({transport:L.union([L.literal("http"),L.literal("sse")]).optional(),type:L.union([L.literal("http"),L.literal("sse")]).optional(),url:L.string().url(),headers:L.record(L.string()).optional(),authProvider:sJ.optional(),reconnect:rJ.optional(),automaticSSEFallback:L.boolean().optional().default(!0)}).and(w8).describe("Configuration for streamable HTTP transport connection"),c9=L.union([oJ,tJ]).describe("Configuration for a single MCP server"),eJ=L.object({type:L.literal("tool"),name:L.string(),args:L.unknown(),server:L.string()}),Q$=L.object({type:L.literal("unknown")}),X$=L.union([eJ,Q$]),d0=L.object({server:L.string(),options:c9}),Y$=L.object({onMessage:L.function().args(L.object({level:pJ,logger:L.optional(L.string()),data:L.unknown()}),d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onProgress:L.function().args(L.object({progress:L.number(),total:L.optional(L.number()),message:L.optional(L.string())}),X$).returns(L.union([L.void(),L.promise(L.void())])).optional(),onCancelled:L.function().args(L.object({requestId:dJ,reason:L.string().optional()}),d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onInitialized:L.function().args(d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onPromptsListChanged:L.function().args(d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onResourcesListChanged:L.function().args(d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onResourcesUpdated:L.function().args(L.object({uri:L.string()}),d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onRootsListChanged:L.function().args(d0).returns(L.union([L.void(),L.promise(L.void())])).optional(),onToolsListChanged:L.function().args(d0).returns(L.union([L.void(),L.promise(L.void())])).optional()}),zX=L.object({mcpServers:L.record(c9).describe("A map of server names to their configuration"),throwOnLoadError:L.boolean().describe("Whether to throw an error if a tool fails to load").optional().default(!0),prefixToolNameWithServerName:L.boolean().describe("Whether to prefix tool names with the server name").optional().default(!1),additionalToolNamePrefix:L.string().describe("An additional prefix to add to the tool name").optional().default(""),useStandardContentBlocks:L.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:L.union([L.enum(["throw","ignore"]),L.function().args(L.object({serverName:L.string(),error:L.unknown()})).returns(L.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(w8).and(UX).and(Y$).describe("Configuration for the MCP client");function d9(Q,X=!1){if(Q==null)return{};if(typeof Q==="string")return Object.fromEntries(e1.map((Z)=>[Z,Q]));let Y={};for(let Z of e1)if(Q[Z]||X)Y[Z]=Q[Z]??(Z==="resource"?"artifact":"content");return Y}function qX(Q,X){let Y=d9(Q),Z=d9(X);return{...Y,...Z}}var AX=Z1(Z$(),1),W$="@langchain/mcp-adapters",N8={};function j1(Q="client"){let X=`${W$}:${Q}`;if(!N8[X])N8[X]=AX.default(X);return N8[X]}var R0=j1("tools");function J$(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 F=B[1],H=X[F];if(H){if(W.has($))return R0(`WARNING: Circular reference detected for ${$}, using empty object`),{type:"object"};let O=new Set(W);O.add($);let{$ref:q,...z}=Z;return{...Y(H,O),...z}}else R0(`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 jX(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,...F}=Q,H={...F};if(J||$||G){let q=jX({if:J,then:$,else:G});H=J1(H,q),R0("INFO: Extracted properties from if/then/else conditional")}if(Array.isArray(X)){for(let q of X){if(q.if||q.then||q.else){let U=jX(q);H=J1(H,U)}let z=W1(q);H=J1(H,z)}R0(`INFO: Flattened allOf with ${X.length} schemas into base schema`)}let O=Y||Z;if(Array.isArray(O)&&O.length>0){let q=O.every((A)=>typeof A==="object"&&A!==null&&(A.type==="object"||A.properties)),z={},U=[],j=q?O:O.filter((A)=>typeof A==="object"&&A!==null&&(A.type==="object"||A.properties));for(let A of j){let w=W1(A);if(w.properties)Object.assign(z,w.properties);if(w.required&&Array.isArray(w.required))U.push(new Set(w.required));if(w.type&&!H.type)H.type=w.type}if(Object.keys(z).length>0)H.properties={...H.properties,...z};if(U.length>0){let A=U.reduce((w,E)=>{return new Set([...w].filter((I)=>E.has(I)))});if(A.size>0)H.required=[...new Set([...H.required||[],...A])]}R0(`INFO: Merged ${j.length} object schemas from ${Y?"anyOf":"oneOf"}`)}if(H.properties&&!H.type)H.type="object";if(H.properties){let q={};for(let[z,U]of Object.entries(H.properties))if(typeof U==="object"&&U!==null)q[z]=W1(U);else q[z]=U;H.properties=q}if(H.items){if(Array.isArray(H.items))H.items=H.items.map((q)=>typeof q==="object"&&q!==null?W1(q):q);else if(typeof H.items==="object")H.items=W1(H.items)}if(typeof H.additionalProperties==="object"&&H.additionalProperties!==null)H.additionalProperties=W1(H.additionalProperties);return H}var $1=class extends Error{constructor(Q,X){super(Q);if(this.name="ToolException",X&&(X instanceof R8||X instanceof P8)){let Y=Error(D.prettifyError(X)),Z=X.stack?.split(`
63
+ `)||[];Y.stack=X.stack?.split(`
64
+ `).slice(Z.findIndex((W)=>W.includes(" at"))).join(`
65
+ `),this.cause=Y}else if(X)this.cause=X}};function $$(Q){return typeof Q==="object"&&Q!==null&&"name"in Q&&Q.name==="ToolException"}function G$(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*wX(Q,X){if(G$(Q)){let Y=await X.readResource({uri:Q.uri});for(let Z of Y.contents)yield*wX(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 NX(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 wX(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 ${e1.map(($)=>`"${$}"`).join(", ")}.`)}}async function K$(Q,X,Y,Z,W){if(X)return NX(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 DX(Q,X){if(X==="content"||X==="artifact")return X;return d9(X)[Q]??(Q==="resource"?"artifact":"content")}async function B$({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((H)=>H.type==="text"?H.text:"").join(`
66
+ `)}`);let $=(await Promise.all(Y.content.filter((H)=>DX(H.type,J)==="content").map((H)=>NX(H,W,Z,X,Q)))).flat(),G=(await Promise.all(Y.content.filter((H)=>DX(H.type,J)==="artifact").map((H)=>{return K$(H,W,Z,X,Q)}))).flat(),K=Y.structuredContent,B=Y._meta,F=[...G];if(K)F.push({type:"mcp_structured_content",data:K});if(B)F.push({type:"mcp_meta",data:B});if($.length===1&&$[0].type==="text"){let H=$[0],O=H.text;if(K||B)return[{...H,...K?{structuredContent:K}:{},...B?{meta:B}:{}},F];return[O,F]}return[$,F]}async function F$({serverName:Q,toolName:X,client:Y,args:Z,config:W,useStandardContentBlocks:J,outputHandling:$,onProgress:G,beforeToolCall:K,afterToolCall:B}){try{R0(`INFO: Calling tool ${X}(${JSON.stringify(Z)})`);let F=W?.metadata?.timeoutMs??W?.timeout,H={...F?{timeout:F}:{},...W?.signal?{signal:W.signal}:{},...G?{onprogress:(Y0)=>{G?.(Y0,{type:"tool",name:X,args:Z,server:Q})}}:{}},O={};try{O=bX(W)}catch(Y0){R0(`State can't be derrived as LangGraph is not used: ${String(Y0)}`)}let q=await K?.({name:X,args:Z,serverName:Q},O,W??{}),z=Object.assign(Z,q?.args||{}),U=q?.headers||{},j=Object.entries(U).length>0;if(j&&typeof Y.fork!=="function")throw new $1(`MCP client for server "${Q}" does not support header changes`);let A=j&&typeof Y.fork==="function"?await Y.fork(U):Y,w=[{name:X,arguments:z}];if(Object.keys(H).length>0)w.push(void 0),w.push(H);let E=await A.callTool(...w),[I,T]=await B$({serverName:Q,toolName:X,result:E,client:A,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:z,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(Q9.isInstance(X0.result))return[X0.result.contentBlocks,[]];if(X0?.result instanceof i9)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(F){if(F instanceof R8||F instanceof P8)throw new $1(D.prettifyError(F),F);if(R0(`Error calling tool ${X}: ${String(F)}`),$$(F))throw F;throw new $1(`Error calling tool ${X}: ${String(F)}`)}}var H$={throwOnLoadError:!0,prefixToolNameWithServerName:!1,additionalToolNamePrefix:"",useStandardContentBlocks:!1};async function I8(Q,X,Y){let{throwOnLoadError:Z,prefixToolNameWithServerName:W,additionalToolNamePrefix:J,useStandardContentBlocks:$,outputHandling:G,defaultToolTimeout:K}={...H$,...Y??{}},B=[],F;do F=await X.listTools({...F?.nextCursor?{cursor:F.nextCursor}:{}}),B.push(...F.tools||[]);while(F.nextCursor);R0(`INFO: Found ${B.length} MCP tools`);let H=J?`${J}__`:"",O=W?`${Q}__`:"",q=`${H}${O}`;return(await Promise.all(B.filter((z)=>!!z.name).map(async(z)=>{try{if(!z.inputSchema.properties)z.inputSchema.properties={};let U=J$(z.inputSchema),j=W1(U),A=new MX({name:`${q}${z.name}`,description:z.description||"",schema:j,responseFormat:"content_and_artifact",metadata:{annotations:z.annotations},defaultConfig:K?{timeout:K}:void 0,func:async(w,E,I)=>{return F$({serverName:Q,toolName:z.name,client:X,args:w,config:I,useStandardContentBlocks:$,outputHandling:G,onProgress:Y?.onProgress,beforeToolCall:Y?.beforeToolCall,afterToolCall:Y?.afterToolCall})}});return R0(`INFO: Successfully loaded tool: ${A.name}`),A}catch(U){if(R0(`ERROR: Failed to load tool "${z.name}":`,U),Z)throw U;return null}}))).filter(Boolean)}var V$="@langchain/mcp-adapters",L$="1.1.3",O$="LangChain.js adapters for Model Context Protocol (MCP)",U$="LangChain",z$="MIT",q$="module",A$="pnpm@10.14.0",j$={type:"git",url:"git@github.com:langchain-ai/langchainjs.git"},D$="https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-mcp-adapters/",M$={url:"https://github.com/langchain-ai/langchainjs/issues"},b$={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"},w$=["langchain","mcp","model-context-protocol","ai","tools"],N$={"@modelcontextprotocol/sdk":"^1.26.0",debug:"^4.4.3",zod:"^3.25.76 || ^4"},R$={"@langchain/core":"^1.0.0","@langchain/langgraph":"^1.0.0"},P$={"@langchain/core":{optional:!1},"@langchain/langgraph":{optional:!1}},I$={"extended-eventsource":"^1.7.0"},T$={"@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"},E$={node:">=20.10.0"},C$={example:"examples"},S$="./dist/index.cjs",k$="./dist/index.d.cts",x$={".":{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"},y$=["dist/","CHANGELOG.md","README.md","LICENSE"],_$="./dist/index.js",T8={name:V$,version:L$,description:O$,author:U$,license:z$,type:q$,packageManager:A$,repository:j$,homepage:D$,bugs:M$,scripts:b$,keywords:w$,dependencies:N$,peerDependencies:R$,peerDependenciesMeta:P$,optionalDependencies:I$,devDependencies:T$,engines:E$,directories:C$,main:S$,types:k$,exports:x$,files:y$,module:_$};class C8 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 E8(Q){}function n9(Q){if(typeof Q=="function")throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:X=E8,onError:Y=E8,onRetry:Z=E8,onComment:W}=Q,J="",$=!0,G,K="",B="";function F(U){let j=$?U.replace(/^\xEF\xBB\xBF/,""):U,[A,w]=f$(`${J}${j}`);for(let E of A)H(E);J=w,$=!1}function H(U){if(U===""){q();return}if(U.startsWith(":")){W&&W(U.slice(U.startsWith(": ")?2:1));return}let j=U.indexOf(":");if(j!==-1){let A=U.slice(0,j),w=U[j+1]===" "?2:1,E=U.slice(j+w);O(A,E,U);return}O(U,"",U)}function O(U,j,A){switch(U){case"event":B=j;break;case"data":K=`${K}${j}
67
+ `;break;case"id":G=j.includes("\x00")?void 0:j;break;case"retry":/^\d+$/.test(j)?Z(parseInt(j,10)):Y(new C8(`Invalid \`retry\` value: "${j}"`,{type:"invalid-retry",value:j,line:A}));break;default:Y(new C8(`Unknown field "${U.length>20?`${U.slice(0,20)}…`:U}"`,{type:"unknown-field",field:U,value:j,line:A}));break}}function q(){K.length>0&&X({id:G,event:B||void 0,data:K.endsWith(`
68
+ `)?K.slice(0,-1):K}),G=void 0,K="",B=""}function z(U={}){J&&U.consume&&H(J),$=!0,G=void 0,K="",B="",J=""}return{feed:F,reset:z}}function f$(Q){let X=[],Y="",Z=0;for(;Z<Q.length;){let W=Q.indexOf("\r",Z),J=Q.indexOf(`
69
+ `,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]===`
70
+ `&&Z++}}return[X,Y]}class S8 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(RX(this),X)}[Symbol.for("Deno.customInspect")](Q,X){return Q(RX(this),X)}}function v$(Q){let X=globalThis.DOMException;return typeof X=="function"?new X(Q,"SyntaxError"):SyntaxError(Q)}function k8(Q){return Q instanceof Error?"errors"in Q&&Array.isArray(Q.errors)?Q.errors.map(k8).join(", "):("cause"in Q)&&Q.cause instanceof Error?`${Q}: ${k8(Q.cause)}`:Q.message:`${Q}`}function RX(Q){return{type:Q.type,message:Q.message,code:Q.code,defaultPrevented:Q.defaultPrevented,cancelable:Q.cancelable,timeStamp:Q.timeStamp}}var IX=(Q)=>{throw TypeError(Q)},u8=(Q,X,Y)=>X.has(Q)||IX("Cannot "+Y),f=(Q,X,Y)=>(u8(Q,X,"read from private field"),Y?Y.call(Q):X.get(Q)),t=(Q,X,Y)=>X.has(Q)?IX("Cannot add the same private member more than once"):X instanceof WeakSet?X.add(Q):X.set(Q,Y),c=(Q,X,Y,Z)=>(u8(Q,X,"write to private field"),X.set(Q,Y),Y),v0=(Q,X,Y)=>(u8(Q,X,"access private method"),Y),L0,G1,D1,s9,a9,Z9,w1,W9,c0,M1,N1,b1,X9,P0,x8,y8,_8,PX,f8,v8,Y9,g8,h8;class R1 extends EventTarget{constructor(Q,X){var Y,Z;super(),t(this,P0),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,t(this,L0),t(this,G1),t(this,D1),t(this,s9),t(this,a9),t(this,Z9),t(this,w1),t(this,W9,null),t(this,c0),t(this,M1),t(this,N1,null),t(this,b1,null),t(this,X9,null),t(this,y8,async(W)=>{var J;f(this,M1).reset();let{body:$,redirected:G,status:K,headers:B}=W;if(K===204){v0(this,P0,Y9).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,P0,Y9).call(this,`Non-200 status code (${K})`,K);return}if(!(B.get("content-type")||"").startsWith("text/event-stream")){v0(this,P0,Y9).call(this,'Invalid content type, expected "text/event-stream"',K);return}if(f(this,L0)===this.CLOSED)return;c(this,L0,this.OPEN);let F=new Event("open");if((J=f(this,X9))==null||J.call(this,F),this.dispatchEvent(F),typeof $!="object"||!$||!("getReader"in $)){v0(this,P0,Y9).call(this,"Invalid response body, expected a web ReadableStream",K),this.close();return}let H=new TextDecoder,O=$.getReader(),q=!0;do{let{done:z,value:U}=await O.read();U&&f(this,M1).feed(H.decode(U,{stream:!z})),z&&(q=!1,f(this,M1).reset(),v0(this,P0,g8).call(this))}while(q)}),t(this,_8,(W)=>{c(this,c0,void 0),!(W.name==="AbortError"||W.type==="aborted")&&v0(this,P0,g8).call(this,k8(W))}),t(this,f8,(W)=>{typeof W.id=="string"&&c(this,W9,W.id);let J=new MessageEvent(W.event||"message",{data:W.data,origin:f(this,D1)?f(this,D1).origin:f(this,G1).origin,lastEventId:W.id||""});f(this,b1)&&(!W.event||W.event==="message")&&f(this,b1).call(this,J),this.dispatchEvent(J)}),t(this,v8,(W)=>{c(this,Z9,W)}),t(this,h8,()=>{c(this,w1,void 0),f(this,L0)===this.CONNECTING&&v0(this,P0,x8).call(this)});try{if(Q instanceof URL)c(this,G1,Q);else if(typeof Q=="string")c(this,G1,new URL(Q,g$()));else throw Error("Invalid URL")}catch{throw v$("An invalid or illegal string was specified")}c(this,M1,n9({onEvent:f(this,f8),onRetry:f(this,v8)})),c(this,L0,this.CONNECTING),c(this,Z9,3000),c(this,a9,(Y=X==null?void 0:X.fetch)!=null?Y:globalThis.fetch),c(this,s9,(Z=X==null?void 0:X.withCredentials)!=null?Z:!1),v0(this,P0,x8).call(this)}get readyState(){return f(this,L0)}get url(){return f(this,G1).href}get withCredentials(){return f(this,s9)}get onerror(){return f(this,N1)}set onerror(Q){c(this,N1,Q)}get onmessage(){return f(this,b1)}set onmessage(Q){c(this,b1,Q)}get onopen(){return f(this,X9)}set onopen(Q){c(this,X9,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(){f(this,w1)&&clearTimeout(f(this,w1)),f(this,L0)!==this.CLOSED&&(f(this,c0)&&f(this,c0).abort(),c(this,L0,this.CLOSED),c(this,c0,void 0))}}L0=new WeakMap,G1=new WeakMap,D1=new WeakMap,s9=new WeakMap,a9=new WeakMap,Z9=new WeakMap,w1=new WeakMap,W9=new WeakMap,c0=new WeakMap,M1=new WeakMap,N1=new WeakMap,b1=new WeakMap,X9=new WeakMap,P0=new WeakSet,x8=function(){c(this,L0,this.CONNECTING),c(this,c0,new AbortController),f(this,a9)(f(this,G1),v0(this,P0,PX).call(this)).then(f(this,y8)).catch(f(this,_8))},y8=new WeakMap,_8=new WeakMap,PX=function(){var Q;let X={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...f(this,W9)?{"Last-Event-ID":f(this,W9)}:void 0},cache:"no-store",signal:(Q=f(this,c0))==null?void 0:Q.signal};return"window"in globalThis&&(X.credentials=this.withCredentials?"include":"same-origin"),X},f8=new WeakMap,v8=new WeakMap,Y9=function(Q,X){var Y;f(this,L0)!==this.CLOSED&&c(this,L0,this.CLOSED);let Z=new S8("error",{code:X,message:Q});(Y=f(this,N1))==null||Y.call(this,Z),this.dispatchEvent(Z)},g8=function(Q,X){var Y;if(f(this,L0)===this.CLOSED)return;c(this,L0,this.CONNECTING);let Z=new S8("error",{code:X,message:Q});(Y=f(this,N1))==null||Y.call(this,Z),this.dispatchEvent(Z),c(this,w1,setTimeout(f(this,h8),f(this,Z9)))},h8=new WeakMap,R1.CONNECTING=0,R1.OPEN=1,R1.CLOSED=2;function g$(){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 P1(Q){if(!Q)return{};if(Q instanceof Headers)return Object.fromEntries(Q.entries());if(Array.isArray(Q))return Object.fromEntries(Q);return{...Q}}function o9(Q=fetch,X){if(!X)return Q;return async(Y,Z)=>{let W={...X,...Z,headers:Z?.headers?{...P1(X.headers),...P1(Z.headers)}:X.headers};return Q(Y,W)}}var T1="2025-11-25";var CX=[T1,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],i0="io.modelcontextprotocol/related-task",t9="2.0",Z0=EX((Q)=>Q!==null&&(typeof Q==="object"||typeof Q==="function")),SX=p([V(),u().int()]),kX=V(),_q=e({ttl:p([u(),l8()]).optional(),pollInterval:u().optional()}),u$=b({ttl:u().optional()}),l$=b({taskId:V()}),c8=e({progressToken:SX.optional(),[i0]:l$.optional()}),D0=b({_meta:c8.optional()}),J9=D0.extend({task:u$.optional()}),xX=(Q)=>J9.safeParse(Q).success,W0=b({method:V(),params:D0.loose().optional()}),M0=b({_meta:c8.optional()}),b0=b({method:V(),params:M0.loose().optional()}),J0=e({_meta:c8.optional()}),e9=p([V(),u().int()]),yX=b({jsonrpc:R(t9),id:e9,...W0.shape}).strict(),$9=(Q)=>yX.safeParse(Q).success,_X=b({jsonrpc:R(t9),...b0.shape}).strict(),fX=(Q)=>_X.safeParse(Q).success,i8=b({jsonrpc:R(t9),id:e9,result:J0}).strict(),K1=(Q)=>i8.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 n8=b({jsonrpc:R(t9),id:e9.optional(),error:b({code:u().int(),message:V(),data:s().optional()})}).strict();var vX=(Q)=>n8.safeParse(Q).success;var n0=p([yX,_X,i8,n8]),fq=p([i8,n8]),B1=J0.strict(),m$=M0.extend({requestId:e9.optional(),reason:V().optional()}),E1=b0.extend({method:R("notifications/cancelled"),params:m$}),p$=b({src:V(),mimeType:V().optional(),sizes:M(V()).optional(),theme:j0(["light","dark"]).optional()}),G9=b({icons:M(p$).optional()}),I1=b({name:V(),title:V().optional()}),gX=I1.extend({...I1.shape,...G9.shape,version:V(),websiteUrl:V().optional(),description:V().optional()}),d$=p8(b({applyDefaults:l().optional()}),i(V(),s())),c$=d8((Q)=>{if(Q&&typeof Q==="object"&&!Array.isArray(Q)){if(Object.keys(Q).length===0)return{form:{}}}return Q},p8(b({form:d$.optional(),url:Z0.optional()}),i(V(),s()).optional())),i$=e({list:Z0.optional(),cancel:Z0.optional(),requests:e({sampling:e({createMessage:Z0.optional()}).optional(),elicitation:e({create:Z0.optional()}).optional()}).optional()}),n$=e({list:Z0.optional(),cancel:Z0.optional(),requests:e({tools:e({call:Z0.optional()}).optional()}).optional()}),s$=b({experimental:i(V(),Z0).optional(),sampling:b({context:Z0.optional(),tools:Z0.optional()}).optional(),elicitation:c$.optional(),roots:b({listChanged:l().optional()}).optional(),tasks:i$.optional()}),a$=D0.extend({protocolVersion:V(),capabilities:s$,clientInfo:gX}),o$=W0.extend({method:R("initialize"),params:a$});var r$=b({experimental:i(V(),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:n$.optional()}),s8=J0.extend({protocolVersion:V(),capabilities:r$,serverInfo:gX,instructions:V().optional()}),QQ=b0.extend({method:R("notifications/initialized"),params:M0.optional()}),hX=(Q)=>QQ.safeParse(Q).success,XQ=W0.extend({method:R("ping"),params:D0.optional()}),t$=b({progress:u(),total:a(u()),message:a(V())}),e$=b({...M0.shape,...t$.shape,progressToken:SX}),YQ=b0.extend({method:R("notifications/progress"),params:e$}),QG=D0.extend({cursor:kX.optional()}),K9=W0.extend({params:QG.optional()}),B9=J0.extend({nextCursor:kX.optional()}),XG=j0(["working","input_required","completed","failed","cancelled"]),F9=b({taskId:V(),status:XG,ttl:p([u(),l8()]),createdAt:V(),lastUpdatedAt:V(),pollInterval:a(u()),statusMessage:a(V())}),F1=J0.extend({task:F9}),YG=M0.merge(F9),H9=b0.extend({method:R("notifications/tasks/status"),params:YG}),ZQ=W0.extend({method:R("tasks/get"),params:D0.extend({taskId:V()})}),WQ=J0.merge(F9),JQ=W0.extend({method:R("tasks/result"),params:D0.extend({taskId:V()})}),vq=J0.loose(),$Q=K9.extend({method:R("tasks/list")}),GQ=B9.extend({tasks:M(F9)}),KQ=W0.extend({method:R("tasks/cancel"),params:D0.extend({taskId:V()})}),uX=J0.merge(F9),lX=b({uri:V(),mimeType:a(V()),_meta:i(V(),s()).optional()}),mX=lX.extend({text:V()}),a8=V().refine((Q)=>{try{return atob(Q),!0}catch{return!1}},{message:"Invalid Base64 string"}),pX=lX.extend({blob:a8}),V9=j0(["user","assistant"]),C1=b({audience:M(V9).optional(),priority:u().min(0).max(1).optional(),lastModified:TX.datetime({offset:!0}).optional()}),dX=b({...I1.shape,...G9.shape,uri:V(),description:a(V()),mimeType:a(V()),annotations:C1.optional(),_meta:a(e({}))}),ZG=b({...I1.shape,...G9.shape,uriTemplate:V(),description:a(V()),mimeType:a(V()),annotations:C1.optional(),_meta:a(e({}))}),WG=K9.extend({method:R("resources/list")}),o8=B9.extend({resources:M(dX)}),JG=K9.extend({method:R("resources/templates/list")}),r8=B9.extend({resourceTemplates:M(ZG)}),t8=D0.extend({uri:V()}),$G=t8,GG=W0.extend({method:R("resources/read"),params:$G}),e8=J0.extend({contents:M(p([mX,pX]))}),L9=b0.extend({method:R("notifications/resources/list_changed"),params:M0.optional()}),KG=t8,BG=W0.extend({method:R("resources/subscribe"),params:KG}),FG=t8,HG=W0.extend({method:R("resources/unsubscribe"),params:FG}),VG=M0.extend({uri:V()}),Q6=b0.extend({method:R("notifications/resources/updated"),params:VG}),LG=b({name:V(),description:a(V()),required:a(l())}),OG=b({...I1.shape,...G9.shape,description:a(V()),arguments:a(M(LG)),_meta:a(e({}))}),UG=K9.extend({method:R("prompts/list")}),X6=B9.extend({prompts:M(OG)}),zG=D0.extend({name:V(),arguments:i(V(),V()).optional()}),qG=W0.extend({method:R("prompts/get"),params:zG}),Y6=b({type:R("text"),text:V(),annotations:C1.optional(),_meta:i(V(),s()).optional()}),Z6=b({type:R("image"),data:a8,mimeType:V(),annotations:C1.optional(),_meta:i(V(),s()).optional()}),W6=b({type:R("audio"),data:a8,mimeType:V(),annotations:C1.optional(),_meta:i(V(),s()).optional()}),AG=b({type:R("tool_use"),name:V(),id:V(),input:i(V(),s()),_meta:i(V(),s()).optional()}),jG=b({type:R("resource"),resource:p([mX,pX]),annotations:C1.optional(),_meta:i(V(),s()).optional()}),DG=dX.extend({type:R("resource_link")}),J6=p([Y6,Z6,W6,DG,jG]),MG=b({role:V9,content:J6}),$6=J0.extend({description:V().optional(),messages:M(MG)}),O9=b0.extend({method:R("notifications/prompts/list_changed"),params:M0.optional()}),bG=b({title:V().optional(),readOnlyHint:l().optional(),destructiveHint:l().optional(),idempotentHint:l().optional(),openWorldHint:l().optional()}),wG=b({taskSupport:j0(["required","optional","forbidden"]).optional()}),cX=b({...I1.shape,...G9.shape,description:V().optional(),inputSchema:b({type:R("object"),properties:i(V(),Z0).optional(),required:M(V()).optional()}).catchall(s()),outputSchema:b({type:R("object"),properties:i(V(),Z0).optional(),required:M(V()).optional()}).catchall(s()).optional(),annotations:bG.optional(),execution:wG.optional(),_meta:i(V(),s()).optional()}),NG=K9.extend({method:R("tools/list")}),G6=B9.extend({tools:M(cX)}),S1=J0.extend({content:M(J6).default([]),structuredContent:i(V(),s()).optional(),isError:l().optional()}),gq=S1.or(J0.extend({toolResult:s()})),RG=J9.extend({name:V(),arguments:i(V(),s()).optional()}),PG=W0.extend({method:R("tools/call"),params:RG}),U9=b0.extend({method:R("notifications/tools/list_changed"),params:M0.optional()}),iX=b({autoRefresh:l().default(!0),debounceMs:u().int().nonnegative().default(300)}),nX=j0(["debug","info","notice","warning","error","critical","alert","emergency"]),IG=D0.extend({level:nX}),TG=W0.extend({method:R("logging/setLevel"),params:IG}),EG=M0.extend({level:nX,logger:V().optional(),data:s()}),K6=b0.extend({method:R("notifications/message"),params:EG}),CG=b({name:V().optional()}),SG=b({hints:M(CG).optional(),costPriority:u().min(0).max(1).optional(),speedPriority:u().min(0).max(1).optional(),intelligencePriority:u().min(0).max(1).optional()}),kG=b({mode:j0(["auto","required","none"]).optional()}),xG=b({type:R("tool_result"),toolUseId:V().describe("The unique identifier for the corresponding tool call."),content:M(J6).default([]),structuredContent:b({}).loose().optional(),isError:l().optional(),_meta:i(V(),s()).optional()}),yG=m8("type",[Y6,Z6,W6]),r9=m8("type",[Y6,Z6,W6,AG,xG]),_G=b({role:V9,content:p([r9,M(r9)]),_meta:i(V(),s()).optional()}),fG=J9.extend({messages:M(_G),modelPreferences:SG.optional(),systemPrompt:V().optional(),includeContext:j0(["none","thisServer","allServers"]).optional(),temperature:u().optional(),maxTokens:u().int(),stopSequences:M(V()).optional(),metadata:Z0.optional(),tools:M(cX).optional(),toolChoice:kG.optional()}),B6=W0.extend({method:R("sampling/createMessage"),params:fG}),F6=J0.extend({model:V(),stopReason:a(j0(["endTurn","stopSequence","maxTokens"]).or(V())),role:V9,content:yG}),H6=J0.extend({model:V(),stopReason:a(j0(["endTurn","stopSequence","maxTokens","toolUse"]).or(V())),role:V9,content:p([r9,M(r9)])}),vG=b({type:R("boolean"),title:V().optional(),description:V().optional(),default:l().optional()}),gG=b({type:R("string"),title:V().optional(),description:V().optional(),minLength:u().optional(),maxLength:u().optional(),format:j0(["email","uri","date","date-time"]).optional(),default:V().optional()}),hG=b({type:j0(["number","integer"]),title:V().optional(),description:V().optional(),minimum:u().optional(),maximum:u().optional(),default:u().optional()}),uG=b({type:R("string"),title:V().optional(),description:V().optional(),enum:M(V()),default:V().optional()}),lG=b({type:R("string"),title:V().optional(),description:V().optional(),oneOf:M(b({const:V(),title:V()})),default:V().optional()}),mG=b({type:R("string"),title:V().optional(),description:V().optional(),enum:M(V()),enumNames:M(V()).optional(),default:V().optional()}),pG=p([uG,lG]),dG=b({type:R("array"),title:V().optional(),description:V().optional(),minItems:u().optional(),maxItems:u().optional(),items:b({type:R("string"),enum:M(V())}),default:M(V()).optional()}),cG=b({type:R("array"),title:V().optional(),description:V().optional(),minItems:u().optional(),maxItems:u().optional(),items:b({anyOf:M(b({const:V(),title:V()}))}),default:M(V()).optional()}),iG=p([dG,cG]),nG=p([mG,pG,iG]),sG=p([nG,vG,gG,hG]),aG=J9.extend({mode:R("form").optional(),message:V(),requestedSchema:b({type:R("object"),properties:i(V(),sG),required:M(V()).optional()})}),oG=J9.extend({mode:R("url"),message:V(),elicitationId:V(),url:V().url()}),rG=p([aG,oG]),V6=W0.extend({method:R("elicitation/create"),params:rG}),tG=M0.extend({elicitationId:V()}),eG=b0.extend({method:R("notifications/elicitation/complete"),params:tG}),L6=J0.extend({action:j0(["accept","decline","cancel"]),content:d8((Q)=>Q===null?void 0:Q,i(V(),p([V(),u(),l(),M(V())])).optional())}),Q3=b({type:R("ref/resource"),uri:V()});var X3=b({type:R("ref/prompt"),name:V()}),Y3=D0.extend({ref:p([X3,Q3]),argument:b({name:V(),value:V()}),context:b({arguments:i(V(),V()).optional()}).optional()}),Z3=W0.extend({method:R("completion/complete"),params:Y3});var O6=J0.extend({completion:e({values:M(V()).max(100),total:a(u().int()),hasMore:a(l())})}),W3=b({uri:V().startsWith("file://"),name:V().optional(),_meta:i(V(),s()).optional()}),J3=W0.extend({method:R("roots/list"),params:D0.optional()}),$3=J0.extend({roots:M(W3)}),U6=b0.extend({method:R("notifications/roots/list_changed"),params:M0.optional()}),hq=p([XQ,o$,Z3,TG,qG,UG,WG,JG,GG,BG,HG,PG,NG,ZQ,JQ,$Q,KQ]),uq=p([E1,YQ,QQ,U6,H9]),lq=p([B1,F6,H6,L6,$3,WQ,GQ,F1]),mq=p([XQ,B6,V6,J3,ZQ,JQ,$Q,KQ]),pq=p([E1,YQ,K6,Q6,L9,U9,O9,H9,eG]),dq=p([B1,s8,O6,$6,X6,o8,r8,e8,S1,G6,WQ,GQ,F1]);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 sX(Z.elicitations,X)}return new C(Q,X,Y)}}class sX 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 K3(Q){return(await z6).getRandomValues(new Uint8Array(Q))}async function B3(Q){let Y=Math.pow(2,8)-Math.pow(2,8)%66,Z="";while(Z.length<Q){let W=await K3(Q-Z.length);for(let J of W)if(J<Y)Z+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~"[J%66]}return Z}async function F3(Q){return await B3(Q)}async function H3(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 q6(Q){if(!Q)Q=43;if(Q<43||Q>128)throw`Expected a length between 43 and 128. Received ${Q}.`;let X=await F3(Q),Y=await H3(X);return{code_verifier:X,code_challenge:Y}}var $0=rX().superRefine((Q,X)=>{if(!URL.canParse(Q))return X.addIssue({code:eX.custom,message:"URL must be parseable",fatal:!0}),oX}).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"}),XY=e({resource:V().url(),authorization_servers:M($0).optional(),jwks_uri:V().url().optional(),scopes_supported:M(V()).optional(),bearer_methods_supported:M(V()).optional(),resource_signing_alg_values_supported:M(V()).optional(),resource_name:V().optional(),resource_documentation:V().optional(),resource_policy_uri:V().url().optional(),resource_tos_uri:V().url().optional(),tls_client_certificate_bound_access_tokens:l().optional(),authorization_details_types_supported:M(V()).optional(),dpop_signing_alg_values_supported:M(V()).optional(),dpop_bound_access_tokens_required:l().optional()}),A6=e({issuer:V(),authorization_endpoint:$0,token_endpoint:$0,registration_endpoint:$0.optional(),scopes_supported:M(V()).optional(),response_types_supported:M(V()),response_modes_supported:M(V()).optional(),grant_types_supported:M(V()).optional(),token_endpoint_auth_methods_supported:M(V()).optional(),token_endpoint_auth_signing_alg_values_supported:M(V()).optional(),service_documentation:$0.optional(),revocation_endpoint:$0.optional(),revocation_endpoint_auth_methods_supported:M(V()).optional(),revocation_endpoint_auth_signing_alg_values_supported:M(V()).optional(),introspection_endpoint:V().optional(),introspection_endpoint_auth_methods_supported:M(V()).optional(),introspection_endpoint_auth_signing_alg_values_supported:M(V()).optional(),code_challenge_methods_supported:M(V()).optional(),client_id_metadata_document_supported:l().optional()}),V3=e({issuer:V(),authorization_endpoint:$0,token_endpoint:$0,userinfo_endpoint:$0.optional(),jwks_uri:$0,registration_endpoint:$0.optional(),scopes_supported:M(V()).optional(),response_types_supported:M(V()),response_modes_supported:M(V()).optional(),grant_types_supported:M(V()).optional(),acr_values_supported:M(V()).optional(),subject_types_supported:M(V()),id_token_signing_alg_values_supported:M(V()),id_token_encryption_alg_values_supported:M(V()).optional(),id_token_encryption_enc_values_supported:M(V()).optional(),userinfo_signing_alg_values_supported:M(V()).optional(),userinfo_encryption_alg_values_supported:M(V()).optional(),userinfo_encryption_enc_values_supported:M(V()).optional(),request_object_signing_alg_values_supported:M(V()).optional(),request_object_encryption_alg_values_supported:M(V()).optional(),request_object_encryption_enc_values_supported:M(V()).optional(),token_endpoint_auth_methods_supported:M(V()).optional(),token_endpoint_auth_signing_alg_values_supported:M(V()).optional(),display_values_supported:M(V()).optional(),claim_types_supported:M(V()).optional(),claims_supported:M(V()).optional(),service_documentation:V().optional(),claims_locales_supported:M(V()).optional(),ui_locales_supported:M(V()).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()}),YY=b({...V3.shape,...A6.pick({code_challenge_methods_supported:!0}).shape}),ZY=b({access_token:V(),id_token:V().optional(),token_type:V(),expires_in:QY.number().optional(),scope:V().optional(),refresh_token:V().optional()}).strip(),WY=b({error:V(),error_description:V().optional(),error_uri:V().optional()}),aX=$0.optional().or(R("").transform(()=>{return})),L3=b({redirect_uris:M($0),token_endpoint_auth_method:V().optional(),grant_types:M(V()).optional(),response_types:M(V()).optional(),client_name:V().optional(),client_uri:$0.optional(),logo_uri:aX,scope:V().optional(),contacts:M(V()).optional(),tos_uri:aX,policy_uri:V().optional(),jwks_uri:$0.optional(),jwks:tX().optional(),software_id:V().optional(),software_version:V().optional(),software_statement:V().optional()}).strip(),O3=b({client_id:V(),client_secret:V().optional(),client_id_issued_at:u().optional(),client_secret_expires_at:u().optional()}).strip(),JY=L3.merge(O3),nq=b({error:V(),error_description:V().optional()}).strip(),sq=b({token:V(),token_type_hint:V().optional()}).strip();function $Y(Q){let X=typeof Q==="string"?new URL(Q):new URL(Q.href);return X.hash="",X}function GY({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 BQ extends r{}BQ.errorCode="invalid_request";class k1 extends r{}k1.errorCode="invalid_client";class x1 extends r{}x1.errorCode="invalid_grant";class y1 extends r{}y1.errorCode="unauthorized_client";class FQ extends r{}FQ.errorCode="unsupported_grant_type";class HQ extends r{}HQ.errorCode="invalid_scope";class VQ extends r{}VQ.errorCode="access_denied";class s0 extends r{}s0.errorCode="server_error";class LQ extends r{}LQ.errorCode="temporarily_unavailable";class OQ extends r{}OQ.errorCode="unsupported_response_type";class UQ extends r{}UQ.errorCode="unsupported_token_type";class zQ extends r{}zQ.errorCode="invalid_token";class qQ extends r{}qQ.errorCode="method_not_allowed";class AQ extends r{}AQ.errorCode="too_many_requests";class _1 extends r{}_1.errorCode="invalid_client_metadata";class jQ extends r{}jQ.errorCode="insufficient_scope";class DQ extends r{}DQ.errorCode="invalid_target";var KY={[BQ.errorCode]:BQ,[k1.errorCode]:k1,[x1.errorCode]:x1,[y1.errorCode]:y1,[FQ.errorCode]:FQ,[HQ.errorCode]:HQ,[VQ.errorCode]:VQ,[s0.errorCode]:s0,[LQ.errorCode]:LQ,[OQ.errorCode]:OQ,[UQ.errorCode]:UQ,[zQ.errorCode]:zQ,[qQ.errorCode]:qQ,[AQ.errorCode]:AQ,[_1.errorCode]:_1,[jQ.errorCode]:jQ,[DQ.errorCode]:DQ};class O0 extends Error{constructor(Q){super(Q??"Unauthorized")}}function U3(Q){return["client_secret_basic","client_secret_post","none"].includes(Q)}var j6="code",D6="S256";function z3(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&&U3(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 q3(Q,X,Y,Z){let{client_id:W,client_secret:J}=X;switch(Q){case"client_secret_basic":A3(W,J,Y);return;case"client_secret_post":j3(W,J,Z);return;case"none":D3(W,Z);return;default:throw Error(`Unsupported client authentication method: ${Q}`)}}function A3(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 j3(Q,X,Y){if(Y.set("client_id",Q),X)Y.set("client_secret",X)}function D3(Q,X){X.set("client_id",Q)}async function FY(Q){let X=Q instanceof Response?Q.status:void 0,Y=Q instanceof Response?await Q.text():Q;try{let Z=WY.parse(JSON.parse(Y)),{error:W,error_description:J,error_uri:$}=Z;return new(KY[W]||s0)(J||"",$)}catch(Z){let W=`${X?`HTTP ${X}: `:""}Invalid OAuth error response: ${Z}. Raw body: ${Y}`;return new s0(W)}}async function g0(Q,X){try{return await M6(Q,X)}catch(Y){if(Y instanceof k1||Y instanceof y1)return await Q.invalidateCredentials?.("all"),await M6(Q,X);else if(Y instanceof x1)return await Q.invalidateCredentials?.("tokens"),await M6(Q,X);throw Y}}async function M6(Q,{serverUrl:X,authorizationCode:Y,scope:Z,resourceMetadataUrl:W,fetchFn:J}){let $,G;try{if($=await w3(X,{resourceMetadataUrl:W},J),$.authorization_servers&&$.authorization_servers.length>0)G=$.authorization_servers[0]}catch{}if(!G)G=new URL("/",X);let K=await b3(X,Q,$),B=await T3(G,{fetchFn:J}),F=await Promise.resolve(Q.clientInformation());if(!F){if(Y!==void 0)throw Error("Existing OAuth client information is required when exchanging an authorization code");let j=B?.client_id_metadata_document_supported===!0,A=Q.clientMetadataUrl;if(A&&!M3(A))throw new _1(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${A}`);if(j&&A)F={client_id:A},await Q.saveClientInformation?.(F);else{if(!Q.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let E=await x3(G,{metadata:B,clientMetadata:Q.clientMetadata,fetchFn:J});await Q.saveClientInformation(E),F=E}}let H=!Q.redirectUrl;if(Y!==void 0||H){let j=await k3(Q,G,{metadata:B,resource:K,authorizationCode:Y,fetchFn:J});return await Q.saveTokens(j),"AUTHORIZED"}let O=await Q.tokens();if(O?.refresh_token)try{let j=await S3(G,{metadata:B,clientInformation:F,refreshToken:O.refresh_token,resource:K,addClientAuthentication:Q.addClientAuthentication,fetchFn:J});return await Q.saveTokens(j),"AUTHORIZED"}catch(j){if(!(j instanceof r)||j instanceof s0);else throw j}let q=Q.state?await Q.state():void 0,{authorizationUrl:z,codeVerifier:U}=await E3(G,{metadata:B,clientInformation:F,state:q,redirectUrl:Q.redirectUrl,scope:Z||$?.scopes_supported?.join(" ")||Q.clientMetadata.scope,resource:K});return await Q.saveCodeVerifier(U),await Q.redirectToAuthorization(z),"REDIRECT"}function M3(Q){if(!Q)return!1;try{let X=new URL(Q);return X.protocol==="https:"&&X.pathname!=="/"}catch{return!1}}async function b3(Q,X,Y){let Z=$Y(Q);if(X.validateResourceURL)return await X.validateResourceURL(Z,Y?.resource);if(!Y)return;if(!GY({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 w3(Q,X,Y=fetch){let Z=await P3(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 XY.parse(await Z.json())}async function w6(Q,X,Y=fetch){try{return await Y(Q,{headers:X})}catch(Z){if(Z instanceof TypeError)if(X)return w6(Q,void 0,Y);else return;throw Z}}function N3(Q,X="",Y={}){if(X.endsWith("/"))X=X.slice(0,-1);return Y.prependPathname?`${X}/.well-known/${Q}`:`/.well-known/${Q}${X}`}async function BY(Q,X,Y=fetch){return await w6(Q,{"MCP-Protocol-Version":X},Y)}function R3(Q,X){return!Q||Q.status>=400&&Q.status<500&&X!=="/"}async function P3(Q,X,Y,Z){let W=new URL(Q),J=Z?.protocolVersion??T1,$;if(Z?.metadataUrl)$=new URL(Z.metadataUrl);else{let K=N3(X,W.pathname);$=new URL(K,Z?.metadataServerUrl??W),$.search=W.search}let G=await BY($,J,Y);if(!Z?.metadataUrl&&R3(G,W.pathname)){let K=new URL(`/.well-known/${X}`,W);G=await BY(K,J,Y)}return G}function I3(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 T3(Q,{fetchFn:X=fetch,protocolVersion:Y=T1}={}){let Z={"MCP-Protocol-Version":Y,Accept:"application/json"},W=I3(Q);for(let{url:J,type:$}of W){let G=await w6(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 A6.parse(await G.json());else return YY.parse(await G.json())}return}async function E3(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(j6))throw Error(`Incompatible auth server: does not support response type ${j6}`);if(X.code_challenge_methods_supported&&!X.code_challenge_methods_supported.includes(D6))throw Error(`Incompatible auth server: does not support code challenge method ${D6}`)}else G=new URL("/authorize",Q);let K=await q6(),B=K.code_verifier,F=K.code_challenge;if(G.searchParams.set("response_type",j6),G.searchParams.set("client_id",Y.client_id),G.searchParams.set("code_challenge",F),G.searchParams.set("code_challenge_method",D6),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 C3(Q,X,Y){return new URLSearchParams({grant_type:"authorization_code",code:Q,code_verifier:X,redirect_uri:String(Y)})}async function HY(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 F=X?.token_endpoint_auth_methods_supported??[],H=z3(Z,F);q3(H,Z,K,Y)}let B=await($??fetch)(G,{method:"POST",headers:K,body:Y});if(!B.ok)throw await FY(B);return ZY.parse(await B.json())}async function S3(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 HY(Q,{metadata:X,tokenRequestParams:G,clientInformation:Y,addClientAuthentication:J,resource:W,fetchFn:$});return{refresh_token:Z,...K}}async function k3(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=C3(W,B,Q.redirectUrl)}let K=await Q.clientInformation();return HY(X,{metadata:Y,tokenRequestParams:G,clientInformation:K??void 0,addClientAuthentication:Q.addClientAuthentication,resource:Z,fetchFn:J})}async function x3(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 FY(J);return JY.parse(await J.json())}class VY extends Error{constructor(Q,X,Y){super(`SSE error: ${X}`);this.code=Q,this.event=Y}}class N6{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=o9(X?.fetch,X?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new O0("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 O0;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=P1(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 R1(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 VY(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=n0.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 O0("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 O0("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 O0;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 R6 extends TransformStream{constructor({onError:Q,onRetry:X,onComment:Y}={}){let Z;super({start(W){Z=n9({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 y3={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};class H1 extends Error{constructor(Q,X){super(`Streamable HTTP error: ${X}`);this.code=Q}}class MQ{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=o9(X?.fetch,X?.requestInit),this._sessionId=X?.sessionId,this._reconnectionOptions=X?.reconnectionOptions??y3}async _authThenStart(){if(!this._authProvider)throw new O0("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 O0;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=P1(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 H1(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 R6({onRetry:(O)=>{this._serverRetryMs=O}})).getReader();while(!0){let{value:O,done:q}=await B.read();if(q)break;if(O.id)J=O.id,$=!0,Z?.(O.id);if(!O.data)continue;if(!O.event||O.event==="message")try{let z=n0.parse(JSON.parse(O.data));if(K1(z)){if(G=!0,W!==void 0)z.id=W}this.onmessage?.(z)}catch(z){this.onerror?.(z)}}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 O0("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 O0("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:$9(Q)?Q.id:void 0}).catch((H)=>this.onerror?.(H));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 H=await $.text().catch(()=>null);if($.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new H1(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:O,scope:q}=f1($);if(this._resourceMetadataUrl=O,this._scope=q,await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new O0;return this._hasCompletedAuthFlow=!0,this.send(Q)}if($.status===403&&this._authProvider){let{resourceMetadataUrl:O,scope:q,error:z}=f1($);if(z==="insufficient_scope"){let U=$.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===U)throw new H1(403,"Server returned 403 after trying upscoping");if(q)this._scope=q;if(O)this._resourceMetadataUrl=O;if(this._lastUpscopingHeader=U??void 0,await g0(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new O0;return this.send(Q)}}throw new H1($.status,`Error POSTing to endpoint: ${H}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,$.status===202){if(await $.body?.cancel(),hX(Q))this._startOrAuthSse({resumptionToken:void 0}).catch((H)=>this.onerror?.(H));return}let B=(Array.isArray(Q)?Q:[Q]).filter((H)=>("method"in H)&&("id"in H)&&H.id!==void 0).length>0,F=$.headers.get("content-type");if(B)if(F?.includes("text/event-stream"))this._handleSseStream($.body,{onresumptiontoken:Z},!1);else if(F?.includes("application/json")){let H=await $.json(),O=Array.isArray(H)?H.map((q)=>n0.parse(q)):[n0.parse(H)];for(let q of O)this.onmessage?.(q)}else throw await $.body?.cancel(),new H1(-1,`Unexpected content type: ${F}`);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 H1(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 v1(Q){return!!Q._zod}function I0(Q,X){if(v1(Q))return P6(Q,X);return Q.safeParse(X)}function bQ(Q){if(!Q)return;let X;if(v1(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 LY(Q){if(v1(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 a0(Q){return Q==="completed"||Q==="failed"||Q==="cancelled"}function I6(Q){let Y=bQ(Q)?.method;if(!Y)throw Error("Schema is missing a method literal");let Z=LY(Y);if(typeof Z!=="string")throw Error("Schema method literal must be a string");return Z}function T6(Q,X){let Y=I0(Q,X);if(!Y.success)throw Y.error;return Y.data}var f3=60000;class E6{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(E1,(X)=>{this._oncancel(X)}),this.setNotificationHandler(YQ,(X)=>{this._onprogress(X)}),this.setRequestHandler(XQ,(X)=>({})),this._taskStore=Q?.taskStore,this._taskMessageQueue=Q?.taskMessageQueue,this._taskStore)this.setRequestHandler(ZQ,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(JQ,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 F=G,H=new C(F.error.code,F.error.message,F.error.data);B(H)}else{let F=$.type==="response"?"Response":"Error";this._onerror(Error(`${F} 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(!a0(J.status))return await this._waitForTaskUpdate(W,Y.signal),await Z();if(a0(J.status)){let $=await this._taskStore.getTaskResult(W,Y.sessionId);return this._clearTaskQueue(W),{...$,_meta:{...$._meta,[i0]:{taskId:W}}}}return await Z()};return await Z()}),this.setRequestHandler($Q,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(KQ,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(a0(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)||vX(W))this._onresponse(W);else if($9(W))this._onrequest(W,J);else if(fX(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?.[i0]?.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((F)=>this._onerror(Error(`Failed to enqueue error response: ${F}`)));else Z?.send(B).catch((F)=>this._onerror(Error(`Failed to send an error response: ${F}`)));return}let J=new AbortController;this._requestHandlerAbortControllers.set(Q.id,J);let $=xX(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 F={relatedRequestId:Q.id};if(W)F.relatedTask={taskId:W};await this.notification(B,F)},sendRequest:async(B,F,H)=>{if(J.signal.aborted)throw new C(S.ConnectionClosed,"Request was cancelled");let O={...H,relatedRequestId:Q.id};if(W&&!O.relatedTask)O.relatedTask={taskId:W};let q=O.relatedTask?.taskId??W;if(q&&G)await G.updateTaskStatus(q,"input_required");return await this.request(B,F,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 F={result:B,jsonrpc:"2.0",id:Q.id};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"response",message:F,timestamp:Date.now()},Z?.sessionId);else await Z?.send(F)},async(B)=>{if(J.signal.aborted)return;let F={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:F,timestamp:Date.now()},Z?.sessionId);else await Z?.send(F)}).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,F1,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:$},a0($.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 F=(A)=>{B(A)};if(!this._transport){F(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod(Q.method),$)this.assertTaskCapability(Q.method)}catch(A){F(A);return}Y?.signal?.throwIfAborted();let H=this._requestMessageId++,O={...Q,jsonrpc:"2.0",id:H};if(Y?.onprogress)this._progressHandlers.set(H,Y.onprogress),O.params={...Q.params,_meta:{...Q.params?._meta||{},progressToken:H}};if($)O.params={...O.params,task:$};if(G)O.params={...O.params,_meta:{...O.params?._meta||{},[i0]:G}};let q=(A)=>{this._responseHandlers.delete(H),this._progressHandlers.delete(H),this._cleanupTimeout(H),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:H,reason:String(A)}},{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:J}).catch((E)=>this._onerror(Error(`Failed to send cancellation: ${E}`)));let w=A instanceof C?A:new C(S.RequestTimeout,String(A));B(w)};this._responseHandlers.set(H,(A)=>{if(Y?.signal?.aborted)return;if(A instanceof Error)return B(A);try{let w=I0(X,A.result);if(!w.success)B(w.error);else K(w.data)}catch(w){B(w)}}),Y?.signal?.addEventListener("abort",()=>{q(Y?.signal?.reason)});let z=Y?.timeout??f3,U=()=>q(C.fromError(S.RequestTimeout,"Request timed out",{timeout:z}));this._setupTimeout(H,z,Y?.maxTotalTimeout,U,Y?.resetTimeoutOnProgress??!1);let j=G?.taskId;if(j){let A=(w)=>{let E=this._responseHandlers.get(H);if(E)E(w);else this._onerror(Error(`Response handler missing for side-channeled request ${H}`))};this._requestResolvers.set(H,A),this._enqueueTaskMessage(j,{type:"request",message:O,timestamp:Date.now()}).catch((w)=>{this._cleanupTimeout(H),B(w)})}else this._transport.send(O,{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:J}).catch((A)=>{this._cleanupTimeout(H),B(A)})})}async getTask(Q,X){return this.request({method:"tasks/get",params:Q},WQ,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},GQ,X)}async cancelTask(Q,X){return this.request({method:"tasks/cancel",params:Q},uX,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||{},[i0]: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||{},[i0]: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||{},[i0]:X.relatedTask}}};await this._transport.send(J,X)}setRequestHandler(Q,X){let Y=I6(Q);this.assertRequestHandlerCapability(Y),this._requestHandlers.set(Y,(Z,W)=>{let J=T6(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=I6(Q);this._notificationHandlers.set(Y,(Z)=>{let W=T6(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"&&$9(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),a0($.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(a0($.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),a0(G.status))this._cleanupTaskProgressHandler(Z)}},listTasks:(Z)=>{return Y.listTasks(Z,X)}}}}function OY(Q){return Q!==null&&typeof Q==="object"&&!Array.isArray(Q)}function UY(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(OY($)&&OY(J))Y[W]={...$,...J};else Y[W]=J}return Y}var iW=Z1(w4(),1),nW=Z1(cW(),1);function iU(){let Q=new iW.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return nW.default(Q),Q}class x4{constructor(Q){this._ajv=Q??iU()}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 y4{constructor(Q){this._client=Q}async*callToolStream(Q,X=S1,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 sW(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 aW(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 $8(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)$8(J,Y[W])}}if(Array.isArray(Q.anyOf)){for(let Y of Q.anyOf)if(typeof Y!=="boolean")$8(Y,X)}if(Array.isArray(Q.oneOf)){for(let Y of Q.oneOf)if(typeof Y!=="boolean")$8(Y,X)}}function nU(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 _4 extends E6{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 x4,X?.listChanged)this._pendingListChangedConfig=X.listChanged}_setupListChangedHandlers(Q){if(Q.tools&&this._serverCapabilities?.tools?.listChanged)this._setupListChangedHandler("tools",U9,Q.tools,async()=>{return(await this.listTools()).tools});if(Q.prompts&&this._serverCapabilities?.prompts?.listChanged)this._setupListChangedHandler("prompts",O9,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 y4(this)};return this._experimental}registerCapabilities(Q){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=UY(this._capabilities,Q)}setRequestHandler(Q,X){let Z=bQ(Q)?.method;if(!Z)throw Error("Schema is missing a method literal");let W;if(v1(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(V6,G);if(!B.success){let A=B.error instanceof Error?B.error.message:String(B.error);throw new C(S.InvalidParams,`Invalid elicitation request: ${A}`)}let{params:F}=B.data;F.mode=F.mode??"form";let{supportsFormMode:H,supportsUrlMode:O}=nU(this._capabilities.elicitation);if(F.mode==="form"&&!H)throw new C(S.InvalidParams,"Client does not support form-mode elicitation requests");if(F.mode==="url"&&!O)throw new C(S.InvalidParams,"Client does not support URL-mode elicitation requests");let q=await Promise.resolve(X(G,K));if(F.task){let A=I0(F1,q);if(!A.success){let w=A.error instanceof Error?A.error.message:String(A.error);throw new C(S.InvalidParams,`Invalid task creation result: ${w}`)}return A.data}let z=I0(L6,q);if(!z.success){let A=z.error instanceof Error?z.error.message:String(z.error);throw new C(S.InvalidParams,`Invalid elicitation result: ${A}`)}let U=z.data,j=F.mode==="form"?F.requestedSchema:void 0;if(F.mode==="form"&&U.action==="accept"&&U.content&&j){if(this._capabilities.elicitation?.form?.applyDefaults)try{$8(j,U.content)}catch{}}return U};return super.setRequestHandler(Q,$)}if(J==="sampling/createMessage"){let $=async(G,K)=>{let B=I0(B6,G);if(!B.success){let U=B.error instanceof Error?B.error.message:String(B.error);throw new C(S.InvalidParams,`Invalid sampling request: ${U}`)}let{params:F}=B.data,H=await Promise.resolve(X(G,K));if(F.task){let U=I0(F1,H);if(!U.success){let j=U.error instanceof Error?U.error.message:String(U.error);throw new C(S.InvalidParams,`Invalid task creation result: ${j}`)}return U.data}let q=F.tools||F.toolChoice?H6:F6,z=I0(q,H);if(!z.success){let U=z.error instanceof Error?z.error.message:String(z.error);throw new C(S.InvalidParams,`Invalid sampling result: ${U}`)}return z.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:T1,capabilities:this._capabilities,clientInfo:this._clientInfo}},s8,X);if(Y===void 0)throw Error(`Server sent invalid initialize result: ${Y}`);if(!CX.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){sW(this._serverCapabilities?.tasks?.requests,Q,"Server")}assertTaskHandlerCapability(Q){if(!this._capabilities)return;aW(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},O6,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},$6,X)}async listPrompts(Q,X){return this.request({method:"prompts/list",params:Q},X6,X)}async listResources(Q,X){return this.request({method:"resources/list",params:Q},o8,X)}async listResourceTemplates(Q,X){return this.request({method:"resources/templates/list",params:Q},r8,X)}async readResource(Q,X){return this.request({method:"resources/read",params:Q},e8,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=S1,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},G6,X);return this.cacheToolMetadata(Y.tools),Y}_setupListChangedHandler(Q,X,Y,Z){let W=iX.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 F=await Z();G(null,F)}catch(F){let H=F instanceof Error?F:Error(String(F));G(H,null)}},B=()=>{if($){let F=this._listChangedDebounceTimers.get(Q);if(F)clearTimeout(F);let H=setTimeout(K,$);this._listChangedDebounceTimers.set(Q,H)}else K()};this.setNotificationHandler(X,B)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var rW=Z1(aU(),1);import G8 from"node:process";import{PassThrough as oU}from"node:stream";class f4{append(Q){this._buffer=this._buffer?Buffer.concat([this._buffer,Q]):Q}readMessage(){if(!this._buffer)return null;let Q=this._buffer.indexOf(`
71
+ `);if(Q===-1)return null;let X=this._buffer.toString("utf8",0,Q).replace(/\r$/,"");return this._buffer=this._buffer.subarray(Q+1),sU(X)}clear(){this._buffer=void 0}}function sU(Q){return n0.parse(JSON.parse(Q))}function oW(Q){return JSON.stringify(Q)+`
72
+ `}var rU=G8.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function tU(){let Q={};for(let X of rU){let Y=G8.env[X];if(Y===void 0)continue;if(Y.startsWith("()"))continue;Q[X]=Y}return Q}class v4{constructor(Q){if(this._readBuffer=new f4,this._stderrStream=null,this._serverParams=Q,Q.stderr==="pipe"||Q.stderr==="overlapped")this._stderrStream=new oU}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=rW.default(this._serverParams.command,this._serverParams.args??[],{env:{...tU(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:G8.platform==="win32"&&eU(),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=oW(Q);if(this._process.stdin.write(Y))X();else this._process.stdin.once("drain",X)})}}function eU(){return"type"in G8}var o1=j1("connection"),Qz=["http","sse","stdio"],eW=class{#Y=new Map;#Q;constructor(Q={}){this.#Q=Q}async createClient(...Q){let[X,Y,Z]=Q;if(!Qz.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 _4({name:T8.name,version:T8.version});if(await J.connect(W),this.#Q.onMessage)J.setNotificationHandler(K6,(B)=>this.#Q.onMessage?.(B.params,{server:Y,options:Z}));if(this.#Q.onInitialized)J.setNotificationHandler(QQ,()=>this.#Q.onInitialized?.({server:Y,options:Z}));if(this.#Q.onCancelled)J.setNotificationHandler(E1,(B)=>{let{requestId:F,reason:H}=B.params;if(F==null)return;let O=this.#Q.onCancelled?.({requestId:F,reason:H},{server:Y,options:Z});if(O&&typeof O.catch==="function")O.catch(()=>{})});if(this.#Q.onPromptsListChanged)J.setNotificationHandler(O9,()=>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(Q6,(B)=>this.#Q.onResourcesUpdated?.(B.params,{server:Y,options:Z}));if(this.#Q.onRootsListChanged)J.setNotificationHandler(U6,()=>this.#Q.onRootsListChanged?.({server:Y,options:Z}));if(this.#Q.onToolsListChanged)J.setNotificationHandler(U9,()=>this.#Q.onToolsListChanged?.({server:Y,options:Z}));let $=X==="stdio"?{serverName:Y}:{serverName:Y,headers:tW(Z.headers),authProvider:Z.authProvider},G=(B)=>{return this.#$($,B)},K=new Proxy(J,{get(B,F){if(F==="fork")return G.bind(this);return B[F]}});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=tW(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)o1(`DEBUG: Using custom headers for SSE transport to server "${Q}"`);if($.authProvider)o1(`DEBUG: Using OAuth authentication for Streamable HTTP transport to server "${Q}"`);if($.reconnectionOptions)if($.reconnectionOptions.maxRetries===0)o1(`DEBUG: Disabling reconnection for Streamable HTTP transport to server "${Q}"`);else o1(`DEBUG: Using custom reconnection options for Streamable HTTP transport to server "${Q}"`);return Object.keys($).length>0?new MQ(new URL(Y),$):new MQ(new URL(Y))}async#Z(Q,X){let{url:Y,headers:Z,authProvider:W}=X,J={};if(W)J.authProvider=W,o1(`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,F])=>{K.set(B,F)}),K.set("Accept","text/event-stream"),fetch($,{...G,headers:K})}},J.requestInit={headers:Z},o1(`DEBUG: Using custom headers for SSE transport to server "${Q}"`);return new N6(new URL(Y),J)}#W(Q){let{command:X,args:Y,env:Z,stderr:W,cwd:J}=Q;return new v4({command:X,args:Y,stderr:W,cwd:J,...Z?{env:{PATH:process.env.PATH,...Z}}:{}})}};function tW(Q){if(!Q)return;return Object.entries(Q).sort(([X],[Y])=>X.localeCompare(Y)).map(([X,Y])=>`${X}: ${Y}`).join(`
73
+ `)}var n=j1(),V0=class extends Error{constructor(Q,X){super(Q);this.serverName=X,this.name="MCPClientError"}};function QJ(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 XJ(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 g4=class{#Y={};#Q;#$={};#X;#J;#Z;#W=new Set;get config(){return JSON.parse(JSON.stringify(this.#J))}constructor(Q){let X,Y=zX;if("mcpServers"in Q)X=Y.parse(Q);else{let Z=L.record(c9).parse(Q);X=Y.parse({mcpServers:Z})}if(Object.keys(X.mcpServers).length===0)throw new V0("No MCP servers provided");for(let[Z,W]of Object.entries(X.mcpServers)){let J=qX(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 eW(X),this.#Z=X.onConnectionError}async initializeConnections(Q){if(!this.#Q||Object.keys(this.#Q).length===0)throw new V0("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 V0(`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 V0(`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(QJ(X)){if(n(`INFO: Initializing stdio connection to server "${Q}"...`),this.#X.has(Q))return;await this._initializeStdioConnection(Q,X)}else if(XJ(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 V0(`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 V0(`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 F=this._toSSEConnectionURL(Y);if(F!==Y)try{await this._initializeSSEConnection(Q,{...X,url:F})}catch(H){if(K===401)throw new V0(this._createAuthenticationErrorMessage(Q,Y,"HTTP",`${G}. Also tried SSE fallback at ${Y} and ${F}, but both failed with authentication errors.`),Q);throw new V0(`Failed to connect to streamable HTTP server "${Q}, url: ${Y}": ${G}. Additionally, tried falling back to SSE at ${Y} and ${F}, but this also failed: ${H}`,Q)}else{if(K===401)throw new V0(this._createAuthenticationErrorMessage(Q,Y,"HTTP",`${G}. Also tried SSE fallback at ${Y}, but it failed with authentication error: ${B}`),Q);throw new V0(`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 V0(this._createAuthenticationErrorMessage(Q,Y,"HTTP",`${G}`),Q);throw new V0(`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 V0(this._createAuthenticationErrorMessage(Q,Y,"SSE",`${$}`),Q);throw new V0(`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 I8(Q,X,this.#$[Q]);this.#Y[Q]=Y,n(`INFO: Successfully loaded ${Y.length} tools from server "${Q}"`)}catch(Y){throw new V0(`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(QJ(X))await this._initializeStdioConnection(Q,X);else if(XJ(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 Xz=D.object({}),Yz=D.object({commands:D.array(D.object({name:D.string().describe("MCP tool name"),args:D.record(D.string(),D.any()).describe("Tool parameters in JSON object format")})).describe("List of MCP tools to execute")});class YJ{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 g4({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=h9(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:Xz}),this.executeMcpToolTool=h9(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:Yz})}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 zM(Q){return new YJ(Q)}var JJ=new WJ({task_store:new ZJ(D.record(D.string(),D.any()).default(()=>({})),{reducer:(Q,X)=>({...Q,...X})})}),MM=JJ,bM=JJ,Zz=D.object({task_id:D.string().optional().describe("The task id to ask the subagent, if not provided, will use the tool call id"),subagent_id:D.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:D.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:D.string().describe("Describe the user state and what you want the subagent to do."),data_transfer:D.any().optional().describe("Data to transfer to the subagent.")}),Wz=`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
+ `,u4=(Q,X)=>h9(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 h4({content:Y.task_description})),Y.data_transfer)$.messages.push(new h4({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),F={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((H)=>{if(H in K)F[H]=K[H]}),new i9({update:F})},{name:X?.name||"task",description:X?.description||Wz,schema:Zz}),wM=u4;async function RM(Q){return(await Q.listAgents()).map((Y)=>({id:Y.id,name:Y.name||Y.id,description:Y.description||""}))}var Jz=`
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 $z(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 Gz{name="SubAgentsMiddleware";stateSchema;contextSchema;tools=[];agents;formatAgentListFn;agentListString;constructor(Q){if(this.agents=Q.agents,this.formatAgentListFn=Q.formatAgentList||$z,Q.stateSchema)this.stateSchema=Q.stateSchema;if(Q.contextSchema)this.contextSchema=Q.contextSchema;this.agentListString=this.formatAgentListFn(this.agents);let X=u4(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=Jz.replace("{subagents_list}",this.agentListString),Z;if(Q.systemPrompt)Z=Q.systemPrompt+`
220
+
221
+ `+Y;else Z=Y;let W={...Q,systemMessage:new A1(Z)};return await X(W)}}var Kz=D.function({input:D.tuple([D.custom(),D.custom(),D.custom()]),output:D.union([D.string(),D.promise(D.string())])}),BJ=["approve","edit","reject","respond"],Bz=D.enum(BJ),Fz=D.object({allowedDecisions:D.array(Bz),description:D.union([D.string(),Kz]).optional(),argsSchema:D.record(D.string(),D.any()).optional()}),$J=D.object({interruptOn:D.record(D.string(),D.union([D.boolean(),Fz])).optional(),descriptionPrefix:D.string().default("Tool execution requires approval")});function mM(Q){let X=async(Z,W,J,$)=>{let{name:G,args:K}=Z,B=W.description,F;if(typeof B==="function")F=await B(Z,J,$);else if(B!==void 0)F=B;else F=`${Q.descriptionPrefix??"Tool execution requires approval"}
222
+
223
+ Tool: ${G}
224
+ Args: ${JSON.stringify(K,null,2)}`;let H={name:G,args:K,description:F},O={actionName:G,allowedDecisions:W.allowedDecisions};if(W.argsSchema)O.argsSchema=W.argsSchema;return{actionRequest:H,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 Q9({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 Q9({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 m9({name:"HumanInTheLoopMiddleware",contextSchema:$J,afterModel:{canJumpTo:["model"],hook:async(Z,W)=>{let J=GJ($J,{...Q,...W.context||{}});if(!J)return;let{messages:$}=Z;if(!$.length)return;let G=[...$].reverse().find((I)=>K8.isInstance(I));if(!G||!K8.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:[...BJ]}}else if(T.allowedDecisions)K[I]=T;let B=[],F=[];for(let I of G.tool_calls)if(I.name in K)B.push(I);else F.push(I);if(!B.length)return;let H=[],O=[];for(let I of B){let T=K[I.name],{actionRequest:Q0,reviewConfig:B0}=await X(I,T,Z,W);H.push(Q0),O.push(B0)}let U=(await KJ({actionRequests:H,reviewConfigs:O})).decisions;if(!U||!Array.isArray(U))throw Error("Invalid HITLResponse: decisions must be a non-empty array");if(U.length!==B.length)throw Error(`Number of human decisions (${U.length}) does not match number of hanging tool calls (${B.length}).`);let j=[...F],A=[],w=U.some((I)=>I.type==="reject"||I.type==="respond");for(let I=0;I<U.length;I++){let T=U[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"))j.push(X0);if(Y0)A.push(Y0)}if(K8.isInstance(G))G.tool_calls=j;let E=w?"model":void 0;return{messages:[G,...A],jumpTo:E}}}})}var FJ=Z1(M8(),1);function Hz(Q){let X=Q.match(/^---\r?\n([\s\S]*?)---\r?\n([\s\S]*)$/);if(!X)return null;return{frontmatter:X[1].replace(/\r?\n$/,""),body:X[2]}}function Vz(Q){if(!Q||typeof Q!=="object")return;let X=Q,Y={},Z=(W)=>{if(!Array.isArray(W))return;return W.map((J)=>{if(typeof J!=="object"||J===null)return null;let $=J,G=$.hooks;if(!Array.isArray(G))return null;return{matcher:typeof $.matcher==="string"?$.matcher:void 0,hooks:G.filter((K)=>typeof K==="object"&&K!==null&&K.type==="command"&&typeof K.command==="string").map((K)=>({type:"command",command:K.command}))}}).filter((J)=>J!==null&&J.hooks.length>0)};if(X.PreToolUse){let W=Z(X.PreToolUse);if(W&&W.length>0)Y.PreToolUse=W}if(X.PostToolUse){let W=Z(X.PostToolUse);if(W&&W.length>0)Y.PostToolUse=W}if(X.Stop){let W=Z(X.Stop);if(W&&W.length>0)Y.Stop=W}return Object.keys(Y).length>0?Y:void 0}function l4(Q,X){let Y=Hz(Q);if(!Y)throw Error(`Invalid Agent.md format: No YAML frontmatter found${X?` in ${X}`:""}. Expected format:
225
+ ---
226
+ name: agent-name
227
+ ---
228
+ System prompt content`);let Z;try{Z=FJ.parse(Y.frontmatter)}catch(O){throw Error(`Failed to parse YAML frontmatter${X?` in ${X}`:""}: ${O instanceof Error?O.message:String(O)}`)}if(!Z||typeof Z!=="object")Z={};let{name:W,description:J}=Z;if(typeof W!=="string"||!W.trim())throw Error("Agent name is required");if(typeof J!=="string"||!J.trim())throw Error("Agent description is required");let $=Z.model;if($!==void 0&&!["sonnet","opus","haiku","inherit"].includes($))throw Error(`Invalid model value '${$}'${X?` in ${X}`:""}. Must be one of: sonnet, opus, haiku, inherit`);let G=Z.memory;if(G!==void 0&&!["user","project","local"].includes(G))throw Error(`Invalid memory value '${G}'${X?` in ${X}`:""}. Must be one of: user, project, local`);let K=Z.permissionMode,B=["default","acceptEdits","dontAsk","bypassPermissions","plan"];if(K!==void 0&&!B.includes(K))throw Error(`Invalid permissionMode value '${K}'${X?` in ${X}`:""}. Must be one of: ${B.join(", ")}`);let F={name:W.trim(),description:J.trim(),systemPrompt:Y.body.trim(),filePath:X};if($!==void 0)F.model=$;if(Array.isArray(Z.tools))F.tools=Z.tools.filter((O)=>typeof O==="string");if(Array.isArray(Z.disallowedTools))F.disallowedTools=Z.disallowedTools.filter((O)=>typeof O==="string");if(Array.isArray(Z.skills))F.skills=Z.skills.filter((O)=>typeof O==="string");if(Z.mcpServers&&typeof Z.mcpServers==="object")F.mcpServers=Z.mcpServers;let H=Vz(Z.hooks);if(H)F.hooks=H;if(G!==void 0)F.memory=G;if(K!==void 0)F.permissionMode=K;if(typeof Z.maxTurns==="number")F.maxTurns=Math.floor(Z.maxTurns);if(typeof Z.background==="boolean")F.background=Z.background;if(Z.isolation==="worktree")F.isolation="worktree";return F}function m4(Q){let X=[];if(!Q.name?.trim())X.push("Agent name is required");if(!Q.description?.trim())X.push("Agent description is required");if(!Q.systemPrompt?.trim())X.push("Agent systemPrompt is required");if(Q.model!==void 0){if(!["sonnet","opus","haiku","inherit"].includes(Q.model))X.push(`Invalid model value: ${Q.model}. Must be one of: sonnet, opus, haiku, inherit`)}if(Q.permissionMode!==void 0){if(!["default","acceptEdits","dontAsk","bypassPermissions","plan"].includes(Q.permissionMode))X.push(`Invalid permissionMode: ${Q.permissionMode}`)}if(Q.memory!==void 0){if(!["user","project","local"].includes(Q.memory))X.push(`Invalid memory value: ${Q.memory}`)}if(Q.maxTurns!==void 0){if(Q.maxTurns<1)X.push("maxTurns must be a positive number")}if(Q.isolation!==void 0&&Q.isolation!=="worktree")X.push(`Invalid isolation value: ${Q.isolation}. Must be: worktree`);if(Q.tools&&Q.disallowedTools){let Y=Q.tools.filter((Z)=>Q.disallowedTools.includes(Z));if(Y.length>0)X.push(`Tools cannot be both allowed and disallowed: ${Y.join(", ")}`)}if(Q.hooks){for(let[Y,Z]of Object.entries(Q.hooks))if(Array.isArray(Z))Z.forEach((W,J)=>{if(!W.hooks||W.hooks.length===0)X.push(`${Y} hook at index ${J} must have at least one hook defined`)})}return X}function tM(Q){return/^---\r?\n[\s\S]*?\r?\n---\r?\n/.test(Q)}import*as u9 from"node:fs/promises";import*as B8 from"node:path";class Lz{async findAgentFiles(Q){let X=[],Y=async(Z)=>{try{let W=await u9.readdir(Z,{withFileTypes:!0});for(let J of W){let $=B8.join(Z,J.name);if(J.isDirectory())await Y($);else if(J.isFile()&&(J.name==="Agent.md"||J.name==="AGENT.md"))X.push($)}}catch(W){let J=W.code;if(J!=="ENOENT"&&J!=="EACCES"&&J!=="EPERM")throw W}};return await Y(Q),X}async loadFromDirectory(Q){let X=[];try{let Y=await this.findAgentFiles(Q);for(let Z of Y)try{let W=await u9.readFile(Z,"utf-8"),J=l4(W,Z),$=m4(J);if($.length===0)X.push(J);else console.warn(`[ClaudeAgentLoader] Invalid agent config in ${Z}:`,$)}catch(W){console.warn(`[ClaudeAgentLoader] Failed to parse ${Z}:`,W)}}catch(Y){if(Y.code!=="ENOENT")throw Y}return X}mergeConfigs(Q,X){let Y=new Map;for(let Z of X)Y.set(Z.name,Z);for(let Z of Q)Y.set(Z.name,Z);return Array.from(Y.values())}async loadAllAgents(Q,X){let Y=B8.join(Q,".claude","agents"),Z=X||B8.join(process.env.HOME||"~",".claude","agents"),[W,J]=await Promise.all([this.loadFromDirectory(Y),this.loadFromDirectory(Z)]);return this.mergeConfigs(W,J)}getAgentByName(Q,X){return Q.find((Y)=>Y.name===X)}async loadAgentFromFile(Q){try{let X=await u9.readFile(Q,"utf-8"),Y=l4(X,Q),Z=m4(Y);if(Z.length>0){console.warn(`[ClaudeAgentLoader] Invalid agent config in ${Q}:`,Z);return}return Y}catch(X){console.warn(`[ClaudeAgentLoader] Failed to load ${Q}:`,X);return}}}export{Uz as _e,c4 as $e,i4 as af,zz as bf,VJ as cf,H8 as df,V8 as ef,qz as ff,L8 as gf,l9 as hf,O8 as if,U8 as jf,z8 as kf,q8 as lf,A8 as mf,UJ as nf,zJ as of,dz as pf,sz as qf,wJ as rf,ZX as sf,yJ as tf,Lq as uf,Xz as vf,Yz as wf,YJ as xf,zM as yf,JJ as zf,MM as Af,bM as Bf,Zz as Cf,u4 as Df,wM as Ef,RM as Ff,Gz as Gf,mM as Hf,l4 as If,m4 as Jf,tM as Kf,Lz as Lf};