@augmentcode/onison 1.2.0-prerelease.202610050923 → 1.2.0-prerelease.202610051219

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.
@@ -1,12 +1,12 @@
1
- var mT=Object.create;var qu=Object.defineProperty;var gT=Object.getOwnPropertyDescriptor;var yT=Object.getOwnPropertyNames;var vT=Object.getPrototypeOf,_T=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}},Hu=(t,e)=>{for(var r in e)qu(t,r,{get:e[r],enumerable:!0})},ST=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yT(e))!_T.call(t,o)&&o!==r&&qu(t,o,{get:()=>e[o],enumerable:!(n=gT(e,o))||n.enumerable});return t};var ta=(t,e,r)=>(r=t!=null?mT(vT(t)):{},ST(e||!t||!t.__esModule?qu(r,"default",{value:t,enumerable:!0}):r,t));var rs=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 es=class{};J._CodeOrName=es;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends es{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 es{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 Ab(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Cf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=Ab;var Rf=new wt("+");function Mb(t,...e){let r=[ts(t[0])],n=0;for(;n<e.length;)r.push(Rf),Cf(r,e[n]),r.push(Rf,ts(t[++n]));return tN(r),new wt(r)}J.str=Mb;function Cf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(oN(e))}J.addCodeArg=Cf;function tN(t){let e=1;for(;e<t.length-1;){if(t[e]===Rf){let r=rN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function rN(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 nN(t,e){return e.emptyStr()?t:t.emptyStr()?e:Mb`${t}${e}`}J.strConcat=nN;function oN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ts(Array.isArray(t)?t.join(","):t)}function iN(t){return new wt(ts(t))}J.stringify=iN;function ts(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ts;function sN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):Ab`[${t}]`}J.getProperty=sN;function aN(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=aN;function cN(t){return new wt(t.toString())}J.regexpCode=cN});var kf=P(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.ValueScope=tt.ValueScopeName=tt.Scope=tt.varKinds=tt.UsedValueState=void 0;var et=rs(),Pf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},gc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(gc||(tt.UsedValueState=gc={}));tt.varKinds={const:new et.Name("const"),let:new et.Name("let"),var:new et.Name("var")};var yc=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=yc;var vc=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=vc;var uN=(0,et._)`\n`,xf=class extends yc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?uN:et.nil}}get(){return this._scope}name(e){return new vc(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,gc.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 Pf(u);c.set(u,gc.Completed)})}return i}};tt.ValueScope=xf});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=rs(),It=kf(),Br=rs();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Br._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Br.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Br.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Br.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Br.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Br.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Br.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Br.Name}});var bc=kf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return bc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return bc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return bc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return bc.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}},Ef=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=xo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},_c=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=xo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return wc(e,this.rhs)}},Tf=class extends _c{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Af=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Mf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},$f=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},If=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=xo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ns=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)||(dN(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 ns{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Of=class extends ns{},Po=class extends pr{};Po.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 Po(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t($b(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=xo(this.condition,e,r),this}get names(){let e=super.names;return wc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var zf=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=xo(this.iteration,e,r),this}get names(){return En(super.names,this.iteration.names)}},Nf=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=wc(super.names,this.from);return wc(e,this.to)}},Sc=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=xo(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},os=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)}};os.kind="func";var is=class extends ns{render(e){return"return "+super.render(e)}};is.kind="return";var Df=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}},ss=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};ss.kind="catch";var as=class extends pr{render(e){return"finally"+super.render(e)}};as.kind="finally";var Lf=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 Of]}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 Ef(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 _c(e,r,n))}add(e,r){return this._leafNode(new Tf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new If(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 Po)}endIf(){return this._endBlockNode(xn,Po)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new zf(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 Nf(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 Sc("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 Sc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Af(e))}break(e){return this._leafNode(new Mf(e))}return(e){let r=new is;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(is)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Df;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new ss(i),r(i)}return n&&(this._currNode=o.finally=new as,this.code(n)),this._endBlockNode(ss,as)}throw(e){return this._leafNode(new $f(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 os(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(os)}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=Lf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function wc(t,e){return e instanceof G._CodeOrName?En(t,e.names):t}function xo(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 dN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function $b(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${jf(t)}`}F.not=$b;var lN=Ib(F.operators.AND);function fN(...t){return t.reduce(lN)}F.and=fN;var pN=Ib(F.operators.OR);function hN(...t){return t.reduce(pN)}F.or=hN;function Ib(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${jf(e)} ${t} ${jf(r)}`}function jf(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(),mN=rs();function gN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=gN;function yN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Nb(t,e),!Db(e,t.self.RULES.all))}U.alwaysValidSchema=yN;function Nb(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]||Fb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Nb;function Db(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Db;function vN(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=vN;function _N({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=_N;function SN(t){return Lb(decodeURIComponent(t))}U.unescapeFragment=SN;function wN(t){return encodeURIComponent(Uf(t))}U.escapeFragment=wN;function Uf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Uf;function Lb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Lb;function bN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=bN;function Ob({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:Ob({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} || {}`),qf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:jb}),items:Ob({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 jb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&qf(t,r,e),r}U.evaluatedPropsToName=jb;function qf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=qf;var zb={};function RN(t,e){return t.scopeValue("func",{ref:e,code:zb[e.code]||(zb[e.code]=new mN._Code(e.code))})}U.useFunc=RN;var Ff;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Ff||(U.Type=Ff={}));function CN(t,e,r){if(t instanceof se.Name){let n=e===Ff.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():"/"+Uf(t)}U.getErrorPath=CN;function Fb(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=Fb});var hr=P(Hf=>{"use strict";Object.defineProperty(Hf,"__esModule",{value:!0});var je=j(),PN={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")};Hf.default=PN});var cs=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(),Rc=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 xN(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Hb(t,e,r);n??(s||a)?Ub(i,c):qb(o,(0,W._)`[${c}]`)}Fe.reportError=xN;function kN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Hb(t,e,r);Ub(o,a),i||s||qb(n,Ge.default.vErrors)}Fe.reportExtraError=kN;function EN(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=EN;function TN({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=TN;function Ub(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 qb(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 Hb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:AN(t,e,r)}function AN(t,e,r={}){let{gen:n,it:o}=t,i=[MN(o,r),$N(t,r)];return IN(t,e,i),n.object(...i)}function MN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Rc.getErrorPath)(e,Rc.Type.Str)}`:t;return[Ge.default.instancePath,(0,W.strConcat)(Ge.default.instancePath,r)]}function $N({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,Rc.getErrorPath)(r,Rc.Type.Str)}`),[Tn.schemaPath,o]}function IN(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 Zb=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var ON=cs(),zN=j(),NN=hr(),DN={message:"boolean schema is false"};function LN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Gb(t,!1):typeof r=="object"&&r.$async===!0?e.return(NN.default.data):(e.assign((0,zN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=LN;function jN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Gb(t)):r.var(e,!0)}ko.boolOrEmptySchema=jN;function Gb(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,ON.reportError)(o,DN,void 0,e)}});var Gf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var FN=["string","number","integer","boolean","null","object","array"],UN=new Set(FN);function qN(t){return typeof t=="string"&&UN.has(t)}Eo.isJSONType=qN;function HN(){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:{}}}Eo.getRules=HN});var Zf=P(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.shouldUseRule=Wr.shouldUseGroup=Wr.schemaHasRulesForType=void 0;function GN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Bb(t,n)}Wr.schemaHasRulesForType=GN;function Bb(t,e){return e.rules.some(r=>Wb(t,r))}Wr.shouldUseGroup=Bb;function Wb(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))}Wr.shouldUseRule=Wb});var us=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 ZN=Gf(),BN=Zf(),WN=cs(),L=j(),Vb=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(Ue.DataType=To={}));function VN(t){let e=Kb(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=VN;function Kb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(ZN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Kb;function KN(t,e){let{gen:r,data:n,opts:o}=t,i=JN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,BN.schemaHasRulesForType)(t,e[0]));if(s){let a=Wf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?YN(t,e,i):Vf(t)})}return s}Ue.coerceAndCheckDataType=KN;var Jb=new Set(["string","number","integer","boolean","null"]);function JN(t,e){return e?t.filter(r=>Jb.has(r)||e==="array"&&r==="array"):[]}function YN(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(Wf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Jb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Vf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),XN(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 mT=Object.create;var qu=Object.defineProperty;var gT=Object.getOwnPropertyDescriptor;var yT=Object.getOwnPropertyNames;var vT=Object.getPrototypeOf,_T=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}},Hu=(t,e)=>{for(var r in e)qu(t,r,{get:e[r],enumerable:!0})},ST=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yT(e))!_T.call(t,o)&&o!==r&&qu(t,o,{get:()=>e[o],enumerable:!(n=gT(e,o))||n.enumerable});return t};var ta=(t,e,r)=>(r=t!=null?mT(vT(t)):{},ST(e||!t||!t.__esModule?qu(r,"default",{value:t,enumerable:!0}):r,t));var rs=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 es=class{};J._CodeOrName=es;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends es{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 es{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 Ab(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Cf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=Ab;var Rf=new wt("+");function Mb(t,...e){let r=[ts(t[0])],n=0;for(;n<e.length;)r.push(Rf),Cf(r,e[n]),r.push(Rf,ts(t[++n]));return tN(r),new wt(r)}J.str=Mb;function Cf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(oN(e))}J.addCodeArg=Cf;function tN(t){let e=1;for(;e<t.length-1;){if(t[e]===Rf){let r=rN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function rN(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 nN(t,e){return e.emptyStr()?t:t.emptyStr()?e:Mb`${t}${e}`}J.strConcat=nN;function oN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ts(Array.isArray(t)?t.join(","):t)}function iN(t){return new wt(ts(t))}J.stringify=iN;function ts(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ts;function sN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):Ab`[${t}]`}J.getProperty=sN;function aN(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=aN;function cN(t){return new wt(t.toString())}J.regexpCode=cN});var kf=P(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.ValueScope=tt.ValueScopeName=tt.Scope=tt.varKinds=tt.UsedValueState=void 0;var et=rs(),Pf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},gc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(gc||(tt.UsedValueState=gc={}));tt.varKinds={const:new et.Name("const"),let:new et.Name("let"),var:new et.Name("var")};var yc=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=yc;var vc=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=vc;var uN=(0,et._)`\n`,xf=class extends yc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?uN:et.nil}}get(){return this._scope}name(e){return new vc(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,gc.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 Pf(u);c.set(u,gc.Completed)})}return i}};tt.ValueScope=xf});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=rs(),Ot=kf(),Br=rs();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Br._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Br.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Br.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Br.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Br.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Br.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Br.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Br.Name}});var bc=kf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return bc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return bc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return bc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return bc.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}},Ef=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?Ot.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=xo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},_c=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=xo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return wc(e,this.rhs)}},Tf=class extends _c{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Af=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Mf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},$f=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},If=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=xo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ns=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)||(dN(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 ns{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Of=class extends ns{},Po=class extends pr{};Po.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 Po(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t($b(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=xo(this.condition,e,r),this}get names(){let e=super.names;return wc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var zf=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=xo(this.iteration,e,r),this}get names(){return En(super.names,this.iteration.names)}},Nf=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?Ot.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=wc(super.names,this.from);return wc(e,this.to)}},Sc=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=xo(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},os=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)}};os.kind="func";var is=class extends ns{render(e){return"return "+super.render(e)}};is.kind="return";var Df=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}},ss=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};ss.kind="catch";var as=class extends pr{render(e){return"finally"+super.render(e)}};as.kind="finally";var Lf=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
2
+ `:""},this._extScope=e,this._scope=new Ot.Scope({parent:e}),this._nodes=[new Of]}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 Ef(e,i,n)),i}const(e,r,n){return this._def(Ot.varKinds.const,e,r,n)}let(e,r,n){return this._def(Ot.varKinds.let,e,r,n)}var(e,r,n){return this._def(Ot.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new _c(e,r,n))}add(e,r){return this._leafNode(new Tf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new If(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 Po)}endIf(){return this._endBlockNode(xn,Po)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new zf(e),r)}forRange(e,r,n,o,i=this.opts.es5?Ot.varKinds.var:Ot.varKinds.let){let s=this._scope.toName(e);return this._for(new Nf(i,s,r,n),()=>o(s))}forOf(e,r,n,o=Ot.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 Sc("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?Ot.varKinds.var:Ot.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 Sc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Af(e))}break(e){return this._leafNode(new Mf(e))}return(e){let r=new is;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(is)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Df;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new ss(i),r(i)}return n&&(this._currNode=o.finally=new as,this.code(n)),this._endBlockNode(ss,as)}throw(e){return this._leafNode(new $f(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 os(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(os)}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=Lf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function wc(t,e){return e instanceof G._CodeOrName?En(t,e.names):t}function xo(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 dN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function $b(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${jf(t)}`}F.not=$b;var lN=Ib(F.operators.AND);function fN(...t){return t.reduce(lN)}F.and=fN;var pN=Ib(F.operators.OR);function hN(...t){return t.reduce(pN)}F.or=hN;function Ib(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${jf(e)} ${t} ${jf(r)}`}function jf(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(),mN=rs();function gN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=gN;function yN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Nb(t,e),!Db(e,t.self.RULES.all))}U.alwaysValidSchema=yN;function Nb(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]||Fb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Nb;function Db(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Db;function vN(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=vN;function _N({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=_N;function SN(t){return Lb(decodeURIComponent(t))}U.unescapeFragment=SN;function wN(t){return encodeURIComponent(Uf(t))}U.escapeFragment=wN;function Uf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Uf;function Lb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Lb;function bN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=bN;function Ob({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:Ob({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} || {}`),qf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:jb}),items:Ob({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 jb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&qf(t,r,e),r}U.evaluatedPropsToName=jb;function qf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=qf;var zb={};function RN(t,e){return t.scopeValue("func",{ref:e,code:zb[e.code]||(zb[e.code]=new mN._Code(e.code))})}U.useFunc=RN;var Ff;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Ff||(U.Type=Ff={}));function CN(t,e,r){if(t instanceof se.Name){let n=e===Ff.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():"/"+Uf(t)}U.getErrorPath=CN;function Fb(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=Fb});var hr=P(Hf=>{"use strict";Object.defineProperty(Hf,"__esModule",{value:!0});var je=j(),PN={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")};Hf.default=PN});var cs=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(),Rc=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 xN(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Hb(t,e,r);n??(s||a)?Ub(i,c):qb(o,(0,W._)`[${c}]`)}Fe.reportError=xN;function kN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Hb(t,e,r);Ub(o,a),i||s||qb(n,Ge.default.vErrors)}Fe.reportExtraError=kN;function EN(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=EN;function TN({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=TN;function Ub(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 qb(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 Hb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:AN(t,e,r)}function AN(t,e,r={}){let{gen:n,it:o}=t,i=[MN(o,r),$N(t,r)];return IN(t,e,i),n.object(...i)}function MN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Rc.getErrorPath)(e,Rc.Type.Str)}`:t;return[Ge.default.instancePath,(0,W.strConcat)(Ge.default.instancePath,r)]}function $N({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,Rc.getErrorPath)(r,Rc.Type.Str)}`),[Tn.schemaPath,o]}function IN(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 Zb=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var ON=cs(),zN=j(),NN=hr(),DN={message:"boolean schema is false"};function LN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Gb(t,!1):typeof r=="object"&&r.$async===!0?e.return(NN.default.data):(e.assign((0,zN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=LN;function jN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Gb(t)):r.var(e,!0)}ko.boolOrEmptySchema=jN;function Gb(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,ON.reportError)(o,DN,void 0,e)}});var Gf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var FN=["string","number","integer","boolean","null","object","array"],UN=new Set(FN);function qN(t){return typeof t=="string"&&UN.has(t)}Eo.isJSONType=qN;function HN(){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:{}}}Eo.getRules=HN});var Zf=P(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.shouldUseRule=Wr.shouldUseGroup=Wr.schemaHasRulesForType=void 0;function GN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Bb(t,n)}Wr.schemaHasRulesForType=GN;function Bb(t,e){return e.rules.some(r=>Wb(t,r))}Wr.shouldUseGroup=Bb;function Wb(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))}Wr.shouldUseRule=Wb});var us=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 ZN=Gf(),BN=Zf(),WN=cs(),L=j(),Vb=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(Ue.DataType=To={}));function VN(t){let e=Kb(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=VN;function Kb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(ZN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Kb;function KN(t,e){let{gen:r,data:n,opts:o}=t,i=JN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,BN.schemaHasRulesForType)(t,e[0]));if(s){let a=Wf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?YN(t,e,i):Vf(t)})}return s}Ue.coerceAndCheckDataType=KN;var Jb=new Set(["string","number","integer","boolean","null"]);function JN(t,e){return e?t.filter(r=>Jb.has(r)||e==="array"&&r==="array"):[]}function YN(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(Wf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Jb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Vf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),XN(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 XN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Bf(t,e,r,n=To.Correct){let o=n===To.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===To.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=Bf;function Wf(t,e,r,n){if(t.length===1)return Bf(t[0],e,r,n);let o,i=(0,Vb.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,Bf(s,e,r,n));return o}Ue.checkDataTypes=Wf;var QN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Vf(t){let e=eD(t);(0,WN.reportError)(e,QN)}Ue.reportTypeError=Vf;function eD(t){let{gen:e,data:r,schema:n}=t,o=(0,Vb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Xb=P(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.assignDefaults=void 0;var Ao=j(),tD=B();function rD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Yb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Yb(t,i,o.default))}Cc.assignDefaults=rD;function Yb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Ao._)`${i}${(0,Ao.getProperty)(e)}`;if(o){(0,tD.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Ao._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Ao._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Ao._)`${a} = ${(0,Ao.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(),Kf=B(),Vr=hr(),nD=B();function oD(t,e){let{gen:r,data:n,it:o}=t;r.if(Yf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=oD;function iD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Yf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=iD;function sD(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=sD;function Qb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Qb;function Jf(t,e,r){return(0,de._)`${Qb(t)}.call(${e}, ${r})`}re.isOwnProperty=Jf;function aD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Jf(t,e,r)}`:o}re.propertyInData=aD;function Yf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Jf(t,e,r))):o}re.noPropertyInData=Yf;function eR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=eR;function cD(t,e){return eR(e).filter(r=>!(0,Kf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=cD;function uD({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=[[Vr.default.instancePath,(0,de.strConcat)(Vr.default.instancePath,i)],[Vr.default.parentData,s.parentData],[Vr.default.parentDataProperty,s.parentDataProperty],[Vr.default.rootData,Vr.default.rootData]];s.opts.dynamicRef&&l.push([Vr.default.dynamicAnchors,Vr.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=uD;var dD=(0,de._)`new RegExp`;function lD({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"?dD:(0,nD.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=lD;function fD(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:Kf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=fD;function pD(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,Kf.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=pD});var nR=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(),hD=bt(),mD=cs();function gD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=rR(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=gD;function yD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;_D(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=rR(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&&tR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&tR(t),g(()=>vD(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,w=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ze._)`${v}${(0,hD.callValidateCode)(t,d,b,w)}`,e.modifying)}function g(v){var b;n.if((0,Ze.not)((b=e.valid)!==null&&b!==void 0?b:l),v)}}Jt.funcKeywordCode=yD;function tR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ze._)`${n.parentData}[${n.parentDataProperty}]`))}function vD(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,mD.extendErrors)(t)},()=>t.error())}function _D({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function rR(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 SD(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=SD;function wD({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=wD});var iR=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.extendSubschemaMode=Kr.extendSubschemaData=Kr.getSubschema=void 0;var Yt=j(),oR=B();function bD(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,oR.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')}Kr.getSubschema=bD;function RD(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,oR.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]}}Kr.extendSubschemaData=RD;function CD(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}Kr.extendSubschemaMode=CD});var Xf=P((J5,sR)=>{"use strict";sR.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 cR=P((Y5,aR)=>{"use strict";var Jr=aR.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(){};Pc(e,n,o,t,"",t)};Jr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Jr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Jr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Jr.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 Pc(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 Jr.arrayKeywords)for(var f=0;f<l.length;f++)Pc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Jr.propsKeywords){if(l&&typeof l=="object")for(var p in l)Pc(t,e,r,l[p],o+"/"+d+"/"+PD(p),i,o,d,n,p)}else(d in Jr.keywords||t.allKeys&&!(d in Jr.skipKeywords))&&Pc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function PD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ds=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 xD=B(),kD=Xf(),ED=cR(),TD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function AD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Qf(t):e?uR(t)<=e:!1}rt.inlineRef=AD;var MD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Qf(t){for(let e in t){if(MD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Qf)||typeof r=="object"&&Qf(r))return!0}return!1}function uR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!TD.has(r)&&(typeof t[r]=="object"&&(0,xD.eachItem)(t[r],n=>e+=uR(n)),e===1/0))return 1/0}return e}function dR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return lR(t,n)}rt.getFullPath=dR;function lR(t,e){return t.serialize(e).split("#")[0]+"#"}rt._getFullPath=lR;var $D=/#\/?$/;function Mo(t){return t?t.replace($D,""):""}rt.normalizeId=Mo;function ID(t,e,r){return r=Mo(r),t.resolve(e,r)}rt.resolveUrl=ID;var OD=/^[a-z_][-a-z0-9._]*$/i;function zD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=dR(n,o,!1),a={},c=new Set;return ED(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(w){let R=this.opts.uriResolver.resolve;if(w=Mo(g?R(g,w):w),c.has(w))throw d(w);c.add(w);let _=this.refs[w];return typeof _=="string"&&(_=this.refs[_]),typeof _=="object"?u(l,_.schema,w):w!==Mo(m)&&(w[0]==="#"?(u(l,a[w],w),a[w]=l):this.refs[w]=m),w}function b(w){if(typeof w=="string"){if(!OD.test(w))throw new Error(`invalid anchor "${w}"`);v.call(this,`#${w}`)}}}),a;function u(l,f,p){if(f!==void 0&&!kD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}rt.getSchemaRefs=zD});var ps=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getData=Yr.KeywordCxt=Yr.validateFunctionCode=void 0;var gR=Zb(),fR=us(),tp=Zf(),xc=us(),ND=Xb(),fs=nR(),ep=iR(),A=j(),z=hr(),DD=ds(),mr=B(),ls=cs();function LD(t){if(_R(t)&&(SR(t),vR(t))){UD(t);return}yR(t,()=>(0,gR.topBoolOrEmptySchema)(t))}Yr.validateFunctionCode=LD;function yR({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,A._)`${z.default.data}, ${z.default.valCxt}`,n.$async,()=>{t.code((0,A._)`"use strict"; ${pR(r,o)}`),FD(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${jD(o)}`,n.$async,()=>t.code(pR(r,o)).code(i))}function jD(t){return(0,A._)`{${z.default.instancePath}="", ${z.default.parentData}, ${z.default.parentDataProperty}, ${z.default.rootData}=${z.default.data}${t.dynamicRef?(0,A._)`, ${z.default.dynamicAnchors}={}`:A.nil}}={}`}function FD(t,e){t.if(z.default.valCxt,()=>{t.var(z.default.instancePath,(0,A._)`${z.default.valCxt}.${z.default.instancePath}`),t.var(z.default.parentData,(0,A._)`${z.default.valCxt}.${z.default.parentData}`),t.var(z.default.parentDataProperty,(0,A._)`${z.default.valCxt}.${z.default.parentDataProperty}`),t.var(z.default.rootData,(0,A._)`${z.default.valCxt}.${z.default.rootData}`),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,A._)`${z.default.valCxt}.${z.default.dynamicAnchors}`)},()=>{t.var(z.default.instancePath,(0,A._)`""`),t.var(z.default.parentData,(0,A._)`undefined`),t.var(z.default.parentDataProperty,(0,A._)`undefined`),t.var(z.default.rootData,z.default.data),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,A._)`{}`)})}function UD(t){let{schema:e,opts:r,gen:n}=t;yR(t,()=>{r.$comment&&e.$comment&&bR(t),BD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&qD(t),wR(t),KD(t)})}function qD(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,A._)`${r}.evaluated`),e.if((0,A._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,A._)`${t.evaluated}.props`,(0,A._)`undefined`)),e.if((0,A._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,A._)`${t.evaluated}.items`,(0,A._)`undefined`))}function pR(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,A._)`/*# sourceURL=${r} */`:A.nil}function HD(t,e){if(_R(t)&&(SR(t),vR(t))){GD(t,e);return}(0,gR.boolOrEmptySchema)(t,e)}function vR({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 _R(t){return typeof t.schema!="boolean"}function GD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&bR(t),WD(t),VD(t);let i=n.const("_errs",z.default.errors);wR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function SR(t){(0,mr.checkUnknownRules)(t),ZD(t)}function wR(t,e){if(t.opts.jtd)return hR(t,[],!1,e);let r=(0,fR.getSchemaTypes)(t.schema),n=(0,fR.coerceAndCheckDataType)(t,r);hR(t,r,!n,e)}function ZD(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 BD(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 WD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,DD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function VD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function bR({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,A._)`${z.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,A.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,A._)`${z.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function KD(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,A._)`${z.default.errors} === 0`,()=>e.return(z.default.data),()=>e.throw((0,A._)`new ${o}(${z.default.vErrors})`)):(e.assign((0,A._)`${n}.errors`,z.default.vErrors),i.unevaluated&&JD(t),e.return((0,A._)`${z.default.errors} === 0`))}function JD({gen:t,evaluated:e,props:r,items:n}){r instanceof A.Name&&t.assign((0,A._)`${e}.props`,r),n instanceof A.Name&&t.assign((0,A._)`${e}.items`,n)}function hR(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(()=>CR(t,"$ref",d.all.$ref.definition));return}c.jtd||YD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,tp.shouldUseGroup)(i,f)&&(f.type?(o.if((0,xc.checkDataType)(f.type,s,c.strictNumbers)),mR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,xc.reportTypeError)(t)),o.endIf()):mR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function mR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,ND.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,tp.shouldUseRule)(n,i)&&CR(t,i.keyword,i.definition,e.type)})}function YD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(XD(t,e),t.opts.allowUnionTypes||QD(t,e),eL(t,t.dataTypes))}function XD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{RR(t.dataTypes,r)||rp(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),rL(t,e)}}function QD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&rp(t,"use allowUnionTypes to allow union type keyword")}function eL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,tp.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>tL(e,s))&&rp(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function tL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function RR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function rL(t,e){let r=[];for(let n of t.dataTypes)RR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function rp(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var kc=class{constructor(e,r,n){if((0,fs.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",PR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,fs.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,A.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,A.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,A._)`${r} !== undefined && (${(0,A.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?ls.reportExtraError:ls.reportError)(this,this.def.error,r)}$dataError(){(0,ls.reportError)(this,this.def.$dataError||ls.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ls.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=A.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=A.nil,r=A.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,A.or)((0,A._)`${o} === undefined`,r)),e!==A.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==A.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,A.or)(s(),a());function s(){if(n.length){if(!(r instanceof A.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,A._)`${(0,xc.checkDataTypes)(c,r,i.opts.strictNumbers,xc.DataType.Wrong)}`}return A.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,A._)`!${c}(${r})`}return A.nil}}subschema(e,r){let n=(0,ep.getSubschema)(this.it,e);(0,ep.extendSubschemaData)(n,this.it,e),(0,ep.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return HD(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,A.Name)),!0}};Yr.KeywordCxt=kc;function CR(t,e,r,n){let o=new kc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,fs.funcKeywordCode)(o,r):"macro"in r?(0,fs.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,fs.funcKeywordCode)(o,r)}var nL=/^\/(?:[^~]|~0|~1)*$/,oL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function PR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!nL.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=oL.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,A._)`${i}${(0,A.getProperty)((0,mr.unescapeJsonPointer)(u))}`,s=(0,A._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Yr.getData=PR});var Ec=P(op=>{"use strict";Object.defineProperty(op,"__esModule",{value:!0});var np=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};op.default=np});var hs=P(ap=>{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});var ip=ds(),sp=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,ip.resolveUrl)(e,r,n),this.missingSchema=(0,ip.normalizeId)((0,ip.getFullPath)(e,this.missingRef))}};ap.default=sp});var Ac=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(),iL=Ec(),Mn=hr(),zt=ds(),xR=B(),sL=ps(),$o=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=$o;function up(t){let e=kR.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:iL.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,sL.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=up;function aL(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=dL.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 $o({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=cL.call(this,i)}Rt.resolveRef=aL;function cL(t){return(0,zt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:up.call(this,t)}function kR(t){for(let e of this._compilations)if(uL(e,t))return e}Rt.getCompilingSchema=kR;function uL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function dL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Tc.call(this,t,e)}function Tc(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 cp.call(this,r,t);let i=(0,zt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Tc.call(this,t,s);return typeof a?.schema!="object"?void 0:cp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||up.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 $o({schema:a,schemaId:c,root:t,baseId:o})}return cp.call(this,r,s)}}Rt.resolveSchema=Tc;var lL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function cp(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,xR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!lL.has(a)&&u&&(e=(0,zt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,xR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,zt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Tc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new $o({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var ER=P((n3,fL)=>{fL.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 fp=P((o3,OR)=>{"use strict";var pL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),AR=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),dp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),MR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),hL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function lp(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 mL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function TR(t){return t.length=0,!0}function gL(t,e,r){if(t.length){let n=lp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function yL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=gL;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=TR}else{o.push(u);continue}}return o.length&&(a===TR?r.zone=o.join(""):s?n.push(o.join("")):n.push(lp(o))),r.address=n.join(""),r}function $R(t){if(vL(t,":")<2)return{host:t,isIPV6:!1};let e=yL(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 vL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function _L(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 SL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},wL=/[@/?#:]/g,bL=/[@/?#]/g;function IR(t,e){let r=e?bL:wL;return r.lastIndex=0,t.replace(r,n=>SL[n])}function RL(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(dp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&MR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function CL(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(dp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&MR(i)?e+=i:e+="%"+o,r+=2;continue}}hL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function PL(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(dp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function xL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!AR(r)){let n=$R(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=IR(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}OR.exports={nonSimpleDomain:mL,recomposeAuthority:xL,reescapeHostDelimiters:IR,normalizePercentEncoding:RL,normalizePathEncoding:CL,escapePreservingEscapes:PL,removeDotSegments:_L,isIPv4:AR,isUUID:pL,normalizeIPv6:$R,stringArrayToHexStripped:lp}});var jR=P((i3,LR)=>{"use strict";var{isUUID:kL}=fp(),EL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,TL=["http","https","ws","wss","urn","urn:uuid"];function AL(t){return TL.indexOf(t)!==-1}function pp(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 zR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function NR(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 ML(t){return t.secure=pp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function $L(t){if((t.port===(pp(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 IL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(EL);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=hp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function OL(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=hp(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 zL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!kL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function NL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var DR={scheme:"http",domainHost:!0,parse:zR,serialize:NR},DL={scheme:"https",domainHost:DR.domainHost,parse:zR,serialize:NR},Mc={scheme:"ws",domainHost:!0,parse:ML,serialize:$L},LL={scheme:"wss",domainHost:Mc.domainHost,parse:Mc.parse,serialize:Mc.serialize},jL={scheme:"urn",parse:IL,serialize:OL,skipNormalize:!0},FL={scheme:"urn:uuid",parse:zL,serialize:NL,skipNormalize:!0},$c={http:DR,https:DL,ws:Mc,wss:LL,urn:jL,"urn:uuid":FL};Object.setPrototypeOf($c,null);function hp(t){return t&&($c[t]||$c[t.toLowerCase()])||void 0}LR.exports={wsIsSecure:pp,SCHEMES:$c,isValidSchemeName:AL,getSchemeHandler:hp}});var GR=P((s3,zc)=>{"use strict";var{normalizeIPv6:UL,removeDotSegments:ms,recomposeAuthority:qL,normalizePercentEncoding:HL,normalizePathEncoding:GL,escapePreservingEscapes:ZL,reescapeHostDelimiters:BL,isIPv4:WL,nonSimpleDomain:VL}=fp(),{SCHEMES:KL,getSchemeHandler:UR}=jR();function JL(t,e){return typeof t=="string"?t=nj(t,e):typeof t=="object"&&(t=Oc($n(t,e),e)),t}function YL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Ic(t,n),{parsed:s,malformedAuthorityOrPort:a}=Ic(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=qR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function qR(t,e,r,n){let o={};return n||(t=Oc($n(t,r),r),e=Oc($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=ms(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=ms(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ms(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=ms(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 XL(t,e,r){let n=FR(t,r),o=FR(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=UR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=HL(r.path):(r.path=ZL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=qL(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=ms(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 QL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,ej=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,tj=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function rj(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 Ic(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(ej);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(tj);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(QL);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=rj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(WL(n.host)===!1){let f=UL(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=UR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&VL(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=BL(unescape(n.host),i))),n.path&&(n.path=GL(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 Oc(t,e){return Ic(t,e).parsed}function nj(t,e){return HR(t,e).normalized}function HR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Ic(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function FR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=HR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var mp={SCHEMES:KL,normalize:JL,resolve:YL,resolveComponent:qR,equal:XL,serialize:$n,parse:Oc};zc.exports=mp;zc.exports.default=mp;zc.exports.fastUri=mp});var BR=P(gp=>{"use strict";Object.defineProperty(gp,"__esModule",{value:!0});var ZR=GR();ZR.code='require("ajv/dist/runtime/uri").default';gp.default=ZR});var eC=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 oj=ps();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return oj.KeywordCxt}});var Io=j();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Io._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Io.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Io.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Io.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Io.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return Io.CodeGen}});var ij=Ec(),YR=hs(),sj=Gf(),gs=Ac(),aj=j(),ys=ds(),Nc=us(),vp=B(),WR=ER(),cj=BR(),XR=(t,e)=>new RegExp(t,e);XR.code="new RegExp";var uj=["removeAdditional","useDefaults","coerceTypes"],dj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),lj={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."},fj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},VR=200;function pj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,b,w,R,_,C,I,ne,pe;let xe=t.strict,an=(e=t.code)===null||e===void 0?void 0:e.optimize,cn=an===!0||an===void 0?1:an||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:XR,br=(o=t.uriResolver)!==null&&o!==void 0?o:cj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:xe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:xe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:xe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:xe)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:xe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:cn,regExp:lt}:{optimize:cn,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:VR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:VR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(b=t.messages)!==null&&b!==void 0?b:!0,inlineRefs:(w=t.inlineRefs)!==null&&w!==void 0?w:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(_=t.addUsedSchema)!==null&&_!==void 0?_:!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 vs=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,...pj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new aj.ValueScope({scope:{},prefixes:dj,es5:r,lines:n}),this.logger=_j(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,sj.getRules)(),KR.call(this,lj,e,"NOT SUPPORTED"),KR.call(this,fj,e,"DEPRECATED","warn"),this._metaOpts=yj.call(this),e.formats&&mj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&gj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),hj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=WR;n==="id"&&(o={...WR},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 YR.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,ys.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=JR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new gs.SchemaEnv({schema:{},schemaId:n});if(r=gs.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=JR.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,ys.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(wj.call(this,n,r),!r)return(0,vp.eachItem)(n,i=>yp.call(this,i)),this;Rj.call(this,r);let o={...r,type:(0,Nc.getJSONTypes)(r.type),schemaType:(0,Nc.getJSONTypes)(r.schemaType)};return(0,vp.eachItem)(n,o.type.length===0?i=>yp.call(this,i,o):i=>o.type.forEach(s=>yp.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]=QR(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,ys.normalizeId)(s||n);let u=ys.getSchemaRefs.call(this,e,n);return c=new gs.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):gs.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{gs.compileSchema.call(this,e)}finally{this.opts=r}}};vs.ValidationError=ij.default;vs.MissingRefError=YR.default;Ne.default=vs;function KR(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 JR(t){return t=(0,ys.normalizeId)(t),this.schemas[t]||this.refs[t]}function hj(){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 mj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function gj(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 yj(){let t={...this.opts};for(let e of uj)delete t[e];return t}var vj={log(){},warn(){},error(){}};function _j(t){if(t===!1)return vj;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 Sj=/^[a-z_$][a-z0-9_$:-]*$/i;function wj(t,e){let{RULES:r}=this;if((0,vp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Sj.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 yp(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,Nc.getJSONTypes)(e.type),schemaType:(0,Nc.getJSONTypes)(e.schemaType)}};e.before?bj.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 bj(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 Rj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=QR(e)),t.validateSchema=this.compile(e,!0))}var Cj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function QR(t){return{anyOf:[t,Cj]}}});var tC=P(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var Pj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};_p.default=Pj});var iC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var xj=hs(),rC=bt(),nt=j(),Oo=hr(),nC=Ac(),Dc=B(),kj={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=nC.resolveRef.call(c,u,o,r);if(d===void 0)throw new xj.default(n.opts.uriResolver,o,r);if(d instanceof nC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Lc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Lc(t,(0,nt._)`${h}.validate`,u,u.$async)}function f(h){let m=oC(t,h);Lc(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 oC(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=oC;function Lc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?Oo.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,rC.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,rC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,nt._)`${h}.errors`;o.assign(Oo.default.vErrors,(0,nt._)`${Oo.default.vErrors} === null ? ${m} : ${Oo.default.vErrors}.concat(${m})`),o.assign(Oo.default.errors,(0,nt._)`${Oo.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=Dc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,nt._)`${h}.evaluated.props`);i.props=Dc.mergeEvaluated.props(o,v,i.props,nt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Dc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,nt._)`${h}.evaluated.items`);i.items=Dc.mergeEvaluated.items(o,v,i.items,nt.Name)}}}In.callRef=Lc;In.default=kj});var sC=P(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var Ej=tC(),Tj=iC(),Aj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Ej.default,Tj.default];Sp.default=Aj});var aC=P(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var jc=j(),Xr=jc.operators,Fc={maximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},minimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},exclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},exclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},Mj={message:({keyword:t,schemaCode:e})=>(0,jc.str)`must be ${Fc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,jc._)`{comparison: ${Fc[t].okStr}, limit: ${e}}`},$j={keyword:Object.keys(Fc),type:"number",schemaType:"number",$data:!0,error:Mj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,jc._)`${r} ${Fc[e].fail} ${n} || isNaN(${r})`)}};wp.default=$j});var cC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var _s=j(),Ij={message:({schemaCode:t})=>(0,_s.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,_s._)`{multipleOf: ${t}}`},Oj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Ij,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,_s._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,_s._)`${s} !== parseInt(${s})`;t.fail$data((0,_s._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};bp.default=Oj});var dC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});function uC(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}Rp.default=uC;uC.code='require("ajv/dist/runtime/ucs2length").default'});var lC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var On=j(),zj=B(),Nj=dC(),Dj={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}}`},Lj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Dj,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,zj.useFunc)(t.gen,Nj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};Cp.default=Lj});var fC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var jj=bt(),Fj=B(),zo=j(),Uj={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},qj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Uj,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,zo._)`new RegExp`:(0,Fj.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,zo._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,zo._)`!${d}`)}else{let c=(0,jj.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};Pp.default=qj});var pC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var Ss=j(),Hj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Ss.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Ss._)`{limit: ${t}}`},Gj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Hj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Ss.operators.GT:Ss.operators.LT;t.fail$data((0,Ss._)`Object.keys(${r}).length ${o} ${n}`)}};xp.default=Gj});var hC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var ws=bt(),bs=j(),Zj=B(),Bj={message:({params:{missingProperty:t}})=>(0,bs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,bs._)`{missingProperty: ${t}}`},Wj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Bj,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,Zj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(bs.nil,l);else for(let p of r)(0,ws.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,ws.checkMissingProp)(t,r,p)),(0,ws.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ws.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,ws.propertyInData)(e,o,p,a.ownProperties)),e.if((0,bs.not)(h),()=>{t.error(),e.break()})},bs.nil)}}};kp.default=Wj});var mC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var Rs=j(),Vj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Rs.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Rs._)`{limit: ${t}}`},Kj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Vj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?Rs.operators.GT:Rs.operators.LT;t.fail$data((0,Rs._)`${r}.length ${o} ${n}`)}};Ep.default=Kj});var Uc=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var gC=Xf();gC.code='require("ajv/dist/runtime/equal").default';Tp.default=gC});var yC=P(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Ap=us(),De=j(),Jj=B(),Yj=Uc(),Xj={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}}`},Qj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Xj,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,Ap.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,Ap.checkDataTypes)(u,g,a.opts.strictNumbers,Ap.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,Jj.useFunc)(e,Yj.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)})))}}};Mp.default=Qj});var vC=P(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var $p=j(),e1=B(),t1=Uc(),r1={message:"must be equal to constant",params:({schemaCode:t})=>(0,$p._)`{allowedValue: ${t}}`},n1={keyword:"const",$data:!0,error:r1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,$p._)`!${(0,e1.useFunc)(e,t1.default)}(${r}, ${o})`):t.fail((0,$p._)`${i} !== ${r}`)}};Ip.default=n1});var _C=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Cs=j(),o1=B(),i1=Uc(),s1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Cs._)`{allowedValues: ${t}}`},a1={keyword:"enum",schemaType:"array",$data:!0,error:s1,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,o1.useFunc)(e,i1.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,Cs.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,Cs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,Cs._)`${u()}(${r}, ${p}[${h}])`:(0,Cs._)`${r} === ${m}`}}};Op.default=a1});var SC=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var c1=aC(),u1=cC(),d1=lC(),l1=fC(),f1=pC(),p1=hC(),h1=mC(),m1=yC(),g1=vC(),y1=_C(),v1=[c1.default,u1.default,d1.default,l1.default,f1.default,p1.default,h1.default,m1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},g1.default,y1.default];zp.default=v1});var Dp=P(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.validateAdditionalItems=void 0;var zn=j(),Np=B(),_1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},S1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:_1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Np.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}wC(t,n)}};function wC(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,Np.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:Np.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Ps.validateAdditionalItems=wC;Ps.default=S1});var Lp=P(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.validateTuple=void 0;var bC=j(),qc=B(),w1=bt(),b1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return RC(t,"additionalItems",e);r.items=!0,!(0,qc.alwaysValidSchema)(r,e)&&t.ok((0,w1.validateArray)(t))}};function RC(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=qc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,bC._)`${i}.length`);r.forEach((l,f)=>{(0,qc.alwaysValidSchema)(a,l)||(n.if((0,bC._)`${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,qc.checkStrictMode)(a,g,f.strictTuples)}}}xs.validateTuple=RC;xs.default=b1});var CC=P(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var R1=Lp(),C1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,R1.validateTuple)(t,"items")};jp.default=C1});var xC=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var PC=j(),P1=B(),x1=bt(),k1=Dp(),E1={message:({params:{len:t}})=>(0,PC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,PC._)`{limit: ${t}}`},T1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:E1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,P1.alwaysValidSchema)(n,e)&&(o?(0,k1.validateAdditionalItems)(t,o):t.ok((0,x1.validateArray)(t)))}};Fp.default=T1});var kC=P(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var Ct=j(),Hc=B(),A1={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}}`},M1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:A1,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,Hc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Hc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Hc.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:Hc.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)))}}};Up.default=M1});var AC=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var qp=j(),$1=B(),ks=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,qp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,qp._)`{property: ${t},
5
+ || ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function XN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Bf(t,e,r,n=To.Correct){let o=n===To.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===To.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=Bf;function Wf(t,e,r,n){if(t.length===1)return Bf(t[0],e,r,n);let o,i=(0,Vb.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,Bf(s,e,r,n));return o}Ue.checkDataTypes=Wf;var QN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Vf(t){let e=eD(t);(0,WN.reportError)(e,QN)}Ue.reportTypeError=Vf;function eD(t){let{gen:e,data:r,schema:n}=t,o=(0,Vb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Xb=P(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.assignDefaults=void 0;var Ao=j(),tD=B();function rD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Yb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Yb(t,i,o.default))}Cc.assignDefaults=rD;function Yb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Ao._)`${i}${(0,Ao.getProperty)(e)}`;if(o){(0,tD.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Ao._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Ao._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Ao._)`${a} = ${(0,Ao.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(),Kf=B(),Vr=hr(),nD=B();function oD(t,e){let{gen:r,data:n,it:o}=t;r.if(Yf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=oD;function iD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Yf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=iD;function sD(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=sD;function Qb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Qb;function Jf(t,e,r){return(0,de._)`${Qb(t)}.call(${e}, ${r})`}re.isOwnProperty=Jf;function aD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Jf(t,e,r)}`:o}re.propertyInData=aD;function Yf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Jf(t,e,r))):o}re.noPropertyInData=Yf;function eR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=eR;function cD(t,e){return eR(e).filter(r=>!(0,Kf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=cD;function uD({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=[[Vr.default.instancePath,(0,de.strConcat)(Vr.default.instancePath,i)],[Vr.default.parentData,s.parentData],[Vr.default.parentDataProperty,s.parentDataProperty],[Vr.default.rootData,Vr.default.rootData]];s.opts.dynamicRef&&l.push([Vr.default.dynamicAnchors,Vr.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=uD;var dD=(0,de._)`new RegExp`;function lD({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"?dD:(0,nD.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=lD;function fD(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:Kf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=fD;function pD(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,Kf.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=pD});var nR=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(),hD=bt(),mD=cs();function gD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=rR(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=gD;function yD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;_D(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=rR(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&&tR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&tR(t),g(()=>vD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((0,Ze._)`await `),w=>n.assign(l,!1).if((0,Ze._)`${w} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Ze._)`${w}.errors`),()=>n.throw(w))),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 w=c.opts.passContext?An.default.this:An.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ze._)`${v}${(0,hD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Ze.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Jt.funcKeywordCode=yD;function tR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ze._)`${n.parentData}[${n.parentDataProperty}]`))}function vD(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,mD.extendErrors)(t)},()=>t.error())}function _D({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function rR(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 SD(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=SD;function wD({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=wD});var iR=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.extendSubschemaMode=Kr.extendSubschemaData=Kr.getSubschema=void 0;var Yt=j(),oR=B();function bD(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,oR.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')}Kr.getSubschema=bD;function RD(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,oR.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]}}Kr.extendSubschemaData=RD;function CD(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}Kr.extendSubschemaMode=CD});var Xf=P((Y5,sR)=>{"use strict";sR.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 cR=P((X5,aR)=>{"use strict";var Jr=aR.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(){};Pc(e,n,o,t,"",t)};Jr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Jr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Jr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Jr.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 Pc(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 Jr.arrayKeywords)for(var f=0;f<l.length;f++)Pc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Jr.propsKeywords){if(l&&typeof l=="object")for(var p in l)Pc(t,e,r,l[p],o+"/"+d+"/"+PD(p),i,o,d,n,p)}else(d in Jr.keywords||t.allKeys&&!(d in Jr.skipKeywords))&&Pc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function PD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ds=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 xD=B(),kD=Xf(),ED=cR(),TD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function AD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Qf(t):e?uR(t)<=e:!1}rt.inlineRef=AD;var MD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Qf(t){for(let e in t){if(MD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Qf)||typeof r=="object"&&Qf(r))return!0}return!1}function uR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!TD.has(r)&&(typeof t[r]=="object"&&(0,xD.eachItem)(t[r],n=>e+=uR(n)),e===1/0))return 1/0}return e}function dR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return lR(t,n)}rt.getFullPath=dR;function lR(t,e){return t.serialize(e).split("#")[0]+"#"}rt._getFullPath=lR;var $D=/#\/?$/;function Mo(t){return t?t.replace($D,""):""}rt.normalizeId=Mo;function ID(t,e,r){return r=Mo(r),t.resolve(e,r)}rt.resolveUrl=ID;var OD=/^[a-z_][-a-z0-9._]*$/i;function zD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=dR(n,o,!1),a={},c=new Set;return ED(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 R=this.opts.uriResolver.resolve;if(b=Mo(g?R(g,b):b),c.has(b))throw d(b);c.add(b);let _=this.refs[b];return typeof _=="string"&&(_=this.refs[_]),typeof _=="object"?u(l,_.schema,b):b!==Mo(m)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=m),b}function w(b){if(typeof b=="string"){if(!OD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!kD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}rt.getSchemaRefs=zD});var ps=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getData=Yr.KeywordCxt=Yr.validateFunctionCode=void 0;var gR=Zb(),fR=us(),tp=Zf(),xc=us(),ND=Xb(),fs=nR(),ep=iR(),A=j(),z=hr(),DD=ds(),mr=B(),ls=cs();function LD(t){if(_R(t)&&(SR(t),vR(t))){UD(t);return}yR(t,()=>(0,gR.topBoolOrEmptySchema)(t))}Yr.validateFunctionCode=LD;function yR({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,A._)`${z.default.data}, ${z.default.valCxt}`,n.$async,()=>{t.code((0,A._)`"use strict"; ${pR(r,o)}`),FD(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${jD(o)}`,n.$async,()=>t.code(pR(r,o)).code(i))}function jD(t){return(0,A._)`{${z.default.instancePath}="", ${z.default.parentData}, ${z.default.parentDataProperty}, ${z.default.rootData}=${z.default.data}${t.dynamicRef?(0,A._)`, ${z.default.dynamicAnchors}={}`:A.nil}}={}`}function FD(t,e){t.if(z.default.valCxt,()=>{t.var(z.default.instancePath,(0,A._)`${z.default.valCxt}.${z.default.instancePath}`),t.var(z.default.parentData,(0,A._)`${z.default.valCxt}.${z.default.parentData}`),t.var(z.default.parentDataProperty,(0,A._)`${z.default.valCxt}.${z.default.parentDataProperty}`),t.var(z.default.rootData,(0,A._)`${z.default.valCxt}.${z.default.rootData}`),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,A._)`${z.default.valCxt}.${z.default.dynamicAnchors}`)},()=>{t.var(z.default.instancePath,(0,A._)`""`),t.var(z.default.parentData,(0,A._)`undefined`),t.var(z.default.parentDataProperty,(0,A._)`undefined`),t.var(z.default.rootData,z.default.data),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,A._)`{}`)})}function UD(t){let{schema:e,opts:r,gen:n}=t;yR(t,()=>{r.$comment&&e.$comment&&bR(t),BD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&qD(t),wR(t),KD(t)})}function qD(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,A._)`${r}.evaluated`),e.if((0,A._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,A._)`${t.evaluated}.props`,(0,A._)`undefined`)),e.if((0,A._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,A._)`${t.evaluated}.items`,(0,A._)`undefined`))}function pR(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,A._)`/*# sourceURL=${r} */`:A.nil}function HD(t,e){if(_R(t)&&(SR(t),vR(t))){GD(t,e);return}(0,gR.boolOrEmptySchema)(t,e)}function vR({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 _R(t){return typeof t.schema!="boolean"}function GD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&bR(t),WD(t),VD(t);let i=n.const("_errs",z.default.errors);wR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function SR(t){(0,mr.checkUnknownRules)(t),ZD(t)}function wR(t,e){if(t.opts.jtd)return hR(t,[],!1,e);let r=(0,fR.getSchemaTypes)(t.schema),n=(0,fR.coerceAndCheckDataType)(t,r);hR(t,r,!n,e)}function ZD(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 BD(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 WD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,DD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function VD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function bR({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,A._)`${z.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,A.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,A._)`${z.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function KD(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,A._)`${z.default.errors} === 0`,()=>e.return(z.default.data),()=>e.throw((0,A._)`new ${o}(${z.default.vErrors})`)):(e.assign((0,A._)`${n}.errors`,z.default.vErrors),i.unevaluated&&JD(t),e.return((0,A._)`${z.default.errors} === 0`))}function JD({gen:t,evaluated:e,props:r,items:n}){r instanceof A.Name&&t.assign((0,A._)`${e}.props`,r),n instanceof A.Name&&t.assign((0,A._)`${e}.items`,n)}function hR(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(()=>CR(t,"$ref",d.all.$ref.definition));return}c.jtd||YD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,tp.shouldUseGroup)(i,f)&&(f.type?(o.if((0,xc.checkDataType)(f.type,s,c.strictNumbers)),mR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,xc.reportTypeError)(t)),o.endIf()):mR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function mR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,ND.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,tp.shouldUseRule)(n,i)&&CR(t,i.keyword,i.definition,e.type)})}function YD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(XD(t,e),t.opts.allowUnionTypes||QD(t,e),eL(t,t.dataTypes))}function XD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{RR(t.dataTypes,r)||rp(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),rL(t,e)}}function QD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&rp(t,"use allowUnionTypes to allow union type keyword")}function eL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,tp.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>tL(e,s))&&rp(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function tL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function RR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function rL(t,e){let r=[];for(let n of t.dataTypes)RR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function rp(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var kc=class{constructor(e,r,n){if((0,fs.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",PR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,fs.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,A.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,A.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,A._)`${r} !== undefined && (${(0,A.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?ls.reportExtraError:ls.reportError)(this,this.def.error,r)}$dataError(){(0,ls.reportError)(this,this.def.$dataError||ls.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ls.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=A.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=A.nil,r=A.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,A.or)((0,A._)`${o} === undefined`,r)),e!==A.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==A.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,A.or)(s(),a());function s(){if(n.length){if(!(r instanceof A.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,A._)`${(0,xc.checkDataTypes)(c,r,i.opts.strictNumbers,xc.DataType.Wrong)}`}return A.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,A._)`!${c}(${r})`}return A.nil}}subschema(e,r){let n=(0,ep.getSubschema)(this.it,e);(0,ep.extendSubschemaData)(n,this.it,e),(0,ep.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return HD(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,A.Name)),!0}};Yr.KeywordCxt=kc;function CR(t,e,r,n){let o=new kc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,fs.funcKeywordCode)(o,r):"macro"in r?(0,fs.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,fs.funcKeywordCode)(o,r)}var nL=/^\/(?:[^~]|~0|~1)*$/,oL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function PR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!nL.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=oL.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,A._)`${i}${(0,A.getProperty)((0,mr.unescapeJsonPointer)(u))}`,s=(0,A._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Yr.getData=PR});var Ec=P(op=>{"use strict";Object.defineProperty(op,"__esModule",{value:!0});var np=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};op.default=np});var hs=P(ap=>{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});var ip=ds(),sp=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,ip.resolveUrl)(e,r,n),this.missingSchema=(0,ip.normalizeId)((0,ip.getFullPath)(e,this.missingRef))}};ap.default=sp});var Ac=P(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.resolveSchema=Rt.getCompilingSchema=Rt.resolveRef=Rt.compileSchema=Rt.SchemaEnv=void 0;var zt=j(),iL=Ec(),Mn=hr(),Nt=ds(),xR=B(),sL=ps(),$o=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,Nt.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=$o;function up(t){let e=kR.call(this,t);if(e)return e;let r=(0,Nt.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,s=new zt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),a;t.$async&&(a=s.scopeValue("Error",{ref:iL.default,code:(0,zt._)`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:[zt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,zt.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:zt.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,zt._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(t),(0,sL.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 zt.Name?void 0:h,items:m instanceof zt.Name?void 0:m,dynamicProps:h instanceof zt.Name,dynamicItems:m instanceof zt.Name},p.source&&(p.source.evaluated=(0,zt.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=up;function aL(t,e,r){var n;r=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let i=dL.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 $o({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=cL.call(this,i)}Rt.resolveRef=aL;function cL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:up.call(this,t)}function kR(t){for(let e of this._compilations)if(uL(e,t))return e}Rt.getCompilingSchema=kR;function uL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function dL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Tc.call(this,t,e)}function Tc(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Nt._getFullPath)(this.opts.uriResolver,r),o=(0,Nt.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return cp.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Tc.call(this,t,s);return typeof a?.schema!="object"?void 0:cp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||up.call(this,s),i===(0,Nt.normalizeId)(e)){let{schema:a}=s,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,Nt.resolveUrl)(this.opts.uriResolver,o,u)),new $o({schema:a,schemaId:c,root:t,baseId:o})}return cp.call(this,r,s)}}Rt.resolveSchema=Tc;var lL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function cp(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,xR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!lL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,xR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Tc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new $o({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var ER=P((o3,fL)=>{fL.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 fp=P((i3,OR)=>{"use strict";var pL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),AR=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),dp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),MR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),hL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function lp(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 mL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function TR(t){return t.length=0,!0}function gL(t,e,r){if(t.length){let n=lp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function yL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=gL;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=TR}else{o.push(u);continue}}return o.length&&(a===TR?r.zone=o.join(""):s?n.push(o.join("")):n.push(lp(o))),r.address=n.join(""),r}function $R(t){if(vL(t,":")<2)return{host:t,isIPV6:!1};let e=yL(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 vL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function _L(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 SL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},wL=/[@/?#:]/g,bL=/[@/?#]/g;function IR(t,e){let r=e?bL:wL;return r.lastIndex=0,t.replace(r,n=>SL[n])}function RL(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(dp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&MR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function CL(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(dp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&MR(i)?e+=i:e+="%"+o,r+=2;continue}}hL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function PL(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(dp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function xL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!AR(r)){let n=$R(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=IR(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}OR.exports={nonSimpleDomain:mL,recomposeAuthority:xL,reescapeHostDelimiters:IR,normalizePercentEncoding:RL,normalizePathEncoding:CL,escapePreservingEscapes:PL,removeDotSegments:_L,isIPv4:AR,isUUID:pL,normalizeIPv6:$R,stringArrayToHexStripped:lp}});var jR=P((s3,LR)=>{"use strict";var{isUUID:kL}=fp(),EL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,TL=["http","https","ws","wss","urn","urn:uuid"];function AL(t){return TL.indexOf(t)!==-1}function pp(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 zR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function NR(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 ML(t){return t.secure=pp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function $L(t){if((t.port===(pp(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 IL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(EL);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=hp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function OL(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=hp(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 zL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!kL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function NL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var DR={scheme:"http",domainHost:!0,parse:zR,serialize:NR},DL={scheme:"https",domainHost:DR.domainHost,parse:zR,serialize:NR},Mc={scheme:"ws",domainHost:!0,parse:ML,serialize:$L},LL={scheme:"wss",domainHost:Mc.domainHost,parse:Mc.parse,serialize:Mc.serialize},jL={scheme:"urn",parse:IL,serialize:OL,skipNormalize:!0},FL={scheme:"urn:uuid",parse:zL,serialize:NL,skipNormalize:!0},$c={http:DR,https:DL,ws:Mc,wss:LL,urn:jL,"urn:uuid":FL};Object.setPrototypeOf($c,null);function hp(t){return t&&($c[t]||$c[t.toLowerCase()])||void 0}LR.exports={wsIsSecure:pp,SCHEMES:$c,isValidSchemeName:AL,getSchemeHandler:hp}});var GR=P((a3,zc)=>{"use strict";var{normalizeIPv6:UL,removeDotSegments:ms,recomposeAuthority:qL,normalizePercentEncoding:HL,normalizePathEncoding:GL,escapePreservingEscapes:ZL,reescapeHostDelimiters:BL,isIPv4:WL,nonSimpleDomain:VL}=fp(),{SCHEMES:KL,getSchemeHandler:UR}=jR();function JL(t,e){return typeof t=="string"?t=nj(t,e):typeof t=="object"&&(t=Oc($n(t,e),e)),t}function YL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Ic(t,n),{parsed:s,malformedAuthorityOrPort:a}=Ic(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=qR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function qR(t,e,r,n){let o={};return n||(t=Oc($n(t,r),r),e=Oc($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=ms(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=ms(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ms(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=ms(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 XL(t,e,r){let n=FR(t,r),o=FR(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=UR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=HL(r.path):(r.path=ZL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=qL(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=ms(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 QL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,ej=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,tj=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function rj(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 Ic(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(ej);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(tj);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(QL);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=rj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(WL(n.host)===!1){let f=UL(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=UR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&VL(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=BL(unescape(n.host),i))),n.path&&(n.path=GL(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 Oc(t,e){return Ic(t,e).parsed}function nj(t,e){return HR(t,e).normalized}function HR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Ic(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function FR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=HR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var mp={SCHEMES:KL,normalize:JL,resolve:YL,resolveComponent:qR,equal:XL,serialize:$n,parse:Oc};zc.exports=mp;zc.exports.default=mp;zc.exports.fastUri=mp});var BR=P(gp=>{"use strict";Object.defineProperty(gp,"__esModule",{value:!0});var ZR=GR();ZR.code='require("ajv/dist/runtime/uri").default';gp.default=ZR});var eC=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 oj=ps();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return oj.KeywordCxt}});var Io=j();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Io._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Io.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Io.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Io.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Io.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return Io.CodeGen}});var ij=Ec(),YR=hs(),sj=Gf(),gs=Ac(),aj=j(),ys=ds(),Nc=us(),vp=B(),WR=ER(),cj=BR(),XR=(t,e)=>new RegExp(t,e);XR.code="new RegExp";var uj=["removeAdditional","useDefaults","coerceTypes"],dj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),lj={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."},fj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},VR=200;function pj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,R,_,C,I,ne,pe;let xe=t.strict,an=(e=t.code)===null||e===void 0?void 0:e.optimize,cn=an===!0||an===void 0?1:an||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:XR,br=(o=t.uriResolver)!==null&&o!==void 0?o:cj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:xe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:xe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:xe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:xe)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:xe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:cn,regExp:lt}:{optimize:cn,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:VR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:VR,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:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(_=t.addUsedSchema)!==null&&_!==void 0?_:!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 vs=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,...pj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new aj.ValueScope({scope:{},prefixes:dj,es5:r,lines:n}),this.logger=_j(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,sj.getRules)(),KR.call(this,lj,e,"NOT SUPPORTED"),KR.call(this,fj,e,"DEPRECATED","warn"),this._metaOpts=yj.call(this),e.formats&&mj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&gj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),hj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=WR;n==="id"&&(o={...WR},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 YR.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,ys.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=JR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new gs.SchemaEnv({schema:{},schemaId:n});if(r=gs.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=JR.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,ys.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(wj.call(this,n,r),!r)return(0,vp.eachItem)(n,i=>yp.call(this,i)),this;Rj.call(this,r);let o={...r,type:(0,Nc.getJSONTypes)(r.type),schemaType:(0,Nc.getJSONTypes)(r.schemaType)};return(0,vp.eachItem)(n,o.type.length===0?i=>yp.call(this,i,o):i=>o.type.forEach(s=>yp.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]=QR(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,ys.normalizeId)(s||n);let u=ys.getSchemaRefs.call(this,e,n);return c=new gs.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):gs.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{gs.compileSchema.call(this,e)}finally{this.opts=r}}};vs.ValidationError=ij.default;vs.MissingRefError=YR.default;Ne.default=vs;function KR(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 JR(t){return t=(0,ys.normalizeId)(t),this.schemas[t]||this.refs[t]}function hj(){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 mj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function gj(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 yj(){let t={...this.opts};for(let e of uj)delete t[e];return t}var vj={log(){},warn(){},error(){}};function _j(t){if(t===!1)return vj;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 Sj=/^[a-z_$][a-z0-9_$:-]*$/i;function wj(t,e){let{RULES:r}=this;if((0,vp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Sj.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 yp(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,Nc.getJSONTypes)(e.type),schemaType:(0,Nc.getJSONTypes)(e.schemaType)}};e.before?bj.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 bj(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 Rj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=QR(e)),t.validateSchema=this.compile(e,!0))}var Cj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function QR(t){return{anyOf:[t,Cj]}}});var tC=P(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var Pj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};_p.default=Pj});var iC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var xj=hs(),rC=bt(),nt=j(),Oo=hr(),nC=Ac(),Dc=B(),kj={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=nC.resolveRef.call(c,u,o,r);if(d===void 0)throw new xj.default(n.opts.uriResolver,o,r);if(d instanceof nC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Lc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Lc(t,(0,nt._)`${h}.validate`,u,u.$async)}function f(h){let m=oC(t,h);Lc(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 oC(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=oC;function Lc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?Oo.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,rC.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,rC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,nt._)`${h}.errors`;o.assign(Oo.default.vErrors,(0,nt._)`${Oo.default.vErrors} === null ? ${m} : ${Oo.default.vErrors}.concat(${m})`),o.assign(Oo.default.errors,(0,nt._)`${Oo.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=Dc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,nt._)`${h}.evaluated.props`);i.props=Dc.mergeEvaluated.props(o,v,i.props,nt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Dc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,nt._)`${h}.evaluated.items`);i.items=Dc.mergeEvaluated.items(o,v,i.items,nt.Name)}}}In.callRef=Lc;In.default=kj});var sC=P(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var Ej=tC(),Tj=iC(),Aj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Ej.default,Tj.default];Sp.default=Aj});var aC=P(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var jc=j(),Xr=jc.operators,Fc={maximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},minimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},exclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},exclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},Mj={message:({keyword:t,schemaCode:e})=>(0,jc.str)`must be ${Fc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,jc._)`{comparison: ${Fc[t].okStr}, limit: ${e}}`},$j={keyword:Object.keys(Fc),type:"number",schemaType:"number",$data:!0,error:Mj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,jc._)`${r} ${Fc[e].fail} ${n} || isNaN(${r})`)}};wp.default=$j});var cC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var _s=j(),Ij={message:({schemaCode:t})=>(0,_s.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,_s._)`{multipleOf: ${t}}`},Oj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Ij,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,_s._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,_s._)`${s} !== parseInt(${s})`;t.fail$data((0,_s._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};bp.default=Oj});var dC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});function uC(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}Rp.default=uC;uC.code='require("ajv/dist/runtime/ucs2length").default'});var lC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var On=j(),zj=B(),Nj=dC(),Dj={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}}`},Lj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Dj,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,zj.useFunc)(t.gen,Nj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};Cp.default=Lj});var fC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var jj=bt(),Fj=B(),zo=j(),Uj={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},qj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Uj,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,zo._)`new RegExp`:(0,Fj.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,zo._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,zo._)`!${d}`)}else{let c=(0,jj.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};Pp.default=qj});var pC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var Ss=j(),Hj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Ss.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Ss._)`{limit: ${t}}`},Gj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Hj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Ss.operators.GT:Ss.operators.LT;t.fail$data((0,Ss._)`Object.keys(${r}).length ${o} ${n}`)}};xp.default=Gj});var hC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var ws=bt(),bs=j(),Zj=B(),Bj={message:({params:{missingProperty:t}})=>(0,bs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,bs._)`{missingProperty: ${t}}`},Wj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Bj,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,Zj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(bs.nil,l);else for(let p of r)(0,ws.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,ws.checkMissingProp)(t,r,p)),(0,ws.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ws.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,ws.propertyInData)(e,o,p,a.ownProperties)),e.if((0,bs.not)(h),()=>{t.error(),e.break()})},bs.nil)}}};kp.default=Wj});var mC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var Rs=j(),Vj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Rs.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Rs._)`{limit: ${t}}`},Kj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Vj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?Rs.operators.GT:Rs.operators.LT;t.fail$data((0,Rs._)`${r}.length ${o} ${n}`)}};Ep.default=Kj});var Uc=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var gC=Xf();gC.code='require("ajv/dist/runtime/equal").default';Tp.default=gC});var yC=P(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Ap=us(),De=j(),Jj=B(),Yj=Uc(),Xj={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}}`},Qj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Xj,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,Ap.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,Ap.checkDataTypes)(u,g,a.opts.strictNumbers,Ap.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,Jj.useFunc)(e,Yj.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)})))}}};Mp.default=Qj});var vC=P(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var $p=j(),e1=B(),t1=Uc(),r1={message:"must be equal to constant",params:({schemaCode:t})=>(0,$p._)`{allowedValue: ${t}}`},n1={keyword:"const",$data:!0,error:r1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,$p._)`!${(0,e1.useFunc)(e,t1.default)}(${r}, ${o})`):t.fail((0,$p._)`${i} !== ${r}`)}};Ip.default=n1});var _C=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Cs=j(),o1=B(),i1=Uc(),s1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Cs._)`{allowedValues: ${t}}`},a1={keyword:"enum",schemaType:"array",$data:!0,error:s1,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,o1.useFunc)(e,i1.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,Cs.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,Cs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,Cs._)`${u()}(${r}, ${p}[${h}])`:(0,Cs._)`${r} === ${m}`}}};Op.default=a1});var SC=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var c1=aC(),u1=cC(),d1=lC(),l1=fC(),f1=pC(),p1=hC(),h1=mC(),m1=yC(),g1=vC(),y1=_C(),v1=[c1.default,u1.default,d1.default,l1.default,f1.default,p1.default,h1.default,m1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},g1.default,y1.default];zp.default=v1});var Dp=P(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.validateAdditionalItems=void 0;var zn=j(),Np=B(),_1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},S1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:_1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Np.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}wC(t,n)}};function wC(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,Np.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:Np.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Ps.validateAdditionalItems=wC;Ps.default=S1});var Lp=P(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.validateTuple=void 0;var bC=j(),qc=B(),w1=bt(),b1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return RC(t,"additionalItems",e);r.items=!0,!(0,qc.alwaysValidSchema)(r,e)&&t.ok((0,w1.validateArray)(t))}};function RC(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=qc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,bC._)`${i}.length`);r.forEach((l,f)=>{(0,qc.alwaysValidSchema)(a,l)||(n.if((0,bC._)`${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,qc.checkStrictMode)(a,g,f.strictTuples)}}}xs.validateTuple=RC;xs.default=b1});var CC=P(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var R1=Lp(),C1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,R1.validateTuple)(t,"items")};jp.default=C1});var xC=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var PC=j(),P1=B(),x1=bt(),k1=Dp(),E1={message:({params:{len:t}})=>(0,PC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,PC._)`{limit: ${t}}`},T1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:E1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,P1.alwaysValidSchema)(n,e)&&(o?(0,k1.validateAdditionalItems)(t,o):t.ok((0,x1.validateArray)(t)))}};Fp.default=T1});var kC=P(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var Ct=j(),Hc=B(),A1={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}}`},M1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:A1,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,Hc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Hc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Hc.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:Hc.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)))}}};Up.default=M1});var AC=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var qp=j(),$1=B(),ks=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,qp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,qp._)`{property: ${t},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${e},
8
- deps: ${r}}`};var I1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=O1(t);EC(t,e),TC(t,r)}};function O1({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 EC(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,ks.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,ks.checkReportMissingProp)(t,u)}):(r.if((0,qp._)`${c} && (${(0,ks.checkMissingProp)(t,a,i)})`),(0,ks.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=EC;function TC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,$1.alwaysValidSchema)(i,e[a])||(r.if((0,ks.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=TC;Xt.default=I1});var $C=P(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var MC=j(),z1=B(),N1={message:"property name must be valid",params:({params:t})=>(0,MC._)`{propertyName: ${t.propertyName}}`},D1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:N1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,z1.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,MC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Hp.default=D1});var Zp=P(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var Gc=bt(),Nt=j(),L1=hr(),Zc=B(),j1={message:"must NOT have additional properties",params:({params:t})=>(0,Nt._)`{additionalProperty: ${t.additionalProperty}}`},F1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:j1,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,Zc.alwaysValidSchema)(s,r))return;let u=(0,Gc.allSchemaProperties)(n.properties),d=(0,Gc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Nt._)`${i} === ${L1.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,Zc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Gc.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,Gc.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,Zc.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 w={keyword:"additionalProperties",dataProp:g,dataPropType:Zc.Type.Str};b===!1&&Object.assign(w,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(w,v)}}};Gp.default=F1});var zC=P(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var U1=ps(),IC=bt(),Bp=B(),OC=Zp(),q1={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&&OC.default.code(new U1.KeywordCxt(i,OC.default,"additionalProperties"));let s=(0,IC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Bp.mergeEvaluated.props(e,(0,Bp.toHash)(s),i.props));let a=s.filter(l=>!(0,Bp.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,IC.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)}}};Wp.default=q1});var jC=P(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var NC=bt(),Bc=j(),DC=B(),LC=B(),H1={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,NC.allSchemaProperties)(r),c=a.filter(m=>(0,DC.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 Bc.Name)&&(i.props=(0,LC.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,DC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Bc._)`${(0,NC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:LC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Bc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Bc.not)(d),()=>e.break())})})}}};Vp.default=H1});var FC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var G1=B(),Z1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,G1.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"}};Kp.default=Z1});var UC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var B1=bt(),W1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:B1.validateUnion,error:{message:"must match a schema in anyOf"}};Jp.default=W1});var qC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var Wc=j(),V1=B(),K1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Wc._)`{passingSchemas: ${t.passing}}`},J1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:K1,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,V1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Wc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Wc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Wc.Name)})})}}};Yp.default=J1});var HC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var Y1=B(),X1={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,Y1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Xp.default=X1});var BC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var Vc=j(),ZC=B(),Q1={message:({params:t})=>(0,Vc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Vc._)`{failingKeyword: ${t.ifClause}}`},eF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Q1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,ZC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=GC(n,"then"),i=GC(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,Vc.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,Vc._)`${d}`):t.setParams({ifClause:d})}}}};function GC(t,e){let r=t.schema[e];return r!==void 0&&!(0,ZC.alwaysValidSchema)(t,r)}Qp.default=eF});var WC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var tF=B(),rF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,tF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};eh.default=rF});var VC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var nF=Dp(),oF=CC(),iF=Lp(),sF=xC(),aF=kC(),cF=AC(),uF=$C(),dF=Zp(),lF=zC(),fF=jC(),pF=FC(),hF=UC(),mF=qC(),gF=HC(),yF=BC(),vF=WC();function _F(t=!1){let e=[pF.default,hF.default,mF.default,gF.default,yF.default,vF.default,uF.default,dF.default,cF.default,lF.default,fF.default];return t?e.push(oF.default,sF.default):e.push(nF.default,iF.default),e.push(aF.default),e}th.default=_F});var KC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var Re=j(),SF={message:({schemaCode:t})=>(0,Re.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Re._)`{format: ${t}}`},wF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:SF,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,Re._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,Re._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,Re._)`${m}.type || "string"`).assign(v,(0,Re._)`${m}.validate`),()=>r.assign(g,(0,Re._)`"string"`).assign(v,m)),t.fail$data((0,Re.or)(b(),w()));function b(){return c.strictSchema===!1?Re.nil:(0,Re._)`${s} && !${v}`}function w(){let R=d.$async?(0,Re._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Re._)`${v}(${n})`,_=(0,Re._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,Re._)`${v} && ${v} !== true && ${g} === ${e} && !${_}`}}function p(){let h=l.formats[i];if(!h){b();return}if(h===!0)return;let[m,g,v]=w(h);m===e&&t.pass(R());function b(){if(c.strictSchema===!1){l.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function w(_){let C=_ instanceof RegExp?(0,Re.regexpCode)(_):c.code.formats?(0,Re._)`${c.code.formats}${(0,Re.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:_,code:C});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Re._)`${I}.validate`]:["string",_,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,Re._)`await ${v}(${n})`}return typeof g=="function"?(0,Re._)`${v}(${n})`:(0,Re._)`${v}.test(${n})`}}}};rh.default=wF});var JC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var bF=KC(),RF=[bF.default];nh.default=RF});var YC=P(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.contentVocabulary=No.metadataVocabulary=void 0;No.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];No.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var QC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var CF=sC(),PF=SC(),xF=VC(),kF=JC(),XC=YC(),EF=[CF.default,PF.default,(0,xF.default)(),kF.default,XC.metadataVocabulary,XC.contentVocabulary];oh.default=EF});var tP=P(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.DiscrError=void 0;var eP;(function(t){t.Tag="tag",t.Mapping="mapping"})(eP||(Kc.DiscrError=eP={}))});var nP=P(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});var Do=j(),ih=tP(),rP=Ac(),TF=hs(),AF=B(),MF={message:({params:{discrError:t,tagName:e}})=>t===ih.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Do._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},$F={keyword:"discriminator",type:"object",schemaType:"object",error:MF,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,Do._)`${r}${(0,Do.getProperty)(a)}`);e.if((0,Do._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:ih.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,Do._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:ih.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,Do.Name),h}function f(){var p;let h={},m=v(o),g=!0;for(let R=0;R<s.length;R++){let _=s[R];if(_?.$ref&&!(0,AF.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=rP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof rP.SchemaEnv&&(_=_.schema),_===void 0)throw new TF.default(i.opts.uriResolver,i.baseId,I)}let C=(p=_?.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(_)),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,_){if(R.const)w(R.const,_);else if(R.enum)for(let C of R.enum)w(C,_);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function w(R,_){if(typeof R!="string"||R in h)throw new Error(`discriminator: "${a}" values must be unique strings`);h[R]=_}}}};sh.default=$F});var oP=P((V3,IF)=>{IF.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 ch=P((le,ah)=>{"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 OF=eC(),zF=QC(),NF=nP(),iP=oP(),DF=["/properties"],Jc="http://json-schema.org/draft-07/schema",Lo=class extends OF.default{_addVocabularies(){super._addVocabularies(),zF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(NF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(iP,DF):iP;this.addMetaSchema(e,Jc,!1),this.refs["http://json-schema.org/schema"]=Jc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Jc)?Jc:void 0)}};le.Ajv=Lo;ah.exports=le=Lo;ah.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var LF=ps();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return LF.KeywordCxt}});var jo=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return jo._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return jo.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return jo.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return jo.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return jo.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return jo.CodeGen}});var jF=Ec();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return jF.default}});var FF=hs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return FF.default}})});var pP=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(uP,fh),time:Qt(dh(!0),ph),"date-time":Qt(sP(!0),lP),"iso-time":Qt(dh(),dP),"iso-date-time":Qt(sP(),fP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:BF,"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:QF,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:WF,int32:{type:"number",validate:JF},int64:{type:"number",validate:YF},float:{type:"number",validate:cP},double:{type:"number",validate:cP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,fh),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,ph),"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,lP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,dP),"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,fP),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 UF(t){return t%4===0&&(t%100!==0||t%400===0)}var qF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,HF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function uP(t){let e=qF.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&&UF(r)?29:HF[n])}function fh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var uh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function dh(t){return function(r){let n=uh.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 ph(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 dP(t,e){if(!(t&&e))return;let r=uh.exec(t),n=uh.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 lh=/t|\s/i;function sP(t){let e=dh(t);return function(n){let o=n.split(lh);return o.length===2&&uP(o[0])&&e(o[1])}}function lP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function fP(t,e){if(!(t&&e))return;let[r,n]=t.split(lh),[o,i]=e.split(lh),s=fh(r,o);if(s!==void 0)return s||ph(n,i)}var GF=/\/|:/,ZF=/^(?:[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 BF(t){return GF.test(t)&&ZF.test(t)}var aP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function WF(t){return aP.lastIndex=0,aP.test(t)}var VF=-(2**31),KF=2**31-1;function JF(t){return Number.isInteger(t)&&t<=KF&&t>=VF}function YF(t){return Number.isInteger(t)}function cP(){return!0}var XF=/[^\\]\\Z/;function QF(t){if(XF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var hP=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var eU=ch(),Dt=j(),Qr=Dt.operators,Yc={formatMaximum:{okStr:"<=",ok:Qr.LTE,fail:Qr.GT},formatMinimum:{okStr:">=",ok:Qr.GTE,fail:Qr.LT},formatExclusiveMaximum:{okStr:"<",ok:Qr.LT,fail:Qr.GTE},formatExclusiveMinimum:{okStr:">",ok:Qr.GT,fail:Qr.LTE}},tU={message:({keyword:t,schemaCode:e})=>(0,Dt.str)`should be ${Yc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Dt._)`{comparison: ${Yc[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(Yc),type:"string",schemaType:"string",$data:!0,error:tU,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 eU.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}) ${Yc[o].fail} 0`}},dependencies:["format"]};var rU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=rU});var vP=P((Es,yP)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});var Uo=pP(),nU=hP(),hh=j(),mP=new hh.Name("fullFormats"),oU=new hh.Name("fastFormats"),mh=(t,e={keywords:!0})=>{if(Array.isArray(e))return gP(t,e,Uo.fullFormats,mP),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,oU]:[Uo.fullFormats,mP],o=e.formats||Uo.formatNames;return gP(t,o,r,n),e.keywords&&(0,nU.default)(t),t};mh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function gP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,hh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}yP.exports=Es=mh;Object.defineProperty(Es,"__esModule",{value:!0});Es.default=mh});var WP=P((A8,BP)=>{BP.exports=ZP;ZP.sync=NU;var HP=Rr("fs");function zU(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 GP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:zU(e,r)}function ZP(t,e,r){HP.stat(t,function(n,o){r(n,n?!1:GP(o,t,e))})}function NU(t,e){return GP(HP.statSync(t),t,e)}});var XP=P((M8,YP)=>{YP.exports=KP;KP.sync=DU;var VP=Rr("fs");function KP(t,e,r){VP.stat(t,function(n,o){r(n,n?!1:JP(o,e))})}function DU(t,e){return JP(VP.statSync(t),e)}function JP(t,e){return t.isFile()&&LU(t,e)}function LU(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 ex=P((I8,QP)=>{var $8=Rr("fs"),cu;process.platform==="win32"||global.TESTING_WINDOWS?cu=WP():cu=XP();QP.exports=Oh;Oh.sync=jU;function Oh(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){Oh(t,e||{},function(i,s){i?o(i):n(s)})})}cu(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function jU(t,e){try{return cu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ax=P((O8,sx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",tx=Rr("path"),FU=Ko?";":":",rx=ex(),nx=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),ox=(t,e)=>{let r=e.colon||FU,n=t.match(/\//)||Ko&&t.match(/\\/)?[""]:[...Ko?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Ko?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Ko?o.split(r):[""];return Ko&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},ix=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=ox(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(nx(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=tx.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];rx(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)},UU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=ox(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=tx.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(rx.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 nx(t)};sx.exports=ix;ix.sync=UU});var ux=P((z8,zh)=>{"use strict";var cx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};zh.exports=cx;zh.exports.default=cx});var px=P((N8,fx)=>{"use strict";var dx=Rr("path"),qU=ax(),HU=ux();function lx(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=qU.sync(t.command,{path:r[HU({env:r})],pathExt:e?dx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=dx.resolve(o?t.options.cwd:"",s)),s}function GU(t){return lx(t)||lx(t,!0)}fx.exports=GU});var hx=P((D8,Dh)=>{"use strict";var Nh=/([()\][%!^"`<>&|;, *?])/g;function ZU(t){return t=t.replace(Nh,"^$1"),t}function BU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Nh,"^$1"),e&&(t=t.replace(Nh,"^$1")),t}Dh.exports.command=ZU;Dh.exports.argument=BU});var gx=P((L8,mx)=>{"use strict";mx.exports=/^#!(.*)/});var vx=P((j8,yx)=>{"use strict";var WU=gx();yx.exports=(t="")=>{let e=t.match(WU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var Sx=P((F8,_x)=>{"use strict";var Lh=Rr("fs"),VU=vx();function KU(t){let r=Buffer.alloc(150),n;try{n=Lh.openSync(t,"r"),Lh.readSync(n,r,0,150,0),Lh.closeSync(n)}catch{}return VU(r.toString())}_x.exports=KU});var Cx=P((U8,Rx)=>{"use strict";var JU=Rr("path"),wx=px(),bx=hx(),YU=Sx(),XU=process.platform==="win32",QU=/\.(?:com|exe)$/i,eq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function tq(t){t.file=wx(t);let e=t.file&&YU(t.file);return e?(t.args.unshift(t.file),t.command=e,wx(t)):t.file}function rq(t){if(!XU)return t;let e=tq(t),r=!QU.test(e);if(t.options.forceShell||r){let n=eq.test(e);t.command=JU.normalize(t.command),t.command=bx.command(t.command),t.args=t.args.map(i=>bx.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 nq(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:rq(n)}Rx.exports=nq});var kx=P((q8,xx)=>{"use strict";var jh=process.platform==="win32";function Fh(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 oq(t,e){if(!jh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Px(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Px(t,e){return jh&&t===1&&!e.file?Fh(e.original,"spawn"):null}function iq(t,e){return jh&&t===1&&!e.file?Fh(e.original,"spawnSync"):null}xx.exports={hookChildProcess:oq,verifyENOENT:Px,verifyENOENTSync:iq,notFoundError:Fh}});var Ax=P((H8,Jo)=>{"use strict";var Ex=Rr("child_process"),Uh=Cx(),qh=kx();function Tx(t,e,r){let n=Uh(t,e,r),o=Ex.spawn(n.command,n.args,n.options);return qh.hookChildProcess(o,n),o}function sq(t,e,r){let n=Uh(t,e,r),o=Ex.spawnSync(n.command,n.args,n.options);return o.error=o.error||qh.verifyENOENTSync(o.status,n),o}Jo.exports=Tx;Jo.exports.spawn=Tx;Jo.exports.sync=sq;Jo.exports._parse=Uh;Jo.exports._enoent=qh});var Nx=P(Gh=>{"use strict";var Ix=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,lq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Ox=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,fq=/\\([\u000b\u0020-\u00ff])/g,pq=/([\\"])/g,zx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Gh.format=hq;Gh.parse=mq;function hq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!zx.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],!Ox.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+yq(e[o])}return n}function mq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?gq(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(!zx.test(n))throw new TypeError("invalid media type");var o=new vq(n.toLowerCase());if(r!==-1){var i,s,a;for(Ix.lastIndex=r;s=Ix.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(fq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function gq(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 yq(t){var e=String(t);if(Ox.test(e))return e;if(e.length>0&&!lq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(pq,"\\$1")+'"'}function vq(t){this.parameters=Object.create(null),this.type=t}});import{logger as u4}from"@hermes/logger";import{logger as BH}from"@hermes/logger";var wT="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(wT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as _H}from"@augmentcode/auggie-v2";import{logger as SH}from"@hermes/logger";import{logger as YT}from"@hermes/logger";import{logger as RT}from"@hermes/logger";function bT(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":bT(t,e,r)?"plugin":"local"}function CT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var jm=RT.child({prefix:"pi-mcp"}),PT="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 ii(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 xT(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 ra=3e4;function kT(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>=ra?"failed":void 0}default:return}}var Fm="authentication required",ET="Authentication refresh is pending in the backend; retry shortly.",TT="timed out connecting after 30s",AT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",MT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",$T="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",IT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",OT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",zT="Server was not started: this session's Space policy does not allow it.",NT="Server was not started: its shared credential is not available to this session's identity.",DT="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 LT(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)?MT:AT,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",...FT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}jT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function jT(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=qm(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 Um(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 qm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:OT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:zT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:NT,failureCategory:"share_identity_excluded"};default:return}}function FT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:DT,failureCategory:"auth_terminal"};let i=qm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?IT:$T,failureCategory:"configuration"}}function UT(t,e){return e!==void 0?e.isAuthError?Fm:e.error:t.status==="initializing"?TT:t.lastError??(t.status==="auth_required"?Fm:void 0)}function Hm(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 qT(t,e,r){if(Hm(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 HT(t,e){let r=kT(t);if(r===void 0)return;let n=xT(e,t.name),o=r==="connected"?CT(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=Hm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=qT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?ET:UT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function GT(t){let e=[];for(let r of t.servers.values()){let n=HT(r,t);n!==void 0&&e.push(n)}return LT(t,e),e}function N(t,e){try{let r=GT(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(PT,o),jm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){jm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var na={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function ZT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function si(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function ai(t,e){return t.kind===e.kind&&t.identity===e.identity}function Gm(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 Gu(t,e){let r=ZT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function oa(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Zu(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:Gu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),oa(t,e,a),c}function Zm(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:Gu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),oa(e,r,s.owner),s}function ci(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=na[n.kind]>na[a.owner.kind],f=na[n.kind]===na[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Gm(a):void 0;Zu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Gu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),oa(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Bu(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,si(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ia(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);return!s||s.revision!==o||!ai(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||!ai(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Gm(s);if(a)return Zu(e,r,i),s.host=void 0,s.retirement=a,a}function Bm(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||!ai(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!ai(s.owner,n)||s.revision!==o.incumbent.revision?(oa(e,r,s.owner),!0):(i.delete(r),si(e).set(r,{kind:"blocked"}),!0))}function ke(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||!ai(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Zu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),si(e).set(r,{kind:"blocked"}),!0)}function D(t,e){return qt(t).get(e)}function Wu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Wm(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&&Wm(t.url)===Wm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Yn=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 di(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Vu(t){try{return new URL(t).toString()}catch{return t}}function ui(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Vu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Ht(t,e){return ui(e.config)}function pt(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Vu(t.url)===Vu(e.url)}function Ku(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):xr(r,n)}function Ju(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function BT(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 WT(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 Vm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Ju(e,r):n!==void 0&&e!==n}function Km(t,e,r){return r&&e!==void 0&&t!==void 0&&Ju(t,e)}function VT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Ju(i,n))}function Jm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(WT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Vm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Vm({identity:s.domain,...l})?!0:VT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function KT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function JT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ui(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function Ym(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=BT({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=Jm({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=Km(i,u,d),h=Km(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=KT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,C,{preserveNameState:b})}let w=Jm({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),_=!0),(R||h)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),_=!0),R&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),JT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:R,retiredConfig:c}),_&&(di(t,e),st(t,e),t.authRefreshNeededReportKeys?.delete(e)),R}function ht(t,e,r,n){return Ym(t,e,r,n,"durable")}function li(t,e,r,n){return Ym(t,e,r,n,"session")}function sa(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 Xm="augment:mcp-oauth-credentials",Qm=300*1e3,XT=256,Yu=YT.child({prefix:"pi-mcp"}),kt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function qe(t){return`user:${t}`}function un(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 dn(t){return t.ownerDomain??Er(t.domain)}function eg(t,e,r){let n=qe(e);return r!==void 0?r===n:ct(t)||Er(t)===n}function QT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function eA(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 tA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function rA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&QT(t.credentialRevisions.get(e),r.credentialRevision)&&tA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function nA(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 oA(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 tg(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 rg(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Qm)&&or(t,n)}function iA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function ng(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();rg(e,a);let c=dn(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>=XT&&iA(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)},Qm),f.expiryTimer.unref?.(),Yu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function sA(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 aa(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:sA(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 og(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);aa({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function aA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||D(e,r.name)?.owner.kind==="local")return;Tr(e);let n=qe(r.id),o=nA(r),i=oA({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=aa({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),cA({state:e,config:r,domain:n}),{domain:n,...s}}function ig(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=dn(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 cA(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 uA(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(Xm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function dA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();rg(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 lA(t){let{config:e,pi:r,buffered:n}=t;Yu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Yu.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(Xm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function fA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(pt(n,r)){if(n.name===r.name)return;await li(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 pA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=rA(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 hA(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 fA({state:e,config:r,previousConfig:i})}catch(h){throw pA({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),uA({state:e,config:r,pi:n,intent:o});let p=dA({state:e,domain:o.domain,serverName:r.name});return Je({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&lA({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=aA({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=eA(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 hA({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 kA}from"@augmentcode/auggie-v2";import{homedir as sg}from"node:os";import{sep as mA}from"node:path";var Xu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},gA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,yA=/\\\$\{/g,vA=new Set(["workspaceFolder","augmentToken"]),ag="${workspaceFolder}";function cg(t,e){return t.includes(ag)?t.split(ag).join(e):t}function ug(t,e){return t.includes("${")?t.replace(gA,(n,o,i)=>{if(vA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Xu(o)}).replace(yA,"${"):t}function _A(t){return t.startsWith("~")?t==="~"?sg():t.startsWith("~/")||t.startsWith(`~${mA}`)?sg()+t.slice(1):t:t}function Qu(t,e,r){return _A(ug(cg(t,e),r))}function Xn(t,e,r){return ug(cg(t,e),r)}function dg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var SA="$augment-";function wA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(SA)?i:Xn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:wA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:Qu(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?dg(t.env,e,r):void 0,cwd:t.cwd?Qu(t.cwd,e,r):e}}import{readFileSync as RA}from"node:fs";var Et=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Qn(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 bA(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 eo(t,e){let r=Qn(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:bA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var pg=t=>RA(t,"utf8");function ca(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function lg(t){return ca(t)&&("command"in t||"url"in t)}function td(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function fg(t,e){return td(t.name)??e}function ed(t,e){let r=Qn(t);if(r==="http"||r==="sse")return td(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return td(t.name,t.title,n)??e}function CA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[ed(n,String(r)),n]});if(ca(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[ed(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ca(n))return Object.entries(n).map(([o,i])=>{let s=i;return[fg(s,o),s]})}if(lg(t)){let r=t;return[[ed(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(lg))return Object.entries(t).map(([r,n])=>{if(!ca(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[fg(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 rd(t){return t instanceof Error?t.message:String(t)}function PA(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}": ${rd(i)}`});return}}function xA(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=PA(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}: ${rd(c)}`}),[]}try{return CA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${rd(c)}`}),[]}}function nd(t,e=pg){let r={},n=[];for(let o of t)for(let[i,s]of xA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function od(t,e=pg){return!t||t.length===0?new Set:new Set(Object.keys(nd(t,e).servers))}var EA=["global","project","local","managed"];function TA(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 AA(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 MA(t,e,r){let n=nd(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 $A(t,e,r){let n=kA.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 AA(EA.map(o=>TA(n,o)))}function to(t,e,r,n){let o=[],i=r&&r.length>0?MA(r,n,o):$A(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=eo(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 vg}from"@augmentcode/auggie-v2";import{logger as HA}from"@hermes/logger";import{Type as GA}from"@sinclair/typebox";var ua=Symbol.for("__pi_mcp_state__");function IA(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 OA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function zA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&IA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&OA(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 NA(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.initialConnectPromise??=null,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&&zA(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.cloudModeListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function fi(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 ro(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 id(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 da(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function la(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()?id({state:e,configId:r,generation:n}):da({state:e,configId:r,generation:n}),s),s=>{throw da({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[ua])return NA(t[ua]),t[ua];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Yn,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,initialConnectPromise:null,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,isCloudMode:void 0,cloudModeListenerBound:!1};return t[ua]=e,e}var hg=Symbol.for("__hermes_mcp_tool_registry__"),DA=Symbol.for("__hermes_mcp_extension_factory__");function sd(){let t=globalThis;return t[hg]??=new Map,t[hg]}function mg(t){return sd().get(t)}function Mr(t){sd().set(t.name,t)}function no(t,e){let r=sd();(e===void 0||r.get(t)===e)&&r.delete(t)}function gg(t){Reflect.set(t,DA,!0)}function fa(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 LA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function jA(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 FA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
- `).trim()}function ad(t,e,r){if(t.isError){let o=FA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=jA(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 yg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(fa(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=LA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return ad(o,t.serverName,r)}var UA=/[^a-zA-Z0-9_-]/g;function cd(t){return t.replace(UA,"_")}function qA(t,e){let r=cd(e),n=cd(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=qA(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=`_${cd(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var pa=HA.child({prefix:"pi-mcp"});function ha(){return ee().toolRegistrationsByPi}function _g(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=GA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){pa.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}pa.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)=>yg({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d,toolCallId:c})}}function ud(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),no(n,i),r.definitionsByName?.delete(n),ZA(t,e,n,r,o)}function ZA(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=_g({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;vg(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 BA(t,e){let r=ha(),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)ud(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 dd(t,e){let{registration:r,replaced:n}=BA(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}"`)))||(pa.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=_g({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(vg(l,"mcp"),t.registerTool(p),Mr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ha().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ha().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&ud(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&pa.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function ld(t,e,r){let n=ha().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)ud(t,n,o,i);return n.byServer.delete(e.name),!0}function Sg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&dd(t,r)}import{getToolSource as tM}from"@augmentcode/auggie-v2";import{Type as WA}from"@sinclair/typebox";var VA=!1,wg=2e4;function KA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function JA(t){let e=0;for(let r of t.servers.values())e+=YA(r);return e}function YA(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||XA(n.inputSchema)&&(r+=KA(n))}return r}function XA(t){try{return WA.Unsafe(t??{}),!0}catch{return!1}}function QA(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:VA}function eM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:wg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:wg}function bg(t){return QA(t)?JA(t)>=eM(t):!1}var rM="AUGGIE_ENABLE_TOOL_SEARCH",nM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[rM]==="1"}function Ir(t){return pi()||t.toolSearchLatched?!0:bg(t)?(t.toolSearchLatched=!0,!0):!1}function ma(t){let e=t.getActiveTools(),r=e.filter(n=>!oM(n)||nM.has(n));r.length!==e.length&&t.setActiveTools(r)}function oM(t){return tM(t)==="mcp"}import{setToolSource as Ag}from"@augmentcode/auggie-v2";import{logger as CM}from"@hermes/logger";import{Type as Mg}from"@sinclair/typebox";import{logger as iM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Or={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Rg=iM.child({prefix:"pi-mcp"}),sM=5e3,aM=1,cM=2,uM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),dM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function lM(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 fM(t){return t===aM||typeof t=="string"&&uM.has(t)?"available":t===cM||typeof t=="string"&&dM.has(t)?"opt_in_required":"unknown"}function pM(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:lM(t.auth_type),state:fM(t.state)}}function fd(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 ga(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return ga(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!fd(t,r)):[]}async function Cg(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:Or.UNSPECIFIED}),signal:AbortSignal.timeout(r??sM)});if(!i.ok)return Rg.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=pM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Rg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var hM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",mM=`You are a tool search assistant. Given a user's query and a list of available tools, identify the single best matching tool.
8
+ deps: ${r}}`};var I1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=O1(t);EC(t,e),TC(t,r)}};function O1({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 EC(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,ks.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,ks.checkReportMissingProp)(t,u)}):(r.if((0,qp._)`${c} && (${(0,ks.checkMissingProp)(t,a,i)})`),(0,ks.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=EC;function TC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,$1.alwaysValidSchema)(i,e[a])||(r.if((0,ks.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=TC;Xt.default=I1});var $C=P(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var MC=j(),z1=B(),N1={message:"property name must be valid",params:({params:t})=>(0,MC._)`{propertyName: ${t.propertyName}}`},D1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:N1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,z1.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,MC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Hp.default=D1});var Zp=P(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var Gc=bt(),Dt=j(),L1=hr(),Zc=B(),j1={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},F1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:j1,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,Zc.alwaysValidSchema)(s,r))return;let u=(0,Gc.allSchemaProperties)(n.properties),d=(0,Gc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${L1.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,Zc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Gc.isOwnProperty)(e,w,g)}else u.length?v=(0,Dt.or)(...u.map(w=>(0,Dt._)`${g} === ${w}`)):v=Dt.nil;return d.length&&(v=(0,Dt.or)(v,...d.map(w=>(0,Dt._)`${(0,Gc.usePattern)(t,w)}.test(${g})`))),(0,Dt.not)(v)}function p(g){e.code((0,Dt._)`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,Zc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(m(g,v,!1),e.if((0,Dt.not)(v),()=>{t.reset(),p(g)})):(m(g,v),a||e.if((0,Dt.not)(v),()=>e.break()))}}function m(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Zc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Gp.default=F1});var zC=P(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var U1=ps(),IC=bt(),Bp=B(),OC=Zp(),q1={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&&OC.default.code(new U1.KeywordCxt(i,OC.default,"additionalProperties"));let s=(0,IC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Bp.mergeEvaluated.props(e,(0,Bp.toHash)(s),i.props));let a=s.filter(l=>!(0,Bp.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,IC.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)}}};Wp.default=q1});var jC=P(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var NC=bt(),Bc=j(),DC=B(),LC=B(),H1={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,NC.allSchemaProperties)(r),c=a.filter(m=>(0,DC.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 Bc.Name)&&(i.props=(0,LC.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,DC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Bc._)`${(0,NC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:LC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Bc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Bc.not)(d),()=>e.break())})})}}};Vp.default=H1});var FC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var G1=B(),Z1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,G1.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"}};Kp.default=Z1});var UC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var B1=bt(),W1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:B1.validateUnion,error:{message:"must match a schema in anyOf"}};Jp.default=W1});var qC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var Wc=j(),V1=B(),K1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Wc._)`{passingSchemas: ${t.passing}}`},J1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:K1,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,V1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Wc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Wc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Wc.Name)})})}}};Yp.default=J1});var HC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var Y1=B(),X1={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,Y1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Xp.default=X1});var BC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var Vc=j(),ZC=B(),Q1={message:({params:t})=>(0,Vc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Vc._)`{failingKeyword: ${t.ifClause}}`},eF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Q1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,ZC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=GC(n,"then"),i=GC(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,Vc.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,Vc._)`${d}`):t.setParams({ifClause:d})}}}};function GC(t,e){let r=t.schema[e];return r!==void 0&&!(0,ZC.alwaysValidSchema)(t,r)}Qp.default=eF});var WC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var tF=B(),rF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,tF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};eh.default=rF});var VC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var nF=Dp(),oF=CC(),iF=Lp(),sF=xC(),aF=kC(),cF=AC(),uF=$C(),dF=Zp(),lF=zC(),fF=jC(),pF=FC(),hF=UC(),mF=qC(),gF=HC(),yF=BC(),vF=WC();function _F(t=!1){let e=[pF.default,hF.default,mF.default,gF.default,yF.default,vF.default,uF.default,dF.default,cF.default,lF.default,fF.default];return t?e.push(oF.default,sF.default):e.push(nF.default,iF.default),e.push(aF.default),e}th.default=_F});var KC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var Re=j(),SF={message:({schemaCode:t})=>(0,Re.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Re._)`{format: ${t}}`},wF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:SF,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,Re._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,Re._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,Re._)`${m}.type || "string"`).assign(v,(0,Re._)`${m}.validate`),()=>r.assign(g,(0,Re._)`"string"`).assign(v,m)),t.fail$data((0,Re.or)(w(),b()));function w(){return c.strictSchema===!1?Re.nil:(0,Re._)`${s} && !${v}`}function b(){let R=d.$async?(0,Re._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Re._)`${v}(${n})`,_=(0,Re._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,Re._)`${v} && ${v} !== true && ${g} === ${e} && !${_}`}}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(R());function w(){if(c.strictSchema===!1){l.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function b(_){let C=_ instanceof RegExp?(0,Re.regexpCode)(_):c.code.formats?(0,Re._)`${c.code.formats}${(0,Re.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:_,code:C});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Re._)`${I}.validate`]:["string",_,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,Re._)`await ${v}(${n})`}return typeof g=="function"?(0,Re._)`${v}(${n})`:(0,Re._)`${v}.test(${n})`}}}};rh.default=wF});var JC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var bF=KC(),RF=[bF.default];nh.default=RF});var YC=P(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.contentVocabulary=No.metadataVocabulary=void 0;No.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];No.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var QC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var CF=sC(),PF=SC(),xF=VC(),kF=JC(),XC=YC(),EF=[CF.default,PF.default,(0,xF.default)(),kF.default,XC.metadataVocabulary,XC.contentVocabulary];oh.default=EF});var tP=P(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.DiscrError=void 0;var eP;(function(t){t.Tag="tag",t.Mapping="mapping"})(eP||(Kc.DiscrError=eP={}))});var nP=P(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});var Do=j(),ih=tP(),rP=Ac(),TF=hs(),AF=B(),MF={message:({params:{discrError:t,tagName:e}})=>t===ih.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Do._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},$F={keyword:"discriminator",type:"object",schemaType:"object",error:MF,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,Do._)`${r}${(0,Do.getProperty)(a)}`);e.if((0,Do._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:ih.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,Do._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:ih.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,Do.Name),h}function f(){var p;let h={},m=v(o),g=!0;for(let R=0;R<s.length;R++){let _=s[R];if(_?.$ref&&!(0,AF.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=rP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof rP.SchemaEnv&&(_=_.schema),_===void 0)throw new TF.default(i.opts.uriResolver,i.baseId,I)}let C=(p=_?.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(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 w(R,_){if(R.const)b(R.const,_);else if(R.enum)for(let C of R.enum)b(C,_);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function b(R,_){if(typeof R!="string"||R in h)throw new Error(`discriminator: "${a}" values must be unique strings`);h[R]=_}}}};sh.default=$F});var oP=P((K3,IF)=>{IF.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 ch=P((le,ah)=>{"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 OF=eC(),zF=QC(),NF=nP(),iP=oP(),DF=["/properties"],Jc="http://json-schema.org/draft-07/schema",Lo=class extends OF.default{_addVocabularies(){super._addVocabularies(),zF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(NF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(iP,DF):iP;this.addMetaSchema(e,Jc,!1),this.refs["http://json-schema.org/schema"]=Jc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Jc)?Jc:void 0)}};le.Ajv=Lo;ah.exports=le=Lo;ah.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var LF=ps();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return LF.KeywordCxt}});var jo=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return jo._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return jo.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return jo.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return jo.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return jo.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return jo.CodeGen}});var jF=Ec();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return jF.default}});var FF=hs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return FF.default}})});var pP=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(uP,fh),time:Qt(dh(!0),ph),"date-time":Qt(sP(!0),lP),"iso-time":Qt(dh(),dP),"iso-date-time":Qt(sP(),fP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:BF,"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:QF,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:WF,int32:{type:"number",validate:JF},int64:{type:"number",validate:YF},float:{type:"number",validate:cP},double:{type:"number",validate:cP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,fh),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,ph),"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,lP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,dP),"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,fP),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 UF(t){return t%4===0&&(t%100!==0||t%400===0)}var qF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,HF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function uP(t){let e=qF.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&&UF(r)?29:HF[n])}function fh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var uh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function dh(t){return function(r){let n=uh.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 ph(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 dP(t,e){if(!(t&&e))return;let r=uh.exec(t),n=uh.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 lh=/t|\s/i;function sP(t){let e=dh(t);return function(n){let o=n.split(lh);return o.length===2&&uP(o[0])&&e(o[1])}}function lP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function fP(t,e){if(!(t&&e))return;let[r,n]=t.split(lh),[o,i]=e.split(lh),s=fh(r,o);if(s!==void 0)return s||ph(n,i)}var GF=/\/|:/,ZF=/^(?:[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 BF(t){return GF.test(t)&&ZF.test(t)}var aP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function WF(t){return aP.lastIndex=0,aP.test(t)}var VF=-(2**31),KF=2**31-1;function JF(t){return Number.isInteger(t)&&t<=KF&&t>=VF}function YF(t){return Number.isInteger(t)}function cP(){return!0}var XF=/[^\\]\\Z/;function QF(t){if(XF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var hP=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var eU=ch(),Lt=j(),Qr=Lt.operators,Yc={formatMaximum:{okStr:"<=",ok:Qr.LTE,fail:Qr.GT},formatMinimum:{okStr:">=",ok:Qr.GTE,fail:Qr.LT},formatExclusiveMaximum:{okStr:"<",ok:Qr.LT,fail:Qr.GTE},formatExclusiveMinimum:{okStr:">",ok:Qr.GT,fail:Qr.LTE}},tU={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${Yc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${Yc[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(Yc),type:"string",schemaType:"string",$data:!0,error:tU,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 eU.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,Lt._)`${f}[${c.schemaCode}]`);t.fail$data((0,Lt.or)((0,Lt._)`typeof ${p} != "object"`,(0,Lt._)`${p} instanceof RegExp`,(0,Lt._)`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,Lt._)`${s.code.formats}${(0,Lt.getProperty)(f)}`:void 0});t.fail$data(l(h))}function l(f){return(0,Lt._)`${f}.compare(${r}, ${n}) ${Yc[o].fail} 0`}},dependencies:["format"]};var rU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=rU});var vP=P((Es,yP)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});var Uo=pP(),nU=hP(),hh=j(),mP=new hh.Name("fullFormats"),oU=new hh.Name("fastFormats"),mh=(t,e={keywords:!0})=>{if(Array.isArray(e))return gP(t,e,Uo.fullFormats,mP),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,oU]:[Uo.fullFormats,mP],o=e.formats||Uo.formatNames;return gP(t,o,r,n),e.keywords&&(0,nU.default)(t),t};mh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function gP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,hh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}yP.exports=Es=mh;Object.defineProperty(Es,"__esModule",{value:!0});Es.default=mh});var WP=P((M8,BP)=>{BP.exports=ZP;ZP.sync=NU;var HP=Rr("fs");function zU(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 GP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:zU(e,r)}function ZP(t,e,r){HP.stat(t,function(n,o){r(n,n?!1:GP(o,t,e))})}function NU(t,e){return GP(HP.statSync(t),t,e)}});var XP=P(($8,YP)=>{YP.exports=KP;KP.sync=DU;var VP=Rr("fs");function KP(t,e,r){VP.stat(t,function(n,o){r(n,n?!1:JP(o,e))})}function DU(t,e){return JP(VP.statSync(t),e)}function JP(t,e){return t.isFile()&&LU(t,e)}function LU(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 ex=P((O8,QP)=>{var I8=Rr("fs"),cu;process.platform==="win32"||global.TESTING_WINDOWS?cu=WP():cu=XP();QP.exports=Oh;Oh.sync=jU;function Oh(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){Oh(t,e||{},function(i,s){i?o(i):n(s)})})}cu(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function jU(t,e){try{return cu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ax=P((z8,sx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",tx=Rr("path"),FU=Ko?";":":",rx=ex(),nx=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),ox=(t,e)=>{let r=e.colon||FU,n=t.match(/\//)||Ko&&t.match(/\\/)?[""]:[...Ko?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Ko?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Ko?o.split(r):[""];return Ko&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},ix=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=ox(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(nx(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=tx.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];rx(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)},UU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=ox(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=tx.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(rx.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 nx(t)};sx.exports=ix;ix.sync=UU});var ux=P((N8,zh)=>{"use strict";var cx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};zh.exports=cx;zh.exports.default=cx});var px=P((D8,fx)=>{"use strict";var dx=Rr("path"),qU=ax(),HU=ux();function lx(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=qU.sync(t.command,{path:r[HU({env:r})],pathExt:e?dx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=dx.resolve(o?t.options.cwd:"",s)),s}function GU(t){return lx(t)||lx(t,!0)}fx.exports=GU});var hx=P((L8,Dh)=>{"use strict";var Nh=/([()\][%!^"`<>&|;, *?])/g;function ZU(t){return t=t.replace(Nh,"^$1"),t}function BU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Nh,"^$1"),e&&(t=t.replace(Nh,"^$1")),t}Dh.exports.command=ZU;Dh.exports.argument=BU});var gx=P((j8,mx)=>{"use strict";mx.exports=/^#!(.*)/});var vx=P((F8,yx)=>{"use strict";var WU=gx();yx.exports=(t="")=>{let e=t.match(WU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var Sx=P((U8,_x)=>{"use strict";var Lh=Rr("fs"),VU=vx();function KU(t){let r=Buffer.alloc(150),n;try{n=Lh.openSync(t,"r"),Lh.readSync(n,r,0,150,0),Lh.closeSync(n)}catch{}return VU(r.toString())}_x.exports=KU});var Cx=P((q8,Rx)=>{"use strict";var JU=Rr("path"),wx=px(),bx=hx(),YU=Sx(),XU=process.platform==="win32",QU=/\.(?:com|exe)$/i,eq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function tq(t){t.file=wx(t);let e=t.file&&YU(t.file);return e?(t.args.unshift(t.file),t.command=e,wx(t)):t.file}function rq(t){if(!XU)return t;let e=tq(t),r=!QU.test(e);if(t.options.forceShell||r){let n=eq.test(e);t.command=JU.normalize(t.command),t.command=bx.command(t.command),t.args=t.args.map(i=>bx.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 nq(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:rq(n)}Rx.exports=nq});var kx=P((H8,xx)=>{"use strict";var jh=process.platform==="win32";function Fh(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 oq(t,e){if(!jh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Px(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Px(t,e){return jh&&t===1&&!e.file?Fh(e.original,"spawn"):null}function iq(t,e){return jh&&t===1&&!e.file?Fh(e.original,"spawnSync"):null}xx.exports={hookChildProcess:oq,verifyENOENT:Px,verifyENOENTSync:iq,notFoundError:Fh}});var Ax=P((G8,Jo)=>{"use strict";var Ex=Rr("child_process"),Uh=Cx(),qh=kx();function Tx(t,e,r){let n=Uh(t,e,r),o=Ex.spawn(n.command,n.args,n.options);return qh.hookChildProcess(o,n),o}function sq(t,e,r){let n=Uh(t,e,r),o=Ex.spawnSync(n.command,n.args,n.options);return o.error=o.error||qh.verifyENOENTSync(o.status,n),o}Jo.exports=Tx;Jo.exports.spawn=Tx;Jo.exports.sync=sq;Jo.exports._parse=Uh;Jo.exports._enoent=qh});var Nx=P(Gh=>{"use strict";var Ix=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,lq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Ox=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,fq=/\\([\u000b\u0020-\u00ff])/g,pq=/([\\"])/g,zx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Gh.format=hq;Gh.parse=mq;function hq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!zx.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],!Ox.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+yq(e[o])}return n}function mq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?gq(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(!zx.test(n))throw new TypeError("invalid media type");var o=new vq(n.toLowerCase());if(r!==-1){var i,s,a;for(Ix.lastIndex=r;s=Ix.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(fq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function gq(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 yq(t){var e=String(t);if(Ox.test(e))return e;if(e.length>0&&!lq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(pq,"\\$1")+'"'}function vq(t){this.parameters=Object.create(null),this.type=t}});import{logger as d4}from"@hermes/logger";import{logger as BH}from"@hermes/logger";var wT="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(wT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as _H}from"@augmentcode/auggie-v2";import{logger as SH}from"@hermes/logger";import{logger as YT}from"@hermes/logger";import{logger as RT}from"@hermes/logger";function bT(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":bT(t,e,r)?"plugin":"local"}function CT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var jm=RT.child({prefix:"pi-mcp"}),PT="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 ii(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 xT(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 ra=3e4;function kT(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>=ra?"failed":void 0}default:return}}var Fm="authentication required",ET="Authentication refresh is pending in the backend; retry shortly.",TT="timed out connecting after 30s",AT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",MT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",$T="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",IT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",OT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",zT="Server was not started: this session's Space policy does not allow it.",NT="Server was not started: its shared credential is not available to this session's identity.",DT="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 LT(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)?MT:AT,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",...FT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}jT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function jT(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=qm(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 Um(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 qm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:OT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:zT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:NT,failureCategory:"share_identity_excluded"};default:return}}function FT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:DT,failureCategory:"auth_terminal"};let i=qm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?IT:$T,failureCategory:"configuration"}}function UT(t,e){return e!==void 0?e.isAuthError?Fm:e.error:t.status==="initializing"?TT:t.lastError??(t.status==="auth_required"?Fm:void 0)}function Hm(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 qT(t,e,r){if(Hm(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 HT(t,e){let r=kT(t);if(r===void 0)return;let n=xT(e,t.name),o=r==="connected"?CT(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=Hm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=qT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?ET:UT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function GT(t){let e=[];for(let r of t.servers.values()){let n=HT(r,t);n!==void 0&&e.push(n)}return LT(t,e),e}function N(t,e){try{let r=GT(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(PT,o),jm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){jm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var na={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function ZT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function si(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function ai(t,e){return t.kind===e.kind&&t.identity===e.identity}function Gm(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 Gu(t,e){let r=ZT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function oa(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Zu(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:Gu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),oa(t,e,a),c}function Zm(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:Gu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),oa(e,r,s.owner),s}function ci(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=na[n.kind]>na[a.owner.kind],f=na[n.kind]===na[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Gm(a):void 0;Zu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Gu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),oa(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Bu(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,si(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ia(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);return!s||s.revision!==o||!ai(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||!ai(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Gm(s);if(a)return Zu(e,r,i),s.host=void 0,s.retirement=a,a}function Bm(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||!ai(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!ai(s.owner,n)||s.revision!==o.incumbent.revision?(oa(e,r,s.owner),!0):(i.delete(r),si(e).set(r,{kind:"blocked"}),!0))}function ke(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||!ai(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Zu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),si(e).set(r,{kind:"blocked"}),!0)}function D(t,e){return qt(t).get(e)}function Wu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Wm(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&&Wm(t.url)===Wm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Yn=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 di(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Vu(t){try{return new URL(t).toString()}catch{return t}}function ui(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Vu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Ht(t,e){return ui(e.config)}function pt(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Vu(t.url)===Vu(e.url)}function Ku(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):xr(r,n)}function Ju(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function BT(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 WT(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 Vm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Ju(e,r):n!==void 0&&e!==n}function Km(t,e,r){return r&&e!==void 0&&t!==void 0&&Ju(t,e)}function VT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Ju(i,n))}function Jm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(WT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Vm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Vm({identity:s.domain,...l})?!0:VT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function KT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function JT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ui(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function Ym(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=BT({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=Jm({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=Km(i,u,d),h=Km(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 C=KT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,C,{preserveNameState:w})}let b=Jm({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&&!b,_=!1;return t.equalRevisionRebindDomains?.delete(e),(R||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),_=!0),(R||h)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),_=!0),R&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),JT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:R,retiredConfig:c}),_&&(di(t,e),st(t,e),t.authRefreshNeededReportKeys?.delete(e)),R}function ht(t,e,r,n){return Ym(t,e,r,n,"durable")}function li(t,e,r,n){return Ym(t,e,r,n,"session")}function sa(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 Xm="augment:mcp-oauth-credentials",Qm=300*1e3,XT=256,Yu=YT.child({prefix:"pi-mcp"}),Et=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function qe(t){return`user:${t}`}function un(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 dn(t){return t.ownerDomain??Er(t.domain)}function eg(t,e,r){let n=qe(e);return r!==void 0?r===n:ct(t)||Er(t)===n}function QT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function eA(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 tA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function rA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&QT(t.credentialRevisions.get(e),r.credentialRevision)&&tA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function nA(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 oA(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 tg(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 rg(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Qm)&&or(t,n)}function iA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function ng(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();rg(e,a);let c=dn(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>=XT&&iA(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)},Qm),f.expiryTimer.unref?.(),Yu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function sA(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 aa(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:sA(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 og(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);aa({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function aA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||D(e,r.name)?.owner.kind==="local")return;Tr(e);let n=qe(r.id),o=nA(r),i=oA({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=aa({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),cA({state:e,config:r,domain:n}),{domain:n,...s}}function ig(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=dn(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 cA(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 uA(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(Xm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function dA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();rg(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 lA(t){let{config:e,pi:r,buffered:n}=t;Yu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Yu.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(Xm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function fA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(pt(n,r)){if(n.name===r.name)return;await li(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 pA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=rA(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 Et(a)}async function hA(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 fA({state:e,config:r,previousConfig:i})}catch(h){throw pA({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),uA({state:e,config:r,pi:n,intent:o});let p=dA({state:e,domain:o.domain,serverName:r.name});return Je({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&lA({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=aA({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=eA(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 hA({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 kA}from"@augmentcode/auggie-v2";import{homedir as sg}from"node:os";import{sep as mA}from"node:path";var Xu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},gA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,yA=/\\\$\{/g,vA=new Set(["workspaceFolder","augmentToken"]),ag="${workspaceFolder}";function cg(t,e){return t.includes(ag)?t.split(ag).join(e):t}function ug(t,e){return t.includes("${")?t.replace(gA,(n,o,i)=>{if(vA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Xu(o)}).replace(yA,"${"):t}function _A(t){return t.startsWith("~")?t==="~"?sg():t.startsWith("~/")||t.startsWith(`~${mA}`)?sg()+t.slice(1):t:t}function Qu(t,e,r){return _A(ug(cg(t,e),r))}function Xn(t,e,r){return ug(cg(t,e),r)}function dg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var SA="$augment-";function wA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(SA)?i:Xn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:wA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:Qu(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?dg(t.env,e,r):void 0,cwd:t.cwd?Qu(t.cwd,e,r):e}}import{readFileSync as RA}from"node:fs";var Tt=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Qn(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 bA(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 eo(t,e){let r=Qn(e);if(!r)throw new Tt(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new Tt(`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 Tt(`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:bA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var pg=t=>RA(t,"utf8");function ca(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function lg(t){return ca(t)&&("command"in t||"url"in t)}function td(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function fg(t,e){return td(t.name)??e}function ed(t,e){let r=Qn(t);if(r==="http"||r==="sse")return td(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return td(t.name,t.title,n)??e}function CA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[ed(n,String(r)),n]});if(ca(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[ed(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ca(n))return Object.entries(n).map(([o,i])=>{let s=i;return[fg(s,o),s]})}if(lg(t)){let r=t;return[[ed(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(lg))return Object.entries(t).map(([r,n])=>{if(!ca(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[fg(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 rd(t){return t instanceof Error?t.message:String(t)}function PA(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}": ${rd(i)}`});return}}function xA(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=PA(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}: ${rd(c)}`}),[]}try{return CA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${rd(c)}`}),[]}}function nd(t,e=pg){let r={},n=[];for(let o of t)for(let[i,s]of xA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function od(t,e=pg){return!t||t.length===0?new Set:new Set(Object.keys(nd(t,e).servers))}var EA=["global","project","local","managed"];function TA(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 AA(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 MA(t,e,r){let n=nd(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 $A(t,e,r){let n=kA.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 AA(EA.map(o=>TA(n,o)))}function to(t,e,r,n){let o=[],i=r&&r.length>0?MA(r,n,o):$A(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=eo(a,c);s.push(u.type==="stdio"?Zt(u,t):Gt(u,t))}catch(u){let d=u instanceof Tt?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 vg}from"@augmentcode/auggie-v2";import{logger as HA}from"@hermes/logger";import{Type as GA}from"@sinclair/typebox";var ua=Symbol.for("__pi_mcp_state__");function IA(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 OA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function zA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&IA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&OA(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 NA(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.initialConnectPromise??=null,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&&zA(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.cloudModeListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function fi(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 ro(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 id(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 da(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function la(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()?id({state:e,configId:r,generation:n}):da({state:e,configId:r,generation:n}),s),s=>{throw da({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[ua])return NA(t[ua]),t[ua];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Yn,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,initialConnectPromise:null,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,isCloudMode:void 0,cloudModeListenerBound:!1};return t[ua]=e,e}var hg=Symbol.for("__hermes_mcp_tool_registry__"),DA=Symbol.for("__hermes_mcp_extension_factory__");function sd(){let t=globalThis;return t[hg]??=new Map,t[hg]}function mg(t){return sd().get(t)}function Mr(t){sd().set(t.name,t)}function no(t,e){let r=sd();(e===void 0||r.get(t)===e)&&r.delete(t)}function gg(t){Reflect.set(t,DA,!0)}function fa(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 LA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function jA(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 FA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
+ `).trim()}function ad(t,e,r){if(t.isError){let o=FA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=jA(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 yg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(fa(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=LA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return ad(o,t.serverName,r)}var UA=/[^a-zA-Z0-9_-]/g;function cd(t){return t.replace(UA,"_")}function qA(t,e){let r=cd(e),n=cd(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=qA(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=`_${cd(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var pa=HA.child({prefix:"pi-mcp"});function ha(){return ee().toolRegistrationsByPi}function _g(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=GA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){pa.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}pa.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)=>yg({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d,toolCallId:c})}}function ud(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),no(n,i),r.definitionsByName?.delete(n),ZA(t,e,n,r,o)}function ZA(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=_g({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;vg(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 BA(t,e){let r=ha(),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)ud(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 dd(t,e){let{registration:r,replaced:n}=BA(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(w=>w.server===s&&(w.message===m||w.message.includes(`both map to "${l}"`)))||(pa.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=_g({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(vg(l,"mcp"),t.registerTool(p),Mr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ha().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ha().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&ud(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&pa.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function ld(t,e,r){let n=ha().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)ud(t,n,o,i);return n.byServer.delete(e.name),!0}function Sg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&dd(t,r)}import{getToolSource as tM}from"@augmentcode/auggie-v2";import{Type as WA}from"@sinclair/typebox";var VA=!1,wg=2e4;function KA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function JA(t){let e=0;for(let r of t.servers.values())e+=YA(r);return e}function YA(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||XA(n.inputSchema)&&(r+=KA(n))}return r}function XA(t){try{return WA.Unsafe(t??{}),!0}catch{return!1}}function QA(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:VA}function eM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:wg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:wg}function bg(t){return QA(t)?JA(t)>=eM(t):!1}var rM="AUGGIE_ENABLE_TOOL_SEARCH",nM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[rM]==="1"}function Ir(t){return pi()||t.toolSearchLatched?!0:bg(t)?(t.toolSearchLatched=!0,!0):!1}function ma(t){let e=t.getActiveTools(),r=e.filter(n=>!oM(n)||nM.has(n));r.length!==e.length&&t.setActiveTools(r)}function oM(t){return tM(t)==="mcp"}import{setToolSource as Ag}from"@augmentcode/auggie-v2";import{logger as CM}from"@hermes/logger";import{Type as Mg}from"@sinclair/typebox";import{logger as iM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Or={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Rg=iM.child({prefix:"pi-mcp"}),sM=5e3,aM=1,cM=2,uM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),dM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function lM(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 fM(t){return t===aM||typeof t=="string"&&uM.has(t)?"available":t===cM||typeof t=="string"&&dM.has(t)?"opt_in_required":"unknown"}function pM(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:lM(t.auth_type),state:fM(t.state)}}function fd(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 ga(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return ga(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!fd(t,r)):[]}async function Cg(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:Or.UNSPECIFIED}),signal:AbortSignal.timeout(r??sM)});if(!i.ok)return Rg.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=pM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Rg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var hM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",mM=`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
 
@@ -21,9 +21,9 @@ ${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:oo,label:oo,description:OM(),parameters:Mg.Unsafe(kM),execute:(n,o,i,s,a)=>$M(t,a,o)},r={name:zr,label:zr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Mg.Unsafe(EM),execute:(n,o,i)=>IM(t,o,i,{toolCallId:n})};Ag(oo,"mcp"),Ag(zr,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Ig.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as ak}from"@augmentcode/auggie-v2";import{logger as Cq,logPublic as Pq}from"@hermes/logger";import{logger as qM}from"@hermes/logger";import{logger as zM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var zg=zM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},md=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 gd(t){return t instanceof mt?t.statusCode>=500:!0}async function hn(t){let e;for(let r=0;r<mi.maxTries;r++)try{return await t()}catch(n){if(e=n,!gd(n))throw n;if(r<mi.maxTries-1){let o=Math.min(mi.initialMs*mi.mult**r,mi.maxMs);await pn(o)}}throw e}var va=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??md}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 Ng(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)}`;zg.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)}`;zg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function NM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Dg=32;function DM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Dg&&(e=e.slice(0,Dg)),e=e.replace(/_+$/,""),e}function Lg(t,e){let r=e?DM(e):"",n=NM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function jg(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 LM=1e12,jM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function FM(t){let e=jM.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 UM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<LM?t*1e3:t;if(typeof t=="string")return FM(t)}function Fg(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:UM(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=qM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},qg=[100,500],HM=qg.length+1,GM=t=>new Promise(e=>{setTimeout(e,t)});function Ug(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var vd="augment.mcp-access-token.",ZM=JSON.stringify({retired:!0}),_a=3;function Wt(t){return`${vd}${t}`}function Sa(t){return`legacy:${t}`}function Tt(t){return t?.id?Lg(t.id,t.name):void 0}function vi(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:Hg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Hg(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function _i(t){if(typeof t=="string")try{return _i(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:Hg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function At(t){return _i(vi(t))}function BM(t){return _i(vi(t))}function WM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function io(t){try{let e=JSON.parse(t);return{credentialIdentity:_i(e.credentialIdentity),state:WM(e)}}catch{return{}}}function gi(t,e){let r={...t,type:"oauth",credentialIdentity:vi(e)};return JSON.stringify(r)}function mn(t,e){let r=jg({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:vi(e),credentialState:"active"})}function VM(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function KM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=BM(e),i=_i(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 yd(t){try{let e=Fg(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 yi=class{_memory=new Yn;_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=GM){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<_a;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=io(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=yd(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=io(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!yd(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:Sa(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!==Sa(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!==gi(i,a)))try{return{revision:await r.upsertUserSecret(n,gi(s,c),u.revision),domain:Sa(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!==gi(o,s)))try{await r.upsertUserSecret(n,gi(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<_a;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?io(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<_a;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?io(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,VM(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:Sa(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Ug(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?HM:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new so;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 so}_persistenceRetryDelay(e,r,n){let o=n?qg[r]:void 0,i=!(e instanceof Z)&&gd(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),gi(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 so||!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),ZM)}):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 so&&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(Ug(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<_a;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=io(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=yd(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=io(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?KM(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 Gg="Augment Code",Zg="https://augmentcode.com",Bg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var YM=1e3,XM=500;function Sd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function Si(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var _d=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Wg(t){return new URLSearchParams({k:t}).toString().slice(2)}function QM(t,e){let r=`${Wg(t)}:${Wg(e)}`;return`Basic ${btoa(r)}`}function Yg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function e0(t){return t.client.token_endpoint_auth_method==="none"||!Yg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function t0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function r0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var n0=401,Xg=500;function wd(t,...e){return t.status<Xg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Vg(t){return wd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===n0}async function Kg(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=Yg(t);e==="basic"&&i?n.Authorization=QM(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=r0(c),d=c.slice(0,XM);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new _d;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*YM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Jg(t,e){try{return await Kg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&wd(r,"invalid_target"))return await Kg(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 bd(t){return!(t instanceof gn)||t.status>=Xg?!1:wd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Rd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=e0(t);try{return await Jg(e,r)}catch(n){let o=t0(r);if(!(n instanceof gn)||!o||!Vg(n))throw n;try{return await Jg(e,o)}catch(i){throw i instanceof gn&&Vg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as Y0}from"@hermes/logger";var xd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(xd="oauth4webapi/v3.8.6");function lo(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 Md=Symbol(),o0=Symbol(),i0=Symbol(),vn=Symbol();var Qg=Symbol();var s0=new TextEncoder,a0=new TextDecoder;function kd(t){return typeof t=="string"?s0.encode(t):a0.decode(t)}var Ed;Uint8Array.prototype.toBase64?Ed=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Ed=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 Td;Uint8Array.fromBase64?Td=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:Td=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 ba(t){return typeof t=="string"?Td(t):Ed(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=j0,Error.captureStackTrace?.(this,this.constructor)}},wi=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 wi(t,{code:e,cause:r})}function Ra(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function $d(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(xd&&!e.has("user-agent")&&e.set("user-agent",xd),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function Id(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 c0(t){return t.includes("//")?t.replace("//","/"):t}function u0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=c0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function d0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Ye);dy(t,n?.[Md]!==!0);let o=r(new URL(t.href)),i=$d(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:Id(o,n?.signal)})}function ao(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 ry(t,e){let r=t;if(!(r instanceof URL)&&r!==xa)throw he('"expectedIssuerIdentifier" must be an instance of URL',Ye);if(!lo(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)',Ud,e);Ci(e);let n=await Aa(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==xa&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Ea,{expected:r.href,body:n,attribute:"issuer"});return n}function ny(t){f0(t,"application/json")}function l0(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,U0,t)}function f0(t,e){if(C0(t)!==e)throw l0(t,e)}function Od(){return ba(crypto.getRandomValues(new Uint8Array(32)))}function oy(){return Od()}function iy(){return Od()}function sy(){return Od()}async function ay(t){return $e(t,"codeVerifier"),ba(await crypto.subtle.digest("SHA-256",kd(t)))}function zd(t){let e=t?.[o0];return typeof e=="number"&&Number.isFinite(e)?e:0}function Nd(t){let e=t?.[i0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Dd(){return Math.floor(Date.now()/1e3)}function ka(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Ye);$e(t.issuer,'"as.issuer"')}function Ld(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Ye);$e(t.client_id,'"client.client_id"')}function ey(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 jd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function cy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=ey(r.client_id),s=ey(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function uy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var p0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function dy(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",q0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",H0,t)}function ty(t,e,r,n){let o;if(typeof t!="string"||!(o=p0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?G0:Z0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return dy(o,n),o}function ly(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?ty(t.mtls_endpoint_aliases[e],e,r,n):ty(t[e],e,r,n)}var uo=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=L0,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)}},bi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=F0,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)}},Ri=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=D0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Ca="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",h0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",m0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',g0="("+Ca+")\\s*=\\s*"+m0,y0="("+Ca+")\\s*=\\s*("+Ca+")",v0=new RegExp("^[,\\s]*("+Ca+")"),_0=new RegExp("^[,\\s]*"+g0+"[,\\s]*(.*)"),S0=new RegExp("^[,\\s]*"+y0+"[,\\s]*(.*)"),w0=new RegExp("^("+h0+")(?:$|[,\\s])(.*)");function b0(t){if(!lo(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(v0),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(_0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(S0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(w0)){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 R0(t){if(t.status>399&&t.status<500){Ci(t),ny(t);try{let e=await t.clone().json();if(Ra(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function fy(t,e,r){if(t.status!==e){E0(t);let n;throw(n=await R0(t))?(await t.body?.cancel(),new uo("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)`,Ud,t)}}function py(t){if(!Fd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function C0(t){return t.headers.get("content-type")?.split(";")[0]}async function P0(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:Id(n,s?.signal)})}async function x0(t,e,r,n,o,i){let s=ly(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Md]!==!0);o.set("grant_type",n);let a=$d(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(py(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await P0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var hy=new WeakMap,k0=new WeakMap;function my(t){if(!t.id_token)return;let e=hy.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function gy(t,e,r,n,o,i){if(ka(t),Ld(e),!lo(r,Response))throw he('"response" must be an instance of Response',Ye);await fy(r,200,"Token Endpoint"),Ci(r);let s=await Aa(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;ao(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&&(ao(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await B0(s.id_token,W0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),zd(e),Nd(e),o).then(O0.bind(void 0,a)).then(A0.bind(void 0,t)).then(T0.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',Nr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',Nr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&ao(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),k0.set(r,u),hy.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 co("unsupported `token_type` value",{cause:{body:s}});return s}function E0(t){let e;if(e=b0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function T0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"});return e}function A0(t,e){let r=t[J0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',Nr,{expected:r,claims:e.claims,claim:"iss"});return e}var Fd=new WeakSet;function M0(t){return Fd.add(t),t}var $0=Symbol();async function yy(t,e,r,n,o,i,s){if(ka(t),Ld(e),!Fd.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!==$0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),x0(t,e,r,"authorization_code",c,s)}var I0={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 O0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${I0[r]}) claim missing`,V,{claims:e.claims});return e}var Cd=Symbol(),Pd=Symbol();async function vy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?z0(t,e,r,n.expectedNonce,n.maxAge,n[Qg],n.recognizedTokenTypes):N0(t,e,r,n?.[Qg],n?.recognizedTokenTypes)}async function z0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=Cd;break;case Cd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Pd;break;case Pd:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await gy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=my(c);if(o!==Pd){let d=Dd()+zd(e),l=Nd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",Pa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===Cd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:n,claims:u,claim:"nonce"});return c}async function N0(t,e,r,n,o){let i=await gy(t,e,r,void 0,n,o),s=my(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=Dd()+zd(e),c=Nd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",Pa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:s,claim:"nonce"})}return i}var D0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",L0="OAUTH_RESPONSE_BODY_ERROR",j0="OAUTH_UNSUPPORTED_OPERATION",F0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Ad="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var U0="OAUTH_RESPONSE_IS_NOT_JSON",Ud="OAUTH_RESPONSE_IS_NOT_CONFORM",q0="OAUTH_HTTP_REQUEST_FORBIDDEN",H0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",Pa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Nr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Ea="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var G0="OAUTH_MISSING_SERVER_METADATA",Z0="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function B0(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 co("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(kd(ba(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Ad,l)}if(!Ra(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new co('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(kd(ba(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Ad,l)}if(!Ra(u))throw O("JWT Payload must be a top level object",V,t);let d=Dd()+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',Pa,{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',Pa,{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 W0(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 V0=Symbol(),K0=Symbol();function _y(t,e,r,n){if(ka(t),Ld(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 K0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case V0: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 bi("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 co("implicit and hybrid flows are not supported");return M0(new URLSearchParams(r))}async function Sy(t,e,r){ka(t);let n=ly(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Md]!==!0),o=$d(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(py(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:Id(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function wy(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Ye);await fy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await Aa(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&&ao(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function by(t,e){return d0(t,"resourceIdentifier",r=>(u0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Ta(t,e){let r=t;if(!(r instanceof URL)&&r!==xa)throw he('"expectedResourceIdentifier" must be an instance of URL',Ye);if(!lo(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)',Ud,e);Ci(e);let n=await Aa(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==xa&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Ea,{expected:r.href,body:n,attribute:"resource"});return n}async function Aa(t,e=ny){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Ad,n)}if(!Ra(r))throw O('"response" body must be a top level object',V,{body:r});return r}var xa=Symbol(),J0=Symbol();var Py=Y0.child({prefix:"pi-mcp"}),Pi=1e4,X0=1e3,Q0=401,Ry=200,e$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,t$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,xy;function fo(){return xy??globalThis.fetch}function ky(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Ey(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Hd(t){let e=Ey(t);try{let r=await r$(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await a$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Ia(r)}throw new Error("Failed to discover metadata URL")}async function r$(t){try{let e=await by(t,{signal:AbortSignal.timeout(Pi),[vn]:xy??void 0});return e.ok?await Ta(t,e):(e.body?.cancel().catch(()=>{}),await Ty(t,e.headers.get("www-authenticate"))??await Cy(t))}catch{return await Cy(t)}}async function Cy(t){for(let e of["HEAD","GET"])try{let r=await fo()(t,{method:e,signal:AbortSignal.timeout(Pi)});r.body?.cancel().catch(()=>{});let n=await Ty(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function Ty(t,e){let r=s$(e);if(r)try{let n=await fo()(r,{signal:AbortSignal.timeout(Pi)});return await n$(t,n)}catch{return}}async function n$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Ta(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Ea)throw o;let i=o$(r);if(!i||!i$(i,t))throw o;return await Ta(i,new Response(r,n))}}function o$(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function i$(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 s$(t){if(!t)return;let e=t.match(e$),r=t.match(t$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function a$(t){for(let e of c$(t))try{let r=new URL(e,t),n=await fo()(r,{signal:AbortSignal.timeout(Pi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function c$(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 Gd(t){try{let e=await fo()(t,{signal:AbortSignal.timeout(Pi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await u$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await ry(o,new Response(r,n))}catch(e){throw Ia(e)}}async function u$(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 qd=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 d$(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 Zd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return d$({...t,clientId:n});if(!e.registration_endpoint)throw new qd(e.issuer);return await l$(e,r)}async function l$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await Sy(t,{client_name:Gg,client_uri:Zg,logo_uri:Bg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:f$});return n.ok||Py.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await wy(n)}catch(r){throw Ia(r)}}async function f$(t,e){let r=await fo()(t,ky(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||Py.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${h$(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 p$(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}),fo()(t,ky(o))}function h$(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>Ry?`${t.slice(0,Ry)}\u2026`:t}}async function Ma(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=oy(),c=await ay(a),u=iy(),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=Ey(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=sy(),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 $a(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Bd(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 Ma(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function m$(t,e,r){let n=await yy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:p$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return vy(t.serverMetadata,t.client,await g$(n))}async function Wd(t,e){try{let r=_y(e.serverMetadata,e.client,t,e.state),n=await v$(e.client,o=>m$(e,r,o));return w$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Ia(r)}}async function g$(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 Ay(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function y$(t){let e=Ay(t);return e===void 0?uy():t.token_endpoint_auth_method==="client_secret_basic"?cy(e):jd(e)}async function v$(t,e){try{return await e(y$(t))}catch(r){let n=_$(t);if(n&&S$(r))return await e(n);throw r}}function _$(t){let e=Ay(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return jd(e)}function S$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===Q0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function w$(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*X0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Ia(t){if(t instanceof uo||t instanceof bi){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 b$=/(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,My=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,$y=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Iy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",R$=/[.*+?^${}()|[\]\\]/g;function Vd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function C$(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:Vd(a,r),{value:c&&"value"in c?Oy(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 Oy(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Vd(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 Vd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:C$(t,e,r)}function Jd(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(R$,"\\$&")).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=>Oy(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var P$=500,x$=8192,k$=6;function E$(t){return My.test(t)||$y.test(t)||Iy.test(t)}var T$=new RegExp(My.source,"g"),A$=new RegExp($y.source,"gi"),M$=new RegExp(Iy.source,"g");function zy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Oa(t){return t&&zy(t,x$).replace(T$,_n).replace(A$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(M$,_n)}function Kd(t,e,r){if(e)return _n;if(typeof t=="string")return E$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=k$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Kd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Kd(i,b$.test(o),r+1);return n}function Ny(t,e=P$){if(t==null)return;let r=Kd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return zy(n,e)}var Ly={reportError:()=>{}},Dy=Symbol.for("__pi_mcp_error_reporter_slot__");function jy(){let t=globalThis,e=t[Dy];return e||(e={reporter:null},t[Dy]=e),e}function Fy(t){let e=jy(),r=e.reporter??Ly;return e.reporter=t,r}function $$(){return jy().reporter??Ly}function xi(t,e){try{$$().reportError(t,e)}catch{}}import{logger as I$}from"@hermes/logger";var Yd=I$.child({prefix:"pi-mcp"});function Uy(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++):Yd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Yd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function qy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(vd)){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 Hy(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,Yd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Gy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as O$}from"@hermes/logger";var ki=O$.child({prefix:"pi-mcp"}),z$="$augment-",Ei=/\$augment-[a-zA-Z0-9_.-]+/g,N$=new RegExp(Ei.source);function Dr(t){return N$.test(t)}function za(t){return t.slice(z$.length)}function Ti(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ei))e.add(za(n[0]));return[...e].sort()}var D$=["permission_denied","missing","transient"];function Zy(t){let e=new Set(t);return D$.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 By(t,e,r,n,o,i,s){let a=[...t.matchAll(Ei)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=za(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),ki.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),ki.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),ki.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),ki.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Wy({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(!Dr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){ki.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await By(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 L$=/["$`\\]/g;function j$(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 F$(t,e){let r=j$(e);if(r==="double")return t.replace(L$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Vy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await By(t,"command",e,n,o,i,r?F$: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 Sq}from"node:async_hooks";var Ky,Xd=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.")}},po=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Ky=globalThis).__zod_globalConfig??(Ky.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Xe(t){return t&&Object.assign(ho,t),ho}var H={};Hu(H,{BIGINT_FORMAT_RANGES:()=>Qy,Class:()=>el,NUMBER_FORMAT_RANGES:()=>sl,aborted:()=>Fr,allowsEval:()=>nl,assert:()=>Z$,assertEqual:()=>U$,assertIs:()=>H$,assertNever:()=>G$,assertNotEqual:()=>q$,assignProp:()=>Lr,base64ToUint8Array:()=>tv,base64urlToUint8Array:()=>cI,cached:()=>go,captureStackTrace:()=>La,cleanEnum:()=>aI,cleanRegex:()=>Ii,clone:()=>yt,cloneDef:()=>W$,createTransparentProxy:()=>Q$,defineLazy:()=>Y,esc:()=>Da,escapeRegex:()=>cr,explicitlyAborted:()=>al,extend:()=>rI,finalizeIssue:()=>vt,floatSafeRemainder:()=>tl,getElementAtPath:()=>V$,getEnumValues:()=>Mi,getLengthableOrigin:()=>Oi,getParsedType:()=>X$,getSizableOrigin:()=>ev,hexToUint8Array:()=>dI,isObject:()=>Sn,isPlainObject:()=>jr,issue:()=>yo,joinValues:()=>Na,jsonStringifyReplacer:()=>mo,merge:()=>oI,mergeDefs:()=>ar,normalizeParams:()=>M,nullish:()=>$i,numKeys:()=>Y$,objectClone:()=>B$,omit:()=>tI,optionalKeys:()=>il,parsedType:()=>cl,partial:()=>iI,pick:()=>eI,prefixIssues:()=>ur,primitiveTypes:()=>Xy,promiseAllObject:()=>K$,propertyKeyTypes:()=>ol,randomString:()=>J$,required:()=>sI,safeExtend:()=>nI,shallowClone:()=>Yy,slugify:()=>rl,stringifyPrimitive:()=>ja,uint8ArrayToBase64:()=>rv,uint8ArrayToBase64url:()=>uI,uint8ArrayToHex:()=>lI,unwrapMessage:()=>Ai});function U$(t){return t}function q$(t){return t}function H$(t){}function G$(t){throw new Error("Unexpected value in exhaustive check")}function Z$(t){}function Mi(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 Na(t,e="|"){return t.map(r=>ja(r)).join(e)}function mo(t,e){return typeof e=="bigint"?e.toString():e}function go(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function $i(t){return t==null}function Ii(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function tl(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 Jy=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Jy)return n===void 0&&(n=Jy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function B$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Lr(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 W$(t){return ar(t._zod.def)}function V$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function K$(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 J$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function Da(t){return JSON.stringify(t)}function rl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var La="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var nl=go(()=>{if(ho.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function jr(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 Yy(t){return jr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function Y$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var X$=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}`)}},ol=new Set(["string","number","symbol"]),Xy=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 M(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 Q$(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 ja(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function il(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var sl={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]},Qy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function eI(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 Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function tI(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 Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function rI(t,e){if(!jr(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 Lr(this,"shape",i),i}});return yt(t,o)}function nI(t,e){if(!jr(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 Lr(this,"shape",n),n}});return yt(t,r)}function oI(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 Lr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function iI(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 Lr(this,"shape",c),c},checks:[]});return yt(e,s)}function sI(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 Lr(this,"shape",i),i}});return yt(e,n)}function Fr(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 al(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 Ai(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ai(t.inst?._zod.def?.error?.(t))??Ai(e?.error?.(t))??Ai(r.customError?.(t))??Ai(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 ev(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Oi(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function cl(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 yo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function aI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function tv(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 rv(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function cI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return tv(e+r)}function uI(t){return rv(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function dI(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 lI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var el=class{constructor(...e){}};var nv=(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,mo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Fa=S("$ZodError",nv),ul=S("$ZodError",nv,{Parent:Error});function dl(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 ll(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 Ua=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 La(a,o?.callee),a}return s.value};var qa=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 La(a,o?.callee),a}return s.value};var zi=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??Fa)(i.issues.map(s=>vt(s,o,Xe())))}:{success:!0,data:i.value}},Ni=zi(ul),Di=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}},Ha=Di(ul),ov=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ua(t)(e,r,o)};var iv=t=>(e,r,n)=>Ua(t)(e,r,n);var sv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return qa(t)(e,r,o)};var av=t=>async(e,r,n)=>qa(t)(e,r,n);var cv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var uv=t=>(e,r,n)=>zi(t)(e,r,n);var dv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Di(t)(e,r,o)};var lv=t=>async(e,r,n)=>Di(t)(e,r,n);var fv=/^[cC][0-9a-z]{6,}$/,pv=/^[0-9a-z]+$/,hv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,mv=/^[0-9a-vA-V]{20}$/,gv=/^[A-Za-z0-9]{27}$/,yv=/^[a-zA-Z0-9_-]{21}$/,vv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var _v=/^([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})$/,fl=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 Sv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var pI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function wv(){return new RegExp(pI,"u")}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])$/,Rv=/^(([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 Cv=/^((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])$/,Pv=/^(([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])$/,xv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,pl=/^[A-Za-z0-9_-]*$/;var kv=/^https?$/,Ev=/^\+[1-9]\d{6,14}$/,Tv="(?:(?:\\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])))",Av=new RegExp(`^${Tv}$`);function Mv(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 $v(t){return new RegExp(`^${Mv(t)}$`)}function Iv(t){let e=Mv({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(`^${Tv}T(?:${n})$`)}var Ov=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},zv=/^-?\d+n?$/,Nv=/^-?\d+$/,hl=/^-?\d+(?:\.\d+)?$/,Dv=/^(?:true|false)$/i,Lv=/^null$/i;var jv=/^[^A-Z]*$/,Fv=/^[^a-z]*$/;var Ie=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Uv={number:"number",bigint:"bigint",object:"date"},ml=S("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=Uv[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})}}),gl=S("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=Uv[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})}}),qv=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):tl(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})}}),Hv=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]=sl[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=Nv)}),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 Gv=S("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(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=Oi(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Zv=S("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(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=Oi(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Bv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(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=Oi(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})}}),ji=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=()=>{})}),Wv=S("$ZodCheckRegex",(t,e)=>{ji.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})}}),Vv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=jv),ji.init(t,e)}),Kv=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Fv),ji.init(t,e)}),Jv=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})}}),Yv=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})}}),Xv=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 Qv=S("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ga=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:oo,label:oo,description:OM(),parameters:Mg.Unsafe(kM),execute:(n,o,i,s,a)=>$M(t,a,o)},r={name:zr,label:zr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Mg.Unsafe(EM),execute:(n,o,i)=>IM(t,o,i,{toolCallId:n})};Ag(oo,"mcp"),Ag(zr,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Ig.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as ak}from"@augmentcode/auggie-v2";import{logger as Cq,logPublic as Pq}from"@hermes/logger";import{logger as qM}from"@hermes/logger";import{logger as zM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var zg=zM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},md=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 gd(t){return t instanceof mt?t.statusCode>=500:!0}async function hn(t){let e;for(let r=0;r<mi.maxTries;r++)try{return await t()}catch(n){if(e=n,!gd(n))throw n;if(r<mi.maxTries-1){let o=Math.min(mi.initialMs*mi.mult**r,mi.maxMs);await pn(o)}}throw e}var va=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??md}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 Ng(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)}`;zg.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)}`;zg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function NM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Dg=32;function DM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Dg&&(e=e.slice(0,Dg)),e=e.replace(/_+$/,""),e}function Lg(t,e){let r=e?DM(e):"",n=NM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function jg(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 LM=1e12,jM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function FM(t){let e=jM.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 UM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<LM?t*1e3:t;if(typeof t=="string")return FM(t)}function Fg(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:UM(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=qM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},qg=[100,500],HM=qg.length+1,GM=t=>new Promise(e=>{setTimeout(e,t)});function Ug(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var vd="augment.mcp-access-token.",ZM=JSON.stringify({retired:!0}),_a=3;function Wt(t){return`${vd}${t}`}function Sa(t){return`legacy:${t}`}function At(t){return t?.id?Lg(t.id,t.name):void 0}function vi(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:Hg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Hg(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function _i(t){if(typeof t=="string")try{return _i(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:Hg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return _i(vi(t))}function BM(t){return _i(vi(t))}function WM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function io(t){try{let e=JSON.parse(t);return{credentialIdentity:_i(e.credentialIdentity),state:WM(e)}}catch{return{}}}function gi(t,e){let r={...t,type:"oauth",credentialIdentity:vi(e)};return JSON.stringify(r)}function mn(t,e){let r=jg({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:vi(e),credentialState:"active"})}function VM(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function KM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=BM(e),i=_i(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 yd(t){try{let e=Fg(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 yi=class{_memory=new Yn;_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=GM){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=Mt(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=Mt(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=Mt(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=Mt(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=At(e),n=Mt(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<_a;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=io(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=yd(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=At(e),n=Mt(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=io(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!yd(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=At(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:Sa(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=At(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||At(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&&At(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!==Sa(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!==gi(i,a)))try{return{revision:await r.upsertUserSecret(n,gi(s,c),u.revision),domain:Sa(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!==gi(o,s)))try{await r.upsertUserSecret(n,gi(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=Mt(o);if(!i)throw new Z;for(let s=0;s<_a;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?io(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=Mt(n);if(!o)throw new Z;for(let i=0;i<_a;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?io(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,VM(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=At(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:Sa(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Ug(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?HM:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new so;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 so}_persistenceRetryDelay(e,r,n){let o=n?qg[r]:void 0,i=!(e instanceof Z)&&gd(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),gi(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 so||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=Mt(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=At(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),ZM)}):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 so&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=At(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(Ug(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=At(r),o=Mt(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<_a;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=io(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=yd(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=At(n),s=Mt(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=io(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?KM(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 Gg="Augment Code",Zg="https://augmentcode.com",Bg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var YM=1e3,XM=500;function Sd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function Si(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var _d=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Wg(t){return new URLSearchParams({k:t}).toString().slice(2)}function QM(t,e){let r=`${Wg(t)}:${Wg(e)}`;return`Basic ${btoa(r)}`}function Yg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function e0(t){return t.client.token_endpoint_auth_method==="none"||!Yg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function t0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function r0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var n0=401,Xg=500;function wd(t,...e){return t.status<Xg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Vg(t){return wd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===n0}async function Kg(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=Yg(t);e==="basic"&&i?n.Authorization=QM(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=r0(c),d=c.slice(0,XM);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new _d;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*YM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Jg(t,e){try{return await Kg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&wd(r,"invalid_target"))return await Kg(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 bd(t){return!(t instanceof gn)||t.status>=Xg?!1:wd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Rd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=e0(t);try{return await Jg(e,r)}catch(n){let o=t0(r);if(!(n instanceof gn)||!o||!Vg(n))throw n;try{return await Jg(e,o)}catch(i){throw i instanceof gn&&Vg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as Y0}from"@hermes/logger";var xd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(xd="oauth4webapi/v3.8.6");function lo(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 Md=Symbol(),o0=Symbol(),i0=Symbol(),vn=Symbol();var Qg=Symbol();var s0=new TextEncoder,a0=new TextDecoder;function kd(t){return typeof t=="string"?s0.encode(t):a0.decode(t)}var Ed;Uint8Array.prototype.toBase64?Ed=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Ed=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 Td;Uint8Array.fromBase64?Td=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:Td=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 ba(t){return typeof t=="string"?Td(t):Ed(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=j0,Error.captureStackTrace?.(this,this.constructor)}},wi=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 wi(t,{code:e,cause:r})}function Ra(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function $d(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(xd&&!e.has("user-agent")&&e.set("user-agent",xd),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function Id(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 c0(t){return t.includes("//")?t.replace("//","/"):t}function u0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=c0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function d0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Ye);dy(t,n?.[Md]!==!0);let o=r(new URL(t.href)),i=$d(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:Id(o,n?.signal)})}function ao(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 ry(t,e){let r=t;if(!(r instanceof URL)&&r!==xa)throw he('"expectedIssuerIdentifier" must be an instance of URL',Ye);if(!lo(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)',Ud,e);Ci(e);let n=await Aa(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==xa&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Ea,{expected:r.href,body:n,attribute:"issuer"});return n}function ny(t){f0(t,"application/json")}function l0(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,U0,t)}function f0(t,e){if(C0(t)!==e)throw l0(t,e)}function Od(){return ba(crypto.getRandomValues(new Uint8Array(32)))}function oy(){return Od()}function iy(){return Od()}function sy(){return Od()}async function ay(t){return $e(t,"codeVerifier"),ba(await crypto.subtle.digest("SHA-256",kd(t)))}function zd(t){let e=t?.[o0];return typeof e=="number"&&Number.isFinite(e)?e:0}function Nd(t){let e=t?.[i0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Dd(){return Math.floor(Date.now()/1e3)}function ka(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Ye);$e(t.issuer,'"as.issuer"')}function Ld(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Ye);$e(t.client_id,'"client.client_id"')}function ey(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 jd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function cy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=ey(r.client_id),s=ey(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function uy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var p0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function dy(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",q0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",H0,t)}function ty(t,e,r,n){let o;if(typeof t!="string"||!(o=p0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?G0:Z0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return dy(o,n),o}function ly(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?ty(t.mtls_endpoint_aliases[e],e,r,n):ty(t[e],e,r,n)}var uo=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=L0,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)}},bi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=F0,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)}},Ri=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=D0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Ca="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",h0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",m0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',g0="("+Ca+")\\s*=\\s*"+m0,y0="("+Ca+")\\s*=\\s*("+Ca+")",v0=new RegExp("^[,\\s]*("+Ca+")"),_0=new RegExp("^[,\\s]*"+g0+"[,\\s]*(.*)"),S0=new RegExp("^[,\\s]*"+y0+"[,\\s]*(.*)"),w0=new RegExp("^("+h0+")(?:$|[,\\s])(.*)");function b0(t){if(!lo(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(v0),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(_0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(S0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(w0)){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 R0(t){if(t.status>399&&t.status<500){Ci(t),ny(t);try{let e=await t.clone().json();if(Ra(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function fy(t,e,r){if(t.status!==e){E0(t);let n;throw(n=await R0(t))?(await t.body?.cancel(),new uo("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)`,Ud,t)}}function py(t){if(!Fd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function C0(t){return t.headers.get("content-type")?.split(";")[0]}async function P0(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:Id(n,s?.signal)})}async function x0(t,e,r,n,o,i){let s=ly(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Md]!==!0);o.set("grant_type",n);let a=$d(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(py(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await P0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var hy=new WeakMap,k0=new WeakMap;function my(t){if(!t.id_token)return;let e=hy.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function gy(t,e,r,n,o,i){if(ka(t),Ld(e),!lo(r,Response))throw he('"response" must be an instance of Response',Ye);await fy(r,200,"Token Endpoint"),Ci(r);let s=await Aa(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;ao(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&&(ao(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await B0(s.id_token,W0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),zd(e),Nd(e),o).then(O0.bind(void 0,a)).then(A0.bind(void 0,t)).then(T0.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',Nr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',Nr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&ao(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),k0.set(r,u),hy.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 co("unsupported `token_type` value",{cause:{body:s}});return s}function E0(t){let e;if(e=b0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function T0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"});return e}function A0(t,e){let r=t[J0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',Nr,{expected:r,claims:e.claims,claim:"iss"});return e}var Fd=new WeakSet;function M0(t){return Fd.add(t),t}var $0=Symbol();async function yy(t,e,r,n,o,i,s){if(ka(t),Ld(e),!Fd.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!==$0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),x0(t,e,r,"authorization_code",c,s)}var I0={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 O0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${I0[r]}) claim missing`,V,{claims:e.claims});return e}var Cd=Symbol(),Pd=Symbol();async function vy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?z0(t,e,r,n.expectedNonce,n.maxAge,n[Qg],n.recognizedTokenTypes):N0(t,e,r,n?.[Qg],n?.recognizedTokenTypes)}async function z0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=Cd;break;case Cd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Pd;break;case Pd:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await gy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=my(c);if(o!==Pd){let d=Dd()+zd(e),l=Nd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",Pa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===Cd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:n,claims:u,claim:"nonce"});return c}async function N0(t,e,r,n,o){let i=await gy(t,e,r,void 0,n,o),s=my(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=Dd()+zd(e),c=Nd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",Pa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:s,claim:"nonce"})}return i}var D0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",L0="OAUTH_RESPONSE_BODY_ERROR",j0="OAUTH_UNSUPPORTED_OPERATION",F0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Ad="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var U0="OAUTH_RESPONSE_IS_NOT_JSON",Ud="OAUTH_RESPONSE_IS_NOT_CONFORM",q0="OAUTH_HTTP_REQUEST_FORBIDDEN",H0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",Pa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Nr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Ea="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var G0="OAUTH_MISSING_SERVER_METADATA",Z0="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function B0(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 co("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(kd(ba(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Ad,l)}if(!Ra(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new co('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(kd(ba(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Ad,l)}if(!Ra(u))throw O("JWT Payload must be a top level object",V,t);let d=Dd()+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',Pa,{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',Pa,{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 W0(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 V0=Symbol(),K0=Symbol();function _y(t,e,r,n){if(ka(t),Ld(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 K0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case V0: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 bi("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 co("implicit and hybrid flows are not supported");return M0(new URLSearchParams(r))}async function Sy(t,e,r){ka(t);let n=ly(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Md]!==!0),o=$d(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(py(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:Id(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function wy(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Ye);await fy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await Aa(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&&ao(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function by(t,e){return d0(t,"resourceIdentifier",r=>(u0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Ta(t,e){let r=t;if(!(r instanceof URL)&&r!==xa)throw he('"expectedResourceIdentifier" must be an instance of URL',Ye);if(!lo(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)',Ud,e);Ci(e);let n=await Aa(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==xa&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Ea,{expected:r.href,body:n,attribute:"resource"});return n}async function Aa(t,e=ny){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Ad,n)}if(!Ra(r))throw O('"response" body must be a top level object',V,{body:r});return r}var xa=Symbol(),J0=Symbol();var Py=Y0.child({prefix:"pi-mcp"}),Pi=1e4,X0=1e3,Q0=401,Ry=200,e$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,t$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,xy;function fo(){return xy??globalThis.fetch}function ky(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Ey(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Hd(t){let e=Ey(t);try{let r=await r$(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await a$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Ia(r)}throw new Error("Failed to discover metadata URL")}async function r$(t){try{let e=await by(t,{signal:AbortSignal.timeout(Pi),[vn]:xy??void 0});return e.ok?await Ta(t,e):(e.body?.cancel().catch(()=>{}),await Ty(t,e.headers.get("www-authenticate"))??await Cy(t))}catch{return await Cy(t)}}async function Cy(t){for(let e of["HEAD","GET"])try{let r=await fo()(t,{method:e,signal:AbortSignal.timeout(Pi)});r.body?.cancel().catch(()=>{});let n=await Ty(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function Ty(t,e){let r=s$(e);if(r)try{let n=await fo()(r,{signal:AbortSignal.timeout(Pi)});return await n$(t,n)}catch{return}}async function n$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Ta(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Ea)throw o;let i=o$(r);if(!i||!i$(i,t))throw o;return await Ta(i,new Response(r,n))}}function o$(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function i$(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 s$(t){if(!t)return;let e=t.match(e$),r=t.match(t$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function a$(t){for(let e of c$(t))try{let r=new URL(e,t),n=await fo()(r,{signal:AbortSignal.timeout(Pi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function c$(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 Gd(t){try{let e=await fo()(t,{signal:AbortSignal.timeout(Pi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await u$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await ry(o,new Response(r,n))}catch(e){throw Ia(e)}}async function u$(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 qd=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 d$(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 Zd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return d$({...t,clientId:n});if(!e.registration_endpoint)throw new qd(e.issuer);return await l$(e,r)}async function l$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await Sy(t,{client_name:Gg,client_uri:Zg,logo_uri:Bg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:f$});return n.ok||Py.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await wy(n)}catch(r){throw Ia(r)}}async function f$(t,e){let r=await fo()(t,ky(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||Py.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${h$(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 p$(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}),fo()(t,ky(o))}function h$(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>Ry?`${t.slice(0,Ry)}\u2026`:t}}async function Ma(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=oy(),c=await ay(a),u=iy(),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=Ey(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=sy(),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 $a(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Bd(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 Ma(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function m$(t,e,r){let n=await yy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:p$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return vy(t.serverMetadata,t.client,await g$(n))}async function Wd(t,e){try{let r=_y(e.serverMetadata,e.client,t,e.state),n=await v$(e.client,o=>m$(e,r,o));return w$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Ia(r)}}async function g$(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 Ay(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function y$(t){let e=Ay(t);return e===void 0?uy():t.token_endpoint_auth_method==="client_secret_basic"?cy(e):jd(e)}async function v$(t,e){try{return await e(y$(t))}catch(r){let n=_$(t);if(n&&S$(r))return await e(n);throw r}}function _$(t){let e=Ay(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return jd(e)}function S$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===Q0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function w$(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*X0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Ia(t){if(t instanceof uo||t instanceof bi){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 b$=/(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,My=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,$y=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Iy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",R$=/[.*+?^${}()|[\]\\]/g;function Vd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function C$(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:Vd(a,r),{value:c&&"value"in c?Oy(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 Oy(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Vd(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 Vd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:C$(t,e,r)}function Jd(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(R$,"\\$&")).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=>Oy(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var P$=500,x$=8192,k$=6;function E$(t){return My.test(t)||$y.test(t)||Iy.test(t)}var T$=new RegExp(My.source,"g"),A$=new RegExp($y.source,"gi"),M$=new RegExp(Iy.source,"g");function zy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Oa(t){return t&&zy(t,x$).replace(T$,_n).replace(A$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(M$,_n)}function Kd(t,e,r){if(e)return _n;if(typeof t=="string")return E$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=k$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Kd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Kd(i,b$.test(o),r+1);return n}function Ny(t,e=P$){if(t==null)return;let r=Kd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return zy(n,e)}var Ly={reportError:()=>{}},Dy=Symbol.for("__pi_mcp_error_reporter_slot__");function jy(){let t=globalThis,e=t[Dy];return e||(e={reporter:null},t[Dy]=e),e}function Fy(t){let e=jy(),r=e.reporter??Ly;return e.reporter=t,r}function $$(){return jy().reporter??Ly}function xi(t,e){try{$$().reportError(t,e)}catch{}}import{logger as I$}from"@hermes/logger";var Yd=I$.child({prefix:"pi-mcp"});function Uy(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++):Yd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Yd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function qy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(vd)){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 Hy(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,Yd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Gy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as O$}from"@hermes/logger";var ki=O$.child({prefix:"pi-mcp"}),z$="$augment-",Ei=/\$augment-[a-zA-Z0-9_.-]+/g,N$=new RegExp(Ei.source);function Dr(t){return N$.test(t)}function za(t){return t.slice(z$.length)}function Ti(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ei))e.add(za(n[0]));return[...e].sort()}var D$=["permission_denied","missing","transient"];function Zy(t){let e=new Set(t);return D$.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 By(t,e,r,n,o,i,s){let a=[...t.matchAll(Ei)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=za(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),ki.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),ki.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),ki.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),ki.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Wy({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(!Dr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){ki.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await By(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 L$=/["$`\\]/g;function j$(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 F$(t,e){let r=j$(e);if(r==="double")return t.replace(L$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Vy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await By(t,"command",e,n,o,i,r?F$: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 Sq}from"node:async_hooks";var Ky,Xd=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.")}},po=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Ky=globalThis).__zod_globalConfig??(Ky.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Xe(t){return t&&Object.assign(ho,t),ho}var H={};Hu(H,{BIGINT_FORMAT_RANGES:()=>Qy,Class:()=>el,NUMBER_FORMAT_RANGES:()=>sl,aborted:()=>Fr,allowsEval:()=>nl,assert:()=>Z$,assertEqual:()=>U$,assertIs:()=>H$,assertNever:()=>G$,assertNotEqual:()=>q$,assignProp:()=>Lr,base64ToUint8Array:()=>tv,base64urlToUint8Array:()=>cI,cached:()=>go,captureStackTrace:()=>La,cleanEnum:()=>aI,cleanRegex:()=>Ii,clone:()=>yt,cloneDef:()=>W$,createTransparentProxy:()=>Q$,defineLazy:()=>Y,esc:()=>Da,escapeRegex:()=>cr,explicitlyAborted:()=>al,extend:()=>rI,finalizeIssue:()=>vt,floatSafeRemainder:()=>tl,getElementAtPath:()=>V$,getEnumValues:()=>Mi,getLengthableOrigin:()=>Oi,getParsedType:()=>X$,getSizableOrigin:()=>ev,hexToUint8Array:()=>dI,isObject:()=>Sn,isPlainObject:()=>jr,issue:()=>yo,joinValues:()=>Na,jsonStringifyReplacer:()=>mo,merge:()=>oI,mergeDefs:()=>ar,normalizeParams:()=>M,nullish:()=>$i,numKeys:()=>Y$,objectClone:()=>B$,omit:()=>tI,optionalKeys:()=>il,parsedType:()=>cl,partial:()=>iI,pick:()=>eI,prefixIssues:()=>ur,primitiveTypes:()=>Xy,promiseAllObject:()=>K$,propertyKeyTypes:()=>ol,randomString:()=>J$,required:()=>sI,safeExtend:()=>nI,shallowClone:()=>Yy,slugify:()=>rl,stringifyPrimitive:()=>ja,uint8ArrayToBase64:()=>rv,uint8ArrayToBase64url:()=>uI,uint8ArrayToHex:()=>lI,unwrapMessage:()=>Ai});function U$(t){return t}function q$(t){return t}function H$(t){}function G$(t){throw new Error("Unexpected value in exhaustive check")}function Z$(t){}function Mi(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 Na(t,e="|"){return t.map(r=>ja(r)).join(e)}function mo(t,e){return typeof e=="bigint"?e.toString():e}function go(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function $i(t){return t==null}function Ii(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function tl(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 Jy=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Jy)return n===void 0&&(n=Jy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function B$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Lr(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 W$(t){return ar(t._zod.def)}function V$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function K$(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 J$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function Da(t){return JSON.stringify(t)}function rl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var La="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var nl=go(()=>{if(ho.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function jr(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 Yy(t){return jr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function Y$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var X$=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}`)}},ol=new Set(["string","number","symbol"]),Xy=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 M(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 Q$(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 ja(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function il(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var sl={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]},Qy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function eI(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 Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function tI(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 Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function rI(t,e){if(!jr(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 Lr(this,"shape",i),i}});return yt(t,o)}function nI(t,e){if(!jr(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 Lr(this,"shape",n),n}});return yt(t,r)}function oI(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 Lr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function iI(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 Lr(this,"shape",c),c},checks:[]});return yt(e,s)}function sI(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 Lr(this,"shape",i),i}});return yt(e,n)}function Fr(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 al(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 Ai(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ai(t.inst?._zod.def?.error?.(t))??Ai(e?.error?.(t))??Ai(r.customError?.(t))??Ai(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 ev(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Oi(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function cl(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 yo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function aI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function tv(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 rv(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function cI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return tv(e+r)}function uI(t){return rv(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function dI(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 lI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var el=class{constructor(...e){}};var nv=(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,mo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Fa=S("$ZodError",nv),ul=S("$ZodError",nv,{Parent:Error});function dl(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 ll(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 Ua=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 La(a,o?.callee),a}return s.value};var qa=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 La(a,o?.callee),a}return s.value};var zi=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??Fa)(i.issues.map(s=>vt(s,o,Xe())))}:{success:!0,data:i.value}},Ni=zi(ul),Di=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}},Ha=Di(ul),ov=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ua(t)(e,r,o)};var iv=t=>(e,r,n)=>Ua(t)(e,r,n);var sv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return qa(t)(e,r,o)};var av=t=>async(e,r,n)=>qa(t)(e,r,n);var cv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var uv=t=>(e,r,n)=>zi(t)(e,r,n);var dv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Di(t)(e,r,o)};var lv=t=>async(e,r,n)=>Di(t)(e,r,n);var fv=/^[cC][0-9a-z]{6,}$/,pv=/^[0-9a-z]+$/,hv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,mv=/^[0-9a-vA-V]{20}$/,gv=/^[A-Za-z0-9]{27}$/,yv=/^[a-zA-Z0-9_-]{21}$/,vv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var _v=/^([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})$/,fl=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 Sv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var pI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function wv(){return new RegExp(pI,"u")}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])$/,Rv=/^(([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 Cv=/^((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])$/,Pv=/^(([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])$/,xv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,pl=/^[A-Za-z0-9_-]*$/;var kv=/^https?$/,Ev=/^\+[1-9]\d{6,14}$/,Tv="(?:(?:\\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])))",Av=new RegExp(`^${Tv}$`);function Mv(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 $v(t){return new RegExp(`^${Mv(t)}$`)}function Iv(t){let e=Mv({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(`^${Tv}T(?:${n})$`)}var Ov=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},zv=/^-?\d+n?$/,Nv=/^-?\d+$/,hl=/^-?\d+(?:\.\d+)?$/,Dv=/^(?:true|false)$/i,Lv=/^null$/i;var jv=/^[^A-Z]*$/,Fv=/^[^a-z]*$/;var Ie=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Uv={number:"number",bigint:"bigint",object:"date"},ml=S("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=Uv[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})}}),gl=S("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=Uv[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})}}),qv=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):tl(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})}}),Hv=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]=sl[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=Nv)}),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 Gv=S("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(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=Oi(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Zv=S("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(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=Oi(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Bv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(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=Oi(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})}}),ji=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=()=>{})}),Wv=S("$ZodCheckRegex",(t,e)=>{ji.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})}}),Vv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=jv),ji.init(t,e)}),Kv=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Fv),ji.init(t,e)}),Jv=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})}}),Yv=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})}}),Xv=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 Qv=S("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ga=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 t_={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=t_;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=Fr(s),d;for(let l of a){if(l._zod.def.when){if(al(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=Fr(s,f)))});else{if(s.issues.length===f)continue;u||(u=Fr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(Fr(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)}}Y(t,"~standard",()=>({validate:o=>{try{let i=Ni(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Ha(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Wa=S("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Ov(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)=>{ji.init(t,e),Wa.init(t,e)}),d_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)}),l_=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=fl(n))}else e.pattern??(e.pattern=fl());ce.init(t,e)}),f_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),p_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===kv.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})}}}),h_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=wv()),ce.init(t,e)}),m_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),g_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e)}),y_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e)}),v_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),__=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),S_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),w_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Iv(e)),ce.init(t,e)}),b_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Av),ce.init(t,e)}),R_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=$v(e)),ce.init(t,e)}),C_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),P_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e),t._zod.bag.format="ipv4"}),x_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Rv),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 k_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e)}),E_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Pv),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 T_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var A_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{T_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function gI(t){if(!pl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return T_(r)}var M_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=pl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{gI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),$_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e)});function yI(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 I_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{yI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var vl=S("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??hl,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}}),O_=S("$ZodNumberFormat",(t,e)=>{Hv.init(t,e),vl.init(t,e)}),z_=S("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=Dv,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}}),N_=S("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=zv,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 D_=S("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=Lv,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}}),L_=S("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),j_=S("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),F_=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 U_=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 r_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var q_=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=>r_(u,r,s))):r_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Ba(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 H_(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=il(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function G_(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=>Ba(h,r,f,e,d,l))):Ba(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 vI=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=go(()=>H_(e));Y(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=>Ba(v,a,f,u,h,m))):Ba(g,a,f,u,h,m)}return i?G_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),Z_=S("$ZodObjectJIT",(t,e)=>{vI.init(t,e);let r=t._zod.parse,n=go(()=>H_(e)),o=f=>{let p=new Ga(["shape","payload","ctx"]),h=n.value,m=w=>{let R=Da(w);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 w of h.keys)g[w]=`key_${v++}`;p.write("const newResult = {};");for(let w of h.keys){let R=g[w],_=Da(w),C=f[w],I=C?._zod?.optin==="optional",ne=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(w)};`),I&&ne?p.write(`
26
+ `))}};var t_={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=t_;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=Fr(s),d;for(let l of a){if(l._zod.def.when){if(al(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=Fr(s,f)))});else{if(s.issues.length===f)continue;u||(u=Fr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(Fr(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)}}Y(t,"~standard",()=>({validate:o=>{try{let i=Ni(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Ha(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Wa=S("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Ov(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)=>{ji.init(t,e),Wa.init(t,e)}),d_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)}),l_=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=fl(n))}else e.pattern??(e.pattern=fl());ce.init(t,e)}),f_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),p_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===kv.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})}}}),h_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=wv()),ce.init(t,e)}),m_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),g_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e)}),y_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e)}),v_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),__=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),S_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),w_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Iv(e)),ce.init(t,e)}),b_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Av),ce.init(t,e)}),R_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=$v(e)),ce.init(t,e)}),C_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),P_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e),t._zod.bag.format="ipv4"}),x_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Rv),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 k_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e)}),E_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Pv),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 T_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var A_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{T_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function gI(t){if(!pl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return T_(r)}var M_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=pl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{gI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),$_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e)});function yI(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 I_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{yI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var vl=S("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??hl,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}}),O_=S("$ZodNumberFormat",(t,e)=>{Hv.init(t,e),vl.init(t,e)}),z_=S("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=Dv,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}}),N_=S("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=zv,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 D_=S("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=Lv,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}}),L_=S("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),j_=S("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),F_=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 U_=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 r_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var q_=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=>r_(u,r,s))):r_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Ba(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 H_(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=il(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function G_(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=>Ba(h,r,f,e,d,l))):Ba(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 vI=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=go(()=>H_(e));Y(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=>Ba(v,a,f,u,h,m))):Ba(g,a,f,u,h,m)}return i?G_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),Z_=S("$ZodObjectJIT",(t,e)=>{vI.init(t,e);let r=t._zod.parse,n=go(()=>H_(e)),o=f=>{let p=new Ga(["shape","payload","ctx"]),h=n.value,m=b=>{let R=Da(b);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 b of h.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of h.keys){let R=g[b],_=Da(b),C=f[b],I=C?._zod?.optin==="optional",ne=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(b)};`),I&&ne?p.write(`
27
27
  if (${R}.issues.length) {
28
28
  if (${_} in input) {
29
29
  payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
@@ -82,23 +82,23 @@ When the user's request requires one of these servers, call attach-mcp-server im
82
82
  }
83
83
  }
84
84
 
85
- `)}p.write("payload.value = newResult;"),p.write("return payload;");let b=p.compile();return(w,R)=>b(f,w,R)},i,s=Sn,a=!ho.jitless,u=a&&nl.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?G_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function n_(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=>!Fr(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 _l=S("$ZodUnion",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Y(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Y(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Y(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=>Ii(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=>n_(a,n,t,o)):n_(s,n,t,o)}});var B_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,_l.init(t,e);let r=t._zod.parse;Y(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=go(()=>{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)}}),W_=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])=>o_(r,c,u)):o_(r,i,s)}});function yl(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(jr(t)&&jr(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=yl(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=yl(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 o_(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}),Fr(t))return t;let s=yl(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 V_=S("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!jr(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"&&hl.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 K_=S("$ZodEnum",(t,e)=>{te.init(t,e);let r=Mi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>ol.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}}),J_=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 Y_=S("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new po(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 i_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var Sl=S("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(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=>i_(s,o)):i_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),X_=S("$ZodExactOptional",(t,e)=>{Sl.init(t,e),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),Q_=S("$ZodNullable",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.innerType._zod.optin),Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(r.source)}|null)$`):void 0}),Y(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)}),eS=S("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(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=>s_(i,e)):s_(o,e)}});function s_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var tS=S("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(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))}),rS=S("$ZodNonOptional",(t,e)=>{te.init(t,e),Y(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=>a_(i,t)):a_(o,t)}});function a_(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 nS=S("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(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 wl=S("$ZodPipe",(t,e)=>{te.init(t,e),Y(t._zod,"values",()=>e.in._zod.values),Y(t._zod,"optin",()=>e.in._zod.optin),Y(t._zod,"optout",()=>e.out._zod.optout),Y(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=>Za(s,e.in,n)):Za(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Za(i,e.out,n)):Za(o,e.out,n)}});function Za(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 oS=S("$ZodPreprocess",(t,e)=>{wl.init(t,e)}),iS=S("$ZodReadonly",(t,e)=>{te.init(t,e),Y(t._zod,"propValues",()=>e.innerType._zod.propValues),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"optin",()=>e.innerType?._zod?.optin),Y(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(c_):c_(o)}});function c_(t){return t.value=Object.freeze(t.value),t}var sS=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=>u_(i,r,n,t));u_(o,r,n,t)}});function u_(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(yo(o))}}var _I=()=>{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=cl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${ja(o.values[0])}`:`Invalid option: expected one of ${Na(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":""}: ${Na(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 aS(){return{localeError:_I()}}var cS;var bl=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 uS(){return new bl}(cS=globalThis).__zod_globalRegistry??(cS.__zod_globalRegistry=uS());var Ur=globalThis.__zod_globalRegistry;function dS(t,e){return new t({type:"string",...M(e)})}function lS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function fS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Rl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function pS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function hS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function mS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function gS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function Cl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function yS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function vS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function _S(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function SS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function wS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function bS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function PS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function xS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function IS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function OS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function zS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function NS(t,e){return new t({type:"number",checks:[],...M(e)})}function DS(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function LS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function jS(t,e){return new t({type:"boolean",...M(e)})}function FS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function US(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function qS(t,e){return new t({type:"null",...M(e)})}function HS(t){return new t({type:"any"})}function GS(t){return new t({type:"unknown"})}function ZS(t,e){return new t({type:"never",...M(e)})}function BS(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new ml({check:"less_than",...M(e),value:t,inclusive:!1})}function dr(t,e){return new ml({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new gl({check:"greater_than",...M(e),value:t,inclusive:!1})}function Mt(t,e){return new gl({check:"greater_than",...M(e),value:t,inclusive:!0})}function Fi(t,e){return new qv({check:"multiple_of",...M(e),value:t})}function Va(t,e){return new Gv({check:"max_length",...M(e),maximum:t})}function So(t,e){return new Zv({check:"min_length",...M(e),minimum:t})}function Ka(t,e){return new Bv({check:"length_equals",...M(e),length:t})}function Pl(t,e){return new Wv({check:"string_format",format:"regex",...M(e),pattern:t})}function xl(t){return new Vv({check:"string_format",format:"lowercase",...M(t)})}function kl(t){return new Kv({check:"string_format",format:"uppercase",...M(t)})}function El(t,e){return new Jv({check:"string_format",format:"includes",...M(e),includes:t})}function Tl(t,e){return new Yv({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Al(t,e){return new Xv({check:"string_format",format:"ends_with",...M(e),suffix:t})}function qr(t){return new Qv({check:"overwrite",tx:t})}function Ml(t){return qr(e=>e.normalize(t))}function $l(){return qr(t=>t.trim())}function Il(){return qr(t=>t.toLowerCase())}function Ol(){return qr(t=>t.toUpperCase())}function zl(){return qr(t=>rl(t))}function WS(t,e,r){return new t({type:"array",element:e,...M(r)})}function VS(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function KS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function JS(t,e){let r=SI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(yo(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(yo(i))}},t(n.value,n)),e);return r}function SI(t,e){let r=new Ie({check:"custom",...M(e)});return r._zod.check=t,r}function Nl(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??Ur,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 be(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),be(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 Dl(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 w=p.compile();return(b,R)=>w(f,b,R)},i,s=Sn,a=!ho.jitless,u=a&&nl.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?G_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function n_(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=>!Fr(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 _l=S("$ZodUnion",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Y(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Y(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Y(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=>Ii(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=>n_(a,n,t,o)):n_(s,n,t,o)}});var B_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,_l.init(t,e);let r=t._zod.parse;Y(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=go(()=>{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)}}),W_=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])=>o_(r,c,u)):o_(r,i,s)}});function yl(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(jr(t)&&jr(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=yl(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=yl(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 o_(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}),Fr(t))return t;let s=yl(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 V_=S("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!jr(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"&&hl.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 K_=S("$ZodEnum",(t,e)=>{te.init(t,e);let r=Mi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>ol.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}}),J_=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 Y_=S("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new po(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 i_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var Sl=S("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(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=>i_(s,o)):i_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),X_=S("$ZodExactOptional",(t,e)=>{Sl.init(t,e),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),Q_=S("$ZodNullable",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.innerType._zod.optin),Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(r.source)}|null)$`):void 0}),Y(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)}),eS=S("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(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=>s_(i,e)):s_(o,e)}});function s_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var tS=S("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(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))}),rS=S("$ZodNonOptional",(t,e)=>{te.init(t,e),Y(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=>a_(i,t)):a_(o,t)}});function a_(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 nS=S("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(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 wl=S("$ZodPipe",(t,e)=>{te.init(t,e),Y(t._zod,"values",()=>e.in._zod.values),Y(t._zod,"optin",()=>e.in._zod.optin),Y(t._zod,"optout",()=>e.out._zod.optout),Y(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=>Za(s,e.in,n)):Za(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Za(i,e.out,n)):Za(o,e.out,n)}});function Za(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 oS=S("$ZodPreprocess",(t,e)=>{wl.init(t,e)}),iS=S("$ZodReadonly",(t,e)=>{te.init(t,e),Y(t._zod,"propValues",()=>e.innerType._zod.propValues),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"optin",()=>e.innerType?._zod?.optin),Y(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(c_):c_(o)}});function c_(t){return t.value=Object.freeze(t.value),t}var sS=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=>u_(i,r,n,t));u_(o,r,n,t)}});function u_(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(yo(o))}}var _I=()=>{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=cl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${ja(o.values[0])}`:`Invalid option: expected one of ${Na(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":""}: ${Na(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 aS(){return{localeError:_I()}}var cS;var bl=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 uS(){return new bl}(cS=globalThis).__zod_globalRegistry??(cS.__zod_globalRegistry=uS());var Ur=globalThis.__zod_globalRegistry;function dS(t,e){return new t({type:"string",...M(e)})}function lS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function fS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Rl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function pS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function hS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function mS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function gS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function Cl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function yS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function vS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function _S(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function SS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function wS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function bS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function PS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function xS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function IS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function OS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function zS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function NS(t,e){return new t({type:"number",checks:[],...M(e)})}function DS(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function LS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function jS(t,e){return new t({type:"boolean",...M(e)})}function FS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function US(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function qS(t,e){return new t({type:"null",...M(e)})}function HS(t){return new t({type:"any"})}function GS(t){return new t({type:"unknown"})}function ZS(t,e){return new t({type:"never",...M(e)})}function BS(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new ml({check:"less_than",...M(e),value:t,inclusive:!1})}function dr(t,e){return new ml({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new gl({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new gl({check:"greater_than",...M(e),value:t,inclusive:!0})}function Fi(t,e){return new qv({check:"multiple_of",...M(e),value:t})}function Va(t,e){return new Gv({check:"max_length",...M(e),maximum:t})}function So(t,e){return new Zv({check:"min_length",...M(e),minimum:t})}function Ka(t,e){return new Bv({check:"length_equals",...M(e),length:t})}function Pl(t,e){return new Wv({check:"string_format",format:"regex",...M(e),pattern:t})}function xl(t){return new Vv({check:"string_format",format:"lowercase",...M(t)})}function kl(t){return new Kv({check:"string_format",format:"uppercase",...M(t)})}function El(t,e){return new Jv({check:"string_format",format:"includes",...M(e),includes:t})}function Tl(t,e){return new Yv({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Al(t,e){return new Xv({check:"string_format",format:"ends_with",...M(e),suffix:t})}function qr(t){return new Qv({check:"overwrite",tx:t})}function Ml(t){return qr(e=>e.normalize(t))}function $l(){return qr(t=>t.trim())}function Il(){return qr(t=>t.toLowerCase())}function Ol(){return qr(t=>t.toUpperCase())}function zl(){return qr(t=>rl(t))}function WS(t,e,r){return new t({type:"array",element:e,...M(r)})}function VS(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function KS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function JS(t,e){let r=SI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(yo(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(yo(i))}},t(n.value,n)),e);return r}function SI(t,e){let r=new Ie({check:"custom",...M(e)});return r._zod.check=t,r}function Nl(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??Ur,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 be(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),be(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 Dl(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 Ll(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:Ui(e,"input",t.processors),output:Ui(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 YS=(t,e={})=>r=>{let n=Nl({...r,processors:e});return be(t,n),Dl(n,t),Ll(n,t)},Ui=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Nl({...o??{},target:i,io:e,processors:r});return be(t,s),Dl(s,t),Ll(s,t)};var wI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},XS=(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=wI[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}))])}},QS=(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)},ew=(t,e,r,n)=>{r.type="boolean"},tw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var rw=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var nw=(t,e,r,n)=>{r.not={}},ow=(t,e,r,n)=>{},iw=(t,e,r,n)=>{},sw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},aw=(t,e,r,n)=>{let o=t._zod.def,i=Mi(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},cw=(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 uw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var dw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var lw=(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=be(i.element,e,{...n,path:[...n.path,"items"]})},fw=(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]=be(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=be(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},pw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>be(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},hw=(t,e,r,n)=>{let o=t._zod.def,i=be(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=be(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 mw=(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=be(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=be(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=be(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)}},gw=(t,e,r,n)=>{let o=t._zod.def,i=be(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"}]},yw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},vw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},_w=(t,e,r,n)=>{let o=t._zod.def;be(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)))},Sw=(t,e,r,n)=>{let o=t._zod.def;be(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},ww=(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;be(s,e,n);let a=e.seen.get(t);a.ref=s},bw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var jl=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Ja(t){return!!t._zod}function $t(t,e){return Ja(t)?Ni(t,e):t.safeParse(e)}function Ya(t){if(!t)return;let e;if(Ja(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Xa(t){if(Ja(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 qi={};Hu(qi,{ZodISODate:()=>Cw,ZodISODateTime:()=>Rw,ZodISODuration:()=>xw,ZodISOTime:()=>Pw,date:()=>Ul,datetime:()=>Fl,duration:()=>Hl,time:()=>ql});var Rw=S("ZodISODateTime",(t,e)=>{w_.init(t,e),me.init(t,e)});function Fl(t){return $S(Rw,t)}var Cw=S("ZodISODate",(t,e)=>{b_.init(t,e),me.init(t,e)});function Ul(t){return IS(Cw,t)}var Pw=S("ZodISOTime",(t,e)=>{R_.init(t,e),me.init(t,e)});function ql(t){return OS(Pw,t)}var xw=S("ZodISODuration",(t,e)=>{C_.init(t,e),me.init(t,e)});function Hl(t){return zS(xw,t)}var TI=(t,e)=>{Fa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>ll(t,r)},flatten:{value:r=>dl(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,mo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,mo,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=S("ZodError",TI,{Parent:Error});var Ew=Ua(ut),Tw=qa(ut),Aw=zi(ut),Mw=Di(ut),$w=ov(ut),Iw=iv(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut),Dw=uv(ut),Lw=dv(ut),jw=lv(ut);var Fw=new WeakMap;function Hi(t,e,r){let n=Object.getPrototypeOf(t),o=Fw.get(n);if(o||(o=new Set,Fw.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:Ui(t,"input"),output:Ui(t,"output")}}),t.toJSONSchema=YS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Ew(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Aw(t,r,n),t.parseAsync=async(r,n)=>Tw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Mw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>$w(t,r,n),t.decode=(r,n)=>Iw(t,r,n),t.encodeAsync=async(r,n)=>Ow(t,r,n),t.decodeAsync=async(r,n)=>zw(t,r,n),t.safeEncode=(r,n)=>Nw(t,r,n),t.safeDecode=(r,n)=>Dw(t,r,n),t.safeEncodeAsync=async(r,n)=>Lw(t,r,n),t.safeDecodeAsync=async(r,n)=>jw(t,r,n),Hi(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(yO(r,n))},superRefine(r,n){return this.check(vO(r,n))},overwrite(r){return this.check(qr(r))},optional(){return ye(this)},exactOptional(){return iO(this)},nullable(){return Gw(this)},nullish(){return ye(Gw(this))},nonoptional(r){return lO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return tc(this,r)},transform(r){return Zw(this,tb(r))},default(r){return cO(this,r)},prefault(r){return dO(this,r)},catch(r){return pO(this,r)},pipe(r){return Zw(this,r)},readonly(){return gO(this)},describe(r){let n=this.clone();return Ur.add(n,{description:r}),n},meta(...r){if(r.length===0)return Ur.get(this);let n=this.clone();return Ur.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 Ur.get(t)?.description},configurable:!0}),t)),Bw=S("_ZodString",(t,e)=>{Wa.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>XS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Hi(t,"_ZodString",{regex(...n){return this.check(Pl(...n))},includes(...n){return this.check(El(...n))},startsWith(...n){return this.check(Tl(...n))},endsWith(...n){return this.check(Al(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Va(...n))},length(...n){return this.check(Ka(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check(xl(n))},uppercase(n){return this.check(kl(n))},trim(){return this.check($l())},normalize(...n){return this.check(Ml(...n))},toLowerCase(){return this.check(Il())},toUpperCase(){return this.check(Ol())},slugify(){return this.check(zl())}})}),Zl=S("ZodString",(t,e)=>{Wa.init(t,e),Bw.init(t,e),t.email=r=>t.check(fS(MI,r)),t.url=r=>t.check(Cl(Ww,r)),t.jwt=r=>t.check(MS(BI,r)),t.emoji=r=>t.check(yS($I,r)),t.guid=r=>t.check(Rl(Uw,r)),t.uuid=r=>t.check(pS(Qa,r)),t.uuidv4=r=>t.check(hS(Qa,r)),t.uuidv6=r=>t.check(mS(Qa,r)),t.uuidv7=r=>t.check(gS(Qa,r)),t.nanoid=r=>t.check(vS(II,r)),t.guid=r=>t.check(Rl(Uw,r)),t.cuid=r=>t.check(_S(OI,r)),t.cuid2=r=>t.check(SS(zI,r)),t.ulid=r=>t.check(wS(NI,r)),t.base64=r=>t.check(ES(HI,r)),t.base64url=r=>t.check(TS(GI,r)),t.xid=r=>t.check(bS(DI,r)),t.ksuid=r=>t.check(RS(LI,r)),t.ipv4=r=>t.check(CS(jI,r)),t.ipv6=r=>t.check(PS(FI,r)),t.cidrv4=r=>t.check(xS(UI,r)),t.cidrv6=r=>t.check(kS(qI,r)),t.e164=r=>t.check(AS(ZI,r)),t.datetime=r=>t.check(Fl(r)),t.date=r=>t.check(Ul(r)),t.time=r=>t.check(ql(r)),t.duration=r=>t.check(Hl(r))});function y(t){return dS(Zl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Bw.init(t,e)}),MI=S("ZodEmail",(t,e)=>{f_.init(t,e),me.init(t,e)});var Uw=S("ZodGUID",(t,e)=>{d_.init(t,e),me.init(t,e)});var Qa=S("ZodUUID",(t,e)=>{l_.init(t,e),me.init(t,e)});var Ww=S("ZodURL",(t,e)=>{p_.init(t,e),me.init(t,e)});function Vw(t){return Cl(Ww,t)}var $I=S("ZodEmoji",(t,e)=>{h_.init(t,e),me.init(t,e)});var II=S("ZodNanoID",(t,e)=>{m_.init(t,e),me.init(t,e)});var OI=S("ZodCUID",(t,e)=>{g_.init(t,e),me.init(t,e)});var zI=S("ZodCUID2",(t,e)=>{y_.init(t,e),me.init(t,e)});var NI=S("ZodULID",(t,e)=>{v_.init(t,e),me.init(t,e)});var DI=S("ZodXID",(t,e)=>{__.init(t,e),me.init(t,e)});var LI=S("ZodKSUID",(t,e)=>{S_.init(t,e),me.init(t,e)});var jI=S("ZodIPv4",(t,e)=>{P_.init(t,e),me.init(t,e)});var FI=S("ZodIPv6",(t,e)=>{x_.init(t,e),me.init(t,e)});var UI=S("ZodCIDRv4",(t,e)=>{k_.init(t,e),me.init(t,e)});var qI=S("ZodCIDRv6",(t,e)=>{E_.init(t,e),me.init(t,e)});var HI=S("ZodBase64",(t,e)=>{A_.init(t,e),me.init(t,e)});var GI=S("ZodBase64URL",(t,e)=>{M_.init(t,e),me.init(t,e)});var ZI=S("ZodE164",(t,e)=>{$_.init(t,e),me.init(t,e)});var BI=S("ZodJWT",(t,e)=>{I_.init(t,e),me.init(t,e)});var ec=S("ZodNumber",(t,e)=>{vl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>QS(t,n,o,i),Hi(t,"ZodNumber",{gt(n,o){return this.check(_o(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(vo(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(qw(n))},safe(n){return this.check(qw(n))},positive(n){return this.check(_o(0,n))},nonnegative(n){return this.check(Mt(0,n))},negative(n){return this.check(vo(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Fi(n,o))},step(n,o){return this.check(Fi(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 NS(ec,t)}var WI=S("ZodNumberFormat",(t,e)=>{O_.init(t,e),ec.init(t,e)});function qw(t){return LS(WI,t)}var Bl=S("ZodBoolean",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o)});function ie(t){return jS(Bl,t)}var Kw=S("ZodBigInt",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>tw(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(_o(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(vo(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(_o(BigInt(0),n)),t.negative=n=>t.check(vo(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(Fi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var VI=S("ZodNull",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function Jw(t){return qS(VI,t)}var KI=S("ZodAny",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o)});function Yw(){return HS(KI)}var JI=S("ZodUnknown",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o)});function ge(){return GS(JI)}var YI=S("ZodNever",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o)});function XI(t){return ZS(YI,t)}var Xw=S("ZodDate",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>sw(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 QI=S("ZodArray",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.element=e.element,Hi(t,"ZodArray",{min(r,n){return this.check(So(r,n))},nonempty(r){return this.check(So(1,r))},max(r,n){return this.check(Va(r,n))},length(r,n){return this.check(Ka(r,n))},unwrap(){return this.element}})});function x(t,e){return WS(QI,t,e)}var Qw=S("ZodObject",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Hi(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:XI()})},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(rb,this,r[0])},required(...r){return H.required(nb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Qw(r)}function Ee(t,e){return new Qw({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var eb=S("ZodUnion",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.options=e.options});function ue(t,e){return new eb({type:"union",options:t,...H.normalizeParams(e)})}var eO=S("ZodDiscriminatedUnion",(t,e)=>{eb.init(t,e),B_.init(t,e)});function Wl(t,e,r){return new eO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var tO=S("ZodIntersection",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o)});function tc(t,e){return new tO({type:"intersection",left:t,right:e})}var Hw=S("ZodRecord",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Hw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Hw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Gl=S("ZodEnum",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>aw(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 Gl({...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 Gl({...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 Gl({type:"enum",entries:r,...H.normalizeParams(e)})}var rO=S("ZodLiteral",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(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 rO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var nO=S("ZodTransform",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new po(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 tb(t){return new nO({type:"transform",transform:t})}var rb=S("ZodOptional",(t,e)=>{Sl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>jl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new rb({type:"optional",innerType:t})}var oO=S("ZodExactOptional",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>jl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function iO(t){return new oO({type:"optional",innerType:t})}var sO=S("ZodNullable",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Gw(t){return new sO({type:"nullable",innerType:t})}var aO=S("ZodDefault",(t,e)=>{eS.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.removeDefault=t.unwrap});function cO(t,e){return new aO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var uO=S("ZodPrefault",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function dO(t,e){return new uO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var nb=S("ZodNonOptional",(t,e)=>{rS.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 lO(t,e){return new nb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var fO=S("ZodCatch",(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,t.removeCatch=t.unwrap});function pO(t,e){return new fO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var ob=S("ZodPipe",(t,e)=>{wl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.in=e.in,t.out=e.out});function Zw(t,e){return new ob({type:"pipe",in:t,out:e})}var hO=S("ZodPreprocess",(t,e)=>{ob.init(t,e),oS.init(t,e)}),mO=S("ZodReadonly",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function gO(t){return new mO({type:"readonly",innerType:t})}var ib=S("ZodCustom",(t,e)=>{sS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o)});function sb(t,e){return VS(ib,t??(()=>!0),e)}function yO(t,e={}){return KS(ib,t,e)}function vO(t,e){return JS(t,e)}function Vl(t,e){return new hO({type:"pipe",in:tb(t),out:e})}var cb={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 ab;ab||(ab={});var rc={};Hu(rc,{bigint:()=>bO,boolean:()=>wO,date:()=>RO,number:()=>SO,string:()=>_O});function _O(t){return lS(Zl,t)}function SO(t){return DS(ec,t)}function wO(t){return FS(Bl,t)}function bO(t){return US(Kw,t)}function RO(t){return BS(Xw,t)}Xe(aS());var Ro="2025-11-25";var ub=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Hr="io.modelcontextprotocol/related-task",oc="2.0",Te=sb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),db=ue([y(),K().int()]),lb=y(),KV=Ee({ttl:K().optional(),pollInterval:K().optional()}),PO=k({ttl:K().optional()}),xO=k({taskId:y()}),Jl=Ee({progressToken:db.optional(),[Hr]:xO.optional()}),dt=k({_meta:Jl.optional()}),Gi=dt.extend({task:PO.optional()}),fb=t=>Gi.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Jl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:Jl.optional()}),ic=ue([y(),K().int()]),pb=k({jsonrpc:E(oc),id:ic,...Oe.shape}).strict(),Zi=t=>pb.safeParse(t).success,hb=k({jsonrpc:E(oc),...St.shape}).strict(),mb=t=>hb.safeParse(t).success,Yl=k({jsonrpc:E(oc),id:ic,result:Ae}).strict(),wn=t=>Yl.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 Xl=k({jsonrpc:E(oc),id:ic.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var gb=t=>Xl.safeParse(t).success;var Gr=ue([pb,hb,Yl,Xl]),JV=ue([Yl,Xl]),bn=Ae.strict(),kO=_t.extend({requestId:ic.optional(),reason:y().optional()}),sc=St.extend({method:E("notifications/cancelled"),params:kO}),EO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:Qe(["light","dark"]).optional()}),Bi=k({icons:x(EO).optional()}),bo=k({name:y(),title:y().optional()}),yb=bo.extend({...bo.shape,...Bi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),TO=tc(k({applyDefaults:ie().optional()}),ae(y(),ge())),AO=Vl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,tc(k({form:TO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),MO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),$O=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),IO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:AO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:MO.optional(),extensions:ae(y(),Te).optional()}),OO=dt.extend({protocolVersion:y(),capabilities:IO,clientInfo:yb}),zO=Oe.extend({method:E("initialize"),params:OO});var NO=k({experimental:ae(y(),Te).optional(),logging:Te.optional(),completions:Te.optional(),prompts:k({listChanged:ie().optional()}).optional(),resources:k({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:k({listChanged:ie().optional()}).optional(),tasks:$O.optional(),extensions:ae(y(),Te).optional()}),Ql=Ae.extend({protocolVersion:y(),capabilities:NO,serverInfo:yb,instructions:y().optional()}),vb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),_b=t=>vb.safeParse(t).success,ac=Oe.extend({method:E("ping"),params:dt.optional()}),DO=k({progress:K(),total:ye(K()),message:ye(y())}),LO=k({..._t.shape,...DO.shape,progressToken:db}),cc=St.extend({method:E("notifications/progress"),params:LO}),jO=dt.extend({cursor:lb.optional()}),Wi=Oe.extend({params:jO.optional()}),Vi=Ae.extend({nextCursor:lb.optional()}),FO=Qe(["working","input_required","completed","failed","cancelled"]),Ki=k({taskId:y(),status:FO,ttl:ue([K(),Jw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Ki}),UO=_t.merge(Ki),Ji=St.extend({method:E("notifications/tasks/status"),params:UO}),uc=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),dc=Ae.merge(Ki),lc=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),YV=Ae.loose(),fc=Wi.extend({method:E("tasks/list")}),pc=Vi.extend({tasks:x(Ki)}),hc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),Sb=Ae.merge(Ki),wb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),bb=wb.extend({text:y()}),ef=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Rb=wb.extend({blob:ef}),Yi=Qe(["user","assistant"]),Co=k({audience:x(Yi).optional(),priority:K().min(0).max(1).optional(),lastModified:qi.datetime({offset:!0}).optional()}),Cb=k({...bo.shape,...Bi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),qO=k({...bo.shape,...Bi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),HO=Wi.extend({method:E("resources/list")}),tf=Vi.extend({resources:x(Cb)}),GO=Wi.extend({method:E("resources/templates/list")}),rf=Vi.extend({resourceTemplates:x(qO)}),nf=dt.extend({uri:y()}),ZO=nf,BO=Oe.extend({method:E("resources/read"),params:ZO}),of=Ae.extend({contents:x(ue([bb,Rb]))}),sf=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),WO=nf,VO=Oe.extend({method:E("resources/subscribe"),params:WO}),KO=nf,JO=Oe.extend({method:E("resources/unsubscribe"),params:KO}),YO=_t.extend({uri:y()}),XO=St.extend({method:E("notifications/resources/updated"),params:YO}),QO=k({name:y(),description:ye(y()),required:ye(ie())}),ez=k({...bo.shape,...Bi.shape,description:ye(y()),arguments:ye(x(QO)),_meta:ye(Ee({}))}),tz=Wi.extend({method:E("prompts/list")}),af=Vi.extend({prompts:x(ez)}),rz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),nz=Oe.extend({method:E("prompts/get"),params:rz}),cf=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),uf=k({type:E("image"),data:ef,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),df=k({type:E("audio"),data:ef,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),oz=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),iz=k({type:E("resource"),resource:ue([bb,Rb]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),sz=Cb.extend({type:E("resource_link")}),lf=ue([cf,uf,df,sz,iz]),az=k({role:Yi,content:lf}),ff=Ae.extend({description:y().optional(),messages:x(az)}),pf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),cz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),uz=k({taskSupport:Qe(["required","optional","forbidden"]).optional()}),Pb=k({...bo.shape,...Bi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:cz.optional(),execution:uz.optional(),_meta:ae(y(),ge()).optional()}),dz=Wi.extend({method:E("tools/list")}),hf=Vi.extend({tools:x(Pb)}),Cn=Ae.extend({content:x(lf).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),XV=Cn.or(Ae.extend({toolResult:ge()})),lz=Gi.extend({name:y(),arguments:ae(y(),ge()).optional()}),fz=Oe.extend({method:E("tools/call"),params:lz}),Xi=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),xb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),kb=Qe(["debug","info","notice","warning","error","critical","alert","emergency"]),pz=dt.extend({level:kb}),hz=Oe.extend({method:E("logging/setLevel"),params:pz}),mz=_t.extend({level:kb,logger:y().optional(),data:ge()}),gz=St.extend({method:E("notifications/message"),params:mz}),yz=k({name:y().optional()}),vz=k({hints:x(yz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),_z=k({mode:Qe(["auto","required","none"]).optional()}),Sz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(lf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),wz=Wl("type",[cf,uf,df]),nc=Wl("type",[cf,uf,df,oz,Sz]),bz=k({role:Yi,content:ue([nc,x(nc)]),_meta:ae(y(),ge()).optional()}),Rz=Gi.extend({messages:x(bz),modelPreferences:vz.optional(),systemPrompt:y().optional(),includeContext:Qe(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:x(y()).optional(),metadata:Te.optional(),tools:x(Pb).optional(),toolChoice:_z.optional()}),mf=Oe.extend({method:E("sampling/createMessage"),params:Rz}),gf=Ae.extend({model:y(),stopReason:ye(Qe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Yi,content:wz}),yf=Ae.extend({model:y(),stopReason:ye(Qe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Yi,content:ue([nc,x(nc)])}),Cz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),Pz=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()}),xz=k({type:Qe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),kz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),Ez=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),Tz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),Az=ue([kz,Ez]),Mz=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()}),$z=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()}),Iz=ue([Mz,$z]),Oz=ue([Tz,Az,Iz]),zz=ue([Oz,Cz,Pz,xz]),Nz=Gi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),zz),required:x(y()).optional()})}),Dz=Gi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Lz=ue([Nz,Dz]),vf=Oe.extend({method:E("elicitation/create"),params:Lz}),jz=_t.extend({elicitationId:y()}),Fz=St.extend({method:E("notifications/elicitation/complete"),params:jz}),_f=Ae.extend({action:Qe(["accept","decline","cancel"]),content:Vl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Uz=k({type:E("ref/resource"),uri:y()});var qz=k({type:E("ref/prompt"),name:y()}),Hz=dt.extend({ref:ue([qz,Uz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Gz=Oe.extend({method:E("completion/complete"),params:Hz});var Sf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Zz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),Bz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Wz=Ae.extend({roots:x(Zz)}),Vz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),QV=ue([ac,zO,Gz,hz,nz,tz,HO,GO,BO,VO,JO,fz,dz,uc,lc,fc,hc]),e6=ue([sc,cc,vb,Vz,Ji]),t6=ue([bn,gf,yf,_f,Wz,dc,pc,Rn]),r6=ue([ac,mf,vf,Bz,uc,lc,fc,hc]),n6=ue([sc,cc,gz,XO,sf,Xi,pf,Ji,Fz]),o6=ue([bn,Ql,Sf,ff,af,tf,rf,of,Cn,hf,dc,pc,Rn]),T=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 Kl(o.elicitations,r)}return new t(e,r,n)}},Kl=class extends T{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Zr(t){return t==="completed"||t==="failed"||t==="cancelled"}var D6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function wf(t){let r=Ya(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Xa(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function bf(t,e){let r=$t(t,e);if(!r.success)throw r.error;return r.data}var eN=6e4,mc=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(sc,r=>{this._oncancel(r)}),this.setNotificationHandler(cc,r=>{this._onprogress(r)}),this.setRequestHandler(ac,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(uc,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(lc,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 T(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 T($.InvalidParams,`Task not found: ${i}`);if(!Zr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Zr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Hr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(fc,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 T($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(hc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Zr(o.status))throw new T($.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 T($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof T?o:new T($.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),T.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)||gb(i)?this._onresponse(i):Zi(i)?this._onrequest(i,s):mb(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=T.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?.[Hr]?.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=fb(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 T($.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 T(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=T.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 T?s:new T($.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 T($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Zr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new T($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new T($.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 T?s:new T($.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||{},[Hr]: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 w=b instanceof T?b:new T($.RequestTimeout,String(b));d(w)};this._responseHandlers.set(f,b=>{if(!n?.signal?.aborted){if(b instanceof Error)return d(b);try{let w=$t(r,b.result);w.success?u(w.data):d(w.error)}catch(w){d(w)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let m=n?.timeout??eN,g=()=>h(T.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=w=>{let R=this._responseHandlers.get(f);R?R(w):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(w=>{this._cleanupTimeout(f),d(w)})}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},dc,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},pc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Sb,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||{},[Hr]: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||{},[Hr]: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||{},[Hr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=wf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=bf(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=wf(e);this._notificationHandlers.set(n,o=>{let i=bf(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"&&Zi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new T($.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 T($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new T($.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 T($.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=Ji.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Zr(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 T($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Zr(a.status))throw new T($.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=Ji.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Zr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Eb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Tb(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];Eb(s)&&Eb(i)?r[o]={...s,...i}:r[o]=i}return r}var _P=ta(ch(),1),SP=ta(vP(),1);function iU(){let t=new _P.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,SP.default)(t),t}var Xc=class{constructor(e){this._ajv=e??iU()}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 Qc=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 T($.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 T($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof T){yield{type:"error",error:d};return}yield{type:"error",error:new T($.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 wP(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 bP(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 eu(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&&eu(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&eu(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&eu(r,e)}}function sU(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 tu=class extends mc{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 Xc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Xi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",pf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",sf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Qc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Tb(this._capabilities,e)}setRequestHandler(e,r){let o=Ya(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Xa(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(vf,c);if(!d.success){let b=d.error instanceof Error?d.error.message:String(d.error);throw new T($.InvalidParams,`Invalid elicitation request: ${b}`)}let{params:l}=d.data;l.mode=l.mode??"form";let{supportsFormMode:f,supportsUrlMode:p}=sU(this._capabilities.elicitation);if(l.mode==="form"&&!f)throw new T($.InvalidParams,"Client does not support form-mode elicitation requests");if(l.mode==="url"&&!p)throw new T($.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 w=b.error instanceof Error?b.error.message:String(b.error);throw new T($.InvalidParams,`Invalid task creation result: ${w}`)}return b.data}let m=$t(_f,h);if(!m.success){let b=m.error instanceof Error?m.error.message:String(m.error);throw new T($.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{eu(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=$t(mf,c);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new T($.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 T($.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let h=l.tools||l.toolChoice?yf:gf,m=$t(h,f);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new T($.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:Ro,capabilities:this._capabilities,clientInfo:this._clientInfo}},Ql,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!ub.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){wP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&bP(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},Sf,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},ff,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},af,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},tf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},rf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},of,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 T($.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 T($.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 T($.InvalidParams,`Structured content does not match the tool's output schema: ${s.errorMessage}`)}catch(s){throw s instanceof T?s:new T($.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},hf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=xb.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 Ts=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}},RP=10,aU=13,Nn=32;function gh(t){}function ru(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=gh,onError:r=gh,onRetry:n=gh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(_){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,_.charCodeAt(0)===239&&_.charCodeAt(1)===187&&_.charCodeAt(2)===191&&(_=_.slice(3))),s.length===0){let ne=g(_);ne!==""&&(s.push(ne),a=ne.length),m();return}if(_.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 Ll(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:Ui(e,"input",t.processors),output:Ui(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 YS=(t,e={})=>r=>{let n=Nl({...r,processors:e});return be(t,n),Dl(n,t),Ll(n,t)},Ui=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Nl({...o??{},target:i,io:e,processors:r});return be(t,s),Dl(s,t),Ll(s,t)};var wI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},XS=(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=wI[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}))])}},QS=(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)},ew=(t,e,r,n)=>{r.type="boolean"},tw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var rw=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var nw=(t,e,r,n)=>{r.not={}},ow=(t,e,r,n)=>{},iw=(t,e,r,n)=>{},sw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},aw=(t,e,r,n)=>{let o=t._zod.def,i=Mi(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},cw=(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 uw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var dw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var lw=(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=be(i.element,e,{...n,path:[...n.path,"items"]})},fw=(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]=be(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=be(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},pw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>be(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},hw=(t,e,r,n)=>{let o=t._zod.def,i=be(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=be(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 mw=(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=be(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=be(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=be(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)}},gw=(t,e,r,n)=>{let o=t._zod.def,i=be(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"}]},yw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},vw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},_w=(t,e,r,n)=>{let o=t._zod.def;be(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)))},Sw=(t,e,r,n)=>{let o=t._zod.def;be(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},ww=(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;be(s,e,n);let a=e.seen.get(t);a.ref=s},bw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var jl=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Ja(t){return!!t._zod}function It(t,e){return Ja(t)?Ni(t,e):t.safeParse(e)}function Ya(t){if(!t)return;let e;if(Ja(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Xa(t){if(Ja(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 qi={};Hu(qi,{ZodISODate:()=>Cw,ZodISODateTime:()=>Rw,ZodISODuration:()=>xw,ZodISOTime:()=>Pw,date:()=>Ul,datetime:()=>Fl,duration:()=>Hl,time:()=>ql});var Rw=S("ZodISODateTime",(t,e)=>{w_.init(t,e),me.init(t,e)});function Fl(t){return $S(Rw,t)}var Cw=S("ZodISODate",(t,e)=>{b_.init(t,e),me.init(t,e)});function Ul(t){return IS(Cw,t)}var Pw=S("ZodISOTime",(t,e)=>{R_.init(t,e),me.init(t,e)});function ql(t){return OS(Pw,t)}var xw=S("ZodISODuration",(t,e)=>{C_.init(t,e),me.init(t,e)});function Hl(t){return zS(xw,t)}var TI=(t,e)=>{Fa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>ll(t,r)},flatten:{value:r=>dl(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,mo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,mo,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=S("ZodError",TI,{Parent:Error});var Ew=Ua(ut),Tw=qa(ut),Aw=zi(ut),Mw=Di(ut),$w=ov(ut),Iw=iv(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut),Dw=uv(ut),Lw=dv(ut),jw=lv(ut);var Fw=new WeakMap;function Hi(t,e,r){let n=Object.getPrototypeOf(t),o=Fw.get(n);if(o||(o=new Set,Fw.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:Ui(t,"input"),output:Ui(t,"output")}}),t.toJSONSchema=YS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Ew(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Aw(t,r,n),t.parseAsync=async(r,n)=>Tw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Mw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>$w(t,r,n),t.decode=(r,n)=>Iw(t,r,n),t.encodeAsync=async(r,n)=>Ow(t,r,n),t.decodeAsync=async(r,n)=>zw(t,r,n),t.safeEncode=(r,n)=>Nw(t,r,n),t.safeDecode=(r,n)=>Dw(t,r,n),t.safeEncodeAsync=async(r,n)=>Lw(t,r,n),t.safeDecodeAsync=async(r,n)=>jw(t,r,n),Hi(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(yO(r,n))},superRefine(r,n){return this.check(vO(r,n))},overwrite(r){return this.check(qr(r))},optional(){return ye(this)},exactOptional(){return iO(this)},nullable(){return Gw(this)},nullish(){return ye(Gw(this))},nonoptional(r){return lO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return tc(this,r)},transform(r){return Zw(this,tb(r))},default(r){return cO(this,r)},prefault(r){return dO(this,r)},catch(r){return pO(this,r)},pipe(r){return Zw(this,r)},readonly(){return gO(this)},describe(r){let n=this.clone();return Ur.add(n,{description:r}),n},meta(...r){if(r.length===0)return Ur.get(this);let n=this.clone();return Ur.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 Ur.get(t)?.description},configurable:!0}),t)),Bw=S("_ZodString",(t,e)=>{Wa.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>XS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Hi(t,"_ZodString",{regex(...n){return this.check(Pl(...n))},includes(...n){return this.check(El(...n))},startsWith(...n){return this.check(Tl(...n))},endsWith(...n){return this.check(Al(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Va(...n))},length(...n){return this.check(Ka(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check(xl(n))},uppercase(n){return this.check(kl(n))},trim(){return this.check($l())},normalize(...n){return this.check(Ml(...n))},toLowerCase(){return this.check(Il())},toUpperCase(){return this.check(Ol())},slugify(){return this.check(zl())}})}),Zl=S("ZodString",(t,e)=>{Wa.init(t,e),Bw.init(t,e),t.email=r=>t.check(fS(MI,r)),t.url=r=>t.check(Cl(Ww,r)),t.jwt=r=>t.check(MS(BI,r)),t.emoji=r=>t.check(yS($I,r)),t.guid=r=>t.check(Rl(Uw,r)),t.uuid=r=>t.check(pS(Qa,r)),t.uuidv4=r=>t.check(hS(Qa,r)),t.uuidv6=r=>t.check(mS(Qa,r)),t.uuidv7=r=>t.check(gS(Qa,r)),t.nanoid=r=>t.check(vS(II,r)),t.guid=r=>t.check(Rl(Uw,r)),t.cuid=r=>t.check(_S(OI,r)),t.cuid2=r=>t.check(SS(zI,r)),t.ulid=r=>t.check(wS(NI,r)),t.base64=r=>t.check(ES(HI,r)),t.base64url=r=>t.check(TS(GI,r)),t.xid=r=>t.check(bS(DI,r)),t.ksuid=r=>t.check(RS(LI,r)),t.ipv4=r=>t.check(CS(jI,r)),t.ipv6=r=>t.check(PS(FI,r)),t.cidrv4=r=>t.check(xS(UI,r)),t.cidrv6=r=>t.check(kS(qI,r)),t.e164=r=>t.check(AS(ZI,r)),t.datetime=r=>t.check(Fl(r)),t.date=r=>t.check(Ul(r)),t.time=r=>t.check(ql(r)),t.duration=r=>t.check(Hl(r))});function y(t){return dS(Zl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Bw.init(t,e)}),MI=S("ZodEmail",(t,e)=>{f_.init(t,e),me.init(t,e)});var Uw=S("ZodGUID",(t,e)=>{d_.init(t,e),me.init(t,e)});var Qa=S("ZodUUID",(t,e)=>{l_.init(t,e),me.init(t,e)});var Ww=S("ZodURL",(t,e)=>{p_.init(t,e),me.init(t,e)});function Vw(t){return Cl(Ww,t)}var $I=S("ZodEmoji",(t,e)=>{h_.init(t,e),me.init(t,e)});var II=S("ZodNanoID",(t,e)=>{m_.init(t,e),me.init(t,e)});var OI=S("ZodCUID",(t,e)=>{g_.init(t,e),me.init(t,e)});var zI=S("ZodCUID2",(t,e)=>{y_.init(t,e),me.init(t,e)});var NI=S("ZodULID",(t,e)=>{v_.init(t,e),me.init(t,e)});var DI=S("ZodXID",(t,e)=>{__.init(t,e),me.init(t,e)});var LI=S("ZodKSUID",(t,e)=>{S_.init(t,e),me.init(t,e)});var jI=S("ZodIPv4",(t,e)=>{P_.init(t,e),me.init(t,e)});var FI=S("ZodIPv6",(t,e)=>{x_.init(t,e),me.init(t,e)});var UI=S("ZodCIDRv4",(t,e)=>{k_.init(t,e),me.init(t,e)});var qI=S("ZodCIDRv6",(t,e)=>{E_.init(t,e),me.init(t,e)});var HI=S("ZodBase64",(t,e)=>{A_.init(t,e),me.init(t,e)});var GI=S("ZodBase64URL",(t,e)=>{M_.init(t,e),me.init(t,e)});var ZI=S("ZodE164",(t,e)=>{$_.init(t,e),me.init(t,e)});var BI=S("ZodJWT",(t,e)=>{I_.init(t,e),me.init(t,e)});var ec=S("ZodNumber",(t,e)=>{vl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>QS(t,n,o,i),Hi(t,"ZodNumber",{gt(n,o){return this.check(_o(n,o))},gte(n,o){return this.check($t(n,o))},min(n,o){return this.check($t(n,o))},lt(n,o){return this.check(vo(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(qw(n))},safe(n){return this.check(qw(n))},positive(n){return this.check(_o(0,n))},nonnegative(n){return this.check($t(0,n))},negative(n){return this.check(vo(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Fi(n,o))},step(n,o){return this.check(Fi(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 NS(ec,t)}var WI=S("ZodNumberFormat",(t,e)=>{O_.init(t,e),ec.init(t,e)});function qw(t){return LS(WI,t)}var Bl=S("ZodBoolean",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o)});function ie(t){return jS(Bl,t)}var Kw=S("ZodBigInt",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>tw(t,n,o,i),t.gte=(n,o)=>t.check($t(n,o)),t.min=(n,o)=>t.check($t(n,o)),t.gt=(n,o)=>t.check(_o(n,o)),t.gte=(n,o)=>t.check($t(n,o)),t.min=(n,o)=>t.check($t(n,o)),t.lt=(n,o)=>t.check(vo(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(_o(BigInt(0),n)),t.negative=n=>t.check(vo(BigInt(0),n)),t.nonpositive=n=>t.check(dr(BigInt(0),n)),t.nonnegative=n=>t.check($t(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Fi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var VI=S("ZodNull",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function Jw(t){return qS(VI,t)}var KI=S("ZodAny",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o)});function Yw(){return HS(KI)}var JI=S("ZodUnknown",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o)});function ge(){return GS(JI)}var YI=S("ZodNever",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o)});function XI(t){return ZS(YI,t)}var Xw=S("ZodDate",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>sw(t,n,o,i),t.min=(n,o)=>t.check($t(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 QI=S("ZodArray",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.element=e.element,Hi(t,"ZodArray",{min(r,n){return this.check(So(r,n))},nonempty(r){return this.check(So(1,r))},max(r,n){return this.check(Va(r,n))},length(r,n){return this.check(Ka(r,n))},unwrap(){return this.element}})});function x(t,e){return WS(QI,t,e)}var Qw=S("ZodObject",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Hi(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:XI()})},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(rb,this,r[0])},required(...r){return H.required(nb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Qw(r)}function Ee(t,e){return new Qw({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var eb=S("ZodUnion",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.options=e.options});function ue(t,e){return new eb({type:"union",options:t,...H.normalizeParams(e)})}var eO=S("ZodDiscriminatedUnion",(t,e)=>{eb.init(t,e),B_.init(t,e)});function Wl(t,e,r){return new eO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var tO=S("ZodIntersection",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o)});function tc(t,e){return new tO({type:"intersection",left:t,right:e})}var Hw=S("ZodRecord",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Hw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Hw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Gl=S("ZodEnum",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>aw(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 Gl({...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 Gl({...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 Gl({type:"enum",entries:r,...H.normalizeParams(e)})}var rO=S("ZodLiteral",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(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 rO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var nO=S("ZodTransform",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new po(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 tb(t){return new nO({type:"transform",transform:t})}var rb=S("ZodOptional",(t,e)=>{Sl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>jl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new rb({type:"optional",innerType:t})}var oO=S("ZodExactOptional",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>jl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function iO(t){return new oO({type:"optional",innerType:t})}var sO=S("ZodNullable",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Gw(t){return new sO({type:"nullable",innerType:t})}var aO=S("ZodDefault",(t,e)=>{eS.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.removeDefault=t.unwrap});function cO(t,e){return new aO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var uO=S("ZodPrefault",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function dO(t,e){return new uO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var nb=S("ZodNonOptional",(t,e)=>{rS.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 lO(t,e){return new nb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var fO=S("ZodCatch",(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,t.removeCatch=t.unwrap});function pO(t,e){return new fO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var ob=S("ZodPipe",(t,e)=>{wl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.in=e.in,t.out=e.out});function Zw(t,e){return new ob({type:"pipe",in:t,out:e})}var hO=S("ZodPreprocess",(t,e)=>{ob.init(t,e),oS.init(t,e)}),mO=S("ZodReadonly",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function gO(t){return new mO({type:"readonly",innerType:t})}var ib=S("ZodCustom",(t,e)=>{sS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o)});function sb(t,e){return VS(ib,t??(()=>!0),e)}function yO(t,e={}){return KS(ib,t,e)}function vO(t,e){return JS(t,e)}function Vl(t,e){return new hO({type:"pipe",in:tb(t),out:e})}var cb={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 ab;ab||(ab={});var rc={};Hu(rc,{bigint:()=>bO,boolean:()=>wO,date:()=>RO,number:()=>SO,string:()=>_O});function _O(t){return lS(Zl,t)}function SO(t){return DS(ec,t)}function wO(t){return FS(Bl,t)}function bO(t){return US(Kw,t)}function RO(t){return BS(Xw,t)}Xe(aS());var Ro="2025-11-25";var ub=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Hr="io.modelcontextprotocol/related-task",oc="2.0",Te=sb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),db=ue([y(),K().int()]),lb=y(),JV=Ee({ttl:K().optional(),pollInterval:K().optional()}),PO=k({ttl:K().optional()}),xO=k({taskId:y()}),Jl=Ee({progressToken:db.optional(),[Hr]:xO.optional()}),dt=k({_meta:Jl.optional()}),Gi=dt.extend({task:PO.optional()}),fb=t=>Gi.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Jl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:Jl.optional()}),ic=ue([y(),K().int()]),pb=k({jsonrpc:E(oc),id:ic,...Oe.shape}).strict(),Zi=t=>pb.safeParse(t).success,hb=k({jsonrpc:E(oc),...St.shape}).strict(),mb=t=>hb.safeParse(t).success,Yl=k({jsonrpc:E(oc),id:ic,result:Ae}).strict(),wn=t=>Yl.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 Xl=k({jsonrpc:E(oc),id:ic.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var gb=t=>Xl.safeParse(t).success;var Gr=ue([pb,hb,Yl,Xl]),YV=ue([Yl,Xl]),bn=Ae.strict(),kO=_t.extend({requestId:ic.optional(),reason:y().optional()}),sc=St.extend({method:E("notifications/cancelled"),params:kO}),EO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:Qe(["light","dark"]).optional()}),Bi=k({icons:x(EO).optional()}),bo=k({name:y(),title:y().optional()}),yb=bo.extend({...bo.shape,...Bi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),TO=tc(k({applyDefaults:ie().optional()}),ae(y(),ge())),AO=Vl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,tc(k({form:TO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),MO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),$O=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),IO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:AO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:MO.optional(),extensions:ae(y(),Te).optional()}),OO=dt.extend({protocolVersion:y(),capabilities:IO,clientInfo:yb}),zO=Oe.extend({method:E("initialize"),params:OO});var NO=k({experimental:ae(y(),Te).optional(),logging:Te.optional(),completions:Te.optional(),prompts:k({listChanged:ie().optional()}).optional(),resources:k({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:k({listChanged:ie().optional()}).optional(),tasks:$O.optional(),extensions:ae(y(),Te).optional()}),Ql=Ae.extend({protocolVersion:y(),capabilities:NO,serverInfo:yb,instructions:y().optional()}),vb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),_b=t=>vb.safeParse(t).success,ac=Oe.extend({method:E("ping"),params:dt.optional()}),DO=k({progress:K(),total:ye(K()),message:ye(y())}),LO=k({..._t.shape,...DO.shape,progressToken:db}),cc=St.extend({method:E("notifications/progress"),params:LO}),jO=dt.extend({cursor:lb.optional()}),Wi=Oe.extend({params:jO.optional()}),Vi=Ae.extend({nextCursor:lb.optional()}),FO=Qe(["working","input_required","completed","failed","cancelled"]),Ki=k({taskId:y(),status:FO,ttl:ue([K(),Jw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Ki}),UO=_t.merge(Ki),Ji=St.extend({method:E("notifications/tasks/status"),params:UO}),uc=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),dc=Ae.merge(Ki),lc=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),XV=Ae.loose(),fc=Wi.extend({method:E("tasks/list")}),pc=Vi.extend({tasks:x(Ki)}),hc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),Sb=Ae.merge(Ki),wb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),bb=wb.extend({text:y()}),ef=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Rb=wb.extend({blob:ef}),Yi=Qe(["user","assistant"]),Co=k({audience:x(Yi).optional(),priority:K().min(0).max(1).optional(),lastModified:qi.datetime({offset:!0}).optional()}),Cb=k({...bo.shape,...Bi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),qO=k({...bo.shape,...Bi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),HO=Wi.extend({method:E("resources/list")}),tf=Vi.extend({resources:x(Cb)}),GO=Wi.extend({method:E("resources/templates/list")}),rf=Vi.extend({resourceTemplates:x(qO)}),nf=dt.extend({uri:y()}),ZO=nf,BO=Oe.extend({method:E("resources/read"),params:ZO}),of=Ae.extend({contents:x(ue([bb,Rb]))}),sf=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),WO=nf,VO=Oe.extend({method:E("resources/subscribe"),params:WO}),KO=nf,JO=Oe.extend({method:E("resources/unsubscribe"),params:KO}),YO=_t.extend({uri:y()}),XO=St.extend({method:E("notifications/resources/updated"),params:YO}),QO=k({name:y(),description:ye(y()),required:ye(ie())}),ez=k({...bo.shape,...Bi.shape,description:ye(y()),arguments:ye(x(QO)),_meta:ye(Ee({}))}),tz=Wi.extend({method:E("prompts/list")}),af=Vi.extend({prompts:x(ez)}),rz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),nz=Oe.extend({method:E("prompts/get"),params:rz}),cf=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),uf=k({type:E("image"),data:ef,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),df=k({type:E("audio"),data:ef,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),oz=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),iz=k({type:E("resource"),resource:ue([bb,Rb]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),sz=Cb.extend({type:E("resource_link")}),lf=ue([cf,uf,df,sz,iz]),az=k({role:Yi,content:lf}),ff=Ae.extend({description:y().optional(),messages:x(az)}),pf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),cz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),uz=k({taskSupport:Qe(["required","optional","forbidden"]).optional()}),Pb=k({...bo.shape,...Bi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:cz.optional(),execution:uz.optional(),_meta:ae(y(),ge()).optional()}),dz=Wi.extend({method:E("tools/list")}),hf=Vi.extend({tools:x(Pb)}),Cn=Ae.extend({content:x(lf).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),QV=Cn.or(Ae.extend({toolResult:ge()})),lz=Gi.extend({name:y(),arguments:ae(y(),ge()).optional()}),fz=Oe.extend({method:E("tools/call"),params:lz}),Xi=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),xb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),kb=Qe(["debug","info","notice","warning","error","critical","alert","emergency"]),pz=dt.extend({level:kb}),hz=Oe.extend({method:E("logging/setLevel"),params:pz}),mz=_t.extend({level:kb,logger:y().optional(),data:ge()}),gz=St.extend({method:E("notifications/message"),params:mz}),yz=k({name:y().optional()}),vz=k({hints:x(yz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),_z=k({mode:Qe(["auto","required","none"]).optional()}),Sz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(lf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),wz=Wl("type",[cf,uf,df]),nc=Wl("type",[cf,uf,df,oz,Sz]),bz=k({role:Yi,content:ue([nc,x(nc)]),_meta:ae(y(),ge()).optional()}),Rz=Gi.extend({messages:x(bz),modelPreferences:vz.optional(),systemPrompt:y().optional(),includeContext:Qe(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:x(y()).optional(),metadata:Te.optional(),tools:x(Pb).optional(),toolChoice:_z.optional()}),mf=Oe.extend({method:E("sampling/createMessage"),params:Rz}),gf=Ae.extend({model:y(),stopReason:ye(Qe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Yi,content:wz}),yf=Ae.extend({model:y(),stopReason:ye(Qe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Yi,content:ue([nc,x(nc)])}),Cz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),Pz=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()}),xz=k({type:Qe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),kz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),Ez=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),Tz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),Az=ue([kz,Ez]),Mz=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()}),$z=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()}),Iz=ue([Mz,$z]),Oz=ue([Tz,Az,Iz]),zz=ue([Oz,Cz,Pz,xz]),Nz=Gi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),zz),required:x(y()).optional()})}),Dz=Gi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Lz=ue([Nz,Dz]),vf=Oe.extend({method:E("elicitation/create"),params:Lz}),jz=_t.extend({elicitationId:y()}),Fz=St.extend({method:E("notifications/elicitation/complete"),params:jz}),_f=Ae.extend({action:Qe(["accept","decline","cancel"]),content:Vl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Uz=k({type:E("ref/resource"),uri:y()});var qz=k({type:E("ref/prompt"),name:y()}),Hz=dt.extend({ref:ue([qz,Uz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Gz=Oe.extend({method:E("completion/complete"),params:Hz});var Sf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Zz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),Bz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Wz=Ae.extend({roots:x(Zz)}),Vz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),e6=ue([ac,zO,Gz,hz,nz,tz,HO,GO,BO,VO,JO,fz,dz,uc,lc,fc,hc]),t6=ue([sc,cc,vb,Vz,Ji]),r6=ue([bn,gf,yf,_f,Wz,dc,pc,Rn]),n6=ue([ac,mf,vf,Bz,uc,lc,fc,hc]),o6=ue([sc,cc,gz,XO,sf,Xi,pf,Ji,Fz]),i6=ue([bn,Ql,Sf,ff,af,tf,rf,of,Cn,hf,dc,pc,Rn]),T=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 Kl(o.elicitations,r)}return new t(e,r,n)}},Kl=class extends T{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Zr(t){return t==="completed"||t==="failed"||t==="cancelled"}var L6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function wf(t){let r=Ya(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Xa(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function bf(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var eN=6e4,mc=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(sc,r=>{this._oncancel(r)}),this.setNotificationHandler(cc,r=>{this._onprogress(r)}),this.setRequestHandler(ac,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(uc,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(lc,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 T(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 T($.InvalidParams,`Task not found: ${i}`);if(!Zr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Zr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Hr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(fc,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 T($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(hc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Zr(o.status))throw new T($.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 T($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof T?o:new T($.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),T.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)||gb(i)?this._onresponse(i):Zi(i)?this._onrequest(i,s):mb(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=T.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?.[Hr]?.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=fb(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 T($.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 T(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=T.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 T?s:new T($.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 T($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Zr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new T($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new T($.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 T?s:new T($.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||{},[Hr]: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(R=>this._onerror(new Error(`Failed to send cancellation: ${R}`)));let b=w instanceof T?w:new T($.RequestTimeout,String(w));d(b)};this._responseHandlers.set(f,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return d(w);try{let b=It(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??eN,g=()=>h(T.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 R=this._responseHandlers.get(f);R?R(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},dc,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},pc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Sb,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||{},[Hr]: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||{},[Hr]: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||{},[Hr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=wf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=bf(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=wf(e);this._notificationHandlers.set(n,o=>{let i=bf(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"&&Zi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new T($.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 T($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new T($.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 T($.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=Ji.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Zr(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 T($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Zr(a.status))throw new T($.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=Ji.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Zr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Eb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Tb(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];Eb(s)&&Eb(i)?r[o]={...s,...i}:r[o]=i}return r}var _P=ta(ch(),1),SP=ta(vP(),1);function iU(){let t=new _P.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,SP.default)(t),t}var Xc=class{constructor(e){this._ajv=e??iU()}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 Qc=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 T($.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 T($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof T){yield{type:"error",error:d};return}yield{type:"error",error:new T($.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 wP(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 bP(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 eu(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&&eu(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&eu(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&eu(r,e)}}function sU(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 tu=class extends mc{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 Xc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Xi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",pf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",sf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Qc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Tb(this._capabilities,e)}setRequestHandler(e,r){let o=Ya(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Xa(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=It(vf,c);if(!d.success){let w=d.error instanceof Error?d.error.message:String(d.error);throw new T($.InvalidParams,`Invalid elicitation request: ${w}`)}let{params:l}=d.data;l.mode=l.mode??"form";let{supportsFormMode:f,supportsUrlMode:p}=sU(this._capabilities.elicitation);if(l.mode==="form"&&!f)throw new T($.InvalidParams,"Client does not support form-mode elicitation requests");if(l.mode==="url"&&!p)throw new T($.InvalidParams,"Client does not support URL-mode elicitation requests");let h=await Promise.resolve(r(c,u));if(l.task){let w=It(Rn,h);if(!w.success){let b=w.error instanceof Error?w.error.message:String(w.error);throw new T($.InvalidParams,`Invalid task creation result: ${b}`)}return w.data}let m=It(_f,h);if(!m.success){let w=m.error instanceof Error?m.error.message:String(m.error);throw new T($.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{eu(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(mf,c);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new T($.InvalidParams,`Invalid sampling request: ${g}`)}let{params:l}=d.data,f=await Promise.resolve(r(c,u));if(l.task){let g=It(Rn,f);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new T($.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let h=l.tools||l.toolChoice?yf:gf,m=It(h,f);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new T($.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:Ro,capabilities:this._capabilities,clientInfo:this._clientInfo}},Ql,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!ub.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){wP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&bP(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},Sf,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},ff,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},af,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},tf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},rf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},of,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 T($.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 T($.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 T($.InvalidParams,`Structured content does not match the tool's output schema: ${s.errorMessage}`)}catch(s){throw s instanceof T?s:new T($.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},hf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=xb.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 Ts=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}},RP=10,aU=13,Nn=32;function gh(t){}function ru(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=gh,onError:r=gh,onRetry:n=gh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(_){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,_.charCodeAt(0)===239&&_.charCodeAt(1)===187&&_.charCodeAt(2)===191&&(_=_.slice(3))),s.length===0){let ne=g(_);ne!==""&&(s.push(ne),a=ne.length),m();return}if(_.indexOf(`
88
88
  `)===-1&&_.indexOf("\r")===-1){s.push(_),a+=_.length,m();return}s.push(_);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 Ts(`Buffered data exceeded max buffer size of ${i} characters`,{type:"max-buffer-size-exceeded"}))))}function g(_){let C=0;if(_.indexOf("\r")===-1){let I=_.indexOf(`
89
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=_.indexOf(`
90
90
  `,C);continue}let ne=_.charCodeAt(C);if(CP(_,C,ne)){let pe=_.charCodeAt(C+5)===Nn?C+6:C+5,xe=_.slice(pe,I);if(l===0&&_.charCodeAt(I+1)===RP){e({id:u,event:f,data:xe}),u=void 0,d="",f=void 0,C=I+2,I=_.indexOf(`
91
91
  `,C);continue}d=l===0?xe:`${d}
92
92
  ${xe}`,l++}else PP(_,C,ne)?f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0:v(_,C,I);C=I+1,I=_.indexOf(`
93
93
  `,C)}return _.slice(C)}for(;C<_.length;){let I=_.indexOf("\r",C),ne=_.indexOf(`
94
- `,C),pe=-1;if(I!==-1&&ne!==-1?pe=I<ne?I:ne:I!==-1?I===_.length-1?pe=-1:pe=I:ne!==-1&&(pe=ne),pe===-1)break;v(_,C,pe),C=pe+1,_.charCodeAt(C-1)===aU&&_.charCodeAt(C)===RP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){w();return}let ne=_.charCodeAt(C);if(CP(_,C,ne)){let br=_.charCodeAt(C+5)===Nn?C+6:C+5,Lm=_.slice(br,I);d=l===0?Lm:`${d}
95
- ${Lm}`,l++;return}if(PP(_,C,ne)){f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0;return}if(ne===105&&_.charCodeAt(C+1)===100&&_.charCodeAt(C+2)===58){let br=_.slice(_.charCodeAt(C+3)===Nn?C+4:C+3,I);u=br.includes("\0")?void 0:br;return}if(ne===58){if(o){let br=_.slice(C,I);o(br.slice(_.charCodeAt(C+1)===Nn?2:1))}return}let pe=_.slice(C,I),xe=pe.indexOf(":");if(xe===-1){b(pe,"",pe);return}let an=pe.slice(0,xe),cn=pe.charCodeAt(xe+1)===Nn?2:1,lt=pe.slice(xe+cn);b(an,lt,pe)}function b(_,C,I){switch(_){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 Ts(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new Ts(`Unknown field "${_.length>20?`${_.slice(0,20)}\u2026`:_}"`,{type:"unknown-field",field:_,value:C,line:I}));break}}function w(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function R(_={}){if(_.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 CP(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 PP(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 ou=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(xP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(xP(this),r)}};function cU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function yh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(yh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${yh(t.cause)}`:t.message:`${t}`}function xP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var EP=t=>{throw TypeError(t)},Ph=(t,e,r)=>e.has(t)||EP("Cannot "+r),q=(t,e,r)=>(Ph(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?EP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(Ph(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(Ph(t,e,"access private method"),r),ot,Dn,qo,nu,iu,$s,Zo,Is,en,Ho,Bo,Go,As,Lt,vh,_h,Sh,kP,wh,bh,Ms,Rh,Ch,Ln=class extends EventTarget{constructor(e,r){var n,o;super(),Me(this,Lt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Me(this,ot),Me(this,Dn),Me(this,qo),Me(this,nu),Me(this,iu),Me(this,$s),Me(this,Zo),Me(this,Is,null),Me(this,en),Me(this,Ho),Me(this,Bo,null),Me(this,Go,null),Me(this,As,null),Me(this,_h,async i=>{var s;q(this,Ho).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,Lt,Ms).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ve(this,qo,new URL(i.url)):ve(this,qo,void 0),u!==200){gr(this,Lt,Ms).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,Lt,Ms).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,As))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,Lt,Ms).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,Ho).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Ho).reset(),gr(this,Lt,Rh).call(this))}while(h)}),Me(this,Sh,i=>{ve(this,en,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,Lt,Rh).call(this,yh(i))}),Me(this,wh,i=>{typeof i.id=="string"&&ve(this,Is,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,qo)?q(this,qo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,Go)&&(!i.event||i.event==="message")&&q(this,Go).call(this,s),this.dispatchEvent(s)}),Me(this,bh,i=>{ve(this,$s,i)}),Me(this,Ch,()=>{ve(this,Zo,void 0),q(this,ot)===this.CONNECTING&&gr(this,Lt,vh).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,uU()));else throw new Error("Invalid URL")}catch{throw cU("An invalid or illegal string was specified")}ve(this,Ho,ru({onEvent:q(this,wh),onRetry:q(this,bh)})),ve(this,ot,this.CONNECTING),ve(this,$s,3e3),ve(this,iu,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,nu,(o=r?.withCredentials)!=null?o:!1),gr(this,Lt,vh).call(this)}get readyState(){return q(this,ot)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,nu)}get onerror(){return q(this,Bo)}set onerror(e){ve(this,Bo,e)}get onmessage(){return q(this,Go)}set onmessage(e){ve(this,Go,e)}get onopen(){return q(this,As)}set onopen(e){ve(this,As,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,Zo)&&clearTimeout(q(this,Zo)),q(this,ot)!==this.CLOSED&&(q(this,en)&&q(this,en).abort(),ve(this,ot,this.CLOSED),ve(this,en,void 0))}};ot=new WeakMap,Dn=new WeakMap,qo=new WeakMap,nu=new WeakMap,iu=new WeakMap,$s=new WeakMap,Zo=new WeakMap,Is=new WeakMap,en=new WeakMap,Ho=new WeakMap,Bo=new WeakMap,Go=new WeakMap,As=new WeakMap,Lt=new WeakSet,vh=function(){ve(this,ot,this.CONNECTING),ve(this,en,new AbortController),q(this,iu)(q(this,Dn),gr(this,Lt,kP).call(this)).then(q(this,_h)).catch(q(this,Sh))},_h=new WeakMap,Sh=new WeakMap,kP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Is)?{"Last-Event-ID":q(this,Is)}:void 0},cache:"no-store",signal:(t=q(this,en))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},wh=new WeakMap,bh=new WeakMap,Ms=function(t,e){var r;q(this,ot)!==this.CLOSED&&ve(this,ot,this.CLOSED);let n=new ou("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},Rh=function(t,e){var r;if(q(this,ot)===this.CLOSED)return;ve(this,ot,this.CONNECTING);let n=new ou("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,Ch),q(this,$s)))},Ch=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function uU(){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 Wo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function su(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Wo(e.headers),...Wo(n.headers)}:e.headers};return t(r,o)}:t}var xh;xh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function dU(t){return(await xh).getRandomValues(new Uint8Array(t))}async function lU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await dU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function fU(t){return await lU(t)}async function pU(t){let e=await(await xh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function kh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await fU(t),r=await pU(e);return{code_verifier:e,code_challenge:r}}var Le=Vw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:cb.custom,message:"URL must be parseable",fatal:!0}),Xd}).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"}),AP=Ee({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()}),Eh=Ee({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()}),hU=Ee({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()}),MP=k({...hU.shape,...Eh.pick({code_challenge_methods_supported:!0}).shape}),$P=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:rc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),IP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),TP=Le.optional().or(E("").transform(()=>{})),mU=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:TP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:TP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Yw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),gU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),OP=mU.merge(gU),p8=k({error:y(),error_description:y().optional()}).strip(),h8=k({token:y(),token_type_hint:y().optional()}).strip();function zP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function NP({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 Ce=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}},Os=class extends Ce{};Os.errorCode="invalid_request";var jn=class extends Ce{};jn.errorCode="invalid_client";var Fn=class extends Ce{};Fn.errorCode="invalid_grant";var Un=class extends Ce{};Un.errorCode="unauthorized_client";var zs=class extends Ce{};zs.errorCode="unsupported_grant_type";var Ns=class extends Ce{};Ns.errorCode="invalid_scope";var Ds=class extends Ce{};Ds.errorCode="access_denied";var yr=class extends Ce{};yr.errorCode="server_error";var Ls=class extends Ce{};Ls.errorCode="temporarily_unavailable";var js=class extends Ce{};js.errorCode="unsupported_response_type";var Fs=class extends Ce{};Fs.errorCode="unsupported_token_type";var Us=class extends Ce{};Us.errorCode="invalid_token";var qs=class extends Ce{};qs.errorCode="method_not_allowed";var Hs=class extends Ce{};Hs.errorCode="too_many_requests";var qn=class extends Ce{};qn.errorCode="invalid_client_metadata";var Gs=class extends Ce{};Gs.errorCode="insufficient_scope";var Zs=class extends Ce{};Zs.errorCode="invalid_target";var DP={[Os.errorCode]:Os,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[zs.errorCode]:zs,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[yr.errorCode]:yr,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qs.errorCode]:qs,[Hs.errorCode]:Hs,[qn.errorCode]:qn,[Gs.errorCode]:Gs,[Zs.errorCode]:Zs};var Be=class extends Error{constructor(e){super(e??"Unauthorized")}};function yU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Th="code",Ah="S256";function vU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&yU(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 _U(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":SU(o,i,r);return;case"client_secret_post":wU(o,i,n);return;case"none":bU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function SU(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 wU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function bU(t,e){e.set("client_id",t)}async function jP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=IP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=DP[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 Mh(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Mh(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Mh(t,e);throw r}}async function Mh(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 UP(c,{fetchFn:i}),!a)try{a=await FP(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 w=await TU(e,{resourceMetadataUrl:d,fetchFn:i});c=w.authorizationServerUrl,u=w.authorizationServerMetadata,a=w.resourceMetadata,await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:d?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}let l=await CU(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 w=u?.client_id_metadata_document_supported===!0,R=t.clientMetadataUrl;if(R&&!RU(R))throw new qn(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${R}`);if(w&&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 OU(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 w=await IU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(w),"AUTHORIZED"}let m=await t.tokens();if(m?.refresh_token)try{let w=await $U(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(w),"AUTHORIZED"}catch(w){if(!(!(w instanceof Ce)||w instanceof yr))throw w}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:b}=await AU(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 RU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function CU(t,e,r){let n=zP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!NP({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 Vo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=$h(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=$h(t,"scope")||void 0,a=$h(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function $h(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 FP(t,e,r=fetch){let n=await kU(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 AP.parse(await n.json())}async function Ih(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Ih(t,void 0,r):void 0;throw n}}function PU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function LP(t,e,r=fetch){return await Ih(t,{"MCP-Protocol-Version":e},r)}function xU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function kU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??Ro,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=PU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await LP(s,i,r);if(!n?.metadataUrl&&xU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await LP(c,i,r)}return a}function EU(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 UP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=EU(t);for(let{url:i,type:s}of o){let a=await Ih(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"?Eh.parse(await a.json()):MP.parse(await a.json())}}}async function TU(t,e){let r,n;try{r=await FP(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 UP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function AU(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(Th))throw new Error(`Incompatible auth server: does not support response type ${Th}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Ah))throw new Error(`Incompatible auth server: does not support code challenge method ${Ah}`)}else a=new URL("/authorize",t);let c=await kh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Th),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Ah),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 MU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function qP(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=vU(n,d);_U(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await jP(u);return $P.parse(await u.json())}async function $U(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 qP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function IU(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=MU(o,u,t.redirectUrl)}let c=await t.clientInformation();return qP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function OU(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 jP(s);return OP.parse(await s.json())}var Bs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},au=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=su(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=Wo(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}=Vo(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 Bs(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=Gr.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}=Vo(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 $x=ta(Ax(),1);import Hh from"node:process";import{PassThrough as uq}from"node:stream";var aq=10*1024*1024,uu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??aq}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(`
94
+ `,C),pe=-1;if(I!==-1&&ne!==-1?pe=I<ne?I:ne:I!==-1?I===_.length-1?pe=-1:pe=I:ne!==-1&&(pe=ne),pe===-1)break;v(_,C,pe),C=pe+1,_.charCodeAt(C-1)===aU&&_.charCodeAt(C)===RP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){b();return}let ne=_.charCodeAt(C);if(CP(_,C,ne)){let br=_.charCodeAt(C+5)===Nn?C+6:C+5,Lm=_.slice(br,I);d=l===0?Lm:`${d}
95
+ ${Lm}`,l++;return}if(PP(_,C,ne)){f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0;return}if(ne===105&&_.charCodeAt(C+1)===100&&_.charCodeAt(C+2)===58){let br=_.slice(_.charCodeAt(C+3)===Nn?C+4:C+3,I);u=br.includes("\0")?void 0:br;return}if(ne===58){if(o){let br=_.slice(C,I);o(br.slice(_.charCodeAt(C+1)===Nn?2:1))}return}let pe=_.slice(C,I),xe=pe.indexOf(":");if(xe===-1){w(pe,"",pe);return}let an=pe.slice(0,xe),cn=pe.charCodeAt(xe+1)===Nn?2:1,lt=pe.slice(xe+cn);w(an,lt,pe)}function w(_,C,I){switch(_){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 Ts(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new Ts(`Unknown field "${_.length>20?`${_.slice(0,20)}\u2026`:_}"`,{type:"unknown-field",field:_,value:C,line:I}));break}}function b(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function R(_={}){if(_.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 CP(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 PP(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 ou=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(xP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(xP(this),r)}};function cU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function yh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(yh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${yh(t.cause)}`:t.message:`${t}`}function xP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var EP=t=>{throw TypeError(t)},Ph=(t,e,r)=>e.has(t)||EP("Cannot "+r),q=(t,e,r)=>(Ph(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?EP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(Ph(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(Ph(t,e,"access private method"),r),ot,Dn,qo,nu,iu,$s,Zo,Is,en,Ho,Bo,Go,As,jt,vh,_h,Sh,kP,wh,bh,Ms,Rh,Ch,Ln=class extends EventTarget{constructor(e,r){var n,o;super(),Me(this,jt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Me(this,ot),Me(this,Dn),Me(this,qo),Me(this,nu),Me(this,iu),Me(this,$s),Me(this,Zo),Me(this,Is,null),Me(this,en),Me(this,Ho),Me(this,Bo,null),Me(this,Go,null),Me(this,As,null),Me(this,_h,async i=>{var s;q(this,Ho).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,jt,Ms).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ve(this,qo,new URL(i.url)):ve(this,qo,void 0),u!==200){gr(this,jt,Ms).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,jt,Ms).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,As))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,jt,Ms).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,Ho).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Ho).reset(),gr(this,jt,Rh).call(this))}while(h)}),Me(this,Sh,i=>{ve(this,en,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,jt,Rh).call(this,yh(i))}),Me(this,wh,i=>{typeof i.id=="string"&&ve(this,Is,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,qo)?q(this,qo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,Go)&&(!i.event||i.event==="message")&&q(this,Go).call(this,s),this.dispatchEvent(s)}),Me(this,bh,i=>{ve(this,$s,i)}),Me(this,Ch,()=>{ve(this,Zo,void 0),q(this,ot)===this.CONNECTING&&gr(this,jt,vh).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,uU()));else throw new Error("Invalid URL")}catch{throw cU("An invalid or illegal string was specified")}ve(this,Ho,ru({onEvent:q(this,wh),onRetry:q(this,bh)})),ve(this,ot,this.CONNECTING),ve(this,$s,3e3),ve(this,iu,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,nu,(o=r?.withCredentials)!=null?o:!1),gr(this,jt,vh).call(this)}get readyState(){return q(this,ot)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,nu)}get onerror(){return q(this,Bo)}set onerror(e){ve(this,Bo,e)}get onmessage(){return q(this,Go)}set onmessage(e){ve(this,Go,e)}get onopen(){return q(this,As)}set onopen(e){ve(this,As,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,Zo)&&clearTimeout(q(this,Zo)),q(this,ot)!==this.CLOSED&&(q(this,en)&&q(this,en).abort(),ve(this,ot,this.CLOSED),ve(this,en,void 0))}};ot=new WeakMap,Dn=new WeakMap,qo=new WeakMap,nu=new WeakMap,iu=new WeakMap,$s=new WeakMap,Zo=new WeakMap,Is=new WeakMap,en=new WeakMap,Ho=new WeakMap,Bo=new WeakMap,Go=new WeakMap,As=new WeakMap,jt=new WeakSet,vh=function(){ve(this,ot,this.CONNECTING),ve(this,en,new AbortController),q(this,iu)(q(this,Dn),gr(this,jt,kP).call(this)).then(q(this,_h)).catch(q(this,Sh))},_h=new WeakMap,Sh=new WeakMap,kP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Is)?{"Last-Event-ID":q(this,Is)}:void 0},cache:"no-store",signal:(t=q(this,en))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},wh=new WeakMap,bh=new WeakMap,Ms=function(t,e){var r;q(this,ot)!==this.CLOSED&&ve(this,ot,this.CLOSED);let n=new ou("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},Rh=function(t,e){var r;if(q(this,ot)===this.CLOSED)return;ve(this,ot,this.CONNECTING);let n=new ou("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,Ch),q(this,$s)))},Ch=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function uU(){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 Wo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function su(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Wo(e.headers),...Wo(n.headers)}:e.headers};return t(r,o)}:t}var xh;xh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function dU(t){return(await xh).getRandomValues(new Uint8Array(t))}async function lU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await dU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function fU(t){return await lU(t)}async function pU(t){let e=await(await xh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function kh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await fU(t),r=await pU(e);return{code_verifier:e,code_challenge:r}}var Le=Vw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:cb.custom,message:"URL must be parseable",fatal:!0}),Xd}).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"}),AP=Ee({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()}),Eh=Ee({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()}),hU=Ee({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()}),MP=k({...hU.shape,...Eh.pick({code_challenge_methods_supported:!0}).shape}),$P=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:rc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),IP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),TP=Le.optional().or(E("").transform(()=>{})),mU=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:TP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:TP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Yw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),gU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),OP=mU.merge(gU),h8=k({error:y(),error_description:y().optional()}).strip(),m8=k({token:y(),token_type_hint:y().optional()}).strip();function zP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function NP({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 Ce=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}},Os=class extends Ce{};Os.errorCode="invalid_request";var jn=class extends Ce{};jn.errorCode="invalid_client";var Fn=class extends Ce{};Fn.errorCode="invalid_grant";var Un=class extends Ce{};Un.errorCode="unauthorized_client";var zs=class extends Ce{};zs.errorCode="unsupported_grant_type";var Ns=class extends Ce{};Ns.errorCode="invalid_scope";var Ds=class extends Ce{};Ds.errorCode="access_denied";var yr=class extends Ce{};yr.errorCode="server_error";var Ls=class extends Ce{};Ls.errorCode="temporarily_unavailable";var js=class extends Ce{};js.errorCode="unsupported_response_type";var Fs=class extends Ce{};Fs.errorCode="unsupported_token_type";var Us=class extends Ce{};Us.errorCode="invalid_token";var qs=class extends Ce{};qs.errorCode="method_not_allowed";var Hs=class extends Ce{};Hs.errorCode="too_many_requests";var qn=class extends Ce{};qn.errorCode="invalid_client_metadata";var Gs=class extends Ce{};Gs.errorCode="insufficient_scope";var Zs=class extends Ce{};Zs.errorCode="invalid_target";var DP={[Os.errorCode]:Os,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[zs.errorCode]:zs,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[yr.errorCode]:yr,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qs.errorCode]:qs,[Hs.errorCode]:Hs,[qn.errorCode]:qn,[Gs.errorCode]:Gs,[Zs.errorCode]:Zs};var Be=class extends Error{constructor(e){super(e??"Unauthorized")}};function yU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Th="code",Ah="S256";function vU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&yU(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 _U(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":SU(o,i,r);return;case"client_secret_post":wU(o,i,n);return;case"none":bU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function SU(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 wU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function bU(t,e){e.set("client_id",t)}async function jP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=IP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=DP[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 Mh(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Mh(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Mh(t,e);throw r}}async function Mh(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 UP(c,{fetchFn:i}),!a)try{a=await FP(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 TU(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 CU(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,R=t.clientMetadataUrl;if(R&&!RU(R))throw new qn(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${R}`);if(b&&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 OU(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 b=await IU(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 $U(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 Ce)||b instanceof yr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await AU(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 RU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function CU(t,e,r){let n=zP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!NP({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 Vo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=$h(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=$h(t,"scope")||void 0,a=$h(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function $h(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 FP(t,e,r=fetch){let n=await kU(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 AP.parse(await n.json())}async function Ih(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Ih(t,void 0,r):void 0;throw n}}function PU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function LP(t,e,r=fetch){return await Ih(t,{"MCP-Protocol-Version":e},r)}function xU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function kU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??Ro,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=PU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await LP(s,i,r);if(!n?.metadataUrl&&xU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await LP(c,i,r)}return a}function EU(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 UP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=EU(t);for(let{url:i,type:s}of o){let a=await Ih(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"?Eh.parse(await a.json()):MP.parse(await a.json())}}}async function TU(t,e){let r,n;try{r=await FP(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 UP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function AU(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(Th))throw new Error(`Incompatible auth server: does not support response type ${Th}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Ah))throw new Error(`Incompatible auth server: does not support code challenge method ${Ah}`)}else a=new URL("/authorize",t);let c=await kh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Th),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Ah),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 MU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function qP(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=vU(n,d);_U(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await jP(u);return $P.parse(await u.json())}async function $U(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 qP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function IU(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=MU(o,u,t.redirectUrl)}let c=await t.clientInformation();return qP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function OU(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 jP(s);return OP.parse(await s.json())}var Bs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},au=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=su(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=Wo(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}=Vo(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 Bs(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=Gr.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}=Vo(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 $x=ta(Ax(),1);import Hh from"node:process";import{PassThrough as uq}from"node:stream";var aq=10*1024*1024,uu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??aq}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),cq(r)}clear(){this._buffer=void 0}};function cq(t){return Gr.parse(JSON.parse(t))}function Mx(t){return JSON.stringify(t)+`
98
- `}var dq=Hh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function lu(){let t={};for(let e of dq){let r=Hh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var du=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new uu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new uq)}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,$x.default)(this._serverParams.command,this._serverParams.args??[],{env:{...lu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Hh.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=Mx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Dx=ta(Nx(),1);function Lx(t){if(t)try{return Dx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var fu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=ru({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 _q={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},jt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},pu=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=su(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??_q}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=Wo(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 fu({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=Gr.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:Zi(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}=Vo(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}=Vo(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(),_b(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=Lx(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=>Gr.parse(m)):[Gr.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 jx(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 wq={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 Fx(t){return{...lu(),...wq,...t??{}}}function Ux(){return lu()}var Zh=class t extends du{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 dq=Hh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function lu(){let t={};for(let e of dq){let r=Hh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var du=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new uu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new uq)}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,$x.default)(this._serverParams.command,this._serverParams.args??[],{env:{...lu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Hh.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=Mx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Dx=ta(Nx(),1);function Lx(t){if(t)try{return Dx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var fu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=ru({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 _q={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},pu=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=su(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??_q}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=Wo(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 Ft(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 fu({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=Gr.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:Zi(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 Ft(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:h,scope:m}=Vo(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}=Vo(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new Ft(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 Ft(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),_b(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=Lx(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=>Gr.parse(m)):[Gr.parse(p)];for(let m of h)this.onmessage?.(m)}else throw await a.body?.cancel(),new Ft(-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 Ft(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 jx(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 wq={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 Fx(t){return{...lu(),...wq,...t??{}}}function Ux(){return lu()}var Zh=class t extends du{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 qx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Zh(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}},Bh=new Sq;function Wh(t,e){return Bh.run(t,e)}function bq(t){Bh.getStore()?.onFailure?.(t)}function Hx({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=Bh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw bq(u),u}}function Gx(t,e){let r=Hx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new pu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Zx(t,e){let r=Hx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new au(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Bx(){return new tu({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Wx=Xi,Vx=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof jt||t instanceof Bs)&&t.code===401}function Vh(t){return t instanceof T&&t.code===$.MethodNotFound}function Kh(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function Kx(t){return t instanceof T&&t.code===$.RequestTimeout}function Jx(t){return t instanceof T&&t.code===$.ConnectionClosed}var Rq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Yx(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return Rq.some(r=>e.includes(r))}function Xx(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Jh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof jt&&t.code===404}var X=Cq.child({prefix:"pi-mcp"});function xq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function kq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&xq(r,o)})}var Eq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Tq=/^Node\.js v\d/,Aq=/^[\w$.]*error[\w$]*:/i,Qx=400,Mq=63e3,ek=3,$q=/[\\/]lib[\\/]cli\.js/,Iq="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.",ck=Symbol("mcpReinitReported");function Oq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,ck,{value:!0,enumerable:!1,configurable:!0})}function zq(t){return typeof t=="object"&&t!==null&&t[ck]===!0}function Nq(t){let e=t.filter(a=>!Tq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>$q.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return Iq;let o=r.findIndex(a=>Aq.test(a)),s=(o===-1?r.slice(-ek):r.slice(o,o+ek)).join(" / ");return s.length>Qx?`${s.slice(0,Qx)}\u2026`:s}function Dq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Eq,"").split(`
101
- `).map(i=>i.trim()).filter(i=>i.length>0),o=Nq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Lq=6e5,jq=18e5,tk=2147483647,Fq=3e4,rk=1e4,uk=[250,1e3,2e3],Zn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Ws=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Uq=250,nk=3,qq=[200,500];function Hq(t){for(let e of Object.values(t))if(Dr(e))return!0;return!1}function Yh(t){let e=new Set;for(let r of t.matchAll(Ei))e.add(za(r[0]));return[...e].sort()}function Xh(t){return[...new Set(t)].sort()}function ok(t,e){return Zy(e.map(r=>t?.[r]??"missing"))}function Gq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Xh([...e&&t?Ti(t):[],...n&&r?Yh(r):[],...o.flatMap(Yh)])}var hu="${augmentToken}";function Zq(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 Bq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var dk="(unknown uri)",Qh="unknown",ik=/=+$/,Wq=/\s+/g,Vq=/[-_]/g,Kq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function lk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Jq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Yq(t){let e=t.replace(Wq,"").replace(Vq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(ik,"");if(r.toString("base64").replace(ik,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function fk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Xq(t){let e=fk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,dk),n=Bn(e.mimeType,Qh);if(typeof e.blob=="string"&&Jq(n)){let i=Yq(e.blob);if(i!==void 0)return i}let o=lk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Qq(t){let e=Bn(t.type,"unknown");if(e==="resource")return Xq(t);if(e==="audio"){let r=Bn(t.mimeType,Qh),n=lk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,dk),n=Bn(t.name,""),o=Bn(t.mimeType,Qh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function eH(t){if(t.type!=="resource")return;let e=fk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Kq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function tH(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=eH(t);return e||{type:"text",text:ak(Qq(t))}}function rH(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(tH(n))}return e}function nH(t){return Ny(t,Mq)}function pk(t,e){let r=rH(t);if(r.length===0){let o=nH(e);o!==void 0&&r.push({type:"text",text:ak(o)})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function oH(t,e){let r=pk(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 hk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),iH=new Set([502,503,504]),Vs=uk.length+1,sH=2;function aH(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 cH(t){if(Pt(t)||Jh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return hk.has(e)?{totalAttempts:Vs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:sH}:iH.has(r)?{totalAttempts:Vs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Vs}:void 0}var uH=80,dH=10,lH=/[^a-zA-Z0-9_.()-]/g,fH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function mu(t){return t.replace(lH,"_").slice(0,uH)||"unknown"}function pH(t){let e=aH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||hk.has(e)))return e}function We(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=fH.has(e)?e:"Error",n=pH(t);return n===void 0?r:`${r}(${n})`}function hH(t,e,r){return t instanceof gt?new gt(mu(t.serverName),t.missingKeys.slice(0,dH).map(mu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${We(t)})`}function Gn(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:mu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var em={heartbeat_timeout:{tool:"The MCP server did not answer its heartbeat in time.",log:"MCP heartbeat timed out"},connection_closed:{tool:"The connection to the MCP server closed before the tool finished.",log:"MCP connection closed during tool execution"},heartbeat_failed:{tool:"The MCP heartbeat failed while the tool was running.",log:"MCP heartbeat failed during tool execution"}},mH="configured MCP server",gH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,sk=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,yH=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(em[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function vH(t){return Kx(t)?"heartbeat_timeout":Jx(t)?"connection_closed":"heartbeat_failed"}var gu=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=>Oa(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=>{X.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)?Oa(Dq(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=Vs,r={available:!0};for(let n=1;n<=Vs;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=cH(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=(uk[r-1]??0)+Math.floor(Math.random()*(Uq+1));X.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 Zn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Bx();this._client=i;let s;try{if(await Wh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Wx,()=>{X.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),X.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){X.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":hH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=ee();ii(o,this.name,e.reason,ft(o,this.name,this._config.id))}else if(e instanceof Ws||e instanceof Zn)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);xi(Gn(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=jx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Fx(this._resolvedEnv??e.env);return qx({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 Zx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Gx(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?Hq(r):!1,o=e.type==="stdio"&&Dr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Dr);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!Gy(a)){let u=Gq({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??qy(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 Wy({configEnv:e,localEnv:n&&!this._targetAuth?Ux():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${We(c)})`),new gt(this.name,Ti(e),c,"transient")}let a=Xh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,ok(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Jd(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Vy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${We(s)})`),new gt(this.name,Yh(e),s,"transient")}let i=Xh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,ok(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(hu)))return;let o;if(Zq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${hu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${hu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Bq(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(hu,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"?X.error(i):X.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&&!Sd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():Si(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=D(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),un({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;un({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&N(f,e.state)}catch{X.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)&&bd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&ii(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),X.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),ii(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 Rd(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),un({state:e.state,name:this.name,revision:i}),st(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&N(s,e.state),X.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:Jh(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}X.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;X.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 X.error(`MCP server "${this.name}" session re-initialization failed (${We(i)})`),Oq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Zn}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),Wh({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 Ws;if(this._hostedCredentialProvenance!==void 0)throw new Zn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;X.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();ii(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",We(e)),X.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed()},e.onerror=()=>{this._handleTransportClosed()})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},Fq),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<=nk&&n.outcome==="transient";s++)await pn(qq[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"?X.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&X.debug(`MCP server "${this.name}" startup verification ping remained transient after ${nk} 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:rk})},"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"?X.debug(i):X.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":Vh(e)||Kh(e)?"alive":Pt(e)?"authFailure":Yx(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:rk})}catch(r){if(this._reinitializingPromise||this._disposed||Kh(r)||Vh(r))return;this._failInFlightCalls(new Wn(vH(r),this._safeDiagnosticName()))}}_handleTransportClosed(){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(new Wn("connection_closed",this._safeDiagnosticName())))}_diagnosticRedactor(){let e=ee().tokens.get(this.name),r=this._config.type==="stdio"?this._config.env:this._config.headers;return Jd([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!gH.test(e)||sk.test(e)||Oa(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?mH:e}_safeCorrelationId(e){if(!(!e||!yH.test(e)||sk.test(e)||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e))return 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);X.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(e instanceof Wn?e:c.failure??e));let a=n.filter(c=>c.livenessRejected).length;this._logInFlightFailure({error:e,unsettled:n,failedCount:a}),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=s):s&&this.onWedged?.()}_logInFlightFailure({error:e,unsettled:r,failedCount:n}){if(!(e instanceof Wn)){X.warn(`MCP server "${this.name}" failing ${n} in-flight tool call(s)`);return}if(n===0)return;let o=r.length===1?this._safeCorrelationId(r[0]?.correlationId):void 0;Pq(em[e.category].log,{failure_category:e.category,server_display_name:e.serverDisplayName,...o?{correlation_id:o}:{}})}_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=!kq(this._tools,r);if(this._tools=r,n){X.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){X.warn(`MCP server "${this.name}" onToolsChanged handler threw (${We(o)})`)}}}catch(e){X.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,o){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>tk)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${tk}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??Lq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??jq,onprogress:f=>{this._suppressStdioDiagnostics||X.debug(`MCP server "${this.name}" tool "${e}" progress: ${f.progress}${f.total===void 0?"":`/${f.total}`}${f.message?` - ${f.message}`:""}`)}},c,u=new Promise((f,p)=>{c={reject:p,livenessRejected:!1,sessionRecoveryOwned:!1,correlationId:this._safeCorrelationId(o?.toolCallId)}});u.catch(()=>{}),c&&this._inFlightCalls.add(c);let l=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??{}},Vx,a)},"tool_call",{call:c})).then(f=>(c&&this._settleInFlightCall(c,!0,void 0),f),f=>{throw c&&this._settleInFlightCall(c,!1,f),f});try{let f=await Promise.race([l,u]);if(this._suppressStdioDiagnostics&&f.isError===!0)return oH({content:f.content,structuredContent:f.structuredContent},i);let p=pk(f.content,f.structuredContent);return{isError:f.isError===!0,content:p.content,rawItemCount:p.rawItemCount}}catch(f){return(n?.aborted||f instanceof Error&&f.name==="AbortError")&&this._throwCallCancellation(f),this._reportAndThrowToolError(f,e)}finally{c&&!this._wedgeRecoveryOwners.has(c)&&(c.failure=void 0,this._inFlightCalls.delete(c))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Gn("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(e instanceof Wn){let c=Gn(em[e.category].tool,"Error");throw this._disposed||xi(c,{server:e.serverDisplayName,op:"tool_call",transport:this._config.type}),c}if(this._suppressStdioDiagnostics){let c=Gn("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||xi(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Zn||e instanceof Ws)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=mu(r),i=We(e),s=Xx(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 zq(e)||xi(Gn(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Gn(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=Gn("MCP stdio close failed","Error");if(X.debug(o.message),e?.strict)throw o;return}if(X.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var mk=SH.child({prefix:"pi-mcp"}),wH=3,bH=6e4;function RH(t,e){let r=Date.now(),n=r-bH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=wH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function gk(t){ir(t),ma(t)}async function CH(t,e,r){if(!RH(e,t)){mk.warn(`MCP server "${t}" automatic restart rate-limited`);return}mk.warn(`MCP server "${t}" wedged; recycling transport`),await tn(t,e,r)}function yu(t,e,r){if(PH(e)){gk(t),N(t,e);return}dd(t,r),Ir(e)&&gk(t),N(t,e)}function PH(t){return pi()||t.toolSearchLatched}function tr(t,e,r){return Wu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function tm(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 xH(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&&eg(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 rm(t){let{state:e,config:r,generation:n}=t;return new gu(r,xH({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 nm(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 om(t,e,r){return t.configDesiredRevisions.get(e)===r}function yk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function im(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(_H,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;CH(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),N(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)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&yu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;ld(a,t,e),a!==n&&ld(n,t,e)}}async function vk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&N(n(),r)},ra);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&N(n(),r)}}async function _k(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function vu(t,e){if(e.status!=="installed")return!1;let r=D(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function kH(t){let{state:e,config:r,displaced:n,retirement:o}=t;nm(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Ku(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 EH(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"}}),ke({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 TH(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 EH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&yu(c(),e,r),N(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 AH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=D(e,r.name);if(!om(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return ke({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=tm(e,r.name),l=rm({state:e,config:r,generation:d});return im(l,d,e,o),ia({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:TH({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(ke({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function MH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!om(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?Q(r,a.name,u):D(r,a.name),l=Pr(a,i),f=ci({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=()=>AH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await kH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Bu(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 MH({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(()=>{N(s(),e)},ra);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function $H({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!yk(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Wu(e,t,o))return!1;nm(e,i),di(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(D(e,t)?.revision!==s.revision||!yk(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=tm(e,t),u=rm({state:e,config:i,generation:c});if(im(u,c,e,r),!ia({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await vk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&yu(d(),e,u),!0}function tn(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 $H({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 IH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;nm(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Ku(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 Sk(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=to(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):D(e,t),l={kind:"local",identity:a?.id??t},f=ci({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await IH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Bu(f.retirement),D(e,t)?.revision!==f.lease.revision||!om(e,t,c)){ke({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){ke({state:e,name:t,owner:l,revision:f.lease.revision}),N(i(),e);return}let p=tm(e,t),h=rm({state:e,config:a,generation:p});im(h,p,e,r),ia({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await vk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&yu(i(),e,h))}async function Ks(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>tn(n,e,r)))}finally{e.reconnecting=!1}}var wk=Symbol.for("__pi_mcp_registry_ingress__");function _u(t){return Object.defineProperty(t,wk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,wk)?.value===!0}function rn(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=D(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)&&!Vn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as OH}from"@hermes/logger";var zH=OH.child({prefix:"pi-mcp"}),NH=1e6,DH=1e3,LH=/^\d+$/;function bk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function nn(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"||!LH.test(e)||typeof r!="string"||r.length===0)return;let n=sa(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:bk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function jH(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 FH(t,e,r){if(t===void 0)return!0;let n=bk(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 UH(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 zH.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(!FH(c,r,s))return"reject";let u=jH(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 qH(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 HH(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 GH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*DH+Math.floor(t.access_token_expires_at.nanos/NH):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 ZH(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(!HH(n))return{decision:"reject"};let i=nn(n),s=UH(r,n,i,o);if(s==="reject")return{decision:s};let a=GH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!ZH(e.get(r),a))||s==="apply"&&qH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function Su(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 Rk=BH.child({prefix:"pi-mcp"});function WH(t,e){let r=rn({state:t,target:e,byConfigId:!0});if(!r)return;let o=D(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function VH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=nn(i);if(s===void 0)return!1;let a=dn(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 Ck(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){Rk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=WH(r,n.configId),i=o?VH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=D(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||D(r,o.name)!==s||u().decision==="reject")return;Q(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=Su(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=nn(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??tn,h=t.report??N;await p(o.name,r,f).catch(m=>{Rk.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 cG}from"@hermes/logger";import{randomUUID as KH}from"node:crypto";import{setToolSource as JH}from"@augmentcode/auggie-v2";import{logger as YH}from"@hermes/logger";import{Type as XH}from"@sinclair/typebox";var xk=YH.child({prefix:"pi-mcp"}),rr="attach-mcp-server",QH="augment:mcp-attach-request",eG=15e3,tG={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 rG(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 nG(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function sm(t,e){let r=nG(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 oG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},eG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Pk(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 iG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Pe(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${sm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Pe(`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.${sm(r,e)}`)}function sG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Pe(`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,Pe("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 Pe(`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 Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Pe(`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 Pe(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Pe(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${sm(n,e)}`);case"NO_ACTIVE_VM":return Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Pe(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function aG(t,e,r){if(e.mcpAttachDisabled)return Pe("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. ${Pk(e)}`);let o=rG(e,n);if(o.kind==="none")return Pe(`No MCP server matching "${n}" is available to attach. ${Pk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Pe(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=iG({entry:i,state:e});if(s!==void 0)return s;if(fd(e,i))return Pe(`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 Pe(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=KH();xk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=oG(e,a);t.events.emit(QH,{configId:i.id,requestId:a});let u=await c,d=sG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),no(rr),Ir(e)&&ir(t)),d}function wu(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:XH.Unsafe(tG),execute:(n,o)=>aG(t,e,o)};JH(rr,"mcp"),t.registerTool(r),Mr(r),xk.debug("Registered attach-mcp-server tool")}var bu=cG.child({prefix:"pi-mcp"}),am="augment:mcp-attach-result";function kk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(am,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){bu.warn(`${am} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){bu.debug(`${am}: 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 Ru(t,e){if(e.mcpAttachCloudSignaled&&ga(e)){wu(t,e);return}e.mcpAttachCloudSignaled&&mg(rr)!==void 0&&(t.unregisterTool(rr),no(rr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!ga(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await Cg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,bu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,bu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Ru(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as bG}from"@hermes/logger";function uG(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case hi.OAUTH:return"oauth";case hi.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 dG(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case Or.CLI:return"cli";case Or.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 Cu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(dG).filter(r=>r!==void 0);return e.length===0?void 0:e}function Pu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=uG(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=Qn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...eo(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof Et?s.message:String(s)}}}function lG(t){let e=t.config?.auth_type;return e===hi.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function fG(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 cm(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 pG(t,e,r){if(r!==void 0&&t.added_by===r)return Cu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?Cu(n):[]}function hG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=cm(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=cm(e,r,()=>!0),m=new Set(h.map(w=>w.id)),g=h.filter(w=>p.has(w.id)),v=h.filter(w=>!p.has(w.id)).map(w=>w.id),b=i.filter(w=>!m.has(w));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=cm(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)?pG(p,o,s):Cu(p.enabled_products),g=t.productType??"cloud_agent";m===void 0||m.includes(g)?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function mG(t,e="cloud_agent"){if(t==null)return e==="cli"?Or.CLI:Or.CLOUD_AGENT}function gG(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 Ek(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:_u(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 yG(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=Pu(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=Ek(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=Ek(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 vG(t){let e=[],r=[],n=[];for(let o of t)lG(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 _G(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=fG(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 SG(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 xu(t){let e=t.productType??"cloud_agent",r=t.client??new va(t.creds),{tenant:n,user:o,diagnostics:i}=await Ng(r,mG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=hG({tenantConfigs:n.mcp_configs??[],userConfigs:s,enabledSharedServerIds:o.enabled_shared_server_ids??[],serverProductPreferences:o.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId,productType:e}),f=vG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...gG(d));let h=[],m=new Map,g=new Set(t.localServerNames),v=[...p.filter(R=>a.has(R.id)),...p.filter(R=>!a.has(R.id))];for(let R of v){let _=yG({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});SG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let b=_G(h);l.push(...b.droppedNames),i.push(...b.diagnostics);let w=new Map;for(let R of[...n.mcp_configs??[],...s])R.config?.name&&w.set(R.id,R.config.name);return{servers:b.servers,diagnostics:i,filteredOutIds:u,retainedNames:l,namesById:w,nameCollisionFallbacks:m}}import{logger as wG}from"@hermes/logger";var Xo=wG.child({prefix:"pi-mcp"});function Tk(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Xo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=Pu(n,"tenant");if(!i.ok){Xo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return _u(i.server.type==="stdio"?Zt(i.server,s):Gt(i.server,s))}catch(a){Xo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function Ak(t,e){let r;try{r=JSON.parse(t)}catch(n){Xo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return Tk(r,e)}function Qo(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Xo.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Xo.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=Tk(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=bG.child({prefix:"pi-mcp"});function $k(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Ik(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:(ke({state:e,name:r,owner:n.owner,revision:n.revision}),Ve(e,r),"released");let c=a.get(r),u=ci({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 RG(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=Ik({state:e,name:r,lease:c,host:n,isDeselected:$k({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=D(e,r)?.retirement;return n.beginDisposal?.(),n.dispose({strict:!0}).then(()=>{l&&_e({state:e,name:r,retirement:l,result:{status:"retired"}}),d==="retiring"&&ke({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 CG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Ik({state:e,name:r,lease:n,isDeselected:$k({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=RG({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||CG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Ok(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 xG(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 kG(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 Qo(o,e.workspaceRoot??process.cwd(),n)}async function EG(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 TG(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 AG(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 MG(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 $G(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 Ok(e,r.servers,n,i,o!==void 0)}async function zk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function Mk(t){return await zk(t.state,t.result),t.state.registryGeneration===t.generation&&await $G(t),t.result}function IG(t){let{state:e,configIds:r,parsedEmbedded:n,credentials:o,localServerNames:i,previousSelectedIds:s,selection:a,generation:c,discover:u,productType:d}=t;if(n){Ft.info(`Registry selection: using ${n.servers.length} embedded config(s) (no registry fetch)`);let f=xG(n,r,i);return Mk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})}return o?u({configIds:r,creds:o,currentUserId:o.userId,workspaceRoot:e.workspaceRoot??process.cwd(),localServerNames:i,productType:d}).then(f=>Mk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function OG(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 zG(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 Nk(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 um(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=D(e,s);c?.owner.kind==="registry"&&c.host===void 0&&c.revision===a.leaseRevision&&ke({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function NG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){um({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 zk(e,r),e.registryGeneration!==o)return;let c=Nk({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;OG({state:e,result:r,selection:n}),um({state:e,result:r,selection:n,slotReservations:a});let l=zG({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):D(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 w=e.configDesiredRevisions.get(m.name);return w!==b?(Ft.info(`Registry install of "${m.name}" skipped: slot revision advanced from ${b} to ${w} 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 DG({state:e,pi:s,result:r,generation:o,connect:i})}async function DG(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 LG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function LG(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,Nk({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 jG(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 Ok(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function FG(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 UG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await NG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),um({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 FG(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 jG({...t.resultArgs,error:r})}}function Js(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??xu,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();let c=t.productType??a.productType??"cloud_agent";Array.isArray(a.configIds)&&og(r,new Set(a.configIds.map(qe)));let u=kG({state:r,configIds:a.configIds,admittedConfigs:t.admittedConfigs}),d=r.credentials;if(!(u||d)){Ft.warn("augment:mcp-config-ids received before credentials; skipping registry discovery");for(let b of a.configIds??[])Je({state:r,domain:qe(b)});return Promise.resolve()}let l=r.selectedRegistryConfigIds??[],f=EG({state:r,previousSelectedIds:l,configIds:a.configIds}),p=TG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([PG(r,a.configIds,p),f]).then(([b])=>b);AG(r);let g=a.configIds?[...a.configIds]:void 0,v=IG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:MG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?UG({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as qG}from"@hermes/logger";var on=qG.child({prefix:"pi-mcp"});function HG(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 GG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Fk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function ZG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function Dk(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&&(ZG({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 Uk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Lk(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Vn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function qk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function BG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=D(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?Bm({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):ke({state:e,name:r,owner:i.owner,revision:i.revision}))&&D(e,r)===void 0&&(qk(e,r),Ve(e,r))}async function dm(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 on.warn(b),e.diagnostics.push({message:b,origin:"registry"}),new Error(b)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=D(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=D(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)),w=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw on.warn(w),e.diagnostics.push({server:a,message:w}),b}try{await li(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 w=`Live MCP remove-server failed to detach ${a}: ${b instanceof Error?b.message:String(b)}`;throw on.warn(w),e.diagnostics.push({server:a,message:w}),b}Fk({state:e,configId:r,fence:i})&&(Uk(e,r),BG({state:e,name:a,config:s,retirement:g})),on.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 jk(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)}`;on.warn(i),e.diagnostics.push({server:r,message:i})}async function WG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(jk({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([li(e,r,n,o.config)]);return jk({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 VG(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):D(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?.(),on.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await WG({state:e,name:n,configId:r,server:a});if(h&&Fk({state:e,configId:r,fence:s})?Uk(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&&ke({state:e,name:n,owner:c.owner,revision:c.revision})&&qk(e,n),i(p,e),!h)throw m}function ku(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return on.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return on.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:la({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=Lk(r,s),d=r.registryCredentialConfigsById.get(s),l=d?.name?D(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(Dk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>dm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=HG(r,s);if(u===void 0&&d===void 0)return a(dm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=GG({state:r,configId:s,liveEditGeneration:h});return a(Dk({state:r,configId:s,fence:m,operation:()=>{let g=Lk(r,s);return g===void 0?dm({state:r,configId:s,pi:e,report:c,sourceFence:m}):VG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as KG}from"node:crypto";var JG=/^[1-9][0-9]*$/,YG=/^[a-f0-9]{64}$/,XG=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 lm(t){return typeof t=="string"&&JG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function pm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&lm(t.connectionVersion)}function QG(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Dr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Dr(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 Gk(t){if(!(!fe(t)||Object.keys(t).some(e=>!XG.has(e)))&&!(!QG(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"||!YG.test(t.route_revision)||!lm(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"||!lm(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 fm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function eZ(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 tZ(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 Hk(t,e){return fm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&eZ(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function rZ(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 nZ(t,e){let r=Ti((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 Eu=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 pm(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&&!fm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&fm(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||!tZ(e,r)||!n&&(!o||!this.#r.has(r)||!Hk(e,o.material))||!nZ(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"&&Hk(e,o.material)&&rZ(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 Zk(t){return KG("sha256").update(t).digest("hex")}function oZ(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 iZ(t,e){if(e.length<=1)return!0;let r=sa(t);return r.kind==="valid"&&e.filter(n=>qe(n)===r.ownerDomain).length===1}function Bk(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 sZ(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 aZ(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 cZ(t,e,r){if(typeof t!="string"||Zk(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||!aZ(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(!sZ(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 Wk(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?Bk(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?oZ(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 w=a?.get(l)??[];(!fe(f)||w.length===0&&(e.configsJson!==void 0||e.configIds!==void 0)||!iZ(f,w)||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(([w,R])=>w!=="target_material"&&w!=="passive_install"&&R!==""))return;let p=Gk(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?cZ(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)&&!Vn(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 w=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(w)||!Number.isSafeInteger(w.host_generation)||Number(w.host_generation)<=0||R.serverGeneration!==w.host_generation||R.credentialRevisionDomain!==`recipient:${p.config_id}`||typeof w.observed_binding_generation!="string"||!/^[1-9][0-9]*$/.test(w.observed_binding_generation)||R.credentialRevision!==w.observed_binding_generation||BigInt(p.binding_generation)<=BigInt(w.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=Qo(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 uZ(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=Wk(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=[...Bk(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,wu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=Js({pi:e,state:r,data:{configIds:d},admittedConfigs:l,deps:{connect:(h,m,g,v)=>{if(!u())return Promise.resolve([]);let b=h.map(w=>{let R=w.id?l.get(w.id):void 0;if(!R&&w.id&&o.has(w.id))throw new Error("MCP target material is unavailable");return R??w});return Ke(b,m,g,w=>u()&&(v?.(w)??!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 N(p,r),Se(r),Yo(p,r),!0}async function dZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return uZ(t);let o;try{o=Wk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await fZ({pi:e,state:r,data:n,candidate:i,store:s})}function lZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function fZ(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(!ro(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=lZ(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)||Vn(v.config)))){let v=ku({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:(N(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?id(c):da(c))}}function Ys(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 pZ(t,e){t.registryGeneration++,tg(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"}),N(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),N(e,t)}function Vk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Eu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(pm(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,pZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Ys(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await dZ({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"}),N(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),N(t,e))})}))}import{logger as xZ}from"@hermes/logger";import{execFile as hm}from"node:child_process";import{win32 as mm}from"node:path";import{logger as hZ}from"@hermes/logger";var mZ=5e3,gZ=/^[a-z]:[\\/]/i,yZ=/[<>:"|?*]/;function vZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!gZ.test(t)||!mm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||yZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:mm.join(mm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function _Z(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 hm("open",[t],e);case"win32":{let r=vZ();return r?hm(r,["-NoProfile","-NonInteractive","-EncodedCommand",_Z(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return hm("xdg-open",[t],e)}}function Kk(t,e=mZ){let r=hZ.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 wZ}from"node:http";function Tu(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Jk(t){let e=Tu(t.title),r=Tu(t.heading),n=Tu(t.message),o=t.details?Tu(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 qx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Zh(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}},Bh=new Sq;function Wh(t,e){return Bh.run(t,e)}function bq(t){Bh.getStore()?.onFailure?.(t)}function Hx({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=Bh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw bq(u),u}}function Gx(t,e){let r=Hx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new pu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Zx(t,e){let r=Hx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new au(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Bx(){return new tu({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Wx=Xi,Vx=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof Ft||t instanceof Bs)&&t.code===401}function Vh(t){return t instanceof T&&t.code===$.MethodNotFound}function Kh(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function Kx(t){return t instanceof T&&t.code===$.RequestTimeout}function Jx(t){return t instanceof T&&t.code===$.ConnectionClosed}var Rq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Yx(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return Rq.some(r=>e.includes(r))}function Xx(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Jh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var X=Cq.child({prefix:"pi-mcp"});function xq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function kq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&xq(r,o)})}var Eq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Tq=/^Node\.js v\d/,Aq=/^[\w$.]*error[\w$]*:/i,Qx=400,Mq=63e3,ek=3,$q=/[\\/]lib[\\/]cli\.js/,Iq="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.",ck=Symbol("mcpReinitReported");function Oq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,ck,{value:!0,enumerable:!1,configurable:!0})}function zq(t){return typeof t=="object"&&t!==null&&t[ck]===!0}function Nq(t){let e=t.filter(a=>!Tq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>$q.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return Iq;let o=r.findIndex(a=>Aq.test(a)),s=(o===-1?r.slice(-ek):r.slice(o,o+ek)).join(" / ");return s.length>Qx?`${s.slice(0,Qx)}\u2026`:s}function Dq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Eq,"").split(`
101
+ `).map(i=>i.trim()).filter(i=>i.length>0),o=Nq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Lq=6e5,jq=18e5,tk=2147483647,Fq=3e4,rk=1e4,uk=[250,1e3,2e3],Zn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Ws=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Uq=250,nk=3,qq=[200,500];function Hq(t){for(let e of Object.values(t))if(Dr(e))return!0;return!1}function Yh(t){let e=new Set;for(let r of t.matchAll(Ei))e.add(za(r[0]));return[...e].sort()}function Xh(t){return[...new Set(t)].sort()}function ok(t,e){return Zy(e.map(r=>t?.[r]??"missing"))}function Gq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Xh([...e&&t?Ti(t):[],...n&&r?Yh(r):[],...o.flatMap(Yh)])}var hu="${augmentToken}";function Zq(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 Bq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var dk="(unknown uri)",Qh="unknown",ik=/=+$/,Wq=/\s+/g,Vq=/[-_]/g,Kq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function lk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Jq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Yq(t){let e=t.replace(Wq,"").replace(Vq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(ik,"");if(r.toString("base64").replace(ik,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function fk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Xq(t){let e=fk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,dk),n=Bn(e.mimeType,Qh);if(typeof e.blob=="string"&&Jq(n)){let i=Yq(e.blob);if(i!==void 0)return i}let o=lk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Qq(t){let e=Bn(t.type,"unknown");if(e==="resource")return Xq(t);if(e==="audio"){let r=Bn(t.mimeType,Qh),n=lk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,dk),n=Bn(t.name,""),o=Bn(t.mimeType,Qh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function eH(t){if(t.type!=="resource")return;let e=fk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Kq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function tH(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=eH(t);return e||{type:"text",text:ak(Qq(t))}}function rH(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(tH(n))}return e}function nH(t){return Ny(t,Mq)}function pk(t,e){let r=rH(t);if(r.length===0){let o=nH(e);o!==void 0&&r.push({type:"text",text:ak(o)})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function oH(t,e){let r=pk(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 hk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),iH=new Set([502,503,504]),Vs=uk.length+1,sH=2;function aH(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 cH(t){if(Pt(t)||Jh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return hk.has(e)?{totalAttempts:Vs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:sH}:iH.has(r)?{totalAttempts:Vs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Vs}:void 0}var uH=80,dH=10,lH=/[^a-zA-Z0-9_.()-]/g,fH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function mu(t){return t.replace(lH,"_").slice(0,uH)||"unknown"}function pH(t){let e=aH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||hk.has(e)))return e}function We(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=fH.has(e)?e:"Error",n=pH(t);return n===void 0?r:`${r}(${n})`}function hH(t,e,r){return t instanceof gt?new gt(mu(t.serverName),t.missingKeys.slice(0,dH).map(mu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${We(t)})`}function Gn(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:mu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var em={heartbeat_timeout:{tool:"The MCP server did not answer its heartbeat in time.",log:"MCP heartbeat timed out"},connection_closed:{tool:"The connection to the MCP server closed before the tool finished.",log:"MCP connection closed during tool execution"},heartbeat_failed:{tool:"The MCP heartbeat failed while the tool was running.",log:"MCP heartbeat failed during tool execution"}},mH="configured MCP server",gH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,sk=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,yH=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(em[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function vH(t){return Kx(t)?"heartbeat_timeout":Jx(t)?"connection_closed":"heartbeat_failed"}var gu=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=>Oa(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=>{X.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)?Oa(Dq(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=Vs,r={available:!0};for(let n=1;n<=Vs;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=cH(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=(uk[r-1]??0)+Math.floor(Math.random()*(Uq+1));X.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 Zn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Bx();this._client=i;let s;try{if(await Wh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Wx,()=>{X.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),X.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){X.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":hH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=ee();ii(o,this.name,e.reason,ft(o,this.name,this._config.id))}else if(e instanceof Ws||e instanceof Zn)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);xi(Gn(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=jx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Fx(this._resolvedEnv??e.env);return qx({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 Zx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Gx(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?Hq(r):!1,o=e.type==="stdio"&&Dr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Dr);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!Gy(a)){let u=Gq({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??qy(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 Wy({configEnv:e,localEnv:n&&!this._targetAuth?Ux():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${We(c)})`),new gt(this.name,Ti(e),c,"transient")}let a=Xh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,ok(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Jd(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Vy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${We(s)})`),new gt(this.name,Yh(e),s,"transient")}let i=Xh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,ok(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(hu)))return;let o;if(Zq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${hu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${hu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Bq(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(hu,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"?X.error(i):X.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&&!Sd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():Si(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=D(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),un({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;un({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&N(f,e.state)}catch{X.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)&&bd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&ii(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),X.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),ii(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 Rd(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),un({state:e.state,name:this.name,revision:i}),st(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&N(s,e.state),X.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:Jh(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}X.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;X.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 X.error(`MCP server "${this.name}" session re-initialization failed (${We(i)})`),Oq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Zn}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),Wh({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 Ws;if(this._hostedCredentialProvenance!==void 0)throw new Zn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;X.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();ii(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",We(e)),X.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed()},e.onerror=()=>{this._handleTransportClosed()})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},Fq),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<=nk&&n.outcome==="transient";s++)await pn(qq[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"?X.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&X.debug(`MCP server "${this.name}" startup verification ping remained transient after ${nk} 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:rk})},"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"?X.debug(i):X.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":Vh(e)||Kh(e)?"alive":Pt(e)?"authFailure":Yx(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:rk})}catch(r){if(this._reinitializingPromise||this._disposed||Kh(r)||Vh(r))return;this._failInFlightCalls(new Wn(vH(r),this._safeDiagnosticName()))}}_handleTransportClosed(){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(new Wn("connection_closed",this._safeDiagnosticName())))}_diagnosticRedactor(){let e=ee().tokens.get(this.name),r=this._config.type==="stdio"?this._config.env:this._config.headers;return Jd([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!gH.test(e)||sk.test(e)||Oa(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?mH:e}_safeCorrelationId(e){if(!(!e||!yH.test(e)||sk.test(e)||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e))return 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);X.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(e instanceof Wn?e:c.failure??e));let a=n.filter(c=>c.livenessRejected).length;this._logInFlightFailure({error:e,unsettled:n,failedCount:a}),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=s):s&&this.onWedged?.()}_logInFlightFailure({error:e,unsettled:r,failedCount:n}){if(!(e instanceof Wn)){X.warn(`MCP server "${this.name}" failing ${n} in-flight tool call(s)`);return}if(n===0)return;let o=r.length===1?this._safeCorrelationId(r[0]?.correlationId):void 0;Pq(em[e.category].log,{failure_category:e.category,server_display_name:e.serverDisplayName,...o?{correlation_id:o}:{}})}_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=!kq(this._tools,r);if(this._tools=r,n){X.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){X.warn(`MCP server "${this.name}" onToolsChanged handler threw (${We(o)})`)}}}catch(e){X.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,o){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>tk)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${tk}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??Lq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??jq,onprogress:f=>{this._suppressStdioDiagnostics||X.debug(`MCP server "${this.name}" tool "${e}" progress: ${f.progress}${f.total===void 0?"":`/${f.total}`}${f.message?` - ${f.message}`:""}`)}},c,u=new Promise((f,p)=>{c={reject:p,livenessRejected:!1,sessionRecoveryOwned:!1,correlationId:this._safeCorrelationId(o?.toolCallId)}});u.catch(()=>{}),c&&this._inFlightCalls.add(c);let l=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??{}},Vx,a)},"tool_call",{call:c})).then(f=>(c&&this._settleInFlightCall(c,!0,void 0),f),f=>{throw c&&this._settleInFlightCall(c,!1,f),f});try{let f=await Promise.race([l,u]);if(this._suppressStdioDiagnostics&&f.isError===!0)return oH({content:f.content,structuredContent:f.structuredContent},i);let p=pk(f.content,f.structuredContent);return{isError:f.isError===!0,content:p.content,rawItemCount:p.rawItemCount}}catch(f){return(n?.aborted||f instanceof Error&&f.name==="AbortError")&&this._throwCallCancellation(f),this._reportAndThrowToolError(f,e)}finally{c&&!this._wedgeRecoveryOwners.has(c)&&(c.failure=void 0,this._inFlightCalls.delete(c))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Gn("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(e instanceof Wn){let c=Gn(em[e.category].tool,"Error");throw this._disposed||xi(c,{server:e.serverDisplayName,op:"tool_call",transport:this._config.type}),c}if(this._suppressStdioDiagnostics){let c=Gn("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||xi(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Zn||e instanceof Ws)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=mu(r),i=We(e),s=Xx(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 zq(e)||xi(Gn(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Gn(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=Gn("MCP stdio close failed","Error");if(X.debug(o.message),e?.strict)throw o;return}if(X.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var mk=SH.child({prefix:"pi-mcp"}),wH=3,bH=6e4;function RH(t,e){let r=Date.now(),n=r-bH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=wH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function gk(t){ir(t),ma(t)}async function CH(t,e,r){if(!RH(e,t)){mk.warn(`MCP server "${t}" automatic restart rate-limited`);return}mk.warn(`MCP server "${t}" wedged; recycling transport`),await tn(t,e,r)}function yu(t,e,r){if(PH(e)){gk(t),N(t,e);return}dd(t,r),Ir(e)&&gk(t),N(t,e)}function PH(t){return pi()||t.toolSearchLatched}function tr(t,e,r){return Wu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function tm(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 xH(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&&eg(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 rm(t){let{state:e,config:r,generation:n}=t;return new gu(r,xH({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 nm(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 om(t,e,r){return t.configDesiredRevisions.get(e)===r}function yk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function im(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(_H,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;CH(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),N(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)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&yu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;ld(a,t,e),a!==n&&ld(n,t,e)}}async function vk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&N(n(),r)},ra);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&N(n(),r)}}async function _k(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function vu(t,e){if(e.status!=="installed")return!1;let r=D(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function kH(t){let{state:e,config:r,displaced:n,retirement:o}=t;nm(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Ku(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 EH(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"}}),ke({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 TH(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 EH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&yu(c(),e,r),N(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 AH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=D(e,r.name);if(!om(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return ke({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=tm(e,r.name),l=rm({state:e,config:r,generation:d});return im(l,d,e,o),ia({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:TH({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(ke({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function MH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!om(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?Q(r,a.name,u):D(r,a.name),l=Pr(a,i),f=ci({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=()=>AH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await kH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Bu(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 MH({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(()=>{N(s(),e)},ra);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function $H({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!yk(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Wu(e,t,o))return!1;nm(e,i),di(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(D(e,t)?.revision!==s.revision||!yk(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=tm(e,t),u=rm({state:e,config:i,generation:c});if(im(u,c,e,r),!ia({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await vk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&yu(d(),e,u),!0}function tn(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 $H({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 IH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;nm(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Ku(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 Sk(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=to(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):D(e,t),l={kind:"local",identity:a?.id??t},f=ci({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await IH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Bu(f.retirement),D(e,t)?.revision!==f.lease.revision||!om(e,t,c)){ke({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){ke({state:e,name:t,owner:l,revision:f.lease.revision}),N(i(),e);return}let p=tm(e,t),h=rm({state:e,config:a,generation:p});im(h,p,e,r),ia({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await vk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&yu(i(),e,h))}async function Ks(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>tn(n,e,r)))}finally{e.reconnecting=!1}}var wk=Symbol.for("__pi_mcp_registry_ingress__");function _u(t){return Object.defineProperty(t,wk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,wk)?.value===!0}function rn(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=D(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)&&!Vn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as OH}from"@hermes/logger";var zH=OH.child({prefix:"pi-mcp"}),NH=1e6,DH=1e3,LH=/^\d+$/;function bk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function nn(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"||!LH.test(e)||typeof r!="string"||r.length===0)return;let n=sa(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:bk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function jH(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 FH(t,e,r){if(t===void 0)return!0;let n=bk(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 UH(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 zH.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(!FH(c,r,s))return"reject";let u=jH(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 qH(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 HH(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 GH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*DH+Math.floor(t.access_token_expires_at.nanos/NH):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 ZH(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(!HH(n))return{decision:"reject"};let i=nn(n),s=UH(r,n,i,o);if(s==="reject")return{decision:s};let a=GH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!ZH(e.get(r),a))||s==="apply"&&qH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function Su(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 Rk=BH.child({prefix:"pi-mcp"});function WH(t,e){let r=rn({state:t,target:e,byConfigId:!0});if(!r)return;let o=D(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function VH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=nn(i);if(s===void 0)return!1;let a=dn(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 Ck(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){Rk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=WH(r,n.configId),i=o?VH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=D(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||D(r,o.name)!==s||u().decision==="reject")return;Q(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=Su(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=nn(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??tn,h=t.report??N;await p(o.name,r,f).catch(m=>{Rk.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 cG}from"@hermes/logger";import{randomUUID as KH}from"node:crypto";import{setToolSource as JH}from"@augmentcode/auggie-v2";import{logger as YH}from"@hermes/logger";import{Type as XH}from"@sinclair/typebox";var xk=YH.child({prefix:"pi-mcp"}),rr="attach-mcp-server",QH="augment:mcp-attach-request",eG=15e3,tG={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 rG(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 nG(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function sm(t,e){let r=nG(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 oG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},eG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Pk(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 iG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Pe(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${sm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Pe(`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.${sm(r,e)}`)}function sG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Pe(`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,Pe("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 Pe(`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 Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Pe(`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 Pe(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Pe(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${sm(n,e)}`);case"NO_ACTIVE_VM":return Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Pe(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function aG(t,e,r){if(e.mcpAttachDisabled)return Pe("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. ${Pk(e)}`);let o=rG(e,n);if(o.kind==="none")return Pe(`No MCP server matching "${n}" is available to attach. ${Pk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Pe(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=iG({entry:i,state:e});if(s!==void 0)return s;if(fd(e,i))return Pe(`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 Pe(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=KH();xk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=oG(e,a);t.events.emit(QH,{configId:i.id,requestId:a});let u=await c,d=sG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),no(rr),Ir(e)&&ir(t)),d}function wu(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:XH.Unsafe(tG),execute:(n,o)=>aG(t,e,o)};JH(rr,"mcp"),t.registerTool(r),Mr(r),xk.debug("Registered attach-mcp-server tool")}var bu=cG.child({prefix:"pi-mcp"}),am="augment:mcp-attach-result";function kk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(am,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){bu.warn(`${am} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){bu.debug(`${am}: 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 Ru(t,e){if(e.mcpAttachCloudSignaled&&ga(e)){wu(t,e);return}e.mcpAttachCloudSignaled&&mg(rr)!==void 0&&(t.unregisterTool(rr),no(rr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!ga(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await Cg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,bu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,bu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Ru(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as bG}from"@hermes/logger";function uG(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case hi.OAUTH:return"oauth";case hi.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 dG(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case Or.CLI:return"cli";case Or.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 Cu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(dG).filter(r=>r!==void 0);return e.length===0?void 0:e}function Pu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=uG(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=Qn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...eo(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof Tt?s.message:String(s)}}}function lG(t){let e=t.config?.auth_type;return e===hi.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function fG(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 cm(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 pG(t,e,r){if(r!==void 0&&t.added_by===r)return Cu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?Cu(n):[]}function hG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=cm(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=cm(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=cm(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)?pG(p,o,s):Cu(p.enabled_products),g=t.productType??"cloud_agent";m===void 0||m.includes(g)?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function mG(t,e="cloud_agent"){if(t==null)return e==="cli"?Or.CLI:Or.CLOUD_AGENT}function gG(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 Ek(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:_u(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 yG(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=Pu(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=Ek(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=Ek(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 vG(t){let e=[],r=[],n=[];for(let o of t)lG(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 _G(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=fG(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 SG(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 xu(t){let e=t.productType??"cloud_agent",r=t.client??new va(t.creds),{tenant:n,user:o,diagnostics:i}=await Ng(r,mG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=hG({tenantConfigs:n.mcp_configs??[],userConfigs:s,enabledSharedServerIds:o.enabled_shared_server_ids??[],serverProductPreferences:o.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId,productType:e}),f=vG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...gG(d));let h=[],m=new Map,g=new Set(t.localServerNames),v=[...p.filter(R=>a.has(R.id)),...p.filter(R=>!a.has(R.id))];for(let R of v){let _=yG({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});SG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=_G(h);l.push(...w.droppedNames),i.push(...w.diagnostics);let b=new Map;for(let R of[...n.mcp_configs??[],...s])R.config?.name&&b.set(R.id,R.config.name);return{servers:w.servers,diagnostics:i,filteredOutIds:u,retainedNames:l,namesById:b,nameCollisionFallbacks:m}}import{logger as wG}from"@hermes/logger";var Xo=wG.child({prefix:"pi-mcp"});function Tk(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Xo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=Pu(n,"tenant");if(!i.ok){Xo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return _u(i.server.type==="stdio"?Zt(i.server,s):Gt(i.server,s))}catch(a){Xo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function Ak(t,e){let r;try{r=JSON.parse(t)}catch(n){Xo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return Tk(r,e)}function Qo(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Xo.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Xo.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=Tk(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 xt=bG.child({prefix:"pi-mcp"});function $k(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Ik(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:(ke({state:e,name:r,owner:n.owner,revision:n.revision}),Ve(e,r),"released");let c=a.get(r),u=ci({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 RG(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=Ik({state:e,name:r,lease:c,host:n,isDeselected:$k({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=D(e,r)?.retirement;return n.beginDisposal?.(),n.dispose({strict:!0}).then(()=>{l&&_e({state:e,name:r,retirement:l,result:{status:"retired"}}),d==="retiring"&&ke({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 CG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Ik({state:e,name:r,lease:n,isDeselected:$k({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=RG({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||CG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Ok(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 Et(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 xG(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 kG(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 Qo(o,e.workspaceRoot??process.cwd(),n)}async function EG(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 Et(c)}}function TG(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 AG(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 MG(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 $G(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 Ok(e,r.servers,n,i,o!==void 0)}async function zk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function Mk(t){return await zk(t.state,t.result),t.state.registryGeneration===t.generation&&await $G(t),t.result}function IG(t){let{state:e,configIds:r,parsedEmbedded:n,credentials:o,localServerNames:i,previousSelectedIds:s,selection:a,generation:c,discover:u,productType:d}=t;if(n){xt.info(`Registry selection: using ${n.servers.length} embedded config(s) (no registry fetch)`);let f=xG(n,r,i);return Mk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})}return o?u({configIds:r,creds:o,currentUserId:o.userId,workspaceRoot:e.workspaceRoot??process.cwd(),localServerNames:i,productType:d}).then(f=>Mk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function OG(t){let{state:e,result:r,selection:n}=t;e.selectedRegistryConfigIds=n;for(let o of r.diagnostics)e.diagnostics.push({...o,origin:"registry"}),xt.warn(o.message);for(let[o,i]of r.namesById??[])e.registryConfigNamesById.set(o,i);r.filteredOutIds.length>0&&xt.info(`Registry discovery filtered out ${r.filteredOutIds.length} server(s) by selection/opt-in/product`)}function zG(t){for(let e of t.servers){let r=`Skipped registry MCP server "${e.name}" (id=${e.id}): credential setup did not complete, likely because another server with the same name claimed it`;t.state.diagnostics.push({server:e.name,message:r,origin:"registry"}),xt.warn(r)}}function NG(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 Nk(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 um(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=D(e,s);c?.owner.kind==="registry"&&c.host===void 0&&c.revision===a.leaseRevision&&ke({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function DG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){um({state:e,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:void 0,slotReservations:a}),xt.info(`Registry discovery superseded by a newer selection; skipping ${r.servers.length} server(s)`);return}if(await zk(e,r),e.registryGeneration!==o)return;let c=Nk({state:e,generation:o}),u=r.servers.filter(c),d=await Promise.all(u.map(v=>Ar({state:e,config:v,pi:s})));if(e.registryGeneration!==o)return;let l=u.filter((v,w)=>d[w]),f=u.filter((v,w)=>!d[w]);OG({state:e,result:r,selection:n}),zG({state:e,servers:f}),um({state:e,result:r,selection:n,slotReservations:a});let p=NG({state:e,result:{...r,servers:l,retainedNames:[...r.retainedNames??[],...f.map(v=>v.name)]}});if(p.length===0)return;let h=p.filter(v=>{let w=e.servers.get(v.name);if((w?Q(e,v.name,w):D(e,v.name))?.owner.kind==="local")return xt.info(`Registry install of "${v.name}" skipped: a local server claimed the name during discovery`),!1;let R=a.get(v.name)?.configRevision;if(R===void 0)return!0;let _=e.configDesiredRevisions.get(v.name);return _!==R?(xt.info(`Registry install of "${v.name}" skipped: slot revision advanced from ${R} to ${_} by a concurrent operation`),!1):!0});if(h.length===0)return;xt.info(`Registry discovery: connecting ${h.length} server(s)`);let g=(await i(h,e,e.currentLoad?.latestPi??s,c))?.find(v=>v.status==="failed");if(g)throw g.error instanceof Error?g.error:new Error(String(g.error));await LG({state:e,pi:s,result:r,generation:o,connect:i})}async function LG(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 jG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function jG(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";xt.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,Nk({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 FG(t){let{state:e,error:r,generation:n,previousSelectedIds:o,selection:i}=t,s=`Registry discovery failed: ${r instanceof Error?r.message:String(r)}`;xt.warn(s),e.registryGeneration===n&&(await Ok(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function UG(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 qG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await DG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),um({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 Et)throw UG(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 FG({...t.resultArgs,error:r})}}function Js(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??xu,s=o?.connect??Ke,a=n;if(!a||typeof a!="object"||Array.isArray(a))return xt.warn("augment:mcp-config-ids payload is not an object"),Promise.resolve();let c=t.productType??a.productType??"cloud_agent";Array.isArray(a.configIds)&&og(r,new Set(a.configIds.map(qe)));let u=kG({state:r,configIds:a.configIds,admittedConfigs:t.admittedConfigs}),d=r.credentials;if(!(u||d)){xt.warn("augment:mcp-config-ids received before credentials; skipping registry discovery");for(let w of a.configIds??[])Je({state:r,domain:qe(w)});return Promise.resolve()}let l=r.selectedRegistryConfigIds??[],f=EG({state:r,previousSelectedIds:l,configIds:a.configIds}),p=TG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([PG(r,a.configIds,p),f]).then(([w])=>w);AG(r);let g=a.configIds?[...a.configIds]:void 0,v=IG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:MG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?qG({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as HG}from"@hermes/logger";var on=HG.child({prefix:"pi-mcp"});function GG(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 ZG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Fk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function BG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function Dk(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&&(BG({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 Uk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Lk(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Vn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function qk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function WG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=D(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?Bm({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):ke({state:e,name:r,owner:i.owner,revision:i.revision}))&&D(e,r)===void 0&&(qk(e,r),Ve(e,r))}async function dm(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 on.warn(w),e.diagnostics.push({message:w,origin:"registry"}),new Error(w)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=D(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=D(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 on.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await li(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 on.warn(b),e.diagnostics.push({server:a,message:b}),w}Fk({state:e,configId:r,fence:i})&&(Uk(e,r),WG({state:e,name:a,config:s,retirement:g})),on.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 jk(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)}`;on.warn(i),e.diagnostics.push({server:r,message:i})}async function VG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(jk({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([li(e,r,n,o.config)]);return jk({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 KG(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):D(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?.(),on.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await VG({state:e,name:n,configId:r,server:a});if(h&&Fk({state:e,configId:r,fence:s})?Uk(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&&ke({state:e,name:n,owner:c.owner,revision:c.revision})&&qk(e,n),i(p,e),!h)throw m}function ku(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return on.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return on.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:la({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=Lk(r,s),d=r.registryCredentialConfigsById.get(s),l=d?.name?D(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(Dk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>dm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=GG(r,s);if(u===void 0&&d===void 0)return a(dm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=ZG({state:r,configId:s,liveEditGeneration:h});return a(Dk({state:r,configId:s,fence:m,operation:()=>{let g=Lk(r,s);return g===void 0?dm({state:r,configId:s,pi:e,report:c,sourceFence:m}):KG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as JG}from"node:crypto";var YG=/^[1-9][0-9]*$/,XG=/^[a-f0-9]{64}$/,QG=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 lm(t){return typeof t=="string"&&YG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function pm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&lm(t.connectionVersion)}function eZ(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Dr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Dr(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 Gk(t){if(!(!fe(t)||Object.keys(t).some(e=>!QG.has(e)))&&!(!eZ(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"||!XG.test(t.route_revision)||!lm(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"||!lm(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 fm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function tZ(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 rZ(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 Hk(t,e){return fm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&tZ(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function nZ(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 oZ(t,e){let r=Ti((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 Eu=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 pm(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&&!fm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&fm(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||!rZ(e,r)||!n&&(!o||!this.#r.has(r)||!Hk(e,o.material))||!oZ(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"&&Hk(e,o.material)&&nZ(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 Zk(t){return JG("sha256").update(t).digest("hex")}function iZ(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 sZ(t,e){if(e.length<=1)return!0;let r=sa(t);return r.kind==="valid"&&e.filter(n=>qe(n)===r.ownerDomain).length===1}function Bk(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 aZ(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 cZ(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 uZ(t,e,r){if(typeof t!="string"||Zk(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||!cZ(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(!aZ(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 Wk(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?Bk(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?iZ(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 b=a?.get(l)??[];(!fe(f)||b.length===0&&(e.configsJson!==void 0||e.configIds!==void 0)||!sZ(f,b)||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(([b,R])=>b!=="target_material"&&b!=="passive_install"&&R!==""))return;let p=Gk(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?uZ(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),w=t.hostLeases.get(g.name);if(v&&!n.trusts(v.config)&&!Vn(v.config)&&!n.hasTargetProvenance(v.config)||v&&(v.config.registrySource===void 0||v.config.vfsSource!==void 0||v.config.id!==p.config_id)||v&&(!w||w.host!==v)||w&&(w.owner.kind!=="registry"||w.owner.identity!==`user:${p.config_id}`))return;if(Object.hasOwn(f,"passive_install")){let b=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(b)||!Number.isSafeInteger(b.host_generation)||Number(b.host_generation)<=0||R.serverGeneration!==b.host_generation||R.credentialRevisionDomain!==`recipient:${p.config_id}`||typeof b.observed_binding_generation!="string"||!/^[1-9][0-9]*$/.test(b.observed_binding_generation)||R.credentialRevision!==b.observed_binding_generation||BigInt(p.binding_generation)<=BigInt(b.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=Qo(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 dZ(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=Wk(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=[...Bk(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,wu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=Js({pi:e,state:r,data:{configIds:d},admittedConfigs:l,deps:{connect:(h,m,g,v)=>{if(!u())return Promise.resolve([]);let w=h.map(b=>{let R=b.id?l.get(b.id):void 0;if(!R&&b.id&&o.has(b.id))throw new Error("MCP target material is unavailable");return R??b});return Ke(w,m,g,b=>u()&&(v?.(b)??!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 N(p,r),Se(r),Yo(p,r),!0}async function lZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return dZ(t);let o;try{o=Wk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await pZ({pi:e,state:r,data:n,candidate:i,store:s})}function fZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function pZ(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(!ro(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=fZ(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)||Vn(v.config)))){let v=ku({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:(N(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?id(c):da(c))}}function Ys(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 hZ(t,e){t.registryGeneration++,tg(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"}),N(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),N(e,t)}function Vk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Eu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(pm(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,hZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Ys(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await lZ({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"}),N(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),N(t,e))})}))}import{logger as kZ}from"@hermes/logger";import{execFile as hm}from"node:child_process";import{win32 as mm}from"node:path";import{logger as mZ}from"@hermes/logger";var gZ=5e3,yZ=/^[a-z]:[\\/]/i,vZ=/[<>:"|?*]/;function _Z(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!yZ.test(t)||!mm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||vZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:mm.join(mm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function SZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function wZ(t,e){switch(process.platform){case"darwin":return hm("open",[t],e);case"win32":{let r=_Z();return r?hm(r,["-NoProfile","-NonInteractive","-EncodedCommand",SZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return hm("xdg-open",[t],e)}}function Kk(t,e=gZ){let r=mZ.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=wZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as bZ}from"node:http";function Tu(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Jk(t){let e=Tu(t.title),r=Tu(t.heading),n=Tu(t.message),o=t.details?Tu(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 @@ ${C}`,l++;break;case"id":u=C.includes("\0")?void 0:C;break;case"retry":/^\d+$/.t
140
140
  </main>
141
141
  ${i}
142
142
  </body>
143
- </html>`}function Yk(t){return Jk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Au(t,e){return Jk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var bZ="127.0.0.1",eE="/callback",Xk=3e3,Qk=3010,RZ="Authentication successful. You can close this window.",Mu={"Content-Type":"text/html; charset=utf-8"};function tE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function rE(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 gm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function CZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==eE){e.writeHead(404,Mu),e.end(Au("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,Mu),e.end(Au("Authentication did not complete.",`Error: ${s}`));let u=gm(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,Mu),e.end(Au("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Mu),e.end(Yk(RZ)),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=Xk;e<=Qk;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,bZ)}))return e;throw new Error(`No free port in ${Xk}-${Qk} for the OAuth callback server`)}async function nE(){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=wZ((a,c)=>{CZ(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}${eE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var ym=xZ.child({prefix:"pi-mcp"}),kZ=300*1e3,sE="MCP authentication was superseded";function oE(){return tE()?"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 aE(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&&cE(t.credentialRevisions.get(e),r.credentialRevision)}function cE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function iE(t,e,r){if(!aE(t,e,r))throw new Error(sE)}async function EZ(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)||!cE(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;un({state:t,name:e,revision:p}),N(t.currentLoad?.latestPi??s,t)}catch{ym.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function TZ(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 AZ(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"))),kZ)},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(gm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=rE(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 uE(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 nE(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Hd(l),Sr(o.signal),p=await Gd(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);iE(r,e,c),Sr(o.signal);let m=await Zd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await Ma(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);Sr(o.signal);let v=g,b=!1,w,R,_=(xe,an)=>{if(b)return R&&w&&$a(xe,w)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!$a(xe,v))return Promise.resolve(null);b=!0;let cn=v;return w=cn,an(),ym.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Bd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:oE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(xe=>_(xe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:oE()}),Sr(o.signal),await Kk(g.authUri.toString());let C=await AZ(d,o,()=>v.state,_),I=await Wd(C,v);iE(r,e,c);let ne=TZ(I),pe=await c.tokenStore.persistAuthenticated(e,ne,u,h);if(!aE(r,e,c))throw await EZ(r,e,c,u,ne,pe,n),new Error(sE);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),un({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),st(r,e),await Ks([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),ym.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as BZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as MZ,SETTINGS_TARGET_ORDER as $Z,SettingsManager as IZ,scopeToSettingsTarget as OZ,settingsTargetToScope as vm}from"@augmentcode/auggie-v2";var zZ=$Z.map(t=>vm(t)),dE=(t,e)=>IZ.create(t,e);function lE(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 fE(t,e,r){let n=dE(e,r);return zZ.filter(o=>lE(n,o)?.[t])}function pE(t){let e=t.map(n=>({target:OZ(n),path:n,exists:!0})),r=MZ({files:e});return"directTarget"in r?{scopes:t,direct:vm(r.directTarget)}:{scopes:r.files.map(n=>vm(n.target)),direct:null}}function NZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function hE(t,e,r,n,o){try{let i=dE(n,o);if(!lE(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:NZ(t,n,o)!==e}}function _m(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function mE(t,e,r){return _m(t)}function gE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as DZ}from"@hermes/logger";var wm=DZ.child({prefix:"pi-mcp"}),yE="hermes:mcp:register-server-source";function LZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function vE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function jZ(t,e){return{...t,disabled:e}}function FZ(t){try{return t.getServers()}catch(e){return wm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function UZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function _E(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 qZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of FZ(t)){let s=e.servers.get(i.name),a=LZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=jZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&Q(e,i.name,s);let l=D(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)&&vE(s.config,u);p&&(Q(e,i.name,s),Zm({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),_E(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function HZ(t,e,r){let n=[];for(let o of e){if(t.has(o))continue;r.sessionPluginDisabledOverrides.delete(o);let i=D(r,o);if(i?.owner.kind!=="plugin")continue;let s=i.host;if(!s){ke({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"}}),ke({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function SE(t,e){_E(t,e)}function GZ(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):D(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){SE(e,a);continue}u===o.get(a)&&n.has(a)&&vE(u.config,c)||(s.set(a,Ve(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function ZZ(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&&UZ(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=qZ(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 HZ(a,u,e);let{reservedRevisions:d,toConnect:l}=GZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;wm.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=D(e,h.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||SE(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)),N(f(),e),Se(e)}}function Sm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>ZZ(t,e,r)).catch(i=>{wm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function wE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?Q(o,r,s):D(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),Sm(o.currentLoad?.latestPi??i,o,e))}function bE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,Sm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,Sm(e.currentLoad?.latestPi??t,e))})}}function WZ(t,e){let n=BZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function RE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(WZ(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:_m(e)};if(od(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=fE(e,n,o);if(s.length===0)return{kind:"blocked",message:mE(e,n,o)};let{scopes:a,direct:c}=pE(s);return{kind:"local",scopes:a,direct:c}}async function CE(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 wE({name:e,disabled:r,state:n,pi:o});return}od(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 PE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=hE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await Sk(e,o,i,s,a),Se(o),c.overridden?{notice:gE(e)}:{}}import{DynamicBorder as h2}from"@augmentcode/auggie-v2";import{Key as m2,matchesKey as g2,SearchableWindowedList as y2,SpinnerTimer as v2,truncateToWidth as Lu,wrapTextWithAnsi as _2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as VZ,scopeToSettingsTarget as KZ}from"@augmentcode/auggie-v2";import{truncateToWidth as JZ,visibleWidth as Kn,wrapTextWithAnsi as YZ}from"@earendil-works/pi-tui";var XZ=2,QZ=2,$u={name:"Name",source:"Source",status:"Status"};function bm(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 Rm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Cm(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function Iu(t){return t.reduce((e,r)=>Math.max(e,Kn(r)),0)}function ei(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 xE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(XZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(QZ,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=ei(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let b of c)if(!(g>=Kn($u[b]))&&(a=ei(u,b,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Rm(g)),l=t.map(g=>bm(g)),f=Math.max(Kn($u.source),Iu(d)),p=Math.max(Kn($u.status),Iu(l.map(g=>g.label))),h=Math.max(Kn($u.name),Iu(t.map(g=>g.name))),m=Math.max(p,Iu(l.map(g=>g.label+(g.hint??""))));return a=ei(u,"source",f,a),a=ei(u,"status",p,a),a=ei(u,"name",h,a),ei(u,"status",m,a),u}function kE(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 ti(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>YZ(n,r).map(o=>Kn(o)<=r?o:JZ(o,r,"")))}function e2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,e2(e,r)))}function EE(t,e,r){let n=ri(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 TE(t,e){return String(t+1).padStart(String(e).length," ")}function Pm(t){return VZ(KZ(t))}import{Key as t2,matchesKey as r2}from"@earendil-works/pi-tui";function Ou(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 AE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var ME=10,Jn=15;var n2="k",o2="j";function ni(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 xm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===n2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===o2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:r2(t,t2.backspace)?{kind:"back"}:{kind:"ignore"}}function i2(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=ni(it(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ni(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 s2(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Ou(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ni(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ni(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 a2(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 c2(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)]?.logLines()??[],o=ti(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:ri(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:ri(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function u2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function zu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function d2(t,e){let r=t.targetScopes.length;if(r===0)return{state:zu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ni(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ni(t.targetIndex+1,r)}};case"cancel":case"back":return{state:zu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:zu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:zu(t,"serverActions")}}default:return{state:t}}}function $E(t,e,r){switch(t.step){case"serverList":return i2(t,e,r.snapshots);case"serverActions":return s2(t,e,r);case"viewTools":return a2(t,e,r);case"viewLogs":return c2(t,e,r);case"pasteAuthCode":return u2(t,e);case"selectTarget":return d2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as l2,wrapTextWithAnsi as sn}from"@earendil-works/pi-tui";var km="\u2192 ",Nu=" ";function IE(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 OE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=xE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let b=[c.nameWidth>0?Cm(m,c.nameWidth):"",c.sourceWidth>0?Cm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(w=>w.length>0);return h+b.join(u)},l=wr(Nu,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=bm(h),v=wr(g.label,c.statusWidth),b=c.statusWidth-l2(v),w=g.hint?wr(g.hint,b):"",R=i.fg(g.color,v)+(w?i.fg("muted",w):""),_=wr(m?km:Nu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,IE(wr(h.name,c.nameWidth),m,i),IE(wr(Rm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var f2={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 p2(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 f2[t]}function zE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=sn(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...sn(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Ou(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=p2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?km:Nu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function NE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No tools available."),o);if(i.disabled)return sn(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return sn(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=kE(t.toolIndex,s,Jn),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",`${TE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function DE(t,e,r,n){let o=Math.max(1,n),s=e[it(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return sn(r.fg("muted","No logs available yet."),o);let a=ti(s,o),c=a.length,u=EE(t.logScrollOffset,c,Jn),d=[];c>Jn&&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 LE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)]?.name??"",s=[...sn(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",Pm(c))):r.fg("text",Pm(c));s.push(Ut((u?km:Nu)+d,o,"\u2026"))}return s}var Du=3;function S2(t){return t.type==="stdio"?t.command:t.url}function w2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
143
+ </html>`}function Yk(t){return Jk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Au(t,e){return Jk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var RZ="127.0.0.1",eE="/callback",Xk=3e3,Qk=3010,CZ="Authentication successful. You can close this window.",Mu={"Content-Type":"text/html; charset=utf-8"};function tE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function rE(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 gm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function PZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==eE){e.writeHead(404,Mu),e.end(Au("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,Mu),e.end(Au("Authentication did not complete.",`Error: ${s}`));let u=gm(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,Mu),e.end(Au("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Mu),e.end(Yk(CZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function xZ(t){for(let e=Xk;e<=Qk;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,RZ)}))return e;throw new Error(`No free port in ${Xk}-${Qk} for the OAuth callback server`)}async function nE(){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=bZ((a,c)=>{PZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await xZ(i);return{port:s,redirectUri:`http://localhost:${s}${eE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var ym=kZ.child({prefix:"pi-mcp"}),EZ=300*1e3,sE="MCP authentication was superseded";function oE(){return tE()?"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 aE(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&&cE(t.credentialRevisions.get(e),r.credentialRevision)}function cE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function iE(t,e,r){if(!aE(t,e,r))throw new Error(sE)}async function TZ(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)||!cE(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;un({state:t,name:e,revision:p}),N(t.currentLoad?.latestPi??s,t)}catch{ym.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function AZ(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 MZ(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"))),EZ)},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(gm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=rE(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 uE(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 nE(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Hd(l),Sr(o.signal),p=await Gd(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);iE(r,e,c),Sr(o.signal);let m=await Zd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await Ma(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,R,_=(xe,an)=>{if(w)return R&&b&&$a(xe,b)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!$a(xe,v))return Promise.resolve(null);w=!0;let cn=v;return b=cn,an(),ym.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Bd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:oE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(xe=>_(xe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:oE()}),Sr(o.signal),await Kk(g.authUri.toString());let C=await MZ(d,o,()=>v.state,_),I=await Wd(C,v);iE(r,e,c);let ne=AZ(I),pe=await c.tokenStore.persistAuthenticated(e,ne,u,h);if(!aE(r,e,c))throw await TZ(r,e,c,u,ne,pe,n),new Error(sE);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),un({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),st(r,e),await Ks([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),ym.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as WZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as $Z,SETTINGS_TARGET_ORDER as IZ,SettingsManager as OZ,scopeToSettingsTarget as zZ,settingsTargetToScope as vm}from"@augmentcode/auggie-v2";var NZ=IZ.map(t=>vm(t)),dE=(t,e)=>OZ.create(t,e);function lE(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 fE(t,e,r){let n=dE(e,r);return NZ.filter(o=>lE(n,o)?.[t])}function pE(t){let e=t.map(n=>({target:zZ(n),path:n,exists:!0})),r=$Z({files:e});return"directTarget"in r?{scopes:t,direct:vm(r.directTarget)}:{scopes:r.files.map(n=>vm(n.target)),direct:null}}function DZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function hE(t,e,r,n,o){try{let i=dE(n,o);if(!lE(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:DZ(t,n,o)!==e}}function _m(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function mE(t,e,r){return _m(t)}function gE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as LZ}from"@hermes/logger";var wm=LZ.child({prefix:"pi-mcp"}),yE="hermes:mcp:register-server-source";function jZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function vE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function FZ(t,e){return{...t,disabled:e}}function UZ(t){try{return t.getServers()}catch(e){return wm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function qZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function _E(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 HZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of UZ(t)){let s=e.servers.get(i.name),a=jZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=FZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&Q(e,i.name,s);let l=D(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)&&vE(s.config,u);p&&(Q(e,i.name,s),Zm({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),_E(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function GZ(t,e,r){let n=[];for(let o of e){if(t.has(o))continue;r.sessionPluginDisabledOverrides.delete(o);let i=D(r,o);if(i?.owner.kind!=="plugin")continue;let s=i.host;if(!s){ke({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"}}),ke({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function SE(t,e){_E(t,e)}function ZZ(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):D(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){SE(e,a);continue}u===o.get(a)&&n.has(a)&&vE(u.config,c)||(s.set(a,Ve(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function BZ(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&&qZ(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=HZ(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 GZ(a,u,e);let{reservedRevisions:d,toConnect:l}=ZZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;wm.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=D(e,h.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||SE(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)),N(f(),e),Se(e)}}function Sm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>BZ(t,e,r)).catch(i=>{wm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function wE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?Q(o,r,s):D(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),Sm(o.currentLoad?.latestPi??i,o,e))}function bE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,Sm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,Sm(e.currentLoad?.latestPi??t,e))})}}function VZ(t,e){let n=WZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function RE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(VZ(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:_m(e)};if(od(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=fE(e,n,o);if(s.length===0)return{kind:"blocked",message:mE(e,n,o)};let{scopes:a,direct:c}=pE(s);return{kind:"local",scopes:a,direct:c}}async function CE(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 wE({name:e,disabled:r,state:n,pi:o});return}od(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 PE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=hE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await Sk(e,o,i,s,a),Se(o),c.overridden?{notice:gE(e)}:{}}import{DynamicBorder as m2}from"@augmentcode/auggie-v2";import{Key as g2,matchesKey as y2,SearchableWindowedList as v2,SpinnerTimer as _2,truncateToWidth as Lu,wrapTextWithAnsi as S2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as KZ,scopeToSettingsTarget as JZ}from"@augmentcode/auggie-v2";import{truncateToWidth as YZ,visibleWidth as Kn,wrapTextWithAnsi as XZ}from"@earendil-works/pi-tui";var QZ=2,e2=2,$u={name:"Name",source:"Source",status:"Status"};function bm(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 Rm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Cm(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function Iu(t){return t.reduce((e,r)=>Math.max(e,Kn(r)),0)}function ei(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 xE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(QZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(e2,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=ei(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Kn($u[w]))&&(a=ei(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Rm(g)),l=t.map(g=>bm(g)),f=Math.max(Kn($u.source),Iu(d)),p=Math.max(Kn($u.status),Iu(l.map(g=>g.label))),h=Math.max(Kn($u.name),Iu(t.map(g=>g.name))),m=Math.max(p,Iu(l.map(g=>g.label+(g.hint??""))));return a=ei(u,"source",f,a),a=ei(u,"status",p,a),a=ei(u,"name",h,a),ei(u,"status",m,a),u}function kE(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 ti(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>XZ(n,r).map(o=>Kn(o)<=r?o:YZ(o,r,"")))}function t2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,t2(e,r)))}function EE(t,e,r){let n=ri(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 TE(t,e){return String(t+1).padStart(String(e).length," ")}function Pm(t){return KZ(JZ(t))}import{Key as r2,matchesKey as n2}from"@earendil-works/pi-tui";function Ou(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 AE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var ME=10,Jn=15;var o2="k",i2="j";function ni(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 xm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===o2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===i2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:n2(t,r2.backspace)?{kind:"back"}:{kind:"ignore"}}function s2(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=ni(it(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ni(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 a2(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Ou(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ni(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ni(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 c2(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 u2(t,e,r){let n=r.snapshots[it(r.snapshots,t.selectedServer)]?.logLines()??[],o=ti(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:ri(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:ri(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function d2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function zu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function l2(t,e){let r=t.targetScopes.length;if(r===0)return{state:zu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ni(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ni(t.targetIndex+1,r)}};case"cancel":case"back":return{state:zu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:zu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:zu(t,"serverActions")}}default:return{state:t}}}function $E(t,e,r){switch(t.step){case"serverList":return s2(t,e,r.snapshots);case"serverActions":return a2(t,e,r);case"viewTools":return c2(t,e,r);case"viewLogs":return u2(t,e,r);case"pasteAuthCode":return d2(t,e);case"selectTarget":return l2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as f2,wrapTextWithAnsi as sn}from"@earendil-works/pi-tui";var km="\u2192 ",Nu=" ";function IE(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 OE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=xE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?Cm(m,c.nameWidth):"",c.sourceWidth>0?Cm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=wr(Nu,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=bm(h),v=wr(g.label,c.statusWidth),w=c.statusWidth-f2(v),b=g.hint?wr(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=wr(m?km:Nu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,IE(wr(h.name,c.nameWidth),m,i),IE(wr(Rm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var p2={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 h2(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 p2[t]}function zE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=sn(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...sn(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Ou(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=h2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?km:Nu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function NE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No tools available."),o);if(i.disabled)return sn(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return sn(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=kE(t.toolIndex,s,Jn),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",`${TE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function DE(t,e,r,n){let o=Math.max(1,n),s=e[it(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return sn(r.fg("muted","No logs available yet."),o);let a=ti(s,o),c=a.length,u=EE(t.logScrollOffset,c,Jn),d=[];c>Jn&&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 LE(t,e,r,n){let o=Math.max(1,n),i=e[it(e,t.selectedServer)]?.name??"",s=[...sn(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",Pm(c))):r.fg("text",Pm(c));s.push(Ut((u?km:Nu)+d,o,"\u2026"))}return s}var Du=3;function w2(t){return t.type==="stdio"?t.command:t.url}function b2(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 jE(t){return t.disabled?2:t.status==="auth_required"?0:1}function b2(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:()=>w2(r)});return e.sort((r,n)=>jE(r)-jE(n)),e}function R2(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 C2(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 zE(t,e,n,o);case"viewTools":return NE(t,e,n,o);case"viewLogs":return DE(t,e,n,o);case"selectTarget":return LE(t,e,n,o);default:return OE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function x2(t,e,r,n,o){let i=Math.max(1,o),s=Lu(n.bold(n.fg("accent",R2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Du?[...r.renderInput(i),""]:[],c=P2(t,e,r,n,i);return[s,"",...a,...c,"",Lu(n.fg("muted",C2(t.step)),i,"\u2026")]}function k2(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[Lu(s,i,"\u2026"),"",Lu(a,i,"\u2026")]}function E2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function T2(t,e,r){let n=s=>s.flatMap(a=>_2(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 A2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function FE(t){return t?"Disabling":"Enabling"}function UE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Em=class{state=AE();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 h2(r=>e.theme.fg("border",r)),this.serverList=new y2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:ME})}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=k2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=T2({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=x2(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>=Du}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Du&&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=ti(n?.logLines()??[],r).length,i=ri(this.state.logScrollOffset,o,Jn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=$E(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??Du});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=xm(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(xm(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,FE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(UE(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,FE(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(UE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new v2(()=>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??=E2(),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(g2(e,m2.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&&A2(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 qE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Em({tui:i,theme:s,keybindings:a,snapshots:()=>b2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Am=["list"];function HE(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 M2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var $2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function Tm(t,e){return e.length>0?[t,...e]:null}function I2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[Tm("MCP Server Status:",e.map(HE)),Tm("Plugin MCP servers:",r.map(HE)),Tm("Diagnostics:",t.diagnostics.map(M2))];return t.servers.size===0&&n.unshift([$2]),n.filter(o=>o!==null).map(o=>o.join(`
145
+ `)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function jE(t){return t.disabled?2:t.status==="auth_required"?0:1}function R2(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:w2(r.config),logLines:()=>b2(r)});return e.sort((r,n)=>jE(r)-jE(n)),e}function C2(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 P2(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 x2(t,e,r,n,o){switch(t.step){case"serverActions":return zE(t,e,n,o);case"viewTools":return NE(t,e,n,o);case"viewLogs":return DE(t,e,n,o);case"selectTarget":return LE(t,e,n,o);default:return OE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function k2(t,e,r,n,o){let i=Math.max(1,o),s=Lu(n.bold(n.fg("accent",C2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Du?[...r.renderInput(i),""]:[],c=x2(t,e,r,n,i);return[s,"",...a,...c,"",Lu(n.fg("muted",P2(t.step)),i,"\u2026")]}function E2(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[Lu(s,i,"\u2026"),"",Lu(a,i,"\u2026")]}function T2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function A2(t,e,r){let n=s=>s.flatMap(a=>S2(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 M2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function FE(t){return t?"Disabling":"Enabling"}function UE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Em=class{state=AE();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 m2(r=>e.theme.fg("border",r)),this.serverList=new v2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:ME})}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=E2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=A2({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=k2(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>=Du}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Du&&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=ti(n?.logLines()??[],r).length,i=ri(this.state.logScrollOffset,o,Jn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=$E(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??Du});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=xm(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(xm(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,FE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(UE(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,FE(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(UE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new _2(()=>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??=T2(),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(y2(e,g2.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&&M2(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 qE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Em({tui:i,theme:s,keybindings:a,snapshots:()=>R2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Am=["list"];function HE(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 I2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function Tm(t,e){return e.length>0?[t,...e]:null}function O2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[Tm("MCP Server Status:",e.map(HE)),Tm("Plugin MCP servers:",r.map(HE)),Tm("Diagnostics:",t.diagnostics.map($2))];return t.servers.size===0&&n.unshift([I2]),n.filter(o=>o!==null).map(o=>o.join(`
147
147
  `)).join(`
148
148
 
149
- `)}function O2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Am.includes(e))return e}async function z2(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=Ks([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function GE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Am.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 qE(n,e,s=>Ks([s],e,t),{classify:s=>RE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>CE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>PE({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)=>uE({serverName:s,state:e,pi:t,controller:a}));return}let i=O2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Am.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(I2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await z2(n,e,t)}})}import{logger as N2}from"@hermes/logger";var ZE=N2.child({prefix:"pi-mcp"}),Mm="augment:feature-flags";function D2(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 BE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Mm,r=>{let n=D2(r);if(n===void 0){ZE.warn(`${Mm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,ZE.debug(`Received feature-flag snapshot via ${Mm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as L2}from"@hermes/logger";var Xs=L2.child({prefix:"pi-mcp"}),WE=300*1e3,$m=600*1e3;function j2(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&&(Si(o,e)||o.expiresAt>e+$m||(Xs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${$m}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Xs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Xs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function VE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{j2(t)},WE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Xs.debug(`Started background MCP OAuth refresh loop (interval ${WE}ms, buffer ${$m}ms)`)}function KE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Xs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as F2}from"@hermes/logger";var xt=F2.child({prefix:"pi-mcp"});function U2(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 q2(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 JE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function YE(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 Qs(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 H2(t,e){return e.flatMap(r=>vu(t,r)?[r.config]:[])}function G2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function Z2(t,e){let r=G2(e);if(r){if(Qs(t,r.error),r.error instanceof kt)throw r.error;return}let n=H2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){U2(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 XE(t,e){try{Z2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function B2(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 W2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){nr(t);return}if(B2(t,e)){nr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){nr(t);return}}catch(r){throw Qs(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);XE(t,r??[])}catch(r){if(Qs(t,r),r instanceof kt)throw r}}async function V2(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){YE(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 fi(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 Qs(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}YE(r,e),XE(t,s??[])}function K2(t,e){if(typeof e=="string")return Ak(e,t.workspaceRoot??process.cwd())}function J2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function QE(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=K2(r,i?.embeddedConfig);if(J2(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(!ro({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=aa({state:r,domain:qe(s),forceNew:!0}),u=q2(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??N,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>JE(r,s)},m;if(a)m=W2(h,a);else{let g=r.credentials;g?m=(o?.discover??xu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(b=>V2(h,b)).catch(b=>{if(!(b instanceof kt)){Qs(h,b);return}throw b}):(xt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),nr(h),m=Promise.resolve())}return la({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>JE(r,s)})}import{logger as Y2}from"@hermes/logger";var ju=Y2.child({prefix:"pi-mcp"}),eT=3,tT=6e4,X2=1e3,Q2=8e3;function Im(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??tn,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??N,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return ju.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=rn({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=D(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<tT?g.count+1:1,b=r.currentLoad?.latestPi??e;if(v>eT)return ju.warn(`augment:mcp-restart-server: ${f} exceeded ${eT} restarts within ${tT}ms; rejecting`),c(b,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let w=Math.min(X2*2**(v-1),Q2);return(v>1?a(w):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||D(r,f)!==h||rn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return ju.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,b)}).catch(_=>{let C=`Live MCP restart-server failed for ${f}: ${_ instanceof Error?_.message:String(_)}`;ju.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(b,r)})}import{logger as e4}from"@hermes/logger";var ea=e4.child({prefix:"pi-mcp"}),t4=/^\d+$/,Om=1,rT="AUGMENT_ACTIVE_SPACE_ID",r4="augment-mcp-access-token-";function Fu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function nT(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 Uu=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??md}_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(r4)&&Object.hasOwn(process.env,rT)&&(r.active_space_id=process.env[rT]??""),r}getSecret(e){let r=Fu(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=Fu(e),s=(await this._callUpsert({name:o,value:r,scope:Om,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!t4.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),ea.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Fu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Om}),ea.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=Fu(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===Om||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:nT(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&&ea.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:nT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return ea.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return ea.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 zm(t){return{latestPi:t}}import{logger as n4}from"@hermes/logger";var oi=n4.child({prefix:"pi-mcp"});async function o4(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"}}),ke({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function i4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function s4(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"}),oi.warn(a);return}try{let a=eo(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"}),oi.warn(c);return}}function a4(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=s4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function c4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function oT(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 oi.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&&c4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=o4(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;i4(r,s.diagnostics);let{servers:l,blockedNames:f}=a4(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(oi.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&&vu(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)}`;oi.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var we=u4.child({prefix:"pi-mcp"}),uT="augment:mcp-oauth-credentials",iT="augment:mcp-header-secrets",sT="augment:mcp-header-secret-failures",Nm="augment:mcp-oauth-failures",aT="augment:credentials",d4="augment:mcp-config-ids",cT="augment:mcp-configs",l4="augment:mcp-vfs-servers",f4="augment:mcp-add-server",p4="augment:mcp-restart-server",h4="augment:mcp-remove-server",m4="augment:cloud-mode";function g4(t){if(!t.secretsClient||t.tokens instanceof yi)return;let e=t.tokens;t.tokens=new yi(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),we.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function y4(t){if(!t||typeof t!="object"){we.warn(`${uT} 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 Dm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=nn(n),i=rn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&dT({state:t,name:r,revision:o})&&!lT({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 we.warn(s),t.diagnostics.push({server:r,message:s}),!1}function v4(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){we.warn("MCP restart credentials must contain exactly the target entry");return}let u=rn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){we.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){Ck({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Dm(r,n))return;let i=Object.keys(n.credentials).map(c=>({name:c,server:r.servers.get(c),lease:D(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||D(r,d)!==f)||n.restart&&!Dm(r,n))return;let c=R4({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))){Im({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&D(r,d)===f)&&Dm(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";we.warn(d),r.diagnostics.push({server:u.serverName,message:d})}}};if(s.size===0){a();return}Promise.allSettled(s).then(a)}function _4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(uT,r=>{let n=y4(r);n&&v4({pi:t,state:e,payload:n})}))}function dT(t){let{state:e,name:r,revision:n}=t,o=dn(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 lT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function S4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=nn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(lT({state:e,revision:a})){ig({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(dT({state:e,name:i,revision:a})){o[i]=s;continue}ng({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function w4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=nn(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 b4(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=D(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"&&tn(s,r,i).catch(()=>{}).finally(()=>{N(i,r),Se(r)})}}function R4(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=S4({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=Su(r.tokens,i,s);return w4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),b4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function C4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(iT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${iT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);Uy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(sT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${sT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Hy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Nm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${Nm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${Nm} entries is not an object`);return}Um(e,n.entries)}))}function P4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(aT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${aT} 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 Uu(e.credentials),g4(e)}),t.events.on(d4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Ru(e.currentLoad?.latestPi??t,e),Js({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(n=>{we.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;Se(e),Yo(n,e)})}))}function fT(t,e){e.isCloudMode||e.mcpAttachCloudSignaled||!e.credentials||Js({pi:t,state:e,data:{configIds:void 0,productType:"cli"},productType:"cli"}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(r=>{we.warn(`CLI registry discovery failed: ${r instanceof Error?r.message:String(r)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{Se(e)})}function x4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(m4,r=>{let n=r;if(typeof n?.enabled!="boolean")return;let o=e.isCloudMode;e.isCloudMode=n.enabled,o&&!n.enabled&&(e.mcpAttachCloudSignaled=!1,fT(e.currentLoad?.latestPi??t,e))}))}function k4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(cT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${cT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Qo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{we.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}we.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function E4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(l4,r=>{oT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function pT(t,e){Ir(e)?(ir(t),ma(t)):Sg(t,e),Se(e)}function T4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(f4,r=>{let n=()=>QE({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(o=>{we.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Yo(o,e)})}))}function A4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(p4,r=>{let n=()=>Im({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{Se(e)})}))}function M4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(h4,r=>{let n=()=>ku({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).catch(o=>{we.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),Yo(o,e)})}))}function Vee(t){return Fy(t)}function $4(t,e,r){e.connectStarted=!0,pi()&&ir(r);let{servers:n,diagnostics:o}=to(t.cwd,t.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let s of o)e.diagnostics.push(s),we.warn(s.message);let i=Ke(n,e,r).then(()=>_k(e)).catch(s=>{we.info("MCP driver-level connection pass rejected",{error:s instanceof Error?s.message:String(s)})}).finally(()=>{N(e.currentLoad?.latestPi??r,e),Se(e),fT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function I4(t,e){if(!t.initialConnectPromise)return;let r,n=new Promise(o=>{r=setTimeout(o,1e4)});try{await Promise.race([t.initialConnectPromise,n])}catch(o){we.info("Initial MCP connection failed or rejected during ACP readiness wait",{error:o instanceof Error?o.message:String(o)})}finally{r&&clearTimeout(r)}pT(e,t)}var hT=t=>{let e=ee();e.currentLoad=zm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;GE(t,e),Vk(t,e),_4(t,e),C4(t,e),P4(t,e),k4(t,e),E4(t,e),T4(t,e),A4(t,e),M4(t,e),x4(t,e),BE(t,e),kk(t,e),Ru(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=zm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,VE(e),e.connectStarted?pT(t,e):$4(o,e,t),o.mode==="acp"&&await I4(e,t),r||(r=!0,t.events.emit(yE,bE(t,e)))}),t.on("session_shutdown",()=>{KE(e)})};gg(hT);var Kee=hT;export{Kee as default,Vee as setMcpErrorReporter};
149
+ `)}function z2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Am.includes(e))return e}async function N2(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=Ks([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function GE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Am.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 qE(n,e,s=>Ks([s],e,t),{classify:s=>RE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>CE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>PE({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)=>uE({serverName:s,state:e,pi:t,controller:a}));return}let i=z2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Am.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(O2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await N2(n,e,t)}})}import{logger as D2}from"@hermes/logger";var ZE=D2.child({prefix:"pi-mcp"}),Mm="augment:feature-flags";function L2(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 BE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Mm,r=>{let n=L2(r);if(n===void 0){ZE.warn(`${Mm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,ZE.debug(`Received feature-flag snapshot via ${Mm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as j2}from"@hermes/logger";var Xs=j2.child({prefix:"pi-mcp"}),WE=300*1e3,$m=600*1e3;function F2(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&&(Si(o,e)||o.expiresAt>e+$m||(Xs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${$m}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Xs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Xs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function VE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{F2(t)},WE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Xs.debug(`Started background MCP OAuth refresh loop (interval ${WE}ms, buffer ${$m}ms)`)}function KE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Xs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as U2}from"@hermes/logger";var kt=U2.child({prefix:"pi-mcp"});function q2(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 H2(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 JE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function YE(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),kt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Qs(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(kt.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 G2(t,e){return e.flatMap(r=>vu(t,r)?[r.config]:[])}function Z2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function B2(t,e){let r=Z2(e);if(r){if(Qs(t,r.error),r.error instanceof Et)throw r.error;return}let n=G2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){q2(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 XE(t,e){try{B2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function W2(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 kt.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 kt.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 V2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){nr(t);return}if(W2(t,e)){nr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){nr(t);return}}catch(r){throw Qs(t,r),r}kt.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);XE(t,r??[])}catch(r){if(Qs(t,r),r instanceof Et)throw r}}async function K2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){nr(t),kt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){YE(r,e),kt.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 fi(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 Qs(t,a),a}kt.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}YE(r,e),XE(t,s??[])}function J2(t,e){if(typeof e=="string")return Ak(e,t.workspaceRoot??process.cwd())}function Y2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function QE(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return kt.warn("augment:mcp-add-server payload missing configId"),Promise.resolve();let a=J2(r,i?.embeddedConfig);if(Y2(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return kt.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return kt.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=aa({state:r,domain:qe(s),forceNew:!0}),u=H2(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??N,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>JE(r,s)},m;if(a)m=V2(h,a);else{let g=r.credentials;g?m=(o?.discover??xu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>K2(h,w)).catch(w=>{if(!(w instanceof Et)){Qs(h,w);return}throw w}):(kt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),nr(h),m=Promise.resolve())}return la({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>JE(r,s)})}import{logger as X2}from"@hermes/logger";var ju=X2.child({prefix:"pi-mcp"}),eT=3,tT=6e4,Q2=1e3,e4=8e3;function Im(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??tn,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??N,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return ju.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=rn({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=D(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<tT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>eT)return ju.warn(`augment:mcp-restart-server: ${f} exceeded ${eT} restarts within ${tT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(Q2*2**(v-1),e4);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||D(r,f)!==h||rn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return ju.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,w)}).catch(_=>{let C=`Live MCP restart-server failed for ${f}: ${_ instanceof Error?_.message:String(_)}`;ju.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as t4}from"@hermes/logger";var ea=t4.child({prefix:"pi-mcp"}),r4=/^\d+$/,Om=1,rT="AUGMENT_ACTIVE_SPACE_ID",n4="augment-mcp-access-token-";function Fu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function nT(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 Uu=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??md}_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(n4)&&Object.hasOwn(process.env,rT)&&(r.active_space_id=process.env[rT]??""),r}getSecret(e){let r=Fu(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=Fu(e),s=(await this._callUpsert({name:o,value:r,scope:Om,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!r4.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),ea.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Fu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Om}),ea.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=Fu(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===Om||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:nT(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&&ea.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:nT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return ea.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return ea.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 zm(t){return{latestPi:t}}import{logger as o4}from"@hermes/logger";var oi=o4.child({prefix:"pi-mcp"});async function i4(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"}}),ke({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function s4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function a4(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"}),oi.warn(a);return}try{let a=eo(r,n);return{...a.type==="stdio"?Zt(a,s):Gt(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof Tt?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"}),oi.warn(c);return}}function c4(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=a4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function u4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function oT(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 oi.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&&u4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=i4(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;s4(r,s.diagnostics);let{servers:l,blockedNames:f}=c4(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(oi.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&&vu(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)}`;oi.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var we=d4.child({prefix:"pi-mcp"}),uT="augment:mcp-oauth-credentials",iT="augment:mcp-header-secrets",sT="augment:mcp-header-secret-failures",Nm="augment:mcp-oauth-failures",aT="augment:credentials",l4="augment:mcp-config-ids",cT="augment:mcp-configs",f4="augment:mcp-vfs-servers",p4="augment:mcp-add-server",h4="augment:mcp-restart-server",m4="augment:mcp-remove-server",g4="augment:cloud-mode";function y4(t){if(!t.secretsClient||t.tokens instanceof yi)return;let e=t.tokens;t.tokens=new yi(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),we.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function v4(t){if(!t||typeof t!="object"){we.warn(`${uT} 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 Dm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=nn(n),i=rn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&dT({state:t,name:r,revision:o})&&!lT({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 we.warn(s),t.diagnostics.push({server:r,message:s}),!1}function _4(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){we.warn("MCP restart credentials must contain exactly the target entry");return}let u=rn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){we.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){Ck({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Dm(r,n))return;let i=Object.keys(n.credentials).map(c=>({name:c,server:r.servers.get(c),lease:D(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||D(r,d)!==f)||n.restart&&!Dm(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))){Im({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&D(r,d)===f)&&Dm(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";we.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(uT,r=>{let n=v4(r);n&&_4({pi:t,state:e,payload:n})}))}function dT(t){let{state:e,name:r,revision:n}=t,o=dn(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 lT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function w4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=nn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(lT({state:e,revision:a})){ig({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(dT({state:e,name:i,revision:a})){o[i]=s;continue}ng({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function b4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=nn(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 R4(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=D(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"&&tn(s,r,i).catch(()=>{}).finally(()=>{N(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=w4({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=Su(r.tokens,i,s);return b4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),R4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function P4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(iT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${iT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);Uy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(sT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${sT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Hy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Nm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${Nm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${Nm} entries is not an object`);return}Um(e,n.entries)}))}function x4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(aT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${aT} 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 Uu(e.credentials),y4(e)}),t.events.on(l4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Ru(e.currentLoad?.latestPi??t,e),Js({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(n=>{we.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;Se(e),Yo(n,e)})}))}function fT(t,e){e.isCloudMode!==!1||e.mcpAttachCloudSignaled||!e.credentials||Js({pi:t,state:e,data:{configIds:void 0,productType:"cli"},productType:"cli"}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(r=>{we.warn(`CLI registry discovery failed: ${r instanceof Error?r.message:String(r)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{Se(e)})}function k4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(g4,r=>{let n=r;if(typeof n?.enabled!="boolean")return;let o=e.isCloudMode;e.isCloudMode=n.enabled,o!==!1&&!n.enabled&&(o&&(e.mcpAttachCloudSignaled=!1),e.connectStarted&&e.initialConnectPromise===null&&fT(e.currentLoad?.latestPi??t,e))}))}function E4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(cT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${cT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Qo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{we.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}we.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function T4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(f4,r=>{oT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function pT(t,e){Ir(e)?(ir(t),ma(t)):Sg(t,e),Se(e)}function A4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(p4,r=>{let n=()=>QE({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(o=>{we.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Yo(o,e)})}))}function M4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(h4,r=>{let n=()=>Im({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{Se(e)})}))}function $4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(m4,r=>{let n=()=>ku({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).catch(o=>{we.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),Yo(o,e)})}))}function Kee(t){return Fy(t)}function I4(t,e,r){e.connectStarted=!0,pi()&&ir(r);let{servers:n,diagnostics:o}=to(t.cwd,t.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let s of o)e.diagnostics.push(s),we.warn(s.message);let i=Ke(n,e,r).then(()=>_k(e)).catch(s=>{we.info("MCP driver-level connection pass rejected",{error:s instanceof Error?s.message:String(s)})}).finally(()=>{N(e.currentLoad?.latestPi??r,e),Se(e),fT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function O4(t,e){if(!t.initialConnectPromise)return;let r,n=new Promise(o=>{r=setTimeout(o,1e4)});try{await Promise.race([t.initialConnectPromise,n])}catch(o){we.info("Initial MCP connection failed or rejected during ACP readiness wait",{error:o instanceof Error?o.message:String(o)})}finally{r&&clearTimeout(r)}pT(e,t)}var hT=t=>{let e=ee();e.currentLoad=zm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;GE(t,e),Vk(t,e),S4(t,e),P4(t,e),x4(t,e),E4(t,e),T4(t,e),A4(t,e),M4(t,e),$4(t,e),k4(t,e),BE(t,e),kk(t,e),Ru(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=zm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,VE(e),e.connectStarted?pT(t,e):I4(o,e,t),o.mode==="acp"&&await O4(e,t),r||(r=!0,t.events.emit(yE,bE(t,e)))}),t.on("session_shutdown",()=>{KE(e)})};gg(hT);var Jee=hT;export{Jee as default,Kee as setMcpErrorReporter};
150
150
  /*! Bundled license information:
151
151
 
152
152
  content-type/index.js: