@augmentcode/auggie 1.2.0-prerelease.202610211516 → 1.2.0-prerelease.202610221215

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,29 +1,29 @@
1
- var _T=Object.create;var Hu=Object.defineProperty;var ST=Object.getOwnPropertyDescriptor;var wT=Object.getOwnPropertyNames;var bT=Object.getPrototypeOf,RT=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}},Gu=(t,e)=>{for(var r in e)Hu(t,r,{get:e[r],enumerable:!0})},CT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of wT(e))!RT.call(t,o)&&o!==r&&Hu(t,o,{get:()=>e[o],enumerable:!(n=ST(e,o))||n.enumerable});return t};var ra=(t,e,r)=>(r=t!=null?_T(bT(t)):{},CT(e||!t||!t.__esModule?Hu(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 Ob(t,...e){let r=[t[0]],n=0;for(;n<e.length;)xf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=Ob;var Pf=new wt("+");function zb(t,...e){let r=[ts(t[0])],n=0;for(;n<e.length;)r.push(Pf),xf(r,e[n]),r.push(Pf,ts(t[++n]));return iN(r),new wt(r)}J.str=zb;function xf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(cN(e))}J.addCodeArg=xf;function iN(t){let e=1;for(;e<t.length-1;){if(t[e]===Pf){let r=sN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function sN(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 aN(t,e){return e.emptyStr()?t:t.emptyStr()?e:zb`${t}${e}`}J.strConcat=aN;function cN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ts(Array.isArray(t)?t.join(","):t)}function uN(t){return new wt(ts(t))}J.stringify=uN;function ts(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ts;function dN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):Ob`[${t}]`}J.getProperty=dN;function lN(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=lN;function fN(t){return new wt(t.toString())}J.regexpCode=fN});var Tf=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.ValueScope=rt.ValueScopeName=rt.Scope=rt.varKinds=rt.UsedValueState=void 0;var tt=rs(),kf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},vc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(vc||(rt.UsedValueState=vc={}));rt.varKinds={const:new tt.Name("const"),let:new tt.Name("let"),var:new tt.Name("var")};var _c=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof tt.Name?e:this.name(e)}name(e){return new tt.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}}};rt.Scope=_c;var Sc=class extends tt.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,tt._)`.${new tt.Name(r)}[${n}]`}};rt.ValueScopeName=Sc;var pN=(0,tt._)`\n`,Ef=class extends _c{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?pN:tt.nil}}get(){return this._scope}name(e){return new Sc(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,tt._)`${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=tt.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,vc.Started);let d=r(u);if(d){let l=this.opts.es5?rt.varKinds.var:rt.varKinds.const;i=(0,tt._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,tt._)`${i}${d}${this.opts._n}`;else throw new kf(u);c.set(u,vc.Completed)})}return i}};rt.ValueScope=Ef});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=Tf(),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 Cc=Tf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return Cc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return Cc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return Cc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return Cc.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}},Af=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:{}}},wc=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 Rc(e,this.rhs)}},Mf=class extends wc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},$f=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},If=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Of=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},zf=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)||(hN(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}},Nf=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(Nb(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 Rc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var Df=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)}},Lf=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=Rc(super.names,this.from);return Rc(e,this.to)}},bc=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 jf=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 Ff=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 Nf]}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 Af(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 wc(e,r,n))}add(e,r){return this._leafNode(new Mf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new zf(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 Df(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 Lf(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 bc("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 bc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new $f(e))}break(e){return this._leafNode(new If(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 jf;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 Of(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=Ff;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Rc(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 hN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Nb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Uf(t)}`}F.not=Nb;var mN=Db(F.operators.AND);function gN(...t){return t.reduce(mN)}F.and=gN;var yN=Db(F.operators.OR);function vN(...t){return t.reduce(yN)}F.or=vN;function Db(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Uf(e)} ${t} ${Uf(r)}`}function Uf(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(),_N=rs();function SN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=SN;function wN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Fb(t,e),!Ub(e,t.self.RULES.all))}U.alwaysValidSchema=wN;function Fb(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]||Gb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Fb;function Ub(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Ub;function bN(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=bN;function RN({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=RN;function CN(t){return qb(decodeURIComponent(t))}U.unescapeFragment=CN;function PN(t){return encodeURIComponent(Hf(t))}U.escapeFragment=PN;function Hf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Hf;function qb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=qb;function xN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=xN;function Lb({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:Lb({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} || {}`),Gf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Hb}),items:Lb({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 Hb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Gf(t,r,e),r}U.evaluatedPropsToName=Hb;function Gf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Gf;var jb={};function kN(t,e){return t.scopeValue("func",{ref:e,code:jb[e.code]||(jb[e.code]=new _N._Code(e.code))})}U.useFunc=kN;var qf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(qf||(U.Type=qf={}));function EN(t,e,r){if(t instanceof se.Name){let n=e===qf.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():"/"+Hf(t)}U.getErrorPath=EN;function Gb(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=Gb});var hr=P(Zf=>{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});var Fe=j(),TN={data:new Fe.Name("data"),valCxt:new Fe.Name("valCxt"),instancePath:new Fe.Name("instancePath"),parentData:new Fe.Name("parentData"),parentDataProperty:new Fe.Name("parentDataProperty"),rootData:new Fe.Name("rootData"),dynamicAnchors:new Fe.Name("dynamicAnchors"),vErrors:new Fe.Name("vErrors"),errors:new Fe.Name("errors"),this:new Fe.Name("this"),self:new Fe.Name("self"),scope:new Fe.Name("scope"),json:new Fe.Name("json"),jsonPos:new Fe.Name("jsonPos"),jsonLen:new Fe.Name("jsonLen"),jsonPart:new Fe.Name("jsonPart")};Zf.default=TN});var cs=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.extendErrors=Ue.resetErrorsCount=Ue.reportExtraError=Ue.reportError=Ue.keyword$DataError=Ue.keywordError=void 0;var W=j(),Pc=B(),Ze=hr();Ue.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Ue.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 AN(t,e=Ue.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Wb(t,e,r);n??(s||a)?Zb(i,c):Bb(o,(0,W._)`[${c}]`)}Ue.reportError=AN;function MN(t,e=Ue.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Wb(t,e,r);Zb(o,a),i||s||Bb(n,Ze.default.vErrors)}Ue.reportExtraError=MN;function $N(t,e){t.assign(Ze.default.errors,e),t.if((0,W._)`${Ze.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,W._)`${Ze.default.vErrors}.length`,e),()=>t.assign(Ze.default.vErrors,null)))}Ue.resetErrorsCount=$N;function IN({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,Ze.default.errors,a=>{t.const(s,(0,W._)`${Ze.default.vErrors}[${a}]`),t.if((0,W._)`${s}.instancePath === undefined`,()=>t.assign((0,W._)`${s}.instancePath`,(0,W.strConcat)(Ze.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))})}Ue.extendErrors=IN;function Zb(t,e){let r=t.const("err",e);t.if((0,W._)`${Ze.default.vErrors} === null`,()=>t.assign(Ze.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${Ze.default.vErrors}.push(${r})`),t.code((0,W._)`${Ze.default.errors}++`)}function Bb(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 Wb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:ON(t,e,r)}function ON(t,e,r={}){let{gen:n,it:o}=t,i=[zN(o,r),NN(t,r)];return DN(t,e,i),n.object(...i)}function zN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Pc.getErrorPath)(e,Pc.Type.Str)}`:t;return[Ze.default.instancePath,(0,W.strConcat)(Ze.default.instancePath,r)]}function NN({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,Pc.getErrorPath)(r,Pc.Type.Str)}`),[Tn.schemaPath,o]}function DN(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}`],[Ze.default.data,i]),u&&n.push([Tn.propertyName,u])}});var Kb=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var LN=cs(),jN=j(),FN=hr(),UN={message:"boolean schema is false"};function qN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Vb(t,!1):typeof r=="object"&&r.$async===!0?e.return(FN.default.data):(e.assign((0,jN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=qN;function HN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Vb(t)):r.var(e,!0)}ko.boolOrEmptySchema=HN;function Vb(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,LN.reportError)(o,UN,void 0,e)}});var Bf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var GN=["string","number","integer","boolean","null","object","array"],ZN=new Set(GN);function BN(t){return typeof t=="string"&&ZN.has(t)}Eo.isJSONType=BN;function WN(){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=WN});var Wf=P(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.shouldUseRule=Wr.shouldUseGroup=Wr.schemaHasRulesForType=void 0;function VN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Jb(t,n)}Wr.schemaHasRulesForType=VN;function Jb(t,e){return e.rules.some(r=>Yb(t,r))}Wr.shouldUseGroup=Jb;function Yb(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=Yb});var us=P(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.reportTypeError=qe.checkDataTypes=qe.checkDataType=qe.coerceAndCheckDataType=qe.getJSONTypes=qe.getSchemaTypes=qe.DataType=void 0;var KN=Bf(),JN=Wf(),YN=cs(),L=j(),Xb=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(qe.DataType=To={}));function XN(t){let e=Qb(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}qe.getSchemaTypes=XN;function Qb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(KN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}qe.getJSONTypes=Qb;function QN(t,e){let{gen:r,data:n,opts:o}=t,i=eD(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,JN.schemaHasRulesForType)(t,e[0]));if(s){let a=Kf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?tD(t,e,i):Jf(t)})}return s}qe.coerceAndCheckDataType=QN;var eR=new Set(["string","number","integer","boolean","null"]);function eD(t,e){return e?t.filter(r=>eR.has(r)||e==="array"&&r==="array"):[]}function tD(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(Kf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(eR.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Jf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),rD(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 ST=Object.create;var Hu=Object.defineProperty;var wT=Object.getOwnPropertyDescriptor;var bT=Object.getOwnPropertyNames;var RT=Object.getPrototypeOf,CT=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}},Gu=(t,e)=>{for(var r in e)Hu(t,r,{get:e[r],enumerable:!0})},PT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of bT(e))!CT.call(t,o)&&o!==r&&Hu(t,o,{get:()=>e[o],enumerable:!(n=wT(e,o))||n.enumerable});return t};var ra=(t,e,r)=>(r=t!=null?ST(RT(t)):{},PT(e||!t||!t.__esModule?Hu(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 zb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)kf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=zb;var xf=new wt("+");function Nb(t,...e){let r=[ts(t[0])],n=0;for(;n<e.length;)r.push(xf),kf(r,e[n]),r.push(xf,ts(t[++n]));return aN(r),new wt(r)}J.str=Nb;function kf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(dN(e))}J.addCodeArg=kf;function aN(t){let e=1;for(;e<t.length-1;){if(t[e]===xf){let r=cN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function cN(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 uN(t,e){return e.emptyStr()?t:t.emptyStr()?e:Nb`${t}${e}`}J.strConcat=uN;function dN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ts(Array.isArray(t)?t.join(","):t)}function lN(t){return new wt(ts(t))}J.stringify=lN;function ts(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ts;function fN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):zb`[${t}]`}J.getProperty=fN;function pN(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=pN;function hN(t){return new wt(t.toString())}J.regexpCode=hN});var Af=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.ValueScope=rt.ValueScopeName=rt.Scope=rt.varKinds=rt.UsedValueState=void 0;var tt=rs(),Ef=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},vc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(vc||(rt.UsedValueState=vc={}));rt.varKinds={const:new tt.Name("const"),let:new tt.Name("let"),var:new tt.Name("var")};var _c=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof tt.Name?e:this.name(e)}name(e){return new tt.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}}};rt.Scope=_c;var Sc=class extends tt.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,tt._)`.${new tt.Name(r)}[${n}]`}};rt.ValueScopeName=Sc;var mN=(0,tt._)`\n`,Tf=class extends _c{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?mN:tt.nil}}get(){return this._scope}name(e){return new Sc(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,tt._)`${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=tt.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,vc.Started);let d=r(u);if(d){let l=this.opts.es5?rt.varKinds.var:rt.varKinds.const;i=(0,tt._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,tt._)`${i}${d}${this.opts._n}`;else throw new Ef(u);c.set(u,vc.Completed)})}return i}};rt.ValueScope=Tf});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=Af(),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 Cc=Af();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return Cc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return Cc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return Cc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return Cc.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}},Mf=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:{}}},wc=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 Rc(e,this.rhs)}},$f=class extends wc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},If=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Of=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},zf=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Nf=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)||(gN(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}},Df=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(Db(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 Rc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var Lf=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)}},jf=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=Rc(super.names,this.from);return Rc(e,this.to)}},bc=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 Ff=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 Uf=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 Df]}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 Mf(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 wc(e,r,n))}add(e,r){return this._leafNode(new $f(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Nf(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 Lf(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 jf(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 bc("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 bc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new If(e))}break(e){return this._leafNode(new Of(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 Ff;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 zf(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=Uf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Rc(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 gN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Db(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${qf(t)}`}F.not=Db;var yN=Lb(F.operators.AND);function vN(...t){return t.reduce(yN)}F.and=vN;var _N=Lb(F.operators.OR);function SN(...t){return t.reduce(_N)}F.or=SN;function Lb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${qf(e)} ${t} ${qf(r)}`}function qf(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(),wN=rs();function bN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=bN;function RN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Ub(t,e),!qb(e,t.self.RULES.all))}U.alwaysValidSchema=RN;function Ub(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]||Zb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Ub;function qb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=qb;function CN(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=CN;function PN({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=PN;function xN(t){return Hb(decodeURIComponent(t))}U.unescapeFragment=xN;function kN(t){return encodeURIComponent(Gf(t))}U.escapeFragment=kN;function Gf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Gf;function Hb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Hb;function EN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=EN;function jb({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:jb({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} || {}`),Zf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Gb}),items:jb({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 Gb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Zf(t,r,e),r}U.evaluatedPropsToName=Gb;function Zf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Zf;var Fb={};function TN(t,e){return t.scopeValue("func",{ref:e,code:Fb[e.code]||(Fb[e.code]=new wN._Code(e.code))})}U.useFunc=TN;var Hf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Hf||(U.Type=Hf={}));function AN(t,e,r){if(t instanceof se.Name){let n=e===Hf.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():"/"+Gf(t)}U.getErrorPath=AN;function Zb(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=Zb});var hr=P(Bf=>{"use strict";Object.defineProperty(Bf,"__esModule",{value:!0});var Fe=j(),MN={data:new Fe.Name("data"),valCxt:new Fe.Name("valCxt"),instancePath:new Fe.Name("instancePath"),parentData:new Fe.Name("parentData"),parentDataProperty:new Fe.Name("parentDataProperty"),rootData:new Fe.Name("rootData"),dynamicAnchors:new Fe.Name("dynamicAnchors"),vErrors:new Fe.Name("vErrors"),errors:new Fe.Name("errors"),this:new Fe.Name("this"),self:new Fe.Name("self"),scope:new Fe.Name("scope"),json:new Fe.Name("json"),jsonPos:new Fe.Name("jsonPos"),jsonLen:new Fe.Name("jsonLen"),jsonPart:new Fe.Name("jsonPart")};Bf.default=MN});var cs=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.extendErrors=Ue.resetErrorsCount=Ue.reportExtraError=Ue.reportError=Ue.keyword$DataError=Ue.keywordError=void 0;var W=j(),Pc=B(),Ze=hr();Ue.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Ue.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function $N(t,e=Ue.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Vb(t,e,r);n??(s||a)?Bb(i,c):Wb(o,(0,W._)`[${c}]`)}Ue.reportError=$N;function IN(t,e=Ue.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Vb(t,e,r);Bb(o,a),i||s||Wb(n,Ze.default.vErrors)}Ue.reportExtraError=IN;function ON(t,e){t.assign(Ze.default.errors,e),t.if((0,W._)`${Ze.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,W._)`${Ze.default.vErrors}.length`,e),()=>t.assign(Ze.default.vErrors,null)))}Ue.resetErrorsCount=ON;function zN({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,Ze.default.errors,a=>{t.const(s,(0,W._)`${Ze.default.vErrors}[${a}]`),t.if((0,W._)`${s}.instancePath === undefined`,()=>t.assign((0,W._)`${s}.instancePath`,(0,W.strConcat)(Ze.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))})}Ue.extendErrors=zN;function Bb(t,e){let r=t.const("err",e);t.if((0,W._)`${Ze.default.vErrors} === null`,()=>t.assign(Ze.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${Ze.default.vErrors}.push(${r})`),t.code((0,W._)`${Ze.default.errors}++`)}function Wb(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 Vb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:NN(t,e,r)}function NN(t,e,r={}){let{gen:n,it:o}=t,i=[DN(o,r),LN(t,r)];return jN(t,e,i),n.object(...i)}function DN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Pc.getErrorPath)(e,Pc.Type.Str)}`:t;return[Ze.default.instancePath,(0,W.strConcat)(Ze.default.instancePath,r)]}function LN({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,Pc.getErrorPath)(r,Pc.Type.Str)}`),[Tn.schemaPath,o]}function jN(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}`],[Ze.default.data,i]),u&&n.push([Tn.propertyName,u])}});var Jb=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var FN=cs(),UN=j(),qN=hr(),HN={message:"boolean schema is false"};function GN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Kb(t,!1):typeof r=="object"&&r.$async===!0?e.return(qN.default.data):(e.assign((0,UN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=GN;function ZN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Kb(t)):r.var(e,!0)}ko.boolOrEmptySchema=ZN;function Kb(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,FN.reportError)(o,HN,void 0,e)}});var Wf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var BN=["string","number","integer","boolean","null","object","array"],WN=new Set(BN);function VN(t){return typeof t=="string"&&WN.has(t)}Eo.isJSONType=VN;function KN(){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=KN});var Vf=P(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.shouldUseRule=Wr.shouldUseGroup=Wr.schemaHasRulesForType=void 0;function JN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Yb(t,n)}Wr.schemaHasRulesForType=JN;function Yb(t,e){return e.rules.some(r=>Xb(t,r))}Wr.shouldUseGroup=Yb;function Xb(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=Xb});var us=P(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.reportTypeError=qe.checkDataTypes=qe.checkDataType=qe.coerceAndCheckDataType=qe.getJSONTypes=qe.getSchemaTypes=qe.DataType=void 0;var YN=Wf(),XN=Vf(),QN=cs(),L=j(),Qb=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(qe.DataType=To={}));function eD(t){let e=eR(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}qe.getSchemaTypes=eD;function eR(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(YN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}qe.getJSONTypes=eR;function tD(t,e){let{gen:r,data:n,opts:o}=t,i=rD(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,XN.schemaHasRulesForType)(t,e[0]));if(s){let a=Jf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?nD(t,e,i):Yf(t)})}return s}qe.coerceAndCheckDataType=tD;var tR=new Set(["string","number","integer","boolean","null"]);function rD(t,e){return e?t.filter(r=>tR.has(r)||e==="array"&&r==="array"):[]}function nD(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(Jf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(tR.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Yf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),oD(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 rD({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Vf(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)}}qe.checkDataType=Vf;function Kf(t,e,r,n){if(t.length===1)return Vf(t[0],e,r,n);let o,i=(0,Xb.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,Vf(s,e,r,n));return o}qe.checkDataTypes=Kf;var nD={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Jf(t){let e=oD(t);(0,YN.reportError)(e,nD)}qe.reportTypeError=Jf;function oD(t){let{gen:e,data:r,schema:n}=t,o=(0,Xb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var rR=P(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.assignDefaults=void 0;var Ao=j(),iD=B();function sD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)tR(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>tR(t,i,o.default))}xc.assignDefaults=sD;function tR(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,iD.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(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var de=j(),Yf=B(),Vr=hr(),aD=B();function cD(t,e){let{gen:r,data:n,it:o}=t;r.if(Qf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}ne.checkReportMissingProp=cD;function uD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Qf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}ne.checkMissingProp=uD;function dD(t,e){t.setParams({missingProperty:e},!0),t.error()}ne.reportMissingProp=dD;function nR(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=nR;function Xf(t,e,r){return(0,de._)`${nR(t)}.call(${e}, ${r})`}ne.isOwnProperty=Xf;function lD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Xf(t,e,r)}`:o}ne.propertyInData=lD;function Qf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Xf(t,e,r))):o}ne.noPropertyInData=Qf;function oR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ne.allSchemaProperties=oR;function fD(t,e){return oR(e).filter(r=>!(0,Yf.alwaysValidSchema)(t,e[r]))}ne.schemaProperties=fD;function pD({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})`}ne.callValidateCode=pD;var hD=(0,de._)`new RegExp`;function mD({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"?hD:(0,aD.useFunc)(t,o)}(${r}, ${n})`})}ne.usePattern=mD;function gD(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:Yf.Type.Num},i),e.if((0,de.not)(i),a)})}}ne.validateArray=gD;function yD(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,Yf.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))}ne.validateUnion=yD});var aR=P(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.validateKeywordUsage=Jt.validSchemaType=Jt.funcKeywordCode=Jt.macroKeywordCode=void 0;var Be=j(),An=hr(),vD=bt(),_D=cs();function SD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=sR(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Be.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Jt.macroKeywordCode=SD;function wD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;RD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=sR(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&&iR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&iR(t),g(()=>bD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((0,Be._)`await `),w=>n.assign(l,!1).if((0,Be._)`${w} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Be._)`${w}.errors`),()=>n.throw(w))),v}function h(){let v=(0,Be._)`${d}.errors`;return n.assign(v,null),m(Be.nil),v}function m(v=e.async?(0,Be._)`await `:Be.nil){let w=c.opts.passContext?An.default.this:An.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Be._)`${v}${(0,vD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Be.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Jt.funcKeywordCode=wD;function iR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Be._)`${n.parentData}[${n.parentDataProperty}]`))}function bD(t,e){let{gen:r}=t;r.if((0,Be._)`Array.isArray(${e})`,()=>{r.assign(An.default.vErrors,(0,Be._)`${An.default.vErrors} === null ? ${e} : ${An.default.vErrors}.concat(${e})`).assign(An.default.errors,(0,Be._)`${An.default.vErrors}.length`),(0,_D.extendErrors)(t)},()=>t.error())}function RD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function sR(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,Be.stringify)(r)})}function CD(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=CD;function PD({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=PD});var uR=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.extendSubschemaMode=Kr.extendSubschemaData=Kr.getSubschema=void 0;var Yt=j(),cR=B();function xD(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,cR.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=xD;function kD(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,cR.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=kD;function ED(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=ED});var ep=P((t3,dR)=>{"use strict";dR.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 fR=P((r3,lR)=>{"use strict";var Jr=lR.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(){};kc(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 kc(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++)kc(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)kc(t,e,r,l[p],o+"/"+d+"/"+TD(p),i,o,d,n,p)}else(d in Jr.keywords||t.allKeys&&!(d in Jr.skipKeywords))&&kc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function TD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ds=P(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.getSchemaRefs=nt.resolveUrl=nt.normalizeId=nt._getFullPath=nt.getFullPath=nt.inlineRef=void 0;var AD=B(),MD=ep(),$D=fR(),ID=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function OD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!tp(t):e?pR(t)<=e:!1}nt.inlineRef=OD;var zD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function tp(t){for(let e in t){if(zD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(tp)||typeof r=="object"&&tp(r))return!0}return!1}function pR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!ID.has(r)&&(typeof t[r]=="object"&&(0,AD.eachItem)(t[r],n=>e+=pR(n)),e===1/0))return 1/0}return e}function hR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return mR(t,n)}nt.getFullPath=hR;function mR(t,e){return t.serialize(e).split("#")[0]+"#"}nt._getFullPath=mR;var ND=/#\/?$/;function Mo(t){return t?t.replace(ND,""):""}nt.normalizeId=Mo;function DD(t,e,r){return r=Mo(r),t.resolve(e,r)}nt.resolveUrl=DD;var LD=/^[a-z_][-a-z0-9._]*$/i;function jD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=hR(n,o,!1),a={},c=new Set;return $D(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(!LD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!MD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}nt.getSchemaRefs=jD});var ps=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getData=Yr.KeywordCxt=Yr.validateFunctionCode=void 0;var SR=Kb(),gR=us(),np=Wf(),Ec=us(),FD=rR(),fs=aR(),rp=uR(),A=j(),z=hr(),UD=ds(),mr=B(),ls=cs();function qD(t){if(RR(t)&&(CR(t),bR(t))){ZD(t);return}wR(t,()=>(0,SR.topBoolOrEmptySchema)(t))}Yr.validateFunctionCode=qD;function wR({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"; ${yR(r,o)}`),GD(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${HD(o)}`,n.$async,()=>t.code(yR(r,o)).code(i))}function HD(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 GD(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 ZD(t){let{schema:e,opts:r,gen:n}=t;wR(t,()=>{r.$comment&&e.$comment&&xR(t),JD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&BD(t),PR(t),QD(t)})}function BD(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 yR(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 WD(t,e){if(RR(t)&&(CR(t),bR(t))){VD(t,e);return}(0,SR.boolOrEmptySchema)(t,e)}function bR({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 RR(t){return typeof t.schema!="boolean"}function VD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&xR(t),YD(t),XD(t);let i=n.const("_errs",z.default.errors);PR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function CR(t){(0,mr.checkUnknownRules)(t),KD(t)}function PR(t,e){if(t.opts.jtd)return vR(t,[],!1,e);let r=(0,gR.getSchemaTypes)(t.schema),n=(0,gR.coerceAndCheckDataType)(t,r);vR(t,r,!n,e)}function KD(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,mr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function JD(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,mr.checkStrictMode)(t,"default is ignored in the schema root")}function YD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,UD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function XD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function xR({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 QD(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&&eL(t),e.return((0,A._)`${z.default.errors} === 0`))}function eL({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 vR(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(()=>ER(t,"$ref",d.all.$ref.definition));return}c.jtd||tL(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,np.shouldUseGroup)(i,f)&&(f.type?(o.if((0,Ec.checkDataType)(f.type,s,c.strictNumbers)),_R(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,Ec.reportTypeError)(t)),o.endIf()):_R(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function _R(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,FD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,np.shouldUseRule)(n,i)&&ER(t,i.keyword,i.definition,e.type)})}function tL(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(rL(t,e),t.opts.allowUnionTypes||nL(t,e),oL(t,t.dataTypes))}function rL(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{kR(t.dataTypes,r)||op(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),sL(t,e)}}function nL(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&op(t,"use allowUnionTypes to allow union type keyword")}function oL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,np.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>iL(e,s))&&op(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function iL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function kR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function sL(t,e){let r=[];for(let n of t.dataTypes)kR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function op(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Tc=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",TR(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,Ec.checkDataTypes)(c,r,i.opts.strictNumbers,Ec.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,rp.getSubschema)(this.it,e);(0,rp.extendSubschemaData)(n,this.it,e),(0,rp.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return WD(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=Tc;function ER(t,e,r,n){let o=new Tc(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 aL=/^\/(?:[^~]|~0|~1)*$/,cL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function TR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!aL.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=cL.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=TR});var Ac=P(sp=>{"use strict";Object.defineProperty(sp,"__esModule",{value:!0});var ip=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};sp.default=ip});var hs=P(up=>{"use strict";Object.defineProperty(up,"__esModule",{value:!0});var ap=ds(),cp=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,ap.resolveUrl)(e,r,n),this.missingSchema=(0,ap.normalizeId)((0,ap.getFullPath)(e,this.missingRef))}};up.default=cp});var $c=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(),uL=Ac(),Mn=hr(),Nt=ds(),AR=B(),dL=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 lp(t){let e=MR.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:uL.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,dL.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=lp;function lL(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=hL.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]=fL.call(this,i)}Rt.resolveRef=lL;function fL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:lp.call(this,t)}function MR(t){for(let e of this._compilations)if(pL(e,t))return e}Rt.getCompilingSchema=MR;function pL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function hL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Mc.call(this,t,e)}function Mc(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 dp.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Mc.call(this,t,s);return typeof a?.schema!="object"?void 0:dp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||lp.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 dp.call(this,r,s)}}Rt.resolveSchema=Mc;var mL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function dp(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,AR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!mL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,AR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Mc.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 $R=P((c3,gL)=>{gL.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 hp=P((u3,LR)=>{"use strict";var yL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),OR=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),fp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),zR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),vL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function pp(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 _L=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function IR(t){return t.length=0,!0}function SL(t,e,r){if(t.length){let n=pp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function wL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=SL;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=IR}else{o.push(u);continue}}return o.length&&(a===IR?r.zone=o.join(""):s?n.push(o.join("")):n.push(pp(o))),r.address=n.join(""),r}function NR(t){if(bL(t,":")<2)return{host:t,isIPV6:!1};let e=wL(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 bL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function RL(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 CL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},PL=/[@/?#:]/g,xL=/[@/?#]/g;function DR(t,e){let r=e?xL:PL;return r.lastIndex=0,t.replace(r,n=>CL[n])}function kL(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(fp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&zR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function EL(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(fp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&zR(i)?e+=i:e+="%"+o,r+=2;continue}}vL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function TL(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(fp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function AL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!OR(r)){let n=NR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=DR(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}LR.exports={nonSimpleDomain:_L,recomposeAuthority:AL,reescapeHostDelimiters:DR,normalizePercentEncoding:kL,normalizePathEncoding:EL,escapePreservingEscapes:TL,removeDotSegments:RL,isIPv4:OR,isUUID:yL,normalizeIPv6:NR,stringArrayToHexStripped:pp}});var HR=P((d3,qR)=>{"use strict";var{isUUID:ML}=hp(),$L=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,IL=["http","https","ws","wss","urn","urn:uuid"];function OL(t){return IL.indexOf(t)!==-1}function mp(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 jR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function FR(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 zL(t){return t.secure=mp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function NL(t){if((t.port===(mp(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 DL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match($L);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=gp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function LL(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=gp(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 jL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!ML(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function FL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var UR={scheme:"http",domainHost:!0,parse:jR,serialize:FR},UL={scheme:"https",domainHost:UR.domainHost,parse:jR,serialize:FR},Ic={scheme:"ws",domainHost:!0,parse:zL,serialize:NL},qL={scheme:"wss",domainHost:Ic.domainHost,parse:Ic.parse,serialize:Ic.serialize},HL={scheme:"urn",parse:DL,serialize:LL,skipNormalize:!0},GL={scheme:"urn:uuid",parse:jL,serialize:FL,skipNormalize:!0},Oc={http:UR,https:UL,ws:Ic,wss:qL,urn:HL,"urn:uuid":GL};Object.setPrototypeOf(Oc,null);function gp(t){return t&&(Oc[t]||Oc[t.toLowerCase()])||void 0}qR.exports={wsIsSecure:mp,SCHEMES:Oc,isValidSchemeName:OL,getSchemeHandler:gp}});var VR=P((l3,Dc)=>{"use strict";var{normalizeIPv6:ZL,removeDotSegments:ms,recomposeAuthority:BL,normalizePercentEncoding:WL,normalizePathEncoding:VL,escapePreservingEscapes:KL,reescapeHostDelimiters:JL,isIPv4:YL,nonSimpleDomain:XL}=hp(),{SCHEMES:QL,getSchemeHandler:ZR}=HR();function ej(t,e){return typeof t=="string"?t=aj(t,e):typeof t=="object"&&(t=Nc($n(t,e),e)),t}function tj(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=zc(t,n),{parsed:s,malformedAuthorityOrPort:a}=zc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=BR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function BR(t,e,r,n){let o={};return n||(t=Nc($n(t,r),r),e=Nc($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 rj(t,e,r){let n=GR(t,r),o=GR(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=ZR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=WL(r.path):(r.path=KL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=BL(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 nj=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,oj=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,ij=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function sj(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 zc(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(oj);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(ij);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(nj);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=sj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(YL(n.host)===!1){let f=ZL(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=ZR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&XL(n.host))try{n.host=new URL("http://"+n.host).hostname}catch(l){n.error=n.error||"Host's domain name can not be converted to ASCII: "+l}if((!d||d&&!d.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=JL(unescape(n.host),i))),n.path&&(n.path=VL(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 Nc(t,e){return zc(t,e).parsed}function aj(t,e){return WR(t,e).normalized}function WR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=zc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function GR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=WR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var yp={SCHEMES:QL,normalize:ej,resolve:tj,resolveComponent:BR,equal:rj,serialize:$n,parse:Nc};Dc.exports=yp;Dc.exports.default=yp;Dc.exports.fastUri=yp});var JR=P(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var KR=VR();KR.code='require("ajv/dist/runtime/uri").default';vp.default=KR});var oC=P(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.CodeGen=De.Name=De.nil=De.stringify=De.str=De._=De.KeywordCxt=void 0;var cj=ps();Object.defineProperty(De,"KeywordCxt",{enumerable:!0,get:function(){return cj.KeywordCxt}});var Io=j();Object.defineProperty(De,"_",{enumerable:!0,get:function(){return Io._}});Object.defineProperty(De,"str",{enumerable:!0,get:function(){return Io.str}});Object.defineProperty(De,"stringify",{enumerable:!0,get:function(){return Io.stringify}});Object.defineProperty(De,"nil",{enumerable:!0,get:function(){return Io.nil}});Object.defineProperty(De,"Name",{enumerable:!0,get:function(){return Io.Name}});Object.defineProperty(De,"CodeGen",{enumerable:!0,get:function(){return Io.CodeGen}});var uj=Ac(),tC=hs(),dj=Bf(),gs=$c(),lj=j(),ys=ds(),Lc=us(),Sp=B(),YR=$R(),fj=JR(),rC=(t,e)=>new RegExp(t,e);rC.code="new RegExp";var pj=["removeAdditional","useDefaults","coerceTypes"],hj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),mj={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."},gj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},XR=200;function yj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,R,_,C,I,Q,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:rC,br=(o=t.uriResolver)!==null&&o!==void 0?o:fj.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:XR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:XR,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:(Q=t.unicodeRegExp)!==null&&Q!==void 0?Q:!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,...yj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new lj.ValueScope({scope:{},prefixes:hj,es5:r,lines:n}),this.logger=Rj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,dj.getRules)(),QR.call(this,mj,e,"NOT SUPPORTED"),QR.call(this,gj,e,"DEPRECATED","warn"),this._metaOpts=wj.call(this),e.formats&&_j.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&Sj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),vj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=YR;n==="id"&&(o={...YR},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 tC.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=eC.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=eC.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(Pj.call(this,n,r),!r)return(0,Sp.eachItem)(n,i=>_p.call(this,i)),this;kj.call(this,r);let o={...r,type:(0,Lc.getJSONTypes)(r.type),schemaType:(0,Lc.getJSONTypes)(r.schemaType)};return(0,Sp.eachItem)(n,o.type.length===0?i=>_p.call(this,i,o):i=>o.type.forEach(s=>_p.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]=nC(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=uj.default;vs.MissingRefError=tC.default;De.default=vs;function QR(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 eC(t){return t=(0,ys.normalizeId)(t),this.schemas[t]||this.refs[t]}function vj(){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 _j(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function Sj(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 wj(){let t={...this.opts};for(let e of pj)delete t[e];return t}var bj={log(){},warn(){},error(){}};function Rj(t){if(t===!1)return bj;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 Cj=/^[a-z_$][a-z0-9_$:-]*$/i;function Pj(t,e){let{RULES:r}=this;if((0,Sp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Cj.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 _p(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,Lc.getJSONTypes)(e.type),schemaType:(0,Lc.getJSONTypes)(e.schemaType)}};e.before?xj.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 xj(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 kj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=nC(e)),t.validateSchema=this.compile(e,!0))}var Ej={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function nC(t){return{anyOf:[t,Ej]}}});var iC=P(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var Tj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};wp.default=Tj});var uC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var Aj=hs(),sC=bt(),ot=j(),Oo=hr(),aC=$c(),jc=B(),Mj={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=aC.resolveRef.call(c,u,o,r);if(d===void 0)throw new Aj.default(n.opts.uriResolver,o,r);if(d instanceof aC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Fc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Fc(t,(0,ot._)`${h}.validate`,u,u.$async)}function f(h){let m=cC(t,h);Fc(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,ot.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:ot.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function cC(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ot._)`${r.scopeValue("wrapper",{ref:e})}.validate`}In.getValidate=cC;function Fc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?Oo.default.this:ot.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,ot._)`await ${(0,sC.callValidateCode)(t,e,u)}`),p(e),s||o.assign(h,!0)},m=>{o.if((0,ot._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),f(m),s||o.assign(h,!1)}),t.ok(h)}function l(){t.result((0,sC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,ot._)`${h}.errors`;o.assign(Oo.default.vErrors,(0,ot._)`${Oo.default.vErrors} === null ? ${m} : ${Oo.default.vErrors}.concat(${m})`),o.assign(Oo.default.errors,(0,ot._)`${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=jc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,ot._)`${h}.evaluated.props`);i.props=jc.mergeEvaluated.props(o,v,i.props,ot.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=jc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,ot._)`${h}.evaluated.items`);i.items=jc.mergeEvaluated.items(o,v,i.items,ot.Name)}}}In.callRef=Fc;In.default=Mj});var dC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var $j=iC(),Ij=uC(),Oj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",$j.default,Ij.default];bp.default=Oj});var lC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var Uc=j(),Xr=Uc.operators,qc={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}},zj={message:({keyword:t,schemaCode:e})=>(0,Uc.str)`must be ${qc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Uc._)`{comparison: ${qc[t].okStr}, limit: ${e}}`},Nj={keyword:Object.keys(qc),type:"number",schemaType:"number",$data:!0,error:zj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Uc._)`${r} ${qc[e].fail} ${n} || isNaN(${r})`)}};Rp.default=Nj});var fC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var _s=j(),Dj={message:({schemaCode:t})=>(0,_s.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,_s._)`{multipleOf: ${t}}`},Lj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Dj,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}))`)}};Cp.default=Lj});var hC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});function pC(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}Pp.default=pC;pC.code='require("ajv/dist/runtime/ucs2length").default'});var mC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var On=j(),jj=B(),Fj=hC(),Uj={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}}`},qj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Uj,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,jj.useFunc)(t.gen,Fj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};xp.default=qj});var gC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var Hj=bt(),Gj=B(),zo=j(),Zj={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},Bj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Zj,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,Gj.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,Hj.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};kp.default=Bj});var yC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var Ss=j(),Wj={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}}`},Vj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Wj,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}`)}};Ep.default=Vj});var vC=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var ws=bt(),bs=j(),Kj=B(),Jj={message:({params:{missingProperty:t}})=>(0,bs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,bs._)`{missingProperty: ${t}}`},Yj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Jj,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:i,it:s}=t,{opts:a}=s;if(!i&&r.length===0)return;let c=r.length>=a.loopRequired;if(s.allErrors?u():d(),a.strictRequired){let p=t.parentSchema.properties,{definedProperties:h}=t.it;for(let m of r)if(p?.[m]===void 0&&!h.has(m)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,Kj.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)}}};Tp.default=Yj});var _C=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var Rs=j(),Xj={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}}`},Qj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Xj,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}`)}};Ap.default=Qj});var Hc=P(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var SC=ep();SC.code='require("ajv/dist/runtime/equal").default';Mp.default=SC});var wC=P(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var $p=us(),Le=j(),e1=B(),t1=Hc(),r1={message:({params:{i:t,j:e}})=>(0,Le.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Le._)`{i: ${t}, j: ${e}}`},n1={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:r1,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,$p.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,Le._)`${s} === false`),t.ok(c);function d(){let h=e.let("i",(0,Le._)`${r}.length`),m=e.let("j");t.setParams({i:h,j:m}),e.assign(c,!0),e.if((0,Le._)`${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,$p.checkDataTypes)(u,g,a.opts.strictNumbers,$p.DataType.Wrong),w=e.const("indices",(0,Le._)`{}`);e.for((0,Le._)`;${h}--;`,()=>{e.let(g,(0,Le._)`${r}[${h}]`),e.if(v,(0,Le._)`continue`),u.length>1&&e.if((0,Le._)`typeof ${g} == "string"`,(0,Le._)`${g} += "_"`),e.if((0,Le._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(m,(0,Le._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,Le._)`${w}[${g}] = ${h}`)})}function p(h,m){let g=(0,e1.useFunc)(e,t1.default),v=e.name("outer");e.label(v).for((0,Le._)`;${h}--;`,()=>e.for((0,Le._)`${m} = ${h}; ${m}--;`,()=>e.if((0,Le._)`${g}(${r}[${h}], ${r}[${m}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Ip.default=n1});var bC=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var Op=j(),o1=B(),i1=Hc(),s1={message:"must be equal to constant",params:({schemaCode:t})=>(0,Op._)`{allowedValue: ${t}}`},a1={keyword:"const",$data:!0,error:s1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Op._)`!${(0,o1.useFunc)(e,i1.default)}(${r}, ${o})`):t.fail((0,Op._)`${i} !== ${r}`)}};zp.default=a1});var RC=P(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var Cs=j(),c1=B(),u1=Hc(),d1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Cs._)`{allowedValues: ${t}}`},l1={keyword:"enum",schemaType:"array",$data:!0,error:d1,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,c1.useFunc)(e,u1.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}`}}};Np.default=l1});var CC=P(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var f1=lC(),p1=fC(),h1=mC(),m1=gC(),g1=yC(),y1=vC(),v1=_C(),_1=wC(),S1=bC(),w1=RC(),b1=[f1.default,p1.default,h1.default,m1.default,g1.default,y1.default,v1.default,_1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},S1.default,w1.default];Dp.default=b1});var jp=P(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.validateAdditionalItems=void 0;var zn=j(),Lp=B(),R1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},C1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:R1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Lp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}PC(t,n)}};function PC(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,Lp.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:Lp.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Ps.validateAdditionalItems=PC;Ps.default=C1});var Fp=P(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.validateTuple=void 0;var xC=j(),Gc=B(),P1=bt(),x1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return kC(t,"additionalItems",e);r.items=!0,!(0,Gc.alwaysValidSchema)(r,e)&&t.ok((0,P1.validateArray)(t))}};function kC(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=Gc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,xC._)`${i}.length`);r.forEach((l,f)=>{(0,Gc.alwaysValidSchema)(a,l)||(n.if((0,xC._)`${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,Gc.checkStrictMode)(a,g,f.strictTuples)}}}xs.validateTuple=kC;xs.default=x1});var EC=P(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var k1=Fp(),E1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,k1.validateTuple)(t,"items")};Up.default=E1});var AC=P(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var TC=j(),T1=B(),A1=bt(),M1=jp(),$1={message:({params:{len:t}})=>(0,TC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,TC._)`{limit: ${t}}`},I1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:$1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,T1.alwaysValidSchema)(n,e)&&(o?(0,M1.validateAdditionalItems)(t,o):t.ok((0,A1.validateArray)(t)))}};qp.default=I1});var MC=P(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var Ct=j(),Zc=B(),O1={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}}`},z1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:O1,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,Zc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Zc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Zc.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:Zc.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)))}}};Hp.default=z1});var OC=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var Gp=j(),N1=B(),ks=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Gp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Gp._)`{property: ${t},
5
+ || ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function oD({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Kf(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)}}qe.checkDataType=Kf;function Jf(t,e,r,n){if(t.length===1)return Kf(t[0],e,r,n);let o,i=(0,Qb.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,Kf(s,e,r,n));return o}qe.checkDataTypes=Jf;var iD={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Yf(t){let e=sD(t);(0,QN.reportError)(e,iD)}qe.reportTypeError=Yf;function sD(t){let{gen:e,data:r,schema:n}=t,o=(0,Qb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var nR=P(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.assignDefaults=void 0;var Ao=j(),aD=B();function cD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)rR(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>rR(t,i,o.default))}xc.assignDefaults=cD;function rR(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,aD.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(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.validateUnion=ne.validateArray=ne.usePattern=ne.callValidateCode=ne.schemaProperties=ne.allSchemaProperties=ne.noPropertyInData=ne.propertyInData=ne.isOwnProperty=ne.hasPropFunc=ne.reportMissingProp=ne.checkMissingProp=ne.checkReportMissingProp=void 0;var de=j(),Xf=B(),Vr=hr(),uD=B();function dD(t,e){let{gen:r,data:n,it:o}=t;r.if(ep(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}ne.checkReportMissingProp=dD;function lD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(ep(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}ne.checkMissingProp=lD;function fD(t,e){t.setParams({missingProperty:e},!0),t.error()}ne.reportMissingProp=fD;function oR(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=oR;function Qf(t,e,r){return(0,de._)`${oR(t)}.call(${e}, ${r})`}ne.isOwnProperty=Qf;function pD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Qf(t,e,r)}`:o}ne.propertyInData=pD;function ep(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Qf(t,e,r))):o}ne.noPropertyInData=ep;function iR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ne.allSchemaProperties=iR;function hD(t,e){return iR(e).filter(r=>!(0,Xf.alwaysValidSchema)(t,e[r]))}ne.schemaProperties=hD;function mD({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})`}ne.callValidateCode=mD;var gD=(0,de._)`new RegExp`;function yD({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"?gD:(0,uD.useFunc)(t,o)}(${r}, ${n})`})}ne.usePattern=yD;function vD(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:Xf.Type.Num},i),e.if((0,de.not)(i),a)})}}ne.validateArray=vD;function _D(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,Xf.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))}ne.validateUnion=_D});var cR=P(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.validateKeywordUsage=Jt.validSchemaType=Jt.funcKeywordCode=Jt.macroKeywordCode=void 0;var Be=j(),An=hr(),SD=bt(),wD=cs();function bD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=aR(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Be.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Jt.macroKeywordCode=bD;function RD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;PD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=aR(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&&sR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&sR(t),g(()=>CD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((0,Be._)`await `),w=>n.assign(l,!1).if((0,Be._)`${w} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Be._)`${w}.errors`),()=>n.throw(w))),v}function h(){let v=(0,Be._)`${d}.errors`;return n.assign(v,null),m(Be.nil),v}function m(v=e.async?(0,Be._)`await `:Be.nil){let w=c.opts.passContext?An.default.this:An.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Be._)`${v}${(0,SD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Be.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Jt.funcKeywordCode=RD;function sR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Be._)`${n.parentData}[${n.parentDataProperty}]`))}function CD(t,e){let{gen:r}=t;r.if((0,Be._)`Array.isArray(${e})`,()=>{r.assign(An.default.vErrors,(0,Be._)`${An.default.vErrors} === null ? ${e} : ${An.default.vErrors}.concat(${e})`).assign(An.default.errors,(0,Be._)`${An.default.vErrors}.length`),(0,wD.extendErrors)(t)},()=>t.error())}function PD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function aR(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,Be.stringify)(r)})}function xD(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=xD;function kD({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=kD});var dR=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.extendSubschemaMode=Kr.extendSubschemaData=Kr.getSubschema=void 0;var Yt=j(),uR=B();function ED(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,uR.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=ED;function TD(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,uR.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=TD;function AD(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=AD});var tp=P((n3,lR)=>{"use strict";lR.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 pR=P((o3,fR)=>{"use strict";var Jr=fR.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(){};kc(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 kc(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++)kc(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)kc(t,e,r,l[p],o+"/"+d+"/"+MD(p),i,o,d,n,p)}else(d in Jr.keywords||t.allKeys&&!(d in Jr.skipKeywords))&&kc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function MD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ds=P(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.getSchemaRefs=nt.resolveUrl=nt.normalizeId=nt._getFullPath=nt.getFullPath=nt.inlineRef=void 0;var $D=B(),ID=tp(),OD=pR(),zD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function ND(t,e=!0){return typeof t=="boolean"?!0:e===!0?!rp(t):e?hR(t)<=e:!1}nt.inlineRef=ND;var DD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function rp(t){for(let e in t){if(DD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(rp)||typeof r=="object"&&rp(r))return!0}return!1}function hR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!zD.has(r)&&(typeof t[r]=="object"&&(0,$D.eachItem)(t[r],n=>e+=hR(n)),e===1/0))return 1/0}return e}function mR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return gR(t,n)}nt.getFullPath=mR;function gR(t,e){return t.serialize(e).split("#")[0]+"#"}nt._getFullPath=gR;var LD=/#\/?$/;function Mo(t){return t?t.replace(LD,""):""}nt.normalizeId=Mo;function jD(t,e,r){return r=Mo(r),t.resolve(e,r)}nt.resolveUrl=jD;var FD=/^[a-z_][-a-z0-9._]*$/i;function UD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=mR(n,o,!1),a={},c=new Set;return OD(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(!FD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!ID(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}nt.getSchemaRefs=UD});var ps=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getData=Yr.KeywordCxt=Yr.validateFunctionCode=void 0;var wR=Jb(),yR=us(),op=Vf(),Ec=us(),qD=nR(),fs=cR(),np=dR(),A=j(),z=hr(),HD=ds(),mr=B(),ls=cs();function GD(t){if(CR(t)&&(PR(t),RR(t))){WD(t);return}bR(t,()=>(0,wR.topBoolOrEmptySchema)(t))}Yr.validateFunctionCode=GD;function bR({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"; ${vR(r,o)}`),BD(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${ZD(o)}`,n.$async,()=>t.code(vR(r,o)).code(i))}function ZD(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 BD(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 WD(t){let{schema:e,opts:r,gen:n}=t;bR(t,()=>{r.$comment&&e.$comment&&kR(t),XD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&VD(t),xR(t),tL(t)})}function VD(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 vR(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 KD(t,e){if(CR(t)&&(PR(t),RR(t))){JD(t,e);return}(0,wR.boolOrEmptySchema)(t,e)}function RR({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 CR(t){return typeof t.schema!="boolean"}function JD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&kR(t),QD(t),eL(t);let i=n.const("_errs",z.default.errors);xR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function PR(t){(0,mr.checkUnknownRules)(t),YD(t)}function xR(t,e){if(t.opts.jtd)return _R(t,[],!1,e);let r=(0,yR.getSchemaTypes)(t.schema),n=(0,yR.coerceAndCheckDataType)(t,r);_R(t,r,!n,e)}function YD(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 XD(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 QD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,HD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function eL(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function kR({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 tL(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&&rL(t),e.return((0,A._)`${z.default.errors} === 0`))}function rL({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 _R(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(()=>TR(t,"$ref",d.all.$ref.definition));return}c.jtd||nL(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,op.shouldUseGroup)(i,f)&&(f.type?(o.if((0,Ec.checkDataType)(f.type,s,c.strictNumbers)),SR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,Ec.reportTypeError)(t)),o.endIf()):SR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function SR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,qD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,op.shouldUseRule)(n,i)&&TR(t,i.keyword,i.definition,e.type)})}function nL(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(oL(t,e),t.opts.allowUnionTypes||iL(t,e),sL(t,t.dataTypes))}function oL(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{ER(t.dataTypes,r)||ip(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),cL(t,e)}}function iL(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&ip(t,"use allowUnionTypes to allow union type keyword")}function sL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,op.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>aL(e,s))&&ip(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function aL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function ER(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function cL(t,e){let r=[];for(let n of t.dataTypes)ER(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function ip(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Tc=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",AR(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,Ec.checkDataTypes)(c,r,i.opts.strictNumbers,Ec.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,np.getSubschema)(this.it,e);(0,np.extendSubschemaData)(n,this.it,e),(0,np.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return KD(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=Tc;function TR(t,e,r,n){let o=new Tc(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 uL=/^\/(?:[^~]|~0|~1)*$/,dL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function AR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!uL.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=dL.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=AR});var Ac=P(ap=>{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});var sp=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};ap.default=sp});var hs=P(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var cp=ds(),up=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,cp.resolveUrl)(e,r,n),this.missingSchema=(0,cp.normalizeId)((0,cp.getFullPath)(e,this.missingRef))}};dp.default=up});var $c=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(),lL=Ac(),Mn=hr(),Nt=ds(),MR=B(),fL=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 fp(t){let e=$R.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:lL.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,fL.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=fp;function pL(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=gL.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]=hL.call(this,i)}Rt.resolveRef=pL;function hL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:fp.call(this,t)}function $R(t){for(let e of this._compilations)if(mL(e,t))return e}Rt.getCompilingSchema=$R;function mL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function gL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Mc.call(this,t,e)}function Mc(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 lp.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Mc.call(this,t,s);return typeof a?.schema!="object"?void 0:lp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||fp.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 lp.call(this,r,s)}}Rt.resolveSchema=Mc;var yL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function lp(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,MR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!yL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,MR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Mc.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 IR=P((d3,vL)=>{vL.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 mp=P((l3,jR)=>{"use strict";var _L=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),zR=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),pp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),NR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),SL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function hp(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 wL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function OR(t){return t.length=0,!0}function bL(t,e,r){if(t.length){let n=hp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function RL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=bL;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=OR}else{o.push(u);continue}}return o.length&&(a===OR?r.zone=o.join(""):s?n.push(o.join("")):n.push(hp(o))),r.address=n.join(""),r}function DR(t){if(CL(t,":")<2)return{host:t,isIPV6:!1};let e=RL(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 CL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function PL(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 xL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},kL=/[@/?#:]/g,EL=/[@/?#]/g;function LR(t,e){let r=e?EL:kL;return r.lastIndex=0,t.replace(r,n=>xL[n])}function TL(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(pp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&NR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function AL(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(pp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&NR(i)?e+=i:e+="%"+o,r+=2;continue}}SL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function ML(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(pp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function $L(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!zR(r)){let n=DR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=LR(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}jR.exports={nonSimpleDomain:wL,recomposeAuthority:$L,reescapeHostDelimiters:LR,normalizePercentEncoding:TL,normalizePathEncoding:AL,escapePreservingEscapes:ML,removeDotSegments:PL,isIPv4:zR,isUUID:_L,normalizeIPv6:DR,stringArrayToHexStripped:hp}});var GR=P((f3,HR)=>{"use strict";var{isUUID:IL}=mp(),OL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,zL=["http","https","ws","wss","urn","urn:uuid"];function NL(t){return zL.indexOf(t)!==-1}function gp(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 FR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function UR(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 DL(t){return t.secure=gp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function LL(t){if((t.port===(gp(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 jL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(OL);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=yp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function FL(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=yp(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 UL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!IL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function qL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var qR={scheme:"http",domainHost:!0,parse:FR,serialize:UR},HL={scheme:"https",domainHost:qR.domainHost,parse:FR,serialize:UR},Ic={scheme:"ws",domainHost:!0,parse:DL,serialize:LL},GL={scheme:"wss",domainHost:Ic.domainHost,parse:Ic.parse,serialize:Ic.serialize},ZL={scheme:"urn",parse:jL,serialize:FL,skipNormalize:!0},BL={scheme:"urn:uuid",parse:UL,serialize:qL,skipNormalize:!0},Oc={http:qR,https:HL,ws:Ic,wss:GL,urn:ZL,"urn:uuid":BL};Object.setPrototypeOf(Oc,null);function yp(t){return t&&(Oc[t]||Oc[t.toLowerCase()])||void 0}HR.exports={wsIsSecure:gp,SCHEMES:Oc,isValidSchemeName:NL,getSchemeHandler:yp}});var KR=P((p3,Dc)=>{"use strict";var{normalizeIPv6:WL,removeDotSegments:ms,recomposeAuthority:VL,normalizePercentEncoding:KL,normalizePathEncoding:JL,escapePreservingEscapes:YL,reescapeHostDelimiters:XL,isIPv4:QL,nonSimpleDomain:ej}=mp(),{SCHEMES:tj,getSchemeHandler:BR}=GR();function rj(t,e){return typeof t=="string"?t=uj(t,e):typeof t=="object"&&(t=Nc($n(t,e),e)),t}function nj(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=zc(t,n),{parsed:s,malformedAuthorityOrPort:a}=zc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=WR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function WR(t,e,r,n){let o={};return n||(t=Nc($n(t,r),r),e=Nc($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 oj(t,e,r){let n=ZR(t,r),o=ZR(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=BR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=KL(r.path):(r.path=YL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=VL(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 ij=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,sj=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,aj=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function cj(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 zc(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(sj);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(aj);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(ij);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=cj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(QL(n.host)===!1){let f=WL(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=BR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&ej(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=XL(unescape(n.host),i))),n.path&&(n.path=JL(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 Nc(t,e){return zc(t,e).parsed}function uj(t,e){return VR(t,e).normalized}function VR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=zc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function ZR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=VR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var vp={SCHEMES:tj,normalize:rj,resolve:nj,resolveComponent:WR,equal:oj,serialize:$n,parse:Nc};Dc.exports=vp;Dc.exports.default=vp;Dc.exports.fastUri=vp});var YR=P(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var JR=KR();JR.code='require("ajv/dist/runtime/uri").default';_p.default=JR});var iC=P(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.CodeGen=De.Name=De.nil=De.stringify=De.str=De._=De.KeywordCxt=void 0;var dj=ps();Object.defineProperty(De,"KeywordCxt",{enumerable:!0,get:function(){return dj.KeywordCxt}});var Io=j();Object.defineProperty(De,"_",{enumerable:!0,get:function(){return Io._}});Object.defineProperty(De,"str",{enumerable:!0,get:function(){return Io.str}});Object.defineProperty(De,"stringify",{enumerable:!0,get:function(){return Io.stringify}});Object.defineProperty(De,"nil",{enumerable:!0,get:function(){return Io.nil}});Object.defineProperty(De,"Name",{enumerable:!0,get:function(){return Io.Name}});Object.defineProperty(De,"CodeGen",{enumerable:!0,get:function(){return Io.CodeGen}});var lj=Ac(),rC=hs(),fj=Wf(),gs=$c(),pj=j(),ys=ds(),Lc=us(),wp=B(),XR=IR(),hj=YR(),nC=(t,e)=>new RegExp(t,e);nC.code="new RegExp";var mj=["removeAdditional","useDefaults","coerceTypes"],gj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),yj={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."},vj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},QR=200;function _j(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,R,_,C,I,Q,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:nC,br=(o=t.uriResolver)!==null&&o!==void 0?o:hj.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:QR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:QR,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:(Q=t.unicodeRegExp)!==null&&Q!==void 0?Q:!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,..._j(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new pj.ValueScope({scope:{},prefixes:gj,es5:r,lines:n}),this.logger=Pj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,fj.getRules)(),eC.call(this,yj,e,"NOT SUPPORTED"),eC.call(this,vj,e,"DEPRECATED","warn"),this._metaOpts=Rj.call(this),e.formats&&wj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&bj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),Sj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=XR;n==="id"&&(o={...XR},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 rC.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=tC.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=tC.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(kj.call(this,n,r),!r)return(0,wp.eachItem)(n,i=>Sp.call(this,i)),this;Tj.call(this,r);let o={...r,type:(0,Lc.getJSONTypes)(r.type),schemaType:(0,Lc.getJSONTypes)(r.schemaType)};return(0,wp.eachItem)(n,o.type.length===0?i=>Sp.call(this,i,o):i=>o.type.forEach(s=>Sp.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]=oC(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=lj.default;vs.MissingRefError=rC.default;De.default=vs;function eC(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 tC(t){return t=(0,ys.normalizeId)(t),this.schemas[t]||this.refs[t]}function Sj(){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 wj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function bj(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 Rj(){let t={...this.opts};for(let e of mj)delete t[e];return t}var Cj={log(){},warn(){},error(){}};function Pj(t){if(t===!1)return Cj;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 xj=/^[a-z_$][a-z0-9_$:-]*$/i;function kj(t,e){let{RULES:r}=this;if((0,wp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!xj.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 Sp(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,Lc.getJSONTypes)(e.type),schemaType:(0,Lc.getJSONTypes)(e.schemaType)}};e.before?Ej.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 Ej(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 Tj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=oC(e)),t.validateSchema=this.compile(e,!0))}var Aj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function oC(t){return{anyOf:[t,Aj]}}});var sC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var Mj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};bp.default=Mj});var dC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var $j=hs(),aC=bt(),ot=j(),Oo=hr(),cC=$c(),jc=B(),Ij={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=cC.resolveRef.call(c,u,o,r);if(d===void 0)throw new $j.default(n.opts.uriResolver,o,r);if(d instanceof cC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Fc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Fc(t,(0,ot._)`${h}.validate`,u,u.$async)}function f(h){let m=uC(t,h);Fc(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,ot.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:ot.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function uC(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ot._)`${r.scopeValue("wrapper",{ref:e})}.validate`}In.getValidate=uC;function Fc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?Oo.default.this:ot.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,ot._)`await ${(0,aC.callValidateCode)(t,e,u)}`),p(e),s||o.assign(h,!0)},m=>{o.if((0,ot._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),f(m),s||o.assign(h,!1)}),t.ok(h)}function l(){t.result((0,aC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,ot._)`${h}.errors`;o.assign(Oo.default.vErrors,(0,ot._)`${Oo.default.vErrors} === null ? ${m} : ${Oo.default.vErrors}.concat(${m})`),o.assign(Oo.default.errors,(0,ot._)`${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=jc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,ot._)`${h}.evaluated.props`);i.props=jc.mergeEvaluated.props(o,v,i.props,ot.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=jc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,ot._)`${h}.evaluated.items`);i.items=jc.mergeEvaluated.items(o,v,i.items,ot.Name)}}}In.callRef=Fc;In.default=Ij});var lC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var Oj=sC(),zj=dC(),Nj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Oj.default,zj.default];Rp.default=Nj});var fC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var Uc=j(),Xr=Uc.operators,qc={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}},Dj={message:({keyword:t,schemaCode:e})=>(0,Uc.str)`must be ${qc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Uc._)`{comparison: ${qc[t].okStr}, limit: ${e}}`},Lj={keyword:Object.keys(qc),type:"number",schemaType:"number",$data:!0,error:Dj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Uc._)`${r} ${qc[e].fail} ${n} || isNaN(${r})`)}};Cp.default=Lj});var pC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var _s=j(),jj={message:({schemaCode:t})=>(0,_s.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,_s._)`{multipleOf: ${t}}`},Fj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:jj,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}))`)}};Pp.default=Fj});var mC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});function hC(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}xp.default=hC;hC.code='require("ajv/dist/runtime/ucs2length").default'});var gC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var On=j(),Uj=B(),qj=mC(),Hj={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}}`},Gj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Hj,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,Uj.useFunc)(t.gen,qj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};kp.default=Gj});var yC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var Zj=bt(),Bj=B(),zo=j(),Wj={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},Vj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Wj,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,Bj.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,Zj.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};Ep.default=Vj});var vC=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Ss=j(),Kj={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}}`},Jj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Kj,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}`)}};Tp.default=Jj});var _C=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var ws=bt(),bs=j(),Yj=B(),Xj={message:({params:{missingProperty:t}})=>(0,bs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,bs._)`{missingProperty: ${t}}`},Qj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Xj,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,Yj.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)}}};Ap.default=Qj});var SC=P(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Rs=j(),e1={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}}`},t1={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:e1,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}`)}};Mp.default=t1});var Hc=P($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var wC=tp();wC.code='require("ajv/dist/runtime/equal").default';$p.default=wC});var bC=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Ip=us(),Le=j(),r1=B(),n1=Hc(),o1={message:({params:{i:t,j:e}})=>(0,Le.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Le._)`{i: ${t}, j: ${e}}`},i1={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:o1,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,Ip.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,Le._)`${s} === false`),t.ok(c);function d(){let h=e.let("i",(0,Le._)`${r}.length`),m=e.let("j");t.setParams({i:h,j:m}),e.assign(c,!0),e.if((0,Le._)`${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,Ip.checkDataTypes)(u,g,a.opts.strictNumbers,Ip.DataType.Wrong),w=e.const("indices",(0,Le._)`{}`);e.for((0,Le._)`;${h}--;`,()=>{e.let(g,(0,Le._)`${r}[${h}]`),e.if(v,(0,Le._)`continue`),u.length>1&&e.if((0,Le._)`typeof ${g} == "string"`,(0,Le._)`${g} += "_"`),e.if((0,Le._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(m,(0,Le._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,Le._)`${w}[${g}] = ${h}`)})}function p(h,m){let g=(0,r1.useFunc)(e,n1.default),v=e.name("outer");e.label(v).for((0,Le._)`;${h}--;`,()=>e.for((0,Le._)`${m} = ${h}; ${m}--;`,()=>e.if((0,Le._)`${g}(${r}[${h}], ${r}[${m}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Op.default=i1});var RC=P(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var zp=j(),s1=B(),a1=Hc(),c1={message:"must be equal to constant",params:({schemaCode:t})=>(0,zp._)`{allowedValue: ${t}}`},u1={keyword:"const",$data:!0,error:c1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,zp._)`!${(0,s1.useFunc)(e,a1.default)}(${r}, ${o})`):t.fail((0,zp._)`${i} !== ${r}`)}};Np.default=u1});var CC=P(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var Cs=j(),d1=B(),l1=Hc(),f1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Cs._)`{allowedValues: ${t}}`},p1={keyword:"enum",schemaType:"array",$data:!0,error:f1,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,d1.useFunc)(e,l1.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}`}}};Dp.default=p1});var PC=P(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var h1=fC(),m1=pC(),g1=gC(),y1=yC(),v1=vC(),_1=_C(),S1=SC(),w1=bC(),b1=RC(),R1=CC(),C1=[h1.default,m1.default,g1.default,y1.default,v1.default,_1.default,S1.default,w1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},b1.default,R1.default];Lp.default=C1});var Fp=P(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.validateAdditionalItems=void 0;var zn=j(),jp=B(),P1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},x1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:P1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,jp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}xC(t,n)}};function xC(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,jp.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:jp.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Ps.validateAdditionalItems=xC;Ps.default=x1});var Up=P(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.validateTuple=void 0;var kC=j(),Gc=B(),k1=bt(),E1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return EC(t,"additionalItems",e);r.items=!0,!(0,Gc.alwaysValidSchema)(r,e)&&t.ok((0,k1.validateArray)(t))}};function EC(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=Gc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,kC._)`${i}.length`);r.forEach((l,f)=>{(0,Gc.alwaysValidSchema)(a,l)||(n.if((0,kC._)`${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,Gc.checkStrictMode)(a,g,f.strictTuples)}}}xs.validateTuple=EC;xs.default=E1});var TC=P(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var T1=Up(),A1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,T1.validateTuple)(t,"items")};qp.default=A1});var MC=P(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var AC=j(),M1=B(),$1=bt(),I1=Fp(),O1={message:({params:{len:t}})=>(0,AC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,AC._)`{limit: ${t}}`},z1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:O1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,M1.alwaysValidSchema)(n,e)&&(o?(0,I1.validateAdditionalItems)(t,o):t.ok((0,$1.validateArray)(t)))}};Hp.default=z1});var $C=P(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var Ct=j(),Zc=B(),N1={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}}`},D1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:N1,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,Zc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Zc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Zc.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:Zc.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)))}}};Gp.default=D1});var zC=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var Zp=j(),L1=B(),ks=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Zp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Zp._)`{property: ${t},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${e},
8
- deps: ${r}}`};var D1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=L1(t);$C(t,e),IC(t,r)}};function L1({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 $C(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,Gp._)`${c} && (${(0,ks.checkMissingProp)(t,a,i)})`),(0,ks.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=$C;function IC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,N1.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=IC;Xt.default=D1});var NC=P(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var zC=j(),j1=B(),F1={message:"property name must be valid",params:({params:t})=>(0,zC._)`{propertyName: ${t.propertyName}}`},U1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:F1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,j1.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,zC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Zp.default=U1});var Wp=P(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var Bc=bt(),Dt=j(),q1=hr(),Wc=B(),H1={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},G1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:H1,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,Wc.alwaysValidSchema)(s,r))return;let u=(0,Bc.allSchemaProperties)(n.properties),d=(0,Bc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${q1.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,Wc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Bc.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,Bc.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,Wc.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:Wc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Bp.default=G1});var jC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var Z1=ps(),DC=bt(),Vp=B(),LC=Wp(),B1={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&&LC.default.code(new Z1.KeywordCxt(i,LC.default,"additionalProperties"));let s=(0,DC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Vp.mergeEvaluated.props(e,(0,Vp.toHash)(s),i.props));let a=s.filter(l=>!(0,Vp.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,DC.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)}}};Kp.default=B1});var HC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var FC=bt(),Vc=j(),UC=B(),qC=B(),W1={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,FC.allSchemaProperties)(r),c=a.filter(m=>(0,UC.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 Vc.Name)&&(i.props=(0,qC.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,UC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Vc._)`${(0,FC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:qC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Vc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Vc.not)(d),()=>e.break())})})}}};Jp.default=W1});var GC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var V1=B(),K1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,V1.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"}};Yp.default=K1});var ZC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var J1=bt(),Y1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:J1.validateUnion,error:{message:"must match a schema in anyOf"}};Xp.default=Y1});var BC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var Kc=j(),X1=B(),Q1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Kc._)`{passingSchemas: ${t.passing}}`},eF={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Q1,code(t){let{gen:e,schema:r,parentSchema:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,s=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(s,()=>t.reset(),()=>t.error(!0));function u(){i.forEach((d,l)=>{let f;(0,X1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Kc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Kc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Kc.Name)})})}}};Qp.default=eF});var WC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var tF=B(),rF={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,tF.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};eh.default=rF});var JC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var Jc=j(),KC=B(),nF={message:({params:t})=>(0,Jc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Jc._)`{failingKeyword: ${t.ifClause}}`},oF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:nF,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,KC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=VC(n,"then"),i=VC(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,Jc.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,Jc._)`${d}`):t.setParams({ifClause:d})}}}};function VC(t,e){let r=t.schema[e];return r!==void 0&&!(0,KC.alwaysValidSchema)(t,r)}th.default=oF});var YC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var iF=B(),sF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,iF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};rh.default=sF});var XC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var aF=jp(),cF=EC(),uF=Fp(),dF=AC(),lF=MC(),fF=OC(),pF=NC(),hF=Wp(),mF=jC(),gF=HC(),yF=GC(),vF=ZC(),_F=BC(),SF=WC(),wF=JC(),bF=YC();function RF(t=!1){let e=[yF.default,vF.default,_F.default,SF.default,wF.default,bF.default,pF.default,hF.default,fF.default,mF.default,gF.default];return t?e.push(cF.default,dF.default):e.push(aF.default,uF.default),e.push(lF.default),e}nh.default=RF});var QC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var Re=j(),CF={message:({schemaCode:t})=>(0,Re.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Re._)`{format: ${t}}`},PF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:CF,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})`}}}};oh.default=PF});var eP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var xF=QC(),kF=[xF.default];ih.default=kF});var tP=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 nP=P(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});var EF=dC(),TF=CC(),AF=XC(),MF=eP(),rP=tP(),$F=[EF.default,TF.default,(0,AF.default)(),MF.default,rP.metadataVocabulary,rP.contentVocabulary];sh.default=$F});var iP=P(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.DiscrError=void 0;var oP;(function(t){t.Tag="tag",t.Mapping="mapping"})(oP||(Yc.DiscrError=oP={}))});var aP=P(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});var Do=j(),ah=iP(),sP=$c(),IF=hs(),OF=B(),zF={message:({params:{discrError:t,tagName:e}})=>t===ah.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}}`},NF={keyword:"discriminator",type:"object",schemaType:"object",error:zF,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:ah.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:ah.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,OF.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=sP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof sP.SchemaEnv&&(_=_.schema),_===void 0)throw new IF.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]=_}}}};ch.default=NF});var cP=P((Q3,DF)=>{DF.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 dh=P((le,uh)=>{"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 LF=oC(),jF=nP(),FF=aP(),uP=cP(),UF=["/properties"],Xc="http://json-schema.org/draft-07/schema",Lo=class extends LF.default{_addVocabularies(){super._addVocabularies(),jF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(FF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(uP,UF):uP;this.addMetaSchema(e,Xc,!1),this.refs["http://json-schema.org/schema"]=Xc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Xc)?Xc:void 0)}};le.Ajv=Lo;uh.exports=le=Lo;uh.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var qF=ps();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return qF.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 HF=Ac();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return HF.default}});var GF=hs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return GF.default}})});var yP=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(pP,hh),time:Qt(fh(!0),mh),"date-time":Qt(dP(!0),mP),"iso-time":Qt(fh(),hP),"iso-date-time":Qt(dP(),gP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:JF,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:nU,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:YF,int32:{type:"number",validate:eU},int64:{type:"number",validate:tU},float:{type:"number",validate:fP},double:{type:"number",validate:fP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,hh),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,mh),"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,mP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,hP),"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,gP),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 ZF(t){return t%4===0&&(t%100!==0||t%400===0)}var BF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,WF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function pP(t){let e=BF.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&&ZF(r)?29:WF[n])}function hh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var lh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function fh(t){return function(r){let n=lh.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 mh(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 hP(t,e){if(!(t&&e))return;let r=lh.exec(t),n=lh.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 ph=/t|\s/i;function dP(t){let e=fh(t);return function(n){let o=n.split(ph);return o.length===2&&pP(o[0])&&e(o[1])}}function mP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function gP(t,e){if(!(t&&e))return;let[r,n]=t.split(ph),[o,i]=e.split(ph),s=hh(r,o);if(s!==void 0)return s||mh(n,i)}var VF=/\/|:/,KF=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function JF(t){return VF.test(t)&&KF.test(t)}var lP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function YF(t){return lP.lastIndex=0,lP.test(t)}var XF=-(2**31),QF=2**31-1;function eU(t){return Number.isInteger(t)&&t<=QF&&t>=XF}function tU(t){return Number.isInteger(t)}function fP(){return!0}var rU=/[^\\]\\Z/;function nU(t){if(rU.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var vP=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var oU=dh(),Lt=j(),Qr=Lt.operators,Qc={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}},iU={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${Qc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${Qc[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(Qc),type:"string",schemaType:"string",$data:!0,error:iU,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 oU.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}) ${Qc[o].fail} 0`}},dependencies:["format"]};var sU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=sU});var bP=P((Es,wP)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});var Uo=yP(),aU=vP(),gh=j(),_P=new gh.Name("fullFormats"),cU=new gh.Name("fastFormats"),yh=(t,e={keywords:!0})=>{if(Array.isArray(e))return SP(t,e,Uo.fullFormats,_P),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,cU]:[Uo.fullFormats,_P],o=e.formats||Uo.formatNames;return SP(t,o,r,n),e.keywords&&(0,aU.default)(t),t};yh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function SP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,gh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}wP.exports=Es=yh;Object.defineProperty(Es,"__esModule",{value:!0});Es.default=yh});var YP=P((z8,JP)=>{JP.exports=KP;KP.sync=FU;var WP=Rr("fs");function jU(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 VP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:jU(e,r)}function KP(t,e,r){WP.stat(t,function(n,o){r(n,n?!1:VP(o,t,e))})}function FU(t,e){return VP(WP.statSync(t),t,e)}});var rx=P((N8,tx)=>{tx.exports=QP;QP.sync=UU;var XP=Rr("fs");function QP(t,e,r){XP.stat(t,function(n,o){r(n,n?!1:ex(o,e))})}function UU(t,e){return ex(XP.statSync(t),e)}function ex(t,e){return t.isFile()&&qU(t,e)}function qU(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 ox=P((L8,nx)=>{var D8=Rr("fs"),du;process.platform==="win32"||global.TESTING_WINDOWS?du=YP():du=rx();nx.exports=Nh;Nh.sync=HU;function Nh(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){Nh(t,e||{},function(i,s){i?o(i):n(s)})})}du(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function HU(t,e){try{return du.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var lx=P((j8,dx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ix=Rr("path"),GU=Ko?";":":",sx=ox(),ax=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),cx=(t,e)=>{let r=e.colon||GU,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}},ux=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=cx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(ax(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=ix.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];sx(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)},ZU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=cx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=ix.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(sx.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 ax(t)};dx.exports=ux;ux.sync=ZU});var px=P((F8,Dh)=>{"use strict";var fx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Dh.exports=fx;Dh.exports.default=fx});var yx=P((U8,gx)=>{"use strict";var hx=Rr("path"),BU=lx(),WU=px();function mx(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=BU.sync(t.command,{path:r[WU({env:r})],pathExt:e?hx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=hx.resolve(o?t.options.cwd:"",s)),s}function VU(t){return mx(t)||mx(t,!0)}gx.exports=VU});var vx=P((q8,jh)=>{"use strict";var Lh=/([()\][%!^"`<>&|;, *?])/g;function KU(t){return t=t.replace(Lh,"^$1"),t}function JU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Lh,"^$1"),e&&(t=t.replace(Lh,"^$1")),t}jh.exports.command=KU;jh.exports.argument=JU});var Sx=P((H8,_x)=>{"use strict";_x.exports=/^#!(.*)/});var bx=P((G8,wx)=>{"use strict";var YU=Sx();wx.exports=(t="")=>{let e=t.match(YU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var Cx=P((Z8,Rx)=>{"use strict";var Fh=Rr("fs"),XU=bx();function QU(t){let r=Buffer.alloc(150),n;try{n=Fh.openSync(t,"r"),Fh.readSync(n,r,0,150,0),Fh.closeSync(n)}catch{}return XU(r.toString())}Rx.exports=QU});var Ex=P((B8,kx)=>{"use strict";var eq=Rr("path"),Px=yx(),xx=vx(),tq=Cx(),rq=process.platform==="win32",nq=/\.(?:com|exe)$/i,oq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function iq(t){t.file=Px(t);let e=t.file&&tq(t.file);return e?(t.args.unshift(t.file),t.command=e,Px(t)):t.file}function sq(t){if(!rq)return t;let e=iq(t),r=!nq.test(e);if(t.options.forceShell||r){let n=oq.test(e);t.command=eq.normalize(t.command),t.command=xx.command(t.command),t.args=t.args.map(i=>xx.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 aq(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:sq(n)}kx.exports=aq});var Mx=P((W8,Ax)=>{"use strict";var Uh=process.platform==="win32";function qh(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 cq(t,e){if(!Uh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Tx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Tx(t,e){return Uh&&t===1&&!e.file?qh(e.original,"spawn"):null}function uq(t,e){return Uh&&t===1&&!e.file?qh(e.original,"spawnSync"):null}Ax.exports={hookChildProcess:cq,verifyENOENT:Tx,verifyENOENTSync:uq,notFoundError:qh}});var Ox=P((V8,Jo)=>{"use strict";var $x=Rr("child_process"),Hh=Ex(),Gh=Mx();function Ix(t,e,r){let n=Hh(t,e,r),o=$x.spawn(n.command,n.args,n.options);return Gh.hookChildProcess(o,n),o}function dq(t,e,r){let n=Hh(t,e,r),o=$x.spawnSync(n.command,n.args,n.options);return o.error=o.error||Gh.verifyENOENTSync(o.status,n),o}Jo.exports=Ix;Jo.exports.spawn=Ix;Jo.exports.sync=dq;Jo.exports._parse=Hh;Jo.exports._enoent=Gh});var Fx=P(Bh=>{"use strict";var Dx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,mq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Lx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,gq=/\\([\u000b\u0020-\u00ff])/g,yq=/([\\"])/g,jx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Bh.format=vq;Bh.parse=_q;function vq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!jx.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],!Lx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+wq(e[o])}return n}function _q(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?Sq(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(!jx.test(n))throw new TypeError("invalid media type");var o=new bq(n.toLowerCase());if(r!==-1){var i,s,a;for(Dx.lastIndex=r;s=Dx.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(gq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function Sq(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 wq(t){var e=String(t);if(Lx.test(e))return e;if(e.length>0&&!mq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(yq,"\\$1")+'"'}function bq(t){this.parameters=Object.create(null),this.type=t}});import{logger as h4}from"@hermes/logger";import{logger as JH}from"@hermes/logger";var PT="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(PT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as RH}from"@augmentcode/auggie-v2";import{logger as CH}from"@hermes/logger";import{logger as tA}from"@hermes/logger";import{logger as kT}from"@hermes/logger";function xT(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":xT(t,e,r)?"plugin":"local"}function ET(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Um=kT.child({prefix:"pi-mcp"}),TT="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 at(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 AT(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 na=3e4;function MT(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>=na?"failed":void 0}default:return}}var qm="authentication required",$T="Authentication refresh is pending in the backend; retry shortly.",IT="timed out connecting after 30s",OT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",zT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",NT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",DT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",LT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",jT="Server was not started: this session's Space policy does not allow it.",FT="Server was not started: its shared credential is not available to this session's identity.",UT="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 qT(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)?zT:OT,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",...GT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}HT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function HT(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=Gm(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 Hm(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 Gm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:LT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:jT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:FT,failureCategory:"share_identity_excluded"};default:return}}function GT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:UT,failureCategory:"auth_terminal"};let i=Gm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?DT:NT,failureCategory:"configuration"}}function ZT(t,e){return e!==void 0?e.isAuthError?qm:e.error:t.status==="initializing"?IT:t.lastError??(t.status==="auth_required"?qm:void 0)}function Zm(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 BT(t,e,r){if(Zm(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 WT(t,e){let r=MT(t);if(r===void 0)return;let n=AT(e,t.name),o=r==="connected"?ET(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=Zm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=BT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?$T:ZT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function VT(t){let e=[];for(let r of t.servers.values()){let n=WT(r,t);n!==void 0&&e.push(n)}return qT(t,e),e}function N(t,e){try{let r=VT(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(TT,o),Um.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Um.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var oa={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function KT(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 Bm(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 Zu(t,e){let r=KT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ia(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Bu(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 ee(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:Zu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ia(t,e,a),c}function Wm(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:Zu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ia(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=oa[n.kind]>oa[a.owner.kind],f=oa[n.kind]===oa[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Bm(a):void 0;Bu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Zu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ia(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Wu(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 sa(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 ct(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=Bm(s);if(a)return Bu(e,r,i),s.host=void 0,s.retirement=a,a}function Vm(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?(ia(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:(Bu(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 Vu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Km(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&&Km(t.url)===Km(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 Ku(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:Ku(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:Ku(t.url)===Ku(e.url)}function Ju(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):xr(r,n)}function Ie(t){return/^secret:(private|shared):.+/.test(t)}function Yu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function aa(t,e,r){if(r===void 0||!Ie(r))return r;let n=t.credentialRevisions?.get(e);return n?.domain===r?n.ownerDomain:void 0}function JT(t){let{state:e,name:r,expectedRegistryConfigId:n,expectedConfig:o,currentConfig:i}=t;if(o)return o;let s=n?e.registryCredentialConfigsById?.get(n):void 0;if(s?.name===r)return s;let a=e.registryCredentialConfigs?.get(r);if(a?.id===n)return a;if(i?.id===n)return i}function YT(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 Jm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Yu(e,r):n!==void 0&&e!==n}function Ym(t,e,r){return r&&e!==void 0&&t!==void 0&&Yu(t,e)}function XT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Yu(i,n))}function Xm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(YT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Jm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Jm({identity:s.domain,...l})?!0:XT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function QT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function eA(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 Qm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=aa(t,e,i),c=aa(t,e,s),u=t.servers?.get(e)?.config,d=JT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:u}),l=d?.id??r,f=d?.registrySource!==void 0||d===void 0&&r!==void 0,p=d?.registrySource===void 0?void 0:`user:${d.id??d.name}`,h=Xm({currentConfig:u,retiredConfig:d,expectedRegistryConfigId:r,retiresRegistryIdentity:f,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:l,retiredOwnerIdentity:p,acceptedDomain:a,currentDomain:c}),m=Ym(a,l,f),g=Ym(c,l,f),v=!h,w=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,R=h&&!(v||m||g||w);if(o==="durable"){let Q=QT({name:e,retiredConfig:d,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,Q,{preserveNameState:R})}let _=Xm({currentConfig:t.servers?.get(e)?.config,retiredConfig:d,expectedRegistryConfigId:r,retiresRegistryIdentity:f,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:l,retiredOwnerIdentity:p,acceptedDomain:aa(t,e,t.oauthCredentialDomains?.get(e)),currentDomain:aa(t,e,t.credentialRevisions?.get(e)?.domain)}),C=v&&!_,I=!1;return t.equalRevisionRebindDomains?.delete(e),(C||m)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),I=!0),(C||g)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),I=!0),C&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),eA({state:t,name:e,mode:o,stillOwnsNameScopedRevision:C,retiredConfig:d}),I&&(di(t,e),at(t,e),t.authRefreshNeededReportKeys?.delete(e)),C}function ht(t,e,r,n){return Qm(t,e,r,n,"durable")}function li(t,e,r,n){return Qm(t,e,r,n,"session")}function ca(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 eg="augment:mcp-oauth-credentials",tg=300*1e3,rA=256,Xu=tA.child({prefix:"pi-mcp"}),Et=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function He(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:He(t.slice(e+1))}function dn(t){return t.ownerDomain??Er(t.domain)}function rg(t,e,r){let n=He(e);return r!==void 0?r===n:Ie(t)||Er(t)===n}function nA(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function oA(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 iA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function sA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&nA(t.credentialRevisions.get(e),r.credentialRevision)&&iA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function aA(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 cA(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 ng(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 og(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=tg)&&or(t,n)}function uA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function ig(t,e){let r=t?.credential_revision_domain??t?.credentialRevisionDomain;if(!(r!==e&&(Ie(e)||typeof r=="string"&&Ie(r))))return t?.credential_revision??t?.credentialRevision}function sg(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();og(e,a);let c=dn(n),u=Ie(c)?`${c}\0${r}`:c,d=s.get(u),l=ig(d?.credential,n.domain);if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=rA&&uA(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)},tg),f.expiryTimer.unref?.(),Xu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function dA(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ye(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 ua(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&&Ye({state:e,domain:r,epoch:o.epoch});let s={epoch:dA(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 ag(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ye({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)&&!Ie(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);ua({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function lA(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=He(r.id),o=aA(r),i=cA({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?(Ye({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=ua({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),fA({state:e,config:r,domain:n}),{domain:n,...s}}function cg(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?ig(c.credential,r.domain):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 fA(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&&!Ie(o)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),at(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function pA(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),Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(eg,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function hA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();og(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&&Ie(s.split("\0",1)[0]))return or(e,s),a}function mA(t){let{config:e,pi:r,buffered:n}=t;Xu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Xu.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(eg,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function gA(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 yA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=sA(e,r.name,o);Ye({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 vA(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 gA({state:e,config:r,previousConfig:i})}catch(h){throw yA({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 Ye({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),pA({state:e,config:r,pi:n,intent:o});let p=hA({state:e,domain:o.domain,serverName:r.name});return Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&mA({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=lA({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=oA(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 vA({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 MA}from"@augmentcode/auggie-v2";import{homedir as ug}from"node:os";import{sep as _A}from"node:path";var Qu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},SA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,wA=/\\\$\{/g,bA=new Set(["workspaceFolder","augmentToken"]),dg="${workspaceFolder}";function lg(t,e){return t.includes(dg)?t.split(dg).join(e):t}function fg(t,e){return t.includes("${")?t.replace(SA,(n,o,i)=>{if(bA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Qu(o)}).replace(wA,"${"):t}function RA(t){return t.startsWith("~")?t==="~"?ug():t.startsWith("~/")||t.startsWith(`~${_A}`)?ug()+t.slice(1):t:t}function ed(t,e,r){return RA(fg(lg(t,e),r))}function Xn(t,e,r){return fg(lg(t,e),r)}function pg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var CA="$augment-";function PA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(CA)?i:Xn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:PA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:ed(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?pg(t.env,e,r):void 0,cwd:t.cwd?ed(t.cwd,e,r):e}}import{readFileSync as kA}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 xA(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`);let a=typeof e.clientId=="string"?e.clientId.trim():void 0;return{type:r,name:e.name??t,disabled:e.disabled,url:e.url,headers:e.headers,auth:e.auth==="oauth"?"oauth":void 0,...a?{clientId:a}:{},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:xA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var gg=t=>kA(t,"utf8");function da(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hg(t){return da(t)&&("command"in t||"url"in t)}function rd(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function mg(t,e){return rd(t.name)??e}function td(t,e){let r=Qn(t);if(r==="http"||r==="sse")return rd(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return rd(t.name,t.title,n)??e}function EA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[td(n,String(r)),n]});if(da(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[td(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(da(n))return Object.entries(n).map(([o,i])=>{let s=i;return[mg(s,o),s]})}if(hg(t)){let r=t;return[[td(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(hg))return Object.entries(t).map(([r,n])=>{if(!da(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[mg(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 nd(t){return t instanceof Error?t.message:String(t)}function TA(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}": ${nd(i)}`});return}}function AA(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=TA(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}: ${nd(c)}`}),[]}try{return EA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${nd(c)}`}),[]}}function od(t,e=gg){let r={},n=[];for(let o of t)for(let[i,s]of AA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function id(t,e=gg){return!t||t.length===0?new Set:new Set(Object.keys(od(t,e).servers))}var $A=["global","project","local","managed"];function IA(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 OA(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 zA(t,e,r){let n=od(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 NA(t,e,r){let n=MA.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 OA($A.map(o=>IA(n,o)))}function to(t,e,r,n){let o=[],i=r!==void 0&&r.length>0,s=i?zA(r,n,o):NA(t,e,o),a=[];for(let[c,u]of Object.entries(s))try{let d=eo(c,i?u:{...u,name:c});a.push(d.type==="stdio"?Zt(d,t):Gt(d,t))}catch(d){let l=d instanceof Tt?d.message:`Failed to normalize MCP server "${c}": ${d instanceof Error?d.message:String(d)}`;o.push({server:c,message:l})}return{servers:a,diagnostics:o}}import{setToolSource as bg}from"@augmentcode/auggie-v2";import{logger as WA}from"@hermes/logger";import{Type as VA}from"@sinclair/typebox";var la=Symbol.for("__pi_mcp_state__");function DA(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 LA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function jA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&DA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&LA(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 FA(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&&jA(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&&ee(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 sd(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 fa(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function pa(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()?sd({state:e,configId:r,generation:n}):fa({state:e,configId:r,generation:n}),s),s=>{throw fa({state:e,configId:r,generation:n}),s})}function te(){let t=globalThis;if(t[la])return FA(t[la]),t[la];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[la]=e,e}var yg=Symbol.for("__hermes_mcp_tool_registry__"),vg=Symbol.for("__hermes_mcp_tool_server_registry__"),UA=Symbol.for("__hermes_mcp_extension_factory__");function cd(){let t=globalThis;return t[yg]??=new Map,t[yg]}function ad(){let t=globalThis;return t[vg]??=new Map,t[vg]}function _g(t){return cd().get(t)}function Mr(t,e){cd().set(t.name,t),e===void 0?ad().delete(t.name):ad().set(t.name,e)}function no(t,e){let r=cd();(e===void 0||r.get(t)===e)&&(r.delete(t),ad().delete(t))}function Sg(t){Reflect.set(t,UA,!0)}function ha(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 qA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function HA(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 GA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
- `).trim()}function ud(t,e,r){if(t.isError){let o=GA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=HA(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 wg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ha(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=qA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return ud(o,t.serverName,r)}var ZA=/[^a-zA-Z0-9_-]/g;function dd(t){return t.replace(ZA,"_")}function BA(t,e){let r=dd(e),n=dd(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=BA(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=`_${dd(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var ma=WA.child({prefix:"pi-mcp"});function ga(){return te().toolRegistrationsByPi}function Rg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=VA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){ma.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}ma.warn(`Skipping MCP tool "${r}/${n.name}": invalid input schema (${c instanceof Error?c.message:String(c)})`);return}let a=()=>te().servers.get(r);return{name:i,label:n.name,description:n.description??"",parameters:s,execute:(c,u,d,l,f)=>wg({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 ld(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),KA(t,e,n,r,o)}function KA(t,e,r,n,o){let i=te();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=Rg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;bg(r,"mcp"),t.registerTool(p),Mr(p,s),a.definitionsByName??=new Map,a.definitionsByName.set(r,p),e.ownerByToolName.set(r,a),o?t.setActiveTools([...new Set([...t.getActiveTools(),r])]):t.setActiveTools(t.getActiveTools().filter(h=>h!==r));return}}}function JA(t,e){let r=ga(),n=r.get(t);n||(n={byServer:new Map,ownerByToolName:new Map},r.set(t,n));let o=te().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)ld(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 fd(t,e){let{registration:r,replaced:n}=JA(t,e),o=new Set(r.registeredNames),i=new $r(e.name);r.map=i,r.registeredNames.clear();let s=e.name,a=0,c=[];for(let d of e.listTools()){let{namespaced:l,collision:f}=i.put(d.name);if(f){let h=i.resolve(l),m=e.suppressesProviderDiagnostics?"MCP stdio tool name collision; provider diagnostics are suppressed. Only the first tool will be available.":`Tool name collision detected in MCP server "${s}": "${d.name}" and "${h}" both map to "${l}". Only the first tool will be available.`,g=te();g.diagnostics.some(w=>w.server===s&&(w.message===m||w.message.includes(`both map to "${l}"`)))||(ma.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=Rg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(bg(l,"mcp"),t.registerTool(p),Mr(p,s),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ga().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ga().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&ld(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&ma.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function pd(t,e,r){let n=ga().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)ld(t,n,o,i);return n.byServer.delete(e.name),!0}function Cg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&fd(t,r)}import{getToolSource as iM}from"@augmentcode/auggie-v2";import{Type as YA}from"@sinclair/typebox";var XA=!1,Pg=2e4;function QA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function eM(t){let e=0;for(let r of t.servers.values())e+=tM(r);return e}function tM(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||rM(n.inputSchema)&&(r+=QA(n))}return r}function rM(t){try{return YA.Unsafe(t??{}),!0}catch{return!1}}function nM(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:XA}function oM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:Pg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:Pg}function xg(t){return nM(t)?eM(t)>=oM(t):!1}var sM="AUGGIE_ENABLE_TOOL_SEARCH",aM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[sM]==="1"}function Ir(t){return pi()||t.toolSearchLatched?!0:xg(t)?(t.toolSearchLatched=!0,!0):!1}function ya(t){let e=t.getActiveTools(),r=e.filter(n=>!cM(n)||aM.has(n));r.length!==e.length&&t.setActiveTools(r)}function cM(t){return iM(t)==="mcp"}import{setToolSource as Og}from"@augmentcode/auggie-v2";import{logger as EM}from"@hermes/logger";import{Type as zg}from"@sinclair/typebox";import{logger as uM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Or={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var kg=uM.child({prefix:"pi-mcp"}),dM=5e3,lM=1,fM=2,pM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),hM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function mM(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 gM(t){return t===lM||typeof t=="string"&&pM.has(t)?"available":t===fM||typeof t=="string"&&hM.has(t)?"opt_in_required":"unknown"}function yM(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:mM(t.auth_type),state:gM(t.state)}}function hd(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 va(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return va(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!hd(t,r)):[]}async function Eg(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??dM)});if(!i.ok)return kg.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=yM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return kg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var vM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",_M=`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 j1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=F1(t);IC(t,e),OC(t,r)}};function F1({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 IC(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,Zp._)`${c} && (${(0,ks.checkMissingProp)(t,a,i)})`),(0,ks.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=IC;function OC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,L1.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=OC;Xt.default=j1});var DC=P(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var NC=j(),U1=B(),q1={message:"property name must be valid",params:({params:t})=>(0,NC._)`{propertyName: ${t.propertyName}}`},H1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:q1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,U1.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,NC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Bp.default=H1});var Vp=P(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var Bc=bt(),Dt=j(),G1=hr(),Wc=B(),Z1={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},B1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Z1,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,Wc.alwaysValidSchema)(s,r))return;let u=(0,Bc.allSchemaProperties)(n.properties),d=(0,Bc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${G1.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,Wc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Bc.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,Bc.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,Wc.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:Wc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Wp.default=B1});var FC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var W1=ps(),LC=bt(),Kp=B(),jC=Vp(),V1={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&&jC.default.code(new W1.KeywordCxt(i,jC.default,"additionalProperties"));let s=(0,LC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Kp.mergeEvaluated.props(e,(0,Kp.toHash)(s),i.props));let a=s.filter(l=>!(0,Kp.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,LC.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)}}};Jp.default=V1});var GC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var UC=bt(),Vc=j(),qC=B(),HC=B(),K1={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,UC.allSchemaProperties)(r),c=a.filter(m=>(0,qC.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 Vc.Name)&&(i.props=(0,HC.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,qC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Vc._)`${(0,UC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:HC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Vc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Vc.not)(d),()=>e.break())})})}}};Yp.default=K1});var ZC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var J1=B(),Y1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,J1.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"}};Xp.default=Y1});var BC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var X1=bt(),Q1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:X1.validateUnion,error:{message:"must match a schema in anyOf"}};Qp.default=Q1});var WC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var Kc=j(),eF=B(),tF={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Kc._)`{passingSchemas: ${t.passing}}`},rF={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:tF,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,eF.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Kc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Kc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Kc.Name)})})}}};eh.default=rF});var VC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var nF=B(),oF={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,nF.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};th.default=oF});var YC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var Jc=j(),JC=B(),iF={message:({params:t})=>(0,Jc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Jc._)`{failingKeyword: ${t.ifClause}}`},sF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:iF,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,JC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=KC(n,"then"),i=KC(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,Jc.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,Jc._)`${d}`):t.setParams({ifClause:d})}}}};function KC(t,e){let r=t.schema[e];return r!==void 0&&!(0,JC.alwaysValidSchema)(t,r)}rh.default=sF});var XC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var aF=B(),cF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,aF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};nh.default=cF});var QC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var uF=Fp(),dF=TC(),lF=Up(),fF=MC(),pF=$C(),hF=zC(),mF=DC(),gF=Vp(),yF=FC(),vF=GC(),_F=ZC(),SF=BC(),wF=WC(),bF=VC(),RF=YC(),CF=XC();function PF(t=!1){let e=[_F.default,SF.default,wF.default,bF.default,RF.default,CF.default,mF.default,gF.default,hF.default,yF.default,vF.default];return t?e.push(dF.default,fF.default):e.push(uF.default,lF.default),e.push(pF.default),e}oh.default=PF});var eP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var Re=j(),xF={message:({schemaCode:t})=>(0,Re.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Re._)`{format: ${t}}`},kF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:xF,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})`}}}};ih.default=kF});var tP=P(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});var EF=eP(),TF=[EF.default];sh.default=TF});var rP=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 oP=P(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});var AF=lC(),MF=PC(),$F=QC(),IF=tP(),nP=rP(),OF=[AF.default,MF.default,(0,$F.default)(),IF.default,nP.metadataVocabulary,nP.contentVocabulary];ah.default=OF});var sP=P(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.DiscrError=void 0;var iP;(function(t){t.Tag="tag",t.Mapping="mapping"})(iP||(Yc.DiscrError=iP={}))});var cP=P(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var Do=j(),ch=sP(),aP=$c(),zF=hs(),NF=B(),DF={message:({params:{discrError:t,tagName:e}})=>t===ch.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}}`},LF={keyword:"discriminator",type:"object",schemaType:"object",error:DF,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:ch.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:ch.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,NF.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=aP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof aP.SchemaEnv&&(_=_.schema),_===void 0)throw new zF.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]=_}}}};uh.default=LF});var uP=P((t8,jF)=>{jF.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 lh=P((le,dh)=>{"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 FF=iC(),UF=oP(),qF=cP(),dP=uP(),HF=["/properties"],Xc="http://json-schema.org/draft-07/schema",Lo=class extends FF.default{_addVocabularies(){super._addVocabularies(),UF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(qF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(dP,HF):dP;this.addMetaSchema(e,Xc,!1),this.refs["http://json-schema.org/schema"]=Xc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Xc)?Xc:void 0)}};le.Ajv=Lo;dh.exports=le=Lo;dh.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var GF=ps();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return GF.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 ZF=Ac();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return ZF.default}});var BF=hs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return BF.default}})});var vP=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(hP,mh),time:Qt(ph(!0),gh),"date-time":Qt(lP(!0),gP),"iso-time":Qt(ph(),mP),"iso-date-time":Qt(lP(),yP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:XF,"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:iU,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:QF,int32:{type:"number",validate:rU},int64:{type:"number",validate:nU},float:{type:"number",validate:pP},double:{type:"number",validate:pP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,mh),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,gh),"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,gP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,mP),"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,yP),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 WF(t){return t%4===0&&(t%100!==0||t%400===0)}var VF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,KF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function hP(t){let e=VF.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&&WF(r)?29:KF[n])}function mh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var fh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function ph(t){return function(r){let n=fh.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 gh(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 mP(t,e){if(!(t&&e))return;let r=fh.exec(t),n=fh.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 hh=/t|\s/i;function lP(t){let e=ph(t);return function(n){let o=n.split(hh);return o.length===2&&hP(o[0])&&e(o[1])}}function gP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function yP(t,e){if(!(t&&e))return;let[r,n]=t.split(hh),[o,i]=e.split(hh),s=mh(r,o);if(s!==void 0)return s||gh(n,i)}var JF=/\/|:/,YF=/^(?:[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 XF(t){return JF.test(t)&&YF.test(t)}var fP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function QF(t){return fP.lastIndex=0,fP.test(t)}var eU=-(2**31),tU=2**31-1;function rU(t){return Number.isInteger(t)&&t<=tU&&t>=eU}function nU(t){return Number.isInteger(t)}function pP(){return!0}var oU=/[^\\]\\Z/;function iU(t){if(oU.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var _P=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var sU=lh(),Lt=j(),Qr=Lt.operators,Qc={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}},aU={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${Qc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${Qc[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(Qc),type:"string",schemaType:"string",$data:!0,error:aU,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 sU.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}) ${Qc[o].fail} 0`}},dependencies:["format"]};var cU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=cU});var RP=P((Es,bP)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});var Uo=vP(),uU=_P(),yh=j(),SP=new yh.Name("fullFormats"),dU=new yh.Name("fastFormats"),vh=(t,e={keywords:!0})=>{if(Array.isArray(e))return wP(t,e,Uo.fullFormats,SP),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,dU]:[Uo.fullFormats,SP],o=e.formats||Uo.formatNames;return wP(t,o,r,n),e.keywords&&(0,uU.default)(t),t};vh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function wP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,yh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}bP.exports=Es=vh;Object.defineProperty(Es,"__esModule",{value:!0});Es.default=vh});var XP=P((D8,YP)=>{YP.exports=JP;JP.sync=qU;var VP=Rr("fs");function UU(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 KP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:UU(e,r)}function JP(t,e,r){VP.stat(t,function(n,o){r(n,n?!1:KP(o,t,e))})}function qU(t,e){return KP(VP.statSync(t),t,e)}});var nx=P((L8,rx)=>{rx.exports=ex;ex.sync=HU;var QP=Rr("fs");function ex(t,e,r){QP.stat(t,function(n,o){r(n,n?!1:tx(o,e))})}function HU(t,e){return tx(QP.statSync(t),e)}function tx(t,e){return t.isFile()&&GU(t,e)}function GU(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 ix=P((F8,ox)=>{var j8=Rr("fs"),du;process.platform==="win32"||global.TESTING_WINDOWS?du=XP():du=nx();ox.exports=Dh;Dh.sync=ZU;function Dh(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){Dh(t,e||{},function(i,s){i?o(i):n(s)})})}du(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function ZU(t,e){try{return du.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var fx=P((U8,lx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",sx=Rr("path"),BU=Ko?";":":",ax=ix(),cx=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),ux=(t,e)=>{let r=e.colon||BU,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}},dx=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=ux(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(cx(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=sx.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];ax(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)},WU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=ux(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=sx.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(ax.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 cx(t)};lx.exports=dx;dx.sync=WU});var hx=P((q8,Lh)=>{"use strict";var px=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Lh.exports=px;Lh.exports.default=px});var vx=P((H8,yx)=>{"use strict";var mx=Rr("path"),VU=fx(),KU=hx();function gx(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=VU.sync(t.command,{path:r[KU({env:r})],pathExt:e?mx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=mx.resolve(o?t.options.cwd:"",s)),s}function JU(t){return gx(t)||gx(t,!0)}yx.exports=JU});var _x=P((G8,Fh)=>{"use strict";var jh=/([()\][%!^"`<>&|;, *?])/g;function YU(t){return t=t.replace(jh,"^$1"),t}function XU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(jh,"^$1"),e&&(t=t.replace(jh,"^$1")),t}Fh.exports.command=YU;Fh.exports.argument=XU});var wx=P((Z8,Sx)=>{"use strict";Sx.exports=/^#!(.*)/});var Rx=P((B8,bx)=>{"use strict";var QU=wx();bx.exports=(t="")=>{let e=t.match(QU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var Px=P((W8,Cx)=>{"use strict";var Uh=Rr("fs"),eq=Rx();function tq(t){let r=Buffer.alloc(150),n;try{n=Uh.openSync(t,"r"),Uh.readSync(n,r,0,150,0),Uh.closeSync(n)}catch{}return eq(r.toString())}Cx.exports=tq});var Tx=P((V8,Ex)=>{"use strict";var rq=Rr("path"),xx=vx(),kx=_x(),nq=Px(),oq=process.platform==="win32",iq=/\.(?:com|exe)$/i,sq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function aq(t){t.file=xx(t);let e=t.file&&nq(t.file);return e?(t.args.unshift(t.file),t.command=e,xx(t)):t.file}function cq(t){if(!oq)return t;let e=aq(t),r=!iq.test(e);if(t.options.forceShell||r){let n=sq.test(e);t.command=rq.normalize(t.command),t.command=kx.command(t.command),t.args=t.args.map(i=>kx.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 uq(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:cq(n)}Ex.exports=uq});var $x=P((K8,Mx)=>{"use strict";var qh=process.platform==="win32";function Hh(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 dq(t,e){if(!qh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Ax(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Ax(t,e){return qh&&t===1&&!e.file?Hh(e.original,"spawn"):null}function lq(t,e){return qh&&t===1&&!e.file?Hh(e.original,"spawnSync"):null}Mx.exports={hookChildProcess:dq,verifyENOENT:Ax,verifyENOENTSync:lq,notFoundError:Hh}});var zx=P((J8,Jo)=>{"use strict";var Ix=Rr("child_process"),Gh=Tx(),Zh=$x();function Ox(t,e,r){let n=Gh(t,e,r),o=Ix.spawn(n.command,n.args,n.options);return Zh.hookChildProcess(o,n),o}function fq(t,e,r){let n=Gh(t,e,r),o=Ix.spawnSync(n.command,n.args,n.options);return o.error=o.error||Zh.verifyENOENTSync(o.status,n),o}Jo.exports=Ox;Jo.exports.spawn=Ox;Jo.exports.sync=fq;Jo.exports._parse=Gh;Jo.exports._enoent=Zh});var Ux=P(Wh=>{"use strict";var Lx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,yq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,jx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,vq=/\\([\u000b\u0020-\u00ff])/g,_q=/([\\"])/g,Fx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Wh.format=Sq;Wh.parse=wq;function Sq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Fx.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],!jx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+Rq(e[o])}return n}function wq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?bq(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(!Fx.test(n))throw new TypeError("invalid media type");var o=new Cq(n.toLowerCase());if(r!==-1){var i,s,a;for(Lx.lastIndex=r;s=Lx.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(vq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function bq(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 Rq(t){var e=String(t);if(jx.test(e))return e;if(e.length>0&&!yq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(_q,"\\$1")+'"'}function Cq(t){this.parameters=Object.create(null),this.type=t}});import{logger as g4}from"@hermes/logger";import{logger as XH}from"@hermes/logger";var xT="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(xT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as PH}from"@augmentcode/auggie-v2";import{logger as xH}from"@hermes/logger";import{logger as rA}from"@hermes/logger";import{logger as ET}from"@hermes/logger";function kT(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":kT(t,e,r)?"plugin":"local"}function TT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var qm=ET.child({prefix:"pi-mcp"}),AT="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 at(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 MT(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 na=3e4;function $T(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>=na?"failed":void 0}default:return}}var Hm="authentication required",IT="Authentication refresh is pending in the backend; retry shortly.",OT="timed out connecting after 30s",zT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",NT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",DT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",LT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",jT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",FT="Server was not started: this session's Space policy does not allow it.",UT="Server was not started: its shared credential is not available to this session's identity.",qT="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 HT(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)?NT:zT,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",...ZT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}GT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function GT(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=Zm(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 Gm(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 Zm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:jT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:FT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:UT,failureCategory:"share_identity_excluded"};default:return}}function ZT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:qT,failureCategory:"auth_terminal"};let i=Zm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?LT:DT,failureCategory:"configuration"}}function BT(t,e){return e!==void 0?e.isAuthError?Hm:e.error:t.status==="initializing"?OT:t.lastError??(t.status==="auth_required"?Hm:void 0)}function Bm(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 WT(t,e,r){if(Bm(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 VT(t,e){let r=$T(t);if(r===void 0)return;let n=MT(e,t.name),o=r==="connected"?TT(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=Bm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=WT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?IT:BT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function KT(t){let e=[];for(let r of t.servers.values()){let n=VT(r,t);n!==void 0&&e.push(n)}return HT(t,e),e}function N(t,e){try{let r=KT(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(AT,o),qm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){qm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var oa={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function JT(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 Wm(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 Zu(t,e){let r=JT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ia(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Bu(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 ee(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:Zu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ia(t,e,a),c}function Vm(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:Zu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ia(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=oa[n.kind]>oa[a.owner.kind],f=oa[n.kind]===oa[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Wm(a):void 0;Bu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Zu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ia(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Wu(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 sa(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 ct(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=Wm(s);if(a)return Bu(e,r,i),s.host=void 0,s.retirement=a,a}function Km(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?(ia(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:(Bu(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 Vu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Jm(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&&Jm(t.url)===Jm(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 Ku(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:Ku(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:Ku(t.url)===Ku(e.url)}function Ju(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):xr(r,n)}function Ie(t){return/^secret:(private|shared):.+/.test(t)}function Yu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function aa(t,e,r){if(r===void 0||!Ie(r))return r;let n=t.credentialRevisions?.get(e);return n?.domain===r?n.ownerDomain:void 0}function YT(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 XT(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 Ym(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Yu(e,r):n!==void 0&&e!==n}function Xm(t,e,r){return r&&e!==void 0&&t!==void 0&&Yu(t,e)}function QT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Yu(i,n))}function Qm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(XT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Ym({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Ym({identity:s.domain,...l})?!0:QT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function eA(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function tA(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 eg(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=aa(t,e,i),c=aa(t,e,s),u=t.servers?.get(e)?.config,d=YT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:u}),l=d?.id??r,f=d?.registrySource!==void 0||d===void 0&&r!==void 0,p=d?.registrySource===void 0?void 0:`user:${d.id??d.name}`,h=Qm({currentConfig:u,retiredConfig:d,expectedRegistryConfigId:r,retiresRegistryIdentity:f,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:l,retiredOwnerIdentity:p,acceptedDomain:a,currentDomain:c}),m=Xm(a,l,f),g=Xm(c,l,f),v=!h,w=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,R=h&&!(v||m||g||w);if(o==="durable"){let Q=eA({name:e,retiredConfig:d,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,Q,{preserveNameState:R})}let _=Qm({currentConfig:t.servers?.get(e)?.config,retiredConfig:d,expectedRegistryConfigId:r,retiresRegistryIdentity:f,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:l,retiredOwnerIdentity:p,acceptedDomain:aa(t,e,t.oauthCredentialDomains?.get(e)),currentDomain:aa(t,e,t.credentialRevisions?.get(e)?.domain)}),C=v&&!_,I=!1;return t.equalRevisionRebindDomains?.delete(e),(C||m)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),I=!0),(C||g)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),I=!0),C&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),tA({state:t,name:e,mode:o,stillOwnsNameScopedRevision:C,retiredConfig:d}),I&&(di(t,e),at(t,e),t.authRefreshNeededReportKeys?.delete(e)),C}function ht(t,e,r,n){return eg(t,e,r,n,"durable")}function li(t,e,r,n){return eg(t,e,r,n,"session")}function ca(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 tg="augment:mcp-oauth-credentials",rg=300*1e3,nA=256,Xu=rA.child({prefix:"pi-mcp"}),Et=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function He(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:He(t.slice(e+1))}function dn(t){return t.ownerDomain??Er(t.domain)}function ng(t,e,r){let n=He(e);return r!==void 0?r===n:Ie(t)||Er(t)===n}function oA(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function iA(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 sA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function aA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&oA(t.credentialRevisions.get(e),r.credentialRevision)&&sA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function cA(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 uA(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 og(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 ig(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=rg)&&or(t,n)}function dA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function sg(t,e){let r=t?.credential_revision_domain??t?.credentialRevisionDomain;if(!(r!==e&&(Ie(e)||typeof r=="string"&&Ie(r))))return t?.credential_revision??t?.credentialRevision}function ag(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();ig(e,a);let c=dn(n),u=Ie(c)?`${c}\0${r}`:c,d=s.get(u),l=sg(d?.credential,n.domain);if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=nA&&dA(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)},rg),f.expiryTimer.unref?.(),Xu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function lA(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ye(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 ua(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&&Ye({state:e,domain:r,epoch:o.epoch});let s={epoch:lA(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 cg(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ye({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)&&!Ie(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);ua({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function fA(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=He(r.id),o=cA(r),i=uA({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?(Ye({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=ua({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),pA({state:e,config:r,domain:n}),{domain:n,...s}}function ug(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?sg(c.credential,r.domain):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 pA(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&&!Ie(o)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),at(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function hA(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),Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(tg,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function mA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();ig(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&&Ie(s.split("\0",1)[0]))return or(e,s),a}function gA(t){let{config:e,pi:r,buffered:n}=t;Xu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Xu.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(tg,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function yA(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 vA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=aA(e,r.name,o);Ye({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 _A(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 yA({state:e,config:r,previousConfig:i})}catch(h){throw vA({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 Ye({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),hA({state:e,config:r,pi:n,intent:o});let p=mA({state:e,domain:o.domain,serverName:r.name});return Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&gA({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=fA({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=iA(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 _A({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 $A}from"@augmentcode/auggie-v2";import{homedir as dg}from"node:os";import{sep as SA}from"node:path";var Qu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},wA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,bA=/\\\$\{/g,RA=new Set(["workspaceFolder","augmentToken"]),lg="${workspaceFolder}";function fg(t,e){return t.includes(lg)?t.split(lg).join(e):t}function pg(t,e){return t.includes("${")?t.replace(wA,(n,o,i)=>{if(RA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Qu(o)}).replace(bA,"${"):t}function CA(t){return t.startsWith("~")?t==="~"?dg():t.startsWith("~/")||t.startsWith(`~${SA}`)?dg()+t.slice(1):t:t}function ed(t,e,r){return CA(pg(fg(t,e),r))}function Xn(t,e,r){return pg(fg(t,e),r)}function hg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var PA="$augment-";function xA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(PA)?i:Xn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:xA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:ed(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?hg(t.env,e,r):void 0,cwd:t.cwd?ed(t.cwd,e,r):e}}import{readFileSync as EA}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 kA(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`);let a=typeof e.clientId=="string"?e.clientId.trim():void 0;return{type:r,name:e.name??t,disabled:e.disabled,url:e.url,headers:e.headers,auth:e.auth==="oauth"?"oauth":void 0,...a?{clientId:a}:{},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:kA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var yg=t=>EA(t,"utf8");function da(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function mg(t){return da(t)&&("command"in t||"url"in t)}function rd(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function gg(t,e){return rd(t.name)??e}function td(t,e){let r=Qn(t);if(r==="http"||r==="sse")return rd(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return rd(t.name,t.title,n)??e}function TA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[td(n,String(r)),n]});if(da(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[td(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(da(n))return Object.entries(n).map(([o,i])=>{let s=i;return[gg(s,o),s]})}if(mg(t)){let r=t;return[[td(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(mg))return Object.entries(t).map(([r,n])=>{if(!da(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[gg(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 nd(t){return t instanceof Error?t.message:String(t)}function AA(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}": ${nd(i)}`});return}}function MA(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=AA(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}: ${nd(c)}`}),[]}try{return TA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${nd(c)}`}),[]}}function od(t,e=yg){let r={},n=[];for(let o of t)for(let[i,s]of MA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function id(t,e=yg){return!t||t.length===0?new Set:new Set(Object.keys(od(t,e).servers))}var IA=["global","project","local","managed"];function OA(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 zA(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 NA(t,e,r){let n=od(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 DA(t,e,r){let n=$A.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 zA(IA.map(o=>OA(n,o)))}function to(t,e,r,n){let o=[],i=r!==void 0&&r.length>0,s=i?NA(r,n,o):DA(t,e,o),a=[];for(let[c,u]of Object.entries(s))try{let d=eo(c,i?u:{...u,name:c});a.push(d.type==="stdio"?Zt(d,t):Gt(d,t))}catch(d){let l=d instanceof Tt?d.message:`Failed to normalize MCP server "${c}": ${d instanceof Error?d.message:String(d)}`;o.push({server:c,message:l})}return{servers:a,diagnostics:o}}import{setToolSource as Rg}from"@augmentcode/auggie-v2";import{logger as VA}from"@hermes/logger";import{Type as KA}from"@sinclair/typebox";var la=Symbol.for("__pi_mcp_state__");function LA(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 jA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function FA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&LA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&jA(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 UA(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&&FA(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&&ee(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 sd(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 fa(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function pa(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()?sd({state:e,configId:r,generation:n}):fa({state:e,configId:r,generation:n}),s),s=>{throw fa({state:e,configId:r,generation:n}),s})}function te(){let t=globalThis;if(t[la])return UA(t[la]),t[la];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[la]=e,e}var vg=Symbol.for("__hermes_mcp_tool_registry__"),_g=Symbol.for("__hermes_mcp_tool_server_registry__"),qA=Symbol.for("__hermes_mcp_extension_factory__");function cd(){let t=globalThis;return t[vg]??=new Map,t[vg]}function ad(){let t=globalThis;return t[_g]??=new Map,t[_g]}function Sg(t){return cd().get(t)}function Mr(t,e){cd().set(t.name,t),e===void 0?ad().delete(t.name):ad().set(t.name,e)}function no(t,e){let r=cd();(e===void 0||r.get(t)===e)&&(r.delete(t),ad().delete(t))}function wg(t){Reflect.set(t,qA,!0)}function ha(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 HA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function GA(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 ZA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
+ `).trim()}function ud(t,e,r){if(t.isError){let o=ZA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=GA(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 bg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ha(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=HA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return ud(o,t.serverName,r)}var BA=/[^a-zA-Z0-9_-]/g;function dd(t){return t.replace(BA,"_")}function WA(t,e){let r=dd(e),n=dd(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=WA(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=`_${dd(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var ma=VA.child({prefix:"pi-mcp"});function ga(){return te().toolRegistrationsByPi}function Cg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=KA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){ma.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}ma.warn(`Skipping MCP tool "${r}/${n.name}": invalid input schema (${c instanceof Error?c.message:String(c)})`);return}let a=()=>te().servers.get(r);return{name:i,label:n.name,description:n.description??"",parameters:s,execute:(c,u,d,l,f)=>bg({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 ld(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),JA(t,e,n,r,o)}function JA(t,e,r,n,o){let i=te();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=Cg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;Rg(r,"mcp"),t.registerTool(p),Mr(p,s),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 YA(t,e){let r=ga(),n=r.get(t);n||(n={byServer:new Map,ownerByToolName:new Map},r.set(t,n));let o=te().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)ld(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 fd(t,e){let{registration:r,replaced:n}=YA(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=te();g.diagnostics.some(w=>w.server===s&&(w.message===m||w.message.includes(`both map to "${l}"`)))||(ma.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=Cg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(Rg(l,"mcp"),t.registerTool(p),Mr(p,s),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ga().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ga().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&ld(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&ma.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function pd(t,e,r){let n=ga().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)ld(t,n,o,i);return n.byServer.delete(e.name),!0}function Pg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&fd(t,r)}import{getToolSource as sM}from"@augmentcode/auggie-v2";import{Type as XA}from"@sinclair/typebox";var QA=!1,xg=2e4;function eM(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function tM(t){let e=0;for(let r of t.servers.values())e+=rM(r);return e}function rM(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||nM(n.inputSchema)&&(r+=eM(n))}return r}function nM(t){try{return XA.Unsafe(t??{}),!0}catch{return!1}}function oM(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:QA}function iM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:xg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:xg}function kg(t){return oM(t)?tM(t)>=iM(t):!1}var aM="AUGGIE_ENABLE_TOOL_SEARCH",cM="AUGGIE_DISABLE_TOOL_SEARCH",uM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[aM]==="1"}function hd(t){return process.env[cM]!=="1"&&t.featureFlags?.flags.cliMcpToolSearchAutoEnable===!0}function Ir(t){return pi()?!0:hd(t)?t.toolSearchLatched?!0:kg(t)?(t.toolSearchLatched=!0,!0):!1:!1}function ya(t){let e=t.getActiveTools(),r=e.filter(n=>!dM(n)||uM.has(n));r.length!==e.length&&t.setActiveTools(r)}function dM(t){return sM(t)==="mcp"}import{setToolSource as zg}from"@augmentcode/auggie-v2";import{logger as AM}from"@hermes/logger";import{Type as Ng}from"@sinclair/typebox";import{logger as lM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Or={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Eg=lM.child({prefix:"pi-mcp"}),fM=5e3,pM=1,hM=2,mM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),gM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function yM(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 vM(t){return t===pM||typeof t=="string"&&mM.has(t)?"available":t===hM||typeof t=="string"&&gM.has(t)?"opt_in_required":"unknown"}function _M(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:yM(t.auth_type),state:vM(t.state)}}function md(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 va(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return va(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!md(t,r)):[]}async function Tg(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??fM)});if(!i.ok)return Eg.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=_M(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Eg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var SM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",wM=`You are a tool search assistant. Given a user's query and a list of available tools, identify the single best matching tool.
10
10
 
11
11
  <user_query>{{query}}</user_query>
12
12
 
13
13
  Available tools on MCP server "{{server_name}}":
14
14
  {{tool_list}}
15
15
 
16
- Respond with ONLY the tool name (no markdown, no explanation).`,SM=/[\n\r]/g,wM=/</g,bM=/>/g;function fn(t){return t.replace(SM," ").replace(wM,"\u2039").replace(bM,"\u203A").trim()}function RM(){let t=process.env[vM];return t?.trim()?t:_M}var CM=/\{\{(query|server_name|tool_list)\}\}/g;function Tg(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return RM().replace(CM,o=>n[o]??o)}function Pe(t){return{content:[{type:"text",text:t}],details:void 0}}function Ag(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function md(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function _a(t,e,r){let n={mcp_server:t,tools:Ag(e).map(md),note:r};return Pe(JSON.stringify(n,null,2))}function Mg(t){return Ag(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
17
- `)}function $g(t){let e=t.trim();try{let r=JSON.parse(e);if(typeof r.tool_name=="string")return r.tool_name}catch{}return e}import{complete as PM}from"@earendil-works/pi-ai";var xM="augment:tool-search-usage";function kM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Ig(t,e,r){let n=e.model;if(!n)return;let o=await e.modelRegistry.getApiKeyAndHeaders(n);if(!(o.ok&&o.apiKey))return;let i={role:"user",content:[{type:"text",text:r}],timestamp:Date.now()},s=await PM(o.baseUrl?{...n,baseUrl:o.baseUrl}:n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(xM,a),kM(s)}var Dg=EM.child({prefix:"pi-mcp"}),oo="find-tool",zr="execute-tool",TM=10,Ng=15,AM=20,MM={type:"object",properties:{query:{type:"string",description:"Detailed description of the task you need a tool for: the action (create, read, search, delete, \u2026), the target resource, and relevant context (field names, filters). More specific queries match better."},mcp_server:{type:"string",description:"Name of the MCP server to search."}},required:["query","mcp_server"]},$M={type:"object",properties:{mcp_server:{type:"string",description:"Name of the MCP server hosting the tool."},tool_name:{type:"string",description:"Original MCP tool name returned by find-tool."},arguments:{type:"object",description:"Arguments object to pass to the tool."}},required:["mcp_server","tool_name","arguments"]};function gd(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function IM(t){let e=[...te().servers.values()].filter(c=>c.status==="success"),r=e.find(c=>c.name===t);if(r)return{server:r,name:r.name};let n=gd(t),o=e.filter(c=>n.length>0&&gd(c.name)===n);if(o.length===1){let[c]=o;return{server:c,name:c.name}}let i=n.split(" ").filter(Boolean),s=e.filter(c=>{let u=new Set(gd(c.name).split(" "));return n.length>0&&i.every(d=>u.has(d))});if(s.length===1){let[c]=s;return{server:c,name:c.name}}let a=[...o,...s].map(c=>c.name).filter((c,u,d)=>d.indexOf(c)===u).sort();if(a.length>1){let c=e.map(u=>u.name).sort();throw new Error(`MCP server name "${t}" is ambiguous. Matching servers: ${a.join(", ")}. Use an exact server name. Available servers: ${c.join(", ")}.`)}}function Lg(t,e){let r=te(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=ln(r).find(l=>l.id===e.trim()||l.name.toLowerCase()===u);if(d)throw new Error(`MCP server "${d.name}" is available but not attached. Call attach-mcp-server now with config_id "${d.id}"; it attaches directly without requiring user approval.`)}let o=n.includes(e)?void 0:IM(e);if(o)return o;let i=t.getActiveTools(),s=r.servers.get(e),a=[...r.servers.values()].filter(u=>u.status==="success").map(u=>u.name).sort(),c=ha(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function OM(t){if(t==null)throw new Error(`${zr} requires an "arguments" object with the tool's parameters.`);if(typeof t!="object"||Array.isArray(t)){let e=Array.isArray(t)?"an array":typeof t;throw new Error(`${zr} "arguments" must be an object, not ${e}.`)}return t}async function zM(t,e,r,n,o){let i=Tg(r,n,Mg(o)),s=await Ig(t,e,i);if(!s)return;let a=$g(s);return o.find(c=>c.name===a)}async function NM(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${oo} requires string "query" and "mcp_server" parameters.`);let i=Lg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=TM)return _a(i.name,s,"All tools on this server.");try{let a=await zM(t,e,n,i.name,s);return a?Pe(JSON.stringify(md(a),null,2)):_a(i.name,s,"No single best match; all tools listed.")}catch(a){return Dg.warn(`${oo} LLM match failed: ${a instanceof Error?a.message:String(a)}`),_a(i.name,s,"Search failed; all tools listed.")}}async function DM(t,e,r,n){let{mcp_server:o,tool_name:i,arguments:s}=e??{};if(typeof o!="string"||typeof i!="string")throw new Error(`${zr} requires string "mcp_server" and "tool_name" parameters.`);let a=OM(s),c=Lg(t,o),u=await c.server.callTool(i,a,r,n);return ud(u,c.name,i)}function LM(){let t=te(),e=[...t.servers.values()].filter(i=>i.status==="success"),r=`Search for the right MCP tool. Call with a natural-language query and the target MCP server name to get the best-matching tool, then run it with ${zr}. When this gateway is present, MCP tools may intentionally be absent as top-level tools. Before reporting an expected MCP capability unavailable, search its attached server with ${oo}, then invoke it with ${zr}.`,n=[];if(e.length===0)n.push(`${r} No MCP servers are currently connected.`);else{let i=e.map(s=>{let a=s.listTools().map(d=>d.name),c=a.slice(0,Ng).join(", "),u=a.length>Ng?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
16
+ Respond with ONLY the tool name (no markdown, no explanation).`,bM=/[\n\r]/g,RM=/</g,CM=/>/g;function fn(t){return t.replace(bM," ").replace(RM,"\u2039").replace(CM,"\u203A").trim()}function PM(){let t=process.env[SM];return t?.trim()?t:wM}var xM=/\{\{(query|server_name|tool_list)\}\}/g;function Ag(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return PM().replace(xM,o=>n[o]??o)}function Pe(t){return{content:[{type:"text",text:t}],details:void 0}}function Mg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function gd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function _a(t,e,r){let n={mcp_server:t,tools:Mg(e).map(gd),note:r};return Pe(JSON.stringify(n,null,2))}function $g(t){return Mg(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
17
+ `)}function Ig(t){let e=t.trim();try{let r=JSON.parse(e);if(typeof r.tool_name=="string")return r.tool_name}catch{}return e}import{complete as kM}from"@earendil-works/pi-ai";var EM="augment:tool-search-usage";function TM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Og(t,e,r){let n=e.model;if(!n)return;let o=await e.modelRegistry.getApiKeyAndHeaders(n);if(!(o.ok&&o.apiKey))return;let i={role:"user",content:[{type:"text",text:r}],timestamp:Date.now()},s=await kM(o.baseUrl?{...n,baseUrl:o.baseUrl}:n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(EM,a),TM(s)}var Lg=AM.child({prefix:"pi-mcp"}),oo="find-tool",zr="execute-tool",MM=10,Dg=15,$M=20,IM={type:"object",properties:{query:{type:"string",description:"Detailed description of the task you need a tool for: the action (create, read, search, delete, \u2026), the target resource, and relevant context (field names, filters). More specific queries match better."},mcp_server:{type:"string",description:"Name of the MCP server to search."}},required:["query","mcp_server"]},OM={type:"object",properties:{mcp_server:{type:"string",description:"Name of the MCP server hosting the tool."},tool_name:{type:"string",description:"Original MCP tool name returned by find-tool."},arguments:{type:"object",description:"Arguments object to pass to the tool."}},required:["mcp_server","tool_name","arguments"]};function yd(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function zM(t){let e=[...te().servers.values()].filter(c=>c.status==="success"),r=e.find(c=>c.name===t);if(r)return{server:r,name:r.name};let n=yd(t),o=e.filter(c=>n.length>0&&yd(c.name)===n);if(o.length===1){let[c]=o;return{server:c,name:c.name}}let i=n.split(" ").filter(Boolean),s=e.filter(c=>{let u=new Set(yd(c.name).split(" "));return n.length>0&&i.every(d=>u.has(d))});if(s.length===1){let[c]=s;return{server:c,name:c.name}}let a=[...o,...s].map(c=>c.name).filter((c,u,d)=>d.indexOf(c)===u).sort();if(a.length>1){let c=e.map(u=>u.name).sort();throw new Error(`MCP server name "${t}" is ambiguous. Matching servers: ${a.join(", ")}. Use an exact server name. Available servers: ${c.join(", ")}.`)}}function jg(t,e){let r=te(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=ln(r).find(l=>l.id===e.trim()||l.name.toLowerCase()===u);if(d)throw new Error(`MCP server "${d.name}" is available but not attached. Call attach-mcp-server now with config_id "${d.id}"; it attaches directly without requiring user approval.`)}let o=n.includes(e)?void 0:zM(e);if(o)return o;let i=t.getActiveTools(),s=r.servers.get(e),a=[...r.servers.values()].filter(u=>u.status==="success").map(u=>u.name).sort(),c=ha(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function NM(t){if(t==null)throw new Error(`${zr} requires an "arguments" object with the tool's parameters.`);if(typeof t!="object"||Array.isArray(t)){let e=Array.isArray(t)?"an array":typeof t;throw new Error(`${zr} "arguments" must be an object, not ${e}.`)}return t}async function DM(t,e,r,n,o){let i=Ag(r,n,$g(o)),s=await Og(t,e,i);if(!s)return;let a=Ig(s);return o.find(c=>c.name===a)}async function LM(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${oo} requires string "query" and "mcp_server" parameters.`);let i=jg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=MM)return _a(i.name,s,"All tools on this server.");try{let a=await DM(t,e,n,i.name,s);return a?Pe(JSON.stringify(gd(a),null,2)):_a(i.name,s,"No single best match; all tools listed.")}catch(a){return Lg.warn(`${oo} LLM match failed: ${a instanceof Error?a.message:String(a)}`),_a(i.name,s,"Search failed; all tools listed.")}}async function jM(t,e,r,n){let{mcp_server:o,tool_name:i,arguments:s}=e??{};if(typeof o!="string"||typeof i!="string")throw new Error(`${zr} requires string "mcp_server" and "tool_name" parameters.`);let a=NM(s),c=jg(t,o),u=await c.server.callTool(i,a,r,n);return ud(u,c.name,i)}function FM(){let t=te(),e=[...t.servers.values()].filter(i=>i.status==="success"),r=`Search for the right MCP tool. Call with a natural-language query and the target MCP server name to get the best-matching tool, then run it with ${zr}. When this gateway is present, MCP tools may intentionally be absent as top-level tools. Before reporting an expected MCP capability unavailable, search its attached server with ${oo}, then invoke it with ${zr}.`,n=[];if(e.length===0)n.push(`${r} No MCP servers are currently connected.`);else{let i=e.map(s=>{let a=s.listTools().map(d=>d.name),c=a.slice(0,Dg).join(", "),u=a.length>Dg?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
18
18
  ${i.join(`
19
- `)}`)}let o=ln(t).slice(0,AM);if(o.length>0){let i=o.map(s=>{let a=fn(s.description),c=s.requiresAuth?" [requires auth]":"";return`- ${s.name}${a?` \u2014 ${a}`:""}${c}`});n.push(`Available but not attached (use attach-mcp-server to enable):
19
+ `)}`)}let o=ln(t).slice(0,$M);if(o.length>0){let i=o.map(s=>{let a=fn(s.description),c=s.requiresAuth?" [requires auth]":"";return`- ${s.name}${a?` \u2014 ${a}`:""}${c}`});n.push(`Available but not attached (use attach-mcp-server to enable):
20
20
  ${i.join(`
21
21
  `)}
22
22
  When the user's request requires one of these servers, call attach-mcp-server immediately; it attaches directly without requiring user approval.`)}return n.join(`
23
23
 
24
- `)}function ir(t){let e={name:oo,label:oo,description:LM(),parameters:zg.Unsafe(MM),execute:(n,o,i,s,a)=>NM(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:zg.Unsafe($M),execute:(n,o,i)=>DM(t,o,i,{toolCallId:n})};Og(oo,"mcp"),Og(zr,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Dg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as lk}from"@augmentcode/auggie-v2";import{logger as Eq,logPublic as Tq}from"@hermes/logger";import{logger as BM}from"@hermes/logger";import{logger as jM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var jg=jM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},yd=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 vd(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,!vd(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 Sa=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??yd}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 Fg(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)}`;jg.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)}`;jg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function FM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Ug=32;function UM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Ug&&(e=e.slice(0,Ug)),e=e.replace(/_+$/,""),e}function qg(t,e){let r=e?UM(e):"",n=FM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Hg(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 qM=1e12,HM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function GM(t){let e=HM.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 ZM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<qM?t*1e3:t;if(typeof t=="string")return GM(t)}function Gg(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:ZM(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=BM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},Bg=[100,500],WM=Bg.length+1,VM=t=>new Promise(e=>{setTimeout(e,t)});function Zg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var Sd="augment.mcp-access-token.",KM=JSON.stringify({retired:!0}),wa=3;function Wt(t){return`${Sd}${t}`}function ba(t){return`legacy:${t}`}function At(t){return t?.id?qg(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:Wg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Wg(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:Wg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return _i(vi(t))}function JM(t){return _i(vi(t))}function YM(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:YM(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=Hg({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 XM(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function QM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=JM(e),i=_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 _d(t){try{let e=Gg(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=VM){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<wa;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=_d(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||!_d(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:ba(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!==ba(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:ba(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<wa;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<wa;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,XM(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:ba(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Zg(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?WM: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?Bg[r]:void 0,i=!(e instanceof Z)&&vd(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),KM)}):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(Zg(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<wa;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=_d(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?QM(o,n):void 0}catch{return}}async ensureLoaded(e,r){if(this._memory.get(e)||!this._shouldPersist()||this.hasInFlightWrite(e))return;let o=this._getClient();if(!o)return;let i=this._memory.credentialRetirementGeneration(e),s=await this._loadRegistryToken(o,r);if(s.identityRejected)return;let a=s.token?{identityMatched:!0,token:s.token}:void 0;if(!(this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i)){if(!a){if(this._memory.isCredentialRetired(e))return;a=r?.id?await this._importLegacyToken(o,e,r,s.authorityVersion):await this._loadLegacyToken(o,e,r)}if(!a){Bt.debug(`Backend secret for MCP server "${e}" is not a usable OAuth token; ignoring`);return}this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i||(this.commit(e,a.token,a.identityMatched?r:void 0),Bt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Vg="Augment Code",Kg="https://augmentcode.com",Jg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var t0=1e3,r0=500;function bd(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 wd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Yg(t){return new URLSearchParams({k:t}).toString().slice(2)}function n0(t,e){let r=`${Yg(t)}:${Yg(e)}`;return`Basic ${btoa(r)}`}function ty(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function o0(t){return t.client.token_endpoint_auth_method==="none"||!ty(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function i0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function s0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var a0=401,ry=500;function Rd(t,...e){return t.status<ry&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Xg(t){return Rd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===a0}async function Qg(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=ty(t);e==="basic"&&i?n.Authorization=n0(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=s0(c),d=c.slice(0,r0);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new wd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*t0:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function ey(t,e){try{return await Qg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&Rd(r,"invalid_target"))return await Qg(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 Cd(t){return!(t instanceof gn)||t.status>=ry?!1:Rd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Pd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=o0(t);try{return await ey(e,r)}catch(n){let o=i0(r);if(!(n instanceof gn)||!o||!Xg(n))throw n;try{return await ey(e,o)}catch(i){throw i instanceof gn&&Xg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as t$}from"@hermes/logger";var Ed;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Ed="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",Xe="ERR_INVALID_ARG_TYPE";function he(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var Id=Symbol(),c0=Symbol(),u0=Symbol(),vn=Symbol();var ny=Symbol();var d0=new TextEncoder,l0=new TextDecoder;function Td(t){return typeof t=="string"?d0.encode(t):l0.decode(t)}var Ad;Uint8Array.prototype.toBase64?Ad=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Ad=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 Md;Uint8Array.fromBase64?Md=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:Md=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 Ca(t){return typeof t=="string"?Md(t):Ad(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=H0,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 Pa(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Od(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Ed&&!e.has("user-agent")&&e.set("user-agent",Ed),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function zd(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',Xe);return e}}function f0(t){return t.includes("//")?t.replace("//","/"):t}function p0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=f0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function h0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Xe);hy(t,n?.[Id]!==!0);let o=r(new URL(t.href)),i=Od(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:zd(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`,Xe,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`,Xe,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 sy(t,e){let r=t;if(!(r instanceof URL)&&r!==Ea)throw he('"expectedIssuerIdentifier" must be an instance of URL',Xe);if(!lo(e,Response))throw he('"response" must be an instance of Response',Xe);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',Hd,e);Ci(e);let n=await $a(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==Ea&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Aa,{expected:r.href,body:n,attribute:"issuer"});return n}function ay(t){g0(t,"application/json")}function m0(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,Z0,t)}function g0(t,e){if(E0(t)!==e)throw m0(t,e)}function Nd(){return Ca(crypto.getRandomValues(new Uint8Array(32)))}function cy(){return Nd()}function uy(){return Nd()}function dy(){return Nd()}async function ly(t){return $e(t,"codeVerifier"),Ca(await crypto.subtle.digest("SHA-256",Td(t)))}function Dd(t){let e=t?.[c0];return typeof e=="number"&&Number.isFinite(e)?e:0}function Ld(t){let e=t?.[u0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function jd(){return Math.floor(Date.now()/1e3)}function Ta(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Xe);$e(t.issuer,'"as.issuer"')}function Fd(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Xe);$e(t.client_id,'"client.client_id"')}function oy(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 Ud(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function fy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=oy(r.client_id),s=oy(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function py(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var y0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function hy(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",B0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",W0,t)}function iy(t,e,r,n){let o;if(typeof t!="string"||!(o=y0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?V0:K0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return hy(o,n),o}function my(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?iy(t.mtls_endpoint_aliases[e],e,r,n):iy(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=q0,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=G0,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=U0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},xa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",v0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",_0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',S0="("+xa+")\\s*=\\s*"+_0,w0="("+xa+")\\s*=\\s*("+xa+")",b0=new RegExp("^[,\\s]*("+xa+")"),R0=new RegExp("^[,\\s]*"+S0+"[,\\s]*(.*)"),C0=new RegExp("^[,\\s]*"+w0+"[,\\s]*(.*)"),P0=new RegExp("^("+v0+")(?:$|[,\\s])(.*)");function x0(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);let e=t.headers.get("www-authenticate");if(e===null)return;let r=[],n=e;for(;n;){let o=n.match(b0),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(R0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(C0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(P0)){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 k0(t){if(t.status>399&&t.status<500){Ci(t),ay(t);try{let e=await t.clone().json();if(Pa(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function gy(t,e,r){if(t.status!==e){$0(t);let n;throw(n=await k0(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)`,Hd,t)}}function yy(t){if(!qd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function E0(t){return t.headers.get("content-type")?.split(";")[0]}async function T0(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:zd(n,s?.signal)})}async function A0(t,e,r,n,o,i){let s=my(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Id]!==!0);o.set("grant_type",n);let a=Od(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(yy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await T0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var vy=new WeakMap,M0=new WeakMap;function _y(t){if(!t.id_token)return;let e=vy.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function Sy(t,e,r,n,o,i){if(Ta(t),Fd(e),!lo(r,Response))throw he('"response" must be an instance of Response',Xe);await gy(r,200,"Token Endpoint"),Ci(r);let s=await $a(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 J0(s.id_token,Y0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Dd(e),Ld(e),o).then(L0.bind(void 0,a)).then(O0.bind(void 0,t)).then(I0.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}),M0.set(r,u),vy.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 $0(t){let e;if(e=x0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function I0(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 O0(t,e){let r=t[e$]?.(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 qd=new WeakSet;function z0(t){return qd.add(t),t}var N0=Symbol();async function wy(t,e,r,n,o,i,s){if(Ta(t),Fd(e),!qd.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!==N0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),A0(t,e,r,"authorization_code",c,s)}var D0={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 L0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${D0[r]}) claim missing`,V,{claims:e.claims});return e}var xd=Symbol(),kd=Symbol();async function by(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?j0(t,e,r,n.expectedNonce,n.maxAge,n[ny],n.recognizedTokenTypes):F0(t,e,r,n?.[ny],n?.recognizedTokenTypes)}async function j0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=xd;break;case xd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=kd;break;case kd:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await Sy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=_y(c);if(o!==kd){let d=jd()+Dd(e),l=Ld(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",ka,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===xd){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 F0(t,e,r,n,o){let i=await Sy(t,e,r,void 0,n,o),s=_y(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=jd()+Dd(e),c=Ld(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",ka,{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 U0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",q0="OAUTH_RESPONSE_BODY_ERROR",H0="OAUTH_UNSUPPORTED_OPERATION",G0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var $d="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var Z0="OAUTH_RESPONSE_IS_NOT_JSON",Hd="OAUTH_RESPONSE_IS_NOT_CONFORM",B0="OAUTH_HTTP_REQUEST_FORBIDDEN",W0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",ka="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Nr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Aa="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var V0="OAUTH_MISSING_SERVER_METADATA",K0="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function J0(t,e,r,n,o){let{0:i,1:s,length:a}=t.split(".");if(a===5)if(o!==void 0)t=await o(t),{0:i,1:s,length:a}=t.split(".");else throw new co("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(Td(Ca(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",$d,l)}if(!Pa(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(Td(Ca(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",$d,l)}if(!Pa(u))throw O("JWT Payload must be a top level object",V,t);let d=jd()+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',ka,{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',ka,{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 Y0(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 X0=Symbol(),Q0=Symbol();function Ry(t,e,r,n){if(Ta(t),Fd(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw he('"parameters" must be an instance of URLSearchParams, or URL',Xe);if(yn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=yn(r,"iss"),i=yn(r,"state");if(!o&&t.authorization_response_iss_parameter_supported)throw O('response parameter "iss" (issuer) missing',V,{parameters:r});if(o&&o!==t.issuer)throw O('unexpected "iss" (issuer) response parameter value',V,{expected:t.issuer,parameters:r});switch(n){case void 0:case Q0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case X0: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 z0(new URLSearchParams(r))}async function Cy(t,e,r){Ta(t);let n=my(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Id]!==!0),o=Od(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(yy(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:zd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function Py(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);await gy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await $a(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 xy(t,e){return h0(t,"resourceIdentifier",r=>(p0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Ma(t,e){let r=t;if(!(r instanceof URL)&&r!==Ea)throw he('"expectedResourceIdentifier" must be an instance of URL',Xe);if(!lo(e,Response))throw he('"response" must be an instance of Response',Xe);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',Hd,e);Ci(e);let n=await $a(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==Ea&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Aa,{expected:r.href,body:n,attribute:"resource"});return n}async function $a(t,e=ay){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',$d,n)}if(!Pa(r))throw O('"response" body must be a top level object',V,{body:r});return r}var Ea=Symbol(),e$=Symbol();var Ty=t$.child({prefix:"pi-mcp"}),Pi=1e4,r$=1e3,n$=401,ky=200,o$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,i$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Ay;function fo(){return Ay??globalThis.fetch}function My(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function $y(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Zd(t){let e=$y(t);try{let r=await s$(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await l$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw za(r)}throw new Error("Failed to discover metadata URL")}async function s$(t){try{let e=await xy(t,{signal:AbortSignal.timeout(Pi),[vn]:Ay??void 0});return e.ok?await Ma(t,e):(e.body?.cancel().catch(()=>{}),await Iy(t,e.headers.get("www-authenticate"))??await Ey(t))}catch{return await Ey(t)}}async function Ey(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 Iy(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function Iy(t,e){let r=d$(e);if(r)try{let n=await fo()(r,{signal:AbortSignal.timeout(Pi)});return await a$(t,n)}catch{return}}async function a$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Ma(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Aa)throw o;let i=c$(r);if(!i||!u$(i,t))throw o;return await Ma(i,new Response(r,n))}}function c$(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function u$(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 d$(t){if(!t)return;let e=t.match(o$),r=t.match(i$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function l$(t){for(let e of f$(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 f$(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 Bd(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 p$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await sy(o,new Response(r,n))}catch(e){throw za(e)}}async function p$(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 Gd=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 h$(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 Wd({config:t,serverMetadata:e,redirectUris:r,preferStaticClient:n=!1}){let o=t.clientId?.trim(),i=t.clientSecret?.trim();if(!!o&&(n||!!i||!e.registration_endpoint))return h$({...t,clientId:o});if(!e.registration_endpoint)throw new Gd(e.issuer);return await m$(e,r)}async function m$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await Cy(t,{client_name:Vg,client_uri:Kg,logo_uri:Jg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:g$});return n.ok||Ty.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await Py(n)}catch(r){throw za(r)}}async function g$(t,e){let r=await fo()(t,My(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||Ty.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${v$(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 y$(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,My(o))}function v$(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>ky?`${t.slice(0,ky)}\u2026`:t}}async function Ia(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=cy(),c=await ly(a),u=uy(),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=$y(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=dy(),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 Oa(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Vd(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 Ia(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function _$(t,e,r){let n=await wy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:y$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return by(t.serverMetadata,t.client,await S$(n))}async function Kd(t,e){try{let r=Ry(e.serverMetadata,e.client,t,e.state),n=await b$(e.client,o=>_$(e,r,o));return P$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw za(r)}}async function S$(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 Oy(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function w$(t){let e=Oy(t);return e===void 0?py():t.token_endpoint_auth_method==="client_secret_basic"?fy(e):Ud(e)}async function b$(t,e){try{return await e(w$(t))}catch(r){let n=R$(t);if(n&&C$(r))return await e(n);throw r}}function R$(t){let e=Oy(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Ud(e)}function C$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===n$||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function P$(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*r$:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function za(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 x$=/(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,zy=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Ny=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Dy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",k$=/[.*+?^${}()|[\]\\]/g;function Jd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function E$(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:Jd(a,r),{value:c&&"value"in c?Ly(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 Ly(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Jd(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 Jd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:E$(t,e,r)}function Xd(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(k$,"\\$&")).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=>Ly(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var T$=500,A$=8192,M$=6;function $$(t){return zy.test(t)||Ny.test(t)||Dy.test(t)}var I$=new RegExp(zy.source,"g"),O$=new RegExp(Ny.source,"gi"),z$=new RegExp(Dy.source,"g");function jy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Na(t){return t&&jy(t,A$).replace(I$,_n).replace(O$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(z$,_n)}function Yd(t,e,r){if(e)return _n;if(typeof t=="string")return $$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=M$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Yd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Yd(i,x$.test(o),r+1);return n}function Fy(t,e=T$){if(t==null)return;let r=Yd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return jy(n,e)}var qy={reportError:()=>{}},Uy=Symbol.for("__pi_mcp_error_reporter_slot__");function Hy(){let t=globalThis,e=t[Uy];return e||(e={reporter:null},t[Uy]=e),e}function Gy(t){let e=Hy(),r=e.reporter??qy;return e.reporter=t,r}function N$(){return Hy().reporter??qy}function xi(t,e){try{N$().reportError(t,e)}catch{}}import{logger as D$}from"@hermes/logger";var Qd=D$.child({prefix:"pi-mcp"});function Zy(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++):Qd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Qd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function By(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(Sd)){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 Wy(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,Qd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Vy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as L$}from"@hermes/logger";var ki=L$.child({prefix:"pi-mcp"}),j$="$augment-",Ei=/\$augment-[a-zA-Z0-9_.-]+/g,F$=new RegExp(Ei.source);function Dr(t){return F$.test(t)}function Da(t){return t.slice(j$.length)}function Ti(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ei))e.add(Da(n[0]));return[...e].sort()}var U$=["permission_denied","missing","transient"];function Ky(t){let e=new Set(t);return U$.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 Jy(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=Da(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 Yy({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 Jy(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 q$=/["$`\\]/g;function H$(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 G$(t,e){let r=H$(e);if(r==="double")return t.replace(q$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Xy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Jy(t,"command",e,n,o,i,r?G$: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 Cq}from"node:async_hooks";var Qy,el=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"}};(Qy=globalThis).__zod_globalConfig??(Qy.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Qe(t){return t&&Object.assign(ho,t),ho}var H={};Gu(H,{BIGINT_FORMAT_RANGES:()=>nv,Class:()=>rl,NUMBER_FORMAT_RANGES:()=>cl,aborted:()=>Fr,allowsEval:()=>il,assert:()=>K$,assertEqual:()=>Z$,assertIs:()=>W$,assertNever:()=>V$,assertNotEqual:()=>B$,assignProp:()=>Lr,base64ToUint8Array:()=>iv,base64urlToUint8Array:()=>fI,cached:()=>go,captureStackTrace:()=>Fa,cleanEnum:()=>lI,cleanRegex:()=>Ii,clone:()=>yt,cloneDef:()=>Y$,createTransparentProxy:()=>nI,defineLazy:()=>Y,esc:()=>ja,escapeRegex:()=>cr,explicitlyAborted:()=>ul,extend:()=>sI,finalizeIssue:()=>vt,floatSafeRemainder:()=>nl,getElementAtPath:()=>X$,getEnumValues:()=>Mi,getLengthableOrigin:()=>Oi,getParsedType:()=>rI,getSizableOrigin:()=>ov,hexToUint8Array:()=>hI,isObject:()=>Sn,isPlainObject:()=>jr,issue:()=>yo,joinValues:()=>La,jsonStringifyReplacer:()=>mo,merge:()=>cI,mergeDefs:()=>ar,normalizeParams:()=>M,nullish:()=>$i,numKeys:()=>tI,objectClone:()=>J$,omit:()=>iI,optionalKeys:()=>al,parsedType:()=>dl,partial:()=>uI,pick:()=>oI,prefixIssues:()=>ur,primitiveTypes:()=>rv,promiseAllObject:()=>Q$,propertyKeyTypes:()=>sl,randomString:()=>eI,required:()=>dI,safeExtend:()=>aI,shallowClone:()=>tv,slugify:()=>ol,stringifyPrimitive:()=>Ua,uint8ArrayToBase64:()=>sv,uint8ArrayToBase64url:()=>pI,uint8ArrayToHex:()=>mI,unwrapMessage:()=>Ai});function Z$(t){return t}function B$(t){return t}function W$(t){}function V$(t){throw new Error("Unexpected value in exhaustive check")}function K$(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 La(t,e="|"){return t.map(r=>Ua(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 nl(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 ev=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==ev)return n===void 0&&(n=ev,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function J$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function 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 Y$(t){return ar(t._zod.def)}function X$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Q$(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<e.length;i++)o[e[i]]=n[i];return o})}function eI(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function ja(t){return JSON.stringify(t)}function ol(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Fa="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var il=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 tv(t){return jr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function tI(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var rI=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}`)}},sl=new Set(["string","number","symbol"]),rv=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 nI(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 Ua(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function al(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var cl={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]},nv={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function oI(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 iI(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 sI(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 aI(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 cI(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 uI(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 dI(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 ul(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 ov(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 dl(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 lI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function iv(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 sv(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function fI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return iv(e+r)}function pI(t){return sv(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function hI(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 mI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var rl=class{constructor(...e){}};var av=(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})},qa=S("$ZodError",av),ll=S("$ZodError",av,{Parent:Error});function fl(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 pl(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 Ha=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,Qe())));throw Fa(a,o?.callee),a}return s.value};var Ga=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,Qe())));throw Fa(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??qa)(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},Ni=zi(ll),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,Qe())))}:{success:!0,data:i.value}},Za=Di(ll),cv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ha(t)(e,r,o)};var uv=t=>(e,r,n)=>Ha(t)(e,r,n);var dv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ga(t)(e,r,o)};var lv=t=>async(e,r,n)=>Ga(t)(e,r,n);var fv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var pv=t=>(e,r,n)=>zi(t)(e,r,n);var hv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Di(t)(e,r,o)};var mv=t=>async(e,r,n)=>Di(t)(e,r,n);var gv=/^[cC][0-9a-z]{6,}$/,yv=/^[0-9a-z]+$/,vv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,_v=/^[0-9a-vA-V]{20}$/,Sv=/^[A-Za-z0-9]{27}$/,wv=/^[a-zA-Z0-9_-]{21}$/,bv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Rv=/^([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})$/,hl=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 Cv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var yI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Pv(){return new RegExp(yI,"u")}var xv=/^(?:(?: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])$/,kv=/^(([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 Ev=/^((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])$/,Tv=/^(([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])$/,Av=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ml=/^[A-Za-z0-9_-]*$/;var Mv=/^https?$/,$v=/^\+[1-9]\d{6,14}$/,Iv="(?:(?:\\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])))",Ov=new RegExp(`^${Iv}$`);function zv(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 Nv(t){return new RegExp(`^${zv(t)}$`)}function Dv(t){let e=zv({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(`^${Iv}T(?:${n})$`)}var Lv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},jv=/^-?\d+n?$/,Fv=/^-?\d+$/,gl=/^-?\d+(?:\.\d+)?$/,Uv=/^(?:true|false)$/i,qv=/^null$/i;var Hv=/^[^A-Z]*$/,Gv=/^[^a-z]*$/;var Oe=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Zv={number:"number",bigint:"bigint",object:"date"},yl=S("$ZodCheckLessThan",(t,e)=>{Oe.init(t,e);let r=Zv[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})}}),vl=S("$ZodCheckGreaterThan",(t,e)=>{Oe.init(t,e);let r=Zv[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})}}),Bv=S("$ZodCheckMultipleOf",(t,e)=>{Oe.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):nl(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})}}),Wv=S("$ZodCheckNumberFormat",(t,e)=>{Oe.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=cl[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=Fv)}),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 Vv=S("$ZodCheckMaxLength",(t,e)=>{var r;Oe.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})}}),Kv=S("$ZodCheckMinLength",(t,e)=>{var r;Oe.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})}}),Jv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Oe.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;Oe.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=()=>{})}),Yv=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})}}),Xv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Hv),ji.init(t,e)}),Qv=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Gv),ji.init(t,e)}),e_=S("$ZodCheckIncludes",(t,e)=>{Oe.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})}}),t_=S("$ZodCheckStartsWith",(t,e)=>{Oe.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})}}),r_=S("$ZodCheckEndsWith",(t,e)=>{Oe.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 n_=S("$ZodCheckOverwrite",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ba=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:FM(),parameters:Ng.Unsafe(IM),execute:(n,o,i,s,a)=>LM(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:Ng.Unsafe(OM),execute:(n,o,i)=>jM(t,o,i,{toolCallId:n})};zg(oo,"mcp"),zg(zr,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Lg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as fk}from"@augmentcode/auggie-v2";import{logger as Aq,logPublic as Mq}from"@hermes/logger";import{logger as VM}from"@hermes/logger";import{logger as UM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var Fg=UM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},vd=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 _d(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,!_d(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 Sa=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??vd}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 Ug(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)}`;Fg.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)}`;Fg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function qM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var qg=32;function HM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>qg&&(e=e.slice(0,qg)),e=e.replace(/_+$/,""),e}function Hg(t,e){let r=e?HM(e):"",n=qM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Gg(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 GM=1e12,ZM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function BM(t){let e=ZM.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 WM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<GM?t*1e3:t;if(typeof t=="string")return BM(t)}function Zg(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:WM(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=VM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},Wg=[100,500],KM=Wg.length+1,JM=t=>new Promise(e=>{setTimeout(e,t)});function Bg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var wd="augment.mcp-access-token.",YM=JSON.stringify({retired:!0}),wa=3;function Wt(t){return`${wd}${t}`}function ba(t){return`legacy:${t}`}function At(t){return t?.id?Hg(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:Vg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Vg(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:Vg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return _i(vi(t))}function XM(t){return _i(vi(t))}function QM(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:QM(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=Gg({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 e0(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function t0(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=XM(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 Sd(t){try{let e=Zg(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=JM){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<wa;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=Sd(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||!Sd(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:ba(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!==ba(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:ba(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<wa;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<wa;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,e0(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:ba(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Bg(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?KM: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?Wg[r]:void 0,i=!(e instanceof Z)&&_d(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),YM)}):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(Bg(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<wa;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=Sd(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?t0(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 Kg="Augment Code",Jg="https://augmentcode.com",Yg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var n0=1e3,o0=500;function Rd(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 bd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Xg(t){return new URLSearchParams({k:t}).toString().slice(2)}function i0(t,e){let r=`${Xg(t)}:${Xg(e)}`;return`Basic ${btoa(r)}`}function ry(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function s0(t){return t.client.token_endpoint_auth_method==="none"||!ry(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function a0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function c0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var u0=401,ny=500;function Cd(t,...e){return t.status<ny&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Qg(t){return Cd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===u0}async function ey(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=ry(t);e==="basic"&&i?n.Authorization=i0(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=c0(c),d=c.slice(0,o0);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new bd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*n0:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function ty(t,e){try{return await ey(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&Cd(r,"invalid_target"))return await ey(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 Pd(t){return!(t instanceof gn)||t.status>=ny?!1:Cd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function xd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=s0(t);try{return await ty(e,r)}catch(n){let o=a0(r);if(!(n instanceof gn)||!o||!Qg(n))throw n;try{return await ty(e,o)}catch(i){throw i instanceof gn&&Qg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as n$}from"@hermes/logger";var Td;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Td="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",Xe="ERR_INVALID_ARG_TYPE";function he(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var Od=Symbol(),d0=Symbol(),l0=Symbol(),vn=Symbol();var oy=Symbol();var f0=new TextEncoder,p0=new TextDecoder;function Ad(t){return typeof t=="string"?f0.encode(t):p0.decode(t)}var Md;Uint8Array.prototype.toBase64?Md=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Md=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 $d;Uint8Array.fromBase64?$d=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:$d=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 Ca(t){return typeof t=="string"?$d(t):Md(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=Z0,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 Pa(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function zd(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Td&&!e.has("user-agent")&&e.set("user-agent",Td),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function Nd(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',Xe);return e}}function h0(t){return t.includes("//")?t.replace("//","/"):t}function m0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=h0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function g0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Xe);my(t,n?.[Od]!==!0);let o=r(new URL(t.href)),i=zd(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:Nd(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`,Xe,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`,Xe,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 ay(t,e){let r=t;if(!(r instanceof URL)&&r!==Ea)throw he('"expectedIssuerIdentifier" must be an instance of URL',Xe);if(!lo(e,Response))throw he('"response" must be an instance of Response',Xe);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',Gd,e);Ci(e);let n=await $a(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==Ea&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Aa,{expected:r.href,body:n,attribute:"issuer"});return n}function cy(t){v0(t,"application/json")}function y0(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,W0,t)}function v0(t,e){if(A0(t)!==e)throw y0(t,e)}function Dd(){return Ca(crypto.getRandomValues(new Uint8Array(32)))}function uy(){return Dd()}function dy(){return Dd()}function ly(){return Dd()}async function fy(t){return $e(t,"codeVerifier"),Ca(await crypto.subtle.digest("SHA-256",Ad(t)))}function Ld(t){let e=t?.[d0];return typeof e=="number"&&Number.isFinite(e)?e:0}function jd(t){let e=t?.[l0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Fd(){return Math.floor(Date.now()/1e3)}function Ta(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Xe);$e(t.issuer,'"as.issuer"')}function Ud(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Xe);$e(t.client_id,'"client.client_id"')}function iy(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 qd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function py(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=iy(r.client_id),s=iy(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function hy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var _0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function my(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",V0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",K0,t)}function sy(t,e,r,n){let o;if(typeof t!="string"||!(o=_0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?J0:Y0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return my(o,n),o}function gy(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?sy(t.mtls_endpoint_aliases[e],e,r,n):sy(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=G0,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=B0,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=H0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},xa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",S0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",w0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',b0="("+xa+")\\s*=\\s*"+w0,R0="("+xa+")\\s*=\\s*("+xa+")",C0=new RegExp("^[,\\s]*("+xa+")"),P0=new RegExp("^[,\\s]*"+b0+"[,\\s]*(.*)"),x0=new RegExp("^[,\\s]*"+R0+"[,\\s]*(.*)"),k0=new RegExp("^("+S0+")(?:$|[,\\s])(.*)");function E0(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);let e=t.headers.get("www-authenticate");if(e===null)return;let r=[],n=e;for(;n;){let o=n.match(C0),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(P0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(x0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(k0)){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 T0(t){if(t.status>399&&t.status<500){Ci(t),cy(t);try{let e=await t.clone().json();if(Pa(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function yy(t,e,r){if(t.status!==e){O0(t);let n;throw(n=await T0(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)`,Gd,t)}}function vy(t){if(!Hd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function A0(t){return t.headers.get("content-type")?.split(";")[0]}async function M0(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:Nd(n,s?.signal)})}async function $0(t,e,r,n,o,i){let s=gy(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Od]!==!0);o.set("grant_type",n);let a=zd(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(vy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await M0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var _y=new WeakMap,I0=new WeakMap;function Sy(t){if(!t.id_token)return;let e=_y.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function wy(t,e,r,n,o,i){if(Ta(t),Ud(e),!lo(r,Response))throw he('"response" must be an instance of Response',Xe);await yy(r,200,"Token Endpoint"),Ci(r);let s=await $a(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 X0(s.id_token,Q0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Ld(e),jd(e),o).then(F0.bind(void 0,a)).then(N0.bind(void 0,t)).then(z0.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}),I0.set(r,u),_y.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 O0(t){let e;if(e=E0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function z0(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 N0(t,e){let r=t[r$]?.(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 Hd=new WeakSet;function D0(t){return Hd.add(t),t}var L0=Symbol();async function by(t,e,r,n,o,i,s){if(Ta(t),Ud(e),!Hd.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!==L0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),$0(t,e,r,"authorization_code",c,s)}var j0={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 F0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${j0[r]}) claim missing`,V,{claims:e.claims});return e}var kd=Symbol(),Ed=Symbol();async function Ry(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?U0(t,e,r,n.expectedNonce,n.maxAge,n[oy],n.recognizedTokenTypes):q0(t,e,r,n?.[oy],n?.recognizedTokenTypes)}async function U0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=kd;break;case kd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Ed;break;case Ed:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await wy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=Sy(c);if(o!==Ed){let d=Fd()+Ld(e),l=jd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",ka,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===kd){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 q0(t,e,r,n,o){let i=await wy(t,e,r,void 0,n,o),s=Sy(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=Fd()+Ld(e),c=jd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",ka,{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 H0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",G0="OAUTH_RESPONSE_BODY_ERROR",Z0="OAUTH_UNSUPPORTED_OPERATION",B0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Id="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var W0="OAUTH_RESPONSE_IS_NOT_JSON",Gd="OAUTH_RESPONSE_IS_NOT_CONFORM",V0="OAUTH_HTTP_REQUEST_FORBIDDEN",K0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",ka="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Nr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Aa="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var J0="OAUTH_MISSING_SERVER_METADATA",Y0="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function X0(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(Ad(Ca(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Id,l)}if(!Pa(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(Ad(Ca(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Id,l)}if(!Pa(u))throw O("JWT Payload must be a top level object",V,t);let d=Fd()+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',ka,{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',ka,{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 Q0(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 e$=Symbol(),t$=Symbol();function Cy(t,e,r,n){if(Ta(t),Ud(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw he('"parameters" must be an instance of URLSearchParams, or URL',Xe);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 t$:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case e$: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 D0(new URLSearchParams(r))}async function Py(t,e,r){Ta(t);let n=gy(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Od]!==!0),o=zd(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(vy(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:Nd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function xy(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);await yy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await $a(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 ky(t,e){return g0(t,"resourceIdentifier",r=>(m0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Ma(t,e){let r=t;if(!(r instanceof URL)&&r!==Ea)throw he('"expectedResourceIdentifier" must be an instance of URL',Xe);if(!lo(e,Response))throw he('"response" must be an instance of Response',Xe);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',Gd,e);Ci(e);let n=await $a(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==Ea&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Aa,{expected:r.href,body:n,attribute:"resource"});return n}async function $a(t,e=cy){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Id,n)}if(!Pa(r))throw O('"response" body must be a top level object',V,{body:r});return r}var Ea=Symbol(),r$=Symbol();var Ay=n$.child({prefix:"pi-mcp"}),Pi=1e4,o$=1e3,i$=401,Ey=200,s$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,a$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,My;function fo(){return My??globalThis.fetch}function $y(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Iy(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Bd(t){let e=Iy(t);try{let r=await c$(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await p$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw za(r)}throw new Error("Failed to discover metadata URL")}async function c$(t){try{let e=await ky(t,{signal:AbortSignal.timeout(Pi),[vn]:My??void 0});return e.ok?await Ma(t,e):(e.body?.cancel().catch(()=>{}),await Oy(t,e.headers.get("www-authenticate"))??await Ty(t))}catch{return await Ty(t)}}async function Ty(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 Oy(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function Oy(t,e){let r=f$(e);if(r)try{let n=await fo()(r,{signal:AbortSignal.timeout(Pi)});return await u$(t,n)}catch{return}}async function u$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Ma(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Aa)throw o;let i=d$(r);if(!i||!l$(i,t))throw o;return await Ma(i,new Response(r,n))}}function d$(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function l$(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 f$(t){if(!t)return;let e=t.match(s$),r=t.match(a$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function p$(t){for(let e of h$(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 h$(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 Wd(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 m$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await ay(o,new Response(r,n))}catch(e){throw za(e)}}async function m$(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 Zd=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 g$(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 Vd({config:t,serverMetadata:e,redirectUris:r,preferStaticClient:n=!1}){let o=t.clientId?.trim(),i=t.clientSecret?.trim();if(!!o&&(n||!!i||!e.registration_endpoint))return g$({...t,clientId:o});if(!e.registration_endpoint)throw new Zd(e.issuer);return await y$(e,r)}async function y$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await Py(t,{client_name:Kg,client_uri:Jg,logo_uri:Yg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:v$});return n.ok||Ay.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await xy(n)}catch(r){throw za(r)}}async function v$(t,e){let r=await fo()(t,$y(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||Ay.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${S$(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 _$(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,$y(o))}function S$(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>Ey?`${t.slice(0,Ey)}\u2026`:t}}async function Ia(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=uy(),c=await fy(a),u=dy(),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=Iy(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=ly(),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 Oa(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Kd(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 Ia(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function w$(t,e,r){let n=await by(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:_$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return Ry(t.serverMetadata,t.client,await b$(n))}async function Jd(t,e){try{let r=Cy(e.serverMetadata,e.client,t,e.state),n=await C$(e.client,o=>w$(e,r,o));return k$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw za(r)}}async function b$(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 zy(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function R$(t){let e=zy(t);return e===void 0?hy():t.token_endpoint_auth_method==="client_secret_basic"?py(e):qd(e)}async function C$(t,e){try{return await e(R$(t))}catch(r){let n=P$(t);if(n&&x$(r))return await e(n);throw r}}function P$(t){let e=zy(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return qd(e)}function x$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===i$||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function k$(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*o$:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function za(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 E$=/(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,Ny=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Dy=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Ly=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",T$=/[.*+?^${}()|[\]\\]/g;function Yd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function A$(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:Yd(a,r),{value:c&&"value"in c?jy(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 jy(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Yd(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 Yd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:A$(t,e,r)}function Qd(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(T$,"\\$&")).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=>jy(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var M$=500,$$=8192,I$=6;function O$(t){return Ny.test(t)||Dy.test(t)||Ly.test(t)}var z$=new RegExp(Ny.source,"g"),N$=new RegExp(Dy.source,"gi"),D$=new RegExp(Ly.source,"g");function Fy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Na(t){return t&&Fy(t,$$).replace(z$,_n).replace(N$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(D$,_n)}function Xd(t,e,r){if(e)return _n;if(typeof t=="string")return O$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=I$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Xd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Xd(i,E$.test(o),r+1);return n}function Uy(t,e=M$){if(t==null)return;let r=Xd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Fy(n,e)}var Hy={reportError:()=>{}},qy=Symbol.for("__pi_mcp_error_reporter_slot__");function Gy(){let t=globalThis,e=t[qy];return e||(e={reporter:null},t[qy]=e),e}function Zy(t){let e=Gy(),r=e.reporter??Hy;return e.reporter=t,r}function L$(){return Gy().reporter??Hy}function xi(t,e){try{L$().reportError(t,e)}catch{}}import{logger as j$}from"@hermes/logger";var el=j$.child({prefix:"pi-mcp"});function By(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++):el.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];el.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Wy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(wd)){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 Vy(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,el.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Ky(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as F$}from"@hermes/logger";var ki=F$.child({prefix:"pi-mcp"}),U$="$augment-",Ei=/\$augment-[a-zA-Z0-9_.-]+/g,q$=new RegExp(Ei.source);function Dr(t){return q$.test(t)}function Da(t){return t.slice(U$.length)}function Ti(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ei))e.add(Da(n[0]));return[...e].sort()}var H$=["permission_denied","missing","transient"];function Jy(t){let e=new Set(t);return H$.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 Yy(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=Da(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 Xy({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 Yy(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 G$=/["$`\\]/g;function Z$(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 B$(t,e){let r=Z$(e);if(r==="double")return t.replace(G$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Qy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Yy(t,"command",e,n,o,i,r?B$: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 xq}from"node:async_hooks";var ev,tl=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"}};(ev=globalThis).__zod_globalConfig??(ev.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Qe(t){return t&&Object.assign(ho,t),ho}var H={};Gu(H,{BIGINT_FORMAT_RANGES:()=>ov,Class:()=>nl,NUMBER_FORMAT_RANGES:()=>ul,aborted:()=>Fr,allowsEval:()=>sl,assert:()=>Y$,assertEqual:()=>W$,assertIs:()=>K$,assertNever:()=>J$,assertNotEqual:()=>V$,assignProp:()=>Lr,base64ToUint8Array:()=>sv,base64urlToUint8Array:()=>hI,cached:()=>go,captureStackTrace:()=>Fa,cleanEnum:()=>pI,cleanRegex:()=>Ii,clone:()=>yt,cloneDef:()=>Q$,createTransparentProxy:()=>iI,defineLazy:()=>Y,esc:()=>ja,escapeRegex:()=>cr,explicitlyAborted:()=>dl,extend:()=>cI,finalizeIssue:()=>vt,floatSafeRemainder:()=>ol,getElementAtPath:()=>eI,getEnumValues:()=>Mi,getLengthableOrigin:()=>Oi,getParsedType:()=>oI,getSizableOrigin:()=>iv,hexToUint8Array:()=>gI,isObject:()=>Sn,isPlainObject:()=>jr,issue:()=>yo,joinValues:()=>La,jsonStringifyReplacer:()=>mo,merge:()=>dI,mergeDefs:()=>ar,normalizeParams:()=>M,nullish:()=>$i,numKeys:()=>nI,objectClone:()=>X$,omit:()=>aI,optionalKeys:()=>cl,parsedType:()=>ll,partial:()=>lI,pick:()=>sI,prefixIssues:()=>ur,primitiveTypes:()=>nv,promiseAllObject:()=>tI,propertyKeyTypes:()=>al,randomString:()=>rI,required:()=>fI,safeExtend:()=>uI,shallowClone:()=>rv,slugify:()=>il,stringifyPrimitive:()=>Ua,uint8ArrayToBase64:()=>av,uint8ArrayToBase64url:()=>mI,uint8ArrayToHex:()=>yI,unwrapMessage:()=>Ai});function W$(t){return t}function V$(t){return t}function K$(t){}function J$(t){throw new Error("Unexpected value in exhaustive check")}function Y$(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 La(t,e="|"){return t.map(r=>Ua(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 ol(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 tv=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==tv)return n===void 0&&(n=tv,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function X$(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 Q$(t){return ar(t._zod.def)}function eI(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function tI(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 rI(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function ja(t){return JSON.stringify(t)}function il(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Fa="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var sl=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 rv(t){return jr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function nI(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var oI=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}`)}},al=new Set(["string","number","symbol"]),nv=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 iI(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 Ua(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function cl(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var ul={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]},ov={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function sI(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 aI(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 cI(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 uI(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 dI(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 lI(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 fI(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 dl(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 iv(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 ll(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 pI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function sv(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 av(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function hI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return sv(e+r)}function mI(t){return av(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function gI(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 yI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var nl=class{constructor(...e){}};var cv=(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})},qa=S("$ZodError",cv),fl=S("$ZodError",cv,{Parent:Error});function pl(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 hl(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 Ha=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,Qe())));throw Fa(a,o?.callee),a}return s.value};var Ga=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,Qe())));throw Fa(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??qa)(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},Ni=zi(fl),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,Qe())))}:{success:!0,data:i.value}},Za=Di(fl),uv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ha(t)(e,r,o)};var dv=t=>(e,r,n)=>Ha(t)(e,r,n);var lv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ga(t)(e,r,o)};var fv=t=>async(e,r,n)=>Ga(t)(e,r,n);var pv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var hv=t=>(e,r,n)=>zi(t)(e,r,n);var mv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Di(t)(e,r,o)};var gv=t=>async(e,r,n)=>Di(t)(e,r,n);var yv=/^[cC][0-9a-z]{6,}$/,vv=/^[0-9a-z]+$/,_v=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Sv=/^[0-9a-vA-V]{20}$/,wv=/^[A-Za-z0-9]{27}$/,bv=/^[a-zA-Z0-9_-]{21}$/,Rv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Cv=/^([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})$/,ml=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 Pv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var _I="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function xv(){return new RegExp(_I,"u")}var kv=/^(?:(?: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])$/,Ev=/^(([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 Tv=/^((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])$/,Av=/^(([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])$/,Mv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,gl=/^[A-Za-z0-9_-]*$/;var $v=/^https?$/,Iv=/^\+[1-9]\d{6,14}$/,Ov="(?:(?:\\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])))",zv=new RegExp(`^${Ov}$`);function Nv(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 Dv(t){return new RegExp(`^${Nv(t)}$`)}function Lv(t){let e=Nv({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(`^${Ov}T(?:${n})$`)}var jv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Fv=/^-?\d+n?$/,Uv=/^-?\d+$/,yl=/^-?\d+(?:\.\d+)?$/,qv=/^(?:true|false)$/i,Hv=/^null$/i;var Gv=/^[^A-Z]*$/,Zv=/^[^a-z]*$/;var Oe=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Bv={number:"number",bigint:"bigint",object:"date"},vl=S("$ZodCheckLessThan",(t,e)=>{Oe.init(t,e);let r=Bv[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})}}),_l=S("$ZodCheckGreaterThan",(t,e)=>{Oe.init(t,e);let r=Bv[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})}}),Wv=S("$ZodCheckMultipleOf",(t,e)=>{Oe.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):ol(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})}}),Vv=S("$ZodCheckNumberFormat",(t,e)=>{Oe.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=ul[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=Uv)}),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 Kv=S("$ZodCheckMaxLength",(t,e)=>{var r;Oe.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})}}),Jv=S("$ZodCheckMinLength",(t,e)=>{var r;Oe.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})}}),Yv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Oe.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;Oe.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=()=>{})}),Xv=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})}}),Qv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Gv),ji.init(t,e)}),e_=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Zv),ji.init(t,e)}),t_=S("$ZodCheckIncludes",(t,e)=>{Oe.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})}}),r_=S("$ZodCheckStartsWith",(t,e)=>{Oe.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})}}),n_=S("$ZodCheckEndsWith",(t,e)=>{Oe.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 o_=S("$ZodCheckOverwrite",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ba=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 i_={major:4,minor:4,patch:3};var re=S("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=i_;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(ul(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 Za(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ka=S("$ZodString",(t,e)=>{re.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Lv(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),Ka.init(t,e)}),h_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Rv),ce.init(t,e)}),m_=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=hl(n))}else e.pattern??(e.pattern=hl());ce.init(t,e)}),g_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e)}),y_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Mv.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})}}}),v_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Pv()),ce.init(t,e)}),__=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e)}),S_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),w_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),b_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),R_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)}),C_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),P_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Dv(e)),ce.init(t,e)}),x_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Ov),ce.init(t,e)}),k_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Nv(e)),ce.init(t,e)}),E_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),T_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e),t._zod.bag.format="ipv4"}),A_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=kv),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 M_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e)}),$_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Tv),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 I_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var O_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Av),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{I_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function SI(t){if(!ml.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return I_(r)}var z_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=ml),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{SI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),N_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=$v),ce.init(t,e)});function wI(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 D_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{wI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var Sl=S("$ZodNumber",(t,e)=>{re.init(t,e),t._zod.pattern=t._zod.bag.pattern??gl,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}}),L_=S("$ZodNumberFormat",(t,e)=>{Wv.init(t,e),Sl.init(t,e)}),j_=S("$ZodBoolean",(t,e)=>{re.init(t,e),t._zod.pattern=Uv,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}}),F_=S("$ZodBigInt",(t,e)=>{re.init(t,e),t._zod.pattern=jv,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 U_=S("$ZodNull",(t,e)=>{re.init(t,e),t._zod.pattern=qv,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}}),q_=S("$ZodAny",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),H_=S("$ZodUnknown",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),G_=S("$ZodNever",(t,e)=>{re.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});var Z_=S("$ZodDate",(t,e)=>{re.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 s_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var B_=S("$ZodArray",(t,e)=>{re.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=>s_(u,r,s))):s_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Va(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 W_(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=al(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function V_(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=>Va(h,r,f,e,d,l))):Va(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 bI=S("$ZodObject",(t,e)=>{if(re.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(()=>W_(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=>Va(v,a,f,u,h,m))):Va(g,a,f,u,h,m)}return i?V_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),K_=S("$ZodObjectJIT",(t,e)=>{bI.init(t,e);let r=t._zod.parse,n=go(()=>W_(e)),o=f=>{let p=new Ba(["shape","payload","ctx"]),h=n.value,m=b=>{let R=ja(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],_=ja(b),C=f[b],I=C?._zod?.optin==="optional",Q=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(b)};`),I&&Q?p.write(`
26
+ `))}};var s_={major:4,minor:4,patch:3};var re=S("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=s_;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(dl(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 Za(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ka=S("$ZodString",(t,e)=>{re.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??jv(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),Ka.init(t,e)}),m_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e)}),g_=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=ml(n))}else e.pattern??(e.pattern=ml());ce.init(t,e)}),y_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Pv),ce.init(t,e)}),v_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===$v.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})}}}),__=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=xv()),ce.init(t,e)}),S_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),w_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),b_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),R_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)}),C_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),P_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e)}),x_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Lv(e)),ce.init(t,e)}),k_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=zv),ce.init(t,e)}),E_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Dv(e)),ce.init(t,e)}),T_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Rv),ce.init(t,e)}),A_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=kv),ce.init(t,e),t._zod.bag.format="ipv4"}),M_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Ev),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 $_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Tv),ce.init(t,e)}),I_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Av),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 O_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var z_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Mv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{O_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function bI(t){if(!gl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return O_(r)}var N_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=gl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{bI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),D_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Iv),ce.init(t,e)});function RI(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 L_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{RI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var wl=S("$ZodNumber",(t,e)=>{re.init(t,e),t._zod.pattern=t._zod.bag.pattern??yl,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}}),j_=S("$ZodNumberFormat",(t,e)=>{Vv.init(t,e),wl.init(t,e)}),F_=S("$ZodBoolean",(t,e)=>{re.init(t,e),t._zod.pattern=qv,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}}),U_=S("$ZodBigInt",(t,e)=>{re.init(t,e),t._zod.pattern=Fv,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 q_=S("$ZodNull",(t,e)=>{re.init(t,e),t._zod.pattern=Hv,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}}),H_=S("$ZodAny",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),G_=S("$ZodUnknown",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),Z_=S("$ZodNever",(t,e)=>{re.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});var B_=S("$ZodDate",(t,e)=>{re.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 a_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var W_=S("$ZodArray",(t,e)=>{re.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=>a_(u,r,s))):a_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Va(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 V_(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=cl(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function K_(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=>Va(h,r,f,e,d,l))):Va(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 CI=S("$ZodObject",(t,e)=>{if(re.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(()=>V_(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=>Va(v,a,f,u,h,m))):Va(g,a,f,u,h,m)}return i?K_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),J_=S("$ZodObjectJIT",(t,e)=>{CI.init(t,e);let r=t._zod.parse,n=go(()=>V_(e)),o=f=>{let p=new Ba(["shape","payload","ctx"]),h=n.value,m=b=>{let R=ja(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],_=ja(b),C=f[b],I=C?._zod?.optin==="optional",Q=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(b)};`),I&&Q?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 w=p.compile();return(b,R)=>w(f,b,R)},i,s=Sn,a=!ho.jitless,u=a&&il.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?V_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function a_(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,Qe())))}),e)}var wl=S("$ZodUnion",(t,e)=>{re.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=>a_(a,n,t,o)):a_(s,n,t,o)}});var J_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,wl.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)}}),Y_=S("$ZodIntersection",(t,e)=>{re.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])=>c_(r,c,u)):c_(r,i,s)}});function _l(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=_l(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=_l(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 c_(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=_l(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 X_=S("$ZodRecord",(t,e)=>{re.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,Qe())),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"&&gl.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,Qe())),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 Q_=S("$ZodEnum",(t,e)=>{re.init(t,e);let r=Mi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>sl.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}}),eS=S("$ZodLiteral",(t,e)=>{if(re.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 tS=S("$ZodTransform",(t,e)=>{re.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 u_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var bl=S("$ZodOptional",(t,e)=>{re.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=>u_(s,o)):u_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),rS=S("$ZodExactOptional",(t,e)=>{bl.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)}),nS=S("$ZodNullable",(t,e)=>{re.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)}),oS=S("$ZodDefault",(t,e)=>{re.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=>d_(i,e)):d_(o,e)}});function d_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var iS=S("$ZodPrefault",(t,e)=>{re.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))}),sS=S("$ZodNonOptional",(t,e)=>{re.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=>l_(i,t)):l_(o,t)}});function l_(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 aS=S("$ZodCatch",(t,e)=>{re.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,Qe()))},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,Qe()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var Rl=S("$ZodPipe",(t,e)=>{re.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=>Wa(s,e.in,n)):Wa(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Wa(i,e.out,n)):Wa(o,e.out,n)}});function Wa(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 cS=S("$ZodPreprocess",(t,e)=>{Rl.init(t,e)}),uS=S("$ZodReadonly",(t,e)=>{re.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(f_):f_(o)}});function f_(t){return t.value=Object.freeze(t.value),t}var dS=S("$ZodCustom",(t,e)=>{Oe.init(t,e),re.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=>p_(i,r,n,t));p_(o,r,n,t)}});function p_(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 RI=()=>{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=dl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ua(o.values[0])}`:`Invalid option: expected one of ${La(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":""}: ${La(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 lS(){return{localeError:RI()}}var fS;var Cl=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 pS(){return new Cl}(fS=globalThis).__zod_globalRegistry??(fS.__zod_globalRegistry=pS());var Ur=globalThis.__zod_globalRegistry;function hS(t,e){return new t({type:"string",...M(e)})}function mS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function gS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Pl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function yS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function vS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function _S(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function SS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function xl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function wS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function bS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function PS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function xS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function IS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function OS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function zS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function NS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function DS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function LS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function jS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function FS(t,e){return new t({type:"number",checks:[],...M(e)})}function US(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function qS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function HS(t,e){return new t({type:"boolean",...M(e)})}function GS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function ZS(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function BS(t,e){return new t({type:"null",...M(e)})}function WS(t){return new t({type:"any"})}function VS(t){return new t({type:"unknown"})}function KS(t,e){return new t({type:"never",...M(e)})}function JS(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new yl({check:"less_than",...M(e),value:t,inclusive:!1})}function dr(t,e){return new yl({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new vl({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new vl({check:"greater_than",...M(e),value:t,inclusive:!0})}function Fi(t,e){return new Bv({check:"multiple_of",...M(e),value:t})}function Ja(t,e){return new Vv({check:"max_length",...M(e),maximum:t})}function So(t,e){return new Kv({check:"min_length",...M(e),minimum:t})}function Ya(t,e){return new Jv({check:"length_equals",...M(e),length:t})}function kl(t,e){return new Yv({check:"string_format",format:"regex",...M(e),pattern:t})}function El(t){return new Xv({check:"string_format",format:"lowercase",...M(t)})}function Tl(t){return new Qv({check:"string_format",format:"uppercase",...M(t)})}function Al(t,e){return new e_({check:"string_format",format:"includes",...M(e),includes:t})}function Ml(t,e){return new t_({check:"string_format",format:"starts_with",...M(e),prefix:t})}function $l(t,e){return new r_({check:"string_format",format:"ends_with",...M(e),suffix:t})}function qr(t){return new n_({check:"overwrite",tx:t})}function Il(t){return qr(e=>e.normalize(t))}function Ol(){return qr(t=>t.trim())}function zl(){return qr(t=>t.toLowerCase())}function Nl(){return qr(t=>t.toUpperCase())}function Dl(){return qr(t=>ol(t))}function YS(t,e,r){return new t({type:"array",element:e,...M(r)})}function XS(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function QS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function ew(t,e){let r=CI(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 CI(t,e){let r=new Oe({check:"custom",...M(e)});return r._zod.check=t,r}function Ll(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"&&Ge(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 jl(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&&sl.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?K_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function c_(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,Qe())))}),e)}var bl=S("$ZodUnion",(t,e)=>{re.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=>c_(a,n,t,o)):c_(s,n,t,o)}});var Y_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,bl.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)}}),X_=S("$ZodIntersection",(t,e)=>{re.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])=>u_(r,c,u)):u_(r,i,s)}});function Sl(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=Sl(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=Sl(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 u_(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=Sl(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 Q_=S("$ZodRecord",(t,e)=>{re.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,Qe())),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"&&yl.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,Qe())),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 eS=S("$ZodEnum",(t,e)=>{re.init(t,e);let r=Mi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>al.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}}),tS=S("$ZodLiteral",(t,e)=>{if(re.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 rS=S("$ZodTransform",(t,e)=>{re.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 d_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var Rl=S("$ZodOptional",(t,e)=>{re.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=>d_(s,o)):d_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),nS=S("$ZodExactOptional",(t,e)=>{Rl.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)}),oS=S("$ZodNullable",(t,e)=>{re.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)}),iS=S("$ZodDefault",(t,e)=>{re.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=>l_(i,e)):l_(o,e)}});function l_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var sS=S("$ZodPrefault",(t,e)=>{re.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))}),aS=S("$ZodNonOptional",(t,e)=>{re.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=>f_(i,t)):f_(o,t)}});function f_(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 cS=S("$ZodCatch",(t,e)=>{re.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,Qe()))},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,Qe()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var Cl=S("$ZodPipe",(t,e)=>{re.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=>Wa(s,e.in,n)):Wa(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Wa(i,e.out,n)):Wa(o,e.out,n)}});function Wa(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 uS=S("$ZodPreprocess",(t,e)=>{Cl.init(t,e)}),dS=S("$ZodReadonly",(t,e)=>{re.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(p_):p_(o)}});function p_(t){return t.value=Object.freeze(t.value),t}var lS=S("$ZodCustom",(t,e)=>{Oe.init(t,e),re.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=>h_(i,r,n,t));h_(o,r,n,t)}});function h_(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 PI=()=>{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=ll(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ua(o.values[0])}`:`Invalid option: expected one of ${La(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":""}: ${La(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 fS(){return{localeError:PI()}}var pS;var Pl=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 hS(){return new Pl}(pS=globalThis).__zod_globalRegistry??(pS.__zod_globalRegistry=hS());var Ur=globalThis.__zod_globalRegistry;function mS(t,e){return new t({type:"string",...M(e)})}function gS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function yS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function xl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function vS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function _S(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function SS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function wS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function kl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function bS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function PS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function xS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function IS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function OS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function zS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function NS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function DS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function LS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function jS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function FS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function US(t,e){return new t({type:"number",checks:[],...M(e)})}function qS(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function HS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function GS(t,e){return new t({type:"boolean",...M(e)})}function ZS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function BS(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function WS(t,e){return new t({type:"null",...M(e)})}function VS(t){return new t({type:"any"})}function KS(t){return new t({type:"unknown"})}function JS(t,e){return new t({type:"never",...M(e)})}function YS(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new vl({check:"less_than",...M(e),value:t,inclusive:!1})}function dr(t,e){return new vl({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new _l({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new _l({check:"greater_than",...M(e),value:t,inclusive:!0})}function Fi(t,e){return new Wv({check:"multiple_of",...M(e),value:t})}function Ja(t,e){return new Kv({check:"max_length",...M(e),maximum:t})}function So(t,e){return new Jv({check:"min_length",...M(e),minimum:t})}function Ya(t,e){return new Yv({check:"length_equals",...M(e),length:t})}function El(t,e){return new Xv({check:"string_format",format:"regex",...M(e),pattern:t})}function Tl(t){return new Qv({check:"string_format",format:"lowercase",...M(t)})}function Al(t){return new e_({check:"string_format",format:"uppercase",...M(t)})}function Ml(t,e){return new t_({check:"string_format",format:"includes",...M(e),includes:t})}function $l(t,e){return new r_({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Il(t,e){return new n_({check:"string_format",format:"ends_with",...M(e),suffix:t})}function qr(t){return new o_({check:"overwrite",tx:t})}function Ol(t){return qr(e=>e.normalize(t))}function zl(){return qr(t=>t.trim())}function Nl(){return qr(t=>t.toLowerCase())}function Dl(){return qr(t=>t.toUpperCase())}function Ll(){return qr(t=>il(t))}function XS(t,e,r){return new t({type:"array",element:e,...M(r)})}function QS(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function ew(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function tw(t,e){let r=xI(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 xI(t,e){let r=new Oe({check:"custom",...M(e)});return r._zod.check=t,r}function jl(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"&&Ge(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 Fl(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 Fl(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 Ge(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 Ge(n.element,r);if(n.type==="set")return Ge(n.valueType,r);if(n.type==="lazy")return Ge(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 Ge(n.innerType,r);if(n.type==="intersection")return Ge(n.left,r)||Ge(n.right,r);if(n.type==="record"||n.type==="map")return Ge(n.keyType,r)||Ge(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:Ge(n.in,r)||Ge(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ge(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ge(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ge(o,r))return!0;return!!(n.rest&&Ge(n.rest,r))}return!1}var tw=(t,e={})=>r=>{let n=Ll({...r,processors:e});return be(t,n),jl(n,t),Fl(n,t)},Ui=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Ll({...o??{},target:i,io:e,processors:r});return be(t,s),jl(s,t),Fl(s,t)};var PI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},rw=(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=PI[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}))])}},nw=(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)},ow=(t,e,r,n)=>{r.type="boolean"},iw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var sw=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var aw=(t,e,r,n)=>{r.not={}},cw=(t,e,r,n)=>{},uw=(t,e,r,n)=>{},dw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},lw=(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},fw=(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 pw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var hw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var mw=(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"]})},gw=(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)},yw=(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},vw=(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 _w=(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)}},Sw=(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"}]},ww=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},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.default=JSON.parse(JSON.stringify(o.defaultValue))},Rw=(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)))},Cw=(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},Pw=(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},xw=(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 Ul=(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 Xa(t){return!!t._zod}function It(t,e){return Xa(t)?Ni(t,e):t.safeParse(e)}function Qa(t){if(!t)return;let e;if(Xa(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function ec(t){if(Xa(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={};Gu(qi,{ZodISODate:()=>Ew,ZodISODateTime:()=>kw,ZodISODuration:()=>Aw,ZodISOTime:()=>Tw,date:()=>Hl,datetime:()=>ql,duration:()=>Zl,time:()=>Gl});var kw=S("ZodISODateTime",(t,e)=>{P_.init(t,e),me.init(t,e)});function ql(t){return NS(kw,t)}var Ew=S("ZodISODate",(t,e)=>{x_.init(t,e),me.init(t,e)});function Hl(t){return DS(Ew,t)}var Tw=S("ZodISOTime",(t,e)=>{k_.init(t,e),me.init(t,e)});function Gl(t){return LS(Tw,t)}var Aw=S("ZodISODuration",(t,e)=>{E_.init(t,e),me.init(t,e)});function Zl(t){return jS(Aw,t)}var II=(t,e)=>{qa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>pl(t,r)},flatten:{value:r=>fl(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",II,{Parent:Error});var $w=Ha(ut),Iw=Ga(ut),Ow=zi(ut),zw=Di(ut),Nw=cv(ut),Dw=uv(ut),Lw=dv(ut),jw=lv(ut),Fw=fv(ut),Uw=pv(ut),qw=hv(ut),Hw=mv(ut);var Gw=new WeakMap;function Hi(t,e,r){let n=Object.getPrototypeOf(t),o=Gw.get(n);if(o||(o=new Set,Gw.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)=>(re.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Ui(t,"input"),output:Ui(t,"output")}}),t.toJSONSchema=tw(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>$w(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Ow(t,r,n),t.parseAsync=async(r,n)=>Iw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>zw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Nw(t,r,n),t.decode=(r,n)=>Dw(t,r,n),t.encodeAsync=async(r,n)=>Lw(t,r,n),t.decodeAsync=async(r,n)=>jw(t,r,n),t.safeEncode=(r,n)=>Fw(t,r,n),t.safeDecode=(r,n)=>Uw(t,r,n),t.safeEncodeAsync=async(r,n)=>qw(t,r,n),t.safeDecodeAsync=async(r,n)=>Hw(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(wO(r,n))},superRefine(r,n){return this.check(bO(r,n))},overwrite(r){return this.check(qr(r))},optional(){return ye(this)},exactOptional(){return uO(this)},nullable(){return Vw(this)},nullish(){return ye(Vw(this))},nonoptional(r){return mO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return nc(this,r)},transform(r){return Kw(this,ib(r))},default(r){return fO(this,r)},prefault(r){return hO(this,r)},catch(r){return yO(this,r)},pipe(r){return Kw(this,r)},readonly(){return SO(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)),Jw=S("_ZodString",(t,e)=>{Ka.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>rw(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(kl(...n))},includes(...n){return this.check(Al(...n))},startsWith(...n){return this.check(Ml(...n))},endsWith(...n){return this.check($l(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Ja(...n))},length(...n){return this.check(Ya(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check(El(n))},uppercase(n){return this.check(Tl(n))},trim(){return this.check(Ol())},normalize(...n){return this.check(Il(...n))},toLowerCase(){return this.check(zl())},toUpperCase(){return this.check(Nl())},slugify(){return this.check(Dl())}})}),Wl=S("ZodString",(t,e)=>{Ka.init(t,e),Jw.init(t,e),t.email=r=>t.check(gS(zI,r)),t.url=r=>t.check(xl(Yw,r)),t.jwt=r=>t.check(zS(JI,r)),t.emoji=r=>t.check(wS(NI,r)),t.guid=r=>t.check(Pl(Zw,r)),t.uuid=r=>t.check(yS(tc,r)),t.uuidv4=r=>t.check(vS(tc,r)),t.uuidv6=r=>t.check(_S(tc,r)),t.uuidv7=r=>t.check(SS(tc,r)),t.nanoid=r=>t.check(bS(DI,r)),t.guid=r=>t.check(Pl(Zw,r)),t.cuid=r=>t.check(RS(LI,r)),t.cuid2=r=>t.check(CS(jI,r)),t.ulid=r=>t.check(PS(FI,r)),t.base64=r=>t.check($S(WI,r)),t.base64url=r=>t.check(IS(VI,r)),t.xid=r=>t.check(xS(UI,r)),t.ksuid=r=>t.check(kS(qI,r)),t.ipv4=r=>t.check(ES(HI,r)),t.ipv6=r=>t.check(TS(GI,r)),t.cidrv4=r=>t.check(AS(ZI,r)),t.cidrv6=r=>t.check(MS(BI,r)),t.e164=r=>t.check(OS(KI,r)),t.datetime=r=>t.check(ql(r)),t.date=r=>t.check(Hl(r)),t.time=r=>t.check(Gl(r)),t.duration=r=>t.check(Zl(r))});function y(t){return hS(Wl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Jw.init(t,e)}),zI=S("ZodEmail",(t,e)=>{g_.init(t,e),me.init(t,e)});var Zw=S("ZodGUID",(t,e)=>{h_.init(t,e),me.init(t,e)});var tc=S("ZodUUID",(t,e)=>{m_.init(t,e),me.init(t,e)});var Yw=S("ZodURL",(t,e)=>{y_.init(t,e),me.init(t,e)});function Xw(t){return xl(Yw,t)}var NI=S("ZodEmoji",(t,e)=>{v_.init(t,e),me.init(t,e)});var DI=S("ZodNanoID",(t,e)=>{__.init(t,e),me.init(t,e)});var LI=S("ZodCUID",(t,e)=>{S_.init(t,e),me.init(t,e)});var jI=S("ZodCUID2",(t,e)=>{w_.init(t,e),me.init(t,e)});var FI=S("ZodULID",(t,e)=>{b_.init(t,e),me.init(t,e)});var UI=S("ZodXID",(t,e)=>{R_.init(t,e),me.init(t,e)});var qI=S("ZodKSUID",(t,e)=>{C_.init(t,e),me.init(t,e)});var HI=S("ZodIPv4",(t,e)=>{T_.init(t,e),me.init(t,e)});var GI=S("ZodIPv6",(t,e)=>{A_.init(t,e),me.init(t,e)});var ZI=S("ZodCIDRv4",(t,e)=>{M_.init(t,e),me.init(t,e)});var BI=S("ZodCIDRv6",(t,e)=>{$_.init(t,e),me.init(t,e)});var WI=S("ZodBase64",(t,e)=>{O_.init(t,e),me.init(t,e)});var VI=S("ZodBase64URL",(t,e)=>{z_.init(t,e),me.init(t,e)});var KI=S("ZodE164",(t,e)=>{N_.init(t,e),me.init(t,e)});var JI=S("ZodJWT",(t,e)=>{D_.init(t,e),me.init(t,e)});var rc=S("ZodNumber",(t,e)=>{Sl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>nw(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(Bw(n))},safe(n){return this.check(Bw(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 FS(rc,t)}var YI=S("ZodNumberFormat",(t,e)=>{L_.init(t,e),rc.init(t,e)});function Bw(t){return qS(YI,t)}var Vl=S("ZodBoolean",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o)});function ie(t){return HS(Vl,t)}var Qw=S("ZodBigInt",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>iw(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 XI=S("ZodNull",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o)});function eb(t){return BS(XI,t)}var QI=S("ZodAny",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o)});function tb(){return WS(QI)}var eO=S("ZodUnknown",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o)});function ge(){return VS(eO)}var tO=S("ZodNever",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o)});function rO(t){return KS(tO,t)}var rb=S("ZodDate",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>dw(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 nO=S("ZodArray",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(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(Ja(r,n))},length(r,n){return this.check(Ya(r,n))},unwrap(){return this.element}})});function x(t,e){return YS(nO,t,e)}var nb=S("ZodObject",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Hi(t,"ZodObject",{keyof(){return et(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:rO()})},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(sb,this,r[0])},required(...r){return H.required(ab,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new nb(r)}function Ee(t,e){return new nb({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var ob=S("ZodUnion",(t,e)=>{wl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),t.options=e.options});function ue(t,e){return new ob({type:"union",options:t,...H.normalizeParams(e)})}var oO=S("ZodDiscriminatedUnion",(t,e)=>{ob.init(t,e),J_.init(t,e)});function Kl(t,e,r){return new oO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var iO=S("ZodIntersection",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o)});function nc(t,e){return new iO({type:"intersection",left:t,right:e})}var Ww=S("ZodRecord",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Ww({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Ww({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Bl=S("ZodEnum",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>lw(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 Bl({...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 Bl({...e,checks:[],...H.normalizeParams(o),entries:i})}});function et(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Bl({type:"enum",entries:r,...H.normalizeParams(e)})}var sO=S("ZodLiteral",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(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 sO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var aO=S("ZodTransform",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(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 ib(t){return new aO({type:"transform",transform:t})}var sb=S("ZodOptional",(t,e)=>{bl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ul(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new sb({type:"optional",innerType:t})}var cO=S("ZodExactOptional",(t,e)=>{rS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ul(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function uO(t){return new cO({type:"optional",innerType:t})}var dO=S("ZodNullable",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Vw(t){return new dO({type:"nullable",innerType:t})}var lO=S("ZodDefault",(t,e)=>{oS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function fO(t,e){return new lO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var pO=S("ZodPrefault",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function hO(t,e){return new pO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var ab=S("ZodNonOptional",(t,e)=>{sS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function mO(t,e){return new ab({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var gO=S("ZodCatch",(t,e)=>{aS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Cw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function yO(t,e){return new gO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var cb=S("ZodPipe",(t,e)=>{Rl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Pw(t,r,n,o),t.in=e.in,t.out=e.out});function Kw(t,e){return new cb({type:"pipe",in:t,out:e})}var vO=S("ZodPreprocess",(t,e)=>{cb.init(t,e),cS.init(t,e)}),_O=S("ZodReadonly",(t,e)=>{uS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>xw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function SO(t){return new _O({type:"readonly",innerType:t})}var ub=S("ZodCustom",(t,e)=>{dS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o)});function db(t,e){return XS(ub,t??(()=>!0),e)}function wO(t,e={}){return QS(ub,t,e)}function bO(t,e){return ew(t,e)}function Jl(t,e){return new vO({type:"pipe",in:ib(t),out:e})}var fb={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 lb;lb||(lb={});var oc={};Gu(oc,{bigint:()=>xO,boolean:()=>PO,date:()=>kO,number:()=>CO,string:()=>RO});function RO(t){return mS(Wl,t)}function CO(t){return US(rc,t)}function PO(t){return GS(Vl,t)}function xO(t){return ZS(Qw,t)}function kO(t){return JS(rb,t)}Qe(lS());var Ro="2025-11-25";var pb=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Hr="io.modelcontextprotocol/related-task",sc="2.0",Te=db(t=>t!==null&&(typeof t=="object"||typeof t=="function")),hb=ue([y(),K().int()]),mb=y(),e6=Ee({ttl:K().optional(),pollInterval:K().optional()}),TO=k({ttl:K().optional()}),AO=k({taskId:y()}),Xl=Ee({progressToken:hb.optional(),[Hr]:AO.optional()}),dt=k({_meta:Xl.optional()}),Gi=dt.extend({task:TO.optional()}),gb=t=>Gi.safeParse(t).success,ze=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Xl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:Xl.optional()}),ac=ue([y(),K().int()]),yb=k({jsonrpc:E(sc),id:ac,...ze.shape}).strict(),Zi=t=>yb.safeParse(t).success,vb=k({jsonrpc:E(sc),...St.shape}).strict(),_b=t=>vb.safeParse(t).success,Ql=k({jsonrpc:E(sc),id:ac,result:Ae}).strict(),wn=t=>Ql.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 ef=k({jsonrpc:E(sc),id:ac.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var Sb=t=>ef.safeParse(t).success;var Gr=ue([yb,vb,Ql,ef]),t6=ue([Ql,ef]),bn=Ae.strict(),MO=_t.extend({requestId:ac.optional(),reason:y().optional()}),cc=St.extend({method:E("notifications/cancelled"),params:MO}),$O=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:et(["light","dark"]).optional()}),Bi=k({icons:x($O).optional()}),bo=k({name:y(),title:y().optional()}),wb=bo.extend({...bo.shape,...Bi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),IO=nc(k({applyDefaults:ie().optional()}),ae(y(),ge())),OO=Jl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,nc(k({form:IO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),zO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),NO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),DO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:OO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:zO.optional(),extensions:ae(y(),Te).optional()}),LO=dt.extend({protocolVersion:y(),capabilities:DO,clientInfo:wb}),jO=ze.extend({method:E("initialize"),params:LO});var FO=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:NO.optional(),extensions:ae(y(),Te).optional()}),tf=Ae.extend({protocolVersion:y(),capabilities:FO,serverInfo:wb,instructions:y().optional()}),bb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),Rb=t=>bb.safeParse(t).success,uc=ze.extend({method:E("ping"),params:dt.optional()}),UO=k({progress:K(),total:ye(K()),message:ye(y())}),qO=k({..._t.shape,...UO.shape,progressToken:hb}),dc=St.extend({method:E("notifications/progress"),params:qO}),HO=dt.extend({cursor:mb.optional()}),Wi=ze.extend({params:HO.optional()}),Vi=Ae.extend({nextCursor:mb.optional()}),GO=et(["working","input_required","completed","failed","cancelled"]),Ki=k({taskId:y(),status:GO,ttl:ue([K(),eb()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Ki}),ZO=_t.merge(Ki),Ji=St.extend({method:E("notifications/tasks/status"),params:ZO}),lc=ze.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),fc=Ae.merge(Ki),pc=ze.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),r6=Ae.loose(),hc=Wi.extend({method:E("tasks/list")}),mc=Vi.extend({tasks:x(Ki)}),gc=ze.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),Cb=Ae.merge(Ki),Pb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),xb=Pb.extend({text:y()}),rf=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),kb=Pb.extend({blob:rf}),Yi=et(["user","assistant"]),Co=k({audience:x(Yi).optional(),priority:K().min(0).max(1).optional(),lastModified:qi.datetime({offset:!0}).optional()}),Eb=k({...bo.shape,...Bi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),BO=k({...bo.shape,...Bi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),WO=Wi.extend({method:E("resources/list")}),nf=Vi.extend({resources:x(Eb)}),VO=Wi.extend({method:E("resources/templates/list")}),of=Vi.extend({resourceTemplates:x(BO)}),sf=dt.extend({uri:y()}),KO=sf,JO=ze.extend({method:E("resources/read"),params:KO}),af=Ae.extend({contents:x(ue([xb,kb]))}),cf=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),YO=sf,XO=ze.extend({method:E("resources/subscribe"),params:YO}),QO=sf,ez=ze.extend({method:E("resources/unsubscribe"),params:QO}),tz=_t.extend({uri:y()}),rz=St.extend({method:E("notifications/resources/updated"),params:tz}),nz=k({name:y(),description:ye(y()),required:ye(ie())}),oz=k({...bo.shape,...Bi.shape,description:ye(y()),arguments:ye(x(nz)),_meta:ye(Ee({}))}),iz=Wi.extend({method:E("prompts/list")}),uf=Vi.extend({prompts:x(oz)}),sz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),az=ze.extend({method:E("prompts/get"),params:sz}),df=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),lf=k({type:E("image"),data:rf,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),ff=k({type:E("audio"),data:rf,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),cz=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),uz=k({type:E("resource"),resource:ue([xb,kb]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),dz=Eb.extend({type:E("resource_link")}),pf=ue([df,lf,ff,dz,uz]),lz=k({role:Yi,content:pf}),hf=Ae.extend({description:y().optional(),messages:x(lz)}),mf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),fz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),pz=k({taskSupport:et(["required","optional","forbidden"]).optional()}),Tb=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:fz.optional(),execution:pz.optional(),_meta:ae(y(),ge()).optional()}),hz=Wi.extend({method:E("tools/list")}),gf=Vi.extend({tools:x(Tb)}),Cn=Ae.extend({content:x(pf).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),n6=Cn.or(Ae.extend({toolResult:ge()})),mz=Gi.extend({name:y(),arguments:ae(y(),ge()).optional()}),gz=ze.extend({method:E("tools/call"),params:mz}),Xi=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Ab=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Mb=et(["debug","info","notice","warning","error","critical","alert","emergency"]),yz=dt.extend({level:Mb}),vz=ze.extend({method:E("logging/setLevel"),params:yz}),_z=_t.extend({level:Mb,logger:y().optional(),data:ge()}),Sz=St.extend({method:E("notifications/message"),params:_z}),wz=k({name:y().optional()}),bz=k({hints:x(wz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),Rz=k({mode:et(["auto","required","none"]).optional()}),Cz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(pf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),Pz=Kl("type",[df,lf,ff]),ic=Kl("type",[df,lf,ff,cz,Cz]),xz=k({role:Yi,content:ue([ic,x(ic)]),_meta:ae(y(),ge()).optional()}),kz=Gi.extend({messages:x(xz),modelPreferences:bz.optional(),systemPrompt:y().optional(),includeContext:et(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:x(y()).optional(),metadata:Te.optional(),tools:x(Tb).optional(),toolChoice:Rz.optional()}),yf=ze.extend({method:E("sampling/createMessage"),params:kz}),vf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens"]).or(y())),role:Yi,content:Pz}),_f=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Yi,content:ue([ic,x(ic)])}),Ez=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),Tz=k({type:E("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:et(["email","uri","date","date-time"]).optional(),default:y().optional()}),Az=k({type:et(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Mz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),$z=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),Iz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),Oz=ue([Mz,$z]),zz=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()}),Nz=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()}),Dz=ue([zz,Nz]),Lz=ue([Iz,Oz,Dz]),jz=ue([Lz,Ez,Tz,Az]),Fz=Gi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),jz),required:x(y()).optional()})}),Uz=Gi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),qz=ue([Fz,Uz]),Sf=ze.extend({method:E("elicitation/create"),params:qz}),Hz=_t.extend({elicitationId:y()}),Gz=St.extend({method:E("notifications/elicitation/complete"),params:Hz}),wf=Ae.extend({action:et(["accept","decline","cancel"]),content:Jl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Zz=k({type:E("ref/resource"),uri:y()});var Bz=k({type:E("ref/prompt"),name:y()}),Wz=dt.extend({ref:ue([Bz,Zz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Vz=ze.extend({method:E("completion/complete"),params:Wz});var bf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Kz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),Jz=ze.extend({method:E("roots/list"),params:dt.optional()}),Yz=Ae.extend({roots:x(Kz)}),Xz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),o6=ue([uc,jO,Vz,vz,az,iz,WO,VO,JO,XO,ez,gz,hz,lc,pc,hc,gc]),i6=ue([cc,dc,bb,Xz,Ji]),s6=ue([bn,vf,_f,wf,Yz,fc,mc,Rn]),a6=ue([uc,yf,Sf,Jz,lc,pc,hc,gc]),c6=ue([cc,dc,Sz,rz,cf,Xi,mf,Ji,Gz]),u6=ue([bn,tf,bf,hf,uf,nf,of,af,Cn,gf,fc,mc,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 Yl(o.elicitations,r)}return new t(e,r,n)}},Yl=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 q6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Rf(t){let r=Qa(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=ec(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Cf(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var oN=6e4,yc=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(cc,r=>{this._oncancel(r)}),this.setNotificationHandler(dc,r=>{this._onprogress(r)}),this.setRequestHandler(uc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(lc,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(pc,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(hc,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(gc,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)||Sb(i)?this._onresponse(i):Zi(i)?this._onrequest(i,s):_b(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=gb(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??oN,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},fc,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},mc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Cb,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=Rf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Cf(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=Rf(e);this._notificationHandlers.set(n,o=>{let i=Cf(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 $b(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Ib(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];$b(s)&&$b(i)?r[o]={...s,...i}:r[o]=i}return r}var RP=ra(dh(),1),CP=ra(bP(),1);function uU(){let t=new RP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,CP.default)(t),t}var eu=class{constructor(e){this._ajv=e??uU()}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 tu=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 PP(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 xP(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 ru(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&&ru(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&ru(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&ru(r,e)}}function dU(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 nu=class extends yc{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 eu,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",mf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",cf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new tu(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Ib(this._capabilities,e)}setRequestHandler(e,r){let o=Qa(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=ec(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(Sf,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}=dU(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(wf,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{ru(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(yf,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?_f:vf,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}},tf,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!pb.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){PP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&xP(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},bf,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},hf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},uf,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},nf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},of,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},af,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},gf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Ab.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}},kP=10,lU=13,Nn=32;function vh(t){}function ou(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=vh,onError:r=vh,onRetry:n=vh,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 Q=g(_);Q!==""&&(s.push(Q),a=Q.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 Ul(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 Ge(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 Ge(n.element,r);if(n.type==="set")return Ge(n.valueType,r);if(n.type==="lazy")return Ge(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 Ge(n.innerType,r);if(n.type==="intersection")return Ge(n.left,r)||Ge(n.right,r);if(n.type==="record"||n.type==="map")return Ge(n.keyType,r)||Ge(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:Ge(n.in,r)||Ge(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ge(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ge(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ge(o,r))return!0;return!!(n.rest&&Ge(n.rest,r))}return!1}var rw=(t,e={})=>r=>{let n=jl({...r,processors:e});return be(t,n),Fl(n,t),Ul(n,t)},Ui=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=jl({...o??{},target:i,io:e,processors:r});return be(t,s),Fl(s,t),Ul(s,t)};var kI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},nw=(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=kI[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}))])}},ow=(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)},iw=(t,e,r,n)=>{r.type="boolean"},sw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var aw=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var cw=(t,e,r,n)=>{r.not={}},uw=(t,e,r,n)=>{},dw=(t,e,r,n)=>{},lw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},fw=(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},pw=(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 hw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var mw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var gw=(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"]})},yw=(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)},vw=(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},_w=(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 Sw=(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)}},ww=(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"}]},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},Rw=(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))},Cw=(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)))},Pw=(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},xw=(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},kw=(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 ql=(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 Xa(t){return!!t._zod}function It(t,e){return Xa(t)?Ni(t,e):t.safeParse(e)}function Qa(t){if(!t)return;let e;if(Xa(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function ec(t){if(Xa(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={};Gu(qi,{ZodISODate:()=>Tw,ZodISODateTime:()=>Ew,ZodISODuration:()=>Mw,ZodISOTime:()=>Aw,date:()=>Gl,datetime:()=>Hl,duration:()=>Bl,time:()=>Zl});var Ew=S("ZodISODateTime",(t,e)=>{x_.init(t,e),me.init(t,e)});function Hl(t){return DS(Ew,t)}var Tw=S("ZodISODate",(t,e)=>{k_.init(t,e),me.init(t,e)});function Gl(t){return LS(Tw,t)}var Aw=S("ZodISOTime",(t,e)=>{E_.init(t,e),me.init(t,e)});function Zl(t){return jS(Aw,t)}var Mw=S("ZodISODuration",(t,e)=>{T_.init(t,e),me.init(t,e)});function Bl(t){return FS(Mw,t)}var zI=(t,e)=>{qa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>hl(t,r)},flatten:{value:r=>pl(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",zI,{Parent:Error});var Iw=Ha(ut),Ow=Ga(ut),zw=zi(ut),Nw=Di(ut),Dw=uv(ut),Lw=dv(ut),jw=lv(ut),Fw=fv(ut),Uw=pv(ut),qw=hv(ut),Hw=mv(ut),Gw=gv(ut);var Zw=new WeakMap;function Hi(t,e,r){let n=Object.getPrototypeOf(t),o=Zw.get(n);if(o||(o=new Set,Zw.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)=>(re.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Ui(t,"input"),output:Ui(t,"output")}}),t.toJSONSchema=rw(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Iw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>zw(t,r,n),t.parseAsync=async(r,n)=>Ow(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Nw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Dw(t,r,n),t.decode=(r,n)=>Lw(t,r,n),t.encodeAsync=async(r,n)=>jw(t,r,n),t.decodeAsync=async(r,n)=>Fw(t,r,n),t.safeEncode=(r,n)=>Uw(t,r,n),t.safeDecode=(r,n)=>qw(t,r,n),t.safeEncodeAsync=async(r,n)=>Hw(t,r,n),t.safeDecodeAsync=async(r,n)=>Gw(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(RO(r,n))},superRefine(r,n){return this.check(CO(r,n))},overwrite(r){return this.check(qr(r))},optional(){return ye(this)},exactOptional(){return lO(this)},nullable(){return Kw(this)},nullish(){return ye(Kw(this))},nonoptional(r){return yO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return nc(this,r)},transform(r){return Jw(this,sb(r))},default(r){return hO(this,r)},prefault(r){return gO(this,r)},catch(r){return _O(this,r)},pipe(r){return Jw(this,r)},readonly(){return bO(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)),Yw=S("_ZodString",(t,e)=>{Ka.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>nw(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(El(...n))},includes(...n){return this.check(Ml(...n))},startsWith(...n){return this.check($l(...n))},endsWith(...n){return this.check(Il(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Ja(...n))},length(...n){return this.check(Ya(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check(Tl(n))},uppercase(n){return this.check(Al(n))},trim(){return this.check(zl())},normalize(...n){return this.check(Ol(...n))},toLowerCase(){return this.check(Nl())},toUpperCase(){return this.check(Dl())},slugify(){return this.check(Ll())}})}),Vl=S("ZodString",(t,e)=>{Ka.init(t,e),Yw.init(t,e),t.email=r=>t.check(yS(DI,r)),t.url=r=>t.check(kl(Xw,r)),t.jwt=r=>t.check(NS(XI,r)),t.emoji=r=>t.check(bS(LI,r)),t.guid=r=>t.check(xl(Bw,r)),t.uuid=r=>t.check(vS(tc,r)),t.uuidv4=r=>t.check(_S(tc,r)),t.uuidv6=r=>t.check(SS(tc,r)),t.uuidv7=r=>t.check(wS(tc,r)),t.nanoid=r=>t.check(RS(jI,r)),t.guid=r=>t.check(xl(Bw,r)),t.cuid=r=>t.check(CS(FI,r)),t.cuid2=r=>t.check(PS(UI,r)),t.ulid=r=>t.check(xS(qI,r)),t.base64=r=>t.check(IS(KI,r)),t.base64url=r=>t.check(OS(JI,r)),t.xid=r=>t.check(kS(HI,r)),t.ksuid=r=>t.check(ES(GI,r)),t.ipv4=r=>t.check(TS(ZI,r)),t.ipv6=r=>t.check(AS(BI,r)),t.cidrv4=r=>t.check(MS(WI,r)),t.cidrv6=r=>t.check($S(VI,r)),t.e164=r=>t.check(zS(YI,r)),t.datetime=r=>t.check(Hl(r)),t.date=r=>t.check(Gl(r)),t.time=r=>t.check(Zl(r)),t.duration=r=>t.check(Bl(r))});function y(t){return mS(Vl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Yw.init(t,e)}),DI=S("ZodEmail",(t,e)=>{y_.init(t,e),me.init(t,e)});var Bw=S("ZodGUID",(t,e)=>{m_.init(t,e),me.init(t,e)});var tc=S("ZodUUID",(t,e)=>{g_.init(t,e),me.init(t,e)});var Xw=S("ZodURL",(t,e)=>{v_.init(t,e),me.init(t,e)});function Qw(t){return kl(Xw,t)}var LI=S("ZodEmoji",(t,e)=>{__.init(t,e),me.init(t,e)});var jI=S("ZodNanoID",(t,e)=>{S_.init(t,e),me.init(t,e)});var FI=S("ZodCUID",(t,e)=>{w_.init(t,e),me.init(t,e)});var UI=S("ZodCUID2",(t,e)=>{b_.init(t,e),me.init(t,e)});var qI=S("ZodULID",(t,e)=>{R_.init(t,e),me.init(t,e)});var HI=S("ZodXID",(t,e)=>{C_.init(t,e),me.init(t,e)});var GI=S("ZodKSUID",(t,e)=>{P_.init(t,e),me.init(t,e)});var ZI=S("ZodIPv4",(t,e)=>{A_.init(t,e),me.init(t,e)});var BI=S("ZodIPv6",(t,e)=>{M_.init(t,e),me.init(t,e)});var WI=S("ZodCIDRv4",(t,e)=>{$_.init(t,e),me.init(t,e)});var VI=S("ZodCIDRv6",(t,e)=>{I_.init(t,e),me.init(t,e)});var KI=S("ZodBase64",(t,e)=>{z_.init(t,e),me.init(t,e)});var JI=S("ZodBase64URL",(t,e)=>{N_.init(t,e),me.init(t,e)});var YI=S("ZodE164",(t,e)=>{D_.init(t,e),me.init(t,e)});var XI=S("ZodJWT",(t,e)=>{L_.init(t,e),me.init(t,e)});var rc=S("ZodNumber",(t,e)=>{wl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ow(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(Ww(n))},safe(n){return this.check(Ww(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 US(rc,t)}var QI=S("ZodNumberFormat",(t,e)=>{j_.init(t,e),rc.init(t,e)});function Ww(t){return HS(QI,t)}var Kl=S("ZodBoolean",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o)});function ie(t){return GS(Kl,t)}var eb=S("ZodBigInt",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>sw(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 eO=S("ZodNull",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o)});function tb(t){return WS(eO,t)}var tO=S("ZodAny",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o)});function rb(){return VS(tO)}var rO=S("ZodUnknown",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o)});function ge(){return KS(rO)}var nO=S("ZodNever",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o)});function oO(t){return JS(nO,t)}var nb=S("ZodDate",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>lw(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 iO=S("ZodArray",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(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(Ja(r,n))},length(r,n){return this.check(Ya(r,n))},unwrap(){return this.element}})});function x(t,e){return XS(iO,t,e)}var ob=S("ZodObject",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Hi(t,"ZodObject",{keyof(){return et(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:oO()})},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(ab,this,r[0])},required(...r){return H.required(cb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new ob(r)}function Ee(t,e){return new ob({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var ib=S("ZodUnion",(t,e)=>{bl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o),t.options=e.options});function ue(t,e){return new ib({type:"union",options:t,...H.normalizeParams(e)})}var sO=S("ZodDiscriminatedUnion",(t,e)=>{ib.init(t,e),Y_.init(t,e)});function Jl(t,e,r){return new sO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var aO=S("ZodIntersection",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o)});function nc(t,e){return new aO({type:"intersection",left:t,right:e})}var Vw=S("ZodRecord",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Vw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Vw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Wl=S("ZodEnum",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>fw(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 Wl({...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 Wl({...e,checks:[],...H.normalizeParams(o),entries:i})}});function et(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Wl({type:"enum",entries:r,...H.normalizeParams(e)})}var cO=S("ZodLiteral",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(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 cO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var uO=S("ZodTransform",(t,e)=>{rS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(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 sb(t){return new uO({type:"transform",transform:t})}var ab=S("ZodOptional",(t,e)=>{Rl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ql(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new ab({type:"optional",innerType:t})}var dO=S("ZodExactOptional",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ql(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function lO(t){return new dO({type:"optional",innerType:t})}var fO=S("ZodNullable",(t,e)=>{oS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Kw(t){return new fO({type:"nullable",innerType:t})}var pO=S("ZodDefault",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function hO(t,e){return new pO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var mO=S("ZodPrefault",(t,e)=>{sS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Cw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function gO(t,e){return new mO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var cb=S("ZodNonOptional",(t,e)=>{aS.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 yO(t,e){return new cb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var vO=S("ZodCatch",(t,e)=>{cS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Pw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function _O(t,e){return new vO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var ub=S("ZodPipe",(t,e)=>{Cl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>xw(t,r,n,o),t.in=e.in,t.out=e.out});function Jw(t,e){return new ub({type:"pipe",in:t,out:e})}var SO=S("ZodPreprocess",(t,e)=>{ub.init(t,e),uS.init(t,e)}),wO=S("ZodReadonly",(t,e)=>{dS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>kw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function bO(t){return new wO({type:"readonly",innerType:t})}var db=S("ZodCustom",(t,e)=>{lS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o)});function lb(t,e){return QS(db,t??(()=>!0),e)}function RO(t,e={}){return ew(db,t,e)}function CO(t,e){return tw(t,e)}function Yl(t,e){return new SO({type:"pipe",in:sb(t),out:e})}var pb={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 fb;fb||(fb={});var oc={};Gu(oc,{bigint:()=>EO,boolean:()=>kO,date:()=>TO,number:()=>xO,string:()=>PO});function PO(t){return gS(Vl,t)}function xO(t){return qS(rc,t)}function kO(t){return ZS(Kl,t)}function EO(t){return BS(eb,t)}function TO(t){return YS(nb,t)}Qe(fS());var Ro="2025-11-25";var hb=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Hr="io.modelcontextprotocol/related-task",sc="2.0",Te=lb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),mb=ue([y(),K().int()]),gb=y(),r6=Ee({ttl:K().optional(),pollInterval:K().optional()}),MO=k({ttl:K().optional()}),$O=k({taskId:y()}),Ql=Ee({progressToken:mb.optional(),[Hr]:$O.optional()}),dt=k({_meta:Ql.optional()}),Gi=dt.extend({task:MO.optional()}),yb=t=>Gi.safeParse(t).success,ze=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Ql.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:Ql.optional()}),ac=ue([y(),K().int()]),vb=k({jsonrpc:E(sc),id:ac,...ze.shape}).strict(),Zi=t=>vb.safeParse(t).success,_b=k({jsonrpc:E(sc),...St.shape}).strict(),Sb=t=>_b.safeParse(t).success,ef=k({jsonrpc:E(sc),id:ac,result:Ae}).strict(),wn=t=>ef.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 tf=k({jsonrpc:E(sc),id:ac.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var wb=t=>tf.safeParse(t).success;var Gr=ue([vb,_b,ef,tf]),n6=ue([ef,tf]),bn=Ae.strict(),IO=_t.extend({requestId:ac.optional(),reason:y().optional()}),cc=St.extend({method:E("notifications/cancelled"),params:IO}),OO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:et(["light","dark"]).optional()}),Bi=k({icons:x(OO).optional()}),bo=k({name:y(),title:y().optional()}),bb=bo.extend({...bo.shape,...Bi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),zO=nc(k({applyDefaults:ie().optional()}),ae(y(),ge())),NO=Yl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,nc(k({form:zO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),DO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),LO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),jO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:NO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:DO.optional(),extensions:ae(y(),Te).optional()}),FO=dt.extend({protocolVersion:y(),capabilities:jO,clientInfo:bb}),UO=ze.extend({method:E("initialize"),params:FO});var qO=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:LO.optional(),extensions:ae(y(),Te).optional()}),rf=Ae.extend({protocolVersion:y(),capabilities:qO,serverInfo:bb,instructions:y().optional()}),Rb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),Cb=t=>Rb.safeParse(t).success,uc=ze.extend({method:E("ping"),params:dt.optional()}),HO=k({progress:K(),total:ye(K()),message:ye(y())}),GO=k({..._t.shape,...HO.shape,progressToken:mb}),dc=St.extend({method:E("notifications/progress"),params:GO}),ZO=dt.extend({cursor:gb.optional()}),Wi=ze.extend({params:ZO.optional()}),Vi=Ae.extend({nextCursor:gb.optional()}),BO=et(["working","input_required","completed","failed","cancelled"]),Ki=k({taskId:y(),status:BO,ttl:ue([K(),tb()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Ki}),WO=_t.merge(Ki),Ji=St.extend({method:E("notifications/tasks/status"),params:WO}),lc=ze.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),fc=Ae.merge(Ki),pc=ze.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),o6=Ae.loose(),hc=Wi.extend({method:E("tasks/list")}),mc=Vi.extend({tasks:x(Ki)}),gc=ze.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),Pb=Ae.merge(Ki),xb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),kb=xb.extend({text:y()}),nf=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Eb=xb.extend({blob:nf}),Yi=et(["user","assistant"]),Co=k({audience:x(Yi).optional(),priority:K().min(0).max(1).optional(),lastModified:qi.datetime({offset:!0}).optional()}),Tb=k({...bo.shape,...Bi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),VO=k({...bo.shape,...Bi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),KO=Wi.extend({method:E("resources/list")}),of=Vi.extend({resources:x(Tb)}),JO=Wi.extend({method:E("resources/templates/list")}),sf=Vi.extend({resourceTemplates:x(VO)}),af=dt.extend({uri:y()}),YO=af,XO=ze.extend({method:E("resources/read"),params:YO}),cf=Ae.extend({contents:x(ue([kb,Eb]))}),uf=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),QO=af,ez=ze.extend({method:E("resources/subscribe"),params:QO}),tz=af,rz=ze.extend({method:E("resources/unsubscribe"),params:tz}),nz=_t.extend({uri:y()}),oz=St.extend({method:E("notifications/resources/updated"),params:nz}),iz=k({name:y(),description:ye(y()),required:ye(ie())}),sz=k({...bo.shape,...Bi.shape,description:ye(y()),arguments:ye(x(iz)),_meta:ye(Ee({}))}),az=Wi.extend({method:E("prompts/list")}),df=Vi.extend({prompts:x(sz)}),cz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),uz=ze.extend({method:E("prompts/get"),params:cz}),lf=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),ff=k({type:E("image"),data:nf,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),pf=k({type:E("audio"),data:nf,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),dz=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),lz=k({type:E("resource"),resource:ue([kb,Eb]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),fz=Tb.extend({type:E("resource_link")}),hf=ue([lf,ff,pf,fz,lz]),pz=k({role:Yi,content:hf}),mf=Ae.extend({description:y().optional(),messages:x(pz)}),gf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),hz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),mz=k({taskSupport:et(["required","optional","forbidden"]).optional()}),Ab=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:hz.optional(),execution:mz.optional(),_meta:ae(y(),ge()).optional()}),gz=Wi.extend({method:E("tools/list")}),yf=Vi.extend({tools:x(Ab)}),Cn=Ae.extend({content:x(hf).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),i6=Cn.or(Ae.extend({toolResult:ge()})),yz=Gi.extend({name:y(),arguments:ae(y(),ge()).optional()}),vz=ze.extend({method:E("tools/call"),params:yz}),Xi=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Mb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),$b=et(["debug","info","notice","warning","error","critical","alert","emergency"]),_z=dt.extend({level:$b}),Sz=ze.extend({method:E("logging/setLevel"),params:_z}),wz=_t.extend({level:$b,logger:y().optional(),data:ge()}),bz=St.extend({method:E("notifications/message"),params:wz}),Rz=k({name:y().optional()}),Cz=k({hints:x(Rz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),Pz=k({mode:et(["auto","required","none"]).optional()}),xz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(hf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),kz=Jl("type",[lf,ff,pf]),ic=Jl("type",[lf,ff,pf,dz,xz]),Ez=k({role:Yi,content:ue([ic,x(ic)]),_meta:ae(y(),ge()).optional()}),Tz=Gi.extend({messages:x(Ez),modelPreferences:Cz.optional(),systemPrompt:y().optional(),includeContext:et(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:x(y()).optional(),metadata:Te.optional(),tools:x(Ab).optional(),toolChoice:Pz.optional()}),vf=ze.extend({method:E("sampling/createMessage"),params:Tz}),_f=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens"]).or(y())),role:Yi,content:kz}),Sf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Yi,content:ue([ic,x(ic)])}),Az=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),Mz=k({type:E("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:et(["email","uri","date","date-time"]).optional(),default:y().optional()}),$z=k({type:et(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Iz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),Oz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),zz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),Nz=ue([Iz,Oz]),Dz=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()}),Lz=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()}),jz=ue([Dz,Lz]),Fz=ue([zz,Nz,jz]),Uz=ue([Fz,Az,Mz,$z]),qz=Gi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Uz),required:x(y()).optional()})}),Hz=Gi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Gz=ue([qz,Hz]),wf=ze.extend({method:E("elicitation/create"),params:Gz}),Zz=_t.extend({elicitationId:y()}),Bz=St.extend({method:E("notifications/elicitation/complete"),params:Zz}),bf=Ae.extend({action:et(["accept","decline","cancel"]),content:Yl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Wz=k({type:E("ref/resource"),uri:y()});var Vz=k({type:E("ref/prompt"),name:y()}),Kz=dt.extend({ref:ue([Vz,Wz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Jz=ze.extend({method:E("completion/complete"),params:Kz});var Rf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Yz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),Xz=ze.extend({method:E("roots/list"),params:dt.optional()}),Qz=Ae.extend({roots:x(Yz)}),eN=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),s6=ue([uc,UO,Jz,Sz,uz,az,KO,JO,XO,ez,rz,vz,gz,lc,pc,hc,gc]),a6=ue([cc,dc,Rb,eN,Ji]),c6=ue([bn,_f,Sf,bf,Qz,fc,mc,Rn]),u6=ue([uc,vf,wf,Xz,lc,pc,hc,gc]),d6=ue([cc,dc,bz,oz,uf,Xi,gf,Ji,Bz]),l6=ue([bn,rf,Rf,mf,df,of,sf,cf,Cn,yf,fc,mc,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 Xl(o.elicitations,r)}return new t(e,r,n)}},Xl=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 G6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Cf(t){let r=Qa(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=ec(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Pf(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var sN=6e4,yc=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(cc,r=>{this._oncancel(r)}),this.setNotificationHandler(dc,r=>{this._onprogress(r)}),this.setRequestHandler(uc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(lc,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(pc,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(hc,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(gc,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)||wb(i)?this._onresponse(i):Zi(i)?this._onrequest(i,s):Sb(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=yb(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??sN,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},fc,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},mc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Pb,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=Cf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Pf(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=Cf(e);this._notificationHandlers.set(n,o=>{let i=Pf(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 Ib(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Ob(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];Ib(s)&&Ib(i)?r[o]={...s,...i}:r[o]=i}return r}var CP=ra(lh(),1),PP=ra(RP(),1);function lU(){let t=new CP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,PP.default)(t),t}var eu=class{constructor(e){this._ajv=e??lU()}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 tu=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 xP(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 kP(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 ru(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&&ru(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&ru(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&ru(r,e)}}function fU(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 nu=class extends yc{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 eu,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",gf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",uf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new tu(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Ob(this._capabilities,e)}setRequestHandler(e,r){let o=Qa(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=ec(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(wf,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}=fU(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(bf,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{ru(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(vf,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?Sf:_f,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}},rf,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!hb.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){xP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&kP(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},Rf,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},mf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},df,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},of,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},sf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},cf,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},yf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Mb.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}},EP=10,pU=13,Nn=32;function _h(t){}function ou(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=_h,onError:r=_h,onRetry:n=_h,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 Q=g(_);Q!==""&&(s.push(Q),a=Q.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
- `,C);continue}let Q=_.charCodeAt(C);if(EP(_,C,Q)){let pe=_.charCodeAt(C+5)===Nn?C+6:C+5,xe=_.slice(pe,I);if(l===0&&_.charCodeAt(I+1)===kP){e({id:u,event:f,data:xe}),u=void 0,d="",f=void 0,C=I+2,I=_.indexOf(`
90
+ `,C);continue}let Q=_.charCodeAt(C);if(TP(_,C,Q)){let pe=_.charCodeAt(C+5)===Nn?C+6:C+5,xe=_.slice(pe,I);if(l===0&&_.charCodeAt(I+1)===EP){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
- ${xe}`,l++}else TP(_,C,Q)?f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0:v(_,C,I);C=I+1,I=_.indexOf(`
92
+ ${xe}`,l++}else AP(_,C,Q)?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),Q=_.indexOf(`
94
- `,C),pe=-1;if(I!==-1&&Q!==-1?pe=I<Q?I:Q:I!==-1?I===_.length-1?pe=-1:pe=I:Q!==-1&&(pe=Q),pe===-1)break;v(_,C,pe),C=pe+1,_.charCodeAt(C-1)===lU&&_.charCodeAt(C)===kP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){b();return}let Q=_.charCodeAt(C);if(EP(_,C,Q)){let br=_.charCodeAt(C+5)===Nn?C+6:C+5,Fm=_.slice(br,I);d=l===0?Fm:`${d}
95
- ${Fm}`,l++;return}if(TP(_,C,Q)){f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0;return}if(Q===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(Q===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 EP(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 TP(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 su=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(AP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(AP(this),r)}};function fU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function _h(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(_h).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${_h(t.cause)}`:t.message:`${t}`}function AP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var $P=t=>{throw TypeError(t)},kh=(t,e,r)=>e.has(t)||$P("Cannot "+r),q=(t,e,r)=>(kh(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?$P("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(kh(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(kh(t,e,"access private method"),r),it,Dn,qo,iu,au,$s,Zo,Is,en,Ho,Bo,Go,As,jt,Sh,wh,bh,MP,Rh,Ch,Ms,Ph,xh,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,it),Me(this,Dn),Me(this,qo),Me(this,iu),Me(this,au),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,wh,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,it)===this.CLOSED)return;ve(this,it,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,Ph).call(this))}while(h)}),Me(this,bh,i=>{ve(this,en,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,jt,Ph).call(this,_h(i))}),Me(this,Rh,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,Ch,i=>{ve(this,$s,i)}),Me(this,xh,()=>{ve(this,Zo,void 0),q(this,it)===this.CONNECTING&&gr(this,jt,Sh).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,pU()));else throw new Error("Invalid URL")}catch{throw fU("An invalid or illegal string was specified")}ve(this,Ho,ou({onEvent:q(this,Rh),onRetry:q(this,Ch)})),ve(this,it,this.CONNECTING),ve(this,$s,3e3),ve(this,au,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,iu,(o=r?.withCredentials)!=null?o:!1),gr(this,jt,Sh).call(this)}get readyState(){return q(this,it)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,iu)}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,it)!==this.CLOSED&&(q(this,en)&&q(this,en).abort(),ve(this,it,this.CLOSED),ve(this,en,void 0))}};it=new WeakMap,Dn=new WeakMap,qo=new WeakMap,iu=new WeakMap,au=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,Sh=function(){ve(this,it,this.CONNECTING),ve(this,en,new AbortController),q(this,au)(q(this,Dn),gr(this,jt,MP).call(this)).then(q(this,wh)).catch(q(this,bh))},wh=new WeakMap,bh=new WeakMap,MP=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},Rh=new WeakMap,Ch=new WeakMap,Ms=function(t,e){var r;q(this,it)!==this.CLOSED&&ve(this,it,this.CLOSED);let n=new su("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},Ph=function(t,e){var r;if(q(this,it)===this.CLOSED)return;ve(this,it,this.CONNECTING);let n=new su("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,xh),q(this,$s)))},xh=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function pU(){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 cu(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 Eh;Eh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function hU(t){return(await Eh).getRandomValues(new Uint8Array(t))}async function mU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await hU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function gU(t){return await mU(t)}async function yU(t){let e=await(await Eh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Th(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await gU(t),r=await yU(e);return{code_verifier:e,code_challenge:r}}var je=Xw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:fb.custom,message:"URL must be parseable",fatal:!0}),el}).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"}),OP=Ee({resource:y().url(),authorization_servers:x(je).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()}),Ah=Ee({issuer:y(),authorization_endpoint:je,token_endpoint:je,registration_endpoint:je.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:je.optional(),revocation_endpoint:je.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()}),vU=Ee({issuer:y(),authorization_endpoint:je,token_endpoint:je,userinfo_endpoint:je.optional(),jwks_uri:je,registration_endpoint:je.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:je.optional(),op_tos_uri:je.optional(),client_id_metadata_document_supported:ie().optional()}),zP=k({...vU.shape,...Ah.pick({code_challenge_methods_supported:!0}).shape}),NP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:oc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),DP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),IP=je.optional().or(E("").transform(()=>{})),_U=k({redirect_uris:x(je),token_endpoint_auth_method:y().optional(),grant_types:x(y()).optional(),response_types:x(y()).optional(),client_name:y().optional(),client_uri:je.optional(),logo_uri:IP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:IP,policy_uri:y().optional(),jwks_uri:je.optional(),jwks:tb().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),SU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),LP=_U.merge(SU),v8=k({error:y(),error_description:y().optional()}).strip(),_8=k({token:y(),token_type_hint:y().optional()}).strip();function jP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function FP({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 UP={[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 We=class extends Error{constructor(e){super(e??"Unauthorized")}};function wU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Mh="code",$h="S256";function bU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&wU(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 RU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":CU(o,i,r);return;case"client_secret_post":PU(o,i,n);return;case"none":xU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function CU(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 PU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function xU(t,e){e.set("client_id",t)}async function HP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=DP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=UP[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 Ih(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Ih(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Ih(t,e);throw r}}async function Ih(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 ZP(c,{fetchFn:i}),!a)try{a=await GP(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 IU(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 EU(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&&!kU(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 LU(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 DU(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 NU(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 OU(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 kU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function EU(t,e,r){let n=jP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!FP({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=Oh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Oh(t,"scope")||void 0,a=Oh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Oh(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 GP(t,e,r=fetch){let n=await MU(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 OP.parse(await n.json())}async function zh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?zh(t,void 0,r):void 0;throw n}}function TU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function qP(t,e,r=fetch){return await zh(t,{"MCP-Protocol-Version":e},r)}function AU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function MU(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=TU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await qP(s,i,r);if(!n?.metadataUrl&&AU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await qP(c,i,r)}return a}function $U(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 ZP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=$U(t);for(let{url:i,type:s}of o){let a=await zh(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"?Ah.parse(await a.json()):zP.parse(await a.json())}}}async function IU(t,e){let r,n;try{r=await GP(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 ZP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function OU(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(Mh))throw new Error(`Incompatible auth server: does not support response type ${Mh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes($h))throw new Error(`Incompatible auth server: does not support code challenge method ${$h}`)}else a=new URL("/authorize",t);let c=await Th(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Mh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",$h),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 zU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function BP(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=bU(n,d);RU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await HP(u);return NP.parse(await u.json())}async function NU(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 BP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function DU(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=zU(o,u,t.redirectUrl)}let c=await t.clientInformation();return BP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function LU(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 HP(s);return LP.parse(await s.json())}var Bs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},uu=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=cu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new We("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 We;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 We("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 We("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 We;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 Nx=ra(Ox(),1);import Zh from"node:process";import{PassThrough as pq}from"node:stream";var lq=10*1024*1024,lu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??lq}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
- `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),fq(r)}clear(){this._buffer=void 0}};function fq(t){return Gr.parse(JSON.parse(t))}function zx(t){return JSON.stringify(t)+`
98
- `}var hq=Zh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function pu(){let t={};for(let e of hq){let r=Zh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var fu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new lu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new pq)}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,Nx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...pu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Zh.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=zx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Ux=ra(Fx(),1);function qx(t){if(t)try{return Ux.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var hu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=ou({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 Rq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},mu=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=cu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??Rq}async _authThenStart(){if(!this._authProvider)throw new We("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 We;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 hu({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 We("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 We("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 We;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 We;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(),Rb(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=qx(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 Hx(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 Pq={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 Gx(t){return{...pu(),...Pq,...t??{}}}function Zx(){return pu()}var Wh=class t extends fu{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(`
94
+ `,C),pe=-1;if(I!==-1&&Q!==-1?pe=I<Q?I:Q:I!==-1?I===_.length-1?pe=-1:pe=I:Q!==-1&&(pe=Q),pe===-1)break;v(_,C,pe),C=pe+1,_.charCodeAt(C-1)===pU&&_.charCodeAt(C)===EP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){b();return}let Q=_.charCodeAt(C);if(TP(_,C,Q)){let br=_.charCodeAt(C+5)===Nn?C+6:C+5,Um=_.slice(br,I);d=l===0?Um:`${d}
95
+ ${Um}`,l++;return}if(AP(_,C,Q)){f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0;return}if(Q===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(Q===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 TP(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 AP(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 su=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(MP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(MP(this),r)}};function hU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function Sh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(Sh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${Sh(t.cause)}`:t.message:`${t}`}function MP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var IP=t=>{throw TypeError(t)},Eh=(t,e,r)=>e.has(t)||IP("Cannot "+r),q=(t,e,r)=>(Eh(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?IP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(Eh(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(Eh(t,e,"access private method"),r),it,Dn,qo,iu,au,$s,Zo,Is,en,Ho,Bo,Go,As,jt,wh,bh,Rh,$P,Ch,Ph,Ms,xh,kh,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,it),Me(this,Dn),Me(this,qo),Me(this,iu),Me(this,au),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,bh,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,it)===this.CLOSED)return;ve(this,it,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,xh).call(this))}while(h)}),Me(this,Rh,i=>{ve(this,en,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,jt,xh).call(this,Sh(i))}),Me(this,Ch,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,Ph,i=>{ve(this,$s,i)}),Me(this,kh,()=>{ve(this,Zo,void 0),q(this,it)===this.CONNECTING&&gr(this,jt,wh).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,mU()));else throw new Error("Invalid URL")}catch{throw hU("An invalid or illegal string was specified")}ve(this,Ho,ou({onEvent:q(this,Ch),onRetry:q(this,Ph)})),ve(this,it,this.CONNECTING),ve(this,$s,3e3),ve(this,au,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,iu,(o=r?.withCredentials)!=null?o:!1),gr(this,jt,wh).call(this)}get readyState(){return q(this,it)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,iu)}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,it)!==this.CLOSED&&(q(this,en)&&q(this,en).abort(),ve(this,it,this.CLOSED),ve(this,en,void 0))}};it=new WeakMap,Dn=new WeakMap,qo=new WeakMap,iu=new WeakMap,au=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,wh=function(){ve(this,it,this.CONNECTING),ve(this,en,new AbortController),q(this,au)(q(this,Dn),gr(this,jt,$P).call(this)).then(q(this,bh)).catch(q(this,Rh))},bh=new WeakMap,Rh=new WeakMap,$P=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},Ch=new WeakMap,Ph=new WeakMap,Ms=function(t,e){var r;q(this,it)!==this.CLOSED&&ve(this,it,this.CLOSED);let n=new su("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},xh=function(t,e){var r;if(q(this,it)===this.CLOSED)return;ve(this,it,this.CONNECTING);let n=new su("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,kh),q(this,$s)))},kh=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function mU(){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 cu(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 Th;Th=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function gU(t){return(await Th).getRandomValues(new Uint8Array(t))}async function yU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await gU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function vU(t){return await yU(t)}async function _U(t){let e=await(await Th).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Ah(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await vU(t),r=await _U(e);return{code_verifier:e,code_challenge:r}}var je=Qw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:pb.custom,message:"URL must be parseable",fatal:!0}),tl}).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"}),zP=Ee({resource:y().url(),authorization_servers:x(je).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()}),Mh=Ee({issuer:y(),authorization_endpoint:je,token_endpoint:je,registration_endpoint:je.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:je.optional(),revocation_endpoint:je.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()}),SU=Ee({issuer:y(),authorization_endpoint:je,token_endpoint:je,userinfo_endpoint:je.optional(),jwks_uri:je,registration_endpoint:je.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:je.optional(),op_tos_uri:je.optional(),client_id_metadata_document_supported:ie().optional()}),NP=k({...SU.shape,...Mh.pick({code_challenge_methods_supported:!0}).shape}),DP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:oc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),LP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),OP=je.optional().or(E("").transform(()=>{})),wU=k({redirect_uris:x(je),token_endpoint_auth_method:y().optional(),grant_types:x(y()).optional(),response_types:x(y()).optional(),client_name:y().optional(),client_uri:je.optional(),logo_uri:OP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:OP,policy_uri:y().optional(),jwks_uri:je.optional(),jwks:rb().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),bU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),jP=wU.merge(bU),S8=k({error:y(),error_description:y().optional()}).strip(),w8=k({token:y(),token_type_hint:y().optional()}).strip();function FP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function UP({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 qP={[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 We=class extends Error{constructor(e){super(e??"Unauthorized")}};function RU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var $h="code",Ih="S256";function CU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&RU(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 PU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":xU(o,i,r);return;case"client_secret_post":kU(o,i,n);return;case"none":EU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function xU(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 kU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function EU(t,e){e.set("client_id",t)}async function GP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=LP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=qP[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 Oh(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Oh(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Oh(t,e);throw r}}async function Oh(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 BP(c,{fetchFn:i}),!a)try{a=await ZP(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 zU(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 AU(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&&!TU(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 FU(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 jU(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 LU(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 NU(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 TU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function AU(t,e,r){let n=FP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!UP({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=zh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=zh(t,"scope")||void 0,a=zh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function zh(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 ZP(t,e,r=fetch){let n=await IU(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 zP.parse(await n.json())}async function Nh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Nh(t,void 0,r):void 0;throw n}}function MU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function HP(t,e,r=fetch){return await Nh(t,{"MCP-Protocol-Version":e},r)}function $U(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function IU(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=MU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await HP(s,i,r);if(!n?.metadataUrl&&$U(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await HP(c,i,r)}return a}function OU(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 BP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=OU(t);for(let{url:i,type:s}of o){let a=await Nh(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"?Mh.parse(await a.json()):NP.parse(await a.json())}}}async function zU(t,e){let r,n;try{r=await ZP(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 BP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function NU(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($h))throw new Error(`Incompatible auth server: does not support response type ${$h}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Ih))throw new Error(`Incompatible auth server: does not support code challenge method ${Ih}`)}else a=new URL("/authorize",t);let c=await Ah(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",$h),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Ih),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 DU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function WP(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=CU(n,d);PU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await GP(u);return DP.parse(await u.json())}async function LU(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 WP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function jU(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=DU(o,u,t.redirectUrl)}let c=await t.clientInformation();return WP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function FU(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 GP(s);return jP.parse(await s.json())}var Bs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},uu=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=cu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new We("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 We;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 We("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 We("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 We;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 Dx=ra(zx(),1);import Bh from"node:process";import{PassThrough as mq}from"node:stream";var pq=10*1024*1024,lu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??pq}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
+ `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),hq(r)}clear(){this._buffer=void 0}};function hq(t){return Gr.parse(JSON.parse(t))}function Nx(t){return JSON.stringify(t)+`
98
+ `}var gq=Bh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function pu(){let t={};for(let e of gq){let r=Bh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var fu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new lu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new mq)}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,Dx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...pu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Bh.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=Nx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var qx=ra(Ux(),1);function Hx(t){if(t)try{return qx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var hu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=ou({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 Pq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},mu=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=cu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??Pq}async _authThenStart(){if(!this._authProvider)throw new We("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 We;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 hu({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 We("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 We("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 We;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 We;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(),Cb(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=Hx(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 Gx(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 kq={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 Zx(t){return{...pu(),...kq,...t??{}}}function Bx(){return pu()}var Vh=class t extends fu{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 Bx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Wh(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}},Vh=new Cq;function Kh(t,e){return Vh.run(t,e)}function xq(t){Vh.getStore()?.onFailure?.(t)}function Wx({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=Vh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw xq(u),u}}function Vx(t,e){let r=Wx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new mu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Kx(t,e){let r=Wx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new uu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Jx(){return new nu({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Yx=Xi,Xx=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof Ft||t instanceof Bs)&&t.code===401}function Jh(t){return t instanceof T&&t.code===$.MethodNotFound}function Yh(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function Qx(t){return t instanceof T&&t.code===$.RequestTimeout}function ek(t){return t instanceof T&&t.code===$.ConnectionClosed}var kq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function tk(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return kq.some(r=>e.includes(r))}function rk(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Xh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var X=Eq.child({prefix:"pi-mcp"});function Aq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function Mq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&Aq(r,o)})}var $q=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Iq=/^Node\.js v\d/,Oq=/^[\w$.]*error[\w$]*:/i,nk=400,zq=63e3,ok=3,Nq=/[\\/]lib[\\/]cli\.js/,Dq="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.",fk=Symbol("mcpReinitReported");function Lq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,fk,{value:!0,enumerable:!1,configurable:!0})}function jq(t){return typeof t=="object"&&t!==null&&t[fk]===!0}function Fq(t){let e=t.filter(a=>!Iq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Nq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return Dq;let o=r.findIndex(a=>Oq.test(a)),s=(o===-1?r.slice(-ok):r.slice(o,o+ok)).join(" / ");return s.length>nk?`${s.slice(0,nk)}\u2026`:s}function Uq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace($q,"").split(`
101
- `).map(i=>i.trim()).filter(i=>i.length>0),o=Fq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var qq=6e5,Hq=18e5,ik=2147483647,Gq=3e4,sk=1e4,pk=[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"}},Zq=250,ak=3,Bq=[200,500];function Wq(t){for(let e of Object.values(t))if(Dr(e))return!0;return!1}function Qh(t){let e=new Set;for(let r of t.matchAll(Ei))e.add(Da(r[0]));return[...e].sort()}function em(t){return[...new Set(t)].sort()}function ck(t,e){return Ky(e.map(r=>t?.[r]??"missing"))}function Vq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return em([...e&&t?Ti(t):[],...n&&r?Qh(r):[],...o.flatMap(Qh)])}var gu="${augmentToken}";function Kq(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 Jq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var hk="(unknown uri)",tm="unknown",uk=/=+$/,Yq=/\s+/g,Xq=/[-_]/g,Qq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function mk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function eH(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function tH(t){let e=t.replace(Yq,"").replace(Xq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(uk,"");if(r.toString("base64").replace(uk,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function gk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function rH(t){let e=gk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,hk),n=Bn(e.mimeType,tm);if(typeof e.blob=="string"&&eH(n)){let i=tH(e.blob);if(i!==void 0)return i}let o=mk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function nH(t){let e=Bn(t.type,"unknown");if(e==="resource")return rH(t);if(e==="audio"){let r=Bn(t.mimeType,tm),n=mk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,hk),n=Bn(t.name,""),o=Bn(t.mimeType,tm);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function oH(t){if(t.type!=="resource")return;let e=gk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Qq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function iH(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=oH(t);return e||{type:"text",text:lk(nH(t))}}function sH(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(iH(n))}return e}function aH(t){return Fy(t,zq)}function yk(t,e){let r=sH(t);if(r.length===0){let o=aH(e);o!==void 0&&r.push({type:"text",text:lk(o)})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function cH(t,e){let r=yk(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 vk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),uH=new Set([502,503,504]),Vs=pk.length+1,dH=2;function lH(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 fH(t){if(Pt(t)||Xh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return vk.has(e)?{totalAttempts:Vs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:dH}:uH.has(r)?{totalAttempts:Vs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Vs}:void 0}var pH=80,hH=10,mH=/[^a-zA-Z0-9_.()-]/g,gH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function yu(t){return t.replace(mH,"_").slice(0,pH)||"unknown"}function yH(t){let e=lH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||vk.has(e)))return e}function Ve(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=gH.has(e)?e:"Error",n=yH(t);return n===void 0?r:`${r}(${n})`}function vH(t,e,r){return t instanceof gt?new gt(yu(t.serverName),t.missingKeys.slice(0,hH).map(yu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${Ve(t)})`}function Gn(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:yu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var rm={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"}},_H="configured MCP server",SH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,dk=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,wH=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(rm[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function bH(t){return Qx(t)?"heartbeat_timeout":ek(t)?"connection_closed":"heartbeat_failed"}var vu=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=te().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=>Na(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 (${Ve(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)?Na(Uq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Ve(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=fH(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=(pk[r-1]??0)+Math.floor(Math.random()*(Zq+1));X.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Ve(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=Jx();this._client=i;let s;try{if(await Kh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Yx,()=>{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=te();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&at(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 (${Ve(n)})`)}}}_connectFailureMessage(e,r){return this._suppressStdioDiagnostics?"MCP stdio connection failed; provider diagnostics are suppressed to protect credentials":vH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=te();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=te(),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,Ve(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=te().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=Hx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Gx(this._resolvedEnv??e.env);return Bx({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 Kx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Vx(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?Wq(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=te();if(!this._targetAuth&&!Vy(a)){let u=Vq({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??By(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 Yy({configEnv:e,localEnv:n&&!this._targetAuth?Zx():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${Ve(c)})`),new gt(this.name,Ti(e),c,"transient")}let a=em([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,ck(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Xd(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Xy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Ve(s)})`),new gt(this.name,Qh(e),s,"transient")}let i=em([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,ck(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(gu)))return;let o;if(Kq(e.url)){let s=te().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${gu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${gu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Jq(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(gu,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=te();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=te();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=te();return r.tokens.hasCredentialIdentity?.(this.name,Ht(r,this))===!0}async _maybeProactiveRefresh(){let e=te(),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&&!bd(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=te(),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)&&Cd(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"}, ${Ve(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 Pd(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}),at(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:Xh(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 (${Ve(i)})`),Lq(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=te(),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),Kh({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=te();ii(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Ve(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()},Gq),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=te(),r=ft(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=ak&&n.outcome==="transient";s++)await pn(Bq[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"&&at(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 ${ak} 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:sk})},"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 (${Ve(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":Jh(e)||Yh(e)?"alive":Pt(e)?"authFailure":tk(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:sk})}catch(r){if(this._reinitializingPromise||this._disposed||Yh(r)||Jh(r))return;this._failInFlightCalls(new Wn(bH(r),this._safeDiagnosticName()))}}_handleTransportClosed(){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(new Wn("connection_closed",this._safeDiagnosticName())))}_diagnosticRedactor(){let e=te().tokens.get(this.name),r=this._config.type==="stdio"?this._config.env:this._config.headers;return Xd([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!SH.test(e)||dk.test(e)||Na(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?_H:e}_safeCorrelationId(e){if(!(!e||!wH.test(e)||dk.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;Tq(rm[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=!Mq(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 (${Ve(o)})`)}}}catch(e){X.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Ve(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>ik)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${ik}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??qq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Hq,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??{}},Xx,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 cH({content:f.content,structuredContent:f.structuredContent},i);let p=yk(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(rm[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=yu(r),i=Ve(e),s=rk(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 jq(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 _k=CH.child({prefix:"pi-mcp"}),PH=3,xH=6e4;function kH(t,e){let r=Date.now(),n=r-xH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=PH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function Sk(t){ir(t),ya(t)}async function EH(t,e,r){if(!kH(e,t)){_k.warn(`MCP server "${t}" automatic restart rate-limited`);return}_k.warn(`MCP server "${t}" wedged; recycling transport`),await tn(t,e,r)}function _u(t,e,r){if(TH(e)){Sk(t),N(t,e);return}fd(t,r),Ir(e)&&Sk(t),N(t,e)}function TH(t){return pi()||t.toolSearchLatched}function tr(t,e,r){return Vu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function nm(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,at(t,e),t.authRefreshNeededReportKeys.delete(e),r}function AH(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&&rg(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 om(t){let{state:e,config:r,generation:n}=t;return new vu(r,AH({state:e,config:r,hostGeneration:n}))}function Ke(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 im(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 sm(t,e,r){return t.configDesiredRevisions.get(e)===r}function wk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function am(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(RH,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;EH(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"&&at(r,t.name,s)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&_u(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;pd(a,t,e),a!==n&&pd(n,t,e)}}async function bk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&N(n(),r)},na);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&N(n(),r)}}async function Rk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function Su(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 MH(t){let{state:e,config:r,displaced:n,retirement:o}=t;im(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Ju(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 $H(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=ct({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 IH(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 $H({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&_u(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 OH(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(!sm(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=nm(e,r.name),l=om({state:e,config:r,generation:d});return am(l,d,e,o),sa({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:IH({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 zH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!sm(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?ee(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=()=>OH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await MH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Wu(f.retirement),h());return f.retirement?m():h()}async function Je(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??Ke(e,d.name)})).map(async d=>{try{let l=await zH({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)},na);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function NH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!wk(e,t,n))return!1;let i=o.config,s=ee(e,t,o);if(!Vu(e,t,o))return!1;im(e,i),di(e,t);let a=ct({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||!wk(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=nm(e,t),u=om({state:e,config:i,generation:c});if(am(u,c,e,r),!sa({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await bk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&_u(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 NH({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 DH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;im(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Ju(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 Ck(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=Ke(e,t),u=e.servers.get(t),d=u?ee(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 DH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Wu(f.retirement),D(e,t)?.revision!==f.lease.revision||!sm(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=nm(e,t),h=om({state:e,config:a,generation:p});am(h,p,e,r),sa({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await bk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&_u(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 Pk=Symbol.for("__pi_mcp_registry_ingress__");function wu(t){return Object.defineProperty(t,Pk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,Pk)?.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 LH}from"@hermes/logger";var jH=LH.child({prefix:"pi-mcp"}),FH=1e6,UH=1e3,qH=/^\d+$/;function xk(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"||!qH.test(e)||typeof r!="string"||r.length===0)return;let n=ca(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:xk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function HH(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 GH(t,e,r){if(t===void 0)return!0;let n=xk(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"&&!Ie(n)&&Ie(e.domain)&&Er(n)===r.domain}function ZH(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 jH.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&&!Ie(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!GH(c,r,s))return"reject";let u=HH(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 BH(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 WH(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 VH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*UH+Math.floor(t.access_token_expires_at.nanos/FH):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 KH(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(!WH(n))return{decision:"reject"};let i=nn(n),s=ZH(r,n,i,o);if(s==="reject")return{decision:s};let a=VH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!KH(e.get(r),a))||s==="apply"&&BH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function bu(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 kk=JH.child({prefix:"pi-mcp"});function YH(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 XH(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&&Ie(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function Ek(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){kk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=YH(r,n.configId),i=o?XH(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;ee(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=bu(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=>{kk.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 fG}from"@hermes/logger";import{randomUUID as QH}from"node:crypto";import{setToolSource as eG}from"@augmentcode/auggie-v2";import{logger as tG}from"@hermes/logger";import{Type as rG}from"@sinclair/typebox";var Ak=tG.child({prefix:"pi-mcp"}),rr="attach-mcp-server",nG="augment:mcp-attach-request",oG=15e3,iG={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 sG(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 aG(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function cm(t,e){let r=aG(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 cG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},oG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Tk(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 uG(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.${cm(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.${cm(r,e)}`)}function dG(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.${cm(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 lG(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. ${Tk(e)}`);let o=sG(e,n);if(o.kind==="none")return Pe(`No MCP server matching "${n}" is available to attach. ${Tk(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=uG({entry:i,state:e});if(s!==void 0)return s;if(hd(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=QH();Ak.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=cG(e,a);t.events.emit(nG,{configId:i.id,requestId:a});let u=await c,d=dG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),no(rr),Ir(e)&&ir(t)),d}function Ru(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:rG.Unsafe(iG),execute:(n,o)=>lG(t,e,o)};eG(rr,"mcp"),t.registerTool(r),Mr(r),Ak.debug("Registered attach-mcp-server tool")}var Cu=fG.child({prefix:"pi-mcp"}),um="augment:mcp-attach-result";function Mk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(um,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){Cu.warn(`${um} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){Cu.debug(`${um}: 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 Pu(t,e){if(e.mcpAttachCloudSignaled&&va(e)){Ru(t,e);return}e.mcpAttachCloudSignaled&&_g(rr)!==void 0&&(t.unregisterTool(rr),no(rr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!va(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await Eg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,Cu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,Cu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Pu(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as xG}from"@hermes/logger";function pG(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 hG(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 xu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(hG).filter(r=>r!==void 0);return e.length===0?void 0:e}function ku(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=pG(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 mG(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 gG(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 dm(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 yG(t,e,r){if(r!==void 0&&t.added_by===r)return xu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?xu(n):[]}function vG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=dm(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=dm(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=dm(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)?yG(p,o,s):xu(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 _G(t,e="cloud_agent"){if(t==null)return e==="cli"?Or.CLI:Or.CLOUD_AGENT}function SG(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 $k(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:wu(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 wG(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=ku(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=$k(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=$k(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 bG(t){let e=[],r=[],n=[];for(let o of t)mG(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 RG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=gG(i);if(o.has(s)){r.push(i.name),n.push({server:i.name,message:`Skipped duplicate MCP server "${i.name}" (id=${i.id}): byte-identical to another selected server`});continue}o.add(s),e.push(i)}return{servers:e,droppedNames:r,diagnostics:n}}function CG(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function Eu(t){let e=t.productType??"cloud_agent",r=t.client??new Sa(t.creds),{tenant:n,user:o,diagnostics:i}=await Fg(r,_G(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=vG({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=bG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...SG(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 _=wG({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});CG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=RG(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 PG}from"@hermes/logger";var Xo=PG.child({prefix:"pi-mcp"});function Ik(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=ku(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 wu(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 Ok(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 Ik(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=Ik(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=xG.child({prefix:"pi-mcp"});function Nk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Dk(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?ct({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(Ke(e,r),"retiring"):void 0:(ke({state:e,name:r,owner:n.owner,revision:n.revision}),Ke(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:Ke(e,r),leaseRevision:u.lease.revision}}function kG(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=ee(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=Dk({state:e,name:r,lease:c,host:n,isDeselected:Nk({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 EG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Dk({state:e,name:r,lease:n,isDeselected:Nk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function TG(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=kG({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||EG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Lk(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 AG(t,e,r){let n=e!=null&&e.length>0?new Set(e):void 0,o=[],i=[],s=[],a=[],c=new Set(r);for(let f of t.servers){if(n&&f.id!==void 0&&!n.has(f.id)){s.push(f.id);continue}if(c.has(f.name)){i.push({server:f.name,message:r.has(f.name)?`Skipped embedded MCP server "${f.name}" (id=${f.id}): a local server with the same name takes precedence`:`Skipped embedded MCP server "${f.name}" (id=${f.id}): another selected registry server with the same name takes precedence`}),a.push(f.name);continue}c.add(f.name),o.push(f)}let u=new Set(o.map(f=>f.name)),d=new Set(a),l=new Map;for(let[f,{name:p}]of t.allConfigsById)n&&!n.has(f)||(l.set(f,p),u.has(p)||d.has(p)||(d.add(p),a.push(p)));return{servers:o,diagnostics:i,filteredOutIds:s,retainedNames:a,namesById:l}}function MG(t){let{state:e,configIds:r,admittedConfigs:n}=t,o=e.embeddedRegistryConfigs;if(e.embeddedRegistryConfigs=void 0,r?.length===0||Array.isArray(o)&&o.length===0)return{servers:[],allConfigsById:new Map};if(o!==void 0)return Qo(o,e.workspaceRoot??process.cwd(),n)}async function $G(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(He(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 IG(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 OG(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 zG(t){let e=new Set;for(let[r,n]of t.servers){let o=ee(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 NG(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 Lk(e,r.servers,n,i,o!==void 0)}async function jk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function zk(t){return await jk(t.state,t.result),t.state.registryGeneration===t.generation&&await NG(t),t.result}function DG(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=AG(n,r,i);return zk({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=>zk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function LG(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 jG(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 FG(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 Fk(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 lm(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 UG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){lm({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 jk(e,r),e.registryGeneration!==o)return;let c=Fk({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]);LG({state:e,result:r,selection:n}),jG({state:e,servers:f}),lm({state:e,result:r,selection:n,slotReservations:a});let p=FG({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?ee(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 qG({state:e,pi:s,result:r,generation:o,connect:i})}async function qG(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 HG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function HG(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,Fk({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 GG(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 Lk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function ZG(t,e){for(let r of e??[]){let n=He(r),o=t.registryCredentialIntents.get(n);o?.configName&&t.expectedCredentialDomains.set(o.configName,{kind:"blocked"}),Ye({state:t,domain:n,epoch:o?.epoch})}}async function BG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await UG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),lm({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 ZG(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 GG({...t.resultArgs,error:r})}}function Js(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Eu,s=o?.connect??Je,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)&&ag(r,new Set(a.configIds.map(He)));let u=MG({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??[])Ye({state:r,domain:He(w)});return Promise.resolve()}let l=r.selectedRegistryConfigIds??[],f=$G({state:r,previousSelectedIds:l,configIds:a.configIds}),p=IG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([TG(r,a.configIds,p),f]).then(([w])=>w);OG(r);let g=a.configIds?[...a.configIds]:void 0,v=DG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:zG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?BG({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as WG}from"@hermes/logger";var on=WG.child({prefix:"pi-mcp"});function VG(t,e){Ye({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 KG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Gk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function JG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function Uk(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&&(JG({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 Zk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function qk(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=ee(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function Bk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function YG(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){Ke(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?Vm({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&&(Bk(e,r),Ke(e,r))}async function fm(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?Ke(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}Gk({state:e,configId:r,fence:i})&&(Zk(e,r),YG({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 Hk(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 XG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Hk({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 Hk({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 QG(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?ee(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=Ke(e,n),f=ct({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 XG({state:e,name:n,configId:r,server:a});if(h&&Gk({state:e,configId:r,fence:s})?Zk(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})&&Bk(e,n),i(p,e),!h)throw m}function Tu(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:pa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=qk(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(Uk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>fm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=VG(r,s);if(u===void 0&&d===void 0)return a(fm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=KG({state:r,configId:s,liveEditGeneration:h});return a(Uk({state:r,configId:s,fence:m,operation:()=>{let g=qk(r,s);return g===void 0?fm({state:r,configId:s,pi:e,report:c,sourceFence:m}):QG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as eZ}from"node:crypto";var tZ=/^[1-9][0-9]*$/,rZ=/^[a-f0-9]{64}$/,nZ=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 pm(t){return typeof t=="string"&&tZ.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function mm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&pm(t.connectionVersion)}function oZ(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 Vk(t){if(!(!fe(t)||Object.keys(t).some(e=>!nZ.has(e)))&&!(!oZ(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"||!rZ.test(t.route_revision)||!pm(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"||!pm(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 hm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function iZ(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 sZ(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 Wk(t,e){return hm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&iZ(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function aZ(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 cZ(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 Au=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 mm(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&&!hm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&hm(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||!sZ(e,r)||!n&&(!o||!this.#r.has(r)||!Wk(e,o.material))||!cZ(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"&&Wk(e,o.material)&&aZ(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 Kk(t){return eZ("sha256").update(t).digest("hex")}function uZ(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 dZ(t,e){if(e.length<=1)return!0;let r=ca(t);return r.kind==="valid"&&e.filter(n=>He(n)===r.ownerDomain).length===1}function Jk(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 lZ(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 fZ(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 pZ(t,e,r){if(typeof t!="string"||Kk(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||!fZ(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(!lZ(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 Yk(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?Jk(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?uZ(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)||!dZ(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=Vk(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?pZ(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 hZ(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=Yk(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=[...Jk(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,Ru(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 Je(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 mZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return hZ(t);let o;try{o=Yk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await yZ({pi:e,state:r,data:n,candidate:i,store:s})}function gZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function yZ(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=gZ(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=Tu({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 Je([a],r,e,p),!p()))?!1:(N(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?sd(c):fa(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 vZ(t,e){t.registryGeneration++,ng(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=ct({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 Xk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Au,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(mm(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,vZ(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 mZ({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 MZ}from"@hermes/logger";import{execFile as gm}from"node:child_process";import{win32 as ym}from"node:path";import{logger as _Z}from"@hermes/logger";var SZ=5e3,wZ=/^[a-z]:[\\/]/i,bZ=/[<>:"|?*]/;function RZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!wZ.test(t)||!ym.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||bZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:ym.join(ym.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function CZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function PZ(t,e){switch(process.platform){case"darwin":return gm("open",[t],e);case"win32":{let r=RZ();return r?gm(r,["-NoProfile","-NonInteractive","-EncodedCommand",CZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return gm("xdg-open",[t],e)}}function Qk(t,e=SZ){let r=_Z.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=PZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as xZ}from"node:http";function Mu(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function eE(t){let e=Mu(t.title),r=Mu(t.heading),n=Mu(t.message),o=t.details?Mu(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 Wx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Vh(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}},Kh=new xq;function Jh(t,e){return Kh.run(t,e)}function Eq(t){Kh.getStore()?.onFailure?.(t)}function Vx({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=Kh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw Eq(u),u}}function Kx(t,e){let r=Vx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new mu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Jx(t,e){let r=Vx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new uu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Yx(){return new nu({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Xx=Xi,Qx=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof Ft||t instanceof Bs)&&t.code===401}function Yh(t){return t instanceof T&&t.code===$.MethodNotFound}function Xh(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function ek(t){return t instanceof T&&t.code===$.RequestTimeout}function tk(t){return t instanceof T&&t.code===$.ConnectionClosed}var Tq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function rk(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return Tq.some(r=>e.includes(r))}function nk(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Qh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var X=Aq.child({prefix:"pi-mcp"});function $q(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function Iq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&$q(r,o)})}var Oq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),zq=/^Node\.js v\d/,Nq=/^[\w$.]*error[\w$]*:/i,ok=400,Dq=63e3,ik=3,Lq=/[\\/]lib[\\/]cli\.js/,jq="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.",pk=Symbol("mcpReinitReported");function Fq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,pk,{value:!0,enumerable:!1,configurable:!0})}function Uq(t){return typeof t=="object"&&t!==null&&t[pk]===!0}function qq(t){let e=t.filter(a=>!zq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Lq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return jq;let o=r.findIndex(a=>Nq.test(a)),s=(o===-1?r.slice(-ik):r.slice(o,o+ik)).join(" / ");return s.length>ok?`${s.slice(0,ok)}\u2026`:s}function Hq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Oq,"").split(`
101
+ `).map(i=>i.trim()).filter(i=>i.length>0),o=qq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Gq=6e5,Zq=18e5,sk=2147483647,Bq=3e4,ak=1e4,hk=[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"}},Wq=250,ck=3,Vq=[200,500];function Kq(t){for(let e of Object.values(t))if(Dr(e))return!0;return!1}function em(t){let e=new Set;for(let r of t.matchAll(Ei))e.add(Da(r[0]));return[...e].sort()}function tm(t){return[...new Set(t)].sort()}function uk(t,e){return Jy(e.map(r=>t?.[r]??"missing"))}function Jq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return tm([...e&&t?Ti(t):[],...n&&r?em(r):[],...o.flatMap(em)])}var gu="${augmentToken}";function Yq(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 Xq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var mk="(unknown uri)",rm="unknown",dk=/=+$/,Qq=/\s+/g,eH=/[-_]/g,tH=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function gk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function rH(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function nH(t){let e=t.replace(Qq,"").replace(eH,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(dk,"");if(r.toString("base64").replace(dk,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function yk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function oH(t){let e=yk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,mk),n=Bn(e.mimeType,rm);if(typeof e.blob=="string"&&rH(n)){let i=nH(e.blob);if(i!==void 0)return i}let o=gk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function iH(t){let e=Bn(t.type,"unknown");if(e==="resource")return oH(t);if(e==="audio"){let r=Bn(t.mimeType,rm),n=gk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,mk),n=Bn(t.name,""),o=Bn(t.mimeType,rm);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function sH(t){if(t.type!=="resource")return;let e=yk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&tH.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function aH(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=sH(t);return e||{type:"text",text:fk(iH(t))}}function cH(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(aH(n))}return e}function uH(t){return Uy(t,Dq)}function vk(t,e){let r=cH(t);if(r.length===0){let o=uH(e);o!==void 0&&r.push({type:"text",text:fk(o)})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function dH(t,e){let r=vk(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 _k=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),lH=new Set([502,503,504]),Vs=hk.length+1,fH=2;function pH(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 hH(t){if(Pt(t)||Qh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return _k.has(e)?{totalAttempts:Vs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:fH}:lH.has(r)?{totalAttempts:Vs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Vs}:void 0}var mH=80,gH=10,yH=/[^a-zA-Z0-9_.()-]/g,vH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function yu(t){return t.replace(yH,"_").slice(0,mH)||"unknown"}function _H(t){let e=pH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||_k.has(e)))return e}function Ve(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=vH.has(e)?e:"Error",n=_H(t);return n===void 0?r:`${r}(${n})`}function SH(t,e,r){return t instanceof gt?new gt(yu(t.serverName),t.missingKeys.slice(0,gH).map(yu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${Ve(t)})`}function Gn(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:yu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var nm={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"}},wH="configured MCP server",bH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,lk=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,RH=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(nm[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function CH(t){return ek(t)?"heartbeat_timeout":tk(t)?"connection_closed":"heartbeat_failed"}var vu=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=te().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=>Na(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 (${Ve(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)?Na(Hq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Ve(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=hH(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=(hk[r-1]??0)+Math.floor(Math.random()*(Wq+1));X.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Ve(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=Yx();this._client=i;let s;try{if(await Jh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Xx,()=>{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=te();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&at(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 (${Ve(n)})`)}}}_connectFailureMessage(e,r){return this._suppressStdioDiagnostics?"MCP stdio connection failed; provider diagnostics are suppressed to protect credentials":SH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=te();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=te(),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,Ve(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=te().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=Gx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Zx(this._resolvedEnv??e.env);return Wx({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 Jx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Kx(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?Kq(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=te();if(!this._targetAuth&&!Ky(a)){let u=Jq({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??Wy(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 Xy({configEnv:e,localEnv:n&&!this._targetAuth?Bx():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${Ve(c)})`),new gt(this.name,Ti(e),c,"transient")}let a=tm([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,uk(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Qd(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Qy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Ve(s)})`),new gt(this.name,em(e),s,"transient")}let i=tm([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,uk(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(gu)))return;let o;if(Yq(e.url)){let s=te().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${gu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${gu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Xq(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(gu,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=te();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=te();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=te();return r.tokens.hasCredentialIdentity?.(this.name,Ht(r,this))===!0}async _maybeProactiveRefresh(){let e=te(),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&&!Rd(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=te(),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)&&Pd(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"}, ${Ve(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 xd(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}),at(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:Qh(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 (${Ve(i)})`),Fq(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=te(),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),Jh({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=te();ii(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Ve(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()},Bq),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=te(),r=ft(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=ck&&n.outcome==="transient";s++)await pn(Vq[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"&&at(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 ${ck} 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:ak})},"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 (${Ve(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":Yh(e)||Xh(e)?"alive":Pt(e)?"authFailure":rk(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:ak})}catch(r){if(this._reinitializingPromise||this._disposed||Xh(r)||Yh(r))return;this._failInFlightCalls(new Wn(CH(r),this._safeDiagnosticName()))}}_handleTransportClosed(){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(new Wn("connection_closed",this._safeDiagnosticName())))}_diagnosticRedactor(){let e=te().tokens.get(this.name),r=this._config.type==="stdio"?this._config.env:this._config.headers;return Qd([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!bH.test(e)||lk.test(e)||Na(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?wH:e}_safeCorrelationId(e){if(!(!e||!RH.test(e)||lk.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;Mq(nm[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=!Iq(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 (${Ve(o)})`)}}}catch(e){X.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Ve(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>sk)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${sk}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??Gq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Zq,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??{}},Qx,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 dH({content:f.content,structuredContent:f.structuredContent},i);let p=vk(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(nm[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=yu(r),i=Ve(e),s=nk(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 Uq(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 Sk=xH.child({prefix:"pi-mcp"}),kH=3,EH=6e4;function TH(t,e){let r=Date.now(),n=r-EH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=kH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function wk(t){ir(t),ya(t)}async function AH(t,e,r){if(!TH(e,t)){Sk.warn(`MCP server "${t}" automatic restart rate-limited`);return}Sk.warn(`MCP server "${t}" wedged; recycling transport`),await tn(t,e,r)}function _u(t,e,r){if(MH(e)){wk(t),N(t,e);return}fd(t,r),Ir(e)&&wk(t),N(t,e)}function MH(t){return pi()||hd(t)&&t.toolSearchLatched}function tr(t,e,r){return Vu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function om(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,at(t,e),t.authRefreshNeededReportKeys.delete(e),r}function $H(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&&ng(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 im(t){let{state:e,config:r,generation:n}=t;return new vu(r,$H({state:e,config:r,hostGeneration:n}))}function Ke(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 sm(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 am(t,e,r){return t.configDesiredRevisions.get(e)===r}function bk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function cm(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(PH,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;AH(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"&&at(r,t.name,s)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&_u(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;pd(a,t,e),a!==n&&pd(n,t,e)}}async function Rk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&N(n(),r)},na);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&N(n(),r)}}async function Ck(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function Su(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 IH(t){let{state:e,config:r,displaced:n,retirement:o}=t;sm(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Ju(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 OH(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=ct({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 zH(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 OH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&_u(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 NH(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(!am(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=om(e,r.name),l=im({state:e,config:r,generation:d});return cm(l,d,e,o),sa({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:zH({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 DH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!am(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?ee(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=()=>NH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await IH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Wu(f.retirement),h());return f.retirement?m():h()}async function Je(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??Ke(e,d.name)})).map(async d=>{try{let l=await DH({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)},na);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function LH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!bk(e,t,n))return!1;let i=o.config,s=ee(e,t,o);if(!Vu(e,t,o))return!1;sm(e,i),di(e,t);let a=ct({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||!bk(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=om(e,t),u=im({state:e,config:i,generation:c});if(cm(u,c,e,r),!sa({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await Rk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&_u(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 LH({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 jH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;sm(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Ju(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 Pk(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=Ke(e,t),u=e.servers.get(t),d=u?ee(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 jH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Wu(f.retirement),D(e,t)?.revision!==f.lease.revision||!am(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=om(e,t),h=im({state:e,config:a,generation:p});cm(h,p,e,r),sa({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await Rk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&_u(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 xk=Symbol.for("__pi_mcp_registry_ingress__");function wu(t){return Object.defineProperty(t,xk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,xk)?.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 FH}from"@hermes/logger";var UH=FH.child({prefix:"pi-mcp"}),qH=1e6,HH=1e3,GH=/^\d+$/;function kk(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"||!GH.test(e)||typeof r!="string"||r.length===0)return;let n=ca(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:kk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function ZH(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 BH(t,e,r){if(t===void 0)return!0;let n=kk(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"&&!Ie(n)&&Ie(e.domain)&&Er(n)===r.domain}function WH(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 UH.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&&!Ie(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!BH(c,r,s))return"reject";let u=ZH(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 VH(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 KH(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 JH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*HH+Math.floor(t.access_token_expires_at.nanos/qH):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 YH(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(!KH(n))return{decision:"reject"};let i=nn(n),s=WH(r,n,i,o);if(s==="reject")return{decision:s};let a=JH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!YH(e.get(r),a))||s==="apply"&&VH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function bu(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 Ek=XH.child({prefix:"pi-mcp"});function QH(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 eG(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&&Ie(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function Tk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){Ek.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=QH(r,n.configId),i=o?eG(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;ee(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=bu(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=>{Ek.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 hG}from"@hermes/logger";import{randomUUID as tG}from"node:crypto";import{setToolSource as rG}from"@augmentcode/auggie-v2";import{logger as nG}from"@hermes/logger";import{Type as oG}from"@sinclair/typebox";var Mk=nG.child({prefix:"pi-mcp"}),rr="attach-mcp-server",iG="augment:mcp-attach-request",sG=15e3,aG={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 cG(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 uG(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function um(t,e){let r=uG(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 dG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},sG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Ak(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 lG(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.${um(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.${um(r,e)}`)}function fG(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.${um(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 pG(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. ${Ak(e)}`);let o=cG(e,n);if(o.kind==="none")return Pe(`No MCP server matching "${n}" is available to attach. ${Ak(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=lG({entry:i,state:e});if(s!==void 0)return s;if(md(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=tG();Mk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=dG(e,a);t.events.emit(iG,{configId:i.id,requestId:a});let u=await c,d=fG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),no(rr),Ir(e)&&ir(t)),d}function Ru(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:oG.Unsafe(aG),execute:(n,o)=>pG(t,e,o)};rG(rr,"mcp"),t.registerTool(r),Mr(r),Mk.debug("Registered attach-mcp-server tool")}var Cu=hG.child({prefix:"pi-mcp"}),dm="augment:mcp-attach-result";function $k(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(dm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){Cu.warn(`${dm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){Cu.debug(`${dm}: 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 Pu(t,e){if(e.mcpAttachCloudSignaled&&va(e)){Ru(t,e);return}e.mcpAttachCloudSignaled&&Sg(rr)!==void 0&&(t.unregisterTool(rr),no(rr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!va(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await Tg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,Cu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,Cu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Pu(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as EG}from"@hermes/logger";function mG(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 gG(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 xu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(gG).filter(r=>r!==void 0);return e.length===0?void 0:e}function ku(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=mG(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 yG(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 vG(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 lm(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 _G(t,e,r){if(r!==void 0&&t.added_by===r)return xu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?xu(n):[]}function SG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=lm(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=lm(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=lm(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)?_G(p,o,s):xu(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 wG(t,e="cloud_agent"){if(t==null)return e==="cli"?Or.CLI:Or.CLOUD_AGENT}function bG(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 Ik(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:wu(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 RG(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=ku(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=Ik(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=Ik(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 CG(t){let e=[],r=[],n=[];for(let o of t)yG(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 PG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=vG(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 xG(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 Eu(t){let e=t.productType??"cloud_agent",r=t.client??new Sa(t.creds),{tenant:n,user:o,diagnostics:i}=await Ug(r,wG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=SG({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=CG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...bG(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 _=RG({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});xG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=PG(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 kG}from"@hermes/logger";var Xo=kG.child({prefix:"pi-mcp"});function Ok(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=ku(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 wu(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 zk(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 Ok(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=Ok(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=EG.child({prefix:"pi-mcp"});function Dk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Lk(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?ct({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(Ke(e,r),"retiring"):void 0:(ke({state:e,name:r,owner:n.owner,revision:n.revision}),Ke(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:Ke(e,r),leaseRevision:u.lease.revision}}function TG(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=ee(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=Lk({state:e,name:r,lease:c,host:n,isDeselected:Dk({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 AG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Lk({state:e,name:r,lease:n,isDeselected:Dk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function MG(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=TG({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||AG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function jk(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 $G(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 IG(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 OG(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(He(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 zG(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 NG(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 DG(t){let e=new Set;for(let[r,n]of t.servers){let o=ee(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 LG(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 jk(e,r.servers,n,i,o!==void 0)}async function Fk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function Nk(t){return await Fk(t.state,t.result),t.state.registryGeneration===t.generation&&await LG(t),t.result}function jG(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=$G(n,r,i);return Nk({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=>Nk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function FG(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 UG(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 qG(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 Uk(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 fm(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 HG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){fm({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 Fk(e,r),e.registryGeneration!==o)return;let c=Uk({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]);FG({state:e,result:r,selection:n}),UG({state:e,servers:f}),fm({state:e,result:r,selection:n,slotReservations:a});let p=qG({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?ee(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 GG({state:e,pi:s,result:r,generation:o,connect:i})}async function GG(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 ZG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function ZG(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,Uk({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 BG(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 jk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function WG(t,e){for(let r of e??[]){let n=He(r),o=t.registryCredentialIntents.get(n);o?.configName&&t.expectedCredentialDomains.set(o.configName,{kind:"blocked"}),Ye({state:t,domain:n,epoch:o?.epoch})}}async function VG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await HG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),fm({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 WG(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 BG({...t.resultArgs,error:r})}}function Js(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Eu,s=o?.connect??Je,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)&&cg(r,new Set(a.configIds.map(He)));let u=IG({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??[])Ye({state:r,domain:He(w)});return Promise.resolve()}let l=r.selectedRegistryConfigIds??[],f=OG({state:r,previousSelectedIds:l,configIds:a.configIds}),p=zG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([MG(r,a.configIds,p),f]).then(([w])=>w);NG(r);let g=a.configIds?[...a.configIds]:void 0,v=jG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:DG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?VG({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as KG}from"@hermes/logger";var on=KG.child({prefix:"pi-mcp"});function JG(t,e){Ye({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 YG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Zk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function XG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function qk(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&&(XG({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 Bk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Hk(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=ee(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function Wk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function QG(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){Ke(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?Km({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&&(Wk(e,r),Ke(e,r))}async function pm(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?Ke(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}Zk({state:e,configId:r,fence:i})&&(Bk(e,r),QG({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 Gk(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 eZ(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Gk({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 Gk({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 tZ(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?ee(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=Ke(e,n),f=ct({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 eZ({state:e,name:n,configId:r,server:a});if(h&&Zk({state:e,configId:r,fence:s})?Bk(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})&&Wk(e,n),i(p,e),!h)throw m}function Tu(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:pa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=Hk(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(qk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>pm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=JG(r,s);if(u===void 0&&d===void 0)return a(pm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=YG({state:r,configId:s,liveEditGeneration:h});return a(qk({state:r,configId:s,fence:m,operation:()=>{let g=Hk(r,s);return g===void 0?pm({state:r,configId:s,pi:e,report:c,sourceFence:m}):tZ({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as rZ}from"node:crypto";var nZ=/^[1-9][0-9]*$/,oZ=/^[a-f0-9]{64}$/,iZ=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 hm(t){return typeof t=="string"&&nZ.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function gm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&hm(t.connectionVersion)}function sZ(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 Kk(t){if(!(!fe(t)||Object.keys(t).some(e=>!iZ.has(e)))&&!(!sZ(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"||!oZ.test(t.route_revision)||!hm(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"||!hm(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 mm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function aZ(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 cZ(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 Vk(t,e){return mm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&aZ(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function uZ(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 dZ(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 Au=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 gm(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&&!mm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&mm(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||!cZ(e,r)||!n&&(!o||!this.#r.has(r)||!Vk(e,o.material))||!dZ(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"&&Vk(e,o.material)&&uZ(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 Jk(t){return rZ("sha256").update(t).digest("hex")}function lZ(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 fZ(t,e){if(e.length<=1)return!0;let r=ca(t);return r.kind==="valid"&&e.filter(n=>He(n)===r.ownerDomain).length===1}function Yk(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 pZ(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 hZ(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 mZ(t,e,r){if(typeof t!="string"||Jk(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||!hZ(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(!pZ(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 Xk(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?Yk(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?lZ(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)||!fZ(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=Kk(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?mZ(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 gZ(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=Xk(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=[...Yk(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,Ru(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 Je(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 yZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return gZ(t);let o;try{o=Xk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await _Z({pi:e,state:r,data:n,candidate:i,store:s})}function vZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function _Z(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=vZ(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=Tu({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 Je([a],r,e,p),!p()))?!1:(N(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?sd(c):fa(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 SZ(t,e){t.registryGeneration++,og(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=ct({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 Qk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Au,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(gm(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,SZ(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 yZ({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 IZ}from"@hermes/logger";import{execFile as ym}from"node:child_process";import{win32 as vm}from"node:path";import{logger as wZ}from"@hermes/logger";var bZ=5e3,RZ=/^[a-z]:[\\/]/i,CZ=/[<>:"|?*]/;function PZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!RZ.test(t)||!vm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||CZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:vm.join(vm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function xZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function kZ(t,e){switch(process.platform){case"darwin":return ym("open",[t],e);case"win32":{let r=PZ();return r?ym(r,["-NoProfile","-NonInteractive","-EncodedCommand",xZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return ym("xdg-open",[t],e)}}function eE(t,e=bZ){let r=wZ.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=kZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as EZ}from"node:http";function Mu(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function tE(t){let e=Mu(t.title),r=Mu(t.heading),n=Mu(t.message),o=t.details?Mu(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 tE(t){return eE({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function $u(t,e){return eE({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var kZ="127.0.0.1",oE="/callback",rE=3e3,nE=3010,EZ="Authentication successful. You can close this window.",Iu={"Content-Type":"text/html; charset=utf-8"};function iE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function sE(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 vm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function TZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==oE){e.writeHead(404,Iu),e.end($u("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,Iu),e.end($u("Authentication did not complete.",`Error: ${s}`));let u=vm(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,Iu),e.end($u("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Iu),e.end(tE(EZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function AZ(t){for(let e=rE;e<=nE;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,kZ)}))return e;throw new Error(`No free port in ${rE}-${nE} for the OAuth callback server`)}async function aE(){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=xZ((a,c)=>{TZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await AZ(i);return{port:s,redirectUri:`http://localhost:${s}${oE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var _m=MZ.child({prefix:"pi-mcp"}),$Z=300*1e3,dE="MCP authentication was superseded";function cE(){return iE()?"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 lE(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&&fE(t.credentialRevisions.get(e),r.credentialRevision)}function fE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function uE(t,e,r){if(!lE(t,e,r))throw new Error(dE)}async function IZ(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)||!fE(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{_m.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function OZ(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 zZ(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"))),$Z)},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(vm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=sE(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 pE(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 aE(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Zd(l),Sr(o.signal),p=await Bd(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);uE(r,e,c),Sr(o.signal);let m=await Wd({config:s.clientId?{clientId:s.clientId}:{},serverMetadata:p,redirectUris:[d.redirectUri],preferStaticClient:s.registrySource===void 0});Sr(o.signal);let g=await Ia(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&&Oa(xe,b)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Oa(xe,v))return Promise.resolve(null);w=!0;let cn=v;return b=cn,an(),_m.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Vd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:cE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(xe=>_(xe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:cE()}),Sr(o.signal),await Qk(g.authUri.toString());let C=await zZ(d,o,()=>v.state,_),I=await Kd(C,v);uE(r,e,c);let Q=OZ(I),pe=await c.tokenStore.persistAuthenticated(e,Q,u,h);if(!lE(r,e,c))throw await IZ(r,e,c,u,Q,pe,n),new Error(dE);c.tokenStore.commit(e,Q,u),r.preservedCredentialIdentities?.delete(e),un({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),at(r,e),await Ks([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),_m.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as YZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as NZ,SETTINGS_TARGET_ORDER as DZ,SettingsManager as LZ,scopeToSettingsTarget as jZ,settingsTargetToScope as Sm}from"@augmentcode/auggie-v2";var FZ=DZ.map(t=>Sm(t)),hE=(t,e)=>LZ.create(t,e);function mE(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 gE(t,e,r){let n=hE(e,r);return FZ.filter(o=>mE(n,o)?.[t])}function yE(t){let e=t.map(n=>({target:jZ(n),path:n,exists:!0})),r=NZ({files:e});return"directTarget"in r?{scopes:t,direct:Sm(r.directTarget)}:{scopes:r.files.map(n=>Sm(n.target)),direct:null}}function UZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function vE(t,e,r,n,o){try{let i=hE(n,o);if(!mE(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:UZ(t,n,o)!==e}}function wm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function _E(t,e,r){return wm(t)}function SE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as qZ}from"@hermes/logger";var Rm=qZ.child({prefix:"pi-mcp"}),wE="hermes:mcp:register-server-source";function HZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function bE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function GZ(t,e){return{...t,disabled:e}}function ZZ(t){try{return t.getServers()}catch(e){return Rm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function BZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function RE(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 WZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of ZZ(t)){let s=e.servers.get(i.name),a=HZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=GZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&ee(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)&&bE(s.config,u);p&&(ee(e,i.name,s),Wm({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),RE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function VZ(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=ct({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 CE(t,e){RE(t,e)}function KZ(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?ee(e,a,u):D(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){CE(e,a);continue}u===o.get(a)&&n.has(a)&&bE(u.config,c)||(s.set(a,Ke(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function JZ(t,e,r){let n=r?.connect??Je,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(h=>h.origin!=="plugin"),o&&BZ(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)&&ee(e,h,m)}let a=WZ(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 VZ(a,u,e);let{reservedRevisions:d,toConnect:l}=KZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;Rm.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||CE(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 bm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>JZ(t,e,r)).catch(i=>{Rm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function PE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?ee(o,r,s):D(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),bm(o.currentLoad?.latestPi??i,o,e))}function xE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,bm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,bm(e.currentLoad?.latestPi??t,e))})}}function XZ(t,e){let n=YZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function kE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(XZ(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:wm(e)};if(id(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=gE(e,n,o);if(s.length===0)return{kind:"blocked",message:_E(e,n,o)};let{scopes:a,direct:c}=yE(s);return{kind:"local",scopes:a,direct:c}}async function EE(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?ee(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await PE({name:e,disabled:r,state:n,pi:o});return}id(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 Je([a],n,o,void 0,void 0,s?.owner.kind),Se(n)}async function TE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=vE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await Ck(e,o,i,s,a),Se(o),c.overridden?{notice:SE(e)}:{}}import{DynamicBorder as _2}from"@augmentcode/auggie-v2";import{Key as S2,matchesKey as w2,SearchableWindowedList as b2,SpinnerTimer as R2,truncateToWidth as Fu,wrapTextWithAnsi as C2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as QZ,scopeToSettingsTarget as e2}from"@augmentcode/auggie-v2";import{truncateToWidth as t2,visibleWidth as Kn,wrapTextWithAnsi as r2}from"@earendil-works/pi-tui";var n2=2,o2=2,Ou={name:"Name",source:"Source",status:"Status"};function Cm(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 Pm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function xm(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function zu(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 AE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(n2,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(o2,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(Ou[w]))&&(a=ei(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Pm(g)),l=t.map(g=>Cm(g)),f=Math.max(Kn(Ou.source),zu(d)),p=Math.max(Kn(Ou.status),zu(l.map(g=>g.label))),h=Math.max(Kn(Ou.name),zu(t.map(g=>g.name))),m=Math.max(p,zu(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 ME(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=>r2(n,r).map(o=>Kn(o)<=r?o:t2(o,r,"")))}function i2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,i2(e,r)))}function $E(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 IE(t,e){return String(t+1).padStart(String(e).length," ")}function km(t){return QZ(e2(t))}import{Key as s2,matchesKey as a2}from"@earendil-works/pi-tui";function Nu(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 OE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var zE=10,Jn=15;var c2="k",u2="j";function ni(t,e){return(t%e+e)%e}function st(t,e){let r=t.findIndex(n=>n.name===e);return r>=0?r:0}function Em(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===c2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===u2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:a2(t,s2.backspace)?{kind:"back"}:{kind:"ignore"}}function d2(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(st(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ni(st(r,t.selectedServer)+1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"confirm":{let o=r[st(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 l2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Nu(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 f2(t,e,r){let n=r.snapshots[st(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 p2(t,e,r){let n=r.snapshots[st(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 h2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Du(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function m2(t,e){let r=t.targetScopes.length;if(r===0)return{state:Du(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:Du(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Du({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Du(t,"serverActions")}}default:return{state:t}}}function NE(t,e,r){switch(t.step){case"serverList":return d2(t,e,r.snapshots);case"serverActions":return l2(t,e,r);case"viewTools":return f2(t,e,r);case"viewLogs":return p2(t,e,r);case"pasteAuthCode":return h2(t,e);case"selectTarget":return m2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as g2,wrapTextWithAnsi as sn}from"@earendil-works/pi-tui";var Tm="\u2192 ",Lu=" ";function DE(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 LE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=AE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?xm(m,c.nameWidth):"",c.sourceWidth>0?xm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=wr(Lu,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=Cm(h),v=wr(g.label,c.statusWidth),w=c.statusWidth-g2(v),b=g.hint?wr(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=wr(m?Tm:Lu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,DE(wr(h.name,c.nameWidth),m,i),DE(wr(Pm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var y2={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 v2(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 y2[t]}function jE(t,e,r,n){let o=Math.max(1,n),i=e[st(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=Nu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=v2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Tm:Lu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function FE(t,e,r,n){let o=Math.max(1,n),i=e[st(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}=ME(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",`${IE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function UE(t,e,r,n){let o=Math.max(1,n),s=e[st(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=$E(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 qE(t,e,r,n){let o=Math.max(1,n),i=e[st(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",km(c))):r.fg("text",km(c));s.push(Ut((u?Tm:Lu)+d,o,"\u2026"))}return s}var ju=3;function P2(t){return t.type==="stdio"?t.command:t.url}function x2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
143
+ </html>`}function rE(t){return tE({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function $u(t,e){return tE({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var TZ="127.0.0.1",iE="/callback",nE=3e3,oE=3010,AZ="Authentication successful. You can close this window.",Iu={"Content-Type":"text/html; charset=utf-8"};function sE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function aE(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 _m(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function MZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==iE){e.writeHead(404,Iu),e.end($u("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,Iu),e.end($u("Authentication did not complete.",`Error: ${s}`));let u=_m(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,Iu),e.end($u("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Iu),e.end(rE(AZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function $Z(t){for(let e=nE;e<=oE;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,TZ)}))return e;throw new Error(`No free port in ${nE}-${oE} for the OAuth callback server`)}async function cE(){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=EZ((a,c)=>{MZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await $Z(i);return{port:s,redirectUri:`http://localhost:${s}${iE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var Sm=IZ.child({prefix:"pi-mcp"}),OZ=300*1e3,lE="MCP authentication was superseded";function uE(){return sE()?"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 fE(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&&pE(t.credentialRevisions.get(e),r.credentialRevision)}function pE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function dE(t,e,r){if(!fE(t,e,r))throw new Error(lE)}async function zZ(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)||!pE(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{Sm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function NZ(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 DZ(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"))),OZ)},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(_m(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=aE(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 hE(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 cE(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Bd(l),Sr(o.signal),p=await Wd(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);dE(r,e,c),Sr(o.signal);let m=await Vd({config:s.clientId?{clientId:s.clientId}:{},serverMetadata:p,redirectUris:[d.redirectUri],preferStaticClient:s.registrySource===void 0});Sr(o.signal);let g=await Ia(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&&Oa(xe,b)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Oa(xe,v))return Promise.resolve(null);w=!0;let cn=v;return b=cn,an(),Sm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Kd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:uE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(xe=>_(xe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:uE()}),Sr(o.signal),await eE(g.authUri.toString());let C=await DZ(d,o,()=>v.state,_),I=await Jd(C,v);dE(r,e,c);let Q=NZ(I),pe=await c.tokenStore.persistAuthenticated(e,Q,u,h);if(!fE(r,e,c))throw await zZ(r,e,c,u,Q,pe,n),new Error(lE);c.tokenStore.commit(e,Q,u),r.preservedCredentialIdentities?.delete(e),un({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),at(r,e),await Ks([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),Sm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as QZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as LZ,SETTINGS_TARGET_ORDER as jZ,SettingsManager as FZ,scopeToSettingsTarget as UZ,settingsTargetToScope as wm}from"@augmentcode/auggie-v2";var qZ=jZ.map(t=>wm(t)),mE=(t,e)=>FZ.create(t,e);function gE(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 yE(t,e,r){let n=mE(e,r);return qZ.filter(o=>gE(n,o)?.[t])}function vE(t){let e=t.map(n=>({target:UZ(n),path:n,exists:!0})),r=LZ({files:e});return"directTarget"in r?{scopes:t,direct:wm(r.directTarget)}:{scopes:r.files.map(n=>wm(n.target)),direct:null}}function HZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function _E(t,e,r,n,o){try{let i=mE(n,o);if(!gE(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:HZ(t,n,o)!==e}}function bm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function SE(t,e,r){return bm(t)}function wE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as GZ}from"@hermes/logger";var Cm=GZ.child({prefix:"pi-mcp"}),bE="hermes:mcp:register-server-source";function ZZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function RE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function BZ(t,e){return{...t,disabled:e}}function WZ(t){try{return t.getServers()}catch(e){return Cm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function VZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function CE(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 KZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of WZ(t)){let s=e.servers.get(i.name),a=ZZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=BZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&ee(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)&&RE(s.config,u);p&&(ee(e,i.name,s),Vm({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),CE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function JZ(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=ct({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 PE(t,e){CE(t,e)}function YZ(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?ee(e,a,u):D(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){PE(e,a);continue}u===o.get(a)&&n.has(a)&&RE(u.config,c)||(s.set(a,Ke(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function XZ(t,e,r){let n=r?.connect??Je,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(h=>h.origin!=="plugin"),o&&VZ(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)&&ee(e,h,m)}let a=KZ(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 JZ(a,u,e);let{reservedRevisions:d,toConnect:l}=YZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;Cm.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||PE(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 Rm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>XZ(t,e,r)).catch(i=>{Cm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function xE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?ee(o,r,s):D(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),Rm(o.currentLoad?.latestPi??i,o,e))}function kE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,Rm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,Rm(e.currentLoad?.latestPi??t,e))})}}function e2(t,e){let n=QZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function EE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(e2(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:bm(e)};if(id(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=yE(e,n,o);if(s.length===0)return{kind:"blocked",message:SE(e,n,o)};let{scopes:a,direct:c}=vE(s);return{kind:"local",scopes:a,direct:c}}async function TE(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?ee(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await xE({name:e,disabled:r,state:n,pi:o});return}id(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 Je([a],n,o,void 0,void 0,s?.owner.kind),Se(n)}async function AE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=_E(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await Pk(e,o,i,s,a),Se(o),c.overridden?{notice:wE(e)}:{}}import{DynamicBorder as w2}from"@augmentcode/auggie-v2";import{Key as b2,matchesKey as R2,SearchableWindowedList as C2,SpinnerTimer as P2,truncateToWidth as Fu,wrapTextWithAnsi as x2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as t2,scopeToSettingsTarget as r2}from"@augmentcode/auggie-v2";import{truncateToWidth as n2,visibleWidth as Kn,wrapTextWithAnsi as o2}from"@earendil-works/pi-tui";var i2=2,s2=2,Ou={name:"Name",source:"Source",status:"Status"};function Pm(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 xm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function km(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function zu(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 ME(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(i2,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(s2,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(Ou[w]))&&(a=ei(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>xm(g)),l=t.map(g=>Pm(g)),f=Math.max(Kn(Ou.source),zu(d)),p=Math.max(Kn(Ou.status),zu(l.map(g=>g.label))),h=Math.max(Kn(Ou.name),zu(t.map(g=>g.name))),m=Math.max(p,zu(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 $E(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=>o2(n,r).map(o=>Kn(o)<=r?o:n2(o,r,"")))}function a2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,a2(e,r)))}function IE(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 OE(t,e){return String(t+1).padStart(String(e).length," ")}function Em(t){return t2(r2(t))}import{Key as c2,matchesKey as u2}from"@earendil-works/pi-tui";function Nu(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 zE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var NE=10,Jn=15;var d2="k",l2="j";function ni(t,e){return(t%e+e)%e}function st(t,e){let r=t.findIndex(n=>n.name===e);return r>=0?r:0}function Tm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===d2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===l2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:u2(t,c2.backspace)?{kind:"back"}:{kind:"ignore"}}function f2(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(st(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ni(st(r,t.selectedServer)+1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"confirm":{let o=r[st(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 p2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Nu(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 h2(t,e,r){let n=r.snapshots[st(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 m2(t,e,r){let n=r.snapshots[st(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 g2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Du(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function y2(t,e){let r=t.targetScopes.length;if(r===0)return{state:Du(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:Du(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Du({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Du(t,"serverActions")}}default:return{state:t}}}function DE(t,e,r){switch(t.step){case"serverList":return f2(t,e,r.snapshots);case"serverActions":return p2(t,e,r);case"viewTools":return h2(t,e,r);case"viewLogs":return m2(t,e,r);case"pasteAuthCode":return g2(t,e);case"selectTarget":return y2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as v2,wrapTextWithAnsi as sn}from"@earendil-works/pi-tui";var Am="\u2192 ",Lu=" ";function LE(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 jE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=ME(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?km(m,c.nameWidth):"",c.sourceWidth>0?km(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=wr(Lu,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=Pm(h),v=wr(g.label,c.statusWidth),w=c.statusWidth-v2(v),b=g.hint?wr(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=wr(m?Am:Lu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,LE(wr(h.name,c.nameWidth),m,i),LE(wr(xm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var _2={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 S2(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 _2[t]}function FE(t,e,r,n){let o=Math.max(1,n),i=e[st(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=Nu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=S2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Am:Lu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function UE(t,e,r,n){let o=Math.max(1,n),i=e[st(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}=$E(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",`${OE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function qE(t,e,r,n){let o=Math.max(1,n),s=e[st(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=IE(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 HE(t,e,r,n){let o=Math.max(1,n),i=e[st(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",Em(c))):r.fg("text",Em(c));s.push(Ut((u?Am:Lu)+d,o,"\u2026"))}return s}var ju=3;function k2(t){return t.type==="stdio"?t.command:t.url}function E2(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 HE(t){return t.disabled?2:t.status==="auth_required"?0:1}function k2(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:P2(r.config),logLines:()=>x2(r)});return e.sort((r,n)=>HE(r)-HE(n)),e}function E2(t,e){let r=e[st(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 T2(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 A2(t,e,r,n,o){switch(t.step){case"serverActions":return jE(t,e,n,o);case"viewTools":return FE(t,e,n,o);case"viewLogs":return UE(t,e,n,o);case"selectTarget":return qE(t,e,n,o);default:return LE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function M2(t,e,r,n,o){let i=Math.max(1,o),s=Fu(n.bold(n.fg("accent",E2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=ju?[...r.renderInput(i),""]:[],c=A2(t,e,r,n,i);return[s,"",...a,...c,"",Fu(n.fg("muted",T2(t.step)),i,"\u2026")]}function $2(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[Fu(s,i,"\u2026"),"",Fu(a,i,"\u2026")]}function I2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function O2(t,e,r){let n=s=>s.flatMap(a=>C2(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 z2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function GE(t){return t?"Disabling":"Enabling"}function ZE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Am=class{state=OE();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 _2(r=>e.theme.fg("border",r)),this.serverList=new b2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:zE})}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=$2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=O2({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=M2(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>=ju}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=ju&&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[st(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=NE(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??ju});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=Em(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(Em(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,GE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(ZE(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,GE(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(ZE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new R2(()=>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??=I2(),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(w2(e,S2.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&&z2(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 BE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Am({tui:i,theme:s,keybindings:a,snapshots:()=>k2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var $m=["list"];function WE(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 N2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var D2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function Mm(t,e){return e.length>0?[t,...e]:null}function L2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[Mm("MCP Server Status:",e.map(WE)),Mm("Plugin MCP servers:",r.map(WE)),Mm("Diagnostics:",t.diagnostics.map(N2))];return t.servers.size===0&&n.unshift([D2]),n.filter(o=>o!==null).map(o=>o.join(`
145
+ `)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function GE(t){return t.disabled?2:t.status==="auth_required"?0:1}function T2(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:k2(r.config),logLines:()=>E2(r)});return e.sort((r,n)=>GE(r)-GE(n)),e}function A2(t,e){let r=e[st(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 M2(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 $2(t,e,r,n,o){switch(t.step){case"serverActions":return FE(t,e,n,o);case"viewTools":return UE(t,e,n,o);case"viewLogs":return qE(t,e,n,o);case"selectTarget":return HE(t,e,n,o);default:return jE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function I2(t,e,r,n,o){let i=Math.max(1,o),s=Fu(n.bold(n.fg("accent",A2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=ju?[...r.renderInput(i),""]:[],c=$2(t,e,r,n,i);return[s,"",...a,...c,"",Fu(n.fg("muted",M2(t.step)),i,"\u2026")]}function O2(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[Fu(s,i,"\u2026"),"",Fu(a,i,"\u2026")]}function z2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function N2(t,e,r){let n=s=>s.flatMap(a=>x2(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 D2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function ZE(t){return t?"Disabling":"Enabling"}function BE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Mm=class{state=zE();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 w2(r=>e.theme.fg("border",r)),this.serverList=new C2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:NE})}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=O2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=N2({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=I2(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>=ju}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=ju&&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[st(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=DE(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??ju});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=Tm(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(Tm(e,this.config.keybindings),r),this.syncSearchFocus(),this.config.tui.requestRender()}runEffect(e){switch(e.kind){case"close":this.config.done();return;case"reconnect":this.startOp(e.server,"Reconnecting",()=>this.config.reconnect(e.server));return;case"authenticate":this.startAuth(e.server);return;case"toggle":this.startToggle(e.server,e.disable);return;case"toggleWrite":this.startToggleWrite(e.server,e.disable,e.scope);return;default:return}}startToggle(e,r){if(this.busy||this.config.isReconnecting())return;let n=this.config.toggle.classify(e);if(n.kind==="blocked"){this.config.toggle.notify(n.message),this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender();return}if(n.kind==="session"){this.startOp(e,ZE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(BE(e,o))}});return}if(n.direct){this.startToggleWrite(e,r,n.direct);return}this.state={...this.state,step:"selectTarget",targetScopes:n.scopes,targetIndex:0,pendingToggle:{server:e,disable:r}},this.config.tui.requestRender()}startToggleWrite(e,r,n){this.startOp(e,ZE(r),async()=>{try{let{notice:o}=await this.config.toggle.applyLocal(e,r,n);o&&this.config.toggle.notify(o)}catch(o){this.config.toggle.notify(BE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new P2(()=>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??=z2(),this.manualCode.promise)},signal:this.authAbort.signal};this.authDone=this.config.authenticate(e,r).then(()=>{this.authenticating===e&&this.exitAuth()}).catch(n=>{this.authenticating===e&&(this.authStatus="error",this.authError=n instanceof Error?n.message:String(n),this.config.tui.requestRender())})}handleAuthInput(e){if(this.authStatus==="error"){this.exitAuth("serverActions");return}if(this.config.keybindings.matches(e,"tui.select.cancel")){this.authAbort?.abort(),this.manualCode?.resolve(null),this.exitAuth();return}if(this.config.keybindings.matches(e,"tui.select.confirm")){let n=this.state.authInput.trim();if(n){let o=this.manualCode;this.manualCode=void 0,this.state={...this.state,authInput:""},o?o.resolve(n):this.queuedManualCodes.push(n),this.config.tui.requestRender()}return}if(R2(e,b2.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&&D2(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 WE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Mm({tui:i,theme:s,keybindings:a,snapshots:()=>T2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Im=["list"];function VE(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 L2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var j2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function $m(t,e){return e.length>0?[t,...e]:null}function F2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[$m("MCP Server Status:",e.map(VE)),$m("Plugin MCP servers:",r.map(VE)),$m("Diagnostics:",t.diagnostics.map(L2))];return t.servers.size===0&&n.unshift([j2]),n.filter(o=>o!==null).map(o=>o.join(`
147
147
  `)).join(`
148
148
 
149
- `)}function j2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if($m.includes(e))return e}async function F2(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 VE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return $m.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 BE(n,e,s=>Ks([s],e,t),{classify:s=>kE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>EE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>TE({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)=>pE({serverName:s,state:e,pi:t,controller:a}));return}let i=j2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${$m.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(L2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await F2(n,e,t)}})}import{logger as U2}from"@hermes/logger";var KE=U2.child({prefix:"pi-mcp"}),Im="augment:feature-flags";function q2(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 JE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Im,r=>{let n=q2(r);if(n===void 0){KE.warn(`${Im} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,KE.debug(`Received feature-flag snapshot via ${Im} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as H2}from"@hermes/logger";var Xs=H2.child({prefix:"pi-mcp"}),YE=300*1e3,Om=600*1e3;function G2(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+Om||(Xs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Om}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 XE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{G2(t)},YE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Xs.debug(`Started background MCP OAuth refresh loop (interval ${YE}ms, buffer ${Om}ms)`)}function QE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Xs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as Z2}from"@hermes/logger";var kt=Z2.child({prefix:"pi-mcp"});function B2(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){Ye({state:t.state,domain:He(t.configId),epoch:t.intentEpoch})}function W2(t){let e=new Set;for(let[r,n]of t.servers){let o=ee(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 eT(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function tT(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 V2(t,e){return e.flatMap(r=>Su(t,r)?[r.config]:[])}function K2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function J2(t,e){let r=K2(e);if(r){if(Qs(t,r.error),r.error instanceof Et)throw r.error;return}let n=V2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){B2(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 rT(t,e){try{J2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function Y2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t,s=r.servers.get(e.name);if(!s)return!1;let a=ee(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 X2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){nr(t);return}if(Y2(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);rT(t,r??[])}catch(r){if(Qs(t,r),r instanceof Et)throw r}}async function Q2(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){tT(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}tT(r,e),rT(t,s??[])}function e4(t,e){if(typeof e=="string")return Ok(e,t.workspaceRoot??process.cwd())}function t4(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function nT(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=e4(r,i?.embeddedConfig);if(t4(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=ua({state:r,domain:He(s),forceNew:!0}),u=W2(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??Je,report:o?.report??N,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>eT(r,s)},m;if(a)m=X2(h,a);else{let g=r.credentials;g?m=(o?.discover??Eu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>Q2(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 pa({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>eT(r,s)})}import{logger as r4}from"@hermes/logger";var ea=r4.child({prefix:"pi-mcp"}),oT=3,iT=6e4,n4=1e3,o4=8e3;function zm(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 ea.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=rn({state:r,target:d});if(!l)return ea.warn(`augment:mcp-restart-server: no unique live host for ${d}; re-reporting status`),c(r.currentLoad?.latestPi??e,r),Promise.resolve();if(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<iT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>oT)return ea.warn(`augment:mcp-restart-server: ${f} exceeded ${oT} restarts within ${iT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(n4*2**(v-1),o4);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 ea.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(_)}`;ea.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as i4}from"@hermes/logger";var ta=i4.child({prefix:"pi-mcp"}),s4=/^\d+$/,Nm=1,sT="AUGMENT_ACTIVE_SPACE_ID",a4="augment-mcp-access-token-";function Uu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function aT(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 qu=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??yd}_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(a4)&&Object.hasOwn(process.env,sT)&&(r.active_space_id=process.env[sT]??""),r}getSecret(e){let r=Uu(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=Uu(e),s=(await this._callUpsert({name:o,value:r,scope:Nm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!s4.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),ta.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Uu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Nm}),ta.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=Uu(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===Nm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:aT(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&&ta.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:aT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return ta.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return ta.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 Dm(t){return{latestPi:t}}import{logger as c4}from"@hermes/logger";var oi=c4.child({prefix:"pi-mcp"});async function u4(t){let e=[];for(let[r,n]of t.servers){let o=ee(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=ct({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;Ke(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 d4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function l4(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 f4(t,e){let r=new Set;for(let[s,a]of t.servers){let c=ee(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=l4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function p4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function cT(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.connect??Je,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&&p4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=u4(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;d4(r,s.diagnostics);let{servers:l,blockedNames:f}=f4(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&&Su(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=h4.child({prefix:"pi-mcp"}),pT="augment:mcp-oauth-credentials",uT="augment:mcp-header-secrets",dT="augment:mcp-header-secret-failures",Lm="augment:mcp-oauth-failures",lT="augment:credentials",m4="augment:mcp-config-ids",fT="augment:mcp-configs",g4="augment:mcp-vfs-servers",y4="augment:mcp-add-server",v4="augment:mcp-restart-server",_4="augment:mcp-remove-server",S4="augment:cloud-mode";function w4(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 b4(t){if(!t||typeof t!="object"){we.warn(`${pT} 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 jm(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&&hT({state:t,name:r,revision:o})&&!mT({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 R4(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"),N(r.currentLoad?.latestPi??e,r);return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){Ek({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!jm(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&&!jm(r,n))return;let c=E4({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))){zm({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)&&jm(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 C4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(pT,r=>{let n=b4(r);n&&R4({pi:t,state:e,payload:n})}))}function hT(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&&He(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||Ie(n.domain))||s===n.domain}function mT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function P4(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(mT({state:e,revision:a})){cg({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(hT({state:e,name:i,revision:a})){o[i]=s;continue}sg({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function x4(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 k4(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 E4(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=P4({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=bu(r.tokens,i,s);return x4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),k4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function T4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(uT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${uT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);Zy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(dT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${dT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Wy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Lm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${Lm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${Lm} entries is not an object`);return}Hm(e,n.entries)}))}function A4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(lT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${lT} 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 qu(e.credentials),w4(e)}),t.events.on(m4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Pu(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 gT(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 M4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(S4,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&&gT(e.currentLoad?.latestPi??t,e))}))}function $4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(fT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${fT} 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 I4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(g4,r=>{cT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function yT(t,e){Ir(e)?(ir(t),ya(t)):Cg(t,e),Se(e)}function O4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(y4,r=>{let n=()=>nT({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 z4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(v4,r=>{let n=()=>zm({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{Se(e)})}))}function N4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(_4,r=>{let n=()=>Tu({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 rte(t){return Gy(t)}function D4(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=Je(n,e,r).then(()=>Rk(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),gT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function L4(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)}yT(e,t)}var vT=t=>{let e=te();e.currentLoad=Dm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;VE(t,e),Xk(t,e),C4(t,e),T4(t,e),A4(t,e),$4(t,e),I4(t,e),O4(t,e),z4(t,e),N4(t,e),M4(t,e),JE(t,e),Mk(t,e),Pu(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=Dm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,XE(e),e.connectStarted?yT(t,e):D4(o,e,t),o.mode==="acp"&&await L4(e,t),r||(r=!0,t.events.emit(wE,xE(t,e)))}),t.on("session_shutdown",()=>{QE(e)})};Sg(vT);var nte=vT;export{nte as default,rte as setMcpErrorReporter};
149
+ `)}function U2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Im.includes(e))return e}async function q2(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 KE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Im.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 WE(n,e,s=>Ks([s],e,t),{classify:s=>EE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>TE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>AE({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)=>hE({serverName:s,state:e,pi:t,controller:a}));return}let i=U2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Im.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(F2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await q2(n,e,t)}})}import{logger as H2}from"@hermes/logger";var JE=H2.child({prefix:"pi-mcp"}),Om="augment:feature-flags";function G2(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 YE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Om,r=>{let n=G2(r);if(n===void 0){JE.warn(`${Om} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,JE.debug(`Received feature-flag snapshot via ${Om} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as Z2}from"@hermes/logger";var Xs=Z2.child({prefix:"pi-mcp"}),XE=300*1e3,zm=600*1e3;function B2(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+zm||(Xs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${zm}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 QE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{B2(t)},XE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Xs.debug(`Started background MCP OAuth refresh loop (interval ${XE}ms, buffer ${zm}ms)`)}function eT(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Xs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as W2}from"@hermes/logger";var kt=W2.child({prefix:"pi-mcp"});function V2(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){Ye({state:t.state,domain:He(t.configId),epoch:t.intentEpoch})}function K2(t){let e=new Set;for(let[r,n]of t.servers){let o=ee(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 tT(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function rT(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 J2(t,e){return e.flatMap(r=>Su(t,r)?[r.config]:[])}function Y2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function X2(t,e){let r=Y2(e);if(r){if(Qs(t,r.error),r.error instanceof Et)throw r.error;return}let n=J2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){V2(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 nT(t,e){try{X2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function Q2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t,s=r.servers.get(e.name);if(!s)return!1;let a=ee(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 e4(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){nr(t);return}if(Q2(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);nT(t,r??[])}catch(r){if(Qs(t,r),r instanceof Et)throw r}}async function t4(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){rT(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}rT(r,e),nT(t,s??[])}function r4(t,e){if(typeof e=="string")return zk(e,t.workspaceRoot??process.cwd())}function n4(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function oT(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=r4(r,i?.embeddedConfig);if(n4(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=ua({state:r,domain:He(s),forceNew:!0}),u=K2(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??Je,report:o?.report??N,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>tT(r,s)},m;if(a)m=e4(h,a);else{let g=r.credentials;g?m=(o?.discover??Eu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>t4(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 pa({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>tT(r,s)})}import{logger as o4}from"@hermes/logger";var ea=o4.child({prefix:"pi-mcp"}),iT=3,sT=6e4,i4=1e3,s4=8e3;function Nm(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 ea.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=rn({state:r,target:d});if(!l)return ea.warn(`augment:mcp-restart-server: no unique live host for ${d}; re-reporting status`),c(r.currentLoad?.latestPi??e,r),Promise.resolve();if(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<sT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>iT)return ea.warn(`augment:mcp-restart-server: ${f} exceeded ${iT} restarts within ${sT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(i4*2**(v-1),s4);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 ea.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(_)}`;ea.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as a4}from"@hermes/logger";var ta=a4.child({prefix:"pi-mcp"}),c4=/^\d+$/,Dm=1,aT="AUGMENT_ACTIVE_SPACE_ID",u4="augment-mcp-access-token-";function Uu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function cT(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 qu=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??vd}_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(u4)&&Object.hasOwn(process.env,aT)&&(r.active_space_id=process.env[aT]??""),r}getSecret(e){let r=Uu(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=Uu(e),s=(await this._callUpsert({name:o,value:r,scope:Dm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!c4.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),ta.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Uu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Dm}),ta.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=Uu(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===Dm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:cT(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&&ta.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:cT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return ta.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return ta.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 Lm(t){return{latestPi:t}}import{logger as d4}from"@hermes/logger";var oi=d4.child({prefix:"pi-mcp"});async function l4(t){let e=[];for(let[r,n]of t.servers){let o=ee(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=ct({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;Ke(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 f4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function p4(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 h4(t,e){let r=new Set;for(let[s,a]of t.servers){let c=ee(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=p4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function m4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function uT(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.connect??Je,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&&m4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=l4(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;f4(r,s.diagnostics);let{servers:l,blockedNames:f}=h4(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&&Su(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=g4.child({prefix:"pi-mcp"}),hT="augment:mcp-oauth-credentials",dT="augment:mcp-header-secrets",lT="augment:mcp-header-secret-failures",jm="augment:mcp-oauth-failures",fT="augment:credentials",y4="augment:mcp-config-ids",pT="augment:mcp-configs",v4="augment:mcp-vfs-servers",_4="augment:mcp-add-server",S4="augment:mcp-restart-server",w4="augment:mcp-remove-server",b4="augment:cloud-mode";function R4(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 C4(t){if(!t||typeof t!="object"){we.warn(`${hT} 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 Fm(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&&mT({state:t,name:r,revision:o})&&!gT({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 P4(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"),N(r.currentLoad?.latestPi??e,r);return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){Tk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Fm(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&&!Fm(r,n))return;let c=A4({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))){Nm({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)&&Fm(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 x4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(hT,r=>{let n=C4(r);n&&P4({pi:t,state:e,payload:n})}))}function mT(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&&He(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||Ie(n.domain))||s===n.domain}function gT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function k4(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(gT({state:e,revision:a})){ug({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(mT({state:e,name:i,revision:a})){o[i]=s;continue}ag({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function E4(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 T4(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 A4(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=k4({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=bu(r.tokens,i,s);return E4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),T4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function M4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(dT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${dT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);By(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(lT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${lT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Vy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(jm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${jm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${jm} entries is not an object`);return}Gm(e,n.entries)}))}function $4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(fT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${fT} 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 qu(e.credentials),R4(e)}),t.events.on(y4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Pu(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 yT(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 I4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(b4,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&&yT(e.currentLoad?.latestPi??t,e))}))}function O4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(pT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${pT} 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 z4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(v4,r=>{uT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function vT(t,e){Ir(e)?(ir(t),ya(t)):Pg(t,e),Se(e)}function N4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(_4,r=>{let n=()=>oT({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 D4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(S4,r=>{let n=()=>Nm({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{Se(e)})}))}function L4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(w4,r=>{let n=()=>Tu({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 ote(t){return Zy(t)}function j4(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=Je(n,e,r).then(()=>Ck(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),yT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function F4(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)}vT(e,t)}var _T=t=>{let e=te();e.currentLoad=Lm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;KE(t,e),Qk(t,e),x4(t,e),M4(t,e),$4(t,e),O4(t,e),z4(t,e),N4(t,e),D4(t,e),L4(t,e),I4(t,e),YE(t,e),$k(t,e),Pu(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=Lm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,QE(e),e.connectStarted?vT(t,e):j4(o,e,t),o.mode==="acp"&&await F4(e,t),r||(r=!0,t.events.emit(bE,kE(t,e)))}),t.on("session_shutdown",()=>{eT(e)})};wg(_T);var ite=_T;export{ite as default,ote as setMcpErrorReporter};
150
150
  /*! Bundled license information:
151
151
 
152
152
  content-type/index.js: