@augmentcode/auggie 1.2.0-prerelease.202609161517 → 1.2.0-prerelease.202609170921
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auggie-v2.mjs +1152 -1156
- package/auggie-v2.mjs.d/extensions/mcp/index.js +52 -52
- package/package.json +1 -1
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
var cT=Object.create;var Fu=Object.defineProperty;var uT=Object.getOwnPropertyDescriptor;var dT=Object.getOwnPropertyNames;var lT=Object.getPrototypeOf,fT=Object.prototype.hasOwnProperty;var Rr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var C=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Uu=(t,e)=>{for(var r in e)Fu(t,r,{get:e[r],enumerable:!0})},pT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of dT(e))!fT.call(t,o)&&o!==r&&Fu(t,o,{get:()=>e[o],enumerable:!(n=uT(e,o))||n.enumerable});return t};var Xs=(t,e,r)=>(r=t!=null?cT(lT(t)):{},pT(e||!t||!t.__esModule?Fu(r,"default",{value:t,enumerable:!0}):r,t));var es=C(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var Xi=class{};J._CodeOrName=Xi;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends Xi{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};J.Name=Pn;var wt=class extends Xi{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof Pn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=wt;J.nil=new wt("");function Eb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)bf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=Eb;var wf=new wt("+");function Tb(t,...e){let r=[Qi(t[0])],n=0;for(;n<e.length;)r.push(wf),bf(r,e[n]),r.push(wf,Qi(t[++n]));return Vz(r),new wt(r)}J.str=Tb;function bf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(Yz(e))}J.addCodeArg=bf;function Vz(t){let e=1;for(;e<t.length-1;){if(t[e]===wf){let r=Kz(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Kz(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof Pn||t[t.length-1]!=='"'?void 0:typeof e!="string"?`${t.slice(0,-1)}${e}"`:e[0]==='"'?t.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(t instanceof Pn))return`"${t}${e.slice(1)}`}function Jz(t,e){return e.emptyStr()?t:t.emptyStr()?e:Tb`${t}${e}`}J.strConcat=Jz;function Yz(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:Qi(Array.isArray(t)?t.join(","):t)}function Xz(t){return new wt(Qi(t))}J.stringify=Xz;function Qi(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=Qi;function Qz(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):Eb`[${t}]`}J.getProperty=Qz;function eN(t){if(typeof t=="string"&&J.IDENTIFIER.test(t))return new wt(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}J.getEsmExportName=eN;function tN(t){return new wt(t.toString())}J.regexpCode=tN});var Pf=C(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.ValueScope=et.ValueScopeName=et.Scope=et.varKinds=et.UsedValueState=void 0;var Qe=es(),Rf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},fc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(fc||(et.UsedValueState=fc={}));et.varKinds={const:new Qe.Name("const"),let:new Qe.Name("let"),var:new Qe.Name("var")};var pc=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Qe.Name?e:this.name(e)}name(e){return new Qe.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};et.Scope=pc;var hc=class extends Qe.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Qe._)`.${new Qe.Name(r)}[${n}]`}};et.ValueScopeName=hc;var rN=(0,Qe._)`\n`,Cf=class extends pc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?rN:Qe.nil}}get(){return this._scope}name(e){return new hc(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:i}=o,s=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[i];if(a){let d=a.get(s);if(d)return d}else a=this._values[i]=new Map;a.set(s,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Qe._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=Qe.nil;for(let s in e){let a=e[s];if(!a)continue;let c=n[s]=n[s]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,fc.Started);let d=r(u);if(d){let l=this.opts.es5?et.varKinds.var:et.varKinds.const;i=(0,Qe._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,Qe._)`${i}${d}${this.opts._n}`;else throw new Rf(u);c.set(u,fc.Completed)})}return i}};et.ValueScope=Cf});var j=C(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var G=es(),It=Pf(),Zr=es();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Zr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Zr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Zr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Zr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Zr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Zr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Zr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Zr.Name}});var vc=Pf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return vc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return vc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return vc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return vc.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var fr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},xf=class extends fr{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?It.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Co(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},mc=class extends fr{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof G.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Co(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return yc(e,this.rhs)}},kf=class extends mc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Ef=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Tf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Af=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Mf=class extends fr{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Co(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ts=class extends fr{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(nN(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>En(e,r.names),{})}},pr=class extends ts{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},$f=class extends ts{},Ro=class extends pr{};Ro.kind="else";var xn=class t extends pr{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Ro(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Ab(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Co(this.condition,e,r),this}get names(){let e=super.names;return yc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var If=class extends kn{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Co(this.iteration,e,r),this}get names(){return En(super.names,this.iteration.names)}},Of=class extends kn{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?It.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=yc(super.names,this.from);return yc(e,this.to)}},gc=class extends kn{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Co(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},rs=class extends pr{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};rs.kind="func";var ns=class extends ts{render(e){return"return "+super.render(e)}};ns.kind="return";var zf=class extends pr{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&En(e,this.catch.names),this.finally&&En(e,this.finally.names),e}},os=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};os.kind="catch";var is=class extends pr{render(e){return"finally"+super.render(e)}};is.kind="finally";var Nf=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=e,this._scope=new It.Scope({parent:e}),this._nodes=[new $f]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new xf(e,i,n)),i}const(e,r,n){return this._def(It.varKinds.const,e,r,n)}let(e,r,n){return this._def(It.varKinds.let,e,r,n)}var(e,r,n){return this._def(It.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new mc(e,r,n))}add(e,r){return this._leafNode(new kf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Mf(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,G.addCodeArg)(r,o));return r.push("}"),new G._Code(r)}if(e,r,n){if(this._blockNode(new xn(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new xn(e))}else(){return this._elseNode(new Ro)}endIf(){return this._endBlockNode(xn,Ro)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new If(e),r)}forRange(e,r,n,o,i=this.opts.es5?It.varKinds.var:It.varKinds.let){let s=this._scope.toName(e);return this._for(new Of(i,s,r,n),()=>o(s))}forOf(e,r,n,o=It.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let s=r instanceof G.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,G._)`${s}.length`,a=>{this.var(i,(0,G._)`${s}[${a}]`),n(i)})}return this._for(new gc("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?It.varKinds.var:It.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,G._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new gc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Ef(e))}break(e){return this._leafNode(new Tf(e))}return(e){let r=new ns;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ns)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new zf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new os(i),r(i)}return n&&(this._currNode=o.finally=new is,this.code(n)),this._endBlockNode(os,is)}throw(e){return this._leafNode(new Af(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=G.nil,n,o){return this._blockNode(new rs(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(rs)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof xn))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};F.CodeGen=Nf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function yc(t,e){return e instanceof G._CodeOrName?En(t,e.names):t}function Co(t,e,r){if(t instanceof G.Name)return n(t);if(!o(t))return t;return new G._Code(t._items.reduce((i,s)=>(s instanceof G.Name&&(s=n(s)),s instanceof G._Code?i.push(...s._items):i.push(s),i),[]));function n(i){let s=r[i.str];return s===void 0||e[i.str]!==1?i:(delete e[i.str],s)}function o(i){return i instanceof G._Code&&i._items.some(s=>s instanceof G.Name&&e[s.str]===1&&r[s.str]!==void 0)}}function nN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Ab(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Df(t)}`}F.not=Ab;var oN=Mb(F.operators.AND);function iN(...t){return t.reduce(oN)}F.and=iN;var sN=Mb(F.operators.OR);function aN(...t){return t.reduce(sN)}F.or=aN;function Mb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Df(e)} ${t} ${Df(r)}`}function Df(t){return t instanceof G.Name?t:(0,G._)`(${t})`}});var B=C(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var se=j(),cN=es();function uN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=uN;function dN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Ob(t,e),!zb(e,t.self.RULES.all))}U.alwaysValidSchema=dN;function Ob(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let i in e)o[i]||Lb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Ob;function zb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=zb;function lN(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}U.schemaHasRulesButRef=lN;function fN({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,se._)`${r}`}return(0,se._)`${t}${e}${(0,se.getProperty)(n)}`}U.schemaRefOrVal=fN;function pN(t){return Nb(decodeURIComponent(t))}U.unescapeFragment=pN;function hN(t){return encodeURIComponent(jf(t))}U.escapeFragment=hN;function jf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=jf;function Nb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Nb;function mN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=mN;function $b({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,i,s,a)=>{let c=s===void 0?i:s instanceof se.Name?(i instanceof se.Name?t(o,i,s):e(o,i,s),s):i instanceof se.Name?(e(o,s,i),i):r(i,s);return a===se.Name&&!(c instanceof se.Name)?n(o,c):c}}U.mergeEvaluated={props:$b({mergeNames:(t,e,r)=>t.if((0,se._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,se._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,se._)`${r} || {}`).code((0,se._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,se._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,se._)`${r} || {}`),Ff(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Db}),items:$b({mergeNames:(t,e,r)=>t.if((0,se._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,se._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,se._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,se._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function Db(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Ff(t,r,e),r}U.evaluatedPropsToName=Db;function Ff(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Ff;var Ib={};function gN(t,e){return t.scopeValue("func",{ref:e,code:Ib[e.code]||(Ib[e.code]=new cN._Code(e.code))})}U.useFunc=gN;var Lf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Lf||(U.Type=Lf={}));function yN(t,e,r){if(t instanceof se.Name){let n=e===Lf.Num;return r?n?(0,se._)`"[" + ${t} + "]"`:(0,se._)`"['" + ${t} + "']"`:n?(0,se._)`"/" + ${t}`:(0,se._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,se.getProperty)(t).toString():"/"+jf(t)}U.getErrorPath=yN;function Lb(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}U.checkStrictMode=Lb});var hr=C(Uf=>{"use strict";Object.defineProperty(Uf,"__esModule",{value:!0});var je=j(),vN={data:new je.Name("data"),valCxt:new je.Name("valCxt"),instancePath:new je.Name("instancePath"),parentData:new je.Name("parentData"),parentDataProperty:new je.Name("parentDataProperty"),rootData:new je.Name("rootData"),dynamicAnchors:new je.Name("dynamicAnchors"),vErrors:new je.Name("vErrors"),errors:new je.Name("errors"),this:new je.Name("this"),self:new je.Name("self"),scope:new je.Name("scope"),json:new je.Name("json"),jsonPos:new je.Name("jsonPos"),jsonLen:new je.Name("jsonLen"),jsonPart:new je.Name("jsonPart")};Uf.default=vN});var ss=C(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.extendErrors=Fe.resetErrorsCount=Fe.reportExtraError=Fe.reportError=Fe.keyword$DataError=Fe.keywordError=void 0;var W=j(),_c=B(),He=hr();Fe.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Fe.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function _N(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Ub(t,e,r);n??(s||a)?jb(i,c):Fb(o,(0,W._)`[${c}]`)}Fe.reportError=_N;function SN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Ub(t,e,r);jb(o,a),i||s||Fb(n,He.default.vErrors)}Fe.reportExtraError=SN;function wN(t,e){t.assign(He.default.errors,e),t.if((0,W._)`${He.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,W._)`${He.default.vErrors}.length`,e),()=>t.assign(He.default.vErrors,null)))}Fe.resetErrorsCount=wN;function bN({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let s=t.name("err");t.forRange("i",o,He.default.errors,a=>{t.const(s,(0,W._)`${He.default.vErrors}[${a}]`),t.if((0,W._)`${s}.instancePath === undefined`,()=>t.assign((0,W._)`${s}.instancePath`,(0,W.strConcat)(He.default.instancePath,i.errorPath))),t.assign((0,W._)`${s}.schemaPath`,(0,W.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,W._)`${s}.schema`,r),t.assign((0,W._)`${s}.data`,n))})}Fe.extendErrors=bN;function jb(t,e){let r=t.const("err",e);t.if((0,W._)`${He.default.vErrors} === null`,()=>t.assign(He.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${He.default.vErrors}.push(${r})`),t.code((0,W._)`${He.default.errors}++`)}function Fb(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,W._)`new ${t.ValidationError}(${e})`):(r.assign((0,W._)`${n}.errors`,e),r.return(!1))}var Tn={keyword:new W.Name("keyword"),schemaPath:new W.Name("schemaPath"),params:new W.Name("params"),propertyName:new W.Name("propertyName"),message:new W.Name("message"),schema:new W.Name("schema"),parentSchema:new W.Name("parentSchema")};function Ub(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:RN(t,e,r)}function RN(t,e,r={}){let{gen:n,it:o}=t,i=[CN(o,r),PN(t,r)];return xN(t,e,i),n.object(...i)}function CN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,_c.getErrorPath)(e,_c.Type.Str)}`:t;return[He.default.instancePath,(0,W.strConcat)(He.default.instancePath,r)]}function PN({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,_c.getErrorPath)(r,_c.Type.Str)}`),[Tn.schemaPath,o]}function xN(t,{params:e,message:r},n){let{keyword:o,data:i,schemaValue:s,it:a}=t,{opts:c,propertyName:u,topSchemaRef:d,schemaPath:l}=a;n.push([Tn.keyword,o],[Tn.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([Tn.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Tn.schema,s],[Tn.parentSchema,(0,W._)`${d}${l}`],[He.default.data,i]),u&&n.push([Tn.propertyName,u])}});var Hb=C(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.boolOrEmptySchema=Po.topBoolOrEmptySchema=void 0;var kN=ss(),EN=j(),TN=hr(),AN={message:"boolean schema is false"};function MN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?qb(t,!1):typeof r=="object"&&r.$async===!0?e.return(TN.default.data):(e.assign((0,EN._)`${n}.errors`,null),e.return(!0))}Po.topBoolOrEmptySchema=MN;function $N(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),qb(t)):r.var(e,!0)}Po.boolOrEmptySchema=$N;function qb(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,kN.reportError)(o,AN,void 0,e)}});var qf=C(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.getRules=xo.isJSONType=void 0;var IN=["string","number","integer","boolean","null","object","array"],ON=new Set(IN);function zN(t){return typeof t=="string"&&ON.has(t)}xo.isJSONType=zN;function NN(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}xo.getRules=NN});var Hf=C(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.shouldUseRule=Br.shouldUseGroup=Br.schemaHasRulesForType=void 0;function DN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Gb(t,n)}Br.schemaHasRulesForType=DN;function Gb(t,e){return e.rules.some(r=>Zb(t,r))}Br.shouldUseGroup=Gb;function Zb(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Br.shouldUseRule=Zb});var as=C(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.reportTypeError=Ue.checkDataTypes=Ue.checkDataType=Ue.coerceAndCheckDataType=Ue.getJSONTypes=Ue.getSchemaTypes=Ue.DataType=void 0;var LN=qf(),jN=Hf(),FN=ss(),L=j(),Bb=B(),ko;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(ko||(Ue.DataType=ko={}));function UN(t){let e=Wb(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Ue.getSchemaTypes=UN;function Wb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(LN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Wb;function qN(t,e){let{gen:r,data:n,opts:o}=t,i=HN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,jN.schemaHasRulesForType)(t,e[0]));if(s){let a=Zf(e,n,o.strictNumbers,ko.Wrong);r.if(a,()=>{i.length?GN(t,e,i):Bf(t)})}return s}Ue.coerceAndCheckDataType=qN;var Vb=new Set(["string","number","integer","boolean","null"]);function HN(t,e){return e?t.filter(r=>Vb.has(r)||e==="array"&&r==="array"):[]}function GN(t,e,r){let{gen:n,data:o,opts:i}=t,s=n.let("dataType",(0,L._)`typeof ${o}`),a=n.let("coerced",(0,L._)`undefined`);i.coerceTypes==="array"&&n.if((0,L._)`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,L._)`${o}[0]`).assign(s,(0,L._)`typeof ${o}`).if(Zf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Vb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Bf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),ZN(t,a)});function c(u){switch(u){case"string":n.elseIf((0,L._)`${s} == "number" || ${s} == "boolean"`).assign(a,(0,L._)`"" + ${o}`).elseIf((0,L._)`${o} === null`).assign(a,(0,L._)`""`);return;case"number":n.elseIf((0,L._)`${s} == "boolean" || ${o} === null
|
|
1
|
+
var cT=Object.create;var Uu=Object.defineProperty;var uT=Object.getOwnPropertyDescriptor;var dT=Object.getOwnPropertyNames;var lT=Object.getPrototypeOf,fT=Object.prototype.hasOwnProperty;var Rr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var P=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},qu=(t,e)=>{for(var r in e)Uu(t,r,{get:e[r],enumerable:!0})},pT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of dT(e))!fT.call(t,o)&&o!==r&&Uu(t,o,{get:()=>e[o],enumerable:!(n=uT(e,o))||n.enumerable});return t};var Xs=(t,e,r)=>(r=t!=null?cT(lT(t)):{},pT(e||!t||!t.__esModule?Uu(r,"default",{value:t,enumerable:!0}):r,t));var es=P(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var Xi=class{};J._CodeOrName=Xi;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends Xi{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};J.Name=Pn;var wt=class extends Xi{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof Pn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=wt;J.nil=new wt("");function Eb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Rf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=Eb;var bf=new wt("+");function Tb(t,...e){let r=[Qi(t[0])],n=0;for(;n<e.length;)r.push(bf),Rf(r,e[n]),r.push(bf,Qi(t[++n]));return Vz(r),new wt(r)}J.str=Tb;function Rf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(Yz(e))}J.addCodeArg=Rf;function Vz(t){let e=1;for(;e<t.length-1;){if(t[e]===bf){let r=Kz(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Kz(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof Pn||t[t.length-1]!=='"'?void 0:typeof e!="string"?`${t.slice(0,-1)}${e}"`:e[0]==='"'?t.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(t instanceof Pn))return`"${t}${e.slice(1)}`}function Jz(t,e){return e.emptyStr()?t:t.emptyStr()?e:Tb`${t}${e}`}J.strConcat=Jz;function Yz(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:Qi(Array.isArray(t)?t.join(","):t)}function Xz(t){return new wt(Qi(t))}J.stringify=Xz;function Qi(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=Qi;function Qz(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):Eb`[${t}]`}J.getProperty=Qz;function eN(t){if(typeof t=="string"&&J.IDENTIFIER.test(t))return new wt(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}J.getEsmExportName=eN;function tN(t){return new wt(t.toString())}J.regexpCode=tN});var xf=P(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.ValueScope=tt.ValueScopeName=tt.Scope=tt.varKinds=tt.UsedValueState=void 0;var et=es(),Cf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},pc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(pc||(tt.UsedValueState=pc={}));tt.varKinds={const:new et.Name("const"),let:new et.Name("let"),var:new et.Name("var")};var hc=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof et.Name?e:this.name(e)}name(e){return new et.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};tt.Scope=hc;var mc=class extends et.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,et._)`.${new et.Name(r)}[${n}]`}};tt.ValueScopeName=mc;var rN=(0,et._)`\n`,Pf=class extends hc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?rN:et.nil}}get(){return this._scope}name(e){return new mc(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:i}=o,s=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[i];if(a){let d=a.get(s);if(d)return d}else a=this._values[i]=new Map;a.set(s,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,et._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=et.nil;for(let s in e){let a=e[s];if(!a)continue;let c=n[s]=n[s]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,pc.Started);let d=r(u);if(d){let l=this.opts.es5?tt.varKinds.var:tt.varKinds.const;i=(0,et._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,et._)`${i}${d}${this.opts._n}`;else throw new Cf(u);c.set(u,pc.Completed)})}return i}};tt.ValueScope=Pf});var j=P(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var G=es(),It=xf(),Zr=es();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Zr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Zr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Zr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Zr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Zr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Zr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Zr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Zr.Name}});var _c=xf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return _c.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return _c.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return _c.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return _c.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var fr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},kf=class extends fr{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?It.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Co(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},gc=class extends fr{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof G.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Co(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return vc(e,this.rhs)}},Ef=class extends gc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Tf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Af=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Mf=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},$f=class extends fr{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Co(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ts=class extends fr{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(nN(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>En(e,r.names),{})}},pr=class extends ts{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},If=class extends ts{},Ro=class extends pr{};Ro.kind="else";var xn=class t extends pr{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Ro(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Ab(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Co(this.condition,e,r),this}get names(){let e=super.names;return vc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var Of=class extends kn{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Co(this.iteration,e,r),this}get names(){return En(super.names,this.iteration.names)}},zf=class extends kn{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?It.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=vc(super.names,this.from);return vc(e,this.to)}},yc=class extends kn{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Co(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},rs=class extends pr{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};rs.kind="func";var ns=class extends ts{render(e){return"return "+super.render(e)}};ns.kind="return";var Nf=class extends pr{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&En(e,this.catch.names),this.finally&&En(e,this.finally.names),e}},os=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};os.kind="catch";var is=class extends pr{render(e){return"finally"+super.render(e)}};is.kind="finally";var Df=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
+
`:""},this._extScope=e,this._scope=new It.Scope({parent:e}),this._nodes=[new If]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new kf(e,i,n)),i}const(e,r,n){return this._def(It.varKinds.const,e,r,n)}let(e,r,n){return this._def(It.varKinds.let,e,r,n)}var(e,r,n){return this._def(It.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new gc(e,r,n))}add(e,r){return this._leafNode(new Ef(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new $f(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,G.addCodeArg)(r,o));return r.push("}"),new G._Code(r)}if(e,r,n){if(this._blockNode(new xn(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new xn(e))}else(){return this._elseNode(new Ro)}endIf(){return this._endBlockNode(xn,Ro)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Of(e),r)}forRange(e,r,n,o,i=this.opts.es5?It.varKinds.var:It.varKinds.let){let s=this._scope.toName(e);return this._for(new zf(i,s,r,n),()=>o(s))}forOf(e,r,n,o=It.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let s=r instanceof G.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,G._)`${s}.length`,a=>{this.var(i,(0,G._)`${s}[${a}]`),n(i)})}return this._for(new yc("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?It.varKinds.var:It.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,G._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new yc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Tf(e))}break(e){return this._leafNode(new Af(e))}return(e){let r=new ns;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ns)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Nf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new os(i),r(i)}return n&&(this._currNode=o.finally=new is,this.code(n)),this._endBlockNode(os,is)}throw(e){return this._leafNode(new Mf(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=G.nil,n,o){return this._blockNode(new rs(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(rs)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof xn))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};F.CodeGen=Df;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function vc(t,e){return e instanceof G._CodeOrName?En(t,e.names):t}function Co(t,e,r){if(t instanceof G.Name)return n(t);if(!o(t))return t;return new G._Code(t._items.reduce((i,s)=>(s instanceof G.Name&&(s=n(s)),s instanceof G._Code?i.push(...s._items):i.push(s),i),[]));function n(i){let s=r[i.str];return s===void 0||e[i.str]!==1?i:(delete e[i.str],s)}function o(i){return i instanceof G._Code&&i._items.some(s=>s instanceof G.Name&&e[s.str]===1&&r[s.str]!==void 0)}}function nN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Ab(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Lf(t)}`}F.not=Ab;var oN=Mb(F.operators.AND);function iN(...t){return t.reduce(oN)}F.and=iN;var sN=Mb(F.operators.OR);function aN(...t){return t.reduce(sN)}F.or=aN;function Mb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Lf(e)} ${t} ${Lf(r)}`}function Lf(t){return t instanceof G.Name?t:(0,G._)`(${t})`}});var B=P(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var se=j(),cN=es();function uN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=uN;function dN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Ob(t,e),!zb(e,t.self.RULES.all))}U.alwaysValidSchema=dN;function Ob(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let i in e)o[i]||Lb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Ob;function zb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=zb;function lN(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}U.schemaHasRulesButRef=lN;function fN({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,se._)`${r}`}return(0,se._)`${t}${e}${(0,se.getProperty)(n)}`}U.schemaRefOrVal=fN;function pN(t){return Nb(decodeURIComponent(t))}U.unescapeFragment=pN;function hN(t){return encodeURIComponent(Ff(t))}U.escapeFragment=hN;function Ff(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Ff;function Nb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Nb;function mN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=mN;function $b({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,i,s,a)=>{let c=s===void 0?i:s instanceof se.Name?(i instanceof se.Name?t(o,i,s):e(o,i,s),s):i instanceof se.Name?(e(o,s,i),i):r(i,s);return a===se.Name&&!(c instanceof se.Name)?n(o,c):c}}U.mergeEvaluated={props:$b({mergeNames:(t,e,r)=>t.if((0,se._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,se._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,se._)`${r} || {}`).code((0,se._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,se._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,se._)`${r} || {}`),Uf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Db}),items:$b({mergeNames:(t,e,r)=>t.if((0,se._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,se._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,se._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,se._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function Db(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Uf(t,r,e),r}U.evaluatedPropsToName=Db;function Uf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Uf;var Ib={};function gN(t,e){return t.scopeValue("func",{ref:e,code:Ib[e.code]||(Ib[e.code]=new cN._Code(e.code))})}U.useFunc=gN;var jf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(jf||(U.Type=jf={}));function yN(t,e,r){if(t instanceof se.Name){let n=e===jf.Num;return r?n?(0,se._)`"[" + ${t} + "]"`:(0,se._)`"['" + ${t} + "']"`:n?(0,se._)`"/" + ${t}`:(0,se._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,se.getProperty)(t).toString():"/"+Ff(t)}U.getErrorPath=yN;function Lb(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}U.checkStrictMode=Lb});var hr=P(qf=>{"use strict";Object.defineProperty(qf,"__esModule",{value:!0});var je=j(),vN={data:new je.Name("data"),valCxt:new je.Name("valCxt"),instancePath:new je.Name("instancePath"),parentData:new je.Name("parentData"),parentDataProperty:new je.Name("parentDataProperty"),rootData:new je.Name("rootData"),dynamicAnchors:new je.Name("dynamicAnchors"),vErrors:new je.Name("vErrors"),errors:new je.Name("errors"),this:new je.Name("this"),self:new je.Name("self"),scope:new je.Name("scope"),json:new je.Name("json"),jsonPos:new je.Name("jsonPos"),jsonLen:new je.Name("jsonLen"),jsonPart:new je.Name("jsonPart")};qf.default=vN});var ss=P(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.extendErrors=Fe.resetErrorsCount=Fe.reportExtraError=Fe.reportError=Fe.keyword$DataError=Fe.keywordError=void 0;var W=j(),Sc=B(),Ge=hr();Fe.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Fe.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function _N(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Ub(t,e,r);n??(s||a)?jb(i,c):Fb(o,(0,W._)`[${c}]`)}Fe.reportError=_N;function SN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Ub(t,e,r);jb(o,a),i||s||Fb(n,Ge.default.vErrors)}Fe.reportExtraError=SN;function wN(t,e){t.assign(Ge.default.errors,e),t.if((0,W._)`${Ge.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,W._)`${Ge.default.vErrors}.length`,e),()=>t.assign(Ge.default.vErrors,null)))}Fe.resetErrorsCount=wN;function bN({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let s=t.name("err");t.forRange("i",o,Ge.default.errors,a=>{t.const(s,(0,W._)`${Ge.default.vErrors}[${a}]`),t.if((0,W._)`${s}.instancePath === undefined`,()=>t.assign((0,W._)`${s}.instancePath`,(0,W.strConcat)(Ge.default.instancePath,i.errorPath))),t.assign((0,W._)`${s}.schemaPath`,(0,W.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,W._)`${s}.schema`,r),t.assign((0,W._)`${s}.data`,n))})}Fe.extendErrors=bN;function jb(t,e){let r=t.const("err",e);t.if((0,W._)`${Ge.default.vErrors} === null`,()=>t.assign(Ge.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${Ge.default.vErrors}.push(${r})`),t.code((0,W._)`${Ge.default.errors}++`)}function Fb(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,W._)`new ${t.ValidationError}(${e})`):(r.assign((0,W._)`${n}.errors`,e),r.return(!1))}var Tn={keyword:new W.Name("keyword"),schemaPath:new W.Name("schemaPath"),params:new W.Name("params"),propertyName:new W.Name("propertyName"),message:new W.Name("message"),schema:new W.Name("schema"),parentSchema:new W.Name("parentSchema")};function Ub(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:RN(t,e,r)}function RN(t,e,r={}){let{gen:n,it:o}=t,i=[CN(o,r),PN(t,r)];return xN(t,e,i),n.object(...i)}function CN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Sc.getErrorPath)(e,Sc.Type.Str)}`:t;return[Ge.default.instancePath,(0,W.strConcat)(Ge.default.instancePath,r)]}function PN({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,Sc.getErrorPath)(r,Sc.Type.Str)}`),[Tn.schemaPath,o]}function xN(t,{params:e,message:r},n){let{keyword:o,data:i,schemaValue:s,it:a}=t,{opts:c,propertyName:u,topSchemaRef:d,schemaPath:l}=a;n.push([Tn.keyword,o],[Tn.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([Tn.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Tn.schema,s],[Tn.parentSchema,(0,W._)`${d}${l}`],[Ge.default.data,i]),u&&n.push([Tn.propertyName,u])}});var Hb=P(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.boolOrEmptySchema=Po.topBoolOrEmptySchema=void 0;var kN=ss(),EN=j(),TN=hr(),AN={message:"boolean schema is false"};function MN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?qb(t,!1):typeof r=="object"&&r.$async===!0?e.return(TN.default.data):(e.assign((0,EN._)`${n}.errors`,null),e.return(!0))}Po.topBoolOrEmptySchema=MN;function $N(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),qb(t)):r.var(e,!0)}Po.boolOrEmptySchema=$N;function qb(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,kN.reportError)(o,AN,void 0,e)}});var Hf=P(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.getRules=xo.isJSONType=void 0;var IN=["string","number","integer","boolean","null","object","array"],ON=new Set(IN);function zN(t){return typeof t=="string"&&ON.has(t)}xo.isJSONType=zN;function NN(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}xo.getRules=NN});var Gf=P(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.shouldUseRule=Br.shouldUseGroup=Br.schemaHasRulesForType=void 0;function DN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Gb(t,n)}Br.schemaHasRulesForType=DN;function Gb(t,e){return e.rules.some(r=>Zb(t,r))}Br.shouldUseGroup=Gb;function Zb(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Br.shouldUseRule=Zb});var as=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.reportTypeError=Ue.checkDataTypes=Ue.checkDataType=Ue.coerceAndCheckDataType=Ue.getJSONTypes=Ue.getSchemaTypes=Ue.DataType=void 0;var LN=Hf(),jN=Gf(),FN=ss(),L=j(),Bb=B(),ko;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(ko||(Ue.DataType=ko={}));function UN(t){let e=Wb(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Ue.getSchemaTypes=UN;function Wb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(LN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Wb;function qN(t,e){let{gen:r,data:n,opts:o}=t,i=HN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,jN.schemaHasRulesForType)(t,e[0]));if(s){let a=Bf(e,n,o.strictNumbers,ko.Wrong);r.if(a,()=>{i.length?GN(t,e,i):Wf(t)})}return s}Ue.coerceAndCheckDataType=qN;var Vb=new Set(["string","number","integer","boolean","null"]);function HN(t,e){return e?t.filter(r=>Vb.has(r)||e==="array"&&r==="array"):[]}function GN(t,e,r){let{gen:n,data:o,opts:i}=t,s=n.let("dataType",(0,L._)`typeof ${o}`),a=n.let("coerced",(0,L._)`undefined`);i.coerceTypes==="array"&&n.if((0,L._)`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,L._)`${o}[0]`).assign(s,(0,L._)`typeof ${o}`).if(Bf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Vb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Wf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),ZN(t,a)});function c(u){switch(u){case"string":n.elseIf((0,L._)`${s} == "number" || ${s} == "boolean"`).assign(a,(0,L._)`"" + ${o}`).elseIf((0,L._)`${o} === null`).assign(a,(0,L._)`""`);return;case"number":n.elseIf((0,L._)`${s} == "boolean" || ${o} === null
|
|
3
3
|
|| (${s} == "string" && ${o} && ${o} == +${o})`).assign(a,(0,L._)`+${o}`);return;case"integer":n.elseIf((0,L._)`${s} === "boolean" || ${o} === null
|
|
4
4
|
|| (${s} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(a,(0,L._)`+${o}`);return;case"boolean":n.elseIf((0,L._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(a,!1).elseIf((0,L._)`${o} === "true" || ${o} === 1`).assign(a,!0);return;case"null":n.elseIf((0,L._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(a,null);return;case"array":n.elseIf((0,L._)`${s} === "string" || ${s} === "number"
|
|
5
|
-
|| ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function ZN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Gf(t,e,r,n=ko.Correct){let o=n===ko.Correct?L.operators.EQ:L.operators.NEQ,i;switch(t){case"null":return(0,L._)`${e} ${o} null`;case"array":i=(0,L._)`Array.isArray(${e})`;break;case"object":i=(0,L._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,L._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,L._)`typeof ${e} ${o} ${t}`}return n===ko.Correct?i:(0,L.not)(i);function s(a=L.nil){return(0,L.and)((0,L._)`typeof ${e} == "number"`,a,r?(0,L._)`isFinite(${e})`:L.nil)}}Ue.checkDataType=Gf;function Zf(t,e,r,n){if(t.length===1)return Gf(t[0],e,r,n);let o,i=(0,Bb.toHash)(t);if(i.array&&i.object){let s=(0,L._)`typeof ${e} != "object"`;o=i.null?s:(0,L._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else o=L.nil;i.number&&delete i.integer;for(let s in i)o=(0,L.and)(o,Gf(s,e,r,n));return o}Ue.checkDataTypes=Zf;var BN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Bf(t){let e=WN(t);(0,FN.reportError)(e,BN)}Ue.reportTypeError=Bf;function WN(t){let{gen:e,data:r,schema:n}=t,o=(0,Bb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Jb=C(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.assignDefaults=void 0;var Eo=j(),VN=B();function KN(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Kb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Kb(t,i,o.default))}Sc.assignDefaults=KN;function Kb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Eo._)`${i}${(0,Eo.getProperty)(e)}`;if(o){(0,VN.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Eo._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Eo._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Eo._)`${a} = ${(0,Eo.stringify)(r)}`)}});var bt=C(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.validateUnion=re.validateArray=re.usePattern=re.callValidateCode=re.schemaProperties=re.allSchemaProperties=re.noPropertyInData=re.propertyInData=re.isOwnProperty=re.hasPropFunc=re.reportMissingProp=re.checkMissingProp=re.checkReportMissingProp=void 0;var de=j(),Wf=B(),Wr=hr(),JN=B();function YN(t,e){let{gen:r,data:n,it:o}=t;r.if(Kf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=YN;function XN({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Kf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=XN;function QN(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=QN;function Yb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Yb;function Vf(t,e,r){return(0,de._)`${Yb(t)}.call(${e}, ${r})`}re.isOwnProperty=Vf;function eD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Vf(t,e,r)}`:o}re.propertyInData=eD;function Kf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Vf(t,e,r))):o}re.noPropertyInData=Kf;function Xb(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=Xb;function tD(t,e){return Xb(e).filter(r=>!(0,Wf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=tD;function rD({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:s},a,c,u){let d=u?(0,de._)`${t}, ${e}, ${n}${o}`:e,l=[[Wr.default.instancePath,(0,de.strConcat)(Wr.default.instancePath,i)],[Wr.default.parentData,s.parentData],[Wr.default.parentDataProperty,s.parentDataProperty],[Wr.default.rootData,Wr.default.rootData]];s.opts.dynamicRef&&l.push([Wr.default.dynamicAnchors,Wr.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...l)}`;return c!==de.nil?(0,de._)`${a}.call(${c}, ${f})`:(0,de._)`${a}(${f})`}re.callValidateCode=rD;var nD=(0,de._)`new RegExp`;function oD({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:o}=e.code,i=o(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,de._)`${o.code==="new RegExp"?nD:(0,JN.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=oD;function iD(t){let{gen:e,data:r,keyword:n,it:o}=t,i=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return s(()=>e.assign(a,!1)),a}return e.var(i,!0),s(()=>e.break()),i;function s(a){let c=e.const("len",(0,de._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:Wf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=iD;function sD(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Wf.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let s=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let d=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(s,(0,de._)`${s} || ${a}`),t.mergeValidEvaluated(d,a)||e.if((0,de.not)(s))})),t.result(s,()=>t.reset(),()=>t.error(!0))}re.validateUnion=sD});var tR=C(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.validateKeywordUsage=Jt.validSchemaType=Jt.funcKeywordCode=Jt.macroKeywordCode=void 0;var Ge=j(),An=hr(),aD=bt(),cD=ss();function uD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=eR(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Ge.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Jt.macroKeywordCode=uD;function dD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;fD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=eR(n,o,u),l=n.let("valid");t.block$data(l,f),t.ok((r=e.valid)!==null&&r!==void 0?r:l);function f(){if(e.errors===!1)m(),e.modifying&&Qb(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&Qb(t),g(()=>lD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((0,Ge._)`await `),w=>n.assign(l,!1).if((0,Ge._)`${w} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Ge._)`${w}.errors`),()=>n.throw(w))),v}function h(){let v=(0,Ge._)`${d}.errors`;return n.assign(v,null),m(Ge.nil),v}function m(v=e.async?(0,Ge._)`await `:Ge.nil){let w=c.opts.passContext?An.default.this:An.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ge._)`${v}${(0,aD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Ge.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Jt.funcKeywordCode=dD;function Qb(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ge._)`${n.parentData}[${n.parentDataProperty}]`))}function lD(t,e){let{gen:r}=t;r.if((0,Ge._)`Array.isArray(${e})`,()=>{r.assign(An.default.vErrors,(0,Ge._)`${An.default.vErrors} === null ? ${e} : ${An.default.vErrors}.concat(${e})`).assign(An.default.errors,(0,Ge._)`${An.default.vErrors}.length`),(0,cD.extendErrors)(t)},()=>t.error())}function fD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function eR(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ge.stringify)(r)})}function pD(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Jt.validSchemaType=pD;function hD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Jt.validateKeywordUsage=hD});var nR=C(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.extendSubschemaMode=Vr.extendSubschemaData=Vr.getSubschema=void 0;var Yt=j(),rR=B();function mD(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}${(0,Yt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,rR.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Vr.getSubschema=mD;function gD(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:s}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:d,opts:l}=e,f=a.let("data",(0,Yt._)`${e.data}${(0,Yt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Yt.str)`${u}${(0,rR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Yt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Yt.Name?o:a.let("data",o,!0);c(u),s!==void 0&&(t.propertyName=s)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Vr.extendSubschemaData=gD;function yD(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Vr.extendSubschemaMode=yD});var Jf=C(($5,oR)=>{"use strict";oR.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var s=i[o];if(!t(e[s],r[s]))return!1}return!0}return e!==e&&r!==r}});var sR=C((I5,iR)=>{"use strict";var Kr=iR.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};wc(e,n,o,t,"",t)};Kr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Kr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Kr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Kr.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 wc(t,e,r,n,o,i,s,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,i,s,a,c,u);for(var d in n){var l=n[d];if(Array.isArray(l)){if(d in Kr.arrayKeywords)for(var f=0;f<l.length;f++)wc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Kr.propsKeywords){if(l&&typeof l=="object")for(var p in l)wc(t,e,r,l[p],o+"/"+d+"/"+vD(p),i,o,d,n,p)}else(d in Kr.keywords||t.allKeys&&!(d in Kr.skipKeywords))&&wc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function vD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var cs=C(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.getSchemaRefs=tt.resolveUrl=tt.normalizeId=tt._getFullPath=tt.getFullPath=tt.inlineRef=void 0;var _D=B(),SD=Jf(),wD=sR(),bD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Yf(t):e?aR(t)<=e:!1}tt.inlineRef=RD;var CD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Yf(t){for(let e in t){if(CD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Yf)||typeof r=="object"&&Yf(r))return!0}return!1}function aR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!bD.has(r)&&(typeof t[r]=="object"&&(0,_D.eachItem)(t[r],n=>e+=aR(n)),e===1/0))return 1/0}return e}function cR(t,e="",r){r!==!1&&(e=To(e));let n=t.parse(e);return uR(t,n)}tt.getFullPath=cR;function uR(t,e){return t.serialize(e).split("#")[0]+"#"}tt._getFullPath=uR;var PD=/#\/?$/;function To(t){return t?t.replace(PD,""):""}tt.normalizeId=To;function xD(t,e,r){return r=To(r),t.resolve(e,r)}tt.resolveUrl=xD;var kD=/^[a-z_][-a-z0-9._]*$/i;function ED(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=To(t[r]||e),i={"":o},s=cR(n,o,!1),a={},c=new Set;return wD(t,{allKeys:!0},(l,f,p,h)=>{if(h===void 0)return;let m=s+f,g=i[h];typeof l[r]=="string"&&(g=v.call(this,l[r])),w.call(this,l.$anchor),w.call(this,l.$dynamicAnchor),i[f]=g;function v(b){let x=this.opts.uriResolver.resolve;if(b=To(g?x(g,b):b),c.has(b))throw d(b);c.add(b);let S=this.refs[b];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(l,S.schema,b):b!==To(m)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=m),b}function w(b){if(typeof b=="string"){if(!kD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!SD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}tt.getSchemaRefs=ED});var ls=C(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.getData=Jr.KeywordCxt=Jr.validateFunctionCode=void 0;var hR=Hb(),dR=as(),Qf=Hf(),bc=as(),TD=Jb(),ds=tR(),Xf=nR(),T=j(),z=hr(),AD=cs(),mr=B(),us=ss();function MD(t){if(yR(t)&&(vR(t),gR(t))){OD(t);return}mR(t,()=>(0,hR.topBoolOrEmptySchema)(t))}Jr.validateFunctionCode=MD;function mR({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,T._)`${z.default.data}, ${z.default.valCxt}`,n.$async,()=>{t.code((0,T._)`"use strict"; ${lR(r,o)}`),ID(t,o),t.code(i)}):t.func(e,(0,T._)`${z.default.data}, ${$D(o)}`,n.$async,()=>t.code(lR(r,o)).code(i))}function $D(t){return(0,T._)`{${z.default.instancePath}="", ${z.default.parentData}, ${z.default.parentDataProperty}, ${z.default.rootData}=${z.default.data}${t.dynamicRef?(0,T._)`, ${z.default.dynamicAnchors}={}`:T.nil}}={}`}function ID(t,e){t.if(z.default.valCxt,()=>{t.var(z.default.instancePath,(0,T._)`${z.default.valCxt}.${z.default.instancePath}`),t.var(z.default.parentData,(0,T._)`${z.default.valCxt}.${z.default.parentData}`),t.var(z.default.parentDataProperty,(0,T._)`${z.default.valCxt}.${z.default.parentDataProperty}`),t.var(z.default.rootData,(0,T._)`${z.default.valCxt}.${z.default.rootData}`),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`${z.default.valCxt}.${z.default.dynamicAnchors}`)},()=>{t.var(z.default.instancePath,(0,T._)`""`),t.var(z.default.parentData,(0,T._)`undefined`),t.var(z.default.parentDataProperty,(0,T._)`undefined`),t.var(z.default.rootData,z.default.data),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`{}`)})}function OD(t){let{schema:e,opts:r,gen:n}=t;mR(t,()=>{r.$comment&&e.$comment&&SR(t),jD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&zD(t),_R(t),qD(t)})}function zD(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,T._)`${r}.evaluated`),e.if((0,T._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,T._)`${t.evaluated}.props`,(0,T._)`undefined`)),e.if((0,T._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,T._)`${t.evaluated}.items`,(0,T._)`undefined`))}function lR(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,T._)`/*# sourceURL=${r} */`:T.nil}function ND(t,e){if(yR(t)&&(vR(t),gR(t))){DD(t,e);return}(0,hR.boolOrEmptySchema)(t,e)}function gR({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function yR(t){return typeof t.schema!="boolean"}function DD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&SR(t),FD(t),UD(t);let i=n.const("_errs",z.default.errors);_R(t,i),n.var(e,(0,T._)`${i} === ${z.default.errors}`)}function vR(t){(0,mr.checkUnknownRules)(t),LD(t)}function _R(t,e){if(t.opts.jtd)return fR(t,[],!1,e);let r=(0,dR.getSchemaTypes)(t.schema),n=(0,dR.coerceAndCheckDataType)(t,r);fR(t,r,!n,e)}function LD(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,mr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function jD(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,mr.checkStrictMode)(t,"default is ignored in the schema root")}function FD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,AD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function UD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function SR({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,T._)`${z.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,T.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,T._)`${z.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function qD(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,T._)`${z.default.errors} === 0`,()=>e.return(z.default.data),()=>e.throw((0,T._)`new ${o}(${z.default.vErrors})`)):(e.assign((0,T._)`${n}.errors`,z.default.vErrors),i.unevaluated&&HD(t),e.return((0,T._)`${z.default.errors} === 0`))}function HD({gen:t,evaluated:e,props:r,items:n}){r instanceof T.Name&&t.assign((0,T._)`${e}.props`,r),n instanceof T.Name&&t.assign((0,T._)`${e}.items`,n)}function fR(t,e,r,n){let{gen:o,schema:i,data:s,allErrors:a,opts:c,self:u}=t,{RULES:d}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,mr.schemaHasRulesButRef)(i,d))){o.block(()=>bR(t,"$ref",d.all.$ref.definition));return}c.jtd||GD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,Qf.shouldUseGroup)(i,f)&&(f.type?(o.if((0,bc.checkDataType)(f.type,s,c.strictNumbers)),pR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,bc.reportTypeError)(t)),o.endIf()):pR(t,f),a||o.if((0,T._)`${z.default.errors} === ${n||0}`))}}function pR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,TD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,Qf.shouldUseRule)(n,i)&&bR(t,i.keyword,i.definition,e.type)})}function GD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(ZD(t,e),t.opts.allowUnionTypes||BD(t,e),WD(t,t.dataTypes))}function ZD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{wR(t.dataTypes,r)||ep(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),KD(t,e)}}function BD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&ep(t,"use allowUnionTypes to allow union type keyword")}function WD(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Qf.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>VD(e,s))&&ep(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function VD(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function wR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function KD(t,e){let r=[];for(let n of t.dataTypes)wR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function ep(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Rc=class{constructor(e,r,n){if((0,ds.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,mr.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",RR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,ds.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",z.default.errors))}result(e,r,n){this.failResult((0,T.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,T.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,T._)`${r} !== undefined && (${(0,T.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?us.reportExtraError:us.reportError)(this,this.def.error,r)}$dataError(){(0,us.reportError)(this,this.def.$dataError||us.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,us.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=T.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=T.nil,r=T.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,T.or)((0,T._)`${o} === undefined`,r)),e!==T.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==T.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,T.or)(s(),a());function s(){if(n.length){if(!(r instanceof T.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,T._)`${(0,bc.checkDataTypes)(c,r,i.opts.strictNumbers,bc.DataType.Wrong)}`}return T.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,T._)`!${c}(${r})`}return T.nil}}subschema(e,r){let n=(0,Xf.getSubschema)(this.it,e);(0,Xf.extendSubschemaData)(n,this.it,e),(0,Xf.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return ND(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=mr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=mr.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,T.Name)),!0}};Jr.KeywordCxt=Rc;function bR(t,e,r,n){let o=new Rc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,ds.funcKeywordCode)(o,r):"macro"in r?(0,ds.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,ds.funcKeywordCode)(o,r)}var JD=/^\/(?:[^~]|~0|~1)*$/,YD=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function RR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!JD.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=YD.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let d=+u[1];if(o=u[2],o==="#"){if(d>=e)throw new Error(c("property/index",d));return n[e-d]}if(d>e)throw new Error(c("data",d));if(i=r[e-d],!o)return i}let s=i,a=o.split("/");for(let u of a)u&&(i=(0,T._)`${i}${(0,T.getProperty)((0,mr.unescapeJsonPointer)(u))}`,s=(0,T._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Jr.getData=RR});var Cc=C(rp=>{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});var tp=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};rp.default=tp});var fs=C(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});var np=cs(),op=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,np.resolveUrl)(e,r,n),this.missingSchema=(0,np.normalizeId)((0,np.getFullPath)(e,this.missingRef))}};ip.default=op});var xc=C(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.resolveSchema=Rt.getCompilingSchema=Rt.resolveRef=Rt.compileSchema=Rt.SchemaEnv=void 0;var Ot=j(),XD=Cc(),Mn=hr(),zt=cs(),CR=B(),QD=ls(),Ao=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,zt.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Rt.SchemaEnv=Ao;function ap(t){let e=PR.call(this,t);if(e)return e;let r=(0,zt.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,s=new Ot.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),a;t.$async&&(a=s.scopeValue("Error",{ref:XD.default,code:(0,Ot._)`require("ajv/dist/runtime/validation_error").default`}));let c=s.scopeName("validate");t.validateName=c;let u={gen:s,allErrors:this.opts.allErrors,data:Mn.default.data,parentData:Mn.default.parentData,parentDataProperty:Mn.default.parentDataProperty,dataNames:[Mn.default.data],dataPathArr:[Ot.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Ot.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:Ot.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Ot._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(t),(0,QD.validateFunctionCode)(u),s.optimize(this.opts.code.optimize);let l=s.toString();d=`${s.scopeRefs(Mn.default.scope)}return ${l}`,this.opts.code.process&&(d=this.opts.code.process(d,t));let p=new Function(`${Mn.default.self}`,`${Mn.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=t.schema,p.schemaEnv=t,t.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:l,scopeValues:s._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof Ot.Name?void 0:h,items:m instanceof Ot.Name?void 0:m,dynamicProps:h instanceof Ot.Name,dynamicItems:m instanceof Ot.Name},p.source&&(p.source.evaluated=(0,Ot.stringify)(p.evaluated))}return t.validate=p,t}catch(l){throw delete t.validate,delete t.validateName,d&&this.logger.error("Error compiling schema, function code:",d),l}finally{this._compilations.delete(t)}}Rt.compileSchema=ap;function eL(t,e,r){var n;r=(0,zt.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let i=nL.call(this,t,r);if(i===void 0){let s=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;s&&(i=new Ao({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=tL.call(this,i)}Rt.resolveRef=eL;function tL(t){return(0,zt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:ap.call(this,t)}function PR(t){for(let e of this._compilations)if(rL(e,t))return e}Rt.getCompilingSchema=PR;function rL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function nL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Pc.call(this,t,e)}function Pc(t,e){let r=this.opts.uriResolver.parse(e),n=(0,zt._getFullPath)(this.opts.uriResolver,r),o=(0,zt.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return sp.call(this,r,t);let i=(0,zt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Pc.call(this,t,s);return typeof a?.schema!="object"?void 0:sp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||ap.call(this,s),i===(0,zt.normalizeId)(e)){let{schema:a}=s,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,zt.resolveUrl)(this.opts.uriResolver,o,u)),new Ao({schema:a,schemaId:c,root:t,baseId:o})}return sp.call(this,r,s)}}Rt.resolveSchema=Pc;var oL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function sp(t,{baseId:e,schema:r,root:n}){var o;if(((o=t.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,CR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!oL.has(a)&&u&&(e=(0,zt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,CR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,zt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Pc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Ao({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var xR=C((j5,iL)=>{iL.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 dp=C((F5,$R)=>{"use strict";var sL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),ER=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),cp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),TR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),aL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function up(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var cL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function kR(t){return t.length=0,!0}function uL(t,e,r){if(t.length){let n=up(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function dL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=uL;for(let c=0;c<t.length;c++){let u=t[c];if(!(u==="["||u==="]"))if(u===":"){if(i===!0&&(s=!0),!a(o,n,r))break;if(++e>7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(u==="%"){if(!a(o,n,r))break;a=kR}else{o.push(u);continue}}return o.length&&(a===kR?r.zone=o.join(""):s?n.push(o.join("")):n.push(up(o))),r.address=n.join(""),r}function AR(t){if(lL(t,":")<2)return{host:t,isIPV6:!1};let e=dL(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function lL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function fL(t){let e=t,r=[],n=-1,o=0;for(;o=e.length;){if(o===1){if(e===".")break;if(e==="/"){r.push("/");break}else{r.push(e);break}}else if(o===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){r.push("/");break}}else if(o===3&&e==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),r.length!==0&&r.pop();continue}}if((n=e.indexOf("/",1))===-1){r.push(e);break}else r.push(e.slice(0,n)),e=e.slice(n)}return r.join("")}var pL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},hL=/[@/?#:]/g,mL=/[@/?#]/g;function MR(t,e){let r=e?mL:hL;return r.lastIndex=0,t.replace(r,n=>pL[n])}function gL(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n<t.length;n++){if(t[n]==="%"&&n+2<t.length){let o=t.slice(n+1,n+3);if(cp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&TR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function yL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(cp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&TR(i)?e+=i:e+="%"+o,r+=2;continue}}aL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function vL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(cp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function _L(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!ER(r)){let n=AR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=MR(r,!1)}e.push(r)}return(typeof t.port=="number"||typeof t.port=="string")&&(e.push(":"),e.push(String(t.port))),e.length?e.join(""):void 0}$R.exports={nonSimpleDomain:cL,recomposeAuthority:_L,reescapeHostDelimiters:MR,normalizePercentEncoding:gL,normalizePathEncoding:yL,escapePreservingEscapes:vL,removeDotSegments:fL,isIPv4:ER,isUUID:sL,normalizeIPv6:AR,stringArrayToHexStripped:up}});var DR=C((U5,NR)=>{"use strict";var{isUUID:SL}=dp(),wL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,bL=["http","https","ws","wss","urn","urn:uuid"];function RL(t){return bL.indexOf(t)!==-1}function lp(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function IR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function OR(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function CL(t){return t.secure=lp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function PL(t){if((t.port===(lp(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function xL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(wL);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,i=fp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function kL(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),o=`${r}:${e.nid||n}`,i=fp(o);i&&(t=i.serialize(t,e));let s=t,a=t.nss;return s.path=`${n||e.nid}:${a}`,e.skipEscape=!0,s}function EL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!SL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function TL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var zR={scheme:"http",domainHost:!0,parse:IR,serialize:OR},AL={scheme:"https",domainHost:zR.domainHost,parse:IR,serialize:OR},kc={scheme:"ws",domainHost:!0,parse:CL,serialize:PL},ML={scheme:"wss",domainHost:kc.domainHost,parse:kc.parse,serialize:kc.serialize},$L={scheme:"urn",parse:xL,serialize:kL,skipNormalize:!0},IL={scheme:"urn:uuid",parse:EL,serialize:TL,skipNormalize:!0},Ec={http:zR,https:AL,ws:kc,wss:ML,urn:$L,"urn:uuid":IL};Object.setPrototypeOf(Ec,null);function fp(t){return t&&(Ec[t]||Ec[t.toLowerCase()])||void 0}NR.exports={wsIsSecure:lp,SCHEMES:Ec,isValidSchemeName:RL,getSchemeHandler:fp}});var qR=C((q5,Mc)=>{"use strict";var{normalizeIPv6:OL,removeDotSegments:ps,recomposeAuthority:zL,normalizePercentEncoding:NL,normalizePathEncoding:DL,escapePreservingEscapes:LL,reescapeHostDelimiters:jL,isIPv4:FL,nonSimpleDomain:UL}=dp(),{SCHEMES:qL,getSchemeHandler:jR}=DR();function HL(t,e){return typeof t=="string"?t=JL(t,e):typeof t=="object"&&(t=Ac($n(t,e),e)),t}function GL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Tc(t,n),{parsed:s,malformedAuthorityOrPort:a}=Tc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=FR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function FR(t,e,r,n){let o={};return n||(t=Ac($n(t,r),r),e=Ac($n(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ps(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ps(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ps(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=ps(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function ZL(t,e,r){let n=LR(t,r),o=LR(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function $n(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),o=[],i=jR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=NL(r.path):(r.path=LL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=zL(r);if(s!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(s),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(a=ps(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var BL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,WL=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,VL=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function KL(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function Tc(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let s=t.match(WL);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(VL);if(a!==null){let u=a[1],d=u.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):u.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=t.match(BL);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let u=KL(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(FL(n.host)===!1){let f=OL(n.host);n.host=f.host.toLowerCase(),i=f.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=jR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&UL(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(l){n.error=n.error||"Host's domain name can not be converted to ASCII: "+l}if((!d||d&&!d.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=jL(unescape(n.host),i))),n.path&&(n.path=DL(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function Ac(t,e){return Tc(t,e).parsed}function JL(t,e){return UR(t,e).normalized}function UR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Tc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function LR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=UR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var pp={SCHEMES:qL,normalize:HL,resolve:GL,resolveComponent:FR,equal:ZL,serialize:$n,parse:Ac};Mc.exports=pp;Mc.exports.default=pp;Mc.exports.fastUri=pp});var GR=C(hp=>{"use strict";Object.defineProperty(hp,"__esModule",{value:!0});var HR=qR();HR.code='require("ajv/dist/runtime/uri").default';hp.default=HR});var XR=C(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CodeGen=Ne.Name=Ne.nil=Ne.stringify=Ne.str=Ne._=Ne.KeywordCxt=void 0;var YL=ls();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return YL.KeywordCxt}});var Mo=j();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Mo._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Mo.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Mo.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Mo.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Mo.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return Mo.CodeGen}});var XL=Cc(),KR=fs(),QL=qf(),hs=xc(),ej=j(),ms=cs(),$c=as(),gp=B(),ZR=xR(),tj=GR(),JR=(t,e)=>new RegExp(t,e);JR.code="new RegExp";var rj=["removeAdditional","useDefaults","coerceTypes"],nj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),oj={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."},ij={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},BR=200;function sj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,x,S,R,I,ne,fe;let Pe=t.strict,sn=(e=t.code)===null||e===void 0?void 0:e.optimize,an=sn===!0||sn===void 0?1:sn||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:JR,br=(o=t.uriResolver)!==null&&o!==void 0?o:tj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:Pe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:Pe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:Pe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:Pe)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:Pe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:an,regExp:lt}:{optimize:an,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:BR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:BR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(R=t.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(I=t.validateFormats)!==null&&I!==void 0?I:!0,unicodeRegExp:(ne=t.unicodeRegExp)!==null&&ne!==void 0?ne:!0,int32range:(fe=t.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:br}}var gs=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...sj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new ej.ValueScope({scope:{},prefixes:nj,es5:r,lines:n}),this.logger=fj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,QL.getRules)(),WR.call(this,oj,e,"NOT SUPPORTED"),WR.call(this,ij,e,"DEPRECATED","warn"),this._metaOpts=dj.call(this),e.formats&&cj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&uj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),aj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=ZR;n==="id"&&(o={...ZR},o.id=o.$id,delete o.$id),r&&e&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,e,r);async function o(d,l){await i.call(this,d.$schema);let f=this._addSchema(d,l);return f.validate||s.call(this,f)}async function i(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function s(d){try{return this._compileSchemaEnv(d)}catch(l){if(!(l instanceof KR.default))throw l;return a.call(this,l),await c.call(this,l.missingSchema),s.call(this,d)}}function a({missingSchema:d,missingRef:l}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${l} cannot be resolved`)}async function c(d){let l=await u.call(this,d);this.refs[d]||await i.call(this,l.$schema),this.refs[d]||this.addSchema(l,d,r)}async function u(d){let l=this._loading[d];if(l)return l;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,o);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return r=(0,ms.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(e){let r;for(;typeof(r=VR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new hs.SchemaEnv({schema:{},schemaId:n});if(r=hs.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=VR.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,ms.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(hj.call(this,n,r),!r)return(0,gp.eachItem)(n,i=>mp.call(this,i)),this;gj.call(this,r);let o={...r,type:(0,$c.getJSONTypes)(r.type),schemaType:(0,$c.getJSONTypes)(r.schemaType)};return(0,gp.eachItem)(n,o.type.length===0?i=>mp.call(this,i,o):i=>o.type.forEach(s=>mp.call(this,i,o,s))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===e);o>=0&&n.rules.splice(o,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let o of r){let i=o.split("/").slice(1),s=e;for(let a of i)s=s[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,d=s[a];u&&d&&(s[a]=YR(d))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:a}=this.opts;if(typeof e=="object")s=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,ms.normalizeId)(s||n);let u=ms.getSchemaRefs.call(this,e,n);return c=new hs.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):hs.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{hs.compileSchema.call(this,e)}finally{this.opts=r}}};gs.ValidationError=XL.default;gs.MissingRefError=KR.default;Ne.default=gs;function WR(t,e,r,n="error"){for(let o in t){let i=o;i in e&&this.logger[n](`${r}: option ${o}. ${t[i]}`)}}function VR(t){return t=(0,ms.normalizeId)(t),this.schemas[t]||this.refs[t]}function aj(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function cj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function uj(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function dj(){let t={...this.opts};for(let e of rj)delete t[e];return t}var lj={log(){},warn(){},error(){}};function fj(t){if(t===!1)return lj;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var pj=/^[a-z_$][a-z0-9_$:-]*$/i;function hj(t,e){let{RULES:r}=this;if((0,gp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!pj.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function mp(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=o?i.post:i.rules.find(({type:c})=>c===r);if(s||(s={type:r,rules:[]},i.rules.push(s)),i.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,$c.getJSONTypes)(e.type),schemaType:(0,$c.getJSONTypes)(e.schemaType)}};e.before?mj.call(this,s,a,e.before):s.rules.push(a),i.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function mj(t,e,r){let n=t.rules.findIndex(o=>o.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function gj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=YR(e)),t.validateSchema=this.compile(e,!0))}var yj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function YR(t){return{anyOf:[t,yj]}}});var QR=C(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var vj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};yp.default=vj});var nC=C(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var _j=fs(),eC=bt(),rt=j(),$o=hr(),tC=xc(),Ic=B(),Sj={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:o,schemaEnv:i,validateName:s,opts:a,self:c}=n,{root:u}=i;if((r==="#"||r==="#/")&&o===u.baseId)return l();let d=tC.resolveRef.call(c,u,o,r);if(d===void 0)throw new _j.default(n.opts.uriResolver,o,r);if(d instanceof tC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Oc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Oc(t,(0,rt._)`${h}.validate`,u,u.$async)}function f(h){let m=rC(t,h);Oc(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,rt.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:rt.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function rC(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,rt._)`${r.scopeValue("wrapper",{ref:e})}.validate`}In.getValidate=rC;function Oc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?$o.default.this:rt.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=o.let("valid");o.try(()=>{o.code((0,rt._)`await ${(0,eC.callValidateCode)(t,e,u)}`),p(e),s||o.assign(h,!0)},m=>{o.if((0,rt._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),f(m),s||o.assign(h,!1)}),t.ok(h)}function l(){t.result((0,eC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,rt._)`${h}.errors`;o.assign($o.default.vErrors,(0,rt._)`${$o.default.vErrors} === null ? ${m} : ${$o.default.vErrors}.concat(${m})`),o.assign($o.default.errors,(0,rt._)`${$o.default.vErrors}.length`)}function p(h){var m;if(!i.opts.unevaluated)return;let g=(m=r?.validate)===null||m===void 0?void 0:m.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Ic.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,rt._)`${h}.evaluated.props`);i.props=Ic.mergeEvaluated.props(o,v,i.props,rt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Ic.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,rt._)`${h}.evaluated.items`);i.items=Ic.mergeEvaluated.items(o,v,i.items,rt.Name)}}}In.callRef=Oc;In.default=Sj});var oC=C(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var wj=QR(),bj=nC(),Rj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",wj.default,bj.default];vp.default=Rj});var iC=C(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var zc=j(),Yr=zc.operators,Nc={maximum:{okStr:"<=",ok:Yr.LTE,fail:Yr.GT},minimum:{okStr:">=",ok:Yr.GTE,fail:Yr.LT},exclusiveMaximum:{okStr:"<",ok:Yr.LT,fail:Yr.GTE},exclusiveMinimum:{okStr:">",ok:Yr.GT,fail:Yr.LTE}},Cj={message:({keyword:t,schemaCode:e})=>(0,zc.str)`must be ${Nc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,zc._)`{comparison: ${Nc[t].okStr}, limit: ${e}}`},Pj={keyword:Object.keys(Nc),type:"number",schemaType:"number",$data:!0,error:Cj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,zc._)`${r} ${Nc[e].fail} ${n} || isNaN(${r})`)}};_p.default=Pj});var sC=C(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var ys=j(),xj={message:({schemaCode:t})=>(0,ys.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ys._)`{multipleOf: ${t}}`},kj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:xj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,ys._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,ys._)`${s} !== parseInt(${s})`;t.fail$data((0,ys._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};Sp.default=kj});var cC=C(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});function aC(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}wp.default=aC;aC.code='require("ajv/dist/runtime/ucs2length").default'});var uC=C(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var On=j(),Ej=B(),Tj=cC(),Aj={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,On.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,On._)`{limit: ${t}}`},Mj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Aj,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?On.operators.GT:On.operators.LT,s=o.opts.unicode===!1?(0,On._)`${r}.length`:(0,On._)`${(0,Ej.useFunc)(t.gen,Tj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};bp.default=Mj});var dC=C(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var $j=bt(),Ij=B(),Io=j(),Oj={message:({schemaCode:t})=>(0,Io.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Io._)`{pattern: ${t}}`},zj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Oj,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:s}=t,a=s.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=s.opts.code,u=c.code==="new RegExp"?(0,Io._)`new RegExp`:(0,Ij.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,Io._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,Io._)`!${d}`)}else{let c=(0,$j.usePattern)(t,o);t.fail$data((0,Io._)`!${c}.test(${r})`)}}};Rp.default=zj});var lC=C(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var vs=j(),Nj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,vs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,vs._)`{limit: ${t}}`},Dj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Nj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?vs.operators.GT:vs.operators.LT;t.fail$data((0,vs._)`Object.keys(${r}).length ${o} ${n}`)}};Cp.default=Dj});var fC=C(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var _s=bt(),Ss=j(),Lj=B(),jj={message:({params:{missingProperty:t}})=>(0,Ss.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Ss._)`{missingProperty: ${t}}`},Fj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:jj,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:i,it:s}=t,{opts:a}=s;if(!i&&r.length===0)return;let c=r.length>=a.loopRequired;if(s.allErrors?u():d(),a.strictRequired){let p=t.parentSchema.properties,{definedProperties:h}=t.it;for(let m of r)if(p?.[m]===void 0&&!h.has(m)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,Lj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(Ss.nil,l);else for(let p of r)(0,_s.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let h=e.let("valid",!0);t.block$data(h,()=>f(p,h)),t.ok(h)}else e.if((0,_s.checkMissingProp)(t,r,p)),(0,_s.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,_s.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,_s.propertyInData)(e,o,p,a.ownProperties)),e.if((0,Ss.not)(h),()=>{t.error(),e.break()})},Ss.nil)}}};Pp.default=Fj});var pC=C(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var ws=j(),Uj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ws.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ws._)`{limit: ${t}}`},qj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Uj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ws.operators.GT:ws.operators.LT;t.fail$data((0,ws._)`${r}.length ${o} ${n}`)}};xp.default=qj});var Dc=C(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var hC=Jf();hC.code='require("ajv/dist/runtime/equal").default';kp.default=hC});var mC=C(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Ep=as(),De=j(),Hj=B(),Gj=Dc(),Zj={message:({params:{i:t,j:e}})=>(0,De.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,De._)`{i: ${t}, j: ${e}}`},Bj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Zj,code(t){let{gen:e,data:r,$data:n,schema:o,parentSchema:i,schemaCode:s,it:a}=t;if(!n&&!o)return;let c=e.let("valid"),u=i.items?(0,Ep.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,De._)`${s} === false`),t.ok(c);function d(){let h=e.let("i",(0,De._)`${r}.length`),m=e.let("j");t.setParams({i:h,j:m}),e.assign(c,!0),e.if((0,De._)`${h} > 1`,()=>(l()?f:p)(h,m))}function l(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=e.name("item"),v=(0,Ep.checkDataTypes)(u,g,a.opts.strictNumbers,Ep.DataType.Wrong),w=e.const("indices",(0,De._)`{}`);e.for((0,De._)`;${h}--;`,()=>{e.let(g,(0,De._)`${r}[${h}]`),e.if(v,(0,De._)`continue`),u.length>1&&e.if((0,De._)`typeof ${g} == "string"`,(0,De._)`${g} += "_"`),e.if((0,De._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(m,(0,De._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,De._)`${w}[${g}] = ${h}`)})}function p(h,m){let g=(0,Hj.useFunc)(e,Gj.default),v=e.name("outer");e.label(v).for((0,De._)`;${h}--;`,()=>e.for((0,De._)`${m} = ${h}; ${m}--;`,()=>e.if((0,De._)`${g}(${r}[${h}], ${r}[${m}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Tp.default=Bj});var gC=C(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Ap=j(),Wj=B(),Vj=Dc(),Kj={message:"must be equal to constant",params:({schemaCode:t})=>(0,Ap._)`{allowedValue: ${t}}`},Jj={keyword:"const",$data:!0,error:Kj,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Ap._)`!${(0,Wj.useFunc)(e,Vj.default)}(${r}, ${o})`):t.fail((0,Ap._)`${i} !== ${r}`)}};Mp.default=Jj});var yC=C($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var bs=j(),Yj=B(),Xj=Dc(),Qj={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,bs._)`{allowedValues: ${t}}`},e1={keyword:"enum",schemaType:"array",$data:!0,error:Qj,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:s}=t;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let a=o.length>=s.opts.loopEnum,c,u=()=>c??(c=(0,Yj.useFunc)(e,Xj.default)),d;if(a||n)d=e.let("valid"),t.block$data(d,l);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let p=e.const("vSchema",i);d=(0,bs.or)(...o.map((h,m)=>f(p,m)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,bs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,bs._)`${u()}(${r}, ${p}[${h}])`:(0,bs._)`${r} === ${m}`}}};$p.default=e1});var vC=C(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var t1=iC(),r1=sC(),n1=uC(),o1=dC(),i1=lC(),s1=fC(),a1=pC(),c1=mC(),u1=gC(),d1=yC(),l1=[t1.default,r1.default,n1.default,o1.default,i1.default,s1.default,a1.default,c1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u1.default,d1.default];Ip.default=l1});var zp=C(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateAdditionalItems=void 0;var zn=j(),Op=B(),f1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},p1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:f1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Op.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}_C(t,n)}};function _C(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,zn._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,zn._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,Op.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,zn._)`${a} <= ${e.length}`);r.if((0,zn.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:Op.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Rs.validateAdditionalItems=_C;Rs.default=p1});var Np=C(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});Cs.validateTuple=void 0;var SC=j(),Lc=B(),h1=bt(),m1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return wC(t,"additionalItems",e);r.items=!0,!(0,Lc.alwaysValidSchema)(r,e)&&t.ok((0,h1.validateArray)(t))}};function wC(t,e,r=t.schema){let{gen:n,parentSchema:o,data:i,keyword:s,it:a}=t;d(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=Lc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,SC._)`${i}.length`);r.forEach((l,f)=>{(0,Lc.alwaysValidSchema)(a,l)||(n.if((0,SC._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,h=r.length,m=h===l.minItems&&(h===l.maxItems||l[e]===!1);if(f.strictTuples&&!m){let g=`"${s}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,Lc.checkStrictMode)(a,g,f.strictTuples)}}}Cs.validateTuple=wC;Cs.default=m1});var bC=C(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var g1=Np(),y1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,g1.validateTuple)(t,"items")};Dp.default=y1});var CC=C(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var RC=j(),v1=B(),_1=bt(),S1=zp(),w1={message:({params:{len:t}})=>(0,RC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,RC._)`{limit: ${t}}`},b1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:w1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,v1.alwaysValidSchema)(n,e)&&(o?(0,S1.validateAdditionalItems)(t,o):t.ok((0,_1.validateArray)(t)))}};Lp.default=b1});var PC=C(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var Ct=j(),jc=B(),R1={message:({params:{min:t,max:e}})=>e===void 0?(0,Ct.str)`must contain at least ${t} valid item(s)`:(0,Ct.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Ct._)`{minContains: ${t}}`:(0,Ct._)`{minContains: ${t}, maxContains: ${e}}`},C1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:R1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t,s,a,{minContains:c,maxContains:u}=n;i.opts.next?(s=c===void 0?1:c,a=u):s=1;let d=e.const("len",(0,Ct._)`${o}.length`);if(t.setParams({min:s,max:a}),a===void 0&&s===0){(0,jc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,jc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,jc.alwaysValidSchema)(i,r)){let m=(0,Ct._)`${d} >= ${s}`;a!==void 0&&(m=(0,Ct._)`${m} && ${d} <= ${a}`),t.pass(m);return}i.items=!0;let l=e.name("valid");a===void 0&&s===1?p(l,()=>e.if(l,()=>e.break())):s===0?(e.let(l,!0),a!==void 0&&e.if((0,Ct._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let m=e.name("_valid"),g=e.let("count",0);p(m,()=>e.if(m,()=>h(g)))}function p(m,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:jc.Type.Num,compositeRule:!0},m),g()})}function h(m){e.code((0,Ct._)`${m}++`),a===void 0?e.if((0,Ct._)`${m} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Ct._)`${m} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Ct._)`${m} >= ${s}`,()=>e.assign(l,!0)))}}};jp.default=C1});var EC=C(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var Fp=j(),P1=B(),Ps=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Fp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Fp._)`{property: ${t},
|
|
5
|
+
|| ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function ZN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Zf(t,e,r,n=ko.Correct){let o=n===ko.Correct?L.operators.EQ:L.operators.NEQ,i;switch(t){case"null":return(0,L._)`${e} ${o} null`;case"array":i=(0,L._)`Array.isArray(${e})`;break;case"object":i=(0,L._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,L._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,L._)`typeof ${e} ${o} ${t}`}return n===ko.Correct?i:(0,L.not)(i);function s(a=L.nil){return(0,L.and)((0,L._)`typeof ${e} == "number"`,a,r?(0,L._)`isFinite(${e})`:L.nil)}}Ue.checkDataType=Zf;function Bf(t,e,r,n){if(t.length===1)return Zf(t[0],e,r,n);let o,i=(0,Bb.toHash)(t);if(i.array&&i.object){let s=(0,L._)`typeof ${e} != "object"`;o=i.null?s:(0,L._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else o=L.nil;i.number&&delete i.integer;for(let s in i)o=(0,L.and)(o,Zf(s,e,r,n));return o}Ue.checkDataTypes=Bf;var BN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Wf(t){let e=WN(t);(0,FN.reportError)(e,BN)}Ue.reportTypeError=Wf;function WN(t){let{gen:e,data:r,schema:n}=t,o=(0,Bb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Jb=P(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.assignDefaults=void 0;var Eo=j(),VN=B();function KN(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Kb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Kb(t,i,o.default))}wc.assignDefaults=KN;function Kb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Eo._)`${i}${(0,Eo.getProperty)(e)}`;if(o){(0,VN.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Eo._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Eo._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Eo._)`${a} = ${(0,Eo.stringify)(r)}`)}});var bt=P(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.validateUnion=re.validateArray=re.usePattern=re.callValidateCode=re.schemaProperties=re.allSchemaProperties=re.noPropertyInData=re.propertyInData=re.isOwnProperty=re.hasPropFunc=re.reportMissingProp=re.checkMissingProp=re.checkReportMissingProp=void 0;var de=j(),Vf=B(),Wr=hr(),JN=B();function YN(t,e){let{gen:r,data:n,it:o}=t;r.if(Jf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=YN;function XN({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Jf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=XN;function QN(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=QN;function Yb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Yb;function Kf(t,e,r){return(0,de._)`${Yb(t)}.call(${e}, ${r})`}re.isOwnProperty=Kf;function eD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Kf(t,e,r)}`:o}re.propertyInData=eD;function Jf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Kf(t,e,r))):o}re.noPropertyInData=Jf;function Xb(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=Xb;function tD(t,e){return Xb(e).filter(r=>!(0,Vf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=tD;function rD({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:s},a,c,u){let d=u?(0,de._)`${t}, ${e}, ${n}${o}`:e,l=[[Wr.default.instancePath,(0,de.strConcat)(Wr.default.instancePath,i)],[Wr.default.parentData,s.parentData],[Wr.default.parentDataProperty,s.parentDataProperty],[Wr.default.rootData,Wr.default.rootData]];s.opts.dynamicRef&&l.push([Wr.default.dynamicAnchors,Wr.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...l)}`;return c!==de.nil?(0,de._)`${a}.call(${c}, ${f})`:(0,de._)`${a}(${f})`}re.callValidateCode=rD;var nD=(0,de._)`new RegExp`;function oD({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:o}=e.code,i=o(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,de._)`${o.code==="new RegExp"?nD:(0,JN.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=oD;function iD(t){let{gen:e,data:r,keyword:n,it:o}=t,i=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return s(()=>e.assign(a,!1)),a}return e.var(i,!0),s(()=>e.break()),i;function s(a){let c=e.const("len",(0,de._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:Vf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=iD;function sD(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Vf.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let s=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let d=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(s,(0,de._)`${s} || ${a}`),t.mergeValidEvaluated(d,a)||e.if((0,de.not)(s))})),t.result(s,()=>t.reset(),()=>t.error(!0))}re.validateUnion=sD});var tR=P(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.validateKeywordUsage=Jt.validSchemaType=Jt.funcKeywordCode=Jt.macroKeywordCode=void 0;var Ze=j(),An=hr(),aD=bt(),cD=ss();function uD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=eR(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Ze.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Jt.macroKeywordCode=uD;function dD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;fD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=eR(n,o,u),l=n.let("valid");t.block$data(l,f),t.ok((r=e.valid)!==null&&r!==void 0?r:l);function f(){if(e.errors===!1)m(),e.modifying&&Qb(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&Qb(t),g(()=>lD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((0,Ze._)`await `),b=>n.assign(l,!1).if((0,Ze._)`${b} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Ze._)`${b}.errors`),()=>n.throw(b))),v}function h(){let v=(0,Ze._)`${d}.errors`;return n.assign(v,null),m(Ze.nil),v}function m(v=e.async?(0,Ze._)`await `:Ze.nil){let b=c.opts.passContext?An.default.this:An.default.self,_=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ze._)`${v}${(0,aD.callValidateCode)(t,d,b,_)}`,e.modifying)}function g(v){var b;n.if((0,Ze.not)((b=e.valid)!==null&&b!==void 0?b:l),v)}}Jt.funcKeywordCode=dD;function Qb(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ze._)`${n.parentData}[${n.parentDataProperty}]`))}function lD(t,e){let{gen:r}=t;r.if((0,Ze._)`Array.isArray(${e})`,()=>{r.assign(An.default.vErrors,(0,Ze._)`${An.default.vErrors} === null ? ${e} : ${An.default.vErrors}.concat(${e})`).assign(An.default.errors,(0,Ze._)`${An.default.vErrors}.length`),(0,cD.extendErrors)(t)},()=>t.error())}function fD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function eR(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ze.stringify)(r)})}function pD(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Jt.validSchemaType=pD;function hD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Jt.validateKeywordUsage=hD});var nR=P(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.extendSubschemaMode=Vr.extendSubschemaData=Vr.getSubschema=void 0;var Yt=j(),rR=B();function mD(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}${(0,Yt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,rR.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Vr.getSubschema=mD;function gD(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:s}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:d,opts:l}=e,f=a.let("data",(0,Yt._)`${e.data}${(0,Yt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Yt.str)`${u}${(0,rR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Yt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Yt.Name?o:a.let("data",o,!0);c(u),s!==void 0&&(t.propertyName=s)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Vr.extendSubschemaData=gD;function yD(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Vr.extendSubschemaMode=yD});var Yf=P((O5,oR)=>{"use strict";oR.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var s=i[o];if(!t(e[s],r[s]))return!1}return!0}return e!==e&&r!==r}});var sR=P((z5,iR)=>{"use strict";var Kr=iR.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};bc(e,n,o,t,"",t)};Kr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Kr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Kr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Kr.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 bc(t,e,r,n,o,i,s,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,i,s,a,c,u);for(var d in n){var l=n[d];if(Array.isArray(l)){if(d in Kr.arrayKeywords)for(var f=0;f<l.length;f++)bc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Kr.propsKeywords){if(l&&typeof l=="object")for(var p in l)bc(t,e,r,l[p],o+"/"+d+"/"+vD(p),i,o,d,n,p)}else(d in Kr.keywords||t.allKeys&&!(d in Kr.skipKeywords))&&bc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function vD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var cs=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.getSchemaRefs=rt.resolveUrl=rt.normalizeId=rt._getFullPath=rt.getFullPath=rt.inlineRef=void 0;var _D=B(),SD=Yf(),wD=sR(),bD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function RD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Xf(t):e?aR(t)<=e:!1}rt.inlineRef=RD;var CD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Xf(t){for(let e in t){if(CD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Xf)||typeof r=="object"&&Xf(r))return!0}return!1}function aR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!bD.has(r)&&(typeof t[r]=="object"&&(0,_D.eachItem)(t[r],n=>e+=aR(n)),e===1/0))return 1/0}return e}function cR(t,e="",r){r!==!1&&(e=To(e));let n=t.parse(e);return uR(t,n)}rt.getFullPath=cR;function uR(t,e){return t.serialize(e).split("#")[0]+"#"}rt._getFullPath=uR;var PD=/#\/?$/;function To(t){return t?t.replace(PD,""):""}rt.normalizeId=To;function xD(t,e,r){return r=To(r),t.resolve(e,r)}rt.resolveUrl=xD;var kD=/^[a-z_][-a-z0-9._]*$/i;function ED(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=To(t[r]||e),i={"":o},s=cR(n,o,!1),a={},c=new Set;return wD(t,{allKeys:!0},(l,f,p,h)=>{if(h===void 0)return;let m=s+f,g=i[h];typeof l[r]=="string"&&(g=v.call(this,l[r])),b.call(this,l.$anchor),b.call(this,l.$dynamicAnchor),i[f]=g;function v(_){let R=this.opts.uriResolver.resolve;if(_=To(g?R(g,_):_),c.has(_))throw d(_);c.add(_);let w=this.refs[_];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?u(l,w.schema,_):_!==To(m)&&(_[0]==="#"?(u(l,a[_],_),a[_]=l):this.refs[_]=m),_}function b(_){if(typeof _=="string"){if(!kD.test(_))throw new Error(`invalid anchor "${_}"`);v.call(this,`#${_}`)}}}),a;function u(l,f,p){if(f!==void 0&&!SD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}rt.getSchemaRefs=ED});var ls=P(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.getData=Jr.KeywordCxt=Jr.validateFunctionCode=void 0;var hR=Hb(),dR=as(),ep=Gf(),Rc=as(),TD=Jb(),ds=tR(),Qf=nR(),T=j(),z=hr(),AD=cs(),mr=B(),us=ss();function MD(t){if(yR(t)&&(vR(t),gR(t))){OD(t);return}mR(t,()=>(0,hR.topBoolOrEmptySchema)(t))}Jr.validateFunctionCode=MD;function mR({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,T._)`${z.default.data}, ${z.default.valCxt}`,n.$async,()=>{t.code((0,T._)`"use strict"; ${lR(r,o)}`),ID(t,o),t.code(i)}):t.func(e,(0,T._)`${z.default.data}, ${$D(o)}`,n.$async,()=>t.code(lR(r,o)).code(i))}function $D(t){return(0,T._)`{${z.default.instancePath}="", ${z.default.parentData}, ${z.default.parentDataProperty}, ${z.default.rootData}=${z.default.data}${t.dynamicRef?(0,T._)`, ${z.default.dynamicAnchors}={}`:T.nil}}={}`}function ID(t,e){t.if(z.default.valCxt,()=>{t.var(z.default.instancePath,(0,T._)`${z.default.valCxt}.${z.default.instancePath}`),t.var(z.default.parentData,(0,T._)`${z.default.valCxt}.${z.default.parentData}`),t.var(z.default.parentDataProperty,(0,T._)`${z.default.valCxt}.${z.default.parentDataProperty}`),t.var(z.default.rootData,(0,T._)`${z.default.valCxt}.${z.default.rootData}`),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`${z.default.valCxt}.${z.default.dynamicAnchors}`)},()=>{t.var(z.default.instancePath,(0,T._)`""`),t.var(z.default.parentData,(0,T._)`undefined`),t.var(z.default.parentDataProperty,(0,T._)`undefined`),t.var(z.default.rootData,z.default.data),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`{}`)})}function OD(t){let{schema:e,opts:r,gen:n}=t;mR(t,()=>{r.$comment&&e.$comment&&SR(t),jD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&zD(t),_R(t),qD(t)})}function zD(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,T._)`${r}.evaluated`),e.if((0,T._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,T._)`${t.evaluated}.props`,(0,T._)`undefined`)),e.if((0,T._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,T._)`${t.evaluated}.items`,(0,T._)`undefined`))}function lR(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,T._)`/*# sourceURL=${r} */`:T.nil}function ND(t,e){if(yR(t)&&(vR(t),gR(t))){DD(t,e);return}(0,hR.boolOrEmptySchema)(t,e)}function gR({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function yR(t){return typeof t.schema!="boolean"}function DD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&SR(t),FD(t),UD(t);let i=n.const("_errs",z.default.errors);_R(t,i),n.var(e,(0,T._)`${i} === ${z.default.errors}`)}function vR(t){(0,mr.checkUnknownRules)(t),LD(t)}function _R(t,e){if(t.opts.jtd)return fR(t,[],!1,e);let r=(0,dR.getSchemaTypes)(t.schema),n=(0,dR.coerceAndCheckDataType)(t,r);fR(t,r,!n,e)}function LD(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,mr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function jD(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,mr.checkStrictMode)(t,"default is ignored in the schema root")}function FD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,AD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function UD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function SR({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,T._)`${z.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,T.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,T._)`${z.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function qD(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,T._)`${z.default.errors} === 0`,()=>e.return(z.default.data),()=>e.throw((0,T._)`new ${o}(${z.default.vErrors})`)):(e.assign((0,T._)`${n}.errors`,z.default.vErrors),i.unevaluated&&HD(t),e.return((0,T._)`${z.default.errors} === 0`))}function HD({gen:t,evaluated:e,props:r,items:n}){r instanceof T.Name&&t.assign((0,T._)`${e}.props`,r),n instanceof T.Name&&t.assign((0,T._)`${e}.items`,n)}function fR(t,e,r,n){let{gen:o,schema:i,data:s,allErrors:a,opts:c,self:u}=t,{RULES:d}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,mr.schemaHasRulesButRef)(i,d))){o.block(()=>bR(t,"$ref",d.all.$ref.definition));return}c.jtd||GD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,ep.shouldUseGroup)(i,f)&&(f.type?(o.if((0,Rc.checkDataType)(f.type,s,c.strictNumbers)),pR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,Rc.reportTypeError)(t)),o.endIf()):pR(t,f),a||o.if((0,T._)`${z.default.errors} === ${n||0}`))}}function pR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,TD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,ep.shouldUseRule)(n,i)&&bR(t,i.keyword,i.definition,e.type)})}function GD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(ZD(t,e),t.opts.allowUnionTypes||BD(t,e),WD(t,t.dataTypes))}function ZD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{wR(t.dataTypes,r)||tp(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),KD(t,e)}}function BD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&tp(t,"use allowUnionTypes to allow union type keyword")}function WD(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,ep.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>VD(e,s))&&tp(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function VD(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function wR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function KD(t,e){let r=[];for(let n of t.dataTypes)wR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function tp(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Cc=class{constructor(e,r,n){if((0,ds.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,mr.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",RR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,ds.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",z.default.errors))}result(e,r,n){this.failResult((0,T.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,T.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,T._)`${r} !== undefined && (${(0,T.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?us.reportExtraError:us.reportError)(this,this.def.error,r)}$dataError(){(0,us.reportError)(this,this.def.$dataError||us.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,us.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=T.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=T.nil,r=T.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,T.or)((0,T._)`${o} === undefined`,r)),e!==T.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==T.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,T.or)(s(),a());function s(){if(n.length){if(!(r instanceof T.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,T._)`${(0,Rc.checkDataTypes)(c,r,i.opts.strictNumbers,Rc.DataType.Wrong)}`}return T.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,T._)`!${c}(${r})`}return T.nil}}subschema(e,r){let n=(0,Qf.getSubschema)(this.it,e);(0,Qf.extendSubschemaData)(n,this.it,e),(0,Qf.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return ND(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=mr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=mr.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,T.Name)),!0}};Jr.KeywordCxt=Cc;function bR(t,e,r,n){let o=new Cc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,ds.funcKeywordCode)(o,r):"macro"in r?(0,ds.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,ds.funcKeywordCode)(o,r)}var JD=/^\/(?:[^~]|~0|~1)*$/,YD=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function RR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!JD.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=YD.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let d=+u[1];if(o=u[2],o==="#"){if(d>=e)throw new Error(c("property/index",d));return n[e-d]}if(d>e)throw new Error(c("data",d));if(i=r[e-d],!o)return i}let s=i,a=o.split("/");for(let u of a)u&&(i=(0,T._)`${i}${(0,T.getProperty)((0,mr.unescapeJsonPointer)(u))}`,s=(0,T._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Jr.getData=RR});var Pc=P(np=>{"use strict";Object.defineProperty(np,"__esModule",{value:!0});var rp=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};np.default=rp});var fs=P(sp=>{"use strict";Object.defineProperty(sp,"__esModule",{value:!0});var op=cs(),ip=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,op.resolveUrl)(e,r,n),this.missingSchema=(0,op.normalizeId)((0,op.getFullPath)(e,this.missingRef))}};sp.default=ip});var kc=P(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.resolveSchema=Rt.getCompilingSchema=Rt.resolveRef=Rt.compileSchema=Rt.SchemaEnv=void 0;var Ot=j(),XD=Pc(),Mn=hr(),zt=cs(),CR=B(),QD=ls(),Ao=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,zt.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Rt.SchemaEnv=Ao;function cp(t){let e=PR.call(this,t);if(e)return e;let r=(0,zt.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,s=new Ot.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),a;t.$async&&(a=s.scopeValue("Error",{ref:XD.default,code:(0,Ot._)`require("ajv/dist/runtime/validation_error").default`}));let c=s.scopeName("validate");t.validateName=c;let u={gen:s,allErrors:this.opts.allErrors,data:Mn.default.data,parentData:Mn.default.parentData,parentDataProperty:Mn.default.parentDataProperty,dataNames:[Mn.default.data],dataPathArr:[Ot.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Ot.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:Ot.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Ot._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(t),(0,QD.validateFunctionCode)(u),s.optimize(this.opts.code.optimize);let l=s.toString();d=`${s.scopeRefs(Mn.default.scope)}return ${l}`,this.opts.code.process&&(d=this.opts.code.process(d,t));let p=new Function(`${Mn.default.self}`,`${Mn.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=t.schema,p.schemaEnv=t,t.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:l,scopeValues:s._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof Ot.Name?void 0:h,items:m instanceof Ot.Name?void 0:m,dynamicProps:h instanceof Ot.Name,dynamicItems:m instanceof Ot.Name},p.source&&(p.source.evaluated=(0,Ot.stringify)(p.evaluated))}return t.validate=p,t}catch(l){throw delete t.validate,delete t.validateName,d&&this.logger.error("Error compiling schema, function code:",d),l}finally{this._compilations.delete(t)}}Rt.compileSchema=cp;function eL(t,e,r){var n;r=(0,zt.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let i=nL.call(this,t,r);if(i===void 0){let s=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;s&&(i=new Ao({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=tL.call(this,i)}Rt.resolveRef=eL;function tL(t){return(0,zt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:cp.call(this,t)}function PR(t){for(let e of this._compilations)if(rL(e,t))return e}Rt.getCompilingSchema=PR;function rL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function nL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||xc.call(this,t,e)}function xc(t,e){let r=this.opts.uriResolver.parse(e),n=(0,zt._getFullPath)(this.opts.uriResolver,r),o=(0,zt.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return ap.call(this,r,t);let i=(0,zt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=xc.call(this,t,s);return typeof a?.schema!="object"?void 0:ap.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||cp.call(this,s),i===(0,zt.normalizeId)(e)){let{schema:a}=s,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,zt.resolveUrl)(this.opts.uriResolver,o,u)),new Ao({schema:a,schemaId:c,root:t,baseId:o})}return ap.call(this,r,s)}}Rt.resolveSchema=xc;var oL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function ap(t,{baseId:e,schema:r,root:n}){var o;if(((o=t.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,CR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!oL.has(a)&&u&&(e=(0,zt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,CR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,zt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=xc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Ao({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var xR=P((U5,iL)=>{iL.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 lp=P((q5,$R)=>{"use strict";var sL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),ER=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),up=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),TR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),aL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function dp(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var cL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function kR(t){return t.length=0,!0}function uL(t,e,r){if(t.length){let n=dp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function dL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=uL;for(let c=0;c<t.length;c++){let u=t[c];if(!(u==="["||u==="]"))if(u===":"){if(i===!0&&(s=!0),!a(o,n,r))break;if(++e>7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(u==="%"){if(!a(o,n,r))break;a=kR}else{o.push(u);continue}}return o.length&&(a===kR?r.zone=o.join(""):s?n.push(o.join("")):n.push(dp(o))),r.address=n.join(""),r}function AR(t){if(lL(t,":")<2)return{host:t,isIPV6:!1};let e=dL(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function lL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function fL(t){let e=t,r=[],n=-1,o=0;for(;o=e.length;){if(o===1){if(e===".")break;if(e==="/"){r.push("/");break}else{r.push(e);break}}else if(o===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){r.push("/");break}}else if(o===3&&e==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),r.length!==0&&r.pop();continue}}if((n=e.indexOf("/",1))===-1){r.push(e);break}else r.push(e.slice(0,n)),e=e.slice(n)}return r.join("")}var pL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},hL=/[@/?#:]/g,mL=/[@/?#]/g;function MR(t,e){let r=e?mL:hL;return r.lastIndex=0,t.replace(r,n=>pL[n])}function gL(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n<t.length;n++){if(t[n]==="%"&&n+2<t.length){let o=t.slice(n+1,n+3);if(up(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&TR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function yL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(up(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&TR(i)?e+=i:e+="%"+o,r+=2;continue}}aL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function vL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(up(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function _L(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!ER(r)){let n=AR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=MR(r,!1)}e.push(r)}return(typeof t.port=="number"||typeof t.port=="string")&&(e.push(":"),e.push(String(t.port))),e.length?e.join(""):void 0}$R.exports={nonSimpleDomain:cL,recomposeAuthority:_L,reescapeHostDelimiters:MR,normalizePercentEncoding:gL,normalizePathEncoding:yL,escapePreservingEscapes:vL,removeDotSegments:fL,isIPv4:ER,isUUID:sL,normalizeIPv6:AR,stringArrayToHexStripped:dp}});var DR=P((H5,NR)=>{"use strict";var{isUUID:SL}=lp(),wL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,bL=["http","https","ws","wss","urn","urn:uuid"];function RL(t){return bL.indexOf(t)!==-1}function fp(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function IR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function OR(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function CL(t){return t.secure=fp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function PL(t){if((t.port===(fp(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function xL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(wL);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,i=pp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function kL(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),o=`${r}:${e.nid||n}`,i=pp(o);i&&(t=i.serialize(t,e));let s=t,a=t.nss;return s.path=`${n||e.nid}:${a}`,e.skipEscape=!0,s}function EL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!SL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function TL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var zR={scheme:"http",domainHost:!0,parse:IR,serialize:OR},AL={scheme:"https",domainHost:zR.domainHost,parse:IR,serialize:OR},Ec={scheme:"ws",domainHost:!0,parse:CL,serialize:PL},ML={scheme:"wss",domainHost:Ec.domainHost,parse:Ec.parse,serialize:Ec.serialize},$L={scheme:"urn",parse:xL,serialize:kL,skipNormalize:!0},IL={scheme:"urn:uuid",parse:EL,serialize:TL,skipNormalize:!0},Tc={http:zR,https:AL,ws:Ec,wss:ML,urn:$L,"urn:uuid":IL};Object.setPrototypeOf(Tc,null);function pp(t){return t&&(Tc[t]||Tc[t.toLowerCase()])||void 0}NR.exports={wsIsSecure:fp,SCHEMES:Tc,isValidSchemeName:RL,getSchemeHandler:pp}});var qR=P((G5,$c)=>{"use strict";var{normalizeIPv6:OL,removeDotSegments:ps,recomposeAuthority:zL,normalizePercentEncoding:NL,normalizePathEncoding:DL,escapePreservingEscapes:LL,reescapeHostDelimiters:jL,isIPv4:FL,nonSimpleDomain:UL}=lp(),{SCHEMES:qL,getSchemeHandler:jR}=DR();function HL(t,e){return typeof t=="string"?t=JL(t,e):typeof t=="object"&&(t=Mc($n(t,e),e)),t}function GL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Ac(t,n),{parsed:s,malformedAuthorityOrPort:a}=Ac(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=FR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function FR(t,e,r,n){let o={};return n||(t=Mc($n(t,r),r),e=Mc($n(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ps(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ps(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ps(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=ps(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function ZL(t,e,r){let n=LR(t,r),o=LR(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function $n(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),o=[],i=jR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=NL(r.path):(r.path=LL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=zL(r);if(s!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(s),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(a=ps(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var BL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,WL=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,VL=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function KL(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function Ac(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let s=t.match(WL);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(VL);if(a!==null){let u=a[1],d=u.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):u.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=t.match(BL);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let u=KL(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(FL(n.host)===!1){let f=OL(n.host);n.host=f.host.toLowerCase(),i=f.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=jR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&UL(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(l){n.error=n.error||"Host's domain name can not be converted to ASCII: "+l}if((!d||d&&!d.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=jL(unescape(n.host),i))),n.path&&(n.path=DL(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function Mc(t,e){return Ac(t,e).parsed}function JL(t,e){return UR(t,e).normalized}function UR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Ac(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function LR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=UR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var hp={SCHEMES:qL,normalize:HL,resolve:GL,resolveComponent:FR,equal:ZL,serialize:$n,parse:Mc};$c.exports=hp;$c.exports.default=hp;$c.exports.fastUri=hp});var GR=P(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var HR=qR();HR.code='require("ajv/dist/runtime/uri").default';mp.default=HR});var XR=P(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CodeGen=Ne.Name=Ne.nil=Ne.stringify=Ne.str=Ne._=Ne.KeywordCxt=void 0;var YL=ls();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return YL.KeywordCxt}});var Mo=j();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Mo._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Mo.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Mo.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Mo.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Mo.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return Mo.CodeGen}});var XL=Pc(),KR=fs(),QL=Hf(),hs=kc(),ej=j(),ms=cs(),Ic=as(),yp=B(),ZR=xR(),tj=GR(),JR=(t,e)=>new RegExp(t,e);JR.code="new RegExp";var rj=["removeAdditional","useDefaults","coerceTypes"],nj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),oj={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."},ij={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},BR=200;function sj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,b,_,R,w,C,I,ne,pe;let Pe=t.strict,sn=(e=t.code)===null||e===void 0?void 0:e.optimize,an=sn===!0||sn===void 0?1:sn||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:JR,br=(o=t.uriResolver)!==null&&o!==void 0?o:tj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:Pe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:Pe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:Pe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:Pe)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:Pe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:an,regExp:lt}:{optimize:an,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:BR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:BR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(b=t.messages)!==null&&b!==void 0?b:!0,inlineRefs:(_=t.inlineRefs)!==null&&_!==void 0?_:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(C=t.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(I=t.validateFormats)!==null&&I!==void 0?I:!0,unicodeRegExp:(ne=t.unicodeRegExp)!==null&&ne!==void 0?ne:!0,int32range:(pe=t.int32range)!==null&&pe!==void 0?pe:!0,uriResolver:br}}var gs=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...sj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new ej.ValueScope({scope:{},prefixes:nj,es5:r,lines:n}),this.logger=fj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,QL.getRules)(),WR.call(this,oj,e,"NOT SUPPORTED"),WR.call(this,ij,e,"DEPRECATED","warn"),this._metaOpts=dj.call(this),e.formats&&cj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&uj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),aj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=ZR;n==="id"&&(o={...ZR},o.id=o.$id,delete o.$id),r&&e&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,e,r);async function o(d,l){await i.call(this,d.$schema);let f=this._addSchema(d,l);return f.validate||s.call(this,f)}async function i(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function s(d){try{return this._compileSchemaEnv(d)}catch(l){if(!(l instanceof KR.default))throw l;return a.call(this,l),await c.call(this,l.missingSchema),s.call(this,d)}}function a({missingSchema:d,missingRef:l}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${l} cannot be resolved`)}async function c(d){let l=await u.call(this,d);this.refs[d]||await i.call(this,l.$schema),this.refs[d]||this.addSchema(l,d,r)}async function u(d){let l=this._loading[d];if(l)return l;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,o);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return r=(0,ms.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(e){let r;for(;typeof(r=VR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new hs.SchemaEnv({schema:{},schemaId:n});if(r=hs.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=VR.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,ms.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(hj.call(this,n,r),!r)return(0,yp.eachItem)(n,i=>gp.call(this,i)),this;gj.call(this,r);let o={...r,type:(0,Ic.getJSONTypes)(r.type),schemaType:(0,Ic.getJSONTypes)(r.schemaType)};return(0,yp.eachItem)(n,o.type.length===0?i=>gp.call(this,i,o):i=>o.type.forEach(s=>gp.call(this,i,o,s))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===e);o>=0&&n.rules.splice(o,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let o of r){let i=o.split("/").slice(1),s=e;for(let a of i)s=s[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,d=s[a];u&&d&&(s[a]=YR(d))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:a}=this.opts;if(typeof e=="object")s=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,ms.normalizeId)(s||n);let u=ms.getSchemaRefs.call(this,e,n);return c=new hs.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):hs.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{hs.compileSchema.call(this,e)}finally{this.opts=r}}};gs.ValidationError=XL.default;gs.MissingRefError=KR.default;Ne.default=gs;function WR(t,e,r,n="error"){for(let o in t){let i=o;i in e&&this.logger[n](`${r}: option ${o}. ${t[i]}`)}}function VR(t){return t=(0,ms.normalizeId)(t),this.schemas[t]||this.refs[t]}function aj(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function cj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function uj(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function dj(){let t={...this.opts};for(let e of rj)delete t[e];return t}var lj={log(){},warn(){},error(){}};function fj(t){if(t===!1)return lj;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var pj=/^[a-z_$][a-z0-9_$:-]*$/i;function hj(t,e){let{RULES:r}=this;if((0,yp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!pj.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function gp(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=o?i.post:i.rules.find(({type:c})=>c===r);if(s||(s={type:r,rules:[]},i.rules.push(s)),i.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,Ic.getJSONTypes)(e.type),schemaType:(0,Ic.getJSONTypes)(e.schemaType)}};e.before?mj.call(this,s,a,e.before):s.rules.push(a),i.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function mj(t,e,r){let n=t.rules.findIndex(o=>o.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function gj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=YR(e)),t.validateSchema=this.compile(e,!0))}var yj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function YR(t){return{anyOf:[t,yj]}}});var QR=P(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var vj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};vp.default=vj});var nC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var _j=fs(),eC=bt(),nt=j(),$o=hr(),tC=kc(),Oc=B(),Sj={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:o,schemaEnv:i,validateName:s,opts:a,self:c}=n,{root:u}=i;if((r==="#"||r==="#/")&&o===u.baseId)return l();let d=tC.resolveRef.call(c,u,o,r);if(d===void 0)throw new _j.default(n.opts.uriResolver,o,r);if(d instanceof tC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return zc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return zc(t,(0,nt._)`${h}.validate`,u,u.$async)}function f(h){let m=rC(t,h);zc(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,nt.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:nt.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function rC(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,nt._)`${r.scopeValue("wrapper",{ref:e})}.validate`}In.getValidate=rC;function zc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?$o.default.this:nt.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=o.let("valid");o.try(()=>{o.code((0,nt._)`await ${(0,eC.callValidateCode)(t,e,u)}`),p(e),s||o.assign(h,!0)},m=>{o.if((0,nt._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),f(m),s||o.assign(h,!1)}),t.ok(h)}function l(){t.result((0,eC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,nt._)`${h}.errors`;o.assign($o.default.vErrors,(0,nt._)`${$o.default.vErrors} === null ? ${m} : ${$o.default.vErrors}.concat(${m})`),o.assign($o.default.errors,(0,nt._)`${$o.default.vErrors}.length`)}function p(h){var m;if(!i.opts.unevaluated)return;let g=(m=r?.validate)===null||m===void 0?void 0:m.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Oc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,nt._)`${h}.evaluated.props`);i.props=Oc.mergeEvaluated.props(o,v,i.props,nt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Oc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,nt._)`${h}.evaluated.items`);i.items=Oc.mergeEvaluated.items(o,v,i.items,nt.Name)}}}In.callRef=zc;In.default=Sj});var oC=P(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var wj=QR(),bj=nC(),Rj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",wj.default,bj.default];_p.default=Rj});var iC=P(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var Nc=j(),Yr=Nc.operators,Dc={maximum:{okStr:"<=",ok:Yr.LTE,fail:Yr.GT},minimum:{okStr:">=",ok:Yr.GTE,fail:Yr.LT},exclusiveMaximum:{okStr:"<",ok:Yr.LT,fail:Yr.GTE},exclusiveMinimum:{okStr:">",ok:Yr.GT,fail:Yr.LTE}},Cj={message:({keyword:t,schemaCode:e})=>(0,Nc.str)`must be ${Dc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Nc._)`{comparison: ${Dc[t].okStr}, limit: ${e}}`},Pj={keyword:Object.keys(Dc),type:"number",schemaType:"number",$data:!0,error:Cj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Nc._)`${r} ${Dc[e].fail} ${n} || isNaN(${r})`)}};Sp.default=Pj});var sC=P(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var ys=j(),xj={message:({schemaCode:t})=>(0,ys.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ys._)`{multipleOf: ${t}}`},kj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:xj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,ys._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,ys._)`${s} !== parseInt(${s})`;t.fail$data((0,ys._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};wp.default=kj});var cC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});function aC(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}bp.default=aC;aC.code='require("ajv/dist/runtime/ucs2length").default'});var uC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var On=j(),Ej=B(),Tj=cC(),Aj={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,On.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,On._)`{limit: ${t}}`},Mj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Aj,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?On.operators.GT:On.operators.LT,s=o.opts.unicode===!1?(0,On._)`${r}.length`:(0,On._)`${(0,Ej.useFunc)(t.gen,Tj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};Rp.default=Mj});var dC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var $j=bt(),Ij=B(),Io=j(),Oj={message:({schemaCode:t})=>(0,Io.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Io._)`{pattern: ${t}}`},zj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Oj,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:s}=t,a=s.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=s.opts.code,u=c.code==="new RegExp"?(0,Io._)`new RegExp`:(0,Ij.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,Io._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,Io._)`!${d}`)}else{let c=(0,$j.usePattern)(t,o);t.fail$data((0,Io._)`!${c}.test(${r})`)}}};Cp.default=zj});var lC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var vs=j(),Nj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,vs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,vs._)`{limit: ${t}}`},Dj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Nj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?vs.operators.GT:vs.operators.LT;t.fail$data((0,vs._)`Object.keys(${r}).length ${o} ${n}`)}};Pp.default=Dj});var fC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var _s=bt(),Ss=j(),Lj=B(),jj={message:({params:{missingProperty:t}})=>(0,Ss.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Ss._)`{missingProperty: ${t}}`},Fj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:jj,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:i,it:s}=t,{opts:a}=s;if(!i&&r.length===0)return;let c=r.length>=a.loopRequired;if(s.allErrors?u():d(),a.strictRequired){let p=t.parentSchema.properties,{definedProperties:h}=t.it;for(let m of r)if(p?.[m]===void 0&&!h.has(m)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,Lj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(Ss.nil,l);else for(let p of r)(0,_s.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let h=e.let("valid",!0);t.block$data(h,()=>f(p,h)),t.ok(h)}else e.if((0,_s.checkMissingProp)(t,r,p)),(0,_s.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,_s.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,_s.propertyInData)(e,o,p,a.ownProperties)),e.if((0,Ss.not)(h),()=>{t.error(),e.break()})},Ss.nil)}}};xp.default=Fj});var pC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var ws=j(),Uj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ws.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ws._)`{limit: ${t}}`},qj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Uj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ws.operators.GT:ws.operators.LT;t.fail$data((0,ws._)`${r}.length ${o} ${n}`)}};kp.default=qj});var Lc=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var hC=Yf();hC.code='require("ajv/dist/runtime/equal").default';Ep.default=hC});var mC=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var Tp=as(),De=j(),Hj=B(),Gj=Lc(),Zj={message:({params:{i:t,j:e}})=>(0,De.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,De._)`{i: ${t}, j: ${e}}`},Bj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Zj,code(t){let{gen:e,data:r,$data:n,schema:o,parentSchema:i,schemaCode:s,it:a}=t;if(!n&&!o)return;let c=e.let("valid"),u=i.items?(0,Tp.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,De._)`${s} === false`),t.ok(c);function d(){let h=e.let("i",(0,De._)`${r}.length`),m=e.let("j");t.setParams({i:h,j:m}),e.assign(c,!0),e.if((0,De._)`${h} > 1`,()=>(l()?f:p)(h,m))}function l(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=e.name("item"),v=(0,Tp.checkDataTypes)(u,g,a.opts.strictNumbers,Tp.DataType.Wrong),b=e.const("indices",(0,De._)`{}`);e.for((0,De._)`;${h}--;`,()=>{e.let(g,(0,De._)`${r}[${h}]`),e.if(v,(0,De._)`continue`),u.length>1&&e.if((0,De._)`typeof ${g} == "string"`,(0,De._)`${g} += "_"`),e.if((0,De._)`typeof ${b}[${g}] == "number"`,()=>{e.assign(m,(0,De._)`${b}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,De._)`${b}[${g}] = ${h}`)})}function p(h,m){let g=(0,Hj.useFunc)(e,Gj.default),v=e.name("outer");e.label(v).for((0,De._)`;${h}--;`,()=>e.for((0,De._)`${m} = ${h}; ${m}--;`,()=>e.if((0,De._)`${g}(${r}[${h}], ${r}[${m}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Ap.default=Bj});var gC=P($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var Mp=j(),Wj=B(),Vj=Lc(),Kj={message:"must be equal to constant",params:({schemaCode:t})=>(0,Mp._)`{allowedValue: ${t}}`},Jj={keyword:"const",$data:!0,error:Kj,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Mp._)`!${(0,Wj.useFunc)(e,Vj.default)}(${r}, ${o})`):t.fail((0,Mp._)`${i} !== ${r}`)}};$p.default=Jj});var yC=P(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var bs=j(),Yj=B(),Xj=Lc(),Qj={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,bs._)`{allowedValues: ${t}}`},e1={keyword:"enum",schemaType:"array",$data:!0,error:Qj,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:s}=t;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let a=o.length>=s.opts.loopEnum,c,u=()=>c??(c=(0,Yj.useFunc)(e,Xj.default)),d;if(a||n)d=e.let("valid"),t.block$data(d,l);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let p=e.const("vSchema",i);d=(0,bs.or)(...o.map((h,m)=>f(p,m)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,bs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,bs._)`${u()}(${r}, ${p}[${h}])`:(0,bs._)`${r} === ${m}`}}};Ip.default=e1});var vC=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var t1=iC(),r1=sC(),n1=uC(),o1=dC(),i1=lC(),s1=fC(),a1=pC(),c1=mC(),u1=gC(),d1=yC(),l1=[t1.default,r1.default,n1.default,o1.default,i1.default,s1.default,a1.default,c1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u1.default,d1.default];Op.default=l1});var Np=P(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateAdditionalItems=void 0;var zn=j(),zp=B(),f1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},p1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:f1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,zp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}_C(t,n)}};function _C(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,zn._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,zn._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,zp.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,zn._)`${a} <= ${e.length}`);r.if((0,zn.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:zp.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Rs.validateAdditionalItems=_C;Rs.default=p1});var Dp=P(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});Cs.validateTuple=void 0;var SC=j(),jc=B(),h1=bt(),m1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return wC(t,"additionalItems",e);r.items=!0,!(0,jc.alwaysValidSchema)(r,e)&&t.ok((0,h1.validateArray)(t))}};function wC(t,e,r=t.schema){let{gen:n,parentSchema:o,data:i,keyword:s,it:a}=t;d(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=jc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,SC._)`${i}.length`);r.forEach((l,f)=>{(0,jc.alwaysValidSchema)(a,l)||(n.if((0,SC._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,h=r.length,m=h===l.minItems&&(h===l.maxItems||l[e]===!1);if(f.strictTuples&&!m){let g=`"${s}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,jc.checkStrictMode)(a,g,f.strictTuples)}}}Cs.validateTuple=wC;Cs.default=m1});var bC=P(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var g1=Dp(),y1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,g1.validateTuple)(t,"items")};Lp.default=y1});var CC=P(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var RC=j(),v1=B(),_1=bt(),S1=Np(),w1={message:({params:{len:t}})=>(0,RC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,RC._)`{limit: ${t}}`},b1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:w1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,v1.alwaysValidSchema)(n,e)&&(o?(0,S1.validateAdditionalItems)(t,o):t.ok((0,_1.validateArray)(t)))}};jp.default=b1});var PC=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var Ct=j(),Fc=B(),R1={message:({params:{min:t,max:e}})=>e===void 0?(0,Ct.str)`must contain at least ${t} valid item(s)`:(0,Ct.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Ct._)`{minContains: ${t}}`:(0,Ct._)`{minContains: ${t}, maxContains: ${e}}`},C1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:R1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t,s,a,{minContains:c,maxContains:u}=n;i.opts.next?(s=c===void 0?1:c,a=u):s=1;let d=e.const("len",(0,Ct._)`${o}.length`);if(t.setParams({min:s,max:a}),a===void 0&&s===0){(0,Fc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Fc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Fc.alwaysValidSchema)(i,r)){let m=(0,Ct._)`${d} >= ${s}`;a!==void 0&&(m=(0,Ct._)`${m} && ${d} <= ${a}`),t.pass(m);return}i.items=!0;let l=e.name("valid");a===void 0&&s===1?p(l,()=>e.if(l,()=>e.break())):s===0?(e.let(l,!0),a!==void 0&&e.if((0,Ct._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let m=e.name("_valid"),g=e.let("count",0);p(m,()=>e.if(m,()=>h(g)))}function p(m,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Fc.Type.Num,compositeRule:!0},m),g()})}function h(m){e.code((0,Ct._)`${m}++`),a===void 0?e.if((0,Ct._)`${m} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Ct._)`${m} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Ct._)`${m} >= ${s}`,()=>e.assign(l,!0)))}}};Fp.default=C1});var EC=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var Up=j(),P1=B(),Ps=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Up.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Up._)`{property: ${t},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${e},
|
|
8
|
-
deps: ${r}}`};var x1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=k1(t);xC(t,e),kC(t,r)}};function k1({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let o=Array.isArray(t[n])?e:r;o[n]=t[n]}return[e,r]}function xC(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,Ps.propertyInData)(r,n,s,o.opts.ownProperties);t.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,Ps.checkReportMissingProp)(t,u)}):(r.if((0,Fp._)`${c} && (${(0,Ps.checkMissingProp)(t,a,i)})`),(0,Ps.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=xC;function kC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,P1.alwaysValidSchema)(i,e[a])||(r.if((0,Ps.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},s);t.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),t.ok(s))}Xt.validateSchemaDeps=kC;Xt.default=x1});var AC=C(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var TC=j(),E1=B(),T1={message:"property name must be valid",params:({params:t})=>(0,TC._)`{propertyName: ${t.propertyName}}`},A1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:T1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,E1.alwaysValidSchema)(o,r))return;let i=e.name("valid");e.forIn("key",n,s=>{t.setParams({propertyName:s}),t.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},i),e.if((0,TC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Up.default=A1});var Hp=C(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var Fc=bt(),Nt=j(),M1=hr(),Uc=B(),$1={message:"must NOT have additional properties",params:({params:t})=>(0,Nt._)`{additionalProperty: ${t.additionalProperty}}`},I1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:$1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,Uc.alwaysValidSchema)(s,r))return;let u=(0,Fc.allSchemaProperties)(n.properties),d=(0,Fc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Nt._)`${i} === ${M1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?h(g):e.if(f(g),()=>h(g))})}function f(g){let v;if(u.length>8){let w=(0,Uc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Fc.isOwnProperty)(e,w,g)}else u.length?v=(0,Nt.or)(...u.map(w=>(0,Nt._)`${g} === ${w}`)):v=Nt.nil;return d.length&&(v=(0,Nt.or)(v,...d.map(w=>(0,Nt._)`${(0,Fc.usePattern)(t,w)}.test(${g})`))),(0,Nt.not)(v)}function p(g){e.code((0,Nt._)`delete ${o}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,Uc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(m(g,v,!1),e.if((0,Nt.not)(v),()=>{t.reset(),p(g)})):(m(g,v),a||e.if((0,Nt.not)(v),()=>e.break()))}}function m(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Uc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};qp.default=I1});var IC=C(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var O1=ls(),MC=bt(),Gp=B(),$C=Hp(),z1={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&$C.default.code(new O1.KeywordCxt(i,$C.default,"additionalProperties"));let s=(0,MC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Gp.mergeEvaluated.props(e,(0,Gp.toHash)(s),i.props));let a=s.filter(l=>!(0,Gp.alwaysValidSchema)(i,r[l]));if(a.length===0)return;let c=e.name("valid");for(let l of a)u(l)?d(l):(e.if((0,MC.propertyInData)(e,o,l,i.opts.ownProperties)),d(l),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(l),t.ok(c);function u(l){return i.opts.useDefaults&&!i.compositeRule&&r[l].default!==void 0}function d(l){t.subschema({keyword:"properties",schemaProp:l,dataProp:l},c)}}};Zp.default=z1});var DC=C(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var OC=bt(),qc=j(),zC=B(),NC=B(),N1={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:o,it:i}=t,{opts:s}=i,a=(0,OC.allSchemaProperties)(r),c=a.filter(m=>(0,zC.alwaysValidSchema)(i,r[m]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof qc.Name)&&(i.props=(0,NC.evaluatedPropsToName)(e,i.props));let{props:l}=i;f();function f(){for(let m of a)u&&p(m),i.allErrors?h(m):(e.var(d,!0),h(m),e.if(d))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,zC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,qc._)`${(0,OC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:NC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,qc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,qc.not)(d),()=>e.break())})})}}};Bp.default=N1});var LC=C(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var D1=B(),L1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,D1.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};Wp.default=L1});var jC=C(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var j1=bt(),F1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:j1.validateUnion,error:{message:"must match a schema in anyOf"}};Vp.default=F1});var FC=C(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var Hc=j(),U1=B(),q1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Hc._)`{passingSchemas: ${t.passing}}`},H1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:q1,code(t){let{gen:e,schema:r,parentSchema:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,s=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(s,()=>t.reset(),()=>t.error(!0));function u(){i.forEach((d,l)=>{let f;(0,U1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Hc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Hc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Hc.Name)})})}}};Kp.default=H1});var UC=C(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var G1=B(),Z1={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=e.name("valid");r.forEach((i,s)=>{if((0,G1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Jp.default=Z1});var GC=C(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var Gc=j(),HC=B(),B1={message:({params:t})=>(0,Gc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Gc._)`{failingKeyword: ${t.ifClause}}`},W1={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:B1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,HC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=qC(n,"then"),i=qC(n,"else");if(!o&&!i)return;let s=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&i){let d=e.let("ifClause");t.setParams({ifClause:d}),e.if(a,u("then",d),u("else",d))}else o?e.if(a,u("then")):e.if((0,Gc.not)(a),u("else"));t.pass(s,()=>t.error(!0));function c(){let d=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(d)}function u(d,l){return()=>{let f=t.subschema({keyword:d},a);e.assign(s,a),t.mergeValidEvaluated(f,s),l?e.assign(l,(0,Gc._)`${d}`):t.setParams({ifClause:d})}}}};function qC(t,e){let r=t.schema[e];return r!==void 0&&!(0,HC.alwaysValidSchema)(t,r)}Yp.default=W1});var ZC=C(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var V1=B(),K1={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,V1.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Xp.default=K1});var BC=C(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var J1=zp(),Y1=bC(),X1=Np(),Q1=CC(),eF=PC(),tF=EC(),rF=AC(),nF=Hp(),oF=IC(),iF=DC(),sF=LC(),aF=jC(),cF=FC(),uF=UC(),dF=GC(),lF=ZC();function fF(t=!1){let e=[sF.default,aF.default,cF.default,uF.default,dF.default,lF.default,rF.default,nF.default,tF.default,oF.default,iF.default];return t?e.push(Y1.default,Q1.default):e.push(J1.default,X1.default),e.push(eF.default),e}Qp.default=fF});var WC=C(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var be=j(),pF={message:({schemaCode:t})=>(0,be.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,be._)`{format: ${t}}`},hF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:pF,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:s,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:d,self:l}=a;if(!c.validateFormats)return;o?f():p();function f(){let h=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),m=r.const("fDef",(0,be._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,be._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,be._)`${m}.type || "string"`).assign(v,(0,be._)`${m}.validate`),()=>r.assign(g,(0,be._)`"string"`).assign(v,m)),t.fail$data((0,be.or)(w(),b()));function w(){return c.strictSchema===!1?be.nil:(0,be._)`${s} && !${v}`}function b(){let x=d.$async?(0,be._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,be._)`${v}(${n})`,S=(0,be._)`(typeof ${v} == "function" ? ${x} : ${v}.test(${n}))`;return(0,be._)`${v} && ${v} !== true && ${g} === ${e} && !${S}`}}function p(){let h=l.formats[i];if(!h){w();return}if(h===!0)return;let[m,g,v]=b(h);m===e&&t.pass(x());function w(){if(c.strictSchema===!1){l.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function b(S){let R=S instanceof RegExp?(0,be.regexpCode)(S):c.code.formats?(0,be._)`${c.code.formats}${(0,be.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:S,code:R});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,be._)`${I}.validate`]:["string",S,I]}function x(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!d.$async)throw new Error("async format in sync schema");return(0,be._)`await ${v}(${n})`}return typeof g=="function"?(0,be._)`${v}(${n})`:(0,be._)`${v}.test(${n})`}}}};eh.default=hF});var VC=C(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var mF=WC(),gF=[mF.default];th.default=gF});var KC=C(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.contentVocabulary=Oo.metadataVocabulary=void 0;Oo.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Oo.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var YC=C(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var yF=oC(),vF=vC(),_F=BC(),SF=VC(),JC=KC(),wF=[yF.default,vF.default,(0,_F.default)(),SF.default,JC.metadataVocabulary,JC.contentVocabulary];rh.default=wF});var QC=C(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.DiscrError=void 0;var XC;(function(t){t.Tag="tag",t.Mapping="mapping"})(XC||(Zc.DiscrError=XC={}))});var tP=C(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var zo=j(),nh=QC(),eP=xc(),bF=fs(),RF=B(),CF={message:({params:{discrError:t,tagName:e}})=>t===nh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,zo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},PF={keyword:"discriminator",type:"object",schemaType:"object",error:CF,code(t){let{gen:e,data:r,schema:n,parentSchema:o,it:i}=t,{oneOf:s}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,zo._)`${r}${(0,zo.getProperty)(a)}`);e.if((0,zo._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:nh.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function d(){let p=f();e.if(!1);for(let h in p)e.elseIf((0,zo._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:nh.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function l(p){let h=e.name("valid"),m=t.subschema({keyword:"oneOf",schemaProp:p},h);return t.mergeEvaluated(m,zo.Name),h}function f(){var p;let h={},m=v(o),g=!0;for(let x=0;x<s.length;x++){let S=s[x];if(S?.$ref&&!(0,RF.schemaHasRulesButRef)(S,i.self.RULES)){let I=S.$ref;if(S=eP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),S instanceof eP.SchemaEnv&&(S=S.schema),S===void 0)throw new bF.default(i.opts.uriResolver,i.baseId,I)}let R=(p=S?.properties)===null||p===void 0?void 0:p[a];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);g=g&&(m||v(S)),w(R,x)}if(!g)throw new Error(`discriminator: "${a}" must be required`);return h;function v({required:x}){return Array.isArray(x)&&x.includes(a)}function w(x,S){if(x.const)b(x.const,S);else if(x.enum)for(let R of x.enum)b(R,S);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function b(x,S){if(typeof x!="string"||x in h)throw new Error(`discriminator: "${a}" values must be unique strings`);h[x]=S}}}};oh.default=PF});var rP=C((A3,xF)=>{xF.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 sh=C((le,ih)=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});le.MissingRefError=le.ValidationError=le.CodeGen=le.Name=le.nil=le.stringify=le.str=le._=le.KeywordCxt=le.Ajv=void 0;var kF=XR(),EF=YC(),TF=tP(),nP=rP(),AF=["/properties"],Bc="http://json-schema.org/draft-07/schema",No=class extends kF.default{_addVocabularies(){super._addVocabularies(),EF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(TF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(nP,AF):nP;this.addMetaSchema(e,Bc,!1),this.refs["http://json-schema.org/schema"]=Bc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Bc)?Bc:void 0)}};le.Ajv=No;ih.exports=le=No;ih.exports.Ajv=No;Object.defineProperty(le,"__esModule",{value:!0});le.default=No;var MF=ls();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return MF.KeywordCxt}});var Do=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return Do._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return Do.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return Do.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return Do.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return Do.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return Do.CodeGen}});var $F=Cc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return $F.default}});var IF=fs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return IF.default}})});var lP=C(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.formatNames=er.fastFormats=er.fullFormats=void 0;function Qt(t,e){return{validate:t,compare:e}}er.fullFormats={date:Qt(aP,dh),time:Qt(ch(!0),lh),"date-time":Qt(oP(!0),uP),"iso-time":Qt(ch(),cP),"iso-date-time":Qt(oP(),dP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:jF,"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:BF,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:FF,int32:{type:"number",validate:HF},int64:{type:"number",validate:GF},float:{type:"number",validate:sP},double:{type:"number",validate:sP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,dh),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,lh),"date-time":Qt(/^\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,uP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,cP),"iso-date-time":Qt(/^\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,dP),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};er.formatNames=Object.keys(er.fullFormats);function OF(t){return t%4===0&&(t%100!==0||t%400===0)}var zF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,NF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function aP(t){let e=zF.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],o=+e[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&OF(r)?29:NF[n])}function dh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var ah=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function ch(t){return function(r){let n=ah.exec(r);if(!n)return!1;let o=+n[1],i=+n[2],s=+n[3],a=n[4],c=n[5]==="-"?-1:1,u=+(n[6]||0),d=+(n[7]||0);if(u>23||d>59||t&&!a)return!1;if(o<=23&&i<=59&&s<60)return!0;let l=i-d*c,f=o-u*c-(l<0?1:0);return(f===23||f===-1)&&(l===59||l===-1)&&s<61}}function lh(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function cP(t,e){if(!(t&&e))return;let r=ah.exec(t),n=ah.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t<e?-1:0}var uh=/t|\s/i;function oP(t){let e=ch(t);return function(n){let o=n.split(uh);return o.length===2&&aP(o[0])&&e(o[1])}}function uP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function dP(t,e){if(!(t&&e))return;let[r,n]=t.split(uh),[o,i]=e.split(uh),s=dh(r,o);if(s!==void 0)return s||lh(n,i)}var DF=/\/|:/,LF=/^(?:[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 jF(t){return DF.test(t)&&LF.test(t)}var iP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function FF(t){return iP.lastIndex=0,iP.test(t)}var UF=-(2**31),qF=2**31-1;function HF(t){return Number.isInteger(t)&&t<=qF&&t>=UF}function GF(t){return Number.isInteger(t)}function sP(){return!0}var ZF=/[^\\]\\Z/;function BF(t){if(ZF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var fP=C(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.formatLimitDefinition=void 0;var WF=sh(),Dt=j(),Xr=Dt.operators,Wc={formatMaximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},formatMinimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},formatExclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},formatExclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},VF={message:({keyword:t,schemaCode:e})=>(0,Dt.str)`should be ${Wc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Dt._)`{comparison: ${Wc[t].okStr}, limit: ${e}}`};Lo.formatLimitDefinition={keyword:Object.keys(Wc),type:"string",schemaType:"string",$data:!0,error:VF,code(t){let{gen:e,data:r,schemaCode:n,keyword:o,it:i}=t,{opts:s,self:a}=i;if(!s.validateFormats)return;let c=new WF.KeywordCxt(i,a.RULES.all.format.definition,"format");c.$data?u():d();function u(){let f=e.scopeValue("formats",{ref:a.formats,code:s.code.formats}),p=e.const("fmt",(0,Dt._)`${f}[${c.schemaCode}]`);t.fail$data((0,Dt.or)((0,Dt._)`typeof ${p} != "object"`,(0,Dt._)`${p} instanceof RegExp`,(0,Dt._)`typeof ${p}.compare != "function"`,l(p)))}function d(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${o}": format "${f}" does not define "compare" function`);let h=e.scopeValue("formats",{key:f,ref:p,code:s.code.formats?(0,Dt._)`${s.code.formats}${(0,Dt.getProperty)(f)}`:void 0});t.fail$data(l(h))}function l(f){return(0,Dt._)`${f}.compare(${r}, ${n}) ${Wc[o].fail} 0`}},dependencies:["format"]};var KF=t=>(t.addKeyword(Lo.formatLimitDefinition),t);Lo.default=KF});var gP=C((xs,mP)=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var jo=lP(),JF=fP(),fh=j(),pP=new fh.Name("fullFormats"),YF=new fh.Name("fastFormats"),ph=(t,e={keywords:!0})=>{if(Array.isArray(e))return hP(t,e,jo.fullFormats,pP),t;let[r,n]=e.mode==="fast"?[jo.fastFormats,YF]:[jo.fullFormats,pP],o=e.formats||jo.formatNames;return hP(t,o,r,n),e.keywords&&(0,JF.default)(t),t};ph.get=(t,e="full")=>{let n=(e==="fast"?jo.fastFormats:jo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function hP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,fh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}mP.exports=xs=ph;Object.defineProperty(xs,"__esModule",{value:!0});xs.default=ph});var ZP=C((f8,GP)=>{GP.exports=HP;HP.sync=TU;var UP=Rr("fs");function EU(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&t.substr(-o.length).toLowerCase()===o)return!0}return!1}function qP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:EU(e,r)}function HP(t,e,r){UP.stat(t,function(n,o){r(n,n?!1:qP(o,t,e))})}function TU(t,e){return qP(UP.statSync(t),t,e)}});var JP=C((p8,KP)=>{KP.exports=WP;WP.sync=AU;var BP=Rr("fs");function WP(t,e,r){BP.stat(t,function(n,o){r(n,n?!1:VP(o,e))})}function AU(t,e){return VP(BP.statSync(t),e)}function VP(t,e){return t.isFile()&&MU(t,e)}function MU(t,e){var r=t.mode,n=t.uid,o=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),s=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),d=a|c,l=r&u||r&c&&o===s||r&a&&n===i||r&d&&i===0;return l}});var XP=C((m8,YP)=>{var h8=Rr("fs"),ou;process.platform==="win32"||global.TESTING_WINDOWS?ou=ZP():ou=JP();YP.exports=$h;$h.sync=$U;function $h(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){$h(t,e||{},function(i,s){i?o(i):n(s)})})}ou(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function $U(t,e){try{return ou.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ix=C((g8,ox)=>{var Wo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",QP=Rr("path"),IU=Wo?";":":",ex=XP(),tx=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),rx=(t,e)=>{let r=e.colon||IU,n=t.match(/\//)||Wo&&t.match(/\\/)?[""]:[...Wo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Wo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Wo?o.split(r):[""];return Wo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},nx=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=rx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(tx(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=QP.join(p,t),m=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;d(c(m,u,0))}),c=(u,d,l)=>new Promise((f,p)=>{if(l===o.length)return f(a(d+1));let h=o[l];ex(u+h,{pathExt:i},(m,g)=>{if(!m&&g)if(e.all)s.push(u+h);else return f(u+h);return f(c(u,d,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},OU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=rx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=QP.join(c,t),d=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+u:u;for(let l=0;l<n.length;l++){let f=d+n[l];try{if(ex.sync(f,{pathExt:o}))if(e.all)i.push(f);else return f}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw tx(t)};ox.exports=nx;nx.sync=OU});var ax=C((y8,Ih)=>{"use strict";var sx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ih.exports=sx;Ih.exports.default=sx});var lx=C((v8,dx)=>{"use strict";var cx=Rr("path"),zU=ix(),NU=ax();function ux(t,e){let r=t.options.env||process.env,n=process.cwd(),o=t.options.cwd!=null,i=o&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let s;try{s=zU.sync(t.command,{path:r[NU({env:r})],pathExt:e?cx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=cx.resolve(o?t.options.cwd:"",s)),s}function DU(t){return ux(t)||ux(t,!0)}dx.exports=DU});var fx=C((_8,zh)=>{"use strict";var Oh=/([()\][%!^"`<>&|;, *?])/g;function LU(t){return t=t.replace(Oh,"^$1"),t}function jU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Oh,"^$1"),e&&(t=t.replace(Oh,"^$1")),t}zh.exports.command=LU;zh.exports.argument=jU});var hx=C((S8,px)=>{"use strict";px.exports=/^#!(.*)/});var gx=C((w8,mx)=>{"use strict";var FU=hx();mx.exports=(t="")=>{let e=t.match(FU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var vx=C((b8,yx)=>{"use strict";var Nh=Rr("fs"),UU=gx();function qU(t){let r=Buffer.alloc(150),n;try{n=Nh.openSync(t,"r"),Nh.readSync(n,r,0,150,0),Nh.closeSync(n)}catch{}return UU(r.toString())}yx.exports=qU});var bx=C((R8,wx)=>{"use strict";var HU=Rr("path"),_x=lx(),Sx=fx(),GU=vx(),ZU=process.platform==="win32",BU=/\.(?:com|exe)$/i,WU=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function VU(t){t.file=_x(t);let e=t.file&&GU(t.file);return e?(t.args.unshift(t.file),t.command=e,_x(t)):t.file}function KU(t){if(!ZU)return t;let e=VU(t),r=!BU.test(e);if(t.options.forceShell||r){let n=WU.test(e);t.command=HU.normalize(t.command),t.command=Sx.command(t.command),t.args=t.args.map(i=>Sx.argument(i,n));let o=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${o}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function JU(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:KU(n)}wx.exports=JU});var Px=C((C8,Cx)=>{"use strict";var Dh=process.platform==="win32";function Lh(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function YU(t,e){if(!Dh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Rx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Rx(t,e){return Dh&&t===1&&!e.file?Lh(e.original,"spawn"):null}function XU(t,e){return Dh&&t===1&&!e.file?Lh(e.original,"spawnSync"):null}Cx.exports={hookChildProcess:YU,verifyENOENT:Rx,verifyENOENTSync:XU,notFoundError:Lh}});var Ex=C((P8,Vo)=>{"use strict";var xx=Rr("child_process"),jh=bx(),Fh=Px();function kx(t,e,r){let n=jh(t,e,r),o=xx.spawn(n.command,n.args,n.options);return Fh.hookChildProcess(o,n),o}function QU(t,e,r){let n=jh(t,e,r),o=xx.spawnSync(n.command,n.args,n.options);return o.error=o.error||Fh.verifyENOENTSync(o.status,n),o}Vo.exports=kx;Vo.exports.spawn=kx;Vo.exports.sync=QU;Vo.exports._parse=jh;Vo.exports._enoent=Fh});var Ox=C(qh=>{"use strict";var Mx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,oq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,$x=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,iq=/\\([\u000b\u0020-\u00ff])/g,sq=/([\\"])/g,Ix=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;qh.format=aq;qh.parse=cq;function aq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Ix.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var o,i=Object.keys(e).sort(),s=0;s<i.length;s++){if(o=i[s],!$x.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+dq(e[o])}return n}function cq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?uq(t):t;if(typeof e!="string")throw new TypeError("argument string is required to be a string");var r=e.indexOf(";"),n=r!==-1?e.slice(0,r).trim():e.trim();if(!Ix.test(n))throw new TypeError("invalid media type");var o=new lq(n.toLowerCase());if(r!==-1){var i,s,a;for(Mx.lastIndex=r;s=Mx.exec(e);){if(s.index!==r)throw new TypeError("invalid parameter format");r+=s[0].length,i=s[1].toLowerCase(),a=s[2],a.charCodeAt(0)===34&&(a=a.slice(1,-1),a.indexOf("\\")!==-1&&(a=a.replace(iq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function uq(t){var e;if(typeof t.getHeader=="function"?e=t.getHeader("content-type"):typeof t.headers=="object"&&(e=t.headers&&t.headers["content-type"]),typeof e!="string")throw new TypeError("content-type header is missing from object");return e}function dq(t){var e=String(t);if($x.test(e))return e;if(e.length>0&&!oq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(sq,"\\$1")+'"'}function lq(t){this.parameters=Object.create(null),this.type=t}});import{logger as K2}from"@hermes/logger";import{logger as OH}from"@hermes/logger";var hT="mcp-auth";function Se(t,e=t.ui){if(!e)return;let r=0;for(let n of t.servers.values())n.status==="auth_required"&&r++;e.setStatus(hT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as aH}from"@augmentcode/auggie-v2";import{logger as cH}from"@hermes/logger";import{logger as GT}from"@hermes/logger";import{logger as gT}from"@hermes/logger";function mT(t,e,r){let n=r?.get(t.name);return n!==void 0?n.host===t&&n.owner.kind==="plugin":e?.get(t.name)===t}function Cr(t,e,r){let n=r?.get(t.name);if(n?.host===t)return n.owner.kind;let o=t.config;return o?.vfsSource!==void 0?"vfs":o?.registrySource!==void 0?"registry":mT(t,e,r)?"plugin":"local"}function yT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var zm=gT.child({prefix:"pi-mcp"}),vT="augment:mcp-status-report";function ft(t,e,r){let n=t.servers.get(e),o=n?.hostedCredentialProvenance;if(o?.kind==="accepted"&&o.hostedAccessTokenOnly===!0)return{serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain};let i=n?.targetCredentialProvenance?n.targetCredentialProvenance.credential:t.credentialRevisions?.get(e);return{serverGeneration:t.serverGenerations?.get(e)??0,mcpConfigId:r??n?.config.id,credentialRevision:i?.revision,credentialRevisionDomain:i?.domain}}function oi(t,e,r,n){let o=ft(t,e);return o.serverGeneration!==n.serverGeneration||o.mcpConfigId!==n.mcpConfigId||o.credentialRevision!==n.credentialRevision||o.credentialRevisionDomain!==n.credentialRevisionDomain?!1:(t.statusFailureCategories??=new Map,t.statusFailureCategories.set(e,{category:r,...n}),!0)}function it(t,e,r){if(r){let o=ft(t,e);if(o.serverGeneration!==r.serverGeneration||o.mcpConfigId!==r.mcpConfigId||o.credentialRevision!==r.credentialRevision||o.credentialRevisionDomain!==r.credentialRevisionDomain)return!1}let n=t.statusFailureCategories?.get(e);return t.statusFailureCategories?.delete(e),typeof n=="object"&&n.category==="auth_refresh_needed"&&t.authRefreshNeededReportKeys?.delete(e),!0}function _T(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=ft(t,e);if(r?.serverGeneration===n.serverGeneration&&r.mcpConfigId===n.mcpConfigId&&r.credentialRevision===n.credentialRevision&&r.credentialRevisionDomain===n.credentialRevisionDomain)return r.category;t.statusFailureCategories.delete(e),t.authRefreshNeededReportKeys?.delete(e)}var Qs=3e4;function ST(t){switch(t.status){case"success":return"connected";case"failed":case"auth_required":return"failed";case"initializing":{let e=t.connectStartedAt;return e!==void 0&&Date.now()-e>=Qs?"failed":void 0}default:return}}var Nm="authentication required",wT="Authentication refresh is pending in the backend; retry shortly.",bT="timed out connecting after 30s",RT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",CT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",PT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",xT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",kT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",ET="Server was not started: this session's Space policy does not allow it.",TT="Server was not started: its shared credential is not available to this session's identity.",AT="Server requires authentication \u2014 a same-named MCP server was connected in its place. Reconnect this server from the session MCP panel to use it instead.";function MT(t,e){let r=new Set;for(let a of t.servers.values())a.config.id!==void 0&&r.add(a.config.id);let n=new Set(e.map(a=>a.mcpConfigId).filter(a=>a!==void 0)),o=new Set(e.map(a=>a.name)),i=new Set(e.filter(a=>a.mcpConfigId===void 0).map(a=>a.name)),s=a=>t.registryConfigNamesById.get(a)??a;for(let a of t.failedAddConfigIds){if(r.has(a)||n.has(a))continue;let c=s(a);n.add(a),o.add(c),e.push({name:c,source:"registry",status:"failed",failureCategory:"configuration",errorMessage:t.nameCollisionAddConfigIds.has(a)?CT:RT,mcpConfigId:a,dynamicallyAdded:!0})}for(let a of t.selectedRegistryConfigIds??[]){if(r.has(a)||n.has(a)||t.sessionRemovedConfigIds.has(a))continue;let c=s(a);i.has(c)||(n.add(a),e.push({name:c,source:"registry",status:"failed",...IT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}$T({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function $T(t){let{state:e,servers:r,liveConfigIds:n,reportedConfigIds:o,reportedNames:i,idlessReportedNames:s}=t;for(let[a,c]of e.oauthFailureCategoriesByConfigId??[]){if(n.has(a)||o.has(a)||e.sessionRemovedConfigIds.has(a))continue;let u=Lm(e,a);if(u===void 0)continue;let d=e.registryConfigNamesById.get(a)??c.serverName;s.has(d)||(o.add(a),r.push({name:d,source:"registry",status:"failed",...u,mcpConfigId:a}),i.add(d))}}function Dm(t,e){let r=new Map;for(let[n,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let i=o;typeof i.category=="string"&&typeof i.config_id=="string"&&i.config_id!==""&&r.set(i.config_id,{category:i.category,serverName:n})}t.oauthFailureCategoriesByConfigId=r}function Lm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:kT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:ET,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:TT,failureCategory:"share_identity_excluded"};default:return}}function IT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:AT,failureCategory:"auth_terminal"};let i=Lm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?xT:PT,failureCategory:"configuration"}}function OT(t,e){return e!==void 0?e.isAuthError?Nm:e.error:t.status==="initializing"?bT:t.lastError??(t.status==="auth_required"?Nm:void 0)}function jm(t,e){if(t.targetCredentialProvenance)return t.targetCredentialProvenance.credential;let r=e.statusFailureCategories?.get(t.name);return typeof r=="object"?{revision:r.credentialRevision,domain:r.credentialRevisionDomain}:e.credentialRevisions?.get(t.name)}function zT(t,e,r){if(jm(t,e)?.domain?.startsWith("recipient:"))return ft(e,t.name).serverGeneration;let n=e.statusFailureCategories?.get(t.name);return r&&typeof n=="object"?n.serverGeneration:void 0}function NT(t,e){let r=ST(t);if(r===void 0)return;let n=_T(e,t.name),o=r==="connected"?yT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:Cr(t,e.pluginServerHosts,e.hostLeases),status:r,transport:t.config.type,tools:t.suppressesProviderDiagnostics?[]:t.tools.map(u=>u.name)},s=t.config.id;s!==void 0&&(i.mcpConfigId=s,e.dynamicallyAddedConfigIds.has(s)&&(i.dynamicallyAdded=!0));let a=jm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=zT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?wT:OT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function DT(t){let e=[];for(let r of t.servers.values()){let n=NT(r,t);n!==void 0&&e.push(n)}return MT(t,e),e}function D(t,e){try{let r=DT(e),n=JSON.stringify(r);if(n===e.lastStatusReport)return;e.lastStatusReport=n,e.statusHostGeneration??=1,e.statusReportSequence=(e.statusReportSequence??0)+1;let o={servers:r,observedAtMs:Date.now(),hostGeneration:e.statusHostGeneration,reportSequence:e.statusReportSequence};t.events.emit(vT,o),zm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){zm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var ea={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function LT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function ii(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function si(t,e){return t.kind===e.kind&&t.identity===e.identity}function Fm(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function qu(t,e){let r=LT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ta(t,e,r){if(r.kind==="registry"){ii(t).set(e,{kind:"domain",domain:r.identity});return}ii(t).set(e,{kind:"blocked"})}function Hu(t,e,r){r&&t.servers.get(e)===r&&t.servers.delete(e),r&&t.pluginServerHosts.get(e)===r&&(t.pluginServerHosts.delete(e),t.pluginServerNames.delete(e))}function Pr(t,e){return t.registrySource!==void 0?{kind:"registry",identity:`user:${t.id??t.name}`}:t.vfsSource!==void 0?{kind:"vfs",identity:t.id??t.name}:{kind:e??"local",identity:t.id??t.name}}function Q(t,e,r){let n=qt(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Pr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:qu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ta(t,e,a),c}function Um(t){let{state:e,name:r,host:n}=t,o=qt(e),i=o.get(r);if(!i||i.host!==n||i.owner.kind!=="local"||e.servers.get(r)!==n)return;let s={owner:{kind:"plugin",identity:n.config.id??r},revision:qu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ta(e,r,s.owner),s}function ai(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=qt(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=ea[n.kind]>ea[a.owner.kind],f=ea[n.kind]===ea[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Fm(a):void 0;Hu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:qu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ta(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Gu(t){if(!t)return;let e=await t.teardown;if(e.status==="failed")throw e.error instanceof Error?e.error:new Error(String(e.error))}function _e(t){let{state:e,name:r,retirement:n,result:o}=t;if(n.settled)return!1;n.settled=!0,n.result=o;let s=qt(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,ii(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ra(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);return!s||s.revision!==o||!si(s.owner,n)||s.host!==void 0||s.retirement!==void 0?!1:(s.host=i,e.servers.set(r,i),n.kind==="plugin"?(e.pluginServerNames.add(r),e.pluginServerHosts.set(r,i)):(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),!0)}function st(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);if(!s||s.revision!==o||!si(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Fm(s);if(a)return Hu(e,r,i),s.host=void 0,s.retirement=a,a}function qm(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=qt(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!si(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!si(s.owner,n)||s.revision!==o.incumbent.revision?(ta(e,r,s.owner),!0):(i.delete(r),ii(e).set(r,{kind:"blocked"}),!0))}function xe(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e),a=s.get(r);return!a||a.revision!==o||!si(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Hu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),ii(e).set(r,{kind:"blocked"}),!0)}function N(t,e){return qt(t).get(e)}function Zu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Hm(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function xr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&Hm(t.url)===Hm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Kn=class{_tokens=new Map;_authRequired=new Set;_retiredCredentials=new Set;_credentialRetirementGenerations=new Map;_credentialIdentities=new Map;get(e){return this._tokens.get(e)}commit(e,r,n){this._tokens.set(e,r),this._authRequired.delete(e),this._retiredCredentials.delete(e),n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e)}hasCredentialIdentity(e,r){return xr(this._credentialIdentities.get(e),r)}reconcileCredentialIdentity(e,r,n){return this._tokens.get(e)!==r||this._retiredCredentials.has(e)?!1:(n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e),!0)}set(e,r,n){this.commit(e,r,n)}persist(e,r,n){return Promise.resolve(void 0)}captureAuthenticatedIdentityVersion(e){return Promise.resolve(void 0)}captureRefreshIdentityVersion(e){return Promise.resolve(void 0)}persistAuthenticated(e,r,n,o){return this.persist(e,r,n)}persistRefresh(e,r,n,o){return this.persist(e,r,n)}restoreAfterSupersededAuthentication(e,r,n,o,i,s){return this.persist(e,n,s)}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async setAndPersist(e,r,n){await this.persist(e,r,n),this.set(e,r,n)}snapshot(){return{tokens:new Map(this._tokens),authRequired:new Set(this._authRequired),retiredCredentials:new Set(this._retiredCredentials),credentialRetirementGenerations:new Map(this._credentialRetirementGenerations),credentialIdentities:new Map([...this._credentialIdentities].map(([e,r])=>[e,{...r}]))}}seed(e){for(let[r,n]of e.tokens)this._tokens.set(r,n);for(let r of e.authRequired)this._authRequired.add(r);for(let r of e.retiredCredentials??[])this._retiredCredentials.add(r);for(let[r,n]of e.credentialRetirementGenerations??[])this._credentialRetirementGenerations.set(r,n);for(let[r,n]of e.credentialIdentities??[])this._credentialIdentities.set(r,{...n})}delete(e,r){this._tokens.delete(e),this._credentialIdentities.delete(e)}clearLocalCredential(e){this._tokens.delete(e),this._credentialIdentities.delete(e),this._authRequired.delete(e),this._retiredCredentials.add(e),this._credentialRetirementGenerations.set(e,(this._credentialRetirementGenerations.get(e)??0)+1)}retireCredential(e,r,n){return n?.preserveNameState||this.clearLocalCredential(e),Promise.resolve()}credentialRetirementGeneration(e){return this._credentialRetirementGenerations.get(e)??0}isCredentialRetired(e){return this._retiredCredentials.has(e)}markAuthRequired(e){this._authRequired.add(e)}isAuthRequired(e){return this._authRequired.has(e)}clearAuthRequired(e){this._authRequired.delete(e)}};function ui(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Bu(t){try{return new URL(t).toString()}catch{return t}}function ci(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Bu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Ht(t,e){return ci(e.config)}function pt(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Bu(t.url)===Bu(e.url)}function Wu(t,e){let r=ci(t),n=ci(e);return!r||!n?pt(t,e):xr(r,n)}function Vu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function jT(t){let{state:e,name:r,expectedRegistryConfigId:n,expectedConfig:o,currentConfig:i}=t;if(o)return o;let s=n?e.registryCredentialConfigsById?.get(n):void 0;if(s?.name===r)return s;let a=e.registryCredentialConfigs?.get(r);if(a?.id===n)return a;if(i?.id===n)return i}function FT(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}=t;return e?r?!pt(e,r):n===void 0?!1:e.id===void 0?e.registrySource===void 0:e.id!==n:!1}function Gm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Vu(e,r):n!==void 0&&e!==n}function Zm(t,e,r){return r&&e!==void 0&&t!==void 0&&Vu(t,e)}function UT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Vu(i,n))}function Bm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(FT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Gm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Gm({identity:s.domain,...l})?!0:UT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function qT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ci(r);if(n!==void 0)return{id:n,name:e}}function HT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ci(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function Wm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=jT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:a}),u=c?.id??r,d=c?.registrySource!==void 0||c===void 0&&r!==void 0,l=c?.registrySource===void 0?void 0:`user:${c.id??c.name}`,f=Bm({currentConfig:a,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:i,currentDomain:s}),p=Zm(i,u,d),h=Zm(s,u,d),m=!f,g=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,w=f&&!(m||p||h||g);if(o==="durable"){let R=qT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,R,{preserveNameState:w})}let b=Bm({currentConfig:t.servers?.get(e)?.config,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:t.oauthCredentialDomains?.get(e),currentDomain:t.credentialRevisions?.get(e)?.domain}),x=m&&!b,S=!1;return t.equalRevisionRebindDomains?.delete(e),(x||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),S=!0),(x||h)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),S=!0),x&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),HT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:x,retiredConfig:c}),S&&(ui(t,e),it(t,e),t.authRefreshNeededReportKeys?.delete(e)),x}function ht(t,e,r,n){return Wm(t,e,r,n,"durable")}function di(t,e,r,n){return Wm(t,e,r,n,"session")}function Vm(t){let e=[];if(Object.hasOwn(t,"credential_owner_domain")&&e.push(t.credential_owner_domain),Object.hasOwn(t,"credentialOwnerDomain")&&e.push(t.credentialOwnerDomain),e.length===0)return{kind:"absent"};if(e.some(n=>typeof n!="string"||!/^user:.+/.test(n)))return{kind:"invalid"};let r=e[0];return e.every(n=>n===r)?{kind:"valid",ownerDomain:r}:{kind:"invalid"}}function kr(t,e){let r=t.replace(/^0+(?=\d)/,""),n=e.replace(/^0+(?=\d)/,"");return r.length!==n.length?r.length<n.length?-1:1:r===n?0:r<n?-1:1}var Km="augment:mcp-oauth-credentials",Jm=300*1e3,ZT=256,Ku=GT.child({prefix:"pi-mcp"}),kt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function at(t){return`user:${t}`}function cn(t){let{state:e,name:r,revision:n}=t;if(e.credentialRevisions??=new Map,e.oauthCredentialRevisions??=new Map,e.oauthCredentialDomains??=new Map,e.hostedCredentialOwnership?.delete(r),n===void 0){e.credentialRevisions.delete(r),e.oauthCredentialDomains.delete(r),e.authRefreshNeededReportKeys?.delete(r);return}let o={...n,revision:n.revision.replace(/^0+(?=\d)/,"")},i=e.credentialRevisions.get(r);e.credentialRevisions.set(r,o),(i?.revision!==o.revision||i?.domain!==o.domain)&&e.authRefreshNeededReportKeys?.delete(r);let s=e.oauthCredentialRevisions.get(o.domain);(s===void 0||kr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Er(t){let e=t.indexOf(":");if(e<=0||e===t.length-1)return t;let r=t.slice(0,e);return r!=="private"&&r!=="shared"&&r!=="recipient"&&r!=="user"&&r!=="tenant"?t:at(t.slice(e+1))}function ct(t){return/^secret:(private|shared):.+/.test(t)}function un(t){return t.ownerDomain??Er(t.domain)}function Ym(t,e,r){let n=at(e);return r!==void 0?r===n:ct(t)||Er(t)===n}function BT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function WT(t,e,r){return{acceptedDomain:t.oauthCredentialDomains.get(e),credentialRevision:t.credentialRevisions.get(e),expectedDomain:t.expectedCredentialDomains.get(e),failure:t.statusFailureCategories.get(e),restoreFailure:r}}function VT(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function KT(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&BT(t.credentialRevisions.get(e),r.credentialRevision)&&VT(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function JT(t){return JSON.stringify({id:t.id,name:t.name,type:t.type,url:t.type==="stdio"?void 0:t.url,auth:t.type==="stdio"?void 0:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource})}function YT(t){let{state:e,config:r,domain:n}=t,o=r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id);return!o||e.sessionRemovedConfigIds.has(r.id??"")||!pt(o,r)?!1:o.name!==r.name||e.equalRevisionRebindDomains.get(r.name)===n}function Tr(t){t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.stagedOAuthCredentials??=new Map,t.equalRevisionRebindDomains??=new Map,t.bootOAuthCredentialBuffer??=new Map}function or(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function Xm(t){Tr(t);let e=new Set([...t.registryCredentialConfigs.keys(),...t.registryConfigNamesById.values(),...t.oauthCredentialDomains.keys(),...t.credentialRevisions.keys(),...t.preservedCredentialIdentities?.keys()??[],...[...t.bootOAuthCredentialBuffer?.values()??[]].map(n=>n.serverName),...[...t.registryCredentialIntents.values()].flatMap(n=>n.configName?[n.configName]:[])]);for(let[n,o]of t.hostLeases)o.owner.kind==="registry"&&e.add(n);for(let n of e){let o=t.hostLeases.get(n);if(o&&o.owner.kind!=="registry")continue;t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.hostedCredentialOwnership?.delete(n),t.preservedCredentialIdentities?.delete(n),t.expectedCredentialDomains.set(n,{kind:"blocked"}),t.authRefreshNeededReportKeys?.delete(n)}let r=new Set(t.oauthCredentialDomains.values());for(let n of t.oauthCredentialRevisions.keys())r.has(n)||t.oauthCredentialRevisions.delete(n);for(let n of t.bootOAuthCredentialBuffer?.keys()??[])or(t,n);t.registryCredentialIntents.clear(),t.pendingRegistryCredentialDomains.clear(),t.stagedOAuthCredentials.clear(),t.equalRevisionRebindDomains.clear(),t.registryCredentialConfigs.clear(),t.registryCredentialConfigsById.clear(),t.registryConfigNamesById.clear(),t.mcpRestartState.clear()}function Qm(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Jm)&&or(t,n)}function XT(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function eg(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;Tr(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();Qm(e,a);let c=un(n),u=ct(c)?`${c}\0${r}`:c,d=s.get(u),l=d?.credential.credential_revision??d?.credential.credentialRevision;if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=ZT&&XT(e),or(e,u);let f={serverName:r,credential:o,suppressReconnect:i,insertedAtMs:a,connectionEpoch:e.mcpConnectionEpoch,expiryTimer:void 0};s.set(u,f),f.expiryTimer=setTimeout(()=>{s.get(u)===f&&or(e,u)},Jm),f.expiryTimer.unref?.(),Ku.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function QT(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ke(t){let{state:e,domain:r,epoch:n,preserveFence:o=!1,preserveBootCredential:i=!1}=t;Tr(e);let s=e.registryCredentialIntents.get(r);if(!(n!==void 0&&s?.epoch!==n)){if(!o&&s?.configName){let a=e.expectedCredentialDomains.get(s.configName);a?.kind==="domain"&&a.domain===r&&e.expectedCredentialDomains.set(s.configName,{kind:"blocked"})}e.pendingRegistryCredentialDomains.delete(r),e.registryCredentialIntents.delete(r),e.stagedOAuthCredentials.delete(r),i||or(e,r)}}function na(t){let{state:e,domain:r,forceNew:n=!1}=t;Tr(e);let o=e.registryCredentialIntents.get(r);if(o&&!n)return e.pendingRegistryCredentialDomains.add(r),{domain:r,...o};let i=o?.configFingerprint===void 0?e.stagedOAuthCredentials.get(r):void 0;o&&Ke({state:e,domain:r,epoch:o.epoch});let s={epoch:QT(e,r),configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0};return e.registryCredentialIntents.set(r,s),i!==void 0&&i.configFingerprint===void 0&&e.stagedOAuthCredentials.set(r,{...i,intentEpoch:s.epoch}),e.pendingRegistryCredentialDomains.add(r),{domain:r,...s}}function tg(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ke({state:t,domain:r,epoch:n.epoch});for(let r of t.pendingRegistryCredentialDomains)e.has(r)||(t.pendingRegistryCredentialDomains.delete(r),t.stagedOAuthCredentials.delete(r));for(let r of t.stagedOAuthCredentials.keys())e.has(r)||t.stagedOAuthCredentials.delete(r);for(let r of t.bootOAuthCredentialBuffer?.keys()??[]){let n=r.split("\0",1)[0];!e.has(r)&&!ct(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);na({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function eA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||N(e,r.name)?.owner.kind==="local")return;Tr(e);let n=at(r.id),o=JT(r),i=YT({state:e,config:r,domain:n});i||e.equalRevisionRebindDomains.delete(r.name);let s=e.registryCredentialIntents.get(n);if(s&&s.configFingerprint===void 0){s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i;let a=e.stagedOAuthCredentials.get(n);a?.intentEpoch===s.epoch&&(a.configFingerprint=o)}else s&&s.configFingerprint!==o?(Ke({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=na({state:e,domain:n});if(s=e.registryCredentialIntents.get(n),!s||s.epoch!==a.epoch)return;s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i}return e.pendingRegistryCredentialDomains.add(n),tA({state:e,config:r,domain:n}),{domain:n,...s}}function rg(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=un(r),s=e.registryCredentialIntents.get(i);if(!s||!e.pendingRegistryCredentialDomains.has(i))return;let a=e.oauthCredentialRevisions.get(r.domain),c=e.stagedOAuthCredentials.get(i),d=c?.intentEpoch===s.epoch&&c.configFingerprint===s.configFingerprint?c.credential.credential_revision??c.credential.credentialRevision:void 0,l=a===void 0?void 0:kr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&kr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function tA(t){let{state:e,config:r,domain:n}=t,o=e.oauthCredentialDomains.get(r.name);e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:n});let i=e.credentialRevisions.get(r.name);(o===void 0||i?.ownerDomain!==void 0&&i.ownerDomain!==n||i?.ownerDomain===void 0&&!ct(o)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),it(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function rA(t){let{state:e,config:r,pi:n,intent:o}=t,i=e.stagedOAuthCredentials.get(o.domain);if(!i||i.intentEpoch!==o.epoch||i.configFingerprint!==o.configFingerprint||i.requiresEqualRevisionRebind&&!o.allowEqualRevisionRebind)return;e.stagedOAuthCredentials.delete(o.domain),i.requiresEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(Km,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function nA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();Qm(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return or(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&ct(s.split("\0",1)[0]))return or(e,s),a}function oA(t){let{config:e,pi:r,buffered:n}=t;Ku.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Ku.info("MCP OAuth boot credential replayed",{hasRegistryConfigId:e.id!==void 0,registryOwned:e.registrySource!==void 0,visibility:"public"});let o={[e.name]:n.credential};r.events.emit(Km,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function iA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(pt(n,r)){if(n.name===r.name)return;await di(e,n.name,n.id,n),e.tokens.clearLocalCredential(n.name),e.preservedCredentialIdentities?.delete(n.name),e.expectedCredentialDomains.set(n.name,{kind:"blocked"}),e.registryCredentialConfigs.delete(n.name);return}await ht(e,r.name,n.id,n);let o=e.expectedCredentialDomains.get(r.name);return o?.kind==="blocked"?o:void 0}function sA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=KT(e,r.name,o);Ke({state:e,domain:n.domain,epoch:n.epoch,preserveFence:!c}),c&&(e.expectedCredentialDomains.set(r.name,{kind:"blocked"}),o.restoreFailure!==void 0&&e.statusFailureCategories.set(r.name,o.restoreFailure))}let a=`Registry credential replacement failed for ${r.name}: ${i instanceof Error?i.message:String(i)}`;return e.diagnostics.push({server:r.name,message:a,origin:"registry"}),new kt(a)}async function aA(t){let{state:e,config:r,pi:n,intent:o,previousConfig:i,rollbackSnapshot:s}=t,a=e.registryCredentialIntents.get(o.domain);if(a?.epoch!==o.epoch||a.configFingerprint!==o.configFingerprint)return!1;e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let c;try{c=await iA({state:e,config:r,previousConfig:i})}catch(h){throw sA({state:e,config:r,intent:o,rollbackSnapshot:s,cause:h})}let u=e.registryCredentialIntents.get(o.domain);c&&u?.epoch===o.epoch&&e.expectedCredentialDomains.get(r.name)===c&&e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let d=e.expectedCredentialDomains.get(r.name);if(u?.epoch!==o.epoch||u.configFingerprint!==o.configFingerprint||d?.kind!=="domain"||d.domain!==o.domain)return Ke({state:e,domain:o.domain,epoch:o.epoch}),!1;let l=r.id;if(l===void 0)return!1;let f={...r};e.registryConfigNamesById.set(l,r.name),e.registryCredentialConfigs.set(r.name,f),e.registryCredentialConfigsById.set(l,f),o.allowEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),rA({state:e,config:r,pi:n,intent:o});let p=nA({state:e,domain:o.domain,serverName:r.name});return Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&oA({config:r,pi:n,buffered:p}),!0}function Ar(t){let{state:e,config:r,pi:n}=t;if(r.id===void 0||r.registrySource===void 0)return Promise.resolve(!0);let o=e.statusFailureCategories.get(r.name),i=eA({state:e,config:r});if(!i)return Promise.resolve(!1);let s=e.registryCredentialIntents.get(i.domain);if(!s||s.epoch!==i.epoch)return Promise.resolve(!1);if(s.finalization)return s.finalization;let a=WT(e,r.name,o),u=(e.registryCredentialFinalizationsByName.get(r.name)??Promise.resolve(!0)).catch(()=>!1).then(()=>{let d=e.registryCredentialConfigs.get(r.name)??(r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id))??e.servers.get(r.name)?.config;return aA({state:e,config:r,pi:n,intent:i,previousConfig:d,rollbackSnapshot:a})});return e.registryCredentialFinalizationsByName.set(r.name,u),s.finalization=u,u.then(()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)},()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)}),u}import{SettingsManager as SA}from"@augmentcode/auggie-v2";import{homedir as ng}from"node:os";import{sep as cA}from"node:path";var Ju=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},uA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,dA=/\\\$\{/g,lA=new Set(["workspaceFolder","augmentToken"]),og="${workspaceFolder}";function ig(t,e){return t.includes(og)?t.split(og).join(e):t}function sg(t,e){return t.includes("${")?t.replace(uA,(n,o,i)=>{if(lA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Ju(o)}).replace(dA,"${"):t}function fA(t){return t.startsWith("~")?t==="~"?ng():t.startsWith("~/")||t.startsWith(`~${cA}`)?ng()+t.slice(1):t:t}function Yu(t,e,r){return fA(sg(ig(t,e),r))}function Jn(t,e,r){return sg(ig(t,e),r)}function ag(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Jn(i,e,r);return n}var pA="$augment-";function hA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(pA)?i:Jn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Jn(t.url,e,r),headers:hA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:Yu(t.command,e,r),args:t.args.map(n=>Jn(n,e,r)),env:t.env?ag(t.env,e,r):void 0,cwd:t.cwd?Yu(t.cwd,e,r):e}}import{readFileSync as gA}from"node:fs";var Et=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Yn(t){if(t.type==="stdio"||t.type==="http"||t.type==="sse")return t.type;if(t.url)return"http";if(t.command)return"stdio"}function mA(t){if(!t)return;let e={};for(let[r,n]of Object.entries(t))n!=null&&(e[r]=String(n));return Object.keys(e).length>0?e:void 0}function Xn(t,e){let r=Yn(e);if(!r)throw new Et(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new Et(`MCP server "${t}" has type "${r}" but no 'url' property`);return{type:r,name:e.name??t,disabled:e.disabled,url:e.url,headers:e.headers,auth:e.auth==="oauth"?"oauth":void 0,timeoutMs:e.timeoutMs}}let n=e.command;if(!n)throw new Et(`MCP server "${t}" has type "stdio" but no 'command' property`);let o=(e.args??[]).map(a=>String(a)),i=e.useShellInterpolation??!0,s=i&&o.length>0?`${n} ${o.join(" ")}`:n;return{type:"stdio",name:e.name??t,disabled:e.disabled,command:s,args:i?[]:o,env:mA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var dg=t=>gA(t,"utf8");function oa(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function cg(t){return oa(t)&&("command"in t||"url"in t)}function Qu(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function ug(t,e){return Qu(t.name)??e}function Xu(t,e){let r=Yn(t);if(r==="http"||r==="sse")return Qu(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return Qu(t.name,t.title,n)??e}function yA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[Xu(n,String(r)),n]});if(oa(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[Xu(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(oa(n))return Object.entries(n).map(([o,i])=>{let s=i;return[ug(s,o),s]})}if(cg(t)){let r=t;return[[Xu(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(cg))return Object.entries(t).map(([r,n])=>{if(!oa(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[ug(o,r),o]})}throw new Error("unrecognized MCP config JSON shape (expected an array of servers, a { servers|mcpServers } array/record, a single server object, or a Claude-Desktop-style record)")}function ed(t){return t instanceof Error?t.message:String(t)}function vA(t,e,r,n,o){if(r)return e;try{return n(t)}catch(i){o.push({message:`Failed to read --mcp-config file "${t}": ${ed(i)}`});return}}function _A(t,e,r){let n=t.trim();if(n.length===0)return[];let o=n.startsWith("[")||n.startsWith("{"),i=o?"inline JSON":`file "${t}"`,s=vA(t,n,o,e,r);if(s===void 0)return[];let a;try{a=JSON.parse(s)}catch(c){return r.push({message:`Failed to parse --mcp-config ${i}: ${ed(c)}`}),[]}try{return yA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${ed(c)}`}),[]}}function td(t,e=dg){let r={},n=[];for(let o of t)for(let[i,s]of _A(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function rd(t,e=dg){return!t||t.length===0?new Set:new Set(Object.keys(td(t,e).servers))}var wA=["global","project","local","managed"];function bA(t,e){switch(e){case"global":return t.getGlobalSettings().mcpServers;case"project":return t.getProjectSettings().mcpServers;case"local":return t.getLocalSettings().mcpServers;case"managed":return t.getManagedSettings().mcpServers}}function RA(t){let e={};for(let r of t)if(r)for(let[n,o]of Object.entries(r)){if(o===null){delete e[n];continue}o&&(e[n]=structuredClone(o))}return e}function CA(t,e,r){let n=td(t);r.push(...n.diagnostics);let o=n.servers;if(!e||e.size===0)return o;for(let[i,s]of Object.entries(o)){let a=e.get(i);a!==void 0&&(o[i]={...s,disabled:a})}return o}function PA(t,e,r){let n=SA.create(t,e);for(let{scope:o,error:i}of n.drainErrors()){let s=i.message.includes("parse settings JSON")?"parse":"read";r.push({message:`Failed to ${s} ${o} settings.json: ${i.message}`})}return RA(wA.map(o=>bA(n,o)))}function Qn(t,e,r,n){let o=[],i=r&&r.length>0?CA(r,n,o):PA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=Xn(a,c);s.push(u.type==="stdio"?Zt(u,t):Gt(u,t))}catch(u){let d=u instanceof Et?u.message:`Failed to normalize MCP server "${a}": ${u instanceof Error?u.message:String(u)}`;o.push({server:a,message:d})}return{servers:s,diagnostics:o}}import{setToolSource as mg}from"@augmentcode/auggie-v2";import{logger as NA}from"@hermes/logger";import{Type as DA}from"@sinclair/typebox";var ia=Symbol.for("__pi_mcp_state__");function xA(t,e){return t.id!==e.id||t.type!==e.type||t.type==="stdio"||e.type==="stdio"||t.auth!=="oauth"||e.auth!=="oauth"?!1:t.url===e.url&&t.auth===e.auth}function kA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function EA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&xA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&kA(a,e)}),i=t.expectedCredentialDomains.get(r.name);if(!(!o||t.sessionRemovedConfigIds.has(e)||t.oauthCredentialDomains.has(r.name)||i?.kind!=="domain"||i.domain!==`user:${e}`)){t.equalRevisionRebindDomains.set(r.name,i.domain);for(let s of n)t.tokens.clearLocalCredential(s),t.oauthCredentialDomains.delete(s),t.credentialRevisions.delete(s),t.hostedCredentialOwnership?.delete(s),t.preservedCredentialIdentities?.delete(s),t.statusFailureCategories?.delete(s),t.authRefreshNeededReportKeys?.delete(s),t.expectedCredentialDomains.set(s,{kind:"blocked"})}}}function TA(t){t.dynamicallyAddedConfigIds??=new Set,t.failedAddConfigIds??=new Set,t.nameCollisionAddConfigIds??=new Set,t.authFallbackDisplacedConfigIds??=new Set,t.sessionRemovedConfigIds??=new Set,t.registryConfigNamesById??=new Map,t.registryCredentialConfigs??=new Map,t.registryCredentialConfigsById??=new Map,t.toolSearchLatched??=!1,t.sessionMcpConfigDisabledOverrides??=new Map,t.reconnects??=new Map,t.missingHostRemovals??=new Map,t.missingHostRemovalFences??=new Map,t.reconnectDesiredGenerations??=new Map,t.serverGenerations??=t.hostGenerations??new Map,t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map,t.credentialRevisions??=new Map,t.oauthCredentialRevisions??=new Map,t.oauthCredentialDomains??=new Map;let e=t.equalRevisionRebindDomains===void 0;t.equalRevisionRebindDomains??=new Map,t.preservedCredentialIdentities??=new Map,t.stagedOAuthCredentials??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.registryCredentialFinalizationsByName??=new Map;for(let r of t.pendingRegistryCredentialDomains)if(!t.registryCredentialIntents.has(r)){let n=(t.registryCredentialIntentEpochs.get(r)??0)+1;t.registryCredentialIntentEpochs.set(r,n),t.registryCredentialIntents.set(r,{epoch:n,configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0})}for(let r of t.registryCredentialIntents.values())r.allowEqualRevisionRebind??=!1;for(let[r,n]of t.stagedOAuthCredentials){let o=t.registryCredentialIntents.get(r);if(!o){t.stagedOAuthCredentials.delete(r);continue}let i=n;i.intentEpoch??=o.epoch,i.configFingerprint??=o.configFingerprint,i.requiresEqualRevisionRebind??=!1}t.statusHostGeneration??=1,t.statusReportSequence??=0,t.statusFailureCategories??=new Map,t.authRefreshNeededReportKeys??=new Map,t.hostedCredentialOwnership??=new Map,e&&EA(t),t.authenticationGeneration??=0,t.authenticatingServerName??=void 0,t.liveEditGenerations??=new Map,t.blockedVfsMcpNames??=new Set,t.pluginServerHosts||(t.pluginServerHosts=new Map),t.toolRegistrationsByPi??=new WeakMap,t.hostLeases??=new Map,t.hostLeaseRevisions??=new Map,t.expectedCredentialDomains??=new Map;for(let[r,n]of t.servers)n.config!==void 0&&Q(t,r,n);t.pluginReconcileQueue??=Promise.resolve(),t.mcpAttachDisabled??=!1,t.mcpAttachCloudSignaled??=!1,t.attachResolvers??=new Map,t.attachResultListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function li(t,e){for(;;){let r=t.missingHostRemovals.get(e);if(!r)return;try{await r.promise}catch{}if(t.missingHostRemovals.get(e)===r)return}}function eo(t){let{state:e,configId:r,generation:n}=t;e.attachmentCommandGenerations??=new Map,e.attachmentCommandInFlightGenerations??=new Map,e.attachmentCommandAppliedGenerations??=new Map;let o=e.attachmentCommandGenerations.get(r)??0;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o===0:n<o||n===e.attachmentCommandInFlightGenerations.get(r)||n===e.attachmentCommandAppliedGenerations.get(r)?!1:(e.attachmentCommandGenerations.set(r,n),e.attachmentCommandInFlightGenerations.set(r,n),!0)}function nd(t){let{state:e,configId:r,generation:n}=t;typeof n!="number"||n<=0||(e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r),e.attachmentCommandGenerations?.get(r)===n&&(e.attachmentCommandAppliedGenerations??=new Map,e.attachmentCommandAppliedGenerations.set(r,n)))}function sa(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function aa(t){let{state:e,configId:r,generation:n,operation:o,wasApplied:i}=t;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o:o.then(s=>(i()?nd({state:e,configId:r,generation:n}):sa({state:e,configId:r,generation:n}),s),s=>{throw sa({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[ia])return TA(t[ia]),t[ia];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Kn,refreshes:new Map,reconnects:new Map,missingHostRemovals:new Map,missingHostRemovalFences:new Map,reconnectDesiredGenerations:new Map,serverGenerations:new Map,configRevisions:new Map,configDesiredRevisions:new Map,configDesiredSources:new Map,credentialRevisions:new Map,oauthCredentialRevisions:new Map,oauthCredentialDomains:new Map,equalRevisionRebindDomains:new Map,preservedCredentialIdentities:new Map,stagedOAuthCredentials:new Map,bootOAuthCredentialBuffer:new Map,pendingRegistryCredentialDomains:new Set,registryCredentialIntents:new Map,registryCredentialIntentEpochs:new Map,registryCredentialFinalizationsByName:new Map,statusHostGeneration:1,statusReportSequence:0,statusFailureCategories:new Map,authRefreshNeededReportKeys:new Map,hostedCredentialOwnership:new Map,shouldProactivelyRefreshTokens:!0,backgroundRefreshIntervalId:void 0,credsListenerBound:!1,configIdsListenerBound:!1,registryGeneration:0,liveEditGenerations:new Map,attachmentCommandGenerations:new Map,attachmentCommandInFlightGenerations:new Map,attachmentCommandAppliedGenerations:new Map,mcpConfigsListenerBound:!1,embeddedRegistryConfigs:void 0,vfsListenerBound:!1,addServerListenerBound:!1,restartServerListenerBound:!1,removeServerListenerBound:!1,mcpRestartState:new Map,vfsGeneration:0,lastSuccessfulVfsMcpSignature:void 0,blockedVfsMcpNames:new Set,credentials:void 0,secretsClient:void 0,headerSecrets:{},headerSecretFailures:{},headerSecretsListenerBound:!1,featureFlagsListenerBound:!1,workspaceRoot:void 0,mcpConfigOverride:void 0,connectStarted:!1,reconnecting:!1,authenticating:!1,authenticationGeneration:0,authenticatingServerName:void 0,restartHistory:new Map,dynamicallyAddedConfigIds:new Set,failedAddConfigIds:new Set,nameCollisionAddConfigIds:new Set,authFallbackDisplacedConfigIds:new Set,sessionRemovedConfigIds:new Set,selectedRegistryConfigIds:void 0,registryConfigNamesById:new Map,oauthFailureCategoriesByConfigId:void 0,registryCredentialConfigs:new Map,registryCredentialConfigsById:new Map,lastStatusReport:void 0,diagnostics:[],pluginServerSource:void 0,pluginServerNames:new Set,pluginServerHosts:new Map,pluginReconcileQueue:Promise.resolve(),sessionPluginDisabledOverrides:new Map,sessionRegistryDisabledOverrides:new Map,sessionMcpConfigDisabledOverrides:new Map,currentLoad:void 0,ui:void 0,featureFlags:void 0,toolSearchLatched:!1,mcpCatalog:void 0,mcpAttachDisabled:!1,mcpAttachCloudSignaled:!1,catalogRefreshInFlight:void 0,attachResolvers:new Map,attachResultListenerBound:!1};return t[ia]=e,e}var lg=Symbol.for("__hermes_mcp_tool_registry__"),AA=Symbol.for("__hermes_mcp_extension_factory__");function od(){let t=globalThis;return t[lg]??=new Map,t[lg]}function fg(t){return od().get(t)}function Mr(t){od().set(t.name,t)}function to(t,e){let r=od();(e===void 0||r.get(t)===e)&&r.delete(t)}function pg(t){Reflect.set(t,AA,!0)}function ca(t,e,r,n){return r.includes(t)?n.includes(t)?`"${t}" is a built-in tool, not an MCP server. Call it directly.`:`Built-in tool "${t}" is not available (disabled).`:`MCP server "${t}" is not available (status: ${e??"unknown"}).`}function MA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function $A(t){let e=[];for(let r of t)r.type==="text"?e.push({type:"text",text:r.text}):e.push({type:"image",mimeType:r.mimeType,data:r.data});return e}function IA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
|
|
9
|
-
`).trim()}function
|
|
8
|
+
deps: ${r}}`};var x1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=k1(t);xC(t,e),kC(t,r)}};function k1({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let o=Array.isArray(t[n])?e:r;o[n]=t[n]}return[e,r]}function xC(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,Ps.propertyInData)(r,n,s,o.opts.ownProperties);t.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,Ps.checkReportMissingProp)(t,u)}):(r.if((0,Up._)`${c} && (${(0,Ps.checkMissingProp)(t,a,i)})`),(0,Ps.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=xC;function kC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,P1.alwaysValidSchema)(i,e[a])||(r.if((0,Ps.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},s);t.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),t.ok(s))}Xt.validateSchemaDeps=kC;Xt.default=x1});var AC=P(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var TC=j(),E1=B(),T1={message:"property name must be valid",params:({params:t})=>(0,TC._)`{propertyName: ${t.propertyName}}`},A1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:T1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,E1.alwaysValidSchema)(o,r))return;let i=e.name("valid");e.forIn("key",n,s=>{t.setParams({propertyName:s}),t.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},i),e.if((0,TC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};qp.default=A1});var Gp=P(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var Uc=bt(),Nt=j(),M1=hr(),qc=B(),$1={message:"must NOT have additional properties",params:({params:t})=>(0,Nt._)`{additionalProperty: ${t.additionalProperty}}`},I1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:$1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,qc.alwaysValidSchema)(s,r))return;let u=(0,Uc.allSchemaProperties)(n.properties),d=(0,Uc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Nt._)`${i} === ${M1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?h(g):e.if(f(g),()=>h(g))})}function f(g){let v;if(u.length>8){let b=(0,qc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Uc.isOwnProperty)(e,b,g)}else u.length?v=(0,Nt.or)(...u.map(b=>(0,Nt._)`${g} === ${b}`)):v=Nt.nil;return d.length&&(v=(0,Nt.or)(v,...d.map(b=>(0,Nt._)`${(0,Uc.usePattern)(t,b)}.test(${g})`))),(0,Nt.not)(v)}function p(g){e.code((0,Nt._)`delete ${o}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,qc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(m(g,v,!1),e.if((0,Nt.not)(v),()=>{t.reset(),p(g)})):(m(g,v),a||e.if((0,Nt.not)(v),()=>e.break()))}}function m(g,v,b){let _={keyword:"additionalProperties",dataProp:g,dataPropType:qc.Type.Str};b===!1&&Object.assign(_,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(_,v)}}};Hp.default=I1});var IC=P(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var O1=ls(),MC=bt(),Zp=B(),$C=Gp(),z1={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&$C.default.code(new O1.KeywordCxt(i,$C.default,"additionalProperties"));let s=(0,MC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Zp.mergeEvaluated.props(e,(0,Zp.toHash)(s),i.props));let a=s.filter(l=>!(0,Zp.alwaysValidSchema)(i,r[l]));if(a.length===0)return;let c=e.name("valid");for(let l of a)u(l)?d(l):(e.if((0,MC.propertyInData)(e,o,l,i.opts.ownProperties)),d(l),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(l),t.ok(c);function u(l){return i.opts.useDefaults&&!i.compositeRule&&r[l].default!==void 0}function d(l){t.subschema({keyword:"properties",schemaProp:l,dataProp:l},c)}}};Bp.default=z1});var DC=P(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var OC=bt(),Hc=j(),zC=B(),NC=B(),N1={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:o,it:i}=t,{opts:s}=i,a=(0,OC.allSchemaProperties)(r),c=a.filter(m=>(0,zC.alwaysValidSchema)(i,r[m]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof Hc.Name)&&(i.props=(0,NC.evaluatedPropsToName)(e,i.props));let{props:l}=i;f();function f(){for(let m of a)u&&p(m),i.allErrors?h(m):(e.var(d,!0),h(m),e.if(d))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,zC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Hc._)`${(0,OC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:NC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Hc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Hc.not)(d),()=>e.break())})})}}};Wp.default=N1});var LC=P(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var D1=B(),L1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,D1.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};Vp.default=L1});var jC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var j1=bt(),F1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:j1.validateUnion,error:{message:"must match a schema in anyOf"}};Kp.default=F1});var FC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var Gc=j(),U1=B(),q1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Gc._)`{passingSchemas: ${t.passing}}`},H1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:q1,code(t){let{gen:e,schema:r,parentSchema:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,s=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(s,()=>t.reset(),()=>t.error(!0));function u(){i.forEach((d,l)=>{let f;(0,U1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Gc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Gc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Gc.Name)})})}}};Jp.default=H1});var UC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var G1=B(),Z1={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=e.name("valid");r.forEach((i,s)=>{if((0,G1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Yp.default=Z1});var GC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var Zc=j(),HC=B(),B1={message:({params:t})=>(0,Zc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Zc._)`{failingKeyword: ${t.ifClause}}`},W1={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:B1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,HC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=qC(n,"then"),i=qC(n,"else");if(!o&&!i)return;let s=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&i){let d=e.let("ifClause");t.setParams({ifClause:d}),e.if(a,u("then",d),u("else",d))}else o?e.if(a,u("then")):e.if((0,Zc.not)(a),u("else"));t.pass(s,()=>t.error(!0));function c(){let d=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(d)}function u(d,l){return()=>{let f=t.subschema({keyword:d},a);e.assign(s,a),t.mergeValidEvaluated(f,s),l?e.assign(l,(0,Zc._)`${d}`):t.setParams({ifClause:d})}}}};function qC(t,e){let r=t.schema[e];return r!==void 0&&!(0,HC.alwaysValidSchema)(t,r)}Xp.default=W1});var ZC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var V1=B(),K1={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,V1.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Qp.default=K1});var BC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var J1=Np(),Y1=bC(),X1=Dp(),Q1=CC(),eF=PC(),tF=EC(),rF=AC(),nF=Gp(),oF=IC(),iF=DC(),sF=LC(),aF=jC(),cF=FC(),uF=UC(),dF=GC(),lF=ZC();function fF(t=!1){let e=[sF.default,aF.default,cF.default,uF.default,dF.default,lF.default,rF.default,nF.default,tF.default,oF.default,iF.default];return t?e.push(Y1.default,Q1.default):e.push(J1.default,X1.default),e.push(eF.default),e}eh.default=fF});var WC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var be=j(),pF={message:({schemaCode:t})=>(0,be.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,be._)`{format: ${t}}`},hF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:pF,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:s,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:d,self:l}=a;if(!c.validateFormats)return;o?f():p();function f(){let h=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),m=r.const("fDef",(0,be._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,be._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,be._)`${m}.type || "string"`).assign(v,(0,be._)`${m}.validate`),()=>r.assign(g,(0,be._)`"string"`).assign(v,m)),t.fail$data((0,be.or)(b(),_()));function b(){return c.strictSchema===!1?be.nil:(0,be._)`${s} && !${v}`}function _(){let R=d.$async?(0,be._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,be._)`${v}(${n})`,w=(0,be._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,be._)`${v} && ${v} !== true && ${g} === ${e} && !${w}`}}function p(){let h=l.formats[i];if(!h){b();return}if(h===!0)return;let[m,g,v]=_(h);m===e&&t.pass(R());function b(){if(c.strictSchema===!1){l.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function _(w){let C=w instanceof RegExp?(0,be.regexpCode)(w):c.code.formats?(0,be._)`${c.code.formats}${(0,be.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:w,code:C});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,be._)`${I}.validate`]:["string",w,I]}function R(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!d.$async)throw new Error("async format in sync schema");return(0,be._)`await ${v}(${n})`}return typeof g=="function"?(0,be._)`${v}(${n})`:(0,be._)`${v}.test(${n})`}}}};th.default=hF});var VC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var mF=WC(),gF=[mF.default];rh.default=gF});var KC=P(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.contentVocabulary=Oo.metadataVocabulary=void 0;Oo.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Oo.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var YC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var yF=oC(),vF=vC(),_F=BC(),SF=VC(),JC=KC(),wF=[yF.default,vF.default,(0,_F.default)(),SF.default,JC.metadataVocabulary,JC.contentVocabulary];nh.default=wF});var QC=P(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.DiscrError=void 0;var XC;(function(t){t.Tag="tag",t.Mapping="mapping"})(XC||(Bc.DiscrError=XC={}))});var tP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var zo=j(),oh=QC(),eP=kc(),bF=fs(),RF=B(),CF={message:({params:{discrError:t,tagName:e}})=>t===oh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,zo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},PF={keyword:"discriminator",type:"object",schemaType:"object",error:CF,code(t){let{gen:e,data:r,schema:n,parentSchema:o,it:i}=t,{oneOf:s}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,zo._)`${r}${(0,zo.getProperty)(a)}`);e.if((0,zo._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:oh.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function d(){let p=f();e.if(!1);for(let h in p)e.elseIf((0,zo._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:oh.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function l(p){let h=e.name("valid"),m=t.subschema({keyword:"oneOf",schemaProp:p},h);return t.mergeEvaluated(m,zo.Name),h}function f(){var p;let h={},m=v(o),g=!0;for(let R=0;R<s.length;R++){let w=s[R];if(w?.$ref&&!(0,RF.schemaHasRulesButRef)(w,i.self.RULES)){let I=w.$ref;if(w=eP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),w instanceof eP.SchemaEnv&&(w=w.schema),w===void 0)throw new bF.default(i.opts.uriResolver,i.baseId,I)}let C=(p=w?.properties)===null||p===void 0?void 0:p[a];if(typeof C!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);g=g&&(m||v(w)),b(C,R)}if(!g)throw new Error(`discriminator: "${a}" must be required`);return h;function v({required:R}){return Array.isArray(R)&&R.includes(a)}function b(R,w){if(R.const)_(R.const,w);else if(R.enum)for(let C of R.enum)_(C,w);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function _(R,w){if(typeof R!="string"||R in h)throw new Error(`discriminator: "${a}" values must be unique strings`);h[R]=w}}}};ih.default=PF});var rP=P(($3,xF)=>{xF.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 ah=P((le,sh)=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});le.MissingRefError=le.ValidationError=le.CodeGen=le.Name=le.nil=le.stringify=le.str=le._=le.KeywordCxt=le.Ajv=void 0;var kF=XR(),EF=YC(),TF=tP(),nP=rP(),AF=["/properties"],Wc="http://json-schema.org/draft-07/schema",No=class extends kF.default{_addVocabularies(){super._addVocabularies(),EF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(TF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(nP,AF):nP;this.addMetaSchema(e,Wc,!1),this.refs["http://json-schema.org/schema"]=Wc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Wc)?Wc:void 0)}};le.Ajv=No;sh.exports=le=No;sh.exports.Ajv=No;Object.defineProperty(le,"__esModule",{value:!0});le.default=No;var MF=ls();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return MF.KeywordCxt}});var Do=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return Do._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return Do.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return Do.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return Do.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return Do.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return Do.CodeGen}});var $F=Pc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return $F.default}});var IF=fs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return IF.default}})});var lP=P(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.formatNames=er.fastFormats=er.fullFormats=void 0;function Qt(t,e){return{validate:t,compare:e}}er.fullFormats={date:Qt(aP,lh),time:Qt(uh(!0),fh),"date-time":Qt(oP(!0),uP),"iso-time":Qt(uh(),cP),"iso-date-time":Qt(oP(),dP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:jF,"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:BF,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:FF,int32:{type:"number",validate:HF},int64:{type:"number",validate:GF},float:{type:"number",validate:sP},double:{type:"number",validate:sP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,lh),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,fh),"date-time":Qt(/^\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,uP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,cP),"iso-date-time":Qt(/^\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,dP),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};er.formatNames=Object.keys(er.fullFormats);function OF(t){return t%4===0&&(t%100!==0||t%400===0)}var zF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,NF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function aP(t){let e=zF.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],o=+e[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&OF(r)?29:NF[n])}function lh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var ch=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function uh(t){return function(r){let n=ch.exec(r);if(!n)return!1;let o=+n[1],i=+n[2],s=+n[3],a=n[4],c=n[5]==="-"?-1:1,u=+(n[6]||0),d=+(n[7]||0);if(u>23||d>59||t&&!a)return!1;if(o<=23&&i<=59&&s<60)return!0;let l=i-d*c,f=o-u*c-(l<0?1:0);return(f===23||f===-1)&&(l===59||l===-1)&&s<61}}function fh(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function cP(t,e){if(!(t&&e))return;let r=ch.exec(t),n=ch.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t<e?-1:0}var dh=/t|\s/i;function oP(t){let e=uh(t);return function(n){let o=n.split(dh);return o.length===2&&aP(o[0])&&e(o[1])}}function uP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function dP(t,e){if(!(t&&e))return;let[r,n]=t.split(dh),[o,i]=e.split(dh),s=lh(r,o);if(s!==void 0)return s||fh(n,i)}var DF=/\/|:/,LF=/^(?:[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 jF(t){return DF.test(t)&&LF.test(t)}var iP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function FF(t){return iP.lastIndex=0,iP.test(t)}var UF=-(2**31),qF=2**31-1;function HF(t){return Number.isInteger(t)&&t<=qF&&t>=UF}function GF(t){return Number.isInteger(t)}function sP(){return!0}var ZF=/[^\\]\\Z/;function BF(t){if(ZF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var fP=P(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.formatLimitDefinition=void 0;var WF=ah(),Dt=j(),Xr=Dt.operators,Vc={formatMaximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},formatMinimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},formatExclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},formatExclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},VF={message:({keyword:t,schemaCode:e})=>(0,Dt.str)`should be ${Vc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Dt._)`{comparison: ${Vc[t].okStr}, limit: ${e}}`};Lo.formatLimitDefinition={keyword:Object.keys(Vc),type:"string",schemaType:"string",$data:!0,error:VF,code(t){let{gen:e,data:r,schemaCode:n,keyword:o,it:i}=t,{opts:s,self:a}=i;if(!s.validateFormats)return;let c=new WF.KeywordCxt(i,a.RULES.all.format.definition,"format");c.$data?u():d();function u(){let f=e.scopeValue("formats",{ref:a.formats,code:s.code.formats}),p=e.const("fmt",(0,Dt._)`${f}[${c.schemaCode}]`);t.fail$data((0,Dt.or)((0,Dt._)`typeof ${p} != "object"`,(0,Dt._)`${p} instanceof RegExp`,(0,Dt._)`typeof ${p}.compare != "function"`,l(p)))}function d(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${o}": format "${f}" does not define "compare" function`);let h=e.scopeValue("formats",{key:f,ref:p,code:s.code.formats?(0,Dt._)`${s.code.formats}${(0,Dt.getProperty)(f)}`:void 0});t.fail$data(l(h))}function l(f){return(0,Dt._)`${f}.compare(${r}, ${n}) ${Vc[o].fail} 0`}},dependencies:["format"]};var KF=t=>(t.addKeyword(Lo.formatLimitDefinition),t);Lo.default=KF});var gP=P((xs,mP)=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var jo=lP(),JF=fP(),ph=j(),pP=new ph.Name("fullFormats"),YF=new ph.Name("fastFormats"),hh=(t,e={keywords:!0})=>{if(Array.isArray(e))return hP(t,e,jo.fullFormats,pP),t;let[r,n]=e.mode==="fast"?[jo.fastFormats,YF]:[jo.fullFormats,pP],o=e.formats||jo.formatNames;return hP(t,o,r,n),e.keywords&&(0,JF.default)(t),t};hh.get=(t,e="full")=>{let n=(e==="fast"?jo.fastFormats:jo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function hP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,ph._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}mP.exports=xs=hh;Object.defineProperty(xs,"__esModule",{value:!0});xs.default=hh});var ZP=P((h8,GP)=>{GP.exports=HP;HP.sync=TU;var UP=Rr("fs");function EU(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&t.substr(-o.length).toLowerCase()===o)return!0}return!1}function qP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:EU(e,r)}function HP(t,e,r){UP.stat(t,function(n,o){r(n,n?!1:qP(o,t,e))})}function TU(t,e){return qP(UP.statSync(t),t,e)}});var JP=P((m8,KP)=>{KP.exports=WP;WP.sync=AU;var BP=Rr("fs");function WP(t,e,r){BP.stat(t,function(n,o){r(n,n?!1:VP(o,e))})}function AU(t,e){return VP(BP.statSync(t),e)}function VP(t,e){return t.isFile()&&MU(t,e)}function MU(t,e){var r=t.mode,n=t.uid,o=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),s=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),d=a|c,l=r&u||r&c&&o===s||r&a&&n===i||r&d&&i===0;return l}});var XP=P((y8,YP)=>{var g8=Rr("fs"),iu;process.platform==="win32"||global.TESTING_WINDOWS?iu=ZP():iu=JP();YP.exports=Ih;Ih.sync=$U;function Ih(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){Ih(t,e||{},function(i,s){i?o(i):n(s)})})}iu(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function $U(t,e){try{return iu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ix=P((v8,ox)=>{var Wo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",QP=Rr("path"),IU=Wo?";":":",ex=XP(),tx=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),rx=(t,e)=>{let r=e.colon||IU,n=t.match(/\//)||Wo&&t.match(/\\/)?[""]:[...Wo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Wo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Wo?o.split(r):[""];return Wo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},nx=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=rx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(tx(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=QP.join(p,t),m=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;d(c(m,u,0))}),c=(u,d,l)=>new Promise((f,p)=>{if(l===o.length)return f(a(d+1));let h=o[l];ex(u+h,{pathExt:i},(m,g)=>{if(!m&&g)if(e.all)s.push(u+h);else return f(u+h);return f(c(u,d,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},OU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=rx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=QP.join(c,t),d=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+u:u;for(let l=0;l<n.length;l++){let f=d+n[l];try{if(ex.sync(f,{pathExt:o}))if(e.all)i.push(f);else return f}catch{}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw tx(t)};ox.exports=nx;nx.sync=OU});var ax=P((_8,Oh)=>{"use strict";var sx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Oh.exports=sx;Oh.exports.default=sx});var lx=P((S8,dx)=>{"use strict";var cx=Rr("path"),zU=ix(),NU=ax();function ux(t,e){let r=t.options.env||process.env,n=process.cwd(),o=t.options.cwd!=null,i=o&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let s;try{s=zU.sync(t.command,{path:r[NU({env:r})],pathExt:e?cx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=cx.resolve(o?t.options.cwd:"",s)),s}function DU(t){return ux(t)||ux(t,!0)}dx.exports=DU});var fx=P((w8,Nh)=>{"use strict";var zh=/([()\][%!^"`<>&|;, *?])/g;function LU(t){return t=t.replace(zh,"^$1"),t}function jU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(zh,"^$1"),e&&(t=t.replace(zh,"^$1")),t}Nh.exports.command=LU;Nh.exports.argument=jU});var hx=P((b8,px)=>{"use strict";px.exports=/^#!(.*)/});var gx=P((R8,mx)=>{"use strict";var FU=hx();mx.exports=(t="")=>{let e=t.match(FU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var vx=P((C8,yx)=>{"use strict";var Dh=Rr("fs"),UU=gx();function qU(t){let r=Buffer.alloc(150),n;try{n=Dh.openSync(t,"r"),Dh.readSync(n,r,0,150,0),Dh.closeSync(n)}catch{}return UU(r.toString())}yx.exports=qU});var bx=P((P8,wx)=>{"use strict";var HU=Rr("path"),_x=lx(),Sx=fx(),GU=vx(),ZU=process.platform==="win32",BU=/\.(?:com|exe)$/i,WU=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function VU(t){t.file=_x(t);let e=t.file&&GU(t.file);return e?(t.args.unshift(t.file),t.command=e,_x(t)):t.file}function KU(t){if(!ZU)return t;let e=VU(t),r=!BU.test(e);if(t.options.forceShell||r){let n=WU.test(e);t.command=HU.normalize(t.command),t.command=Sx.command(t.command),t.args=t.args.map(i=>Sx.argument(i,n));let o=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${o}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function JU(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:KU(n)}wx.exports=JU});var Px=P((x8,Cx)=>{"use strict";var Lh=process.platform==="win32";function jh(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function YU(t,e){if(!Lh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Rx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Rx(t,e){return Lh&&t===1&&!e.file?jh(e.original,"spawn"):null}function XU(t,e){return Lh&&t===1&&!e.file?jh(e.original,"spawnSync"):null}Cx.exports={hookChildProcess:YU,verifyENOENT:Rx,verifyENOENTSync:XU,notFoundError:jh}});var Ex=P((k8,Vo)=>{"use strict";var xx=Rr("child_process"),Fh=bx(),Uh=Px();function kx(t,e,r){let n=Fh(t,e,r),o=xx.spawn(n.command,n.args,n.options);return Uh.hookChildProcess(o,n),o}function QU(t,e,r){let n=Fh(t,e,r),o=xx.spawnSync(n.command,n.args,n.options);return o.error=o.error||Uh.verifyENOENTSync(o.status,n),o}Vo.exports=kx;Vo.exports.spawn=kx;Vo.exports.sync=QU;Vo.exports._parse=Fh;Vo.exports._enoent=Uh});var Ox=P(Hh=>{"use strict";var Mx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,oq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,$x=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,iq=/\\([\u000b\u0020-\u00ff])/g,sq=/([\\"])/g,Ix=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Hh.format=aq;Hh.parse=cq;function aq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Ix.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var o,i=Object.keys(e).sort(),s=0;s<i.length;s++){if(o=i[s],!$x.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+dq(e[o])}return n}function cq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?uq(t):t;if(typeof e!="string")throw new TypeError("argument string is required to be a string");var r=e.indexOf(";"),n=r!==-1?e.slice(0,r).trim():e.trim();if(!Ix.test(n))throw new TypeError("invalid media type");var o=new lq(n.toLowerCase());if(r!==-1){var i,s,a;for(Mx.lastIndex=r;s=Mx.exec(e);){if(s.index!==r)throw new TypeError("invalid parameter format");r+=s[0].length,i=s[1].toLowerCase(),a=s[2],a.charCodeAt(0)===34&&(a=a.slice(1,-1),a.indexOf("\\")!==-1&&(a=a.replace(iq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function uq(t){var e;if(typeof t.getHeader=="function"?e=t.getHeader("content-type"):typeof t.headers=="object"&&(e=t.headers&&t.headers["content-type"]),typeof e!="string")throw new TypeError("content-type header is missing from object");return e}function dq(t){var e=String(t);if($x.test(e))return e;if(e.length>0&&!oq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(sq,"\\$1")+'"'}function lq(t){this.parameters=Object.create(null),this.type=t}});import{logger as Y2}from"@hermes/logger";import{logger as OH}from"@hermes/logger";var hT="mcp-auth";function Se(t,e=t.ui){if(!e)return;let r=0;for(let n of t.servers.values())n.status==="auth_required"&&r++;e.setStatus(hT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as aH}from"@augmentcode/auggie-v2";import{logger as cH}from"@hermes/logger";import{logger as GT}from"@hermes/logger";import{logger as gT}from"@hermes/logger";function mT(t,e,r){let n=r?.get(t.name);return n!==void 0?n.host===t&&n.owner.kind==="plugin":e?.get(t.name)===t}function Cr(t,e,r){let n=r?.get(t.name);if(n?.host===t)return n.owner.kind;let o=t.config;return o?.vfsSource!==void 0?"vfs":o?.registrySource!==void 0?"registry":mT(t,e,r)?"plugin":"local"}function yT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Nm=gT.child({prefix:"pi-mcp"}),vT="augment:mcp-status-report";function ft(t,e,r){let n=t.servers.get(e),o=n?.hostedCredentialProvenance;if(o?.kind==="accepted"&&o.hostedAccessTokenOnly===!0)return{serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain};let i=n?.targetCredentialProvenance?n.targetCredentialProvenance.credential:t.credentialRevisions?.get(e);return{serverGeneration:t.serverGenerations?.get(e)??0,mcpConfigId:r??n?.config.id,credentialRevision:i?.revision,credentialRevisionDomain:i?.domain}}function oi(t,e,r,n){let o=ft(t,e);return o.serverGeneration!==n.serverGeneration||o.mcpConfigId!==n.mcpConfigId||o.credentialRevision!==n.credentialRevision||o.credentialRevisionDomain!==n.credentialRevisionDomain?!1:(t.statusFailureCategories??=new Map,t.statusFailureCategories.set(e,{category:r,...n}),!0)}function st(t,e,r){if(r){let o=ft(t,e);if(o.serverGeneration!==r.serverGeneration||o.mcpConfigId!==r.mcpConfigId||o.credentialRevision!==r.credentialRevision||o.credentialRevisionDomain!==r.credentialRevisionDomain)return!1}let n=t.statusFailureCategories?.get(e);return t.statusFailureCategories?.delete(e),typeof n=="object"&&n.category==="auth_refresh_needed"&&t.authRefreshNeededReportKeys?.delete(e),!0}function _T(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=ft(t,e);if(r?.serverGeneration===n.serverGeneration&&r.mcpConfigId===n.mcpConfigId&&r.credentialRevision===n.credentialRevision&&r.credentialRevisionDomain===n.credentialRevisionDomain)return r.category;t.statusFailureCategories.delete(e),t.authRefreshNeededReportKeys?.delete(e)}var Qs=3e4;function ST(t){switch(t.status){case"success":return"connected";case"failed":case"auth_required":return"failed";case"initializing":{let e=t.connectStartedAt;return e!==void 0&&Date.now()-e>=Qs?"failed":void 0}default:return}}var Dm="authentication required",wT="Authentication refresh is pending in the backend; retry shortly.",bT="timed out connecting after 30s",RT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",CT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",PT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",xT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",kT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",ET="Server was not started: this session's Space policy does not allow it.",TT="Server was not started: its shared credential is not available to this session's identity.",AT="Server requires authentication \u2014 a same-named MCP server was connected in its place. Reconnect this server from the session MCP panel to use it instead.";function MT(t,e){let r=new Set;for(let a of t.servers.values())a.config.id!==void 0&&r.add(a.config.id);let n=new Set(e.map(a=>a.mcpConfigId).filter(a=>a!==void 0)),o=new Set(e.map(a=>a.name)),i=new Set(e.filter(a=>a.mcpConfigId===void 0).map(a=>a.name)),s=a=>t.registryConfigNamesById.get(a)??a;for(let a of t.failedAddConfigIds){if(r.has(a)||n.has(a))continue;let c=s(a);n.add(a),o.add(c),e.push({name:c,source:"registry",status:"failed",failureCategory:"configuration",errorMessage:t.nameCollisionAddConfigIds.has(a)?CT:RT,mcpConfigId:a,dynamicallyAdded:!0})}for(let a of t.selectedRegistryConfigIds??[]){if(r.has(a)||n.has(a)||t.sessionRemovedConfigIds.has(a))continue;let c=s(a);i.has(c)||(n.add(a),e.push({name:c,source:"registry",status:"failed",...IT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}$T({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function $T(t){let{state:e,servers:r,liveConfigIds:n,reportedConfigIds:o,reportedNames:i,idlessReportedNames:s}=t;for(let[a,c]of e.oauthFailureCategoriesByConfigId??[]){if(n.has(a)||o.has(a)||e.sessionRemovedConfigIds.has(a))continue;let u=jm(e,a);if(u===void 0)continue;let d=e.registryConfigNamesById.get(a)??c.serverName;s.has(d)||(o.add(a),r.push({name:d,source:"registry",status:"failed",...u,mcpConfigId:a}),i.add(d))}}function Lm(t,e){let r=new Map;for(let[n,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let i=o;typeof i.category=="string"&&typeof i.config_id=="string"&&i.config_id!==""&&r.set(i.config_id,{category:i.category,serverName:n})}t.oauthFailureCategoriesByConfigId=r}function jm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:kT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:ET,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:TT,failureCategory:"share_identity_excluded"};default:return}}function IT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:AT,failureCategory:"auth_terminal"};let i=jm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?xT:PT,failureCategory:"configuration"}}function OT(t,e){return e!==void 0?e.isAuthError?Dm:e.error:t.status==="initializing"?bT:t.lastError??(t.status==="auth_required"?Dm:void 0)}function Fm(t,e){if(t.targetCredentialProvenance)return t.targetCredentialProvenance.credential;let r=e.statusFailureCategories?.get(t.name);return typeof r=="object"?{revision:r.credentialRevision,domain:r.credentialRevisionDomain}:e.credentialRevisions?.get(t.name)}function zT(t,e,r){if(Fm(t,e)?.domain?.startsWith("recipient:"))return ft(e,t.name).serverGeneration;let n=e.statusFailureCategories?.get(t.name);return r&&typeof n=="object"?n.serverGeneration:void 0}function NT(t,e){let r=ST(t);if(r===void 0)return;let n=_T(e,t.name),o=r==="connected"?yT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:Cr(t,e.pluginServerHosts,e.hostLeases),status:r,transport:t.config.type,tools:t.suppressesProviderDiagnostics?[]:t.tools.map(u=>u.name)},s=t.config.id;s!==void 0&&(i.mcpConfigId=s,e.dynamicallyAddedConfigIds.has(s)&&(i.dynamicallyAdded=!0));let a=Fm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=zT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?wT:OT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function DT(t){let e=[];for(let r of t.servers.values()){let n=NT(r,t);n!==void 0&&e.push(n)}return MT(t,e),e}function D(t,e){try{let r=DT(e),n=JSON.stringify(r);if(n===e.lastStatusReport)return;e.lastStatusReport=n,e.statusHostGeneration??=1,e.statusReportSequence=(e.statusReportSequence??0)+1;let o={servers:r,observedAtMs:Date.now(),hostGeneration:e.statusHostGeneration,reportSequence:e.statusReportSequence};t.events.emit(vT,o),Nm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Nm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var ea={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function LT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function ii(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function si(t,e){return t.kind===e.kind&&t.identity===e.identity}function Um(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function Hu(t,e){let r=LT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ta(t,e,r){if(r.kind==="registry"){ii(t).set(e,{kind:"domain",domain:r.identity});return}ii(t).set(e,{kind:"blocked"})}function Gu(t,e,r){r&&t.servers.get(e)===r&&t.servers.delete(e),r&&t.pluginServerHosts.get(e)===r&&(t.pluginServerHosts.delete(e),t.pluginServerNames.delete(e))}function Pr(t,e){return t.registrySource!==void 0?{kind:"registry",identity:`user:${t.id??t.name}`}:t.vfsSource!==void 0?{kind:"vfs",identity:t.id??t.name}:{kind:e??"local",identity:t.id??t.name}}function Q(t,e,r){let n=qt(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Pr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:Hu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ta(t,e,a),c}function qm(t){let{state:e,name:r,host:n}=t,o=qt(e),i=o.get(r);if(!i||i.host!==n||i.owner.kind!=="local"||e.servers.get(r)!==n)return;let s={owner:{kind:"plugin",identity:n.config.id??r},revision:Hu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ta(e,r,s.owner),s}function ai(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=qt(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=ea[n.kind]>ea[a.owner.kind],f=ea[n.kind]===ea[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Um(a):void 0;Gu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Hu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ta(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Zu(t){if(!t)return;let e=await t.teardown;if(e.status==="failed")throw e.error instanceof Error?e.error:new Error(String(e.error))}function _e(t){let{state:e,name:r,retirement:n,result:o}=t;if(n.settled)return!1;n.settled=!0,n.result=o;let s=qt(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,ii(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ra(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);return!s||s.revision!==o||!si(s.owner,n)||s.host!==void 0||s.retirement!==void 0?!1:(s.host=i,e.servers.set(r,i),n.kind==="plugin"?(e.pluginServerNames.add(r),e.pluginServerHosts.set(r,i)):(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),!0)}function at(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);if(!s||s.revision!==o||!si(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Um(s);if(a)return Gu(e,r,i),s.host=void 0,s.retirement=a,a}function Hm(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=qt(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!si(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!si(s.owner,n)||s.revision!==o.incumbent.revision?(ta(e,r,s.owner),!0):(i.delete(r),ii(e).set(r,{kind:"blocked"}),!0))}function xe(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e),a=s.get(r);return!a||a.revision!==o||!si(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Gu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),ii(e).set(r,{kind:"blocked"}),!0)}function N(t,e){return qt(t).get(e)}function Bu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Gm(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function xr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&Gm(t.url)===Gm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Kn=class{_tokens=new Map;_authRequired=new Set;_retiredCredentials=new Set;_credentialRetirementGenerations=new Map;_credentialIdentities=new Map;get(e){return this._tokens.get(e)}commit(e,r,n){this._tokens.set(e,r),this._authRequired.delete(e),this._retiredCredentials.delete(e),n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e)}hasCredentialIdentity(e,r){return xr(this._credentialIdentities.get(e),r)}reconcileCredentialIdentity(e,r,n){return this._tokens.get(e)!==r||this._retiredCredentials.has(e)?!1:(n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e),!0)}set(e,r,n){this.commit(e,r,n)}persist(e,r,n){return Promise.resolve(void 0)}captureAuthenticatedIdentityVersion(e){return Promise.resolve(void 0)}captureRefreshIdentityVersion(e){return Promise.resolve(void 0)}persistAuthenticated(e,r,n,o){return this.persist(e,r,n)}persistRefresh(e,r,n,o){return this.persist(e,r,n)}restoreAfterSupersededAuthentication(e,r,n,o,i,s){return this.persist(e,n,s)}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async setAndPersist(e,r,n){await this.persist(e,r,n),this.set(e,r,n)}snapshot(){return{tokens:new Map(this._tokens),authRequired:new Set(this._authRequired),retiredCredentials:new Set(this._retiredCredentials),credentialRetirementGenerations:new Map(this._credentialRetirementGenerations),credentialIdentities:new Map([...this._credentialIdentities].map(([e,r])=>[e,{...r}]))}}seed(e){for(let[r,n]of e.tokens)this._tokens.set(r,n);for(let r of e.authRequired)this._authRequired.add(r);for(let r of e.retiredCredentials??[])this._retiredCredentials.add(r);for(let[r,n]of e.credentialRetirementGenerations??[])this._credentialRetirementGenerations.set(r,n);for(let[r,n]of e.credentialIdentities??[])this._credentialIdentities.set(r,{...n})}delete(e,r){this._tokens.delete(e),this._credentialIdentities.delete(e)}clearLocalCredential(e){this._tokens.delete(e),this._credentialIdentities.delete(e),this._authRequired.delete(e),this._retiredCredentials.add(e),this._credentialRetirementGenerations.set(e,(this._credentialRetirementGenerations.get(e)??0)+1)}retireCredential(e,r,n){return n?.preserveNameState||this.clearLocalCredential(e),Promise.resolve()}credentialRetirementGeneration(e){return this._credentialRetirementGenerations.get(e)??0}isCredentialRetired(e){return this._retiredCredentials.has(e)}markAuthRequired(e){this._authRequired.add(e)}isAuthRequired(e){return this._authRequired.has(e)}clearAuthRequired(e){this._authRequired.delete(e)}};function ui(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Wu(t){try{return new URL(t).toString()}catch{return t}}function ci(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Wu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Ht(t,e){return ci(e.config)}function pt(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Wu(t.url)===Wu(e.url)}function Vu(t,e){let r=ci(t),n=ci(e);return!r||!n?pt(t,e):xr(r,n)}function Ku(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function jT(t){let{state:e,name:r,expectedRegistryConfigId:n,expectedConfig:o,currentConfig:i}=t;if(o)return o;let s=n?e.registryCredentialConfigsById?.get(n):void 0;if(s?.name===r)return s;let a=e.registryCredentialConfigs?.get(r);if(a?.id===n)return a;if(i?.id===n)return i}function FT(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}=t;return e?r?!pt(e,r):n===void 0?!1:e.id===void 0?e.registrySource===void 0:e.id!==n:!1}function Zm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Ku(e,r):n!==void 0&&e!==n}function Bm(t,e,r){return r&&e!==void 0&&t!==void 0&&Ku(t,e)}function UT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Ku(i,n))}function Wm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(FT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Zm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Zm({identity:s.domain,...l})?!0:UT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function qT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ci(r);if(n!==void 0)return{id:n,name:e}}function HT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ci(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function Vm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=jT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:a}),u=c?.id??r,d=c?.registrySource!==void 0||c===void 0&&r!==void 0,l=c?.registrySource===void 0?void 0:`user:${c.id??c.name}`,f=Wm({currentConfig:a,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:i,currentDomain:s}),p=Bm(i,u,d),h=Bm(s,u,d),m=!f,g=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,b=f&&!(m||p||h||g);if(o==="durable"){let C=qT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,C,{preserveNameState:b})}let _=Wm({currentConfig:t.servers?.get(e)?.config,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:t.oauthCredentialDomains?.get(e),currentDomain:t.credentialRevisions?.get(e)?.domain}),R=m&&!_,w=!1;return t.equalRevisionRebindDomains?.delete(e),(R||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),w=!0),(R||h)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),w=!0),R&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),HT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:R,retiredConfig:c}),w&&(ui(t,e),st(t,e),t.authRefreshNeededReportKeys?.delete(e)),R}function ht(t,e,r,n){return Vm(t,e,r,n,"durable")}function di(t,e,r,n){return Vm(t,e,r,n,"session")}function na(t){let e=[];if(Object.hasOwn(t,"credential_owner_domain")&&e.push(t.credential_owner_domain),Object.hasOwn(t,"credentialOwnerDomain")&&e.push(t.credentialOwnerDomain),e.length===0)return{kind:"absent"};if(e.some(n=>typeof n!="string"||!/^user:.+/.test(n)))return{kind:"invalid"};let r=e[0];return e.every(n=>n===r)?{kind:"valid",ownerDomain:r}:{kind:"invalid"}}function kr(t,e){let r=t.replace(/^0+(?=\d)/,""),n=e.replace(/^0+(?=\d)/,"");return r.length!==n.length?r.length<n.length?-1:1:r===n?0:r<n?-1:1}var Km="augment:mcp-oauth-credentials",Jm=300*1e3,ZT=256,Ju=GT.child({prefix:"pi-mcp"}),kt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function qe(t){return`user:${t}`}function cn(t){let{state:e,name:r,revision:n}=t;if(e.credentialRevisions??=new Map,e.oauthCredentialRevisions??=new Map,e.oauthCredentialDomains??=new Map,e.hostedCredentialOwnership?.delete(r),n===void 0){e.credentialRevisions.delete(r),e.oauthCredentialDomains.delete(r),e.authRefreshNeededReportKeys?.delete(r);return}let o={...n,revision:n.revision.replace(/^0+(?=\d)/,"")},i=e.credentialRevisions.get(r);e.credentialRevisions.set(r,o),(i?.revision!==o.revision||i?.domain!==o.domain)&&e.authRefreshNeededReportKeys?.delete(r);let s=e.oauthCredentialRevisions.get(o.domain);(s===void 0||kr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Er(t){let e=t.indexOf(":");if(e<=0||e===t.length-1)return t;let r=t.slice(0,e);return r!=="private"&&r!=="shared"&&r!=="recipient"&&r!=="user"&&r!=="tenant"?t:qe(t.slice(e+1))}function ct(t){return/^secret:(private|shared):.+/.test(t)}function un(t){return t.ownerDomain??Er(t.domain)}function Ym(t,e,r){let n=qe(e);return r!==void 0?r===n:ct(t)||Er(t)===n}function BT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function WT(t,e,r){return{acceptedDomain:t.oauthCredentialDomains.get(e),credentialRevision:t.credentialRevisions.get(e),expectedDomain:t.expectedCredentialDomains.get(e),failure:t.statusFailureCategories.get(e),restoreFailure:r}}function VT(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function KT(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&BT(t.credentialRevisions.get(e),r.credentialRevision)&&VT(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function JT(t){return JSON.stringify({id:t.id,name:t.name,type:t.type,url:t.type==="stdio"?void 0:t.url,auth:t.type==="stdio"?void 0:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource})}function YT(t){let{state:e,config:r,domain:n}=t,o=r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id);return!o||e.sessionRemovedConfigIds.has(r.id??"")||!pt(o,r)?!1:o.name!==r.name||e.equalRevisionRebindDomains.get(r.name)===n}function Tr(t){t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.stagedOAuthCredentials??=new Map,t.equalRevisionRebindDomains??=new Map,t.bootOAuthCredentialBuffer??=new Map}function or(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function Xm(t){Tr(t);let e=new Set([...t.registryCredentialConfigs.keys(),...t.registryConfigNamesById.values(),...t.oauthCredentialDomains.keys(),...t.credentialRevisions.keys(),...t.preservedCredentialIdentities?.keys()??[],...[...t.bootOAuthCredentialBuffer?.values()??[]].map(n=>n.serverName),...[...t.registryCredentialIntents.values()].flatMap(n=>n.configName?[n.configName]:[])]);for(let[n,o]of t.hostLeases)o.owner.kind==="registry"&&e.add(n);for(let n of e){let o=t.hostLeases.get(n);if(o&&o.owner.kind!=="registry")continue;t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.hostedCredentialOwnership?.delete(n),t.preservedCredentialIdentities?.delete(n),t.expectedCredentialDomains.set(n,{kind:"blocked"}),t.authRefreshNeededReportKeys?.delete(n)}let r=new Set(t.oauthCredentialDomains.values());for(let n of t.oauthCredentialRevisions.keys())r.has(n)||t.oauthCredentialRevisions.delete(n);for(let n of t.bootOAuthCredentialBuffer?.keys()??[])or(t,n);t.registryCredentialIntents.clear(),t.pendingRegistryCredentialDomains.clear(),t.stagedOAuthCredentials.clear(),t.equalRevisionRebindDomains.clear(),t.registryCredentialConfigs.clear(),t.registryCredentialConfigsById.clear(),t.registryConfigNamesById.clear(),t.mcpRestartState.clear()}function Qm(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Jm)&&or(t,n)}function XT(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function eg(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;Tr(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();Qm(e,a);let c=un(n),u=ct(c)?`${c}\0${r}`:c,d=s.get(u),l=d?.credential.credential_revision??d?.credential.credentialRevision;if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=ZT&&XT(e),or(e,u);let f={serverName:r,credential:o,suppressReconnect:i,insertedAtMs:a,connectionEpoch:e.mcpConnectionEpoch,expiryTimer:void 0};s.set(u,f),f.expiryTimer=setTimeout(()=>{s.get(u)===f&&or(e,u)},Jm),f.expiryTimer.unref?.(),Ju.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function QT(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Je(t){let{state:e,domain:r,epoch:n,preserveFence:o=!1,preserveBootCredential:i=!1}=t;Tr(e);let s=e.registryCredentialIntents.get(r);if(!(n!==void 0&&s?.epoch!==n)){if(!o&&s?.configName){let a=e.expectedCredentialDomains.get(s.configName);a?.kind==="domain"&&a.domain===r&&e.expectedCredentialDomains.set(s.configName,{kind:"blocked"})}e.pendingRegistryCredentialDomains.delete(r),e.registryCredentialIntents.delete(r),e.stagedOAuthCredentials.delete(r),i||or(e,r)}}function oa(t){let{state:e,domain:r,forceNew:n=!1}=t;Tr(e);let o=e.registryCredentialIntents.get(r);if(o&&!n)return e.pendingRegistryCredentialDomains.add(r),{domain:r,...o};let i=o?.configFingerprint===void 0?e.stagedOAuthCredentials.get(r):void 0;o&&Je({state:e,domain:r,epoch:o.epoch});let s={epoch:QT(e,r),configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0};return e.registryCredentialIntents.set(r,s),i!==void 0&&i.configFingerprint===void 0&&e.stagedOAuthCredentials.set(r,{...i,intentEpoch:s.epoch}),e.pendingRegistryCredentialDomains.add(r),{domain:r,...s}}function tg(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Je({state:t,domain:r,epoch:n.epoch});for(let r of t.pendingRegistryCredentialDomains)e.has(r)||(t.pendingRegistryCredentialDomains.delete(r),t.stagedOAuthCredentials.delete(r));for(let r of t.stagedOAuthCredentials.keys())e.has(r)||t.stagedOAuthCredentials.delete(r);for(let r of t.bootOAuthCredentialBuffer?.keys()??[]){let n=r.split("\0",1)[0];!e.has(r)&&!ct(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);oa({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function eA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||N(e,r.name)?.owner.kind==="local")return;Tr(e);let n=qe(r.id),o=JT(r),i=YT({state:e,config:r,domain:n});i||e.equalRevisionRebindDomains.delete(r.name);let s=e.registryCredentialIntents.get(n);if(s&&s.configFingerprint===void 0){s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i;let a=e.stagedOAuthCredentials.get(n);a?.intentEpoch===s.epoch&&(a.configFingerprint=o)}else s&&s.configFingerprint!==o?(Je({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=oa({state:e,domain:n});if(s=e.registryCredentialIntents.get(n),!s||s.epoch!==a.epoch)return;s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i}return e.pendingRegistryCredentialDomains.add(n),tA({state:e,config:r,domain:n}),{domain:n,...s}}function rg(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=un(r),s=e.registryCredentialIntents.get(i);if(!s||!e.pendingRegistryCredentialDomains.has(i))return;let a=e.oauthCredentialRevisions.get(r.domain),c=e.stagedOAuthCredentials.get(i),d=c?.intentEpoch===s.epoch&&c.configFingerprint===s.configFingerprint?c.credential.credential_revision??c.credential.credentialRevision:void 0,l=a===void 0?void 0:kr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&kr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function tA(t){let{state:e,config:r,domain:n}=t,o=e.oauthCredentialDomains.get(r.name);e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:n});let i=e.credentialRevisions.get(r.name);(o===void 0||i?.ownerDomain!==void 0&&i.ownerDomain!==n||i?.ownerDomain===void 0&&!ct(o)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),st(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function rA(t){let{state:e,config:r,pi:n,intent:o}=t,i=e.stagedOAuthCredentials.get(o.domain);if(!i||i.intentEpoch!==o.epoch||i.configFingerprint!==o.configFingerprint||i.requiresEqualRevisionRebind&&!o.allowEqualRevisionRebind)return;e.stagedOAuthCredentials.delete(o.domain),i.requiresEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),Je({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(Km,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function nA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();Qm(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return or(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&ct(s.split("\0",1)[0]))return or(e,s),a}function oA(t){let{config:e,pi:r,buffered:n}=t;Ju.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Ju.info("MCP OAuth boot credential replayed",{hasRegistryConfigId:e.id!==void 0,registryOwned:e.registrySource!==void 0,visibility:"public"});let o={[e.name]:n.credential};r.events.emit(Km,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function iA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(pt(n,r)){if(n.name===r.name)return;await di(e,n.name,n.id,n),e.tokens.clearLocalCredential(n.name),e.preservedCredentialIdentities?.delete(n.name),e.expectedCredentialDomains.set(n.name,{kind:"blocked"}),e.registryCredentialConfigs.delete(n.name);return}await ht(e,r.name,n.id,n);let o=e.expectedCredentialDomains.get(r.name);return o?.kind==="blocked"?o:void 0}function sA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=KT(e,r.name,o);Je({state:e,domain:n.domain,epoch:n.epoch,preserveFence:!c}),c&&(e.expectedCredentialDomains.set(r.name,{kind:"blocked"}),o.restoreFailure!==void 0&&e.statusFailureCategories.set(r.name,o.restoreFailure))}let a=`Registry credential replacement failed for ${r.name}: ${i instanceof Error?i.message:String(i)}`;return e.diagnostics.push({server:r.name,message:a,origin:"registry"}),new kt(a)}async function aA(t){let{state:e,config:r,pi:n,intent:o,previousConfig:i,rollbackSnapshot:s}=t,a=e.registryCredentialIntents.get(o.domain);if(a?.epoch!==o.epoch||a.configFingerprint!==o.configFingerprint)return!1;e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let c;try{c=await iA({state:e,config:r,previousConfig:i})}catch(h){throw sA({state:e,config:r,intent:o,rollbackSnapshot:s,cause:h})}let u=e.registryCredentialIntents.get(o.domain);c&&u?.epoch===o.epoch&&e.expectedCredentialDomains.get(r.name)===c&&e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let d=e.expectedCredentialDomains.get(r.name);if(u?.epoch!==o.epoch||u.configFingerprint!==o.configFingerprint||d?.kind!=="domain"||d.domain!==o.domain)return Je({state:e,domain:o.domain,epoch:o.epoch}),!1;let l=r.id;if(l===void 0)return!1;let f={...r};e.registryConfigNamesById.set(l,r.name),e.registryCredentialConfigs.set(r.name,f),e.registryCredentialConfigsById.set(l,f),o.allowEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),rA({state:e,config:r,pi:n,intent:o});let p=nA({state:e,domain:o.domain,serverName:r.name});return Je({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&oA({config:r,pi:n,buffered:p}),!0}function Ar(t){let{state:e,config:r,pi:n}=t;if(r.id===void 0||r.registrySource===void 0)return Promise.resolve(!0);let o=e.statusFailureCategories.get(r.name),i=eA({state:e,config:r});if(!i)return Promise.resolve(!1);let s=e.registryCredentialIntents.get(i.domain);if(!s||s.epoch!==i.epoch)return Promise.resolve(!1);if(s.finalization)return s.finalization;let a=WT(e,r.name,o),u=(e.registryCredentialFinalizationsByName.get(r.name)??Promise.resolve(!0)).catch(()=>!1).then(()=>{let d=e.registryCredentialConfigs.get(r.name)??(r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id))??e.servers.get(r.name)?.config;return aA({state:e,config:r,pi:n,intent:i,previousConfig:d,rollbackSnapshot:a})});return e.registryCredentialFinalizationsByName.set(r.name,u),s.finalization=u,u.then(()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)},()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)}),u}import{SettingsManager as SA}from"@augmentcode/auggie-v2";import{homedir as ng}from"node:os";import{sep as cA}from"node:path";var Yu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},uA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,dA=/\\\$\{/g,lA=new Set(["workspaceFolder","augmentToken"]),og="${workspaceFolder}";function ig(t,e){return t.includes(og)?t.split(og).join(e):t}function sg(t,e){return t.includes("${")?t.replace(uA,(n,o,i)=>{if(lA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Yu(o)}).replace(dA,"${"):t}function fA(t){return t.startsWith("~")?t==="~"?ng():t.startsWith("~/")||t.startsWith(`~${cA}`)?ng()+t.slice(1):t:t}function Xu(t,e,r){return fA(sg(ig(t,e),r))}function Jn(t,e,r){return sg(ig(t,e),r)}function ag(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Jn(i,e,r);return n}var pA="$augment-";function hA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(pA)?i:Jn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Jn(t.url,e,r),headers:hA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:Xu(t.command,e,r),args:t.args.map(n=>Jn(n,e,r)),env:t.env?ag(t.env,e,r):void 0,cwd:t.cwd?Xu(t.cwd,e,r):e}}import{readFileSync as gA}from"node:fs";var Et=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Yn(t){if(t.type==="stdio"||t.type==="http"||t.type==="sse")return t.type;if(t.url)return"http";if(t.command)return"stdio"}function mA(t){if(!t)return;let e={};for(let[r,n]of Object.entries(t))n!=null&&(e[r]=String(n));return Object.keys(e).length>0?e:void 0}function Xn(t,e){let r=Yn(e);if(!r)throw new Et(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new Et(`MCP server "${t}" has type "${r}" but no 'url' property`);return{type:r,name:e.name??t,disabled:e.disabled,url:e.url,headers:e.headers,auth:e.auth==="oauth"?"oauth":void 0,timeoutMs:e.timeoutMs}}let n=e.command;if(!n)throw new Et(`MCP server "${t}" has type "stdio" but no 'command' property`);let o=(e.args??[]).map(a=>String(a)),i=e.useShellInterpolation??!0,s=i&&o.length>0?`${n} ${o.join(" ")}`:n;return{type:"stdio",name:e.name??t,disabled:e.disabled,command:s,args:i?[]:o,env:mA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var dg=t=>gA(t,"utf8");function ia(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function cg(t){return ia(t)&&("command"in t||"url"in t)}function ed(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function ug(t,e){return ed(t.name)??e}function Qu(t,e){let r=Yn(t);if(r==="http"||r==="sse")return ed(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return ed(t.name,t.title,n)??e}function yA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[Qu(n,String(r)),n]});if(ia(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[Qu(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ia(n))return Object.entries(n).map(([o,i])=>{let s=i;return[ug(s,o),s]})}if(cg(t)){let r=t;return[[Qu(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(cg))return Object.entries(t).map(([r,n])=>{if(!ia(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[ug(o,r),o]})}throw new Error("unrecognized MCP config JSON shape (expected an array of servers, a { servers|mcpServers } array/record, a single server object, or a Claude-Desktop-style record)")}function td(t){return t instanceof Error?t.message:String(t)}function vA(t,e,r,n,o){if(r)return e;try{return n(t)}catch(i){o.push({message:`Failed to read --mcp-config file "${t}": ${td(i)}`});return}}function _A(t,e,r){let n=t.trim();if(n.length===0)return[];let o=n.startsWith("[")||n.startsWith("{"),i=o?"inline JSON":`file "${t}"`,s=vA(t,n,o,e,r);if(s===void 0)return[];let a;try{a=JSON.parse(s)}catch(c){return r.push({message:`Failed to parse --mcp-config ${i}: ${td(c)}`}),[]}try{return yA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${td(c)}`}),[]}}function rd(t,e=dg){let r={},n=[];for(let o of t)for(let[i,s]of _A(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function nd(t,e=dg){return!t||t.length===0?new Set:new Set(Object.keys(rd(t,e).servers))}var wA=["global","project","local","managed"];function bA(t,e){switch(e){case"global":return t.getGlobalSettings().mcpServers;case"project":return t.getProjectSettings().mcpServers;case"local":return t.getLocalSettings().mcpServers;case"managed":return t.getManagedSettings().mcpServers}}function RA(t){let e={};for(let r of t)if(r)for(let[n,o]of Object.entries(r)){if(o===null){delete e[n];continue}o&&(e[n]=structuredClone(o))}return e}function CA(t,e,r){let n=rd(t);r.push(...n.diagnostics);let o=n.servers;if(!e||e.size===0)return o;for(let[i,s]of Object.entries(o)){let a=e.get(i);a!==void 0&&(o[i]={...s,disabled:a})}return o}function PA(t,e,r){let n=SA.create(t,e);for(let{scope:o,error:i}of n.drainErrors()){let s=i.message.includes("parse settings JSON")?"parse":"read";r.push({message:`Failed to ${s} ${o} settings.json: ${i.message}`})}return RA(wA.map(o=>bA(n,o)))}function Qn(t,e,r,n){let o=[],i=r&&r.length>0?CA(r,n,o):PA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=Xn(a,c);s.push(u.type==="stdio"?Zt(u,t):Gt(u,t))}catch(u){let d=u instanceof Et?u.message:`Failed to normalize MCP server "${a}": ${u instanceof Error?u.message:String(u)}`;o.push({server:a,message:d})}return{servers:s,diagnostics:o}}import{setToolSource as mg}from"@augmentcode/auggie-v2";import{logger as NA}from"@hermes/logger";import{Type as DA}from"@sinclair/typebox";var sa=Symbol.for("__pi_mcp_state__");function xA(t,e){return t.id!==e.id||t.type!==e.type||t.type==="stdio"||e.type==="stdio"||t.auth!=="oauth"||e.auth!=="oauth"?!1:t.url===e.url&&t.auth===e.auth}function kA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function EA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&xA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&kA(a,e)}),i=t.expectedCredentialDomains.get(r.name);if(!(!o||t.sessionRemovedConfigIds.has(e)||t.oauthCredentialDomains.has(r.name)||i?.kind!=="domain"||i.domain!==`user:${e}`)){t.equalRevisionRebindDomains.set(r.name,i.domain);for(let s of n)t.tokens.clearLocalCredential(s),t.oauthCredentialDomains.delete(s),t.credentialRevisions.delete(s),t.hostedCredentialOwnership?.delete(s),t.preservedCredentialIdentities?.delete(s),t.statusFailureCategories?.delete(s),t.authRefreshNeededReportKeys?.delete(s),t.expectedCredentialDomains.set(s,{kind:"blocked"})}}}function TA(t){t.dynamicallyAddedConfigIds??=new Set,t.failedAddConfigIds??=new Set,t.nameCollisionAddConfigIds??=new Set,t.authFallbackDisplacedConfigIds??=new Set,t.sessionRemovedConfigIds??=new Set,t.registryConfigNamesById??=new Map,t.registryCredentialConfigs??=new Map,t.registryCredentialConfigsById??=new Map,t.toolSearchLatched??=!1,t.sessionMcpConfigDisabledOverrides??=new Map,t.reconnects??=new Map,t.missingHostRemovals??=new Map,t.missingHostRemovalFences??=new Map,t.reconnectDesiredGenerations??=new Map,t.serverGenerations??=t.hostGenerations??new Map,t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map,t.credentialRevisions??=new Map,t.oauthCredentialRevisions??=new Map,t.oauthCredentialDomains??=new Map;let e=t.equalRevisionRebindDomains===void 0;t.equalRevisionRebindDomains??=new Map,t.preservedCredentialIdentities??=new Map,t.stagedOAuthCredentials??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.registryCredentialFinalizationsByName??=new Map;for(let r of t.pendingRegistryCredentialDomains)if(!t.registryCredentialIntents.has(r)){let n=(t.registryCredentialIntentEpochs.get(r)??0)+1;t.registryCredentialIntentEpochs.set(r,n),t.registryCredentialIntents.set(r,{epoch:n,configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0})}for(let r of t.registryCredentialIntents.values())r.allowEqualRevisionRebind??=!1;for(let[r,n]of t.stagedOAuthCredentials){let o=t.registryCredentialIntents.get(r);if(!o){t.stagedOAuthCredentials.delete(r);continue}let i=n;i.intentEpoch??=o.epoch,i.configFingerprint??=o.configFingerprint,i.requiresEqualRevisionRebind??=!1}t.statusHostGeneration??=1,t.statusReportSequence??=0,t.statusFailureCategories??=new Map,t.authRefreshNeededReportKeys??=new Map,t.hostedCredentialOwnership??=new Map,e&&EA(t),t.authenticationGeneration??=0,t.authenticatingServerName??=void 0,t.liveEditGenerations??=new Map,t.blockedVfsMcpNames??=new Set,t.pluginServerHosts||(t.pluginServerHosts=new Map),t.toolRegistrationsByPi??=new WeakMap,t.hostLeases??=new Map,t.hostLeaseRevisions??=new Map,t.expectedCredentialDomains??=new Map;for(let[r,n]of t.servers)n.config!==void 0&&Q(t,r,n);t.pluginReconcileQueue??=Promise.resolve(),t.mcpAttachDisabled??=!1,t.mcpAttachCloudSignaled??=!1,t.attachResolvers??=new Map,t.attachResultListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function li(t,e){for(;;){let r=t.missingHostRemovals.get(e);if(!r)return;try{await r.promise}catch{}if(t.missingHostRemovals.get(e)===r)return}}function eo(t){let{state:e,configId:r,generation:n}=t;e.attachmentCommandGenerations??=new Map,e.attachmentCommandInFlightGenerations??=new Map,e.attachmentCommandAppliedGenerations??=new Map;let o=e.attachmentCommandGenerations.get(r)??0;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o===0:n<o||n===e.attachmentCommandInFlightGenerations.get(r)||n===e.attachmentCommandAppliedGenerations.get(r)?!1:(e.attachmentCommandGenerations.set(r,n),e.attachmentCommandInFlightGenerations.set(r,n),!0)}function od(t){let{state:e,configId:r,generation:n}=t;typeof n!="number"||n<=0||(e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r),e.attachmentCommandGenerations?.get(r)===n&&(e.attachmentCommandAppliedGenerations??=new Map,e.attachmentCommandAppliedGenerations.set(r,n)))}function aa(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function ca(t){let{state:e,configId:r,generation:n,operation:o,wasApplied:i}=t;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o:o.then(s=>(i()?od({state:e,configId:r,generation:n}):aa({state:e,configId:r,generation:n}),s),s=>{throw aa({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[sa])return TA(t[sa]),t[sa];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Kn,refreshes:new Map,reconnects:new Map,missingHostRemovals:new Map,missingHostRemovalFences:new Map,reconnectDesiredGenerations:new Map,serverGenerations:new Map,configRevisions:new Map,configDesiredRevisions:new Map,configDesiredSources:new Map,credentialRevisions:new Map,oauthCredentialRevisions:new Map,oauthCredentialDomains:new Map,equalRevisionRebindDomains:new Map,preservedCredentialIdentities:new Map,stagedOAuthCredentials:new Map,bootOAuthCredentialBuffer:new Map,pendingRegistryCredentialDomains:new Set,registryCredentialIntents:new Map,registryCredentialIntentEpochs:new Map,registryCredentialFinalizationsByName:new Map,statusHostGeneration:1,statusReportSequence:0,statusFailureCategories:new Map,authRefreshNeededReportKeys:new Map,hostedCredentialOwnership:new Map,shouldProactivelyRefreshTokens:!0,backgroundRefreshIntervalId:void 0,credsListenerBound:!1,configIdsListenerBound:!1,registryGeneration:0,liveEditGenerations:new Map,attachmentCommandGenerations:new Map,attachmentCommandInFlightGenerations:new Map,attachmentCommandAppliedGenerations:new Map,mcpConfigsListenerBound:!1,embeddedRegistryConfigs:void 0,vfsListenerBound:!1,addServerListenerBound:!1,restartServerListenerBound:!1,removeServerListenerBound:!1,mcpRestartState:new Map,vfsGeneration:0,lastSuccessfulVfsMcpSignature:void 0,blockedVfsMcpNames:new Set,credentials:void 0,secretsClient:void 0,headerSecrets:{},headerSecretFailures:{},headerSecretsListenerBound:!1,featureFlagsListenerBound:!1,workspaceRoot:void 0,mcpConfigOverride:void 0,connectStarted:!1,reconnecting:!1,authenticating:!1,authenticationGeneration:0,authenticatingServerName:void 0,restartHistory:new Map,dynamicallyAddedConfigIds:new Set,failedAddConfigIds:new Set,nameCollisionAddConfigIds:new Set,authFallbackDisplacedConfigIds:new Set,sessionRemovedConfigIds:new Set,selectedRegistryConfigIds:void 0,registryConfigNamesById:new Map,oauthFailureCategoriesByConfigId:void 0,registryCredentialConfigs:new Map,registryCredentialConfigsById:new Map,lastStatusReport:void 0,diagnostics:[],pluginServerSource:void 0,pluginServerNames:new Set,pluginServerHosts:new Map,pluginReconcileQueue:Promise.resolve(),sessionPluginDisabledOverrides:new Map,sessionRegistryDisabledOverrides:new Map,sessionMcpConfigDisabledOverrides:new Map,currentLoad:void 0,ui:void 0,featureFlags:void 0,toolSearchLatched:!1,mcpCatalog:void 0,mcpAttachDisabled:!1,mcpAttachCloudSignaled:!1,catalogRefreshInFlight:void 0,attachResolvers:new Map,attachResultListenerBound:!1};return t[sa]=e,e}var lg=Symbol.for("__hermes_mcp_tool_registry__"),AA=Symbol.for("__hermes_mcp_extension_factory__");function id(){let t=globalThis;return t[lg]??=new Map,t[lg]}function fg(t){return id().get(t)}function Mr(t){id().set(t.name,t)}function to(t,e){let r=id();(e===void 0||r.get(t)===e)&&r.delete(t)}function pg(t){Reflect.set(t,AA,!0)}function ua(t,e,r,n){return r.includes(t)?n.includes(t)?`"${t}" is a built-in tool, not an MCP server. Call it directly.`:`Built-in tool "${t}" is not available (disabled).`:`MCP server "${t}" is not available (status: ${e??"unknown"}).`}function MA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function $A(t){let e=[];for(let r of t)r.type==="text"?e.push({type:"text",text:r.text}):e.push({type:"image",mimeType:r.mimeType,data:r.data});return e}function IA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
|
|
9
|
+
`).trim()}function sd(t,e,r){if(t.isError){let o=IA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=$A(t.content);if(n.length>0)return{content:n,details:void 0};if(t.rawItemCount>0)throw new Error(`MCP server "${e}" returned a result with no usable content (${t.rawItemCount} content item(s), none in a recognized shape). This may indicate the server failed to produce output (e.g. missing credentials).`);return{content:[{type:"text",text:`[MCP tool "${e}/${r}" returned no content]`}],details:void 0}}async function hg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ua(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=MA(t.params),o=await e.callTool(r,n,t.signal);return sd(o,t.serverName,r)}var OA=/[^a-zA-Z0-9_-]/g;function ad(t){return t.replace(OA,"_")}function zA(t,e){let r=ad(e),n=ad(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var $r=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=zA(this._serverName,e),n=this._map.get(r),o=n!==void 0&&n!==e;return n===void 0&&this._map.set(r,e),{namespaced:r,collision:o}}resolve(e){let r=this._map.get(e);if(r)return r;let n=`_${ad(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var da=NA.child({prefix:"pi-mcp"});function la(){return ee().toolRegistrationsByPi}function gg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=DA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){da.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}da.warn(`Skipping MCP tool "${r}/${n.name}": invalid input schema (${c instanceof Error?c.message:String(c)})`);return}let a=()=>ee().servers.get(r);return{name:i,label:n.name,description:n.description??"",parameters:s,execute:(c,u,d,l,f)=>hg({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d})}}function cd(t,e,r,n){if(e.ownerByToolName.get(n)!==r)return;let o=t.getActiveTools().includes(n),i=r.definitionsByName?.get(n);e.ownerByToolName.delete(n),t.unregisterTool(n),to(n,i),r.definitionsByName?.delete(n),LA(t,e,n,r,o)}function LA(t,e,r,n,o){let i=ee();for(let[s,a]of e.byServer){if(a===n||!a.registeredNames.has(r))continue;let c=i.servers.get(s);if(c===void 0||c!==a.host||c.status!=="success"||i.serverGenerations?.get(s)!==a.generation)continue;let u=new $r(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=gg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;mg(r,"mcp"),t.registerTool(p),Mr(p),a.definitionsByName??=new Map,a.definitionsByName.set(r,p),e.ownerByToolName.set(r,a),o?t.setActiveTools([...new Set([...t.getActiveTools(),r])]):t.setActiveTools(t.getActiveTools().filter(h=>h!==r));return}}}function jA(t,e){let r=la(),n=r.get(t);n||(n={byServer:new Map,ownerByToolName:new Map},r.set(t,n));let o=ee().serverGenerations?.get(e.name),i=n.byServer.get(e.name);if(i?.host===e&&i.generation===o)return{registration:i,replaced:!1};if(i)for(let a of i.registeredNames)cd(t,n,i,a);let s={generation:o,host:e,map:new $r(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function ud(t,e){let{registration:r,replaced:n}=jA(t,e),o=new Set(r.registeredNames),i=new $r(e.name);r.map=i,r.registeredNames.clear();let s=e.name,a=0,c=[];for(let d of e.listTools()){let{namespaced:l,collision:f}=i.put(d.name);if(f){let h=i.resolve(l),m=e.suppressesProviderDiagnostics?"MCP stdio tool name collision; provider diagnostics are suppressed. Only the first tool will be available.":`Tool name collision detected in MCP server "${s}": "${d.name}" and "${h}" both map to "${l}". Only the first tool will be available.`,g=ee();g.diagnostics.some(b=>b.server===s&&(b.message===m||b.message.includes(`both map to "${l}"`)))||(da.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=gg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(mg(l,"mcp"),t.registerTool(p),Mr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),la().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=la().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&cd(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&da.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function dd(t,e,r){let n=la().get(t);if(!n)return!1;let o=n.byServer.get(e.name);if(!o||o.host!==e||o.generation!==r)return!1;for(let i of o.registeredNames)cd(t,n,o,i);return n.byServer.delete(e.name),!0}function yg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&ud(t,r)}import{getToolSource as VA}from"@augmentcode/auggie-v2";import{Type as FA}from"@sinclair/typebox";var UA=!1,vg=2e4;function qA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function HA(t){let e=0;for(let r of t.servers.values())e+=GA(r);return e}function GA(t){if(t.status!=="success")return 0;let e=new $r(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||ZA(n.inputSchema)&&(r+=qA(n))}return r}function ZA(t){try{return FA.Unsafe(t??{}),!0}catch{return!1}}function BA(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:UA}function WA(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:vg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:vg}function _g(t){return BA(t)?HA(t)>=WA(t):!1}var KA="AUGGIE_ENABLE_TOOL_SEARCH",JA=new Set(["find-tool","execute-tool","attach-mcp-server"]);function fi(){return process.env[KA]==="1"}function Ir(t){return fi()||t.toolSearchLatched?!0:_g(t)?(t.toolSearchLatched=!0,!0):!1}function fa(t){let e=t.getActiveTools(),r=e.filter(n=>!YA(n)||JA.has(n));r.length!==e.length&&t.setActiveTools(r)}function YA(t){return VA(t)==="mcp"}import{setToolSource as kg}from"@augmentcode/auggie-v2";import{logger as yM}from"@hermes/logger";import{Type as Eg}from"@sinclair/typebox";import{logger as XA}from"@hermes/logger";var pi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},dn={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Sg=XA.child({prefix:"pi-mcp"}),QA=5e3,eM=1,tM=2,rM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),nM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function oM(t){if(typeof t=="number")return t===2||t===3;if(typeof t=="string"){let e=t.toUpperCase();return e.includes("OAUTH")||e.includes("API_KEY")}return!1}function iM(t){return t===eM||typeof t=="string"&&rM.has(t)?"available":t===tM||typeof t=="string"&&nM.has(t)?"opt_in_required":"unknown"}function sM(t){if(!(typeof t.id!="string"||t.id.length===0))return{id:t.id,name:typeof t.name=="string"&&t.name.length>0?t.name:t.id,description:typeof t.description=="string"?t.description:"",requiresAuth:oM(t.auth_type),state:iM(t.state)}}function ld(t,e){if(t.servers.has(e.name))return!0;for(let r of t.servers.values())if(r.config?.id===e.id)return!0;return!1}function pa(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return pa(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!ld(t,r)):[]}async function wg(t,e,r){let n=t.apiUrl.replace(/\/+$/,""),o=e??fetch;try{let i=await o(`${n}/settings/get-mcp-catalog-metadata`,{method:"POST",headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({product_type:dn.UNSPECIFIED}),signal:AbortSignal.timeout(r??QA)});if(!i.ok)return Sg.debug(`MCP catalog fetch failed with ${i.status}; treating catalog as empty`),{ok:!1,disable:i.status===404};let s=await i.json(),a=[];for(let c of s.entries??[]){let u=sM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Sg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var aM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",cM=`You are a tool search assistant. Given a user's query and a list of available tools, identify the single best matching tool.
|
|
10
10
|
|
|
11
11
|
<user_query>{{query}}</user_query>
|
|
12
12
|
|
|
13
13
|
Available tools on MCP server "{{server_name}}":
|
|
14
14
|
{{tool_list}}
|
|
15
15
|
|
|
16
|
-
Respond with ONLY the tool name (no markdown, no explanation).`,uM=/[\n\r]/g,dM=/</g,lM=/>/g;function fn(t){return t.replace(uM," ").replace(dM,"\u2039").replace(lM,"\u203A").trim()}function fM(){let t=process.env[aM];return t?.trim()?t:cM}var pM=/\{\{(query|server_name|tool_list)\}\}/g;function bg(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return fM().replace(pM,o=>n[o]??o)}function Ce(t){return{content:[{type:"text",text:t}],details:void 0}}function Rg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function
|
|
17
|
-
`)}function Pg(t){let e=t.trim();try{let r=JSON.parse(e);if(typeof r.tool_name=="string")return r.tool_name}catch{}return e}import{complete as hM}from"@earendil-works/pi-ai";var mM="augment:tool-search-usage";function gM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function xg(t,e,r){let n=e.model;if(!n)return;let o=await e.modelRegistry.getApiKeyAndHeaders(n);if(!(o.ok&&o.apiKey))return;let i={role:"user",content:[{type:"text",text:r}],timestamp:Date.now()},s=await hM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(mM,a),gM(s)}var Ag=yM.child({prefix:"pi-mcp"}),ro="find-tool",Or="execute-tool",vM=10,Tg=15,_M=20,SM={type:"object",properties:{query:{type:"string",description:"Detailed description of the task you need a tool for: the action (create, read, search, delete, \u2026), the target resource, and relevant context (field names, filters). More specific queries match better."},mcp_server:{type:"string",description:"Name of the MCP server to search."}},required:["query","mcp_server"]},wM={type:"object",properties:{mcp_server:{type:"string",description:"Name of the MCP server hosting the tool."},tool_name:{type:"string",description:"Original MCP tool name returned by find-tool."},arguments:{type:"object",description:"Arguments object to pass to the tool."}},required:["mcp_server","tool_name","arguments"]};function
|
|
16
|
+
Respond with ONLY the tool name (no markdown, no explanation).`,uM=/[\n\r]/g,dM=/</g,lM=/>/g;function fn(t){return t.replace(uM," ").replace(dM,"\u2039").replace(lM,"\u203A").trim()}function fM(){let t=process.env[aM];return t?.trim()?t:cM}var pM=/\{\{(query|server_name|tool_list)\}\}/g;function bg(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return fM().replace(pM,o=>n[o]??o)}function Ce(t){return{content:[{type:"text",text:t}],details:void 0}}function Rg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function fd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function ha(t,e,r){let n={mcp_server:t,tools:Rg(e).map(fd),note:r};return Ce(JSON.stringify(n,null,2))}function Cg(t){return Rg(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
|
|
17
|
+
`)}function Pg(t){let e=t.trim();try{let r=JSON.parse(e);if(typeof r.tool_name=="string")return r.tool_name}catch{}return e}import{complete as hM}from"@earendil-works/pi-ai";var mM="augment:tool-search-usage";function gM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function xg(t,e,r){let n=e.model;if(!n)return;let o=await e.modelRegistry.getApiKeyAndHeaders(n);if(!(o.ok&&o.apiKey))return;let i={role:"user",content:[{type:"text",text:r}],timestamp:Date.now()},s=await hM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(mM,a),gM(s)}var Ag=yM.child({prefix:"pi-mcp"}),ro="find-tool",Or="execute-tool",vM=10,Tg=15,_M=20,SM={type:"object",properties:{query:{type:"string",description:"Detailed description of the task you need a tool for: the action (create, read, search, delete, \u2026), the target resource, and relevant context (field names, filters). More specific queries match better."},mcp_server:{type:"string",description:"Name of the MCP server to search."}},required:["query","mcp_server"]},wM={type:"object",properties:{mcp_server:{type:"string",description:"Name of the MCP server hosting the tool."},tool_name:{type:"string",description:"Original MCP tool name returned by find-tool."},arguments:{type:"object",description:"Arguments object to pass to the tool."}},required:["mcp_server","tool_name","arguments"]};function pd(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function bM(t){let e=[...ee().servers.values()].filter(c=>c.status==="success"),r=e.find(c=>c.name===t);if(r)return{server:r,name:r.name};let n=pd(t),o=e.filter(c=>n.length>0&&pd(c.name)===n);if(o.length===1){let[c]=o;return{server:c,name:c.name}}let i=n.split(" ").filter(Boolean),s=e.filter(c=>{let u=new Set(pd(c.name).split(" "));return n.length>0&&i.every(d=>u.has(d))});if(s.length===1){let[c]=s;return{server:c,name:c.name}}let a=[...o,...s].map(c=>c.name).filter((c,u,d)=>d.indexOf(c)===u).sort();if(a.length>1){let c=e.map(u=>u.name).sort();throw new Error(`MCP server name "${t}" is ambiguous. Matching servers: ${a.join(", ")}. Use an exact server name. Available servers: ${c.join(", ")}.`)}}function Mg(t,e){let r=ee(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=ln(r).find(l=>l.id===e.trim()||l.name.toLowerCase()===u);if(d)throw new Error(`MCP server "${d.name}" is available but not attached. Call attach-mcp-server now with config_id "${d.id}"; it attaches directly without requiring user approval.`)}let o=n.includes(e)?void 0:bM(e);if(o)return o;let i=t.getActiveTools(),s=r.servers.get(e),a=[...r.servers.values()].filter(u=>u.status==="success").map(u=>u.name).sort(),c=ua(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function RM(t){if(t==null)throw new Error(`${Or} requires an "arguments" object with the tool's parameters.`);if(typeof t!="object"||Array.isArray(t)){let e=Array.isArray(t)?"an array":typeof t;throw new Error(`${Or} "arguments" must be an object, not ${e}.`)}return t}async function CM(t,e,r,n,o){let i=bg(r,n,Cg(o)),s=await xg(t,e,i);if(!s)return;let a=Pg(s);return o.find(c=>c.name===a)}async function PM(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${ro} requires string "query" and "mcp_server" parameters.`);let i=Mg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=vM)return ha(i.name,s,"All tools on this server.");try{let a=await CM(t,e,n,i.name,s);return a?Ce(JSON.stringify(fd(a),null,2)):ha(i.name,s,"No single best match; all tools listed.")}catch(a){return Ag.warn(`${ro} LLM match failed: ${a instanceof Error?a.message:String(a)}`),ha(i.name,s,"Search failed; all tools listed.")}}async function xM(t,e,r){let{mcp_server:n,tool_name:o,arguments:i}=e??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${Or} requires string "mcp_server" and "tool_name" parameters.`);let s=RM(i),a=Mg(t,n),c=await a.server.callTool(o,s,r);return sd(c,a.name,o)}function kM(){let t=ee(),e=[...t.servers.values()].filter(i=>i.status==="success"),r=`Search for the right MCP tool. Call with a natural-language query and the target MCP server name to get the best-matching tool, then run it with ${Or}. When this gateway is present, MCP tools may intentionally be absent as top-level tools. Before reporting an expected MCP capability unavailable, search its attached server with ${ro}, then invoke it with ${Or}.`,n=[];if(e.length===0)n.push(`${r} No MCP servers are currently connected.`);else{let i=e.map(s=>{let a=s.listTools().map(d=>d.name),c=a.slice(0,Tg).join(", "),u=a.length>Tg?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
|
|
18
18
|
${i.join(`
|
|
19
19
|
`)}`)}let o=ln(t).slice(0,_M);if(o.length>0){let i=o.map(s=>{let a=fn(s.description),c=s.requiresAuth?" [requires auth]":"";return`- ${s.name}${a?` \u2014 ${a}`:""}${c}`});n.push(`Available but not attached (use attach-mcp-server to enable):
|
|
20
20
|
${i.join(`
|
|
21
21
|
`)}
|
|
22
22
|
When the user's request requires one of these servers, call attach-mcp-server immediately; it attaches directly without requiring user approval.`)}return n.join(`
|
|
23
23
|
|
|
24
|
-
`)}function ir(t){let e={name:ro,label:ro,description:kM(),parameters:Eg.Unsafe(SM),execute:(n,o,i,s,a)=>PM(t,a,o)},r={name:Or,label:Or,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Eg.Unsafe(wM),execute:(n,o,i)=>xM(t,o,i)};kg(ro,"mcp"),kg(Or,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Ag.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{logger as yq}from"@hermes/logger";import{logger as zM}from"@hermes/logger";import{logger as EM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var $g=EM.child({prefix:"pi-mcp"}),hi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},pd=3e4,sr=200,mt=class extends Error{statusCode;statusText;responseBody;constructor(e,r,n){super(`${e} ${r}: ${n}`),this.name="McpRegistryHttpError",this.statusCode=e,this.statusText=r,this.responseBody=n}};function hd(t){return t instanceof mt?t.statusCode>=500:!0}async function hn(t){let e;for(let r=0;r<hi.maxTries;r++)try{return await t()}catch(n){if(e=n,!hd(n))throw n;if(r<hi.maxTries-1){let o=Math.min(hi.initialMs*hi.mult**r,hi.maxMs);await pn(o)}}throw e}var ha=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??pd}async callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:r===void 0?"{}":JSON.stringify({product_type:r}),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}getMcpTenantConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function Ig(t,e){let r=[],[n,o]=await Promise.allSettled([t.getMcpTenantConfigs(e),t.getMcpUserConfigs(e)]),i={},s={};if(n.status==="fulfilled")i=n.value;else{let a=`Failed to fetch tenant MCP configs: ${String(n.reason)}`;$g.warn(a),r.push({message:a})}if(o.status==="fulfilled")s=o.value;else{let a=`Failed to fetch user MCP configs: ${String(o.reason)}`;$g.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function TM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Og=32;function AM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Og&&(e=e.slice(0,Og)),e=e.replace(/_+$/,""),e}function zg(t,e){let r=e?AM(e):"",n=TM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Ng(t){let e={accessToken:t.accessToken,refreshToken:t.refreshToken,clientSecret:t.clientSecret};return t.expiresAt!==void 0&&(e.expiresAt=t.expiresAt),t.resource&&(e.resource=t.resource),t.serverMetadata&&(e.serverMetadata=t.serverMetadata),t.client&&(e.client=t.client),JSON.stringify(e)}var MM=1e12,$M=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function IM(t){let e=$M.exec(t);if(!e)return;let r=Number(e[1]),n=Number(e[2]),o=Number(e[3]),i=Number(e[4]),s=Number(e[5]),a=Number(e[6]),c=Number(e[7]??0),u=Number(e[8]??0),f=[31,r%4===0&&(r%100!==0||r%400===0)?29:28,31,30,31,30,31,31,30,31,30,31][n-1];if(f===void 0||o<1||o>f||i>23||s>59||a>59||c>23||u>59)return;let p=Date.parse(t);return Number.isNaN(p)?void 0:p}function OM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<MM?t*1e3:t;if(typeof t=="string")return IM(t)}function Dg(t){let e=JSON.parse(t),r=typeof e.accessToken=="string"?e.accessToken:"",n=typeof e.refreshToken=="string"?e.refreshToken:void 0;if(!r&&!n)throw new Error("Invalid OAuth secret: missing or invalid accessToken");return{accessToken:r,refreshToken:n,clientSecret:typeof e.clientSecret=="string"?e.clientSecret:void 0,expiresAt:OM(e.expiresAt),resource:typeof e.resource=="string"?e.resource:void 0,serverMetadata:e.serverMetadata&&typeof e.serverMetadata=="object"?e.serverMetadata:void 0,client:e.client&&typeof e.client=="object"?e.client:void 0}}var Bt=zM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},oo=class extends Error{},jg=[100,500],NM=jg.length+1,DM=t=>new Promise(e=>{setTimeout(e,t)});function Lg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var gd="augment.mcp-access-token.",LM=JSON.stringify({retired:!0}),ma=3;function Wt(t){return`${gd}${t}`}function ga(t){return`legacy:${t}`}function Tt(t){return t?.id?zg(t.id,t.name):void 0}function yi(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:Fg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Fg(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function vi(t){if(typeof t=="string")try{return vi(JSON.parse(t))??t}catch{return t}if(typeof t!="object"||t===null||Array.isArray(t))return t===void 0?void 0:JSON.stringify(t);let e=t;return JSON.stringify({type:e.type??null,id:e.id??null,name:e.name??null,url:Fg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function At(t){return vi(yi(t))}function jM(t){return vi(yi(t))}function FM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function no(t){try{let e=JSON.parse(t);return{credentialIdentity:vi(e.credentialIdentity),state:FM(e)}}catch{return{}}}function mi(t,e){let r={...t,type:"oauth",credentialIdentity:yi(e)};return JSON.stringify(r)}function mn(t,e){let r=Ng({accessToken:t.accessToken,refreshToken:t.refreshToken,clientSecret:t.client.client_secret,expiresAt:t.expiresAt,resource:t.resource,serverMetadata:t.serverMetadata,client:t.client});return JSON.stringify({...JSON.parse(r),credentialIdentity:yi(e),credentialState:"active"})}function UM(t){return JSON.stringify({credentialIdentity:yi(t),credentialState:"retired",retired:!0})}function qM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=jM(e),i=vi(n.credentialIdentity);if(!(o&&(i===void 0?e?.auth!=="oauth":i!==o))&&!(typeof n.accessToken!="string"||n.accessToken.length===0||typeof n.serverMetadata!="object"||n.serverMetadata===null||typeof n.client!="object"||n.client===null))return{identityMatched:o!==void 0&&i===o,token:n}}function md(t){try{let e=Dg(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||typeof r.authorization_endpoint!="string"||typeof r.token_endpoint!="string"||typeof n.client_id!="string")return;let o;return e.clientSecret?o=e.clientSecret:typeof n.client_secret=="string"&&(o=n.client_secret),{accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt,resource:e.resource,serverMetadata:{issuer:typeof r.issuer=="string"?r.issuer:r.authorization_endpoint,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint},client:{client_id:n.client_id,...o?{client_secret:o}:{}}}}catch{return}}var gi=class{_memory=new Kn;_getClient;_shouldPersist;_dirtyGenerations=new Map;_durableQueues=new Map;_registryMemoryWriteGenerations=new Map;_registryMemoryAuthorities=new Map;_registryMemoryCommittedAuthorities=new Map;_delay;_nextGeneration=0;constructor(e,r,n,o=DM){if(this._getClient=e,this._shouldPersist=r,this._delay=typeof n=="function"?n:o,n&&typeof n!="function"){this._memory.seed(n);for(let[i,s]of n.credentialIdentities??[]){let a=At(s);a&&this._registryMemoryCommittedAuthorities.set(i,a)}}}get(e){return this._memory.get(e)}commit(e,r,n){this._memory.commit(e,r,n);let o=At(n);o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e)}hasCredentialIdentity(e,r){return this._memory.hasCredentialIdentity(e,r)}reconcileCredentialIdentity(e,r,n){if(!this._memory.reconcileCredentialIdentity(e,r,n))return!1;let o=At(n);return o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e),!0}clearLocalCredential(e){this._memory.clearLocalCredential(e),this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e)}set(e,r,n){if(n?.id){let o=this._beginRegistryMemoryWrite(e,n);this._persist(e,r,n,!0,()=>{this._commitRegistryMemoryWrite(e,r,n,o)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; authoritative memory was not changed`)});return}this._memory.set(e,r),this._registryMemoryCommittedAuthorities.delete(e),this._persist(e,r,n,!0).then(o=>{o&&this._memory.get(e)===r&&this.commit(e,r,n)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; stored in-memory only`)})}async setAndPersist(e,r,n){if(n?.id){let i=this._beginRegistryMemoryWrite(e,n);await this._persist(e,r,n,!1,()=>{this._commitRegistryMemoryWrite(e,r,n,i)});return}let o=await this._persist(e,r,n,!1);this.commit(e,r,o?n:void 0)}_beginRegistryMemoryWrite(e,r){let n=At(r);if(!n)throw new Z;let o=(this._registryMemoryWriteGenerations.get(e)??0)+1;return this._registryMemoryWriteGenerations.set(e,o),this._registryMemoryAuthorities.set(e,n),{generation:o,identity:n,retirementGeneration:this._memory.credentialRetirementGeneration(e)}}_commitRegistryMemoryWrite(e,r,n,o){this._registryMemoryWriteGenerations.get(e)!==o.generation||this._registryMemoryAuthorities.get(e)!==o.identity||this._memory.credentialRetirementGeneration(e)!==o.retirementGeneration||(this._memory.commit(e,r,n),this._registryMemoryCommittedAuthorities.set(e,o.identity))}persist(e,r,n){return this._persist(e,r,n,!1)}async captureAuthenticatedIdentityVersion(e){let r=Tt(e),n=At(e),o=this._getClient();if(!(!r||!n||!o||!e))try{return await this._enqueueWrite(r,()=>this._captureAuthenticatedIdentityVersion({client:o,key:r,identity:n,registry:e}))}catch{throw new Z}}async _captureAuthenticatedIdentityVersion(e){for(let r=0;r<ma;r+=1){let n=await this._captureIdentityVersionAttempt(e);if(n!==void 0)return n}throw new Z}async _captureIdentityVersionAttempt(e){let{client:r,key:n,identity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return"0";let a=no(s.value);if(a.state==="retired")return s.version;if(a.credentialIdentity!==void 0&&a.credentialIdentity!==o)throw new Z;if(a.credentialIdentity===o&&a.state==="active")return s.version;let c=md(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,mn(c,i),s.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async captureRefreshIdentityVersion(e){let r=Tt(e),n=At(e),o=this._getClient();if(!r||!n||!o){if(e?.id)throw new Z;return}try{return await this._enqueueWrite(r,async()=>{let i=await o.getUserSecretWithVersion(r);if(!i)throw new Z;let s=no(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!md(i.value))throw new Z;return i.version})}catch{throw new Z}}persistAuthenticated(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}persistRefresh(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}async _persistAuthenticated(e,r,n,o){let i=this._getClient(),s=Tt(n),a=n&&s&&i&&o!==void 0?this._enqueueWrite(s,()=>i.upsertUserSecret(s,mn(r,n),o)):void 0,c=this._shouldPersist()&&i?()=>this._writeLegacyKey(e,r,!1,n):void 0;if(a)return this._drainRegistryWrites(e,a,c,void 0,n);if(n?.id||this._shouldPersist()&&!i)throw new Z;if(c)return{revision:await this._asPersistenceResult(c()),domain:ga(e)}}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async restoreAfterSupersededAuthentication(e,r,n,o,i,s=o){let a=this._getClient(),c=Tt(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||Tt(s)!==c)throw new Z;if(u=await this._enqueueWrite(c,()=>this._restoreRegistryCredential({client:a,key:c,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i})),!u)return}if(!c&&Tt(s))throw new Z;if(!this._shouldPersist())return u;if(!a)throw new Z;if(c&&o){try{await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredential({client:a,key:Wt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Bt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==ga(e))throw new Z;try{return await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Wt(e),serverName:e,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i}))}catch{throw new Z}}async _restoreLegacyCredentialExact(e){let{client:r,key:n,serverName:o,persistedToken:i,currentToken:s,persistedIdentity:a,currentIdentity:c,persistedRevision:u}=e,d=await r.getUserSecretWithVersion(n);if(!(!d||d.version!==u.revision||d.value!==mi(i,a)))try{return{revision:await r.upsertUserSecret(n,mi(s,c),u.revision),domain:ga(o)}}catch(l){if(this._isVersionConflict(l))return;throw l}}async _restoreRegistryCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a,persistedRevision:c}=e,u=await r.getUserSecretWithVersion(n);if(!(!u||u.version!==c.revision||u.value!==mn(o,s)))try{return{revision:await r.upsertUserSecret(n,mn(i,a),c.revision),domain:`private:${a.id}`}}catch(d){if(this._isVersionConflict(d))return;throw d}}async _restoreLegacyCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a}=e,c=await r.getUserSecretWithVersion(n);if(!(!c||c.value!==mi(o,s)))try{await r.upsertUserSecret(n,mi(i,a),c.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async _drainRegistryWrites(e,r,n,o,i){let s;try{s=await r}catch{throw new Z}if(o?.(),i?.id&&!s)throw new Z;try{await n?.()}catch{Bt.error(`Failed to mirror MCP OAuth token for "${e}" to the legacy key`)}return i?.id&&s?{revision:s,domain:`private:${i.id}`}:void 0}async _writeRegistryCredential(e,r,n,o){let i=At(o);if(!i)throw new Z;for(let s=0;s<ma;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?no(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,mn(n,o),a?.version??"0")}catch(u){if(!this._isVersionConflict(u))throw u}}throw new Z}async _retireRegistryCredential(e,r,n){let o=At(n);if(!o)throw new Z;for(let i=0;i<ma;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?no(s.value):{};if(a.state==="retired"||a.credentialIdentity!==void 0&&a.credentialIdentity!==o)return;if(s&&a.credentialIdentity===void 0)throw new Z;try{await this._upsertUserSecretOnce(e,r,UM(n),s?.version??"0");return}catch(c){if(!this._isVersionConflict(c))throw c}}throw new Z}_isVersionConflict(e){return e instanceof mt&&(e.statusCode===412||e.statusCode===400&&e.responseBody.includes("version mismatch"))}async _persist(e,r,n,o,i){let s=this._getClient(),a=Tt(n),c=a&&n&&s?this._enqueueWrite(a,()=>{let d=this._getClient();if(!d)throw new Error("MCP secrets client unavailable");return this._writeRegistryCredential(d,a,r,n)},{credentialShape:"registry",operation:"write"}):void 0,u=this._shouldPersist()&&s?()=>this._writeLegacyKey(e,r,o,n):void 0;if(c)return this._drainRegistryWrites(e,c,u,i,n);if(n?.id||this._shouldPersist()&&!s)throw new Z;if(u)return{revision:await this._asPersistenceResult(u()),domain:ga(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Lg(e),i=++this._nextGeneration;n?.onGeneration?.(i);let s=this._durableQueues.get(o),a=s??{latestGeneration:i,latestMutationGeneration:n?i:0,tail:Promise.resolve()};a.latestGeneration=i,n&&(a.latestMutationGeneration=i),s||this._durableQueues.set(o,a);let c=()=>this._runPersistence(a,i,r,n),u=s?a.tail.catch(()=>{}).then(c):c();return a.tail=u,u.finally(()=>{a.latestGeneration===i&&this._durableQueues.get(o)?.tail===u&&this._durableQueues.delete(o)}).catch(()=>{}),u}async _runPersistence(e,r,n,o){let i=o?NM:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new oo;try{return await n()}catch(a){this._throwIfPersistenceCanceled(e,r,o);let c=this._persistenceRetryDelay(a,s,o);if(c===void 0)throw a;await this._delay(c)}}throw new Z}_isLegacyPersistenceGateClosed(e){return e?.credentialShape==="legacy"&&!this._shouldPersist()}_throwIfPersistenceCanceled(e,r,n){if(n!==void 0&&e.latestMutationGeneration!==r||this._isLegacyPersistenceGateClosed(n))throw new oo}_persistenceRetryDelay(e,r,n){let o=n?jg[r]:void 0,i=!(e instanceof Z)&&hd(e);if(o===void 0||!i){n&&Bt.warn("MCP OAuth credential persistence exhausted retries",{attempts:r+1,credentialShape:n.credentialShape,operation:n.operation});return}return o}_upsertUserSecretOnce(e,r,n,o){return typeof e.upsertUserSecretOnce=="function"?e.upsertUserSecretOnce(r,n,o):e.upsertUserSecret(r,n,o)}_deleteUserSecretOnce(e,r){return typeof e.deleteUserSecretOnce=="function"?e.deleteUserSecretOnce(r):e.deleteUserSecret(r)}_writeLegacyKey(e,r,n,o){let i=0,s=this._enqueueWrite(Wt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Wt(e),mi(r,o));return this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e),c},{credentialShape:"legacy",operation:"write",onGeneration:a=>{i=a,this._dirtyGenerations.set(e,a)}});return s.catch(a=>{(a instanceof oo||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=At(r),i=this._registryMemoryCommittedAuthorities.get(e),s=n?.preserveNameState===!0&&(i===void 0||i!==o),a=(this._registryMemoryWriteGenerations.get(e)??0)+1;this._registryMemoryWriteGenerations.set(e,a),this._registryMemoryAuthorities.delete(e);let c=this._getClient(),u=Tt(r),d;u&&r&&(c?d=this._enqueueWrite(u,()=>{let p=this._getClient();if(!p)throw new Error("MCP secrets client unavailable");return this._retireRegistryCredential(p,u,r)},{credentialShape:"registry",operation:"delete"}):d=Promise.reject(new Z));let l=this._shouldPersist()&&!s,f;return l&&(c?f=this._enqueueWrite(Wt(e),async()=>{let p=await c.upsertUserSecret(Wt(e),LM)}):f=Promise.reject(new Z)),this._awaitRetirements(e,d,f).then(()=>{this._registryMemoryWriteGenerations.get(e)===a&&(this._memory.retireCredential(e,r,{preserveNameState:s}),s||(this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e)))})}async _awaitRetirements(e,r,n){let[o,i]=await Promise.allSettled([r,n]);if(o.status==="rejected"&&Bt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Bt.error(`Failed to retire legacy MCP OAuth credential for "${e}" durably`),o.status==="rejected")throw o.reason;if(i.status==="rejected")throw i.reason}delete(e,r){if(this._memory.delete(e),this._memory.clearAuthRequired(e),this._dirtyGenerations.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._retireRegistryKey(r),!this._shouldPersist()){this._dirtyGenerations.delete(e);return}let n=Wt(e);if(!this._canScheduleDurableOperation(n)){this._dirtyGenerations.delete(e);return}let o=0;this._enqueueWrite(n,async()=>{let s=this._getClient();if(!s)throw new Error("MCP secrets client unavailable");await this._deleteUserSecretOnce(s,n)},{credentialShape:"legacy",operation:"delete",onGeneration:s=>{o=s,this._dirtyGenerations.set(e,s)}}).then(()=>{this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)}).catch(s=>{s instanceof oo&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=Tt(e);!r||!e||!this._canScheduleDurableOperation(r)||this._enqueueWrite(r,async()=>{let n=this._getClient();if(!n)throw new Error("MCP secrets client unavailable");await this._retireRegistryCredential(n,r,e)},{credentialShape:"registry",operation:"delete"}).catch(()=>{Bt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Lg(e)))}markAuthRequired(e){this._memory.markAuthRequired(e)}isAuthRequired(e){return this._memory.isAuthRequired(e)}clearAuthRequired(e){this._memory.clearAuthRequired(e)}hasInFlightWrite(e){return this._dirtyGenerations.has(e)}async _loadRegistryToken(e,r){let n=Tt(r),o=At(r);if(!n||!o||!r)return{identityRejected:!1};try{return await this._enqueueWrite(n,()=>this._readRegistryToken({client:e,key:n,expectedIdentity:o,registry:r}))}catch{return{identityRejected:!0}}}async _readRegistryToken(e){for(let r=0;r<ma;r+=1){let n=await this._readRegistryTokenAttempt(e);if(n!==void 0)return n}return{identityRejected:!0}}async _readRegistryTokenAttempt(e){let{client:r,key:n,expectedIdentity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return{identityRejected:!1,authorityVersion:"0"};let a=no(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=md(s.value);if(!c)return{identityRejected:!0};if(a.credentialIdentity===o&&a.state==="active")return{identityRejected:!1,token:c};try{return await r.upsertUserSecret(n,mn(c,i),s.version),{identityRejected:!1,token:c}}catch(u){return this._isVersionConflict(u)?void 0:{identityRejected:!0}}}async _importLegacyToken(e,r,n,o){let i=Tt(n),s=At(n);if(!i||!s||!n||o===void 0)return;let a=await this._loadLegacyToken(e,r,n);if(a)try{return await this._enqueueWrite(i,async()=>{let c=await e.getUserSecretWithVersion(i);if((c?.version??"0")===o){if(c){let u=no(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,mn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Wt(r));return o?qM(o,n):void 0}catch{return}}async ensureLoaded(e,r){if(this._memory.get(e)||!this._shouldPersist()||this.hasInFlightWrite(e))return;let o=this._getClient();if(!o)return;let i=this._memory.credentialRetirementGeneration(e),s=await this._loadRegistryToken(o,r);if(s.identityRejected)return;let a=s.token?{identityMatched:!0,token:s.token}:void 0;if(!(this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i)){if(!a){if(this._memory.isCredentialRetired(e))return;a=r?.id?await this._importLegacyToken(o,e,r,s.authorityVersion):await this._loadLegacyToken(o,e,r)}if(!a){Bt.debug(`Backend secret for MCP server "${e}" is not a usable OAuth token; ignoring`);return}this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i||(this.commit(e,a.token,a.identityMatched?r:void 0),Bt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Ug="Augment Code",qg="https://augmentcode.com",Hg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var GM=1e3,ZM=500;function vd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function _i(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var yd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Gg(t){return new URLSearchParams({k:t}).toString().slice(2)}function BM(t,e){let r=`${Gg(t)}:${Gg(e)}`;return`Basic ${btoa(r)}`}function Vg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function WM(t){return t.client.token_endpoint_auth_method==="none"||!Vg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function VM(t){return t==="basic"?"body":t==="body"?"basic":void 0}function KM(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var JM=401,Kg=500;function _d(t,...e){return t.status<Kg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Zg(t){return _d(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===JM}async function Bg(t,e,r){let n={"Content-Type":"application/x-www-form-urlencoded"},o=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken});r&&o.set("resource",r);let i=Vg(t);e==="basic"&&i?n.Authorization=BM(t.client.client_id,i):(o.set("client_id",t.client.client_id),e==="body"&&i&&o.set("client_secret",i));let s=await fetch(t.serverMetadata.token_endpoint,{method:"POST",headers:n,body:o.toString(),signal:AbortSignal.timeout(1e4)});if(!s.ok){let c=await s.text().catch(()=>""),u=KM(c),d=c.slice(0,ZM);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new yd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*GM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Wg(t,e){try{return await Bg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&_d(r,"invalid_target"))return await Bg(t,e,void 0);throw r}}var gn=class t extends Error{status;statusText;body;oauthErrorCode;clientAuthPlacementsExhausted;constructor(e,r,n,o,i=!1){super(`Token refresh failed: ${e} ${r}${n?` \u2014 ${n}`:""}`),this.name="RefreshHttpError",this.status=e,this.statusText=r,this.body=n,this.oauthErrorCode=o,this.clientAuthPlacementsExhausted=i}withClientAuthPlacementsExhausted(){return new t(this.status,this.statusText,this.body,this.oauthErrorCode,!0)}};function Sd(t){return!(t instanceof gn)||t.status>=Kg?!1:_d(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function wd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=WM(t);try{return await Wg(e,r)}catch(n){let o=VM(r);if(!(n instanceof gn)||!o||!Zg(n))throw n;try{return await Wg(e,o)}catch(i){throw i instanceof gn&&Zg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as G0}from"@hermes/logger";var Cd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Cd="oauth4webapi/v3.8.6");function co(t,e){if(t==null)return!1;try{return t instanceof e||Object.getPrototypeOf(t)[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]}catch{return!1}}var Vt="ERR_INVALID_ARG_VALUE",Je="ERR_INVALID_ARG_TYPE";function pe(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var Td=Symbol(),YM=Symbol(),XM=Symbol(),vn=Symbol();var Jg=Symbol();var QM=new TextEncoder,e0=new TextDecoder;function Pd(t){return typeof t=="string"?QM.encode(t):e0.decode(t)}var xd;Uint8Array.prototype.toBase64?xd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):xd=e=>{e instanceof ArrayBuffer&&(e=new Uint8Array(e));let r=[];for(let n=0;n<e.byteLength;n+=32768)r.push(String.fromCharCode.apply(null,e.subarray(n,n+32768)));return btoa(r.join("")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")};var kd;Uint8Array.fromBase64?kd=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw pe("The input to be decoded is not correctly encoded.",Vt,e)}}:kd=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw pe("The input to be decoded is not correctly encoded.",Vt,e)}};function va(t){return typeof t=="string"?kd(t):xd(t)}var so=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=$0,Error.captureStackTrace?.(this,this.constructor)}},Si=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,r?.code&&(this.code=r?.code),Error.captureStackTrace?.(this,this.constructor)}};function O(t,e,r){return new Si(t,{code:e,cause:r})}function _a(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Ad(t){co(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Cd&&!e.has("user-agent")&&e.set("user-agent",Cd),e.has("authorization"))throw pe('"options.headers" must not include the "authorization" header name',Vt);return e}function Md(t,e){if(e!==void 0){if(typeof e=="function"&&(e=e(t.href)),!(e instanceof AbortSignal))throw pe('"options.signal" must return or be an instance of AbortSignal',Je);return e}}function t0(t){return t.includes("//")?t.replace("//","/"):t}function r0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=t0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function n0(t,e,r,n){if(!(t instanceof URL))throw pe(`"${e}" must be an instance of URL`,Je);ay(t,n?.[Td]!==!0);let o=r(new URL(t.href)),i=Ad(n?.headers);return i.set("accept","application/json"),(n?.[vn]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:Md(o,n?.signal)})}function io(t,e,r,n,o){try{if(typeof t!="number"||!Number.isFinite(t))throw pe(`${r} must be a number`,Je,o);if(t>0)return;if(e){if(t!==0)throw pe(`${r} must be a non-negative number`,Vt,o);return}throw pe(`${r} must be a positive number`,Vt,o)}catch(i){throw n?O(i.message,n,o):i}}function $e(t,e,r,n){try{if(typeof t!="string")throw pe(`${e} must be a string`,Je,n);if(t.length===0)throw pe(`${e} must not be empty`,Vt,n)}catch(o){throw r?O(o.message,r,n):o}}async function Qg(t,e){let r=t;if(!(r instanceof URL)&&r!==ba)throw pe('"expectedIssuerIdentifier" must be an instance of URL',Je);if(!co(e,Response))throw pe('"response" must be an instance of Response',Je);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',jd,e);Ri(e);let n=await xa(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==ba&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Ca,{expected:r.href,body:n,attribute:"issuer"});return n}function ey(t){i0(t,"application/json")}function o0(t,...e){let r='"response" content-type must be ';if(e.length>2){let n=e.pop();r+=`${e.join(", ")}, or ${n}`}else e.length===2?r+=`${e[0]} or ${e[1]}`:r+=e[0];return O(r,O0,t)}function i0(t,e){if(y0(t)!==e)throw o0(t,e)}function $d(){return va(crypto.getRandomValues(new Uint8Array(32)))}function ty(){return $d()}function ry(){return $d()}function ny(){return $d()}async function oy(t){return $e(t,"codeVerifier"),va(await crypto.subtle.digest("SHA-256",Pd(t)))}function Id(t){let e=t?.[YM];return typeof e=="number"&&Number.isFinite(e)?e:0}function Od(t){let e=t?.[XM];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function zd(){return Math.floor(Date.now()/1e3)}function Ra(t){if(typeof t!="object"||t===null)throw pe('"as" must be an object',Je);$e(t.issuer,'"as.issuer"')}function Nd(t){if(typeof t!="object"||t===null)throw pe('"client" must be an object',Je);$e(t.client_id,'"client.client_id"')}function Yg(t){return encodeURIComponent(t).replace(/(?:[-_.!~*'()]|%20)/g,e=>{switch(e){case"-":case"_":case".":case"!":case"~":case"*":case"'":case"(":case")":return`%${e.charCodeAt(0).toString(16).toUpperCase()}`;case"%20":return"+";default:throw new Error}})}function Dd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function iy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=Yg(r.client_id),s=Yg(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function sy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var s0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function ay(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",z0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",N0,t)}function Xg(t,e,r,n){let o;if(typeof t!="string"||!(o=s0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?D0:L0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return ay(o,n),o}function cy(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?Xg(t.mtls_endpoint_aliases[e],e,r,n):Xg(t[e],e,r,n)}var ao=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=M0,this.cause=r.cause,this.error=r.cause.error,this.status=r.response.status,this.error_description=r.cause.error_description,Object.defineProperty(this,"response",{enumerable:!1,value:r.response}),Error.captureStackTrace?.(this,this.constructor)}},wi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=I0,this.cause=r.cause,this.error=r.cause.get("error"),this.error_description=r.cause.get("error_description")??void 0,Error.captureStackTrace?.(this,this.constructor)}},bi=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=A0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Sa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",a0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",c0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',u0="("+Sa+")\\s*=\\s*"+c0,d0="("+Sa+")\\s*=\\s*("+Sa+")",l0=new RegExp("^[,\\s]*("+Sa+")"),f0=new RegExp("^[,\\s]*"+u0+"[,\\s]*(.*)"),p0=new RegExp("^[,\\s]*"+d0+"[,\\s]*(.*)"),h0=new RegExp("^("+a0+")(?:$|[,\\s])(.*)");function m0(t){if(!co(t,Response))throw pe('"response" must be an instance of Response',Je);let e=t.headers.get("www-authenticate");if(e===null)return;let r=[],n=e;for(;n;){let o=n.match(l0),i=o?.[1].toLowerCase();if(!i)return;let s=n.substring(o[0].length);if(s&&!s.match(/^[\s,]/))return;let a=s.match(/^\s+(.*)$/),c=!!a;n=a?a[1]:void 0;let u={},d;if(c)for(;n;){let f,p;if(o=n.match(f0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(p0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(h0)){if(Object.keys(u).length)break;[,d,n]=o;break}return}else n=s||void 0;let l={scheme:i,parameters:u};d&&(l.token68=d),r.push(l)}if(r.length)return r}async function g0(t){if(t.status>399&&t.status<500){Ri(t),ey(t);try{let e=await t.clone().json();if(_a(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function uy(t,e,r){if(t.status!==e){w0(t);let n;throw(n=await g0(t))?(await t.body?.cancel(),new ao("server responded with an error in the response body",{cause:n,response:t})):O(`"response" is not a conform ${r} response (unexpected HTTP status code)`,jd,t)}}function dy(t){if(!Ld.has(t))throw pe('"options.DPoP" is not a valid DPoPHandle',Vt)}function y0(t){return t.headers.get("content-type")?.split(";")[0]}async function v0(t,e,r,n,o,i,s){return await r(t,e,o,i),i.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),(s?.[vn]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:Md(n,s?.signal)})}async function _0(t,e,r,n,o,i){let s=cy(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Td]!==!0);o.set("grant_type",n);let a=Ad(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(dy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await v0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var ly=new WeakMap,S0=new WeakMap;function fy(t){if(!t.id_token)return;let e=ly.get(t);if(!e)throw pe('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function py(t,e,r,n,o,i){if(Ra(t),Nd(e),!co(r,Response))throw pe('"response" must be an instance of Response',Je);await uy(r,200,"Token Endpoint"),Ri(r);let s=await xa(r);if($e(s.access_token,'"response" body "access_token" property',V,{body:s}),$e(s.token_type,'"response" body "token_type" property',V,{body:s}),s.token_type=s.token_type.toLowerCase(),s.expires_in!==void 0){let a=typeof s.expires_in!="number"?parseFloat(s.expires_in):s.expires_in;io(a,!0,'"response" body "expires_in" property',V,{body:s}),s.expires_in=a}if(s.refresh_token!==void 0&&$e(s.refresh_token,'"response" body "refresh_token" property',V,{body:s}),s.scope!==void 0&&typeof s.scope!="string")throw O('"response" body "scope" property must be a string',V,{body:s});if(s.id_token!==void 0){$e(s.id_token,'"response" body "id_token" property',V,{body:s});let a=["aud","exp","iat","iss","sub"];e.require_auth_time===!0&&a.push("auth_time"),e.default_max_age!==void 0&&(io(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await j0(s.id_token,F0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Id(e),Od(e),o).then(k0.bind(void 0,a)).then(R0.bind(void 0,t)).then(b0.bind(void 0,e.client_id));if(Array.isArray(c.aud)&&c.aud.length!==1){if(c.azp===void 0)throw O('ID Token "aud" (audience) claim includes additional untrusted audiences',zr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',zr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&io(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),S0.set(r,u),ly.set(s,c)}if(i?.[s.token_type]!==void 0)i[s.token_type](r,s);else if(s.token_type!=="dpop"&&s.token_type!=="bearer")throw new so("unsupported `token_type` value",{cause:{body:s}});return s}function w0(t){let e;if(e=m0(t))throw new bi("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function b0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',zr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',zr,{expected:t,claims:e.claims,claim:"aud"});return e}function R0(t,e){let r=t[H0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',zr,{expected:r,claims:e.claims,claim:"iss"});return e}var Ld=new WeakSet;function C0(t){return Ld.add(t),t}var P0=Symbol();async function hy(t,e,r,n,o,i,s){if(Ra(t),Nd(e),!Ld.has(n))throw pe('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Vt);$e(o,'"redirectUri"');let a=yn(n,"code");if(!a)throw O('no authorization code in "callbackParameters"',V);let c=new URLSearchParams(s?.additionalParameters);return c.set("redirect_uri",o),c.set("code",a),i!==P0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),_0(t,e,r,"authorization_code",c,s)}var x0={aud:"audience",c_hash:"code hash",client_id:"client id",exp:"expiration time",iat:"issued at",iss:"issuer",jti:"jwt id",nonce:"nonce",s_hash:"state hash",sub:"subject",ath:"access token hash",htm:"http method",htu:"http uri",cnf:"confirmation",auth_time:"authentication time"};function k0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${x0[r]}) claim missing`,V,{claims:e.claims});return e}var bd=Symbol(),Rd=Symbol();async function my(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?E0(t,e,r,n.expectedNonce,n.maxAge,n[Jg],n.recognizedTokenTypes):T0(t,e,r,n?.[Jg],n?.recognizedTokenTypes)}async function E0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=bd;break;case bd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Rd;break;case Rd:break;default:io(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await py(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=fy(c);if(o!==Rd){let d=zd()+Id(e),l=Od(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",wa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===bd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',zr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',zr,{expected:n,claims:u,claim:"nonce"});return c}async function T0(t,e,r,n,o){let i=await py(t,e,r,void 0,n,o),s=fy(i);if(s){if(e.default_max_age!==void 0){io(e.default_max_age,!0,'"client.default_max_age"');let a=zd()+Id(e),c=Od(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",wa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',zr,{expected:void 0,claims:s,claim:"nonce"})}return i}var A0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",M0="OAUTH_RESPONSE_BODY_ERROR",$0="OAUTH_UNSUPPORTED_OPERATION",I0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Ed="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var O0="OAUTH_RESPONSE_IS_NOT_JSON",jd="OAUTH_RESPONSE_IS_NOT_CONFORM",z0="OAUTH_HTTP_REQUEST_FORBIDDEN",N0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",wa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",zr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Ca="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var D0="OAUTH_MISSING_SERVER_METADATA",L0="OAUTH_INVALID_SERVER_METADATA";function Ri(t){if(t.bodyUsed)throw pe('"response" body has been used already',Vt)}async function j0(t,e,r,n,o){let{0:i,1:s,length:a}=t.split(".");if(a===5)if(o!==void 0)t=await o(t),{0:i,1:s,length:a}=t.split(".");else throw new so("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(Pd(va(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Ed,l)}if(!_a(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new so('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(Pd(va(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Ed,l)}if(!_a(u))throw O("JWT Payload must be a top level object",V,t);let d=zd()+r;if(u.exp!==void 0){if(typeof u.exp!="number")throw O('unexpected JWT "exp" (expiration time) claim type',V,{claims:u});if(u.exp<=d-n)throw O('unexpected JWT "exp" (expiration time) claim value, expiration is past current timestamp',wa,{claims:u,now:d,tolerance:n,claim:"exp"})}if(u.iat!==void 0&&typeof u.iat!="number")throw O('unexpected JWT "iat" (issued at) claim type',V,{claims:u});if(u.iss!==void 0&&typeof u.iss!="string")throw O('unexpected JWT "iss" (issuer) claim type',V,{claims:u});if(u.nbf!==void 0){if(typeof u.nbf!="number")throw O('unexpected JWT "nbf" (not before) claim type',V,{claims:u});if(u.nbf>d+n)throw O('unexpected JWT "nbf" (not before) claim value',wa,{claims:u,now:d,tolerance:n,claim:"nbf"})}if(u.aud!==void 0&&typeof u.aud!="string"&&!Array.isArray(u.aud))throw O('unexpected JWT "aud" (audience) claim type',V,{claims:u});return{header:c,claims:u,jwt:t}}function F0(t,e,r,n){if(t!==void 0){if(typeof t=="string"?n.alg!==t:!t.includes(n.alg))throw O('unexpected JWT "alg" header parameter',V,{header:n,expected:t,reason:"client configuration"});return}if(Array.isArray(e)){if(!e.includes(n.alg))throw O('unexpected JWT "alg" header parameter',V,{header:n,expected:e,reason:"authorization server metadata"});return}if(r!==void 0){if(typeof r=="string"?n.alg!==r:typeof r=="function"?!r(n.alg):!r.includes(n.alg))throw O('unexpected JWT "alg" header parameter',V,{header:n,expected:r,reason:"default value"});return}throw O('missing client or server configuration to verify used JWT "alg" header parameter',void 0,{client:t,issuer:e,fallback:r})}function yn(t,e){let{0:r,length:n}=t.getAll(e);if(n>1)throw O(`"${e}" parameter must be provided only once`,V);return r}var U0=Symbol(),q0=Symbol();function gy(t,e,r,n){if(Ra(t),Nd(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw pe('"parameters" must be an instance of URLSearchParams, or URL',Je);if(yn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=yn(r,"iss"),i=yn(r,"state");if(!o&&t.authorization_response_iss_parameter_supported)throw O('response parameter "iss" (issuer) missing',V,{parameters:r});if(o&&o!==t.issuer)throw O('unexpected "iss" (issuer) response parameter value',V,{expected:t.issuer,parameters:r});switch(n){case void 0:case q0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case U0:break;default:if($e(n,'"expectedState" argument'),i!==n)throw O(i===void 0?'response parameter "state" missing':'unexpected "state" response parameter value',V,{expected:n,parameters:r})}if(yn(r,"error"))throw new wi("authorization response from the server is an error",{cause:r});let a=yn(r,"id_token"),c=yn(r,"token");if(a!==void 0||c!==void 0)throw new so("implicit and hybrid flows are not supported");return C0(new URLSearchParams(r))}async function yy(t,e,r){Ra(t);let n=cy(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Td]!==!0),o=Ad(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(dy(r.DPoP),await r.DPoP.addProof(n,o,i,r.initialAccessToken)),r?.initialAccessToken&&o.set("authorization",`${o.has("dpop")?"DPoP":"Bearer"} ${r.initialAccessToken}`);let s=await(r?.[vn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Md(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function vy(t){if(!co(t,Response))throw pe('"response" must be an instance of Response',Je);await uy(t,201,"Dynamic Client Registration Endpoint"),Ri(t);let e=await xa(t);return $e(e.client_id,'"response" body "client_id" property',V,{body:e}),e.client_secret!==void 0&&$e(e.client_secret,'"response" body "client_secret" property',V,{body:e}),e.client_secret&&io(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function _y(t,e){return n0(t,"resourceIdentifier",r=>(r0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Pa(t,e){let r=t;if(!(r instanceof URL)&&r!==ba)throw pe('"expectedResourceIdentifier" must be an instance of URL',Je);if(!co(e,Response))throw pe('"response" must be an instance of Response',Je);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',jd,e);Ri(e);let n=await xa(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==ba&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Ca,{expected:r.href,body:n,attribute:"resource"});return n}async function xa(t,e=ey){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Ed,n)}if(!_a(r))throw O('"response" body must be a top level object',V,{body:r});return r}var ba=Symbol(),H0=Symbol();var by=G0.child({prefix:"pi-mcp"}),Ci=1e4,Z0=1e3,B0=401,Sy=200,W0=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,V0=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Ry;function uo(){return Ry??globalThis.fetch}function Cy(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Py(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Ud(t){let e=Py(t);try{let r=await K0(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await e$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Ta(r)}throw new Error("Failed to discover metadata URL")}async function K0(t){try{let e=await _y(t,{signal:AbortSignal.timeout(Ci),[vn]:Ry??void 0});return e.ok?await Pa(t,e):(e.body?.cancel().catch(()=>{}),await xy(t,e.headers.get("www-authenticate"))??await wy(t))}catch{return await wy(t)}}async function wy(t){for(let e of["HEAD","GET"])try{let r=await uo()(t,{method:e,signal:AbortSignal.timeout(Ci)});r.body?.cancel().catch(()=>{});let n=await xy(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function xy(t,e){let r=Q0(e);if(r)try{let n=await uo()(r,{signal:AbortSignal.timeout(Ci)});return await J0(t,n)}catch{return}}async function J0(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Pa(t,new Response(r,n))}catch(o){if(!(o instanceof Si)||o.code!==Ca)throw o;let i=Y0(r);if(!i||!X0(i,t))throw o;return await Pa(i,new Response(r,n))}}function Y0(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function X0(t,e){if(t.origin!==e.origin)return!1;let r=t.pathname.replace(/\/+$/,""),n=e.pathname.replace(/\/+$/,"");return r===n||n.startsWith(`${r}/`)}function Q0(t){if(!t)return;let e=t.match(W0),r=t.match(V0),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function e$(t){for(let e of t$(t))try{let r=new URL(e,t),n=await uo()(r,{signal:AbortSignal.timeout(Ci)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function t$(t){let e=t.pathname.startsWith("/")?t.pathname.slice(1):t.pathname;return[...e.length>0?[new URL(`/.well-known/oauth-authorization-server/${e}`,t),new URL(`/.well-known/openid-configuration/${e}`,t),new URL(`/${e}/.well-known/openid-configuration`,t)]:[],new URL("/.well-known/oauth-authorization-server",t),new URL("/.well-known/openid-configuration",t)]}async function qd(t){try{let e=await uo()(t,{signal:AbortSignal.timeout(Ci)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await r$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await Qg(o,new Response(r,n))}catch(e){throw Ta(e)}}async function r$(t){if(!t.ok)throw new Error("Invalid status code from discovery response");let e=await t.json();if(!e.issuer||typeof e.issuer!="string")throw new Error("Invalid issuer from discovery response");return new URL(e.issuer)}var Fd=class extends Error{issuer;constructor(e){super(`This MCP server's authorization server (\`${e}\`) does not support Dynamic Client Registration. Configure a static OAuth Client ID and Secret in the Advanced section.`),this.name="McpOAuthDcrUnsupportedError",this.issuer=e}};function n$(t){if(!t.clientId)throw new Error("clientId is required to build client from config");let e=t.clientSecret?.trim();return{client_id:t.clientId,...e?{client_secret:e}:{}}}async function Hd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return n$({...t,clientId:n});if(!e.registration_endpoint)throw new Fd(e.issuer);return await o$(e,r)}async function o$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await yy(t,{client_name:Ug,client_uri:qg,logo_uri:Hg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:i$});return n.ok||by.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await vy(n)}catch(r){throw Ta(r)}}async function i$(t,e){let r=await uo()(t,Cy(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||by.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${a$(n)}`),r.status===200&&(o.status=201,o.statusText="Created"),o.status===201)try{let i=JSON.parse(n);i.client_secret_expires_at||(i.client_secret_expires_at=0),"client_secret"in i&&!i.client_secret&&(i.client_secret=void 0),n=JSON.stringify(i)}catch{}return new Response(n,o)}function s$(t,e){let r=new Headers(e?.headers),n=r.get("content-type"),o=e;return n?.toLowerCase().startsWith("application/x-www-form-urlencoded;")&&(r.set("content-type","application/x-www-form-urlencoded"),o={...e,headers:r}),uo()(t,Cy(o))}function a$(t){try{let e=JSON.parse(t);for(let r of Object.keys(e))/secret|token/i.test(r)&&(e[r]="[REDACTED]");return JSON.stringify(e)}catch{return t.length>Sy?`${t.slice(0,Sy)}\u2026`:t}}async function ka(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=ty(),c=await oy(a),u=ry(),d,l=(o??r.scopes_supported?.join(" "))?.split(/\s+/).filter(Boolean),f=!1;!s?.disableOfflineAccessAugmentation&&l?.length&&!l.includes("offline_access")&&r.scopes_supported?.includes("offline_access")&&(l.push("offline_access"),f=!0);let p=l?.join(" ")||void 0,h=Py(i??t).toString(),m=new URL(r.authorization_endpoint);return m.searchParams.set("response_type","code"),m.searchParams.set("client_id",e.client_id),m.searchParams.set("code_challenge",c),m.searchParams.set("code_challenge_method","S256"),m.searchParams.set("redirect_uri",n),m.searchParams.set("resource",h),m.searchParams.set("state",u),p&&m.searchParams.set("scope",p),l?.includes("offline_access")&&m.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=ny(),m.searchParams.set("nonce",d)),{client:e,serverMetadata:r,redirectUri:n,codeVerifier:a,nonce:d,scope:p,state:u,resource:h,offlineAccessAugmented:f,authUri:m}}function Ea(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Gd(t){if(!t.resource)throw new Error("Cannot rebuild authorization state without a resource");let e=t.scope?.split(/\s+/).filter(r=>r&&r!=="offline_access").join(" ");return await ka(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function c$(t,e,r){let n=await hy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:s$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return my(t.serverMetadata,t.client,await u$(n))}async function Zd(t,e){try{let r=gy(e.serverMetadata,e.client,t,e.state),n=await l$(e.client,o=>c$(e,r,o));return h$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Ta(r)}}async function u$(t){let e=await t.text(),r={status:t.status,statusText:t.statusText,headers:t.headers};try{let n=JSON.parse(e);if("id_token"in n)return n.id_token=void 0,new Response(JSON.stringify(n),r)}catch{}return new Response(e,r)}function ky(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function d$(t){let e=ky(t);return e===void 0?sy():t.token_endpoint_auth_method==="client_secret_basic"?iy(e):Dd(e)}async function l$(t,e){try{return await e(d$(t))}catch(r){let n=f$(t);if(n&&p$(r))return await e(n);throw r}}function f$(t){let e=ky(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Dd(e)}function p$(t){return t instanceof ao?t.error==="invalid_client"||t.error==="unauthorized":t instanceof bi?t.status===B0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function h$(t,e,r,n,o){if(!t.access_token)throw new Error("OAuth token response contained no access token");return{accessToken:t.access_token,refreshToken:t.refresh_token||n,expiresAt:t.expires_in?Date.now()+t.expires_in*Z0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Ta(t){if(t instanceof ao||t instanceof wi){let e=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${e}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var m$=/(authorization|auth[_-]?token|access[_-]?token|refresh[_-]?token|\btoken\b|secret|password|passwd|\bpwd\b|api[_-]?key|apikey|client[_-]?secret|private[_-]?key|cookie|session[_-]?id|credential|bearer)/i,Ey=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Ty=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Ay=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",g$=/[.*+?^${}()|[\]\\]/g;function Bd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function y$(t,e,r){try{let n=Array.isArray(t);if(n&&t.length>r.nodes)return r.marker;let o=Object.getPrototypeOf(t);if(!n&&o!==null&&o!==Object.prototype)return r.marker;r.active.add(t);let i=Object.keys(t);if(i.length>r.nodes)return r.marker;let s=n?[]:Object.create(null);for(let a of i){if(n&&!/^(0|[1-9]\d*)$/.test(a))continue;let c=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(s,n?a:Bd(a,r),{value:c&&"value"in c?My(c.value,e+1,r):r.marker,enumerable:!0,configurable:!0,writable:!0})}return s}catch{return r.marker}finally{r.active.delete(t)}}function My(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Bd(t,r);if(t===void 0)return t;if(t===null||typeof t=="boolean"||typeof t=="number"){if(typeof t=="number"&&!Number.isFinite(t))return r.marker;let n=JSON.stringify(t);return Bd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:y$(t,e,r)}function $y(t){let e=[...new Set(t)].filter(Boolean);if(e.length>128||e.reduce((i,s)=>i+s.length,0)>262144)return{text:()=>"",value:()=>{}};let r=e.length?new RegExp(e.sort((i,s)=>s.length-i.length).map(i=>i.replace(g$,"\\$&")).join("|"),"g"):void 0,n=e.some(i=>_n.includes(i))?"":_n,o=i=>{if(i.length>262144)return n;let s=r?i.replace(r,()=>n):i;return e.some(a=>s.includes(a))?n:s};return{text:o,value:i=>My(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var v$=500,_$=8192,S$=6;function w$(t){return Ey.test(t)||Ty.test(t)||Ay.test(t)}var b$=new RegExp(Ey.source,"g"),R$=new RegExp(Ty.source,"gi"),C$=new RegExp(Ay.source,"g");function Iy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Vd(t){return t&&Iy(t,_$).replace(b$,_n).replace(R$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(C$,_n)}function Wd(t,e,r){if(e)return _n;if(typeof t=="string")return w$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=S$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Wd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Wd(i,m$.test(o),r+1);return n}function Oy(t,e=v$){if(t==null)return;let r=Wd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Iy(n,e)}var Ny={reportError:()=>{}},zy=Symbol.for("__pi_mcp_error_reporter_slot__");function Dy(){let t=globalThis,e=t[zy];return e||(e={reporter:null},t[zy]=e),e}function Ly(t){let e=Dy(),r=e.reporter??Ny;return e.reporter=t,r}function P$(){return Dy().reporter??Ny}function Aa(t,e){try{P$().reportError(t,e)}catch{}}import{logger as x$}from"@hermes/logger";var Kd=x$.child({prefix:"pi-mcp"});function jy(t,e,r){let n=0,o=0,i=r?.authoritative?{}:{...t.headerSecrets};for(let[s,a]of Object.entries(e))typeof a=="string"&&a!==""?(i[s]=a,n++):a===null||a===""?s in i&&(delete i[s],o++):Kd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Kd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Fy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(gd)){let o=t.headerSecrets[e];if(o!==void 0)return o;let i=t.headerSecretFailures[e];if(i==="missing"||i==="permission_denied")return{reason:i}}let r=t.secretsClient;if(r)try{let o=await r.getSecret(e);return o!==void 0?(delete t.headerSecretFailures[e],o):{reason:t.headerSecretFailures[e]??"missing"}}catch{return{reason:"transient"}}let n=t.headerSecretFailures[e];return n===void 0?void 0:{reason:n}}}function Uy(t,e,r){t.headerSecretFailures??={};let n=r?.authoritative?{}:{...t.headerSecretFailures},o={...t.headerSecrets};for(let[i,s]of Object.entries(e))(s==="missing"||s==="permission_denied"||s==="transient")&&(n[i]=s,delete o[i]);t.headerSecrets=o,t.headerSecretFailures=n,Kd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function qy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as k$}from"@hermes/logger";var Pi=k$.child({prefix:"pi-mcp"}),E$="$augment-",xi=/\$augment-[a-zA-Z0-9_.-]+/g,T$=new RegExp(xi.source);function Nr(t){return T$.test(t)}function Ma(t){return t.slice(E$.length)}function ki(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(xi))e.add(Ma(n[0]));return[...e].sort()}var A$=["permission_denied","missing","transient"];function Hy(t){let e=new Set(t);return A$.find(r=>e.has(r))??"missing"}var gt=class extends Error{serverName;missingKeys;reason;constructor(e,r,n,o=n===void 0?"missing":"transient"){super(`MCP server "${e}" not started: missing secret(s) ${r.join(", ")}`,n===void 0?void 0:{cause:n}),this.name="McpSecretResolutionError",this.serverName=e,this.missingKeys=r,this.reason=o}};async function Gy(t,e,r,n,o,i,s){let a=[...t.matchAll(xi)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Ma(d);try{let p=await r(f);if(p===void 0||typeof p=="object"){n.add(f),i.set(f,p===void 0?"missing":p.reason),Pi.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),Pi.warn(`Secret "${f}" resolved empty for "${e}"`));let m=c.slice(0,l),g=s?s(h,m):h;c=m+g+c.slice(l+d.length),Pi.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),Pi.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Zy({configEnv:t,localEnv:e,getSecret:r}){let n={},o=new Set,i=new Set,s=new Map;for(let[a,c]of Object.entries(t)){if(!Nr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){Pi.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Gy(c,a,r,o,i,s)}return{resolved:n,unresolvedKeys:[...o].sort(),emptyKeys:[...i].sort(),...s.size===0?{}:{failureReasons:Object.fromEntries([...s.entries()].sort(([a],[c])=>a.localeCompare(c)))}}}var M$=/["$`\\]/g;function $$(t){let e="unquoted",r=0;for(;r<t.length;){let n=t[r];if(e==="single"){n==="'"&&(e="unquoted"),r+=1;continue}if(e==="double"){if(n==="\\"){r+=2;continue}n==='"'&&(e="unquoted"),r+=1;continue}if(n==="\\"){r+=2;continue}n==="'"?e="single":n==='"'&&(e="double"),r+=1}return e}function I$(t,e){let r=$$(e);if(r==="double")return t.replace(M$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function By(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Gy(t,"command",e,n,o,i,r?I$:void 0),unresolvedKeys:[...n].sort(),emptyKeys:[...o].sort(),...i.size===0?{}:{failureReasons:Object.fromEntries([...i.entries()].sort(([a],[c])=>a.localeCompare(c)))}}}import{AsyncLocalStorage as pq}from"node:async_hooks";var Wy,Jd=Object.freeze({status:"aborted"});function _(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=s.prototype,d=Object.keys(u);for(let l=0;l<d.length;l++){let f=d[l];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:t});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let d of u._zod.deferred)d();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var Kt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},lo=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Wy=globalThis).__zod_globalConfig??(Wy.__zod_globalConfig={});var fo=globalThis.__zod_globalConfig;function Ye(t){return t&&Object.assign(fo,t),fo}var H={};Uu(H,{BIGINT_FORMAT_RANGES:()=>Yy,Class:()=>Xd,NUMBER_FORMAT_RANGES:()=>ol,aborted:()=>jr,allowsEval:()=>tl,assert:()=>L$,assertEqual:()=>O$,assertIs:()=>N$,assertNever:()=>D$,assertNotEqual:()=>z$,assignProp:()=>Dr,base64ToUint8Array:()=>Qy,base64urlToUint8Array:()=>tI,cached:()=>ho,captureStackTrace:()=>Oa,cleanEnum:()=>eI,cleanRegex:()=>Mi,clone:()=>yt,cloneDef:()=>F$,createTransparentProxy:()=>B$,defineLazy:()=>X,esc:()=>Ia,escapeRegex:()=>cr,explicitlyAborted:()=>il,extend:()=>K$,finalizeIssue:()=>vt,floatSafeRemainder:()=>Qd,getElementAtPath:()=>U$,getEnumValues:()=>Ti,getLengthableOrigin:()=>$i,getParsedType:()=>Z$,getSizableOrigin:()=>Xy,hexToUint8Array:()=>nI,isObject:()=>Sn,isPlainObject:()=>Lr,issue:()=>mo,joinValues:()=>$a,jsonStringifyReplacer:()=>po,merge:()=>Y$,mergeDefs:()=>ar,normalizeParams:()=>A,nullish:()=>Ai,numKeys:()=>G$,objectClone:()=>j$,omit:()=>V$,optionalKeys:()=>nl,parsedType:()=>sl,partial:()=>X$,pick:()=>W$,prefixIssues:()=>ur,primitiveTypes:()=>Jy,promiseAllObject:()=>q$,propertyKeyTypes:()=>rl,randomString:()=>H$,required:()=>Q$,safeExtend:()=>J$,shallowClone:()=>Ky,slugify:()=>el,stringifyPrimitive:()=>za,uint8ArrayToBase64:()=>ev,uint8ArrayToBase64url:()=>rI,uint8ArrayToHex:()=>oI,unwrapMessage:()=>Ei});function O$(t){return t}function z$(t){return t}function N$(t){}function D$(t){throw new Error("Unexpected value in exhaustive check")}function L$(t){}function Ti(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,o])=>e.indexOf(+n)===-1).map(([n,o])=>o)}function $a(t,e="|"){return t.map(r=>za(r)).join(e)}function po(t,e){return typeof e=="bigint"?e.toString():e}function ho(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ai(t){return t==null}function Mi(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Qd(t,e){let r=t/e,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var Vy=Symbol("evaluating");function X(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Vy)return n===void 0&&(n=Vy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function j$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Dr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ar(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function F$(t){return ar(t._zod.def)}function U$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function q$(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<e.length;i++)o[e[i]]=n[i];return o})}function H$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function Ia(t){return JSON.stringify(t)}function el(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Oa="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var tl=ho(()=>{if(fo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Lr(t){if(Sn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Sn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ky(t){return Lr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function G$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var Z$=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},rl=new Set(["string","number","symbol"]),Jy=new Set(["string","number","bigint","boolean","symbol","undefined"]);function cr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function A(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function B$(t){let e;return new Proxy({},{get(r,n,o){return e??(e=t()),Reflect.get(e,n,o)},set(r,n,o,i){return e??(e=t()),Reflect.set(e,n,o,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,o){return e??(e=t()),Reflect.defineProperty(e,n,o)}})}function za(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function nl(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var ol={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Yy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function W$(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=r.shape[a])}return Dr(this,"shape",s),s},checks:[]});return yt(t,i)}function V$(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return Dr(this,"shape",s),s},checks:[]});return yt(t,i)}function K$(t,e){if(!Lr(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ar(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Dr(this,"shape",i),i}});return yt(t,o)}function J$(t,e){if(!Lr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Dr(this,"shape",n),n}});return yt(t,r)}function Y$(t,e){if(t._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Dr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function X$(t,e,r){let o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ar(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return Dr(this,"shape",c),c},checks:[]});return yt(e,s)}function Q$(t,e,r){let n=ar(e._zod.def,{get shape(){let o=e._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new t({type:"nonoptional",innerType:o[s]});return Dr(this,"shape",i),i}});return yt(e,n)}function jr(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function il(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue===!1)return!0;return!1}function ur(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ei(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ei(t.inst?._zod.def?.error?.(t))??Ei(e?.error?.(t))??Ei(r.customError?.(t))??Ei(r.localeError?.(t))??"Invalid input",{inst:o,continue:i,input:s,...a}=t;return a.path??(a.path=[]),a.message=n,e?.reportInput&&(a.input=s),a}function Xy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function $i(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function sl(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function mo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function eI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Qy(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}function ev(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function tI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Qy(e+r)}function rI(t){return ev(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function nI(t){let e=t.replace(/^0x/,"");if(e.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)r[n/2]=Number.parseInt(e.slice(n,n+2),16);return r}function oI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Xd=class{constructor(...e){}};var tv=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,po,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Na=_("$ZodError",tv),al=_("$ZodError",tv,{Parent:Error});function cl(t,e=r=>r.message){let r={},n=[];for(let o of t.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(e(o))):n.push(e(o));return{formErrors:n,fieldErrors:r}}function ul(t,e=r=>r.message){let r={_errors:[]},n=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)r._errors.push(e(s));else{let c=r,u=0;for(;u<a.length;){let d=a[u];u===a.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(e(s))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}}};return n(t),r}var Da=t=>(e,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Kt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Ye())));throw Oa(a,o?.callee),a}return s.value};var La=t=>async(e,r,n,o)=>{let i=n?{...n,async:!0}:{async:!0},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Ye())));throw Oa(a,o?.callee),a}return s.value};var Ii=t=>(e,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new Kt;return i.issues.length?{success:!1,error:new(t??Na)(i.issues.map(s=>vt(s,o,Ye())))}:{success:!0,data:i.value}},Oi=Ii(al),zi=t=>async(e,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=e._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(s=>vt(s,o,Ye())))}:{success:!0,data:i.value}},ja=zi(al),rv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Da(t)(e,r,o)};var nv=t=>(e,r,n)=>Da(t)(e,r,n);var ov=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return La(t)(e,r,o)};var iv=t=>async(e,r,n)=>La(t)(e,r,n);var sv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ii(t)(e,r,o)};var av=t=>(e,r,n)=>Ii(t)(e,r,n);var cv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var uv=t=>async(e,r,n)=>zi(t)(e,r,n);var dv=/^[cC][0-9a-z]{6,}$/,lv=/^[0-9a-z]+$/,fv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,pv=/^[0-9a-vA-V]{20}$/,hv=/^[A-Za-z0-9]{27}$/,mv=/^[a-zA-Z0-9_-]{21}$/,gv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var yv=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,dl=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;var vv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var sI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function _v(){return new RegExp(sI,"u")}var Sv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,wv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var bv=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Rv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Cv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ll=/^[A-Za-z0-9_-]*$/;var Pv=/^https?$/,xv=/^\+[1-9]\d{6,14}$/,kv="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ev=new RegExp(`^${kv}$`);function Tv(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Av(t){return new RegExp(`^${Tv(t)}$`)}function Mv(t){let e=Tv({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${kv}T(?:${n})$`)}var $v=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Iv=/^-?\d+n?$/,Ov=/^-?\d+$/,fl=/^-?\d+(?:\.\d+)?$/,zv=/^(?:true|false)$/i,Nv=/^null$/i;var Dv=/^[^A-Z]*$/,Lv=/^[^a-z]*$/;var Ie=_("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),jv={number:"number",bigint:"bigint",object:"date"},pl=_("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=jv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<i&&(e.inclusive?o.maximum=e.value:o.exclusiveMaximum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value<=e.value:n.value<e.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),hl=_("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=jv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?o.minimum=e.value:o.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),Fv=_("$ZodCheckMultipleOf",(t,e)=>{Ie.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Qd(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),Uv=_("$ZodCheckNumberFormat",(t,e)=>{Ie.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=ol[e.format];t._zod.onattach.push(s=>{let a=s._zod.bag;a.format=e.format,a.minimum=o,a.maximum=i,r&&(a.pattern=Ov)}),t._zod.check=s=>{let a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:a,inst:t});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}a<o&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:t,continue:!e.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:t,continue:!e.abort})}});var qv=_("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<o&&(n._zod.bag.maximum=e.maximum)}),t._zod.check=n=>{let o=n.value;if(o.length<=e.maximum)return;let s=$i(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Hv=_("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;if(o.length>=e.minimum)return;let s=$i(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Gv=_("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),t._zod.check=n=>{let o=n.value,i=o.length;if(i===e.length)return;let s=$i(o),a=i>e.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Di=_("$ZodCheckStringFormat",(t,e)=>{var r,n;Ie.init(t,e),t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Zv=_("$ZodCheckRegex",(t,e)=>{Di.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Bv=_("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Dv),Di.init(t,e)}),Wv=_("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Lv),Di.init(t,e)}),Vv=_("$ZodCheckIncludes",(t,e)=>{Ie.init(t,e);let r=cr(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:t,continue:!e.abort})}}),Kv=_("$ZodCheckStartsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`^${cr(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),Jv=_("$ZodCheckEndsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`.*${cr(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var Yv=_("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Fa=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
|
24
|
+
`)}function ir(t){let e={name:ro,label:ro,description:kM(),parameters:Eg.Unsafe(SM),execute:(n,o,i,s,a)=>PM(t,a,o)},r={name:Or,label:Or,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Eg.Unsafe(wM),execute:(n,o,i)=>xM(t,o,i)};kg(ro,"mcp"),kg(Or,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Ag.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{logger as yq}from"@hermes/logger";import{logger as zM}from"@hermes/logger";import{logger as EM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var $g=EM.child({prefix:"pi-mcp"}),hi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},hd=3e4,sr=200,mt=class extends Error{statusCode;statusText;responseBody;constructor(e,r,n){super(`${e} ${r}: ${n}`),this.name="McpRegistryHttpError",this.statusCode=e,this.statusText=r,this.responseBody=n}};function md(t){return t instanceof mt?t.statusCode>=500:!0}async function hn(t){let e;for(let r=0;r<hi.maxTries;r++)try{return await t()}catch(n){if(e=n,!md(n))throw n;if(r<hi.maxTries-1){let o=Math.min(hi.initialMs*hi.mult**r,hi.maxMs);await pn(o)}}throw e}var ma=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??hd}async callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:r===void 0?"{}":JSON.stringify({product_type:r}),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}getMcpTenantConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function Ig(t,e){let r=[],[n,o]=await Promise.allSettled([t.getMcpTenantConfigs(e),t.getMcpUserConfigs(e)]),i={},s={};if(n.status==="fulfilled")i=n.value;else{let a=`Failed to fetch tenant MCP configs: ${String(n.reason)}`;$g.warn(a),r.push({message:a})}if(o.status==="fulfilled")s=o.value;else{let a=`Failed to fetch user MCP configs: ${String(o.reason)}`;$g.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function TM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Og=32;function AM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Og&&(e=e.slice(0,Og)),e=e.replace(/_+$/,""),e}function zg(t,e){let r=e?AM(e):"",n=TM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Ng(t){let e={accessToken:t.accessToken,refreshToken:t.refreshToken,clientSecret:t.clientSecret};return t.expiresAt!==void 0&&(e.expiresAt=t.expiresAt),t.resource&&(e.resource=t.resource),t.serverMetadata&&(e.serverMetadata=t.serverMetadata),t.client&&(e.client=t.client),JSON.stringify(e)}var MM=1e12,$M=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function IM(t){let e=$M.exec(t);if(!e)return;let r=Number(e[1]),n=Number(e[2]),o=Number(e[3]),i=Number(e[4]),s=Number(e[5]),a=Number(e[6]),c=Number(e[7]??0),u=Number(e[8]??0),f=[31,r%4===0&&(r%100!==0||r%400===0)?29:28,31,30,31,30,31,31,30,31,30,31][n-1];if(f===void 0||o<1||o>f||i>23||s>59||a>59||c>23||u>59)return;let p=Date.parse(t);return Number.isNaN(p)?void 0:p}function OM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<MM?t*1e3:t;if(typeof t=="string")return IM(t)}function Dg(t){let e=JSON.parse(t),r=typeof e.accessToken=="string"?e.accessToken:"",n=typeof e.refreshToken=="string"?e.refreshToken:void 0;if(!r&&!n)throw new Error("Invalid OAuth secret: missing or invalid accessToken");return{accessToken:r,refreshToken:n,clientSecret:typeof e.clientSecret=="string"?e.clientSecret:void 0,expiresAt:OM(e.expiresAt),resource:typeof e.resource=="string"?e.resource:void 0,serverMetadata:e.serverMetadata&&typeof e.serverMetadata=="object"?e.serverMetadata:void 0,client:e.client&&typeof e.client=="object"?e.client:void 0}}var Bt=zM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},oo=class extends Error{},jg=[100,500],NM=jg.length+1,DM=t=>new Promise(e=>{setTimeout(e,t)});function Lg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var yd="augment.mcp-access-token.",LM=JSON.stringify({retired:!0}),ga=3;function Wt(t){return`${yd}${t}`}function ya(t){return`legacy:${t}`}function Tt(t){return t?.id?zg(t.id,t.name):void 0}function yi(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:Fg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Fg(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function vi(t){if(typeof t=="string")try{return vi(JSON.parse(t))??t}catch{return t}if(typeof t!="object"||t===null||Array.isArray(t))return t===void 0?void 0:JSON.stringify(t);let e=t;return JSON.stringify({type:e.type??null,id:e.id??null,name:e.name??null,url:Fg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function At(t){return vi(yi(t))}function jM(t){return vi(yi(t))}function FM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function no(t){try{let e=JSON.parse(t);return{credentialIdentity:vi(e.credentialIdentity),state:FM(e)}}catch{return{}}}function mi(t,e){let r={...t,type:"oauth",credentialIdentity:yi(e)};return JSON.stringify(r)}function mn(t,e){let r=Ng({accessToken:t.accessToken,refreshToken:t.refreshToken,clientSecret:t.client.client_secret,expiresAt:t.expiresAt,resource:t.resource,serverMetadata:t.serverMetadata,client:t.client});return JSON.stringify({...JSON.parse(r),credentialIdentity:yi(e),credentialState:"active"})}function UM(t){return JSON.stringify({credentialIdentity:yi(t),credentialState:"retired",retired:!0})}function qM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=jM(e),i=vi(n.credentialIdentity);if(!(o&&(i===void 0?e?.auth!=="oauth":i!==o))&&!(typeof n.accessToken!="string"||n.accessToken.length===0||typeof n.serverMetadata!="object"||n.serverMetadata===null||typeof n.client!="object"||n.client===null))return{identityMatched:o!==void 0&&i===o,token:n}}function gd(t){try{let e=Dg(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||typeof r.authorization_endpoint!="string"||typeof r.token_endpoint!="string"||typeof n.client_id!="string")return;let o;return e.clientSecret?o=e.clientSecret:typeof n.client_secret=="string"&&(o=n.client_secret),{accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt,resource:e.resource,serverMetadata:{issuer:typeof r.issuer=="string"?r.issuer:r.authorization_endpoint,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint},client:{client_id:n.client_id,...o?{client_secret:o}:{}}}}catch{return}}var gi=class{_memory=new Kn;_getClient;_shouldPersist;_dirtyGenerations=new Map;_durableQueues=new Map;_registryMemoryWriteGenerations=new Map;_registryMemoryAuthorities=new Map;_registryMemoryCommittedAuthorities=new Map;_delay;_nextGeneration=0;constructor(e,r,n,o=DM){if(this._getClient=e,this._shouldPersist=r,this._delay=typeof n=="function"?n:o,n&&typeof n!="function"){this._memory.seed(n);for(let[i,s]of n.credentialIdentities??[]){let a=At(s);a&&this._registryMemoryCommittedAuthorities.set(i,a)}}}get(e){return this._memory.get(e)}commit(e,r,n){this._memory.commit(e,r,n);let o=At(n);o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e)}hasCredentialIdentity(e,r){return this._memory.hasCredentialIdentity(e,r)}reconcileCredentialIdentity(e,r,n){if(!this._memory.reconcileCredentialIdentity(e,r,n))return!1;let o=At(n);return o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e),!0}clearLocalCredential(e){this._memory.clearLocalCredential(e),this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e)}set(e,r,n){if(n?.id){let o=this._beginRegistryMemoryWrite(e,n);this._persist(e,r,n,!0,()=>{this._commitRegistryMemoryWrite(e,r,n,o)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; authoritative memory was not changed`)});return}this._memory.set(e,r),this._registryMemoryCommittedAuthorities.delete(e),this._persist(e,r,n,!0).then(o=>{o&&this._memory.get(e)===r&&this.commit(e,r,n)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; stored in-memory only`)})}async setAndPersist(e,r,n){if(n?.id){let i=this._beginRegistryMemoryWrite(e,n);await this._persist(e,r,n,!1,()=>{this._commitRegistryMemoryWrite(e,r,n,i)});return}let o=await this._persist(e,r,n,!1);this.commit(e,r,o?n:void 0)}_beginRegistryMemoryWrite(e,r){let n=At(r);if(!n)throw new Z;let o=(this._registryMemoryWriteGenerations.get(e)??0)+1;return this._registryMemoryWriteGenerations.set(e,o),this._registryMemoryAuthorities.set(e,n),{generation:o,identity:n,retirementGeneration:this._memory.credentialRetirementGeneration(e)}}_commitRegistryMemoryWrite(e,r,n,o){this._registryMemoryWriteGenerations.get(e)!==o.generation||this._registryMemoryAuthorities.get(e)!==o.identity||this._memory.credentialRetirementGeneration(e)!==o.retirementGeneration||(this._memory.commit(e,r,n),this._registryMemoryCommittedAuthorities.set(e,o.identity))}persist(e,r,n){return this._persist(e,r,n,!1)}async captureAuthenticatedIdentityVersion(e){let r=Tt(e),n=At(e),o=this._getClient();if(!(!r||!n||!o||!e))try{return await this._enqueueWrite(r,()=>this._captureAuthenticatedIdentityVersion({client:o,key:r,identity:n,registry:e}))}catch{throw new Z}}async _captureAuthenticatedIdentityVersion(e){for(let r=0;r<ga;r+=1){let n=await this._captureIdentityVersionAttempt(e);if(n!==void 0)return n}throw new Z}async _captureIdentityVersionAttempt(e){let{client:r,key:n,identity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return"0";let a=no(s.value);if(a.state==="retired")return s.version;if(a.credentialIdentity!==void 0&&a.credentialIdentity!==o)throw new Z;if(a.credentialIdentity===o&&a.state==="active")return s.version;let c=gd(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,mn(c,i),s.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async captureRefreshIdentityVersion(e){let r=Tt(e),n=At(e),o=this._getClient();if(!r||!n||!o){if(e?.id)throw new Z;return}try{return await this._enqueueWrite(r,async()=>{let i=await o.getUserSecretWithVersion(r);if(!i)throw new Z;let s=no(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!gd(i.value))throw new Z;return i.version})}catch{throw new Z}}persistAuthenticated(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}persistRefresh(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}async _persistAuthenticated(e,r,n,o){let i=this._getClient(),s=Tt(n),a=n&&s&&i&&o!==void 0?this._enqueueWrite(s,()=>i.upsertUserSecret(s,mn(r,n),o)):void 0,c=this._shouldPersist()&&i?()=>this._writeLegacyKey(e,r,!1,n):void 0;if(a)return this._drainRegistryWrites(e,a,c,void 0,n);if(n?.id||this._shouldPersist()&&!i)throw new Z;if(c)return{revision:await this._asPersistenceResult(c()),domain:ya(e)}}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async restoreAfterSupersededAuthentication(e,r,n,o,i,s=o){let a=this._getClient(),c=Tt(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||Tt(s)!==c)throw new Z;if(u=await this._enqueueWrite(c,()=>this._restoreRegistryCredential({client:a,key:c,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i})),!u)return}if(!c&&Tt(s))throw new Z;if(!this._shouldPersist())return u;if(!a)throw new Z;if(c&&o){try{await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredential({client:a,key:Wt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Bt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==ya(e))throw new Z;try{return await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Wt(e),serverName:e,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i}))}catch{throw new Z}}async _restoreLegacyCredentialExact(e){let{client:r,key:n,serverName:o,persistedToken:i,currentToken:s,persistedIdentity:a,currentIdentity:c,persistedRevision:u}=e,d=await r.getUserSecretWithVersion(n);if(!(!d||d.version!==u.revision||d.value!==mi(i,a)))try{return{revision:await r.upsertUserSecret(n,mi(s,c),u.revision),domain:ya(o)}}catch(l){if(this._isVersionConflict(l))return;throw l}}async _restoreRegistryCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a,persistedRevision:c}=e,u=await r.getUserSecretWithVersion(n);if(!(!u||u.version!==c.revision||u.value!==mn(o,s)))try{return{revision:await r.upsertUserSecret(n,mn(i,a),c.revision),domain:`private:${a.id}`}}catch(d){if(this._isVersionConflict(d))return;throw d}}async _restoreLegacyCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a}=e,c=await r.getUserSecretWithVersion(n);if(!(!c||c.value!==mi(o,s)))try{await r.upsertUserSecret(n,mi(i,a),c.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async _drainRegistryWrites(e,r,n,o,i){let s;try{s=await r}catch{throw new Z}if(o?.(),i?.id&&!s)throw new Z;try{await n?.()}catch{Bt.error(`Failed to mirror MCP OAuth token for "${e}" to the legacy key`)}return i?.id&&s?{revision:s,domain:`private:${i.id}`}:void 0}async _writeRegistryCredential(e,r,n,o){let i=At(o);if(!i)throw new Z;for(let s=0;s<ga;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?no(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,mn(n,o),a?.version??"0")}catch(u){if(!this._isVersionConflict(u))throw u}}throw new Z}async _retireRegistryCredential(e,r,n){let o=At(n);if(!o)throw new Z;for(let i=0;i<ga;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?no(s.value):{};if(a.state==="retired"||a.credentialIdentity!==void 0&&a.credentialIdentity!==o)return;if(s&&a.credentialIdentity===void 0)throw new Z;try{await this._upsertUserSecretOnce(e,r,UM(n),s?.version??"0");return}catch(c){if(!this._isVersionConflict(c))throw c}}throw new Z}_isVersionConflict(e){return e instanceof mt&&(e.statusCode===412||e.statusCode===400&&e.responseBody.includes("version mismatch"))}async _persist(e,r,n,o,i){let s=this._getClient(),a=Tt(n),c=a&&n&&s?this._enqueueWrite(a,()=>{let d=this._getClient();if(!d)throw new Error("MCP secrets client unavailable");return this._writeRegistryCredential(d,a,r,n)},{credentialShape:"registry",operation:"write"}):void 0,u=this._shouldPersist()&&s?()=>this._writeLegacyKey(e,r,o,n):void 0;if(c)return this._drainRegistryWrites(e,c,u,i,n);if(n?.id||this._shouldPersist()&&!s)throw new Z;if(u)return{revision:await this._asPersistenceResult(u()),domain:ya(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Lg(e),i=++this._nextGeneration;n?.onGeneration?.(i);let s=this._durableQueues.get(o),a=s??{latestGeneration:i,latestMutationGeneration:n?i:0,tail:Promise.resolve()};a.latestGeneration=i,n&&(a.latestMutationGeneration=i),s||this._durableQueues.set(o,a);let c=()=>this._runPersistence(a,i,r,n),u=s?a.tail.catch(()=>{}).then(c):c();return a.tail=u,u.finally(()=>{a.latestGeneration===i&&this._durableQueues.get(o)?.tail===u&&this._durableQueues.delete(o)}).catch(()=>{}),u}async _runPersistence(e,r,n,o){let i=o?NM:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new oo;try{return await n()}catch(a){this._throwIfPersistenceCanceled(e,r,o);let c=this._persistenceRetryDelay(a,s,o);if(c===void 0)throw a;await this._delay(c)}}throw new Z}_isLegacyPersistenceGateClosed(e){return e?.credentialShape==="legacy"&&!this._shouldPersist()}_throwIfPersistenceCanceled(e,r,n){if(n!==void 0&&e.latestMutationGeneration!==r||this._isLegacyPersistenceGateClosed(n))throw new oo}_persistenceRetryDelay(e,r,n){let o=n?jg[r]:void 0,i=!(e instanceof Z)&&md(e);if(o===void 0||!i){n&&Bt.warn("MCP OAuth credential persistence exhausted retries",{attempts:r+1,credentialShape:n.credentialShape,operation:n.operation});return}return o}_upsertUserSecretOnce(e,r,n,o){return typeof e.upsertUserSecretOnce=="function"?e.upsertUserSecretOnce(r,n,o):e.upsertUserSecret(r,n,o)}_deleteUserSecretOnce(e,r){return typeof e.deleteUserSecretOnce=="function"?e.deleteUserSecretOnce(r):e.deleteUserSecret(r)}_writeLegacyKey(e,r,n,o){let i=0,s=this._enqueueWrite(Wt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Wt(e),mi(r,o));return this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e),c},{credentialShape:"legacy",operation:"write",onGeneration:a=>{i=a,this._dirtyGenerations.set(e,a)}});return s.catch(a=>{(a instanceof oo||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=At(r),i=this._registryMemoryCommittedAuthorities.get(e),s=n?.preserveNameState===!0&&(i===void 0||i!==o),a=(this._registryMemoryWriteGenerations.get(e)??0)+1;this._registryMemoryWriteGenerations.set(e,a),this._registryMemoryAuthorities.delete(e);let c=this._getClient(),u=Tt(r),d;u&&r&&(c?d=this._enqueueWrite(u,()=>{let p=this._getClient();if(!p)throw new Error("MCP secrets client unavailable");return this._retireRegistryCredential(p,u,r)},{credentialShape:"registry",operation:"delete"}):d=Promise.reject(new Z));let l=this._shouldPersist()&&!s,f;return l&&(c?f=this._enqueueWrite(Wt(e),async()=>{let p=await c.upsertUserSecret(Wt(e),LM)}):f=Promise.reject(new Z)),this._awaitRetirements(e,d,f).then(()=>{this._registryMemoryWriteGenerations.get(e)===a&&(this._memory.retireCredential(e,r,{preserveNameState:s}),s||(this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e)))})}async _awaitRetirements(e,r,n){let[o,i]=await Promise.allSettled([r,n]);if(o.status==="rejected"&&Bt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Bt.error(`Failed to retire legacy MCP OAuth credential for "${e}" durably`),o.status==="rejected")throw o.reason;if(i.status==="rejected")throw i.reason}delete(e,r){if(this._memory.delete(e),this._memory.clearAuthRequired(e),this._dirtyGenerations.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._retireRegistryKey(r),!this._shouldPersist()){this._dirtyGenerations.delete(e);return}let n=Wt(e);if(!this._canScheduleDurableOperation(n)){this._dirtyGenerations.delete(e);return}let o=0;this._enqueueWrite(n,async()=>{let s=this._getClient();if(!s)throw new Error("MCP secrets client unavailable");await this._deleteUserSecretOnce(s,n)},{credentialShape:"legacy",operation:"delete",onGeneration:s=>{o=s,this._dirtyGenerations.set(e,s)}}).then(()=>{this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)}).catch(s=>{s instanceof oo&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=Tt(e);!r||!e||!this._canScheduleDurableOperation(r)||this._enqueueWrite(r,async()=>{let n=this._getClient();if(!n)throw new Error("MCP secrets client unavailable");await this._retireRegistryCredential(n,r,e)},{credentialShape:"registry",operation:"delete"}).catch(()=>{Bt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Lg(e)))}markAuthRequired(e){this._memory.markAuthRequired(e)}isAuthRequired(e){return this._memory.isAuthRequired(e)}clearAuthRequired(e){this._memory.clearAuthRequired(e)}hasInFlightWrite(e){return this._dirtyGenerations.has(e)}async _loadRegistryToken(e,r){let n=Tt(r),o=At(r);if(!n||!o||!r)return{identityRejected:!1};try{return await this._enqueueWrite(n,()=>this._readRegistryToken({client:e,key:n,expectedIdentity:o,registry:r}))}catch{return{identityRejected:!0}}}async _readRegistryToken(e){for(let r=0;r<ga;r+=1){let n=await this._readRegistryTokenAttempt(e);if(n!==void 0)return n}return{identityRejected:!0}}async _readRegistryTokenAttempt(e){let{client:r,key:n,expectedIdentity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return{identityRejected:!1,authorityVersion:"0"};let a=no(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=gd(s.value);if(!c)return{identityRejected:!0};if(a.credentialIdentity===o&&a.state==="active")return{identityRejected:!1,token:c};try{return await r.upsertUserSecret(n,mn(c,i),s.version),{identityRejected:!1,token:c}}catch(u){return this._isVersionConflict(u)?void 0:{identityRejected:!0}}}async _importLegacyToken(e,r,n,o){let i=Tt(n),s=At(n);if(!i||!s||!n||o===void 0)return;let a=await this._loadLegacyToken(e,r,n);if(a)try{return await this._enqueueWrite(i,async()=>{let c=await e.getUserSecretWithVersion(i);if((c?.version??"0")===o){if(c){let u=no(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,mn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Wt(r));return o?qM(o,n):void 0}catch{return}}async ensureLoaded(e,r){if(this._memory.get(e)||!this._shouldPersist()||this.hasInFlightWrite(e))return;let o=this._getClient();if(!o)return;let i=this._memory.credentialRetirementGeneration(e),s=await this._loadRegistryToken(o,r);if(s.identityRejected)return;let a=s.token?{identityMatched:!0,token:s.token}:void 0;if(!(this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i)){if(!a){if(this._memory.isCredentialRetired(e))return;a=r?.id?await this._importLegacyToken(o,e,r,s.authorityVersion):await this._loadLegacyToken(o,e,r)}if(!a){Bt.debug(`Backend secret for MCP server "${e}" is not a usable OAuth token; ignoring`);return}this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i||(this.commit(e,a.token,a.identityMatched?r:void 0),Bt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Ug="Augment Code",qg="https://augmentcode.com",Hg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var GM=1e3,ZM=500;function _d(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function _i(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var vd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Gg(t){return new URLSearchParams({k:t}).toString().slice(2)}function BM(t,e){let r=`${Gg(t)}:${Gg(e)}`;return`Basic ${btoa(r)}`}function Vg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function WM(t){return t.client.token_endpoint_auth_method==="none"||!Vg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function VM(t){return t==="basic"?"body":t==="body"?"basic":void 0}function KM(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var JM=401,Kg=500;function Sd(t,...e){return t.status<Kg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Zg(t){return Sd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===JM}async function Bg(t,e,r){let n={"Content-Type":"application/x-www-form-urlencoded"},o=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken});r&&o.set("resource",r);let i=Vg(t);e==="basic"&&i?n.Authorization=BM(t.client.client_id,i):(o.set("client_id",t.client.client_id),e==="body"&&i&&o.set("client_secret",i));let s=await fetch(t.serverMetadata.token_endpoint,{method:"POST",headers:n,body:o.toString(),signal:AbortSignal.timeout(1e4)});if(!s.ok){let c=await s.text().catch(()=>""),u=KM(c),d=c.slice(0,ZM);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new vd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*GM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Wg(t,e){try{return await Bg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&Sd(r,"invalid_target"))return await Bg(t,e,void 0);throw r}}var gn=class t extends Error{status;statusText;body;oauthErrorCode;clientAuthPlacementsExhausted;constructor(e,r,n,o,i=!1){super(`Token refresh failed: ${e} ${r}${n?` \u2014 ${n}`:""}`),this.name="RefreshHttpError",this.status=e,this.statusText=r,this.body=n,this.oauthErrorCode=o,this.clientAuthPlacementsExhausted=i}withClientAuthPlacementsExhausted(){return new t(this.status,this.statusText,this.body,this.oauthErrorCode,!0)}};function wd(t){return!(t instanceof gn)||t.status>=Kg?!1:Sd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function bd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=WM(t);try{return await Wg(e,r)}catch(n){let o=VM(r);if(!(n instanceof gn)||!o||!Zg(n))throw n;try{return await Wg(e,o)}catch(i){throw i instanceof gn&&Zg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as G0}from"@hermes/logger";var Pd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Pd="oauth4webapi/v3.8.6");function co(t,e){if(t==null)return!1;try{return t instanceof e||Object.getPrototypeOf(t)[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]}catch{return!1}}var Vt="ERR_INVALID_ARG_VALUE",Ye="ERR_INVALID_ARG_TYPE";function he(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var Ad=Symbol(),YM=Symbol(),XM=Symbol(),vn=Symbol();var Jg=Symbol();var QM=new TextEncoder,e0=new TextDecoder;function xd(t){return typeof t=="string"?QM.encode(t):e0.decode(t)}var kd;Uint8Array.prototype.toBase64?kd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):kd=e=>{e instanceof ArrayBuffer&&(e=new Uint8Array(e));let r=[];for(let n=0;n<e.byteLength;n+=32768)r.push(String.fromCharCode.apply(null,e.subarray(n,n+32768)));return btoa(r.join("")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")};var Ed;Uint8Array.fromBase64?Ed=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:Ed=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}};function _a(t){return typeof t=="string"?Ed(t):kd(t)}var so=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=$0,Error.captureStackTrace?.(this,this.constructor)}},Si=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,r?.code&&(this.code=r?.code),Error.captureStackTrace?.(this,this.constructor)}};function O(t,e,r){return new Si(t,{code:e,cause:r})}function Sa(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Md(t){co(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Pd&&!e.has("user-agent")&&e.set("user-agent",Pd),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function $d(t,e){if(e!==void 0){if(typeof e=="function"&&(e=e(t.href)),!(e instanceof AbortSignal))throw he('"options.signal" must return or be an instance of AbortSignal',Ye);return e}}function t0(t){return t.includes("//")?t.replace("//","/"):t}function r0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=t0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function n0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Ye);ay(t,n?.[Ad]!==!0);let o=r(new URL(t.href)),i=Md(n?.headers);return i.set("accept","application/json"),(n?.[vn]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:$d(o,n?.signal)})}function io(t,e,r,n,o){try{if(typeof t!="number"||!Number.isFinite(t))throw he(`${r} must be a number`,Ye,o);if(t>0)return;if(e){if(t!==0)throw he(`${r} must be a non-negative number`,Vt,o);return}throw he(`${r} must be a positive number`,Vt,o)}catch(i){throw n?O(i.message,n,o):i}}function $e(t,e,r,n){try{if(typeof t!="string")throw he(`${e} must be a string`,Ye,n);if(t.length===0)throw he(`${e} must not be empty`,Vt,n)}catch(o){throw r?O(o.message,r,n):o}}async function Qg(t,e){let r=t;if(!(r instanceof URL)&&r!==Ra)throw he('"expectedIssuerIdentifier" must be an instance of URL',Ye);if(!co(e,Response))throw he('"response" must be an instance of Response',Ye);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',Fd,e);Ri(e);let n=await ka(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==Ra&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Pa,{expected:r.href,body:n,attribute:"issuer"});return n}function ey(t){i0(t,"application/json")}function o0(t,...e){let r='"response" content-type must be ';if(e.length>2){let n=e.pop();r+=`${e.join(", ")}, or ${n}`}else e.length===2?r+=`${e[0]} or ${e[1]}`:r+=e[0];return O(r,O0,t)}function i0(t,e){if(y0(t)!==e)throw o0(t,e)}function Id(){return _a(crypto.getRandomValues(new Uint8Array(32)))}function ty(){return Id()}function ry(){return Id()}function ny(){return Id()}async function oy(t){return $e(t,"codeVerifier"),_a(await crypto.subtle.digest("SHA-256",xd(t)))}function Od(t){let e=t?.[YM];return typeof e=="number"&&Number.isFinite(e)?e:0}function zd(t){let e=t?.[XM];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Nd(){return Math.floor(Date.now()/1e3)}function Ca(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Ye);$e(t.issuer,'"as.issuer"')}function Dd(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Ye);$e(t.client_id,'"client.client_id"')}function Yg(t){return encodeURIComponent(t).replace(/(?:[-_.!~*'()]|%20)/g,e=>{switch(e){case"-":case"_":case".":case"!":case"~":case"*":case"'":case"(":case")":return`%${e.charCodeAt(0).toString(16).toUpperCase()}`;case"%20":return"+";default:throw new Error}})}function Ld(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function iy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=Yg(r.client_id),s=Yg(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function sy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var s0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function ay(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",z0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",N0,t)}function Xg(t,e,r,n){let o;if(typeof t!="string"||!(o=s0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?D0:L0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return ay(o,n),o}function cy(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?Xg(t.mtls_endpoint_aliases[e],e,r,n):Xg(t[e],e,r,n)}var ao=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=M0,this.cause=r.cause,this.error=r.cause.error,this.status=r.response.status,this.error_description=r.cause.error_description,Object.defineProperty(this,"response",{enumerable:!1,value:r.response}),Error.captureStackTrace?.(this,this.constructor)}},wi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=I0,this.cause=r.cause,this.error=r.cause.get("error"),this.error_description=r.cause.get("error_description")??void 0,Error.captureStackTrace?.(this,this.constructor)}},bi=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=A0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},wa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",a0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",c0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',u0="("+wa+")\\s*=\\s*"+c0,d0="("+wa+")\\s*=\\s*("+wa+")",l0=new RegExp("^[,\\s]*("+wa+")"),f0=new RegExp("^[,\\s]*"+u0+"[,\\s]*(.*)"),p0=new RegExp("^[,\\s]*"+d0+"[,\\s]*(.*)"),h0=new RegExp("^("+a0+")(?:$|[,\\s])(.*)");function m0(t){if(!co(t,Response))throw he('"response" must be an instance of Response',Ye);let e=t.headers.get("www-authenticate");if(e===null)return;let r=[],n=e;for(;n;){let o=n.match(l0),i=o?.[1].toLowerCase();if(!i)return;let s=n.substring(o[0].length);if(s&&!s.match(/^[\s,]/))return;let a=s.match(/^\s+(.*)$/),c=!!a;n=a?a[1]:void 0;let u={},d;if(c)for(;n;){let f,p;if(o=n.match(f0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(p0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(h0)){if(Object.keys(u).length)break;[,d,n]=o;break}return}else n=s||void 0;let l={scheme:i,parameters:u};d&&(l.token68=d),r.push(l)}if(r.length)return r}async function g0(t){if(t.status>399&&t.status<500){Ri(t),ey(t);try{let e=await t.clone().json();if(Sa(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function uy(t,e,r){if(t.status!==e){w0(t);let n;throw(n=await g0(t))?(await t.body?.cancel(),new ao("server responded with an error in the response body",{cause:n,response:t})):O(`"response" is not a conform ${r} response (unexpected HTTP status code)`,Fd,t)}}function dy(t){if(!jd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function y0(t){return t.headers.get("content-type")?.split(";")[0]}async function v0(t,e,r,n,o,i,s){return await r(t,e,o,i),i.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),(s?.[vn]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:$d(n,s?.signal)})}async function _0(t,e,r,n,o,i){let s=cy(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Ad]!==!0);o.set("grant_type",n);let a=Md(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(dy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await v0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var ly=new WeakMap,S0=new WeakMap;function fy(t){if(!t.id_token)return;let e=ly.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function py(t,e,r,n,o,i){if(Ca(t),Dd(e),!co(r,Response))throw he('"response" must be an instance of Response',Ye);await uy(r,200,"Token Endpoint"),Ri(r);let s=await ka(r);if($e(s.access_token,'"response" body "access_token" property',V,{body:s}),$e(s.token_type,'"response" body "token_type" property',V,{body:s}),s.token_type=s.token_type.toLowerCase(),s.expires_in!==void 0){let a=typeof s.expires_in!="number"?parseFloat(s.expires_in):s.expires_in;io(a,!0,'"response" body "expires_in" property',V,{body:s}),s.expires_in=a}if(s.refresh_token!==void 0&&$e(s.refresh_token,'"response" body "refresh_token" property',V,{body:s}),s.scope!==void 0&&typeof s.scope!="string")throw O('"response" body "scope" property must be a string',V,{body:s});if(s.id_token!==void 0){$e(s.id_token,'"response" body "id_token" property',V,{body:s});let a=["aud","exp","iat","iss","sub"];e.require_auth_time===!0&&a.push("auth_time"),e.default_max_age!==void 0&&(io(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await j0(s.id_token,F0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Od(e),zd(e),o).then(k0.bind(void 0,a)).then(R0.bind(void 0,t)).then(b0.bind(void 0,e.client_id));if(Array.isArray(c.aud)&&c.aud.length!==1){if(c.azp===void 0)throw O('ID Token "aud" (audience) claim includes additional untrusted audiences',zr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',zr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&io(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),S0.set(r,u),ly.set(s,c)}if(i?.[s.token_type]!==void 0)i[s.token_type](r,s);else if(s.token_type!=="dpop"&&s.token_type!=="bearer")throw new so("unsupported `token_type` value",{cause:{body:s}});return s}function w0(t){let e;if(e=m0(t))throw new bi("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function b0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',zr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',zr,{expected:t,claims:e.claims,claim:"aud"});return e}function R0(t,e){let r=t[H0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',zr,{expected:r,claims:e.claims,claim:"iss"});return e}var jd=new WeakSet;function C0(t){return jd.add(t),t}var P0=Symbol();async function hy(t,e,r,n,o,i,s){if(Ca(t),Dd(e),!jd.has(n))throw he('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Vt);$e(o,'"redirectUri"');let a=yn(n,"code");if(!a)throw O('no authorization code in "callbackParameters"',V);let c=new URLSearchParams(s?.additionalParameters);return c.set("redirect_uri",o),c.set("code",a),i!==P0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),_0(t,e,r,"authorization_code",c,s)}var x0={aud:"audience",c_hash:"code hash",client_id:"client id",exp:"expiration time",iat:"issued at",iss:"issuer",jti:"jwt id",nonce:"nonce",s_hash:"state hash",sub:"subject",ath:"access token hash",htm:"http method",htu:"http uri",cnf:"confirmation",auth_time:"authentication time"};function k0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${x0[r]}) claim missing`,V,{claims:e.claims});return e}var Rd=Symbol(),Cd=Symbol();async function my(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?E0(t,e,r,n.expectedNonce,n.maxAge,n[Jg],n.recognizedTokenTypes):T0(t,e,r,n?.[Jg],n?.recognizedTokenTypes)}async function E0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=Rd;break;case Rd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Cd;break;case Cd:break;default:io(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await py(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=fy(c);if(o!==Cd){let d=Nd()+Od(e),l=zd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",ba,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===Rd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',zr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',zr,{expected:n,claims:u,claim:"nonce"});return c}async function T0(t,e,r,n,o){let i=await py(t,e,r,void 0,n,o),s=fy(i);if(s){if(e.default_max_age!==void 0){io(e.default_max_age,!0,'"client.default_max_age"');let a=Nd()+Od(e),c=zd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",ba,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',zr,{expected:void 0,claims:s,claim:"nonce"})}return i}var A0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",M0="OAUTH_RESPONSE_BODY_ERROR",$0="OAUTH_UNSUPPORTED_OPERATION",I0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Td="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var O0="OAUTH_RESPONSE_IS_NOT_JSON",Fd="OAUTH_RESPONSE_IS_NOT_CONFORM",z0="OAUTH_HTTP_REQUEST_FORBIDDEN",N0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",ba="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",zr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Pa="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var D0="OAUTH_MISSING_SERVER_METADATA",L0="OAUTH_INVALID_SERVER_METADATA";function Ri(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function j0(t,e,r,n,o){let{0:i,1:s,length:a}=t.split(".");if(a===5)if(o!==void 0)t=await o(t),{0:i,1:s,length:a}=t.split(".");else throw new so("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(xd(_a(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Td,l)}if(!Sa(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new so('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(xd(_a(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Td,l)}if(!Sa(u))throw O("JWT Payload must be a top level object",V,t);let d=Nd()+r;if(u.exp!==void 0){if(typeof u.exp!="number")throw O('unexpected JWT "exp" (expiration time) claim type',V,{claims:u});if(u.exp<=d-n)throw O('unexpected JWT "exp" (expiration time) claim value, expiration is past current timestamp',ba,{claims:u,now:d,tolerance:n,claim:"exp"})}if(u.iat!==void 0&&typeof u.iat!="number")throw O('unexpected JWT "iat" (issued at) claim type',V,{claims:u});if(u.iss!==void 0&&typeof u.iss!="string")throw O('unexpected JWT "iss" (issuer) claim type',V,{claims:u});if(u.nbf!==void 0){if(typeof u.nbf!="number")throw O('unexpected JWT "nbf" (not before) claim type',V,{claims:u});if(u.nbf>d+n)throw O('unexpected JWT "nbf" (not before) claim value',ba,{claims:u,now:d,tolerance:n,claim:"nbf"})}if(u.aud!==void 0&&typeof u.aud!="string"&&!Array.isArray(u.aud))throw O('unexpected JWT "aud" (audience) claim type',V,{claims:u});return{header:c,claims:u,jwt:t}}function F0(t,e,r,n){if(t!==void 0){if(typeof t=="string"?n.alg!==t:!t.includes(n.alg))throw O('unexpected JWT "alg" header parameter',V,{header:n,expected:t,reason:"client configuration"});return}if(Array.isArray(e)){if(!e.includes(n.alg))throw O('unexpected JWT "alg" header parameter',V,{header:n,expected:e,reason:"authorization server metadata"});return}if(r!==void 0){if(typeof r=="string"?n.alg!==r:typeof r=="function"?!r(n.alg):!r.includes(n.alg))throw O('unexpected JWT "alg" header parameter',V,{header:n,expected:r,reason:"default value"});return}throw O('missing client or server configuration to verify used JWT "alg" header parameter',void 0,{client:t,issuer:e,fallback:r})}function yn(t,e){let{0:r,length:n}=t.getAll(e);if(n>1)throw O(`"${e}" parameter must be provided only once`,V);return r}var U0=Symbol(),q0=Symbol();function gy(t,e,r,n){if(Ca(t),Dd(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw he('"parameters" must be an instance of URLSearchParams, or URL',Ye);if(yn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=yn(r,"iss"),i=yn(r,"state");if(!o&&t.authorization_response_iss_parameter_supported)throw O('response parameter "iss" (issuer) missing',V,{parameters:r});if(o&&o!==t.issuer)throw O('unexpected "iss" (issuer) response parameter value',V,{expected:t.issuer,parameters:r});switch(n){case void 0:case q0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case U0:break;default:if($e(n,'"expectedState" argument'),i!==n)throw O(i===void 0?'response parameter "state" missing':'unexpected "state" response parameter value',V,{expected:n,parameters:r})}if(yn(r,"error"))throw new wi("authorization response from the server is an error",{cause:r});let a=yn(r,"id_token"),c=yn(r,"token");if(a!==void 0||c!==void 0)throw new so("implicit and hybrid flows are not supported");return C0(new URLSearchParams(r))}async function yy(t,e,r){Ca(t);let n=cy(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Ad]!==!0),o=Md(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(dy(r.DPoP),await r.DPoP.addProof(n,o,i,r.initialAccessToken)),r?.initialAccessToken&&o.set("authorization",`${o.has("dpop")?"DPoP":"Bearer"} ${r.initialAccessToken}`);let s=await(r?.[vn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:$d(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function vy(t){if(!co(t,Response))throw he('"response" must be an instance of Response',Ye);await uy(t,201,"Dynamic Client Registration Endpoint"),Ri(t);let e=await ka(t);return $e(e.client_id,'"response" body "client_id" property',V,{body:e}),e.client_secret!==void 0&&$e(e.client_secret,'"response" body "client_secret" property',V,{body:e}),e.client_secret&&io(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function _y(t,e){return n0(t,"resourceIdentifier",r=>(r0(r,".well-known/oauth-protected-resource",!0),r),e)}async function xa(t,e){let r=t;if(!(r instanceof URL)&&r!==Ra)throw he('"expectedResourceIdentifier" must be an instance of URL',Ye);if(!co(e,Response))throw he('"response" must be an instance of Response',Ye);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',Fd,e);Ri(e);let n=await ka(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==Ra&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Pa,{expected:r.href,body:n,attribute:"resource"});return n}async function ka(t,e=ey){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Td,n)}if(!Sa(r))throw O('"response" body must be a top level object',V,{body:r});return r}var Ra=Symbol(),H0=Symbol();var by=G0.child({prefix:"pi-mcp"}),Ci=1e4,Z0=1e3,B0=401,Sy=200,W0=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,V0=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Ry;function uo(){return Ry??globalThis.fetch}function Cy(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Py(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function qd(t){let e=Py(t);try{let r=await K0(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await e$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Aa(r)}throw new Error("Failed to discover metadata URL")}async function K0(t){try{let e=await _y(t,{signal:AbortSignal.timeout(Ci),[vn]:Ry??void 0});return e.ok?await xa(t,e):(e.body?.cancel().catch(()=>{}),await xy(t,e.headers.get("www-authenticate"))??await wy(t))}catch{return await wy(t)}}async function wy(t){for(let e of["HEAD","GET"])try{let r=await uo()(t,{method:e,signal:AbortSignal.timeout(Ci)});r.body?.cancel().catch(()=>{});let n=await xy(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function xy(t,e){let r=Q0(e);if(r)try{let n=await uo()(r,{signal:AbortSignal.timeout(Ci)});return await J0(t,n)}catch{return}}async function J0(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await xa(t,new Response(r,n))}catch(o){if(!(o instanceof Si)||o.code!==Pa)throw o;let i=Y0(r);if(!i||!X0(i,t))throw o;return await xa(i,new Response(r,n))}}function Y0(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function X0(t,e){if(t.origin!==e.origin)return!1;let r=t.pathname.replace(/\/+$/,""),n=e.pathname.replace(/\/+$/,"");return r===n||n.startsWith(`${r}/`)}function Q0(t){if(!t)return;let e=t.match(W0),r=t.match(V0),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function e$(t){for(let e of t$(t))try{let r=new URL(e,t),n=await uo()(r,{signal:AbortSignal.timeout(Ci)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function t$(t){let e=t.pathname.startsWith("/")?t.pathname.slice(1):t.pathname;return[...e.length>0?[new URL(`/.well-known/oauth-authorization-server/${e}`,t),new URL(`/.well-known/openid-configuration/${e}`,t),new URL(`/${e}/.well-known/openid-configuration`,t)]:[],new URL("/.well-known/oauth-authorization-server",t),new URL("/.well-known/openid-configuration",t)]}async function Hd(t){try{let e=await uo()(t,{signal:AbortSignal.timeout(Ci)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await r$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await Qg(o,new Response(r,n))}catch(e){throw Aa(e)}}async function r$(t){if(!t.ok)throw new Error("Invalid status code from discovery response");let e=await t.json();if(!e.issuer||typeof e.issuer!="string")throw new Error("Invalid issuer from discovery response");return new URL(e.issuer)}var Ud=class extends Error{issuer;constructor(e){super(`This MCP server's authorization server (\`${e}\`) does not support Dynamic Client Registration. Configure a static OAuth Client ID and Secret in the Advanced section.`),this.name="McpOAuthDcrUnsupportedError",this.issuer=e}};function n$(t){if(!t.clientId)throw new Error("clientId is required to build client from config");let e=t.clientSecret?.trim();return{client_id:t.clientId,...e?{client_secret:e}:{}}}async function Gd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return n$({...t,clientId:n});if(!e.registration_endpoint)throw new Ud(e.issuer);return await o$(e,r)}async function o$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await yy(t,{client_name:Ug,client_uri:qg,logo_uri:Hg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:i$});return n.ok||by.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await vy(n)}catch(r){throw Aa(r)}}async function i$(t,e){let r=await uo()(t,Cy(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||by.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${a$(n)}`),r.status===200&&(o.status=201,o.statusText="Created"),o.status===201)try{let i=JSON.parse(n);i.client_secret_expires_at||(i.client_secret_expires_at=0),"client_secret"in i&&!i.client_secret&&(i.client_secret=void 0),n=JSON.stringify(i)}catch{}return new Response(n,o)}function s$(t,e){let r=new Headers(e?.headers),n=r.get("content-type"),o=e;return n?.toLowerCase().startsWith("application/x-www-form-urlencoded;")&&(r.set("content-type","application/x-www-form-urlencoded"),o={...e,headers:r}),uo()(t,Cy(o))}function a$(t){try{let e=JSON.parse(t);for(let r of Object.keys(e))/secret|token/i.test(r)&&(e[r]="[REDACTED]");return JSON.stringify(e)}catch{return t.length>Sy?`${t.slice(0,Sy)}\u2026`:t}}async function Ea(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=ty(),c=await oy(a),u=ry(),d,l=(o??r.scopes_supported?.join(" "))?.split(/\s+/).filter(Boolean),f=!1;!s?.disableOfflineAccessAugmentation&&l?.length&&!l.includes("offline_access")&&r.scopes_supported?.includes("offline_access")&&(l.push("offline_access"),f=!0);let p=l?.join(" ")||void 0,h=Py(i??t).toString(),m=new URL(r.authorization_endpoint);return m.searchParams.set("response_type","code"),m.searchParams.set("client_id",e.client_id),m.searchParams.set("code_challenge",c),m.searchParams.set("code_challenge_method","S256"),m.searchParams.set("redirect_uri",n),m.searchParams.set("resource",h),m.searchParams.set("state",u),p&&m.searchParams.set("scope",p),l?.includes("offline_access")&&m.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=ny(),m.searchParams.set("nonce",d)),{client:e,serverMetadata:r,redirectUri:n,codeVerifier:a,nonce:d,scope:p,state:u,resource:h,offlineAccessAugmented:f,authUri:m}}function Ta(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Zd(t){if(!t.resource)throw new Error("Cannot rebuild authorization state without a resource");let e=t.scope?.split(/\s+/).filter(r=>r&&r!=="offline_access").join(" ");return await Ea(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function c$(t,e,r){let n=await hy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:s$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return my(t.serverMetadata,t.client,await u$(n))}async function Bd(t,e){try{let r=gy(e.serverMetadata,e.client,t,e.state),n=await l$(e.client,o=>c$(e,r,o));return h$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Aa(r)}}async function u$(t){let e=await t.text(),r={status:t.status,statusText:t.statusText,headers:t.headers};try{let n=JSON.parse(e);if("id_token"in n)return n.id_token=void 0,new Response(JSON.stringify(n),r)}catch{}return new Response(e,r)}function ky(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function d$(t){let e=ky(t);return e===void 0?sy():t.token_endpoint_auth_method==="client_secret_basic"?iy(e):Ld(e)}async function l$(t,e){try{return await e(d$(t))}catch(r){let n=f$(t);if(n&&p$(r))return await e(n);throw r}}function f$(t){let e=ky(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Ld(e)}function p$(t){return t instanceof ao?t.error==="invalid_client"||t.error==="unauthorized":t instanceof bi?t.status===B0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function h$(t,e,r,n,o){if(!t.access_token)throw new Error("OAuth token response contained no access token");return{accessToken:t.access_token,refreshToken:t.refresh_token||n,expiresAt:t.expires_in?Date.now()+t.expires_in*Z0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Aa(t){if(t instanceof ao||t instanceof wi){let e=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${e}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var m$=/(authorization|auth[_-]?token|access[_-]?token|refresh[_-]?token|\btoken\b|secret|password|passwd|\bpwd\b|api[_-]?key|apikey|client[_-]?secret|private[_-]?key|cookie|session[_-]?id|credential|bearer)/i,Ey=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Ty=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Ay=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",g$=/[.*+?^${}()|[\]\\]/g;function Wd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function y$(t,e,r){try{let n=Array.isArray(t);if(n&&t.length>r.nodes)return r.marker;let o=Object.getPrototypeOf(t);if(!n&&o!==null&&o!==Object.prototype)return r.marker;r.active.add(t);let i=Object.keys(t);if(i.length>r.nodes)return r.marker;let s=n?[]:Object.create(null);for(let a of i){if(n&&!/^(0|[1-9]\d*)$/.test(a))continue;let c=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(s,n?a:Wd(a,r),{value:c&&"value"in c?My(c.value,e+1,r):r.marker,enumerable:!0,configurable:!0,writable:!0})}return s}catch{return r.marker}finally{r.active.delete(t)}}function My(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Wd(t,r);if(t===void 0)return t;if(t===null||typeof t=="boolean"||typeof t=="number"){if(typeof t=="number"&&!Number.isFinite(t))return r.marker;let n=JSON.stringify(t);return Wd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:y$(t,e,r)}function $y(t){let e=[...new Set(t)].filter(Boolean);if(e.length>128||e.reduce((i,s)=>i+s.length,0)>262144)return{text:()=>"",value:()=>{}};let r=e.length?new RegExp(e.sort((i,s)=>s.length-i.length).map(i=>i.replace(g$,"\\$&")).join("|"),"g"):void 0,n=e.some(i=>_n.includes(i))?"":_n,o=i=>{if(i.length>262144)return n;let s=r?i.replace(r,()=>n):i;return e.some(a=>s.includes(a))?n:s};return{text:o,value:i=>My(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var v$=500,_$=8192,S$=6;function w$(t){return Ey.test(t)||Ty.test(t)||Ay.test(t)}var b$=new RegExp(Ey.source,"g"),R$=new RegExp(Ty.source,"gi"),C$=new RegExp(Ay.source,"g");function Iy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Kd(t){return t&&Iy(t,_$).replace(b$,_n).replace(R$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(C$,_n)}function Vd(t,e,r){if(e)return _n;if(typeof t=="string")return w$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=S$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Vd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Vd(i,m$.test(o),r+1);return n}function Oy(t,e=v$){if(t==null)return;let r=Vd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Iy(n,e)}var Ny={reportError:()=>{}},zy=Symbol.for("__pi_mcp_error_reporter_slot__");function Dy(){let t=globalThis,e=t[zy];return e||(e={reporter:null},t[zy]=e),e}function Ly(t){let e=Dy(),r=e.reporter??Ny;return e.reporter=t,r}function P$(){return Dy().reporter??Ny}function Ma(t,e){try{P$().reportError(t,e)}catch{}}import{logger as x$}from"@hermes/logger";var Jd=x$.child({prefix:"pi-mcp"});function jy(t,e,r){let n=0,o=0,i=r?.authoritative?{}:{...t.headerSecrets};for(let[s,a]of Object.entries(e))typeof a=="string"&&a!==""?(i[s]=a,n++):a===null||a===""?s in i&&(delete i[s],o++):Jd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Jd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Fy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(yd)){let o=t.headerSecrets[e];if(o!==void 0)return o;let i=t.headerSecretFailures[e];if(i==="missing"||i==="permission_denied")return{reason:i}}let r=t.secretsClient;if(r)try{let o=await r.getSecret(e);return o!==void 0?(delete t.headerSecretFailures[e],o):{reason:t.headerSecretFailures[e]??"missing"}}catch{return{reason:"transient"}}let n=t.headerSecretFailures[e];return n===void 0?void 0:{reason:n}}}function Uy(t,e,r){t.headerSecretFailures??={};let n=r?.authoritative?{}:{...t.headerSecretFailures},o={...t.headerSecrets};for(let[i,s]of Object.entries(e))(s==="missing"||s==="permission_denied"||s==="transient")&&(n[i]=s,delete o[i]);t.headerSecrets=o,t.headerSecretFailures=n,Jd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function qy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as k$}from"@hermes/logger";var Pi=k$.child({prefix:"pi-mcp"}),E$="$augment-",xi=/\$augment-[a-zA-Z0-9_.-]+/g,T$=new RegExp(xi.source);function Nr(t){return T$.test(t)}function $a(t){return t.slice(E$.length)}function ki(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(xi))e.add($a(n[0]));return[...e].sort()}var A$=["permission_denied","missing","transient"];function Hy(t){let e=new Set(t);return A$.find(r=>e.has(r))??"missing"}var gt=class extends Error{serverName;missingKeys;reason;constructor(e,r,n,o=n===void 0?"missing":"transient"){super(`MCP server "${e}" not started: missing secret(s) ${r.join(", ")}`,n===void 0?void 0:{cause:n}),this.name="McpSecretResolutionError",this.serverName=e,this.missingKeys=r,this.reason=o}};async function Gy(t,e,r,n,o,i,s){let a=[...t.matchAll(xi)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=$a(d);try{let p=await r(f);if(p===void 0||typeof p=="object"){n.add(f),i.set(f,p===void 0?"missing":p.reason),Pi.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),Pi.warn(`Secret "${f}" resolved empty for "${e}"`));let m=c.slice(0,l),g=s?s(h,m):h;c=m+g+c.slice(l+d.length),Pi.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),Pi.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Zy({configEnv:t,localEnv:e,getSecret:r}){let n={},o=new Set,i=new Set,s=new Map;for(let[a,c]of Object.entries(t)){if(!Nr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){Pi.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Gy(c,a,r,o,i,s)}return{resolved:n,unresolvedKeys:[...o].sort(),emptyKeys:[...i].sort(),...s.size===0?{}:{failureReasons:Object.fromEntries([...s.entries()].sort(([a],[c])=>a.localeCompare(c)))}}}var M$=/["$`\\]/g;function $$(t){let e="unquoted",r=0;for(;r<t.length;){let n=t[r];if(e==="single"){n==="'"&&(e="unquoted"),r+=1;continue}if(e==="double"){if(n==="\\"){r+=2;continue}n==='"'&&(e="unquoted"),r+=1;continue}if(n==="\\"){r+=2;continue}n==="'"?e="single":n==='"'&&(e="double"),r+=1}return e}function I$(t,e){let r=$$(e);if(r==="double")return t.replace(M$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function By(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Gy(t,"command",e,n,o,i,r?I$:void 0),unresolvedKeys:[...n].sort(),emptyKeys:[...o].sort(),...i.size===0?{}:{failureReasons:Object.fromEntries([...i.entries()].sort(([a],[c])=>a.localeCompare(c)))}}}import{AsyncLocalStorage as pq}from"node:async_hooks";var Wy,Yd=Object.freeze({status:"aborted"});function S(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=s.prototype,d=Object.keys(u);for(let l=0;l<d.length;l++){let f=d[l];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:t});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let d of u._zod.deferred)d();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var Kt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},lo=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Wy=globalThis).__zod_globalConfig??(Wy.__zod_globalConfig={});var fo=globalThis.__zod_globalConfig;function Xe(t){return t&&Object.assign(fo,t),fo}var H={};qu(H,{BIGINT_FORMAT_RANGES:()=>Yy,Class:()=>Qd,NUMBER_FORMAT_RANGES:()=>il,aborted:()=>jr,allowsEval:()=>rl,assert:()=>L$,assertEqual:()=>O$,assertIs:()=>N$,assertNever:()=>D$,assertNotEqual:()=>z$,assignProp:()=>Dr,base64ToUint8Array:()=>Qy,base64urlToUint8Array:()=>tI,cached:()=>ho,captureStackTrace:()=>za,cleanEnum:()=>eI,cleanRegex:()=>Mi,clone:()=>yt,cloneDef:()=>F$,createTransparentProxy:()=>B$,defineLazy:()=>X,esc:()=>Oa,escapeRegex:()=>cr,explicitlyAborted:()=>sl,extend:()=>K$,finalizeIssue:()=>vt,floatSafeRemainder:()=>el,getElementAtPath:()=>U$,getEnumValues:()=>Ti,getLengthableOrigin:()=>$i,getParsedType:()=>Z$,getSizableOrigin:()=>Xy,hexToUint8Array:()=>nI,isObject:()=>Sn,isPlainObject:()=>Lr,issue:()=>mo,joinValues:()=>Ia,jsonStringifyReplacer:()=>po,merge:()=>Y$,mergeDefs:()=>ar,normalizeParams:()=>A,nullish:()=>Ai,numKeys:()=>G$,objectClone:()=>j$,omit:()=>V$,optionalKeys:()=>ol,parsedType:()=>al,partial:()=>X$,pick:()=>W$,prefixIssues:()=>ur,primitiveTypes:()=>Jy,promiseAllObject:()=>q$,propertyKeyTypes:()=>nl,randomString:()=>H$,required:()=>Q$,safeExtend:()=>J$,shallowClone:()=>Ky,slugify:()=>tl,stringifyPrimitive:()=>Na,uint8ArrayToBase64:()=>ev,uint8ArrayToBase64url:()=>rI,uint8ArrayToHex:()=>oI,unwrapMessage:()=>Ei});function O$(t){return t}function z$(t){return t}function N$(t){}function D$(t){throw new Error("Unexpected value in exhaustive check")}function L$(t){}function Ti(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,o])=>e.indexOf(+n)===-1).map(([n,o])=>o)}function Ia(t,e="|"){return t.map(r=>Na(r)).join(e)}function po(t,e){return typeof e=="bigint"?e.toString():e}function ho(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ai(t){return t==null}function Mi(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function el(t,e){let r=t/e,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var Vy=Symbol("evaluating");function X(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Vy)return n===void 0&&(n=Vy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function j$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Dr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ar(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function F$(t){return ar(t._zod.def)}function U$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function q$(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<e.length;i++)o[e[i]]=n[i];return o})}function H$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function Oa(t){return JSON.stringify(t)}function tl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var za="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var rl=ho(()=>{if(fo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Lr(t){if(Sn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Sn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ky(t){return Lr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function G$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var Z$=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},nl=new Set(["string","number","symbol"]),Jy=new Set(["string","number","bigint","boolean","symbol","undefined"]);function cr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function A(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function B$(t){let e;return new Proxy({},{get(r,n,o){return e??(e=t()),Reflect.get(e,n,o)},set(r,n,o,i){return e??(e=t()),Reflect.set(e,n,o,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,o){return e??(e=t()),Reflect.defineProperty(e,n,o)}})}function Na(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function ol(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var il={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Yy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function W$(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=r.shape[a])}return Dr(this,"shape",s),s},checks:[]});return yt(t,i)}function V$(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return Dr(this,"shape",s),s},checks:[]});return yt(t,i)}function K$(t,e){if(!Lr(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ar(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Dr(this,"shape",i),i}});return yt(t,o)}function J$(t,e){if(!Lr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Dr(this,"shape",n),n}});return yt(t,r)}function Y$(t,e){if(t._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Dr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function X$(t,e,r){let o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ar(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return Dr(this,"shape",c),c},checks:[]});return yt(e,s)}function Q$(t,e,r){let n=ar(e._zod.def,{get shape(){let o=e._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new t({type:"nonoptional",innerType:o[s]});return Dr(this,"shape",i),i}});return yt(e,n)}function jr(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function sl(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue===!1)return!0;return!1}function ur(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ei(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ei(t.inst?._zod.def?.error?.(t))??Ei(e?.error?.(t))??Ei(r.customError?.(t))??Ei(r.localeError?.(t))??"Invalid input",{inst:o,continue:i,input:s,...a}=t;return a.path??(a.path=[]),a.message=n,e?.reportInput&&(a.input=s),a}function Xy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function $i(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function al(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function mo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function eI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Qy(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}function ev(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function tI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Qy(e+r)}function rI(t){return ev(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function nI(t){let e=t.replace(/^0x/,"");if(e.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)r[n/2]=Number.parseInt(e.slice(n,n+2),16);return r}function oI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Qd=class{constructor(...e){}};var tv=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,po,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Da=S("$ZodError",tv),cl=S("$ZodError",tv,{Parent:Error});function ul(t,e=r=>r.message){let r={},n=[];for(let o of t.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(e(o))):n.push(e(o));return{formErrors:n,fieldErrors:r}}function dl(t,e=r=>r.message){let r={_errors:[]},n=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)r._errors.push(e(s));else{let c=r,u=0;for(;u<a.length;){let d=a[u];u===a.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(e(s))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}}};return n(t),r}var La=t=>(e,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Kt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Xe())));throw za(a,o?.callee),a}return s.value};var ja=t=>async(e,r,n,o)=>{let i=n?{...n,async:!0}:{async:!0},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Xe())));throw za(a,o?.callee),a}return s.value};var Ii=t=>(e,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new Kt;return i.issues.length?{success:!1,error:new(t??Da)(i.issues.map(s=>vt(s,o,Xe())))}:{success:!0,data:i.value}},Oi=Ii(cl),zi=t=>async(e,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=e._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(s=>vt(s,o,Xe())))}:{success:!0,data:i.value}},Fa=zi(cl),rv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return La(t)(e,r,o)};var nv=t=>(e,r,n)=>La(t)(e,r,n);var ov=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return ja(t)(e,r,o)};var iv=t=>async(e,r,n)=>ja(t)(e,r,n);var sv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ii(t)(e,r,o)};var av=t=>(e,r,n)=>Ii(t)(e,r,n);var cv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var uv=t=>async(e,r,n)=>zi(t)(e,r,n);var dv=/^[cC][0-9a-z]{6,}$/,lv=/^[0-9a-z]+$/,fv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,pv=/^[0-9a-vA-V]{20}$/,hv=/^[A-Za-z0-9]{27}$/,mv=/^[a-zA-Z0-9_-]{21}$/,gv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var yv=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ll=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;var vv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var sI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function _v(){return new RegExp(sI,"u")}var Sv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,wv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var bv=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Rv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Cv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fl=/^[A-Za-z0-9_-]*$/;var Pv=/^https?$/,xv=/^\+[1-9]\d{6,14}$/,kv="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ev=new RegExp(`^${kv}$`);function Tv(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Av(t){return new RegExp(`^${Tv(t)}$`)}function Mv(t){let e=Tv({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${kv}T(?:${n})$`)}var $v=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Iv=/^-?\d+n?$/,Ov=/^-?\d+$/,pl=/^-?\d+(?:\.\d+)?$/,zv=/^(?:true|false)$/i,Nv=/^null$/i;var Dv=/^[^A-Z]*$/,Lv=/^[^a-z]*$/;var Ie=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),jv={number:"number",bigint:"bigint",object:"date"},hl=S("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=jv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<i&&(e.inclusive?o.maximum=e.value:o.exclusiveMaximum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value<=e.value:n.value<e.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),ml=S("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=jv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?o.minimum=e.value:o.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),Fv=S("$ZodCheckMultipleOf",(t,e)=>{Ie.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):el(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),Uv=S("$ZodCheckNumberFormat",(t,e)=>{Ie.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=il[e.format];t._zod.onattach.push(s=>{let a=s._zod.bag;a.format=e.format,a.minimum=o,a.maximum=i,r&&(a.pattern=Ov)}),t._zod.check=s=>{let a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:a,inst:t});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}a<o&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:t,continue:!e.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:t,continue:!e.abort})}});var qv=S("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<o&&(n._zod.bag.maximum=e.maximum)}),t._zod.check=n=>{let o=n.value;if(o.length<=e.maximum)return;let s=$i(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Hv=S("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;if(o.length>=e.minimum)return;let s=$i(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Gv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),t._zod.check=n=>{let o=n.value,i=o.length;if(i===e.length)return;let s=$i(o),a=i>e.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Di=S("$ZodCheckStringFormat",(t,e)=>{var r,n;Ie.init(t,e),t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Zv=S("$ZodCheckRegex",(t,e)=>{Di.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Bv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Dv),Di.init(t,e)}),Wv=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Lv),Di.init(t,e)}),Vv=S("$ZodCheckIncludes",(t,e)=>{Ie.init(t,e);let r=cr(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:t,continue:!e.abort})}}),Kv=S("$ZodCheckStartsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`^${cr(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),Jv=S("$ZodCheckEndsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`.*${cr(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var Yv=S("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ua=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
|
25
25
|
`).filter(s=>s),o=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(o)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let e=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new e(...r,o.join(`
|
|
26
|
-
`))}};var Qv={major:4,minor:4,patch:3};var te=_("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Qv;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let o of n)for(let i of o._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let o=(s,a,c)=>{let u=jr(s),d;for(let l of a){if(l._zod.def.when){if(il(s)||!l._zod.def.when(s))continue}else if(u)continue;let f=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&c?.async===!1)throw new Kt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=jr(s,f)))});else{if(s.issues.length===f)continue;u||(u=jr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(jr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Kt;return u.then(d=>t._zod.parse(d,c))}return t._zod.parse(u,c)};t._zod.run=(s,a)=>{if(a.skipChecks)return t._zod.parse(s,a);if(a.direction==="backward"){let u=t._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(d=>i(d,s,a)):i(u,s,a)}let c=t._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new Kt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}X(t,"~standard",()=>({validate:o=>{try{let i=Oi(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ja(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ha=_("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??$v(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),ce=_("$ZodStringFormat",(t,e)=>{Di.init(t,e),Ha.init(t,e)}),c_=_("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),u_=_("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=dl(n))}else e.pattern??(e.pattern=dl());ce.init(t,e)}),d_=_("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),l_=_("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Pv.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:t,continue:!e.abort});return}let o=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),f_=_("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=_v()),ce.init(t,e)}),p_=_("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),h_=_("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=dv),ce.init(t,e)}),m_=_("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=lv),ce.init(t,e)}),g_=_("$ZodULID",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e)}),y_=_("$ZodXID",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e)}),v_=_("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),__=_("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Mv(e)),ce.init(t,e)}),S_=_("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e)}),w_=_("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Av(e)),ce.init(t,e)}),b_=_("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),R_=_("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e),t._zod.bag.format="ipv4"}),C_=_("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e),t._zod.bag.format="ipv6",t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}});var P_=_("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),x_=_("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Rv),ce.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function k_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var E_=_("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{k_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function uI(t){if(!ll.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return k_(r)}var T_=_("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=ll),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{uI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),A_=_("$ZodE164",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e)});function dI(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||e&&(!("alg"in o)||o.alg!==e))}catch{return!1}}var M_=_("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{dI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var gl=_("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??fl,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:t,...i?{received:i}:{}}),r}}),$_=_("$ZodNumberFormat",(t,e)=>{Uv.init(t,e),gl.init(t,e)}),I_=_("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=zv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:t}),r}}),O_=_("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=Iv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}});var z_=_("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=Nv,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:t}),r}}),N_=_("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),D_=_("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),L_=_("$ZodNever",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});var j_=_("$ZodDate",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:t}),r}});function e_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var F_=_("$ZodArray",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:t}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],c=e.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(u=>e_(u,r,s))):e_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function qa(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...ur(r,t.issues))}if(!s&&!o){t.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}t.value===void 0?s&&(e.value[r]=void 0):e.value[r]=t.value}function U_(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=nl(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function q_(t,e,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,d=c.optin==="optional",l=c.optout==="optional";for(let f in e){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}let p=c.run({value:e[f],issues:[]},n);p instanceof Promise?t.push(p.then(h=>qa(h,r,f,e,d,l))):qa(p,r,f,e,d,l)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:i}),t.length?Promise.all(t).then(()=>r):r}var lI=_("$ZodObject",(t,e)=>{if(te.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=ho(()=>U_(e));X(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=Sn,i=e.catchall,s;t._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let d=[],l=s.shape;for(let f of s.keys){let p=l[f],h=p._zod.optin==="optional",m=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>qa(v,a,f,u,h,m))):qa(g,a,f,u,h,m)}return i?q_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),H_=_("$ZodObjectJIT",(t,e)=>{lI.init(t,e);let r=t._zod.parse,n=ho(()=>U_(e)),o=f=>{let p=new Fa(["shape","payload","ctx"]),h=n.value,m=b=>{let x=Ia(b);return`shape[${x}]._zod.run({ value: input[${x}], issues: [] }, ctx)`};p.write("const input = payload.value;");let g=Object.create(null),v=0;for(let b of h.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of h.keys){let x=g[b],S=Ia(b),R=f[b],I=R?._zod?.optin==="optional",ne=R?._zod?.optout==="optional";p.write(`const ${x} = ${m(b)};`),I&&ne?p.write(`
|
|
27
|
-
if (${
|
|
28
|
-
if (${
|
|
29
|
-
payload.issues = payload.issues.concat(${
|
|
26
|
+
`))}};var Qv={major:4,minor:4,patch:3};var te=S("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Qv;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let o of n)for(let i of o._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let o=(s,a,c)=>{let u=jr(s),d;for(let l of a){if(l._zod.def.when){if(sl(s)||!l._zod.def.when(s))continue}else if(u)continue;let f=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&c?.async===!1)throw new Kt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=jr(s,f)))});else{if(s.issues.length===f)continue;u||(u=jr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(jr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Kt;return u.then(d=>t._zod.parse(d,c))}return t._zod.parse(u,c)};t._zod.run=(s,a)=>{if(a.skipChecks)return t._zod.parse(s,a);if(a.direction==="backward"){let u=t._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(d=>i(d,s,a)):i(u,s,a)}let c=t._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new Kt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}X(t,"~standard",()=>({validate:o=>{try{let i=Oi(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Fa(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ga=S("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??$v(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),ce=S("$ZodStringFormat",(t,e)=>{Di.init(t,e),Ga.init(t,e)}),c_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),u_=S("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=ll(n))}else e.pattern??(e.pattern=ll());ce.init(t,e)}),d_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),l_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Pv.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:t,continue:!e.abort});return}let o=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),f_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=_v()),ce.init(t,e)}),p_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),h_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=dv),ce.init(t,e)}),m_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=lv),ce.init(t,e)}),g_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e)}),y_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e)}),v_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),__=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Mv(e)),ce.init(t,e)}),S_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e)}),w_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Av(e)),ce.init(t,e)}),b_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),R_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e),t._zod.bag.format="ipv4"}),C_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e),t._zod.bag.format="ipv6",t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}});var P_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),x_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Rv),ce.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function k_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var E_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{k_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function uI(t){if(!fl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return k_(r)}var T_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=fl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{uI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),A_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e)});function dI(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||e&&(!("alg"in o)||o.alg!==e))}catch{return!1}}var M_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{dI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var yl=S("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??pl,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:t,...i?{received:i}:{}}),r}}),$_=S("$ZodNumberFormat",(t,e)=>{Uv.init(t,e),yl.init(t,e)}),I_=S("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=zv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:t}),r}}),O_=S("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=Iv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}});var z_=S("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=Nv,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:t}),r}}),N_=S("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),D_=S("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),L_=S("$ZodNever",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});var j_=S("$ZodDate",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:t}),r}});function e_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var F_=S("$ZodArray",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:t}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],c=e.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(u=>e_(u,r,s))):e_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Ha(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...ur(r,t.issues))}if(!s&&!o){t.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}t.value===void 0?s&&(e.value[r]=void 0):e.value[r]=t.value}function U_(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=ol(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function q_(t,e,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,d=c.optin==="optional",l=c.optout==="optional";for(let f in e){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}let p=c.run({value:e[f],issues:[]},n);p instanceof Promise?t.push(p.then(h=>Ha(h,r,f,e,d,l))):Ha(p,r,f,e,d,l)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:i}),t.length?Promise.all(t).then(()=>r):r}var lI=S("$ZodObject",(t,e)=>{if(te.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=ho(()=>U_(e));X(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=Sn,i=e.catchall,s;t._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let d=[],l=s.shape;for(let f of s.keys){let p=l[f],h=p._zod.optin==="optional",m=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>Ha(v,a,f,u,h,m))):Ha(g,a,f,u,h,m)}return i?q_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),H_=S("$ZodObjectJIT",(t,e)=>{lI.init(t,e);let r=t._zod.parse,n=ho(()=>U_(e)),o=f=>{let p=new Ua(["shape","payload","ctx"]),h=n.value,m=_=>{let R=Oa(_);return`shape[${R}]._zod.run({ value: input[${R}], issues: [] }, ctx)`};p.write("const input = payload.value;");let g=Object.create(null),v=0;for(let _ of h.keys)g[_]=`key_${v++}`;p.write("const newResult = {};");for(let _ of h.keys){let R=g[_],w=Oa(_),C=f[_],I=C?._zod?.optin==="optional",ne=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(_)};`),I&&ne?p.write(`
|
|
27
|
+
if (${R}.issues.length) {
|
|
28
|
+
if (${w} in input) {
|
|
29
|
+
payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
|
|
30
30
|
...iss,
|
|
31
|
-
path: iss.path ? [${
|
|
31
|
+
path: iss.path ? [${w}, ...iss.path] : [${w}]
|
|
32
32
|
})));
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
if (${
|
|
37
|
-
if (${
|
|
38
|
-
newResult[${
|
|
36
|
+
if (${R}.value === undefined) {
|
|
37
|
+
if (${w} in input) {
|
|
38
|
+
newResult[${w}] = undefined;
|
|
39
39
|
}
|
|
40
40
|
} else {
|
|
41
|
-
newResult[${
|
|
41
|
+
newResult[${w}] = ${R}.value;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
`):I?p.write(`
|
|
45
|
-
if (${
|
|
46
|
-
payload.issues = payload.issues.concat(${
|
|
45
|
+
if (${R}.issues.length) {
|
|
46
|
+
payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
|
|
47
47
|
...iss,
|
|
48
|
-
path: iss.path ? [${
|
|
48
|
+
path: iss.path ? [${w}, ...iss.path] : [${w}]
|
|
49
49
|
})));
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
if (${
|
|
53
|
-
if (${
|
|
54
|
-
newResult[${
|
|
52
|
+
if (${R}.value === undefined) {
|
|
53
|
+
if (${w} in input) {
|
|
54
|
+
newResult[${w}] = undefined;
|
|
55
55
|
}
|
|
56
56
|
} else {
|
|
57
|
-
newResult[${
|
|
57
|
+
newResult[${w}] = ${R}.value;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
`):p.write(`
|
|
61
|
-
const ${
|
|
62
|
-
if (${
|
|
63
|
-
payload.issues = payload.issues.concat(${
|
|
61
|
+
const ${R}_present = ${w} in input;
|
|
62
|
+
if (${R}.issues.length) {
|
|
63
|
+
payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
|
|
64
64
|
...iss,
|
|
65
|
-
path: iss.path ? [${
|
|
65
|
+
path: iss.path ? [${w}, ...iss.path] : [${w}]
|
|
66
66
|
})));
|
|
67
67
|
}
|
|
68
|
-
if (!${
|
|
68
|
+
if (!${R}_present && !${R}.issues.length) {
|
|
69
69
|
payload.issues.push({
|
|
70
70
|
code: "invalid_type",
|
|
71
71
|
expected: "nonoptional",
|
|
72
72
|
input: undefined,
|
|
73
|
-
path: [${
|
|
73
|
+
path: [${w}]
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
if (${
|
|
78
|
-
if (${
|
|
79
|
-
newResult[${
|
|
77
|
+
if (${R}_present) {
|
|
78
|
+
if (${R}.value === undefined) {
|
|
79
|
+
newResult[${w}] = undefined;
|
|
80
80
|
} else {
|
|
81
|
-
newResult[${
|
|
81
|
+
newResult[${w}] = ${R}.value;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
`)}p.write("payload.value = newResult;"),p.write("return payload;");let w=p.compile();return(b,x)=>w(f,b,x)},i,s=Sn,a=!fo.jitless,u=a&&tl.value,d=e.catchall,l;t._zod.parse=(f,p)=>{l??(l=n.value);let h=f.value;return s(h)?a&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(e.shape)),f=i(f,p),d?q_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function t_(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let o=t.filter(i=>!jr(i));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>vt(s,n,Ye())))}),e)}var yl=_("$ZodUnion",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),X(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),X(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),X(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Mi(o.source)).join("|")})$`)}});let r=e.options.length===1?e.options[0]._zod.run:null;t._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,s=[];for(let a of e.options){let c=a._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}return i?Promise.all(s).then(a=>t_(a,n,t,o)):t_(s,n,t,o)}});var G_=_("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,yl.init(t,e);let r=t._zod.parse;X(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=ho(()=>{let o=e.options,i=new Map;for(let s of o){let a=s._zod.propValues?.[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let c of a){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,s)}}return i});t._zod.parse=(o,i)=>{let s=o.value;if(!Sn(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:t}),o;let a=n.value.get(s?.[e.discriminator]);return a?a._zod.run(o,i):e.unionFallback||i.direction==="backward"?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,options:Array.from(n.value.keys()),input:s,path:[e.discriminator],inst:t}),o)}}),Z_=_("$ZodIntersection",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value,i=e.left._zod.run({value:o,issues:[]},n),s=e.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([c,u])=>r_(r,c,u)):r_(r,i,s)}});function ml(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Lr(t)&&Lr(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(let i of n){let s=ml(t[i],e[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<t.length;n++){let o=t[n],i=e[n],s=ml(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function r_(t,e,r){let n=new Map,o;for(let a of e.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else t.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else t.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&t.issues.push({...o,keys:i}),jr(t))return t;let s=ml(e.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return t.value=s.data,t}var B_=_("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Lr(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:t}),r;let i=[],s=e.keyType._zod.values;if(s){r.value={};let a=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let d=e.keyType._zod.run({value:u,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(p=>vt(p,n,Ye())),input:u,path:[u],inst:t});continue}let l=d.value,f=e.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(p=>{p.issues.length&&r.issues.push(...ur(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...ur(u,f.issues)),r.value[l]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&fl.test(a)&&c.issues.length){let l=e.keyType._zod.run({value:Number(a),issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");l.issues.length===0&&(c=l)}if(c.issues.length){e.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(l=>vt(l,n,Ye())),input:a,path:[a],inst:t});continue}let d=e.valueType._zod.run({value:o[a],issues:[]},n);d instanceof Promise?i.push(d.then(l=>{l.issues.length&&r.issues.push(...ur(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...ur(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var W_=_("$ZodEnum",(t,e)=>{te.init(t,e);let r=Ti(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>rl.has(typeof o)).map(o=>typeof o=="string"?cr(o):o.toString()).join("|")})$`),t._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),V_=_("$ZodLiteral",(t,e)=>{if(te.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?cr(n):n?cr(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}});var K_=_("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new lo(t.constructor.name);let o=e.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r.fallback=!0,r));if(o instanceof Promise)throw new Kt;return r.value=o,r.fallback=!0,r}});function n_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var vl=_("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Mi(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let o=r.value,i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>n_(s,o)):n_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),J_=_("$ZodExactOptional",(t,e)=>{vl.init(t,e),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),Y_=_("$ZodNullable",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.innerType._zod.optin),X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Mi(r.source)}|null)$`):void 0}),X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),X_=_("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>o_(i,e)):o_(o,e)}});function o_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Q_=_("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),eS=_("$ZodNonOptional",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>i_(i,t)):i_(o,t)}});function i_(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var tS=_("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>vt(s,n,Ye()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=e.catchValue({...r,error:{issues:o.issues.map(i=>vt(i,n,Ye()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var _l=_("$ZodPipe",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>e.in._zod.values),X(t._zod,"optin",()=>e.in._zod.optin),X(t._zod,"optout",()=>e.out._zod.optout),X(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Ua(s,e.in,n)):Ua(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ua(i,e.out,n)):Ua(o,e.out,n)}});function Ua(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var rS=_("$ZodPreprocess",(t,e)=>{_l.init(t,e)}),nS=_("$ZodReadonly",(t,e)=>{te.init(t,e),X(t._zod,"propValues",()=>e.innerType._zod.propValues),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"optin",()=>e.innerType?._zod?.optin),X(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(s_):s_(o)}});function s_(t){return t.value=Object.freeze(t.value),t}var oS=_("$ZodCustom",(t,e)=>{Ie.init(t,e),te.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,o=e.fn(n);if(o instanceof Promise)return o.then(i=>a_(i,r,n,t));a_(o,r,n,t)}});function a_(t,e,r,n){if(!t){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),e.issues.push(mo(o))}}var fI=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(o){return t[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,s=sl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${za(o.values[0])}`:`Invalid option: expected one of ${$a(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=e(o.origin);return s?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=e(o.origin);return s?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${s.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${$a(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return o.options&&Array.isArray(o.options)&&o.options.length>0?`Invalid discriminator value. Expected ${o.options.map(s=>`'${s}'`).join(" | ")}`:"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function iS(){return{localeError:fI()}}var sS;var Sl=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function aS(){return new Sl}(sS=globalThis).__zod_globalRegistry??(sS.__zod_globalRegistry=aS());var Fr=globalThis.__zod_globalRegistry;function cS(t,e){return new t({type:"string",...A(e)})}function uS(t,e){return new t({type:"string",coerce:!0,...A(e)})}function dS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...A(e)})}function wl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...A(e)})}function lS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...A(e)})}function fS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(e)})}function pS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(e)})}function hS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(e)})}function bl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...A(e)})}function mS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...A(e)})}function gS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(e)})}function yS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...A(e)})}function vS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(e)})}function _S(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...A(e)})}function SS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...A(e)})}function wS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(e)})}function bS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(e)})}function RS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(e)})}function CS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(e)})}function PS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(e)})}function xS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...A(e)})}function kS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...A(e)})}function ES(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...A(e)})}function TS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...A(e)})}function AS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(e)})}function MS(t,e){return new t({type:"string",format:"date",check:"string_format",...A(e)})}function $S(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...A(e)})}function IS(t,e){return new t({type:"string",format:"duration",check:"string_format",...A(e)})}function OS(t,e){return new t({type:"number",checks:[],...A(e)})}function zS(t,e){return new t({type:"number",coerce:!0,checks:[],...A(e)})}function NS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...A(e)})}function DS(t,e){return new t({type:"boolean",...A(e)})}function LS(t,e){return new t({type:"boolean",coerce:!0,...A(e)})}function jS(t,e){return new t({type:"bigint",coerce:!0,...A(e)})}function FS(t,e){return new t({type:"null",...A(e)})}function US(t){return new t({type:"any"})}function qS(t){return new t({type:"unknown"})}function HS(t,e){return new t({type:"never",...A(e)})}function GS(t,e){return new t({type:"date",coerce:!0,...A(e)})}function go(t,e){return new pl({check:"less_than",...A(e),value:t,inclusive:!1})}function dr(t,e){return new pl({check:"less_than",...A(e),value:t,inclusive:!0})}function yo(t,e){return new hl({check:"greater_than",...A(e),value:t,inclusive:!1})}function Mt(t,e){return new hl({check:"greater_than",...A(e),value:t,inclusive:!0})}function Li(t,e){return new Fv({check:"multiple_of",...A(e),value:t})}function Ga(t,e){return new qv({check:"max_length",...A(e),maximum:t})}function vo(t,e){return new Hv({check:"min_length",...A(e),minimum:t})}function Za(t,e){return new Gv({check:"length_equals",...A(e),length:t})}function Rl(t,e){return new Zv({check:"string_format",format:"regex",...A(e),pattern:t})}function Cl(t){return new Bv({check:"string_format",format:"lowercase",...A(t)})}function Pl(t){return new Wv({check:"string_format",format:"uppercase",...A(t)})}function xl(t,e){return new Vv({check:"string_format",format:"includes",...A(e),includes:t})}function kl(t,e){return new Kv({check:"string_format",format:"starts_with",...A(e),prefix:t})}function El(t,e){return new Jv({check:"string_format",format:"ends_with",...A(e),suffix:t})}function Ur(t){return new Yv({check:"overwrite",tx:t})}function Tl(t){return Ur(e=>e.normalize(t))}function Al(){return Ur(t=>t.trim())}function Ml(){return Ur(t=>t.toLowerCase())}function $l(){return Ur(t=>t.toUpperCase())}function Il(){return Ur(t=>el(t))}function ZS(t,e,r){return new t({type:"array",element:e,...A(r)})}function BS(t,e,r){let n=A(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function WS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...A(r)})}function VS(t,e){let r=pI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(mo(o,n.value,r._zod.def));else{let i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(mo(i))}},t(n.value,n)),e);return r}function pI(t,e){let r=new Ie({check:"custom",...A(e)});return r._zod.check=t,r}function Ol(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Fr,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function we(t,e,r={path:[],schemaPath:[]}){var n;let o=t._zod.def,i=e.seen.get(t);if(i)return i.count++,r.schemaPath.includes(t)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,s);let a=t._zod.toJSONSchema?.();if(a)s.schema=a;else{let d={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,s.schema,d);else{let f=s.schema,p=e.processors[o.type];if(!p)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);p(t,e,f,d)}let l=t._zod.parent;l&&(s.ref||(s.ref=l),we(l,e,d),e.seen.get(l).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),e.io==="input"&&qe(t)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(t).schema}function zl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of t.seen.entries()){let a=t.metadataRegistry.get(s[0])?.id;if(a){let c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}let o=s=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let l=t.external.registry.get(s[0])?.id,f=t.external.uri??(h=>h);if(l)return{ref:f(l)};let p=s[1].defId??s[1].schema.id??`schema${t.counter++}`;return s[1].defId=p,{defId:p,ref:`${f("__shared")}#/${a}/${p}`}}if(s[1]===r)return{ref:"#"};let u=`#/${a}/`,d=s[1].schema.id??`__schema${t.counter++}`;return{defId:d,ref:u+d}},i=s=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:u}=o(s);a.def={...a.schema},u&&(a.defId=u);let d=a.schema;for(let l in d)delete d[l];d.$ref=c};if(t.cycles==="throw")for(let s of t.seen.entries()){let a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
85
|
+
`)}p.write("payload.value = newResult;"),p.write("return payload;");let b=p.compile();return(_,R)=>b(f,_,R)},i,s=Sn,a=!fo.jitless,u=a&&rl.value,d=e.catchall,l;t._zod.parse=(f,p)=>{l??(l=n.value);let h=f.value;return s(h)?a&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(e.shape)),f=i(f,p),d?q_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function t_(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let o=t.filter(i=>!jr(i));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>vt(s,n,Xe())))}),e)}var vl=S("$ZodUnion",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),X(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),X(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),X(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Mi(o.source)).join("|")})$`)}});let r=e.options.length===1?e.options[0]._zod.run:null;t._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,s=[];for(let a of e.options){let c=a._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}return i?Promise.all(s).then(a=>t_(a,n,t,o)):t_(s,n,t,o)}});var G_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,vl.init(t,e);let r=t._zod.parse;X(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=ho(()=>{let o=e.options,i=new Map;for(let s of o){let a=s._zod.propValues?.[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let c of a){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,s)}}return i});t._zod.parse=(o,i)=>{let s=o.value;if(!Sn(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:t}),o;let a=n.value.get(s?.[e.discriminator]);return a?a._zod.run(o,i):e.unionFallback||i.direction==="backward"?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,options:Array.from(n.value.keys()),input:s,path:[e.discriminator],inst:t}),o)}}),Z_=S("$ZodIntersection",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value,i=e.left._zod.run({value:o,issues:[]},n),s=e.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([c,u])=>r_(r,c,u)):r_(r,i,s)}});function gl(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Lr(t)&&Lr(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(let i of n){let s=gl(t[i],e[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<t.length;n++){let o=t[n],i=e[n],s=gl(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function r_(t,e,r){let n=new Map,o;for(let a of e.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else t.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else t.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&t.issues.push({...o,keys:i}),jr(t))return t;let s=gl(e.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return t.value=s.data,t}var B_=S("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Lr(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:t}),r;let i=[],s=e.keyType._zod.values;if(s){r.value={};let a=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let d=e.keyType._zod.run({value:u,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(p=>vt(p,n,Xe())),input:u,path:[u],inst:t});continue}let l=d.value,f=e.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(p=>{p.issues.length&&r.issues.push(...ur(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...ur(u,f.issues)),r.value[l]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&pl.test(a)&&c.issues.length){let l=e.keyType._zod.run({value:Number(a),issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");l.issues.length===0&&(c=l)}if(c.issues.length){e.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(l=>vt(l,n,Xe())),input:a,path:[a],inst:t});continue}let d=e.valueType._zod.run({value:o[a],issues:[]},n);d instanceof Promise?i.push(d.then(l=>{l.issues.length&&r.issues.push(...ur(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...ur(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var W_=S("$ZodEnum",(t,e)=>{te.init(t,e);let r=Ti(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>nl.has(typeof o)).map(o=>typeof o=="string"?cr(o):o.toString()).join("|")})$`),t._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),V_=S("$ZodLiteral",(t,e)=>{if(te.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?cr(n):n?cr(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}});var K_=S("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new lo(t.constructor.name);let o=e.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r.fallback=!0,r));if(o instanceof Promise)throw new Kt;return r.value=o,r.fallback=!0,r}});function n_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var _l=S("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Mi(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let o=r.value,i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>n_(s,o)):n_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),J_=S("$ZodExactOptional",(t,e)=>{_l.init(t,e),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),Y_=S("$ZodNullable",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.innerType._zod.optin),X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Mi(r.source)}|null)$`):void 0}),X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),X_=S("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>o_(i,e)):o_(o,e)}});function o_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Q_=S("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),eS=S("$ZodNonOptional",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>i_(i,t)):i_(o,t)}});function i_(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var tS=S("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>vt(s,n,Xe()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=e.catchValue({...r,error:{issues:o.issues.map(i=>vt(i,n,Xe()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var Sl=S("$ZodPipe",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>e.in._zod.values),X(t._zod,"optin",()=>e.in._zod.optin),X(t._zod,"optout",()=>e.out._zod.optout),X(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>qa(s,e.in,n)):qa(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>qa(i,e.out,n)):qa(o,e.out,n)}});function qa(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var rS=S("$ZodPreprocess",(t,e)=>{Sl.init(t,e)}),nS=S("$ZodReadonly",(t,e)=>{te.init(t,e),X(t._zod,"propValues",()=>e.innerType._zod.propValues),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"optin",()=>e.innerType?._zod?.optin),X(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(s_):s_(o)}});function s_(t){return t.value=Object.freeze(t.value),t}var oS=S("$ZodCustom",(t,e)=>{Ie.init(t,e),te.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,o=e.fn(n);if(o instanceof Promise)return o.then(i=>a_(i,r,n,t));a_(o,r,n,t)}});function a_(t,e,r,n){if(!t){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),e.issues.push(mo(o))}}var fI=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(o){return t[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,s=al(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Na(o.values[0])}`:`Invalid option: expected one of ${Ia(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=e(o.origin);return s?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=e(o.origin);return s?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${s.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${Ia(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return o.options&&Array.isArray(o.options)&&o.options.length>0?`Invalid discriminator value. Expected ${o.options.map(s=>`'${s}'`).join(" | ")}`:"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function iS(){return{localeError:fI()}}var sS;var wl=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function aS(){return new wl}(sS=globalThis).__zod_globalRegistry??(sS.__zod_globalRegistry=aS());var Fr=globalThis.__zod_globalRegistry;function cS(t,e){return new t({type:"string",...A(e)})}function uS(t,e){return new t({type:"string",coerce:!0,...A(e)})}function dS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...A(e)})}function bl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...A(e)})}function lS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...A(e)})}function fS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(e)})}function pS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(e)})}function hS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(e)})}function Rl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...A(e)})}function mS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...A(e)})}function gS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(e)})}function yS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...A(e)})}function vS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(e)})}function _S(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...A(e)})}function SS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...A(e)})}function wS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(e)})}function bS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(e)})}function RS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(e)})}function CS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(e)})}function PS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(e)})}function xS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...A(e)})}function kS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...A(e)})}function ES(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...A(e)})}function TS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...A(e)})}function AS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(e)})}function MS(t,e){return new t({type:"string",format:"date",check:"string_format",...A(e)})}function $S(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...A(e)})}function IS(t,e){return new t({type:"string",format:"duration",check:"string_format",...A(e)})}function OS(t,e){return new t({type:"number",checks:[],...A(e)})}function zS(t,e){return new t({type:"number",coerce:!0,checks:[],...A(e)})}function NS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...A(e)})}function DS(t,e){return new t({type:"boolean",...A(e)})}function LS(t,e){return new t({type:"boolean",coerce:!0,...A(e)})}function jS(t,e){return new t({type:"bigint",coerce:!0,...A(e)})}function FS(t,e){return new t({type:"null",...A(e)})}function US(t){return new t({type:"any"})}function qS(t){return new t({type:"unknown"})}function HS(t,e){return new t({type:"never",...A(e)})}function GS(t,e){return new t({type:"date",coerce:!0,...A(e)})}function go(t,e){return new hl({check:"less_than",...A(e),value:t,inclusive:!1})}function dr(t,e){return new hl({check:"less_than",...A(e),value:t,inclusive:!0})}function yo(t,e){return new ml({check:"greater_than",...A(e),value:t,inclusive:!1})}function Mt(t,e){return new ml({check:"greater_than",...A(e),value:t,inclusive:!0})}function Li(t,e){return new Fv({check:"multiple_of",...A(e),value:t})}function Za(t,e){return new qv({check:"max_length",...A(e),maximum:t})}function vo(t,e){return new Hv({check:"min_length",...A(e),minimum:t})}function Ba(t,e){return new Gv({check:"length_equals",...A(e),length:t})}function Cl(t,e){return new Zv({check:"string_format",format:"regex",...A(e),pattern:t})}function Pl(t){return new Bv({check:"string_format",format:"lowercase",...A(t)})}function xl(t){return new Wv({check:"string_format",format:"uppercase",...A(t)})}function kl(t,e){return new Vv({check:"string_format",format:"includes",...A(e),includes:t})}function El(t,e){return new Kv({check:"string_format",format:"starts_with",...A(e),prefix:t})}function Tl(t,e){return new Jv({check:"string_format",format:"ends_with",...A(e),suffix:t})}function Ur(t){return new Yv({check:"overwrite",tx:t})}function Al(t){return Ur(e=>e.normalize(t))}function Ml(){return Ur(t=>t.trim())}function $l(){return Ur(t=>t.toLowerCase())}function Il(){return Ur(t=>t.toUpperCase())}function Ol(){return Ur(t=>tl(t))}function ZS(t,e,r){return new t({type:"array",element:e,...A(r)})}function BS(t,e,r){let n=A(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function WS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...A(r)})}function VS(t,e){let r=pI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(mo(o,n.value,r._zod.def));else{let i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(mo(i))}},t(n.value,n)),e);return r}function pI(t,e){let r=new Ie({check:"custom",...A(e)});return r._zod.check=t,r}function zl(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Fr,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function we(t,e,r={path:[],schemaPath:[]}){var n;let o=t._zod.def,i=e.seen.get(t);if(i)return i.count++,r.schemaPath.includes(t)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,s);let a=t._zod.toJSONSchema?.();if(a)s.schema=a;else{let d={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,s.schema,d);else{let f=s.schema,p=e.processors[o.type];if(!p)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);p(t,e,f,d)}let l=t._zod.parent;l&&(s.ref||(s.ref=l),we(l,e,d),e.seen.get(l).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),e.io==="input"&&He(t)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(t).schema}function Nl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of t.seen.entries()){let a=t.metadataRegistry.get(s[0])?.id;if(a){let c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}let o=s=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let l=t.external.registry.get(s[0])?.id,f=t.external.uri??(h=>h);if(l)return{ref:f(l)};let p=s[1].defId??s[1].schema.id??`schema${t.counter++}`;return s[1].defId=p,{defId:p,ref:`${f("__shared")}#/${a}/${p}`}}if(s[1]===r)return{ref:"#"};let u=`#/${a}/`,d=s[1].schema.id??`__schema${t.counter++}`;return{defId:d,ref:u+d}},i=s=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:u}=o(s);a.def={...a.schema},u&&(a.defId=u);let d=a.schema;for(let l in d)delete d[l];d.$ref=c};if(t.cycles==="throw")for(let s of t.seen.entries()){let a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
86
86
|
|
|
87
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of t.seen.entries()){let a=s[1];if(e===s[0]){i(s);continue}if(t.external){let u=t.external.registry.get(s[0])?.id;if(e!==s[0]&&u){i(s);continue}}if(t.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&t.reused==="ref"){i(s);continue}}}function Nl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),h=p.schema;if(h.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(h.$ref&&p.def)for(let g in u)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(u[g])===JSON.stringify(p.def[g])&&delete u[g]}let f=a._zod.parent;if(f&&f!==l){n(f);let p=t.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(let h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:ji(e,"input",t.processors),output:ji(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function qe(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return qe(n.element,r);if(n.type==="set")return qe(n.valueType,r);if(n.type==="lazy")return qe(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return qe(n.innerType,r);if(n.type==="intersection")return qe(n.left,r)||qe(n.right,r);if(n.type==="record"||n.type==="map")return qe(n.keyType,r)||qe(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:qe(n.in,r)||qe(n.out,r);if(n.type==="object"){for(let o in n.shape)if(qe(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(qe(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(qe(o,r))return!0;return!!(n.rest&&qe(n.rest,r))}return!1}var KS=(t,e={})=>r=>{let n=Ol({...r,processors:e});return we(t,n),zl(n,t),Nl(n,t)},ji=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Ol({...o??{},target:i,io:e,processors:r});return we(t,s),zl(s,t),Nl(s,t)};var hI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},JS=(t,e,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),a&&(o.format=hI[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(l=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))])}},YS=(t,e,r,n)=>{let o=r,{minimum:i,maximum:s,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:d}=t._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number";let l=typeof d=="number"&&d>=(i??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(s??Number.POSITIVE_INFINITY),p=e.target==="draft-04"||e.target==="openapi-3.0";l?p?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d:typeof i=="number"&&(o.minimum=i),f?p?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:typeof s=="number"&&(o.maximum=s),typeof c=="number"&&(o.multipleOf=c)},XS=(t,e,r,n)=>{r.type="boolean"},QS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var ew=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var tw=(t,e,r,n)=>{r.not={}},rw=(t,e,r,n)=>{},nw=(t,e,r,n)=>{},ow=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},iw=(t,e,r,n)=>{let o=t._zod.def,i=Ti(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},sw=(t,e,r,n)=>{let o=t._zod.def,i=[];for(let s of o.values)if(s===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s))}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[s]:r.const=s}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i};var aw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var cw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var uw=(t,e,r,n)=>{let o=r,i=t._zod.def,{minimum:s,maximum:a}=t._zod.bag;typeof s=="number"&&(o.minItems=s),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=we(i.element,e,{...n,path:[...n.path,"items"]})},dw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=we(s[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(s)),c=new Set([...a].filter(u=>{let d=i.shape[u]._zod;return e.io==="input"?d.optin===void 0:d.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=we(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},lw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>we(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},fw=(t,e,r,n)=>{let o=t._zod.def,i=we(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=we(o.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];r.allOf=c};var pw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let d=we(i.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let l of c)o.patternProperties[l.source]=d}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=we(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=we(i.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let d=[...u].filter(l=>typeof l=="string"||typeof l=="number");d.length>0&&(o.required=d)}},hw=(t,e,r,n)=>{let o=t._zod.def,i=we(o.innerType,e,n),s=e.seen.get(t);e.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},mw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},gw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},yw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},vw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},_w=(t,e,r,n)=>{let o=t._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=e.io==="input"?i?o.out:o.in:o.out;we(s,e,n);let a=e.seen.get(t);a.ref=s},Sw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Dl=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Ba(t){return!!t._zod}function $t(t,e){return Ba(t)?Oi(t,e):t.safeParse(e)}function Wa(t){if(!t)return;let e;if(Ba(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Va(t){if(Ba(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Fi={};Uu(Fi,{ZodISODate:()=>bw,ZodISODateTime:()=>ww,ZodISODuration:()=>Cw,ZodISOTime:()=>Rw,date:()=>jl,datetime:()=>Ll,duration:()=>Ul,time:()=>Fl});var ww=_("ZodISODateTime",(t,e)=>{__.init(t,e),he.init(t,e)});function Ll(t){return AS(ww,t)}var bw=_("ZodISODate",(t,e)=>{S_.init(t,e),he.init(t,e)});function jl(t){return MS(bw,t)}var Rw=_("ZodISOTime",(t,e)=>{w_.init(t,e),he.init(t,e)});function Fl(t){return $S(Rw,t)}var Cw=_("ZodISODuration",(t,e)=>{b_.init(t,e),he.init(t,e)});function Ul(t){return IS(Cw,t)}var bI=(t,e)=>{Na.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>ul(t,r)},flatten:{value:r=>cl(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,po,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,po,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=_("ZodError",bI,{Parent:Error});var xw=Da(ut),kw=La(ut),Ew=Ii(ut),Tw=zi(ut),Aw=rv(ut),Mw=nv(ut),$w=ov(ut),Iw=iv(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut),Dw=uv(ut);var Lw=new WeakMap;function Ui(t,e,r){let n=Object.getPrototypeOf(t),o=Lw.get(n);if(o||(o=new Set,Lw.set(n,o)),!o.has(e)){o.add(e);for(let i in r){let s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){let a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var oe=_("ZodType",(t,e)=>(te.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:ji(t,"input"),output:ji(t,"output")}}),t.toJSONSchema=KS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>xw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Ew(t,r,n),t.parseAsync=async(r,n)=>kw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Tw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Aw(t,r,n),t.decode=(r,n)=>Mw(t,r,n),t.encodeAsync=async(r,n)=>$w(t,r,n),t.decodeAsync=async(r,n)=>Iw(t,r,n),t.safeEncode=(r,n)=>Ow(t,r,n),t.safeDecode=(r,n)=>zw(t,r,n),t.safeEncodeAsync=async(r,n)=>Nw(t,r,n),t.safeDecodeAsync=async(r,n)=>Dw(t,r,n),Ui(t,"ZodType",{check(...r){let n=this.def;return this.clone(H.mergeDefs(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return yt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(dO(r,n))},superRefine(r,n){return this.check(lO(r,n))},overwrite(r){return this.check(Ur(r))},optional(){return ge(this)},exactOptional(){return XI(this)},nullable(){return qw(this)},nullish(){return ge(qw(this))},nonoptional(r){return oO(this,r)},array(){return P(this)},or(r){return ue([this,r])},and(r){return Ya(this,r)},transform(r){return Hw(this,Qw(r))},default(r){return tO(this,r)},prefault(r){return nO(this,r)},catch(r){return sO(this,r)},pipe(r){return Hw(this,r)},readonly(){return uO(this)},describe(r){let n=this.clone();return Fr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Fr.get(this);let n=this.clone();return Fr.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(t,"description",{get(){return Fr.get(t)?.description},configurable:!0}),t)),Gw=_("_ZodString",(t,e)=>{Ha.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>JS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Ui(t,"_ZodString",{regex(...n){return this.check(Rl(...n))},includes(...n){return this.check(xl(...n))},startsWith(...n){return this.check(kl(...n))},endsWith(...n){return this.check(El(...n))},min(...n){return this.check(vo(...n))},max(...n){return this.check(Ga(...n))},length(...n){return this.check(Za(...n))},nonempty(...n){return this.check(vo(1,...n))},lowercase(n){return this.check(Cl(n))},uppercase(n){return this.check(Pl(n))},trim(){return this.check(Al())},normalize(...n){return this.check(Tl(...n))},toLowerCase(){return this.check(Ml())},toUpperCase(){return this.check($l())},slugify(){return this.check(Il())}})}),Hl=_("ZodString",(t,e)=>{Ha.init(t,e),Gw.init(t,e),t.email=r=>t.check(dS(CI,r)),t.url=r=>t.check(bl(Zw,r)),t.jwt=r=>t.check(TS(jI,r)),t.emoji=r=>t.check(mS(PI,r)),t.guid=r=>t.check(wl(jw,r)),t.uuid=r=>t.check(lS(Ka,r)),t.uuidv4=r=>t.check(fS(Ka,r)),t.uuidv6=r=>t.check(pS(Ka,r)),t.uuidv7=r=>t.check(hS(Ka,r)),t.nanoid=r=>t.check(gS(xI,r)),t.guid=r=>t.check(wl(jw,r)),t.cuid=r=>t.check(yS(kI,r)),t.cuid2=r=>t.check(vS(EI,r)),t.ulid=r=>t.check(_S(TI,r)),t.base64=r=>t.check(xS(NI,r)),t.base64url=r=>t.check(kS(DI,r)),t.xid=r=>t.check(SS(AI,r)),t.ksuid=r=>t.check(wS(MI,r)),t.ipv4=r=>t.check(bS($I,r)),t.ipv6=r=>t.check(RS(II,r)),t.cidrv4=r=>t.check(CS(OI,r)),t.cidrv6=r=>t.check(PS(zI,r)),t.e164=r=>t.check(ES(LI,r)),t.datetime=r=>t.check(Ll(r)),t.date=r=>t.check(jl(r)),t.time=r=>t.check(Fl(r)),t.duration=r=>t.check(Ul(r))});function y(t){return cS(Hl,t)}var he=_("ZodStringFormat",(t,e)=>{ce.init(t,e),Gw.init(t,e)}),CI=_("ZodEmail",(t,e)=>{d_.init(t,e),he.init(t,e)});var jw=_("ZodGUID",(t,e)=>{c_.init(t,e),he.init(t,e)});var Ka=_("ZodUUID",(t,e)=>{u_.init(t,e),he.init(t,e)});var Zw=_("ZodURL",(t,e)=>{l_.init(t,e),he.init(t,e)});function Bw(t){return bl(Zw,t)}var PI=_("ZodEmoji",(t,e)=>{f_.init(t,e),he.init(t,e)});var xI=_("ZodNanoID",(t,e)=>{p_.init(t,e),he.init(t,e)});var kI=_("ZodCUID",(t,e)=>{h_.init(t,e),he.init(t,e)});var EI=_("ZodCUID2",(t,e)=>{m_.init(t,e),he.init(t,e)});var TI=_("ZodULID",(t,e)=>{g_.init(t,e),he.init(t,e)});var AI=_("ZodXID",(t,e)=>{y_.init(t,e),he.init(t,e)});var MI=_("ZodKSUID",(t,e)=>{v_.init(t,e),he.init(t,e)});var $I=_("ZodIPv4",(t,e)=>{R_.init(t,e),he.init(t,e)});var II=_("ZodIPv6",(t,e)=>{C_.init(t,e),he.init(t,e)});var OI=_("ZodCIDRv4",(t,e)=>{P_.init(t,e),he.init(t,e)});var zI=_("ZodCIDRv6",(t,e)=>{x_.init(t,e),he.init(t,e)});var NI=_("ZodBase64",(t,e)=>{E_.init(t,e),he.init(t,e)});var DI=_("ZodBase64URL",(t,e)=>{T_.init(t,e),he.init(t,e)});var LI=_("ZodE164",(t,e)=>{A_.init(t,e),he.init(t,e)});var jI=_("ZodJWT",(t,e)=>{M_.init(t,e),he.init(t,e)});var Ja=_("ZodNumber",(t,e)=>{gl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>YS(t,n,o,i),Ui(t,"ZodNumber",{gt(n,o){return this.check(yo(n,o))},gte(n,o){return this.check(Mt(n,o))},min(n,o){return this.check(Mt(n,o))},lt(n,o){return this.check(go(n,o))},lte(n,o){return this.check(dr(n,o))},max(n,o){return this.check(dr(n,o))},int(n){return this.check(Fw(n))},safe(n){return this.check(Fw(n))},positive(n){return this.check(yo(0,n))},nonnegative(n){return this.check(Mt(0,n))},negative(n){return this.check(go(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Li(n,o))},step(n,o){return this.check(Li(n,o))},finite(){return this}});let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function K(t){return OS(Ja,t)}var FI=_("ZodNumberFormat",(t,e)=>{$_.init(t,e),Ja.init(t,e)});function Fw(t){return NS(FI,t)}var Gl=_("ZodBoolean",(t,e)=>{I_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>XS(t,r,n,o)});function ie(t){return DS(Gl,t)}var Ww=_("ZodBigInt",(t,e)=>{O_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>QS(t,n,o,i),t.gte=(n,o)=>t.check(Mt(n,o)),t.min=(n,o)=>t.check(Mt(n,o)),t.gt=(n,o)=>t.check(yo(n,o)),t.gte=(n,o)=>t.check(Mt(n,o)),t.min=(n,o)=>t.check(Mt(n,o)),t.lt=(n,o)=>t.check(go(n,o)),t.lte=(n,o)=>t.check(dr(n,o)),t.max=(n,o)=>t.check(dr(n,o)),t.positive=n=>t.check(yo(BigInt(0),n)),t.negative=n=>t.check(go(BigInt(0),n)),t.nonpositive=n=>t.check(dr(BigInt(0),n)),t.nonnegative=n=>t.check(Mt(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Li(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var UI=_("ZodNull",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o)});function Vw(t){return FS(UI,t)}var qI=_("ZodAny",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function Kw(){return US(qI)}var HI=_("ZodUnknown",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o)});function me(){return qS(HI)}var GI=_("ZodNever",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>tw(t,r,n,o)});function ZI(t){return HS(GI,t)}var Jw=_("ZodDate",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ow(t,n,o,i),t.min=(n,o)=>t.check(Mt(n,o)),t.max=(n,o)=>t.check(dr(n,o));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});var BI=_("ZodArray",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o),t.element=e.element,Ui(t,"ZodArray",{min(r,n){return this.check(vo(r,n))},nonempty(r){return this.check(vo(1,r))},max(r,n){return this.check(Ga(r,n))},length(r,n){return this.check(Za(r,n))},unwrap(){return this.element}})});function P(t,e){return ZS(BI,t,e)}var Yw=_("ZodObject",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Ui(t,"ZodObject",{keyof(){return Xe(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:me()})},loose(){return this.clone({...this._zod.def,catchall:me()})},strict(){return this.clone({...this._zod.def,catchall:ZI()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return H.extend(this,r)},safeExtend(r){return H.safeExtend(this,r)},merge(r){return H.merge(this,r)},pick(r){return H.pick(this,r)},omit(r){return H.omit(this,r)},partial(...r){return H.partial(eb,this,r[0])},required(...r){return H.required(tb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Yw(r)}function ke(t,e){return new Yw({type:"object",shape:t,catchall:me(),...H.normalizeParams(e)})}var Xw=_("ZodUnion",(t,e)=>{yl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.options=e.options});function ue(t,e){return new Xw({type:"union",options:t,...H.normalizeParams(e)})}var WI=_("ZodDiscriminatedUnion",(t,e)=>{Xw.init(t,e),G_.init(t,e)});function Zl(t,e,r){return new WI({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var VI=_("ZodIntersection",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o)});function Ya(t,e){return new VI({type:"intersection",left:t,right:e})}var Uw=_("ZodRecord",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Uw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Uw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var ql=_("ZodEnum",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>iw(t,n,o,i),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,o)=>{let i={};for(let s of n)if(r.has(s))i[s]=e.entries[s];else throw new Error(`Key ${s} not found in enum`);return new ql({...e,checks:[],...H.normalizeParams(o),entries:i})},t.exclude=(n,o)=>{let i={...e.entries};for(let s of n)if(r.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new ql({...e,checks:[],...H.normalizeParams(o),entries:i})}});function Xe(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new ql({type:"enum",entries:r,...H.normalizeParams(e)})}var KI=_("ZodLiteral",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function E(t,e){return new KI({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var JI=_("ZodTransform",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new lo(t.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(H.issue(i,r.value,e));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=t),r.issues.push(H.issue(s))}};let o=e.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function Qw(t){return new JI({type:"transform",transform:t})}var eb=_("ZodOptional",(t,e)=>{vl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Dl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ge(t){return new eb({type:"optional",innerType:t})}var YI=_("ZodExactOptional",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Dl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function XI(t){return new YI({type:"optional",innerType:t})}var QI=_("ZodNullable",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function qw(t){return new QI({type:"nullable",innerType:t})}var eO=_("ZodDefault",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function tO(t,e){return new eO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var rO=_("ZodPrefault",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function nO(t,e){return new rO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var tb=_("ZodNonOptional",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function oO(t,e){return new tb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var iO=_("ZodCatch",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function sO(t,e){return new iO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var rb=_("ZodPipe",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o),t.in=e.in,t.out=e.out});function Hw(t,e){return new rb({type:"pipe",in:t,out:e})}var aO=_("ZodPreprocess",(t,e)=>{rb.init(t,e),rS.init(t,e)}),cO=_("ZodReadonly",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function uO(t){return new cO({type:"readonly",innerType:t})}var nb=_("ZodCustom",(t,e)=>{oS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o)});function ob(t,e){return BS(nb,t??(()=>!0),e)}function dO(t,e={}){return WS(nb,t,e)}function lO(t,e){return VS(t,e)}function Bl(t,e){return new aO({type:"pipe",in:Qw(t),out:e})}var sb={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};var ib;ib||(ib={});var Xa={};Uu(Xa,{bigint:()=>mO,boolean:()=>hO,date:()=>gO,number:()=>pO,string:()=>fO});function fO(t){return uS(Hl,t)}function pO(t){return zS(Ja,t)}function hO(t){return LS(Gl,t)}function mO(t){return jS(Ww,t)}function gO(t){return GS(Jw,t)}Ye(iS());var wo="2025-11-25";var ab=[wo,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],qr="io.modelcontextprotocol/related-task",ec="2.0",Ee=ob(t=>t!==null&&(typeof t=="object"||typeof t=="function")),cb=ue([y(),K().int()]),ub=y(),MV=ke({ttl:K().optional(),pollInterval:K().optional()}),vO=k({ttl:K().optional()}),_O=k({taskId:y()}),Vl=ke({progressToken:cb.optional(),[qr]:_O.optional()}),dt=k({_meta:Vl.optional()}),qi=dt.extend({task:vO.optional()}),db=t=>qi.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Vl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Te=ke({_meta:Vl.optional()}),tc=ue([y(),K().int()]),lb=k({jsonrpc:E(ec),id:tc,...Oe.shape}).strict(),Hi=t=>lb.safeParse(t).success,fb=k({jsonrpc:E(ec),...St.shape}).strict(),pb=t=>fb.safeParse(t).success,Kl=k({jsonrpc:E(ec),id:tc,result:Te}).strict(),wn=t=>Kl.safeParse(t).success;var $;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})($||($={}));var Jl=k({jsonrpc:E(ec),id:tc.optional(),error:k({code:K().int(),message:y(),data:me().optional()})}).strict();var hb=t=>Jl.safeParse(t).success;var Hr=ue([lb,fb,Kl,Jl]),$V=ue([Kl,Jl]),bn=Te.strict(),SO=_t.extend({requestId:tc.optional(),reason:y().optional()}),rc=St.extend({method:E("notifications/cancelled"),params:SO}),wO=k({src:y(),mimeType:y().optional(),sizes:P(y()).optional(),theme:Xe(["light","dark"]).optional()}),Gi=k({icons:P(wO).optional()}),So=k({name:y(),title:y().optional()}),mb=So.extend({...So.shape,...Gi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),bO=Ya(k({applyDefaults:ie().optional()}),ae(y(),me())),RO=Bl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Ya(k({form:bO.optional(),url:Ee.optional()}),ae(y(),me()).optional())),CO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({sampling:ke({createMessage:Ee.optional()}).optional(),elicitation:ke({create:Ee.optional()}).optional()}).optional()}),PO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({tools:ke({call:Ee.optional()}).optional()}).optional()}),xO=k({experimental:ae(y(),Ee).optional(),sampling:k({context:Ee.optional(),tools:Ee.optional()}).optional(),elicitation:RO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:CO.optional(),extensions:ae(y(),Ee).optional()}),kO=dt.extend({protocolVersion:y(),capabilities:xO,clientInfo:mb}),EO=Oe.extend({method:E("initialize"),params:kO});var TO=k({experimental:ae(y(),Ee).optional(),logging:Ee.optional(),completions:Ee.optional(),prompts:k({listChanged:ie().optional()}).optional(),resources:k({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:k({listChanged:ie().optional()}).optional(),tasks:PO.optional(),extensions:ae(y(),Ee).optional()}),Yl=Te.extend({protocolVersion:y(),capabilities:TO,serverInfo:mb,instructions:y().optional()}),gb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),yb=t=>gb.safeParse(t).success,nc=Oe.extend({method:E("ping"),params:dt.optional()}),AO=k({progress:K(),total:ge(K()),message:ge(y())}),MO=k({..._t.shape,...AO.shape,progressToken:cb}),oc=St.extend({method:E("notifications/progress"),params:MO}),$O=dt.extend({cursor:ub.optional()}),Zi=Oe.extend({params:$O.optional()}),Bi=Te.extend({nextCursor:ub.optional()}),IO=Xe(["working","input_required","completed","failed","cancelled"]),Wi=k({taskId:y(),status:IO,ttl:ue([K(),Vw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ge(K()),statusMessage:ge(y())}),Rn=Te.extend({task:Wi}),OO=_t.merge(Wi),Vi=St.extend({method:E("notifications/tasks/status"),params:OO}),ic=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),sc=Te.merge(Wi),ac=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),IV=Te.loose(),cc=Zi.extend({method:E("tasks/list")}),uc=Bi.extend({tasks:P(Wi)}),dc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),vb=Te.merge(Wi),_b=k({uri:y(),mimeType:ge(y()),_meta:ae(y(),me()).optional()}),Sb=_b.extend({text:y()}),Xl=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),wb=_b.extend({blob:Xl}),Ki=Xe(["user","assistant"]),bo=k({audience:P(Ki).optional(),priority:K().min(0).max(1).optional(),lastModified:Fi.datetime({offset:!0}).optional()}),bb=k({...So.shape,...Gi.shape,uri:y(),description:ge(y()),mimeType:ge(y()),size:ge(K()),annotations:bo.optional(),_meta:ge(ke({}))}),zO=k({...So.shape,...Gi.shape,uriTemplate:y(),description:ge(y()),mimeType:ge(y()),annotations:bo.optional(),_meta:ge(ke({}))}),NO=Zi.extend({method:E("resources/list")}),Ql=Bi.extend({resources:P(bb)}),DO=Zi.extend({method:E("resources/templates/list")}),ef=Bi.extend({resourceTemplates:P(zO)}),tf=dt.extend({uri:y()}),LO=tf,jO=Oe.extend({method:E("resources/read"),params:LO}),rf=Te.extend({contents:P(ue([Sb,wb]))}),nf=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),FO=tf,UO=Oe.extend({method:E("resources/subscribe"),params:FO}),qO=tf,HO=Oe.extend({method:E("resources/unsubscribe"),params:qO}),GO=_t.extend({uri:y()}),ZO=St.extend({method:E("notifications/resources/updated"),params:GO}),BO=k({name:y(),description:ge(y()),required:ge(ie())}),WO=k({...So.shape,...Gi.shape,description:ge(y()),arguments:ge(P(BO)),_meta:ge(ke({}))}),VO=Zi.extend({method:E("prompts/list")}),of=Bi.extend({prompts:P(WO)}),KO=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),JO=Oe.extend({method:E("prompts/get"),params:KO}),sf=k({type:E("text"),text:y(),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),af=k({type:E("image"),data:Xl,mimeType:y(),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),cf=k({type:E("audio"),data:Xl,mimeType:y(),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),YO=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),me()),_meta:ae(y(),me()).optional()}),XO=k({type:E("resource"),resource:ue([Sb,wb]),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),QO=bb.extend({type:E("resource_link")}),uf=ue([sf,af,cf,QO,XO]),ez=k({role:Ki,content:uf}),df=Te.extend({description:y().optional(),messages:P(ez)}),lf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),tz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),rz=k({taskSupport:Xe(["required","optional","forbidden"]).optional()}),Rb=k({...So.shape,...Gi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:P(y()).optional()}).catchall(me()),outputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:P(y()).optional()}).catchall(me()).optional(),annotations:tz.optional(),execution:rz.optional(),_meta:ae(y(),me()).optional()}),nz=Zi.extend({method:E("tools/list")}),ff=Bi.extend({tools:P(Rb)}),Cn=Te.extend({content:P(uf).default([]),structuredContent:ae(y(),me()).optional(),isError:ie().optional()}),OV=Cn.or(Te.extend({toolResult:me()})),oz=qi.extend({name:y(),arguments:ae(y(),me()).optional()}),iz=Oe.extend({method:E("tools/call"),params:oz}),Ji=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Cb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Pb=Xe(["debug","info","notice","warning","error","critical","alert","emergency"]),sz=dt.extend({level:Pb}),az=Oe.extend({method:E("logging/setLevel"),params:sz}),cz=_t.extend({level:Pb,logger:y().optional(),data:me()}),uz=St.extend({method:E("notifications/message"),params:cz}),dz=k({name:y().optional()}),lz=k({hints:P(dz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),fz=k({mode:Xe(["auto","required","none"]).optional()}),pz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:P(uf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),me()).optional()}),hz=Zl("type",[sf,af,cf]),Qa=Zl("type",[sf,af,cf,YO,pz]),mz=k({role:Ki,content:ue([Qa,P(Qa)]),_meta:ae(y(),me()).optional()}),gz=qi.extend({messages:P(mz),modelPreferences:lz.optional(),systemPrompt:y().optional(),includeContext:Xe(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:P(y()).optional(),metadata:Ee.optional(),tools:P(Rb).optional(),toolChoice:fz.optional()}),pf=Oe.extend({method:E("sampling/createMessage"),params:gz}),hf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Ki,content:hz}),mf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Ki,content:ue([Qa,P(Qa)])}),yz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),vz=k({type:E("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:Xe(["email","uri","date","date-time"]).optional(),default:y().optional()}),_z=k({type:Xe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Sz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),default:y().optional()}),wz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:P(k({const:y(),title:y()})),default:y().optional()}),bz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),enumNames:P(y()).optional(),default:y().optional()}),Rz=ue([Sz,wz]),Cz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({type:E("string"),enum:P(y())}),default:P(y()).optional()}),Pz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({anyOf:P(k({const:y(),title:y()}))}),default:P(y()).optional()}),xz=ue([Cz,Pz]),kz=ue([bz,Rz,xz]),Ez=ue([kz,yz,vz,_z]),Tz=qi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Ez),required:P(y()).optional()})}),Az=qi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Mz=ue([Tz,Az]),gf=Oe.extend({method:E("elicitation/create"),params:Mz}),$z=_t.extend({elicitationId:y()}),Iz=St.extend({method:E("notifications/elicitation/complete"),params:$z}),yf=Te.extend({action:Xe(["accept","decline","cancel"]),content:Bl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),P(y())])).optional())}),Oz=k({type:E("ref/resource"),uri:y()});var zz=k({type:E("ref/prompt"),name:y()}),Nz=dt.extend({ref:ue([zz,Oz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Dz=Oe.extend({method:E("completion/complete"),params:Nz});var vf=Te.extend({completion:ke({values:P(y()).max(100),total:ge(K().int()),hasMore:ge(ie())})}),Lz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),me()).optional()}),jz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Fz=Te.extend({roots:P(Lz)}),Uz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),zV=ue([nc,EO,Dz,az,JO,VO,NO,DO,jO,UO,HO,iz,nz,ic,ac,cc,dc]),NV=ue([rc,oc,gb,Uz,Vi]),DV=ue([bn,hf,mf,yf,Fz,sc,uc,Rn]),LV=ue([nc,pf,gf,jz,ic,ac,cc,dc]),jV=ue([rc,oc,uz,ZO,nf,Ji,lf,Vi,Iz]),FV=ue([bn,Yl,vf,df,of,Ql,ef,rf,Cn,ff,sc,uc,Rn]),M=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===$.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new Wl(o.elicitations,r)}return new t(e,r,n)}},Wl=class extends M{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Gr(t){return t==="completed"||t==="failed"||t==="cancelled"}var _6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function _f(t){let r=Wa(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Va(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Sf(t,e){let r=$t(t,e);if(!r.success)throw r.error;return r.data}var Wz=6e4,lc=class{constructor(e){this._options=e,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(rc,r=>{this._oncancel(r)}),this.setNotificationHandler(oc,r=>{this._onprogress(r)}),this.setRequestHandler(nc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ic,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(ac,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),a.type==="response")d(c);else{let l=c,f=new M(l.error.code,l.error.message,l.error.data);d(f)}else{let l=a.type==="response"?"Response":"Error";this._onerror(new Error(`${l} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new M($.InvalidParams,`Task not found: ${i}`);if(!Gr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Gr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[qr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(cc,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new M($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(dc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Gr(o.status))throw new M($.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new M($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof M?o:new M($.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),M.fromError($.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),wn(i)||hb(i)?this._onresponse(i):Hi(i)?this._onrequest(i,s):pb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=M.fromError($.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[qr]?.taskId;if(n===void 0){let d={jsonrpc:"2.0",id:e.id,error:{code:$.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId).catch(l=>this._onerror(new Error(`Failed to enqueue error response: ${l}`))):o?.send(d).catch(l=>this._onerror(new Error(`Failed to send an error response: ${l}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let a=db(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async d=>{if(s.signal.aborted)return;let l={relatedRequestId:e.id};i&&(l.relatedTask={taskId:i}),await this.notification(d,l)},sendRequest:async(d,l,f)=>{if(s.signal.aborted)throw new M($.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:e.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let h=p.relatedTask?.taskId??i;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),wn(e))n(e);else{let s=new M(e.error.code,e.error.message,e.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(wn(e)&&e.result&&typeof e.result=="object"){let s=e.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,r))}}if(i||this._progressHandlers.delete(r),wn(e))o(e);else{let s=M.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}return}let i;try{let s=await this.request(e,Rn,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new M($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Gr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new M($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new M($.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,d)=>{let l=w=>{d(w)};if(!this._transport){l(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(w){l(w);return}n?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...e,jsonrpc:"2.0",id:f};n?.onprogress&&(this._progressHandlers.set(f,n.onprogress),p.params={...e.params,_meta:{...e.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[qr]:c}});let h=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=w instanceof M?w:new M($.RequestTimeout,String(w));d(b)};this._responseHandlers.set(f,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return d(w);try{let b=$t(r,w.result);b.success?u(b.data):d(b.error)}catch(b){d(b)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let m=n?.timeout??Wz,g=()=>h(M.fromError($.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let w=b=>{let x=this._responseHandlers.get(f);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,w),this._enqueueTaskMessage(v,{type:"request",message:p,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(f),d(b)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(w=>{this._cleanupTimeout(f),d(w)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},sc,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},uc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},vb,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[qr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[qr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[qr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=_f(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Sf(e,o);return Promise.resolve(r(s,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=_f(e);this._notificationHandlers.set(n,o=>{let i=Sf(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Hi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new M($.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new M($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new M($.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Vi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Gr(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new M($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Gr(a.status))throw new M($.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Vi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Gr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function xb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function kb(t,e){let r={...t};for(let n in e){let o=n,i=e[o];if(i===void 0)continue;let s=r[o];xb(s)&&xb(i)?r[o]={...s,...i}:r[o]=i}return r}var yP=Xs(sh(),1),vP=Xs(gP(),1);function XF(){let t=new yP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,vP.default)(t),t}var Vc=class{constructor(e){this._ajv=e??XF()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Kc=class{constructor(e){this._client=e}async*callToolStream(e,r=Cn,n){let o=this._client,i={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},s=o.requestStream({method:"tools/call",params:e},r,i),a=o.getToolOutputValidator(e.name);for await(let c of s){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let d=a(u.structuredContent);if(!d.valid){yield{type:"error",error:new M($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof M){yield{type:"error",error:d};return}yield{type:"error",error:new M($.InvalidParams,`Failed to validate structured content: ${d instanceof Error?d.message:String(d)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function _P(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function SP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Jc(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let o of Object.keys(n)){let i=n[o];r[o]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[o]=i.default),r[o]!==void 0&&Jc(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Jc(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Jc(r,e)}}function QF(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Yc=class extends lc{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Vc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Ji,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",lf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",nf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Kc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=kb(this._capabilities,e)}setRequestHandler(e,r){let o=Wa(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Va(o);if(typeof i!="string")throw new Error("Schema method literal must be a string");let s=i;if(s==="elicitation/create"){let a=async(c,u)=>{let d=$t(gf,c);if(!d.success){let w=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid elicitation request: ${w}`)}let{params:l}=d.data;l.mode=l.mode??"form";let{supportsFormMode:f,supportsUrlMode:p}=QF(this._capabilities.elicitation);if(l.mode==="form"&&!f)throw new M($.InvalidParams,"Client does not support form-mode elicitation requests");if(l.mode==="url"&&!p)throw new M($.InvalidParams,"Client does not support URL-mode elicitation requests");let h=await Promise.resolve(r(c,u));if(l.task){let w=$t(Rn,h);if(!w.success){let b=w.error instanceof Error?w.error.message:String(w.error);throw new M($.InvalidParams,`Invalid task creation result: ${b}`)}return w.data}let m=$t(yf,h);if(!m.success){let w=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid elicitation result: ${w}`)}let g=m.data,v=l.mode==="form"?l.requestedSchema:void 0;if(l.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Jc(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=$t(pf,c);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid sampling request: ${g}`)}let{params:l}=d.data,f=await Promise.resolve(r(c,u));if(l.task){let g=$t(Rn,f);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new M($.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let h=l.tools||l.toolChoice?mf:hf,m=$t(h,f);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid sampling result: ${g}`)}return m.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:wo,capabilities:this._capabilities,clientInfo:this._clientInfo}},Yl,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!ab.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){_P(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&SP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},bn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},vf,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},bn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},df,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},of,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Ql,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},ef,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},rf,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},bn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},bn,r)}async callTool(e,r=Cn,n){if(this.isToolTaskRequired(e.name))throw new M($.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let o=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!o.structuredContent&&!o.isError)throw new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(o.structuredContent)try{let s=i(o.structuredContent);if(!s.valid)throw new M($.InvalidParams,`Structured content does not match the tool's output schema: ${s.errorMessage}`)}catch(s){throw s instanceof M?s:new M($.InvalidParams,`Failed to validate structured content: ${s instanceof Error?s.message:String(s)}`)}}return o}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let o=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,o)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},ff,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Cb.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:s,debounceMs:a}=i.data,{onChanged:c}=n,u=async()=>{if(!s){c(null,null);return}try{let l=await o();c(null,l)}catch(l){let f=l instanceof Error?l:new Error(String(l));c(f,null)}},d=()=>{if(a){let l=this._listChangedDebounceTimers.get(e);l&&clearTimeout(l);let f=setTimeout(u,a);this._listChangedDebounceTimers.set(e,f)}else u()};this.setNotificationHandler(r,d)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var ks=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},wP=10,eU=13,Nn=32;function hh(t){}function Xc(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=hh,onError:r=hh,onRetry:n=hh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(S){if(p)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,S.charCodeAt(0)===239&&S.charCodeAt(1)===187&&S.charCodeAt(2)===191&&(S=S.slice(3))),s.length===0){let ne=g(S);ne!==""&&(s.push(ne),a=ne.length),m();return}if(S.indexOf(`
|
|
88
|
-
`)===-1&&
|
|
89
|
-
`,
|
|
90
|
-
`,
|
|
91
|
-
`,
|
|
92
|
-
${Pe}`,l++}else RP(
|
|
93
|
-
`,
|
|
94
|
-
`,
|
|
95
|
-
${
|
|
96
|
-
${R}`,l++;break;case"id":u=R.includes("\0")?void 0:R;break;case"retry":/^\d+$/.test(R)?n(parseInt(R,10)):r(new ks(`Invalid \`retry\` value: "${R}"`,{type:"invalid-retry",value:R,line:I}));break;default:r(new ks(`Unknown field "${S.length>20?`${S.slice(0,20)}\u2026`:S}"`,{type:"unknown-field",field:S,value:R,line:I}));break}}function b(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function x(S={}){if(S.consume&&s.length>0){let R=s.join("");v(R,0,R.length)}c=!0,u=void 0,d="",l=0,f=void 0,s.length=0,a=0,p=!1}return{feed:h,reset:x}}function bP(t,e,r){return r===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function RP(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var eu=class extends Event{constructor(e,r){var n,o;super(e),this.code=(n=r?.code)!=null?n:void 0,this.message=(o=r?.message)!=null?o:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,r,n){return n(CP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(CP(this),r)}};function tU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function mh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(mh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${mh(t.cause)}`:t.message:`${t}`}function CP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var xP=t=>{throw TypeError(t)},Rh=(t,e,r)=>e.has(t)||xP("Cannot "+r),q=(t,e,r)=>(Rh(t,e,"read from private field"),r?r.call(t):e.get(t)),Ae=(t,e,r)=>e.has(t)?xP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ye=(t,e,r,n)=>(Rh(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(Rh(t,e,"access private method"),r),nt,Dn,Fo,Qc,tu,As,Ho,Ms,Qr,Uo,Go,qo,Es,Lt,gh,yh,vh,PP,_h,Sh,Ts,wh,bh,Ln=class extends EventTarget{constructor(e,r){var n,o;super(),Ae(this,Lt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Ae(this,nt),Ae(this,Dn),Ae(this,Fo),Ae(this,Qc),Ae(this,tu),Ae(this,As),Ae(this,Ho),Ae(this,Ms,null),Ae(this,Qr),Ae(this,Uo),Ae(this,Go,null),Ae(this,qo,null),Ae(this,Es,null),Ae(this,yh,async i=>{var s;q(this,Uo).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,Lt,Ts).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ye(this,Fo,new URL(i.url)):ye(this,Fo,void 0),u!==200){gr(this,Lt,Ts).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,Lt,Ts).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.OPEN);let l=new Event("open");if((s=q(this,Es))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,Lt,Ts).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),h=!0;do{let{done:m,value:g}=await p.read();g&&q(this,Uo).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Uo).reset(),gr(this,Lt,wh).call(this))}while(h)}),Ae(this,vh,i=>{ye(this,Qr,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,Lt,wh).call(this,mh(i))}),Ae(this,_h,i=>{typeof i.id=="string"&&ye(this,Ms,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,Fo)?q(this,Fo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,qo)&&(!i.event||i.event==="message")&&q(this,qo).call(this,s),this.dispatchEvent(s)}),Ae(this,Sh,i=>{ye(this,As,i)}),Ae(this,bh,()=>{ye(this,Ho,void 0),q(this,nt)===this.CONNECTING&&gr(this,Lt,gh).call(this)});try{if(e instanceof URL)ye(this,Dn,e);else if(typeof e=="string")ye(this,Dn,new URL(e,rU()));else throw new Error("Invalid URL")}catch{throw tU("An invalid or illegal string was specified")}ye(this,Uo,Xc({onEvent:q(this,_h),onRetry:q(this,Sh)})),ye(this,nt,this.CONNECTING),ye(this,As,3e3),ye(this,tu,(n=r?.fetch)!=null?n:globalThis.fetch),ye(this,Qc,(o=r?.withCredentials)!=null?o:!1),gr(this,Lt,gh).call(this)}get readyState(){return q(this,nt)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,Qc)}get onerror(){return q(this,Go)}set onerror(e){ye(this,Go,e)}get onmessage(){return q(this,qo)}set onmessage(e){ye(this,qo,e)}get onopen(){return q(this,Es)}set onopen(e){ye(this,Es,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){q(this,Ho)&&clearTimeout(q(this,Ho)),q(this,nt)!==this.CLOSED&&(q(this,Qr)&&q(this,Qr).abort(),ye(this,nt,this.CLOSED),ye(this,Qr,void 0))}};nt=new WeakMap,Dn=new WeakMap,Fo=new WeakMap,Qc=new WeakMap,tu=new WeakMap,As=new WeakMap,Ho=new WeakMap,Ms=new WeakMap,Qr=new WeakMap,Uo=new WeakMap,Go=new WeakMap,qo=new WeakMap,Es=new WeakMap,Lt=new WeakSet,gh=function(){ye(this,nt,this.CONNECTING),ye(this,Qr,new AbortController),q(this,tu)(q(this,Dn),gr(this,Lt,PP).call(this)).then(q(this,yh)).catch(q(this,vh))},yh=new WeakMap,vh=new WeakMap,PP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ms)?{"Last-Event-ID":q(this,Ms)}:void 0},cache:"no-store",signal:(t=q(this,Qr))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},_h=new WeakMap,Sh=new WeakMap,Ts=function(t,e){var r;q(this,nt)!==this.CLOSED&&ye(this,nt,this.CLOSED);let n=new eu("error",{code:e,message:t});(r=q(this,Go))==null||r.call(this,n),this.dispatchEvent(n)},wh=function(t,e){var r;if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.CONNECTING);let n=new eu("error",{code:e,message:t});(r=q(this,Go))==null||r.call(this,n),this.dispatchEvent(n),ye(this,Ho,setTimeout(q(this,bh),q(this,As)))},bh=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function rU(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}function Zo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function ru(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Zo(e.headers),...Zo(n.headers)}:e.headers};return t(r,o)}:t}var Ch;Ch=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function nU(t){return(await Ch).getRandomValues(new Uint8Array(t))}async function oU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await nU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function iU(t){return await oU(t)}async function sU(t){let e=await(await Ch).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Ph(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await iU(t),r=await sU(e);return{code_verifier:e,code_challenge:r}}var Le=Bw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:sb.custom,message:"URL must be parseable",fatal:!0}),Jd}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),EP=ke({resource:y().url(),authorization_servers:P(Le).optional(),jwks_uri:y().url().optional(),scopes_supported:P(y()).optional(),bearer_methods_supported:P(y()).optional(),resource_signing_alg_values_supported:P(y()).optional(),resource_name:y().optional(),resource_documentation:y().optional(),resource_policy_uri:y().url().optional(),resource_tos_uri:y().url().optional(),tls_client_certificate_bound_access_tokens:ie().optional(),authorization_details_types_supported:P(y()).optional(),dpop_signing_alg_values_supported:P(y()).optional(),dpop_bound_access_tokens_required:ie().optional()}),xh=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,registration_endpoint:Le.optional(),scopes_supported:P(y()).optional(),response_types_supported:P(y()),response_modes_supported:P(y()).optional(),grant_types_supported:P(y()).optional(),token_endpoint_auth_methods_supported:P(y()).optional(),token_endpoint_auth_signing_alg_values_supported:P(y()).optional(),service_documentation:Le.optional(),revocation_endpoint:Le.optional(),revocation_endpoint_auth_methods_supported:P(y()).optional(),revocation_endpoint_auth_signing_alg_values_supported:P(y()).optional(),introspection_endpoint:y().optional(),introspection_endpoint_auth_methods_supported:P(y()).optional(),introspection_endpoint_auth_signing_alg_values_supported:P(y()).optional(),code_challenge_methods_supported:P(y()).optional(),client_id_metadata_document_supported:ie().optional()}),aU=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,userinfo_endpoint:Le.optional(),jwks_uri:Le,registration_endpoint:Le.optional(),scopes_supported:P(y()).optional(),response_types_supported:P(y()),response_modes_supported:P(y()).optional(),grant_types_supported:P(y()).optional(),acr_values_supported:P(y()).optional(),subject_types_supported:P(y()),id_token_signing_alg_values_supported:P(y()),id_token_encryption_alg_values_supported:P(y()).optional(),id_token_encryption_enc_values_supported:P(y()).optional(),userinfo_signing_alg_values_supported:P(y()).optional(),userinfo_encryption_alg_values_supported:P(y()).optional(),userinfo_encryption_enc_values_supported:P(y()).optional(),request_object_signing_alg_values_supported:P(y()).optional(),request_object_encryption_alg_values_supported:P(y()).optional(),request_object_encryption_enc_values_supported:P(y()).optional(),token_endpoint_auth_methods_supported:P(y()).optional(),token_endpoint_auth_signing_alg_values_supported:P(y()).optional(),display_values_supported:P(y()).optional(),claim_types_supported:P(y()).optional(),claims_supported:P(y()).optional(),service_documentation:y().optional(),claims_locales_supported:P(y()).optional(),ui_locales_supported:P(y()).optional(),claims_parameter_supported:ie().optional(),request_parameter_supported:ie().optional(),request_uri_parameter_supported:ie().optional(),require_request_uri_registration:ie().optional(),op_policy_uri:Le.optional(),op_tos_uri:Le.optional(),client_id_metadata_document_supported:ie().optional()}),TP=k({...aU.shape,...xh.pick({code_challenge_methods_supported:!0}).shape}),AP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:Xa.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),MP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),kP=Le.optional().or(E("").transform(()=>{})),cU=k({redirect_uris:P(Le),token_endpoint_auth_method:y().optional(),grant_types:P(y()).optional(),response_types:P(y()).optional(),client_name:y().optional(),client_uri:Le.optional(),logo_uri:kP,scope:y().optional(),contacts:P(y()).optional(),tos_uri:kP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Kw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),uU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),$P=cU.merge(uU),K3=k({error:y(),error_description:y().optional()}).strip(),J3=k({token:y(),token_type_hint:y().optional()}).strip();function IP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function OP({requestedResource:t,configuredResource:e}){let r=typeof t=="string"?new URL(t):new URL(t.href),n=typeof e=="string"?new URL(e):new URL(e.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;let o=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",i=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return o.startsWith(i)}var Re=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},$s=class extends Re{};$s.errorCode="invalid_request";var jn=class extends Re{};jn.errorCode="invalid_client";var Fn=class extends Re{};Fn.errorCode="invalid_grant";var Un=class extends Re{};Un.errorCode="unauthorized_client";var Is=class extends Re{};Is.errorCode="unsupported_grant_type";var Os=class extends Re{};Os.errorCode="invalid_scope";var zs=class extends Re{};zs.errorCode="access_denied";var yr=class extends Re{};yr.errorCode="server_error";var Ns=class extends Re{};Ns.errorCode="temporarily_unavailable";var Ds=class extends Re{};Ds.errorCode="unsupported_response_type";var Ls=class extends Re{};Ls.errorCode="unsupported_token_type";var js=class extends Re{};js.errorCode="invalid_token";var Fs=class extends Re{};Fs.errorCode="method_not_allowed";var Us=class extends Re{};Us.errorCode="too_many_requests";var qn=class extends Re{};qn.errorCode="invalid_client_metadata";var qs=class extends Re{};qs.errorCode="insufficient_scope";var Hs=class extends Re{};Hs.errorCode="invalid_target";var zP={[$s.errorCode]:$s,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[Is.errorCode]:Is,[Os.errorCode]:Os,[zs.errorCode]:zs,[yr.errorCode]:yr,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qn.errorCode]:qn,[qs.errorCode]:qs,[Hs.errorCode]:Hs};var Ze=class extends Error{constructor(e){super(e??"Unauthorized")}};function dU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var kh="code",Eh="S256";function lU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&dU(t.token_endpoint_auth_method)&&(e.length===0||e.includes(t.token_endpoint_auth_method))?t.token_endpoint_auth_method:e.length===0?r?"client_secret_basic":"none":r&&e.includes("client_secret_basic")?"client_secret_basic":r&&e.includes("client_secret_post")?"client_secret_post":e.includes("none")?"none":r?"client_secret_post":"none"}function fU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":pU(o,i,r);return;case"client_secret_post":hU(o,i,n);return;case"none":mU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function pU(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function hU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function mU(t,e){e.set("client_id",t)}async function DP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=MP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=zP[o]||yr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new yr(o)}}async function vr(t,e){try{return await Th(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Th(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Th(t,e);throw r}}async function Th(t,{serverUrl:e,authorizationCode:r,scope:n,resourceMetadataUrl:o,fetchFn:i}){let s=await t.discoveryState?.(),a,c,u,d=o;if(!d&&s?.resourceMetadataUrl&&(d=new URL(s.resourceMetadataUrl)),s?.authorizationServerUrl){if(c=s.authorizationServerUrl,a=s.resourceMetadata,u=s.authorizationServerMetadata??await jP(c,{fetchFn:i}),!a)try{a=await LP(e,{resourceMetadataUrl:d},i)}catch{}(u!==s.authorizationServerMetadata||a!==s.resourceMetadata)&&await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:d?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}else{let b=await bU(e,{resourceMetadataUrl:d,fetchFn:i});c=b.authorizationServerUrl,u=b.authorizationServerMetadata,a=b.resourceMetadata,await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:d?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}let l=await yU(e,t,a),f=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,p=await Promise.resolve(t.clientInformation());if(!p){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let b=u?.client_id_metadata_document_supported===!0,x=t.clientMetadataUrl;if(x&&!gU(x))throw new qn(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${x}`);if(b&&x)p={client_id:x},await t.saveClientInformation?.(p);else{if(!t.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let R=await kU(c,{metadata:u,clientMetadata:t.clientMetadata,scope:f,fetchFn:i});await t.saveClientInformation(R),p=R}}let h=!t.redirectUrl;if(r!==void 0||h){let b=await xU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}let m=await t.tokens();if(m?.refresh_token)try{let b=await PU(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof Re)||b instanceof yr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await RU(c,{metadata:u,clientInformation:p,state:g,redirectUrl:t.redirectUrl,scope:f,resource:l});return await t.saveCodeVerifier(w),await t.redirectToAuthorization(v),"REDIRECT"}function gU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function yU(t,e,r){let n=IP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!OP({requestedResource:n,configuredResource:r.resource}))throw new Error(`Protected resource ${r.resource} does not match expected ${n} (or origin)`);return new URL(r.resource)}}function Bo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=Ah(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Ah(t,"scope")||void 0,a=Ah(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Ah(t,e){let r=t.headers.get("WWW-Authenticate");if(!r)return null;let n=new RegExp(`${e}=(?:"([^"]+)"|([^\\s,]+))`),o=r.match(n);return o?o[1]||o[2]:null}async function LP(t,e,r=fetch){let n=await SU(t,"oauth-protected-resource",r,{protocolVersion:e?.protocolVersion,metadataUrl:e?.resourceMetadataUrl});if(!n||n.status===404)throw await n?.body?.cancel(),new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!n.ok)throw await n.body?.cancel(),new Error(`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`);return EP.parse(await n.json())}async function Mh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Mh(t,void 0,r):void 0;throw n}}function vU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function NP(t,e,r=fetch){return await Mh(t,{"MCP-Protocol-Version":e},r)}function _U(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function SU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??wo,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=vU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await NP(s,i,r);if(!n?.metadataUrl&&_U(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await NP(c,i,r)}return a}function wU(t){let e=typeof t=="string"?new URL(t):t,r=e.pathname!=="/",n=[];if(!r)return n.push({url:new URL("/.well-known/oauth-authorization-server",e.origin),type:"oauth"}),n.push({url:new URL("/.well-known/openid-configuration",e.origin),type:"oidc"}),n;let o=e.pathname;return o.endsWith("/")&&(o=o.slice(0,-1)),n.push({url:new URL(`/.well-known/oauth-authorization-server${o}`,e.origin),type:"oauth"}),n.push({url:new URL(`/.well-known/openid-configuration${o}`,e.origin),type:"oidc"}),n.push({url:new URL(`${o}/.well-known/openid-configuration`,e.origin),type:"oidc"}),n}async function jP(t,{fetchFn:e=fetch,protocolVersion:r=wo}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=wU(t);for(let{url:i,type:s}of o){let a=await Mh(i,n,e);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw new Error(`HTTP ${a.status} trying to load ${s==="oauth"?"OAuth":"OpenID provider"} metadata from ${i}`)}return s==="oauth"?xh.parse(await a.json()):TP.parse(await a.json())}}}async function bU(t,e){let r,n;try{r=await LP(t,{resourceMetadataUrl:e?.resourceMetadataUrl},e?.fetchFn),r.authorization_servers&&r.authorization_servers.length>0&&(n=r.authorization_servers[0])}catch{}n||(n=String(new URL("/",t)));let o=await jP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function RU(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:i,resource:s}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(kh))throw new Error(`Incompatible auth server: does not support response type ${kh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Eh))throw new Error(`Incompatible auth server: does not support code challenge method ${Eh}`)}else a=new URL("/authorize",t);let c=await Ph(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",kh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Eh),a.searchParams.set("redirect_uri",String(n)),i&&a.searchParams.set("state",i),o&&a.searchParams.set("scope",o),o?.includes("offline_access")&&a.searchParams.append("prompt","consent"),s&&a.searchParams.set("resource",s.href),{authorizationUrl:a,codeVerifier:u}}function CU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function FP(t,{metadata:e,tokenRequestParams:r,clientInformation:n,addClientAuthentication:o,resource:i,fetchFn:s}){let a=e?.token_endpoint?new URL(e.token_endpoint):new URL("/token",t),c=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});if(i&&r.set("resource",i.href),o)await o(c,r,a,e);else if(n){let d=e?.token_endpoint_auth_methods_supported??[],l=lU(n,d);fU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await DP(u);return AP.parse(await u.json())}async function PU(t,{metadata:e,clientInformation:r,refreshToken:n,resource:o,addClientAuthentication:i,fetchFn:s}){let a=new URLSearchParams({grant_type:"refresh_token",refresh_token:n}),c=await FP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function xU(t,e,{metadata:r,resource:n,authorizationCode:o,fetchFn:i}={}){let s=t.clientMetadata.scope,a;if(t.prepareTokenRequest&&(a=await t.prepareTokenRequest(s)),!a){if(!o)throw new Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!t.redirectUrl)throw new Error("redirectUrl is required for authorization_code flow");let u=await t.codeVerifier();a=CU(o,u,t.redirectUrl)}let c=await t.clientInformation();return FP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function kU(t,{metadata:e,clientMetadata:r,scope:n,fetchFn:o}){let i;if(e){if(!e.registration_endpoint)throw new Error("Incompatible auth server: does not support dynamic client registration");i=new URL(e.registration_endpoint)}else i=new URL("/register",t);let s=await(o??fetch)(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...n!==void 0?{scope:n}:{}})});if(!s.ok)throw await DP(s);return $P.parse(await s.json())}var Gs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},nu=class{constructor(e,r){this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=r?.eventSourceInit,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=ru(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new Ze("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Ze;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Zo(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Ln(this._url.href,{...this._eventSourceInit,fetch:async(o,i)=>{let s=await this._commonHeaders();s.set("Accept","text/event-stream");let a=await e(o,{...i,headers:s});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Bo(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let i=new Gs(o.code,o.message,o);n(i),this.onerror?.(i)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let i=o;try{if(this._endpoint=new URL(i.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(s){n(s),this.onerror?.(s),this.close();return}r()}),this._eventSource.onmessage=o=>{let i=o,s;try{s=Hr.parse(JSON.parse(i.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(s)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new Ze("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let i=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:s,scope:a}=Bo(o);if(this._resourceMetadataUrl=s,this._scope=a,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${i}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var Ax=Xs(Ex(),1);import Uh from"node:process";import{PassThrough as rq}from"node:stream";var eq=10*1024*1024,iu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??eq}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
87
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of t.seen.entries()){let a=s[1];if(e===s[0]){i(s);continue}if(t.external){let u=t.external.registry.get(s[0])?.id;if(e!==s[0]&&u){i(s);continue}}if(t.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&t.reused==="ref"){i(s);continue}}}function Dl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),h=p.schema;if(h.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(h.$ref&&p.def)for(let g in u)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(u[g])===JSON.stringify(p.def[g])&&delete u[g]}let f=a._zod.parent;if(f&&f!==l){n(f);let p=t.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(let h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:ji(e,"input",t.processors),output:ji(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function He(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return He(n.element,r);if(n.type==="set")return He(n.valueType,r);if(n.type==="lazy")return He(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return He(n.innerType,r);if(n.type==="intersection")return He(n.left,r)||He(n.right,r);if(n.type==="record"||n.type==="map")return He(n.keyType,r)||He(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:He(n.in,r)||He(n.out,r);if(n.type==="object"){for(let o in n.shape)if(He(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(He(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(He(o,r))return!0;return!!(n.rest&&He(n.rest,r))}return!1}var KS=(t,e={})=>r=>{let n=zl({...r,processors:e});return we(t,n),Nl(n,t),Dl(n,t)},ji=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=zl({...o??{},target:i,io:e,processors:r});return we(t,s),Nl(s,t),Dl(s,t)};var hI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},JS=(t,e,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),a&&(o.format=hI[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(l=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))])}},YS=(t,e,r,n)=>{let o=r,{minimum:i,maximum:s,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:d}=t._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number";let l=typeof d=="number"&&d>=(i??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(s??Number.POSITIVE_INFINITY),p=e.target==="draft-04"||e.target==="openapi-3.0";l?p?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d:typeof i=="number"&&(o.minimum=i),f?p?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:typeof s=="number"&&(o.maximum=s),typeof c=="number"&&(o.multipleOf=c)},XS=(t,e,r,n)=>{r.type="boolean"},QS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var ew=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var tw=(t,e,r,n)=>{r.not={}},rw=(t,e,r,n)=>{},nw=(t,e,r,n)=>{},ow=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},iw=(t,e,r,n)=>{let o=t._zod.def,i=Ti(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},sw=(t,e,r,n)=>{let o=t._zod.def,i=[];for(let s of o.values)if(s===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s))}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[s]:r.const=s}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i};var aw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var cw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var uw=(t,e,r,n)=>{let o=r,i=t._zod.def,{minimum:s,maximum:a}=t._zod.bag;typeof s=="number"&&(o.minItems=s),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=we(i.element,e,{...n,path:[...n.path,"items"]})},dw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=we(s[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(s)),c=new Set([...a].filter(u=>{let d=i.shape[u]._zod;return e.io==="input"?d.optin===void 0:d.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=we(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},lw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>we(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},fw=(t,e,r,n)=>{let o=t._zod.def,i=we(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=we(o.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];r.allOf=c};var pw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let d=we(i.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let l of c)o.patternProperties[l.source]=d}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=we(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=we(i.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let d=[...u].filter(l=>typeof l=="string"||typeof l=="number");d.length>0&&(o.required=d)}},hw=(t,e,r,n)=>{let o=t._zod.def,i=we(o.innerType,e,n),s=e.seen.get(t);e.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},mw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},gw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},yw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},vw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},_w=(t,e,r,n)=>{let o=t._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=e.io==="input"?i?o.out:o.in:o.out;we(s,e,n);let a=e.seen.get(t);a.ref=s},Sw=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Ll=(t,e,r,n)=>{let o=t._zod.def;we(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Wa(t){return!!t._zod}function $t(t,e){return Wa(t)?Oi(t,e):t.safeParse(e)}function Va(t){if(!t)return;let e;if(Wa(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Ka(t){if(Wa(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Fi={};qu(Fi,{ZodISODate:()=>bw,ZodISODateTime:()=>ww,ZodISODuration:()=>Cw,ZodISOTime:()=>Rw,date:()=>Fl,datetime:()=>jl,duration:()=>ql,time:()=>Ul});var ww=S("ZodISODateTime",(t,e)=>{__.init(t,e),me.init(t,e)});function jl(t){return AS(ww,t)}var bw=S("ZodISODate",(t,e)=>{S_.init(t,e),me.init(t,e)});function Fl(t){return MS(bw,t)}var Rw=S("ZodISOTime",(t,e)=>{w_.init(t,e),me.init(t,e)});function Ul(t){return $S(Rw,t)}var Cw=S("ZodISODuration",(t,e)=>{b_.init(t,e),me.init(t,e)});function ql(t){return IS(Cw,t)}var bI=(t,e)=>{Da.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>dl(t,r)},flatten:{value:r=>ul(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,po,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,po,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=S("ZodError",bI,{Parent:Error});var xw=La(ut),kw=ja(ut),Ew=Ii(ut),Tw=zi(ut),Aw=rv(ut),Mw=nv(ut),$w=ov(ut),Iw=iv(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut),Dw=uv(ut);var Lw=new WeakMap;function Ui(t,e,r){let n=Object.getPrototypeOf(t),o=Lw.get(n);if(o||(o=new Set,Lw.set(n,o)),!o.has(e)){o.add(e);for(let i in r){let s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){let a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var oe=S("ZodType",(t,e)=>(te.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:ji(t,"input"),output:ji(t,"output")}}),t.toJSONSchema=KS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>xw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Ew(t,r,n),t.parseAsync=async(r,n)=>kw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Tw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Aw(t,r,n),t.decode=(r,n)=>Mw(t,r,n),t.encodeAsync=async(r,n)=>$w(t,r,n),t.decodeAsync=async(r,n)=>Iw(t,r,n),t.safeEncode=(r,n)=>Ow(t,r,n),t.safeDecode=(r,n)=>zw(t,r,n),t.safeEncodeAsync=async(r,n)=>Nw(t,r,n),t.safeDecodeAsync=async(r,n)=>Dw(t,r,n),Ui(t,"ZodType",{check(...r){let n=this.def;return this.clone(H.mergeDefs(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return yt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(dO(r,n))},superRefine(r,n){return this.check(lO(r,n))},overwrite(r){return this.check(Ur(r))},optional(){return ye(this)},exactOptional(){return XI(this)},nullable(){return qw(this)},nullish(){return ye(qw(this))},nonoptional(r){return oO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return Xa(this,r)},transform(r){return Hw(this,Qw(r))},default(r){return tO(this,r)},prefault(r){return nO(this,r)},catch(r){return sO(this,r)},pipe(r){return Hw(this,r)},readonly(){return uO(this)},describe(r){let n=this.clone();return Fr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Fr.get(this);let n=this.clone();return Fr.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(t,"description",{get(){return Fr.get(t)?.description},configurable:!0}),t)),Gw=S("_ZodString",(t,e)=>{Ga.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>JS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Ui(t,"_ZodString",{regex(...n){return this.check(Cl(...n))},includes(...n){return this.check(kl(...n))},startsWith(...n){return this.check(El(...n))},endsWith(...n){return this.check(Tl(...n))},min(...n){return this.check(vo(...n))},max(...n){return this.check(Za(...n))},length(...n){return this.check(Ba(...n))},nonempty(...n){return this.check(vo(1,...n))},lowercase(n){return this.check(Pl(n))},uppercase(n){return this.check(xl(n))},trim(){return this.check(Ml())},normalize(...n){return this.check(Al(...n))},toLowerCase(){return this.check($l())},toUpperCase(){return this.check(Il())},slugify(){return this.check(Ol())}})}),Gl=S("ZodString",(t,e)=>{Ga.init(t,e),Gw.init(t,e),t.email=r=>t.check(dS(CI,r)),t.url=r=>t.check(Rl(Zw,r)),t.jwt=r=>t.check(TS(jI,r)),t.emoji=r=>t.check(mS(PI,r)),t.guid=r=>t.check(bl(jw,r)),t.uuid=r=>t.check(lS(Ja,r)),t.uuidv4=r=>t.check(fS(Ja,r)),t.uuidv6=r=>t.check(pS(Ja,r)),t.uuidv7=r=>t.check(hS(Ja,r)),t.nanoid=r=>t.check(gS(xI,r)),t.guid=r=>t.check(bl(jw,r)),t.cuid=r=>t.check(yS(kI,r)),t.cuid2=r=>t.check(vS(EI,r)),t.ulid=r=>t.check(_S(TI,r)),t.base64=r=>t.check(xS(NI,r)),t.base64url=r=>t.check(kS(DI,r)),t.xid=r=>t.check(SS(AI,r)),t.ksuid=r=>t.check(wS(MI,r)),t.ipv4=r=>t.check(bS($I,r)),t.ipv6=r=>t.check(RS(II,r)),t.cidrv4=r=>t.check(CS(OI,r)),t.cidrv6=r=>t.check(PS(zI,r)),t.e164=r=>t.check(ES(LI,r)),t.datetime=r=>t.check(jl(r)),t.date=r=>t.check(Fl(r)),t.time=r=>t.check(Ul(r)),t.duration=r=>t.check(ql(r))});function y(t){return cS(Gl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Gw.init(t,e)}),CI=S("ZodEmail",(t,e)=>{d_.init(t,e),me.init(t,e)});var jw=S("ZodGUID",(t,e)=>{c_.init(t,e),me.init(t,e)});var Ja=S("ZodUUID",(t,e)=>{u_.init(t,e),me.init(t,e)});var Zw=S("ZodURL",(t,e)=>{l_.init(t,e),me.init(t,e)});function Bw(t){return Rl(Zw,t)}var PI=S("ZodEmoji",(t,e)=>{f_.init(t,e),me.init(t,e)});var xI=S("ZodNanoID",(t,e)=>{p_.init(t,e),me.init(t,e)});var kI=S("ZodCUID",(t,e)=>{h_.init(t,e),me.init(t,e)});var EI=S("ZodCUID2",(t,e)=>{m_.init(t,e),me.init(t,e)});var TI=S("ZodULID",(t,e)=>{g_.init(t,e),me.init(t,e)});var AI=S("ZodXID",(t,e)=>{y_.init(t,e),me.init(t,e)});var MI=S("ZodKSUID",(t,e)=>{v_.init(t,e),me.init(t,e)});var $I=S("ZodIPv4",(t,e)=>{R_.init(t,e),me.init(t,e)});var II=S("ZodIPv6",(t,e)=>{C_.init(t,e),me.init(t,e)});var OI=S("ZodCIDRv4",(t,e)=>{P_.init(t,e),me.init(t,e)});var zI=S("ZodCIDRv6",(t,e)=>{x_.init(t,e),me.init(t,e)});var NI=S("ZodBase64",(t,e)=>{E_.init(t,e),me.init(t,e)});var DI=S("ZodBase64URL",(t,e)=>{T_.init(t,e),me.init(t,e)});var LI=S("ZodE164",(t,e)=>{A_.init(t,e),me.init(t,e)});var jI=S("ZodJWT",(t,e)=>{M_.init(t,e),me.init(t,e)});var Ya=S("ZodNumber",(t,e)=>{yl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>YS(t,n,o,i),Ui(t,"ZodNumber",{gt(n,o){return this.check(yo(n,o))},gte(n,o){return this.check(Mt(n,o))},min(n,o){return this.check(Mt(n,o))},lt(n,o){return this.check(go(n,o))},lte(n,o){return this.check(dr(n,o))},max(n,o){return this.check(dr(n,o))},int(n){return this.check(Fw(n))},safe(n){return this.check(Fw(n))},positive(n){return this.check(yo(0,n))},nonnegative(n){return this.check(Mt(0,n))},negative(n){return this.check(go(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Li(n,o))},step(n,o){return this.check(Li(n,o))},finite(){return this}});let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function K(t){return OS(Ya,t)}var FI=S("ZodNumberFormat",(t,e)=>{$_.init(t,e),Ya.init(t,e)});function Fw(t){return NS(FI,t)}var Zl=S("ZodBoolean",(t,e)=>{I_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>XS(t,r,n,o)});function ie(t){return DS(Zl,t)}var Ww=S("ZodBigInt",(t,e)=>{O_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>QS(t,n,o,i),t.gte=(n,o)=>t.check(Mt(n,o)),t.min=(n,o)=>t.check(Mt(n,o)),t.gt=(n,o)=>t.check(yo(n,o)),t.gte=(n,o)=>t.check(Mt(n,o)),t.min=(n,o)=>t.check(Mt(n,o)),t.lt=(n,o)=>t.check(go(n,o)),t.lte=(n,o)=>t.check(dr(n,o)),t.max=(n,o)=>t.check(dr(n,o)),t.positive=n=>t.check(yo(BigInt(0),n)),t.negative=n=>t.check(go(BigInt(0),n)),t.nonpositive=n=>t.check(dr(BigInt(0),n)),t.nonnegative=n=>t.check(Mt(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Li(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var UI=S("ZodNull",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o)});function Vw(t){return FS(UI,t)}var qI=S("ZodAny",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function Kw(){return US(qI)}var HI=S("ZodUnknown",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o)});function ge(){return qS(HI)}var GI=S("ZodNever",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>tw(t,r,n,o)});function ZI(t){return HS(GI,t)}var Jw=S("ZodDate",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ow(t,n,o,i),t.min=(n,o)=>t.check(Mt(n,o)),t.max=(n,o)=>t.check(dr(n,o));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});var BI=S("ZodArray",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o),t.element=e.element,Ui(t,"ZodArray",{min(r,n){return this.check(vo(r,n))},nonempty(r){return this.check(vo(1,r))},max(r,n){return this.check(Za(r,n))},length(r,n){return this.check(Ba(r,n))},unwrap(){return this.element}})});function x(t,e){return ZS(BI,t,e)}var Yw=S("ZodObject",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Ui(t,"ZodObject",{keyof(){return Qe(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:ge()})},loose(){return this.clone({...this._zod.def,catchall:ge()})},strict(){return this.clone({...this._zod.def,catchall:ZI()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return H.extend(this,r)},safeExtend(r){return H.safeExtend(this,r)},merge(r){return H.merge(this,r)},pick(r){return H.pick(this,r)},omit(r){return H.omit(this,r)},partial(...r){return H.partial(eb,this,r[0])},required(...r){return H.required(tb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Yw(r)}function ke(t,e){return new Yw({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var Xw=S("ZodUnion",(t,e)=>{vl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.options=e.options});function ue(t,e){return new Xw({type:"union",options:t,...H.normalizeParams(e)})}var WI=S("ZodDiscriminatedUnion",(t,e)=>{Xw.init(t,e),G_.init(t,e)});function Bl(t,e,r){return new WI({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var VI=S("ZodIntersection",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o)});function Xa(t,e){return new VI({type:"intersection",left:t,right:e})}var Uw=S("ZodRecord",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Uw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Uw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Hl=S("ZodEnum",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>iw(t,n,o,i),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,o)=>{let i={};for(let s of n)if(r.has(s))i[s]=e.entries[s];else throw new Error(`Key ${s} not found in enum`);return new Hl({...e,checks:[],...H.normalizeParams(o),entries:i})},t.exclude=(n,o)=>{let i={...e.entries};for(let s of n)if(r.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new Hl({...e,checks:[],...H.normalizeParams(o),entries:i})}});function Qe(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Hl({type:"enum",entries:r,...H.normalizeParams(e)})}var KI=S("ZodLiteral",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function E(t,e){return new KI({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var JI=S("ZodTransform",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new lo(t.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(H.issue(i,r.value,e));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=t),r.issues.push(H.issue(s))}};let o=e.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function Qw(t){return new JI({type:"transform",transform:t})}var eb=S("ZodOptional",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ll(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new eb({type:"optional",innerType:t})}var YI=S("ZodExactOptional",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ll(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function XI(t){return new YI({type:"optional",innerType:t})}var QI=S("ZodNullable",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function qw(t){return new QI({type:"nullable",innerType:t})}var eO=S("ZodDefault",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function tO(t,e){return new eO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var rO=S("ZodPrefault",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function nO(t,e){return new rO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var tb=S("ZodNonOptional",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function oO(t,e){return new tb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var iO=S("ZodCatch",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function sO(t,e){return new iO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var rb=S("ZodPipe",(t,e)=>{Sl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o),t.in=e.in,t.out=e.out});function Hw(t,e){return new rb({type:"pipe",in:t,out:e})}var aO=S("ZodPreprocess",(t,e)=>{rb.init(t,e),rS.init(t,e)}),cO=S("ZodReadonly",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function uO(t){return new cO({type:"readonly",innerType:t})}var nb=S("ZodCustom",(t,e)=>{oS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o)});function ob(t,e){return BS(nb,t??(()=>!0),e)}function dO(t,e={}){return WS(nb,t,e)}function lO(t,e){return VS(t,e)}function Wl(t,e){return new aO({type:"pipe",in:Qw(t),out:e})}var sb={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};var ib;ib||(ib={});var Qa={};qu(Qa,{bigint:()=>mO,boolean:()=>hO,date:()=>gO,number:()=>pO,string:()=>fO});function fO(t){return uS(Gl,t)}function pO(t){return zS(Ya,t)}function hO(t){return LS(Zl,t)}function mO(t){return jS(Ww,t)}function gO(t){return GS(Jw,t)}Xe(iS());var wo="2025-11-25";var ab=[wo,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],qr="io.modelcontextprotocol/related-task",tc="2.0",Ee=ob(t=>t!==null&&(typeof t=="object"||typeof t=="function")),cb=ue([y(),K().int()]),ub=y(),IV=ke({ttl:K().optional(),pollInterval:K().optional()}),vO=k({ttl:K().optional()}),_O=k({taskId:y()}),Kl=ke({progressToken:cb.optional(),[qr]:_O.optional()}),dt=k({_meta:Kl.optional()}),qi=dt.extend({task:vO.optional()}),db=t=>qi.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Kl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Te=ke({_meta:Kl.optional()}),rc=ue([y(),K().int()]),lb=k({jsonrpc:E(tc),id:rc,...Oe.shape}).strict(),Hi=t=>lb.safeParse(t).success,fb=k({jsonrpc:E(tc),...St.shape}).strict(),pb=t=>fb.safeParse(t).success,Jl=k({jsonrpc:E(tc),id:rc,result:Te}).strict(),wn=t=>Jl.safeParse(t).success;var $;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})($||($={}));var Yl=k({jsonrpc:E(tc),id:rc.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var hb=t=>Yl.safeParse(t).success;var Hr=ue([lb,fb,Jl,Yl]),OV=ue([Jl,Yl]),bn=Te.strict(),SO=_t.extend({requestId:rc.optional(),reason:y().optional()}),nc=St.extend({method:E("notifications/cancelled"),params:SO}),wO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:Qe(["light","dark"]).optional()}),Gi=k({icons:x(wO).optional()}),So=k({name:y(),title:y().optional()}),mb=So.extend({...So.shape,...Gi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),bO=Xa(k({applyDefaults:ie().optional()}),ae(y(),ge())),RO=Wl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Xa(k({form:bO.optional(),url:Ee.optional()}),ae(y(),ge()).optional())),CO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({sampling:ke({createMessage:Ee.optional()}).optional(),elicitation:ke({create:Ee.optional()}).optional()}).optional()}),PO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({tools:ke({call:Ee.optional()}).optional()}).optional()}),xO=k({experimental:ae(y(),Ee).optional(),sampling:k({context:Ee.optional(),tools:Ee.optional()}).optional(),elicitation:RO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:CO.optional(),extensions:ae(y(),Ee).optional()}),kO=dt.extend({protocolVersion:y(),capabilities:xO,clientInfo:mb}),EO=Oe.extend({method:E("initialize"),params:kO});var TO=k({experimental:ae(y(),Ee).optional(),logging:Ee.optional(),completions:Ee.optional(),prompts:k({listChanged:ie().optional()}).optional(),resources:k({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:k({listChanged:ie().optional()}).optional(),tasks:PO.optional(),extensions:ae(y(),Ee).optional()}),Xl=Te.extend({protocolVersion:y(),capabilities:TO,serverInfo:mb,instructions:y().optional()}),gb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),yb=t=>gb.safeParse(t).success,oc=Oe.extend({method:E("ping"),params:dt.optional()}),AO=k({progress:K(),total:ye(K()),message:ye(y())}),MO=k({..._t.shape,...AO.shape,progressToken:cb}),ic=St.extend({method:E("notifications/progress"),params:MO}),$O=dt.extend({cursor:ub.optional()}),Zi=Oe.extend({params:$O.optional()}),Bi=Te.extend({nextCursor:ub.optional()}),IO=Qe(["working","input_required","completed","failed","cancelled"]),Wi=k({taskId:y(),status:IO,ttl:ue([K(),Vw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Te.extend({task:Wi}),OO=_t.merge(Wi),Vi=St.extend({method:E("notifications/tasks/status"),params:OO}),sc=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),ac=Te.merge(Wi),cc=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),zV=Te.loose(),uc=Zi.extend({method:E("tasks/list")}),dc=Bi.extend({tasks:x(Wi)}),lc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),vb=Te.merge(Wi),_b=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),Sb=_b.extend({text:y()}),Ql=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),wb=_b.extend({blob:Ql}),Ki=Qe(["user","assistant"]),bo=k({audience:x(Ki).optional(),priority:K().min(0).max(1).optional(),lastModified:Fi.datetime({offset:!0}).optional()}),bb=k({...So.shape,...Gi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:bo.optional(),_meta:ye(ke({}))}),zO=k({...So.shape,...Gi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:bo.optional(),_meta:ye(ke({}))}),NO=Zi.extend({method:E("resources/list")}),ef=Bi.extend({resources:x(bb)}),DO=Zi.extend({method:E("resources/templates/list")}),tf=Bi.extend({resourceTemplates:x(zO)}),rf=dt.extend({uri:y()}),LO=rf,jO=Oe.extend({method:E("resources/read"),params:LO}),nf=Te.extend({contents:x(ue([Sb,wb]))}),of=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),FO=rf,UO=Oe.extend({method:E("resources/subscribe"),params:FO}),qO=rf,HO=Oe.extend({method:E("resources/unsubscribe"),params:qO}),GO=_t.extend({uri:y()}),ZO=St.extend({method:E("notifications/resources/updated"),params:GO}),BO=k({name:y(),description:ye(y()),required:ye(ie())}),WO=k({...So.shape,...Gi.shape,description:ye(y()),arguments:ye(x(BO)),_meta:ye(ke({}))}),VO=Zi.extend({method:E("prompts/list")}),sf=Bi.extend({prompts:x(WO)}),KO=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),JO=Oe.extend({method:E("prompts/get"),params:KO}),af=k({type:E("text"),text:y(),annotations:bo.optional(),_meta:ae(y(),ge()).optional()}),cf=k({type:E("image"),data:Ql,mimeType:y(),annotations:bo.optional(),_meta:ae(y(),ge()).optional()}),uf=k({type:E("audio"),data:Ql,mimeType:y(),annotations:bo.optional(),_meta:ae(y(),ge()).optional()}),YO=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),XO=k({type:E("resource"),resource:ue([Sb,wb]),annotations:bo.optional(),_meta:ae(y(),ge()).optional()}),QO=bb.extend({type:E("resource_link")}),df=ue([af,cf,uf,QO,XO]),ez=k({role:Ki,content:df}),lf=Te.extend({description:y().optional(),messages:x(ez)}),ff=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),tz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),rz=k({taskSupport:Qe(["required","optional","forbidden"]).optional()}),Rb=k({...So.shape,...Gi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:tz.optional(),execution:rz.optional(),_meta:ae(y(),ge()).optional()}),nz=Zi.extend({method:E("tools/list")}),pf=Bi.extend({tools:x(Rb)}),Cn=Te.extend({content:x(df).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),NV=Cn.or(Te.extend({toolResult:ge()})),oz=qi.extend({name:y(),arguments:ae(y(),ge()).optional()}),iz=Oe.extend({method:E("tools/call"),params:oz}),Ji=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Cb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Pb=Qe(["debug","info","notice","warning","error","critical","alert","emergency"]),sz=dt.extend({level:Pb}),az=Oe.extend({method:E("logging/setLevel"),params:sz}),cz=_t.extend({level:Pb,logger:y().optional(),data:ge()}),uz=St.extend({method:E("notifications/message"),params:cz}),dz=k({name:y().optional()}),lz=k({hints:x(dz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),fz=k({mode:Qe(["auto","required","none"]).optional()}),pz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(df).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),hz=Bl("type",[af,cf,uf]),ec=Bl("type",[af,cf,uf,YO,pz]),mz=k({role:Ki,content:ue([ec,x(ec)]),_meta:ae(y(),ge()).optional()}),gz=qi.extend({messages:x(mz),modelPreferences:lz.optional(),systemPrompt:y().optional(),includeContext:Qe(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:x(y()).optional(),metadata:Ee.optional(),tools:x(Rb).optional(),toolChoice:fz.optional()}),hf=Oe.extend({method:E("sampling/createMessage"),params:gz}),mf=Te.extend({model:y(),stopReason:ye(Qe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Ki,content:hz}),gf=Te.extend({model:y(),stopReason:ye(Qe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Ki,content:ue([ec,x(ec)])}),yz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),vz=k({type:E("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:Qe(["email","uri","date","date-time"]).optional(),default:y().optional()}),_z=k({type:Qe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Sz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),wz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),bz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),Rz=ue([Sz,wz]),Cz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({type:E("string"),enum:x(y())}),default:x(y()).optional()}),Pz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({anyOf:x(k({const:y(),title:y()}))}),default:x(y()).optional()}),xz=ue([Cz,Pz]),kz=ue([bz,Rz,xz]),Ez=ue([kz,yz,vz,_z]),Tz=qi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Ez),required:x(y()).optional()})}),Az=qi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Mz=ue([Tz,Az]),yf=Oe.extend({method:E("elicitation/create"),params:Mz}),$z=_t.extend({elicitationId:y()}),Iz=St.extend({method:E("notifications/elicitation/complete"),params:$z}),vf=Te.extend({action:Qe(["accept","decline","cancel"]),content:Wl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Oz=k({type:E("ref/resource"),uri:y()});var zz=k({type:E("ref/prompt"),name:y()}),Nz=dt.extend({ref:ue([zz,Oz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Dz=Oe.extend({method:E("completion/complete"),params:Nz});var _f=Te.extend({completion:ke({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Lz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),jz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Fz=Te.extend({roots:x(Lz)}),Uz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),DV=ue([oc,EO,Dz,az,JO,VO,NO,DO,jO,UO,HO,iz,nz,sc,cc,uc,lc]),LV=ue([nc,ic,gb,Uz,Vi]),jV=ue([bn,mf,gf,vf,Fz,ac,dc,Rn]),FV=ue([oc,hf,yf,jz,sc,cc,uc,lc]),UV=ue([nc,ic,uz,ZO,of,Ji,ff,Vi,Iz]),qV=ue([bn,Xl,_f,lf,sf,ef,tf,nf,Cn,pf,ac,dc,Rn]),M=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===$.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new Vl(o.elicitations,r)}return new t(e,r,n)}},Vl=class extends M{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Gr(t){return t==="completed"||t==="failed"||t==="cancelled"}var w6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Sf(t){let r=Va(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Ka(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function wf(t,e){let r=$t(t,e);if(!r.success)throw r.error;return r.data}var Wz=6e4,fc=class{constructor(e){this._options=e,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(nc,r=>{this._oncancel(r)}),this.setNotificationHandler(ic,r=>{this._onprogress(r)}),this.setRequestHandler(oc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(sc,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(cc,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),a.type==="response")d(c);else{let l=c,f=new M(l.error.code,l.error.message,l.error.data);d(f)}else{let l=a.type==="response"?"Response":"Error";this._onerror(new Error(`${l} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new M($.InvalidParams,`Task not found: ${i}`);if(!Gr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Gr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[qr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(uc,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new M($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(lc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Gr(o.status))throw new M($.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new M($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof M?o:new M($.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),M.fromError($.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),wn(i)||hb(i)?this._onresponse(i):Hi(i)?this._onrequest(i,s):pb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=M.fromError($.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[qr]?.taskId;if(n===void 0){let d={jsonrpc:"2.0",id:e.id,error:{code:$.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId).catch(l=>this._onerror(new Error(`Failed to enqueue error response: ${l}`))):o?.send(d).catch(l=>this._onerror(new Error(`Failed to send an error response: ${l}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let a=db(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async d=>{if(s.signal.aborted)return;let l={relatedRequestId:e.id};i&&(l.relatedTask={taskId:i}),await this.notification(d,l)},sendRequest:async(d,l,f)=>{if(s.signal.aborted)throw new M($.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:e.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let h=p.relatedTask?.taskId??i;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),wn(e))n(e);else{let s=new M(e.error.code,e.error.message,e.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(wn(e)&&e.result&&typeof e.result=="object"){let s=e.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,r))}}if(i||this._progressHandlers.delete(r),wn(e))o(e);else{let s=M.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}return}let i;try{let s=await this.request(e,Rn,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new M($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Gr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new M($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new M($.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,d)=>{let l=b=>{d(b)};if(!this._transport){l(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(b){l(b);return}n?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...e,jsonrpc:"2.0",id:f};n?.onprogress&&(this._progressHandlers.set(f,n.onprogress),p.params={...e.params,_meta:{...e.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[qr]:c}});let h=b=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(b)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(R=>this._onerror(new Error(`Failed to send cancellation: ${R}`)));let _=b instanceof M?b:new M($.RequestTimeout,String(b));d(_)};this._responseHandlers.set(f,b=>{if(!n?.signal?.aborted){if(b instanceof Error)return d(b);try{let _=$t(r,b.result);_.success?u(_.data):d(_.error)}catch(_){d(_)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let m=n?.timeout??Wz,g=()=>h(M.fromError($.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let b=_=>{let R=this._responseHandlers.get(f);R?R(_):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,b),this._enqueueTaskMessage(v,{type:"request",message:p,timestamp:Date.now()}).catch(_=>{this._cleanupTimeout(f),d(_)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(b=>{this._cleanupTimeout(f),d(b)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},ac,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},dc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},vb,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[qr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[qr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[qr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=Sf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=wf(e,o);return Promise.resolve(r(s,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=Sf(e);this._notificationHandlers.set(n,o=>{let i=wf(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Hi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new M($.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new M($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new M($.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Vi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Gr(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new M($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Gr(a.status))throw new M($.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Vi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Gr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function xb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function kb(t,e){let r={...t};for(let n in e){let o=n,i=e[o];if(i===void 0)continue;let s=r[o];xb(s)&&xb(i)?r[o]={...s,...i}:r[o]=i}return r}var yP=Xs(ah(),1),vP=Xs(gP(),1);function XF(){let t=new yP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,vP.default)(t),t}var Kc=class{constructor(e){this._ajv=e??XF()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Jc=class{constructor(e){this._client=e}async*callToolStream(e,r=Cn,n){let o=this._client,i={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},s=o.requestStream({method:"tools/call",params:e},r,i),a=o.getToolOutputValidator(e.name);for await(let c of s){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let d=a(u.structuredContent);if(!d.valid){yield{type:"error",error:new M($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof M){yield{type:"error",error:d};return}yield{type:"error",error:new M($.InvalidParams,`Failed to validate structured content: ${d instanceof Error?d.message:String(d)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function _P(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function SP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Yc(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let o of Object.keys(n)){let i=n[o];r[o]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[o]=i.default),r[o]!==void 0&&Yc(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Yc(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Yc(r,e)}}function QF(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Xc=class extends fc{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Kc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Ji,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",ff,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",of,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Jc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=kb(this._capabilities,e)}setRequestHandler(e,r){let o=Va(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Ka(o);if(typeof i!="string")throw new Error("Schema method literal must be a string");let s=i;if(s==="elicitation/create"){let a=async(c,u)=>{let d=$t(yf,c);if(!d.success){let b=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid elicitation request: ${b}`)}let{params:l}=d.data;l.mode=l.mode??"form";let{supportsFormMode:f,supportsUrlMode:p}=QF(this._capabilities.elicitation);if(l.mode==="form"&&!f)throw new M($.InvalidParams,"Client does not support form-mode elicitation requests");if(l.mode==="url"&&!p)throw new M($.InvalidParams,"Client does not support URL-mode elicitation requests");let h=await Promise.resolve(r(c,u));if(l.task){let b=$t(Rn,h);if(!b.success){let _=b.error instanceof Error?b.error.message:String(b.error);throw new M($.InvalidParams,`Invalid task creation result: ${_}`)}return b.data}let m=$t(vf,h);if(!m.success){let b=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid elicitation result: ${b}`)}let g=m.data,v=l.mode==="form"?l.requestedSchema:void 0;if(l.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Yc(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=$t(hf,c);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid sampling request: ${g}`)}let{params:l}=d.data,f=await Promise.resolve(r(c,u));if(l.task){let g=$t(Rn,f);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new M($.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let h=l.tools||l.toolChoice?gf:mf,m=$t(h,f);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid sampling result: ${g}`)}return m.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:wo,capabilities:this._capabilities,clientInfo:this._clientInfo}},Xl,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!ab.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){_P(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&SP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},bn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},_f,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},bn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},lf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},sf,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},ef,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},tf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},nf,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},bn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},bn,r)}async callTool(e,r=Cn,n){if(this.isToolTaskRequired(e.name))throw new M($.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let o=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!o.structuredContent&&!o.isError)throw new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(o.structuredContent)try{let s=i(o.structuredContent);if(!s.valid)throw new M($.InvalidParams,`Structured content does not match the tool's output schema: ${s.errorMessage}`)}catch(s){throw s instanceof M?s:new M($.InvalidParams,`Failed to validate structured content: ${s instanceof Error?s.message:String(s)}`)}}return o}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let o=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,o)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},pf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Cb.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:s,debounceMs:a}=i.data,{onChanged:c}=n,u=async()=>{if(!s){c(null,null);return}try{let l=await o();c(null,l)}catch(l){let f=l instanceof Error?l:new Error(String(l));c(f,null)}},d=()=>{if(a){let l=this._listChangedDebounceTimers.get(e);l&&clearTimeout(l);let f=setTimeout(u,a);this._listChangedDebounceTimers.set(e,f)}else u()};this.setNotificationHandler(r,d)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var ks=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},wP=10,eU=13,Nn=32;function mh(t){}function Qc(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=mh,onError:r=mh,onRetry:n=mh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(w){if(p)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,w.charCodeAt(0)===239&&w.charCodeAt(1)===187&&w.charCodeAt(2)===191&&(w=w.slice(3))),s.length===0){let ne=g(w);ne!==""&&(s.push(ne),a=ne.length),m();return}if(w.indexOf(`
|
|
88
|
+
`)===-1&&w.indexOf("\r")===-1){s.push(w),a+=w.length,m();return}s.push(w);let C=s.join("");s.length=0,a=0;let I=g(C);I!==""&&(s.push(I),a=I.length),m()}function m(){i!==void 0&&(a+d.length<=i||(p=!0,s.length=0,a=0,u=void 0,d="",l=0,f=void 0,r(new ks(`Buffered data exceeded max buffer size of ${i} characters`,{type:"max-buffer-size-exceeded"}))))}function g(w){let C=0;if(w.indexOf("\r")===-1){let I=w.indexOf(`
|
|
89
|
+
`,C);for(;I!==-1;){if(C===I){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0,C=I+1,I=w.indexOf(`
|
|
90
|
+
`,C);continue}let ne=w.charCodeAt(C);if(bP(w,C,ne)){let pe=w.charCodeAt(C+5)===Nn?C+6:C+5,Pe=w.slice(pe,I);if(l===0&&w.charCodeAt(I+1)===wP){e({id:u,event:f,data:Pe}),u=void 0,d="",f=void 0,C=I+2,I=w.indexOf(`
|
|
91
|
+
`,C);continue}d=l===0?Pe:`${d}
|
|
92
|
+
${Pe}`,l++}else RP(w,C,ne)?f=w.slice(w.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0:v(w,C,I);C=I+1,I=w.indexOf(`
|
|
93
|
+
`,C)}return w.slice(C)}for(;C<w.length;){let I=w.indexOf("\r",C),ne=w.indexOf(`
|
|
94
|
+
`,C),pe=-1;if(I!==-1&&ne!==-1?pe=I<ne?I:ne:I!==-1?I===w.length-1?pe=-1:pe=I:ne!==-1&&(pe=ne),pe===-1)break;v(w,C,pe),C=pe+1,w.charCodeAt(C-1)===eU&&w.charCodeAt(C)===wP&&C++}return w.slice(C)}function v(w,C,I){if(C===I){_();return}let ne=w.charCodeAt(C);if(bP(w,C,ne)){let br=w.charCodeAt(C+5)===Nn?C+6:C+5,zm=w.slice(br,I);d=l===0?zm:`${d}
|
|
95
|
+
${zm}`,l++;return}if(RP(w,C,ne)){f=w.slice(w.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0;return}if(ne===105&&w.charCodeAt(C+1)===100&&w.charCodeAt(C+2)===58){let br=w.slice(w.charCodeAt(C+3)===Nn?C+4:C+3,I);u=br.includes("\0")?void 0:br;return}if(ne===58){if(o){let br=w.slice(C,I);o(br.slice(w.charCodeAt(C+1)===Nn?2:1))}return}let pe=w.slice(C,I),Pe=pe.indexOf(":");if(Pe===-1){b(pe,"",pe);return}let sn=pe.slice(0,Pe),an=pe.charCodeAt(Pe+1)===Nn?2:1,lt=pe.slice(Pe+an);b(sn,lt,pe)}function b(w,C,I){switch(w){case"event":f=C||void 0;break;case"data":d=l===0?C:`${d}
|
|
96
|
+
${C}`,l++;break;case"id":u=C.includes("\0")?void 0:C;break;case"retry":/^\d+$/.test(C)?n(parseInt(C,10)):r(new ks(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new ks(`Unknown field "${w.length>20?`${w.slice(0,20)}\u2026`:w}"`,{type:"unknown-field",field:w,value:C,line:I}));break}}function _(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function R(w={}){if(w.consume&&s.length>0){let C=s.join("");v(C,0,C.length)}c=!0,u=void 0,d="",l=0,f=void 0,s.length=0,a=0,p=!1}return{feed:h,reset:R}}function bP(t,e,r){return r===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function RP(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var tu=class extends Event{constructor(e,r){var n,o;super(e),this.code=(n=r?.code)!=null?n:void 0,this.message=(o=r?.message)!=null?o:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,r,n){return n(CP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(CP(this),r)}};function tU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function gh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(gh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${gh(t.cause)}`:t.message:`${t}`}function CP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var xP=t=>{throw TypeError(t)},Ch=(t,e,r)=>e.has(t)||xP("Cannot "+r),q=(t,e,r)=>(Ch(t,e,"read from private field"),r?r.call(t):e.get(t)),Ae=(t,e,r)=>e.has(t)?xP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(Ch(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(Ch(t,e,"access private method"),r),ot,Dn,Fo,eu,ru,As,Ho,Ms,Qr,Uo,Go,qo,Es,Lt,yh,vh,_h,PP,Sh,wh,Ts,bh,Rh,Ln=class extends EventTarget{constructor(e,r){var n,o;super(),Ae(this,Lt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Ae(this,ot),Ae(this,Dn),Ae(this,Fo),Ae(this,eu),Ae(this,ru),Ae(this,As),Ae(this,Ho),Ae(this,Ms,null),Ae(this,Qr),Ae(this,Uo),Ae(this,Go,null),Ae(this,qo,null),Ae(this,Es,null),Ae(this,vh,async i=>{var s;q(this,Uo).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,Lt,Ts).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ve(this,Fo,new URL(i.url)):ve(this,Fo,void 0),u!==200){gr(this,Lt,Ts).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,Lt,Ts).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(q(this,ot)===this.CLOSED)return;ve(this,ot,this.OPEN);let l=new Event("open");if((s=q(this,Es))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,Lt,Ts).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),h=!0;do{let{done:m,value:g}=await p.read();g&&q(this,Uo).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Uo).reset(),gr(this,Lt,bh).call(this))}while(h)}),Ae(this,_h,i=>{ve(this,Qr,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,Lt,bh).call(this,gh(i))}),Ae(this,Sh,i=>{typeof i.id=="string"&&ve(this,Ms,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,Fo)?q(this,Fo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,qo)&&(!i.event||i.event==="message")&&q(this,qo).call(this,s),this.dispatchEvent(s)}),Ae(this,wh,i=>{ve(this,As,i)}),Ae(this,Rh,()=>{ve(this,Ho,void 0),q(this,ot)===this.CONNECTING&&gr(this,Lt,yh).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,rU()));else throw new Error("Invalid URL")}catch{throw tU("An invalid or illegal string was specified")}ve(this,Uo,Qc({onEvent:q(this,Sh),onRetry:q(this,wh)})),ve(this,ot,this.CONNECTING),ve(this,As,3e3),ve(this,ru,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,eu,(o=r?.withCredentials)!=null?o:!1),gr(this,Lt,yh).call(this)}get readyState(){return q(this,ot)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,eu)}get onerror(){return q(this,Go)}set onerror(e){ve(this,Go,e)}get onmessage(){return q(this,qo)}set onmessage(e){ve(this,qo,e)}get onopen(){return q(this,Es)}set onopen(e){ve(this,Es,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){q(this,Ho)&&clearTimeout(q(this,Ho)),q(this,ot)!==this.CLOSED&&(q(this,Qr)&&q(this,Qr).abort(),ve(this,ot,this.CLOSED),ve(this,Qr,void 0))}};ot=new WeakMap,Dn=new WeakMap,Fo=new WeakMap,eu=new WeakMap,ru=new WeakMap,As=new WeakMap,Ho=new WeakMap,Ms=new WeakMap,Qr=new WeakMap,Uo=new WeakMap,Go=new WeakMap,qo=new WeakMap,Es=new WeakMap,Lt=new WeakSet,yh=function(){ve(this,ot,this.CONNECTING),ve(this,Qr,new AbortController),q(this,ru)(q(this,Dn),gr(this,Lt,PP).call(this)).then(q(this,vh)).catch(q(this,_h))},vh=new WeakMap,_h=new WeakMap,PP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ms)?{"Last-Event-ID":q(this,Ms)}:void 0},cache:"no-store",signal:(t=q(this,Qr))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},Sh=new WeakMap,wh=new WeakMap,Ts=function(t,e){var r;q(this,ot)!==this.CLOSED&&ve(this,ot,this.CLOSED);let n=new tu("error",{code:e,message:t});(r=q(this,Go))==null||r.call(this,n),this.dispatchEvent(n)},bh=function(t,e){var r;if(q(this,ot)===this.CLOSED)return;ve(this,ot,this.CONNECTING);let n=new tu("error",{code:e,message:t});(r=q(this,Go))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Ho,setTimeout(q(this,Rh),q(this,As)))},Rh=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function rU(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}function Zo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function nu(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Zo(e.headers),...Zo(n.headers)}:e.headers};return t(r,o)}:t}var Ph;Ph=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function nU(t){return(await Ph).getRandomValues(new Uint8Array(t))}async function oU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await nU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function iU(t){return await oU(t)}async function sU(t){let e=await(await Ph).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function xh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await iU(t),r=await sU(e);return{code_verifier:e,code_challenge:r}}var Le=Bw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:sb.custom,message:"URL must be parseable",fatal:!0}),Yd}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),EP=ke({resource:y().url(),authorization_servers:x(Le).optional(),jwks_uri:y().url().optional(),scopes_supported:x(y()).optional(),bearer_methods_supported:x(y()).optional(),resource_signing_alg_values_supported:x(y()).optional(),resource_name:y().optional(),resource_documentation:y().optional(),resource_policy_uri:y().url().optional(),resource_tos_uri:y().url().optional(),tls_client_certificate_bound_access_tokens:ie().optional(),authorization_details_types_supported:x(y()).optional(),dpop_signing_alg_values_supported:x(y()).optional(),dpop_bound_access_tokens_required:ie().optional()}),kh=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,registration_endpoint:Le.optional(),scopes_supported:x(y()).optional(),response_types_supported:x(y()),response_modes_supported:x(y()).optional(),grant_types_supported:x(y()).optional(),token_endpoint_auth_methods_supported:x(y()).optional(),token_endpoint_auth_signing_alg_values_supported:x(y()).optional(),service_documentation:Le.optional(),revocation_endpoint:Le.optional(),revocation_endpoint_auth_methods_supported:x(y()).optional(),revocation_endpoint_auth_signing_alg_values_supported:x(y()).optional(),introspection_endpoint:y().optional(),introspection_endpoint_auth_methods_supported:x(y()).optional(),introspection_endpoint_auth_signing_alg_values_supported:x(y()).optional(),code_challenge_methods_supported:x(y()).optional(),client_id_metadata_document_supported:ie().optional()}),aU=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,userinfo_endpoint:Le.optional(),jwks_uri:Le,registration_endpoint:Le.optional(),scopes_supported:x(y()).optional(),response_types_supported:x(y()),response_modes_supported:x(y()).optional(),grant_types_supported:x(y()).optional(),acr_values_supported:x(y()).optional(),subject_types_supported:x(y()),id_token_signing_alg_values_supported:x(y()),id_token_encryption_alg_values_supported:x(y()).optional(),id_token_encryption_enc_values_supported:x(y()).optional(),userinfo_signing_alg_values_supported:x(y()).optional(),userinfo_encryption_alg_values_supported:x(y()).optional(),userinfo_encryption_enc_values_supported:x(y()).optional(),request_object_signing_alg_values_supported:x(y()).optional(),request_object_encryption_alg_values_supported:x(y()).optional(),request_object_encryption_enc_values_supported:x(y()).optional(),token_endpoint_auth_methods_supported:x(y()).optional(),token_endpoint_auth_signing_alg_values_supported:x(y()).optional(),display_values_supported:x(y()).optional(),claim_types_supported:x(y()).optional(),claims_supported:x(y()).optional(),service_documentation:y().optional(),claims_locales_supported:x(y()).optional(),ui_locales_supported:x(y()).optional(),claims_parameter_supported:ie().optional(),request_parameter_supported:ie().optional(),request_uri_parameter_supported:ie().optional(),require_request_uri_registration:ie().optional(),op_policy_uri:Le.optional(),op_tos_uri:Le.optional(),client_id_metadata_document_supported:ie().optional()}),TP=k({...aU.shape,...kh.pick({code_challenge_methods_supported:!0}).shape}),AP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:Qa.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),MP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),kP=Le.optional().or(E("").transform(()=>{})),cU=k({redirect_uris:x(Le),token_endpoint_auth_method:y().optional(),grant_types:x(y()).optional(),response_types:x(y()).optional(),client_name:y().optional(),client_uri:Le.optional(),logo_uri:kP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:kP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Kw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),uU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),$P=cU.merge(uU),Y3=k({error:y(),error_description:y().optional()}).strip(),X3=k({token:y(),token_type_hint:y().optional()}).strip();function IP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function OP({requestedResource:t,configuredResource:e}){let r=typeof t=="string"?new URL(t):new URL(t.href),n=typeof e=="string"?new URL(e):new URL(e.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;let o=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",i=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return o.startsWith(i)}var Re=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},$s=class extends Re{};$s.errorCode="invalid_request";var jn=class extends Re{};jn.errorCode="invalid_client";var Fn=class extends Re{};Fn.errorCode="invalid_grant";var Un=class extends Re{};Un.errorCode="unauthorized_client";var Is=class extends Re{};Is.errorCode="unsupported_grant_type";var Os=class extends Re{};Os.errorCode="invalid_scope";var zs=class extends Re{};zs.errorCode="access_denied";var yr=class extends Re{};yr.errorCode="server_error";var Ns=class extends Re{};Ns.errorCode="temporarily_unavailable";var Ds=class extends Re{};Ds.errorCode="unsupported_response_type";var Ls=class extends Re{};Ls.errorCode="unsupported_token_type";var js=class extends Re{};js.errorCode="invalid_token";var Fs=class extends Re{};Fs.errorCode="method_not_allowed";var Us=class extends Re{};Us.errorCode="too_many_requests";var qn=class extends Re{};qn.errorCode="invalid_client_metadata";var qs=class extends Re{};qs.errorCode="insufficient_scope";var Hs=class extends Re{};Hs.errorCode="invalid_target";var zP={[$s.errorCode]:$s,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[Is.errorCode]:Is,[Os.errorCode]:Os,[zs.errorCode]:zs,[yr.errorCode]:yr,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qn.errorCode]:qn,[qs.errorCode]:qs,[Hs.errorCode]:Hs};var Be=class extends Error{constructor(e){super(e??"Unauthorized")}};function dU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Eh="code",Th="S256";function lU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&dU(t.token_endpoint_auth_method)&&(e.length===0||e.includes(t.token_endpoint_auth_method))?t.token_endpoint_auth_method:e.length===0?r?"client_secret_basic":"none":r&&e.includes("client_secret_basic")?"client_secret_basic":r&&e.includes("client_secret_post")?"client_secret_post":e.includes("none")?"none":r?"client_secret_post":"none"}function fU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":pU(o,i,r);return;case"client_secret_post":hU(o,i,n);return;case"none":mU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function pU(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function hU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function mU(t,e){e.set("client_id",t)}async function DP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=MP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=zP[o]||yr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new yr(o)}}async function vr(t,e){try{return await Ah(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Ah(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Ah(t,e);throw r}}async function Ah(t,{serverUrl:e,authorizationCode:r,scope:n,resourceMetadataUrl:o,fetchFn:i}){let s=await t.discoveryState?.(),a,c,u,d=o;if(!d&&s?.resourceMetadataUrl&&(d=new URL(s.resourceMetadataUrl)),s?.authorizationServerUrl){if(c=s.authorizationServerUrl,a=s.resourceMetadata,u=s.authorizationServerMetadata??await jP(c,{fetchFn:i}),!a)try{a=await LP(e,{resourceMetadataUrl:d},i)}catch{}(u!==s.authorizationServerMetadata||a!==s.resourceMetadata)&&await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:d?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}else{let _=await bU(e,{resourceMetadataUrl:d,fetchFn:i});c=_.authorizationServerUrl,u=_.authorizationServerMetadata,a=_.resourceMetadata,await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:d?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}let l=await yU(e,t,a),f=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,p=await Promise.resolve(t.clientInformation());if(!p){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let _=u?.client_id_metadata_document_supported===!0,R=t.clientMetadataUrl;if(R&&!gU(R))throw new qn(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${R}`);if(_&&R)p={client_id:R},await t.saveClientInformation?.(p);else{if(!t.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let C=await kU(c,{metadata:u,clientMetadata:t.clientMetadata,scope:f,fetchFn:i});await t.saveClientInformation(C),p=C}}let h=!t.redirectUrl;if(r!==void 0||h){let _=await xU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(_),"AUTHORIZED"}let m=await t.tokens();if(m?.refresh_token)try{let _=await PU(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(_),"AUTHORIZED"}catch(_){if(!(!(_ instanceof Re)||_ instanceof yr))throw _}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:b}=await RU(c,{metadata:u,clientInformation:p,state:g,redirectUrl:t.redirectUrl,scope:f,resource:l});return await t.saveCodeVerifier(b),await t.redirectToAuthorization(v),"REDIRECT"}function gU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function yU(t,e,r){let n=IP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!OP({requestedResource:n,configuredResource:r.resource}))throw new Error(`Protected resource ${r.resource} does not match expected ${n} (or origin)`);return new URL(r.resource)}}function Bo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=Mh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Mh(t,"scope")||void 0,a=Mh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Mh(t,e){let r=t.headers.get("WWW-Authenticate");if(!r)return null;let n=new RegExp(`${e}=(?:"([^"]+)"|([^\\s,]+))`),o=r.match(n);return o?o[1]||o[2]:null}async function LP(t,e,r=fetch){let n=await SU(t,"oauth-protected-resource",r,{protocolVersion:e?.protocolVersion,metadataUrl:e?.resourceMetadataUrl});if(!n||n.status===404)throw await n?.body?.cancel(),new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!n.ok)throw await n.body?.cancel(),new Error(`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`);return EP.parse(await n.json())}async function $h(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?$h(t,void 0,r):void 0;throw n}}function vU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function NP(t,e,r=fetch){return await $h(t,{"MCP-Protocol-Version":e},r)}function _U(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function SU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??wo,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=vU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await NP(s,i,r);if(!n?.metadataUrl&&_U(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await NP(c,i,r)}return a}function wU(t){let e=typeof t=="string"?new URL(t):t,r=e.pathname!=="/",n=[];if(!r)return n.push({url:new URL("/.well-known/oauth-authorization-server",e.origin),type:"oauth"}),n.push({url:new URL("/.well-known/openid-configuration",e.origin),type:"oidc"}),n;let o=e.pathname;return o.endsWith("/")&&(o=o.slice(0,-1)),n.push({url:new URL(`/.well-known/oauth-authorization-server${o}`,e.origin),type:"oauth"}),n.push({url:new URL(`/.well-known/openid-configuration${o}`,e.origin),type:"oidc"}),n.push({url:new URL(`${o}/.well-known/openid-configuration`,e.origin),type:"oidc"}),n}async function jP(t,{fetchFn:e=fetch,protocolVersion:r=wo}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=wU(t);for(let{url:i,type:s}of o){let a=await $h(i,n,e);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw new Error(`HTTP ${a.status} trying to load ${s==="oauth"?"OAuth":"OpenID provider"} metadata from ${i}`)}return s==="oauth"?kh.parse(await a.json()):TP.parse(await a.json())}}}async function bU(t,e){let r,n;try{r=await LP(t,{resourceMetadataUrl:e?.resourceMetadataUrl},e?.fetchFn),r.authorization_servers&&r.authorization_servers.length>0&&(n=r.authorization_servers[0])}catch{}n||(n=String(new URL("/",t)));let o=await jP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function RU(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:i,resource:s}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(Eh))throw new Error(`Incompatible auth server: does not support response type ${Eh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Th))throw new Error(`Incompatible auth server: does not support code challenge method ${Th}`)}else a=new URL("/authorize",t);let c=await xh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Eh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Th),a.searchParams.set("redirect_uri",String(n)),i&&a.searchParams.set("state",i),o&&a.searchParams.set("scope",o),o?.includes("offline_access")&&a.searchParams.append("prompt","consent"),s&&a.searchParams.set("resource",s.href),{authorizationUrl:a,codeVerifier:u}}function CU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function FP(t,{metadata:e,tokenRequestParams:r,clientInformation:n,addClientAuthentication:o,resource:i,fetchFn:s}){let a=e?.token_endpoint?new URL(e.token_endpoint):new URL("/token",t),c=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});if(i&&r.set("resource",i.href),o)await o(c,r,a,e);else if(n){let d=e?.token_endpoint_auth_methods_supported??[],l=lU(n,d);fU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await DP(u);return AP.parse(await u.json())}async function PU(t,{metadata:e,clientInformation:r,refreshToken:n,resource:o,addClientAuthentication:i,fetchFn:s}){let a=new URLSearchParams({grant_type:"refresh_token",refresh_token:n}),c=await FP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function xU(t,e,{metadata:r,resource:n,authorizationCode:o,fetchFn:i}={}){let s=t.clientMetadata.scope,a;if(t.prepareTokenRequest&&(a=await t.prepareTokenRequest(s)),!a){if(!o)throw new Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!t.redirectUrl)throw new Error("redirectUrl is required for authorization_code flow");let u=await t.codeVerifier();a=CU(o,u,t.redirectUrl)}let c=await t.clientInformation();return FP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function kU(t,{metadata:e,clientMetadata:r,scope:n,fetchFn:o}){let i;if(e){if(!e.registration_endpoint)throw new Error("Incompatible auth server: does not support dynamic client registration");i=new URL(e.registration_endpoint)}else i=new URL("/register",t);let s=await(o??fetch)(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...n!==void 0?{scope:n}:{}})});if(!s.ok)throw await DP(s);return $P.parse(await s.json())}var Gs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},ou=class{constructor(e,r){this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=r?.eventSourceInit,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=nu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new Be("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Be;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Zo(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Ln(this._url.href,{...this._eventSourceInit,fetch:async(o,i)=>{let s=await this._commonHeaders();s.set("Accept","text/event-stream");let a=await e(o,{...i,headers:s});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Bo(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let i=new Gs(o.code,o.message,o);n(i),this.onerror?.(i)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let i=o;try{if(this._endpoint=new URL(i.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(s){n(s),this.onerror?.(s),this.close();return}r()}),this._eventSource.onmessage=o=>{let i=o,s;try{s=Hr.parse(JSON.parse(i.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(s)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new Be("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Be("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let i=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:s,scope:a}=Bo(o);if(this._resourceMetadataUrl=s,this._scope=a,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Be;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${i}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var Ax=Xs(Ex(),1);import qh from"node:process";import{PassThrough as rq}from"node:stream";var eq=10*1024*1024,su=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??eq}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
97
97
|
`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),tq(r)}clear(){this._buffer=void 0}};function tq(t){return Hr.parse(JSON.parse(t))}function Tx(t){return JSON.stringify(t)+`
|
|
98
|
-
`}var nq=Uh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function au(){let t={};for(let e of nq){let r=Uh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var su=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new iu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new rq)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,Ax.default)(this._serverParams.command,this._serverParams.args??[],{env:{...au(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Uh.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{try{this._readBuffer.append(n),this.processReadBuffer()}catch(o){this.onerror?.(o),this.close().catch(()=>{})}}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=Tx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var zx=Xs(Ox(),1);function Nx(t){if(t)try{return zx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var cu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=Xc({onEvent:a=>{s.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&s.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(s){i.feed(s)}})}};var fq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},jt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},uu=class{constructor(e,r){this._hasCompletedAuthFlow=!1,this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=ru(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??fq}async _authThenStart(){if(!this._authProvider)throw new Ze("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Ze;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Zo(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new jt(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(i=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${i instanceof Error?i.message:String(i)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:i}=r,s,a=!1,c=!1;(async()=>{try{let d=e.pipeThrough(new TextDecoderStream).pipeThrough(new cu({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:h}=await d.read();if(h)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let m=Hr.parse(JSON.parse(p.data));wn(m)&&(c=!0,i!==void 0&&(m.id=i)),this.onmessage?.(m)}catch(m){this.onerror?.(m)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new Ze("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Hi(e)?e.id:void 0}).catch(p=>this.onerror?.(p));return}let i=await this._commonHeaders();i.set("content-type","application/json"),i.set("accept","application/json, text/event-stream");let s={...this._requestInit,method:"POST",headers:i,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,s),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let p=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new jt(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:h,scope:m}=Bo(a);if(this._resourceMetadataUrl=h,this._scope=m,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:h,scope:m,error:g}=Bo(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new jt(403,"Server returned 403 after trying upscoping");if(m&&(this._scope=m),h&&(this._resourceMetadataUrl=h),this._lastUpscopingHeader=v??void 0,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new Ze;return this.send(e)}}throw new jt(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),yb(e)&&this._startOrAuthSse({resumptionToken:void 0}).catch(p=>this.onerror?.(p));return}let d=(Array.isArray(e)?e:[e]).filter(p=>"method"in p&&"id"in p&&p.id!==void 0).length>0,l=a.headers.get("content-type"),f=Nx(l);if(d)if(f==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(f==="application/json"){let p=await a.json(),h=Array.isArray(p)?p.map(m=>Hr.parse(m)):[Hr.parse(p)];for(let m of h)this.onmessage?.(m)}else throw await a.body?.cancel(),new jt(-1,`Unexpected content type: ${l}`);else await a.body?.cancel()}catch(n){throw this.onerror?.(n),n}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let e=await this._commonHeaders(),r={...this._requestInit,method:"DELETE",headers:e,signal:this._abortController?.signal},n=await(this._fetch??fetch)(this._url,r);if(await n.body?.cancel(),!n.ok&&n.status!==405)throw new jt(n.status,`Failed to terminate session: ${n.statusText}`);this._sessionId=void 0}catch(e){throw this.onerror?.(e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}async resumeStream(e,r){await this._startOrAuthSse({resumptionToken:e,onresumptiontoken:r?.onresumptiontoken})}};function Dx(t){if(!t.useShellInterpolation)return{command:t.command,args:t.args};let e=[t.command,...t.args].join(" ");return process.platform==="win32"?{command:"cmd.exe",args:["/c",e]}:{command:"/bin/sh",args:["-c",e]}}var hq={NO_UPDATE_NOTIFIER:"1",npm_config_update_notifier:"false",npm_config_loglevel:"silent",npm_config_fund:"false",npm_config_audit:"false",npm_config_yes:"true",CI:"1"};function Lx(t){return{...au(),...hq,...t??{}}}function jx(){return au()}var Hh=class t extends su{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];suppressStderr;constructor(e,r=!1){super(e),this.suppressStderr=r}async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){if(this.suppressStderr)return;this._lineBuffer+=e.toString();let r=this._lineBuffer.split(`
|
|
98
|
+
`}var nq=qh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function cu(){let t={};for(let e of nq){let r=qh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var au=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new su({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new rq)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,Ax.default)(this._serverParams.command,this._serverParams.args??[],{env:{...cu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:qh.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{try{this._readBuffer.append(n),this.processReadBuffer()}catch(o){this.onerror?.(o),this.close().catch(()=>{})}}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=Tx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var zx=Xs(Ox(),1);function Nx(t){if(t)try{return zx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var uu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=Qc({onEvent:a=>{s.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&s.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(s){i.feed(s)}})}};var fq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},jt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},du=class{constructor(e,r){this._hasCompletedAuthFlow=!1,this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=nu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??fq}async _authThenStart(){if(!this._authProvider)throw new Be("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Be;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Zo(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new jt(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(i=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${i instanceof Error?i.message:String(i)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:i}=r,s,a=!1,c=!1;(async()=>{try{let d=e.pipeThrough(new TextDecoderStream).pipeThrough(new uu({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:h}=await d.read();if(h)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let m=Hr.parse(JSON.parse(p.data));wn(m)&&(c=!0,i!==void 0&&(m.id=i)),this.onmessage?.(m)}catch(m){this.onerror?.(m)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new Be("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Be("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Hi(e)?e.id:void 0}).catch(p=>this.onerror?.(p));return}let i=await this._commonHeaders();i.set("content-type","application/json"),i.set("accept","application/json, text/event-stream");let s={...this._requestInit,method:"POST",headers:i,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,s),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let p=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new jt(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:h,scope:m}=Bo(a);if(this._resourceMetadataUrl=h,this._scope=m,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Be;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:h,scope:m,error:g}=Bo(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new jt(403,"Server returned 403 after trying upscoping");if(m&&(this._scope=m),h&&(this._resourceMetadataUrl=h),this._lastUpscopingHeader=v??void 0,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new Be;return this.send(e)}}throw new jt(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),yb(e)&&this._startOrAuthSse({resumptionToken:void 0}).catch(p=>this.onerror?.(p));return}let d=(Array.isArray(e)?e:[e]).filter(p=>"method"in p&&"id"in p&&p.id!==void 0).length>0,l=a.headers.get("content-type"),f=Nx(l);if(d)if(f==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(f==="application/json"){let p=await a.json(),h=Array.isArray(p)?p.map(m=>Hr.parse(m)):[Hr.parse(p)];for(let m of h)this.onmessage?.(m)}else throw await a.body?.cancel(),new jt(-1,`Unexpected content type: ${l}`);else await a.body?.cancel()}catch(n){throw this.onerror?.(n),n}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let e=await this._commonHeaders(),r={...this._requestInit,method:"DELETE",headers:e,signal:this._abortController?.signal},n=await(this._fetch??fetch)(this._url,r);if(await n.body?.cancel(),!n.ok&&n.status!==405)throw new jt(n.status,`Failed to terminate session: ${n.statusText}`);this._sessionId=void 0}catch(e){throw this.onerror?.(e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}async resumeStream(e,r){await this._startOrAuthSse({resumptionToken:e,onresumptiontoken:r?.onresumptiontoken})}};function Dx(t){if(!t.useShellInterpolation)return{command:t.command,args:t.args};let e=[t.command,...t.args].join(" ");return process.platform==="win32"?{command:"cmd.exe",args:["/c",e]}:{command:"/bin/sh",args:["-c",e]}}var hq={NO_UPDATE_NOTIFIER:"1",npm_config_update_notifier:"false",npm_config_loglevel:"silent",npm_config_fund:"false",npm_config_audit:"false",npm_config_yes:"true",CI:"1"};function Lx(t){return{...cu(),...hq,...t??{}}}function jx(){return cu()}var Gh=class t extends au{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];suppressStderr;constructor(e,r=!1){super(e),this.suppressStderr=r}async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){if(this.suppressStderr)return;this._lineBuffer+=e.toString();let r=this._lineBuffer.split(`
|
|
99
99
|
`);this._lineBuffer=r.at(-1)??"",this._lineBuffer.length>t.MAX_LINE_BUFFER_CHARS&&(this._lineBuffer=this._lineBuffer.slice(-t.MAX_LINE_BUFFER_CHARS));for(let n of r.slice(0,-1))this.pushCapturedLine(`${n}
|
|
100
|
-
`)}pushCapturedLine(e){this._captured.push(e),this._captured.length>t.MAX_CAPTURED_LINES&&this._captured.shift(),this._logHistory.push(e),this._logHistory.length>t.MAX_LOG_HISTORY&&this._logHistory.shift()}consumeStderr(){this._lineBuffer.length>0&&(this.pushCapturedLine(this._lineBuffer),this._lineBuffer="");let e=this._captured.join("");return this._captured=[],e}getLogHistory(){return[...this._logHistory]}};function Fx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new
|
|
101
|
-
`).map(i=>i.trim()).filter(i=>i.length>0),o=Eq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Aq=6e5,Mq=18e5,Xx=2147483647,$q=3e4,Qx=1e4,ok=[250,1e3,2e3],Gn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Zs=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Iq=250,ek=3,Oq=[200,500];function zq(t){for(let e of Object.values(t))if(Nr(e))return!0;return!1}function Vh(t){let e=new Set;for(let r of t.matchAll(xi))e.add(Ma(r[0]));return[...e].sort()}function Kh(t){return[...new Set(t)].sort()}function tk(t,e){return Hy(e.map(r=>t?.[r]??"missing"))}function Nq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Kh([...e&&t?ki(t):[],...n&&r?Vh(r):[],...o.flatMap(Vh)])}var du="${augmentToken}";function Dq(t){try{let e=new URL(t);if(e.protocol!=="https:")return!1;let{hostname:r}=e;return r==="augmentcode.com"||r.endsWith(".augmentcode.com")}catch{return!1}}function Lq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var ik="(unknown uri)",Jh="unknown",rk=/=+$/,jq=/\s+/g,Fq=/[-_]/g,Uq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Zn(t,e){return typeof t=="string"?t:e}function sk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function qq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Hq(t){let e=t.replace(jq,"").replace(Fq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(rk,"");if(r.toString("base64").replace(rk,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function ak(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Gq(t){let e=ak(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Zn(e.uri,ik),n=Zn(e.mimeType,Jh);if(typeof e.blob=="string"&&qq(n)){let i=Hq(e.blob);if(i!==void 0)return i}let o=sk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Zq(t){let e=Zn(t.type,"unknown");if(e==="resource")return Gq(t);if(e==="audio"){let r=Zn(t.mimeType,Jh),n=sk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Zn(t.uri,ik),n=Zn(t.name,""),o=Zn(t.mimeType,Jh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function Bq(t){if(t.type!=="resource")return;let e=ak(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Uq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function Wq(t){if(t.type==="text"&&typeof t.text=="string")return{type:"text",text:t.text};if(t.type==="image"&&typeof t.data=="string"&&typeof t.mimeType=="string")return{type:"image",mimeType:t.mimeType,data:t.data};let e=Bq(t);return e||{type:"text",text:Zq(t)}}function Vq(t){let e=[];if(!Array.isArray(t))return e;for(let r of t){if(typeof r!="object"||r===null)continue;let n=r;typeof n.type=="string"&&e.push(Wq(n))}return e}function Kq(t){return Oy(t,Rq)}function ck(t,e){let r=Vq(t);if(r.length===0){let o=Kq(e);o!==void 0&&r.push({type:"text",text:o})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function Jq(t,e){let r=ck(e?.value(t.content),e?.value(t.structuredContent)),n=r.content.flatMap(o=>o.type==="text"?[{type:"text",text:e?.text(o.text)??""}]:[]);return n.length===0&&n.push({type:"text",text:"MCP stdio tool failed; no usable secret-free diagnostic content"}),{isError:!0,content:n,rawItemCount:r.rawItemCount}}var uk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),Yq=new Set([502,503,504]),Bs=ok.length+1,Xq=2;function Qq(t){let r=t?.cause?.code;if(typeof r=="string")return r;let n=t?.status;if(typeof n=="number")return String(n);let o=t?.code;return typeof o=="number"?String(o):void 0}function eH(t){if(Pt(t)||Wh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return uk.has(e)?{totalAttempts:Bs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:Xq}:Yq.has(r)?{totalAttempts:Bs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Bs}:void 0}var tH=80,rH=10,nH=/[^a-zA-Z0-9_.()-]/g,oH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportClosedError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function lu(t){return t.replace(nH,"_").slice(0,tH)||"unknown"}function iH(t){let e=Qq(t);if(e!==void 0&&(/^\d{3}$/.test(e)||uk.has(e)))return e}function Be(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=oH.has(e)?e:"Error",n=iH(t);return n===void 0?r:`${r}(${n})`}function sH(t,e,r){return t instanceof gt?new gt(lu(t.serverName),t.missingKeys.slice(0,rH).map(lu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${Be(t)})`}function Ko(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:lu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var fu=class extends Error{operation="transport";transport;kind;constructor(e,r){super(`MCP ${e} transport ${r}`),this.transport=e,this.kind=r}},pu=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_tools=[];_connectPromise;_connectStartedAt;_refreshPromise;_refreshPersisting=!1;_disposing=!1;_disposed=!1;_resolvedEnv;_resolvedHeaders;_resolvedCommand;_resolvedArgs;onStateChange;_lastEmittedState;_activeTransport;_reinitializingPromise;_inFlightCalls=new Set;_wedgeRecoveryOwners=new Set;_wedgePending=!1;_wedgeRequired=!1;_heartbeatTimer;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;_suppressStdioDiagnostics;_toolErrorRedactor;constructor(e,r){this._config=e,this._targetAuth=ee().targetMaterialStore?.auth(e),this._suppressStdioDiagnostics=e.type==="stdio"&&this._targetAuth?.credential!==void 0,this._hostedCredentialProvenance=r?Object.freeze({...r}):void 0,this.name=e.name,this._status=e.disabled?"disabled":"initializing"}_emitState(e,r){if(e!==this._lastEmittedState){this._lastEmittedState=e;try{this.onStateChange?.(e,r)}catch{}}}get targetCredentialProvenance(){return this._targetAuth?{credential:this._targetAuth.credential}:void 0}get status(){return this._status}get config(){return this._config}get hostedCredentialProvenance(){return this._hostedCredentialProvenance}get lastError(){return this._lastError}get suppressesProviderDiagnostics(){return this._suppressStdioDiagnostics}get connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._suppressStdioDiagnostics?[]:this._stdioTransport?.getLogHistory().map(e=>Vd(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{Y.warn(`MCP server "${this.name}" connect failed (${Be(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=this._connectFailureMessage(r,"connect"),o=this._config.type==="stdio"&&!this._suppressStdioDiagnostics&&!Pt(r)?Vd(Tq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Be(r))}}async _connectWithRetries(){let e=Bs,r={available:!0};for(let n=1;n<=Bs;n++)try{let o=await this._attemptConnect(r);return n>1&&Y.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=eH(o);if(i===void 0||this._disposed||(e=Math.min(e,i.totalAttempts),n>=e))throw o;if(await this._backoffBeforeRetry(o,n,e),this._disposed)return}}async _backoffBeforeRetry(e,r,n){let i=(ok[r-1]??0)+Math.floor(Math.random()*(Iq+1));Y.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Be(e)}; retrying in ${i}ms`),await pn(i)}async _attemptConnect(e){let r=this._config;(r.type==="http"||r.type==="sse")&&await this._maybeProactiveRefresh(),this._expandAugmentToken(),await this._resolveSecretRefs();let n=!1;for(;;)try{return await this._initializeFreshClient(e)}catch(o){if(this._disposed)return;if(!n&&e.available&&this._canRecoverInitialization(o)){if(n=!0,await this._recoverStartupAuthentication(o,e)==="disposed")return;continue}throw o}}_canRecoverInitialization(e){return Pt(e)&&this.hasRefreshEligibleOAuthCredential()&&!!this._usableToken()?.refreshToken}async _recoverStartupAuthentication(e,r){if(r.available=!1,this._disposed)return"disposed";let n=await this._refreshTokenDeduped();if(this._disposed)return"disposed";if(n.kind==="refreshed")return"retry";throw n.kind==="transient_failure"?new Gn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Gx();this._client=i;let s;try{if(await Zh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Zx,()=>{Y.debug(`MCP server "${this.name}" sent tools/list_changed; refreshing tools`),this._refreshTools()});let a=await this._listToolsWithAuthRetry(e);if(this._disposed)return await this._closeFailedInitialization(i,n),o;this._tools=this._safeTools(a.tools??[]),this._status="success",this._lastError=void 0,this._emitState("connected"),this._wireLivenessHandlers(),this._startHeartbeat();let c=ee();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&it(c,this.name),Y.info(`MCP server "${this.name}" connected (${this._tools.length} tool(s))`),o}catch(a){throw await this._closeFailedInitialization(i,n),s??a}}async _closeFailedInitialization(e,r){if(this._client===e){this._client=void 0,this._activeTransport===r&&(this._activeTransport=void 0);try{await e.close()}catch(n){Y.debug(`MCP server "${this.name}" close after failed connect attempt (${Be(n)})`)}}}_connectFailureMessage(e,r){return this._suppressStdioDiagnostics?"MCP stdio connection failed; provider diagnostics are suppressed to protect credentials":sH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=ee();oi(o,this.name,e.reason,ft(o,this.name,this._config.id))}else if(e instanceof Zs||e instanceof Gn)this._status="failed";else if(Pt(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(Pt(e)){this._status="auth_required";let o=ee(),i=o.servers.get(this.name);(i===void 0||i===this)&&o.tokens.markAuthRequired(this.name)}else{this._status="failed";let o=this._connectFailureMessage(e,r);Aa(Ko(o,Be(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=ee().targetMaterialStore;if(!this._targetAuth&&(r?.has(e.name)||e.id&&r?.has(e.id)))throw new Error("MCP target provenance is unavailable");switch(this._targetAuth?.headers(),e.type){case"stdio":{let n=Dx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Lx(this._resolvedEnv??e.env);return Fx({command:n.command,args:n.args,env:o,cwd:e.cwd,...this._suppressStdioDiagnostics?{suppressStderr:!0}:{}})}case"http":return this._createHttpTransport(e.url,this._resolvedHeaders??e.headers??{});case"sse":return Hx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=qx(e,{headers:r,getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});return this._activeTransport=n,n}async _resolveSecretRefs(){let e=this._config,r=e.type==="stdio"?e.env:this._resolvedHeaders??e.headers,n=r?zq(r):!1,o=e.type==="stdio"&&Nr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Nr);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!qy(a)){let u=Nq({source:r,sourceHasSecretRef:n,command:e.type==="stdio"?e.command:void 0,commandHasSecretRef:o,args:i});throw new gt(this.name,u)}let c=this._targetAuth?.getSecret??Fy(a);if(n&&r&&await this._resolveMapSecretRefs(r,c,e.type==="stdio"),o&&e.type==="stdio"&&(this._resolvedCommand=await this._resolveCommandSecretRefs(e.command,c,e.useShellInterpolation)),s){let u=[];for(let d of i)u.push(await this._resolveCommandSecretRefs(d,c,!1));this._resolvedArgs=u}}async _resolveMapSecretRefs(e,r,n){let o,i=new Set,s=async c=>{let u=await r(c);return this._suppressStdioDiagnostics&&typeof u=="string"&&i.add(u),u};try{o=await Zy({configEnv:e,localEnv:n&&!this._targetAuth?jx():{},getSecret:s})}catch(c){throw Y.error(`MCP server "${this.name}" secret resolution failed (${Be(c)})`),new gt(this.name,ki(e),c,"transient")}let a=Kh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,tk(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=$y(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await By(e,r,n)}catch(s){throw Y.error(`MCP server "${this.name}" command secret resolution failed (${Be(s)})`),new gt(this.name,Vh(e),s,"transient")}let i=Kh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,tk(o.failureReasons,i));return o.resolved}_expandAugmentToken(){if(this._targetAuth)return;let e=this._config;if(e.type!=="http"&&e.type!=="sse")return;let r=e.headers;if(!r||!Object.values(r).some(s=>s.includes(du)))return;let o;if(Dq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${du} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${du} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Lq(e.url)}" does not qualify, sending the literal placeholder`,"error");if(o===void 0)return;let i={};for(let[s,a]of Object.entries(r))i[s]=a.replaceAll(du,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=ee();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?Y.error(i):Y.warn(i)}_usableToken(){let e=ee();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!pt(n,this._config)))return r}_buildAuthHeaders(){if(this._targetAuth)return this._targetAuth.headers();let e=this._usableToken();return e?.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{}}hasRefreshEligibleOAuthCredential(){let{config:e}=this;if(e.type!=="http"&&e.type!=="sse"||e.disabled||this._hostedCredentialProvenance!==void 0||!this._usableToken())return!1;if(e.auth==="oauth")return!0;let r=ee();return r.tokens.hasCredentialIdentity?.(this.name,Ht(r,this))===!0}async _maybeProactiveRefresh(){let e=ee(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,Ht(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!vd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():_i(i)&&e.tokens.markAuthRequired(this.name)))}refreshTokenIfPossible(){return this._refreshTokenDeduped()}getRefreshInFlight(){return this._refreshPromise}_refreshTokenDeduped(){if(this._disposing||this._disposed)return Promise.resolve({kind:"transient_failure"});let e=ee(),r=e.refreshes.get(this.name);if(r)return r.then(a=>a??{kind:"refreshed"});let n={state:e,tokenStore:e.tokens,serverGeneration:e.serverGenerations.get(this.name)??0,configRevision:e.configRevisions.get(this.name)??0,credential:e.credentialRevisions.get(this.name),localRefreshEnabled:e.shouldProactivelyRefreshTokens,failureScope:ft(e,this.name,this._config.id),token:this._usableToken(),hostWasUntracked:e.servers.get(this.name)===void 0},o=JSON.stringify([this.name,n.serverGeneration,n.configRevision,n.credential?.domain??null,n.credential?.revision??null]),i=e.refreshes.get(o);if(i)return i.then(a=>a??{kind:"refreshed"});let s=this._performTokenRefresh(n).finally(()=>{this._refreshPersisting=!1,e.refreshes.get(o)===s&&e.refreshes.delete(o),this._refreshPromise===s&&(this._refreshPromise=void 0)});return this._refreshPromise=s,e.refreshes.set(o,s),s}_ownsRefresh(e){let{state:r}=e,n=r.credentialRevisions.get(this.name),o=N(r,this.name)?.retirement?.incumbent.host,i=r.servers.get(this.name)===this||this._refreshPersisting&&o===this||e.hostWasUntracked&&r.servers.get(this.name)===void 0;return(!this._disposing||this._refreshPersisting)&&i&&(r.serverGenerations.get(this.name)??0)===e.serverGeneration&&(r.configRevisions.get(this.name)??0)===e.configRevision&&this._ownsRefreshCredential(e,n)&&(e.localRefreshEnabled===r.shouldProactivelyRefreshTokens||this._refreshPersisting)}_ownsRefreshCredential(e,r){return e.state.tokens===e.tokenStore&&e.tokenStore.get(this.name)===e.token&&r?.domain===e.credential?.domain&&r?.revision===e.credential?.revision}async _restoreAfterSupersededRefresh(e,r,n,o){let i=e.state.servers.get(this.name),s=e.state.tokens,a=s.get(this.name),c=e.state.credentialRevisions.get(this.name);if(s!==e.tokenStore||!i||!a||!pt(this._config,i.config))return;let u=Ht(e.state,i),d=n===void 0&&u===void 0||xr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),cn({state:e.state,name:this.name,revision:o});return}let l=await s.restoreAfterSupersededRefresh(this.name,r,a,n,o,u);if(!l||e.state.tokens!==s||e.state.servers.get(this.name)!==i||s.get(this.name)!==a||!xr(Ht(e.state,i),u)||e.state.credentialRevisions.get(this.name)?.revision!==c?.revision||e.state.credentialRevisions.get(this.name)?.domain!==c?.domain||s.reconcileCredentialIdentity?.(this.name,a,u)!==!0)return;cn({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&D(f,e.state)}catch{Y.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&Sd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&oi(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),Y.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${Be(e)})`),n&&o?{kind:"terminal_failure"}:{kind:"transient_failure"}}async _performTokenRefresh(e){if(!e.localRefreshEnabled)return{kind:"transient_failure"};if(!e.token?.refreshToken)return this._ownsRefresh(e)?(e.state.tokens.markAuthRequired(this.name),oi(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=Ht(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await wd(e.token);if(!this._ownsRefresh(e))return{kind:"transient_failure"};this._refreshPersisting=!0;let i=await e.tokenStore.persistRefresh(this.name,o,r,n);if(!this._ownsRefresh(e))return await this._restoreAfterSupersededRefresh(e,o,r,i),{kind:"transient_failure"};e.tokenStore.commit(this.name,o,r),cn({state:e.state,name:this.name,revision:i}),it(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&D(s,e.state),Y.debug(`MCP server "${this.name}" token refreshed`),{kind:"refreshed"}}catch(r){return this._handleRefreshFailure(r,e)}}_isSessionExpiredError(e){return this._config.type!=="http"||this._activeTransport?.sessionId===void 0?!1:Wh(e)}_reinitializeSession(){return this._reinitializingPromise===void 0&&(this._reinitializingPromise=this._doReinitializeSession().finally(()=>{this._reinitializingPromise=void 0})),this._reinitializingPromise}async _doReinitializeSession(){if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);if(this._config.type!=="http")throw new Error("Session re-initialization is only supported for Streamable HTTP servers");await this._client.close();let e=this._createHttpTransport(this._config.url,this._resolvedHeaders??this._config.headers??{});try{await this._client.connect(e)}catch(r){throw this._recordConnectFailure(r,"reinit"),r}Y.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e){if(this._config.type!=="http")return e();try{return await e()}catch(r){let n=this._isSessionExpiredError(r),o=this._reinitializingPromise!==void 0;if(!(n||o))throw r;Y.info(n?`MCP server "${this.name}" returned 404 (session expired); re-initializing and retrying`:`MCP server "${this.name}" call interrupted by a concurrent re-initialization; retrying once`);try{await this._reinitializeSession()}catch(i){throw Y.error(`MCP server "${this.name}" session re-initialization failed (${Be(i)})`),xq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Gn}async _withAuthRetry(e,r,n){let o=this._config,i=ee(),s=ft(i,this.name,this._config.id),a=n?.call;if(o.type!=="http"&&o.type!=="sse")return e();let c=()=>(a&&(a.failure=void 0),Zh({operation:r,onFailure:a?u=>{a.failure=u}:void 0},e));try{let u=await c();return this._clearHostedAuthFailure(),u}catch(u){let d=a?.failure??u;if(this._disposed||!Pt(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Zs;if(this._hostedCredentialProvenance!==void 0)throw new Gn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;Y.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw Pt(h)&&this._markAuthRequired(h,s),h}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=ee();oi(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Be(e)),Y.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed(new fu(this._config.type,"closed"))},e.onerror=()=>{this._handleTransportClosed(new fu(this._config.type,"error"))})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},$q),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=ee(),r=ft(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=ek&&n.outcome==="transient";s++)await pn(Oq[s-2]??0),n=await this._runProbe();let o=ft(e,this.name,this._config.id),i=o.serverGeneration===r.serverGeneration&&o.mcpConfigId===r.mcpConfigId&&o.credentialRevision===r.credentialRevision&&o.credentialRevisionDomain===r.credentialRevisionDomain;return i&&n.outcome==="alive"&&it(e,this.name,r),i&&(n.outcome==="alive"||n.outcome==="authFailure")?this._lastProbeResult=n:n.outcome==="inconclusive"?Y.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&Y.debug(`MCP server "${this.name}" startup verification ping remained transient after ${ek} attempts; not caching as failed: ${n.error}`),n}getLastProbeResult(){return this._lastProbeResult}async _runProbe(){let e=!this._client||this._disposed;if(e)return{ok:!1,outcome:"transient",error:"MCP client is not available",isAuthError:!1};try{return await this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.ping({timeout:Qx})},"ping",{preserveAuthErrorOnRefreshUnavailable:!0}),{ok:!0,outcome:"alive"}}catch(r){let n=this._classifyProbeError(r,e);if(n==="alive")return{ok:!0,outcome:"alive"};let o=`MCP startup verification failed (${Be(r)})`,i=`MCP server "${this.name}" failed startup verification ping (${n}): ${o}`;return n==="transient"?Y.debug(i):Y.warn(i),{ok:!1,outcome:n,error:o,isAuthError:n==="authFailure"}}}_classifyProbeError(e,r){return r||!this._client||this._disposed||this._reinitializingPromise!==void 0?"transient":Wx(e)||Bh(e)?"alive":Pt(e)?"authFailure":Vx(e)?"transient":"inconclusive"}async _sendHeartbeat(){if(this._inFlightCalls.size===0||this._reinitializingPromise)return;let e=this._client;if(!(!e||this._disposed))try{await e.ping({timeout:Qx})}catch(r){if(this._reinitializingPromise||this._disposed||Bh(r))return;Y.warn(`MCP server "${this.name}" failed liveness ping; in-flight tool calls are treated as wedged`),this._failInFlightCalls(new Error(`MCP server "${this.name}" is unresponsive (liveness ping failed)`))}}_handleTransportClosed(e){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(e))}_wedgeRecoveryOwnership(e){let r=e.failure;return Pt(r)?(this._wedgeRecoveryOwners.add(e),"recoverable"):this._isSessionExpiredError(r)?(e.sessionRecoveryOwned=!0,this._wedgeRecoveryOwners.add(e),"recoverable"):this._wedgeRecoveryOwners.has(e)?"owned":"none"}_settleInFlightCall(e,r,n){let o=this._releaseWedgeRecoveryOwner(e,r,n);e.failure=void 0,this._inFlightCalls.delete(e),o&&this.onWedged?.()}_releaseWedgeRecoveryOwner(e,r,n){if(!this._wedgeRecoveryOwners.delete(e)||(!r&&e.sessionRecoveryOwned&&!Pt(n)&&(this._wedgeRequired=!0),this._wedgeRecoveryOwners.size!==0))return!1;let o=this._wedgePending&&this._wedgeRequired;return this._wedgePending=!1,this._wedgeRequired=!1,o}_failInFlightCalls(e,r=!0){let n=[...this._inFlightCalls].filter(c=>!c.livenessRejected);if(n.length===0)return;if(!r){for(let c of n)c.livenessRejected=!0,c.reject(e);Y.warn(`MCP server "${this.name}" failing ${n.length} in-flight tool call(s)`);return}let o=n.map(c=>({call:c,state:this._wedgeRecoveryOwnership(c)})),i=o.some(({state:c})=>c==="recoverable"),s=!1;for(let{call:c,state:u}of o)u==="recoverable"||u==="owned"&&i||(c.livenessRejected=!0,s=!0,c.reject(c.failure??e));let a=n.filter(c=>c.livenessRejected).length;Y.warn(`MCP server "${this.name}" failing ${a} in-flight tool call(s)`),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=s):s&&this.onWedged?.()}_listToolsWithAuthRetry(e){return this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.listTools()},"list_tools",{startupAuthRefreshBudget:e})}async _refreshTools(){if(!(this._disposed||this._status!=="success"||!this._client))try{let e=await this._listToolsWithAuthRetry();if(this._disposed)return;let r=this._safeTools(e.tools??[]),n=!_q(this._tools,r);if(this._tools=r,n){Y.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){Y.warn(`MCP server "${this.name}" onToolsChanged handler threw (${Be(o)})`)}}}catch(e){Y.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Be(e)}), keeping cached tools`)}}_safeTools(e){return this._suppressStdioDiagnostics?this._toolErrorRedactor?e.filter(r=>JSON.stringify(this._toolErrorRedactor?.value(r))===JSON.stringify(r)):[]:e}listTools(){return this._tools}async callTool(e,r,n){if(this._disposing||this._disposed)throw new Error(`MCP server "${this.name}" is being disposed`);if(this._status!=="success"||!this._client)throw new Error(`MCP server "${this.name}" is not connected (status: ${this._status})`);if(this._config.timeoutMs!==void 0&&this._config.timeoutMs>Xx)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${Xx}.`);let o=this._toolErrorRedactor,s={timeout:this._config.timeoutMs??Aq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Mq,onprogress:l=>{this._suppressStdioDiagnostics||Y.debug(`MCP server "${this.name}" tool "${e}" progress: ${l.progress}${l.total===void 0?"":`/${l.total}`}${l.message?` - ${l.message}`:""}`)}},a,c=new Promise((l,f)=>{a={reject:f,livenessRejected:!1,sessionRecoveryOwned:!1}});c.catch(()=>{}),a&&this._inFlightCalls.add(a);let d=this._withSessionRetry(()=>this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.callTool({name:e,arguments:r??{}},Bx,s)},"tool_call",{call:a})).then(l=>(a&&this._settleInFlightCall(a,!0,void 0),l),l=>{throw a&&this._settleInFlightCall(a,!1,l),l});try{let l=await Promise.race([d,c]);if(this._suppressStdioDiagnostics&&l.isError===!0)return Jq({content:l.content,structuredContent:l.structuredContent},o);let f=ck(l.content,l.structuredContent);return{isError:l.isError===!0,content:f.content,rawItemCount:f.rawItemCount}}catch(l){return(n?.aborted||l instanceof Error&&l.name==="AbortError")&&this._throwCallCancellation(l),this._reportAndThrowToolError(l,e)}finally{a&&!this._wedgeRecoveryOwners.has(a)&&(a.failure=void 0,this._inFlightCalls.delete(a))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Ko("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(this._suppressStdioDiagnostics){let c=Ko("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||Aa(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Gn||e instanceof Zs)throw e;if(Pt(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=lu(r),i=Be(e),s=Kx(e)&&/[^a-zA-Z0-9_-]/.test(r)?` The tool name "${o}" contains characters that some servers do not support; letters, digits, underscores, and hyphens are portable.`:"",a=`MCP tool "${o}" failed (${i}).${s}`;throw kq(e)||Aa(Ko(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Ko(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._toolErrorRedactor=void 0,this._targetAuth&&(this._resolvedHeaders=void 0,this._resolvedEnv=void 0,this._resolvedCommand=void 0),this._stopHeartbeat(),this._failInFlightCalls(new Error(`MCP server "${this.name}" is being disposed`),!1),this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1}async dispose(e){this.beginDisposal(),await this._refreshPromise,this._stopHeartbeat();let r=this._client;if(this._client=void 0,this._activeTransport=void 0,this._reinitializingPromise=void 0,this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1,this._stdioTransport=void 0,!!r)try{await r.close()}catch(n){if(this._suppressStdioDiagnostics){let o=Ko("MCP stdio close failed","Error");if(Y.debug(o.message),e?.strict)throw o;return}if(Y.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var dk=cH.child({prefix:"pi-mcp"}),uH=3,dH=6e4;function lH(t,e){let r=Date.now(),n=r-dH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=uH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function lk(t){ir(t),la(t)}async function fH(t,e,r){if(!lH(e,t)){dk.warn(`MCP server "${t}" automatic restart rate-limited`);return}dk.warn(`MCP server "${t}" wedged; recycling transport`),await en(t,e,r)}function hu(t,e,r){if(pH(e)){lk(t),D(t,e);return}cd(t,r),Ir(e)&&lk(t),D(t,e)}function pH(t){return fi()||t.toolSearchLatched}function tr(t,e,r){return Zu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function Yh(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,it(t,e),t.authRefreshNeededReportKeys.delete(e),r}function hH(t){let{state:e,config:r,hostGeneration:n}=t;if(r.type!=="http"&&r.type!=="sse"||r.auth!=="oauth"||r.registrySource===void 0||r.id===void 0)return;let o=e.credentialRevisions.get(r.name),i=e.tokens.get(r.name),s=e.hostedCredentialOwnership?.get(r.name),a=o!==void 0&&s?.revision===o.revision,c=o!==void 0&&s?.domain===o.domain,u=o!==void 0&&s?.ownerDomain===o.ownerDomain,d=o!==void 0&&e.oauthCredentialDomains.get(r.name)===o.domain,l=o!==void 0&&Ym(o.domain,r.id,o.ownerDomain);return o!==void 0&&i!==void 0&&s!==void 0&&a&&c&&u&&d&&l?Object.freeze({kind:"accepted",configId:r.id,credentialRevision:o.revision,credentialRevisionDomain:o.domain,hostGeneration:n,hostedAccessTokenOnly:s.accessTokenOnly}):s===void 0&&e.shouldProactivelyRefreshTokens?void 0:Object.freeze({kind:"incomplete",configId:r.id,hostGeneration:n})}function Xh(t){let{state:e,config:r,generation:n}=t;return new pu(r,hH({state:e,config:r,hostGeneration:n}))}function We(t,e,r="base"){t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map;let o=Math.max(t.configRevisions.get(e)??0,t.configDesiredRevisions.get(e)??0)+1;return t.configDesiredRevisions.set(e,o),t.configDesiredSources.set(e,r),o}function Qh(t,e){if(e.id&&e.registrySource!==void 0){let r={...e};t.registryConfigNamesById.set(e.id,e.name),t.registryCredentialConfigs.set(e.name,r),t.registryCredentialConfigsById.set(e.id,r)}}function em(t,e,r){return t.configDesiredRevisions.get(e)===r}function fk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function tm(t,e,r,n){t.onStateChange=(a,c)=>{if(!tr(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(aH,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;fH(t.name,r,a)};let o=t.hostedCredentialProvenance,i=t.targetCredentialProvenance?.credential,s;i&&(t.config.type==="http"||t.config.type==="sse")&&t.config.auth==="oauth"?s={serverGeneration:e,mcpConfigId:t.config.id,credentialRevision:i.revision,credentialRevisionDomain:i.domain}:o?.kind==="accepted"&&o.hostedAccessTokenOnly&&(s={serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain}),t.onAuthRefreshNeeded=()=>{if(!tr(t,e,r)||!s)return;let a=JSON.stringify(s);r.statusFailureCategories.set(t.name,{category:"auth_refresh_needed",...s}),r.authRefreshNeededReportKeys.get(t.name)!==a&&(r.authRefreshNeededReportKeys.set(t.name,a),D(r.currentLoad?.latestPi??n,r))},t.onAuthRefreshCleared=()=>{if(!tr(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&it(r,t.name,s)&&D(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&hu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;ud(a,t,e),a!==n&&ud(n,t,e)}}async function pk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&D(n(),r)},Qs);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&D(n(),r)}}async function hk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function mu(t,e){if(e.status!=="installed")return!1;let r=N(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function mH(t){let{state:e,config:r,displaced:n,retirement:o}=t;Qh(e,n.config),ui(e,r.name),n.beginDisposal?.();try{let i=Wu(n.config,r)?Promise.resolve():ht(e,r.name,n.config.id,n.config),a=(await Promise.allSettled([i,n.dispose({strict:!0})])).find(c=>c.status==="rejected");if(a)throw a.reason;_e({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw _e({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function gH(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=st({state:e,name:r.name,owner:n,revision:o,host:r});if(i){r.beginDisposal?.();try{await r.dispose({strict:!0}),_e({state:e,name:r.name,retirement:i,result:{status:"retired"}}),xe({state:e,name:r.name,owner:n,revision:o})}catch(s){throw _e({state:e,name:r.name,retirement:i,result:{status:"failed",error:s}}),s}}}async function yH(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),tr(r,o,e)?a?.(n)===!1?(await gH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&hu(c(),e,r),D(c(),e),r.status==="failed"?{status:"unavailable",config:n,error:new Error(r.lastError??`MCP server "${n.name}" failed`)}:{status:"installed",config:n,leaseRevision:s}):{status:"superseded",config:n}}function vH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=N(e,r.name);if(!em(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=Yh(e,r.name),l=Xh({state:e,config:r,generation:d});return tm(l,d,e,o),ra({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:yH({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function _H(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!em(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?Q(r,a.name,u):N(r,a.name),l=Pr(a,i),f=ai({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,h=()=>vH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await mH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Gu(f.retirement),h());return f.retirement?m():h()}async function Ve(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??We(e,d.name)})).map(async d=>{try{let l=await _H({intent:d,state:e,pi:r,sourceOwnership:n,sourceKind:i,activePi:s});return"connection"in l?l.connection:l}catch(l){return{status:"failed",config:d.config,error:l}}});if(c.length===0)return[];let u=setTimeout(()=>{D(s(),e)},Qs);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function SH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!fk(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Zu(e,t,o))return!1;Qh(e,i),ui(e,t);let a=st({state:e,name:t,owner:s.owner,revision:s.revision,host:o});if(!a)return!1;o.beginDisposal?.();try{await o.dispose({strict:!0}),_e({state:e,name:t,retirement:a,result:{status:"retired"}})}catch(l){throw _e({state:e,name:t,retirement:a,result:{status:"failed",error:l}}),l}if(N(e,t)?.revision!==s.revision||!fk(e,t,n))return xe({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=Yh(e,t),u=Xh({state:e,config:i,generation:c});if(tm(u,c,e,r),!ra({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await pk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&hu(d(),e,u),!0}function en(t,e,r){e.reconnects??=new Map,e.configRevisions??=new Map,e.reconnectDesiredGenerations??=new Map,e.statusFailureCategories??=new Map;let n=(e.reconnectDesiredGenerations.get(t)??0)+1;e.reconnectDesiredGenerations.set(t,n);let o=e.reconnects.get(t);if(o)return o;let i=(async()=>{let s=0,a=e.configRevisions.get(t)??0;do{let c=e.reconnectDesiredGenerations.get(t)??0;if((e.configRevisions.get(t)??0)!==a||!await SH({name:t,state:e,pi:r,configRevision:a}))return;s=c}while(s<(e.reconnectDesiredGenerations.get(t)??s))})().finally(()=>{e.reconnects.get(t)===i&&e.reconnects.delete(t)});return e.reconnects.set(t,i),i}async function wH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;Qh(e,n.config),ui(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Wu(n.config,o)?Promise.resolve():ht(e,r,n.config.id,n.config),c=(await Promise.allSettled([s,n.dispose({strict:!0})])).find(u=>u.status==="rejected");if(c)throw c.reason;i&&_e({state:e,name:r,retirement:i,result:{status:"retired"}})}catch(s){throw i&&_e({state:e,name:r,retirement:i,result:{status:"failed",error:s}}),s}}async function mk(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=Qn(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(m=>m.name===t),c=We(e,t),u=e.servers.get(t),d=u?Q(e,t,u):N(e,t),l={kind:"local",identity:a?.id??t},f=ai({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await wH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Gu(f.retirement),N(e,t)?.revision!==f.lease.revision||!em(e,t,c)){xe({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){xe({state:e,name:t,owner:l,revision:f.lease.revision}),D(i(),e);return}let p=Yh(e,t),h=Xh({state:e,config:a,generation:p});tm(h,p,e,r),ra({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await pk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&hu(i(),e,h))}async function Ws(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>en(n,e,r)))}finally{e.reconnecting=!1}}var gk=Symbol.for("__pi_mcp_registry_ingress__");function gu(t){return Object.defineProperty(t,gk,{value:!0}),t}function Bn(t){return Object.getOwnPropertyDescriptor(t,gk)?.value===!0}function tn(t){let{state:e,target:r,byConfigId:n=!1}=t;if(!r)return;let o=[...e.servers].filter(([u,d])=>d.config.id===r||!n&&u===r);if(o.length!==1)return;let i=o[0];if(!i)return;let[s,a]=i;if(a.config.id&&[...e.servers].some(([u,d])=>u!==s&&d.config.id===a.config.id))return;let c=N(e,s);if(!(c&&(c.host!==a||c.owner.kind==="registry"&&c.connectionEpoch!==e.mcpConnectionEpoch))&&!(!c&&e.mcpConnectionEpoch!==void 0&&a.config.registrySource!==void 0)&&!((n||s!==r)&&!Bn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as bH}from"@hermes/logger";var RH=bH.child({prefix:"pi-mcp"}),CH=1e6,PH=1e3,xH=/^\d+$/;function yk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function rn(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t.credential_revision??t.credentialRevision,r=t.credential_revision_domain??t.credentialRevisionDomain;if(typeof e!="string"||!xH.test(e)||typeof r!="string"||r.length===0)return;let n=Vm(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:yk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function kH(t,e,r){let n=t?.get(e),o=typeof r=="string"?t?.get(r):void 0;return n===void 0?o:o===void 0?n:kr(o,n)>0?o:n}function EH(t,e,r){if(t===void 0)return!0;let n=yk(t);return n===e.domain||r?.kind==="domain"&&e.ownerDomain===r.domain||r?.kind==="domain"&&(n.startsWith("private:")||n.startsWith("shared:"))&&e.domain.startsWith("recipient:")&&Er(n)===r.domain&&Er(e.domain)===r.domain?!0:r?.kind==="domain"&&!ct(n)&&ct(e.domain)&&Er(n)===r.domain}function TH(t,e,r,n){let o=e.credential_revision??e.credentialRevision,i=e.credential_revision_domain??e.credentialRevisionDomain;if((o!==void 0||i!==void 0)&&r===void 0)return RH.warn(`Skipping MCP OAuth credentials for "${t}": invalid credential revision or domain`),"reject";let s=n?.expectedDomains?.get(t);if(r===void 0)return n?.requireRevision===!0||s!==void 0||n?.acceptedDomains?.has(t)===!0?"reject":"apply";let a=Er(r.domain);if(s?.kind==="blocked"||s?.kind==="domain"&&r.ownerDomain!==void 0&&r.ownerDomain!==s.domain||s?.kind==="domain"&&r.ownerDomain===void 0&&!ct(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!EH(c,r,s))return"reject";let u=kH(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=kr(r.revision,u);return d>0||d===0&&c===void 0&&s?.kind==="domain"&&n?.equalRevisionRebindDomains?.get(t)===s.domain?"apply":d===0?"equal":"reject"}function AH(t,e,r,n){if(n!==void 0)return!1;let o=t.get(e);return o===void 0?!1:r.expiresAt===void 0||o.expiresAt===void 0||r.expiresAt<=o.expiresAt}function MH(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t;if(typeof e.access_token!="string"||e.access_token.length===0||["refresh_token","token_type","scope","authorization_endpoint","token_endpoint","issuer","client_id","client_secret","token_endpoint_auth_method"].some(s=>e[s]!==void 0&&typeof e[s]!="string"))return!1;let n=e.access_token_expires_at;if(n===void 0)return!0;if(typeof n!="object"||n===null||Array.isArray(n))return!1;let{seconds:o,nanos:i}=n;return typeof o=="number"&&Number.isSafeInteger(o)&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&i<1e9}function $H(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*PH+Math.floor(t.access_token_expires_at.nanos/CH):void 0;return{accessToken:t.access_token,refreshToken:t.refresh_token,expiresAt:e,tokenType:t.token_type,scope:t.scope,serverMetadata:{issuer:t.issuer??t.authorization_endpoint,authorization_endpoint:t.authorization_endpoint,token_endpoint:t.token_endpoint},client:{client_id:t.client_id,client_secret:t.client_secret,...t.token_endpoint_auth_method===void 0?{}:{token_endpoint_auth_method:t.token_endpoint_auth_method}}}}function IH(t,e){return t?t.accessToken===e.accessToken&&t.refreshToken===e.refreshToken&&t.expiresAt===e.expiresAt&&t.tokenType===e.tokenType&&t.scope===e.scope&&t.resource===e.resource&&t.serverMetadata?.issuer===e.serverMetadata?.issuer&&t.serverMetadata?.authorization_endpoint===e.serverMetadata?.authorization_endpoint&&t.serverMetadata?.token_endpoint===e.serverMetadata?.token_endpoint&&t.client?.client_id===e.client?.client_id&&t.client?.client_secret===e.client?.client_secret&&t.client?.token_endpoint_auth_method===e.client?.token_endpoint_auth_method:!1}function _r(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!MH(n))return{decision:"reject"};let i=rn(n),s=TH(r,n,i,o);if(s==="reject")return{decision:s};let a=$H(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!IH(e.get(r),a))||s==="apply"&&AH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function yu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=_r({store:t,serverName:o,proto:i,options:r});if(s.decision!=="apply"){n[s.decision==="equal"?"equal":"rejected"].push(o);continue}let{token:a,revision:c}=s;t.set(o,a),r?.equalRevisionRebindDomains?.delete(o),c!==void 0&&(r?.acceptedRevisions?.set(c.domain,c.revision),r?.acceptedDomains?.set(o,c.domain)),n.applied.push(o)}return n}var vk=OH.child({prefix:"pi-mcp"});function zH(t,e){let r=tn({state:t,target:e,byConfigId:!0});if(!r)return;let o=N(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function NH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=rn(i);if(s===void 0)return!1;let a=un(s);return s.ownerDomain!==void 0?a===`user:${e}`:o===r&&ct(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function _k(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){vk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=zH(r,n.configId),i=o?NH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=N(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth")return;let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>_r({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject")return;let d=o.server.getRefreshInFlight?.();if(d&&await Promise.resolve(d).catch(()=>{}),r.mcpConnectionEpoch!==a||r.servers.get(o.name)!==o.server||N(r,o.name)!==s||u().decision==="reject")return;Q(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=yu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let m=rn(i);m&&(r.credentialRevisions.set(o.name,m),r.hostedCredentialOwnership.set(o.name,{...m,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??en,h=t.report??D;await p(o.name,r,f).catch(m=>{vk.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${m instanceof Error?m.name:"non-Error"}`)}),h(f,r),Se(r)}import{logger as JH}from"@hermes/logger";import{randomUUID as DH}from"node:crypto";import{setToolSource as LH}from"@augmentcode/auggie-v2";import{logger as jH}from"@hermes/logger";import{Type as FH}from"@sinclair/typebox";var wk=jH.child({prefix:"pi-mcp"}),rr="attach-mcp-server",UH="augment:mcp-attach-request",qH=15e3,HH={type:"object",properties:{config_id:{type:"string",description:"Id (or name) of the MCP server to attach, as listed among the available unattached servers in find-tool's description."}},required:["config_id"]};function GH(t,e){let r=e.trim(),n=r.toLowerCase(),o=t.mcpCatalog??[],i=o.find(l=>l.id===r);if(i)return{kind:"match",entry:i};let s=o.filter(l=>l.name.toLowerCase()===n),a=s.length===1?s[0]:void 0;if(a!==void 0)return{kind:"match",entry:a};if(s.length===0)return{kind:"none"};let c=new Set(ln(t).map(l=>l.id)),u=s.filter(l=>c.has(l.id)),d=u.length===1?u[0]:void 0;return d!==void 0?{kind:"match",entry:d}:{kind:"ambiguous",candidates:s}}function ZH(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function rm(t,e){let r=ZH(t,e);return r.length===0?"":` A different attachable server with the same name exists: ${r.map(o=>`"${o.name}" (id: ${o.id})`).join(", ")}. If that is the intended server, retry with its exact id.`}function BH(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},qH);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Sk(t){let e=ln(t).map(r=>`${r.name} (id: ${r.id})`);return e.length>0?`Available unattached servers: ${e.join(", ")}.`:"No unattached servers are currently available."}function WH(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Ce(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${rm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Ce(`MCP server "${e.name}" failed to connect after the attach was accepted. Ask the user to reconnect it from the session MCP panel before trying again.${rm(r,e)}`)}function VH(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Ce(`Timed out waiting for the attach request for "${e.name}" to be acknowledged. The server may still attach shortly; check find-tool's server list before retrying.`);if(r.error==="UNIMPLEMENTED")return n.mcpAttachDisabled=!0,Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");if(r.error==="DENIED")return Ce(`The control plane denied the request to attach "${e.name}". Do not retry; ask the user to verify that the server is available for this session.`);if(r.error!==void 0)return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Ce(`Attach accepted for "${e.name}". Connection continues in the background; use find-tool to discover its tools when ready. If its tools do not appear, call attach-mcp-server again with the same config id for connection guidance.`);case"ALREADY_ATTACHED":return Ce(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Ce(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${rm(n,e)}`);case"NO_ACTIVE_VM":return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Ce(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function KH(t,e,r){if(e.mcpAttachDisabled)return Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");let{config_id:n}=r??{};if(typeof n!="string"||n.trim().length===0)throw new Error(`${rr} requires a string "config_id" parameter. ${Sk(e)}`);let o=GH(e,n);if(o.kind==="none")return Ce(`No MCP server matching "${n}" is available to attach. ${Sk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Ce(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=WH({entry:i,state:e});if(s!==void 0)return s;if(dd(e,i))return Ce(`MCP server "${i.name}" is already attached to this session. Use find-tool to discover its tools.`);if(i.state!=="available"&&i.state!=="opt_in_required")return Ce(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=DH();wk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=BH(e,a);t.events.emit(UH,{configId:i.id,requestId:a});let u=await c,d=VH({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),to(rr),Ir(e)&&ir(t)),d}function vu(t,e){let r={name:rr,label:rr,description:"Attach an available MCP server to this session so its tools become usable. Only servers listed as available-but-not-attached in find-tool's description can be attached. Call this tool immediately when the user's request needs one of those servers; it attaches directly without requiring user approval.",parameters:FH.Unsafe(HH),execute:(n,o)=>KH(t,e,o)};LH(rr,"mcp"),t.registerTool(r),Mr(r),wk.debug("Registered attach-mcp-server tool")}var _u=JH.child({prefix:"pi-mcp"}),nm="augment:mcp-attach-result";function bk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(nm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){_u.warn(`${nm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){_u.debug(`${nm}: no pending resolver for request ${o} (already timed out?)`);return}let s={...typeof n?.status=="string"?{status:n.status}:{},...typeof n?.error=="string"?{error:n.error}:{}};i(s)}))}function Su(t,e){if(e.mcpAttachCloudSignaled&&fa(e)){vu(t,e);return}e.mcpAttachCloudSignaled&&fg(rr)!==void 0&&(t.unregisterTool(rr),to(rr))}function Jo(t,e){if(!e.mcpAttachCloudSignaled||!fa(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await wg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,_u.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,_u.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Su(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as dG}from"@hermes/logger";function YH(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case pi.OAUTH:return"oauth";case pi.API_KEY:return"header";default:return}let e=String(t).toLowerCase();if(e==="oauth"||e==="mcp_auth_type_oauth")return"oauth";if(e==="header"||e==="api_key"||e==="mcp_auth_type_api_key")return"header"}function XH(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case dn.CLI:return"cli";case dn.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function wu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(XH).filter(r=>r!==void 0);return e.length===0?void 0:e}function bu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=YH(r.auth_type),o={name:r.name,type:r.type==="http"||r.type==="sse"||r.type==="stdio"?r.type:void 0,disabled:r.disabled,command:r.command,args:r.args,env:r.env,url:r.url,auth:n==="oauth"?"oauth":void 0,timeoutMs:r.timeout_ms,useShellInterpolation:r.use_shell_interpolation},i=Yn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...Xn(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof Et?s.message:String(s)}}}function QH(t){let e=t.config?.auth_type;return e===pi.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function eG(t){let e=t.name;return t.type==="stdio"?`stdio\0${e}\0${t.command}\0${t.args.join(" ")}`:`${t.type}\0${e}\0${t.url}`}function om(t,e,r){let n=new Map;for(let o of t)r(o.id)&&n.set(o.id,o);for(let o of e)n.set(o.id,o);return[...n.values()]}function tG(t,e,r){if(r!==void 0&&t.added_by===r)return wu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?wu(n):[]}function rG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=om(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=om(e,r,()=>!0),m=new Set(h.map(b=>b.id)),g=h.filter(b=>p.has(b.id)),v=h.filter(b=>!p.has(b.id)).map(b=>b.id),w=i.filter(b=>!m.has(b));return{selected:g,filteredOutIds:v,missingIds:w,retainedNames:[]}}let a=new Set(n),c=[];for(let p of e)a.has(p.id)||c.push(p.id);let u=om(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let m=!d.has(p.id)&&a.has(p.id)?tG(p,o,s):wu(p.enabled_products);m===void 0||m.includes("cloud_agent")?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function nG(t){return t==null?dn.CLOUD_AGENT:void 0}function oG(t){return t.map(e=>({message:`Selected MCP config id "${e}" was not returned by the registry (not opted in to the shared server, deleted, or an unknown id)`}))}function Rk(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:gu(o)}}catch(o){let i=o instanceof Error?o.message:String(o);return{ok:!1,diagnostic:{server:t.name,message:`Skipped registry MCP server "${t.name}" (id=${e}, ${r}): ${i}`}}}}function iG(t){let{payload:e,userIds:r,localServerNames:n,seenNames:o,workspaceRoot:i}=t;if(e.config?.disabled)return e.config.name?{kind:"retained",name:e.config.name}:{kind:"dropped"};let s=r.has(e.id)?"user":"tenant",a=bu(e,s);if(!a.ok){let d=e.config?.name,l={server:d,message:`Skipped registry MCP server "${d??e.id}" (id=${e.id}, ${s}): ${a.reason}`};return d?{kind:"retained",name:d,diagnostic:l}:{kind:"dropped",diagnostic:l}}let c=a.server;if(o.has(c.name)){if(n.has(c.name))return{kind:"retained",name:c.name,diagnostic:{server:c.name,message:`Skipped registry MCP server "${c.name}" (id=${e.id}, ${s}): a local server with the same name takes precedence`}};let d=Rk(c,e.id,s,i);return{kind:"retained",name:c.name,diagnostic:{server:c.name,message:`Skipped registry MCP server "${c.name}" (id=${e.id}, ${s}): name collides with a higher-precedence registry server`},fallbackServer:d.ok?d.server:void 0}}let u=Rk(c,e.id,s,i);return u.ok?(o.add(c.name),{kind:"connected",server:u.server}):{kind:"retained",name:c.name,diagnostic:u.diagnostic}}function sG(t){let e=[],r=[],n=[];for(let o of t)QH(o)?(r.push(o.id),n.push({server:o.config?.name,message:`Skipped MCP server "${o.config?.name??o.id}" (id=${o.id}): OAuth authentication was never completed (no stored credentials), so it cannot connect`})):e.push(o);return{selected:e,droppedIds:r,diagnostics:n}}function aG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=eG(i);if(o.has(s)){r.push(i.name),n.push({server:i.name,message:`Skipped duplicate MCP server "${i.name}" (id=${i.id}): byte-identical to another selected server`});continue}o.add(s),e.push(i)}return{servers:e,droppedNames:r,diagnostics:n}}function cG(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function Ru(t){let e=t.client??new ha(t.creds),{tenant:r,user:n,diagnostics:o}=await Ig(e,nG(t.configIds)),i=n.mcp_configs??[],s=new Set(i.map(b=>b.id)),{selected:a,filteredOutIds:c,missingIds:u,retainedNames:d}=rG({tenantConfigs:r.mcp_configs??[],userConfigs:i,enabledSharedServerIds:n.enabled_shared_server_ids??[],serverProductPreferences:n.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId}),l=sG(a),f=l.selected;c.push(...l.droppedIds),o.push(...l.diagnostics),o.push(...oG(u));let p=[],h=new Map,m=new Set(t.localServerNames),g=[...f.filter(b=>s.has(b.id)),...f.filter(b=>!s.has(b.id))];for(let b of g){let x=iG({payload:b,userIds:s,localServerNames:t.localServerNames,seenNames:m,workspaceRoot:t.workspaceRoot});cG(x,{servers:p,retainedNames:d,diagnostics:o,nameCollisionFallbacks:h})}let v=aG(p);d.push(...v.droppedNames),o.push(...v.diagnostics);let w=new Map;for(let b of[...r.mcp_configs??[],...i])b.config?.name&&w.set(b.id,b.config.name);return{servers:v.servers,diagnostics:o,filteredOutIds:c,retainedNames:d,namesById:w,nameCollisionFallbacks:h}}import{logger as uG}from"@hermes/logger";var Yo=uG.child({prefix:"pi-mcp"});function Ck(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Yo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=bu(n,"tenant");if(!i.ok){Yo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return gu(i.server.type==="stdio"?Zt(i.server,s):Gt(i.server,s))}catch(a){Yo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function Pk(t,e){let r;try{r=JSON.parse(t)}catch(n){Yo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return Ck(r,e)}function Xo(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Yo.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Yo.warn("Embedded MCP configs payload is not an array; ignoring");return}let o=[],i=new Map,s=!1;for(let a of n){let c=a,u=Ck(a,e,r);if(c&&typeof c=="object"&&c.id&&c.config?.name&&i.set(c.id,{name:c.config.name,...u?{config:u}:{}}),c?.config?.disabled){s=!0;continue}u&&o.push(u)}if(!(o.length===0&&!s))return{servers:o,allConfigsById:i}}var Ft=dG.child({prefix:"pi-mcp"});function kk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Ek(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?st({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(We(e,r),"retiring"):void 0:(xe({state:e,name:r,owner:n.owner,revision:n.revision}),We(e,r),"released");let c=a.get(r),u=ai({state:e,name:r,owner:c??n.owner,expectedRevision:n.revision,...o?{expectedHost:o}:{}});if(u)return i&&c===void 0&&e.expectedCredentialDomains.set(r,{kind:"blocked"}),{configRevision:We(e,r),leaseRevision:u.lease.revision}}function lG(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=Q(e,r,n);if(c.owner.kind!=="registry"||c.host!==n)return;a.add(r);let u={...n.config};e.registryCredentialConfigs.set(r,u),n.config.id&&(e.registryConfigNamesById.set(n.config.id,r),e.registryCredentialConfigsById.set(n.config.id,u));let d=Ek({state:e,name:r,lease:c,host:n,isDeselected:kk({selectedIds:o,config:n.config}),selectionIsEmpty:o?.size===0,replacementOwners:i});if(d===void 0)return;d!=="released"&&d!=="retiring"&&s.set(r,d);let l=N(e,r)?.retirement;return n.beginDisposal?.(),n.dispose({strict:!0}).then(()=>{l&&_e({state:e,name:r,retirement:l,result:{status:"retired"}}),d==="retiring"&&xe({state:e,name:r,owner:c.owner,revision:c.revision})},f=>{throw l&&_e({state:e,name:r,retirement:l,result:{status:"failed",error:f}}),f})}function fG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Ek({state:e,name:r,lease:n,isDeselected:kk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function pG(t,e,r){let n=e?new Set(e):void 0,o=new Map,i=[],s=new Set;for(let[a,c]of t.servers){let u=lG({state:t,name:a,server:c,selectedIds:n,replacementOwners:r,slotReservations:o,processedNames:s});u&&i.push(u)}for(let[a,c]of t.hostLeases)s.has(a)||c.owner.kind!=="registry"||c.host!==void 0||fG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Tk(t,e,r,n,o){let i=[],s=new Map(e.map(l=>[l.name,l])),a=o?new Set(r):new Set,c=new Set([...a].flatMap(l=>{let f=t.registryConfigNamesById.get(l);return f===void 0?[]:[f]})),u=new Set(e.flatMap(l=>l.id===void 0?[]:[l.id]));for(let[l,f]of t.registryCredentialConfigs){let p=s.get(l);if(p===void 0&&f.id!==void 0&&n.has(f.id)&&!u.has(f.id)){s.set(l,f);continue}let h=f.id===void 0?c.has(l):a.has(f.id);p===void 0&&!h&&i.push(ht(t,l,f.id,f))}try{await Promise.all(i)}catch(l){let f=`Registry credential reconciliation failed: ${l instanceof Error?l.message:String(l)}`;throw new kt(f)}let d=new Map;for(let[l,f]of s){let p=t.registryCredentialConfigs.get(l);p&&(d.set(l,{...p}),pt(p,f)&&f.id!==void 0&&t.registryCredentialConfigsById.set(f.id,{...f}))}t.registryCredentialConfigs=d}function hG(t,e,r){let n=e!=null&&e.length>0?new Set(e):void 0,o=[],i=[],s=[],a=[],c=new Set(r);for(let l of t.servers){if(n&&l.id!==void 0&&!n.has(l.id)){s.push(l.id);continue}if(c.has(l.name)){i.push({server:l.name,message:`Skipped embedded MCP server "${l.name}" (id=${l.id}): a local server with the same name takes precedence`}),a.push(l.name);continue}c.add(l.name),o.push(l)}let u=new Set(o.map(l=>l.name)),d=new Set(a);for(let[l,{name:f}]of t.allConfigsById)n&&!n.has(l)||u.has(f)||d.has(f)||(d.add(f),a.push(f));return{servers:o,diagnostics:i,filteredOutIds:s,retainedNames:a}}function mG(t){let{state:e,configIds:r,admittedConfigs:n}=t,o=e.embeddedRegistryConfigs;if(e.embeddedRegistryConfigs=void 0,r?.length===0||Array.isArray(o)&&o.length===0)return{servers:[],allConfigsById:new Map};if(o!==void 0)return Xo(o,e.workspaceRoot??process.cwd(),n)}async function gG(t){let{state:e,previousSelectedIds:r,configIds:n}=t;if(!n)return;let o=new Set(n),i=[],s=[];for(let a of r){if(o.has(a))continue;let c=e.registryConfigNamesById.get(a),u=[...o].some(d=>e.registryCredentialIntents.get(at(d))?.configName===c);if(c&&!u){let d=e.registryCredentialConfigs.get(c);i.push({id:a,name:c}),s.push(ht(e,c,a,d?.id===a?d:void 0))}}try{await Promise.all(s);for(let{id:a,name:c}of i)e.registryCredentialConfigs.get(c)?.id===a&&e.registryCredentialConfigs.delete(c)}catch(a){let c=`Registry credential deselection failed: ${a instanceof Error?a.message:String(a)}`;throw new kt(c)}}function yG(t){let e=new Map,r=t.configIds?new Set(t.configIds):void 0;for(let[n,{name:o}]of t.parsedEmbedded?.allConfigsById??[])(r===void 0||r.has(n))&&e.set(o,{kind:"registry",identity:`user:${n}`});return e}function vG(t){t.lastSuccessfulVfsMcpSignature=void 0,t.blockedVfsMcpNames.clear(),t.diagnostics=t.diagnostics.filter(e=>e.origin!=="registry"),t.dynamicallyAddedConfigIds.clear(),t.failedAddConfigIds.clear(),t.nameCollisionAddConfigIds.clear(),t.authFallbackDisplacedConfigIds.clear(),t.sessionRemovedConfigIds.clear(),t.selectedRegistryConfigIds=void 0}function _G(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);o.owner.kind==="local"&&o.host===n&&e.add(r)}for(let[r,n]of t.hostLeases)n.owner.kind==="local"&&e.add(r);return e}function SG(t){let{state:e,result:r,previousSelectedIds:n,selection:o}=t,i=new Set([...o??[],...r.servers.flatMap(s=>s.id===void 0?[]:[s.id]),...r.namesById?.keys()??[]]);return Tk(e,r.servers,n,i,o!==void 0)}async function Ak(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():li(t,r.id)))}async function xk(t){return await Ak(t.state,t.result),t.state.registryGeneration===t.generation&&await SG(t),t.result}function wG(t){let{state:e,configIds:r,parsedEmbedded:n,credentials:o,localServerNames:i,previousSelectedIds:s,selection:a,generation:c,discover:u}=t;if(n){Ft.info(`Registry selection: using ${n.servers.length} embedded config(s) (no registry fetch)`);let l=hG(n,r,i);return xk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})}return o?u({configIds:r,creds:o,currentUserId:o.userId,workspaceRoot:e.workspaceRoot??process.cwd(),localServerNames:i}).then(l=>xk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})):void 0}function bG(t){let{state:e,result:r,selection:n}=t;e.selectedRegistryConfigIds=n;for(let o of r.diagnostics)e.diagnostics.push({...o,origin:"registry"}),Ft.warn(o.message);for(let[o,i]of r.namesById??[])e.registryConfigNamesById.set(o,i);r.filteredOutIds.length>0&&Ft.info(`Registry discovery filtered out ${r.filteredOutIds.length} server(s) by selection/opt-in/product`)}function RG(t){let{state:e,result:r}=t,n=r.servers.map(i=>{let s=e.sessionRegistryDisabledOverrides.get(i.name);return s===void 0?i:{...i,disabled:s}}),o=new Set([...n.map(i=>i.name),...r.retainedNames??[]]);for(let i of e.sessionRegistryDisabledOverrides.keys())o.has(i)||e.sessionRegistryDisabledOverrides.delete(i);return n}function Mk(t){let{state:e,generation:r}=t;return n=>{if(e.registryGeneration!==r||n.id===void 0)return e.registryGeneration===r;let o=e.missingHostRemovalFences.get(n.id);return!e.sessionRemovedConfigIds.has(n.id)&&o?.registryGeneration!==r}}function im(t){let{state:e,result:r,selection:n,slotReservations:o}=t,i=new Set([...r.servers.map(s=>s.name),...r.retainedNames??[],...(n??[]).flatMap(s=>{let a=e.registryConfigNamesById.get(s);return a?[a]:[]})]);for(let[s,a]of o){if(i.has(s))continue;let c=N(e,s);c?.owner.kind==="registry"&&c.host===void 0&&c.revision===a.leaseRevision&&xe({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function CG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){im({state:e,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:void 0,slotReservations:a}),Ft.info(`Registry discovery superseded by a newer selection; skipping ${r.servers.length} server(s)`);return}if(await Ak(e,r),e.registryGeneration!==o)return;let c=Mk({state:e,generation:o}),u=r.servers.filter(c);if((await Promise.all(u.map(m=>Ar({state:e,config:m,pi:s})))).some(m=>!m)||e.registryGeneration!==o)return;bG({state:e,result:r,selection:n}),im({state:e,result:r,selection:n,slotReservations:a});let l=RG({state:e,result:{...r,servers:u}});if(l.length===0)return;let f=l.filter(m=>{let g=e.servers.get(m.name);if((g?Q(e,m.name,g):N(e,m.name))?.owner.kind==="local")return Ft.info(`Registry install of "${m.name}" skipped: a local server claimed the name during discovery`),!1;let w=a.get(m.name)?.configRevision;if(w===void 0)return!0;let b=e.configDesiredRevisions.get(m.name);return b!==w?(Ft.info(`Registry install of "${m.name}" skipped: slot revision advanced from ${w} to ${b} by a concurrent operation`),!1):!0});if(f.length===0)return;Ft.info(`Registry discovery: connecting ${f.length} server(s)`);let h=(await i(f,e,e.currentLoad?.latestPi??s,c))?.find(m=>m.status==="failed");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));await PG({state:e,pi:s,result:r,generation:o,connect:i})}async function PG(t){let{state:e,pi:r,result:n,generation:o,connect:i}=t,s=n.nameCollisionFallbacks;if(!(!s||s.size===0))for(let[a,c]of s)for(let u of c){let d=await xG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function xG(t){let{state:e,pi:r,generation:n,connect:o,name:i,candidate:s}=t;if(e.registryGeneration!==n)return"abort";let a=e.servers.get(i);if(!a||a.status!=="auth_required"&&a.status!=="failed")return"settled";let c=a.config.id;if(c===void 0||c===s.id)return"settled";if(!await Ar({state:e,config:s,pi:r})||e.registryGeneration!==n)return"abort";Ft.info(`MCP auth fallback: "${i}" (id=${c}) landed ${a.status}; connecting same-named config id=${s.id} in its place`),await o([s],e,e.currentLoad?.latestPi??r,Mk({state:e,generation:n}));let d=e.servers.get(i);return d?.config.id!==c&&e.authFallbackDisplacedConfigIds.add(c),d!==void 0&&d.config.id===s.id&&d.status==="success"?"settled":"next"}async function kG(t){let{state:e,error:r,generation:n,previousSelectedIds:o,selection:i}=t,s=`Registry discovery failed: ${r instanceof Error?r.message:String(r)}`;Ft.warn(s),e.registryGeneration===n&&(await Tk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function EG(t,e){for(let r of e??[]){let n=at(r),o=t.registryCredentialIntents.get(n);o?.configName&&t.expectedCredentialDomains.set(o.configName,{kind:"blocked"}),Ke({state:t,domain:n,epoch:o?.epoch})}}async function TG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await CG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),im({state:t.resultArgs.state,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:t.resultArgs.state.registryGeneration===t.resultArgs.generation?t.resultArgs.selection:void 0,slotReservations:e}),r instanceof kt)throw EG(t.resultArgs.state,t.resultArgs.selection),t.resultArgs.state.diagnostics.some(n=>n.message===r.message)||t.resultArgs.state.diagnostics.push({message:r.message,origin:"registry"}),r;await kG({...t.resultArgs,error:r})}}function Cu(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Ru,s=o?.connect??Ve,a=n;if(!a||typeof a!="object"||Array.isArray(a))return Ft.warn("augment:mcp-config-ids payload is not an object"),Promise.resolve();Array.isArray(a.configIds)&&tg(r,new Set(a.configIds.map(at)));let c=mG({state:r,configIds:a.configIds,admittedConfigs:t.admittedConfigs}),u=r.credentials;if(!(c||u)){Ft.warn("augment:mcp-config-ids received before credentials; skipping registry discovery");for(let v of a.configIds??[])Ke({state:r,domain:at(v)});return Promise.resolve()}let d=r.selectedRegistryConfigIds??[],l=gG({state:r,previousSelectedIds:d,configIds:a.configIds}),f=yG({parsedEmbedded:c,configIds:a.configIds}),p=++r.registryGeneration,h=Promise.all([pG(r,a.configIds,f),l]).then(([v])=>v);vG(r);let m=a.configIds?[...a.configIds]:void 0,g=wG({state:r,configIds:a.configIds,parsedEmbedded:c,credentials:u,localServerNames:_G(r),previousSelectedIds:d,selection:m,generation:p,discover:i});return g?TG({disposal:h,discovery:g,resultArgs:{state:r,previousSelectedIds:d,selection:m,generation:p,connect:s,pi:e}}):Promise.resolve()}import{logger as AG}from"@hermes/logger";var nn=AG.child({prefix:"pi-mcp"});function MG(t,e){Ke({state:t,domain:`user:${e}`}),t.liveEditGenerations??=new Map;let r=(t.liveEditGenerations.get(e)??0)+1;return t.liveEditGenerations.set(e,r),r}function $G(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function zk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function IG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function $k(t){let{state:e,configId:r,fence:n,operation:o,retryPreviousFailureOnly:i=!1}=t,s=e.missingHostRemovals.get(r),a=(async()=>{let c=!1;if(s)try{await s.promise}catch{c=!0}i&&!c||await o()})().finally(()=>{e.missingHostRemovals.get(r)?.promise===a&&(IG({state:e,configId:r,fence:n}),e.missingHostRemovals.delete(r))});return e.missingHostRemovals.set(r,{promise:a,liveEditGeneration:n.liveEditGeneration,registryGeneration:n.registryGeneration}),a}function Nk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Ik(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Bn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function Dk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function OG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=N(e,r),s=n?Pr(n):void 0;if(i===void 0){We(e,r);return}let a=i.host===void 0&&i.owner.kind==="registry"&&s?.kind==="registry"&&i.owner.identity===s.identity,c=o?.incumbent.owner.kind==="registry"&&s?.kind==="registry"&&o.incumbent.owner.identity===s.identity;if(!a&&!c)return;(o?.settled&&i.retirement===o?qm({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):xe({state:e,name:r,owner:i.owner,revision:i.revision}))&&N(e,r)===void 0&&(Dk(e,r),We(e,r))}async function sm(t){let{state:e,configId:r,pi:n,report:o,sourceFence:i}=t,s=e.registryCredentialConfigsById.get(r),a=s?.name;if(!s||!a){let w=`Live MCP remove-server cannot retire config id ${r}: exact registry identity is unavailable`;throw nn.warn(w),e.diagnostics.push({message:w,origin:"registry"}),new Error(w)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=N(e,a),u=Pr(s),d=c?.retirement?.incumbent.owner.kind==="registry"&&u.kind==="registry"&&c.retirement.incumbent.owner.identity===u.identity?c.retirement:void 0,l=c!==void 0&&c.host===void 0&&c.owner.kind==="registry"&&u.kind==="registry"&&c.owner.identity===u.identity,f=e.configDesiredRevisions.get(a),p=e.configDesiredSources.get(a),h=l&&d?.settled!==!0?We(e,a):void 0;if(d&&!d.settled&&(await d.teardown).status==="retired"&&!l)return;let g=N(e,a)?.retirement===d?d:void 0,v=g?.result;if(d&&v?.status==="failed"&&v.transportDisposed!==!0){let w=v.error instanceof Error?v.error:new Error(String(v.error)),b=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw nn.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await di(e,a,r,s)}catch(w){h!==void 0&&e.configDesiredRevisions.get(a)===h&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let b=`Live MCP remove-server failed to detach ${a}: ${w instanceof Error?w.message:String(w)}`;throw nn.warn(b),e.diagnostics.push({server:a,message:b}),w}zk({state:e,configId:r,fence:i})&&(Nk(e,r),OG({state:e,name:a,config:s,retirement:g})),nn.info(`Live MCP remove-server: config id ${r} resolved to no live server (already removed or unknown id)`),o(e.currentLoad?.latestPi??n,e)}function Ok(t){let{state:e,name:r,operation:n,result:o}=t;if(o.status!=="rejected")return;let i=`Live MCP remove-server failed to ${n} ${r}: ${o.reason instanceof Error?o.reason.message:String(o.reason)}`;nn.warn(i),e.diagnostics.push({server:r,message:i})}async function zG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Ok({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([di(e,r,n,o.config)]);return Ok({state:e,name:r,operation:"detach",result:s}),s.status==="fulfilled"?{removed:!0,failure:void 0,transportDisposed:!0}:{removed:!1,failure:s.reason,transportDisposed:!0}}async function NG(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?Q(e,n,a):N(e,n);if(!a||!c||c.owner.kind!=="registry"||c.host!==a)return;e.registryConfigNamesById.set(r,n),e.registryCredentialConfigsById.set(r,{...a.config});let u=e.configDesiredRevisions.get(n),d=e.configDesiredSources.get(n),l=We(e,n),f=st({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),nn.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await zG({state:e,name:n,configId:r,server:a});if(h&&zk({state:e,configId:r,fence:s})?Nk(e,r):!h&&e.configDesiredRevisions.get(n)===l&&(u===void 0?e.configDesiredRevisions.delete(n):e.configDesiredRevisions.set(n,u),d===void 0?e.configDesiredSources.delete(n):e.configDesiredSources.set(n,d)),_e({state:e,name:n,retirement:f,result:h?{status:"retired"}:{status:"failed",error:m,transportDisposed:g}}),h&&xe({state:e,name:n,owner:c.owner,revision:c.revision})&&Dk(e,n),i(p,e),!h)throw m}function Pu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return nn.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!eo({state:r,configId:s,generation:i?.attachmentGeneration}))return nn.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:aa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??D,u=Ik(r,s),d=r.registryCredentialConfigsById.get(s),l=d?.name?N(r,d.name)?.retirement:void 0,f=r.missingHostRemovals.get(s),p=f?.registryGeneration===r.registryGeneration&&f?.liveEditGeneration===r.liveEditGenerations.get(s);if(p&&l===void 0)return a(f.promise);if(p&&l!==void 0){let g=r.missingHostRemovalFences.get(s);if(g)return a($k({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>sm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=MG(r,s);if(u===void 0&&d===void 0)return a(sm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=$G({state:r,configId:s,liveEditGeneration:h});return a($k({state:r,configId:s,fence:m,operation:()=>{let g=Ik(r,s);return g===void 0?sm({state:r,configId:s,pi:e,report:c,sourceFence:m}):NG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as DG}from"node:crypto";var LG=/^[1-9][0-9]*$/,jG=/^[a-f0-9]{64}$/,FG=new Set(["version","operation","config_id","server_name","transport","url","command","args","use_shell_interpolation","route_revision","binding_generation","ownership","auth_type","vm_id","connection_version","execution_principal_id","execution_principal_type","access_token","static_secrets"]);function ve(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function am(t){return typeof t=="string"&&LG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function um(t){return ve(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&am(t.connectionVersion)}function UG(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Nr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Nr(e))&&typeof t.use_shell_interpolation=="boolean"&&t.auth_type!=="oauth";if(t.version!==1||t.transport!=="http"&&t.transport!=="sse"||typeof t.url!="string"||t.command!==void 0||t.args!==void 0||t.use_shell_interpolation!==void 0)return!1;try{let e=new URL(t.url);return["http:","https:"].includes(e.protocol)&&!e.username&&!e.password&&!e.hash}catch{return!1}}function jk(t){if(!(!ve(t)||Object.keys(t).some(e=>!FG.has(e)))&&!(!UG(t)||t.operation!=="install"&&t.operation!=="retire"||t.auth_type!=="oauth"&&t.auth_type!=="static"&&t.auth_type!=="none")){for(let e of["config_id","server_name","vm_id","execution_principal_id"])if(typeof t[e]!="string"||t[e].length===0)return;if(!(typeof t.route_revision!="string"||!jG.test(t.route_revision)||!am(t.connection_version))&&!(t.execution_principal_type!==void 0&&(typeof t.execution_principal_type!="number"||!Number.isInteger(t.execution_principal_type)||t.execution_principal_type<0||t.execution_principal_type>2147483647))&&!(t.ownership==="uncredentialed"?t.auth_type!=="none"||t.binding_generation!=="0":t.ownership!=="recipient"||t.auth_type==="none"||!am(t.binding_generation))){if(t.operation==="retire"||t.auth_type==="none"){if(t.access_token!==void 0||t.static_secrets!==void 0)return}else if(t.auth_type==="oauth"){if(typeof t.access_token!="string"||t.access_token.length===0||t.static_secrets!==void 0)return}else if(t.access_token!==void 0||!ve(t.static_secrets)||Object.keys(t.static_secrets).length===0||Object.values(t.static_secrets).some(e=>typeof e!="string"||e.trim().length===0))return;return{...t,execution_principal_type:t.execution_principal_type??0}}}}function cm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function qG(t,e){return t.transport==="stdio"&&e.transport==="stdio"?t.command===e.command&&t.use_shell_interpolation===e.use_shell_interpolation&&t.args.length===e.args.length&&t.args.every((r,n)=>r===e.args[n]):t.transport===e.transport&&t.url===e.url}function HG(t,e){return t.transport==="stdio"&&e.type==="stdio"?e.command===t.command&&e.useShellInterpolation===t.use_shell_interpolation&&e.args.length===t.args.length&&e.args.every((r,n)=>r===t.args[n]):e.type!=="stdio"&&t.transport===e.type&&e.url===t.url&&e.auth==="oauth"==(t.auth_type==="oauth")}function Lk(t,e){return cm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&qG(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function GG(t,e){let r=Object.keys(t.static_secrets??{});return t.access_token===e.access_token&&r.length===Object.keys(e.static_secrets??{}).length&&r.every(n=>t.static_secrets?.[n]===e.static_secrets?.[n])}function ZG(t,e){let r=ki((e.type==="stdio"?e.env:e.headers)??{}),n=Object.keys(t.static_secrets??{});return t.auth_type==="static"?r.length>0&&r.length===n.length&&n.every(o=>r.includes(o)):r.length===0}var xu=class{#t=new Map;#o=new WeakSet;#r=new WeakSet;#e;#n;#i=Symbol("mcp-connection");get epoch(){return this.#i}get hasConnection(){return this.#e!==void 0}revokeConnection(){this.#t.clear(),this.#r=new WeakSet,this.#n=void 0,this.#e=void 0,this.#i=Symbol("mcp-connection")}setConnection(e){return um(e)?this.#e?.vmId===e.vmId&&this.#e.connectionVersion===e.connectionVersion?!1:(this.revokeConnection(),this.#e={...e},!0):(this.revokeConnection(),!0)}has(e){return this.#t.has(e)||[...this.#t.values()].some(r=>r.material.server_name===e)}hasTargetProvenance(e){return this.#o.has(e)}trusts(e){return this.#r.has(e)}retainSelection(e){for(let[r,n]of this.#t)e.has(r)||this.#r.delete(n.config)}config(e){return this.#t.get(e)?.config}validate(e,r,n){let o=this.#t.get(e.config_id);if(!this.#e||e.vm_id!==this.#e.vmId||e.connection_version!==this.#e.connectionVersion||this.#n&&!cm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&cm(e,o.material)&&e.binding_generation===o.material.binding_generation;if(r.disabled||!r.registrySource||r.vfsSource||r.id!==e.config_id||r.name!==e.server_name||!HG(e,r)||!n&&(!o||!this.#r.has(r)||!Lk(e,o.material))||!ZG(e,r))return!1;if(!o)return!0;let i=BigInt(e.binding_generation)-BigInt(o.material.binding_generation);return i>=0n&&(i!==0n||o.material.operation==="install"&&Lk(e,o.material)&&GG(e,o.material))}commit(e,r){let n=Object.freeze({...e,...e.transport==="stdio"?{args:Object.freeze([...e.args])}:{},...e.static_secrets?{static_secrets:Object.freeze({...e.static_secrets})}:{}});this.#t.set(e.config_id,{material:n,config:r,epoch:Symbol("target-material")}),this.#r.add(r),this.#o.add(r),this.#n??={...n,access_token:void 0,static_secrets:void 0}}auth(e){if(!this.#r.has(e)||!e.id)return;let r=this.#t.get(e.id)?.epoch,n=()=>{let i=this.#t.get(e.id??"");if(!i||!this.#r.has(e)||i.epoch!==r||i.material.operation!=="install"||i.config!==e||i.material.vm_id!==this.#e?.vmId||i.material.connection_version!==this.#e.connectionVersion)throw new Error("MCP target material is unavailable");return i.material},o=n();return{...o.ownership==="recipient"?{credential:Object.freeze({revision:o.binding_generation,domain:`recipient:${o.config_id}`})}:{},validateUrl:i=>{let s=n();if(s.transport==="stdio")throw new Error("MCP target destination is unavailable");let a=new URL(i),c=new URL(s.url);if(a.username||a.password||a.hash||(s.transport==="sse"?a.origin!==c.origin:a.href!==c.href))throw new Error("MCP target destination is unavailable")},getSecret:async i=>n().static_secrets?.[i],headers:()=>{let i=n();return i.auth_type==="oauth"?{Authorization:`Bearer ${i.access_token}`}:{}}}}};function Fk(t){return DG("sha256").update(t).digest("hex")}function Uk(t){let e=new Map;if(t===void 0)return e;if(typeof t!="string")throw new Error("Invalid MCP config map");let r=JSON.parse(t);if(!Array.isArray(r)||r.some(a=>!ve(a)||!ve(a.config)))throw new Error("Invalid MCP config map");let n=0,o=!1,i=!1,s=-1;for(let a=0;a<t.length;a++){let c=t[a];if(o){i?i=!1:c==="\\"?i=!0:c==='"'&&(o=!1);continue}if(c==='"'&&(o=!0),(c==="{"||c==="[")&&(n===1&&(s=a),n++),(c==="}"||c==="]")&&(n--,n===1&&s>=0)){let u=t.slice(s,a+1),d=JSON.parse(u);if(!ve(d)||typeof d.id!="string"||e.has(d.id))throw new Error("Invalid MCP config map");e.set(d.id,u),s=-1}}return e}function BG(t,e){let r=t.args===void 0?[]:t.args,n=t.use_shell_interpolation===void 0?!1:t.use_shell_interpolation;return(t.url===void 0||t.url==="")&&t.command===e.command&&Array.isArray(r)&&r.length===e.args.length&&r.every((o,i)=>o===e.args[i])&&n===e.use_shell_interpolation}function WG(t){return t.env!==void 0&&(!ve(t.env)||Object.values(t.env).some(e=>typeof e!="string"))?!1:t.timeout_ms===void 0||typeof t.timeout_ms=="number"&&Number.isSafeInteger(t.timeout_ms)&&t.timeout_ms>=0}function VG(t,e,r){if(typeof t!="string"||Fk(t)!==e.route_revision)return;let n=JSON.parse(t);if(!ve(n)||!ve(n.config)||n.id!==e.config_id||n.config.auth_type!=={oauth:2,static:3,none:1}[e.auth_type])return;let i=n.config;if(i.type!==void 0&&i.type!==e.transport||i.name!==e.server_name||i.disabled!==void 0&&i.disabled!==!1||!WG(i))return;let s={id:e.config_id,name:e.server_name,registrySource:"tenant",...i.timeout_ms?{timeoutMs:i.timeout_ms}:{}},a=i.env?Object.freeze({...i.env}):void 0;if(e.transport==="stdio"){if(!BG(i,e))return;let c=[...e.args];return Object.freeze(c),Object.freeze({...s,type:"stdio",command:e.command,args:c,useShellInterpolation:e.use_shell_interpolation,cwd:r??process.cwd(),env:a})}if(i.url===e.url)return Object.freeze({...s,type:e.transport,url:e.url,...e.auth_type==="oauth"?{auth:"oauth"}:{},...a?{headers:a}:{}})}function qk(t,e){if(!ve(e)||!ve(e.credentials))return;let r=t.targetMaterialStore;if(!r?.hasConnection)return;let n=Object.entries(e.credentials),o=e.kind==="boot";if(!o&&(e.version!==1||n.length!==1||e.kind!=="add"&&e.kind!=="restart"||e.hasLegacySecrets===!0))return;let i=o?Uk(e.configsJson):new Map;if(o&&(e.headerSecrets!==void 0&&(!ve(e.headerSecrets)||Object.values(e.headerSecrets).some(u=>u!==null&&typeof u!="string"))||e.configIds!==void 0&&(!Array.isArray(e.configIds)||e.configIds.some(u=>typeof u!="string"||!u)||new Set(e.configIds).size!==e.configIds.length)))return;let s=[],a=new Set,c;for(let[u,d]of n){if(o&&ve(d)&&!Object.hasOwn(d,"target_material")){if(![...i.values()].some(w=>{let b=JSON.parse(w);return ve(b)&&ve(b.config)&&b.config.name===u&&(!Array.isArray(e.configIds)||e.configIds.includes(b.id))})&&(e.configsJson!==void 0||e.configIds!==void 0)||r.has(u)||_r({store:t.tokens,serverName:u,proto:d,options:{requireEqualMaterial:!0}}).decision==="reject")return;continue}if(!ve(d)||Object.entries(d).some(([v,w])=>v!=="target_material"&&v!=="passive_install"&&w!==""))return;let l=jk(d.target_material);if(!l||l.server_name!==u||a.has(l.config_id))return;let f=JSON.stringify([l.execution_principal_id,l.execution_principal_type]);if(c!==void 0&&c!==f||(c=f,a.add(l.config_id),!o&&e.target!==(e.kind==="add"?l.config_id:u)))return;let p=o||e.kind==="add";if(p&&l.operation!=="install")return;let h=p?VG(o?i.get(l.config_id):e.config,l,t.workspaceRoot):r.config(l.config_id);if(!h||!r.validate(l,h,p)||o&&Array.isArray(e.configIds)&&!e.configIds.includes(l.config_id))return;let m=t.servers.get(h.name),g=t.hostLeases.get(h.name);if(m&&!r.trusts(m.config)&&!Bn(m.config)&&!r.hasTargetProvenance(m.config)||m&&(m.config.registrySource===void 0||m.config.vfsSource!==void 0||m.config.id!==l.config_id)||m&&(!g||g.host!==m)||g&&(g.owner.kind!=="registry"||g.owner.identity!==`user:${l.config_id}`))return;if(Object.hasOwn(d,"passive_install")){let v=d.passive_install,w=ft(t,h.name,h.id);if(e.kind!=="restart"||l.operation!=="install"||l.auth_type!=="oauth"||l.ownership!=="recipient"||!m||!ve(v)||!Number.isSafeInteger(v.host_generation)||Number(v.host_generation)<=0||w.serverGeneration!==v.host_generation||w.credentialRevisionDomain!==`recipient:${l.config_id}`||typeof v.observed_binding_generation!="string"||!/^[1-9][0-9]*$/.test(v.observed_binding_generation)||w.credentialRevision!==v.observed_binding_generation||BigInt(l.binding_generation)<=BigInt(v.observed_binding_generation))return}s.push({material:l,config:h})}if(!(o&&[...i.keys()].some(u=>r.has(u)&&!a.has(u)&&(!Array.isArray(e.configIds)||e.configIds.includes(u))))){if(o&&i.size>0){let u=Xo(e.configsJson,t.workspaceRoot,new Map(s.map(({material:d,config:l})=>[d.config_id,l])));if(!u||u.allConfigsById.size!==i.size||[...u.allConfigsById.values()].some(d=>!d.config)||new Set([...u.allConfigsById.values()].map(d=>d.name)).size!==i.size)return}return s}}async function KG(t){let{pi:e,state:r,data:n}=t;if(!ve(n)||n.kind!=="boot")return!1;let o=r.targetMaterialStore;if(!o?.hasConnection)return!1;let i,s;try{i=qk(r,n);let p=n.configsJson===void 0?void 0:JSON.parse(n.configsJson);if(p!==void 0&&!Array.isArray(p))return!1;s=p}catch{return!1}if(!i)return!1;let a=o.epoch,c=()=>o.epoch===a,u=n.configIds;u===void 0&&s!==void 0&&(u=[...Uk(n.configsJson).keys()]);let d=new Map(i.map(p=>[p.material.config_id,p.config]));o.retainSelection(new Set(d.keys()));for(let{material:p,config:h}of i)o.commit(p,h);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,vu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let l=Cu({pi:e,state:r,data:{configIds:u},admittedConfigs:d,deps:{connect:(p,h,m,g)=>{if(!c())return Promise.resolve([]);let v=p.map(w=>{let b=w.id?d.get(w.id):void 0;if(!b&&w.id&&o.has(w.id))throw new Error("MCP target material is unavailable");return b??w});return Ve(v,h,m,w=>c()&&(g?.(w)??!0))}}});if(c()&&typeof n.onAdmitted=="function"&&n.onAdmitted(c),await l,!c())return!1;let f=r.currentLoad?.latestPi??e;return D(f,r),Se(r),Jo(f,r),!0}async function JG(t){let{pi:e,state:r,data:n}=t;if(!ve(n))return!1;if(n.kind==="boot")return KG(t);let o;try{o=qk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await XG({pi:e,state:r,data:n,candidate:i,store:s})}function YG(t,e){let r=ve(t.credentials)?t.credentials[e]:void 0;return ve(r)&&Object.hasOwn(r,"passive_install")}async function XG(t){let{pi:e,state:r,data:n,candidate:o,store:i}=t,{material:s,config:a}=o,c={state:r,configId:s.config_id,generation:n.attachmentGeneration};if(n.kind==="add"){if(!eo(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=YG(n,s.server_name),d=i.epoch,l=r.attachmentCommandGenerations?.get(s.config_id),f,p=()=>i.epoch===d&&(f===void 0||r.liveEditGenerations?.get(s.config_id)===f)&&r.attachmentCommandGenerations?.get(s.config_id)===l,h=!1;try{i.commit(s,a);let m=n.kind==="add"||r.dynamicallyAddedConfigIds.has(s.config_id);if([...r.servers.values()].find(v=>v.config.id===s.config_id&&v.config.registrySource!==void 0&&(i.hasTargetProvenance(v.config)||Bn(v.config)))){let v=Pu({pi:e,state:r,data:{configId:s.config_id},replacement:!0});u&&(f=r.liveEditGenerations?.get(s.config_id)),await v}return!p()||(r.sessionRemovedConfigIds.delete(s.config_id),m?r.dynamicallyAddedConfigIds.add(s.config_id):r.dynamicallyAddedConfigIds.delete(s.config_id),s.operation!=="retire"&&(await Ve([a],r,e,p),!p()))?!1:(D(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?nd(c):sa(c))}}function Vs(t,e){let r=t.mcpConnectionEpoch,n=(t.targetMaterialQueue??Promise.resolve()).then(()=>t.mcpConnectionEpoch===r?e():void 0).then(()=>{});return t.targetMaterialQueue=n.catch(()=>{}),n}function QG(t,e){t.registryGeneration++,Xm(t),t.headerSecrets={},t.headerSecretFailures={},t.mcpCatalog=void 0,t.mcpAttachDisabled=!1,t.catalogRefreshInFlight=void 0;let r=[];for(let[n,o]of t.hostLeases){if(o.owner.kind!=="registry")continue;t.configRevisions.set(n,(t.configRevisions.get(n)??0)+1),t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.stagedOAuthCredentials.delete(n);let s=o.host;if(!s)continue;s.beginDisposal?.();let a=st({state:t,name:n,owner:o.owner,revision:o.revision,host:s});a&&r.push(s.dispose({strict:!0}).then(()=>{_e({state:t,name:n,retirement:a,result:{status:"retired"}})},c=>{_e({state:t,name:n,retirement:a,result:{status:"failed",error:c}}),t.diagnostics.push({origin:"registry",message:"Previous MCP connection could not be retired safely"}),D(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),D(e,t)}function Hk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new xu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(um(r)){if(!n.setConnection(r))return}else n.revokeConnection(),e.diagnostics.push({origin:"registry",message:"MCP connection metadata is invalid; previous credential authority was revoked"});e.mcpConnectionEpoch=n.epoch,QG(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Vs(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await JG({pi:t,state:e,data:r})&&e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP configuration update was rejected; a fresh authorized configuration is required"}),D(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),D(t,e))})}))}import{logger as fZ}from"@hermes/logger";import{execFile as dm}from"node:child_process";import{win32 as lm}from"node:path";import{logger as eZ}from"@hermes/logger";var tZ=5e3,rZ=/^[a-z]:[\\/]/i,nZ=/[<>:"|?*]/;function oZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!rZ.test(t)||!lm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||nZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:lm.join(lm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function iZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function sZ(t,e){switch(process.platform){case"darwin":return dm("open",[t],e);case"win32":{let r=oZ();return r?dm(r,["-NoProfile","-NonInteractive","-EncodedCommand",iZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return dm("xdg-open",[t],e)}}function Gk(t,e=tZ){let r=eZ.child({prefix:"open-browser"});return new Promise(n=>{let o;try{let c=new URL(t);if(c.protocol!=="http:"&&c.protocol!=="https:"){r.warn("Refusing to open browser for a non-http(s) URL"),n(!1);return}o=c.toString()}catch{r.warn("Refusing to open browser for an unparseable URL"),n(!1);return}let i=!1,s=null,a=setTimeout(()=>{if(!i){i=!0,r.warn("Browser open timed out (no display on a remote machine?)");try{s?.kill()}catch(c){r.debug("Failed to kill browser-open child process",{error:c})}n(!1)}},e);s=sZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as aZ}from"node:http";function ku(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Zk(t){let e=ku(t.title),r=ku(t.heading),n=ku(t.message),o=t.details?ku(t.details):void 0,i=t.autoClose?"<script>setTimeout(() => window.close(), 2000);</script>":"";return`<!doctype html>
|
|
100
|
+
`)}pushCapturedLine(e){this._captured.push(e),this._captured.length>t.MAX_CAPTURED_LINES&&this._captured.shift(),this._logHistory.push(e),this._logHistory.length>t.MAX_LOG_HISTORY&&this._logHistory.shift()}consumeStderr(){this._lineBuffer.length>0&&(this.pushCapturedLine(this._lineBuffer),this._lineBuffer="");let e=this._captured.join("");return this._captured=[],e}getLogHistory(){return[...this._logHistory]}};function Fx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Gh(e,t.suppressStderr)}var Hn=class extends Error{status;transport;operation;constructor(e){super(`MCP ${e.transport} ${e.operation} request failed with HTTP ${e.status}`),this.status=e.status,this.transport=e.transport,this.operation=e.operation}},Zh=new pq;function Bh(t,e){return Zh.run(t,e)}function mq(t){Zh.getStore()?.onFailure?.(t)}function Ux({getHeaders:t,transport:e,validateUrl:r}){if(t)return async(n,o)=>{r?.(n instanceof Request?n.url:String(n));let i=n instanceof Request?n.headers:void 0,s=new Headers(i);for(let[d,l]of new Headers(o?.headers).entries())s.set(d,l);for(let[d,l]of Object.entries(t()))s.set(d,l);let a=await fetch(n,{...o,headers:s,...r?{redirect:"error"}:{}});if(a.ok||o?.method?.toUpperCase()!=="POST")return a;await a.body?.cancel().catch(()=>{});let c=Zh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw mq(u),u}}function qx(t,e){let r=Ux({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new du(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Hx(t,e){let r=Ux({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new ou(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Gx(){return new Xc({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Zx=Ji,Bx=Te;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof jt||t instanceof Gs)&&t.code===401}function Wx(t){return t instanceof M&&t.code===$.MethodNotFound}function Wh(t){return t instanceof Error&&t.name==="ZodError"&&Array.isArray(t.issues)}var gq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Vx(t){if(t instanceof M&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return gq.some(r=>e.includes(r))}function Kx(t){return t instanceof M&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Vh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof jt&&t.code===404}var Y=yq.child({prefix:"pi-mcp"});function vq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function _q(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&vq(r,o)})}var Sq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),wq=/^Node\.js v\d/,bq=/^[\w$.]*error[\w$]*:/i,Jx=400,Rq=63e3,Yx=3,Cq=/[\\/]lib[\\/]cli\.js/,Pq="npx/npm launcher is broken in this environment (Cannot find module .../lib/cli.js). This usually means npm/npx/corepack are file copies instead of symlinks in the base image; every npx-launched stdio MCP server will fail until the launcher symlinks are restored.",nk=Symbol("mcpReinitReported");function xq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,nk,{value:!0,enumerable:!1,configurable:!0})}function kq(t){return typeof t=="object"&&t!==null&&t[nk]===!0}function Eq(t){let e=t.filter(a=>!wq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Cq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return Pq;let o=r.findIndex(a=>bq.test(a)),s=(o===-1?r.slice(-Yx):r.slice(o,o+Yx)).join(" / ");return s.length>Jx?`${s.slice(0,Jx)}\u2026`:s}function Tq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Sq,"").split(`
|
|
101
|
+
`).map(i=>i.trim()).filter(i=>i.length>0),o=Eq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Aq=6e5,Mq=18e5,Xx=2147483647,$q=3e4,Qx=1e4,ok=[250,1e3,2e3],Gn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Zs=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Iq=250,ek=3,Oq=[200,500];function zq(t){for(let e of Object.values(t))if(Nr(e))return!0;return!1}function Kh(t){let e=new Set;for(let r of t.matchAll(xi))e.add($a(r[0]));return[...e].sort()}function Jh(t){return[...new Set(t)].sort()}function tk(t,e){return Hy(e.map(r=>t?.[r]??"missing"))}function Nq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Jh([...e&&t?ki(t):[],...n&&r?Kh(r):[],...o.flatMap(Kh)])}var lu="${augmentToken}";function Dq(t){try{let e=new URL(t);if(e.protocol!=="https:")return!1;let{hostname:r}=e;return r==="augmentcode.com"||r.endsWith(".augmentcode.com")}catch{return!1}}function Lq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var ik="(unknown uri)",Yh="unknown",rk=/=+$/,jq=/\s+/g,Fq=/[-_]/g,Uq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Zn(t,e){return typeof t=="string"?t:e}function sk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function qq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Hq(t){let e=t.replace(jq,"").replace(Fq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(rk,"");if(r.toString("base64").replace(rk,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function ak(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Gq(t){let e=ak(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Zn(e.uri,ik),n=Zn(e.mimeType,Yh);if(typeof e.blob=="string"&&qq(n)){let i=Hq(e.blob);if(i!==void 0)return i}let o=sk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Zq(t){let e=Zn(t.type,"unknown");if(e==="resource")return Gq(t);if(e==="audio"){let r=Zn(t.mimeType,Yh),n=sk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Zn(t.uri,ik),n=Zn(t.name,""),o=Zn(t.mimeType,Yh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function Bq(t){if(t.type!=="resource")return;let e=ak(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Uq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function Wq(t){if(t.type==="text"&&typeof t.text=="string")return{type:"text",text:t.text};if(t.type==="image"&&typeof t.data=="string"&&typeof t.mimeType=="string")return{type:"image",mimeType:t.mimeType,data:t.data};let e=Bq(t);return e||{type:"text",text:Zq(t)}}function Vq(t){let e=[];if(!Array.isArray(t))return e;for(let r of t){if(typeof r!="object"||r===null)continue;let n=r;typeof n.type=="string"&&e.push(Wq(n))}return e}function Kq(t){return Oy(t,Rq)}function ck(t,e){let r=Vq(t);if(r.length===0){let o=Kq(e);o!==void 0&&r.push({type:"text",text:o})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function Jq(t,e){let r=ck(e?.value(t.content),e?.value(t.structuredContent)),n=r.content.flatMap(o=>o.type==="text"?[{type:"text",text:e?.text(o.text)??""}]:[]);return n.length===0&&n.push({type:"text",text:"MCP stdio tool failed; no usable secret-free diagnostic content"}),{isError:!0,content:n,rawItemCount:r.rawItemCount}}var uk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),Yq=new Set([502,503,504]),Bs=ok.length+1,Xq=2;function Qq(t){let r=t?.cause?.code;if(typeof r=="string")return r;let n=t?.status;if(typeof n=="number")return String(n);let o=t?.code;return typeof o=="number"?String(o):void 0}function eH(t){if(Pt(t)||Vh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return uk.has(e)?{totalAttempts:Bs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:Xq}:Yq.has(r)?{totalAttempts:Bs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Bs}:void 0}var tH=80,rH=10,nH=/[^a-zA-Z0-9_.()-]/g,oH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportClosedError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function fu(t){return t.replace(nH,"_").slice(0,tH)||"unknown"}function iH(t){let e=Qq(t);if(e!==void 0&&(/^\d{3}$/.test(e)||uk.has(e)))return e}function We(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=oH.has(e)?e:"Error",n=iH(t);return n===void 0?r:`${r}(${n})`}function sH(t,e,r){return t instanceof gt?new gt(fu(t.serverName),t.missingKeys.slice(0,rH).map(fu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${We(t)})`}function Ko(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:fu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var pu=class extends Error{operation="transport";transport;kind;constructor(e,r){super(`MCP ${e} transport ${r}`),this.transport=e,this.kind=r}},hu=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_tools=[];_connectPromise;_connectStartedAt;_refreshPromise;_refreshPersisting=!1;_disposing=!1;_disposed=!1;_resolvedEnv;_resolvedHeaders;_resolvedCommand;_resolvedArgs;onStateChange;_lastEmittedState;_activeTransport;_reinitializingPromise;_inFlightCalls=new Set;_wedgeRecoveryOwners=new Set;_wedgePending=!1;_wedgeRequired=!1;_heartbeatTimer;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;_suppressStdioDiagnostics;_toolErrorRedactor;constructor(e,r){this._config=e,this._targetAuth=ee().targetMaterialStore?.auth(e),this._suppressStdioDiagnostics=e.type==="stdio"&&this._targetAuth?.credential!==void 0,this._hostedCredentialProvenance=r?Object.freeze({...r}):void 0,this.name=e.name,this._status=e.disabled?"disabled":"initializing"}_emitState(e,r){if(e!==this._lastEmittedState){this._lastEmittedState=e;try{this.onStateChange?.(e,r)}catch{}}}get targetCredentialProvenance(){return this._targetAuth?{credential:this._targetAuth.credential}:void 0}get status(){return this._status}get config(){return this._config}get hostedCredentialProvenance(){return this._hostedCredentialProvenance}get lastError(){return this._lastError}get suppressesProviderDiagnostics(){return this._suppressStdioDiagnostics}get connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._suppressStdioDiagnostics?[]:this._stdioTransport?.getLogHistory().map(e=>Kd(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{Y.warn(`MCP server "${this.name}" connect failed (${We(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=this._connectFailureMessage(r,"connect"),o=this._config.type==="stdio"&&!this._suppressStdioDiagnostics&&!Pt(r)?Kd(Tq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",We(r))}}async _connectWithRetries(){let e=Bs,r={available:!0};for(let n=1;n<=Bs;n++)try{let o=await this._attemptConnect(r);return n>1&&Y.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=eH(o);if(i===void 0||this._disposed||(e=Math.min(e,i.totalAttempts),n>=e))throw o;if(await this._backoffBeforeRetry(o,n,e),this._disposed)return}}async _backoffBeforeRetry(e,r,n){let i=(ok[r-1]??0)+Math.floor(Math.random()*(Iq+1));Y.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${We(e)}; retrying in ${i}ms`),await pn(i)}async _attemptConnect(e){let r=this._config;(r.type==="http"||r.type==="sse")&&await this._maybeProactiveRefresh(),this._expandAugmentToken(),await this._resolveSecretRefs();let n=!1;for(;;)try{return await this._initializeFreshClient(e)}catch(o){if(this._disposed)return;if(!n&&e.available&&this._canRecoverInitialization(o)){if(n=!0,await this._recoverStartupAuthentication(o,e)==="disposed")return;continue}throw o}}_canRecoverInitialization(e){return Pt(e)&&this.hasRefreshEligibleOAuthCredential()&&!!this._usableToken()?.refreshToken}async _recoverStartupAuthentication(e,r){if(r.available=!1,this._disposed)return"disposed";let n=await this._refreshTokenDeduped();if(this._disposed)return"disposed";if(n.kind==="refreshed")return"retry";throw n.kind==="transient_failure"?new Gn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Gx();this._client=i;let s;try{if(await Bh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Zx,()=>{Y.debug(`MCP server "${this.name}" sent tools/list_changed; refreshing tools`),this._refreshTools()});let a=await this._listToolsWithAuthRetry(e);if(this._disposed)return await this._closeFailedInitialization(i,n),o;this._tools=this._safeTools(a.tools??[]),this._status="success",this._lastError=void 0,this._emitState("connected"),this._wireLivenessHandlers(),this._startHeartbeat();let c=ee();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&st(c,this.name),Y.info(`MCP server "${this.name}" connected (${this._tools.length} tool(s))`),o}catch(a){throw await this._closeFailedInitialization(i,n),s??a}}async _closeFailedInitialization(e,r){if(this._client===e){this._client=void 0,this._activeTransport===r&&(this._activeTransport=void 0);try{await e.close()}catch(n){Y.debug(`MCP server "${this.name}" close after failed connect attempt (${We(n)})`)}}}_connectFailureMessage(e,r){return this._suppressStdioDiagnostics?"MCP stdio connection failed; provider diagnostics are suppressed to protect credentials":sH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=ee();oi(o,this.name,e.reason,ft(o,this.name,this._config.id))}else if(e instanceof Zs||e instanceof Gn)this._status="failed";else if(Pt(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(Pt(e)){this._status="auth_required";let o=ee(),i=o.servers.get(this.name);(i===void 0||i===this)&&o.tokens.markAuthRequired(this.name)}else{this._status="failed";let o=this._connectFailureMessage(e,r);Ma(Ko(o,We(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=ee().targetMaterialStore;if(!this._targetAuth&&(r?.has(e.name)||e.id&&r?.has(e.id)))throw new Error("MCP target provenance is unavailable");switch(this._targetAuth?.headers(),e.type){case"stdio":{let n=Dx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Lx(this._resolvedEnv??e.env);return Fx({command:n.command,args:n.args,env:o,cwd:e.cwd,...this._suppressStdioDiagnostics?{suppressStderr:!0}:{}})}case"http":return this._createHttpTransport(e.url,this._resolvedHeaders??e.headers??{});case"sse":return Hx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=qx(e,{headers:r,getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});return this._activeTransport=n,n}async _resolveSecretRefs(){let e=this._config,r=e.type==="stdio"?e.env:this._resolvedHeaders??e.headers,n=r?zq(r):!1,o=e.type==="stdio"&&Nr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Nr);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!qy(a)){let u=Nq({source:r,sourceHasSecretRef:n,command:e.type==="stdio"?e.command:void 0,commandHasSecretRef:o,args:i});throw new gt(this.name,u)}let c=this._targetAuth?.getSecret??Fy(a);if(n&&r&&await this._resolveMapSecretRefs(r,c,e.type==="stdio"),o&&e.type==="stdio"&&(this._resolvedCommand=await this._resolveCommandSecretRefs(e.command,c,e.useShellInterpolation)),s){let u=[];for(let d of i)u.push(await this._resolveCommandSecretRefs(d,c,!1));this._resolvedArgs=u}}async _resolveMapSecretRefs(e,r,n){let o,i=new Set,s=async c=>{let u=await r(c);return this._suppressStdioDiagnostics&&typeof u=="string"&&i.add(u),u};try{o=await Zy({configEnv:e,localEnv:n&&!this._targetAuth?jx():{},getSecret:s})}catch(c){throw Y.error(`MCP server "${this.name}" secret resolution failed (${We(c)})`),new gt(this.name,ki(e),c,"transient")}let a=Jh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,tk(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=$y(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await By(e,r,n)}catch(s){throw Y.error(`MCP server "${this.name}" command secret resolution failed (${We(s)})`),new gt(this.name,Kh(e),s,"transient")}let i=Jh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,tk(o.failureReasons,i));return o.resolved}_expandAugmentToken(){if(this._targetAuth)return;let e=this._config;if(e.type!=="http"&&e.type!=="sse")return;let r=e.headers;if(!r||!Object.values(r).some(s=>s.includes(lu)))return;let o;if(Dq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${lu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${lu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Lq(e.url)}" does not qualify, sending the literal placeholder`,"error");if(o===void 0)return;let i={};for(let[s,a]of Object.entries(r))i[s]=a.replaceAll(lu,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=ee();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?Y.error(i):Y.warn(i)}_usableToken(){let e=ee();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!pt(n,this._config)))return r}_buildAuthHeaders(){if(this._targetAuth)return this._targetAuth.headers();let e=this._usableToken();return e?.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{}}hasRefreshEligibleOAuthCredential(){let{config:e}=this;if(e.type!=="http"&&e.type!=="sse"||e.disabled||this._hostedCredentialProvenance!==void 0||!this._usableToken())return!1;if(e.auth==="oauth")return!0;let r=ee();return r.tokens.hasCredentialIdentity?.(this.name,Ht(r,this))===!0}async _maybeProactiveRefresh(){let e=ee(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,Ht(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!_d(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():_i(i)&&e.tokens.markAuthRequired(this.name)))}refreshTokenIfPossible(){return this._refreshTokenDeduped()}getRefreshInFlight(){return this._refreshPromise}_refreshTokenDeduped(){if(this._disposing||this._disposed)return Promise.resolve({kind:"transient_failure"});let e=ee(),r=e.refreshes.get(this.name);if(r)return r.then(a=>a??{kind:"refreshed"});let n={state:e,tokenStore:e.tokens,serverGeneration:e.serverGenerations.get(this.name)??0,configRevision:e.configRevisions.get(this.name)??0,credential:e.credentialRevisions.get(this.name),localRefreshEnabled:e.shouldProactivelyRefreshTokens,failureScope:ft(e,this.name,this._config.id),token:this._usableToken(),hostWasUntracked:e.servers.get(this.name)===void 0},o=JSON.stringify([this.name,n.serverGeneration,n.configRevision,n.credential?.domain??null,n.credential?.revision??null]),i=e.refreshes.get(o);if(i)return i.then(a=>a??{kind:"refreshed"});let s=this._performTokenRefresh(n).finally(()=>{this._refreshPersisting=!1,e.refreshes.get(o)===s&&e.refreshes.delete(o),this._refreshPromise===s&&(this._refreshPromise=void 0)});return this._refreshPromise=s,e.refreshes.set(o,s),s}_ownsRefresh(e){let{state:r}=e,n=r.credentialRevisions.get(this.name),o=N(r,this.name)?.retirement?.incumbent.host,i=r.servers.get(this.name)===this||this._refreshPersisting&&o===this||e.hostWasUntracked&&r.servers.get(this.name)===void 0;return(!this._disposing||this._refreshPersisting)&&i&&(r.serverGenerations.get(this.name)??0)===e.serverGeneration&&(r.configRevisions.get(this.name)??0)===e.configRevision&&this._ownsRefreshCredential(e,n)&&(e.localRefreshEnabled===r.shouldProactivelyRefreshTokens||this._refreshPersisting)}_ownsRefreshCredential(e,r){return e.state.tokens===e.tokenStore&&e.tokenStore.get(this.name)===e.token&&r?.domain===e.credential?.domain&&r?.revision===e.credential?.revision}async _restoreAfterSupersededRefresh(e,r,n,o){let i=e.state.servers.get(this.name),s=e.state.tokens,a=s.get(this.name),c=e.state.credentialRevisions.get(this.name);if(s!==e.tokenStore||!i||!a||!pt(this._config,i.config))return;let u=Ht(e.state,i),d=n===void 0&&u===void 0||xr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),cn({state:e.state,name:this.name,revision:o});return}let l=await s.restoreAfterSupersededRefresh(this.name,r,a,n,o,u);if(!l||e.state.tokens!==s||e.state.servers.get(this.name)!==i||s.get(this.name)!==a||!xr(Ht(e.state,i),u)||e.state.credentialRevisions.get(this.name)?.revision!==c?.revision||e.state.credentialRevisions.get(this.name)?.domain!==c?.domain||s.reconcileCredentialIdentity?.(this.name,a,u)!==!0)return;cn({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&D(f,e.state)}catch{Y.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&wd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&oi(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),Y.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${We(e)})`),n&&o?{kind:"terminal_failure"}:{kind:"transient_failure"}}async _performTokenRefresh(e){if(!e.localRefreshEnabled)return{kind:"transient_failure"};if(!e.token?.refreshToken)return this._ownsRefresh(e)?(e.state.tokens.markAuthRequired(this.name),oi(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=Ht(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await bd(e.token);if(!this._ownsRefresh(e))return{kind:"transient_failure"};this._refreshPersisting=!0;let i=await e.tokenStore.persistRefresh(this.name,o,r,n);if(!this._ownsRefresh(e))return await this._restoreAfterSupersededRefresh(e,o,r,i),{kind:"transient_failure"};e.tokenStore.commit(this.name,o,r),cn({state:e.state,name:this.name,revision:i}),st(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&D(s,e.state),Y.debug(`MCP server "${this.name}" token refreshed`),{kind:"refreshed"}}catch(r){return this._handleRefreshFailure(r,e)}}_isSessionExpiredError(e){return this._config.type!=="http"||this._activeTransport?.sessionId===void 0?!1:Vh(e)}_reinitializeSession(){return this._reinitializingPromise===void 0&&(this._reinitializingPromise=this._doReinitializeSession().finally(()=>{this._reinitializingPromise=void 0})),this._reinitializingPromise}async _doReinitializeSession(){if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);if(this._config.type!=="http")throw new Error("Session re-initialization is only supported for Streamable HTTP servers");await this._client.close();let e=this._createHttpTransport(this._config.url,this._resolvedHeaders??this._config.headers??{});try{await this._client.connect(e)}catch(r){throw this._recordConnectFailure(r,"reinit"),r}Y.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e){if(this._config.type!=="http")return e();try{return await e()}catch(r){let n=this._isSessionExpiredError(r),o=this._reinitializingPromise!==void 0;if(!(n||o))throw r;Y.info(n?`MCP server "${this.name}" returned 404 (session expired); re-initializing and retrying`:`MCP server "${this.name}" call interrupted by a concurrent re-initialization; retrying once`);try{await this._reinitializeSession()}catch(i){throw Y.error(`MCP server "${this.name}" session re-initialization failed (${We(i)})`),xq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Gn}async _withAuthRetry(e,r,n){let o=this._config,i=ee(),s=ft(i,this.name,this._config.id),a=n?.call;if(o.type!=="http"&&o.type!=="sse")return e();let c=()=>(a&&(a.failure=void 0),Bh({operation:r,onFailure:a?u=>{a.failure=u}:void 0},e));try{let u=await c();return this._clearHostedAuthFailure(),u}catch(u){let d=a?.failure??u;if(this._disposed||!Pt(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Zs;if(this._hostedCredentialProvenance!==void 0)throw new Gn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;Y.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw Pt(h)&&this._markAuthRequired(h,s),h}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=ee();oi(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",We(e)),Y.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed(new pu(this._config.type,"closed"))},e.onerror=()=>{this._handleTransportClosed(new pu(this._config.type,"error"))})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},$q),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=ee(),r=ft(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=ek&&n.outcome==="transient";s++)await pn(Oq[s-2]??0),n=await this._runProbe();let o=ft(e,this.name,this._config.id),i=o.serverGeneration===r.serverGeneration&&o.mcpConfigId===r.mcpConfigId&&o.credentialRevision===r.credentialRevision&&o.credentialRevisionDomain===r.credentialRevisionDomain;return i&&n.outcome==="alive"&&st(e,this.name,r),i&&(n.outcome==="alive"||n.outcome==="authFailure")?this._lastProbeResult=n:n.outcome==="inconclusive"?Y.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&Y.debug(`MCP server "${this.name}" startup verification ping remained transient after ${ek} attempts; not caching as failed: ${n.error}`),n}getLastProbeResult(){return this._lastProbeResult}async _runProbe(){let e=!this._client||this._disposed;if(e)return{ok:!1,outcome:"transient",error:"MCP client is not available",isAuthError:!1};try{return await this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.ping({timeout:Qx})},"ping",{preserveAuthErrorOnRefreshUnavailable:!0}),{ok:!0,outcome:"alive"}}catch(r){let n=this._classifyProbeError(r,e);if(n==="alive")return{ok:!0,outcome:"alive"};let o=`MCP startup verification failed (${We(r)})`,i=`MCP server "${this.name}" failed startup verification ping (${n}): ${o}`;return n==="transient"?Y.debug(i):Y.warn(i),{ok:!1,outcome:n,error:o,isAuthError:n==="authFailure"}}}_classifyProbeError(e,r){return r||!this._client||this._disposed||this._reinitializingPromise!==void 0?"transient":Wx(e)||Wh(e)?"alive":Pt(e)?"authFailure":Vx(e)?"transient":"inconclusive"}async _sendHeartbeat(){if(this._inFlightCalls.size===0||this._reinitializingPromise)return;let e=this._client;if(!(!e||this._disposed))try{await e.ping({timeout:Qx})}catch(r){if(this._reinitializingPromise||this._disposed||Wh(r))return;Y.warn(`MCP server "${this.name}" failed liveness ping; in-flight tool calls are treated as wedged`),this._failInFlightCalls(new Error(`MCP server "${this.name}" is unresponsive (liveness ping failed)`))}}_handleTransportClosed(e){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(e))}_wedgeRecoveryOwnership(e){let r=e.failure;return Pt(r)?(this._wedgeRecoveryOwners.add(e),"recoverable"):this._isSessionExpiredError(r)?(e.sessionRecoveryOwned=!0,this._wedgeRecoveryOwners.add(e),"recoverable"):this._wedgeRecoveryOwners.has(e)?"owned":"none"}_settleInFlightCall(e,r,n){let o=this._releaseWedgeRecoveryOwner(e,r,n);e.failure=void 0,this._inFlightCalls.delete(e),o&&this.onWedged?.()}_releaseWedgeRecoveryOwner(e,r,n){if(!this._wedgeRecoveryOwners.delete(e)||(!r&&e.sessionRecoveryOwned&&!Pt(n)&&(this._wedgeRequired=!0),this._wedgeRecoveryOwners.size!==0))return!1;let o=this._wedgePending&&this._wedgeRequired;return this._wedgePending=!1,this._wedgeRequired=!1,o}_failInFlightCalls(e,r=!0){let n=[...this._inFlightCalls].filter(c=>!c.livenessRejected);if(n.length===0)return;if(!r){for(let c of n)c.livenessRejected=!0,c.reject(e);Y.warn(`MCP server "${this.name}" failing ${n.length} in-flight tool call(s)`);return}let o=n.map(c=>({call:c,state:this._wedgeRecoveryOwnership(c)})),i=o.some(({state:c})=>c==="recoverable"),s=!1;for(let{call:c,state:u}of o)u==="recoverable"||u==="owned"&&i||(c.livenessRejected=!0,s=!0,c.reject(c.failure??e));let a=n.filter(c=>c.livenessRejected).length;Y.warn(`MCP server "${this.name}" failing ${a} in-flight tool call(s)`),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=s):s&&this.onWedged?.()}_listToolsWithAuthRetry(e){return this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.listTools()},"list_tools",{startupAuthRefreshBudget:e})}async _refreshTools(){if(!(this._disposed||this._status!=="success"||!this._client))try{let e=await this._listToolsWithAuthRetry();if(this._disposed)return;let r=this._safeTools(e.tools??[]),n=!_q(this._tools,r);if(this._tools=r,n){Y.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){Y.warn(`MCP server "${this.name}" onToolsChanged handler threw (${We(o)})`)}}}catch(e){Y.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${We(e)}), keeping cached tools`)}}_safeTools(e){return this._suppressStdioDiagnostics?this._toolErrorRedactor?e.filter(r=>JSON.stringify(this._toolErrorRedactor?.value(r))===JSON.stringify(r)):[]:e}listTools(){return this._tools}async callTool(e,r,n){if(this._disposing||this._disposed)throw new Error(`MCP server "${this.name}" is being disposed`);if(this._status!=="success"||!this._client)throw new Error(`MCP server "${this.name}" is not connected (status: ${this._status})`);if(this._config.timeoutMs!==void 0&&this._config.timeoutMs>Xx)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${Xx}.`);let o=this._toolErrorRedactor,s={timeout:this._config.timeoutMs??Aq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Mq,onprogress:l=>{this._suppressStdioDiagnostics||Y.debug(`MCP server "${this.name}" tool "${e}" progress: ${l.progress}${l.total===void 0?"":`/${l.total}`}${l.message?` - ${l.message}`:""}`)}},a,c=new Promise((l,f)=>{a={reject:f,livenessRejected:!1,sessionRecoveryOwned:!1}});c.catch(()=>{}),a&&this._inFlightCalls.add(a);let d=this._withSessionRetry(()=>this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.callTool({name:e,arguments:r??{}},Bx,s)},"tool_call",{call:a})).then(l=>(a&&this._settleInFlightCall(a,!0,void 0),l),l=>{throw a&&this._settleInFlightCall(a,!1,l),l});try{let l=await Promise.race([d,c]);if(this._suppressStdioDiagnostics&&l.isError===!0)return Jq({content:l.content,structuredContent:l.structuredContent},o);let f=ck(l.content,l.structuredContent);return{isError:l.isError===!0,content:f.content,rawItemCount:f.rawItemCount}}catch(l){return(n?.aborted||l instanceof Error&&l.name==="AbortError")&&this._throwCallCancellation(l),this._reportAndThrowToolError(l,e)}finally{a&&!this._wedgeRecoveryOwners.has(a)&&(a.failure=void 0,this._inFlightCalls.delete(a))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Ko("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(this._suppressStdioDiagnostics){let c=Ko("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||Ma(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Gn||e instanceof Zs)throw e;if(Pt(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=fu(r),i=We(e),s=Kx(e)&&/[^a-zA-Z0-9_-]/.test(r)?` The tool name "${o}" contains characters that some servers do not support; letters, digits, underscores, and hyphens are portable.`:"",a=`MCP tool "${o}" failed (${i}).${s}`;throw kq(e)||Ma(Ko(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Ko(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._toolErrorRedactor=void 0,this._targetAuth&&(this._resolvedHeaders=void 0,this._resolvedEnv=void 0,this._resolvedCommand=void 0),this._stopHeartbeat(),this._failInFlightCalls(new Error(`MCP server "${this.name}" is being disposed`),!1),this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1}async dispose(e){this.beginDisposal(),await this._refreshPromise,this._stopHeartbeat();let r=this._client;if(this._client=void 0,this._activeTransport=void 0,this._reinitializingPromise=void 0,this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1,this._stdioTransport=void 0,!!r)try{await r.close()}catch(n){if(this._suppressStdioDiagnostics){let o=Ko("MCP stdio close failed","Error");if(Y.debug(o.message),e?.strict)throw o;return}if(Y.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var dk=cH.child({prefix:"pi-mcp"}),uH=3,dH=6e4;function lH(t,e){let r=Date.now(),n=r-dH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=uH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function lk(t){ir(t),fa(t)}async function fH(t,e,r){if(!lH(e,t)){dk.warn(`MCP server "${t}" automatic restart rate-limited`);return}dk.warn(`MCP server "${t}" wedged; recycling transport`),await en(t,e,r)}function mu(t,e,r){if(pH(e)){lk(t),D(t,e);return}ud(t,r),Ir(e)&&lk(t),D(t,e)}function pH(t){return fi()||t.toolSearchLatched}function tr(t,e,r){return Bu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function Xh(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,st(t,e),t.authRefreshNeededReportKeys.delete(e),r}function hH(t){let{state:e,config:r,hostGeneration:n}=t;if(r.type!=="http"&&r.type!=="sse"||r.auth!=="oauth"||r.registrySource===void 0||r.id===void 0)return;let o=e.credentialRevisions.get(r.name),i=e.tokens.get(r.name),s=e.hostedCredentialOwnership?.get(r.name),a=o!==void 0&&s?.revision===o.revision,c=o!==void 0&&s?.domain===o.domain,u=o!==void 0&&s?.ownerDomain===o.ownerDomain,d=o!==void 0&&e.oauthCredentialDomains.get(r.name)===o.domain,l=o!==void 0&&Ym(o.domain,r.id,o.ownerDomain);return o!==void 0&&i!==void 0&&s!==void 0&&a&&c&&u&&d&&l?Object.freeze({kind:"accepted",configId:r.id,credentialRevision:o.revision,credentialRevisionDomain:o.domain,hostGeneration:n,hostedAccessTokenOnly:s.accessTokenOnly}):s===void 0&&e.shouldProactivelyRefreshTokens?void 0:Object.freeze({kind:"incomplete",configId:r.id,hostGeneration:n})}function Qh(t){let{state:e,config:r,generation:n}=t;return new hu(r,hH({state:e,config:r,hostGeneration:n}))}function Ve(t,e,r="base"){t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map;let o=Math.max(t.configRevisions.get(e)??0,t.configDesiredRevisions.get(e)??0)+1;return t.configDesiredRevisions.set(e,o),t.configDesiredSources.set(e,r),o}function em(t,e){if(e.id&&e.registrySource!==void 0){let r={...e};t.registryConfigNamesById.set(e.id,e.name),t.registryCredentialConfigs.set(e.name,r),t.registryCredentialConfigsById.set(e.id,r)}}function tm(t,e,r){return t.configDesiredRevisions.get(e)===r}function fk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function rm(t,e,r,n){t.onStateChange=(a,c)=>{if(!tr(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(aH,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;fH(t.name,r,a)};let o=t.hostedCredentialProvenance,i=t.targetCredentialProvenance?.credential,s;i&&(t.config.type==="http"||t.config.type==="sse")&&t.config.auth==="oauth"?s={serverGeneration:e,mcpConfigId:t.config.id,credentialRevision:i.revision,credentialRevisionDomain:i.domain}:o?.kind==="accepted"&&o.hostedAccessTokenOnly&&(s={serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain}),t.onAuthRefreshNeeded=()=>{if(!tr(t,e,r)||!s)return;let a=JSON.stringify(s);r.statusFailureCategories.set(t.name,{category:"auth_refresh_needed",...s}),r.authRefreshNeededReportKeys.get(t.name)!==a&&(r.authRefreshNeededReportKeys.set(t.name,a),D(r.currentLoad?.latestPi??n,r))},t.onAuthRefreshCleared=()=>{if(!tr(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&st(r,t.name,s)&&D(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&mu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;dd(a,t,e),a!==n&&dd(n,t,e)}}async function pk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&D(n(),r)},Qs);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&D(n(),r)}}async function hk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function gu(t,e){if(e.status!=="installed")return!1;let r=N(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function mH(t){let{state:e,config:r,displaced:n,retirement:o}=t;em(e,n.config),ui(e,r.name),n.beginDisposal?.();try{let i=Vu(n.config,r)?Promise.resolve():ht(e,r.name,n.config.id,n.config),a=(await Promise.allSettled([i,n.dispose({strict:!0})])).find(c=>c.status==="rejected");if(a)throw a.reason;_e({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw _e({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function gH(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=at({state:e,name:r.name,owner:n,revision:o,host:r});if(i){r.beginDisposal?.();try{await r.dispose({strict:!0}),_e({state:e,name:r.name,retirement:i,result:{status:"retired"}}),xe({state:e,name:r.name,owner:n,revision:o})}catch(s){throw _e({state:e,name:r.name,retirement:i,result:{status:"failed",error:s}}),s}}}async function yH(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),tr(r,o,e)?a?.(n)===!1?(await gH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&mu(c(),e,r),D(c(),e),r.status==="failed"?{status:"unavailable",config:n,error:new Error(r.lastError??`MCP server "${n.name}" failed`)}:{status:"installed",config:n,leaseRevision:s}):{status:"superseded",config:n}}function vH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=N(e,r.name);if(!tm(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=Xh(e,r.name),l=Qh({state:e,config:r,generation:d});return rm(l,d,e,o),ra({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:yH({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function _H(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!tm(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?Q(r,a.name,u):N(r,a.name),l=Pr(a,i),f=ai({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,h=()=>vH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await mH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Zu(f.retirement),h());return f.retirement?m():h()}async function Ke(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??Ve(e,d.name)})).map(async d=>{try{let l=await _H({intent:d,state:e,pi:r,sourceOwnership:n,sourceKind:i,activePi:s});return"connection"in l?l.connection:l}catch(l){return{status:"failed",config:d.config,error:l}}});if(c.length===0)return[];let u=setTimeout(()=>{D(s(),e)},Qs);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function SH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!fk(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Bu(e,t,o))return!1;em(e,i),ui(e,t);let a=at({state:e,name:t,owner:s.owner,revision:s.revision,host:o});if(!a)return!1;o.beginDisposal?.();try{await o.dispose({strict:!0}),_e({state:e,name:t,retirement:a,result:{status:"retired"}})}catch(l){throw _e({state:e,name:t,retirement:a,result:{status:"failed",error:l}}),l}if(N(e,t)?.revision!==s.revision||!fk(e,t,n))return xe({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=Xh(e,t),u=Qh({state:e,config:i,generation:c});if(rm(u,c,e,r),!ra({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await pk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&mu(d(),e,u),!0}function en(t,e,r){e.reconnects??=new Map,e.configRevisions??=new Map,e.reconnectDesiredGenerations??=new Map,e.statusFailureCategories??=new Map;let n=(e.reconnectDesiredGenerations.get(t)??0)+1;e.reconnectDesiredGenerations.set(t,n);let o=e.reconnects.get(t);if(o)return o;let i=(async()=>{let s=0,a=e.configRevisions.get(t)??0;do{let c=e.reconnectDesiredGenerations.get(t)??0;if((e.configRevisions.get(t)??0)!==a||!await SH({name:t,state:e,pi:r,configRevision:a}))return;s=c}while(s<(e.reconnectDesiredGenerations.get(t)??s))})().finally(()=>{e.reconnects.get(t)===i&&e.reconnects.delete(t)});return e.reconnects.set(t,i),i}async function wH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;em(e,n.config),ui(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Vu(n.config,o)?Promise.resolve():ht(e,r,n.config.id,n.config),c=(await Promise.allSettled([s,n.dispose({strict:!0})])).find(u=>u.status==="rejected");if(c)throw c.reason;i&&_e({state:e,name:r,retirement:i,result:{status:"retired"}})}catch(s){throw i&&_e({state:e,name:r,retirement:i,result:{status:"failed",error:s}}),s}}async function mk(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=Qn(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(m=>m.name===t),c=Ve(e,t),u=e.servers.get(t),d=u?Q(e,t,u):N(e,t),l={kind:"local",identity:a?.id??t},f=ai({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await wH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Zu(f.retirement),N(e,t)?.revision!==f.lease.revision||!tm(e,t,c)){xe({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){xe({state:e,name:t,owner:l,revision:f.lease.revision}),D(i(),e);return}let p=Xh(e,t),h=Qh({state:e,config:a,generation:p});rm(h,p,e,r),ra({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await pk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&mu(i(),e,h))}async function Ws(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>en(n,e,r)))}finally{e.reconnecting=!1}}var gk=Symbol.for("__pi_mcp_registry_ingress__");function yu(t){return Object.defineProperty(t,gk,{value:!0}),t}function Bn(t){return Object.getOwnPropertyDescriptor(t,gk)?.value===!0}function tn(t){let{state:e,target:r,byConfigId:n=!1}=t;if(!r)return;let o=[...e.servers].filter(([u,d])=>d.config.id===r||!n&&u===r);if(o.length!==1)return;let i=o[0];if(!i)return;let[s,a]=i;if(a.config.id&&[...e.servers].some(([u,d])=>u!==s&&d.config.id===a.config.id))return;let c=N(e,s);if(!(c&&(c.host!==a||c.owner.kind==="registry"&&c.connectionEpoch!==e.mcpConnectionEpoch))&&!(!c&&e.mcpConnectionEpoch!==void 0&&a.config.registrySource!==void 0)&&!((n||s!==r)&&!Bn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as bH}from"@hermes/logger";var RH=bH.child({prefix:"pi-mcp"}),CH=1e6,PH=1e3,xH=/^\d+$/;function yk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function rn(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t.credential_revision??t.credentialRevision,r=t.credential_revision_domain??t.credentialRevisionDomain;if(typeof e!="string"||!xH.test(e)||typeof r!="string"||r.length===0)return;let n=na(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:yk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function kH(t,e,r){let n=t?.get(e),o=typeof r=="string"?t?.get(r):void 0;return n===void 0?o:o===void 0?n:kr(o,n)>0?o:n}function EH(t,e,r){if(t===void 0)return!0;let n=yk(t);return n===e.domain||r?.kind==="domain"&&e.ownerDomain===r.domain||r?.kind==="domain"&&(n.startsWith("private:")||n.startsWith("shared:"))&&e.domain.startsWith("recipient:")&&Er(n)===r.domain&&Er(e.domain)===r.domain?!0:r?.kind==="domain"&&!ct(n)&&ct(e.domain)&&Er(n)===r.domain}function TH(t,e,r,n){let o=e.credential_revision??e.credentialRevision,i=e.credential_revision_domain??e.credentialRevisionDomain;if((o!==void 0||i!==void 0)&&r===void 0)return RH.warn(`Skipping MCP OAuth credentials for "${t}": invalid credential revision or domain`),"reject";let s=n?.expectedDomains?.get(t);if(r===void 0)return n?.requireRevision===!0||s!==void 0||n?.acceptedDomains?.has(t)===!0?"reject":"apply";let a=Er(r.domain);if(s?.kind==="blocked"||s?.kind==="domain"&&r.ownerDomain!==void 0&&r.ownerDomain!==s.domain||s?.kind==="domain"&&r.ownerDomain===void 0&&!ct(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!EH(c,r,s))return"reject";let u=kH(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=kr(r.revision,u);return d>0||d===0&&c===void 0&&s?.kind==="domain"&&n?.equalRevisionRebindDomains?.get(t)===s.domain?"apply":d===0?"equal":"reject"}function AH(t,e,r,n){if(n!==void 0)return!1;let o=t.get(e);return o===void 0?!1:r.expiresAt===void 0||o.expiresAt===void 0||r.expiresAt<=o.expiresAt}function MH(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t;if(typeof e.access_token!="string"||e.access_token.length===0||["refresh_token","token_type","scope","authorization_endpoint","token_endpoint","issuer","client_id","client_secret","token_endpoint_auth_method"].some(s=>e[s]!==void 0&&typeof e[s]!="string"))return!1;let n=e.access_token_expires_at;if(n===void 0)return!0;if(typeof n!="object"||n===null||Array.isArray(n))return!1;let{seconds:o,nanos:i}=n;return typeof o=="number"&&Number.isSafeInteger(o)&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&i<1e9}function $H(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*PH+Math.floor(t.access_token_expires_at.nanos/CH):void 0;return{accessToken:t.access_token,refreshToken:t.refresh_token,expiresAt:e,tokenType:t.token_type,scope:t.scope,serverMetadata:{issuer:t.issuer??t.authorization_endpoint,authorization_endpoint:t.authorization_endpoint,token_endpoint:t.token_endpoint},client:{client_id:t.client_id,client_secret:t.client_secret,...t.token_endpoint_auth_method===void 0?{}:{token_endpoint_auth_method:t.token_endpoint_auth_method}}}}function IH(t,e){return t?t.accessToken===e.accessToken&&t.refreshToken===e.refreshToken&&t.expiresAt===e.expiresAt&&t.tokenType===e.tokenType&&t.scope===e.scope&&t.resource===e.resource&&t.serverMetadata?.issuer===e.serverMetadata?.issuer&&t.serverMetadata?.authorization_endpoint===e.serverMetadata?.authorization_endpoint&&t.serverMetadata?.token_endpoint===e.serverMetadata?.token_endpoint&&t.client?.client_id===e.client?.client_id&&t.client?.client_secret===e.client?.client_secret&&t.client?.token_endpoint_auth_method===e.client?.token_endpoint_auth_method:!1}function _r(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!MH(n))return{decision:"reject"};let i=rn(n),s=TH(r,n,i,o);if(s==="reject")return{decision:s};let a=$H(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!IH(e.get(r),a))||s==="apply"&&AH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function vu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=_r({store:t,serverName:o,proto:i,options:r});if(s.decision!=="apply"){n[s.decision==="equal"?"equal":"rejected"].push(o);continue}let{token:a,revision:c}=s;t.set(o,a),r?.equalRevisionRebindDomains?.delete(o),c!==void 0&&(r?.acceptedRevisions?.set(c.domain,c.revision),r?.acceptedDomains?.set(o,c.domain)),n.applied.push(o)}return n}var vk=OH.child({prefix:"pi-mcp"});function zH(t,e){let r=tn({state:t,target:e,byConfigId:!0});if(!r)return;let o=N(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function NH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=rn(i);if(s===void 0)return!1;let a=un(s);return s.ownerDomain!==void 0?a===`user:${e}`:o===r&&ct(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function _k(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){vk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=zH(r,n.configId),i=o?NH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=N(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth")return;let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>_r({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject")return;let d=o.server.getRefreshInFlight?.();if(d&&await Promise.resolve(d).catch(()=>{}),r.mcpConnectionEpoch!==a||r.servers.get(o.name)!==o.server||N(r,o.name)!==s||u().decision==="reject")return;Q(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=vu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let m=rn(i);m&&(r.credentialRevisions.set(o.name,m),r.hostedCredentialOwnership.set(o.name,{...m,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??en,h=t.report??D;await p(o.name,r,f).catch(m=>{vk.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${m instanceof Error?m.name:"non-Error"}`)}),h(f,r),Se(r)}import{logger as JH}from"@hermes/logger";import{randomUUID as DH}from"node:crypto";import{setToolSource as LH}from"@augmentcode/auggie-v2";import{logger as jH}from"@hermes/logger";import{Type as FH}from"@sinclair/typebox";var wk=jH.child({prefix:"pi-mcp"}),rr="attach-mcp-server",UH="augment:mcp-attach-request",qH=15e3,HH={type:"object",properties:{config_id:{type:"string",description:"Id (or name) of the MCP server to attach, as listed among the available unattached servers in find-tool's description."}},required:["config_id"]};function GH(t,e){let r=e.trim(),n=r.toLowerCase(),o=t.mcpCatalog??[],i=o.find(l=>l.id===r);if(i)return{kind:"match",entry:i};let s=o.filter(l=>l.name.toLowerCase()===n),a=s.length===1?s[0]:void 0;if(a!==void 0)return{kind:"match",entry:a};if(s.length===0)return{kind:"none"};let c=new Set(ln(t).map(l=>l.id)),u=s.filter(l=>c.has(l.id)),d=u.length===1?u[0]:void 0;return d!==void 0?{kind:"match",entry:d}:{kind:"ambiguous",candidates:s}}function ZH(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function nm(t,e){let r=ZH(t,e);return r.length===0?"":` A different attachable server with the same name exists: ${r.map(o=>`"${o.name}" (id: ${o.id})`).join(", ")}. If that is the intended server, retry with its exact id.`}function BH(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},qH);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Sk(t){let e=ln(t).map(r=>`${r.name} (id: ${r.id})`);return e.length>0?`Available unattached servers: ${e.join(", ")}.`:"No unattached servers are currently available."}function WH(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Ce(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${nm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Ce(`MCP server "${e.name}" failed to connect after the attach was accepted. Ask the user to reconnect it from the session MCP panel before trying again.${nm(r,e)}`)}function VH(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Ce(`Timed out waiting for the attach request for "${e.name}" to be acknowledged. The server may still attach shortly; check find-tool's server list before retrying.`);if(r.error==="UNIMPLEMENTED")return n.mcpAttachDisabled=!0,Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");if(r.error==="DENIED")return Ce(`The control plane denied the request to attach "${e.name}". Do not retry; ask the user to verify that the server is available for this session.`);if(r.error!==void 0)return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Ce(`Attach accepted for "${e.name}". Connection continues in the background; use find-tool to discover its tools when ready. If its tools do not appear, call attach-mcp-server again with the same config id for connection guidance.`);case"ALREADY_ATTACHED":return Ce(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Ce(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${nm(n,e)}`);case"NO_ACTIVE_VM":return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Ce(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function KH(t,e,r){if(e.mcpAttachDisabled)return Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");let{config_id:n}=r??{};if(typeof n!="string"||n.trim().length===0)throw new Error(`${rr} requires a string "config_id" parameter. ${Sk(e)}`);let o=GH(e,n);if(o.kind==="none")return Ce(`No MCP server matching "${n}" is available to attach. ${Sk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Ce(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=WH({entry:i,state:e});if(s!==void 0)return s;if(ld(e,i))return Ce(`MCP server "${i.name}" is already attached to this session. Use find-tool to discover its tools.`);if(i.state!=="available"&&i.state!=="opt_in_required")return Ce(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=DH();wk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=BH(e,a);t.events.emit(UH,{configId:i.id,requestId:a});let u=await c,d=VH({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),to(rr),Ir(e)&&ir(t)),d}function _u(t,e){let r={name:rr,label:rr,description:"Attach an available MCP server to this session so its tools become usable. Only servers listed as available-but-not-attached in find-tool's description can be attached. Call this tool immediately when the user's request needs one of those servers; it attaches directly without requiring user approval.",parameters:FH.Unsafe(HH),execute:(n,o)=>KH(t,e,o)};LH(rr,"mcp"),t.registerTool(r),Mr(r),wk.debug("Registered attach-mcp-server tool")}var Su=JH.child({prefix:"pi-mcp"}),om="augment:mcp-attach-result";function bk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(om,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){Su.warn(`${om} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){Su.debug(`${om}: no pending resolver for request ${o} (already timed out?)`);return}let s={...typeof n?.status=="string"?{status:n.status}:{},...typeof n?.error=="string"?{error:n.error}:{}};i(s)}))}function wu(t,e){if(e.mcpAttachCloudSignaled&&pa(e)){_u(t,e);return}e.mcpAttachCloudSignaled&&fg(rr)!==void 0&&(t.unregisterTool(rr),to(rr))}function Jo(t,e){if(!e.mcpAttachCloudSignaled||!pa(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await wg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,Su.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,Su.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;wu(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as dG}from"@hermes/logger";function YH(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case pi.OAUTH:return"oauth";case pi.API_KEY:return"header";default:return}let e=String(t).toLowerCase();if(e==="oauth"||e==="mcp_auth_type_oauth")return"oauth";if(e==="header"||e==="api_key"||e==="mcp_auth_type_api_key")return"header"}function XH(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case dn.CLI:return"cli";case dn.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function bu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(XH).filter(r=>r!==void 0);return e.length===0?void 0:e}function Ru(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=YH(r.auth_type),o={name:r.name,type:r.type==="http"||r.type==="sse"||r.type==="stdio"?r.type:void 0,disabled:r.disabled,command:r.command,args:r.args,env:r.env,url:r.url,auth:n==="oauth"?"oauth":void 0,timeoutMs:r.timeout_ms,useShellInterpolation:r.use_shell_interpolation},i=Yn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...Xn(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof Et?s.message:String(s)}}}function QH(t){let e=t.config?.auth_type;return e===pi.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function eG(t){let e=t.name;return t.type==="stdio"?`stdio\0${e}\0${t.command}\0${t.args.join(" ")}`:`${t.type}\0${e}\0${t.url}`}function im(t,e,r){let n=new Map;for(let o of t)r(o.id)&&n.set(o.id,o);for(let o of e)n.set(o.id,o);return[...n.values()]}function tG(t,e,r){if(r!==void 0&&t.added_by===r)return bu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?bu(n):[]}function rG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=im(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=im(e,r,()=>!0),m=new Set(h.map(_=>_.id)),g=h.filter(_=>p.has(_.id)),v=h.filter(_=>!p.has(_.id)).map(_=>_.id),b=i.filter(_=>!m.has(_));return{selected:g,filteredOutIds:v,missingIds:b,retainedNames:[]}}let a=new Set(n),c=[];for(let p of e)a.has(p.id)||c.push(p.id);let u=im(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let m=!d.has(p.id)&&a.has(p.id)?tG(p,o,s):bu(p.enabled_products);m===void 0||m.includes("cloud_agent")?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function nG(t){return t==null?dn.CLOUD_AGENT:void 0}function oG(t){return t.map(e=>({message:`Selected MCP config id "${e}" was not returned by the registry (not opted in to the shared server, deleted, or an unknown id)`}))}function Rk(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:yu(o)}}catch(o){let i=o instanceof Error?o.message:String(o);return{ok:!1,diagnostic:{server:t.name,message:`Skipped registry MCP server "${t.name}" (id=${e}, ${r}): ${i}`}}}}function iG(t){let{payload:e,userIds:r,localServerNames:n,seenNames:o,workspaceRoot:i}=t;if(e.config?.disabled)return e.config.name?{kind:"retained",name:e.config.name}:{kind:"dropped"};let s=r.has(e.id)?"user":"tenant",a=Ru(e,s);if(!a.ok){let d=e.config?.name,l={server:d,message:`Skipped registry MCP server "${d??e.id}" (id=${e.id}, ${s}): ${a.reason}`};return d?{kind:"retained",name:d,diagnostic:l}:{kind:"dropped",diagnostic:l}}let c=a.server;if(o.has(c.name)){if(n.has(c.name))return{kind:"retained",name:c.name,diagnostic:{server:c.name,message:`Skipped registry MCP server "${c.name}" (id=${e.id}, ${s}): a local server with the same name takes precedence`}};let d=Rk(c,e.id,s,i);return{kind:"retained",name:c.name,diagnostic:{server:c.name,message:`Skipped registry MCP server "${c.name}" (id=${e.id}, ${s}): name collides with a higher-precedence registry server`},fallbackServer:d.ok?d.server:void 0}}let u=Rk(c,e.id,s,i);return u.ok?(o.add(c.name),{kind:"connected",server:u.server}):{kind:"retained",name:c.name,diagnostic:u.diagnostic}}function sG(t){let e=[],r=[],n=[];for(let o of t)QH(o)?(r.push(o.id),n.push({server:o.config?.name,message:`Skipped MCP server "${o.config?.name??o.id}" (id=${o.id}): OAuth authentication was never completed (no stored credentials), so it cannot connect`})):e.push(o);return{selected:e,droppedIds:r,diagnostics:n}}function aG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=eG(i);if(o.has(s)){r.push(i.name),n.push({server:i.name,message:`Skipped duplicate MCP server "${i.name}" (id=${i.id}): byte-identical to another selected server`});continue}o.add(s),e.push(i)}return{servers:e,droppedNames:r,diagnostics:n}}function cG(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function Cu(t){let e=t.client??new ma(t.creds),{tenant:r,user:n,diagnostics:o}=await Ig(e,nG(t.configIds)),i=n.mcp_configs??[],s=new Set(i.map(_=>_.id)),{selected:a,filteredOutIds:c,missingIds:u,retainedNames:d}=rG({tenantConfigs:r.mcp_configs??[],userConfigs:i,enabledSharedServerIds:n.enabled_shared_server_ids??[],serverProductPreferences:n.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId}),l=sG(a),f=l.selected;c.push(...l.droppedIds),o.push(...l.diagnostics),o.push(...oG(u));let p=[],h=new Map,m=new Set(t.localServerNames),g=[...f.filter(_=>s.has(_.id)),...f.filter(_=>!s.has(_.id))];for(let _ of g){let R=iG({payload:_,userIds:s,localServerNames:t.localServerNames,seenNames:m,workspaceRoot:t.workspaceRoot});cG(R,{servers:p,retainedNames:d,diagnostics:o,nameCollisionFallbacks:h})}let v=aG(p);d.push(...v.droppedNames),o.push(...v.diagnostics);let b=new Map;for(let _ of[...r.mcp_configs??[],...i])_.config?.name&&b.set(_.id,_.config.name);return{servers:v.servers,diagnostics:o,filteredOutIds:c,retainedNames:d,namesById:b,nameCollisionFallbacks:h}}import{logger as uG}from"@hermes/logger";var Yo=uG.child({prefix:"pi-mcp"});function Ck(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Yo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=Ru(n,"tenant");if(!i.ok){Yo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return yu(i.server.type==="stdio"?Zt(i.server,s):Gt(i.server,s))}catch(a){Yo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function Pk(t,e){let r;try{r=JSON.parse(t)}catch(n){Yo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return Ck(r,e)}function Xo(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Yo.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Yo.warn("Embedded MCP configs payload is not an array; ignoring");return}let o=[],i=new Map,s=!1;for(let a of n){let c=a,u=Ck(a,e,r);if(c&&typeof c=="object"&&c.id&&c.config?.name&&i.set(c.id,{name:c.config.name,...u?{config:u}:{}}),c?.config?.disabled){s=!0;continue}u&&o.push(u)}if(!(o.length===0&&!s))return{servers:o,allConfigsById:i}}var Ft=dG.child({prefix:"pi-mcp"});function kk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Ek(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?at({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(Ve(e,r),"retiring"):void 0:(xe({state:e,name:r,owner:n.owner,revision:n.revision}),Ve(e,r),"released");let c=a.get(r),u=ai({state:e,name:r,owner:c??n.owner,expectedRevision:n.revision,...o?{expectedHost:o}:{}});if(u)return i&&c===void 0&&e.expectedCredentialDomains.set(r,{kind:"blocked"}),{configRevision:Ve(e,r),leaseRevision:u.lease.revision}}function lG(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=Q(e,r,n);if(c.owner.kind!=="registry"||c.host!==n)return;a.add(r);let u={...n.config};e.registryCredentialConfigs.set(r,u),n.config.id&&(e.registryConfigNamesById.set(n.config.id,r),e.registryCredentialConfigsById.set(n.config.id,u));let d=Ek({state:e,name:r,lease:c,host:n,isDeselected:kk({selectedIds:o,config:n.config}),selectionIsEmpty:o?.size===0,replacementOwners:i});if(d===void 0)return;d!=="released"&&d!=="retiring"&&s.set(r,d);let l=N(e,r)?.retirement;return n.beginDisposal?.(),n.dispose({strict:!0}).then(()=>{l&&_e({state:e,name:r,retirement:l,result:{status:"retired"}}),d==="retiring"&&xe({state:e,name:r,owner:c.owner,revision:c.revision})},f=>{throw l&&_e({state:e,name:r,retirement:l,result:{status:"failed",error:f}}),f})}function fG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Ek({state:e,name:r,lease:n,isDeselected:kk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function pG(t,e,r){let n=e?new Set(e):void 0,o=new Map,i=[],s=new Set;for(let[a,c]of t.servers){let u=lG({state:t,name:a,server:c,selectedIds:n,replacementOwners:r,slotReservations:o,processedNames:s});u&&i.push(u)}for(let[a,c]of t.hostLeases)s.has(a)||c.owner.kind!=="registry"||c.host!==void 0||fG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Tk(t,e,r,n,o){let i=[],s=new Map(e.map(l=>[l.name,l])),a=o?new Set(r):new Set,c=new Set([...a].flatMap(l=>{let f=t.registryConfigNamesById.get(l);return f===void 0?[]:[f]})),u=new Set(e.flatMap(l=>l.id===void 0?[]:[l.id]));for(let[l,f]of t.registryCredentialConfigs){let p=s.get(l);if(p===void 0&&f.id!==void 0&&n.has(f.id)&&!u.has(f.id)){s.set(l,f);continue}let h=f.id===void 0?c.has(l):a.has(f.id);p===void 0&&!h&&i.push(ht(t,l,f.id,f))}try{await Promise.all(i)}catch(l){let f=`Registry credential reconciliation failed: ${l instanceof Error?l.message:String(l)}`;throw new kt(f)}let d=new Map;for(let[l,f]of s){let p=t.registryCredentialConfigs.get(l);p&&(d.set(l,{...p}),pt(p,f)&&f.id!==void 0&&t.registryCredentialConfigsById.set(f.id,{...f}))}t.registryCredentialConfigs=d}function hG(t,e,r){let n=e!=null&&e.length>0?new Set(e):void 0,o=[],i=[],s=[],a=[],c=new Set(r);for(let f of t.servers){if(n&&f.id!==void 0&&!n.has(f.id)){s.push(f.id);continue}if(c.has(f.name)){i.push({server:f.name,message:r.has(f.name)?`Skipped embedded MCP server "${f.name}" (id=${f.id}): a local server with the same name takes precedence`:`Skipped embedded MCP server "${f.name}" (id=${f.id}): another selected registry server with the same name takes precedence`}),a.push(f.name);continue}c.add(f.name),o.push(f)}let u=new Set(o.map(f=>f.name)),d=new Set(a),l=new Map;for(let[f,{name:p}]of t.allConfigsById)n&&!n.has(f)||(l.set(f,p),u.has(p)||d.has(p)||(d.add(p),a.push(p)));return{servers:o,diagnostics:i,filteredOutIds:s,retainedNames:a,namesById:l}}function mG(t){let{state:e,configIds:r,admittedConfigs:n}=t,o=e.embeddedRegistryConfigs;if(e.embeddedRegistryConfigs=void 0,r?.length===0||Array.isArray(o)&&o.length===0)return{servers:[],allConfigsById:new Map};if(o!==void 0)return Xo(o,e.workspaceRoot??process.cwd(),n)}async function gG(t){let{state:e,previousSelectedIds:r,configIds:n}=t;if(!n)return;let o=new Set(n),i=[],s=[];for(let a of r){if(o.has(a))continue;let c=e.registryConfigNamesById.get(a),u=[...o].some(d=>e.registryCredentialIntents.get(qe(d))?.configName===c);if(c&&!u){let d=e.registryCredentialConfigs.get(c);i.push({id:a,name:c}),s.push(ht(e,c,a,d?.id===a?d:void 0))}}try{await Promise.all(s);for(let{id:a,name:c}of i)e.registryCredentialConfigs.get(c)?.id===a&&e.registryCredentialConfigs.delete(c)}catch(a){let c=`Registry credential deselection failed: ${a instanceof Error?a.message:String(a)}`;throw new kt(c)}}function yG(t){let e=new Map,r=t.configIds?new Set(t.configIds):void 0;for(let[n,{name:o}]of t.parsedEmbedded?.allConfigsById??[])(r===void 0||r.has(n))&&e.set(o,{kind:"registry",identity:`user:${n}`});return e}function vG(t){t.lastSuccessfulVfsMcpSignature=void 0,t.blockedVfsMcpNames.clear(),t.diagnostics=t.diagnostics.filter(e=>e.origin!=="registry"),t.dynamicallyAddedConfigIds.clear(),t.failedAddConfigIds.clear(),t.nameCollisionAddConfigIds.clear(),t.authFallbackDisplacedConfigIds.clear(),t.sessionRemovedConfigIds.clear(),t.selectedRegistryConfigIds=void 0}function _G(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);o.owner.kind==="local"&&o.host===n&&e.add(r)}for(let[r,n]of t.hostLeases)n.owner.kind==="local"&&e.add(r);return e}function SG(t){let{state:e,result:r,previousSelectedIds:n,selection:o}=t,i=new Set([...o??[],...r.servers.flatMap(s=>s.id===void 0?[]:[s.id]),...r.namesById?.keys()??[]]);return Tk(e,r.servers,n,i,o!==void 0)}async function Ak(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():li(t,r.id)))}async function xk(t){return await Ak(t.state,t.result),t.state.registryGeneration===t.generation&&await SG(t),t.result}function wG(t){let{state:e,configIds:r,parsedEmbedded:n,credentials:o,localServerNames:i,previousSelectedIds:s,selection:a,generation:c,discover:u}=t;if(n){Ft.info(`Registry selection: using ${n.servers.length} embedded config(s) (no registry fetch)`);let l=hG(n,r,i);return xk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})}return o?u({configIds:r,creds:o,currentUserId:o.userId,workspaceRoot:e.workspaceRoot??process.cwd(),localServerNames:i}).then(l=>xk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})):void 0}function bG(t){let{state:e,result:r,selection:n}=t;e.selectedRegistryConfigIds=n;for(let o of r.diagnostics)e.diagnostics.push({...o,origin:"registry"}),Ft.warn(o.message);for(let[o,i]of r.namesById??[])e.registryConfigNamesById.set(o,i);r.filteredOutIds.length>0&&Ft.info(`Registry discovery filtered out ${r.filteredOutIds.length} server(s) by selection/opt-in/product`)}function RG(t){let{state:e,result:r}=t,n=r.servers.map(i=>{let s=e.sessionRegistryDisabledOverrides.get(i.name);return s===void 0?i:{...i,disabled:s}}),o=new Set([...n.map(i=>i.name),...r.retainedNames??[]]);for(let i of e.sessionRegistryDisabledOverrides.keys())o.has(i)||e.sessionRegistryDisabledOverrides.delete(i);return n}function Mk(t){let{state:e,generation:r}=t;return n=>{if(e.registryGeneration!==r||n.id===void 0)return e.registryGeneration===r;let o=e.missingHostRemovalFences.get(n.id);return!e.sessionRemovedConfigIds.has(n.id)&&o?.registryGeneration!==r}}function sm(t){let{state:e,result:r,selection:n,slotReservations:o}=t,i=new Set([...r.servers.map(s=>s.name),...r.retainedNames??[],...(n??[]).flatMap(s=>{let a=e.registryConfigNamesById.get(s);return a?[a]:[]})]);for(let[s,a]of o){if(i.has(s))continue;let c=N(e,s);c?.owner.kind==="registry"&&c.host===void 0&&c.revision===a.leaseRevision&&xe({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function CG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){sm({state:e,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:void 0,slotReservations:a}),Ft.info(`Registry discovery superseded by a newer selection; skipping ${r.servers.length} server(s)`);return}if(await Ak(e,r),e.registryGeneration!==o)return;let c=Mk({state:e,generation:o}),u=r.servers.filter(c);if((await Promise.all(u.map(m=>Ar({state:e,config:m,pi:s})))).some(m=>!m)||e.registryGeneration!==o)return;bG({state:e,result:r,selection:n}),sm({state:e,result:r,selection:n,slotReservations:a});let l=RG({state:e,result:{...r,servers:u}});if(l.length===0)return;let f=l.filter(m=>{let g=e.servers.get(m.name);if((g?Q(e,m.name,g):N(e,m.name))?.owner.kind==="local")return Ft.info(`Registry install of "${m.name}" skipped: a local server claimed the name during discovery`),!1;let b=a.get(m.name)?.configRevision;if(b===void 0)return!0;let _=e.configDesiredRevisions.get(m.name);return _!==b?(Ft.info(`Registry install of "${m.name}" skipped: slot revision advanced from ${b} to ${_} by a concurrent operation`),!1):!0});if(f.length===0)return;Ft.info(`Registry discovery: connecting ${f.length} server(s)`);let h=(await i(f,e,e.currentLoad?.latestPi??s,c))?.find(m=>m.status==="failed");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));await PG({state:e,pi:s,result:r,generation:o,connect:i})}async function PG(t){let{state:e,pi:r,result:n,generation:o,connect:i}=t,s=n.nameCollisionFallbacks;if(!(!s||s.size===0))for(let[a,c]of s)for(let u of c){let d=await xG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function xG(t){let{state:e,pi:r,generation:n,connect:o,name:i,candidate:s}=t;if(e.registryGeneration!==n)return"abort";let a=e.servers.get(i);if(!a||a.status!=="auth_required"&&a.status!=="failed")return"settled";let c=a.config.id;if(c===void 0||c===s.id)return"settled";if(!await Ar({state:e,config:s,pi:r})||e.registryGeneration!==n)return"abort";Ft.info(`MCP auth fallback: "${i}" (id=${c}) landed ${a.status}; connecting same-named config id=${s.id} in its place`),await o([s],e,e.currentLoad?.latestPi??r,Mk({state:e,generation:n}));let d=e.servers.get(i);return d?.config.id!==c&&e.authFallbackDisplacedConfigIds.add(c),d!==void 0&&d.config.id===s.id&&d.status==="success"?"settled":"next"}async function kG(t){let{state:e,error:r,generation:n,previousSelectedIds:o,selection:i}=t,s=`Registry discovery failed: ${r instanceof Error?r.message:String(r)}`;Ft.warn(s),e.registryGeneration===n&&(await Tk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function EG(t,e){for(let r of e??[]){let n=qe(r),o=t.registryCredentialIntents.get(n);o?.configName&&t.expectedCredentialDomains.set(o.configName,{kind:"blocked"}),Je({state:t,domain:n,epoch:o?.epoch})}}async function TG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await CG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),sm({state:t.resultArgs.state,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:t.resultArgs.state.registryGeneration===t.resultArgs.generation?t.resultArgs.selection:void 0,slotReservations:e}),r instanceof kt)throw EG(t.resultArgs.state,t.resultArgs.selection),t.resultArgs.state.diagnostics.some(n=>n.message===r.message)||t.resultArgs.state.diagnostics.push({message:r.message,origin:"registry"}),r;await kG({...t.resultArgs,error:r})}}function Pu(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Cu,s=o?.connect??Ke,a=n;if(!a||typeof a!="object"||Array.isArray(a))return Ft.warn("augment:mcp-config-ids payload is not an object"),Promise.resolve();Array.isArray(a.configIds)&&tg(r,new Set(a.configIds.map(qe)));let c=mG({state:r,configIds:a.configIds,admittedConfigs:t.admittedConfigs}),u=r.credentials;if(!(c||u)){Ft.warn("augment:mcp-config-ids received before credentials; skipping registry discovery");for(let v of a.configIds??[])Je({state:r,domain:qe(v)});return Promise.resolve()}let d=r.selectedRegistryConfigIds??[],l=gG({state:r,previousSelectedIds:d,configIds:a.configIds}),f=yG({parsedEmbedded:c,configIds:a.configIds}),p=++r.registryGeneration,h=Promise.all([pG(r,a.configIds,f),l]).then(([v])=>v);vG(r);let m=a.configIds?[...a.configIds]:void 0,g=wG({state:r,configIds:a.configIds,parsedEmbedded:c,credentials:u,localServerNames:_G(r),previousSelectedIds:d,selection:m,generation:p,discover:i});return g?TG({disposal:h,discovery:g,resultArgs:{state:r,previousSelectedIds:d,selection:m,generation:p,connect:s,pi:e}}):Promise.resolve()}import{logger as AG}from"@hermes/logger";var nn=AG.child({prefix:"pi-mcp"});function MG(t,e){Je({state:t,domain:`user:${e}`}),t.liveEditGenerations??=new Map;let r=(t.liveEditGenerations.get(e)??0)+1;return t.liveEditGenerations.set(e,r),r}function $G(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function zk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function IG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function $k(t){let{state:e,configId:r,fence:n,operation:o,retryPreviousFailureOnly:i=!1}=t,s=e.missingHostRemovals.get(r),a=(async()=>{let c=!1;if(s)try{await s.promise}catch{c=!0}i&&!c||await o()})().finally(()=>{e.missingHostRemovals.get(r)?.promise===a&&(IG({state:e,configId:r,fence:n}),e.missingHostRemovals.delete(r))});return e.missingHostRemovals.set(r,{promise:a,liveEditGeneration:n.liveEditGeneration,registryGeneration:n.registryGeneration}),a}function Nk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Ik(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Bn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function Dk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function OG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=N(e,r),s=n?Pr(n):void 0;if(i===void 0){Ve(e,r);return}let a=i.host===void 0&&i.owner.kind==="registry"&&s?.kind==="registry"&&i.owner.identity===s.identity,c=o?.incumbent.owner.kind==="registry"&&s?.kind==="registry"&&o.incumbent.owner.identity===s.identity;if(!a&&!c)return;(o?.settled&&i.retirement===o?Hm({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):xe({state:e,name:r,owner:i.owner,revision:i.revision}))&&N(e,r)===void 0&&(Dk(e,r),Ve(e,r))}async function am(t){let{state:e,configId:r,pi:n,report:o,sourceFence:i}=t,s=e.registryCredentialConfigsById.get(r),a=s?.name;if(!s||!a){let b=`Live MCP remove-server cannot retire config id ${r}: exact registry identity is unavailable`;throw nn.warn(b),e.diagnostics.push({message:b,origin:"registry"}),new Error(b)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=N(e,a),u=Pr(s),d=c?.retirement?.incumbent.owner.kind==="registry"&&u.kind==="registry"&&c.retirement.incumbent.owner.identity===u.identity?c.retirement:void 0,l=c!==void 0&&c.host===void 0&&c.owner.kind==="registry"&&u.kind==="registry"&&c.owner.identity===u.identity,f=e.configDesiredRevisions.get(a),p=e.configDesiredSources.get(a),h=l&&d?.settled!==!0?Ve(e,a):void 0;if(d&&!d.settled&&(await d.teardown).status==="retired"&&!l)return;let g=N(e,a)?.retirement===d?d:void 0,v=g?.result;if(d&&v?.status==="failed"&&v.transportDisposed!==!0){let b=v.error instanceof Error?v.error:new Error(String(v.error)),_=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw nn.warn(_),e.diagnostics.push({server:a,message:_}),b}try{await di(e,a,r,s)}catch(b){h!==void 0&&e.configDesiredRevisions.get(a)===h&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let _=`Live MCP remove-server failed to detach ${a}: ${b instanceof Error?b.message:String(b)}`;throw nn.warn(_),e.diagnostics.push({server:a,message:_}),b}zk({state:e,configId:r,fence:i})&&(Nk(e,r),OG({state:e,name:a,config:s,retirement:g})),nn.info(`Live MCP remove-server: config id ${r} resolved to no live server (already removed or unknown id)`),o(e.currentLoad?.latestPi??n,e)}function Ok(t){let{state:e,name:r,operation:n,result:o}=t;if(o.status!=="rejected")return;let i=`Live MCP remove-server failed to ${n} ${r}: ${o.reason instanceof Error?o.reason.message:String(o.reason)}`;nn.warn(i),e.diagnostics.push({server:r,message:i})}async function zG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Ok({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([di(e,r,n,o.config)]);return Ok({state:e,name:r,operation:"detach",result:s}),s.status==="fulfilled"?{removed:!0,failure:void 0,transportDisposed:!0}:{removed:!1,failure:s.reason,transportDisposed:!0}}async function NG(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?Q(e,n,a):N(e,n);if(!a||!c||c.owner.kind!=="registry"||c.host!==a)return;e.registryConfigNamesById.set(r,n),e.registryCredentialConfigsById.set(r,{...a.config});let u=e.configDesiredRevisions.get(n),d=e.configDesiredSources.get(n),l=Ve(e,n),f=at({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),nn.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await zG({state:e,name:n,configId:r,server:a});if(h&&zk({state:e,configId:r,fence:s})?Nk(e,r):!h&&e.configDesiredRevisions.get(n)===l&&(u===void 0?e.configDesiredRevisions.delete(n):e.configDesiredRevisions.set(n,u),d===void 0?e.configDesiredSources.delete(n):e.configDesiredSources.set(n,d)),_e({state:e,name:n,retirement:f,result:h?{status:"retired"}:{status:"failed",error:m,transportDisposed:g}}),h&&xe({state:e,name:n,owner:c.owner,revision:c.revision})&&Dk(e,n),i(p,e),!h)throw m}function xu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return nn.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!eo({state:r,configId:s,generation:i?.attachmentGeneration}))return nn.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:ca({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??D,u=Ik(r,s),d=r.registryCredentialConfigsById.get(s),l=d?.name?N(r,d.name)?.retirement:void 0,f=r.missingHostRemovals.get(s),p=f?.registryGeneration===r.registryGeneration&&f?.liveEditGeneration===r.liveEditGenerations.get(s);if(p&&l===void 0)return a(f.promise);if(p&&l!==void 0){let g=r.missingHostRemovalFences.get(s);if(g)return a($k({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>am({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=MG(r,s);if(u===void 0&&d===void 0)return a(am({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=$G({state:r,configId:s,liveEditGeneration:h});return a($k({state:r,configId:s,fence:m,operation:()=>{let g=Ik(r,s);return g===void 0?am({state:r,configId:s,pi:e,report:c,sourceFence:m}):NG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as DG}from"node:crypto";var LG=/^[1-9][0-9]*$/,jG=/^[a-f0-9]{64}$/,FG=new Set(["version","operation","config_id","server_name","transport","url","command","args","use_shell_interpolation","route_revision","binding_generation","ownership","auth_type","vm_id","connection_version","execution_principal_id","execution_principal_type","access_token","static_secrets"]);function fe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function cm(t){return typeof t=="string"&&LG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function dm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&cm(t.connectionVersion)}function UG(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Nr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Nr(e))&&typeof t.use_shell_interpolation=="boolean"&&t.auth_type!=="oauth";if(t.version!==1||t.transport!=="http"&&t.transport!=="sse"||typeof t.url!="string"||t.command!==void 0||t.args!==void 0||t.use_shell_interpolation!==void 0)return!1;try{let e=new URL(t.url);return["http:","https:"].includes(e.protocol)&&!e.username&&!e.password&&!e.hash}catch{return!1}}function jk(t){if(!(!fe(t)||Object.keys(t).some(e=>!FG.has(e)))&&!(!UG(t)||t.operation!=="install"&&t.operation!=="retire"||t.auth_type!=="oauth"&&t.auth_type!=="static"&&t.auth_type!=="none")){for(let e of["config_id","server_name","vm_id","execution_principal_id"])if(typeof t[e]!="string"||t[e].length===0)return;if(!(typeof t.route_revision!="string"||!jG.test(t.route_revision)||!cm(t.connection_version))&&!(t.execution_principal_type!==void 0&&(typeof t.execution_principal_type!="number"||!Number.isInteger(t.execution_principal_type)||t.execution_principal_type<0||t.execution_principal_type>2147483647))&&!(t.ownership==="uncredentialed"?t.auth_type!=="none"||t.binding_generation!=="0":t.ownership!=="recipient"||t.auth_type==="none"||!cm(t.binding_generation))){if(t.operation==="retire"||t.auth_type==="none"){if(t.access_token!==void 0||t.static_secrets!==void 0)return}else if(t.auth_type==="oauth"){if(typeof t.access_token!="string"||t.access_token.length===0||t.static_secrets!==void 0)return}else if(t.access_token!==void 0||!fe(t.static_secrets)||Object.keys(t.static_secrets).length===0||Object.values(t.static_secrets).some(e=>typeof e!="string"||e.trim().length===0))return;return{...t,execution_principal_type:t.execution_principal_type??0}}}}function um(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function qG(t,e){return t.transport==="stdio"&&e.transport==="stdio"?t.command===e.command&&t.use_shell_interpolation===e.use_shell_interpolation&&t.args.length===e.args.length&&t.args.every((r,n)=>r===e.args[n]):t.transport===e.transport&&t.url===e.url}function HG(t,e){return t.transport==="stdio"&&e.type==="stdio"?e.command===t.command&&e.useShellInterpolation===t.use_shell_interpolation&&e.args.length===t.args.length&&e.args.every((r,n)=>r===t.args[n]):e.type!=="stdio"&&t.transport===e.type&&e.url===t.url&&e.auth==="oauth"==(t.auth_type==="oauth")}function Lk(t,e){return um(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&qG(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function GG(t,e){let r=Object.keys(t.static_secrets??{});return t.access_token===e.access_token&&r.length===Object.keys(e.static_secrets??{}).length&&r.every(n=>t.static_secrets?.[n]===e.static_secrets?.[n])}function ZG(t,e){let r=ki((e.type==="stdio"?e.env:e.headers)??{}),n=Object.keys(t.static_secrets??{});return t.auth_type==="static"?r.length>0&&r.length===n.length&&n.every(o=>r.includes(o)):r.length===0}var ku=class{#t=new Map;#o=new WeakSet;#r=new WeakSet;#e;#n;#i=Symbol("mcp-connection");get epoch(){return this.#i}get hasConnection(){return this.#e!==void 0}revokeConnection(){this.#t.clear(),this.#r=new WeakSet,this.#n=void 0,this.#e=void 0,this.#i=Symbol("mcp-connection")}setConnection(e){return dm(e)?this.#e?.vmId===e.vmId&&this.#e.connectionVersion===e.connectionVersion?!1:(this.revokeConnection(),this.#e={...e},!0):(this.revokeConnection(),!0)}has(e){return this.#t.has(e)||[...this.#t.values()].some(r=>r.material.server_name===e)}hasTargetProvenance(e){return this.#o.has(e)}trusts(e){return this.#r.has(e)}retainSelection(e){for(let[r,n]of this.#t)e.has(r)||this.#r.delete(n.config)}config(e){return this.#t.get(e)?.config}validate(e,r,n){let o=this.#t.get(e.config_id);if(!this.#e||e.vm_id!==this.#e.vmId||e.connection_version!==this.#e.connectionVersion||this.#n&&!um(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&um(e,o.material)&&e.binding_generation===o.material.binding_generation;if(r.disabled||!r.registrySource||r.vfsSource||r.id!==e.config_id||r.name!==e.server_name||!HG(e,r)||!n&&(!o||!this.#r.has(r)||!Lk(e,o.material))||!ZG(e,r))return!1;if(!o)return!0;let i=BigInt(e.binding_generation)-BigInt(o.material.binding_generation);return i>=0n&&(i!==0n||o.material.operation==="install"&&Lk(e,o.material)&&GG(e,o.material))}commit(e,r){let n=Object.freeze({...e,...e.transport==="stdio"?{args:Object.freeze([...e.args])}:{},...e.static_secrets?{static_secrets:Object.freeze({...e.static_secrets})}:{}});this.#t.set(e.config_id,{material:n,config:r,epoch:Symbol("target-material")}),this.#r.add(r),this.#o.add(r),this.#n??={...n,access_token:void 0,static_secrets:void 0}}auth(e){if(!this.#r.has(e)||!e.id)return;let r=this.#t.get(e.id)?.epoch,n=()=>{let i=this.#t.get(e.id??"");if(!i||!this.#r.has(e)||i.epoch!==r||i.material.operation!=="install"||i.config!==e||i.material.vm_id!==this.#e?.vmId||i.material.connection_version!==this.#e.connectionVersion)throw new Error("MCP target material is unavailable");return i.material},o=n();return{...o.ownership==="recipient"?{credential:Object.freeze({revision:o.binding_generation,domain:`recipient:${o.config_id}`})}:{},validateUrl:i=>{let s=n();if(s.transport==="stdio")throw new Error("MCP target destination is unavailable");let a=new URL(i),c=new URL(s.url);if(a.username||a.password||a.hash||(s.transport==="sse"?a.origin!==c.origin:a.href!==c.href))throw new Error("MCP target destination is unavailable")},getSecret:async i=>n().static_secrets?.[i],headers:()=>{let i=n();return i.auth_type==="oauth"?{Authorization:`Bearer ${i.access_token}`}:{}}}}};function Fk(t){return DG("sha256").update(t).digest("hex")}function BG(t,e){let r=Array.isArray(t.configIds)?new Set(t.configIds.filter(o=>typeof o=="string")):void 0,n=new Map;for(let o of e.values()){let i=JSON.parse(o);if(!(fe(i)&&fe(i.config))||typeof i.id!="string"||typeof i.config.name!="string"||r&&!r.has(i.id))continue;let s=n.get(i.config.name)??[];s.push(i.id),n.set(i.config.name,s)}return n}function WG(t,e){if(e.length<=1)return!0;let r=na(t);return r.kind==="valid"&&e.filter(n=>qe(n)===r.ownerDomain).length===1}function Uk(t){let e=new Map;if(t===void 0)return e;if(typeof t!="string")throw new Error("Invalid MCP config map");let r=JSON.parse(t);if(!Array.isArray(r)||r.some(a=>!fe(a)||!fe(a.config)))throw new Error("Invalid MCP config map");let n=0,o=!1,i=!1,s=-1;for(let a=0;a<t.length;a++){let c=t[a];if(o){i?i=!1:c==="\\"?i=!0:c==='"'&&(o=!1);continue}if(c==='"'&&(o=!0),(c==="{"||c==="[")&&(n===1&&(s=a),n++),(c==="}"||c==="]")&&(n--,n===1&&s>=0)){let u=t.slice(s,a+1),d=JSON.parse(u);if(!fe(d)||typeof d.id!="string"||e.has(d.id))throw new Error("Invalid MCP config map");e.set(d.id,u),s=-1}}return e}function VG(t,e){let r=t.args===void 0?[]:t.args,n=t.use_shell_interpolation===void 0?!1:t.use_shell_interpolation;return(t.url===void 0||t.url==="")&&t.command===e.command&&Array.isArray(r)&&r.length===e.args.length&&r.every((o,i)=>o===e.args[i])&&n===e.use_shell_interpolation}function KG(t){return t.env!==void 0&&(!fe(t.env)||Object.values(t.env).some(e=>typeof e!="string"))?!1:t.timeout_ms===void 0||typeof t.timeout_ms=="number"&&Number.isSafeInteger(t.timeout_ms)&&t.timeout_ms>=0}function JG(t,e,r){if(typeof t!="string"||Fk(t)!==e.route_revision)return;let n=JSON.parse(t);if(!fe(n)||!fe(n.config)||n.id!==e.config_id||n.config.auth_type!=={oauth:2,static:3,none:1}[e.auth_type])return;let i=n.config;if(i.type!==void 0&&i.type!==e.transport||i.name!==e.server_name||i.disabled!==void 0&&i.disabled!==!1||!KG(i))return;let s={id:e.config_id,name:e.server_name,registrySource:"tenant",...i.timeout_ms?{timeoutMs:i.timeout_ms}:{}},a=i.env?Object.freeze({...i.env}):void 0;if(e.transport==="stdio"){if(!VG(i,e))return;let c=[...e.args];return Object.freeze(c),Object.freeze({...s,type:"stdio",command:e.command,args:c,useShellInterpolation:e.use_shell_interpolation,cwd:r??process.cwd(),env:a})}if(i.url===e.url)return Object.freeze({...s,type:e.transport,url:e.url,...e.auth_type==="oauth"?{auth:"oauth"}:{},...a?{headers:a}:{}})}function qk(t,e,r){if(!fe(e)||!fe(e.credentials))return;let n=t.targetMaterialStore;if(!n?.hasConnection)return;let o=Object.entries(e.credentials),i=e.kind==="boot";if(!i&&(e.version!==1||o.length!==1||e.kind!=="add"&&e.kind!=="restart"||e.hasLegacySecrets===!0))return;let s=i?Uk(e.configsJson):new Map;if(i&&(e.headerSecrets!==void 0&&(!fe(e.headerSecrets)||Object.values(e.headerSecrets).some(l=>l!==null&&typeof l!="string"))||e.configIds!==void 0&&(!Array.isArray(e.configIds)||e.configIds.some(l=>typeof l!="string"||!l)||new Set(e.configIds).size!==e.configIds.length)))return;let a=i?BG(e,s):void 0,c=[],u=new Set,d;for(let[l,f]of o){if(i&&!(fe(f)&&Object.hasOwn(f,"target_material"))){let _=a?.get(l)??[];(!fe(f)||_.length===0&&(e.configsJson!==void 0||e.configIds!==void 0)||!WG(f,_)||n.has(l)||_r({store:t.tokens,serverName:l,proto:f,options:{requireEqualMaterial:!0}}).decision==="reject")&&r?.add(l);continue}if(!fe(f)||Object.entries(f).some(([_,R])=>_!=="target_material"&&_!=="passive_install"&&R!==""))return;let p=jk(f.target_material);if(!p||p.server_name!==l||u.has(p.config_id))return;let h=JSON.stringify([p.execution_principal_id,p.execution_principal_type]);if(d!==void 0&&d!==h||(d=h,u.add(p.config_id),!i&&e.target!==(e.kind==="add"?p.config_id:l)))return;let m=i||e.kind==="add";if(m&&p.operation!=="install")return;let g=m?JG(i?s.get(p.config_id):e.config,p,t.workspaceRoot):n.config(p.config_id);if(!g||!n.validate(p,g,m)||i&&Array.isArray(e.configIds)&&!e.configIds.includes(p.config_id))return;let v=t.servers.get(g.name),b=t.hostLeases.get(g.name);if(v&&!n.trusts(v.config)&&!Bn(v.config)&&!n.hasTargetProvenance(v.config)||v&&(v.config.registrySource===void 0||v.config.vfsSource!==void 0||v.config.id!==p.config_id)||v&&(!b||b.host!==v)||b&&(b.owner.kind!=="registry"||b.owner.identity!==`user:${p.config_id}`))return;if(Object.hasOwn(f,"passive_install")){let _=f.passive_install,R=ft(t,g.name,g.id);if(e.kind!=="restart"||p.operation!=="install"||p.auth_type!=="oauth"||p.ownership!=="recipient"||!v||!fe(_)||!Number.isSafeInteger(_.host_generation)||Number(_.host_generation)<=0||R.serverGeneration!==_.host_generation||R.credentialRevisionDomain!==`recipient:${p.config_id}`||typeof _.observed_binding_generation!="string"||!/^[1-9][0-9]*$/.test(_.observed_binding_generation)||R.credentialRevision!==_.observed_binding_generation||BigInt(p.binding_generation)<=BigInt(_.observed_binding_generation))return}c.push({material:p,config:g})}if(!(i&&[...s.keys()].some(l=>n.has(l)&&!u.has(l)&&(!Array.isArray(e.configIds)||e.configIds.includes(l))))){if(i&&c.length>0){let l=Xo(e.configsJson,t.workspaceRoot,new Map(c.map(({material:p,config:h})=>[p.config_id,h])));if(!l)return;let f=new Map;for(let{name:p}of l.allConfigsById.values())f.set(p,(f.get(p)??0)+1);for(let{material:p}of c){let h=l.allConfigsById.get(p.config_id);if(!h?.config||f.get(h.name)!==1)return}}return c}}async function YG(t){let{pi:e,state:r,data:n}=t;if(!fe(n)||n.kind!=="boot")return!1;let o=r.targetMaterialStore;if(!o?.hasConnection)return!1;let i,s,a=new Set;try{i=qk(r,n,a);let h=n.configsJson===void 0?void 0:JSON.parse(n.configsJson);if(h!==void 0&&!Array.isArray(h))return!1;s=h}catch{return!1}if(!i)return!1;let c=o.epoch,u=()=>o.epoch===c,d=n.configIds;d===void 0&&s!==void 0&&(d=[...Uk(n.configsJson).keys()]);let l=new Map(i.map(h=>[h.material.config_id,h.config]));o.retainSelection(new Set(l.keys()));for(let{material:h,config:m}of i)o.commit(h,m);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,_u(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=Pu({pi:e,state:r,data:{configIds:d},admittedConfigs:l,deps:{connect:(h,m,g,v)=>{if(!u())return Promise.resolve([]);let b=h.map(_=>{let R=_.id?l.get(_.id):void 0;if(!R&&_.id&&o.has(_.id))throw new Error("MCP target material is unavailable");return R??_});return Ke(b,m,g,_=>u()&&(v?.(_)??!0))}}});if(a.size>0&&r.diagnostics.push({origin:"registry",message:`Withheld ${a.size} MCP OAuth credential(s) that failed boot admission: ${[...a].join(", ")}`}),u()&&typeof n.onAdmitted=="function"&&n.onAdmitted(u,a),await f,!u())return!1;let p=r.currentLoad?.latestPi??e;return D(p,r),Se(r),Jo(p,r),!0}async function XG(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return YG(t);let o;try{o=qk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await eZ({pi:e,state:r,data:n,candidate:i,store:s})}function QG(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function eZ(t){let{pi:e,state:r,data:n,candidate:o,store:i}=t,{material:s,config:a}=o,c={state:r,configId:s.config_id,generation:n.attachmentGeneration};if(n.kind==="add"){if(!eo(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=QG(n,s.server_name),d=i.epoch,l=r.attachmentCommandGenerations?.get(s.config_id),f,p=()=>i.epoch===d&&(f===void 0||r.liveEditGenerations?.get(s.config_id)===f)&&r.attachmentCommandGenerations?.get(s.config_id)===l,h=!1;try{i.commit(s,a);let m=n.kind==="add"||r.dynamicallyAddedConfigIds.has(s.config_id);if([...r.servers.values()].find(v=>v.config.id===s.config_id&&v.config.registrySource!==void 0&&(i.hasTargetProvenance(v.config)||Bn(v.config)))){let v=xu({pi:e,state:r,data:{configId:s.config_id},replacement:!0});u&&(f=r.liveEditGenerations?.get(s.config_id)),await v}return!p()||(r.sessionRemovedConfigIds.delete(s.config_id),m?r.dynamicallyAddedConfigIds.add(s.config_id):r.dynamicallyAddedConfigIds.delete(s.config_id),s.operation!=="retire"&&(await Ke([a],r,e,p),!p()))?!1:(D(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?od(c):aa(c))}}function Vs(t,e){let r=t.mcpConnectionEpoch,n=(t.targetMaterialQueue??Promise.resolve()).then(()=>t.mcpConnectionEpoch===r?e():void 0).then(()=>{});return t.targetMaterialQueue=n.catch(()=>{}),n}function tZ(t,e){t.registryGeneration++,Xm(t),t.headerSecrets={},t.headerSecretFailures={},t.mcpCatalog=void 0,t.mcpAttachDisabled=!1,t.catalogRefreshInFlight=void 0;let r=[];for(let[n,o]of t.hostLeases){if(o.owner.kind!=="registry")continue;t.configRevisions.set(n,(t.configRevisions.get(n)??0)+1),t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.stagedOAuthCredentials.delete(n);let s=o.host;if(!s)continue;s.beginDisposal?.();let a=at({state:t,name:n,owner:o.owner,revision:o.revision,host:s});a&&r.push(s.dispose({strict:!0}).then(()=>{_e({state:t,name:n,retirement:a,result:{status:"retired"}})},c=>{_e({state:t,name:n,retirement:a,result:{status:"failed",error:c}}),t.diagnostics.push({origin:"registry",message:"Previous MCP connection could not be retired safely"}),D(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),D(e,t)}function Hk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new ku,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(dm(r)){if(!n.setConnection(r))return}else n.revokeConnection(),e.diagnostics.push({origin:"registry",message:"MCP connection metadata is invalid; previous credential authority was revoked"});e.mcpConnectionEpoch=n.epoch,tZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Vs(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await XG({pi:t,state:e,data:r})&&e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP configuration update was rejected; a fresh authorized configuration is required"}),D(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),D(t,e))})}))}import{logger as hZ}from"@hermes/logger";import{execFile as lm}from"node:child_process";import{win32 as fm}from"node:path";import{logger as rZ}from"@hermes/logger";var nZ=5e3,oZ=/^[a-z]:[\\/]/i,iZ=/[<>:"|?*]/;function sZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!oZ.test(t)||!fm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||iZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:fm.join(fm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function aZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function cZ(t,e){switch(process.platform){case"darwin":return lm("open",[t],e);case"win32":{let r=sZ();return r?lm(r,["-NoProfile","-NonInteractive","-EncodedCommand",aZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return lm("xdg-open",[t],e)}}function Gk(t,e=nZ){let r=rZ.child({prefix:"open-browser"});return new Promise(n=>{let o;try{let c=new URL(t);if(c.protocol!=="http:"&&c.protocol!=="https:"){r.warn("Refusing to open browser for a non-http(s) URL"),n(!1);return}o=c.toString()}catch{r.warn("Refusing to open browser for an unparseable URL"),n(!1);return}let i=!1,s=null,a=setTimeout(()=>{if(!i){i=!0,r.warn("Browser open timed out (no display on a remote machine?)");try{s?.kill()}catch(c){r.debug("Failed to kill browser-open child process",{error:c})}n(!1)}},e);s=cZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as uZ}from"node:http";function Eu(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Zk(t){let e=Eu(t.title),r=Eu(t.heading),n=Eu(t.message),o=t.details?Eu(t.details):void 0,i=t.autoClose?"<script>setTimeout(() => window.close(), 2000);</script>":"";return`<!doctype html>
|
|
102
102
|
<html lang="en">
|
|
103
103
|
<head>
|
|
104
104
|
<meta charset="utf-8" />
|
|
@@ -140,13 +140,13 @@ ${R}`,l++;break;case"id":u=R.includes("\0")?void 0:R;break;case"retry":/^\d+$/.t
|
|
|
140
140
|
</main>
|
|
141
141
|
${i}
|
|
142
142
|
</body>
|
|
143
|
-
</html>`}function Bk(t){return Zk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Eu(t,e){return Zk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var cZ="127.0.0.1",Kk="/callback",Wk=3e3,Vk=3010,uZ="Authentication successful. You can close this window.",Tu={"Content-Type":"text/html; charset=utf-8"};function Jk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Yk(t,e){let r=t.trim();if(!r)throw new Error("No authorization code provided");let n;try{n=new URL(r).searchParams}catch{(r.includes("code=")||r.includes("error="))&&(n=new URLSearchParams(r))}if(!n)return{kind:"success",result:{code:r,state:e}};let o=n.get("state");if(n.has("error")){if(o!==e)throw new Error("OAuth state mismatch");return{kind:"error",params:n}}let i=n.get("code");if(!i)throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return{kind:"success",result:{code:i,state:o??e}}}function fm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function dZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Kk){e.writeHead(404,Tu),e.end(Eu("Callback route not found."));return}let o=n.searchParams.get("code"),i=n.searchParams.get("state"),s=n.searchParams.get("error");if(s){let a=c=>{e.writeHead(400,Tu),e.end(Eu("Authentication did not complete.",`Error: ${s}`));let u=fm(n.searchParams);c instanceof Error?u=c:c!==void 0&&(u=new Error(String(c))),r.onError(u)};r.onErrorRetry(n.searchParams).then(c=>{c?(e.writeHead(302,{Location:c}),e.end()):a()}).catch(c=>a(c));return}if(!o||!i){e.writeHead(400,Tu),e.end(Eu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Tu),e.end(Bk(uZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function lZ(t){for(let e=Wk;e<=Vk;e++)if(await new Promise(n=>{let o=()=>{t.removeListener("listening",i),n(!1)},i=()=>{t.removeListener("error",o),n(!0)};t.once("error",o),t.once("listening",i),t.listen(e,cZ)}))return e;throw new Error(`No free port in ${Wk}-${Vk} for the OAuth callback server`)}async function Xk(){let t=!1,e,r,n=new Promise((a,c)=>{e=u=>{t||(t=!0,a(u))},r=u=>{t||(t=!0,c(u))}}),o,i=aZ((a,c)=>{dZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await lZ(i);return{port:s,redirectUri:`http://localhost:${s}${Kk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var pm=fZ.child({prefix:"pi-mcp"}),pZ=300*1e3,tE="MCP authentication was superseded";function Qk(){return Jk()?"You appear to be on a remote machine. Open the URL in a local browser, then paste the final redirect URL or code below.":"Complete sign-in in your browser. If it doesn't open, paste the final redirect URL or code below."}function Sr(t){if(t.aborted)throw new Error("Authentication cancelled")}function rE(t,e,r){return t.authenticationGeneration===r.authenticationGeneration&&t.servers.get(e)===r.server&&(t.serverGenerations.get(e)??0)===r.serverGeneration&&(t.configRevisions.get(e)??0)===r.installedConfigRevision&&(t.configDesiredRevisions.get(e)??0)===r.desiredConfigRevision&&t.tokens===r.tokenStore&&t.tokens.get(e)===r.token&&nE(t.credentialRevisions.get(e),r.credentialRevision)}function nE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function eE(t,e,r){if(!rE(t,e,r))throw new Error(tE)}async function hZ(t,e,r,n,o,i,s){let a=t.servers.get(e),c=t.tokens,u=c.get(e),d=t.credentialRevisions.get(e);if(c!==r.tokenStore||!a||!u||!pt(r.server.config,a.config))return;let l=a.config,f=Ht(t,a);try{let p=await c.restoreAfterSupersededAuthentication(e,o,u,n,i,f);if(p===void 0||t.tokens!==c||t.servers.get(e)?.config!==l||c.get(e)!==u||!xr(Ht(t,a),f)||!nE(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;cn({state:t,name:e,revision:p}),D(t.currentLoad?.latestPi??s,t)}catch{pm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function mZ(t){let e=t.serverMetadata;if(!e.authorization_endpoint||!e.token_endpoint)throw new Error("Authorization server metadata is missing required endpoints");let r=t.client.client_secret,n=t.client.token_endpoint_auth_method;return{accessToken:t.accessToken,refreshToken:t.refreshToken,expiresAt:t.expiresAt,tokenType:t.tokenType,scope:t.scope,resource:t.resource,serverMetadata:{issuer:e.issuer,authorization_endpoint:e.authorization_endpoint,token_endpoint:e.token_endpoint},client:{client_id:t.client.client_id,...typeof r=="string"?{client_secret:r}:{},...typeof n=="string"?{token_endpoint_auth_method:n}:{}}}}function gZ(t,e,r,n){return new Promise((o,i)=>{let s=!1,a,c=()=>{a&&clearTimeout(a),e.signal.removeEventListener("abort",d),t.cancelWait()},u=m=>{s||(s=!0,c(),m())},d=()=>u(()=>i(new Error("Authentication cancelled"))),l=()=>{a&&clearTimeout(a),a=setTimeout(()=>u(()=>i(new Error("Authentication timed out"))),pZ)},f=m=>{let g=m instanceof Error?m.message:String(m);u(()=>i(new Error(`Could not read the pasted authorization code (${g}). Restart sign-in and paste the full redirect URL.`)))},p=async(m,g)=>{let v=await n(m,l);if(!s){if(v){h(g);return}u(()=>i(fm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=Yk(g,r());if(v.kind==="success"){u(()=>o(new URLSearchParams({code:v.result.code,state:v.result.state})));return}let w=e.waitForManualCode();await p(v.params,w)}catch(v){f(v)}}).catch(g=>u(()=>i(g instanceof Error?g:new Error(String(g)))))};if(t.setErrorRetryHandler(m=>n(m,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(m=>{m&&u(()=>o(new URLSearchParams({code:m.code,state:m.state})))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function oE(t){let{serverName:e,state:r,pi:n,controller:o}=t,i=r.servers.get(e);if(!i)throw new Error(`Unknown MCP server "${e}"`);let s=i.config;if(s.type!=="http"&&s.type!=="sse")throw new Error(`MCP server "${e}" does not use OAuth authentication`);if(r.authenticating)throw new Error("Another MCP authentication is already in progress");r.authenticating=!0,r.authenticatingServerName=e;let a=++r.authenticationGeneration,c={authenticationGeneration:a,server:i,serverGeneration:r.serverGenerations.get(e)??0,installedConfigRevision:r.configRevisions.get(e)??0,desiredConfigRevision:r.configDesiredRevisions.get(e)??0,tokenStore:r.tokens,token:r.tokens.get(e),credentialRevision:r.credentialRevisions.get(e)},u=Ht(r,i),d;try{Sr(o.signal),d=await Xk(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Ud(l),Sr(o.signal),p=await qd(f),Sr(o.signal)}catch{throw Sr(o.signal),new Error(`OAuth discovery failed for MCP server "${e}". Verify that the endpoint supports OAuth and publishes discovery metadata.`)}let h=await c.tokenStore.captureAuthenticatedIdentityVersion(u);eE(r,e,c),Sr(o.signal);let m=await Hd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await ka(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);Sr(o.signal);let v=g,w=!1,b,x,S=(Pe,sn)=>{if(w)return x&&b&&Ea(Pe,b)?x.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Ea(Pe,v))return Promise.resolve(null);w=!0;let an=v;return b=an,sn(),pm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),x=Gd(an).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:Qk()}),lt)),x.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(Pe=>S(Pe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Qk()}),Sr(o.signal),await Gk(g.authUri.toString());let R=await gZ(d,o,()=>v.state,S),I=await Zd(R,v);eE(r,e,c);let ne=mZ(I),fe=await c.tokenStore.persistAuthenticated(e,ne,u,h);if(!rE(r,e,c))throw await hZ(r,e,c,u,ne,fe,n),new Error(tE);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),cn({state:r,name:e,revision:fe}),r.tokens.clearAuthRequired(e),it(r,e),await Ws([e],r,n),D(r.currentLoad?.latestPi??n,r),Se(r),pm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as $Z}from"@augmentcode/auggie-v2";import{resolveTargetFiles as yZ,SETTINGS_TARGET_ORDER as vZ,SettingsManager as _Z,scopeToSettingsTarget as SZ,settingsTargetToScope as hm}from"@augmentcode/auggie-v2";var wZ=vZ.map(t=>hm(t)),iE=(t,e)=>_Z.create(t,e);function sE(t,e){switch(e){case"global":return t.getGlobalSettings().mcpServers;case"project":return t.getProjectSettings().mcpServers;case"local":return t.getLocalSettings().mcpServers;case"managed":return t.getManagedSettings().mcpServers}}function aE(t,e,r){let n=iE(e,r);return wZ.filter(o=>sE(n,o)?.[t])}function cE(t){let e=t.map(n=>({target:SZ(n),path:n,exists:!0})),r=yZ({files:e});return"directTarget"in r?{scopes:t,direct:hm(r.directTarget)}:{scopes:r.files.map(n=>hm(n.target)),direct:null}}function bZ(t,e,r){let{servers:n}=Qn(e,r);return n.find(o=>o.name===t)?.disabled===!0}function uE(t,e,r,n,o){try{let i=iE(n,o);if(!sE(i,r)?.[t])return{ok:!1,error:`Server "${t}" not found in ${r} settings`};i.update(r,{path:["mcpServers",t,"disabled"],value:e})}catch(i){return{ok:!1,error:i instanceof Error?i.message:String(i)}}return{ok:!0,overridden:bZ(t,n,o)!==e}}function mm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function dE(t,e,r){return mm(t)}function lE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as RZ}from"@hermes/logger";var ym=RZ.child({prefix:"pi-mcp"}),fE="hermes:mcp:register-server-source";function CZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function pE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function PZ(t,e){return{...t,disabled:e}}function xZ(t){try{return t.getServers()}catch(e){return ym.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function kZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function hE(t,e){t.diagnostics.push({server:e,message:`plugin MCP server "${e}" is shadowed by an existing MCP server of the same name; skipping`,origin:"plugin"})}function EZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of xZ(t)){let s=e.servers.get(i.name),a=CZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=PZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&Q(e,i.name,s);let l=N(e,i.name),f=s!==void 0&&l?.owner.kind==="plugin"&&l.host===s,p=s!==void 0&&d===void 0&&n.has(i.name)&&pE(s.config,u);p&&(Q(e,i.name,s),Um({state:e,name:i.name,host:s}));let h=l?.owner.kind==="vfs";if(s&&!(f||p||h)){e.pluginServerNames.delete(i.name),e.pluginServerHosts.delete(i.name),hE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function TZ(t,e,r){let n=[];for(let o of e){if(t.has(o))continue;r.sessionPluginDisabledOverrides.delete(o);let i=N(r,o);if(i?.owner.kind!=="plugin")continue;let s=i.host;if(!s){xe({state:r,name:o,owner:i.owner,revision:i.revision});continue}let a=st({state:r,name:o,owner:i.owner,revision:i.revision,host:s});if(!a)continue;let c=ht(r,o,s.config.id,s.config);s.beginDisposal?.(),n.push(Promise.allSettled([c,s.dispose({strict:!0})]).then(u=>{let d=u.find(l=>l.status==="rejected");if(d)throw _e({state:r,name:o,retirement:a,result:{status:"failed",error:d.reason}}),d.reason;_e({state:r,name:o,retirement:a,result:{status:"retired"}}),xe({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function mE(t,e){hE(t,e)}function AZ(t){let{state:e,desired:r,previousNames:n,previousHosts:o}=t,i=[],s=new Map;for(let[a,c]of r){let u=e.servers.get(a),d=u?Q(e,a,u):N(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){mE(e,a);continue}u===o.get(a)&&n.has(a)&&pE(u.config,c)||(s.set(a,We(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function MZ(t,e,r){let n=r?.connect??Ve,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(h=>h.origin!=="plugin"),o&&kZ(o,e);let s=new Set(e.pluginServerNames);e.pluginServerHosts??=new Map;for(let[h,m]of e.pluginServerHosts){let g=e.servers.get(h);(g===void 0||g===m)&&Q(e,h,m)}let a=EZ(o,e,i,s);e.configDesiredRevisions??=new Map,e.configRevisions??=new Map;let c=new Map,u=new Set;for(let[h,m]of e.hostLeases)m.owner.kind==="plugin"&&(u.add(h),m.host&&c.set(h,m.host));await TZ(a,u,e);let{reservedRevisions:d,toConnect:l}=AZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;ym.info(`Plugin MCP source: connecting ${l.length} server(s)`);let f=()=>e.currentLoad?.latestPi??t,p=h=>{let m=d.get(h.name);if(m===void 0||e.configDesiredRevisions.get(h.name)!==m)return!1;let g=N(e,h.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||mE(e,h.name),v};try{await n(l,e,f(),p,d,"plugin");for(let h of l)p(h)}catch{}finally{e.pluginServerNames=new Set([...e.hostLeases].filter(([,h])=>h.owner.kind==="plugin").map(([h])=>h)),D(f(),e),Se(e)}}function gm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>MZ(t,e,r)).catch(i=>{ym.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function gE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?Q(o,r,s):N(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),gm(o.currentLoad?.latestPi??i,o,e))}function yE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,gm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,gm(e.currentLoad?.latestPi??t,e))})}}function IZ(t,e){let n=$Z.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function vE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(IZ(n,o).has(e))return{kind:"blocked",message:`Cannot toggle "${e}": server is managed and cannot be modified`};let i=r.servers.get(e);if(!i)return{kind:"blocked",message:mm(e)};if(rd(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=aE(e,n,o);if(s.length===0)return{kind:"blocked",message:dE(e,n,o)};let{scopes:a,direct:c}=cE(s);return{kind:"local",scopes:a,direct:c}}async function _E(t){let{server:e,disable:r,state:n,pi:o}=t,i=n.servers.get(e);if(!i)return;let s=n.hostLeases?.get(e)??(n.pluginServerHosts?.get(e)===i?Q(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await gE({name:e,disabled:r,state:n,pi:o});return}rd(n.mcpConfigOverride).has(e)&&n.sessionMcpConfigDisabledOverrides.set(e,r),i.config.registrySource!==void 0&&n.sessionRegistryDisabledOverrides.set(e,r);let a={...i.config,disabled:r};await Ve([a],n,o,void 0,void 0,s?.owner.kind),Se(n)}async function SE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=uE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await mk(e,o,i,s,a),Se(o),c.overridden?{notice:lE(e)}:{}}import{DynamicBorder as e2}from"@augmentcode/auggie-v2";import{Key as t2,matchesKey as r2,SearchableWindowedList as n2,SpinnerTimer as o2,truncateToWidth as Nu,wrapTextWithAnsi as i2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as OZ,scopeToSettingsTarget as zZ}from"@augmentcode/auggie-v2";import{truncateToWidth as NZ,visibleWidth as Wn,wrapTextWithAnsi as DZ}from"@earendil-works/pi-tui";var LZ=2,jZ=2,Au={name:"Name",source:"Source",status:"Status"};function vm(t){if(t.disabled)return{label:"Disabled",color:"muted"};switch(t.status){case"success":return{label:`${t.tools.length} tools available`,color:"success"};case"failed":return{label:"Failed",color:"error"};case"auth_required":return{label:"Auth required",color:"warning",hint:" Press Enter for options"};case"disabled":return{label:"Disabled",color:"muted"};default:return{label:"Initializing",color:"text"}}}function _m(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Sm(t,e){let r=e-Wn(t);return r>0?t+" ".repeat(r):t}function Mu(t){return t.reduce((e,r)=>Math.max(e,Wn(r)),0)}function Qo(t,e,r,n){let o=`${e}Width`,i=Math.min(Math.max(0,r-t[o]),n);return t[o]+=i,n-i}function wE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(LZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(jZ,Math.floor((o-i)/(i-1))),a=o-s*Math.max(0,i-1),c=["name","source","status"].slice(0,i),u={prefixWidth:n,gapWidth:s,nameWidth:0,sourceWidth:0,statusWidth:0};for(let g of c)a=Qo(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Wn(Au[w]))&&(a=Qo(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>_m(g)),l=t.map(g=>vm(g)),f=Math.max(Wn(Au.source),Mu(d)),p=Math.max(Wn(Au.status),Mu(l.map(g=>g.label))),h=Math.max(Wn(Au.name),Mu(t.map(g=>g.name))),m=Math.max(p,Mu(l.map(g=>g.label+(g.hint??""))));return a=Qo(u,"source",f,a),a=Qo(u,"status",p,a),a=Qo(u,"name",h,a),Qo(u,"status",m,a),u}function bE(t,e,r){if(e<=r)return{start:0,end:e};let n=Math.floor(r/2),o=Math.max(0,Math.min(t-n,e-r));return{start:o,end:o+r}}function ei(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>DZ(n,r).map(o=>Wn(o)<=r?o:NZ(o,r,"")))}function FZ(t,e){return Math.max(0,t-e)}function ti(t,e,r){return Math.max(0,Math.min(t,FZ(e,r)))}function RE(t,e,r){let n=ti(t,e,r),o=Math.min(e,n+r);return{start:n,end:o,aboveCount:n,belowCount:e-o,rangeLabel:`Rows ${n+1}-${o} of ${e}`}}function CE(t,e){return String(t+1).padStart(String(e).length," ")}function wm(t){return OZ(zZ(t))}import{Key as UZ,matchesKey as qZ}from"@earendil-works/pi-tui";function $u(t){if(t.source==="plugin"&&t.disabled)return t.canAuthenticate?["authenticate","toggle"]:["toggle"];let e=t.transport==="stdio"?["viewTools","viewLogs"]:["viewTools"];return t.canAuthenticate&&e.unshift("authenticate"),e.push("toggle","reconnect"),e}function PE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var xE=10,Vn=15;var HZ="k",GZ="j";function ri(t,e){return(t%e+e)%e}function ot(t,e){let r=t.findIndex(n=>n.name===e);return r>=0?r:0}function bm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===HZ?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===GZ?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:qZ(t,UZ.backspace)?{kind:"back"}:{kind:"ignore"}}function ZZ(t,e,r){if(e.kind==="filterChanged")return{state:{...t,filterQuery:e.query,selectedServer:r[0]?.name??null}};let n=r.length;if(n===0)return e.kind==="cancel"?{state:t,effect:{kind:"close"}}:{state:t};switch(e.kind){case"up":{let o=ri(ot(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ri(ot(r,t.selectedServer)+1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"confirm":{let o=r[ot(r,t.selectedServer)];return o?.status==="auth_required"&&o.canAuthenticate?{state:t,effect:{kind:"authenticate",server:o.name}}:{state:{...t,step:"serverActions",actionIndex:0}}}case"cancel":return{state:t,effect:{kind:"close"}};default:return{state:t}}}function BZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=$u(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ri(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ri(t.actionIndex+1,o.length)}};case"cancel":case"back":return{state:{...t,step:"serverList"}};case"confirm":{let i=o[t.actionIndex];return i==="viewTools"?{state:{...t,step:"viewTools",toolIndex:0}}:i==="viewLogs"?{state:{...t,step:"viewLogs",logScrollOffset:0}}:i==="authenticate"?{state:t,effect:{kind:"authenticate",server:n.name}}:i==="toggle"?{state:t,effect:{kind:"toggle",server:n.name,disable:!n.disabled}}:{state:t,effect:{kind:"reconnect",server:n.name}}}default:return{state:t}}}function WZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.tools.length??0;switch(e.kind){case"up":return{state:{...t,toolIndex:Math.max(0,t.toolIndex-1)}};case"down":return{state:{...t,toolIndex:Math.min(Math.max(0,n-1),t.toolIndex+1)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function VZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.logLines()??[],o=ei(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:ti(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:ti(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function KZ(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Iu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function JZ(t,e){let r=t.targetScopes.length;if(r===0)return{state:Iu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ri(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ri(t.targetIndex+1,r)}};case"cancel":case"back":return{state:Iu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Iu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Iu(t,"serverActions")}}default:return{state:t}}}function kE(t,e,r){switch(t.step){case"serverList":return ZZ(t,e,r.snapshots);case"serverActions":return BZ(t,e,r);case"viewTools":return WZ(t,e,r);case"viewLogs":return VZ(t,e,r);case"pasteAuthCode":return KZ(t,e);case"selectTarget":return JZ(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as YZ,wrapTextWithAnsi as on}from"@earendil-works/pi-tui";var Rm="\u2192 ",Ou=" ";function EE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function wr(t,e){return e>0?Ut(t,e,"\u2026"):""}function TE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=wE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?Sm(m,c.nameWidth):"",c.sourceWidth>0?Sm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=wr(Ou,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",wr("Name",c.nameWidth))),i.bold(i.fg("accent",wr("Source",c.sourceWidth))),i.bold(i.fg("accent",wr("Status",c.statusWidth))))];if(e.length===0)p.push(Ut(i.fg("muted","No MCP servers available"),a,"\u2026"));else if(o.total===0)p.push(Ut(i.fg("muted","No matching MCP servers"),a,"\u2026"));else for(let h of n){let m=h.name===t.selectedServer,g=vm(h),v=wr(g.label,c.statusWidth),w=c.statusWidth-YZ(v),b=g.hint?wr(g.hint,w):"",x=i.fg(g.color,v)+(b?i.fg("muted",b):""),S=wr(m?Rm:Ou,c.prefixWidth);p.push(d(m?i.fg("accent",S):S,EE(wr(h.name,c.nameWidth),m,i),EE(wr(_m(h),c.sourceWidth),m,i),x))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var XZ={authenticate:{label:"Authenticate",description:"Connect to this server"},viewTools:{label:"View tools",description:"See all tools provided by this server"},viewLogs:{label:"View logs",description:"View logs from this server"},reconnect:{label:"Reconnect",description:"Restart the server connection"},toggle:{label:"Disable",description:"Enable or disable this server"}};function QZ(t,e){if(t==="authenticate")return e.status==="auth_required"?{label:"Authenticate",description:"Connect to this server"}:{label:"Reauthenticate",description:"Refresh authentication"};if(t==="toggle"){let r=e.source!=="local";return e.disabled?r?{label:"Enable for this session",description:"Re-enable this server for the current session only"}:{label:"Enable",description:"Enable this server (saved to settings.json)"}:r?{label:"Disable for this session",description:"Disable this server for the current session only"}:{label:"Disable",description:"Disable this server (saved to settings.json)"}}return XZ[t]}function AE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return on(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=on(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...on(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=$u(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=QZ(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Rm:Ou)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function ME(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return on(r.fg("muted","No tools available."),o);if(i.disabled)return on(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return on(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=bE(t.toolIndex,s,Vn),u=[];for(let d=a;d<c;d++){let l=i.tools[d];if(!l)continue;let p=d===t.toolIndex?r.bold(r.fg("accent",l.name)):r.fg("text",l.name);u.push(Ut(r.fg("muted",`${CE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function $E(t,e,r,n){let o=Math.max(1,n),s=e[ot(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return on(r.fg("muted","No logs available yet."),o);let a=ei(s,o),c=a.length,u=RE(t.logScrollOffset,c,Vn),d=[];c>Vn&&d.push(Ut(r.fg("muted",u.rangeLabel),o,"\u2026")),u.aboveCount>0&&d.push(Ut(r.fg("dim",`\u2191 ${u.aboveCount} more rows`),o,"\u2026"));for(let l of a.slice(u.start,u.end))d.push(Ut(r.fg("text",l),o,""));return u.belowCount>0&&d.push(Ut(r.fg("dim",`\u2193 ${u.belowCount} more rows`),o,"\u2026")),d}function IE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)]?.name??"",s=[...on(r.fg("muted",`Save the toggle for "${i}" to which settings file?`),o),""];for(let[a,c]of t.targetScopes.entries()){let u=a===t.targetIndex,d=u?r.bold(r.fg("accent",wm(c))):r.fg("text",wm(c));s.push(Ut((u?Rm:Ou)+d,o,"\u2026"))}return s}var zu=3;function s2(t){return t.type==="stdio"?t.command:t.url}function a2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
|
|
143
|
+
</html>`}function Bk(t){return Zk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Tu(t,e){return Zk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var dZ="127.0.0.1",Kk="/callback",Wk=3e3,Vk=3010,lZ="Authentication successful. You can close this window.",Au={"Content-Type":"text/html; charset=utf-8"};function Jk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Yk(t,e){let r=t.trim();if(!r)throw new Error("No authorization code provided");let n;try{n=new URL(r).searchParams}catch{(r.includes("code=")||r.includes("error="))&&(n=new URLSearchParams(r))}if(!n)return{kind:"success",result:{code:r,state:e}};let o=n.get("state");if(n.has("error")){if(o!==e)throw new Error("OAuth state mismatch");return{kind:"error",params:n}}let i=n.get("code");if(!i)throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return{kind:"success",result:{code:i,state:o??e}}}function pm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function fZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Kk){e.writeHead(404,Au),e.end(Tu("Callback route not found."));return}let o=n.searchParams.get("code"),i=n.searchParams.get("state"),s=n.searchParams.get("error");if(s){let a=c=>{e.writeHead(400,Au),e.end(Tu("Authentication did not complete.",`Error: ${s}`));let u=pm(n.searchParams);c instanceof Error?u=c:c!==void 0&&(u=new Error(String(c))),r.onError(u)};r.onErrorRetry(n.searchParams).then(c=>{c?(e.writeHead(302,{Location:c}),e.end()):a()}).catch(c=>a(c));return}if(!o||!i){e.writeHead(400,Au),e.end(Tu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Au),e.end(Bk(lZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function pZ(t){for(let e=Wk;e<=Vk;e++)if(await new Promise(n=>{let o=()=>{t.removeListener("listening",i),n(!1)},i=()=>{t.removeListener("error",o),n(!0)};t.once("error",o),t.once("listening",i),t.listen(e,dZ)}))return e;throw new Error(`No free port in ${Wk}-${Vk} for the OAuth callback server`)}async function Xk(){let t=!1,e,r,n=new Promise((a,c)=>{e=u=>{t||(t=!0,a(u))},r=u=>{t||(t=!0,c(u))}}),o,i=uZ((a,c)=>{fZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await pZ(i);return{port:s,redirectUri:`http://localhost:${s}${Kk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var hm=hZ.child({prefix:"pi-mcp"}),mZ=300*1e3,tE="MCP authentication was superseded";function Qk(){return Jk()?"You appear to be on a remote machine. Open the URL in a local browser, then paste the final redirect URL or code below.":"Complete sign-in in your browser. If it doesn't open, paste the final redirect URL or code below."}function Sr(t){if(t.aborted)throw new Error("Authentication cancelled")}function rE(t,e,r){return t.authenticationGeneration===r.authenticationGeneration&&t.servers.get(e)===r.server&&(t.serverGenerations.get(e)??0)===r.serverGeneration&&(t.configRevisions.get(e)??0)===r.installedConfigRevision&&(t.configDesiredRevisions.get(e)??0)===r.desiredConfigRevision&&t.tokens===r.tokenStore&&t.tokens.get(e)===r.token&&nE(t.credentialRevisions.get(e),r.credentialRevision)}function nE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function eE(t,e,r){if(!rE(t,e,r))throw new Error(tE)}async function gZ(t,e,r,n,o,i,s){let a=t.servers.get(e),c=t.tokens,u=c.get(e),d=t.credentialRevisions.get(e);if(c!==r.tokenStore||!a||!u||!pt(r.server.config,a.config))return;let l=a.config,f=Ht(t,a);try{let p=await c.restoreAfterSupersededAuthentication(e,o,u,n,i,f);if(p===void 0||t.tokens!==c||t.servers.get(e)?.config!==l||c.get(e)!==u||!xr(Ht(t,a),f)||!nE(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;cn({state:t,name:e,revision:p}),D(t.currentLoad?.latestPi??s,t)}catch{hm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function yZ(t){let e=t.serverMetadata;if(!e.authorization_endpoint||!e.token_endpoint)throw new Error("Authorization server metadata is missing required endpoints");let r=t.client.client_secret,n=t.client.token_endpoint_auth_method;return{accessToken:t.accessToken,refreshToken:t.refreshToken,expiresAt:t.expiresAt,tokenType:t.tokenType,scope:t.scope,resource:t.resource,serverMetadata:{issuer:e.issuer,authorization_endpoint:e.authorization_endpoint,token_endpoint:e.token_endpoint},client:{client_id:t.client.client_id,...typeof r=="string"?{client_secret:r}:{},...typeof n=="string"?{token_endpoint_auth_method:n}:{}}}}function vZ(t,e,r,n){return new Promise((o,i)=>{let s=!1,a,c=()=>{a&&clearTimeout(a),e.signal.removeEventListener("abort",d),t.cancelWait()},u=m=>{s||(s=!0,c(),m())},d=()=>u(()=>i(new Error("Authentication cancelled"))),l=()=>{a&&clearTimeout(a),a=setTimeout(()=>u(()=>i(new Error("Authentication timed out"))),mZ)},f=m=>{let g=m instanceof Error?m.message:String(m);u(()=>i(new Error(`Could not read the pasted authorization code (${g}). Restart sign-in and paste the full redirect URL.`)))},p=async(m,g)=>{let v=await n(m,l);if(!s){if(v){h(g);return}u(()=>i(pm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=Yk(g,r());if(v.kind==="success"){u(()=>o(new URLSearchParams({code:v.result.code,state:v.result.state})));return}let b=e.waitForManualCode();await p(v.params,b)}catch(v){f(v)}}).catch(g=>u(()=>i(g instanceof Error?g:new Error(String(g)))))};if(t.setErrorRetryHandler(m=>n(m,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(m=>{m&&u(()=>o(new URLSearchParams({code:m.code,state:m.state})))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function oE(t){let{serverName:e,state:r,pi:n,controller:o}=t,i=r.servers.get(e);if(!i)throw new Error(`Unknown MCP server "${e}"`);let s=i.config;if(s.type!=="http"&&s.type!=="sse")throw new Error(`MCP server "${e}" does not use OAuth authentication`);if(r.authenticating)throw new Error("Another MCP authentication is already in progress");r.authenticating=!0,r.authenticatingServerName=e;let a=++r.authenticationGeneration,c={authenticationGeneration:a,server:i,serverGeneration:r.serverGenerations.get(e)??0,installedConfigRevision:r.configRevisions.get(e)??0,desiredConfigRevision:r.configDesiredRevisions.get(e)??0,tokenStore:r.tokens,token:r.tokens.get(e),credentialRevision:r.credentialRevisions.get(e)},u=Ht(r,i),d;try{Sr(o.signal),d=await Xk(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await qd(l),Sr(o.signal),p=await Hd(f),Sr(o.signal)}catch{throw Sr(o.signal),new Error(`OAuth discovery failed for MCP server "${e}". Verify that the endpoint supports OAuth and publishes discovery metadata.`)}let h=await c.tokenStore.captureAuthenticatedIdentityVersion(u);eE(r,e,c),Sr(o.signal);let m=await Gd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await Ea(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);Sr(o.signal);let v=g,b=!1,_,R,w=(Pe,sn)=>{if(b)return R&&_&&Ta(Pe,_)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Ta(Pe,v))return Promise.resolve(null);b=!0;let an=v;return _=an,sn(),hm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Zd(an).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:Qk()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(Pe=>w(Pe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Qk()}),Sr(o.signal),await Gk(g.authUri.toString());let C=await vZ(d,o,()=>v.state,w),I=await Bd(C,v);eE(r,e,c);let ne=yZ(I),pe=await c.tokenStore.persistAuthenticated(e,ne,u,h);if(!rE(r,e,c))throw await gZ(r,e,c,u,ne,pe,n),new Error(tE);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),cn({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),st(r,e),await Ws([e],r,n),D(r.currentLoad?.latestPi??n,r),Se(r),hm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as OZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as _Z,SETTINGS_TARGET_ORDER as SZ,SettingsManager as wZ,scopeToSettingsTarget as bZ,settingsTargetToScope as mm}from"@augmentcode/auggie-v2";var RZ=SZ.map(t=>mm(t)),iE=(t,e)=>wZ.create(t,e);function sE(t,e){switch(e){case"global":return t.getGlobalSettings().mcpServers;case"project":return t.getProjectSettings().mcpServers;case"local":return t.getLocalSettings().mcpServers;case"managed":return t.getManagedSettings().mcpServers}}function aE(t,e,r){let n=iE(e,r);return RZ.filter(o=>sE(n,o)?.[t])}function cE(t){let e=t.map(n=>({target:bZ(n),path:n,exists:!0})),r=_Z({files:e});return"directTarget"in r?{scopes:t,direct:mm(r.directTarget)}:{scopes:r.files.map(n=>mm(n.target)),direct:null}}function CZ(t,e,r){let{servers:n}=Qn(e,r);return n.find(o=>o.name===t)?.disabled===!0}function uE(t,e,r,n,o){try{let i=iE(n,o);if(!sE(i,r)?.[t])return{ok:!1,error:`Server "${t}" not found in ${r} settings`};i.update(r,{path:["mcpServers",t,"disabled"],value:e})}catch(i){return{ok:!1,error:i instanceof Error?i.message:String(i)}}return{ok:!0,overridden:CZ(t,n,o)!==e}}function gm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function dE(t,e,r){return gm(t)}function lE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as PZ}from"@hermes/logger";var vm=PZ.child({prefix:"pi-mcp"}),fE="hermes:mcp:register-server-source";function xZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function pE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function kZ(t,e){return{...t,disabled:e}}function EZ(t){try{return t.getServers()}catch(e){return vm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function TZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function hE(t,e){t.diagnostics.push({server:e,message:`plugin MCP server "${e}" is shadowed by an existing MCP server of the same name; skipping`,origin:"plugin"})}function AZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of EZ(t)){let s=e.servers.get(i.name),a=xZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=kZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&Q(e,i.name,s);let l=N(e,i.name),f=s!==void 0&&l?.owner.kind==="plugin"&&l.host===s,p=s!==void 0&&d===void 0&&n.has(i.name)&&pE(s.config,u);p&&(Q(e,i.name,s),qm({state:e,name:i.name,host:s}));let h=l?.owner.kind==="vfs";if(s&&!(f||p||h)){e.pluginServerNames.delete(i.name),e.pluginServerHosts.delete(i.name),hE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function MZ(t,e,r){let n=[];for(let o of e){if(t.has(o))continue;r.sessionPluginDisabledOverrides.delete(o);let i=N(r,o);if(i?.owner.kind!=="plugin")continue;let s=i.host;if(!s){xe({state:r,name:o,owner:i.owner,revision:i.revision});continue}let a=at({state:r,name:o,owner:i.owner,revision:i.revision,host:s});if(!a)continue;let c=ht(r,o,s.config.id,s.config);s.beginDisposal?.(),n.push(Promise.allSettled([c,s.dispose({strict:!0})]).then(u=>{let d=u.find(l=>l.status==="rejected");if(d)throw _e({state:r,name:o,retirement:a,result:{status:"failed",error:d.reason}}),d.reason;_e({state:r,name:o,retirement:a,result:{status:"retired"}}),xe({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function mE(t,e){hE(t,e)}function $Z(t){let{state:e,desired:r,previousNames:n,previousHosts:o}=t,i=[],s=new Map;for(let[a,c]of r){let u=e.servers.get(a),d=u?Q(e,a,u):N(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){mE(e,a);continue}u===o.get(a)&&n.has(a)&&pE(u.config,c)||(s.set(a,Ve(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function IZ(t,e,r){let n=r?.connect??Ke,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(h=>h.origin!=="plugin"),o&&TZ(o,e);let s=new Set(e.pluginServerNames);e.pluginServerHosts??=new Map;for(let[h,m]of e.pluginServerHosts){let g=e.servers.get(h);(g===void 0||g===m)&&Q(e,h,m)}let a=AZ(o,e,i,s);e.configDesiredRevisions??=new Map,e.configRevisions??=new Map;let c=new Map,u=new Set;for(let[h,m]of e.hostLeases)m.owner.kind==="plugin"&&(u.add(h),m.host&&c.set(h,m.host));await MZ(a,u,e);let{reservedRevisions:d,toConnect:l}=$Z({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;vm.info(`Plugin MCP source: connecting ${l.length} server(s)`);let f=()=>e.currentLoad?.latestPi??t,p=h=>{let m=d.get(h.name);if(m===void 0||e.configDesiredRevisions.get(h.name)!==m)return!1;let g=N(e,h.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||mE(e,h.name),v};try{await n(l,e,f(),p,d,"plugin");for(let h of l)p(h)}catch{}finally{e.pluginServerNames=new Set([...e.hostLeases].filter(([,h])=>h.owner.kind==="plugin").map(([h])=>h)),D(f(),e),Se(e)}}function ym(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>IZ(t,e,r)).catch(i=>{vm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function gE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?Q(o,r,s):N(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),ym(o.currentLoad?.latestPi??i,o,e))}function yE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,ym(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,ym(e.currentLoad?.latestPi??t,e))})}}function zZ(t,e){let n=OZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function vE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(zZ(n,o).has(e))return{kind:"blocked",message:`Cannot toggle "${e}": server is managed and cannot be modified`};let i=r.servers.get(e);if(!i)return{kind:"blocked",message:gm(e)};if(nd(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=aE(e,n,o);if(s.length===0)return{kind:"blocked",message:dE(e,n,o)};let{scopes:a,direct:c}=cE(s);return{kind:"local",scopes:a,direct:c}}async function _E(t){let{server:e,disable:r,state:n,pi:o}=t,i=n.servers.get(e);if(!i)return;let s=n.hostLeases?.get(e)??(n.pluginServerHosts?.get(e)===i?Q(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await gE({name:e,disabled:r,state:n,pi:o});return}nd(n.mcpConfigOverride).has(e)&&n.sessionMcpConfigDisabledOverrides.set(e,r),i.config.registrySource!==void 0&&n.sessionRegistryDisabledOverrides.set(e,r);let a={...i.config,disabled:r};await Ke([a],n,o,void 0,void 0,s?.owner.kind),Se(n)}async function SE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=uE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await mk(e,o,i,s,a),Se(o),c.overridden?{notice:lE(e)}:{}}import{DynamicBorder as r2}from"@augmentcode/auggie-v2";import{Key as n2,matchesKey as o2,SearchableWindowedList as i2,SpinnerTimer as s2,truncateToWidth as Du,wrapTextWithAnsi as a2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as NZ,scopeToSettingsTarget as DZ}from"@augmentcode/auggie-v2";import{truncateToWidth as LZ,visibleWidth as Wn,wrapTextWithAnsi as jZ}from"@earendil-works/pi-tui";var FZ=2,UZ=2,Mu={name:"Name",source:"Source",status:"Status"};function _m(t){if(t.disabled)return{label:"Disabled",color:"muted"};switch(t.status){case"success":return{label:`${t.tools.length} tools available`,color:"success"};case"failed":return{label:"Failed",color:"error"};case"auth_required":return{label:"Auth required",color:"warning",hint:" Press Enter for options"};case"disabled":return{label:"Disabled",color:"muted"};default:return{label:"Initializing",color:"text"}}}function Sm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function wm(t,e){let r=e-Wn(t);return r>0?t+" ".repeat(r):t}function $u(t){return t.reduce((e,r)=>Math.max(e,Wn(r)),0)}function Qo(t,e,r,n){let o=`${e}Width`,i=Math.min(Math.max(0,r-t[o]),n);return t[o]+=i,n-i}function wE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(FZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(UZ,Math.floor((o-i)/(i-1))),a=o-s*Math.max(0,i-1),c=["name","source","status"].slice(0,i),u={prefixWidth:n,gapWidth:s,nameWidth:0,sourceWidth:0,statusWidth:0};for(let g of c)a=Qo(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let b of c)if(!(g>=Wn(Mu[b]))&&(a=Qo(u,b,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Sm(g)),l=t.map(g=>_m(g)),f=Math.max(Wn(Mu.source),$u(d)),p=Math.max(Wn(Mu.status),$u(l.map(g=>g.label))),h=Math.max(Wn(Mu.name),$u(t.map(g=>g.name))),m=Math.max(p,$u(l.map(g=>g.label+(g.hint??""))));return a=Qo(u,"source",f,a),a=Qo(u,"status",p,a),a=Qo(u,"name",h,a),Qo(u,"status",m,a),u}function bE(t,e,r){if(e<=r)return{start:0,end:e};let n=Math.floor(r/2),o=Math.max(0,Math.min(t-n,e-r));return{start:o,end:o+r}}function ei(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>jZ(n,r).map(o=>Wn(o)<=r?o:LZ(o,r,"")))}function qZ(t,e){return Math.max(0,t-e)}function ti(t,e,r){return Math.max(0,Math.min(t,qZ(e,r)))}function RE(t,e,r){let n=ti(t,e,r),o=Math.min(e,n+r);return{start:n,end:o,aboveCount:n,belowCount:e-o,rangeLabel:`Rows ${n+1}-${o} of ${e}`}}function CE(t,e){return String(t+1).padStart(String(e).length," ")}function bm(t){return NZ(DZ(t))}import{Key as HZ,matchesKey as GZ}from"@earendil-works/pi-tui";function Iu(t){if(t.source==="plugin"&&t.disabled)return t.canAuthenticate?["authenticate","toggle"]:["toggle"];let e=t.transport==="stdio"?["viewTools","viewLogs"]:["viewTools"];return t.canAuthenticate&&e.unshift("authenticate"),e.push("toggle","reconnect"),e}function PE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var xE=10,Vn=15;var ZZ="k",BZ="j";function ri(t,e){return(t%e+e)%e}function it(t,e){let r=t.findIndex(n=>n.name===e);return r>=0?r:0}function Rm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===ZZ?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===BZ?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:GZ(t,HZ.backspace)?{kind:"back"}:{kind:"ignore"}}function WZ(t,e,r){if(e.kind==="filterChanged")return{state:{...t,filterQuery:e.query,selectedServer:r[0]?.name??null}};let n=r.length;if(n===0)return e.kind==="cancel"?{state:t,effect:{kind:"close"}}:{state:t};switch(e.kind){case"up":{let o=ri(it(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ri(it(r,t.selectedServer)+1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"confirm":{let o=r[it(r,t.selectedServer)];return o?.status==="auth_required"&&o.canAuthenticate?{state:t,effect:{kind:"authenticate",server:o.name}}:{state:{...t,step:"serverActions",actionIndex:0}}}case"cancel":return{state:t,effect:{kind:"close"}};default:return{state:t}}}function VZ(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Iu(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ri(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ri(t.actionIndex+1,o.length)}};case"cancel":case"back":return{state:{...t,step:"serverList"}};case"confirm":{let i=o[t.actionIndex];return i==="viewTools"?{state:{...t,step:"viewTools",toolIndex:0}}:i==="viewLogs"?{state:{...t,step:"viewLogs",logScrollOffset:0}}:i==="authenticate"?{state:t,effect:{kind:"authenticate",server:n.name}}:i==="toggle"?{state:t,effect:{kind:"toggle",server:n.name,disable:!n.disabled}}:{state:t,effect:{kind:"reconnect",server:n.name}}}default:return{state:t}}}function KZ(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)]?.tools.length??0;switch(e.kind){case"up":return{state:{...t,toolIndex:Math.max(0,t.toolIndex-1)}};case"down":return{state:{...t,toolIndex:Math.min(Math.max(0,n-1),t.toolIndex+1)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function JZ(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)]?.logLines()??[],o=ei(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:ti(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:ti(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function YZ(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Ou(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function XZ(t,e){let r=t.targetScopes.length;if(r===0)return{state:Ou(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ri(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ri(t.targetIndex+1,r)}};case"cancel":case"back":return{state:Ou(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Ou({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Ou(t,"serverActions")}}default:return{state:t}}}function kE(t,e,r){switch(t.step){case"serverList":return WZ(t,e,r.snapshots);case"serverActions":return VZ(t,e,r);case"viewTools":return KZ(t,e,r);case"viewLogs":return JZ(t,e,r);case"pasteAuthCode":return YZ(t,e);case"selectTarget":return XZ(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as QZ,wrapTextWithAnsi as on}from"@earendil-works/pi-tui";var Cm="\u2192 ",zu=" ";function EE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function wr(t,e){return e>0?Ut(t,e,"\u2026"):""}function TE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=wE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let b=[c.nameWidth>0?wm(m,c.nameWidth):"",c.sourceWidth>0?wm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(_=>_.length>0);return h+b.join(u)},l=wr(zu,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",wr("Name",c.nameWidth))),i.bold(i.fg("accent",wr("Source",c.sourceWidth))),i.bold(i.fg("accent",wr("Status",c.statusWidth))))];if(e.length===0)p.push(Ut(i.fg("muted","No MCP servers available"),a,"\u2026"));else if(o.total===0)p.push(Ut(i.fg("muted","No matching MCP servers"),a,"\u2026"));else for(let h of n){let m=h.name===t.selectedServer,g=_m(h),v=wr(g.label,c.statusWidth),b=c.statusWidth-QZ(v),_=g.hint?wr(g.hint,b):"",R=i.fg(g.color,v)+(_?i.fg("muted",_):""),w=wr(m?Cm:zu,c.prefixWidth);p.push(d(m?i.fg("accent",w):w,EE(wr(h.name,c.nameWidth),m,i),EE(wr(Sm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var e2={authenticate:{label:"Authenticate",description:"Connect to this server"},viewTools:{label:"View tools",description:"See all tools provided by this server"},viewLogs:{label:"View logs",description:"View logs from this server"},reconnect:{label:"Reconnect",description:"Restart the server connection"},toggle:{label:"Disable",description:"Enable or disable this server"}};function t2(t,e){if(t==="authenticate")return e.status==="auth_required"?{label:"Authenticate",description:"Connect to this server"}:{label:"Reauthenticate",description:"Refresh authentication"};if(t==="toggle"){let r=e.source!=="local";return e.disabled?r?{label:"Enable for this session",description:"Re-enable this server for the current session only"}:{label:"Enable",description:"Enable this server (saved to settings.json)"}:r?{label:"Disable for this session",description:"Disable this server for the current session only"}:{label:"Disable",description:"Disable this server (saved to settings.json)"}}return e2[t]}function AE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)];if(!i)return on(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=on(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...on(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Iu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=t2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Cm:zu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function ME(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)];if(!i)return on(r.fg("muted","No tools available."),o);if(i.disabled)return on(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return on(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=bE(t.toolIndex,s,Vn),u=[];for(let d=a;d<c;d++){let l=i.tools[d];if(!l)continue;let p=d===t.toolIndex?r.bold(r.fg("accent",l.name)):r.fg("text",l.name);u.push(Ut(r.fg("muted",`${CE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function $E(t,e,r,n){let o=Math.max(1,n),s=e[it(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return on(r.fg("muted","No logs available yet."),o);let a=ei(s,o),c=a.length,u=RE(t.logScrollOffset,c,Vn),d=[];c>Vn&&d.push(Ut(r.fg("muted",u.rangeLabel),o,"\u2026")),u.aboveCount>0&&d.push(Ut(r.fg("dim",`\u2191 ${u.aboveCount} more rows`),o,"\u2026"));for(let l of a.slice(u.start,u.end))d.push(Ut(r.fg("text",l),o,""));return u.belowCount>0&&d.push(Ut(r.fg("dim",`\u2193 ${u.belowCount} more rows`),o,"\u2026")),d}function IE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)]?.name??"",s=[...on(r.fg("muted",`Save the toggle for "${i}" to which settings file?`),o),""];for(let[a,c]of t.targetScopes.entries()){let u=a===t.targetIndex,d=u?r.bold(r.fg("accent",bm(c))):r.fg("text",bm(c));s.push(Ut((u?Cm:zu)+d,o,"\u2026"))}return s}var Nu=3;function c2(t){return t.type==="stdio"?t.command:t.url}function u2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
|
|
144
144
|
`).map(n=>n.trimEnd()).filter(n=>n.length>0):[]}return e.flatMap(r=>r.split(`
|
|
145
|
-
`)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function OE(t){return t.disabled?2:t.status==="auth_required"?0:1}function c2(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:Cr(r,t.pluginServerHosts,t.hostLeases),registrySource:r.config.registrySource,disabled:r.config.disabled===!0,canAuthenticate:r.config.type!=="stdio",tools:r.tools.map(n=>({name:n.name,disabled:!1})),connectionInfo:s2(r.config),logLines:()=>a2(r)});return e.sort((r,n)=>OE(r)-OE(n)),e}function u2(t,e){let r=e[ot(e,t.selectedServer)]?.name??"";switch(t.step){case"serverActions":return`MCP Servers \u203A ${r}`;case"viewTools":return`MCP Servers \u203A ${r} \u203A Tools`;case"viewLogs":return`MCP Servers \u203A ${r} \u203A Logs`;case"selectTarget":return`MCP Servers \u203A ${r} \u203A Settings file`;default:return"MCP Servers"}}function d2(t){switch(t){case"serverList":return"Type to filter \xB7 \u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Close";case"serverActions":case"selectTarget":return"\u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Back";default:return"\u2191\u2193 Navigate \xB7 Esc Back"}}function l2(t,e,r,n,o){switch(t.step){case"serverActions":return AE(t,e,n,o);case"viewTools":return ME(t,e,n,o);case"viewLogs":return $E(t,e,n,o);case"selectTarget":return IE(t,e,n,o);default:return TE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function f2(t,e,r,n,o){let i=Math.max(1,o),s=Nu(n.bold(n.fg("accent",u2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=zu?[...r.renderInput(i),""]:[],c=l2(t,e,r,n,i);return[s,"",...a,...c,"",Nu(n.fg("muted",d2(t.step)),i,"\u2026")]}function p2(t,e,r,n,o){let i=Math.max(1,o),s=n.bold(n.fg("accent",`MCP Servers \u203A ${t}`)),a=`${n.fg("accent",r)} ${n.fg("text",`${e} ${t}\u2026`)}`;return[Nu(s,i,"\u2026"),"",Nu(a,i,"\u2026")]}function h2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function m2(t,e,r){let n=s=>s.flatMap(a=>i2(a,Math.max(1,r))),o=e.bold(e.fg("accent",`MCP Servers \u203A ${t.server} \u203A Authenticate`));if(t.status==="error")return n([o,"",e.fg("error","Authentication failed"),e.fg("muted",t.error??"Unknown error"),"",e.fg("muted","Press any key to dismiss")]);let i=[o,"",e.fg("text","Opening your browser to sign in\u2026")];return t.url&&i.push(e.fg("accent",t.url)),t.instructions&&i.push(e.fg("muted",t.instructions)),i.push("",`${e.fg("text","Paste code or redirect URL: ")}${e.fg("accent",t.input)}`,"",e.fg("muted","Enter Submit \xB7 Esc Cancel")),n(i)}function g2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function zE(t){return t?"Disabling":"Enabling"}function NE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Cm=class{state=PE();config;border;serverList;busy=null;spinner;opDone;authenticating=null;authStatus="pending";authUrl;authInstructions;authError;authAbort;manualCode;queuedManualCodes=[];authInPaste=!1;authPasteBuffer="";authDone;currentWidth;_focused=!1;component=this;get focused(){return this._focused}set focused(e){this._focused=e,this.syncSearchFocus()}constructor(e){this.config=e,this.border=new e2(r=>e.theme.fg("border",r)),this.serverList=new n2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:xE})}get reconnectSettled(){return this.opDone}get authSettled(){return this.authDone}render(e){let r=Math.max(1,e);this.currentWidth=r,this.syncSearchFocus();let n;if(this.busy)n=p2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=m2({server:this.authenticating,status:this.authStatus,url:this.authUrl,instructions:this.authInstructions,input:this.state.authInput,error:this.authError},this.config.theme,r);else{let o=this.config.snapshots();this.syncServerList(o),this.clampLogScrollOffset(o,r),n=f2(this.state,o,this.serverList,this.config.theme,r)}return[...this.border.render(r),...n,...this.border.render(r)]}handleInput=e=>{this.dispatch(e)};invalidate(){}syncServerList(e){this.serverList.setItems(e);let r=this.state.selectedServer;r!==null&&this.serverList.selectIdentity(r)||(this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null})}isSearchAvailable(){return this.currentWidth===void 0||this.currentWidth>=zu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=zu&&this.state.step==="serverList"&&this.busy===null&&this.authenticating===null;this.serverList.setInputFocused(this._focused&&e)}clampLogScrollOffset(e,r){if(this.state.step!=="viewLogs")return;let n=e[ot(e,this.state.selectedServer)],o=ei(n?.logLines()??[],r).length,i=ti(this.state.logScrollOffset,o,Vn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=kE(this.state,e,{snapshots:r,windowSize:Vn,logViewportWidth:this.currentWidth??zu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=bm(e,this.config.keybindings,!n);if(o.kind==="up"||o.kind==="down"){o.kind==="up"?this.serverList.selectPrevious():this.serverList.selectNext(),this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null};return}if(o.kind==="confirm"||o.kind==="cancel"){this.applyAction(o,[...this.serverList.getMatchingItems()]);return}n&&this.serverList.handleInput(e)&&this.applyAction({kind:"filterChanged",query:this.serverList.getQuery()},[...this.serverList.getMatchingItems()])}dispatch(e){if(this.busy)return;if(this.authenticating){this.handleAuthInput(e);return}let r=this.config.snapshots();this.state.step==="serverList"?this.dispatchServerList(e,r):this.applyAction(bm(e,this.config.keybindings),r),this.syncSearchFocus(),this.config.tui.requestRender()}runEffect(e){switch(e.kind){case"close":this.config.done();return;case"reconnect":this.startOp(e.server,"Reconnecting",()=>this.config.reconnect(e.server));return;case"authenticate":this.startAuth(e.server);return;case"toggle":this.startToggle(e.server,e.disable);return;case"toggleWrite":this.startToggleWrite(e.server,e.disable,e.scope);return;default:return}}startToggle(e,r){if(this.busy||this.config.isReconnecting())return;let n=this.config.toggle.classify(e);if(n.kind==="blocked"){this.config.toggle.notify(n.message),this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender();return}if(n.kind==="session"){this.startOp(e,zE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(NE(e,o))}});return}if(n.direct){this.startToggleWrite(e,r,n.direct);return}this.state={...this.state,step:"selectTarget",targetScopes:n.scopes,targetIndex:0,pendingToggle:{server:e,disable:r}},this.config.tui.requestRender()}startToggleWrite(e,r,n){this.startOp(e,zE(r),async()=>{try{let{notice:o}=await this.config.toggle.applyLocal(e,r,n);o&&this.config.toggle.notify(o)}catch(o){this.config.toggle.notify(NE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new o2(()=>this.config.tui.requestRender()),this.opDone=n().finally(()=>{this.spinner?.stop(),this.spinner=void 0,this.busy=null,this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender()}))}startAuth(e){if(this.authenticating||this.config.isAuthenticating())return;this.authenticating=e,this.authStatus="pending",this.authUrl=void 0,this.authInstructions=void 0,this.authError=void 0,this.state={...this.state,step:"pasteAuthCode",authInput:""},this.authAbort=new AbortController,this.manualCode=void 0,this.queuedManualCodes.length=0;let r={onAuthUrl:n=>{this.authUrl=n.url,this.authInstructions=n.instructions,this.config.tui.requestRender()},waitForManualCode:()=>{if(this.authenticating!==e)return Promise.resolve(null);let n=this.queuedManualCodes.shift();return n!==void 0?Promise.resolve(n):(this.manualCode??=h2(),this.manualCode.promise)},signal:this.authAbort.signal};this.authDone=this.config.authenticate(e,r).then(()=>{this.authenticating===e&&this.exitAuth()}).catch(n=>{this.authenticating===e&&(this.authStatus="error",this.authError=n instanceof Error?n.message:String(n),this.config.tui.requestRender())})}handleAuthInput(e){if(this.authStatus==="error"){this.exitAuth("serverActions");return}if(this.config.keybindings.matches(e,"tui.select.cancel")){this.authAbort?.abort(),this.manualCode?.resolve(null),this.exitAuth();return}if(this.config.keybindings.matches(e,"tui.select.confirm")){let n=this.state.authInput.trim();if(n){let o=this.manualCode;this.manualCode=void 0,this.state={...this.state,authInput:""},o?o.resolve(n):this.queuedManualCodes.push(n),this.config.tui.requestRender()}return}if(r2(e,t2.backspace)){this.state={...this.state,authInput:this.state.authInput.slice(0,-1)},this.config.tui.requestRender();return}let r=this.consumeAuthPaste(e);r!==void 0&&g2(r)&&(this.state={...this.state,authInput:this.state.authInput+r},this.config.tui.requestRender())}consumeAuthPaste(e){let r=e;if(r.startsWith("\x1B[200~")&&(this.authInPaste=!0,this.authPasteBuffer="",r=r.slice(6)),!this.authInPaste)return r;this.authPasteBuffer+=r;let n=this.authPasteBuffer.indexOf("\x1B[201~");if(n===-1)return;let o=this.authPasteBuffer.slice(0,n),i=this.authPasteBuffer.slice(n+6);this.authInPaste=!1,this.authPasteBuffer="",o&&(this.state={...this.state,authInput:this.state.authInput+o},this.config.tui.requestRender()),i&&this.handleAuthInput(i)}exitAuth(e="serverList"){let r=this.authenticating,n=e==="serverActions"&&r!==null&&this.config.snapshots().some(o=>o.name===r)?"serverActions":"serverList";this.authenticating=null,this.authStatus="pending",this.authUrl=void 0,this.authInstructions=void 0,this.authError=void 0,this.authAbort=void 0,this.manualCode?.resolve(null),this.manualCode=void 0,this.queuedManualCodes.length=0,this.authInPaste=!1,this.authPasteBuffer="",this.state={...this.state,step:n,selectedServer:n==="serverActions"?r:this.state.selectedServer,actionIndex:0,authInput:""},this.config.tui.requestRender()}};async function DE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Cm({tui:i,theme:s,keybindings:a,snapshots:()=>c2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var xm=["list"];function LE(t){let{name:e,status:r}=t,n;switch(r){case"success":{let o=t.tools.length;n=o>0?` \u2705 ${e} (${o} tool${o===1?"":"s"})`:` \u2705 ${e} (ready)`;break}case"failed":n=` \u274C ${e} (failed)`;break;case"auth_required":n=` \u{1F510} ${e} (auth required)`;break;case"disabled":n=` \u26AA ${e} (disabled)`;break;default:n=` \u23F3 ${e} (initializing...)`;break}return r==="failed"&&t.lastError?`${n}
|
|
146
|
-
error: ${t.lastError}`:n}function
|
|
145
|
+
`)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function OE(t){return t.disabled?2:t.status==="auth_required"?0:1}function d2(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:Cr(r,t.pluginServerHosts,t.hostLeases),registrySource:r.config.registrySource,disabled:r.config.disabled===!0,canAuthenticate:r.config.type!=="stdio",tools:r.tools.map(n=>({name:n.name,disabled:!1})),connectionInfo:c2(r.config),logLines:()=>u2(r)});return e.sort((r,n)=>OE(r)-OE(n)),e}function l2(t,e){let r=e[it(e,t.selectedServer)]?.name??"";switch(t.step){case"serverActions":return`MCP Servers \u203A ${r}`;case"viewTools":return`MCP Servers \u203A ${r} \u203A Tools`;case"viewLogs":return`MCP Servers \u203A ${r} \u203A Logs`;case"selectTarget":return`MCP Servers \u203A ${r} \u203A Settings file`;default:return"MCP Servers"}}function f2(t){switch(t){case"serverList":return"Type to filter \xB7 \u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Close";case"serverActions":case"selectTarget":return"\u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Back";default:return"\u2191\u2193 Navigate \xB7 Esc Back"}}function p2(t,e,r,n,o){switch(t.step){case"serverActions":return AE(t,e,n,o);case"viewTools":return ME(t,e,n,o);case"viewLogs":return $E(t,e,n,o);case"selectTarget":return IE(t,e,n,o);default:return TE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function h2(t,e,r,n,o){let i=Math.max(1,o),s=Du(n.bold(n.fg("accent",l2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Nu?[...r.renderInput(i),""]:[],c=p2(t,e,r,n,i);return[s,"",...a,...c,"",Du(n.fg("muted",f2(t.step)),i,"\u2026")]}function m2(t,e,r,n,o){let i=Math.max(1,o),s=n.bold(n.fg("accent",`MCP Servers \u203A ${t}`)),a=`${n.fg("accent",r)} ${n.fg("text",`${e} ${t}\u2026`)}`;return[Du(s,i,"\u2026"),"",Du(a,i,"\u2026")]}function g2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function y2(t,e,r){let n=s=>s.flatMap(a=>a2(a,Math.max(1,r))),o=e.bold(e.fg("accent",`MCP Servers \u203A ${t.server} \u203A Authenticate`));if(t.status==="error")return n([o,"",e.fg("error","Authentication failed"),e.fg("muted",t.error??"Unknown error"),"",e.fg("muted","Press any key to dismiss")]);let i=[o,"",e.fg("text","Opening your browser to sign in\u2026")];return t.url&&i.push(e.fg("accent",t.url)),t.instructions&&i.push(e.fg("muted",t.instructions)),i.push("",`${e.fg("text","Paste code or redirect URL: ")}${e.fg("accent",t.input)}`,"",e.fg("muted","Enter Submit \xB7 Esc Cancel")),n(i)}function v2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function zE(t){return t?"Disabling":"Enabling"}function NE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Pm=class{state=PE();config;border;serverList;busy=null;spinner;opDone;authenticating=null;authStatus="pending";authUrl;authInstructions;authError;authAbort;manualCode;queuedManualCodes=[];authInPaste=!1;authPasteBuffer="";authDone;currentWidth;_focused=!1;component=this;get focused(){return this._focused}set focused(e){this._focused=e,this.syncSearchFocus()}constructor(e){this.config=e,this.border=new r2(r=>e.theme.fg("border",r)),this.serverList=new i2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:xE})}get reconnectSettled(){return this.opDone}get authSettled(){return this.authDone}render(e){let r=Math.max(1,e);this.currentWidth=r,this.syncSearchFocus();let n;if(this.busy)n=m2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=y2({server:this.authenticating,status:this.authStatus,url:this.authUrl,instructions:this.authInstructions,input:this.state.authInput,error:this.authError},this.config.theme,r);else{let o=this.config.snapshots();this.syncServerList(o),this.clampLogScrollOffset(o,r),n=h2(this.state,o,this.serverList,this.config.theme,r)}return[...this.border.render(r),...n,...this.border.render(r)]}handleInput=e=>{this.dispatch(e)};invalidate(){}syncServerList(e){this.serverList.setItems(e);let r=this.state.selectedServer;r!==null&&this.serverList.selectIdentity(r)||(this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null})}isSearchAvailable(){return this.currentWidth===void 0||this.currentWidth>=Nu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Nu&&this.state.step==="serverList"&&this.busy===null&&this.authenticating===null;this.serverList.setInputFocused(this._focused&&e)}clampLogScrollOffset(e,r){if(this.state.step!=="viewLogs")return;let n=e[it(e,this.state.selectedServer)],o=ei(n?.logLines()??[],r).length,i=ti(this.state.logScrollOffset,o,Vn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=kE(this.state,e,{snapshots:r,windowSize:Vn,logViewportWidth:this.currentWidth??Nu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=Rm(e,this.config.keybindings,!n);if(o.kind==="up"||o.kind==="down"){o.kind==="up"?this.serverList.selectPrevious():this.serverList.selectNext(),this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null};return}if(o.kind==="confirm"||o.kind==="cancel"){this.applyAction(o,[...this.serverList.getMatchingItems()]);return}n&&this.serverList.handleInput(e)&&this.applyAction({kind:"filterChanged",query:this.serverList.getQuery()},[...this.serverList.getMatchingItems()])}dispatch(e){if(this.busy)return;if(this.authenticating){this.handleAuthInput(e);return}let r=this.config.snapshots();this.state.step==="serverList"?this.dispatchServerList(e,r):this.applyAction(Rm(e,this.config.keybindings),r),this.syncSearchFocus(),this.config.tui.requestRender()}runEffect(e){switch(e.kind){case"close":this.config.done();return;case"reconnect":this.startOp(e.server,"Reconnecting",()=>this.config.reconnect(e.server));return;case"authenticate":this.startAuth(e.server);return;case"toggle":this.startToggle(e.server,e.disable);return;case"toggleWrite":this.startToggleWrite(e.server,e.disable,e.scope);return;default:return}}startToggle(e,r){if(this.busy||this.config.isReconnecting())return;let n=this.config.toggle.classify(e);if(n.kind==="blocked"){this.config.toggle.notify(n.message),this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender();return}if(n.kind==="session"){this.startOp(e,zE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(NE(e,o))}});return}if(n.direct){this.startToggleWrite(e,r,n.direct);return}this.state={...this.state,step:"selectTarget",targetScopes:n.scopes,targetIndex:0,pendingToggle:{server:e,disable:r}},this.config.tui.requestRender()}startToggleWrite(e,r,n){this.startOp(e,zE(r),async()=>{try{let{notice:o}=await this.config.toggle.applyLocal(e,r,n);o&&this.config.toggle.notify(o)}catch(o){this.config.toggle.notify(NE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new s2(()=>this.config.tui.requestRender()),this.opDone=n().finally(()=>{this.spinner?.stop(),this.spinner=void 0,this.busy=null,this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender()}))}startAuth(e){if(this.authenticating||this.config.isAuthenticating())return;this.authenticating=e,this.authStatus="pending",this.authUrl=void 0,this.authInstructions=void 0,this.authError=void 0,this.state={...this.state,step:"pasteAuthCode",authInput:""},this.authAbort=new AbortController,this.manualCode=void 0,this.queuedManualCodes.length=0;let r={onAuthUrl:n=>{this.authUrl=n.url,this.authInstructions=n.instructions,this.config.tui.requestRender()},waitForManualCode:()=>{if(this.authenticating!==e)return Promise.resolve(null);let n=this.queuedManualCodes.shift();return n!==void 0?Promise.resolve(n):(this.manualCode??=g2(),this.manualCode.promise)},signal:this.authAbort.signal};this.authDone=this.config.authenticate(e,r).then(()=>{this.authenticating===e&&this.exitAuth()}).catch(n=>{this.authenticating===e&&(this.authStatus="error",this.authError=n instanceof Error?n.message:String(n),this.config.tui.requestRender())})}handleAuthInput(e){if(this.authStatus==="error"){this.exitAuth("serverActions");return}if(this.config.keybindings.matches(e,"tui.select.cancel")){this.authAbort?.abort(),this.manualCode?.resolve(null),this.exitAuth();return}if(this.config.keybindings.matches(e,"tui.select.confirm")){let n=this.state.authInput.trim();if(n){let o=this.manualCode;this.manualCode=void 0,this.state={...this.state,authInput:""},o?o.resolve(n):this.queuedManualCodes.push(n),this.config.tui.requestRender()}return}if(o2(e,n2.backspace)){this.state={...this.state,authInput:this.state.authInput.slice(0,-1)},this.config.tui.requestRender();return}let r=this.consumeAuthPaste(e);r!==void 0&&v2(r)&&(this.state={...this.state,authInput:this.state.authInput+r},this.config.tui.requestRender())}consumeAuthPaste(e){let r=e;if(r.startsWith("\x1B[200~")&&(this.authInPaste=!0,this.authPasteBuffer="",r=r.slice(6)),!this.authInPaste)return r;this.authPasteBuffer+=r;let n=this.authPasteBuffer.indexOf("\x1B[201~");if(n===-1)return;let o=this.authPasteBuffer.slice(0,n),i=this.authPasteBuffer.slice(n+6);this.authInPaste=!1,this.authPasteBuffer="",o&&(this.state={...this.state,authInput:this.state.authInput+o},this.config.tui.requestRender()),i&&this.handleAuthInput(i)}exitAuth(e="serverList"){let r=this.authenticating,n=e==="serverActions"&&r!==null&&this.config.snapshots().some(o=>o.name===r)?"serverActions":"serverList";this.authenticating=null,this.authStatus="pending",this.authUrl=void 0,this.authInstructions=void 0,this.authError=void 0,this.authAbort=void 0,this.manualCode?.resolve(null),this.manualCode=void 0,this.queuedManualCodes.length=0,this.authInPaste=!1,this.authPasteBuffer="",this.state={...this.state,step:n,selectedServer:n==="serverActions"?r:this.state.selectedServer,actionIndex:0,authInput:""},this.config.tui.requestRender()}};async function DE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Pm({tui:i,theme:s,keybindings:a,snapshots:()=>d2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var km=["list"];function LE(t){let{name:e,status:r}=t,n;switch(r){case"success":{let o=t.tools.length;n=o>0?` \u2705 ${e} (${o} tool${o===1?"":"s"})`:` \u2705 ${e} (ready)`;break}case"failed":n=` \u274C ${e} (failed)`;break;case"auth_required":n=` \u{1F510} ${e} (auth required)`;break;case"disabled":n=` \u26AA ${e} (disabled)`;break;default:n=` \u23F3 ${e} (initializing...)`;break}return r==="failed"&&t.lastError?`${n}
|
|
146
|
+
error: ${t.lastError}`:n}function _2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var S2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function xm(t,e){return e.length>0?[t,...e]:null}function w2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[xm("MCP Server Status:",e.map(LE)),xm("Plugin MCP servers:",r.map(LE)),xm("Diagnostics:",t.diagnostics.map(_2))];return t.servers.size===0&&n.unshift([S2]),n.filter(o=>o!==null).map(o=>o.join(`
|
|
147
147
|
`)).join(`
|
|
148
148
|
|
|
149
|
-
`)}function S2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(xm.includes(e))return e}async function w2(t,e,r){if(e.servers.size===0){t.ui.notify("MCP servers are not available","warning");return}if(e.reconnecting){t.ui.notify("MCP servers are already restarting...","warning");return}t.ui.notify("Restarting MCP servers...","info");let n=Ws([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function jE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return xm.filter(o=>o.startsWith(n)).map(o=>({value:o,label:o}))},handler:async(r,n)=>{if(r.trim().length===0&&n.mode==="interactive"&&n.hasUI){await DE(n,e,s=>Ws([s],e,t),{classify:s=>vE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>_E({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>SE({server:s,disable:a,scope:c,state:e,pi:t,cwd:n.cwd,agentDir:n.agentDir}),notify:s=>n.ui.notify(s,"info")},(s,a)=>oE({serverName:s,state:e,pi:t,controller:a}));return}let i=S2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${xm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(_2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await w2(n,e,t)}})}import{logger as b2}from"@hermes/logger";var FE=b2.child({prefix:"pi-mcp"}),km="augment:feature-flags";function R2(t){if(!t||typeof t!="object")return;let e=t;if(!(!e.flags||typeof e.flags!="object")&&!(e.errorStatus!==void 0&&typeof e.errorStatus!="string"))return t}function UE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(km,r=>{let n=R2(r);if(n===void 0){FE.warn(`${km} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,FE.debug(`Received feature-flag snapshot via ${km} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as C2}from"@hermes/logger";var Ks=C2.child({prefix:"pi-mcp"}),qE=300*1e3,Em=600*1e3;function P2(t){if(!t.shouldProactivelyRefreshTokens)return;let e=Date.now();for(let r of t.servers.values()){let{config:n}=r;if(n.type!=="http"&&n.type!=="sse"||n.disabled||!r.hasRefreshEligibleOAuthCredential())continue;let o=t.tokens.get(r.name);o&&o.expiresAt!==void 0&&(_i(o,e)||o.expiresAt>e+Em||(Ks.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Em}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Ks.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Ks.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function HE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{P2(t)},qE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Ks.debug(`Started background MCP OAuth refresh loop (interval ${qE}ms, buffer ${Em}ms)`)}function GE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Ks.debug("Stopped background MCP OAuth refresh loop"))}import{logger as x2}from"@hermes/logger";var xt=x2.child({prefix:"pi-mcp"});function k2(t,e,r){t.dynamicallyAddedConfigIds.add(e),t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.sessionRemovedConfigIds.delete(e);for(let n of r)n.id!==void 0&&(t.registryConfigNamesById.set(n.id,n.name),t.registryCredentialConfigsById.set(n.id,{...n}))}function nr(t){Ke({state:t.state,domain:at(t.configId),epoch:t.intentEpoch})}function E2(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);(o.owner.kind==="local"||o.owner.kind==="registry")&&e.add(r)}for(let[r,n]of t.hostLeases)(n.owner.kind==="local"||n.owner.kind==="registry")&&e.add(r);return e}function ZE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function BE(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),xt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Js(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;nr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(xt.warn(s),!o()){if(r.diagnostics.push({message:s,origin:"registry"}),!i()){r.failedAddConfigIds.add(n);return}r.dynamicallyAddedConfigIds.add(n),r.sessionRemovedConfigIds.delete(n)}}function T2(t,e){return e.flatMap(r=>mu(t,r)?[r.config]:[])}function A2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function M2(t,e){let r=A2(e);if(r){if(Js(t,r.error),r.error instanceof kt)throw r.error;return}let n=T2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){k2(t.state,t.configId,n);return}!t.superseded()&&e.some(o=>o.status==="collision")&&(t.state.failedAddConfigIds.add(t.configId),t.state.nameCollisionAddConfigIds.add(t.configId))}function WE(t,e){try{M2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function $2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t,s=r.servers.get(e.name);if(!s)return!1;let a=Q(r,e.name,s);if(a.owner.kind==="plugin"||a.owner.kind==="vfs")return!1;if(i())return xt.info(`Live MCP add-server: embedded config id ${n} resolves to already-connected server "${e.name}"; no-op`),!0;let c=`Live MCP add-server: embedded config id ${n} collides on display name "${e.name}" with an already-connected server; cannot add a second server sharing that name`;return xt.warn(c),o()||(r.registryConfigNamesById.set(n,e.name),r.diagnostics.push({message:c,origin:"registry"}),r.failedAddConfigIds.add(n),r.nameCollisionAddConfigIds.add(n)),!0}async function I2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await li(t.state,t.configId),t.superseded()){nr(t);return}if($2(t,e)){nr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){nr(t);return}}catch(r){throw Js(t,r),r}xt.info(`Live MCP add-server: connecting embedded config id ${t.configId} (no registry refetch)`);try{let r=await t.connect([e],t.state,t.activePi,t.sourceOwnership);WE(t,r??[])}catch(r){if(Js(t,r),r instanceof kt)throw r}}async function O2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){nr(t),xt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){BE(r,e),xt.info(`Live MCP add-server: config id ${n} resolved to no new server (already connected, not opted in, or unknown id)`),i()||r.failedAddConfigIds.add(n),nr(t);return}if(await li(r,n),o()){nr(t);return}try{if((await Promise.all(e.servers.map(c=>Ar({state:r,config:c,pi:t.activePi})))).some(c=>!c)){nr(t);return}}catch(a){throw Js(t,a),a}xt.info(`Live MCP add-server: connecting ${e.servers.length} server(s) for config id ${n}`);let s=await t.connect(e.servers,r,t.activePi,t.sourceOwnership);if(o()){nr(t);return}BE(r,e),WE(t,s??[])}function z2(t,e){if(typeof e=="string")return Pk(e,t.workspaceRoot??process.cwd())}function N2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function VE(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return xt.warn("augment:mcp-add-server payload missing configId"),Promise.resolve();let a=z2(r,i?.embeddedConfig);if(N2(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return xt.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!eo({state:r,configId:s,generation:i?.attachmentGeneration}))return xt.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=na({state:r,domain:at(s),forceNew:!0}),u=E2(r),d=r.currentLoad?.latestPi??e,l=r.registryGeneration;r.liveEditGenerations??=new Map;let f=(r.liveEditGenerations.get(s)??0)+1;r.liveEditGenerations.set(s,f);let p=()=>r.registryGeneration!==l||r.liveEditGenerations.get(s)!==f,h={state:r,configId:s,activePi:d,connect:o?.connect??Ve,report:o?.report??D,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>ZE(r,s)},m;if(a)m=I2(h,a);else{let g=r.credentials;g?m=(o?.discover??Ru)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>O2(h,w)).catch(w=>{if(!(w instanceof kt)){Js(h,w);return}throw w}):(xt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),nr(h),m=Promise.resolve())}return aa({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>ZE(r,s)})}import{logger as D2}from"@hermes/logger";var Du=D2.child({prefix:"pi-mcp"}),KE=3,JE=6e4,L2=1e3,j2=8e3;function Tm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??en,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??D,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Du.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=tn({state:r,target:d});if(!l||r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,h=N(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<JE?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>KE)return Du.warn(`augment:mcp-restart-server: ${f} exceeded ${KE} restarts within ${JE}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(L2*2**(v-1),j2);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||N(r,f)!==h||tn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Du.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,w)}).catch(S=>{let R=`Live MCP restart-server failed for ${f}: ${S instanceof Error?S.message:String(S)}`;Du.warn(R),r.diagnostics.push({server:f,message:R})}).then(()=>{c(w,r)})}import{logger as F2}from"@hermes/logger";var Ys=F2.child({prefix:"pi-mcp"}),U2=/^\d+$/,Am=1,YE="AUGMENT_ACTIVE_SPACE_ID",q2="augment-mcp-access-token-";function Lu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function XE(t,e){return e?.["augment:encoding"]!=="base64"?t:/^[A-Za-z0-9+/]*={0,2}$/.test(t)&&t.length%4===0?Buffer.from(t,"base64").toString("utf-8"):t}var ju=class{apiKey;apiUrl;userAgent;fetchImpl;timeoutMs;cache=new Map;inflight=new Map;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.userAgent=e.userAgent,this.fetchImpl=r,this.timeoutMs=n??pd}_headers(){return{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",...this.userAgent?{"User-Agent":this.userAgent}:{}}}lookupBody(e){let r={name:e};return!e.startsWith(q2)&&Object.hasOwn(process.env,YE)&&(r.active_space_id=process.env[YE]??""),r}getSecret(e){let r=Lu(e),n=this.inflight.get(r);if(n)return n;let o=this._resolve(r).finally(()=>{this.inflight.delete(r)});return this.inflight.set(r,o),o}upsertUserSecret(e,r,n){return hn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Lu(e),s=(await this._callUpsert({name:o,value:r,scope:Am,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!U2.test(s))throw new Error("user secret upsert response contained an invalid persisted version");let a=BigInt(s).toString();return this.cache.set(o,r),Ys.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Lu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Am}),Ys.debug(`Deleted user secret "${r}"`)}async _callUpsert(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/upsert`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}return await n.json()}async _callDelete(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/delete`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=Lu(e);try{let n=await hn(()=>this._callApi("/mcp-secrets/get",this.lookupBody(r))),o=n.secret?.value,i=n.secret?.version;if(o===void 0||i===void 0)return;let s=n.secret?.scope===Am||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:XE(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof mt&&n.statusCode===404)return;throw n}}async _resolve(e){let r=await this._tryGet("/mcp-secrets/get",this.lookupBody(e),e);if(r.value!==void 0)return this.cache.set(e,r.value),r.value;if(r.errored){let n=this.cache.get(e);return n!==void 0&&Ys.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await hn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:XE(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return Ys.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return Ys.debug(`Secret "${n}" lookup via ${e} failed: ${i}`),{errored:!0}}}async _callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:this._headers(),body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}};function Mm(t){return{latestPi:t}}import{logger as H2}from"@hermes/logger";var ni=H2.child({prefix:"pi-mcp"});async function G2(t){let e=[];for(let[r,n]of t.servers){let o=Q(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=st({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;We(t,r);let s=ht(t,r,n.config.id,n.config);n.beginDisposal?.(),e.push(Promise.allSettled([s,n.dispose({strict:!0})]).then(a=>{let c=a.find(u=>u.status==="rejected");if(c)throw _e({state:t,name:r,retirement:i,result:{status:"failed",error:c.reason}}),c.reason;_e({state:t,name:r,retirement:i,result:{status:"retired"}}),xe({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function Z2(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),ni.warn(r.message))}function B2(t){let{state:e,name:r,stored:n,higherPriorityNames:o,blockedNames:i,workspaceRoot:s}=t;if(o.has(r)){i.add(r);let a=`VFS MCP server "${r}" ignored: a higher-priority server with the same name takes precedence`;e.diagnostics.push({server:r,message:a,origin:"vfs"}),ni.warn(a);return}try{let a=Xn(r,n);return{...a.type==="stdio"?Zt(a,s):Gt(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof Et?a.message:`Failed to normalize VFS MCP server "${r}": ${a instanceof Error?a.message:String(a)}`;e.diagnostics.push({server:r,message:c,origin:"vfs"}),ni.warn(c);return}}function W2(t,e){let r=new Set;for(let[s,a]of t.servers){let c=Q(t,s,a);c.owner.kind!=="vfs"&&c.host===a&&r.add(s)}for(let[s,a]of t.hostLeases)a.owner.kind!=="vfs"&&r.add(s);let n=t.workspaceRoot??process.cwd(),o=[],i=new Set;for(let[s,a]of Object.entries(e.servers??{})){if(a===null)continue;let c=B2({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function V2(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function QE(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.connect??Ve,s=n;if(!s||typeof s!="object"||Array.isArray(s))return ni.warn("augment:mcp-vfs-servers payload is not an object"),Promise.resolve();let a=typeof s.signature=="string"?s.signature:void 0;if(a!==void 0&&a===r.lastSuccessfulVfsMcpSignature&&V2(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=G2(r);return r.diagnostics=r.diagnostics.filter(l=>l.origin!=="vfs"),r.lastSuccessfulVfsMcpSignature=void 0,r.blockedVfsMcpNames.clear(),d.then(()=>{if(r.vfsGeneration!==c)return!1;Z2(r,s.diagnostics);let{servers:l,blockedNames:f}=W2(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(ni.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let h=p?.find(m=>m.status==="failed"||m.status==="unavailable");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));return l.every(m=>(p??[]).some(g=>g.config===m&&mu(r,g)))}))}).then(l=>{l&&a!==void 0&&r.vfsGeneration===c&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=u)}).catch(l=>{let f=`VFS MCP overlay connect failed: ${l instanceof Error?l.message:String(l)}`;ni.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var Me=K2.child({prefix:"pi-mcp"}),oT="augment:mcp-oauth-credentials",eT="augment:mcp-header-secrets",tT="augment:mcp-header-secret-failures",$m="augment:mcp-oauth-failures",rT="augment:credentials",J2="augment:mcp-config-ids",nT="augment:mcp-configs",Y2="augment:mcp-vfs-servers",X2="augment:mcp-add-server",Q2="augment:mcp-restart-server",e4="augment:mcp-remove-server";function t4(t){if(!t.secretsClient||t.tokens instanceof gi)return;let e=t.tokens;t.tokens=new gi(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),Me.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function r4(t){if(!t||typeof t!="object"){Me.warn(`${oT} payload is not an object`);return}let e=t,r=e.suppressReconnect===!0&&typeof e.credentials=="object"&&e.credentials!==null&&!Array.isArray(e.credentials);return{credentials:r?e.credentials:t,restart:r&&e.restart&&typeof e.restart=="object"?e.restart:void 0,suppressReconnect:r,targetConfigId:r&&typeof e.targetConfigId=="string"?e.targetConfigId:void 0}}function Im(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=rn(n),i=tn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&iT({state:t,name:r,revision:o})&&!sT({state:t,revision:o})&&_r({store:t.tokens,serverName:r,proto:n,options:{acceptedRevisions:t.oauthCredentialRevisions,acceptedDomains:t.oauthCredentialDomains,expectedDomains:t.expectedCredentialDomains,equalRevisionRebindDomains:t.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}}).decision!=="reject")return!0;let s="MCP restart credential was rejected; keeping the existing host";return Me.warn(s),t.diagnostics.push({server:r,message:s}),!1}function n4(t){let{pi:e,state:r}=t,{payload:n}=t,o=r.mcpConnectionEpoch;if(Object.entries(n.credentials).some(([c,u])=>r.targetMaterialStore?.has(c)||ve(u)&&Object.hasOwn(u,"target_material"))||n.targetConfigId&&r.targetMaterialStore?.has(n.targetConfigId))return;if(n.restart){let c=Object.keys(n.credentials);if(typeof n.restart.serverName!="string"||typeof n.restart.requestId!="string"||c.length!==1){Me.warn("MCP restart credentials must contain exactly the target entry");return}let u=tn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){Me.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){_k({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Im(r,n))return;let i=Object.keys(n.credentials).map(c=>({name:c,server:r.servers.get(c),lease:N(r,c)})),s=new Set;for(let c of Object.keys(n.credentials)){let u=r.servers.get(c)?.getRefreshInFlight?.();u&&s.add(u)}let a=()=>{if(r.mcpConnectionEpoch!==o||i.some(({name:d,server:l,lease:f})=>r.servers.get(d)!==l||N(r,d)!==f)||n.restart&&!Im(r,n))return;let c=c4({pi:e,state:r,credentials:n.credentials,suppressReconnect:n.suppressReconnect,requireEqualMaterial:n.restart!==void 0}),{restart:u}=n;if(!(typeof u?.serverName!="string"||typeof u.requestId!="string")){if(c.rejected.length===0&&c.applied.length+c.equal.length===1&&(c.applied.includes(u.serverName)||c.equal.includes(u.serverName))){Tm({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&N(r,d)===f)&&Im(r,n),data:{serverName:u.serverName,requestId:u.requestId}});return}if(Object.hasOwn(n.credentials,u.serverName)&&!c.equal.includes(u.serverName)){let d="MCP restart credential was rejected; keeping the existing host";Me.warn(d),r.diagnostics.push({server:u.serverName,message:d})}}};if(s.size===0){a();return}Promise.allSettled(s).then(a)}function o4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(oT,r=>{let n=r4(r);n&&n4({pi:t,state:e,payload:n})}))}function iT(t){let{state:e,name:r,revision:n}=t,o=un(n);if(e.pendingRegistryCredentialDomains.has(o)&&e.registryCredentialIntents.has(o))return!1;let i=e.expectedCredentialDomains.get(r),s=e.oauthCredentialDomains.get(r),a=e.servers.get(r),c=a?.config.id,u=a?.config.registrySource!==void 0&&c!==void 0&&at(c)===o;return n.ownerDomain!==void 0?i?.kind==="domain"?i.domain===o:u:i===void 0&&s===void 0?u:i?.kind==="domain"&&(i.domain===o||ct(n.domain))||s===n.domain}function sT(t){let{state:e,revision:r}=t,n=un(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function i4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=rn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(sT({state:e,revision:a})){rg({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(iT({state:e,name:i,revision:a})){o[i]=s;continue}eg({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function s4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=rn(i);s===void 0?(e.credentialRevisions.delete(o),e.hostedCredentialOwnership.delete(o)):(e.credentialRevisions.set(o,s),e.hostedCredentialOwnership.set(o,{...s,accessTokenOnly:i?.refresh_token===void 0})),e.statusFailureCategories.delete(o),e.authRefreshNeededReportKeys.delete(o),e.tokens.clearAuthRequired(o)}}function a4(t){let{pi:e,state:r,seeded:n,suppressReconnect:o}=t;if(o)return;let i=r.currentLoad?.latestPi??e;for(let s of n){let a=r.servers.get(s),c=r.expectedCredentialDomains.get(s),u=N(r,s),d=c?.kind!=="domain"||u?.owner.kind==="registry"&&u.owner.identity===c.domain;a&&d&&a.config.type!=="stdio"&&a.config.auth==="oauth"&&en(s,r,i).catch(()=>{}).finally(()=>{D(i,r),Se(r)})}}function c4(t){let{pi:e,state:r,credentials:n,suppressReconnect:o}=t;r.oauthCredentialRevisions??=new Map,r.oauthCredentialDomains??=new Map,r.credentialRevisions??=new Map,r.expectedCredentialDomains??=new Map;let i=i4({state:r,credentials:n,suppressReconnect:o}),s={acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:t.requireEqualMaterial};Object.entries(i).some(([u,d])=>{let{decision:l}=_r({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=yu(r.tokens,i,s);return s4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(Me.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),a4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function u4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(eT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${eT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);jy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(tT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${tT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Uy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on($m,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${$m} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){Me.warn(`${$m} entries is not an object`);return}Dm(e,n.entries)}))}function d4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(rT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){Me.warn(`${rT} payload missing apiKey or apiUrl`);return}e.credentials={apiKey:n.apiKey,apiUrl:n.apiUrl,...typeof n.userAgent=="string"?{userAgent:n.userAgent}:{},...typeof n.userId=="string"?{userId:n.userId}:{}},e.secretsClient=new ju(e.credentials),t4(e)}),t.events.on(J2,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Su(e.currentLoad?.latestPi??t,e),Cu({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(n=>{Me.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;Se(e),Jo(n,e)})}))}function l4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(nT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){Me.warn(`${nT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Xo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{Me.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}Me.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function f4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(Y2,r=>{QE({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e),Se(e)})}))}function p4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(X2,r=>{let n=()=>VE({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(o=>{Me.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Jo(o,e)})}))}function h4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(Q2,r=>{let n=()=>Tm({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).then(()=>{Se(e)})}))}function m4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(e4,r=>{let n=()=>Pu({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).catch(o=>{Me.warn(`Live MCP remove-server did not retire durably: ${o instanceof Error?o.message:String(o)}`)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Jo(o,e)})}))}function Eee(t){return Ly(t)}var aT=t=>{let e=ee();e.currentLoad=Mm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;jE(t,e),Hk(t,e),o4(t,e),u4(t,e),d4(t,e),l4(t,e),f4(t,e),p4(t,e),h4(t,e),m4(t,e),UE(t,e),bk(t,e),Su(t,e),t.on("session_start",(n,o)=>{e.currentLoad=Mm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;if(e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,HE(e),e.connectStarted)Ir(e)?(ir(t),la(t)):yg(t,e),Se(e);else{e.connectStarted=!0,fi()&&ir(t);let{servers:s,diagnostics:a}=Qn(o.cwd,o.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let c of a)e.diagnostics.push(c),Me.warn(c.message);Ve(s,e,t).then(()=>hk(e)).catch(()=>{}).finally(()=>{D(e.currentLoad?.latestPi??t,e),Se(e)})}r||(r=!0,t.events.emit(fE,yE(t,e)))}),t.on("session_shutdown",()=>{GE(e)})};pg(aT);var Tee=aT;export{Tee as default,Eee as setMcpErrorReporter};
|
|
149
|
+
`)}function b2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(km.includes(e))return e}async function R2(t,e,r){if(e.servers.size===0){t.ui.notify("MCP servers are not available","warning");return}if(e.reconnecting){t.ui.notify("MCP servers are already restarting...","warning");return}t.ui.notify("Restarting MCP servers...","info");let n=Ws([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function jE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return km.filter(o=>o.startsWith(n)).map(o=>({value:o,label:o}))},handler:async(r,n)=>{if(r.trim().length===0&&n.mode==="interactive"&&n.hasUI){await DE(n,e,s=>Ws([s],e,t),{classify:s=>vE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>_E({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>SE({server:s,disable:a,scope:c,state:e,pi:t,cwd:n.cwd,agentDir:n.agentDir}),notify:s=>n.ui.notify(s,"info")},(s,a)=>oE({serverName:s,state:e,pi:t,controller:a}));return}let i=b2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${km.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(w2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await R2(n,e,t)}})}import{logger as C2}from"@hermes/logger";var FE=C2.child({prefix:"pi-mcp"}),Em="augment:feature-flags";function P2(t){if(!t||typeof t!="object")return;let e=t;if(!(!e.flags||typeof e.flags!="object")&&!(e.errorStatus!==void 0&&typeof e.errorStatus!="string"))return t}function UE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Em,r=>{let n=P2(r);if(n===void 0){FE.warn(`${Em} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,FE.debug(`Received feature-flag snapshot via ${Em} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as x2}from"@hermes/logger";var Ks=x2.child({prefix:"pi-mcp"}),qE=300*1e3,Tm=600*1e3;function k2(t){if(!t.shouldProactivelyRefreshTokens)return;let e=Date.now();for(let r of t.servers.values()){let{config:n}=r;if(n.type!=="http"&&n.type!=="sse"||n.disabled||!r.hasRefreshEligibleOAuthCredential())continue;let o=t.tokens.get(r.name);o&&o.expiresAt!==void 0&&(_i(o,e)||o.expiresAt>e+Tm||(Ks.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Tm}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Ks.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Ks.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function HE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{k2(t)},qE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Ks.debug(`Started background MCP OAuth refresh loop (interval ${qE}ms, buffer ${Tm}ms)`)}function GE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Ks.debug("Stopped background MCP OAuth refresh loop"))}import{logger as E2}from"@hermes/logger";var xt=E2.child({prefix:"pi-mcp"});function T2(t,e,r){t.dynamicallyAddedConfigIds.add(e),t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.sessionRemovedConfigIds.delete(e);for(let n of r)n.id!==void 0&&(t.registryConfigNamesById.set(n.id,n.name),t.registryCredentialConfigsById.set(n.id,{...n}))}function nr(t){Je({state:t.state,domain:qe(t.configId),epoch:t.intentEpoch})}function A2(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);(o.owner.kind==="local"||o.owner.kind==="registry")&&e.add(r)}for(let[r,n]of t.hostLeases)(n.owner.kind==="local"||n.owner.kind==="registry")&&e.add(r);return e}function ZE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function BE(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),xt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Js(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;nr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(xt.warn(s),!o()){if(r.diagnostics.push({message:s,origin:"registry"}),!i()){r.failedAddConfigIds.add(n);return}r.dynamicallyAddedConfigIds.add(n),r.sessionRemovedConfigIds.delete(n)}}function M2(t,e){return e.flatMap(r=>gu(t,r)?[r.config]:[])}function $2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function I2(t,e){let r=$2(e);if(r){if(Js(t,r.error),r.error instanceof kt)throw r.error;return}let n=M2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){T2(t.state,t.configId,n);return}!t.superseded()&&e.some(o=>o.status==="collision")&&(t.state.failedAddConfigIds.add(t.configId),t.state.nameCollisionAddConfigIds.add(t.configId))}function WE(t,e){try{I2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function O2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t,s=r.servers.get(e.name);if(!s)return!1;let a=Q(r,e.name,s);if(a.owner.kind==="plugin"||a.owner.kind==="vfs")return!1;if(i())return xt.info(`Live MCP add-server: embedded config id ${n} resolves to already-connected server "${e.name}"; no-op`),!0;let c=`Live MCP add-server: embedded config id ${n} collides on display name "${e.name}" with an already-connected server; cannot add a second server sharing that name`;return xt.warn(c),o()||(r.registryConfigNamesById.set(n,e.name),r.diagnostics.push({message:c,origin:"registry"}),r.failedAddConfigIds.add(n),r.nameCollisionAddConfigIds.add(n)),!0}async function z2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await li(t.state,t.configId),t.superseded()){nr(t);return}if(O2(t,e)){nr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){nr(t);return}}catch(r){throw Js(t,r),r}xt.info(`Live MCP add-server: connecting embedded config id ${t.configId} (no registry refetch)`);try{let r=await t.connect([e],t.state,t.activePi,t.sourceOwnership);WE(t,r??[])}catch(r){if(Js(t,r),r instanceof kt)throw r}}async function N2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){nr(t),xt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){BE(r,e),xt.info(`Live MCP add-server: config id ${n} resolved to no new server (already connected, not opted in, or unknown id)`),i()||r.failedAddConfigIds.add(n),nr(t);return}if(await li(r,n),o()){nr(t);return}try{if((await Promise.all(e.servers.map(c=>Ar({state:r,config:c,pi:t.activePi})))).some(c=>!c)){nr(t);return}}catch(a){throw Js(t,a),a}xt.info(`Live MCP add-server: connecting ${e.servers.length} server(s) for config id ${n}`);let s=await t.connect(e.servers,r,t.activePi,t.sourceOwnership);if(o()){nr(t);return}BE(r,e),WE(t,s??[])}function D2(t,e){if(typeof e=="string")return Pk(e,t.workspaceRoot??process.cwd())}function L2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function VE(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return xt.warn("augment:mcp-add-server payload missing configId"),Promise.resolve();let a=D2(r,i?.embeddedConfig);if(L2(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return xt.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!eo({state:r,configId:s,generation:i?.attachmentGeneration}))return xt.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=oa({state:r,domain:qe(s),forceNew:!0}),u=A2(r),d=r.currentLoad?.latestPi??e,l=r.registryGeneration;r.liveEditGenerations??=new Map;let f=(r.liveEditGenerations.get(s)??0)+1;r.liveEditGenerations.set(s,f);let p=()=>r.registryGeneration!==l||r.liveEditGenerations.get(s)!==f,h={state:r,configId:s,activePi:d,connect:o?.connect??Ke,report:o?.report??D,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>ZE(r,s)},m;if(a)m=z2(h,a);else{let g=r.credentials;g?m=(o?.discover??Cu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(b=>N2(h,b)).catch(b=>{if(!(b instanceof kt)){Js(h,b);return}throw b}):(xt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),nr(h),m=Promise.resolve())}return ca({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>ZE(r,s)})}import{logger as j2}from"@hermes/logger";var Lu=j2.child({prefix:"pi-mcp"}),KE=3,JE=6e4,F2=1e3,U2=8e3;function Am(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??en,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??D,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Lu.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=tn({state:r,target:d});if(!l||r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,h=N(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<JE?g.count+1:1,b=r.currentLoad?.latestPi??e;if(v>KE)return Lu.warn(`augment:mcp-restart-server: ${f} exceeded ${KE} restarts within ${JE}ms; rejecting`),c(b,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let _=Math.min(F2*2**(v-1),U2);return(v>1?a(_):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||N(r,f)!==h||tn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Lu.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,b)}).catch(w=>{let C=`Live MCP restart-server failed for ${f}: ${w instanceof Error?w.message:String(w)}`;Lu.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(b,r)})}import{logger as q2}from"@hermes/logger";var Ys=q2.child({prefix:"pi-mcp"}),H2=/^\d+$/,Mm=1,YE="AUGMENT_ACTIVE_SPACE_ID",G2="augment-mcp-access-token-";function ju(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function XE(t,e){return e?.["augment:encoding"]!=="base64"?t:/^[A-Za-z0-9+/]*={0,2}$/.test(t)&&t.length%4===0?Buffer.from(t,"base64").toString("utf-8"):t}var Fu=class{apiKey;apiUrl;userAgent;fetchImpl;timeoutMs;cache=new Map;inflight=new Map;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.userAgent=e.userAgent,this.fetchImpl=r,this.timeoutMs=n??hd}_headers(){return{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",...this.userAgent?{"User-Agent":this.userAgent}:{}}}lookupBody(e){let r={name:e};return!e.startsWith(G2)&&Object.hasOwn(process.env,YE)&&(r.active_space_id=process.env[YE]??""),r}getSecret(e){let r=ju(e),n=this.inflight.get(r);if(n)return n;let o=this._resolve(r).finally(()=>{this.inflight.delete(r)});return this.inflight.set(r,o),o}upsertUserSecret(e,r,n){return hn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=ju(e),s=(await this._callUpsert({name:o,value:r,scope:Mm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!H2.test(s))throw new Error("user secret upsert response contained an invalid persisted version");let a=BigInt(s).toString();return this.cache.set(o,r),Ys.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=ju(e);this.cache.delete(r),await this._callDelete({name:r,scope:Mm}),Ys.debug(`Deleted user secret "${r}"`)}async _callUpsert(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/upsert`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}return await n.json()}async _callDelete(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/delete`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=ju(e);try{let n=await hn(()=>this._callApi("/mcp-secrets/get",this.lookupBody(r))),o=n.secret?.value,i=n.secret?.version;if(o===void 0||i===void 0)return;let s=n.secret?.scope===Mm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:XE(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof mt&&n.statusCode===404)return;throw n}}async _resolve(e){let r=await this._tryGet("/mcp-secrets/get",this.lookupBody(e),e);if(r.value!==void 0)return this.cache.set(e,r.value),r.value;if(r.errored){let n=this.cache.get(e);return n!==void 0&&Ys.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await hn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:XE(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return Ys.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return Ys.debug(`Secret "${n}" lookup via ${e} failed: ${i}`),{errored:!0}}}async _callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:this._headers(),body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}};function $m(t){return{latestPi:t}}import{logger as Z2}from"@hermes/logger";var ni=Z2.child({prefix:"pi-mcp"});async function B2(t){let e=[];for(let[r,n]of t.servers){let o=Q(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=at({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;Ve(t,r);let s=ht(t,r,n.config.id,n.config);n.beginDisposal?.(),e.push(Promise.allSettled([s,n.dispose({strict:!0})]).then(a=>{let c=a.find(u=>u.status==="rejected");if(c)throw _e({state:t,name:r,retirement:i,result:{status:"failed",error:c.reason}}),c.reason;_e({state:t,name:r,retirement:i,result:{status:"retired"}}),xe({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function W2(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),ni.warn(r.message))}function V2(t){let{state:e,name:r,stored:n,higherPriorityNames:o,blockedNames:i,workspaceRoot:s}=t;if(o.has(r)){i.add(r);let a=`VFS MCP server "${r}" ignored: a higher-priority server with the same name takes precedence`;e.diagnostics.push({server:r,message:a,origin:"vfs"}),ni.warn(a);return}try{let a=Xn(r,n);return{...a.type==="stdio"?Zt(a,s):Gt(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof Et?a.message:`Failed to normalize VFS MCP server "${r}": ${a instanceof Error?a.message:String(a)}`;e.diagnostics.push({server:r,message:c,origin:"vfs"}),ni.warn(c);return}}function K2(t,e){let r=new Set;for(let[s,a]of t.servers){let c=Q(t,s,a);c.owner.kind!=="vfs"&&c.host===a&&r.add(s)}for(let[s,a]of t.hostLeases)a.owner.kind!=="vfs"&&r.add(s);let n=t.workspaceRoot??process.cwd(),o=[],i=new Set;for(let[s,a]of Object.entries(e.servers??{})){if(a===null)continue;let c=V2({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function J2(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function QE(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.connect??Ke,s=n;if(!s||typeof s!="object"||Array.isArray(s))return ni.warn("augment:mcp-vfs-servers payload is not an object"),Promise.resolve();let a=typeof s.signature=="string"?s.signature:void 0;if(a!==void 0&&a===r.lastSuccessfulVfsMcpSignature&&J2(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=B2(r);return r.diagnostics=r.diagnostics.filter(l=>l.origin!=="vfs"),r.lastSuccessfulVfsMcpSignature=void 0,r.blockedVfsMcpNames.clear(),d.then(()=>{if(r.vfsGeneration!==c)return!1;W2(r,s.diagnostics);let{servers:l,blockedNames:f}=K2(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(ni.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let h=p?.find(m=>m.status==="failed"||m.status==="unavailable");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));return l.every(m=>(p??[]).some(g=>g.config===m&&gu(r,g)))}))}).then(l=>{l&&a!==void 0&&r.vfsGeneration===c&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=u)}).catch(l=>{let f=`VFS MCP overlay connect failed: ${l instanceof Error?l.message:String(l)}`;ni.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var Me=Y2.child({prefix:"pi-mcp"}),oT="augment:mcp-oauth-credentials",eT="augment:mcp-header-secrets",tT="augment:mcp-header-secret-failures",Im="augment:mcp-oauth-failures",rT="augment:credentials",X2="augment:mcp-config-ids",nT="augment:mcp-configs",Q2="augment:mcp-vfs-servers",e4="augment:mcp-add-server",t4="augment:mcp-restart-server",r4="augment:mcp-remove-server";function n4(t){if(!t.secretsClient||t.tokens instanceof gi)return;let e=t.tokens;t.tokens=new gi(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),Me.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function o4(t){if(!t||typeof t!="object"){Me.warn(`${oT} payload is not an object`);return}let e=t,r=e.suppressReconnect===!0&&typeof e.credentials=="object"&&e.credentials!==null&&!Array.isArray(e.credentials);return{credentials:r?e.credentials:t,restart:r&&e.restart&&typeof e.restart=="object"?e.restart:void 0,suppressReconnect:r,targetConfigId:r&&typeof e.targetConfigId=="string"?e.targetConfigId:void 0}}function Om(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=rn(n),i=tn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&iT({state:t,name:r,revision:o})&&!sT({state:t,revision:o})&&_r({store:t.tokens,serverName:r,proto:n,options:{acceptedRevisions:t.oauthCredentialRevisions,acceptedDomains:t.oauthCredentialDomains,expectedDomains:t.expectedCredentialDomains,equalRevisionRebindDomains:t.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}}).decision!=="reject")return!0;let s="MCP restart credential was rejected; keeping the existing host";return Me.warn(s),t.diagnostics.push({server:r,message:s}),!1}function i4(t){let{pi:e,state:r}=t,{payload:n}=t,o=r.mcpConnectionEpoch;if(Object.entries(n.credentials).some(([c,u])=>r.targetMaterialStore?.has(c)||fe(u)&&Object.hasOwn(u,"target_material"))||n.targetConfigId&&r.targetMaterialStore?.has(n.targetConfigId))return;if(n.restart){let c=Object.keys(n.credentials);if(typeof n.restart.serverName!="string"||typeof n.restart.requestId!="string"||c.length!==1){Me.warn("MCP restart credentials must contain exactly the target entry");return}let u=tn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){Me.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){_k({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Om(r,n))return;let i=Object.keys(n.credentials).map(c=>({name:c,server:r.servers.get(c),lease:N(r,c)})),s=new Set;for(let c of Object.keys(n.credentials)){let u=r.servers.get(c)?.getRefreshInFlight?.();u&&s.add(u)}let a=()=>{if(r.mcpConnectionEpoch!==o||i.some(({name:d,server:l,lease:f})=>r.servers.get(d)!==l||N(r,d)!==f)||n.restart&&!Om(r,n))return;let c=d4({pi:e,state:r,credentials:n.credentials,suppressReconnect:n.suppressReconnect,requireEqualMaterial:n.restart!==void 0}),{restart:u}=n;if(!(typeof u?.serverName!="string"||typeof u.requestId!="string")){if(c.rejected.length===0&&c.applied.length+c.equal.length===1&&(c.applied.includes(u.serverName)||c.equal.includes(u.serverName))){Am({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&N(r,d)===f)&&Om(r,n),data:{serverName:u.serverName,requestId:u.requestId}});return}if(Object.hasOwn(n.credentials,u.serverName)&&!c.equal.includes(u.serverName)){let d="MCP restart credential was rejected; keeping the existing host";Me.warn(d),r.diagnostics.push({server:u.serverName,message:d})}}};if(s.size===0){a();return}Promise.allSettled(s).then(a)}function s4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(oT,r=>{let n=o4(r);n&&i4({pi:t,state:e,payload:n})}))}function iT(t){let{state:e,name:r,revision:n}=t,o=un(n);if(e.pendingRegistryCredentialDomains.has(o)&&e.registryCredentialIntents.has(o))return!1;let i=e.expectedCredentialDomains.get(r),s=e.oauthCredentialDomains.get(r),a=e.servers.get(r),c=a?.config.id,u=a?.config.registrySource!==void 0&&c!==void 0&&qe(c)===o;return n.ownerDomain!==void 0?i?.kind==="domain"?i.domain===o:u:i===void 0&&s===void 0?u:i?.kind==="domain"&&(i.domain===o||ct(n.domain))||s===n.domain}function sT(t){let{state:e,revision:r}=t,n=un(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function a4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=rn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(sT({state:e,revision:a})){rg({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(iT({state:e,name:i,revision:a})){o[i]=s;continue}eg({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function c4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=rn(i);s===void 0?(e.credentialRevisions.delete(o),e.hostedCredentialOwnership.delete(o)):(e.credentialRevisions.set(o,s),e.hostedCredentialOwnership.set(o,{...s,accessTokenOnly:i?.refresh_token===void 0})),e.statusFailureCategories.delete(o),e.authRefreshNeededReportKeys.delete(o),e.tokens.clearAuthRequired(o)}}function u4(t){let{pi:e,state:r,seeded:n,suppressReconnect:o}=t;if(o)return;let i=r.currentLoad?.latestPi??e;for(let s of n){let a=r.servers.get(s),c=r.expectedCredentialDomains.get(s),u=N(r,s),d=c?.kind!=="domain"||u?.owner.kind==="registry"&&u.owner.identity===c.domain;a&&d&&a.config.type!=="stdio"&&a.config.auth==="oauth"&&en(s,r,i).catch(()=>{}).finally(()=>{D(i,r),Se(r)})}}function d4(t){let{pi:e,state:r,credentials:n,suppressReconnect:o}=t;r.oauthCredentialRevisions??=new Map,r.oauthCredentialDomains??=new Map,r.credentialRevisions??=new Map,r.expectedCredentialDomains??=new Map;let i=a4({state:r,credentials:n,suppressReconnect:o}),s={acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:t.requireEqualMaterial};Object.entries(i).some(([u,d])=>{let{decision:l}=_r({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=vu(r.tokens,i,s);return c4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(Me.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),u4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function l4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(eT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${eT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);jy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(tT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${tT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Uy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Im,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${Im} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){Me.warn(`${Im} entries is not an object`);return}Lm(e,n.entries)}))}function f4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(rT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){Me.warn(`${rT} payload missing apiKey or apiUrl`);return}e.credentials={apiKey:n.apiKey,apiUrl:n.apiUrl,...typeof n.userAgent=="string"?{userAgent:n.userAgent}:{},...typeof n.userId=="string"?{userId:n.userId}:{}},e.secretsClient=new Fu(e.credentials),n4(e)}),t.events.on(X2,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),wu(e.currentLoad?.latestPi??t,e),Pu({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(n=>{Me.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;Se(e),Jo(n,e)})}))}function p4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(nT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){Me.warn(`${nT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Xo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{Me.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}Me.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function h4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(Q2,r=>{QE({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e),Se(e)})}))}function m4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(e4,r=>{let n=()=>VE({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(o=>{Me.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Jo(o,e)})}))}function g4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(t4,r=>{let n=()=>Am({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).then(()=>{Se(e)})}))}function y4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(r4,r=>{let n=()=>xu({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).catch(o=>{Me.warn(`Live MCP remove-server did not retire durably: ${o instanceof Error?o.message:String(o)}`)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Jo(o,e)})}))}function Mee(t){return Ly(t)}var aT=t=>{let e=ee();e.currentLoad=$m(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;jE(t,e),Hk(t,e),s4(t,e),l4(t,e),f4(t,e),p4(t,e),h4(t,e),m4(t,e),g4(t,e),y4(t,e),UE(t,e),bk(t,e),wu(t,e),t.on("session_start",(n,o)=>{e.currentLoad=$m(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;if(e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,HE(e),e.connectStarted)Ir(e)?(ir(t),fa(t)):yg(t,e),Se(e);else{e.connectStarted=!0,fi()&&ir(t);let{servers:s,diagnostics:a}=Qn(o.cwd,o.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let c of a)e.diagnostics.push(c),Me.warn(c.message);Ke(s,e,t).then(()=>hk(e)).catch(()=>{}).finally(()=>{D(e.currentLoad?.latestPi??t,e),Se(e)})}r||(r=!0,t.events.emit(fE,yE(t,e)))}),t.on("session_shutdown",()=>{GE(e)})};pg(aT);var $ee=aT;export{$ee as default,Mee as setMcpErrorReporter};
|
|
150
150
|
/*! Bundled license information:
|
|
151
151
|
|
|
152
152
|
content-type/index.js:
|