@augmentcode/auggie 1.2.0-prerelease.202610301510 → 1.2.0-prerelease.202611021212

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 PT=Object.create;var Bu=Object.defineProperty;var xT=Object.getOwnPropertyDescriptor;var kT=Object.getOwnPropertyNames;var ET=Object.getPrototypeOf,TT=Object.prototype.hasOwnProperty;var Cr=(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}},Wu=(t,e)=>{for(var r in e)Bu(t,r,{get:e[r],enumerable:!0})},AT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of kT(e))!TT.call(t,o)&&o!==r&&Bu(t,o,{get:()=>e[o],enumerable:!(n=xT(e,o))||n.enumerable});return t};var ia=(t,e,r)=>(r=t!=null?PT(ET(t)):{},AT(e||!t||!t.__esModule?Bu(r,"default",{value:t,enumerable:!0}):r,t));var is=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 ns=class{};J._CodeOrName=ns;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends ns{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 ns{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 Fb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Af(r,e[n]),r.push(t[++n]);return new wt(r)}J._=Fb;var Tf=new wt("+");function Ub(t,...e){let r=[os(t[0])],n=0;for(;n<e.length;)r.push(Tf),Af(r,e[n]),r.push(Tf,os(t[++n]));return yN(r),new wt(r)}J.str=Ub;function Af(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(SN(e))}J.addCodeArg=Af;function yN(t){let e=1;for(;e<t.length-1;){if(t[e]===Tf){let r=vN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function vN(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 _N(t,e){return e.emptyStr()?t:t.emptyStr()?e:Ub`${t}${e}`}J.strConcat=_N;function SN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:os(Array.isArray(t)?t.join(","):t)}function wN(t){return new wt(os(t))}J.stringify=wN;function os(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=os;function bN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):Fb`[${t}]`}J.getProperty=bN;function RN(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=RN;function CN(t){return new wt(t.toString())}J.regexpCode=CN});var If=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.ValueScope=rt.ValueScopeName=rt.Scope=rt.varKinds=rt.UsedValueState=void 0;var tt=is(),Mf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},wc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(wc||(rt.UsedValueState=wc={}));rt.varKinds={const:new tt.Name("const"),let:new tt.Name("let"),var:new tt.Name("var")};var bc=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=bc;var Rc=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=Rc;var PN=(0,tt._)`\n`,$f=class extends bc{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 Rc(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,wc.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 Mf(u);c.set(u,wc.Completed)})}return i}};rt.ValueScope=$f});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=is(),Ot=If(),Wr=is();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Wr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Wr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Wr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Wr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Wr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Wr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Wr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Wr.Name}});var kc=If();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return kc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return kc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return kc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return kc.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 pr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Of=class extends pr{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:{}}},Cc=class extends pr{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 xc(e,this.rhs)}},zf=class extends Cc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Nf=class extends pr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Df=class extends pr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Lf=class extends pr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},jf=class extends pr{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:{}}},ss=class extends pr{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)||(xN(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),{})}},hr=class extends ss{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Ff=class extends ss{},Po=class extends hr{};Po.kind="else";var xn=class t extends hr{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(qb(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 xc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends hr{};kn.kind="for";var Uf=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)}},qf=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=xc(super.names,this.from);return xc(e,this.to)}},Pc=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)}},as=class extends hr{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)}};as.kind="func";var cs=class extends ss{render(e){return"return "+super.render(e)}};cs.kind="return";var Hf=class extends hr{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}},us=class extends hr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};us.kind="catch";var ds=class extends hr{render(e){return"finally"+super.render(e)}};ds.kind="finally";var Gf=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 Ff]}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 Of(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 Cc(e,r,n))}add(e,r){return this._leafNode(new zf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new jf(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 Uf(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 qf(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 Pc("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 Pc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Nf(e))}break(e){return this._leafNode(new Df(e))}return(e){let r=new cs;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(cs)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Hf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new us(i),r(i)}return n&&(this._currNode=o.finally=new ds,this.code(n)),this._endBlockNode(us,ds)}throw(e){return this._leafNode(new Lf(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 as(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(as)}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=Gf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function xc(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 xN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function qb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Zf(t)}`}F.not=qb;var kN=Hb(F.operators.AND);function EN(...t){return t.reduce(kN)}F.and=EN;var TN=Hb(F.operators.OR);function AN(...t){return t.reduce(TN)}F.or=AN;function Hb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Zf(e)} ${t} ${Zf(r)}`}function Zf(t){return t instanceof G.Name?t:(0,G._)`(${t})`}});var B=P(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var se=j(),MN=is();function $N(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=$N;function IN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Bb(t,e),!Wb(e,t.self.RULES.all))}U.alwaysValidSchema=IN;function Bb(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]||Jb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Bb;function Wb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Wb;function ON(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=ON;function zN({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=zN;function NN(t){return Vb(decodeURIComponent(t))}U.unescapeFragment=NN;function DN(t){return encodeURIComponent(Wf(t))}U.escapeFragment=DN;function Wf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Wf;function Vb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Vb;function LN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=LN;function Gb({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:Gb({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} || {}`),Vf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Kb}),items:Gb({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 Kb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Vf(t,r,e),r}U.evaluatedPropsToName=Kb;function Vf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Vf;var Zb={};function jN(t,e){return t.scopeValue("func",{ref:e,code:Zb[e.code]||(Zb[e.code]=new MN._Code(e.code))})}U.useFunc=jN;var Bf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Bf||(U.Type=Bf={}));function FN(t,e,r){if(t instanceof se.Name){let n=e===Bf.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():"/"+Wf(t)}U.getErrorPath=FN;function Jb(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=Jb});var mr=P(Kf=>{"use strict";Object.defineProperty(Kf,"__esModule",{value:!0});var Fe=j(),UN={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")};Kf.default=UN});var ls=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(),Ec=B(),Ze=mr();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 qN(t,e=Ue.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Qb(t,e,r);n??(s||a)?Yb(i,c):Xb(o,(0,W._)`[${c}]`)}Ue.reportError=qN;function HN(t,e=Ue.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Qb(t,e,r);Yb(o,a),i||s||Xb(n,Ze.default.vErrors)}Ue.reportExtraError=HN;function GN(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=GN;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 Yb(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 Xb(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 Qb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:BN(t,e,r)}function BN(t,e,r={}){let{gen:n,it:o}=t,i=[WN(o,r),VN(t,r)];return KN(t,e,i),n.object(...i)}function WN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Ec.getErrorPath)(e,Ec.Type.Str)}`:t;return[Ze.default.instancePath,(0,W.strConcat)(Ze.default.instancePath,r)]}function VN({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,Ec.getErrorPath)(r,Ec.Type.Str)}`),[Tn.schemaPath,o]}function KN(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 tR=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var JN=ls(),YN=j(),XN=mr(),QN={message:"boolean schema is false"};function eD(t){let{gen:e,schema:r,validateName:n}=t;r===!1?eR(t,!1):typeof r=="object"&&r.$async===!0?e.return(XN.default.data):(e.assign((0,YN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=eD;function tD(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),eR(t)):r.var(e,!0)}ko.boolOrEmptySchema=tD;function eR(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,JN.reportError)(o,QN,void 0,e)}});var Jf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var rD=["string","number","integer","boolean","null","object","array"],nD=new Set(rD);function oD(t){return typeof t=="string"&&nD.has(t)}Eo.isJSONType=oD;function iD(){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=iD});var Yf=P(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.shouldUseRule=Vr.shouldUseGroup=Vr.schemaHasRulesForType=void 0;function sD({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&rR(t,n)}Vr.schemaHasRulesForType=sD;function rR(t,e){return e.rules.some(r=>nR(t,r))}Vr.shouldUseGroup=rR;function nR(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))}Vr.shouldUseRule=nR});var fs=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 aD=Jf(),cD=Yf(),uD=ls(),L=j(),oR=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(qe.DataType=To={}));function dD(t){let e=iR(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=dD;function iR(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(aD.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}qe.getJSONTypes=iR;function lD(t,e){let{gen:r,data:n,opts:o}=t,i=fD(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,cD.schemaHasRulesForType)(t,e[0]));if(s){let a=Qf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?pD(t,e,i):ep(t)})}return s}qe.coerceAndCheckDataType=lD;var sR=new Set(["string","number","integer","boolean","null"]);function fD(t,e){return e?t.filter(r=>sR.has(r)||e==="array"&&r==="array"):[]}function pD(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(Qf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(sR.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),ep(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),hD(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 FT=Object.create;var Yu=Object.defineProperty;var UT=Object.getOwnPropertyDescriptor;var qT=Object.getOwnPropertyNames;var HT=Object.getPrototypeOf,GT=Object.prototype.hasOwnProperty;var Pr=(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}},Xu=(t,e)=>{for(var r in e)Yu(t,r,{get:e[r],enumerable:!0})},ZT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of qT(e))!GT.call(t,o)&&o!==r&&Yu(t,o,{get:()=>e[o],enumerable:!(n=UT(e,o))||n.enumerable});return t};var ca=(t,e,r)=>(r=t!=null?FT(HT(t)):{},ZT(e||!t||!t.__esModule?Yu(r,"default",{value:t,enumerable:!0}):r,t));var as=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 is=class{};J._CodeOrName=is;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var xn=class extends is{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=xn;var bt=class extends is{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 xn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=bt;J.nil=new bt("");function Kb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)zf(r,e[n]),r.push(t[++n]);return new bt(r)}J._=Kb;var Of=new bt("+");function Jb(t,...e){let r=[ss(t[0])],n=0;for(;n<e.length;)r.push(Of),zf(r,e[n]),r.push(Of,ss(t[++n]));return $N(r),new bt(r)}J.str=Jb;function zf(t,e){e instanceof bt?t.push(...e._items):e instanceof xn?t.push(e):t.push(zN(e))}J.addCodeArg=zf;function $N(t){let e=1;for(;e<t.length-1;){if(t[e]===Of){let r=IN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function IN(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof xn||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 xn))return`"${t}${e.slice(1)}`}function ON(t,e){return e.emptyStr()?t:t.emptyStr()?e:Jb`${t}${e}`}J.strConcat=ON;function zN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ss(Array.isArray(t)?t.join(","):t)}function NN(t){return new bt(ss(t))}J.stringify=NN;function ss(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ss;function DN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new bt(`.${t}`):Kb`[${t}]`}J.getProperty=DN;function LN(t){if(typeof t=="string"&&J.IDENTIFIER.test(t))return new bt(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}J.getEsmExportName=LN;function jN(t){return new bt(t.toString())}J.regexpCode=jN});var Lf=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.ValueScope=rt.ValueScopeName=rt.Scope=rt.varKinds=rt.UsedValueState=void 0;var tt=as(),Nf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Pc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Pc||(rt.UsedValueState=Pc={}));rt.varKinds={const:new tt.Name("const"),let:new tt.Name("let"),var:new tt.Name("var")};var xc=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=xc;var Ec=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=Ec;var FN=(0,tt._)`\n`,Df=class extends xc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?FN:tt.nil}}get(){return this._scope}name(e){return new Ec(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,Pc.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 Nf(u);c.set(u,Pc.Completed)})}return i}};rt.ValueScope=Df});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=as(),Ot=Lf(),Vr=as();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Vr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Vr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Vr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Vr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Vr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Vr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Vr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Vr.Name}});var Mc=Lf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return Mc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return Mc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return Mc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return Mc.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 hr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},jf=class extends hr{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=Eo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},kc=class extends hr{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=Eo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return Ac(e,this.rhs)}},Ff=class extends kc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Uf=class extends hr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},qf=class extends hr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Hf=class extends hr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Gf=class extends hr{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=Eo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},cs=class extends hr{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)||(UN(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Tn(e,r.names),{})}},mr=class extends cs{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Zf=class extends cs{},xo=class extends mr{};xo.kind="else";var En=class t extends mr{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 xo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Yb(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=Eo(this.condition,e,r),this}get names(){let e=super.names;return Ac(e,this.condition),this.else&&Tn(e,this.else.names),e}};En.kind="if";var kn=class extends mr{};kn.kind="for";var Bf=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=Eo(this.iteration,e,r),this}get names(){return Tn(super.names,this.iteration.names)}},Wf=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=Ac(super.names,this.from);return Ac(e,this.to)}},Tc=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=Eo(this.iterable,e,r),this}get names(){return Tn(super.names,this.iterable.names)}},us=class extends mr{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)}};us.kind="func";var ds=class extends cs{render(e){return"return "+super.render(e)}};ds.kind="return";var Vf=class extends mr{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&&Tn(e,this.catch.names),this.finally&&Tn(e,this.finally.names),e}},ls=class extends mr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};ls.kind="catch";var fs=class extends mr{render(e){return"finally"+super.render(e)}};fs.kind="finally";var Kf=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 Zf]}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 jf(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 kc(e,r,n))}add(e,r){return this._leafNode(new Ff(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Gf(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 En(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 En(e))}else(){return this._elseNode(new xo)}endIf(){return this._endBlockNode(En,xo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Bf(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 Wf(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 Tc("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 Tc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Uf(e))}break(e){return this._leafNode(new qf(e))}return(e){let r=new ds;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ds)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Vf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new ls(i),r(i)}return n&&(this._currNode=o.finally=new fs,this.code(n)),this._endBlockNode(ls,fs)}throw(e){return this._leafNode(new Hf(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 us(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(us)}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 En))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=Kf;function Tn(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Ac(t,e){return e instanceof G._CodeOrName?Tn(t,e.names):t}function Eo(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 UN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Yb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Jf(t)}`}F.not=Yb;var qN=Xb(F.operators.AND);function HN(...t){return t.reduce(qN)}F.and=HN;var GN=Xb(F.operators.OR);function ZN(...t){return t.reduce(GN)}F.or=ZN;function Xb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Jf(e)} ${t} ${Jf(r)}`}function Jf(t){return t instanceof G.Name?t:(0,G._)`(${t})`}});var B=P(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var se=j(),BN=as();function WN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=WN;function VN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(tR(t,e),!rR(e,t.self.RULES.all))}U.alwaysValidSchema=VN;function tR(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]||iR(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=tR;function rR(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=rR;function KN(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=KN;function JN({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=JN;function YN(t){return nR(decodeURIComponent(t))}U.unescapeFragment=YN;function XN(t){return encodeURIComponent(Xf(t))}U.escapeFragment=XN;function Xf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Xf;function nR(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=nR;function QN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=QN;function Qb({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:Qb({mergeNames:(t,e,r)=>t.if((0,se._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,se._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,se._)`${r} || {}`).code((0,se._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,se._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,se._)`${r} || {}`),Qf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:oR}),items:Qb({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 oR(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Qf(t,r,e),r}U.evaluatedPropsToName=oR;function Qf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Qf;var eR={};function eD(t,e){return t.scopeValue("func",{ref:e,code:eR[e.code]||(eR[e.code]=new BN._Code(e.code))})}U.useFunc=eD;var Yf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Yf||(U.Type=Yf={}));function tD(t,e,r){if(t instanceof se.Name){let n=e===Yf.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():"/"+Xf(t)}U.getErrorPath=tD;function iR(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=iR});var gr=P(ep=>{"use strict";Object.defineProperty(ep,"__esModule",{value:!0});var Fe=j(),rD={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")};ep.default=rD});var ps=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(),$c=B(),Ze=gr();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 nD(t,e=Ue.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=cR(t,e,r);n??(s||a)?sR(i,c):aR(o,(0,W._)`[${c}]`)}Ue.reportError=nD;function oD(t,e=Ue.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=cR(t,e,r);sR(o,a),i||s||aR(n,Ze.default.vErrors)}Ue.reportExtraError=oD;function iD(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=iD;function sD({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=sD;function sR(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 aR(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 An={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 cR(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:aD(t,e,r)}function aD(t,e,r={}){let{gen:n,it:o}=t,i=[cD(o,r),uD(t,r)];return dD(t,e,i),n.object(...i)}function cD({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,$c.getErrorPath)(e,$c.Type.Str)}`:t;return[Ze.default.instancePath,(0,W.strConcat)(Ze.default.instancePath,r)]}function uD({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,$c.getErrorPath)(r,$c.Type.Str)}`),[An.schemaPath,o]}function dD(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([An.keyword,o],[An.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([An.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([An.schema,s],[An.parentSchema,(0,W._)`${d}${l}`],[Ze.default.data,i]),u&&n.push([An.propertyName,u])}});var dR=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var lD=ps(),fD=j(),pD=gr(),hD={message:"boolean schema is false"};function mD(t){let{gen:e,schema:r,validateName:n}=t;r===!1?uR(t,!1):typeof r=="object"&&r.$async===!0?e.return(pD.default.data):(e.assign((0,fD._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=mD;function gD(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),uR(t)):r.var(e,!0)}ko.boolOrEmptySchema=gD;function uR(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,lD.reportError)(o,hD,void 0,e)}});var tp=P(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.getRules=To.isJSONType=void 0;var yD=["string","number","integer","boolean","null","object","array"],vD=new Set(yD);function _D(t){return typeof t=="string"&&vD.has(t)}To.isJSONType=_D;function SD(){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:{}}}To.getRules=SD});var rp=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.shouldUseRule=Kr.shouldUseGroup=Kr.schemaHasRulesForType=void 0;function wD({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&lR(t,n)}Kr.schemaHasRulesForType=wD;function lR(t,e){return e.rules.some(r=>fR(t,r))}Kr.shouldUseGroup=lR;function fR(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))}Kr.shouldUseRule=fR});var hs=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 bD=tp(),RD=rp(),CD=ps(),L=j(),pR=B(),Ao;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(Ao||(qe.DataType=Ao={}));function PD(t){let e=hR(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=PD;function hR(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(bD.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}qe.getJSONTypes=hR;function xD(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,RD.schemaHasRulesForType)(t,e[0]));if(s){let a=op(e,n,o.strictNumbers,Ao.Wrong);r.if(a,()=>{i.length?kD(t,e,i):ip(t)})}return s}qe.coerceAndCheckDataType=xD;var mR=new Set(["string","number","integer","boolean","null"]);function ED(t,e){return e?t.filter(r=>mR.has(r)||e==="array"&&r==="array"):[]}function kD(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(op(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(mR.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),ip(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),TD(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 hD({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Xf(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=Xf;function Qf(t,e,r,n){if(t.length===1)return Xf(t[0],e,r,n);let o,i=(0,oR.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,Xf(s,e,r,n));return o}qe.checkDataTypes=Qf;var mD={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function ep(t){let e=gD(t);(0,uD.reportError)(e,mD)}qe.reportTypeError=ep;function gD(t){let{gen:e,data:r,schema:n}=t,o=(0,oR.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var cR=P(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.assignDefaults=void 0;var Ao=j(),yD=B();function vD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)aR(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>aR(t,i,o.default))}Tc.assignDefaults=vD;function aR(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,yD.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(),tp=B(),Kr=mr(),_D=B();function SD(t,e){let{gen:r,data:n,it:o}=t;r.if(np(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}ne.checkReportMissingProp=SD;function wD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(np(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}ne.checkMissingProp=wD;function bD(t,e){t.setParams({missingProperty:e},!0),t.error()}ne.reportMissingProp=bD;function uR(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=uR;function rp(t,e,r){return(0,de._)`${uR(t)}.call(${e}, ${r})`}ne.isOwnProperty=rp;function RD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${rp(t,e,r)}`:o}ne.propertyInData=RD;function np(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(rp(t,e,r))):o}ne.noPropertyInData=np;function dR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ne.allSchemaProperties=dR;function CD(t,e){return dR(e).filter(r=>!(0,tp.alwaysValidSchema)(t,e[r]))}ne.schemaProperties=CD;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=[[Kr.default.instancePath,(0,de.strConcat)(Kr.default.instancePath,i)],[Kr.default.parentData,s.parentData],[Kr.default.parentDataProperty,s.parentDataProperty],[Kr.default.rootData,Kr.default.rootData]];s.opts.dynamicRef&&l.push([Kr.default.dynamicAnchors,Kr.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 xD=(0,de._)`new RegExp`;function kD({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"?xD:(0,_D.useFunc)(t,o)}(${r}, ${n})`})}ne.usePattern=kD;function ED(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:tp.Type.Num},i),e.if((0,de.not)(i),a)})}}ne.validateArray=ED;function TD(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,tp.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=TD});var pR=P(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.validateKeywordUsage=Yt.validSchemaType=Yt.funcKeywordCode=Yt.macroKeywordCode=void 0;var Be=j(),An=mr(),AD=bt(),MD=ls();function $D(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=fR(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))}Yt.macroKeywordCode=$D;function ID(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;zD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=fR(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&&lR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&lR(t),g(()=>OD(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,AD.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)}}Yt.funcKeywordCode=ID;function lR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Be._)`${n.parentData}[${n.parentDataProperty}]`))}function OD(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,MD.extendErrors)(t)},()=>t.error())}function zD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function fR(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 ND(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")}Yt.validSchemaType=ND;function DD({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)}}Yt.validateKeywordUsage=DD});var mR=P(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.extendSubschemaMode=Jr.extendSubschemaData=Jr.getSubschema=void 0;var Xt=j(),hR=B();function LD(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,Xt._)`${t.schemaPath}${(0,Xt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Xt._)`${t.schemaPath}${(0,Xt.getProperty)(e)}${(0,Xt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,hR.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')}Jr.getSubschema=LD;function jD(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,Xt._)`${e.data}${(0,Xt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Xt.str)`${u}${(0,hR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Xt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Xt.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]}}Jr.extendSubschemaData=jD;function FD(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}Jr.extendSubschemaMode=FD});var op=P((m3,gR)=>{"use strict";gR.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 vR=P((g3,yR)=>{"use strict";var Yr=yR.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(){};Ac(e,n,o,t,"",t)};Yr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Yr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Yr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Yr.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 Ac(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 Yr.arrayKeywords)for(var f=0;f<l.length;f++)Ac(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Yr.propsKeywords){if(l&&typeof l=="object")for(var p in l)Ac(t,e,r,l[p],o+"/"+d+"/"+UD(p),i,o,d,n,p)}else(d in Yr.keywords||t.allKeys&&!(d in Yr.skipKeywords))&&Ac(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function UD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ps=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 qD=B(),HD=op(),GD=vR(),ZD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function BD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ip(t):e?_R(t)<=e:!1}nt.inlineRef=BD;var WD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ip(t){for(let e in t){if(WD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ip)||typeof r=="object"&&ip(r))return!0}return!1}function _R(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,qD.eachItem)(t[r],n=>e+=_R(n)),e===1/0))return 1/0}return e}function SR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return wR(t,n)}nt.getFullPath=SR;function wR(t,e){return t.serialize(e).split("#")[0]+"#"}nt._getFullPath=wR;var VD=/#\/?$/;function Mo(t){return t?t.replace(VD,""):""}nt.normalizeId=Mo;function KD(t,e,r){return r=Mo(r),t.resolve(e,r)}nt.resolveUrl=KD;var JD=/^[a-z_][-a-z0-9._]*$/i;function YD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=SR(n,o,!1),a={},c=new Set;return GD(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(!JD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!HD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}nt.getSchemaRefs=YD});var gs=P(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.getData=Xr.KeywordCxt=Xr.validateFunctionCode=void 0;var xR=tR(),bR=fs(),ap=Yf(),Mc=fs(),XD=cR(),ms=pR(),sp=mR(),A=j(),z=mr(),QD=ps(),gr=B(),hs=ls();function eL(t){if(TR(t)&&(AR(t),ER(t))){nL(t);return}kR(t,()=>(0,xR.topBoolOrEmptySchema)(t))}Xr.validateFunctionCode=eL;function kR({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"; ${RR(r,o)}`),rL(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${tL(o)}`,n.$async,()=>t.code(RR(r,o)).code(i))}function tL(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 rL(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 nL(t){let{schema:e,opts:r,gen:n}=t;kR(t,()=>{r.$comment&&e.$comment&&$R(t),cL(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&oL(t),MR(t),lL(t)})}function oL(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 RR(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 iL(t,e){if(TR(t)&&(AR(t),ER(t))){sL(t,e);return}(0,xR.boolOrEmptySchema)(t,e)}function ER({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 TR(t){return typeof t.schema!="boolean"}function sL(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&$R(t),uL(t),dL(t);let i=n.const("_errs",z.default.errors);MR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function AR(t){(0,gr.checkUnknownRules)(t),aL(t)}function MR(t,e){if(t.opts.jtd)return CR(t,[],!1,e);let r=(0,bR.getSchemaTypes)(t.schema),n=(0,bR.coerceAndCheckDataType)(t,r);CR(t,r,!n,e)}function aL(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,gr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function cL(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,gr.checkStrictMode)(t,"default is ignored in the schema root")}function uL(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,QD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function dL(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function $R({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 lL(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&&fL(t),e.return((0,A._)`${z.default.errors} === 0`))}function fL({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 CR(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,gr.schemaHasRulesButRef)(i,d))){o.block(()=>OR(t,"$ref",d.all.$ref.definition));return}c.jtd||pL(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,ap.shouldUseGroup)(i,f)&&(f.type?(o.if((0,Mc.checkDataType)(f.type,s,c.strictNumbers)),PR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,Mc.reportTypeError)(t)),o.endIf()):PR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function PR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,XD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,ap.shouldUseRule)(n,i)&&OR(t,i.keyword,i.definition,e.type)})}function pL(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(hL(t,e),t.opts.allowUnionTypes||mL(t,e),gL(t,t.dataTypes))}function hL(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{IR(t.dataTypes,r)||cp(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),vL(t,e)}}function mL(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&cp(t,"use allowUnionTypes to allow union type keyword")}function gL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,ap.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>yL(e,s))&&cp(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function yL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function IR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function vL(t,e){let r=[];for(let n of t.dataTypes)IR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function cp(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,gr.checkStrictMode)(t,e,t.opts.strictTypes)}var $c=class{constructor(e,r,n){if((0,ms.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,gr.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",zR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,ms.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?hs.reportExtraError:hs.reportError)(this,this.def.error,r)}$dataError(){(0,hs.reportError)(this,this.def.$dataError||hs.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,hs.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,Mc.checkDataTypes)(c,r,i.opts.strictNumbers,Mc.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,sp.getSubschema)(this.it,e);(0,sp.extendSubschemaData)(n,this.it,e),(0,sp.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return iL(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=gr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=gr.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}};Xr.KeywordCxt=$c;function OR(t,e,r,n){let o=new $c(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,ms.funcKeywordCode)(o,r):"macro"in r?(0,ms.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,ms.funcKeywordCode)(o,r)}var _L=/^\/(?:[^~]|~0|~1)*$/,SL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function zR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!_L.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=SL.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,gr.unescapeJsonPointer)(u))}`,s=(0,A._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Xr.getData=zR});var Ic=P(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var up=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};dp.default=up});var ys=P(pp=>{"use strict";Object.defineProperty(pp,"__esModule",{value:!0});var lp=ps(),fp=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,lp.resolveUrl)(e,r,n),this.missingSchema=(0,lp.normalizeId)((0,lp.getFullPath)(e,this.missingRef))}};pp.default=fp});var zc=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(),wL=Ic(),Mn=mr(),Nt=ps(),NR=B(),bL=gs(),$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 mp(t){let e=DR.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:wL.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,bL.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=mp;function RL(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=xL.call(this,t,r);if(i===void 0){let s=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;s&&(i=new $o({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=CL.call(this,i)}Rt.resolveRef=RL;function CL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:mp.call(this,t)}function DR(t){for(let e of this._compilations)if(PL(e,t))return e}Rt.getCompilingSchema=DR;function PL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function xL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Oc.call(this,t,e)}function Oc(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 hp.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Oc.call(this,t,s);return typeof a?.schema!="object"?void 0:hp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||mp.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 hp.call(this,r,s)}}Rt.resolveSchema=Oc;var kL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function hp(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,NR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!kL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,NR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Oc.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 LR=P((b3,EL)=>{EL.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 vp=P((R3,GR)=>{"use strict";var TL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),FR=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),gp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),UR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),AL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function yp(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var ML=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function jR(t){return t.length=0,!0}function $L(t,e,r){if(t.length){let n=yp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function IL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=$L;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=jR}else{o.push(u);continue}}return o.length&&(a===jR?r.zone=o.join(""):s?n.push(o.join("")):n.push(yp(o))),r.address=n.join(""),r}function qR(t){if(OL(t,":")<2)return{host:t,isIPV6:!1};let e=IL(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 OL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function zL(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 NL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},DL=/[@/?#:]/g,LL=/[@/?#]/g;function HR(t,e){let r=e?LL:DL;return r.lastIndex=0,t.replace(r,n=>NL[n])}function jL(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(gp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&UR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function FL(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(gp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&UR(i)?e+=i:e+="%"+o,r+=2;continue}}AL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function UL(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(gp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function qL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!FR(r)){let n=qR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=HR(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}GR.exports={nonSimpleDomain:ML,recomposeAuthority:qL,reescapeHostDelimiters:HR,normalizePercentEncoding:jL,normalizePathEncoding:FL,escapePreservingEscapes:UL,removeDotSegments:zL,isIPv4:FR,isUUID:TL,normalizeIPv6:qR,stringArrayToHexStripped:yp}});var KR=P((C3,VR)=>{"use strict";var{isUUID:HL}=vp(),GL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,ZL=["http","https","ws","wss","urn","urn:uuid"];function BL(t){return ZL.indexOf(t)!==-1}function _p(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function ZR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function BR(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 WL(t){return t.secure=_p(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function VL(t){if((t.port===(_p(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 KL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(GL);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=Sp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function JL(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=Sp(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 YL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!HL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function XL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var WR={scheme:"http",domainHost:!0,parse:ZR,serialize:BR},QL={scheme:"https",domainHost:WR.domainHost,parse:ZR,serialize:BR},Nc={scheme:"ws",domainHost:!0,parse:WL,serialize:VL},ej={scheme:"wss",domainHost:Nc.domainHost,parse:Nc.parse,serialize:Nc.serialize},tj={scheme:"urn",parse:KL,serialize:JL,skipNormalize:!0},rj={scheme:"urn:uuid",parse:YL,serialize:XL,skipNormalize:!0},Dc={http:WR,https:QL,ws:Nc,wss:ej,urn:tj,"urn:uuid":rj};Object.setPrototypeOf(Dc,null);function Sp(t){return t&&(Dc[t]||Dc[t.toLowerCase()])||void 0}VR.exports={wsIsSecure:_p,SCHEMES:Dc,isValidSchemeName:BL,getSchemeHandler:Sp}});var eC=P((P3,Fc)=>{"use strict";var{normalizeIPv6:nj,removeDotSegments:vs,recomposeAuthority:oj,normalizePercentEncoding:ij,normalizePathEncoding:sj,escapePreservingEscapes:aj,reescapeHostDelimiters:cj,isIPv4:uj,nonSimpleDomain:dj}=vp(),{SCHEMES:lj,getSchemeHandler:YR}=KR();function fj(t,e){return typeof t=="string"?t=_j(t,e):typeof t=="object"&&(t=jc($n(t,e),e)),t}function pj(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Lc(t,n),{parsed:s,malformedAuthorityOrPort:a}=Lc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=XR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function XR(t,e,r,n){let o={};return n||(t=jc($n(t,r),r),e=jc($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=vs(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=vs(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=vs(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=vs(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 hj(t,e,r){let n=JR(t,r),o=JR(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=YR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=ij(r.path):(r.path=aj(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=oj(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=vs(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 mj=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,gj=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,yj=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function vj(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 Lc(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(gj);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(yj);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(mj);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=vj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(uj(n.host)===!1){let f=nj(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=YR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&dj(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=cj(unescape(n.host),i))),n.path&&(n.path=sj(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 jc(t,e){return Lc(t,e).parsed}function _j(t,e){return QR(t,e).normalized}function QR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Lc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function JR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=QR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var wp={SCHEMES:lj,normalize:fj,resolve:pj,resolveComponent:XR,equal:hj,serialize:$n,parse:jc};Fc.exports=wp;Fc.exports.default=wp;Fc.exports.fastUri=wp});var rC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var tC=eC();tC.code='require("ajv/dist/runtime/uri").default';bp.default=tC});var dC=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 Sj=gs();Object.defineProperty(De,"KeywordCxt",{enumerable:!0,get:function(){return Sj.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 wj=Ic(),aC=ys(),bj=Jf(),_s=zc(),Rj=j(),Ss=ps(),Uc=fs(),Cp=B(),nC=LR(),Cj=rC(),cC=(t,e)=>new RegExp(t,e);cC.code="new RegExp";var Pj=["removeAdditional","useDefaults","coerceTypes"],xj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),kj={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."},Ej={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},oC=200;function Tj(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 be=t.strict,qt=(e=t.code)===null||e===void 0?void 0:e.optimize,cn=qt===!0||qt===void 0?1:qt||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:cC,Rr=(o=t.uriResolver)!==null&&o!==void 0?o:Cj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:be)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:be)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:be)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:be)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:be)!==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:oC,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:oC,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:Rr}}var ws=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,...Tj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new Rj.ValueScope({scope:{},prefixes:xj,es5:r,lines:n}),this.logger=zj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,bj.getRules)(),iC.call(this,kj,e,"NOT SUPPORTED"),iC.call(this,Ej,e,"DEPRECATED","warn"),this._metaOpts=Ij.call(this),e.formats&&Mj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&$j.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),Aj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=nC;n==="id"&&(o={...nC},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 aC.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,Ss.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=sC.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new _s.SchemaEnv({schema:{},schemaId:n});if(r=_s.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=sC.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,Ss.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(Dj.call(this,n,r),!r)return(0,Cp.eachItem)(n,i=>Rp.call(this,i)),this;jj.call(this,r);let o={...r,type:(0,Uc.getJSONTypes)(r.type),schemaType:(0,Uc.getJSONTypes)(r.schemaType)};return(0,Cp.eachItem)(n,o.type.length===0?i=>Rp.call(this,i,o):i=>o.type.forEach(s=>Rp.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]=uC(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,Ss.normalizeId)(s||n);let u=Ss.getSchemaRefs.call(this,e,n);return c=new _s.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):_s.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{_s.compileSchema.call(this,e)}finally{this.opts=r}}};ws.ValidationError=wj.default;ws.MissingRefError=aC.default;De.default=ws;function iC(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 sC(t){return t=(0,Ss.normalizeId)(t),this.schemas[t]||this.refs[t]}function Aj(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function Mj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function $j(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 Ij(){let t={...this.opts};for(let e of Pj)delete t[e];return t}var Oj={log(){},warn(){},error(){}};function zj(t){if(t===!1)return Oj;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 Nj=/^[a-z_$][a-z0-9_$:-]*$/i;function Dj(t,e){let{RULES:r}=this;if((0,Cp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Nj.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 Rp(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,Uc.getJSONTypes)(e.type),schemaType:(0,Uc.getJSONTypes)(e.schemaType)}};e.before?Lj.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 Lj(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 jj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=uC(e)),t.validateSchema=this.compile(e,!0))}var Fj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function uC(t){return{anyOf:[t,Fj]}}});var lC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var Uj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Pp.default=Uj});var mC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var qj=ys(),fC=bt(),ot=j(),Oo=mr(),pC=zc(),qc=B(),Hj={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=pC.resolveRef.call(c,u,o,r);if(d===void 0)throw new qj.default(n.opts.uriResolver,o,r);if(d instanceof pC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Hc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Hc(t,(0,ot._)`${h}.validate`,u,u.$async)}function f(h){let m=hC(t,h);Hc(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 hC(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=hC;function Hc(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,fC.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,fC.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=qc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,ot._)`${h}.evaluated.props`);i.props=qc.mergeEvaluated.props(o,v,i.props,ot.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=qc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,ot._)`${h}.evaluated.items`);i.items=qc.mergeEvaluated.items(o,v,i.items,ot.Name)}}}In.callRef=Hc;In.default=Hj});var gC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var Gj=lC(),Zj=mC(),Bj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Gj.default,Zj.default];xp.default=Bj});var yC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var Gc=j(),Qr=Gc.operators,Zc={maximum:{okStr:"<=",ok:Qr.LTE,fail:Qr.GT},minimum:{okStr:">=",ok:Qr.GTE,fail:Qr.LT},exclusiveMaximum:{okStr:"<",ok:Qr.LT,fail:Qr.GTE},exclusiveMinimum:{okStr:">",ok:Qr.GT,fail:Qr.LTE}},Wj={message:({keyword:t,schemaCode:e})=>(0,Gc.str)`must be ${Zc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Gc._)`{comparison: ${Zc[t].okStr}, limit: ${e}}`},Vj={keyword:Object.keys(Zc),type:"number",schemaType:"number",$data:!0,error:Wj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Gc._)`${r} ${Zc[e].fail} ${n} || isNaN(${r})`)}};kp.default=Vj});var vC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var bs=j(),Kj={message:({schemaCode:t})=>(0,bs.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,bs._)`{multipleOf: ${t}}`},Jj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Kj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,bs._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,bs._)`${s} !== parseInt(${s})`;t.fail$data((0,bs._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};Ep.default=Jj});var SC=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});function _C(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}Tp.default=_C;_C.code='require("ajv/dist/runtime/ucs2length").default'});var wC=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var On=j(),Yj=B(),Xj=SC(),Qj={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}}`},e1={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Qj,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,Yj.useFunc)(t.gen,Xj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};Ap.default=e1});var bC=P(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var t1=bt(),r1=B(),zo=j(),n1={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},o1={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n1,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,r1.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,t1.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};Mp.default=o1});var RC=P($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var Rs=j(),i1={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Rs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Rs._)`{limit: ${t}}`},s1={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:i1,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Rs.operators.GT:Rs.operators.LT;t.fail$data((0,Rs._)`Object.keys(${r}).length ${o} ${n}`)}};$p.default=s1});var CC=P(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var Cs=bt(),Ps=j(),a1=B(),c1={message:({params:{missingProperty:t}})=>(0,Ps.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Ps._)`{missingProperty: ${t}}`},u1={keyword:"required",type:"object",schemaType:"array",$data:!0,error:c1,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,a1.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(Ps.nil,l);else for(let p of r)(0,Cs.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,Cs.checkMissingProp)(t,r,p)),(0,Cs.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,Cs.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,Cs.propertyInData)(e,o,p,a.ownProperties)),e.if((0,Ps.not)(h),()=>{t.error(),e.break()})},Ps.nil)}}};Ip.default=u1});var PC=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var xs=j(),d1={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,xs.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,xs._)`{limit: ${t}}`},l1={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:d1,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?xs.operators.GT:xs.operators.LT;t.fail$data((0,xs._)`${r}.length ${o} ${n}`)}};Op.default=l1});var Bc=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var xC=op();xC.code='require("ajv/dist/runtime/equal").default';zp.default=xC});var kC=P(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var Np=fs(),Le=j(),f1=B(),p1=Bc(),h1={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}}`},m1={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:h1,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,Np.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,Np.checkDataTypes)(u,g,a.opts.strictNumbers,Np.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,f1.useFunc)(e,p1.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)})))}}};Dp.default=m1});var EC=P(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var Lp=j(),g1=B(),y1=Bc(),v1={message:"must be equal to constant",params:({schemaCode:t})=>(0,Lp._)`{allowedValue: ${t}}`},_1={keyword:"const",$data:!0,error:v1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Lp._)`!${(0,g1.useFunc)(e,y1.default)}(${r}, ${o})`):t.fail((0,Lp._)`${i} !== ${r}`)}};jp.default=_1});var TC=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var ks=j(),S1=B(),w1=Bc(),b1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,ks._)`{allowedValues: ${t}}`},R1={keyword:"enum",schemaType:"array",$data:!0,error:b1,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,S1.useFunc)(e,w1.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,ks.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,ks._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,ks._)`${u()}(${r}, ${p}[${h}])`:(0,ks._)`${r} === ${m}`}}};Fp.default=R1});var AC=P(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var C1=yC(),P1=vC(),x1=wC(),k1=bC(),E1=RC(),T1=CC(),A1=PC(),M1=kC(),$1=EC(),I1=TC(),O1=[C1.default,P1.default,x1.default,k1.default,E1.default,T1.default,A1.default,M1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},$1.default,I1.default];Up.default=O1});var Hp=P(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.validateAdditionalItems=void 0;var zn=j(),qp=B(),z1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},N1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:z1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,qp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}MC(t,n)}};function MC(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,qp.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:qp.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Es.validateAdditionalItems=MC;Es.default=N1});var Gp=P(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});Ts.validateTuple=void 0;var $C=j(),Wc=B(),D1=bt(),L1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return IC(t,"additionalItems",e);r.items=!0,!(0,Wc.alwaysValidSchema)(r,e)&&t.ok((0,D1.validateArray)(t))}};function IC(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=Wc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,$C._)`${i}.length`);r.forEach((l,f)=>{(0,Wc.alwaysValidSchema)(a,l)||(n.if((0,$C._)`${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,Wc.checkStrictMode)(a,g,f.strictTuples)}}}Ts.validateTuple=IC;Ts.default=L1});var OC=P(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var j1=Gp(),F1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,j1.validateTuple)(t,"items")};Zp.default=F1});var NC=P(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var zC=j(),U1=B(),q1=bt(),H1=Hp(),G1={message:({params:{len:t}})=>(0,zC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zC._)`{limit: ${t}}`},Z1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:G1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,U1.alwaysValidSchema)(n,e)&&(o?(0,H1.validateAdditionalItems)(t,o):t.ok((0,q1.validateArray)(t)))}};Bp.default=Z1});var DC=P(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var Ct=j(),Vc=B(),B1={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}}`},W1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:B1,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,Vc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Vc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Vc.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:Vc.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)))}}};Wp.default=W1});var FC=P(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.validateSchemaDeps=Qt.validatePropertyDeps=Qt.error=void 0;var Vp=j(),V1=B(),As=bt();Qt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Vp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Vp._)`{property: ${t},
5
+ || ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function TD({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function np(t,e,r,n=Ao.Correct){let o=n===Ao.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===Ao.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=np;function op(t,e,r,n){if(t.length===1)return np(t[0],e,r,n);let o,i=(0,pR.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,np(s,e,r,n));return o}qe.checkDataTypes=op;var AD={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function ip(t){let e=MD(t);(0,CD.reportError)(e,AD)}qe.reportTypeError=ip;function MD(t){let{gen:e,data:r,schema:n}=t,o=(0,pR.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var yR=P(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});Ic.assignDefaults=void 0;var Mo=j(),$D=B();function ID(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)gR(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>gR(t,i,o.default))}Ic.assignDefaults=ID;function gR(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Mo._)`${i}${(0,Mo.getProperty)(e)}`;if(o){(0,$D.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Mo._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Mo._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Mo._)`${a} = ${(0,Mo.stringify)(r)}`)}});var Rt=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(),sp=B(),Jr=gr(),OD=B();function zD(t,e){let{gen:r,data:n,it:o}=t;r.if(cp(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}ne.checkReportMissingProp=zD;function ND({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(cp(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}ne.checkMissingProp=ND;function DD(t,e){t.setParams({missingProperty:e},!0),t.error()}ne.reportMissingProp=DD;function vR(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=vR;function ap(t,e,r){return(0,de._)`${vR(t)}.call(${e}, ${r})`}ne.isOwnProperty=ap;function LD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${ap(t,e,r)}`:o}ne.propertyInData=LD;function cp(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(ap(t,e,r))):o}ne.noPropertyInData=cp;function _R(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ne.allSchemaProperties=_R;function jD(t,e){return _R(e).filter(r=>!(0,sp.alwaysValidSchema)(t,e[r]))}ne.schemaProperties=jD;function FD({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=[[Jr.default.instancePath,(0,de.strConcat)(Jr.default.instancePath,i)],[Jr.default.parentData,s.parentData],[Jr.default.parentDataProperty,s.parentDataProperty],[Jr.default.rootData,Jr.default.rootData]];s.opts.dynamicRef&&l.push([Jr.default.dynamicAnchors,Jr.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=FD;var UD=(0,de._)`new RegExp`;function qD({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"?UD:(0,OD.useFunc)(t,o)}(${r}, ${n})`})}ne.usePattern=qD;function HD(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:sp.Type.Num},i),e.if((0,de.not)(i),a)})}}ne.validateArray=HD;function GD(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,sp.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=GD});var bR=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateKeywordUsage=Xt.validSchemaType=Xt.funcKeywordCode=Xt.macroKeywordCode=void 0;var Be=j(),Mn=gr(),ZD=Rt(),BD=ps();function WD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=wR(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))}Xt.macroKeywordCode=WD;function VD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;JD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=wR(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(()=>KD(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?Mn.default.this:Mn.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Be._)`${v}${(0,ZD.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)}}Xt.funcKeywordCode=VD;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 KD(t,e){let{gen:r}=t;r.if((0,Be._)`Array.isArray(${e})`,()=>{r.assign(Mn.default.vErrors,(0,Be._)`${Mn.default.vErrors} === null ? ${e} : ${Mn.default.vErrors}.concat(${e})`).assign(Mn.default.errors,(0,Be._)`${Mn.default.vErrors}.length`),(0,BD.extendErrors)(t)},()=>t.error())}function JD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function wR(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 YD(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")}Xt.validSchemaType=YD;function XD({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)}}Xt.validateKeywordUsage=XD});var CR=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.extendSubschemaMode=Yr.extendSubschemaData=Yr.getSubschema=void 0;var Qt=j(),RR=B();function QD(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,Qt._)`${t.schemaPath}${(0,Qt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Qt._)`${t.schemaPath}${(0,Qt.getProperty)(e)}${(0,Qt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,RR.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Yr.getSubschema=QD;function eL(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,Qt._)`${e.data}${(0,Qt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Qt.str)`${u}${(0,RR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Qt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Qt.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]}}Yr.extendSubschemaData=eL;function tL(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}Yr.extendSubschemaMode=tL});var up=P((z3,PR)=>{"use strict";PR.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 ER=P((N3,xR)=>{"use strict";var Xr=xR.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(){};Oc(e,n,o,t,"",t)};Xr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Xr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Xr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Xr.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 Oc(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 Xr.arrayKeywords)for(var f=0;f<l.length;f++)Oc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Xr.propsKeywords){if(l&&typeof l=="object")for(var p in l)Oc(t,e,r,l[p],o+"/"+d+"/"+rL(p),i,o,d,n,p)}else(d in Xr.keywords||t.allKeys&&!(d in Xr.skipKeywords))&&Oc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function rL(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ms=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 nL=B(),oL=up(),iL=ER(),sL=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function aL(t,e=!0){return typeof t=="boolean"?!0:e===!0?!dp(t):e?kR(t)<=e:!1}nt.inlineRef=aL;var cL=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function dp(t){for(let e in t){if(cL.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(dp)||typeof r=="object"&&dp(r))return!0}return!1}function kR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!sL.has(r)&&(typeof t[r]=="object"&&(0,nL.eachItem)(t[r],n=>e+=kR(n)),e===1/0))return 1/0}return e}function TR(t,e="",r){r!==!1&&(e=$o(e));let n=t.parse(e);return AR(t,n)}nt.getFullPath=TR;function AR(t,e){return t.serialize(e).split("#")[0]+"#"}nt._getFullPath=AR;var uL=/#\/?$/;function $o(t){return t?t.replace(uL,""):""}nt.normalizeId=$o;function dL(t,e,r){return r=$o(r),t.resolve(e,r)}nt.resolveUrl=dL;var lL=/^[a-z_][-a-z0-9._]*$/i;function fL(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=$o(t[r]||e),i={"":o},s=TR(n,o,!1),a={},c=new Set;return iL(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=$o(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!==$o(m)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=m),b}function w(b){if(typeof b=="string"){if(!lL.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!oL(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}nt.getSchemaRefs=fL});var vs=P(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.getData=Qr.KeywordCxt=Qr.validateFunctionCode=void 0;var zR=dR(),MR=hs(),fp=rp(),zc=hs(),pL=yR(),ys=bR(),lp=CR(),A=j(),z=gr(),hL=ms(),yr=B(),gs=ps();function mL(t){if(LR(t)&&(jR(t),DR(t))){vL(t);return}NR(t,()=>(0,zR.topBoolOrEmptySchema)(t))}Qr.validateFunctionCode=mL;function NR({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"; ${$R(r,o)}`),yL(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${gL(o)}`,n.$async,()=>t.code($R(r,o)).code(i))}function gL(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 yL(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 vL(t){let{schema:e,opts:r,gen:n}=t;NR(t,()=>{r.$comment&&e.$comment&&UR(t),RL(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&_L(t),FR(t),xL(t)})}function _L(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 $R(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 SL(t,e){if(LR(t)&&(jR(t),DR(t))){wL(t,e);return}(0,zR.boolOrEmptySchema)(t,e)}function DR({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 LR(t){return typeof t.schema!="boolean"}function wL(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&UR(t),CL(t),PL(t);let i=n.const("_errs",z.default.errors);FR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function jR(t){(0,yr.checkUnknownRules)(t),bL(t)}function FR(t,e){if(t.opts.jtd)return IR(t,[],!1,e);let r=(0,MR.getSchemaTypes)(t.schema),n=(0,MR.coerceAndCheckDataType)(t,r);IR(t,r,!n,e)}function bL(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,yr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function RL(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,yr.checkStrictMode)(t,"default is ignored in the schema root")}function CL(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,hL.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function PL(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function UR({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 xL(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 IR(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,yr.schemaHasRulesButRef)(i,d))){o.block(()=>HR(t,"$ref",d.all.$ref.definition));return}c.jtd||kL(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,fp.shouldUseGroup)(i,f)&&(f.type?(o.if((0,zc.checkDataType)(f.type,s,c.strictNumbers)),OR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,zc.reportTypeError)(t)),o.endIf()):OR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function OR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,pL.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,fp.shouldUseRule)(n,i)&&HR(t,i.keyword,i.definition,e.type)})}function kL(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(TL(t,e),t.opts.allowUnionTypes||AL(t,e),ML(t,t.dataTypes))}function TL(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{qR(t.dataTypes,r)||pp(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),IL(t,e)}}function AL(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&pp(t,"use allowUnionTypes to allow union type keyword")}function ML(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,fp.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>$L(e,s))&&pp(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function $L(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function qR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function IL(t,e){let r=[];for(let n of t.dataTypes)qR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function pp(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,yr.checkStrictMode)(t,e,t.opts.strictTypes)}var Nc=class{constructor(e,r,n){if((0,ys.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,yr.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",GR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,ys.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?gs.reportExtraError:gs.reportError)(this,this.def.error,r)}$dataError(){(0,gs.reportError)(this,this.def.$dataError||gs.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,gs.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,zc.checkDataTypes)(c,r,i.opts.strictNumbers,zc.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,lp.getSubschema)(this.it,e);(0,lp.extendSubschemaData)(n,this.it,e),(0,lp.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return SL(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=yr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=yr.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}};Qr.KeywordCxt=Nc;function HR(t,e,r,n){let o=new Nc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,ys.funcKeywordCode)(o,r):"macro"in r?(0,ys.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,ys.funcKeywordCode)(o,r)}var OL=/^\/(?:[^~]|~0|~1)*$/,zL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function GR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!OL.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=zL.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,yr.unescapeJsonPointer)(u))}`,s=(0,A._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Qr.getData=GR});var Dc=P(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var hp=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};mp.default=hp});var _s=P(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var gp=ms(),yp=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,gp.resolveUrl)(e,r,n),this.missingSchema=(0,gp.normalizeId)((0,gp.getFullPath)(e,this.missingRef))}};vp.default=yp});var jc=P(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.resolveSchema=Ct.getCompilingSchema=Ct.resolveRef=Ct.compileSchema=Ct.SchemaEnv=void 0;var zt=j(),NL=Dc(),$n=gr(),Nt=ms(),ZR=B(),DL=vs(),Io=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={}}};Ct.SchemaEnv=Io;function Sp(t){let e=BR.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:NL.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:$n.default.data,parentData:$n.default.parentData,parentDataProperty:$n.default.parentDataProperty,dataNames:[$n.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($n.default.scope)}return ${l}`,this.opts.code.process&&(d=this.opts.code.process(d,t));let p=new Function(`${$n.default.self}`,`${$n.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)}}Ct.compileSchema=Sp;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=UL.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 Io({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=jL.call(this,i)}Ct.resolveRef=LL;function jL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Sp.call(this,t)}function BR(t){for(let e of this._compilations)if(FL(e,t))return e}Ct.getCompilingSchema=BR;function FL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function UL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Lc.call(this,t,e)}function Lc(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 _p.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Lc.call(this,t,s);return typeof a?.schema!="object"?void 0:_p.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||Sp.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 Io({schema:a,schemaId:c,root:t,baseId:o})}return _p.call(this,r,s)}}Ct.resolveSchema=Lc;var qL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function _p(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,ZR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!qL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,ZR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Lc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Io({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var WR=P((q3,HL)=>{HL.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 Rp=P((H3,QR)=>{"use strict";var GL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),KR=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),wp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),JR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),ZL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function bp(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 BL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function VR(t){return t.length=0,!0}function WL(t,e,r){if(t.length){let n=bp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function VL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=WL;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=VR}else{o.push(u);continue}}return o.length&&(a===VR?r.zone=o.join(""):s?n.push(o.join("")):n.push(bp(o))),r.address=n.join(""),r}function YR(t){if(KL(t,":")<2)return{host:t,isIPV6:!1};let e=VL(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 KL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function JL(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 YL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},XL=/[@/?#:]/g,QL=/[@/?#]/g;function XR(t,e){let r=e?QL:XL;return r.lastIndex=0,t.replace(r,n=>YL[n])}function ej(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(wp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&JR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function tj(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(wp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&JR(i)?e+=i:e+="%"+o,r+=2;continue}}ZL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function rj(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(wp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function nj(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!KR(r)){let n=YR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=XR(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}QR.exports={nonSimpleDomain:BL,recomposeAuthority:nj,reescapeHostDelimiters:XR,normalizePercentEncoding:ej,normalizePathEncoding:tj,escapePreservingEscapes:rj,removeDotSegments:JL,isIPv4:KR,isUUID:GL,normalizeIPv6:YR,stringArrayToHexStripped:bp}});var oC=P((G3,nC)=>{"use strict";var{isUUID:oj}=Rp(),ij=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,sj=["http","https","ws","wss","urn","urn:uuid"];function aj(t){return sj.indexOf(t)!==-1}function Cp(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 eC(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function tC(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 cj(t){return t.secure=Cp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function uj(t){if((t.port===(Cp(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 dj(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(ij);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,i=Pp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function lj(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),o=`${r}:${e.nid||n}`,i=Pp(o);i&&(t=i.serialize(t,e));let s=t,a=t.nss;return s.path=`${n||e.nid}:${a}`,e.skipEscape=!0,s}function fj(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!oj(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function pj(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var rC={scheme:"http",domainHost:!0,parse:eC,serialize:tC},hj={scheme:"https",domainHost:rC.domainHost,parse:eC,serialize:tC},Fc={scheme:"ws",domainHost:!0,parse:cj,serialize:uj},mj={scheme:"wss",domainHost:Fc.domainHost,parse:Fc.parse,serialize:Fc.serialize},gj={scheme:"urn",parse:dj,serialize:lj,skipNormalize:!0},yj={scheme:"urn:uuid",parse:fj,serialize:pj,skipNormalize:!0},Uc={http:rC,https:hj,ws:Fc,wss:mj,urn:gj,"urn:uuid":yj};Object.setPrototypeOf(Uc,null);function Pp(t){return t&&(Uc[t]||Uc[t.toLowerCase()])||void 0}nC.exports={wsIsSecure:Cp,SCHEMES:Uc,isValidSchemeName:aj,getSchemeHandler:Pp}});var uC=P((Z3,Gc)=>{"use strict";var{normalizeIPv6:vj,removeDotSegments:Ss,recomposeAuthority:_j,normalizePercentEncoding:Sj,normalizePathEncoding:wj,escapePreservingEscapes:bj,reescapeHostDelimiters:Rj,isIPv4:Cj,nonSimpleDomain:Pj}=Rp(),{SCHEMES:xj,getSchemeHandler:sC}=oC();function Ej(t,e){return typeof t=="string"?t=Oj(t,e):typeof t=="object"&&(t=Hc(In(t,e),e)),t}function kj(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=qc(t,n),{parsed:s,malformedAuthorityOrPort:a}=qc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=aC(o,s,n,!0);return n.skipEscape=!0,In(c,n)}function aC(t,e,r,n){let o={};return n||(t=Hc(In(t,r),r),e=Hc(In(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=Ss(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=Ss(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=Ss(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=Ss(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 Tj(t,e,r){let n=iC(t,r),o=iC(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function In(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=sC(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=Sj(r.path):(r.path=bj(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=_j(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=Ss(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 Aj=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,Mj=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,$j=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function Ij(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 qc(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(Mj);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match($j);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(Aj);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=Ij(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(Cj(n.host)===!1){let f=vj(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=sC(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&Pj(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=Rj(unescape(n.host),i))),n.path&&(n.path=wj(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 Hc(t,e){return qc(t,e).parsed}function Oj(t,e){return cC(t,e).normalized}function cC(t,e){let{parsed:r,malformedAuthorityOrPort:n}=qc(t,e);return{normalized:n?t:In(r,e),malformedAuthorityOrPort:n}}function iC(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=cC(t,e);return n?void 0:r}if(typeof t=="object")return In(t,e)}var xp={SCHEMES:xj,normalize:Ej,resolve:kj,resolveComponent:aC,equal:Tj,serialize:In,parse:Hc};Gc.exports=xp;Gc.exports.default=xp;Gc.exports.fastUri=xp});var lC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var dC=uC();dC.code='require("ajv/dist/runtime/uri").default';Ep.default=dC});var _C=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 zj=vs();Object.defineProperty(De,"KeywordCxt",{enumerable:!0,get:function(){return zj.KeywordCxt}});var Oo=j();Object.defineProperty(De,"_",{enumerable:!0,get:function(){return Oo._}});Object.defineProperty(De,"str",{enumerable:!0,get:function(){return Oo.str}});Object.defineProperty(De,"stringify",{enumerable:!0,get:function(){return Oo.stringify}});Object.defineProperty(De,"nil",{enumerable:!0,get:function(){return Oo.nil}});Object.defineProperty(De,"Name",{enumerable:!0,get:function(){return Oo.Name}});Object.defineProperty(De,"CodeGen",{enumerable:!0,get:function(){return Oo.CodeGen}});var Nj=Dc(),gC=_s(),Dj=tp(),ws=jc(),Lj=j(),bs=ms(),Zc=hs(),Tp=B(),fC=WR(),jj=lC(),yC=(t,e)=>new RegExp(t,e);yC.code="new RegExp";var Fj=["removeAdditional","useDefaults","coerceTypes"],Uj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),qj={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."},Hj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},pC=200;function Gj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,R,_,C,I,ee,pe;let be=t.strict,qt=(e=t.code)===null||e===void 0?void 0:e.optimize,un=qt===!0||qt===void 0?1:qt||0,pt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:yC,Cr=(o=t.uriResolver)!==null&&o!==void 0?o:jj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:be)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:be)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:be)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:be)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:be)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:un,regExp:pt}:{optimize:un,regExp:pt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:pC,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:pC,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:(ee=t.unicodeRegExp)!==null&&ee!==void 0?ee:!0,int32range:(pe=t.int32range)!==null&&pe!==void 0?pe:!0,uriResolver:Cr}}var Rs=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,...Gj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new Lj.ValueScope({scope:{},prefixes:Uj,es5:r,lines:n}),this.logger=Jj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,Dj.getRules)(),hC.call(this,qj,e,"NOT SUPPORTED"),hC.call(this,Hj,e,"DEPRECATED","warn"),this._metaOpts=Vj.call(this),e.formats&&Bj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&Wj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),Zj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=fC;n==="id"&&(o={...fC},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 gC.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,bs.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=mC.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new ws.SchemaEnv({schema:{},schemaId:n});if(r=ws.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=mC.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,bs.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(Xj.call(this,n,r),!r)return(0,Tp.eachItem)(n,i=>kp.call(this,i)),this;e1.call(this,r);let o={...r,type:(0,Zc.getJSONTypes)(r.type),schemaType:(0,Zc.getJSONTypes)(r.schemaType)};return(0,Tp.eachItem)(n,o.type.length===0?i=>kp.call(this,i,o):i=>o.type.forEach(s=>kp.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]=vC(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,bs.normalizeId)(s||n);let u=bs.getSchemaRefs.call(this,e,n);return c=new ws.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):ws.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{ws.compileSchema.call(this,e)}finally{this.opts=r}}};Rs.ValidationError=Nj.default;Rs.MissingRefError=gC.default;De.default=Rs;function hC(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 mC(t){return t=(0,bs.normalizeId)(t),this.schemas[t]||this.refs[t]}function Zj(){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 Bj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function Wj(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 Vj(){let t={...this.opts};for(let e of Fj)delete t[e];return t}var Kj={log(){},warn(){},error(){}};function Jj(t){if(t===!1)return Kj;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 Yj=/^[a-z_$][a-z0-9_$:-]*$/i;function Xj(t,e){let{RULES:r}=this;if((0,Tp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Yj.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 kp(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,Zc.getJSONTypes)(e.type),schemaType:(0,Zc.getJSONTypes)(e.schemaType)}};e.before?Qj.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 Qj(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 e1(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=vC(e)),t.validateSchema=this.compile(e,!0))}var t1={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function vC(t){return{anyOf:[t,t1]}}});var SC=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var r1={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ap.default=r1});var CC=P(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.callRef=On.getValidate=void 0;var n1=_s(),wC=Rt(),ot=j(),zo=gr(),bC=jc(),Bc=B(),o1={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=bC.resolveRef.call(c,u,o,r);if(d===void 0)throw new n1.default(n.opts.uriResolver,o,r);if(d instanceof bC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Wc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Wc(t,(0,ot._)`${h}.validate`,u,u.$async)}function f(h){let m=RC(t,h);Wc(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 RC(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ot._)`${r.scopeValue("wrapper",{ref:e})}.validate`}On.getValidate=RC;function Wc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?zo.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,wC.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,wC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,ot._)`${h}.errors`;o.assign(zo.default.vErrors,(0,ot._)`${zo.default.vErrors} === null ? ${m} : ${zo.default.vErrors}.concat(${m})`),o.assign(zo.default.errors,(0,ot._)`${zo.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=Bc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,ot._)`${h}.evaluated.props`);i.props=Bc.mergeEvaluated.props(o,v,i.props,ot.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Bc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,ot._)`${h}.evaluated.items`);i.items=Bc.mergeEvaluated.items(o,v,i.items,ot.Name)}}}On.callRef=Wc;On.default=o1});var PC=P(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var i1=SC(),s1=CC(),a1=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",i1.default,s1.default];Mp.default=a1});var xC=P($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var Vc=j(),en=Vc.operators,Kc={maximum:{okStr:"<=",ok:en.LTE,fail:en.GT},minimum:{okStr:">=",ok:en.GTE,fail:en.LT},exclusiveMaximum:{okStr:"<",ok:en.LT,fail:en.GTE},exclusiveMinimum:{okStr:">",ok:en.GT,fail:en.LTE}},c1={message:({keyword:t,schemaCode:e})=>(0,Vc.str)`must be ${Kc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Vc._)`{comparison: ${Kc[t].okStr}, limit: ${e}}`},u1={keyword:Object.keys(Kc),type:"number",schemaType:"number",$data:!0,error:c1,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Vc._)`${r} ${Kc[e].fail} ${n} || isNaN(${r})`)}};$p.default=u1});var EC=P(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var Cs=j(),d1={message:({schemaCode:t})=>(0,Cs.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Cs._)`{multipleOf: ${t}}`},l1={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:d1,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,Cs._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,Cs._)`${s} !== parseInt(${s})`;t.fail$data((0,Cs._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};Ip.default=l1});var TC=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});function kC(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}Op.default=kC;kC.code='require("ajv/dist/runtime/ucs2length").default'});var AC=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var zn=j(),f1=B(),p1=TC(),h1={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,zn.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,zn._)`{limit: ${t}}`},m1={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:h1,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?zn.operators.GT:zn.operators.LT,s=o.opts.unicode===!1?(0,zn._)`${r}.length`:(0,zn._)`${(0,f1.useFunc)(t.gen,p1.default)}(${r})`;t.fail$data((0,zn._)`${s} ${i} ${n}`)}};zp.default=m1});var MC=P(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var g1=Rt(),y1=B(),No=j(),v1={message:({schemaCode:t})=>(0,No.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,No._)`{pattern: ${t}}`},_1={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:v1,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,No._)`new RegExp`:(0,y1.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,No._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,No._)`!${d}`)}else{let c=(0,g1.usePattern)(t,o);t.fail$data((0,No._)`!${c}.test(${r})`)}}};Np.default=_1});var $C=P(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var Ps=j(),S1={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Ps.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Ps._)`{limit: ${t}}`},w1={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:S1,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Ps.operators.GT:Ps.operators.LT;t.fail$data((0,Ps._)`Object.keys(${r}).length ${o} ${n}`)}};Dp.default=w1});var IC=P(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var xs=Rt(),Es=j(),b1=B(),R1={message:({params:{missingProperty:t}})=>(0,Es.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Es._)`{missingProperty: ${t}}`},C1={keyword:"required",type:"object",schemaType:"array",$data:!0,error:R1,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,b1.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(Es.nil,l);else for(let p of r)(0,xs.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,xs.checkMissingProp)(t,r,p)),(0,xs.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,xs.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,xs.propertyInData)(e,o,p,a.ownProperties)),e.if((0,Es.not)(h),()=>{t.error(),e.break()})},Es.nil)}}};Lp.default=C1});var OC=P(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var ks=j(),P1={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ks.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ks._)`{limit: ${t}}`},x1={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:P1,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ks.operators.GT:ks.operators.LT;t.fail$data((0,ks._)`${r}.length ${o} ${n}`)}};jp.default=x1});var Jc=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var zC=up();zC.code='require("ajv/dist/runtime/equal").default';Fp.default=zC});var NC=P(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var Up=hs(),Le=j(),E1=B(),k1=Jc(),T1={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}}`},A1={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:T1,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,Up.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,Up.checkDataTypes)(u,g,a.opts.strictNumbers,Up.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,k1.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)})))}}};qp.default=A1});var DC=P(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var Hp=j(),M1=B(),$1=Jc(),I1={message:"must be equal to constant",params:({schemaCode:t})=>(0,Hp._)`{allowedValue: ${t}}`},O1={keyword:"const",$data:!0,error:I1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Hp._)`!${(0,M1.useFunc)(e,$1.default)}(${r}, ${o})`):t.fail((0,Hp._)`${i} !== ${r}`)}};Gp.default=O1});var LC=P(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var Ts=j(),z1=B(),N1=Jc(),D1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Ts._)`{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,z1.useFunc)(e,N1.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,Ts.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,Ts._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,Ts._)`${u()}(${r}, ${p}[${h}])`:(0,Ts._)`${r} === ${m}`}}};Zp.default=L1});var jC=P(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var j1=xC(),F1=EC(),U1=AC(),q1=MC(),H1=$C(),G1=IC(),Z1=OC(),B1=NC(),W1=DC(),V1=LC(),K1=[j1.default,F1.default,U1.default,q1.default,H1.default,G1.default,Z1.default,B1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},W1.default,V1.default];Bp.default=K1});var Vp=P(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});As.validateAdditionalItems=void 0;var Nn=j(),Wp=B(),J1={message:({params:{len:t}})=>(0,Nn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Nn._)`{limit: ${t}}`},Y1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:J1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Wp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}FC(t,n)}};function FC(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,Nn._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Nn._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,Wp.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,Nn._)`${a} <= ${e.length}`);r.if((0,Nn.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:Wp.Type.Num},u),s.allErrors||r.if((0,Nn.not)(u),()=>r.break())})}}As.validateAdditionalItems=FC;As.default=Y1});var Kp=P(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});Ms.validateTuple=void 0;var UC=j(),Yc=B(),X1=Rt(),Q1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return qC(t,"additionalItems",e);r.items=!0,!(0,Yc.alwaysValidSchema)(r,e)&&t.ok((0,X1.validateArray)(t))}};function qC(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=Yc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,UC._)`${i}.length`);r.forEach((l,f)=>{(0,Yc.alwaysValidSchema)(a,l)||(n.if((0,UC._)`${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,Yc.checkStrictMode)(a,g,f.strictTuples)}}}Ms.validateTuple=qC;Ms.default=Q1});var HC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var eF=Kp(),tF={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,eF.validateTuple)(t,"items")};Jp.default=tF});var ZC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var GC=j(),rF=B(),nF=Rt(),oF=Vp(),iF={message:({params:{len:t}})=>(0,GC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,GC._)`{limit: ${t}}`},sF={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:iF,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,rF.alwaysValidSchema)(n,e)&&(o?(0,oF.validateAdditionalItems)(t,o):t.ok((0,nF.validateArray)(t)))}};Yp.default=sF});var BC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var Pt=j(),Xc=B(),aF={message:({params:{min:t,max:e}})=>e===void 0?(0,Pt.str)`must contain at least ${t} valid item(s)`:(0,Pt.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Pt._)`{minContains: ${t}}`:(0,Pt._)`{minContains: ${t}, maxContains: ${e}}`},cF={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:aF,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,Pt._)`${o}.length`);if(t.setParams({min:s,max:a}),a===void 0&&s===0){(0,Xc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Xc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Xc.alwaysValidSchema)(i,r)){let m=(0,Pt._)`${d} >= ${s}`;a!==void 0&&(m=(0,Pt._)`${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,Pt._)`${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:Xc.Type.Num,compositeRule:!0},m),g()})}function h(m){e.code((0,Pt._)`${m}++`),a===void 0?e.if((0,Pt._)`${m} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Pt._)`${m} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Pt._)`${m} >= ${s}`,()=>e.assign(l,!0)))}}};Xp.default=cF});var KC=P(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.validateSchemaDeps=er.validatePropertyDeps=er.error=void 0;var Qp=j(),uF=B(),$s=Rt();er.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Qp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Qp._)`{property: ${t},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${e},
8
- deps: ${r}}`};var K1={keyword:"dependencies",type:"object",schemaType:"object",error:Qt.error,code(t){let[e,r]=J1(t);LC(t,e),jC(t,r)}};function J1({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 LC(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,As.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,As.checkReportMissingProp)(t,u)}):(r.if((0,Vp._)`${c} && (${(0,As.checkMissingProp)(t,a,i)})`),(0,As.reportMissingProp)(t,i),r.else())}}Qt.validatePropertyDeps=LC;function jC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,V1.alwaysValidSchema)(i,e[a])||(r.if((0,As.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))}Qt.validateSchemaDeps=jC;Qt.default=K1});var qC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var UC=j(),Y1=B(),X1={message:"property name must be valid",params:({params:t})=>(0,UC._)`{propertyName: ${t.propertyName}}`},Q1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:X1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,Y1.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,UC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Kp.default=Q1});var Yp=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var Kc=bt(),Dt=j(),eF=mr(),Jc=B(),tF={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},rF={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:tF,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,Jc.alwaysValidSchema)(s,r))return;let u=(0,Kc.allSchemaProperties)(n.properties),d=(0,Kc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${eF.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,Jc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Kc.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,Kc.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,Jc.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:Jc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Jp.default=rF});var ZC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var nF=gs(),HC=bt(),Xp=B(),GC=Yp(),oF={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&&GC.default.code(new nF.KeywordCxt(i,GC.default,"additionalProperties"));let s=(0,HC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Xp.mergeEvaluated.props(e,(0,Xp.toHash)(s),i.props));let a=s.filter(l=>!(0,Xp.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,HC.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)}}};Qp.default=oF});var KC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var BC=bt(),Yc=j(),WC=B(),VC=B(),iF={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,BC.allSchemaProperties)(r),c=a.filter(m=>(0,WC.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 Yc.Name)&&(i.props=(0,VC.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,WC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Yc._)`${(0,BC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:VC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Yc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Yc.not)(d),()=>e.break())})})}}};eh.default=iF});var JC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var sF=B(),aF={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,sF.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"}};th.default=aF});var YC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var cF=bt(),uF={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:cF.validateUnion,error:{message:"must match a schema in anyOf"}};rh.default=uF});var XC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var Xc=j(),dF=B(),lF={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Xc._)`{passingSchemas: ${t.passing}}`},fF={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:lF,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,dF.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Xc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Xc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Xc.Name)})})}}};nh.default=fF});var QC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var pF=B(),hF={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,pF.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};oh.default=hF});var rP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var Qc=j(),tP=B(),mF={message:({params:t})=>(0,Qc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Qc._)`{failingKeyword: ${t.ifClause}}`},gF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:mF,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,tP.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=eP(n,"then"),i=eP(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,Qc.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,Qc._)`${d}`):t.setParams({ifClause:d})}}}};function eP(t,e){let r=t.schema[e];return r!==void 0&&!(0,tP.alwaysValidSchema)(t,r)}ih.default=gF});var nP=P(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});var yF=B(),vF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,yF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};sh.default=vF});var oP=P(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});var _F=Hp(),SF=OC(),wF=Gp(),bF=NC(),RF=DC(),CF=FC(),PF=qC(),xF=Yp(),kF=ZC(),EF=KC(),TF=JC(),AF=YC(),MF=XC(),$F=QC(),IF=rP(),OF=nP();function zF(t=!1){let e=[TF.default,AF.default,MF.default,$F.default,IF.default,OF.default,PF.default,xF.default,CF.default,kF.default,EF.default];return t?e.push(SF.default,bF.default):e.push(_F.default,wF.default),e.push(RF.default),e}ah.default=zF});var iP=P(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});var Ce=j(),NF={message:({schemaCode:t})=>(0,Ce.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Ce._)`{format: ${t}}`},DF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:NF,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,Ce._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,Ce._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,Ce._)`${m}.type || "string"`).assign(v,(0,Ce._)`${m}.validate`),()=>r.assign(g,(0,Ce._)`"string"`).assign(v,m)),t.fail$data((0,Ce.or)(w(),b()));function w(){return c.strictSchema===!1?Ce.nil:(0,Ce._)`${s} && !${v}`}function b(){let R=d.$async?(0,Ce._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Ce._)`${v}(${n})`,_=(0,Ce._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,Ce._)`${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,Ce.regexpCode)(_):c.code.formats?(0,Ce._)`${c.code.formats}${(0,Ce.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:_,code:C});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Ce._)`${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,Ce._)`await ${v}(${n})`}return typeof g=="function"?(0,Ce._)`${v}(${n})`:(0,Ce._)`${v}.test(${n})`}}}};ch.default=DF});var sP=P(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var LF=iP(),jF=[LF.default];uh.default=jF});var aP=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 uP=P(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});var FF=gC(),UF=AC(),qF=oP(),HF=sP(),cP=aP(),GF=[FF.default,UF.default,(0,qF.default)(),HF.default,cP.metadataVocabulary,cP.contentVocabulary];dh.default=GF});var lP=P(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});eu.DiscrError=void 0;var dP;(function(t){t.Tag="tag",t.Mapping="mapping"})(dP||(eu.DiscrError=dP={}))});var pP=P(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});var Do=j(),lh=lP(),fP=zc(),ZF=ys(),BF=B(),WF={message:({params:{discrError:t,tagName:e}})=>t===lh.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}}`},VF={keyword:"discriminator",type:"object",schemaType:"object",error:WF,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:lh.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:lh.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,BF.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=fP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof fP.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]=_}}}};fh.default=VF});var hP=P((p8,KF)=>{KF.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 hh=P((le,ph)=>{"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 JF=dC(),YF=uP(),XF=pP(),mP=hP(),QF=["/properties"],tu="http://json-schema.org/draft-07/schema",Lo=class extends JF.default{_addVocabularies(){super._addVocabularies(),YF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(XF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(mP,QF):mP;this.addMetaSchema(e,tu,!1),this.refs["http://json-schema.org/schema"]=tu}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(tu)?tu:void 0)}};le.Ajv=Lo;ph.exports=le=Lo;ph.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var eU=gs();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return eU.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 tU=Ic();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return tU.default}});var rU=ys();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return rU.default}})});var RP=P(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.formatNames=tr.fastFormats=tr.fullFormats=void 0;function er(t,e){return{validate:t,compare:e}}tr.fullFormats={date:er(_P,vh),time:er(gh(!0),_h),"date-time":er(gP(!0),wP),"iso-time":er(gh(),SP),"iso-date-time":er(gP(),bP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:cU,"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:mU,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:uU,int32:{type:"number",validate:fU},int64:{type:"number",validate:pU},float:{type:"number",validate:vP},double:{type:"number",validate:vP},password:!0,binary:!0};tr.fastFormats={...tr.fullFormats,date:er(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,vh),time:er(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,_h),"date-time":er(/^\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,wP),"iso-time":er(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,SP),"iso-date-time":er(/^\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,bP),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};tr.formatNames=Object.keys(tr.fullFormats);function nU(t){return t%4===0&&(t%100!==0||t%400===0)}var oU=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,iU=[0,31,28,31,30,31,30,31,31,30,31,30,31];function _P(t){let e=oU.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&&nU(r)?29:iU[n])}function vh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var mh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function gh(t){return function(r){let n=mh.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 _h(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 SP(t,e){if(!(t&&e))return;let r=mh.exec(t),n=mh.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 yh=/t|\s/i;function gP(t){let e=gh(t);return function(n){let o=n.split(yh);return o.length===2&&_P(o[0])&&e(o[1])}}function wP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function bP(t,e){if(!(t&&e))return;let[r,n]=t.split(yh),[o,i]=e.split(yh),s=vh(r,o);if(s!==void 0)return s||_h(n,i)}var sU=/\/|:/,aU=/^(?:[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 cU(t){return sU.test(t)&&aU.test(t)}var yP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function uU(t){return yP.lastIndex=0,yP.test(t)}var dU=-(2**31),lU=2**31-1;function fU(t){return Number.isInteger(t)&&t<=lU&&t>=dU}function pU(t){return Number.isInteger(t)}function vP(){return!0}var hU=/[^\\]\\Z/;function mU(t){if(hU.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var CP=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var gU=hh(),Lt=j(),en=Lt.operators,ru={formatMaximum:{okStr:"<=",ok:en.LTE,fail:en.GT},formatMinimum:{okStr:">=",ok:en.GTE,fail:en.LT},formatExclusiveMaximum:{okStr:"<",ok:en.LT,fail:en.GTE},formatExclusiveMinimum:{okStr:">",ok:en.GT,fail:en.LTE}},yU={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${ru[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${ru[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(ru),type:"string",schemaType:"string",$data:!0,error:yU,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 gU.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}) ${ru[o].fail} 0`}},dependencies:["format"]};var vU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=vU});var EP=P((Ms,kP)=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var Uo=RP(),_U=CP(),Sh=j(),PP=new Sh.Name("fullFormats"),SU=new Sh.Name("fastFormats"),wh=(t,e={keywords:!0})=>{if(Array.isArray(e))return xP(t,e,Uo.fullFormats,PP),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,SU]:[Uo.fullFormats,PP],o=e.formats||Uo.formatNames;return xP(t,o,r,n),e.keywords&&(0,_U.default)(t),t};wh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function xP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,Sh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}kP.exports=Ms=wh;Object.defineProperty(Ms,"__esModule",{value:!0});Ms.default=wh});var nx=P((K8,rx)=>{rx.exports=tx;tx.sync=XU;var QP=Cr("fs");function YU(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 ex(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:YU(e,r)}function tx(t,e,r){QP.stat(t,function(n,o){r(n,n?!1:ex(o,t,e))})}function XU(t,e){return ex(QP.statSync(t),t,e)}});var cx=P((J8,ax)=>{ax.exports=ix;ix.sync=QU;var ox=Cr("fs");function ix(t,e,r){ox.stat(t,function(n,o){r(n,n?!1:sx(o,e))})}function QU(t,e){return sx(ox.statSync(t),e)}function sx(t,e){return t.isFile()&&eq(t,e)}function eq(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 dx=P((X8,ux)=>{var Y8=Cr("fs"),pu;process.platform==="win32"||global.TESTING_WINDOWS?pu=nx():pu=cx();ux.exports=Fh;Fh.sync=tq;function Fh(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){Fh(t,e||{},function(i,s){i?o(i):n(s)})})}pu(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function tq(t,e){try{return pu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var yx=P((Q8,gx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",lx=Cr("path"),rq=Ko?";":":",fx=dx(),px=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),hx=(t,e)=>{let r=e.colon||rq,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}},mx=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=hx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(px(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=lx.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];fx(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)},nq=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=hx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=lx.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(fx.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 px(t)};gx.exports=mx;mx.sync=nq});var _x=P((eY,Uh)=>{"use strict";var vx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Uh.exports=vx;Uh.exports.default=vx});var Rx=P((tY,bx)=>{"use strict";var Sx=Cr("path"),oq=yx(),iq=_x();function wx(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=oq.sync(t.command,{path:r[iq({env:r})],pathExt:e?Sx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=Sx.resolve(o?t.options.cwd:"",s)),s}function sq(t){return wx(t)||wx(t,!0)}bx.exports=sq});var Cx=P((rY,Hh)=>{"use strict";var qh=/([()\][%!^"`<>&|;, *?])/g;function aq(t){return t=t.replace(qh,"^$1"),t}function cq(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(qh,"^$1"),e&&(t=t.replace(qh,"^$1")),t}Hh.exports.command=aq;Hh.exports.argument=cq});var xx=P((nY,Px)=>{"use strict";Px.exports=/^#!(.*)/});var Ex=P((oY,kx)=>{"use strict";var uq=xx();kx.exports=(t="")=>{let e=t.match(uq);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var Ax=P((iY,Tx)=>{"use strict";var Gh=Cr("fs"),dq=Ex();function lq(t){let r=Buffer.alloc(150),n;try{n=Gh.openSync(t,"r"),Gh.readSync(n,r,0,150,0),Gh.closeSync(n)}catch{}return dq(r.toString())}Tx.exports=lq});var Ox=P((sY,Ix)=>{"use strict";var fq=Cr("path"),Mx=Rx(),$x=Cx(),pq=Ax(),hq=process.platform==="win32",mq=/\.(?:com|exe)$/i,gq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function yq(t){t.file=Mx(t);let e=t.file&&pq(t.file);return e?(t.args.unshift(t.file),t.command=e,Mx(t)):t.file}function vq(t){if(!hq)return t;let e=yq(t),r=!mq.test(e);if(t.options.forceShell||r){let n=gq.test(e);t.command=fq.normalize(t.command),t.command=$x.command(t.command),t.args=t.args.map(i=>$x.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 _q(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:vq(n)}Ix.exports=_q});var Dx=P((aY,Nx)=>{"use strict";var Zh=process.platform==="win32";function Bh(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 Sq(t,e){if(!Zh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=zx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function zx(t,e){return Zh&&t===1&&!e.file?Bh(e.original,"spawn"):null}function wq(t,e){return Zh&&t===1&&!e.file?Bh(e.original,"spawnSync"):null}Nx.exports={hookChildProcess:Sq,verifyENOENT:zx,verifyENOENTSync:wq,notFoundError:Bh}});var Fx=P((cY,Jo)=>{"use strict";var Lx=Cr("child_process"),Wh=Ox(),Vh=Dx();function jx(t,e,r){let n=Wh(t,e,r),o=Lx.spawn(n.command,n.args,n.options);return Vh.hookChildProcess(o,n),o}function bq(t,e,r){let n=Wh(t,e,r),o=Lx.spawnSync(n.command,n.args,n.options);return o.error=o.error||Vh.verifyENOENTSync(o.status,n),o}Jo.exports=jx;Jo.exports.spawn=jx;Jo.exports.sync=bq;Jo.exports._parse=Wh;Jo.exports._enoent=Vh});var Bx=P(Jh=>{"use strict";var Hx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,kq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Gx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Eq=/\\([\u000b\u0020-\u00ff])/g,Tq=/([\\"])/g,Zx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Jh.format=Aq;Jh.parse=Mq;function Aq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Zx.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var o,i=Object.keys(e).sort(),s=0;s<i.length;s++){if(o=i[s],!Gx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+Iq(e[o])}return n}function Mq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?$q(t):t;if(typeof e!="string")throw new TypeError("argument string is required to be a string");var r=e.indexOf(";"),n=r!==-1?e.slice(0,r).trim():e.trim();if(!Zx.test(n))throw new TypeError("invalid media type");var o=new Oq(n.toLowerCase());if(r!==-1){var i,s,a;for(Hx.lastIndex=r;s=Hx.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(Eq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function $q(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 Iq(t){var e=String(t);if(Gx.test(e))return e;if(e.length>0&&!kq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(Tq,"\\$1")+'"'}function Oq(t){this.parameters=Object.create(null),this.type=t}});import{logger as x4}from"@hermes/logger";import{logger as cG}from"@hermes/logger";var MT="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(MT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as zH}from"@augmentcode/auggie-v2";import{logger as NH}from"@hermes/logger";import{logger as lA}from"@hermes/logger";import{logger as IT}from"@hermes/logger";function $T(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 Pr(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":$T(t,e,r)?"plugin":"local"}function OT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Zm=IT.child({prefix:"pi-mcp"}),zT="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 NT(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 sa=3e4;function DT(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>=sa?"failed":void 0}default:return}}var Bm="authentication required",LT="Authentication refresh is pending in the backend; retry shortly.",jT="timed out connecting after 30s",FT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",UT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",qT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",HT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",GT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",ZT="Server was not started: its credential is temporarily unavailable. Re-initialize it in a moment.",BT=new Map([["manager_unavailable","retry"],["managed_provider_unavailable","retry"],["refresh_retryable","retry"],["reauth_required","reconnect"],["auth_terminal","reconnect"],["policy_excluded","blocked"],["share_identity_excluded","blocked"]]),WT="Server was not started: this session is not allowed to use it.",VT="Server was not started: this session's Space policy does not allow it.",KT="Server was not started: its shared credential is not available to this session's identity.",JT="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 YT(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)?UT:FT,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",...eA({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}XT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function XT(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=Km(e,a)??QT(e,c);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 Wm(t){switch(t.disposition){case"retry":case"reconnect":case"blocked":return t.disposition;case void 0:return BT.get(t.category);default:return}}function QT(t,e){if(!(t.selectedRegistryConfigIds===void 0||Wm(e)!=="retry"))return{errorMessage:ZT,failureCategory:"transient"}}function Vm(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,...typeof i.disposition=="string"?{disposition:i.disposition}:{}})}t.oauthFailureCategoriesByConfigId=r}function Km(t,e){let r=t.oauthFailureCategoriesByConfigId?.get(e);if(r!==void 0)switch(Wm(r)){case"reconnect":return{errorMessage:GT,failureCategory:"auth_terminal"};case"blocked":return r.category==="share_identity_excluded"?{errorMessage:KT,failureCategory:"share_identity_excluded"}:{errorMessage:r.category==="policy_excluded"?VT:WT,failureCategory:"policy_excluded"};default:return}}function eA(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:JT,failureCategory:"auth_terminal"};let i=Km(e,r);return i!==void 0?i:{errorMessage:o.has(n)?HT:qT,failureCategory:"configuration"}}function tA(t,e){return e!==void 0?e.isAuthError?Bm:e.error:t.status==="initializing"?jT:t.lastError??(t.status==="auth_required"?Bm:void 0)}function Jm(t,e){if(t.targetCredentialProvenance)return t.targetCredentialProvenance.credential;let r=e.statusFailureCategories?.get(t.name);return typeof r=="object"?{revision:r.credentialRevision,domain:r.credentialRevisionDomain}:e.credentialRevisions?.get(t.name)}function rA(t,e,r){if(Jm(t,e)?.domain?.startsWith("recipient:"))return ft(e,t.name).serverGeneration;let n=e.statusFailureCategories?.get(t.name);return r&&typeof n=="object"?n.serverGeneration:void 0}function nA(t,e){let r=DT(t);if(r===void 0)return;let n=NT(e,t.name),o=r==="connected"?OT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:Pr(t,e.pluginServerHosts,e.hostLeases),status:r,transport:t.config.type,tools:t.suppressesProviderDiagnostics?[]:t.tools.map(u=>u.name)},s=t.config.id;s!==void 0&&(i.mcpConfigId=s,e.dynamicallyAddedConfigIds.has(s)&&(i.dynamicallyAdded=!0));let a=Jm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=rA(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?LT:tA(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function oA(t){let e=[];for(let r of t.servers.values()){let n=nA(r,t);n!==void 0&&e.push(n)}return YT(t,e),e}function N(t,e){try{let r=oA(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(zT,o),Zm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Zm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var aa={local:4,registry:3,plugin:2,vfs:1};function Ht(t){return t.hostLeases??=new Map,t.hostLeases}function iA(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 Ym(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 Vu(t,e){let r=iA(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ca(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Ku(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 xr(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=Ht(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?xr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:Vu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ca(t,e,a),c}function Xm(t){let{state:e,name:r,host:n}=t,o=Ht(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:Vu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ca(e,r,s.owner),s}function ci(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=Ht(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=aa[n.kind]>aa[a.owner.kind],f=aa[n.kind]===aa[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Ym(a):void 0;Ku(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Vu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ca(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Ju(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=Ht(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 ua(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ht(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=Ht(e).get(r);if(!s||s.revision!==o||!ai(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Ym(s);if(a)return Ku(e,r,i),s.host=void 0,s.retirement=a,a}function Qm(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=Ht(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?(ca(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=Ht(e),a=s.get(r);return!a||a.revision!==o||!ai(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Ku(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 Ht(t).get(e)}function Yu(t,e,r){let n=Ht(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function eg(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function kr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&eg(t.url)===eg(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 kr(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 Xu(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:Xu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Gt(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:Xu(t.url)===Xu(e.url)}function Qu(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):kr(r,n)}function Ie(t){return/^secret:(private|shared):.+/.test(t)}function ed(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function da(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 sA(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 aA(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 tg(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!ed(e,r):n!==void 0&&e!==n}function rg(t,e,r){return r&&e!==void 0&&t!==void 0&&ed(t,e)}function cA(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!ed(i,n))}function ng(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(aA({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||tg({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&tg({identity:s.domain,...l})?!0:cA({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function uA(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function dA(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 og(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=da(t,e,i),c=da(t,e,s),u=t.servers?.get(e)?.config,d=sA({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=ng({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=rg(a,l,f),g=rg(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=uA({name:e,retiredConfig:d,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,Q,{preserveNameState:R})}let _=ng({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:da(t,e,t.oauthCredentialDomains?.get(e)),currentDomain:da(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"}),dA({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 og(t,e,r,n,"durable")}function li(t,e,r,n){return og(t,e,r,n,"session")}function la(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 Er(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 ig="augment:mcp-oauth-credentials",sg=300*1e3,fA=256,td=lA.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||Er(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Tr(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??Tr(t.domain)}function ag(t,e,r){let n=He(e);return r!==void 0?r===n:Ie(t)||Tr(t)===n}function pA(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function hA(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 mA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function gA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&pA(t.credentialRevisions.get(e),r.credentialRevision)&&mA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function yA(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 vA(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 Ar(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 ir(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function cg(t){Ar(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()??[])ir(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 ug(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=sg)&&ir(t,n)}function _A(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&ir(t,e)}function dg(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 lg(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;Ar(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();ug(e,a);let c=dn(n),u=Ie(c)?`${c}\0${r}`:c,d=s.get(u),l=dg(d?.credential,n.domain);if(typeof l=="string"&&Er(n.revision,l)<=0)return;!d&&s.size>=fA&&_A(e),ir(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&&ir(e,u)},sg),f.expiryTimer.unref?.(),td.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function SA(t,e){Ar(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;Ar(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||ir(e,r)}}function fa(t){let{state:e,domain:r,forceNew:n=!1}=t;Ar(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:SA(e,r),configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0};return e.registryCredentialIntents.set(r,s),i!==void 0&&i.configFingerprint===void 0&&e.stagedOAuthCredentials.set(r,{...i,intentEpoch:s.epoch}),e.pendingRegistryCredentialDomains.add(r),{domain:r,...s}}function fg(t,e){Ar(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)&&ir(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);fa({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function wA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||D(e,r.name)?.owner.kind==="local")return;Ar(e);let n=He(r.id),o=yA(r),i=vA({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=fa({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),bA({state:e,config:r,domain:n}),{domain:n,...s}}function pg(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Ar(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?dg(c.credential,r.domain):void 0,l=a===void 0?void 0:Er(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&Er(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function bA(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)&&Tr(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 RA(t){let{state:e,config:r,pi:n,intent:o}=t,i=e.stagedOAuthCredentials.get(o.domain);if(!i||i.intentEpoch!==o.epoch||i.configFingerprint!==o.configFingerprint||i.requiresEqualRevisionRebind&&!o.allowEqualRevisionRebind)return;e.stagedOAuthCredentials.delete(o.domain),i.requiresEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(ig,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function CA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();ug(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return ir(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&Ie(s.split("\0",1)[0]))return ir(e,s),a}function PA(t){let{config:e,pi:r,buffered:n}=t;td.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),td.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(ig,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function xA(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 kA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=gA(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 EA(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 xA({state:e,config:r,previousConfig:i})}catch(h){throw kA({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),RA({state:e,config:r,pi:n,intent:o});let p=CA({state:e,domain:o.domain,serverName:r.name});return Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&PA({config:r,pi:n,buffered:p}),!0}function Mr(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=wA({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=hA(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 EA({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 UA}from"@augmentcode/auggie-v2";import{homedir as hg}from"node:os";import{sep as TA}from"node:path";var rd=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},AA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,MA=/\\\$\{/g,$A=new Set(["workspaceFolder","augmentToken"]),mg="${workspaceFolder}";function gg(t,e){return t.includes(mg)?t.split(mg).join(e):t}function yg(t,e){return t.includes("${")?t.replace(AA,(n,o,i)=>{if($A.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new rd(o)}).replace(MA,"${"):t}function IA(t){return t.startsWith("~")?t==="~"?hg():t.startsWith("~/")||t.startsWith(`~${TA}`)?hg()+t.slice(1):t:t}function nd(t,e,r){return IA(yg(gg(t,e),r))}function Xn(t,e,r){return yg(gg(t,e),r)}function vg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var OA="$augment-";function zA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(OA)?i:Xn(i,e,r);return n}function Zt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:zA(t.headers,e,r)}}function Bt(t,e){let r=process.env;return{...t,command:nd(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?vg(t.env,e,r):void 0,cwd:t.cwd?nd(t.cwd,e,r):e}}import{readFileSync as DA}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 NA(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:NA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var wg=t=>DA(t,"utf8");function pa(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function _g(t){return pa(t)&&("command"in t||"url"in t)}function id(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function Sg(t,e){return id(t.name)??e}function od(t,e){let r=Qn(t);if(r==="http"||r==="sse")return id(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return id(t.name,t.title,n)??e}function LA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[od(n,String(r)),n]});if(pa(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[od(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(pa(n))return Object.entries(n).map(([o,i])=>{let s=i;return[Sg(s,o),s]})}if(_g(t)){let r=t;return[[od(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(_g))return Object.entries(t).map(([r,n])=>{if(!pa(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[Sg(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 sd(t){return t instanceof Error?t.message:String(t)}function jA(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}": ${sd(i)}`});return}}function FA(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=jA(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}: ${sd(c)}`}),[]}try{return LA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${sd(c)}`}),[]}}function ad(t,e=wg){let r={},n=[];for(let o of t)for(let[i,s]of FA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function cd(t,e=wg){return!t||t.length===0?new Set:new Set(Object.keys(ad(t,e).servers))}var qA=["global","project","local","managed"];function HA(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 GA(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=ad(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 BA(t,e,r){let n=UA.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 GA(qA.map(o=>HA(n,o)))}function to(t,e,r,n){let o=[],i=r!==void 0&&r.length>0,s=i?ZA(r,n,o):BA(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"?Bt(d,t):Zt(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 kg}from"@augmentcode/auggie-v2";import{logger as nM}from"@hermes/logger";import{Type as oM}from"@sinclair/typebox";var ha=Symbol.for("__pi_mcp_state__");function WA(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 VA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function KA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&WA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&VA(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 JA(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&&KA(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 ud(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 ma(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function ga(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()?ud({state:e,configId:r,generation:n}):ma({state:e,configId:r,generation:n}),s),s=>{throw ma({state:e,configId:r,generation:n}),s})}function te(){let t=globalThis;if(t[ha])return JA(t[ha]),t[ha];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[ha]=e,e}var bg=Symbol.for("__hermes_mcp_tool_registry__"),Rg=Symbol.for("__hermes_mcp_tool_server_registry__"),YA=Symbol.for("__hermes_mcp_extension_factory__");function ld(){let t=globalThis;return t[bg]??=new Map,t[bg]}function dd(){let t=globalThis;return t[Rg]??=new Map,t[Rg]}function Cg(t){return ld().get(t)}function $r(t,e){ld().set(t.name,t),e===void 0?dd().delete(t.name):dd().set(t.name,e)}function no(t,e){let r=ld();(e===void 0||r.get(t)===e)&&(r.delete(t),dd().delete(t))}function Pg(t){Reflect.set(t,YA,!0)}function ya(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 XA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function QA(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 eM(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
- `).trim()}function fd(t,e,r){if(t.isError){let o=eM(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=QA(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 xg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ya(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=XA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return fd(o,t.serverName,r)}var tM=/[^a-zA-Z0-9_-]/g;function pd(t){return t.replace(tM,"_")}function rM(t,e){let r=pd(e),n=pd(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var Ir=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=rM(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=`_${pd(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var va=nM.child({prefix:"pi-mcp"});function _a(){return te().toolRegistrationsByPi}function Eg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=oM.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){va.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}va.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)=>xg({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 hd(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),iM(t,e,n,r,o)}function iM(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 Ir(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=Eg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;kg(r,"mcp"),t.registerTool(p),$r(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 sM(t,e){let r=_a(),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)hd(t,n,i,a);let s={generation:o,host:e,map:new Ir(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function md(t,e){let{registration:r,replaced:n}=sM(t,e),o=new Set(r.registeredNames),i=new Ir(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}"`)))||(va.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=Eg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(kg(l,"mcp"),t.registerTool(p),$r(p,s),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),_a().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=_a().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&hd(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&va.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function gd(t,e,r){let n=_a().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)hd(t,n,o,i);return n.byServer.delete(e.name),!0}function Tg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&md(t,r)}import{getToolSource as mM}from"@augmentcode/auggie-v2";import{Type as aM}from"@sinclair/typebox";var cM=!1,Ag=2e4;function uM(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function dM(t){let e=0;for(let r of t.servers.values())e+=lM(r);return e}function lM(t){if(t.status!=="success")return 0;let e=new Ir(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||fM(n.inputSchema)&&(r+=uM(n))}return r}function fM(t){try{return aM.Unsafe(t??{}),!0}catch{return!1}}function pM(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:cM}function hM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:Ag}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:Ag}function Mg(t){return pM(t)?dM(t)>=hM(t):!1}var gM="AUGGIE_ENABLE_TOOL_SEARCH",yM="AUGGIE_DISABLE_TOOL_SEARCH",vM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[gM]==="1"}function yd(t){return process.env[yM]!=="1"&&t.featureFlags?.flags.cliMcpToolSearchAutoEnable===!0}function Or(t){return pi()?!0:yd(t)?t.toolSearchLatched?!0:Mg(t)?(t.toolSearchLatched=!0,!0):!1:!1}function Sa(t){let e=t.getActiveTools(),r=e.filter(n=>!_M(n)||vM.has(n));r.length!==e.length&&t.setActiveTools(r)}function _M(t){return mM(t)==="mcp"}import{setToolSource as jg}from"@augmentcode/auggie-v2";import{logger as jM}from"@hermes/logger";import{Type as Fg}from"@sinclair/typebox";import{logger as SM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},zr={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var $g=SM.child({prefix:"pi-mcp"}),wM=5e3,bM=1,RM=2,CM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),PM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function xM(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 kM(t){return t===bM||typeof t=="string"&&CM.has(t)?"available":t===RM||typeof t=="string"&&PM.has(t)?"opt_in_required":"unknown"}function EM(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:xM(t.auth_type),state:kM(t.state)}}function vd(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 wa(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return wa(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!vd(t,r)):[]}async function Ig(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:zr.UNSPECIFIED}),signal:AbortSignal.timeout(r??wM)});if(!i.ok)return $g.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=EM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return $g.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var TM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",AM=`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 dF={keyword:"dependencies",type:"object",schemaType:"object",error:er.error,code(t){let[e,r]=lF(t);WC(t,e),VC(t,r)}};function lF({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 WC(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,$s.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,$s.checkReportMissingProp)(t,u)}):(r.if((0,Qp._)`${c} && (${(0,$s.checkMissingProp)(t,a,i)})`),(0,$s.reportMissingProp)(t,i),r.else())}}er.validatePropertyDeps=WC;function VC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,uF.alwaysValidSchema)(i,e[a])||(r.if((0,$s.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))}er.validateSchemaDeps=VC;er.default=dF});var YC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var JC=j(),fF=B(),pF={message:"property name must be valid",params:({params:t})=>(0,JC._)`{propertyName: ${t.propertyName}}`},hF={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:pF,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,fF.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,JC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};eh.default=hF});var rh=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var Qc=Rt(),Dt=j(),mF=gr(),eu=B(),gF={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},yF={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:gF,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,eu.alwaysValidSchema)(s,r))return;let u=(0,Qc.allSchemaProperties)(n.properties),d=(0,Qc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${mF.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,eu.schemaRefOrVal)(s,n.properties,"properties");v=(0,Qc.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,Qc.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,eu.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:eu.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};th.default=yF});var eP=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var vF=vs(),XC=Rt(),nh=B(),QC=rh(),_F={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&&QC.default.code(new vF.KeywordCxt(i,QC.default,"additionalProperties"));let s=(0,XC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=nh.mergeEvaluated.props(e,(0,nh.toHash)(s),i.props));let a=s.filter(l=>!(0,nh.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,XC.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)}}};oh.default=_F});var oP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var tP=Rt(),tu=j(),rP=B(),nP=B(),SF={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,tP.allSchemaProperties)(r),c=a.filter(m=>(0,rP.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 tu.Name)&&(i.props=(0,nP.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,rP.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,tu._)`${(0,tP.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:nP.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,tu._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,tu.not)(d),()=>e.break())})})}}};ih.default=SF});var iP=P(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});var wF=B(),bF={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,wF.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"}};sh.default=bF});var sP=P(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});var RF=Rt(),CF={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:RF.validateUnion,error:{message:"must match a schema in anyOf"}};ah.default=CF});var aP=P(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});var ru=j(),PF=B(),xF={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,ru._)`{passingSchemas: ${t.passing}}`},EF={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:xF,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,PF.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,ru._)`${c} && ${s}`).assign(s,!1).assign(a,(0,ru._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,ru.Name)})})}}};ch.default=EF});var cP=P(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var kF=B(),TF={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,kF.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};uh.default=TF});var lP=P(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});var nu=j(),dP=B(),AF={message:({params:t})=>(0,nu.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,nu._)`{failingKeyword: ${t.ifClause}}`},MF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:AF,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,dP.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=uP(n,"then"),i=uP(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,nu.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,nu._)`${d}`):t.setParams({ifClause:d})}}}};function uP(t,e){let r=t.schema[e];return r!==void 0&&!(0,dP.alwaysValidSchema)(t,r)}dh.default=MF});var fP=P(lh=>{"use strict";Object.defineProperty(lh,"__esModule",{value:!0});var $F=B(),IF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,$F.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};lh.default=IF});var pP=P(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});var OF=Vp(),zF=HC(),NF=Kp(),DF=ZC(),LF=BC(),jF=KC(),FF=YC(),UF=rh(),qF=eP(),HF=oP(),GF=iP(),ZF=sP(),BF=aP(),WF=cP(),VF=lP(),KF=fP();function JF(t=!1){let e=[GF.default,ZF.default,BF.default,WF.default,VF.default,KF.default,FF.default,UF.default,jF.default,qF.default,HF.default];return t?e.push(zF.default,DF.default):e.push(OF.default,NF.default),e.push(LF.default),e}fh.default=JF});var hP=P(ph=>{"use strict";Object.defineProperty(ph,"__esModule",{value:!0});var Ce=j(),YF={message:({schemaCode:t})=>(0,Ce.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Ce._)`{format: ${t}}`},XF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:YF,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,Ce._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,Ce._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,Ce._)`${m}.type || "string"`).assign(v,(0,Ce._)`${m}.validate`),()=>r.assign(g,(0,Ce._)`"string"`).assign(v,m)),t.fail$data((0,Ce.or)(w(),b()));function w(){return c.strictSchema===!1?Ce.nil:(0,Ce._)`${s} && !${v}`}function b(){let R=d.$async?(0,Ce._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Ce._)`${v}(${n})`,_=(0,Ce._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,Ce._)`${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,Ce.regexpCode)(_):c.code.formats?(0,Ce._)`${c.code.formats}${(0,Ce.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:_,code:C});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Ce._)`${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,Ce._)`await ${v}(${n})`}return typeof g=="function"?(0,Ce._)`${v}(${n})`:(0,Ce._)`${v}.test(${n})`}}}};ph.default=XF});var mP=P(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var QF=hP(),eU=[QF.default];hh.default=eU});var gP=P(Do=>{"use strict";Object.defineProperty(Do,"__esModule",{value:!0});Do.contentVocabulary=Do.metadataVocabulary=void 0;Do.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Do.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var vP=P(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});var tU=PC(),rU=jC(),nU=pP(),oU=mP(),yP=gP(),iU=[tU.default,rU.default,(0,nU.default)(),oU.default,yP.metadataVocabulary,yP.contentVocabulary];mh.default=iU});var SP=P(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.DiscrError=void 0;var _P;(function(t){t.Tag="tag",t.Mapping="mapping"})(_P||(ou.DiscrError=_P={}))});var bP=P(yh=>{"use strict";Object.defineProperty(yh,"__esModule",{value:!0});var Lo=j(),gh=SP(),wP=jc(),sU=_s(),aU=B(),cU={message:({params:{discrError:t,tagName:e}})=>t===gh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Lo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},uU={keyword:"discriminator",type:"object",schemaType:"object",error:cU,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,Lo._)`${r}${(0,Lo.getProperty)(a)}`);e.if((0,Lo._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:gh.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,Lo._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:gh.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,Lo.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,aU.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=wP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof wP.SchemaEnv&&(_=_.schema),_===void 0)throw new sU.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]=_}}}};yh.default=uU});var RP=P((I8,dU)=>{dU.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 _h=P((le,vh)=>{"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 lU=_C(),fU=vP(),pU=bP(),CP=RP(),hU=["/properties"],iu="http://json-schema.org/draft-07/schema",jo=class extends lU.default{_addVocabularies(){super._addVocabularies(),fU.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(pU.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(CP,hU):CP;this.addMetaSchema(e,iu,!1),this.refs["http://json-schema.org/schema"]=iu}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(iu)?iu:void 0)}};le.Ajv=jo;vh.exports=le=jo;vh.exports.Ajv=jo;Object.defineProperty(le,"__esModule",{value:!0});le.default=jo;var mU=vs();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return mU.KeywordCxt}});var Fo=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return Fo._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return Fo.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return Fo.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return Fo.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return Fo.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return Fo.CodeGen}});var gU=Dc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return gU.default}});var yU=_s();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return yU.default}})});var $P=P(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.formatNames=rr.fastFormats=rr.fullFormats=void 0;function tr(t,e){return{validate:t,compare:e}}rr.fullFormats={date:tr(kP,Rh),time:tr(wh(!0),Ch),"date-time":tr(PP(!0),AP),"iso-time":tr(wh(),TP),"iso-date-time":tr(PP(),MP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:RU,"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:AU,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:CU,int32:{type:"number",validate:EU},int64:{type:"number",validate:kU},float:{type:"number",validate:EP},double:{type:"number",validate:EP},password:!0,binary:!0};rr.fastFormats={...rr.fullFormats,date:tr(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Rh),time:tr(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Ch),"date-time":tr(/^\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,AP),"iso-time":tr(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,TP),"iso-date-time":tr(/^\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,MP),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};rr.formatNames=Object.keys(rr.fullFormats);function vU(t){return t%4===0&&(t%100!==0||t%400===0)}var _U=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,SU=[0,31,28,31,30,31,30,31,31,30,31,30,31];function kP(t){let e=_U.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&&vU(r)?29:SU[n])}function Rh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var Sh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function wh(t){return function(r){let n=Sh.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 Ch(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 TP(t,e){if(!(t&&e))return;let r=Sh.exec(t),n=Sh.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 bh=/t|\s/i;function PP(t){let e=wh(t);return function(n){let o=n.split(bh);return o.length===2&&kP(o[0])&&e(o[1])}}function AP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function MP(t,e){if(!(t&&e))return;let[r,n]=t.split(bh),[o,i]=e.split(bh),s=Rh(r,o);if(s!==void 0)return s||Ch(n,i)}var wU=/\/|:/,bU=/^(?:[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 RU(t){return wU.test(t)&&bU.test(t)}var xP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function CU(t){return xP.lastIndex=0,xP.test(t)}var PU=-(2**31),xU=2**31-1;function EU(t){return Number.isInteger(t)&&t<=xU&&t>=PU}function kU(t){return Number.isInteger(t)}function EP(){return!0}var TU=/[^\\]\\Z/;function AU(t){if(TU.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var IP=P(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});Uo.formatLimitDefinition=void 0;var MU=_h(),Lt=j(),tn=Lt.operators,su={formatMaximum:{okStr:"<=",ok:tn.LTE,fail:tn.GT},formatMinimum:{okStr:">=",ok:tn.GTE,fail:tn.LT},formatExclusiveMaximum:{okStr:"<",ok:tn.LT,fail:tn.GTE},formatExclusiveMinimum:{okStr:">",ok:tn.GT,fail:tn.LTE}},$U={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${su[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${su[t].okStr}, limit: ${e}}`};Uo.formatLimitDefinition={keyword:Object.keys(su),type:"string",schemaType:"string",$data:!0,error:$U,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 MU.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}) ${su[o].fail} 0`}},dependencies:["format"]};var IU=t=>(t.addKeyword(Uo.formatLimitDefinition),t);Uo.default=IU});var DP=P((Is,NP)=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});var qo=$P(),OU=IP(),Ph=j(),OP=new Ph.Name("fullFormats"),zU=new Ph.Name("fastFormats"),xh=(t,e={keywords:!0})=>{if(Array.isArray(e))return zP(t,e,qo.fullFormats,OP),t;let[r,n]=e.mode==="fast"?[qo.fastFormats,zU]:[qo.fullFormats,OP],o=e.formats||qo.formatNames;return zP(t,o,r,n),e.keywords&&(0,OU.default)(t),t};xh.get=(t,e="full")=>{let n=(e==="fast"?qo.fastFormats:qo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function zP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,Ph._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}NP.exports=Is=xh;Object.defineProperty(Is,"__esModule",{value:!0});Is.default=xh});var fx=P((mY,lx)=>{lx.exports=dx;dx.sync=pq;var cx=Pr("fs");function fq(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 ux(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:fq(e,r)}function dx(t,e,r){cx.stat(t,function(n,o){r(n,n?!1:ux(o,t,e))})}function pq(t,e){return ux(cx.statSync(t),t,e)}});var yx=P((gY,gx)=>{gx.exports=hx;hx.sync=hq;var px=Pr("fs");function hx(t,e,r){px.stat(t,function(n,o){r(n,n?!1:mx(o,e))})}function hq(t,e){return mx(px.statSync(t),e)}function mx(t,e){return t.isFile()&&mq(t,e)}function mq(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 _x=P((vY,vx)=>{var yY=Pr("fs"),yu;process.platform==="win32"||global.TESTING_WINDOWS?yu=fx():yu=yx();vx.exports=Zh;Zh.sync=gq;function Zh(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){Zh(t,e||{},function(i,s){i?o(i):n(s)})})}yu(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function gq(t,e){try{return yu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var xx=P((_Y,Px)=>{var Jo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Sx=Pr("path"),yq=Jo?";":":",wx=_x(),bx=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),Rx=(t,e)=>{let r=e.colon||yq,n=t.match(/\//)||Jo&&t.match(/\\/)?[""]:[...Jo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Jo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Jo?o.split(r):[""];return Jo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},Cx=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=Rx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(bx(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];wx(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)},vq=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=Rx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=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(wx.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 bx(t)};Px.exports=Cx;Cx.sync=vq});var kx=P((SY,Bh)=>{"use strict";var Ex=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Bh.exports=Ex;Bh.exports.default=Ex});var $x=P((wY,Mx)=>{"use strict";var Tx=Pr("path"),_q=xx(),Sq=kx();function Ax(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=_q.sync(t.command,{path:r[Sq({env:r})],pathExt:e?Tx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=Tx.resolve(o?t.options.cwd:"",s)),s}function wq(t){return Ax(t)||Ax(t,!0)}Mx.exports=wq});var Ix=P((bY,Vh)=>{"use strict";var Wh=/([()\][%!^"`<>&|;, *?])/g;function bq(t){return t=t.replace(Wh,"^$1"),t}function Rq(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Wh,"^$1"),e&&(t=t.replace(Wh,"^$1")),t}Vh.exports.command=bq;Vh.exports.argument=Rq});var zx=P((RY,Ox)=>{"use strict";Ox.exports=/^#!(.*)/});var Dx=P((CY,Nx)=>{"use strict";var Cq=zx();Nx.exports=(t="")=>{let e=t.match(Cq);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var jx=P((PY,Lx)=>{"use strict";var Kh=Pr("fs"),Pq=Dx();function xq(t){let r=Buffer.alloc(150),n;try{n=Kh.openSync(t,"r"),Kh.readSync(n,r,0,150,0),Kh.closeSync(n)}catch{}return Pq(r.toString())}Lx.exports=xq});var Hx=P((xY,qx)=>{"use strict";var Eq=Pr("path"),Fx=$x(),Ux=Ix(),kq=jx(),Tq=process.platform==="win32",Aq=/\.(?:com|exe)$/i,Mq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function $q(t){t.file=Fx(t);let e=t.file&&kq(t.file);return e?(t.args.unshift(t.file),t.command=e,Fx(t)):t.file}function Iq(t){if(!Tq)return t;let e=$q(t),r=!Aq.test(e);if(t.options.forceShell||r){let n=Mq.test(e);t.command=Eq.normalize(t.command),t.command=Ux.command(t.command),t.args=t.args.map(i=>Ux.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 Oq(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:Iq(n)}qx.exports=Oq});var Bx=P((EY,Zx)=>{"use strict";var Jh=process.platform==="win32";function Yh(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 zq(t,e){if(!Jh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=Gx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function Gx(t,e){return Jh&&t===1&&!e.file?Yh(e.original,"spawn"):null}function Nq(t,e){return Jh&&t===1&&!e.file?Yh(e.original,"spawnSync"):null}Zx.exports={hookChildProcess:zq,verifyENOENT:Gx,verifyENOENTSync:Nq,notFoundError:Yh}});var Kx=P((kY,Yo)=>{"use strict";var Wx=Pr("child_process"),Xh=Hx(),Qh=Bx();function Vx(t,e,r){let n=Xh(t,e,r),o=Wx.spawn(n.command,n.args,n.options);return Qh.hookChildProcess(o,n),o}function Dq(t,e,r){let n=Xh(t,e,r),o=Wx.spawnSync(n.command,n.args,n.options);return o.error=o.error||Qh.verifyENOENTSync(o.status,n),o}Yo.exports=Vx;Yo.exports.spawn=Vx;Yo.exports.sync=Dq;Yo.exports._parse=Xh;Yo.exports._enoent=Qh});var tE=P(tm=>{"use strict";var Xx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,qq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Qx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Hq=/\\([\u000b\u0020-\u00ff])/g,Gq=/([\\"])/g,eE=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;tm.format=Zq;tm.parse=Bq;function Zq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!eE.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],!Qx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+Vq(e[o])}return n}function Bq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?Wq(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(!eE.test(n))throw new TypeError("invalid media type");var o=new Kq(n.toLowerCase());if(r!==-1){var i,s,a;for(Xx.lastIndex=r;s=Xx.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(Hq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function Wq(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 Vq(t){var e=String(t);if(Qx.test(e))return e;if(e.length>0&&!qq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(Gq,"\\$1")+'"'}function Kq(t){this.parameters=Object.create(null),this.type=t}});import{logger as Z4}from"@hermes/logger";import{logger as PG,logPublic as VE}from"@hermes/logger";var BT="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(BT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as KH}from"@augmentcode/auggie-v2";import{logger as JH}from"@hermes/logger";import{logger as xA}from"@hermes/logger";import{logger as VT}from"@hermes/logger";function WT(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 xr(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":WT(t,e,r)?"plugin":"local"}function KT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Xm=VT.child({prefix:"pi-mcp"}),JT="augment:mcp-status-report";function at(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 si(t,e,r,n){let o=at(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 ct(t,e,r){if(r){let o=at(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 YT(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=at(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 ua=3e4;function XT(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>=ua?"failed":void 0}default:return}}var Qm="authentication required",QT="Authentication refresh is pending in the backend; retry shortly.",eA="timed out connecting after 30s",tA="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",rA="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",nA="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",oA="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",iA="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",sA="Server was not started: its credential is temporarily unavailable. Re-initialize it in a moment.",aA=new Map([["manager_unavailable","retry"],["managed_provider_unavailable","retry"],["refresh_retryable","retry"],["reauth_required","reconnect"],["auth_terminal","reconnect"],["policy_excluded","blocked"],["share_identity_excluded","blocked"]]),cA="Server was not started: this session is not allowed to use it.",uA="Server was not started: this session's Space policy does not allow it.",dA="Server was not started: its shared credential is not available to this session's identity.",lA="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 fA(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)?rA:tA,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",...mA({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}pA({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function pA(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=rg(e,a)??hA(e,c);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 eg(t){switch(t.disposition){case"retry":case"reconnect":case"blocked":return t.disposition;case void 0:return aA.get(t.category);default:return}}function hA(t,e){if(!(t.selectedRegistryConfigIds===void 0||eg(e)!=="retry"))return{errorMessage:sA,failureCategory:"transient"}}function tg(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,...typeof i.disposition=="string"?{disposition:i.disposition}:{}})}t.oauthFailureCategoriesByConfigId=r}function rg(t,e){let r=t.oauthFailureCategoriesByConfigId?.get(e);if(r!==void 0)switch(eg(r)){case"reconnect":return{errorMessage:iA,failureCategory:"auth_terminal"};case"blocked":return r.category==="share_identity_excluded"?{errorMessage:dA,failureCategory:"share_identity_excluded"}:{errorMessage:r.category==="policy_excluded"?uA:cA,failureCategory:"policy_excluded"};default:return}}function mA(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:lA,failureCategory:"auth_terminal"};let i=rg(e,r);return i!==void 0?i:{errorMessage:o.has(n)?oA:nA,failureCategory:"configuration"}}function gA(t,e){return e!==void 0?e.isAuthError?Qm:e.error:t.status==="initializing"?eA:t.lastError??(t.status==="auth_required"?Qm:void 0)}function ng(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 yA(t,e,r){if(ng(t,e)?.domain?.startsWith("recipient:"))return at(e,t.name).serverGeneration;let n=e.statusFailureCategories?.get(t.name);if(r&&typeof n=="object")return n.serverGeneration;let o=at(e,t.name).serverGeneration;return o>0?o:void 0}function vA(t,e){let r=XT(t);if(r===void 0)return;let n=YT(e,t.name),o=r==="connected"?KT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:xr(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=ng(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=yA(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?QT:gA(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function _A(t){let e=[];for(let r of t.servers.values()){let n=vA(r,t);n!==void 0&&e.push(n)}return fA(t,e),e}function N(t,e){try{let r=_A(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(JT,o),Xm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Xm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var da={local:4,registry:3,plugin:2,vfs:1};function Ht(t){return t.hostLeases??=new Map,t.hostLeases}function SA(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function ai(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function ci(t,e){return t.kind===e.kind&&t.identity===e.identity}function og(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function Qu(t,e){let r=SA(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function la(t,e,r){if(r.kind==="registry"){ai(t).set(e,{kind:"domain",domain:r.identity});return}ai(t).set(e,{kind:"blocked"})}function ed(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 Er(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 te(t,e,r){let n=Ht(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Er(s,i):{kind:i??"local",identity:e},c={owner:a,revision:Qu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),la(t,e,a),c}function ig(t){let{state:e,name:r,host:n}=t,o=Ht(e),i=o.get(r);if(!i||i.host!==n||i.owner.kind!=="local"||e.servers.get(r)!==n)return;let s={owner:{kind:"plugin",identity:n.config.id??r},revision:Qu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),la(e,r,s.owner),s}function ui(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=Ht(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=da[n.kind]>da[a.owner.kind],f=da[n.kind]===da[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?og(a):void 0;ed(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Qu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),la(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function td(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=Ht(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,ai(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function fa(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ht(e).get(r);return!s||s.revision!==o||!ci(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 ut(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ht(e).get(r);if(!s||s.revision!==o||!ci(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=og(s);if(a)return ed(e,r,i),s.host=void 0,s.retirement=a,a}function sg(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=Ht(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!ci(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!ci(s.owner,n)||s.revision!==o.incumbent.revision?(la(e,r,s.owner),!0):(i.delete(r),ai(e).set(r,{kind:"blocked"}),!0))}function Ee(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ht(e),a=s.get(r);return!a||a.revision!==o||!ci(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(ed(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),ai(e).set(r,{kind:"blocked"}),!0)}function D(t,e){return Ht(t).get(e)}function rd(t,e,r){let n=Ht(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function ag(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function kr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&ag(t.url)===ag(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Xn=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 kr(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 li(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function nd(t){try{return new URL(t).toString()}catch{return t}}function di(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:nd(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Gt(t,e){return di(e.config)}function ht(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:nd(t.url)===nd(e.url)}function od(t,e){let r=di(t),n=di(e);return!r||!n?ht(t,e):kr(r,n)}function Ie(t){return/^secret:(private|shared):.+/.test(t)}function id(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function pa(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 wA(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 bA(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}=t;return e?r?!ht(e,r):n===void 0?!1:e.id===void 0?e.registrySource===void 0:e.id!==n:!1}function cg(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!id(e,r):n!==void 0&&e!==n}function ug(t,e,r){return r&&e!==void 0&&t!==void 0&&id(t,e)}function RA(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!id(i,n))}function dg(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(bA({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||cg({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&cg({identity:s.domain,...l})?!0:RA({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function CA(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return di(r);if(n!==void 0)return{id:n,name:e}}function PA(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!di(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function lg(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=pa(t,e,i),c=pa(t,e,s),u=t.servers?.get(e)?.config,d=wA({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=dg({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=ug(a,l,f),g=ug(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 ee=CA({name:e,retiredConfig:d,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,ee,{preserveNameState:R})}let _=dg({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:pa(t,e,t.oauthCredentialDomains?.get(e)),currentDomain:pa(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"}),PA({state:t,name:e,mode:o,stillOwnsNameScopedRevision:C,retiredConfig:d}),I&&(li(t,e),ct(t,e),t.authRefreshNeededReportKeys?.delete(e)),C}function mt(t,e,r,n){return lg(t,e,r,n,"durable")}function fi(t,e,r,n){return lg(t,e,r,n,"session")}function ha(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 Tr(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 fg="augment:mcp-oauth-credentials",pg=300*1e3,EA=256,sd=xA.child({prefix:"pi-mcp"}),kt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function He(t){return`user:${t}`}function dn(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||Tr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Ar(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 ln(t){return t.ownerDomain??Ar(t.domain)}function hg(t,e,r){let n=He(e);return r!==void 0?r===n:Ie(t)||Ar(t)===n}function kA(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function TA(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 AA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function MA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&kA(t.credentialRevisions.get(e),r.credentialRevision)&&AA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function $A(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 IA(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??"")||!ht(o,r)?!1:o.name!==r.name||e.equalRevisionRebindDomains.get(r.name)===n}function Mr(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 ar(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function mg(t){Mr(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()??[])ar(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 gg(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=pg)&&ar(t,n)}function OA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&ar(t,e)}function yg(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 vg(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;Mr(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();gg(e,a);let c=ln(n),u=Ie(c)?`${c}\0${r}`:c,d=s.get(u),l=yg(d?.credential,n.domain);if(typeof l=="string"&&Tr(n.revision,l)<=0)return;!d&&s.size>=EA&&OA(e),ar(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&&ar(e,u)},pg),f.expiryTimer.unref?.(),sd.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function zA(t,e){Mr(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;Mr(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||ar(e,r)}}function ma(t){let{state:e,domain:r,forceNew:n=!1}=t;Mr(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:zA(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 _g(t,e){Mr(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)&&ar(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);ma({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function NA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||D(e,r.name)?.owner.kind==="local")return;Mr(e);let n=He(r.id),o=$A(r),i=IA({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=ma({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),DA({state:e,config:r,domain:n}),{domain:n,...s}}function Sg(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Mr(e);let i=ln(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?yg(c.credential,r.domain):void 0,l=a===void 0?void 0:Tr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&Tr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function DA(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)&&Ar(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),ct(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function LA(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(fg,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function jA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();gg(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return ar(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&Ie(s.split("\0",1)[0]))return ar(e,s),a}function FA(t){let{config:e,pi:r,buffered:n}=t;sd.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),sd.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(fg,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function UA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(ht(n,r)){if(n.name===r.name)return;await fi(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 mt(e,r.name,n.id,n);let o=e.expectedCredentialDomains.get(r.name);return o?.kind==="blocked"?o:void 0}function qA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=MA(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 kt(a)}async function HA(t){let{state:e,config:r,pi:n,intent:o,previousConfig:i,rollbackSnapshot:s}=t,a=e.registryCredentialIntents.get(o.domain);if(a?.epoch!==o.epoch||a.configFingerprint!==o.configFingerprint)return!1;e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let c;try{c=await UA({state:e,config:r,previousConfig:i})}catch(h){throw qA({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),LA({state:e,config:r,pi:n,intent:o});let p=jA({state:e,domain:o.domain,serverName:r.name});return Ye({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&FA({config:r,pi:n,buffered:p}),!0}function $r(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=NA({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=TA(e,r.name,o),u=(e.registryCredentialFinalizationsByName.get(r.name)??Promise.resolve(!0)).catch(()=>!1).then(()=>{let d=e.registryCredentialConfigs.get(r.name)??(r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id))??e.servers.get(r.name)?.config;return HA({state:e,config:r,pi:n,intent:i,previousConfig:d,rollbackSnapshot:a})});return e.registryCredentialFinalizationsByName.set(r.name,u),s.finalization=u,u.then(()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)},()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)}),u}import{SettingsManager as rM}from"@augmentcode/auggie-v2";import{homedir as wg}from"node:os";import{sep as GA}from"node:path";var ad=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},ZA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,BA=/\\\$\{/g,WA=new Set(["workspaceFolder","augmentToken"]),bg="${workspaceFolder}";function Rg(t,e){return t.includes(bg)?t.split(bg).join(e):t}function Cg(t,e){return t.includes("${")?t.replace(ZA,(n,o,i)=>{if(WA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new ad(o)}).replace(BA,"${"):t}function VA(t){return t.startsWith("~")?t==="~"?wg():t.startsWith("~/")||t.startsWith(`~${GA}`)?wg()+t.slice(1):t:t}function cd(t,e,r){return VA(Cg(Rg(t,e),r))}function Qn(t,e,r){return Cg(Rg(t,e),r)}function Pg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Qn(i,e,r);return n}var KA="$augment-";function JA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(KA)?i:Qn(i,e,r);return n}function Zt(t,e){let r=process.env;return{...t,url:Qn(t.url,e,r),headers:JA(t.headers,e,r)}}function Bt(t,e){let r=process.env;return{...t,command:cd(t.command,e,r),args:t.args.map(n=>Qn(n,e,r)),env:t.env?Pg(t.env,e,r):void 0,cwd:t.cwd?cd(t.cwd,e,r):e}}import{readFileSync as XA}from"node:fs";var Tt=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function eo(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 YA(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 to(t,e){let r=eo(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:YA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var kg=t=>XA(t,"utf8");function ga(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function xg(t){return ga(t)&&("command"in t||"url"in t)}function dd(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function Eg(t,e){return dd(t.name)??e}function ud(t,e){let r=eo(t);if(r==="http"||r==="sse")return dd(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return dd(t.name,t.title,n)??e}function QA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[ud(n,String(r)),n]});if(ga(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[ud(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ga(n))return Object.entries(n).map(([o,i])=>{let s=i;return[Eg(s,o),s]})}if(xg(t)){let r=t;return[[ud(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(xg))return Object.entries(t).map(([r,n])=>{if(!ga(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[Eg(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 ld(t){return t instanceof Error?t.message:String(t)}function eM(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}": ${ld(i)}`});return}}function tM(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=eM(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}: ${ld(c)}`}),[]}try{return QA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${ld(c)}`}),[]}}function fd(t,e=kg){let r={},n=[];for(let o of t)for(let[i,s]of tM(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function pd(t,e=kg){return!t||t.length===0?new Set:new Set(Object.keys(fd(t,e).servers))}var nM=["global","project","local","managed"];function oM(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 iM(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 sM(t,e,r){let n=fd(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 aM(t,e,r){let n=rM.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 iM(nM.map(o=>oM(n,o)))}function ro(t,e,r,n){let o=[],i=r!==void 0&&r.length>0,s=i?sM(r,n,o):aM(t,e,o),a=[];for(let[c,u]of Object.entries(s))try{let d=to(c,i?u:{...u,name:c});a.push(d.type==="stdio"?Bt(d,t):Zt(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 zg}from"@augmentcode/auggie-v2";import{logger as _M}from"@hermes/logger";import{Type as SM}from"@sinclair/typebox";var ya=Symbol.for("__pi_mcp_state__");function cM(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 uM(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function dM(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&cM(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&uM(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 lM(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.transientReconnects??=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&&dM(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&&te(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 pi(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 no(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 hd(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 va(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function _a(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()?hd({state:e,configId:r,generation:n}):va({state:e,configId:r,generation:n}),s),s=>{throw va({state:e,configId:r,generation:n}),s})}function Y(){let t=globalThis;if(t[ya])return lM(t[ya]),t[ya];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Xn,refreshes:new Map,reconnects:new Map,missingHostRemovals:new Map,missingHostRemovalFences:new Map,reconnectDesiredGenerations:new Map,transientReconnects: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[ya]=e,e}var Tg=Symbol.for("__hermes_mcp_tool_registry__"),Ag=Symbol.for("__hermes_mcp_tool_server_registry__"),fM=Symbol.for("__hermes_mcp_extension_factory__");function gd(){let t=globalThis;return t[Tg]??=new Map,t[Tg]}function md(){let t=globalThis;return t[Ag]??=new Map,t[Ag]}function Mg(t){return gd().get(t)}function Ir(t,e){gd().set(t.name,t),e===void 0?md().delete(t.name):md().set(t.name,e)}function oo(t,e){let r=gd();(e===void 0||r.get(t)===e)&&(r.delete(t),md().delete(t))}function $g(t){Reflect.set(t,fM,!0)}function Sa(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 pM(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function hM(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 mM(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
+ `).trim()}function yd(t,e,r){if(t.isError){let o=mM(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=hM(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}}function Ig(t){let e=t.total===void 0?"":`/${t.total}`,r=t.message?` - ${t.message}`:"";return`Progress: ${t.progress}${e}${r}`}var gM={reconnecting:"Reconnecting to the MCP server",reauthorizing:"Refreshing the MCP server sign-in"};function wa(t,e){if(!t)return;let r,n="running",o=i=>t({content:[{type:"text",text:i}],details:{kind:"mcp_tool_update",server:e,phase:n,...r===void 0?{}:{progress:r.progress,...r.total===void 0?{}:{total:r.total},...r.message?{message:r.message}:{}}}});return{onProgress:i=>{r=i,n="running",o(Ig(i))},onPhase:i=>{if(i!==n){if(n=i,i!=="running"){o(gM[i]);return}o(r?Ig(r):"Resumed")}}}}async function vd(t,e,r){let n=Y(),o=n.servers.get(t),i=o?.status!=="success"&&n.reconnects?.has(t)===!0;if(!n.recoverTransientServer||!i&&(o?.status!=="failed"||!o.lastFailureTransient))return!1;r?.onPhase?.("reconnecting");let s=await n.recoverTransientServer(t,e);return s&&r?.onPhase?.("running"),s}async function Og(t){let e=wa(t.onUpdate,t.serverName),r=t.getHost();if(r?.status!=="success"&&await vd(t.serverName,t.signal,e)&&(r=t.getHost()),!r||r.status!=="success")throw new Error(Sa(t.serverName,r?.status,t.getAllToolNames(),t.getActiveToolNames()));let n=t.map.resolve(t.namespaced),o=pM(t.params),i=await r.callTool(n,o,t.signal,{toolCallId:t.toolCallId},e);return yd(i,t.serverName,n)}var yM=/[^a-zA-Z0-9_-]/g;function _d(t){return t.replace(yM,"_")}function vM(t,e){let r=_d(e),n=_d(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var Or=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=vM(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=`_${_d(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var ba=_M.child({prefix:"pi-mcp"});function Ra(){return Y().toolRegistrationsByPi}function Ng(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=SM.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){ba.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}ba.warn(`Skipping MCP tool "${r}/${n.name}": invalid input schema (${c instanceof Error?c.message:String(c)})`);return}let a=()=>Y().servers.get(r);return{name:i,label:n.name,description:n.description??"",parameters:s,execute:(c,u,d,l,f)=>Og({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d,toolCallId:c,onUpdate:l})}}function Sd(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),oo(n,i),r.definitionsByName?.delete(n),wM(t,e,n,r,o)}function wM(t,e,r,n,o){let i=Y();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 Or(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=Ng({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;zg(r,"mcp"),t.registerTool(p),Ir(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 bM(t,e){let r=Ra(),n=r.get(t);n||(n={byServer:new Map,ownerByToolName:new Map},r.set(t,n));let o=Y().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)Sd(t,n,i,a);let s={generation:o,host:e,map:new Or(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function wd(t,e){let{registration:r,replaced:n}=bM(t,e),o=new Set(r.registeredNames),i=new Or(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=Y();g.diagnostics.some(w=>w.server===s&&(w.message===m||w.message.includes(`both map to "${l}"`)))||(ba.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=Ng({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(zg(l,"mcp"),t.registerTool(p),Ir(p,s),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),Ra().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=Ra().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&Sd(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&ba.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function bd(t,e,r){let n=Ra().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)Sd(t,n,o,i);return n.byServer.delete(e.name),!0}function Dg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&wd(t,r)}import{getToolSource as MM}from"@augmentcode/auggie-v2";import{Type as RM}from"@sinclair/typebox";var CM=!1,Lg=2e4;function PM(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function xM(t){let e=0;for(let r of t.servers.values())e+=EM(r);return e}function EM(t){if(t.status!=="success")return 0;let e=new Or(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||kM(n.inputSchema)&&(r+=PM(n))}return r}function kM(t){try{return RM.Unsafe(t??{}),!0}catch{return!1}}function TM(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:CM}function AM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:Lg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:Lg}function jg(t){return TM(t)?xM(t)>=AM(t):!1}var Fg="AUGGIE_ENABLE_TOOL_SEARCH",$M=new Set(["find-tool","execute-tool","attach-mcp-server"]);function hi(){return process.env[Fg]==="1"}function Rd(t){return process.env[Fg]!=="0"&&t.featureFlags?.flags.cliMcpToolSearchAutoEnable===!0}function zr(t){return hi()?!0:Rd(t)?t.toolSearchLatched?!0:jg(t)?(t.toolSearchLatched=!0,!0):!1:!1}function Ca(t){let e=t.getActiveTools(),r=e.filter(n=>!IM(n)||$M.has(n));r.length!==e.length&&t.setActiveTools(r)}function IM(t){return MM(t)==="mcp"}import{setToolSource as Vg}from"@augmentcode/auggie-v2";import{logger as QM}from"@hermes/logger";import{Type as Kg}from"@sinclair/typebox";import{logger as OM}from"@hermes/logger";var mi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Nr={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Ug=OM.child({prefix:"pi-mcp"}),zM=5e3,NM=1,DM=2,LM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),jM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function FM(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 UM(t){return t===NM||typeof t=="string"&&LM.has(t)?"available":t===DM||typeof t=="string"&&jM.has(t)?"opt_in_required":"unknown"}function qM(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:FM(t.auth_type),state:UM(t.state)}}function Cd(t,e){if(t.servers.has(e.name))return!0;for(let r of t.servers.values())if(r.config?.id===e.id)return!0;return!1}function Pa(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function fn(t){return Pa(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!Cd(t,r)):[]}async function qg(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:Nr.UNSPECIFIED}),signal:AbortSignal.timeout(r??zM)});if(!i.ok)return Ug.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=qM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Ug.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var HM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",GM=`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).`,MM=/[\n\r]/g,$M=/</g,IM=/>/g;function fn(t){return t.replace(MM," ").replace($M,"\u2039").replace(IM,"\u203A").trim()}function OM(){let t=process.env[TM];return t?.trim()?t:AM}var zM=/\{\{(query|server_name|tool_list)\}\}/g;function Og(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return OM().replace(zM,o=>n[o]??o)}function xe(t){return{content:[{type:"text",text:t}],details:void 0}}function zg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function _d(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function ba(t,e,r){let n={mcp_server:t,tools:zg(e).map(_d),note:r};return xe(JSON.stringify(n,null,2))}function Ng(t){return zg(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
17
- `)}function Dg(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 NM}from"@earendil-works/pi-ai";var DM="augment:tool-search-usage";function LM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Lg(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 NM(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(DM,a),LM(s)}var qg=jM.child({prefix:"pi-mcp"}),oo="find-tool",Nr="execute-tool",FM=10,Ug=15,UM=20,qM={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"]},HM={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 Sd(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function GM(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=Sd(t),o=e.filter(c=>n.length>0&&Sd(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(Sd(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 Hg(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:GM(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=ya(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function ZM(t){if(t==null)throw new Error(`${Nr} 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(`${Nr} "arguments" must be an object, not ${e}.`)}return t}async function BM(t,e,r,n,o){let i=Og(r,n,Ng(o)),s=await Lg(t,e,i);if(!s)return;let a=Dg(s);return o.find(c=>c.name===a)}async function WM(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=Hg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=FM)return ba(i.name,s,"All tools on this server.");try{let a=await BM(t,e,n,i.name,s);return a?xe(JSON.stringify(_d(a),null,2)):ba(i.name,s,"No single best match; all tools listed.")}catch(a){return qg.warn(`${oo} LLM match failed: ${a instanceof Error?a.message:String(a)}`),ba(i.name,s,"Search failed; all tools listed.")}}async function VM(t,e,r,n){let{mcp_server:o,tool_name:i,arguments:s}=e??{};if(typeof o!="string"||typeof i!="string")throw new Error(`${Nr} requires string "mcp_server" and "tool_name" parameters.`);let a=ZM(s),c=Hg(t,o),u=await c.server.callTool(i,a,r,n);return fd(u,c.name,i)}function KM(){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 ${Nr}. 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 ${Nr}.`,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,Ug).join(", "),u=a.length>Ug?", \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).`,ZM=/[\n\r]/g,BM=/</g,WM=/>/g;function pn(t){return t.replace(ZM," ").replace(BM,"\u2039").replace(WM,"\u203A").trim()}function VM(){let t=process.env[HM];return t?.trim()?t:GM}var KM=/\{\{(query|server_name|tool_list)\}\}/g;function Hg(t,e,r){let n={"{{query}}":pn(t),"{{server_name}}":pn(e),"{{tool_list}}":r};return VM().replace(KM,o=>n[o]??o)}function xe(t){return{content:[{type:"text",text:t}],details:void 0}}function Gg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function Pd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function xa(t,e,r){let n={mcp_server:t,tools:Gg(e).map(Pd),note:r};return xe(JSON.stringify(n,null,2))}function Zg(t){return Gg(t).map(e=>{let r=pn(e.name),n=pn(e.description??"");return`- ${r}: ${n}`}).join(`
17
+ `)}function Bg(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 JM}from"@earendil-works/pi-ai";var YM="augment:tool-search-usage";function XM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Wg(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 JM(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(YM,a),XM(s)}var Yg=QM.child({prefix:"pi-mcp"}),io="find-tool",Dr="execute-tool",e0=10,Jg=15,t0=20,r0={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"]},n0={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 gi(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function o0(t){let e=[...Y().servers.values()].filter(c=>c.status==="success"),r=e.find(c=>c.name===t);if(r)return{server:r,name:r.name};let n=gi(t),o=e.filter(c=>n.length>0&&gi(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(gi(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 Xg(t,e){let r=Y(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=fn(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:o0(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=Sa(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function i0(t){let e=Y(),r=new Set([...[...e.servers.values()].filter(i=>i.status!=="success").map(i=>i.name),...[...e.reconnects?.keys()??[]].filter(i=>e.servers.get(i)?.status!=="success")]);if(r.has(t))return t;let n=gi(t),o=[...r].filter(i=>n.length>0&&gi(i)===n);return o.length===1?o[0]:void 0}function s0(t){if(t==null)throw new Error(`${Dr} 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(`${Dr} "arguments" must be an object, not ${e}.`)}return t}async function a0(t,e,r,n,o){let i=Hg(r,n,Zg(o)),s=await Wg(t,e,i);if(!s)return;let a=Bg(s);return o.find(c=>c.name===a)}async function c0(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${io} requires string "query" and "mcp_server" parameters.`);let i=Xg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=e0)return xa(i.name,s,"All tools on this server.");try{let a=await a0(t,e,n,i.name,s);return a?xe(JSON.stringify(Pd(a),null,2)):xa(i.name,s,"No single best match; all tools listed.")}catch(a){return Yg.warn(`${io} LLM match failed: ${a instanceof Error?a.message:String(a)}`),xa(i.name,s,"Search failed; all tools listed.")}}async function u0(t,e,r,n,o){let{mcp_server:i,tool_name:s,arguments:a}=e??{};if(typeof i!="string"||typeof s!="string")throw new Error(`${Dr} requires string "mcp_server" and "tool_name" parameters.`);let c=s0(a),u=i0(i),d=u?wa(o,u):void 0;u&&await vd(u,r,d);let l=Xg(t,i),f=await l.server.callTool(s,c,r,n,d??wa(o,l.name));return yd(f,l.name,s)}function d0(){let t=Y(),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 ${Dr}. 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 ${io}, then invoke it with ${Dr}.`,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,Jg).join(", "),u=a.length>Jg?", \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,UM);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=fn(t).slice(0,t0);if(o.length>0){let i=o.map(s=>{let a=pn(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 sr(t){let e={name:oo,label:oo,description:KM(),parameters:Fg.Unsafe(qM),execute:(n,o,i,s,a)=>WM(t,a,o)},r={name:Nr,label:Nr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Fg.Unsafe(HM),execute:(n,o,i)=>VM(t,o,i,{toolCallId:n})};jg(oo,"mcp"),jg(Nr,"mcp"),t.registerTool(e),t.registerTool(r),$r(e),$r(r),qg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as yk}from"@augmentcode/auggie-v2";import{logger as Fq,logPublic as Uq}from"@hermes/logger";import{logger as n0}from"@hermes/logger";import{logger as JM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var Gg=JM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},wd=3e4,ar=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 bd(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,!bd(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 Ra=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??wd}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>ar?`${i.slice(0,ar)}\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 Zg(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)}`;Gg.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)}`;Gg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function YM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Bg=32;function XM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Bg&&(e=e.slice(0,Bg)),e=e.replace(/_+$/,""),e}function Wg(t,e){let r=e?XM(e):"",n=YM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Vg(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,e0=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function t0(t){let e=e0.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 r0(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<QM?t*1e3:t;if(typeof t=="string")return t0(t)}function Kg(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:r0(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 Wt=n0.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},Yg=[100,500],o0=Yg.length+1,i0=t=>new Promise(e=>{setTimeout(e,t)});function Jg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var Cd="augment.mcp-access-token.",s0=JSON.stringify({retired:!0}),Ca=3;function Vt(t){return`${Cd}${t}`}function Pa(t){return`legacy:${t}`}function At(t){return t?.id?Wg(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:Xg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Xg(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:Xg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return _i(vi(t))}function a0(t){return _i(vi(t))}function c0(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:c0(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=Vg({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 u0(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function d0(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=a0(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 Rd(t){try{let e=Kg(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||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:void 0,authorization_endpoint:typeof r.authorization_endpoint=="string"?r.authorization_endpoint:void 0,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=i0){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(()=>{Wt.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(()=>{Wt.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<Ca;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=Rd(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||!Rd(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:Pa(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(Vt(e),()=>this._restoreLegacyCredential({client:a,key:Vt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Wt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==Pa(e))throw new Z;try{return await this._enqueueWrite(Vt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Vt(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:Pa(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{Wt.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<Ca;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<Ca;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,u0(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:Pa(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Jg(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?o0: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?Yg[r]:void 0,i=!(e instanceof Z)&&bd(e);if(o===void 0||!i){n&&Wt.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(Vt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Vt(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(Vt(e),async()=>{let p=await c.upsertUserSecret(Vt(e),s0)}):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"&&Wt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Wt.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=Vt(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(()=>{Wt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Jg(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<Ca;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=Rd(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(Vt(r));return o?d0(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){Wt.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),Wt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Qg="Augment Code",ey="https://augmentcode.com",ty="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var f0=1e3,p0=500;function xd(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 Pd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function ry(t){return new URLSearchParams({k:t}).toString().slice(2)}function h0(t,e){let r=`${ry(t)}:${ry(e)}`;return`Basic ${btoa(r)}`}function sy(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function m0(t){return t.client.token_endpoint_auth_method==="none"||!sy(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function g0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function y0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var v0=401,ay=500;function kd(t,...e){return t.status<ay&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function ny(t){return kd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===v0}async function oy(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=sy(t);e==="basic"&&i?n.Authorization=h0(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=y0(c),d=c.slice(0,p0);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new Pd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*f0:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function iy(t,e){try{return await oy(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&kd(r,"invalid_target"))return await oy(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 Ed(t){return!(t instanceof gn)||t.status>=ay?!1:kd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Td(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=m0(t);try{return await iy(e,r)}catch(n){let o=g0(r);if(!(n instanceof gn)||!o||!ny(n))throw n;try{return await iy(e,o)}catch(i){throw i instanceof gn&&ny(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as f$}from"@hermes/logger";var $d;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&($d="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 Kt="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 Dd=Symbol(),_0=Symbol(),S0=Symbol(),vn=Symbol();var cy=Symbol();var w0=new TextEncoder,b0=new TextDecoder;function Id(t){return typeof t=="string"?w0.encode(t):b0.decode(t)}var Od;Uint8Array.prototype.toBase64?Od=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Od=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 zd;Uint8Array.fromBase64?zd=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Kt,e)}}:zd=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.",Kt,e)}};function ka(t){return typeof t=="string"?zd(t):Od(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=e$,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 Ea(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Ld(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if($d&&!e.has("user-agent")&&e.set("user-agent",$d),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Kt);return e}function jd(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 R0(t){return t.includes("//")?t.replace("//","/"):t}function C0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=R0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function P0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Xe);_y(t,n?.[Dd]!==!0);let o=r(new URL(t.href)),i=Ld(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:jd(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`,Kt,o);return}throw he(`${r} must be a positive number`,Kt,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`,Kt,n)}catch(o){throw r?O(o.message,r,n):o}}async function ly(t,e){let r=t;if(!(r instanceof URL)&&r!==Ma)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)',Wd,e);Ci(e);let n=await za(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==Ma&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Ia,{expected:r.href,body:n,attribute:"issuer"});return n}function fy(t){k0(t,"application/json")}function x0(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,r$,t)}function k0(t,e){if(j0(t)!==e)throw x0(t,e)}function Fd(){return ka(crypto.getRandomValues(new Uint8Array(32)))}function py(){return Fd()}function hy(){return Fd()}function my(){return Fd()}async function gy(t){return $e(t,"codeVerifier"),ka(await crypto.subtle.digest("SHA-256",Id(t)))}function Ud(t){let e=t?.[_0];return typeof e=="number"&&Number.isFinite(e)?e:0}function qd(t){let e=t?.[S0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Hd(){return Math.floor(Date.now()/1e3)}function $a(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Xe);$e(t.issuer,'"as.issuer"')}function Gd(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Xe);$e(t.client_id,'"client.client_id"')}function uy(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 Zd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function yy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=uy(r.client_id),s=uy(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function vy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var E0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function _y(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",n$,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",o$,t)}function dy(t,e,r,n){let o;if(typeof t!="string"||!(o=E0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?i$:s$,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return _y(o,n),o}function Sy(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?dy(t.mtls_endpoint_aliases[e],e,r,n):dy(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=t$,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=X0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Ta="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",T0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",A0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',M0="("+Ta+")\\s*=\\s*"+A0,$0="("+Ta+")\\s*=\\s*("+Ta+")",I0=new RegExp("^[,\\s]*("+Ta+")"),O0=new RegExp("^[,\\s]*"+M0+"[,\\s]*(.*)"),z0=new RegExp("^[,\\s]*"+$0+"[,\\s]*(.*)"),N0=new RegExp("^("+T0+")(?:$|[,\\s])(.*)");function D0(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(I0),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(O0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(z0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(N0)){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 L0(t){if(t.status>399&&t.status<500){Ci(t),fy(t);try{let e=await t.clone().json();if(Ea(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function wy(t,e,r){if(t.status!==e){H0(t);let n;throw(n=await L0(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)`,Wd,t)}}function by(t){if(!Bd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Kt)}function j0(t){return t.headers.get("content-type")?.split(";")[0]}async function F0(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:jd(n,s?.signal)})}async function U0(t,e,r,n,o,i){let s=Sy(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Dd]!==!0);o.set("grant_type",n);let a=Ld(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(by(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await F0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var Ry=new WeakMap,q0=new WeakMap;function Cy(t){if(!t.id_token)return;let e=Ry.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Kt);return e}async function Py(t,e,r,n,o,i){if($a(t),Gd(e),!lo(r,Response))throw he('"response" must be an instance of Response',Xe);await wy(r,200,"Token Endpoint"),Ci(r);let s=await za(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 a$(s.id_token,c$.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Ud(e),qd(e),o).then(K0.bind(void 0,a)).then(Z0.bind(void 0,t)).then(G0.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',Dr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',Dr,{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}),q0.set(r,u),Ry.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 H0(t){let e;if(e=D0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function G0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',Dr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',Dr,{expected:t,claims:e.claims,claim:"aud"});return e}function Z0(t,e){let r=t[l$]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',Dr,{expected:r,claims:e.claims,claim:"iss"});return e}var Bd=new WeakSet;function B0(t){return Bd.add(t),t}var W0=Symbol();async function xy(t,e,r,n,o,i,s){if($a(t),Gd(e),!Bd.has(n))throw he('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Kt);$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!==W0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),U0(t,e,r,"authorization_code",c,s)}var V0={aud:"audience",c_hash:"code hash",client_id:"client id",exp:"expiration time",iat:"issued at",iss:"issuer",jti:"jwt id",nonce:"nonce",s_hash:"state hash",sub:"subject",ath:"access token hash",htm:"http method",htu:"http uri",cnf:"confirmation",auth_time:"authentication time"};function K0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${V0[r]}) claim missing`,V,{claims:e.claims});return e}var Ad=Symbol(),Md=Symbol();async function ky(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?J0(t,e,r,n.expectedNonce,n.maxAge,n[cy],n.recognizedTokenTypes):Y0(t,e,r,n?.[cy],n?.recognizedTokenTypes)}async function J0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=Ad;break;case Ad:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Md;break;case Md:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await Py(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=Cy(c);if(o!==Md){let d=Hd()+Ud(e),l=qd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",Aa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===Ad){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Dr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',Dr,{expected:n,claims:u,claim:"nonce"});return c}async function Y0(t,e,r,n,o){let i=await Py(t,e,r,void 0,n,o),s=Cy(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=Hd()+Ud(e),c=qd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",Aa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Dr,{expected:void 0,claims:s,claim:"nonce"})}return i}var X0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",Q0="OAUTH_RESPONSE_BODY_ERROR",e$="OAUTH_UNSUPPORTED_OPERATION",t$="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Nd="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var r$="OAUTH_RESPONSE_IS_NOT_JSON",Wd="OAUTH_RESPONSE_IS_NOT_CONFORM",n$="OAUTH_HTTP_REQUEST_FORBIDDEN",o$="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",Aa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Dr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Ia="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var i$="OAUTH_MISSING_SERVER_METADATA",s$="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Kt)}async function a$(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(Id(ka(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Nd,l)}if(!Ea(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(Id(ka(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Nd,l)}if(!Ea(u))throw O("JWT Payload must be a top level object",V,t);let d=Hd()+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',Aa,{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',Aa,{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 c$(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 u$=Symbol(),d$=Symbol();function Ey(t,e,r,n){if($a(t),Gd(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 d$:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case u$: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 B0(new URLSearchParams(r))}async function Ty(t,e,r){$a(t);let n=Sy(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Dd]!==!0),o=Ld(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(by(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:jd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function Ay(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);await wy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await za(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 My(t,e){return P0(t,"resourceIdentifier",r=>(C0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Oa(t,e){let r=t;if(!(r instanceof URL)&&r!==Ma)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)',Wd,e);Ci(e);let n=await za(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==Ma&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Ia,{expected:r.href,body:n,attribute:"resource"});return n}async function za(t,e=fy){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Nd,n)}if(!Ea(r))throw O('"response" body must be a top level object',V,{body:r});return r}var Ma=Symbol(),l$=Symbol();var Pi="TLS certificate not trusted. Configure system trust or NODE_EXTRA_CA_CERTS.",$y={UNABLE_TO_GET_ISSUER_CERT:Pi,UNABLE_TO_GET_ISSUER_CERT_LOCALLY:Pi,UNABLE_TO_VERIFY_LEAF_SIGNATURE:Pi,DEPTH_ZERO_SELF_SIGNED_CERT:Pi,SELF_SIGNED_CERT_IN_CHAIN:Pi,CERT_HAS_EXPIRED:"TLS certificate expired. Check the system clock or contact the server administrator.",ERR_TLS_CERT_ALTNAME_INVALID:"TLS certificate hostname mismatch. Verify the server URL or contact the network administrator."};function xi(t){let e=new Set,r=t,n;for(let o=0;o<16&&!(typeof r!="object"||r===null||e.has(r));o++){if(e.add(r),"name"in r&&(r.name==="AbortError"||r.name==="TimeoutError")||"code"in r&&r.code==="ABORT_ERR")return;"code"in r&&typeof r.code=="string"&&Object.hasOwn($y,r.code)&&(n??=r.code),r="cause"in r?r.cause:void 0}return n}function ki(t){return Object.assign(new Error($y[t]),{code:t})}var zy=f$.child({prefix:"pi-mcp"}),Ei=1e4,p$=1e3,h$=401,Iy=200,m$="accounts.google.com",g$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,y$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Ny;function fo(){return Ny??globalThis.fetch}function Dy(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Ly(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Kd(t){let e=Ly(t),r,n=o=>{r??=xi(o)};try{let o=await v$(e,n),i=o?.authorization_servers?.map(s=>new URL(s))??[e];for(let s of i){let a=await R$(s,n);if(a)return Object.assign(a,{resourceScopes:o?.scopes_supported,resourceIdentifier:o?.resource})}}catch(o){throw La(o)}throw r?ki(r):new Error("Failed to discover metadata URL")}async function v$(t,e){try{let r=await My(t,{signal:AbortSignal.timeout(Ei),[vn]:Ny??void 0});return r.ok?await Oa(t,r):(r.body?.cancel().catch(()=>{}),await jy(t,r.headers.get("www-authenticate"),e)??await Oy(t,e))}catch(r){return e(r),await Oy(t,e)}}async function Oy(t,e){for(let r of["HEAD","GET"])try{let n=await fo()(t,{method:r,signal:AbortSignal.timeout(Ei)});n.body?.cancel().catch(()=>{});let o=await jy(t,n.headers.get("www-authenticate"),e);if(o)return o}catch(n){e(n)}}async function jy(t,e,r){let n=b$(e);if(n)try{let o=await fo()(n,{signal:AbortSignal.timeout(Ei)});return await _$(t,o)}catch(o){r(o);return}}async function _$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Oa(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Ia)throw o;let i=S$(r);if(!i||!w$(i,t))throw o;return await Oa(i,new Response(r,n))}}function S$(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function w$(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 b$(t){if(!t)return;let e=t.match(g$),r=t.match(y$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function R$(t,e){for(let r of C$(t))try{let n=new URL(r,t),o=await fo()(n,{signal:AbortSignal.timeout(Ei)});if(o.body?.cancel().catch(()=>{}),!o.ok)continue;return n}catch(n){e(n)}}function C$(t){let e=t.pathname.startsWith("/")?t.pathname.slice(1):t.pathname;return[...e.length>0?[new URL(`/.well-known/oauth-authorization-server/${e}`,t),new URL(`/.well-known/openid-configuration/${e}`,t),new URL(`/${e}/.well-known/openid-configuration`,t)]:[],new URL("/.well-known/oauth-authorization-server",t),new URL("/.well-known/openid-configuration",t)]}async function Jd(t){try{let e=await fo()(t,{signal:AbortSignal.timeout(Ei)}),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 ly(o,new Response(r,n))}catch(e){throw La(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 Vd=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 x$(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 Yd({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 x$({...t,clientId:o});if(!e.registration_endpoint)throw new Vd(e.issuer);return await k$(e,r)}async function k$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await Ty(t,{client_name:Qg,client_uri:ey,logo_uri:ty,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:E$});return n.ok||zy.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await Ay(n)}catch(r){throw La(r)}}async function E$(t,e){let r=await fo()(t,Dy(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||zy.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${A$(n)}`),r.status===200&&(o.status=201,o.statusText="Created"),o.status===201)try{let i=JSON.parse(n);i.client_secret_expires_at||(i.client_secret_expires_at=0),"client_secret"in i&&!i.client_secret&&(i.client_secret=void 0),n=JSON.stringify(i)}catch{}return new Response(n,o)}function T$(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,Dy(o))}function A$(t){try{let e=JSON.parse(t);for(let r of Object.keys(e))/secret|token/i.test(r)&&(e[r]="[REDACTED]");return JSON.stringify(e)}catch{return t.length>Iy?`${t.slice(0,Iy)}\u2026`:t}}async function Na(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=py(),c=await gy(a),u=hy(),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=Ly(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"),m.hostname===m$&&(m.searchParams.set("access_type","offline"),m.searchParams.set("prompt","consent")),r.code_challenge_methods_supported?.includes("S256")||(d=my(),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 Da(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Xd(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 Na(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function M$(t,e,r){let n=await xy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:T$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return ky(t.serverMetadata,t.client,await $$(n))}async function Qd(t,e){try{let r=Ey(e.serverMetadata,e.client,t,e.state),n=await O$(e.client,o=>M$(e,r,o));return D$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw La(r)}}async function $$(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 Fy(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function I$(t){let e=Fy(t);return e===void 0?vy():t.token_endpoint_auth_method==="client_secret_basic"?yy(e):Zd(e)}async function O$(t,e){try{return await e(I$(t))}catch(r){let n=z$(t);if(n&&N$(r))return await e(n);throw r}}function z$(t){let e=Fy(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Zd(e)}function N$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===h$||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function D$(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*p$:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function La(t){let e=xi(t);if(e)return ki(e);if(t instanceof uo||t instanceof bi){let r=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${r}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var L$=/(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,Uy=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,qy=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Hy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",j$=/[.*+?^${}()|[\]\\]/g;function el(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function F$(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:el(a,r),{value:c&&"value"in c?Gy(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 Gy(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return el(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 el(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:F$(t,e,r)}function rl(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(j$,"\\$&")).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=>Gy(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var U$=500,q$=8192,H$=6;function G$(t){return Uy.test(t)||qy.test(t)||Hy.test(t)}var Z$=new RegExp(Uy.source,"g"),B$=new RegExp(qy.source,"gi"),W$=new RegExp(Hy.source,"g");function Zy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function ja(t){return t&&Zy(t,q$).replace(Z$,_n).replace(B$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(W$,_n)}function tl(t,e,r){if(e)return _n;if(typeof t=="string")return G$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=H$)return"[truncated]";if(Array.isArray(t))return t.map(o=>tl(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=tl(i,L$.test(o),r+1);return n}function By(t,e=U$){if(t==null)return;let r=tl(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Zy(n,e)}var Vy={reportError:()=>{}},Wy=Symbol.for("__pi_mcp_error_reporter_slot__");function Ky(){let t=globalThis,e=t[Wy];return e||(e={reporter:null},t[Wy]=e),e}function Jy(t){let e=Ky(),r=e.reporter??Vy;return e.reporter=t,r}function V$(){return Ky().reporter??Vy}function Ti(t,e){try{V$().reportError(t,e)}catch{}}import{logger as K$}from"@hermes/logger";var nl=K$.child({prefix:"pi-mcp"});function Yy(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++):nl.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];nl.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Xy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(Cd)){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 Qy(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,nl.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function ev(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as J$}from"@hermes/logger";var Ai=J$.child({prefix:"pi-mcp"}),Y$="$augment-",Mi=/\$augment-[a-zA-Z0-9_.-]+/g,X$=new RegExp(Mi.source);function Lr(t){return X$.test(t)}function Fa(t){return t.slice(Y$.length)}function $i(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Mi))e.add(Fa(n[0]));return[...e].sort()}var Q$=["permission_denied","missing","transient"];function tv(t){let e=new Set(t);return Q$.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 rv(t,e,r,n,o,i,s){let a=[...t.matchAll(Mi)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Fa(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),Ai.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),Ai.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),Ai.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),Ai.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function nv({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(!Lr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){Ai.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await rv(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 eI=/["$`\\]/g;function tI(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 rI(t,e){let r=tI(e);if(r==="double")return t.replace(eI,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function ov(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await rv(t,"command",e,n,o,i,r?rI: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 Nq}from"node:async_hooks";var iv,ol=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 Jt=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"}};(iv=globalThis).__zod_globalConfig??(iv.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Qe(t){return t&&Object.assign(ho,t),ho}var H={};Wu(H,{BIGINT_FORMAT_RANGES:()=>uv,Class:()=>sl,NUMBER_FORMAT_RANGES:()=>fl,aborted:()=>Ur,allowsEval:()=>ul,assert:()=>aI,assertEqual:()=>nI,assertIs:()=>iI,assertNever:()=>sI,assertNotEqual:()=>oI,assignProp:()=>jr,base64ToUint8Array:()=>lv,base64urlToUint8Array:()=>CI,cached:()=>go,captureStackTrace:()=>Ha,cleanEnum:()=>RI,cleanRegex:()=>Ni,clone:()=>yt,cloneDef:()=>uI,createTransparentProxy:()=>mI,defineLazy:()=>Y,esc:()=>qa,escapeRegex:()=>ur,explicitlyAborted:()=>pl,extend:()=>vI,finalizeIssue:()=>vt,floatSafeRemainder:()=>al,getElementAtPath:()=>dI,getEnumValues:()=>Oi,getLengthableOrigin:()=>Di,getParsedType:()=>hI,getSizableOrigin:()=>dv,hexToUint8Array:()=>xI,isObject:()=>Sn,isPlainObject:()=>Fr,issue:()=>yo,joinValues:()=>Ua,jsonStringifyReplacer:()=>mo,merge:()=>SI,mergeDefs:()=>cr,normalizeParams:()=>M,nullish:()=>zi,numKeys:()=>pI,objectClone:()=>cI,omit:()=>yI,optionalKeys:()=>ll,parsedType:()=>hl,partial:()=>wI,pick:()=>gI,prefixIssues:()=>dr,primitiveTypes:()=>cv,promiseAllObject:()=>lI,propertyKeyTypes:()=>dl,randomString:()=>fI,required:()=>bI,safeExtend:()=>_I,shallowClone:()=>av,slugify:()=>cl,stringifyPrimitive:()=>Ga,uint8ArrayToBase64:()=>fv,uint8ArrayToBase64url:()=>PI,uint8ArrayToHex:()=>kI,unwrapMessage:()=>Ii});function nI(t){return t}function oI(t){return t}function iI(t){}function sI(t){throw new Error("Unexpected value in exhaustive check")}function aI(t){}function Oi(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 Ua(t,e="|"){return t.map(r=>Ga(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 zi(t){return t==null}function Ni(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function al(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 sv=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==sv)return n===void 0&&(n=sv,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function cI(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function jr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function cr(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function uI(t){return cr(t._zod.def)}function dI(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function lI(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 fI(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function qa(t){return JSON.stringify(t)}function cl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ha="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var ul=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 Fr(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 av(t){return Fr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function pI(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var hI=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}`)}},dl=new Set(["string","number","symbol"]),cv=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ur(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 mI(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 Ga(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function ll(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var fl={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]},uv={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function gI(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=cr(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 jr(this,"shape",s),s},checks:[]});return yt(t,i)}function yI(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=cr(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 jr(this,"shape",s),s},checks:[]});return yt(t,i)}function vI(t,e){if(!Fr(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=cr(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return jr(this,"shape",i),i}});return yt(t,o)}function _I(t,e){if(!Fr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=cr(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return jr(this,"shape",n),n}});return yt(t,r)}function SI(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=cr(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return jr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function wI(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=cr(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 jr(this,"shape",c),c},checks:[]});return yt(e,s)}function bI(t,e,r){let n=cr(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 jr(this,"shape",i),i}});return yt(e,n)}function Ur(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 pl(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 dr(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ii(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ii(t.inst?._zod.def?.error?.(t))??Ii(e?.error?.(t))??Ii(r.customError?.(t))??Ii(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 dv(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Di(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function hl(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 RI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function lv(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 fv(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function CI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return lv(e+r)}function PI(t){return fv(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function xI(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 kI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var sl=class{constructor(...e){}};var pv=(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})},Za=S("$ZodError",pv),ml=S("$ZodError",pv,{Parent:Error});function gl(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 yl(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 Ba=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 Jt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Qe())));throw Ha(a,o?.callee),a}return s.value};var Wa=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 Ha(a,o?.callee),a}return s.value};var Li=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 Jt;return i.issues.length?{success:!1,error:new(t??Za)(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},ji=Li(ml),Fi=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}},Va=Fi(ml),hv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ba(t)(e,r,o)};var mv=t=>(e,r,n)=>Ba(t)(e,r,n);var gv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Wa(t)(e,r,o)};var yv=t=>async(e,r,n)=>Wa(t)(e,r,n);var vv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Li(t)(e,r,o)};var _v=t=>(e,r,n)=>Li(t)(e,r,n);var Sv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Fi(t)(e,r,o)};var wv=t=>async(e,r,n)=>Fi(t)(e,r,n);var bv=/^[cC][0-9a-z]{6,}$/,Rv=/^[0-9a-z]+$/,Cv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Pv=/^[0-9a-vA-V]{20}$/,xv=/^[A-Za-z0-9]{27}$/,kv=/^[a-zA-Z0-9_-]{21}$/,Ev=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Tv=/^([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})$/,vl=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 Av=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var TI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Mv(){return new RegExp(TI,"u")}var $v=/^(?:(?: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])$/,Iv=/^(([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 Ov=/^((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])$/,zv=/^(([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])$/,Nv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,_l=/^[A-Za-z0-9_-]*$/;var Dv=/^https?$/,Lv=/^\+[1-9]\d{6,14}$/,jv="(?:(?:\\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])))",Fv=new RegExp(`^${jv}$`);function Uv(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 qv(t){return new RegExp(`^${Uv(t)}$`)}function Hv(t){let e=Uv({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(`^${jv}T(?:${n})$`)}var Gv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Zv=/^-?\d+n?$/,Bv=/^-?\d+$/,Sl=/^-?\d+(?:\.\d+)?$/,Wv=/^(?:true|false)$/i,Vv=/^null$/i;var Kv=/^[^A-Z]*$/,Jv=/^[^a-z]*$/;var Oe=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Yv={number:"number",bigint:"bigint",object:"date"},wl=S("$ZodCheckLessThan",(t,e)=>{Oe.init(t,e);let r=Yv[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})}}),bl=S("$ZodCheckGreaterThan",(t,e)=>{Oe.init(t,e);let r=Yv[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})}}),Xv=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):al(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})}}),Qv=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]=fl[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=Bv)}),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 e_=S("$ZodCheckMaxLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!zi(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=Di(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),t_=S("$ZodCheckMinLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!zi(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=Di(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),r_=S("$ZodCheckLengthEquals",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!zi(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=Di(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})}}),qi=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=()=>{})}),n_=S("$ZodCheckRegex",(t,e)=>{qi.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})}}),o_=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Kv),qi.init(t,e)}),i_=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Jv),qi.init(t,e)}),s_=S("$ZodCheckIncludes",(t,e)=>{Oe.init(t,e);let r=ur(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})}}),a_=S("$ZodCheckStartsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`^${ur(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})}}),c_=S("$ZodCheckEndsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`.*${ur(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 u_=S("$ZodCheckOverwrite",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ka=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 Wt(t){let e={name:io,label:io,description:d0(),parameters:Kg.Unsafe(r0),execute:(n,o,i,s,a)=>c0(t,a,o)},r={name:Dr,label:Dr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Kg.Unsafe(n0),execute:(n,o,i,s)=>u0(t,o,i,{toolCallId:n},s)};Vg(io,"mcp"),Vg(Dr,"mcp"),t.registerTool(e),t.registerTool(r),Ir(e),Ir(r),Yg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as EE}from"@augmentcode/auggie-v2";import{logger as tH,logPublic as rH}from"@hermes/logger";import{logger as v0}from"@hermes/logger";import{logger as l0}from"@hermes/logger";function hn(t){return new Promise(e=>setTimeout(e,t))}var Qg=l0.child({prefix:"pi-mcp"}),yi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},xd=3e4,cr=200,gt=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 Ed(t){return t instanceof gt?t.statusCode>=500:!0}async function mn(t){let e;for(let r=0;r<yi.maxTries;r++)try{return await t()}catch(n){if(e=n,!Ed(n))throw n;if(r<yi.maxTries-1){let o=Math.min(yi.initialMs*yi.mult**r,yi.maxMs);await hn(o)}}throw e}var Ea=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??xd}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>cr?`${i.slice(0,cr)}\u2026[truncated]`:i;throw new gt(o.status,o.statusText,s)}return await o.json()}getMcpTenantConfigs(e){return mn(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return mn(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function ey(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)}`;Qg.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)}`;Qg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function f0(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var ty=32;function p0(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>ty&&(e=e.slice(0,ty)),e=e.replace(/_+$/,""),e}function ry(t,e){let r=e?p0(e):"",n=f0(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function ny(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 h0=1e12,m0=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function g0(t){let e=m0.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 y0(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<h0?t*1e3:t;if(typeof t=="string")return g0(t)}function oy(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:y0(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 Vt=v0.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},ao=class extends Error{},sy=[100,500],_0=sy.length+1,S0=t=>new Promise(e=>{setTimeout(e,t)});function iy(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var Td="augment.mcp-access-token.",w0=JSON.stringify({retired:!0}),ka=3;function Kt(t){return`${Td}${t}`}function Ta(t){return`legacy:${t}`}function At(t){return t?.id?ry(t.id,t.name):void 0}function Si(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:ay(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function ay(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function wi(t){if(typeof t=="string")try{return wi(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:ay(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return wi(Si(t))}function b0(t){return wi(Si(t))}function R0(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function so(t){try{let e=JSON.parse(t);return{credentialIdentity:wi(e.credentialIdentity),state:R0(e)}}catch{return{}}}function vi(t,e){let r={...t,type:"oauth",credentialIdentity:Si(e)};return JSON.stringify(r)}function gn(t,e){let r=ny({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:Si(e),credentialState:"active"})}function C0(t){return JSON.stringify({credentialIdentity:Si(t),credentialState:"retired",retired:!0})}function P0(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=b0(e),i=wi(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 kd(t){try{let e=oy(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||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:void 0,authorization_endpoint:typeof r.authorization_endpoint=="string"?r.authorization_endpoint:void 0,token_endpoint:r.token_endpoint},client:{client_id:n.client_id,...o?{client_secret:o}:{}}}}catch{return}}var _i=class{_memory=new Xn;_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=S0){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(()=>{Vt.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(()=>{Vt.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<ka;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=so(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=kd(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,gn(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=so(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!kd(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,gn(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:Ta(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(Kt(e),()=>this._restoreLegacyCredential({client:a,key:Kt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Vt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==Ta(e))throw new Z;try{return await this._enqueueWrite(Kt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Kt(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!==vi(i,a)))try{return{revision:await r.upsertUserSecret(n,vi(s,c),u.revision),domain:Ta(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!==gn(o,s)))try{return{revision:await r.upsertUserSecret(n,gn(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!==vi(o,s)))try{await r.upsertUserSecret(n,vi(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{Vt.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<ka;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?so(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,gn(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<ka;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?so(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,C0(n),s?.version??"0");return}catch(c){if(!this._isVersionConflict(c))throw c}}throw new Z}_isVersionConflict(e){return e instanceof gt&&(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:Ta(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=iy(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?_0:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new ao;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 ao}_persistenceRetryDelay(e,r,n){let o=n?sy[r]:void 0,i=!(e instanceof Z)&&Ed(e);if(o===void 0||!i){n&&Vt.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(Kt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Kt(e),vi(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 ao||!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(Kt(e),async()=>{let p=await c.upsertUserSecret(Kt(e),w0)}):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"&&Vt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Vt.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=Kt(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 ao&&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(()=>{Vt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(iy(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<ka;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=so(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=kd(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,gn(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=so(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,gn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Kt(r));return o?P0(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){Vt.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),Vt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var cy="Augment Code",uy="https://augmentcode.com",dy="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var E0=1e3,k0=500;function Md(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function bi(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var Ad=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function ly(t){return new URLSearchParams({k:t}).toString().slice(2)}function T0(t,e){let r=`${ly(t)}:${ly(e)}`;return`Basic ${btoa(r)}`}function my(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function A0(t){return t.client.token_endpoint_auth_method==="none"||!my(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function M0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function $0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var I0=401,gy=500;function $d(t,...e){return t.status<gy&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function fy(t){return $d(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===I0}async function py(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=my(t);e==="basic"&&i?n.Authorization=T0(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=$0(c),d=c.slice(0,k0);throw new yn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new Ad;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*E0:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function hy(t,e){try{return await py(t,e,t.resource)}catch(r){if(r instanceof yn&&t.resource&&$d(r,"invalid_target"))return await py(t,e,void 0);throw r}}var yn=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 Id(t){return!(t instanceof yn)||t.status>=gy?!1:$d(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Od(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=A0(t);try{return await hy(e,r)}catch(n){let o=M0(r);if(!(n instanceof yn)||!o||!fy(n))throw n;try{return await hy(e,o)}catch(i){throw i instanceof yn&&fy(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as E$}from"@hermes/logger";var Dd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Dd="oauth4webapi/v3.8.6");function fo(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 Jt="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 qd=Symbol(),O0=Symbol(),z0=Symbol(),_n=Symbol();var yy=Symbol();var N0=new TextEncoder,D0=new TextDecoder;function Ld(t){return typeof t=="string"?N0.encode(t):D0.decode(t)}var jd;Uint8Array.prototype.toBase64?jd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):jd=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 Fd;Uint8Array.fromBase64?Fd=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Jt,e)}}:Fd=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.",Jt,e)}};function Ma(t){return typeof t=="string"?Fd(t):jd(t)}var uo=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=m$,Error.captureStackTrace?.(this,this.constructor)}},Ri=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 Ri(t,{code:e,cause:r})}function $a(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Hd(t){fo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Dd&&!e.has("user-agent")&&e.set("user-agent",Dd),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Jt);return e}function Gd(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 L0(t){return t.includes("//")?t.replace("//","/"):t}function j0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=L0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function F0(t,e,r,n){if(!(t instanceof URL))throw he(`"${e}" must be an instance of URL`,Xe);ky(t,n?.[qd]!==!0);let o=r(new URL(t.href)),i=Hd(n?.headers);return i.set("accept","application/json"),(n?.[_n]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:Gd(o,n?.signal)})}function co(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`,Jt,o);return}throw he(`${r} must be a positive number`,Jt,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`,Jt,n)}catch(o){throw r?O(o.message,r,n):o}}async function Sy(t,e){let r=t;if(!(r instanceof URL)&&r!==za)throw he('"expectedIssuerIdentifier" must be an instance of URL',Xe);if(!fo(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)',Xd,e);xi(e);let n=await ja(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==za&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Da,{expected:r.href,body:n,attribute:"issuer"});return n}function wy(t){q0(t,"application/json")}function U0(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,y$,t)}function q0(t,e){if(e$(t)!==e)throw U0(t,e)}function Zd(){return Ma(crypto.getRandomValues(new Uint8Array(32)))}function by(){return Zd()}function Ry(){return Zd()}function Cy(){return Zd()}async function Py(t){return $e(t,"codeVerifier"),Ma(await crypto.subtle.digest("SHA-256",Ld(t)))}function Bd(t){let e=t?.[O0];return typeof e=="number"&&Number.isFinite(e)?e:0}function Wd(t){let e=t?.[z0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Vd(){return Math.floor(Date.now()/1e3)}function Na(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Xe);$e(t.issuer,'"as.issuer"')}function Kd(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Xe);$e(t.client_id,'"client.client_id"')}function vy(t){return encodeURIComponent(t).replace(/(?:[-_.!~*'()]|%20)/g,e=>{switch(e){case"-":case"_":case".":case"!":case"~":case"*":case"'":case"(":case")":return`%${e.charCodeAt(0).toString(16).toUpperCase()}`;case"%20":return"+";default:throw new Error}})}function Jd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function xy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=vy(r.client_id),s=vy(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function Ey(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var H0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function ky(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",v$,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",_$,t)}function _y(t,e,r,n){let o;if(typeof t!="string"||!(o=H0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?S$:w$,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return ky(o,n),o}function Ty(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?_y(t.mtls_endpoint_aliases[e],e,r,n):_y(t[e],e,r,n)}var lo=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=h$,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)}},Ci=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=g$,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)}},Pi=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=p$,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Ia="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",G0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",Z0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',B0="("+Ia+")\\s*=\\s*"+Z0,W0="("+Ia+")\\s*=\\s*("+Ia+")",V0=new RegExp("^[,\\s]*("+Ia+")"),K0=new RegExp("^[,\\s]*"+B0+"[,\\s]*(.*)"),J0=new RegExp("^[,\\s]*"+W0+"[,\\s]*(.*)"),Y0=new RegExp("^("+G0+")(?:$|[,\\s])(.*)");function X0(t){if(!fo(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(V0),i=o?.[1].toLowerCase();if(!i)return;let s=n.substring(o[0].length);if(s&&!s.match(/^[\s,]/))return;let a=s.match(/^\s+(.*)$/),c=!!a;n=a?a[1]:void 0;let u={},d;if(c)for(;n;){let f,p;if(o=n.match(K0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(J0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(Y0)){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 Q0(t){if(t.status>399&&t.status<500){xi(t),wy(t);try{let e=await t.clone().json();if($a(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function Ay(t,e,r){if(t.status!==e){o$(t);let n;throw(n=await Q0(t))?(await t.body?.cancel(),new lo("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)`,Xd,t)}}function My(t){if(!Yd.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Jt)}function e$(t){return t.headers.get("content-type")?.split(";")[0]}async function t$(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?.[_n]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:Gd(n,s?.signal)})}async function r$(t,e,r,n,o,i){let s=Ty(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[qd]!==!0);o.set("grant_type",n);let a=Hd(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(My(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await t$(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var $y=new WeakMap,n$=new WeakMap;function Iy(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',Jt);return e}async function Oy(t,e,r,n,o,i){if(Na(t),Kd(e),!fo(r,Response))throw he('"response" must be an instance of Response',Xe);await Ay(r,200,"Token Endpoint"),xi(r);let s=await ja(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;co(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&&(co(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await b$(s.id_token,R$.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Bd(e),Wd(e),o).then(d$.bind(void 0,a)).then(s$.bind(void 0,t)).then(i$.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',Lr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',Lr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&co(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),n$.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 uo("unsupported `token_type` value",{cause:{body:s}});return s}function o$(t){let e;if(e=X0(t))throw new Pi("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function i$(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',Lr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',Lr,{expected:t,claims:e.claims,claim:"aud"});return e}function s$(t,e){let r=t[x$]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',Lr,{expected:r,claims:e.claims,claim:"iss"});return e}var Yd=new WeakSet;function a$(t){return Yd.add(t),t}var c$=Symbol();async function zy(t,e,r,n,o,i,s){if(Na(t),Kd(e),!Yd.has(n))throw he('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Jt);$e(o,'"redirectUri"');let a=vn(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!==c$&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),r$(t,e,r,"authorization_code",c,s)}var u$={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 d$(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${u$[r]}) claim missing`,V,{claims:e.claims});return e}var zd=Symbol(),Nd=Symbol();async function Ny(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?l$(t,e,r,n.expectedNonce,n.maxAge,n[yy],n.recognizedTokenTypes):f$(t,e,r,n?.[yy],n?.recognizedTokenTypes)}async function l$(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=zd;break;case zd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Nd;break;case Nd:break;default:co(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await Oy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=Iy(c);if(o!==Nd){let d=Vd()+Bd(e),l=Wd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",Oa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===zd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Lr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',Lr,{expected:n,claims:u,claim:"nonce"});return c}async function f$(t,e,r,n,o){let i=await Oy(t,e,r,void 0,n,o),s=Iy(i);if(s){if(e.default_max_age!==void 0){co(e.default_max_age,!0,'"client.default_max_age"');let a=Vd()+Bd(e),c=Wd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",Oa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Lr,{expected:void 0,claims:s,claim:"nonce"})}return i}var p$="OAUTH_WWW_AUTHENTICATE_CHALLENGE",h$="OAUTH_RESPONSE_BODY_ERROR",m$="OAUTH_UNSUPPORTED_OPERATION",g$="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Ud="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var y$="OAUTH_RESPONSE_IS_NOT_JSON",Xd="OAUTH_RESPONSE_IS_NOT_CONFORM",v$="OAUTH_HTTP_REQUEST_FORBIDDEN",_$="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",Oa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Lr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Da="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var S$="OAUTH_MISSING_SERVER_METADATA",w$="OAUTH_INVALID_SERVER_METADATA";function xi(t){if(t.bodyUsed)throw he('"response" body has been used already',Jt)}async function b$(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 uo("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(Ld(Ma(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Ud,l)}if(!$a(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new uo('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(Ld(Ma(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Ud,l)}if(!$a(u))throw O("JWT Payload must be a top level object",V,t);let d=Vd()+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',Oa,{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',Oa,{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 R$(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 vn(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 C$=Symbol(),P$=Symbol();function Dy(t,e,r,n){if(Na(t),Kd(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw he('"parameters" must be an instance of URLSearchParams, or URL',Xe);if(vn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=vn(r,"iss"),i=vn(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 P$:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case C$: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(vn(r,"error"))throw new Ci("authorization response from the server is an error",{cause:r});let a=vn(r,"id_token"),c=vn(r,"token");if(a!==void 0||c!==void 0)throw new uo("implicit and hybrid flows are not supported");return a$(new URLSearchParams(r))}async function Ly(t,e,r){Na(t);let n=Ty(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[qd]!==!0),o=Hd(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(My(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?.[_n]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Gd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function jy(t){if(!fo(t,Response))throw he('"response" must be an instance of Response',Xe);await Ay(t,201,"Dynamic Client Registration Endpoint"),xi(t);let e=await ja(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&&co(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function Fy(t,e){return F0(t,"resourceIdentifier",r=>(j0(r,".well-known/oauth-protected-resource",!0),r),e)}async function La(t,e){let r=t;if(!(r instanceof URL)&&r!==za)throw he('"expectedResourceIdentifier" must be an instance of URL',Xe);if(!fo(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)',Xd,e);xi(e);let n=await ja(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==za&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Da,{expected:r.href,body:n,attribute:"resource"});return n}async function ja(t,e=wy){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Ud,n)}if(!$a(r))throw O('"response" body must be a top level object',V,{body:r});return r}var za=Symbol(),x$=Symbol();var Ei="TLS certificate not trusted. Configure system trust or NODE_EXTRA_CA_CERTS.",Uy={UNABLE_TO_GET_ISSUER_CERT:Ei,UNABLE_TO_GET_ISSUER_CERT_LOCALLY:Ei,UNABLE_TO_VERIFY_LEAF_SIGNATURE:Ei,DEPTH_ZERO_SELF_SIGNED_CERT:Ei,SELF_SIGNED_CERT_IN_CHAIN:Ei,CERT_HAS_EXPIRED:"TLS certificate expired. Check the system clock or contact the server administrator.",ERR_TLS_CERT_ALTNAME_INVALID:"TLS certificate hostname mismatch. Verify the server URL or contact the network administrator."};function ki(t){let e=new Set,r=t,n;for(let o=0;o<16&&!(typeof r!="object"||r===null||e.has(r));o++){if(e.add(r),"name"in r&&(r.name==="AbortError"||r.name==="TimeoutError")||"code"in r&&r.code==="ABORT_ERR")return;"code"in r&&typeof r.code=="string"&&Object.hasOwn(Uy,r.code)&&(n??=r.code),r="cause"in r?r.cause:void 0}return n}function Ti(t){return Object.assign(new Error(Uy[t]),{code:t})}var Gy=E$.child({prefix:"pi-mcp"}),Ai=1e4,k$=1e3,T$=401,qy=200,A$="accounts.google.com",M$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,$$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Zy;function po(){return Zy??globalThis.fetch}function By(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Wy(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function el(t){let e=Wy(t),r,n=o=>{r??=ki(o)};try{let o=await I$(e,n),i=o?.authorization_servers?.map(s=>new URL(s))??[e];for(let s of i){let a=await L$(s,n);if(a)return Object.assign(a,{resourceScopes:o?.scopes_supported,resourceIdentifier:o?.resource})}}catch(o){throw qa(o)}throw r?Ti(r):new Error("Failed to discover metadata URL")}async function I$(t,e){try{let r=await Fy(t,{signal:AbortSignal.timeout(Ai),[_n]:Zy??void 0});return r.ok?await La(t,r):(r.body?.cancel().catch(()=>{}),await Vy(t,r.headers.get("www-authenticate"),e)??await Hy(t,e))}catch(r){return e(r),await Hy(t,e)}}async function Hy(t,e){for(let r of["HEAD","GET"])try{let n=await po()(t,{method:r,signal:AbortSignal.timeout(Ai)});n.body?.cancel().catch(()=>{});let o=await Vy(t,n.headers.get("www-authenticate"),e);if(o)return o}catch(n){e(n)}}async function Vy(t,e,r){let n=D$(e);if(n)try{let o=await po()(n,{signal:AbortSignal.timeout(Ai)});return await O$(t,o)}catch(o){r(o);return}}async function O$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await La(t,new Response(r,n))}catch(o){if(!(o instanceof Ri)||o.code!==Da)throw o;let i=z$(r);if(!i||!N$(i,t))throw o;return await La(i,new Response(r,n))}}function z$(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function N$(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(M$),r=t.match($$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function L$(t,e){for(let r of j$(t))try{let n=new URL(r,t),o=await po()(n,{signal:AbortSignal.timeout(Ai)});if(o.body?.cancel().catch(()=>{}),!o.ok)continue;return n}catch(n){e(n)}}function j$(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 tl(t){try{let e=await po()(t,{signal:AbortSignal.timeout(Ai)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await F$(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 qa(e)}}async function F$(t){if(!t.ok)throw new Error("Invalid status code from discovery response");let e=await t.json();if(!e.issuer||typeof e.issuer!="string")throw new Error("Invalid issuer from discovery response");return new URL(e.issuer)}var Qd=class extends Error{issuer;constructor(e){super(`This MCP server's authorization server (\`${e}\`) does not support Dynamic Client Registration. Configure a static OAuth Client ID and Secret in the Advanced section.`),this.name="McpOAuthDcrUnsupportedError",this.issuer=e}};function U$(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 rl({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 U$({...t,clientId:o});if(!e.registration_endpoint)throw new Qd(e.issuer);return await q$(e,r)}async function q$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await Ly(t,{client_name:cy,client_uri:uy,logo_uri:dy,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[_n]:H$});return n.ok||Gy.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await jy(n)}catch(r){throw qa(r)}}async function H$(t,e){let r=await po()(t,By(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||Gy.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${Z$(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 G$(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}),po()(t,By(o))}function Z$(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>qy?`${t.slice(0,qy)}\u2026`:t}}async function Fa(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=by(),c=await Py(a),u=Ry(),d,l=(o??r.scopes_supported?.join(" "))?.split(/\s+/).filter(Boolean),f=!1;!s?.disableOfflineAccessAugmentation&&l?.length&&!l.includes("offline_access")&&r.scopes_supported?.includes("offline_access")&&(l.push("offline_access"),f=!0);let p=l?.join(" ")||void 0,h=Wy(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"),m.hostname===A$&&(m.searchParams.set("access_type","offline"),m.searchParams.set("prompt","consent")),r.code_challenge_methods_supported?.includes("S256")||(d=Cy(),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 Ua(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function nl(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 Fa(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function B$(t,e,r){let n=await zy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[_n]:G$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return Ny(t.serverMetadata,t.client,await W$(n))}async function ol(t,e){try{let r=Dy(e.serverMetadata,e.client,t,e.state),n=await K$(e.client,o=>B$(e,r,o));return X$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw qa(r)}}async function W$(t){let e=await t.text(),r={status:t.status,statusText:t.statusText,headers:t.headers};try{let n=JSON.parse(e);if("id_token"in n)return n.id_token=void 0,new Response(JSON.stringify(n),r)}catch{}return new Response(e,r)}function Ky(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function V$(t){let e=Ky(t);return e===void 0?Ey():t.token_endpoint_auth_method==="client_secret_basic"?xy(e):Jd(e)}async function K$(t,e){try{return await e(V$(t))}catch(r){let n=J$(t);if(n&&Y$(r))return await e(n);throw r}}function J$(t){let e=Ky(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Jd(e)}function Y$(t){return t instanceof lo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Pi?t.status===T$||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function X$(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*k$:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function qa(t){let e=ki(t);if(e)return Ti(e);if(t instanceof lo||t instanceof Ci){let r=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${r}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var Q$=/(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,Jy=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Yy=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Xy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,Sn="[redacted]",eI=/[.*+?^${}()|[\]\\]/g;function il(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function tI(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:il(a,r),{value:c&&"value"in c?Qy(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 Qy(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return il(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 il(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:tI(t,e,r)}function al(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(eI,"\\$&")).join("|"),"g"):void 0,n=e.some(i=>Sn.includes(i))?"":Sn,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=>Qy(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var rI=500,nI=8192,oI=6;function iI(t){return Jy.test(t)||Yy.test(t)||Xy.test(t)}var sI=new RegExp(Jy.source,"g"),aI=new RegExp(Yy.source,"gi"),cI=new RegExp(Xy.source,"g");function ev(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Ha(t){return t&&ev(t,nI).replace(sI,Sn).replace(aI,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${Sn}`).replace(cI,Sn)}function sl(t,e,r){if(e)return Sn;if(typeof t=="string")return iI(t)?Sn:t;if(t===null||typeof t!="object")return t;if(r>=oI)return"[truncated]";if(Array.isArray(t))return t.map(o=>sl(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=sl(i,Q$.test(o),r+1);return n}function tv(t,e=rI){if(t==null)return;let r=sl(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return ev(n,e)}var nv={reportError:()=>{}},rv=Symbol.for("__pi_mcp_error_reporter_slot__");function ov(){let t=globalThis,e=t[rv];return e||(e={reporter:null},t[rv]=e),e}function iv(t){let e=ov(),r=e.reporter??nv;return e.reporter=t,r}function uI(){return ov().reporter??nv}function Mi(t,e){try{uI().reportError(t,e)}catch{}}import{logger as dI}from"@hermes/logger";var cl=dI.child({prefix:"pi-mcp"});function sv(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++):cl.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];cl.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function av(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(Td)){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 cv(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,cl.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function uv(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as lI}from"@hermes/logger";var $i=lI.child({prefix:"pi-mcp"}),fI="$augment-",Ii=/\$augment-[a-zA-Z0-9_.-]+/g,pI=new RegExp(Ii.source);function jr(t){return pI.test(t)}function Ga(t){return t.slice(fI.length)}function Oi(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ii))e.add(Ga(n[0]));return[...e].sort()}var hI=["permission_denied","missing","transient"];function dv(t){let e=new Set(t);return hI.find(r=>e.has(r))??"missing"}var yt=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 lv(t,e,r,n,o,i,s){let a=[...t.matchAll(Ii)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Ga(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),$i.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),$i.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),$i.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),$i.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function fv({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(!jr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){$i.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await lv(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 mI=/["$`\\]/g;function gI(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 yI(t,e){let r=gI(e);if(r==="double")return t.replace(mI,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function pv(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await lv(t,"command",e,n,o,i,r?yI: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 Yq}from"node:async_hooks";var hv,ul=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 Yt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ho=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(hv=globalThis).__zod_globalConfig??(hv.__zod_globalConfig={});var mo=globalThis.__zod_globalConfig;function Qe(t){return t&&Object.assign(mo,t),mo}var H={};Xu(H,{BIGINT_FORMAT_RANGES:()=>vv,Class:()=>ll,NUMBER_FORMAT_RANGES:()=>yl,aborted:()=>qr,allowsEval:()=>hl,assert:()=>bI,assertEqual:()=>vI,assertIs:()=>SI,assertNever:()=>wI,assertNotEqual:()=>_I,assignProp:()=>Fr,base64ToUint8Array:()=>Sv,base64urlToUint8Array:()=>jI,cached:()=>yo,captureStackTrace:()=>Wa,cleanEnum:()=>LI,cleanRegex:()=>Li,clone:()=>vt,cloneDef:()=>CI,createTransparentProxy:()=>AI,defineLazy:()=>X,esc:()=>Ba,escapeRegex:()=>dr,explicitlyAborted:()=>vl,extend:()=>II,finalizeIssue:()=>_t,floatSafeRemainder:()=>fl,getElementAtPath:()=>PI,getEnumValues:()=>Ni,getLengthableOrigin:()=>ji,getParsedType:()=>TI,getSizableOrigin:()=>_v,hexToUint8Array:()=>UI,isObject:()=>wn,isPlainObject:()=>Ur,issue:()=>vo,joinValues:()=>Za,jsonStringifyReplacer:()=>go,merge:()=>zI,mergeDefs:()=>ur,normalizeParams:()=>M,nullish:()=>Di,numKeys:()=>kI,objectClone:()=>RI,omit:()=>$I,optionalKeys:()=>gl,parsedType:()=>_l,partial:()=>NI,pick:()=>MI,prefixIssues:()=>lr,primitiveTypes:()=>yv,promiseAllObject:()=>xI,propertyKeyTypes:()=>ml,randomString:()=>EI,required:()=>DI,safeExtend:()=>OI,shallowClone:()=>gv,slugify:()=>pl,stringifyPrimitive:()=>Va,uint8ArrayToBase64:()=>wv,uint8ArrayToBase64url:()=>FI,uint8ArrayToHex:()=>qI,unwrapMessage:()=>zi});function vI(t){return t}function _I(t){return t}function SI(t){}function wI(t){throw new Error("Unexpected value in exhaustive check")}function bI(t){}function Ni(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 Za(t,e="|"){return t.map(r=>Va(r)).join(e)}function go(t,e){return typeof e=="bigint"?e.toString():e}function yo(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Di(t){return t==null}function Li(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function fl(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 mv=Symbol("evaluating");function X(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==mv)return n===void 0&&(n=mv,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function RI(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Fr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ur(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function CI(t){return ur(t._zod.def)}function PI(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function xI(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 Ba(t){return JSON.stringify(t)}function pl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Wa="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function wn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var hl=yo(()=>{if(mo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ur(t){if(wn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(wn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function gv(t){return Ur(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function kI(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var TI=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}`)}},ml=new Set(["string","number","symbol"]),yv=new Set(["string","number","bigint","boolean","symbol","undefined"]);function dr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vt(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 AI(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 Va(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function gl(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var yl={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]},vv={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function MI(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=ur(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 Fr(this,"shape",s),s},checks:[]});return vt(t,i)}function $I(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=ur(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 Fr(this,"shape",s),s},checks:[]});return vt(t,i)}function II(t,e){if(!Ur(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=ur(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Fr(this,"shape",i),i}});return vt(t,o)}function OI(t,e){if(!Ur(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ur(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Fr(this,"shape",n),n}});return vt(t,r)}function zI(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=ur(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Fr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return vt(t,r)}function NI(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=ur(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 Fr(this,"shape",c),c},checks:[]});return vt(e,s)}function DI(t,e,r){let n=ur(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 Fr(this,"shape",i),i}});return vt(e,n)}function qr(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 vl(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 lr(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function zi(t){return typeof t=="string"?t:t?.message}function _t(t,e,r){let n=t.message?t.message:zi(t.inst?._zod.def?.error?.(t))??zi(e?.error?.(t))??zi(r.customError?.(t))??zi(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 _v(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function ji(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function _l(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 vo(...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 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 wv(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function jI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Sv(e+r)}function FI(t){return wv(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function UI(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 qI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var ll=class{constructor(...e){}};var bv=(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,go,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Ka=S("$ZodError",bv),Sl=S("$ZodError",bv,{Parent:Error});function wl(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 bl(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 Ja=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 Yt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>_t(c,i,Qe())));throw Wa(a,o?.callee),a}return s.value};var Ya=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=>_t(c,i,Qe())));throw Wa(a,o?.callee),a}return s.value};var Fi=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 Yt;return i.issues.length?{success:!1,error:new(t??Ka)(i.issues.map(s=>_t(s,o,Qe())))}:{success:!0,data:i.value}},Ui=Fi(Sl),qi=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=>_t(s,o,Qe())))}:{success:!0,data:i.value}},Xa=qi(Sl),Rv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ja(t)(e,r,o)};var Cv=t=>(e,r,n)=>Ja(t)(e,r,n);var Pv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ya(t)(e,r,o)};var xv=t=>async(e,r,n)=>Ya(t)(e,r,n);var Ev=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Fi(t)(e,r,o)};var kv=t=>(e,r,n)=>Fi(t)(e,r,n);var Tv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return qi(t)(e,r,o)};var Av=t=>async(e,r,n)=>qi(t)(e,r,n);var Mv=/^[cC][0-9a-z]{6,}$/,$v=/^[0-9a-z]+$/,Iv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ov=/^[0-9a-vA-V]{20}$/,zv=/^[A-Za-z0-9]{27}$/,Nv=/^[a-zA-Z0-9_-]{21}$/,Dv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Lv=/^([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})$/,Rl=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 jv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var GI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Fv(){return new RegExp(GI,"u")}var Uv=/^(?:(?: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])$/,qv=/^(([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 Hv=/^((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])$/,Gv=/^(([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])$/,Zv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Cl=/^[A-Za-z0-9_-]*$/;var Bv=/^https?$/,Wv=/^\+[1-9]\d{6,14}$/,Vv="(?:(?:\\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])))",Kv=new RegExp(`^${Vv}$`);function Jv(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 Yv(t){return new RegExp(`^${Jv(t)}$`)}function Xv(t){let e=Jv({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(`^${Vv}T(?:${n})$`)}var Qv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},e_=/^-?\d+n?$/,t_=/^-?\d+$/,Pl=/^-?\d+(?:\.\d+)?$/,r_=/^(?:true|false)$/i,n_=/^null$/i;var o_=/^[^A-Z]*$/,i_=/^[^a-z]*$/;var Oe=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),s_={number:"number",bigint:"bigint",object:"date"},xl=S("$ZodCheckLessThan",(t,e)=>{Oe.init(t,e);let r=s_[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})}}),El=S("$ZodCheckGreaterThan",(t,e)=>{Oe.init(t,e);let r=s_[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})}}),a_=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):fl(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})}}),c_=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]=yl[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=t_)}),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 u_=S("$ZodCheckMaxLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Di(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=ji(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),d_=S("$ZodCheckMinLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Di(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=ji(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),l_=S("$ZodCheckLengthEquals",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Di(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=ji(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})}}),Gi=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=()=>{})}),f_=S("$ZodCheckRegex",(t,e)=>{Gi.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})}}),p_=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=o_),Gi.init(t,e)}),h_=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=i_),Gi.init(t,e)}),m_=S("$ZodCheckIncludes",(t,e)=>{Oe.init(t,e);let r=dr(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})}}),g_=S("$ZodCheckStartsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`^${dr(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})}}),y_=S("$ZodCheckEndsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`.*${dr(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 v_=S("$ZodCheckOverwrite",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Qa=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 l_={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=l_;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=Ur(s),d;for(let l of a){if(l._zod.def.when){if(pl(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 Jt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=Ur(s,f)))});else{if(s.issues.length===f)continue;u||(u=Ur(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(Ur(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Jt;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 Jt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}Y(t,"~standard",()=>({validate:o=>{try{let i=ji(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Va(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Xa=S("$ZodString",(t,e)=>{re.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Gv(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)=>{qi.init(t,e),Xa.init(t,e)}),S_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Tv),ce.init(t,e)}),w_=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=vl(n))}else e.pattern??(e.pattern=vl());ce.init(t,e)}),b_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Av),ce.init(t,e)}),R_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Dv.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})}}}),C_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Mv()),ce.init(t,e)}),P_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=kv),ce.init(t,e)}),x_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),k_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Rv),ce.init(t,e)}),E_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e)}),T_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Pv),ce.init(t,e)}),A_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e)}),M_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Hv(e)),ce.init(t,e)}),$_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Fv),ce.init(t,e)}),I_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=qv(e)),ce.init(t,e)}),O_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e)}),z_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=$v),ce.init(t,e),t._zod.bag.format="ipv4"}),N_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Iv),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 D_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Ov),ce.init(t,e)}),L_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=zv),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 j_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var F_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Nv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{j_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function $I(t){if(!_l.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return j_(r)}var U_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=_l),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{$I(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),q_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Lv),ce.init(t,e)});function II(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 H_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{II(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var Cl=S("$ZodNumber",(t,e)=>{re.init(t,e),t._zod.pattern=t._zod.bag.pattern??Sl,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}}),G_=S("$ZodNumberFormat",(t,e)=>{Qv.init(t,e),Cl.init(t,e)}),Z_=S("$ZodBoolean",(t,e)=>{re.init(t,e),t._zod.pattern=Wv,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}}),B_=S("$ZodBigInt",(t,e)=>{re.init(t,e),t._zod.pattern=Zv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}});var W_=S("$ZodNull",(t,e)=>{re.init(t,e),t._zod.pattern=Vv,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}}),V_=S("$ZodAny",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),K_=S("$ZodUnknown",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),J_=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 Y_=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 f_(t,e,r){t.issues.length&&e.issues.push(...dr(r,t.issues)),e.value[r]=t.value}var X_=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=>f_(u,r,s))):f_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Ya(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...dr(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 Q_(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=ll(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function eS(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=>Ya(h,r,f,e,d,l))):Ya(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 OI=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(()=>Q_(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=>Ya(v,a,f,u,h,m))):Ya(g,a,f,u,h,m)}return i?eS(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),tS=S("$ZodObjectJIT",(t,e)=>{OI.init(t,e);let r=t._zod.parse,n=go(()=>Q_(e)),o=f=>{let p=new Ka(["shape","payload","ctx"]),h=n.value,m=b=>{let R=qa(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],_=qa(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=qr(s),d;for(let l of a){if(l._zod.def.when){if(vl(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 Yt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=qr(s,f)))});else{if(s.issues.length===f)continue;u||(u=qr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(qr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Yt;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 Yt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}X(t,"~standard",()=>({validate:o=>{try{let i=Ui(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Xa(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),rc=S("$ZodString",(t,e)=>{re.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Qv(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)=>{Gi.init(t,e),rc.init(t,e)}),T_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Lv),ce.init(t,e)}),A_=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=Rl(n))}else e.pattern??(e.pattern=Rl());ce.init(t,e)}),M_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=jv),ce.init(t,e)}),$_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Bv.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})}}}),I_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Fv()),ce.init(t,e)}),O_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Nv),ce.init(t,e)}),z_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Mv),ce.init(t,e)}),N_=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=$v),ce.init(t,e)}),D_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Iv),ce.init(t,e)}),L_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Ov),ce.init(t,e)}),j_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=zv),ce.init(t,e)}),F_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Xv(e)),ce.init(t,e)}),U_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Kv),ce.init(t,e)}),q_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Yv(e)),ce.init(t,e)}),H_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Dv),ce.init(t,e)}),G_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Uv),ce.init(t,e),t._zod.bag.format="ipv4"}),Z_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=qv),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 B_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Hv),ce.init(t,e)}),W_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Gv),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 V_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var K_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Zv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{V_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function WI(t){if(!Cl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return V_(r)}var J_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Cl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{WI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Y_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Wv),ce.init(t,e)});function VI(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 X_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{VI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var Tl=S("$ZodNumber",(t,e)=>{re.init(t,e),t._zod.pattern=t._zod.bag.pattern??Pl,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:t,...i?{received:i}:{}}),r}}),Q_=S("$ZodNumberFormat",(t,e)=>{c_.init(t,e),Tl.init(t,e)}),eS=S("$ZodBoolean",(t,e)=>{re.init(t,e),t._zod.pattern=r_,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}}),tS=S("$ZodBigInt",(t,e)=>{re.init(t,e),t._zod.pattern=e_,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 rS=S("$ZodNull",(t,e)=>{re.init(t,e),t._zod.pattern=n_,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}}),nS=S("$ZodAny",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),oS=S("$ZodUnknown",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),iS=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 sS=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 w_(t,e,r){t.issues.length&&e.issues.push(...lr(r,t.issues)),e.value[r]=t.value}var aS=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=>w_(u,r,s))):w_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function tc(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...lr(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 cS(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=gl(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function uS(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=>tc(h,r,f,e,d,l))):tc(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 KI=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=yo(()=>cS(e));X(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=wn,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=>tc(v,a,f,u,h,m))):tc(g,a,f,u,h,m)}return i?uS(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),dS=S("$ZodObjectJIT",(t,e)=>{KI.init(t,e);let r=t._zod.parse,n=yo(()=>cS(e)),o=f=>{let p=new Qa(["shape","payload","ctx"]),h=n.value,m=b=>{let R=Ba(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],_=Ba(b),C=f[b],I=C?._zod?.optin==="optional",ee=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(b)};`),I&&ee?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&&ul.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?eS([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function p_(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=>!Ur(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 Pl=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=>Ni(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=>p_(a,n,t,o)):p_(s,n,t,o)}});var rS=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,Pl.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)}}),nS=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])=>h_(r,c,u)):h_(r,i,s)}});function Rl(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(Fr(t)&&Fr(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=Rl(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=Rl(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 h_(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}),Ur(t))return t;let s=Rl(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 oS=S("$ZodRecord",(t,e)=>{re.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Fr(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(...dr(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...dr(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"&&Sl.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(...dr(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...dr(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var iS=S("$ZodEnum",(t,e)=>{re.init(t,e);let r=Oi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>dl.has(typeof o)).map(o=>typeof o=="string"?ur(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}}),sS=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"?ur(n):n?ur(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 aS=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 Jt;return r.value=o,r.fallback=!0,r}});function m_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var xl=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(`^(${Ni(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=>m_(s,o)):m_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),cS=S("$ZodExactOptional",(t,e)=>{xl.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)}),uS=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(`^(${Ni(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)}),dS=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=>g_(i,e)):g_(o,e)}});function g_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var lS=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))}),fS=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=>y_(i,t)):y_(o,t)}});function y_(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 pS=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 kl=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=>Ja(s,e.in,n)):Ja(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ja(i,e.out,n)):Ja(o,e.out,n)}});function Ja(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 hS=S("$ZodPreprocess",(t,e)=>{kl.init(t,e)}),mS=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(v_):v_(o)}});function v_(t){return t.value=Object.freeze(t.value),t}var gS=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=>__(i,r,n,t));__(o,r,n,t)}});function __(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 zI=()=>{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=hl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ga(o.values[0])}`:`Invalid option: expected one of ${Ua(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":""}: ${Ua(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 yS(){return{localeError:zI()}}var vS;var El=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 _S(){return new El}(vS=globalThis).__zod_globalRegistry??(vS.__zod_globalRegistry=_S());var qr=globalThis.__zod_globalRegistry;function SS(t,e){return new t({type:"string",...M(e)})}function wS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function bS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Tl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function PS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function xS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function Al(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function IS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function OS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function zS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function NS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function DS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function LS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function jS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function FS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function US(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function qS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function HS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function GS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function ZS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function BS(t,e){return new t({type:"number",checks:[],...M(e)})}function WS(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function VS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function KS(t,e){return new t({type:"boolean",...M(e)})}function JS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function YS(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function XS(t,e){return new t({type:"null",...M(e)})}function QS(t){return new t({type:"any"})}function ew(t){return new t({type:"unknown"})}function tw(t,e){return new t({type:"never",...M(e)})}function rw(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new wl({check:"less_than",...M(e),value:t,inclusive:!1})}function lr(t,e){return new wl({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new bl({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new bl({check:"greater_than",...M(e),value:t,inclusive:!0})}function Hi(t,e){return new Xv({check:"multiple_of",...M(e),value:t})}function Qa(t,e){return new e_({check:"max_length",...M(e),maximum:t})}function So(t,e){return new t_({check:"min_length",...M(e),minimum:t})}function ec(t,e){return new r_({check:"length_equals",...M(e),length:t})}function Ml(t,e){return new n_({check:"string_format",format:"regex",...M(e),pattern:t})}function $l(t){return new o_({check:"string_format",format:"lowercase",...M(t)})}function Il(t){return new i_({check:"string_format",format:"uppercase",...M(t)})}function Ol(t,e){return new s_({check:"string_format",format:"includes",...M(e),includes:t})}function zl(t,e){return new a_({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Nl(t,e){return new c_({check:"string_format",format:"ends_with",...M(e),suffix:t})}function Hr(t){return new u_({check:"overwrite",tx:t})}function Dl(t){return Hr(e=>e.normalize(t))}function Ll(){return Hr(t=>t.trim())}function jl(){return Hr(t=>t.toLowerCase())}function Fl(){return Hr(t=>t.toUpperCase())}function Ul(){return Hr(t=>cl(t))}function nw(t,e,r){return new t({type:"array",element:e,...M(r)})}function ow(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function iw(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function sw(t,e){let r=NI(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 NI(t,e){let r=new Oe({check:"custom",...M(e)});return r._zod.check=t,r}function ql(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??qr,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 Re(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),Re(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 Hl(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=wn,a=!mo.jitless,u=a&&hl.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?uS([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function b_(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=>!qr(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=>_t(s,n,Qe())))}),e)}var Al=S("$ZodUnion",(t,e)=>{re.init(t,e),X(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),X(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),X(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),X(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Li(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=>b_(a,n,t,o)):b_(s,n,t,o)}});var lS=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,Al.init(t,e);let r=t._zod.parse;X(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=yo(()=>{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(!wn(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)}}),fS=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])=>R_(r,c,u)):R_(r,i,s)}});function kl(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(Ur(t)&&Ur(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=kl(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=kl(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function R_(t,e,r){let n=new Map,o;for(let a of e.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else t.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else t.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&t.issues.push({...o,keys:i}),qr(t))return t;let s=kl(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 pS=S("$ZodRecord",(t,e)=>{re.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Ur(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=>_t(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(...lr(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...lr(u,f.issues)),r.value[l]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Pl.test(a)&&c.issues.length){let l=e.keyType._zod.run({value:Number(a),issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");l.issues.length===0&&(c=l)}if(c.issues.length){e.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(l=>_t(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(...lr(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...lr(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var hS=S("$ZodEnum",(t,e)=>{re.init(t,e);let r=Ni(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>ml.has(typeof o)).map(o=>typeof o=="string"?dr(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}}),mS=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"?dr(n):n?dr(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 gS=S("$ZodTransform",(t,e)=>{re.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ho(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 Yt;return r.value=o,r.fallback=!0,r}});function C_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var Ml=S("$ZodOptional",(t,e)=>{re.init(t,e),t._zod.optin="optional",t._zod.optout="optional",X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Li(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=>C_(s,o)):C_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),yS=S("$ZodExactOptional",(t,e)=>{Ml.init(t,e),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),vS=S("$ZodNullable",(t,e)=>{re.init(t,e),X(t._zod,"optin",()=>e.innerType._zod.optin),X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Li(r.source)}|null)$`):void 0}),X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),_S=S("$ZodDefault",(t,e)=>{re.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>P_(i,e)):P_(o,e)}});function P_(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",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),wS=S("$ZodNonOptional",(t,e)=>{re.init(t,e),X(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>x_(i,t)):x_(o,t)}});function x_(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 bS=S("$ZodCatch",(t,e)=>{re.init(t,e),t._zod.optin="optional",X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>_t(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=>_t(i,n,Qe()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var $l=S("$ZodPipe",(t,e)=>{re.init(t,e),X(t._zod,"values",()=>e.in._zod.values),X(t._zod,"optin",()=>e.in._zod.optin),X(t._zod,"optout",()=>e.out._zod.optout),X(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>ec(s,e.in,n)):ec(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>ec(i,e.out,n)):ec(o,e.out,n)}});function ec(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var RS=S("$ZodPreprocess",(t,e)=>{$l.init(t,e)}),CS=S("$ZodReadonly",(t,e)=>{re.init(t,e),X(t._zod,"propValues",()=>e.innerType._zod.propValues),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"optin",()=>e.innerType?._zod?.optin),X(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(E_):E_(o)}});function E_(t){return t.value=Object.freeze(t.value),t}var PS=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=>k_(i,r,n,t));k_(o,r,n,t)}});function k_(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(vo(o))}}var JI=()=>{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=_l(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Va(o.values[0])}`:`Invalid option: expected one of ${Za(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":""}: ${Za(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 xS(){return{localeError:JI()}}var ES;var Il=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 kS(){return new Il}(ES=globalThis).__zod_globalRegistry??(ES.__zod_globalRegistry=kS());var Hr=globalThis.__zod_globalRegistry;function TS(t,e){return new t({type:"string",...M(e)})}function AS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function MS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Ol(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function IS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function OS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function zS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function zl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function NS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function DS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function LS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function jS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function FS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function US(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function qS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function HS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function GS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function ZS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function BS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function WS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function VS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function KS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function JS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function YS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function XS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function QS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function ew(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function tw(t,e){return new t({type:"number",checks:[],...M(e)})}function rw(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function nw(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function ow(t,e){return new t({type:"boolean",...M(e)})}function iw(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function sw(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function aw(t,e){return new t({type:"null",...M(e)})}function cw(t){return new t({type:"any"})}function uw(t){return new t({type:"unknown"})}function dw(t,e){return new t({type:"never",...M(e)})}function lw(t,e){return new t({type:"date",coerce:!0,...M(e)})}function _o(t,e){return new xl({check:"less_than",...M(e),value:t,inclusive:!1})}function fr(t,e){return new xl({check:"less_than",...M(e),value:t,inclusive:!0})}function So(t,e){return new El({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new El({check:"greater_than",...M(e),value:t,inclusive:!0})}function Zi(t,e){return new a_({check:"multiple_of",...M(e),value:t})}function nc(t,e){return new u_({check:"max_length",...M(e),maximum:t})}function wo(t,e){return new d_({check:"min_length",...M(e),minimum:t})}function oc(t,e){return new l_({check:"length_equals",...M(e),length:t})}function Nl(t,e){return new f_({check:"string_format",format:"regex",...M(e),pattern:t})}function Dl(t){return new p_({check:"string_format",format:"lowercase",...M(t)})}function Ll(t){return new h_({check:"string_format",format:"uppercase",...M(t)})}function jl(t,e){return new m_({check:"string_format",format:"includes",...M(e),includes:t})}function Fl(t,e){return new g_({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Ul(t,e){return new y_({check:"string_format",format:"ends_with",...M(e),suffix:t})}function Gr(t){return new v_({check:"overwrite",tx:t})}function ql(t){return Gr(e=>e.normalize(t))}function Hl(){return Gr(t=>t.trim())}function Gl(){return Gr(t=>t.toLowerCase())}function Zl(){return Gr(t=>t.toUpperCase())}function Bl(){return Gr(t=>pl(t))}function fw(t,e,r){return new t({type:"array",element:e,...M(r)})}function pw(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function hw(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function mw(t,e){let r=YI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(vo(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(vo(i))}},t(n.value,n)),e);return r}function YI(t,e){let r=new Oe({check:"custom",...M(e)});return r._zod.check=t,r}function Wl(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??Hr,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 Re(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),Re(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 Vl(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 Gl(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:Gi(e,"input",t.processors),output:Gi(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 aw=(t,e={})=>r=>{let n=ql({...r,processors:e});return Re(t,n),Hl(n,t),Gl(n,t)},Gi=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=ql({...o??{},target:i,io:e,processors:r});return Re(t,s),Hl(s,t),Gl(s,t)};var DI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},cw=(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=DI[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}))])}},uw=(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)},dw=(t,e,r,n)=>{r.type="boolean"},lw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var fw=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var pw=(t,e,r,n)=>{r.not={}},hw=(t,e,r,n)=>{},mw=(t,e,r,n)=>{},gw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},yw=(t,e,r,n)=>{let o=t._zod.def,i=Oi(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},vw=(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 _w=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var Sw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var ww=(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=Re(i.element,e,{...n,path:[...n.path,"items"]})},bw=(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]=Re(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=Re(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},Rw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>Re(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},Cw=(t,e,r,n)=>{let o=t._zod.def,i=Re(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=Re(o.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];r.allOf=c};var Pw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let d=Re(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=Re(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=Re(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)}},xw=(t,e,r,n)=>{let o=t._zod.def,i=Re(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"}]},kw=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Ew=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Tw=(t,e,r,n)=>{let o=t._zod.def;Re(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)))},Aw=(t,e,r,n)=>{let o=t._zod.def;Re(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},Mw=(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;Re(s,e,n);let a=e.seen.get(t);a.ref=s},$w=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Zl=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function tc(t){return!!t._zod}function It(t,e){return tc(t)?ji(t,e):t.safeParse(e)}function rc(t){if(!t)return;let e;if(tc(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function nc(t){if(tc(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 Zi={};Wu(Zi,{ZodISODate:()=>Ow,ZodISODateTime:()=>Iw,ZodISODuration:()=>Nw,ZodISOTime:()=>zw,date:()=>Wl,datetime:()=>Bl,duration:()=>Kl,time:()=>Vl});var Iw=S("ZodISODateTime",(t,e)=>{M_.init(t,e),me.init(t,e)});function Bl(t){return qS(Iw,t)}var Ow=S("ZodISODate",(t,e)=>{$_.init(t,e),me.init(t,e)});function Wl(t){return HS(Ow,t)}var zw=S("ZodISOTime",(t,e)=>{I_.init(t,e),me.init(t,e)});function Vl(t){return GS(zw,t)}var Nw=S("ZodISODuration",(t,e)=>{O_.init(t,e),me.init(t,e)});function Kl(t){return ZS(Nw,t)}var ZI=(t,e)=>{Za.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>yl(t,r)},flatten:{value:r=>gl(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 Lw=Ba(ut),jw=Wa(ut),Fw=Li(ut),Uw=Fi(ut),qw=hv(ut),Hw=mv(ut),Gw=gv(ut),Zw=yv(ut),Bw=vv(ut),Ww=_v(ut),Vw=Sv(ut),Kw=wv(ut);var Jw=new WeakMap;function Bi(t,e,r){let n=Object.getPrototypeOf(t),o=Jw.get(n);if(o||(o=new Set,Jw.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:Gi(t,"input"),output:Gi(t,"output")}}),t.toJSONSchema=aw(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Lw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Fw(t,r,n),t.parseAsync=async(r,n)=>jw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Uw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>qw(t,r,n),t.decode=(r,n)=>Hw(t,r,n),t.encodeAsync=async(r,n)=>Gw(t,r,n),t.decodeAsync=async(r,n)=>Zw(t,r,n),t.safeEncode=(r,n)=>Bw(t,r,n),t.safeDecode=(r,n)=>Ww(t,r,n),t.safeEncodeAsync=async(r,n)=>Vw(t,r,n),t.safeDecodeAsync=async(r,n)=>Kw(t,r,n),Bi(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(IO(r,n))},superRefine(r,n){return this.check(OO(r,n))},overwrite(r){return this.check(Hr(r))},optional(){return ye(this)},exactOptional(){return wO(this)},nullable(){return eb(this)},nullish(){return ye(eb(this))},nonoptional(r){return kO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return sc(this,r)},transform(r){return tb(this,lb(r))},default(r){return CO(this,r)},prefault(r){return xO(this,r)},catch(r){return TO(this,r)},pipe(r){return tb(this,r)},readonly(){return $O(this)},describe(r){let n=this.clone();return qr.add(n,{description:r}),n},meta(...r){if(r.length===0)return qr.get(this);let n=this.clone();return qr.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 qr.get(t)?.description},configurable:!0}),t)),rb=S("_ZodString",(t,e)=>{Xa.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>cw(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Bi(t,"_ZodString",{regex(...n){return this.check(Ml(...n))},includes(...n){return this.check(Ol(...n))},startsWith(...n){return this.check(zl(...n))},endsWith(...n){return this.check(Nl(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Qa(...n))},length(...n){return this.check(ec(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check($l(n))},uppercase(n){return this.check(Il(n))},trim(){return this.check(Ll())},normalize(...n){return this.check(Dl(...n))},toLowerCase(){return this.check(jl())},toUpperCase(){return this.check(Fl())},slugify(){return this.check(Ul())}})}),Yl=S("ZodString",(t,e)=>{Xa.init(t,e),rb.init(t,e),t.email=r=>t.check(bS(WI,r)),t.url=r=>t.check(Al(nb,r)),t.jwt=r=>t.check(US(cO,r)),t.emoji=r=>t.check(kS(VI,r)),t.guid=r=>t.check(Tl(Yw,r)),t.uuid=r=>t.check(RS(oc,r)),t.uuidv4=r=>t.check(CS(oc,r)),t.uuidv6=r=>t.check(PS(oc,r)),t.uuidv7=r=>t.check(xS(oc,r)),t.nanoid=r=>t.check(ES(KI,r)),t.guid=r=>t.check(Tl(Yw,r)),t.cuid=r=>t.check(TS(JI,r)),t.cuid2=r=>t.check(AS(YI,r)),t.ulid=r=>t.check(MS(XI,r)),t.base64=r=>t.check(LS(iO,r)),t.base64url=r=>t.check(jS(sO,r)),t.xid=r=>t.check($S(QI,r)),t.ksuid=r=>t.check(IS(eO,r)),t.ipv4=r=>t.check(OS(tO,r)),t.ipv6=r=>t.check(zS(rO,r)),t.cidrv4=r=>t.check(NS(nO,r)),t.cidrv6=r=>t.check(DS(oO,r)),t.e164=r=>t.check(FS(aO,r)),t.datetime=r=>t.check(Bl(r)),t.date=r=>t.check(Wl(r)),t.time=r=>t.check(Vl(r)),t.duration=r=>t.check(Kl(r))});function y(t){return SS(Yl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),rb.init(t,e)}),WI=S("ZodEmail",(t,e)=>{b_.init(t,e),me.init(t,e)});var Yw=S("ZodGUID",(t,e)=>{S_.init(t,e),me.init(t,e)});var oc=S("ZodUUID",(t,e)=>{w_.init(t,e),me.init(t,e)});var nb=S("ZodURL",(t,e)=>{R_.init(t,e),me.init(t,e)});function ob(t){return Al(nb,t)}var VI=S("ZodEmoji",(t,e)=>{C_.init(t,e),me.init(t,e)});var KI=S("ZodNanoID",(t,e)=>{P_.init(t,e),me.init(t,e)});var JI=S("ZodCUID",(t,e)=>{x_.init(t,e),me.init(t,e)});var YI=S("ZodCUID2",(t,e)=>{k_.init(t,e),me.init(t,e)});var XI=S("ZodULID",(t,e)=>{E_.init(t,e),me.init(t,e)});var QI=S("ZodXID",(t,e)=>{T_.init(t,e),me.init(t,e)});var eO=S("ZodKSUID",(t,e)=>{A_.init(t,e),me.init(t,e)});var tO=S("ZodIPv4",(t,e)=>{z_.init(t,e),me.init(t,e)});var rO=S("ZodIPv6",(t,e)=>{N_.init(t,e),me.init(t,e)});var nO=S("ZodCIDRv4",(t,e)=>{D_.init(t,e),me.init(t,e)});var oO=S("ZodCIDRv6",(t,e)=>{L_.init(t,e),me.init(t,e)});var iO=S("ZodBase64",(t,e)=>{F_.init(t,e),me.init(t,e)});var sO=S("ZodBase64URL",(t,e)=>{U_.init(t,e),me.init(t,e)});var aO=S("ZodE164",(t,e)=>{q_.init(t,e),me.init(t,e)});var cO=S("ZodJWT",(t,e)=>{H_.init(t,e),me.init(t,e)});var ic=S("ZodNumber",(t,e)=>{Cl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>uw(t,n,o,i),Bi(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(lr(n,o))},max(n,o){return this.check(lr(n,o))},int(n){return this.check(Xw(n))},safe(n){return this.check(Xw(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(lr(0,n))},multipleOf(n,o){return this.check(Hi(n,o))},step(n,o){return this.check(Hi(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 BS(ic,t)}var uO=S("ZodNumberFormat",(t,e)=>{G_.init(t,e),ic.init(t,e)});function Xw(t){return VS(uO,t)}var Xl=S("ZodBoolean",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o)});function ie(t){return KS(Xl,t)}var ib=S("ZodBigInt",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>lw(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(lr(n,o)),t.max=(n,o)=>t.check(lr(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(lr(BigInt(0),n)),t.nonnegative=n=>t.check($t(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Hi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var dO=S("ZodNull",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o)});function sb(t){return XS(dO,t)}var lO=S("ZodAny",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o)});function ab(){return QS(lO)}var fO=S("ZodUnknown",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o)});function ge(){return ew(fO)}var pO=S("ZodNever",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o)});function hO(t){return tw(pO,t)}var cb=S("ZodDate",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>gw(t,n,o,i),t.min=(n,o)=>t.check($t(n,o)),t.max=(n,o)=>t.check(lr(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 mO=S("ZodArray",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.element=e.element,Bi(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(Qa(r,n))},length(r,n){return this.check(ec(r,n))},unwrap(){return this.element}})});function x(t,e){return nw(mO,t,e)}var ub=S("ZodObject",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Bi(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:hO()})},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(fb,this,r[0])},required(...r){return H.required(pb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new ub(r)}function Ee(t,e){return new ub({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var db=S("ZodUnion",(t,e)=>{Pl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rw(t,r,n,o),t.options=e.options});function ue(t,e){return new db({type:"union",options:t,...H.normalizeParams(e)})}var gO=S("ZodDiscriminatedUnion",(t,e)=>{db.init(t,e),rS.init(t,e)});function Ql(t,e,r){return new gO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var yO=S("ZodIntersection",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Cw(t,r,n,o)});function sc(t,e){return new yO({type:"intersection",left:t,right:e})}var Qw=S("ZodRecord",(t,e)=>{oS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Pw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Qw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Qw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Jl=S("ZodEnum",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>yw(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 Jl({...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 Jl({...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 Jl({type:"enum",entries:r,...H.normalizeParams(e)})}var vO=S("ZodLiteral",(t,e)=>{sS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(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 vO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var _O=S("ZodTransform",(t,e)=>{aS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(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 lb(t){return new _O({type:"transform",transform:t})}var fb=S("ZodOptional",(t,e)=>{xl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Zl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new fb({type:"optional",innerType:t})}var SO=S("ZodExactOptional",(t,e)=>{cS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Zl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function wO(t){return new SO({type:"optional",innerType:t})}var bO=S("ZodNullable",(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 eb(t){return new bO({type:"nullable",innerType:t})}var RO=S("ZodDefault",(t,e)=>{dS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ew(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function CO(t,e){return new RO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var PO=S("ZodPrefault",(t,e)=>{lS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Tw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function xO(t,e){return new PO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var pb=S("ZodNonOptional",(t,e)=>{fS.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 kO(t,e){return new pb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var EO=S("ZodCatch",(t,e)=>{pS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Aw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function TO(t,e){return new EO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var hb=S("ZodPipe",(t,e)=>{kl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Mw(t,r,n,o),t.in=e.in,t.out=e.out});function tb(t,e){return new hb({type:"pipe",in:t,out:e})}var AO=S("ZodPreprocess",(t,e)=>{hb.init(t,e),hS.init(t,e)}),MO=S("ZodReadonly",(t,e)=>{mS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>$w(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function $O(t){return new MO({type:"readonly",innerType:t})}var mb=S("ZodCustom",(t,e)=>{gS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o)});function gb(t,e){return ow(mb,t??(()=>!0),e)}function IO(t,e={}){return iw(mb,t,e)}function OO(t,e){return sw(t,e)}function ef(t,e){return new AO({type:"pipe",in:lb(t),out:e})}var vb={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 yb;yb||(yb={});var ac={};Wu(ac,{bigint:()=>LO,boolean:()=>DO,date:()=>jO,number:()=>NO,string:()=>zO});function zO(t){return wS(Yl,t)}function NO(t){return WS(ic,t)}function DO(t){return JS(Xl,t)}function LO(t){return YS(ib,t)}function jO(t){return rw(cb,t)}Qe(yS());var Ro="2025-11-25";var _b=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Gr="io.modelcontextprotocol/related-task",uc="2.0",Te=gb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Sb=ue([y(),K().int()]),wb=y(),h6=Ee({ttl:K().optional(),pollInterval:K().optional()}),UO=k({ttl:K().optional()}),qO=k({taskId:y()}),rf=Ee({progressToken:Sb.optional(),[Gr]:qO.optional()}),dt=k({_meta:rf.optional()}),Wi=dt.extend({task:UO.optional()}),bb=t=>Wi.safeParse(t).success,ze=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:rf.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:rf.optional()}),dc=ue([y(),K().int()]),Rb=k({jsonrpc:E(uc),id:dc,...ze.shape}).strict(),Vi=t=>Rb.safeParse(t).success,Cb=k({jsonrpc:E(uc),...St.shape}).strict(),Pb=t=>Cb.safeParse(t).success,nf=k({jsonrpc:E(uc),id:dc,result:Ae}).strict(),wn=t=>nf.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 of=k({jsonrpc:E(uc),id:dc.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var xb=t=>of.safeParse(t).success;var Zr=ue([Rb,Cb,nf,of]),m6=ue([nf,of]),bn=Ae.strict(),HO=_t.extend({requestId:dc.optional(),reason:y().optional()}),lc=St.extend({method:E("notifications/cancelled"),params:HO}),GO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:et(["light","dark"]).optional()}),Ki=k({icons:x(GO).optional()}),bo=k({name:y(),title:y().optional()}),kb=bo.extend({...bo.shape,...Ki.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),ZO=sc(k({applyDefaults:ie().optional()}),ae(y(),ge())),BO=ef(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,sc(k({form:ZO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),WO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),VO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),KO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:BO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:WO.optional(),extensions:ae(y(),Te).optional()}),JO=dt.extend({protocolVersion:y(),capabilities:KO,clientInfo:kb}),YO=ze.extend({method:E("initialize"),params:JO});var XO=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:VO.optional(),extensions:ae(y(),Te).optional()}),sf=Ae.extend({protocolVersion:y(),capabilities:XO,serverInfo:kb,instructions:y().optional()}),Eb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),Tb=t=>Eb.safeParse(t).success,fc=ze.extend({method:E("ping"),params:dt.optional()}),QO=k({progress:K(),total:ye(K()),message:ye(y())}),ez=k({..._t.shape,...QO.shape,progressToken:Sb}),pc=St.extend({method:E("notifications/progress"),params:ez}),tz=dt.extend({cursor:wb.optional()}),Ji=ze.extend({params:tz.optional()}),Yi=Ae.extend({nextCursor:wb.optional()}),rz=et(["working","input_required","completed","failed","cancelled"]),Xi=k({taskId:y(),status:rz,ttl:ue([K(),sb()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Xi}),nz=_t.merge(Xi),Qi=St.extend({method:E("notifications/tasks/status"),params:nz}),hc=ze.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),mc=Ae.merge(Xi),gc=ze.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),g6=Ae.loose(),yc=Ji.extend({method:E("tasks/list")}),vc=Yi.extend({tasks:x(Xi)}),_c=ze.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),Ab=Ae.merge(Xi),Mb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),$b=Mb.extend({text:y()}),af=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Ib=Mb.extend({blob:af}),es=et(["user","assistant"]),Co=k({audience:x(es).optional(),priority:K().min(0).max(1).optional(),lastModified:Zi.datetime({offset:!0}).optional()}),Ob=k({...bo.shape,...Ki.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),oz=k({...bo.shape,...Ki.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),iz=Ji.extend({method:E("resources/list")}),cf=Yi.extend({resources:x(Ob)}),sz=Ji.extend({method:E("resources/templates/list")}),uf=Yi.extend({resourceTemplates:x(oz)}),df=dt.extend({uri:y()}),az=df,cz=ze.extend({method:E("resources/read"),params:az}),lf=Ae.extend({contents:x(ue([$b,Ib]))}),ff=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),uz=df,dz=ze.extend({method:E("resources/subscribe"),params:uz}),lz=df,fz=ze.extend({method:E("resources/unsubscribe"),params:lz}),pz=_t.extend({uri:y()}),hz=St.extend({method:E("notifications/resources/updated"),params:pz}),mz=k({name:y(),description:ye(y()),required:ye(ie())}),gz=k({...bo.shape,...Ki.shape,description:ye(y()),arguments:ye(x(mz)),_meta:ye(Ee({}))}),yz=Ji.extend({method:E("prompts/list")}),pf=Yi.extend({prompts:x(gz)}),vz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),_z=ze.extend({method:E("prompts/get"),params:vz}),hf=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),mf=k({type:E("image"),data:af,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),gf=k({type:E("audio"),data:af,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),Sz=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),wz=k({type:E("resource"),resource:ue([$b,Ib]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),bz=Ob.extend({type:E("resource_link")}),yf=ue([hf,mf,gf,bz,wz]),Rz=k({role:es,content:yf}),vf=Ae.extend({description:y().optional(),messages:x(Rz)}),_f=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),Cz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),Pz=k({taskSupport:et(["required","optional","forbidden"]).optional()}),zb=k({...bo.shape,...Ki.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:Cz.optional(),execution:Pz.optional(),_meta:ae(y(),ge()).optional()}),xz=Ji.extend({method:E("tools/list")}),Sf=Yi.extend({tools:x(zb)}),Cn=Ae.extend({content:x(yf).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),y6=Cn.or(Ae.extend({toolResult:ge()})),kz=Wi.extend({name:y(),arguments:ae(y(),ge()).optional()}),Ez=ze.extend({method:E("tools/call"),params:kz}),ts=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Nb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Db=et(["debug","info","notice","warning","error","critical","alert","emergency"]),Tz=dt.extend({level:Db}),Az=ze.extend({method:E("logging/setLevel"),params:Tz}),Mz=_t.extend({level:Db,logger:y().optional(),data:ge()}),$z=St.extend({method:E("notifications/message"),params:Mz}),Iz=k({name:y().optional()}),Oz=k({hints:x(Iz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),zz=k({mode:et(["auto","required","none"]).optional()}),Nz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(yf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),Dz=Ql("type",[hf,mf,gf]),cc=Ql("type",[hf,mf,gf,Sz,Nz]),Lz=k({role:es,content:ue([cc,x(cc)]),_meta:ae(y(),ge()).optional()}),jz=Wi.extend({messages:x(Lz),modelPreferences:Oz.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(zb).optional(),toolChoice:zz.optional()}),wf=ze.extend({method:E("sampling/createMessage"),params:jz}),bf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens"]).or(y())),role:es,content:Dz}),Rf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:es,content:ue([cc,x(cc)])}),Fz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),Uz=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()}),qz=k({type:et(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Hz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),Gz=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()}),Bz=ue([Hz,Gz]),Wz=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()}),Vz=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()}),Kz=ue([Wz,Vz]),Jz=ue([Zz,Bz,Kz]),Yz=ue([Jz,Fz,Uz,qz]),Xz=Wi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Yz),required:x(y()).optional()})}),Qz=Wi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),eN=ue([Xz,Qz]),Cf=ze.extend({method:E("elicitation/create"),params:eN}),tN=_t.extend({elicitationId:y()}),rN=St.extend({method:E("notifications/elicitation/complete"),params:tN}),Pf=Ae.extend({action:et(["accept","decline","cancel"]),content:ef(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),nN=k({type:E("ref/resource"),uri:y()});var oN=k({type:E("ref/prompt"),name:y()}),iN=dt.extend({ref:ue([oN,nN]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),sN=ze.extend({method:E("completion/complete"),params:iN});var xf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),aN=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),cN=ze.extend({method:E("roots/list"),params:dt.optional()}),uN=Ae.extend({roots:x(aN)}),dN=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),v6=ue([fc,YO,sN,Az,_z,yz,iz,sz,cz,dz,fz,Ez,xz,hc,gc,yc,_c]),_6=ue([lc,pc,Eb,dN,Qi]),S6=ue([bn,bf,Rf,Pf,uN,mc,vc,Rn]),w6=ue([fc,wf,Cf,cN,hc,gc,yc,_c]),b6=ue([lc,pc,$z,hz,ff,ts,_f,Qi,rN]),R6=ue([bn,sf,xf,vf,pf,cf,uf,lf,Cn,Sf,mc,vc,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 tf(o.elicitations,r)}return new t(e,r,n)}},tf=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 Br(t){return t==="completed"||t==="failed"||t==="cancelled"}var rK=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function kf(t){let r=rc(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=nc(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Ef(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var gN=6e4,Sc=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(lc,r=>{this._oncancel(r)}),this.setNotificationHandler(pc,r=>{this._onprogress(r)}),this.setRequestHandler(fc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(hc,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(gc,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(!Br(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Br(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Gr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(yc,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(_c,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(Br(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)||xb(i)?this._onresponse(i):Vi(i)?this._onrequest(i,s):Pb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=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?.[Gr]?.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=bb(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},Br(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||{},[Gr]: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??gN,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},mc,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},vc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Ab,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||{},[Gr]: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||{},[Gr]: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||{},[Gr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=kf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Ef(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=kf(e);this._notificationHandlers.set(n,o=>{let i=Ef(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"&&Vi(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=Qi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Br(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(Br(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=Qi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Br(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Lb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function jb(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];Lb(s)&&Lb(i)?r[o]={...s,...i}:r[o]=i}return r}var TP=ia(hh(),1),AP=ia(EP(),1);function wU(){let t=new TP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,AP.default)(t),t}var nu=class{constructor(e){this._ajv=e??wU()}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 ou=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 MP(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 $P(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 iu(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&&iu(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&iu(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&iu(r,e)}}function bU(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 su=class extends Sc{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 nu,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",ts,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",_f,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",ff,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new ou(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=jb(this._capabilities,e)}setRequestHandler(e,r){let o=rc(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=nc(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(Cf,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}=bU(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(Pf,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{iu(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(wf,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?Rf:bf,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}},sf,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!_b.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){MP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&$P(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},xf,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},vf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},pf,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},cf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},uf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},lf,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},Sf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Nb.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 $s=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}},IP=10,RU=13,Nn=32;function bh(t){}function au(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=bh,onError:r=bh,onRetry:n=bh,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
- `)===-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 $s(`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(`
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 Kl(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:Bi(e,"input",t.processors),output:Bi(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 gw=(t,e={})=>r=>{let n=Wl({...r,processors:e});return Re(t,n),Vl(n,t),Kl(n,t)},Bi=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Wl({...o??{},target:i,io:e,processors:r});return Re(t,s),Vl(s,t),Kl(s,t)};var XI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},yw=(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=XI[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}))])}},vw=(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)},_w=(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 ww=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var bw=(t,e,r,n)=>{r.not={}},Rw=(t,e,r,n)=>{},Cw=(t,e,r,n)=>{},Pw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},xw=(t,e,r,n)=>{let o=t._zod.def,i=Ni(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},Ew=(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 kw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var Tw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var Aw=(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=Re(i.element,e,{...n,path:[...n.path,"items"]})},Mw=(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]=Re(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=Re(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},$w=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>Re(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},Iw=(t,e,r,n)=>{let o=t._zod.def,i=Re(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=Re(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 Ow=(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=Re(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=Re(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=Re(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)}},zw=(t,e,r,n)=>{let o=t._zod.def,i=Re(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"}]},Nw=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Dw=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Lw=(t,e,r,n)=>{let o=t._zod.def;Re(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)))},jw=(t,e,r,n)=>{let o=t._zod.def;Re(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},Fw=(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;Re(s,e,n);let a=e.seen.get(t);a.ref=s},Uw=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Jl=(t,e,r,n)=>{let o=t._zod.def;Re(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function ic(t){return!!t._zod}function It(t,e){return ic(t)?Ui(t,e):t.safeParse(e)}function sc(t){if(!t)return;let e;if(ic(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function ac(t){if(ic(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 Wi={};Xu(Wi,{ZodISODate:()=>Hw,ZodISODateTime:()=>qw,ZodISODuration:()=>Zw,ZodISOTime:()=>Gw,date:()=>Xl,datetime:()=>Yl,duration:()=>ef,time:()=>Ql});var qw=S("ZodISODateTime",(t,e)=>{F_.init(t,e),me.init(t,e)});function Yl(t){return YS(qw,t)}var Hw=S("ZodISODate",(t,e)=>{U_.init(t,e),me.init(t,e)});function Xl(t){return XS(Hw,t)}var Gw=S("ZodISOTime",(t,e)=>{q_.init(t,e),me.init(t,e)});function Ql(t){return QS(Gw,t)}var Zw=S("ZodISODuration",(t,e)=>{H_.init(t,e),me.init(t,e)});function ef(t){return ew(Zw,t)}var sO=(t,e)=>{Ka.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>bl(t,r)},flatten:{value:r=>wl(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,go,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,go,2)}},isEmpty:{get(){return t.issues.length===0}}})};var dt=S("ZodError",sO,{Parent:Error});var Ww=Ja(dt),Vw=Ya(dt),Kw=Fi(dt),Jw=qi(dt),Yw=Rv(dt),Xw=Cv(dt),Qw=Pv(dt),eb=xv(dt),tb=Ev(dt),rb=kv(dt),nb=Tv(dt),ob=Av(dt);var ib=new WeakMap;function Vi(t,e,r){let n=Object.getPrototypeOf(t),o=ib.get(n);if(o||(o=new Set,ib.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:Bi(t,"input"),output:Bi(t,"output")}}),t.toJSONSchema=gw(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Ww(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Kw(t,r,n),t.parseAsync=async(r,n)=>Vw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Jw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Yw(t,r,n),t.decode=(r,n)=>Xw(t,r,n),t.encodeAsync=async(r,n)=>Qw(t,r,n),t.decodeAsync=async(r,n)=>eb(t,r,n),t.safeEncode=(r,n)=>tb(t,r,n),t.safeDecode=(r,n)=>rb(t,r,n),t.safeEncodeAsync=async(r,n)=>nb(t,r,n),t.safeDecodeAsync=async(r,n)=>ob(t,r,n),Vi(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 vt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(VO(r,n))},superRefine(r,n){return this.check(KO(r,n))},overwrite(r){return this.check(Gr(r))},optional(){return ye(this)},exactOptional(){return NO(this)},nullable(){return ub(this)},nullish(){return ye(ub(this))},nonoptional(r){return qO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return dc(this,r)},transform(r){return db(this,Sb(r))},default(r){return jO(this,r)},prefault(r){return UO(this,r)},catch(r){return GO(this,r)},pipe(r){return db(this,r)},readonly(){return WO(this)},describe(r){let n=this.clone();return Hr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Hr.get(this);let n=this.clone();return Hr.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 Hr.get(t)?.description},configurable:!0}),t)),lb=S("_ZodString",(t,e)=>{rc.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>yw(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Vi(t,"_ZodString",{regex(...n){return this.check(Nl(...n))},includes(...n){return this.check(jl(...n))},startsWith(...n){return this.check(Fl(...n))},endsWith(...n){return this.check(Ul(...n))},min(...n){return this.check(wo(...n))},max(...n){return this.check(nc(...n))},length(...n){return this.check(oc(...n))},nonempty(...n){return this.check(wo(1,...n))},lowercase(n){return this.check(Dl(n))},uppercase(n){return this.check(Ll(n))},trim(){return this.check(Hl())},normalize(...n){return this.check(ql(...n))},toLowerCase(){return this.check(Gl())},toUpperCase(){return this.check(Zl())},slugify(){return this.check(Bl())}})}),rf=S("ZodString",(t,e)=>{rc.init(t,e),lb.init(t,e),t.email=r=>t.check(MS(cO,r)),t.url=r=>t.check(zl(fb,r)),t.jwt=r=>t.check(JS(RO,r)),t.emoji=r=>t.check(NS(uO,r)),t.guid=r=>t.check(Ol(sb,r)),t.uuid=r=>t.check($S(cc,r)),t.uuidv4=r=>t.check(IS(cc,r)),t.uuidv6=r=>t.check(OS(cc,r)),t.uuidv7=r=>t.check(zS(cc,r)),t.nanoid=r=>t.check(DS(dO,r)),t.guid=r=>t.check(Ol(sb,r)),t.cuid=r=>t.check(LS(lO,r)),t.cuid2=r=>t.check(jS(fO,r)),t.ulid=r=>t.check(FS(pO,r)),t.base64=r=>t.check(WS(SO,r)),t.base64url=r=>t.check(VS(wO,r)),t.xid=r=>t.check(US(hO,r)),t.ksuid=r=>t.check(qS(mO,r)),t.ipv4=r=>t.check(HS(gO,r)),t.ipv6=r=>t.check(GS(yO,r)),t.cidrv4=r=>t.check(ZS(vO,r)),t.cidrv6=r=>t.check(BS(_O,r)),t.e164=r=>t.check(KS(bO,r)),t.datetime=r=>t.check(Yl(r)),t.date=r=>t.check(Xl(r)),t.time=r=>t.check(Ql(r)),t.duration=r=>t.check(ef(r))});function y(t){return TS(rf,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),lb.init(t,e)}),cO=S("ZodEmail",(t,e)=>{M_.init(t,e),me.init(t,e)});var sb=S("ZodGUID",(t,e)=>{T_.init(t,e),me.init(t,e)});var cc=S("ZodUUID",(t,e)=>{A_.init(t,e),me.init(t,e)});var fb=S("ZodURL",(t,e)=>{$_.init(t,e),me.init(t,e)});function pb(t){return zl(fb,t)}var uO=S("ZodEmoji",(t,e)=>{I_.init(t,e),me.init(t,e)});var dO=S("ZodNanoID",(t,e)=>{O_.init(t,e),me.init(t,e)});var lO=S("ZodCUID",(t,e)=>{z_.init(t,e),me.init(t,e)});var fO=S("ZodCUID2",(t,e)=>{N_.init(t,e),me.init(t,e)});var pO=S("ZodULID",(t,e)=>{D_.init(t,e),me.init(t,e)});var hO=S("ZodXID",(t,e)=>{L_.init(t,e),me.init(t,e)});var mO=S("ZodKSUID",(t,e)=>{j_.init(t,e),me.init(t,e)});var gO=S("ZodIPv4",(t,e)=>{G_.init(t,e),me.init(t,e)});var yO=S("ZodIPv6",(t,e)=>{Z_.init(t,e),me.init(t,e)});var vO=S("ZodCIDRv4",(t,e)=>{B_.init(t,e),me.init(t,e)});var _O=S("ZodCIDRv6",(t,e)=>{W_.init(t,e),me.init(t,e)});var SO=S("ZodBase64",(t,e)=>{K_.init(t,e),me.init(t,e)});var wO=S("ZodBase64URL",(t,e)=>{J_.init(t,e),me.init(t,e)});var bO=S("ZodE164",(t,e)=>{Y_.init(t,e),me.init(t,e)});var RO=S("ZodJWT",(t,e)=>{X_.init(t,e),me.init(t,e)});var uc=S("ZodNumber",(t,e)=>{Tl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>vw(t,n,o,i),Vi(t,"ZodNumber",{gt(n,o){return this.check(So(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(_o(n,o))},lte(n,o){return this.check(fr(n,o))},max(n,o){return this.check(fr(n,o))},int(n){return this.check(ab(n))},safe(n){return this.check(ab(n))},positive(n){return this.check(So(0,n))},nonnegative(n){return this.check($t(0,n))},negative(n){return this.check(_o(0,n))},nonpositive(n){return this.check(fr(0,n))},multipleOf(n,o){return this.check(Zi(n,o))},step(n,o){return this.check(Zi(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 tw(uc,t)}var CO=S("ZodNumberFormat",(t,e)=>{Q_.init(t,e),uc.init(t,e)});function ab(t){return nw(CO,t)}var nf=S("ZodBoolean",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_w(t,r,n,o)});function ie(t){return ow(nf,t)}var hb=S("ZodBigInt",(t,e)=>{tS.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(So(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(_o(n,o)),t.lte=(n,o)=>t.check(fr(n,o)),t.max=(n,o)=>t.check(fr(n,o)),t.positive=n=>t.check(So(BigInt(0),n)),t.negative=n=>t.check(_o(BigInt(0),n)),t.nonpositive=n=>t.check(fr(BigInt(0),n)),t.nonnegative=n=>t.check($t(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Zi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var PO=S("ZodNull",(t,e)=>{rS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o)});function mb(t){return aw(PO,t)}var xO=S("ZodAny",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rw(t,r,n,o)});function gb(){return cw(xO)}var EO=S("ZodUnknown",(t,e)=>{oS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Cw(t,r,n,o)});function ge(){return uw(EO)}var kO=S("ZodNever",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o)});function TO(t){return dw(kO,t)}var yb=S("ZodDate",(t,e)=>{sS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>Pw(t,n,o,i),t.min=(n,o)=>t.check($t(n,o)),t.max=(n,o)=>t.check(fr(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 AO=S("ZodArray",(t,e)=>{aS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Aw(t,r,n,o),t.element=e.element,Vi(t,"ZodArray",{min(r,n){return this.check(wo(r,n))},nonempty(r){return this.check(wo(1,r))},max(r,n){return this.check(nc(r,n))},length(r,n){return this.check(oc(r,n))},unwrap(){return this.element}})});function x(t,e){return fw(AO,t,e)}var vb=S("ZodObject",(t,e)=>{dS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Mw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Vi(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:TO()})},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(wb,this,r[0])},required(...r){return H.required(bb,this,r[0])}})});function E(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new vb(r)}function ke(t,e){return new vb({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var _b=S("ZodUnion",(t,e)=>{Al.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>$w(t,r,n,o),t.options=e.options});function ue(t,e){return new _b({type:"union",options:t,...H.normalizeParams(e)})}var MO=S("ZodDiscriminatedUnion",(t,e)=>{_b.init(t,e),lS.init(t,e)});function of(t,e,r){return new MO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var $O=S("ZodIntersection",(t,e)=>{fS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Iw(t,r,n,o)});function dc(t,e){return new $O({type:"intersection",left:t,right:e})}var cb=S("ZodRecord",(t,e)=>{pS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ow(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new cb({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new cb({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var tf=S("ZodEnum",(t,e)=>{hS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>xw(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 tf({...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 tf({...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 tf({type:"enum",entries:r,...H.normalizeParams(e)})}var IO=S("ZodLiteral",(t,e)=>{mS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ew(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 k(t,e){return new IO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var OO=S("ZodTransform",(t,e)=>{gS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Tw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ho(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 OO({type:"transform",transform:t})}var wb=S("ZodOptional",(t,e)=>{Ml.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Jl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new wb({type:"optional",innerType:t})}var zO=S("ZodExactOptional",(t,e)=>{yS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Jl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function NO(t){return new zO({type:"optional",innerType:t})}var DO=S("ZodNullable",(t,e)=>{vS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>zw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ub(t){return new DO({type:"nullable",innerType:t})}var LO=S("ZodDefault",(t,e)=>{_S.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Dw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function jO(t,e){return new LO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var FO=S("ZodPrefault",(t,e)=>{SS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Lw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function UO(t,e){return new FO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var bb=S("ZodNonOptional",(t,e)=>{wS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Nw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function qO(t,e){return new bb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var HO=S("ZodCatch",(t,e)=>{bS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>jw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function GO(t,e){return new HO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Rb=S("ZodPipe",(t,e)=>{$l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Fw(t,r,n,o),t.in=e.in,t.out=e.out});function db(t,e){return new Rb({type:"pipe",in:t,out:e})}var ZO=S("ZodPreprocess",(t,e)=>{Rb.init(t,e),RS.init(t,e)}),BO=S("ZodReadonly",(t,e)=>{CS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Uw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function WO(t){return new BO({type:"readonly",innerType:t})}var Cb=S("ZodCustom",(t,e)=>{PS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>kw(t,r,n,o)});function Pb(t,e){return pw(Cb,t??(()=>!0),e)}function VO(t,e={}){return hw(Cb,t,e)}function KO(t,e){return mw(t,e)}function sf(t,e){return new ZO({type:"pipe",in:Sb(t),out:e})}var Eb={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 xb;xb||(xb={});var lc={};Xu(lc,{bigint:()=>QO,boolean:()=>XO,date:()=>ez,number:()=>YO,string:()=>JO});function JO(t){return AS(rf,t)}function YO(t){return rw(uc,t)}function XO(t){return iw(nf,t)}function QO(t){return sw(hb,t)}function ez(t){return lw(yb,t)}Qe(xS());var Co="2025-11-25";var kb=[Co,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Zr="io.modelcontextprotocol/related-task",pc="2.0",Te=Pb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Tb=ue([y(),K().int()]),Ab=y(),O6=ke({ttl:K().optional(),pollInterval:K().optional()}),rz=E({ttl:K().optional()}),nz=E({taskId:y()}),cf=ke({progressToken:Tb.optional(),[Zr]:nz.optional()}),lt=E({_meta:cf.optional()}),Ki=lt.extend({task:rz.optional()}),Mb=t=>Ki.safeParse(t).success,ze=E({method:y(),params:lt.loose().optional()}),St=E({_meta:cf.optional()}),wt=E({method:y(),params:St.loose().optional()}),Ae=ke({_meta:cf.optional()}),hc=ue([y(),K().int()]),$b=E({jsonrpc:k(pc),id:hc,...ze.shape}).strict(),Ji=t=>$b.safeParse(t).success,Ib=E({jsonrpc:k(pc),...wt.shape}).strict(),Ob=t=>Ib.safeParse(t).success,uf=E({jsonrpc:k(pc),id:hc,result:Ae}).strict(),bn=t=>uf.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 df=E({jsonrpc:k(pc),id:hc.optional(),error:E({code:K().int(),message:y(),data:ge().optional()})}).strict();var zb=t=>df.safeParse(t).success;var Br=ue([$b,Ib,uf,df]),z6=ue([uf,df]),Rn=Ae.strict(),oz=St.extend({requestId:hc.optional(),reason:y().optional()}),mc=wt.extend({method:k("notifications/cancelled"),params:oz}),iz=E({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:et(["light","dark"]).optional()}),Yi=E({icons:x(iz).optional()}),Ro=E({name:y(),title:y().optional()}),Nb=Ro.extend({...Ro.shape,...Yi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),sz=dc(E({applyDefaults:ie().optional()}),ae(y(),ge())),az=sf(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,dc(E({form:sz.optional(),url:Te.optional()}),ae(y(),ge()).optional())),cz=ke({list:Te.optional(),cancel:Te.optional(),requests:ke({sampling:ke({createMessage:Te.optional()}).optional(),elicitation:ke({create:Te.optional()}).optional()}).optional()}),uz=ke({list:Te.optional(),cancel:Te.optional(),requests:ke({tools:ke({call:Te.optional()}).optional()}).optional()}),dz=E({experimental:ae(y(),Te).optional(),sampling:E({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:az.optional(),roots:E({listChanged:ie().optional()}).optional(),tasks:cz.optional(),extensions:ae(y(),Te).optional()}),lz=lt.extend({protocolVersion:y(),capabilities:dz,clientInfo:Nb}),fz=ze.extend({method:k("initialize"),params:lz});var pz=E({experimental:ae(y(),Te).optional(),logging:Te.optional(),completions:Te.optional(),prompts:E({listChanged:ie().optional()}).optional(),resources:E({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:E({listChanged:ie().optional()}).optional(),tasks:uz.optional(),extensions:ae(y(),Te).optional()}),lf=Ae.extend({protocolVersion:y(),capabilities:pz,serverInfo:Nb,instructions:y().optional()}),Db=wt.extend({method:k("notifications/initialized"),params:St.optional()}),Lb=t=>Db.safeParse(t).success,gc=ze.extend({method:k("ping"),params:lt.optional()}),hz=E({progress:K(),total:ye(K()),message:ye(y())}),mz=E({...St.shape,...hz.shape,progressToken:Tb}),yc=wt.extend({method:k("notifications/progress"),params:mz}),gz=lt.extend({cursor:Ab.optional()}),Xi=ze.extend({params:gz.optional()}),Qi=Ae.extend({nextCursor:Ab.optional()}),yz=et(["working","input_required","completed","failed","cancelled"]),es=E({taskId:y(),status:yz,ttl:ue([K(),mb()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Cn=Ae.extend({task:es}),vz=St.merge(es),ts=wt.extend({method:k("notifications/tasks/status"),params:vz}),vc=ze.extend({method:k("tasks/get"),params:lt.extend({taskId:y()})}),_c=Ae.merge(es),Sc=ze.extend({method:k("tasks/result"),params:lt.extend({taskId:y()})}),N6=Ae.loose(),wc=Xi.extend({method:k("tasks/list")}),bc=Qi.extend({tasks:x(es)}),Rc=ze.extend({method:k("tasks/cancel"),params:lt.extend({taskId:y()})}),jb=Ae.merge(es),Fb=E({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),Ub=Fb.extend({text:y()}),ff=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),qb=Fb.extend({blob:ff}),rs=et(["user","assistant"]),Po=E({audience:x(rs).optional(),priority:K().min(0).max(1).optional(),lastModified:Wi.datetime({offset:!0}).optional()}),Hb=E({...Ro.shape,...Yi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Po.optional(),_meta:ye(ke({}))}),_z=E({...Ro.shape,...Yi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Po.optional(),_meta:ye(ke({}))}),Sz=Xi.extend({method:k("resources/list")}),pf=Qi.extend({resources:x(Hb)}),wz=Xi.extend({method:k("resources/templates/list")}),hf=Qi.extend({resourceTemplates:x(_z)}),mf=lt.extend({uri:y()}),bz=mf,Rz=ze.extend({method:k("resources/read"),params:bz}),gf=Ae.extend({contents:x(ue([Ub,qb]))}),yf=wt.extend({method:k("notifications/resources/list_changed"),params:St.optional()}),Cz=mf,Pz=ze.extend({method:k("resources/subscribe"),params:Cz}),xz=mf,Ez=ze.extend({method:k("resources/unsubscribe"),params:xz}),kz=St.extend({uri:y()}),Tz=wt.extend({method:k("notifications/resources/updated"),params:kz}),Az=E({name:y(),description:ye(y()),required:ye(ie())}),Mz=E({...Ro.shape,...Yi.shape,description:ye(y()),arguments:ye(x(Az)),_meta:ye(ke({}))}),$z=Xi.extend({method:k("prompts/list")}),vf=Qi.extend({prompts:x(Mz)}),Iz=lt.extend({name:y(),arguments:ae(y(),y()).optional()}),Oz=ze.extend({method:k("prompts/get"),params:Iz}),_f=E({type:k("text"),text:y(),annotations:Po.optional(),_meta:ae(y(),ge()).optional()}),Sf=E({type:k("image"),data:ff,mimeType:y(),annotations:Po.optional(),_meta:ae(y(),ge()).optional()}),wf=E({type:k("audio"),data:ff,mimeType:y(),annotations:Po.optional(),_meta:ae(y(),ge()).optional()}),zz=E({type:k("tool_use"),name:y(),id:y(),input:ae(y(),ge()),_meta:ae(y(),ge()).optional()}),Nz=E({type:k("resource"),resource:ue([Ub,qb]),annotations:Po.optional(),_meta:ae(y(),ge()).optional()}),Dz=Hb.extend({type:k("resource_link")}),bf=ue([_f,Sf,wf,Dz,Nz]),Lz=E({role:rs,content:bf}),Rf=Ae.extend({description:y().optional(),messages:x(Lz)}),Cf=wt.extend({method:k("notifications/prompts/list_changed"),params:St.optional()}),jz=E({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),Fz=E({taskSupport:et(["required","optional","forbidden"]).optional()}),Gb=E({...Ro.shape,...Yi.shape,description:y().optional(),inputSchema:E({type:k("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:E({type:k("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:jz.optional(),execution:Fz.optional(),_meta:ae(y(),ge()).optional()}),Uz=Xi.extend({method:k("tools/list")}),Pf=Qi.extend({tools:x(Gb)}),Pn=Ae.extend({content:x(bf).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),D6=Pn.or(Ae.extend({toolResult:ge()})),qz=Ki.extend({name:y(),arguments:ae(y(),ge()).optional()}),Hz=ze.extend({method:k("tools/call"),params:qz}),ns=wt.extend({method:k("notifications/tools/list_changed"),params:St.optional()}),Zb=E({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Bb=et(["debug","info","notice","warning","error","critical","alert","emergency"]),Gz=lt.extend({level:Bb}),Zz=ze.extend({method:k("logging/setLevel"),params:Gz}),Bz=St.extend({level:Bb,logger:y().optional(),data:ge()}),Wz=wt.extend({method:k("notifications/message"),params:Bz}),Vz=E({name:y().optional()}),Kz=E({hints:x(Vz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),Jz=E({mode:et(["auto","required","none"]).optional()}),Yz=E({type:k("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(bf).default([]),structuredContent:E({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),Xz=of("type",[_f,Sf,wf]),fc=of("type",[_f,Sf,wf,zz,Yz]),Qz=E({role:rs,content:ue([fc,x(fc)]),_meta:ae(y(),ge()).optional()}),eN=Ki.extend({messages:x(Qz),modelPreferences:Kz.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(Gb).optional(),toolChoice:Jz.optional()}),xf=ze.extend({method:k("sampling/createMessage"),params:eN}),Ef=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens"]).or(y())),role:rs,content:Xz}),kf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:rs,content:ue([fc,x(fc)])}),tN=E({type:k("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),rN=E({type:k("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:et(["email","uri","date","date-time"]).optional(),default:y().optional()}),nN=E({type:et(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),oN=E({type:k("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),iN=E({type:k("string"),title:y().optional(),description:y().optional(),oneOf:x(E({const:y(),title:y()})),default:y().optional()}),sN=E({type:k("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),aN=ue([oN,iN]),cN=E({type:k("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:E({type:k("string"),enum:x(y())}),default:x(y()).optional()}),uN=E({type:k("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:E({anyOf:x(E({const:y(),title:y()}))}),default:x(y()).optional()}),dN=ue([cN,uN]),lN=ue([sN,aN,dN]),fN=ue([lN,tN,rN,nN]),pN=Ki.extend({mode:k("form").optional(),message:y(),requestedSchema:E({type:k("object"),properties:ae(y(),fN),required:x(y()).optional()})}),hN=Ki.extend({mode:k("url"),message:y(),elicitationId:y(),url:y().url()}),mN=ue([pN,hN]),Tf=ze.extend({method:k("elicitation/create"),params:mN}),gN=St.extend({elicitationId:y()}),yN=wt.extend({method:k("notifications/elicitation/complete"),params:gN}),Af=Ae.extend({action:et(["accept","decline","cancel"]),content:sf(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),vN=E({type:k("ref/resource"),uri:y()});var _N=E({type:k("ref/prompt"),name:y()}),SN=lt.extend({ref:ue([_N,vN]),argument:E({name:y(),value:y()}),context:E({arguments:ae(y(),y()).optional()}).optional()}),wN=ze.extend({method:k("completion/complete"),params:SN});var Mf=Ae.extend({completion:ke({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),bN=E({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),RN=ze.extend({method:k("roots/list"),params:lt.optional()}),CN=Ae.extend({roots:x(bN)}),PN=wt.extend({method:k("notifications/roots/list_changed"),params:St.optional()}),L6=ue([gc,fz,wN,Zz,Oz,$z,Sz,wz,Rz,Pz,Ez,Hz,Uz,vc,Sc,wc,Rc]),j6=ue([mc,yc,Db,PN,ts]),F6=ue([Rn,Ef,kf,Af,CN,_c,bc,Cn]),U6=ue([gc,xf,Tf,RN,vc,Sc,wc,Rc]),q6=ue([mc,yc,Wz,Tz,yf,ns,Cf,ts,yN]),H6=ue([Rn,lf,Mf,Rf,vf,pf,hf,gf,Pn,Pf,_c,bc,Cn]),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 af(o.elicitations,r)}return new t(e,r,n)}},af=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 Wr(t){return t==="completed"||t==="failed"||t==="cancelled"}var bK=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function $f(t){let r=sc(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=ac(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function If(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var MN=6e4,Cc=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(mc,r=>{this._oncancel(r)}),this.setNotificationHandler(yc,r=>{this._onprogress(r)}),this.setRequestHandler(gc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(vc,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(Sc,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(!Wr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Wr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Zr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(wc,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(Rc,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(Wr(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),bn(i)||zb(i)?this._onresponse(i):Ji(i)?this._onrequest(i,s):Ob(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?.[Zr]?.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=Mb(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),bn(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(bn(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),bn(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,Cn,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},Wr(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||{},[Zr]: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??MN,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},_c,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},bc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},jb,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||{},[Zr]: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||{},[Zr]: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||{},[Zr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=$f(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=If(e,o);return Promise.resolve(r(s,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=$f(e);this._notificationHandlers.set(n,o=>{let i=If(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"&&Ji(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=ts.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Wr(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(Wr(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=ts.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Wr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Wb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Vb(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];Wb(s)&&Wb(i)?r[o]={...s,...i}:r[o]=i}return r}var LP=ca(_h(),1),jP=ca(DP(),1);function NU(){let t=new LP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,jP.default)(t),t}var au=class{constructor(e){this._ajv=e??NU()}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 cu=class{constructor(e){this._client=e}async*callToolStream(e,r=Pn,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 FP(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 UP(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 uu(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&&uu(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&uu(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&uu(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 du=class extends Cc{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 au,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",ns,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",Cf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",yf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new cu(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Vb(this._capabilities,e)}setRequestHandler(e,r){let o=sc(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=ac(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(Tf,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(Cn,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(Af,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{uu(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(xf,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(Cn,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?kf:Ef,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:Co,capabilities:this._capabilities,clientInfo:this._clientInfo}},lf,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!kb.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){FP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&UP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},Rn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Mf,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},Rn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Rf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},vf,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},pf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},hf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},gf,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},Rn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},Rn,r)}async callTool(e,r=Pn,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},Pf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Zb.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 Os=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}},qP=10,LU=13,Dn=32;function Eh(t){}function lu(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=Eh,onError:r=Eh,onRetry:n=Eh,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 ee=g(_);ee!==""&&(s.push(ee),a=ee.length),m();return}if(_.indexOf(`
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 Os(`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(OP(_,C,Q)){let pe=_.charCodeAt(C+5)===Nn?C+6:C+5,be=_.slice(pe,I);if(l===0&&_.charCodeAt(I+1)===IP){e({id:u,event:f,data:be}),u=void 0,d="",f=void 0,C=I+2,I=_.indexOf(`
90
+ `,C);continue}let ee=_.charCodeAt(C);if(HP(_,C,ee)){let pe=_.charCodeAt(C+5)===Dn?C+6:C+5,be=_.slice(pe,I);if(l===0&&_.charCodeAt(I+1)===qP){e({id:u,event:f,data:be}),u=void 0,d="",f=void 0,C=I+2,I=_.indexOf(`
91
91
  `,C);continue}d=l===0?be:`${d}
92
- ${be}`,l++}else zP(_,C,Q)?f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0:v(_,C,I);C=I+1,I=_.indexOf(`
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)===RU&&_.charCodeAt(C)===IP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){b();return}let Q=_.charCodeAt(C);if(OP(_,C,Q)){let Rr=_.charCodeAt(C+5)===Nn?C+6:C+5,Gm=_.slice(Rr,I);d=l===0?Gm:`${d}
95
- ${Gm}`,l++;return}if(zP(_,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 Rr=_.slice(_.charCodeAt(C+3)===Nn?C+4:C+3,I);u=Rr.includes("\0")?void 0:Rr;return}if(Q===58){if(o){let Rr=_.slice(C,I);o(Rr.slice(_.charCodeAt(C+1)===Nn?2:1))}return}let pe=_.slice(C,I),be=pe.indexOf(":");if(be===-1){w(pe,"",pe);return}let qt=pe.slice(0,be),cn=pe.charCodeAt(be+1)===Nn?2:1,lt=pe.slice(be+cn);w(qt,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 $s(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new $s(`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 OP(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 zP(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 uu=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(NP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(NP(this),r)}};function CU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function Rh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(Rh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${Rh(t.cause)}`:t.message:`${t}`}function NP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var LP=t=>{throw TypeError(t)},Mh=(t,e,r)=>e.has(t)||LP("Cannot "+r),q=(t,e,r)=>(Mh(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?LP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(Mh(t,e,"write to private field"),e.set(t,r),r),yr=(t,e,r)=>(Mh(t,e,"access private method"),r),it,Dn,qo,cu,du,zs,Zo,Ns,tn,Ho,Bo,Go,Is,jt,Ch,Ph,xh,DP,kh,Eh,Os,Th,Ah,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,cu),Me(this,du),Me(this,zs),Me(this,Zo),Me(this,Ns,null),Me(this,tn),Me(this,Ho),Me(this,Bo,null),Me(this,Go,null),Me(this,Is,null),Me(this,Ph,async i=>{var s;q(this,Ho).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){yr(this,jt,Os).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){yr(this,jt,Os).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){yr(this,jt,Os).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,Is))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){yr(this,jt,Os).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(),yr(this,jt,Th).call(this))}while(h)}),Me(this,xh,i=>{ve(this,tn,void 0),!(i.name==="AbortError"||i.type==="aborted")&&yr(this,jt,Th).call(this,Rh(i))}),Me(this,kh,i=>{typeof i.id=="string"&&ve(this,Ns,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,Eh,i=>{ve(this,zs,i)}),Me(this,Ah,()=>{ve(this,Zo,void 0),q(this,it)===this.CONNECTING&&yr(this,jt,Ch).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 CU("An invalid or illegal string was specified")}ve(this,Ho,au({onEvent:q(this,kh),onRetry:q(this,Eh)})),ve(this,it,this.CONNECTING),ve(this,zs,3e3),ve(this,du,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,cu,(o=r?.withCredentials)!=null?o:!1),yr(this,jt,Ch).call(this)}get readyState(){return q(this,it)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,cu)}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,Is)}set onopen(e){ve(this,Is,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,tn)&&q(this,tn).abort(),ve(this,it,this.CLOSED),ve(this,tn,void 0))}};it=new WeakMap,Dn=new WeakMap,qo=new WeakMap,cu=new WeakMap,du=new WeakMap,zs=new WeakMap,Zo=new WeakMap,Ns=new WeakMap,tn=new WeakMap,Ho=new WeakMap,Bo=new WeakMap,Go=new WeakMap,Is=new WeakMap,jt=new WeakSet,Ch=function(){ve(this,it,this.CONNECTING),ve(this,tn,new AbortController),q(this,du)(q(this,Dn),yr(this,jt,DP).call(this)).then(q(this,Ph)).catch(q(this,xh))},Ph=new WeakMap,xh=new WeakMap,DP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ns)?{"Last-Event-ID":q(this,Ns)}:void 0},cache:"no-store",signal:(t=q(this,tn))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},kh=new WeakMap,Eh=new WeakMap,Os=function(t,e){var r;q(this,it)!==this.CLOSED&&ve(this,it,this.CLOSED);let n=new uu("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},Th=function(t,e){var r;if(q(this,it)===this.CLOSED)return;ve(this,it,this.CONNECTING);let n=new uu("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,Ah),q(this,zs)))},Ah=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 lu(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 $h;$h=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function xU(t){return(await $h).getRandomValues(new Uint8Array(t))}async function kU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await xU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function EU(t){return await kU(t)}async function TU(t){let e=await(await $h).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Ih(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await EU(t),r=await TU(e);return{code_verifier:e,code_challenge:r}}var je=ob().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:vb.custom,message:"URL must be parseable",fatal:!0}),ol}).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"}),FP=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()}),Oh=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()}),AU=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()}),UP=k({...AU.shape,...Oh.pick({code_challenge_methods_supported:!0}).shape}),qP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:ac.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),HP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),jP=je.optional().or(E("").transform(()=>{})),MU=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:jP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:jP,policy_uri:y().optional(),jwks_uri:je.optional(),jwks:ab().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),$U=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),GP=MU.merge($U),$8=k({error:y(),error_description:y().optional()}).strip(),I8=k({token:y(),token_type_hint:y().optional()}).strip();function ZP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function BP({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 Pe=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}},Ds=class extends Pe{};Ds.errorCode="invalid_request";var jn=class extends Pe{};jn.errorCode="invalid_client";var Fn=class extends Pe{};Fn.errorCode="invalid_grant";var Un=class extends Pe{};Un.errorCode="unauthorized_client";var Ls=class extends Pe{};Ls.errorCode="unsupported_grant_type";var js=class extends Pe{};js.errorCode="invalid_scope";var Fs=class extends Pe{};Fs.errorCode="access_denied";var vr=class extends Pe{};vr.errorCode="server_error";var Us=class extends Pe{};Us.errorCode="temporarily_unavailable";var qs=class extends Pe{};qs.errorCode="unsupported_response_type";var Hs=class extends Pe{};Hs.errorCode="unsupported_token_type";var Gs=class extends Pe{};Gs.errorCode="invalid_token";var Zs=class extends Pe{};Zs.errorCode="method_not_allowed";var Bs=class extends Pe{};Bs.errorCode="too_many_requests";var qn=class extends Pe{};qn.errorCode="invalid_client_metadata";var Ws=class extends Pe{};Ws.errorCode="insufficient_scope";var Vs=class extends Pe{};Vs.errorCode="invalid_target";var WP={[Ds.errorCode]:Ds,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[vr.errorCode]:vr,[Us.errorCode]:Us,[qs.errorCode]:qs,[Hs.errorCode]:Hs,[Gs.errorCode]:Gs,[Zs.errorCode]:Zs,[Bs.errorCode]:Bs,[qn.errorCode]:qn,[Ws.errorCode]:Ws,[Vs.errorCode]:Vs};var We=class extends Error{constructor(e){super(e??"Unauthorized")}};function IU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var zh="code",Nh="S256";function OU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&IU(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 zU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":NU(o,i,r);return;case"client_secret_post":DU(o,i,n);return;case"none":LU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function NU(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 DU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function LU(t,e){e.set("client_id",t)}async function KP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=HP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=WP[o]||vr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new vr(o)}}async function _r(t,e){try{return await Dh(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Dh(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Dh(t,e);throw r}}async function Dh(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 YP(c,{fetchFn:i}),!a)try{a=await JP(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 FU(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&&!jU(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 JU(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 KU(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 VU(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 Pe)||b instanceof vr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await BU(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 jU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function FU(t,e,r){let n=ZP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!BP({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=Lh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Lh(t,"scope")||void 0,a=Lh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Lh(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 JP(t,e,r=fetch){let n=await HU(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 FP.parse(await n.json())}async function jh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?jh(t,void 0,r):void 0;throw n}}function UU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function VP(t,e,r=fetch){return await jh(t,{"MCP-Protocol-Version":e},r)}function qU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function HU(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=UU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await VP(s,i,r);if(!n?.metadataUrl&&qU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await VP(c,i,r)}return a}function GU(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 YP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=GU(t);for(let{url:i,type:s}of o){let a=await jh(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"?Oh.parse(await a.json()):UP.parse(await a.json())}}}async function ZU(t,e){let r,n;try{r=await JP(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 YP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function BU(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(zh))throw new Error(`Incompatible auth server: does not support response type ${zh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Nh))throw new Error(`Incompatible auth server: does not support code challenge method ${Nh}`)}else a=new URL("/authorize",t);let c=await Ih(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",zh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Nh),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 WU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function XP(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=OU(n,d);zU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await KP(u);return qP.parse(await u.json())}async function VU(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 XP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function KU(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=WU(o,u,t.redirectUrl)}let c=await t.clientInformation();return XP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function JU(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 KP(s);return GP.parse(await s.json())}var Ks=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},fu=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=lu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await _r(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 Ks(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=Zr.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 _r(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 _r(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 qx=ia(Fx(),1);import Kh from"node:process";import{PassThrough as Pq}from"node:stream";var Rq=10*1024*1024,hu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??Rq}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),Cq(r)}clear(){this._buffer=void 0}};function Cq(t){return Zr.parse(JSON.parse(t))}function Ux(t){return JSON.stringify(t)+`
98
- `}var xq=Kh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function gu(){let t={};for(let e of xq){let r=Kh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var mu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new hu({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,qx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...gu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Kh.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=Ux(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Wx=ia(Bx(),1);function Vx(t){if(t)try{return Wx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var yu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=au({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 zq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},vu=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=lu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??zq}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await _r(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 yu({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=Zr.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 _r(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:Vi(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 _r(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 _r(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(),Tb(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=Vx(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=>Zr.parse(m)):[Zr.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 Kx(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 Dq={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 Jx(t){return{...gu(),...Dq,...t??{}}}function Yx(){return gu()}var Yh=class t extends mu{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(`
92
+ ${be}`,l++}else GP(_,C,ee)?f=_.slice(_.charCodeAt(C+6)===Dn?C+7:C+6,I)||void 0:v(_,C,I);C=I+1,I=_.indexOf(`
93
+ `,C)}return _.slice(C)}for(;C<_.length;){let I=_.indexOf("\r",C),ee=_.indexOf(`
94
+ `,C),pe=-1;if(I!==-1&&ee!==-1?pe=I<ee?I:ee:I!==-1?I===_.length-1?pe=-1:pe=I:ee!==-1&&(pe=ee),pe===-1)break;v(_,C,pe),C=pe+1,_.charCodeAt(C-1)===LU&&_.charCodeAt(C)===qP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){b();return}let ee=_.charCodeAt(C);if(HP(_,C,ee)){let Cr=_.charCodeAt(C+5)===Dn?C+6:C+5,Ym=_.slice(Cr,I);d=l===0?Ym:`${d}
95
+ ${Ym}`,l++;return}if(GP(_,C,ee)){f=_.slice(_.charCodeAt(C+6)===Dn?C+7:C+6,I)||void 0;return}if(ee===105&&_.charCodeAt(C+1)===100&&_.charCodeAt(C+2)===58){let Cr=_.slice(_.charCodeAt(C+3)===Dn?C+4:C+3,I);u=Cr.includes("\0")?void 0:Cr;return}if(ee===58){if(o){let Cr=_.slice(C,I);o(Cr.slice(_.charCodeAt(C+1)===Dn?2:1))}return}let pe=_.slice(C,I),be=pe.indexOf(":");if(be===-1){w(pe,"",pe);return}let qt=pe.slice(0,be),un=pe.charCodeAt(be+1)===Dn?2:1,pt=pe.slice(be+un);w(qt,pt,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 Os(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new Os(`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 HP(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 GP(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 pu=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(ZP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(ZP(this),r)}};function jU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function kh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(kh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${kh(t.cause)}`:t.message:`${t}`}function ZP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var WP=t=>{throw TypeError(t)},Nh=(t,e,r)=>e.has(t)||WP("Cannot "+r),q=(t,e,r)=>(Nh(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?WP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(Nh(t,e,"write to private field"),e.set(t,r),r),vr=(t,e,r)=>(Nh(t,e,"access private method"),r),it,Ln,Ho,fu,hu,Ds,Bo,Ls,rn,Go,Wo,Zo,zs,jt,Th,Ah,Mh,BP,$h,Ih,Ns,Oh,zh,jn=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,Ln),Me(this,Ho),Me(this,fu),Me(this,hu),Me(this,Ds),Me(this,Bo),Me(this,Ls,null),Me(this,rn),Me(this,Go),Me(this,Wo,null),Me(this,Zo,null),Me(this,zs,null),Me(this,Ah,async i=>{var s;q(this,Go).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){vr(this,jt,Ns).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ve(this,Ho,new URL(i.url)):ve(this,Ho,void 0),u!==200){vr(this,jt,Ns).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){vr(this,jt,Ns).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,zs))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){vr(this,jt,Ns).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,Go).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Go).reset(),vr(this,jt,Oh).call(this))}while(h)}),Me(this,Mh,i=>{ve(this,rn,void 0),!(i.name==="AbortError"||i.type==="aborted")&&vr(this,jt,Oh).call(this,kh(i))}),Me(this,$h,i=>{typeof i.id=="string"&&ve(this,Ls,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,Ho)?q(this,Ho).origin:q(this,Ln).origin,lastEventId:i.id||""});q(this,Zo)&&(!i.event||i.event==="message")&&q(this,Zo).call(this,s),this.dispatchEvent(s)}),Me(this,Ih,i=>{ve(this,Ds,i)}),Me(this,zh,()=>{ve(this,Bo,void 0),q(this,it)===this.CONNECTING&&vr(this,jt,Th).call(this)});try{if(e instanceof URL)ve(this,Ln,e);else if(typeof e=="string")ve(this,Ln,new URL(e,FU()));else throw new Error("Invalid URL")}catch{throw jU("An invalid or illegal string was specified")}ve(this,Go,lu({onEvent:q(this,$h),onRetry:q(this,Ih)})),ve(this,it,this.CONNECTING),ve(this,Ds,3e3),ve(this,hu,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,fu,(o=r?.withCredentials)!=null?o:!1),vr(this,jt,Th).call(this)}get readyState(){return q(this,it)}get url(){return q(this,Ln).href}get withCredentials(){return q(this,fu)}get onerror(){return q(this,Wo)}set onerror(e){ve(this,Wo,e)}get onmessage(){return q(this,Zo)}set onmessage(e){ve(this,Zo,e)}get onopen(){return q(this,zs)}set onopen(e){ve(this,zs,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,Bo)&&clearTimeout(q(this,Bo)),q(this,it)!==this.CLOSED&&(q(this,rn)&&q(this,rn).abort(),ve(this,it,this.CLOSED),ve(this,rn,void 0))}};it=new WeakMap,Ln=new WeakMap,Ho=new WeakMap,fu=new WeakMap,hu=new WeakMap,Ds=new WeakMap,Bo=new WeakMap,Ls=new WeakMap,rn=new WeakMap,Go=new WeakMap,Wo=new WeakMap,Zo=new WeakMap,zs=new WeakMap,jt=new WeakSet,Th=function(){ve(this,it,this.CONNECTING),ve(this,rn,new AbortController),q(this,hu)(q(this,Ln),vr(this,jt,BP).call(this)).then(q(this,Ah)).catch(q(this,Mh))},Ah=new WeakMap,Mh=new WeakMap,BP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ls)?{"Last-Event-ID":q(this,Ls)}:void 0},cache:"no-store",signal:(t=q(this,rn))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},$h=new WeakMap,Ih=new WeakMap,Ns=function(t,e){var r;q(this,it)!==this.CLOSED&&ve(this,it,this.CLOSED);let n=new pu("error",{code:e,message:t});(r=q(this,Wo))==null||r.call(this,n),this.dispatchEvent(n)},Oh=function(t,e){var r;if(q(this,it)===this.CLOSED)return;ve(this,it,this.CONNECTING);let n=new pu("error",{code:e,message:t});(r=q(this,Wo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Bo,setTimeout(q(this,zh),q(this,Ds)))},zh=new WeakMap,jn.CONNECTING=0,jn.OPEN=1,jn.CLOSED=2;function FU(){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 Vo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function mu(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Vo(e.headers),...Vo(n.headers)}:e.headers};return t(r,o)}:t}var Dh;Dh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function UU(t){return(await Dh).getRandomValues(new Uint8Array(t))}async function qU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await UU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function HU(t){return await qU(t)}async function GU(t){let e=await(await Dh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Lh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await HU(t),r=await GU(e);return{code_verifier:e,code_challenge:r}}var je=pb().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:Eb.custom,message:"URL must be parseable",fatal:!0}),ul}).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"}),KP=ke({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()}),jh=ke({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()}),ZU=ke({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()}),JP=E({...ZU.shape,...jh.pick({code_challenge_methods_supported:!0}).shape}),YP=E({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:lc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),XP=E({error:y(),error_description:y().optional(),error_uri:y().optional()}),VP=je.optional().or(k("").transform(()=>{})),BU=E({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:VP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:VP,policy_uri:y().optional(),jwks_uri:je.optional(),jwks:gb().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),WU=E({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),QP=BU.merge(WU),X8=E({error:y(),error_description:y().optional()}).strip(),Q8=E({token:y(),token_type_hint:y().optional()}).strip();function ex(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function tx({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 Pe=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}},js=class extends Pe{};js.errorCode="invalid_request";var Fn=class extends Pe{};Fn.errorCode="invalid_client";var Un=class extends Pe{};Un.errorCode="invalid_grant";var qn=class extends Pe{};qn.errorCode="unauthorized_client";var Fs=class extends Pe{};Fs.errorCode="unsupported_grant_type";var Us=class extends Pe{};Us.errorCode="invalid_scope";var qs=class extends Pe{};qs.errorCode="access_denied";var _r=class extends Pe{};_r.errorCode="server_error";var Hs=class extends Pe{};Hs.errorCode="temporarily_unavailable";var Gs=class extends Pe{};Gs.errorCode="unsupported_response_type";var Zs=class extends Pe{};Zs.errorCode="unsupported_token_type";var Bs=class extends Pe{};Bs.errorCode="invalid_token";var Ws=class extends Pe{};Ws.errorCode="method_not_allowed";var Vs=class extends Pe{};Vs.errorCode="too_many_requests";var Hn=class extends Pe{};Hn.errorCode="invalid_client_metadata";var Ks=class extends Pe{};Ks.errorCode="insufficient_scope";var Js=class extends Pe{};Js.errorCode="invalid_target";var rx={[js.errorCode]:js,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[qn.errorCode]:qn,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qs.errorCode]:qs,[_r.errorCode]:_r,[Hs.errorCode]:Hs,[Gs.errorCode]:Gs,[Zs.errorCode]:Zs,[Bs.errorCode]:Bs,[Ws.errorCode]:Ws,[Vs.errorCode]:Vs,[Hn.errorCode]:Hn,[Ks.errorCode]:Ks,[Js.errorCode]:Js};var We=class extends Error{constructor(e){super(e??"Unauthorized")}};function VU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Fh="code",Uh="S256";function KU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&VU(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 JU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":YU(o,i,r);return;case"client_secret_post":XU(o,i,n);return;case"none":QU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function YU(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 XU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function QU(t,e){e.set("client_id",t)}async function ox(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=XP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=rx[o]||_r;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new _r(o)}}async function Sr(t,e){try{return await qh(t,e)}catch(r){if(r instanceof Fn||r instanceof qn)return await t.invalidateCredentials?.("all"),await qh(t,e);if(r instanceof Un)return await t.invalidateCredentials?.("tokens"),await qh(t,e);throw r}}async function qh(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 sx(c,{fetchFn:i}),!a)try{a=await ix(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 sq(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 tq(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&&!eq(R))throw new Hn(`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 lq(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 dq(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 uq(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 Pe)||b instanceof _r))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await aq(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 eq(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function tq(t,e,r){let n=ex(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!tx({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 Ko(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=Hh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Hh(t,"scope")||void 0,a=Hh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Hh(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 ix(t,e,r=fetch){let n=await oq(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 KP.parse(await n.json())}async function Gh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Gh(t,void 0,r):void 0;throw n}}function rq(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function nx(t,e,r=fetch){return await Gh(t,{"MCP-Protocol-Version":e},r)}function nq(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function oq(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??Co,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=rq(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await nx(s,i,r);if(!n?.metadataUrl&&nq(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await nx(c,i,r)}return a}function iq(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 sx(t,{fetchFn:e=fetch,protocolVersion:r=Co}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=iq(t);for(let{url:i,type:s}of o){let a=await Gh(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"?jh.parse(await a.json()):JP.parse(await a.json())}}}async function sq(t,e){let r,n;try{r=await ix(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 sx(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function aq(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(Fh))throw new Error(`Incompatible auth server: does not support response type ${Fh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Uh))throw new Error(`Incompatible auth server: does not support code challenge method ${Uh}`)}else a=new URL("/authorize",t);let c=await Lh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Fh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Uh),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 cq(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function ax(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=KU(n,d);JU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await ox(u);return YP.parse(await u.json())}async function uq(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 ax(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function dq(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=cq(o,u,t.redirectUrl)}let c=await t.clientInformation();return ax(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function lq(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 ox(s);return QP.parse(await s.json())}var Ys=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},gu=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=mu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await Sr(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=Vo(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 jn(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}=Ko(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 Ys(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=Br.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 Sr(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}=Ko(o);if(this._resourceMetadataUrl=s,this._scope=a,await Sr(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 Yx=ca(Kx(),1);import em from"node:process";import{PassThrough as Fq}from"node:stream";var Lq=10*1024*1024,vu=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),jq(r)}clear(){this._buffer=void 0}};function jq(t){return Br.parse(JSON.parse(t))}function Jx(t){return JSON.stringify(t)+`
98
+ `}var Uq=em.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function Su(){let t={};for(let e of Uq){let r=em.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var _u=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new vu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new Fq)}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,Yx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...Su(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:em.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=Jx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var rE=ca(tE(),1);function nE(t){if(t)try{return rE.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var wu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=lu({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 Jq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},bu=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=mu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??Jq}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await Sr(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=Vo(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 wu({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=Br.parse(JSON.parse(p.data));bn(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 Sr(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:Ji(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}=Ko(a);if(this._resourceMetadataUrl=h,this._scope=m,await Sr(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}=Ko(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 Sr(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(),Lb(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=nE(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=>Br.parse(m)):[Br.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 oE(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 Xq={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 iE(t){return{...Su(),...Xq,...t??{}}}function sE(){return Su()}var rm=class t extends _u{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 Xx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Yh(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}},Xh=new Nq;function Qh(t,e){return Xh.run(t,e)}function Lq(t){Xh.getStore()?.onFailure?.(t)}function Qx({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=Xh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw Lq(u),u}}function ek(t,e){let r=Qx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new vu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function tk(t,e){let r=Qx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new fu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function rk(){return new su({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var nk=ts,ok=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof Ft||t instanceof Ks)&&t.code===401}function em(t){return t instanceof T&&t.code===$.MethodNotFound}function tm(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function ik(t){return t instanceof T&&t.code===$.RequestTimeout}function sk(t){return t instanceof T&&t.code===$.ConnectionClosed}var jq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function ak(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return jq.some(r=>e.includes(r))}function ck(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function rm(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var X=Fq.child({prefix:"pi-mcp"});function qq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function Hq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&qq(r,o)})}var Gq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Zq=/^Node\.js v\d/,Bq=/^[\w$.]*error[\w$]*:/i,uk=400,Wq=63e3,dk=3,Vq=/[\\/]lib[\\/]cli\.js/,Kq="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.",vk=Symbol("mcpReinitReported");function Jq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,vk,{value:!0,enumerable:!1,configurable:!0})}function Yq(t){return typeof t=="object"&&t!==null&&t[vk]===!0}function Xq(t){let e=t.filter(a=>!Zq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Vq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return Kq;let o=r.findIndex(a=>Bq.test(a)),s=(o===-1?r.slice(-dk):r.slice(o,o+dk)).join(" / ");return s.length>uk?`${s.slice(0,uk)}\u2026`:s}function Qq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Gq,"").split(`
101
- `).map(i=>i.trim()).filter(i=>i.length>0),o=Xq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var eH=6e5,tH=18e5,lk=2147483647,rH=3e4,fk=1e4,_k=[250,1e3,2e3],Zn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Js=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},nH=250,pk=3,oH=[200,500];function iH(t){for(let e of Object.values(t))if(Lr(e))return!0;return!1}function nm(t){let e=new Set;for(let r of t.matchAll(Mi))e.add(Fa(r[0]));return[...e].sort()}function om(t){return[...new Set(t)].sort()}function hk(t,e){return tv(e.map(r=>t?.[r]??"missing"))}function sH({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return om([...e&&t?$i(t):[],...n&&r?nm(r):[],...o.flatMap(nm)])}var _u="${augmentToken}";function aH(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 cH(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var Sk="(unknown uri)",im="unknown",mk=/=+$/,uH=/\s+/g,dH=/[-_]/g,lH=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function wk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function fH(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function pH(t){let e=t.replace(uH,"").replace(dH,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(mk,"");if(r.toString("base64").replace(mk,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function bk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function hH(t){let e=bk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,Sk),n=Bn(e.mimeType,im);if(typeof e.blob=="string"&&fH(n)){let i=pH(e.blob);if(i!==void 0)return i}let o=wk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function mH(t){let e=Bn(t.type,"unknown");if(e==="resource")return hH(t);if(e==="audio"){let r=Bn(t.mimeType,im),n=wk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,Sk),n=Bn(t.name,""),o=Bn(t.mimeType,im);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function gH(t){if(t.type!=="resource")return;let e=bk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&lH.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function yH(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=gH(t);return e||{type:"text",text:yk(mH(t))}}function vH(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(yH(n))}return e}function _H(t){return By(t,Wq)}function Rk(t,e){let r=vH(t);if(r.length===0){let o=_H(e);o!==void 0&&r.push({type:"text",text:yk(o)})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function SH(t,e){let r=Rk(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 Ck=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),wH=new Set([502,503,504]),Ys=_k.length+1,bH=2;function RH(t){let r=t?.cause?.code;if(typeof r=="string")return r;let n=t?.status;if(typeof n=="number")return String(n);let o=t?.code;return typeof o=="number"?String(o):void 0}function CH(t){if(Pt(t)||rm(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return Ck.has(e)?{totalAttempts:Ys}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:bH}:wH.has(r)?{totalAttempts:Ys}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Ys}:void 0}var PH=80,xH=10,kH=/[^a-zA-Z0-9_.()-]/g,EH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function Su(t){return t.replace(kH,"_").slice(0,PH)||"unknown"}function TH(t){let e=RH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||Ck.has(e)))return e}function Ve(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=EH.has(e)?e:"Error",n=TH(t);return n===void 0?r:`${r}(${n})`}function AH(t,e,r){return t instanceof gt?new gt(Su(t.serverName),t.missingKeys.slice(0,xH).map(Su),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:Su(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var sm={heartbeat_timeout:{tool:"The MCP server did not answer its heartbeat in time.",log:"MCP heartbeat timed out"},connection_closed:{tool:"The connection to the MCP server closed before the tool finished.",log:"MCP connection closed during tool execution"},heartbeat_failed:{tool:"The MCP heartbeat failed while the tool was running.",log:"MCP heartbeat failed during tool execution"}},MH="configured MCP server",$H=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,gk=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,IH=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(sm[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function OH(t){return ik(t)?"heartbeat_timeout":sk(t)?"connection_closed":"heartbeat_failed"}var wu=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=>ja(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)?ja(Qq(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=Ys,r={available:!0};for(let n=1;n<=Ys;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=CH(o);if(i===void 0||this._disposed||(e=Math.min(e,i.totalAttempts),n>=e))throw o;if(await this._backoffBeforeRetry(o,n,e),this._disposed)return}}async _backoffBeforeRetry(e,r,n){let i=(_k[r-1]??0)+Math.floor(Math.random()*(nH+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=rk();this._client=i;let s;try{if(await Qh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(nk,()=>{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":AH(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 Js||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);Ti(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=Kx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Jx(this._resolvedEnv??e.env);return Xx({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 tk(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=ek(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?iH(r):!1,o=e.type==="stdio"&&Lr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Lr);if(!(n||o||s))return;let a=te();if(!this._targetAuth&&!ev(a)){let u=sH({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??Xy(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 nv({configEnv:e,localEnv:n&&!this._targetAuth?Yx():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${Ve(c)})`),new gt(this.name,$i(e),c,"transient")}let a=om([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,hk(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=rl(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await ov(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Ve(s)})`),new gt(this.name,nm(e),s,"transient")}let i=om([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,hk(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(_u)))return;let o;if(aH(e.url)){let s=te().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${_u} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${_u} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${cH(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(_u,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,Gt(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,Gt(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!xd(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=Gt(e.state,i),d=n===void 0&&u===void 0||kr(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||!kr(Gt(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)&&Ed(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=Gt(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await Td(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:rm(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)})`),Jq(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),Qh({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 Js;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()},rH),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<=pk&&n.outcome==="transient";s++)await pn(oH[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 ${pk} 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:fk})},"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":em(e)||tm(e)?"alive":Pt(e)?"authFailure":ak(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:fk})}catch(r){if(this._reinitializingPromise||this._disposed||tm(r)||em(r))return;this._failInFlightCalls(new Wn(OH(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 rl([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!$H.test(e)||gk.test(e)||ja(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?MH:e}_safeCorrelationId(e){if(!(!e||!IH.test(e)||gk.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;Uq(sm[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=!Hq(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>lk)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${lk}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??eH,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??tH,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??{}},ok,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 SH({content:f.content,structuredContent:f.structuredContent},i);let p=Rk(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(sm[e.category].tool,"Error");throw this._disposed||Ti(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||Ti(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Zn||e instanceof Js)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=Su(r),i=Ve(e),s=ck(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 Yq(e)||Ti(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 Pk=NH.child({prefix:"pi-mcp"}),DH=3,LH=6e4;function jH(t,e){let r=Date.now(),n=r-LH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=DH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function xk(t){sr(t),Sa(t)}async function FH(t,e,r){if(!jH(e,t)){Pk.warn(`MCP server "${t}" automatic restart rate-limited`);return}Pk.warn(`MCP server "${t}" wedged; recycling transport`),await rn(t,e,r)}function bu(t,e,r){if(UH(e)){xk(t),N(t,e);return}md(t,r),Or(e)&&xk(t),N(t,e)}function UH(t){return pi()||yd(t)&&t.toolSearchLatched}function rr(t,e,r){return Yu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function am(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 qH(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&&ag(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 cm(t){let{state:e,config:r,generation:n}=t;return new wu(r,qH({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 um(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 dm(t,e,r){return t.configDesiredRevisions.get(e)===r}function kk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function lm(t,e,r,n){t.onStateChange=(a,c)=>{if(!rr(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(zH,u)},t.onWedged=()=>{if(!rr(t,e,r))return;let a=r.currentLoad?.latestPi??n;FH(t.name,r,a)};let o=t.hostedCredentialProvenance,i=t.targetCredentialProvenance?.credential,s;i&&(t.config.type==="http"||t.config.type==="sse")&&t.config.auth==="oauth"?s={serverGeneration:e,mcpConfigId:t.config.id,credentialRevision:i.revision,credentialRevisionDomain:i.domain}:o?.kind==="accepted"&&o.hostedAccessTokenOnly&&(s={serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain}),t.onAuthRefreshNeeded=()=>{if(!rr(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(!rr(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=()=>{rr(t,e,r)&&t.status==="success"&&bu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;gd(a,t,e),a!==n&&gd(n,t,e)}}async function Ek(t,e,r,n){let o=setTimeout(()=>{rr(t,e,r)&&N(n(),r)},sa);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),rr(t,e,r)&&N(n(),r)}}async function Tk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function Ru(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 HH(t){let{state:e,config:r,displaced:n,retirement:o}=t;um(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Qu(n.config,r)?Promise.resolve():ht(e,r.name,n.config.id,n.config),a=(await Promise.allSettled([i,n.dispose({strict:!0})])).find(c=>c.status==="rejected");if(a)throw a.reason;_e({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw _e({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function GH(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=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(),rr(r,o,e)?a?.(n)===!1?(await GH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&bu(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 BH(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(!dm(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=am(e,r.name),l=cm({state:e,config:r,generation:d});return lm(l,d,e,o),ua({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 WH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!dm(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=xr(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=()=>BH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await HH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Ju(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 WH({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)},sa);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function VH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!kk(e,t,n))return!1;let i=o.config,s=ee(e,t,o);if(!Yu(e,t,o))return!1;um(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||!kk(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=am(e,t),u=cm({state:e,config:i,generation:c});if(lm(u,c,e,r),!ua({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await Ek(u,c,e,d),rr(u,c,e)&&u.status==="success"&&bu(d(),e,u),!0}function rn(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 VH({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 KH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;um(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Qu(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 Ak(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 KH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Ju(f.retirement),D(e,t)?.revision!==f.lease.revision||!dm(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=am(e,t),h=cm({state:e,config:a,generation:p});lm(h,p,e,r),ua({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await Ek(h,p,e,i),rr(h,p,e)&&h.status==="success"&&bu(i(),e,h))}async function Xs(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>rn(n,e,r)))}finally{e.reconnecting=!1}}var Mk=Symbol.for("__pi_mcp_registry_ingress__");function Cu(t){return Object.defineProperty(t,Mk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,Mk)?.value===!0}function nn(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 JH}from"@hermes/logger";var YH=JH.child({prefix:"pi-mcp"}),XH=1e6,QH=1e3,eG=/^\d+$/;function $k(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function on(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"||!eG.test(e)||typeof r!="string"||r.length===0)return;let n=la(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:$k(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function tG(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:Er(o,n)>0?o:n}function rG(t,e,r){if(t===void 0)return!0;let n=$k(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:")&&Tr(n)===r.domain&&Tr(e.domain)===r.domain?!0:r?.kind==="domain"&&!Ie(n)&&Ie(e.domain)&&Tr(n)===r.domain}function nG(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 YH.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=Tr(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(!rG(c,r,s))return"reject";let u=tG(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=Er(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 oG(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 iG(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 sG(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*QH+Math.floor(t.access_token_expires_at.nanos/XH):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 aG(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 Sr(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!iG(n))return{decision:"reject"};let i=on(n),s=nG(r,n,i,o);if(s==="reject")return{decision:s};let a=sG(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!aG(e.get(r),a))||s==="apply"&&oG(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function Pu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=Sr({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 Ik=cG.child({prefix:"pi-mcp"});function uG(t,e){let r=nn({state:t,target:e,byConfigId:!0});if(!r)return;let o=D(t,r.name)?.owner??xr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function dG(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=on(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 Ok(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){Ik.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=uG(r,n.configId),i=o?dG(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=()=>Sr({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=Pu(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=on(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??rn,h=t.report??N;await p(o.name,r,f).catch(m=>{Ik.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${m instanceof Error?m.name:"non-Error"}`)}),h(f,r),Se(r)}import{logger as CG}from"@hermes/logger";import{randomUUID as lG}from"node:crypto";import{setToolSource as fG}from"@augmentcode/auggie-v2";import{logger as pG}from"@hermes/logger";import{Type as hG}from"@sinclair/typebox";var Nk=pG.child({prefix:"pi-mcp"}),nr="attach-mcp-server",mG="augment:mcp-attach-request",gG=15e3,yG={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 vG(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 _G(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function fm(t,e){let r=_G(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 SG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},gG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function zk(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 wG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return xe(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${fm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return xe(`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.${fm(r,e)}`)}function bG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return xe(`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,xe("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 xe(`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 xe(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return xe(`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 xe(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return xe(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${fm(n,e)}`);case"NO_ACTIVE_VM":return xe(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return xe(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function RG(t,e,r){if(e.mcpAttachDisabled)return xe("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(`${nr} requires a string "config_id" parameter. ${zk(e)}`);let o=vG(e,n);if(o.kind==="none")return xe(`No MCP server matching "${n}" is available to attach. ${zk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return xe(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=wG({entry:i,state:e});if(s!==void 0)return s;if(vd(e,i))return xe(`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 xe(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=lG();Nk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=SG(e,a);t.events.emit(mG,{configId:i.id,requestId:a});let u=await c,d=bG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(nr),no(nr),Or(e)&&sr(t)),d}function xu(t,e){let r={name:nr,label:nr,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:hG.Unsafe(yG),execute:(n,o)=>RG(t,e,o)};fG(nr,"mcp"),t.registerTool(r),$r(r),Nk.debug("Registered attach-mcp-server tool")}var ku=CG.child({prefix:"pi-mcp"}),pm="augment:mcp-attach-result";function Dk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(pm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){ku.warn(`${pm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){ku.debug(`${pm}: 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 Eu(t,e){if(e.mcpAttachCloudSignaled&&wa(e)){xu(t,e);return}e.mcpAttachCloudSignaled&&Cg(nr)!==void 0&&(t.unregisterTool(nr),no(nr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!wa(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await Ig(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,ku.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,ku.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Eu(s,e),Or(e)&&sr(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as LG}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 xG(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case zr.CLI:return"cli";case zr.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 Tu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(xG).filter(r=>r!==void 0);return e.length===0?void 0:e}function Au(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 kG(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 EG(t){let e=t.name;return t.type==="stdio"?`stdio\0${e}\0${t.command}\0${t.args.join(" ")}`:`${t.type}\0${e}\0${t.url}`}function hm(t,e,r){let n=new Map;for(let o of t)r(o.id)&&n.set(o.id,o);for(let o of e)n.set(o.id,o);return[...n.values()]}function TG(t,e,r){if(r!==void 0&&t.added_by===r)return Tu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?Tu(n):[]}function AG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=hm(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=hm(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=hm(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let m=!d.has(p.id)&&a.has(p.id)?TG(p,o,s):Tu(p.enabled_products),g=t.productType??"cloud_agent";m===void 0||m.includes(g)?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function MG(t,e="cloud_agent"){if(t==null)return e==="cli"?zr.CLI:zr.CLOUD_AGENT}function $G(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 Lk(t,e,r,n){try{let o=t.type==="stdio"?Bt(t,n):Zt(t,n);return{ok:!0,server:Cu(o)}}catch(o){let i=o instanceof Error?o.message:String(o);return{ok:!1,diagnostic:{server:t.name,message:`Skipped registry MCP server "${t.name}" (id=${e}, ${r}): ${i}`}}}}function IG(t){let{payload:e,userIds:r,localServerNames:n,seenNames:o,workspaceRoot:i}=t;if(e.config?.disabled)return e.config.name?{kind:"retained",name:e.config.name}:{kind:"dropped"};let s=r.has(e.id)?"user":"tenant",a=Au(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=Lk(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=Lk(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 OG(t){let e=[],r=[],n=[];for(let o of t)kG(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 zG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=EG(i);if(o.has(s)){r.push(i.name),n.push({server:i.name,message:`Skipped duplicate MCP server "${i.name}" (id=${i.id}): byte-identical to another selected server`});continue}o.add(s),e.push(i)}return{servers:e,droppedNames:r,diagnostics:n}}function NG(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 Mu(t){let e=t.productType??"cloud_agent",r=t.client??new Ra(t.creds),{tenant:n,user:o,diagnostics:i}=await Zg(r,MG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=AG({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=OG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...$G(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 _=IG({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});NG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=zG(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 DG}from"@hermes/logger";var Xo=DG.child({prefix:"pi-mcp"});function jk(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=Au(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 Cu(i.server.type==="stdio"?Bt(i.server,s):Zt(i.server,s))}catch(a){Xo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function Fk(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 jk(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=jk(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=LG.child({prefix:"pi-mcp"});function qk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function Hk(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 jG(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=Hk({state:e,name:r,lease:c,host:n,isDeselected:qk({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 FG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=Hk({state:e,name:r,lease:n,isDeselected:qk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function UG(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=jG({state:t,name:a,server:c,selectedIds:n,replacementOwners:r,slotReservations:o,processedNames:s});u&&i.push(u)}for(let[a,c]of t.hostLeases)s.has(a)||c.owner.kind!=="registry"||c.host!==void 0||FG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Gk(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 qG(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 HG(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 GG(t){let{state:e,previousSelectedIds:r,configIds:n}=t;if(!n)return;let o=new Set(n),i=[],s=[];for(let a of r){if(o.has(a))continue;let c=e.registryConfigNamesById.get(a),u=[...o].some(d=>e.registryCredentialIntents.get(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 BG(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 WG(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 VG(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 Gk(e,r.servers,n,i,o!==void 0)}async function Zk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function Uk(t){return await Zk(t.state,t.result),t.state.registryGeneration===t.generation&&await VG(t),t.result}function KG(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=qG(n,r,i);return Uk({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=>Uk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function JG(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 YG(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 XG(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 Bk(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 mm(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 QG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){mm({state:e,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:void 0,slotReservations:a}),xt.info(`Registry discovery superseded by a newer selection; skipping ${r.servers.length} server(s)`);return}if(await Zk(e,r),e.registryGeneration!==o)return;let c=Bk({state:e,generation:o}),u=r.servers.filter(c),d=await Promise.all(u.map(v=>Mr({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]);JG({state:e,result:r,selection:n}),YG({state:e,servers:f}),mm({state:e,result:r,selection:n,slotReservations:a});let p=XG({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 eZ({state:e,pi:s,result:r,generation:o,connect:i})}async function eZ(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 tZ({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function tZ(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 Mr({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,Bk({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 rZ(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 Gk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function nZ(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 oZ(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await QG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),mm({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 nZ(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 rZ({...t.resultArgs,error:r})}}function Qs(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Mu,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)&&fg(r,new Set(a.configIds.map(He)));let u=HG({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=GG({state:r,previousSelectedIds:l,configIds:a.configIds}),p=ZG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([UG(r,a.configIds,p),f]).then(([w])=>w);BG(r);let g=a.configIds?[...a.configIds]:void 0,v=KG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:WG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?oZ({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as iZ}from"@hermes/logger";var sn=iZ.child({prefix:"pi-mcp"});function sZ(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 aZ(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Jk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function cZ(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function Wk(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&&(cZ({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 Yk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Vk(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 Xk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function uZ(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=D(e,r),s=n?xr(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?Qm({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&&(Xk(e,r),Ke(e,r))}async function gm(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 sn.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=xr(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 sn.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 sn.warn(b),e.diagnostics.push({server:a,message:b}),w}Jk({state:e,configId:r,fence:i})&&(Yk(e,r),uZ({state:e,name:a,config:s,retirement:g})),sn.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 Kk(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)}`;sn.warn(i),e.diagnostics.push({server:r,message:i})}async function dZ(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Kk({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 Kk({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 lZ(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?.(),sn.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await dZ({state:e,name:n,configId:r,server:a});if(h&&Jk({state:e,configId:r,fence:s})?Yk(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})&&Xk(e,n),i(p,e),!h)throw m}function $u(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return sn.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return sn.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:ga({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=Vk(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(Wk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>gm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=sZ(r,s);if(u===void 0&&d===void 0)return a(gm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=aZ({state:r,configId:s,liveEditGeneration:h});return a(Wk({state:r,configId:s,fence:m,operation:()=>{let g=Vk(r,s);return g===void 0?gm({state:r,configId:s,pi:e,report:c,sourceFence:m}):lZ({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as fZ}from"node:crypto";var pZ=/^[1-9][0-9]*$/,hZ=/^[a-f0-9]{64}$/,mZ=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 ym(t){return typeof t=="string"&&pZ.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function _m(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&ym(t.connectionVersion)}function gZ(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Lr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Lr(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 eE(t){if(!(!fe(t)||Object.keys(t).some(e=>!mZ.has(e)))&&!(!gZ(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"||!hZ.test(t.route_revision)||!ym(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"||!ym(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 vm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function yZ(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 vZ(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 Qk(t,e){return vm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&yZ(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function _Z(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 SZ(t,e){let r=$i((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 Iu=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 _m(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&&!vm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&vm(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||!vZ(e,r)||!n&&(!o||!this.#r.has(r)||!Qk(e,o.material))||!SZ(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"&&Qk(e,o.material)&&_Z(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 tE(t){return fZ("sha256").update(t).digest("hex")}function wZ(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 bZ(t,e){if(e.length<=1)return!0;let r=la(t);return r.kind==="valid"&&e.filter(n=>He(n)===r.ownerDomain).length===1}function rE(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 RZ(t,e){let r=t.args===void 0?[]:t.args,n=t.use_shell_interpolation===void 0?!1:t.use_shell_interpolation;return(t.url===void 0||t.url==="")&&t.command===e.command&&Array.isArray(r)&&r.length===e.args.length&&r.every((o,i)=>o===e.args[i])&&n===e.use_shell_interpolation}function CZ(t){return t.env!==void 0&&(!fe(t.env)||Object.values(t.env).some(e=>typeof e!="string"))?!1:t.timeout_ms===void 0||typeof t.timeout_ms=="number"&&Number.isSafeInteger(t.timeout_ms)&&t.timeout_ms>=0}function PZ(t,e,r){if(typeof t!="string"||tE(t)!==e.route_revision)return;let n=JSON.parse(t);if(!fe(n)||!fe(n.config)||n.id!==e.config_id||n.config.auth_type!=={oauth:2,static:3,none:1}[e.auth_type])return;let i=n.config;if(i.type!==void 0&&i.type!==e.transport||i.name!==e.server_name||i.disabled!==void 0&&i.disabled!==!1||!CZ(i))return;let s={id:e.config_id,name:e.server_name,registrySource:"tenant",...i.timeout_ms?{timeoutMs:i.timeout_ms}:{}},a=i.env?Object.freeze({...i.env}):void 0;if(e.transport==="stdio"){if(!RZ(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 nE(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?rE(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?wZ(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)||!bZ(f,b)||n.has(l)||Sr({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=eE(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 xZ(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=nE(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=[...rE(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,xu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=Qs({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 kZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return xZ(t);let o;try{o=nE(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await TZ({pi:e,state:r,data:n,candidate:i,store:s})}function EZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function TZ(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=EZ(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=$u({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?ud(c):ma(c))}}function ea(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 AZ(t,e){t.registryGeneration++,cg(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 oE(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Iu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(_m(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,AZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;ea(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await kZ({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 HZ}from"@hermes/logger";import{execFile as Sm}from"node:child_process";import{win32 as wm}from"node:path";import{logger as MZ}from"@hermes/logger";var $Z=5e3,IZ=/^[a-z]:[\\/]/i,OZ=/[<>:"|?*]/;function zZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!IZ.test(t)||!wm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||OZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:wm.join(wm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function NZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function DZ(t,e){switch(process.platform){case"darwin":return Sm("open",[t],e);case"win32":{let r=zZ();return r?Sm(r,["-NoProfile","-NonInteractive","-EncodedCommand",NZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return Sm("xdg-open",[t],e)}}function iE(t,e=$Z){let r=MZ.child({prefix:"open-browser"});return new Promise(n=>{let o;try{let c=new URL(t);if(c.protocol!=="http:"&&c.protocol!=="https:"){r.warn("Refusing to open browser for a non-http(s) URL"),n(!1);return}o=c.toString()}catch{r.warn("Refusing to open browser for an unparseable URL"),n(!1);return}let i=!1,s=null,a=setTimeout(()=>{if(!i){i=!0,r.warn("Browser open timed out (no display on a remote machine?)");try{s?.kill()}catch(c){r.debug("Failed to kill browser-open child process",{error:c})}n(!1)}},e);s=DZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as LZ}from"node:http";function Ou(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function sE(t){let e=Ou(t.title),r=Ou(t.heading),n=Ou(t.message),o=t.details?Ou(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 aE(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new rm(e,t.suppressStderr)}var Gn=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}},nm=new Yq;function om(t,e){return nm.run(t,e)}function Qq(t){nm.getStore()?.onFailure?.(t)}function cE({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=nm.getStore(),u=new Gn({status:a.status,transport:e,operation:c?.operation??"transport"});throw Qq(u),u}}function uE(t,e){let r=cE({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new bu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function dE(t,e){let r=cE({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new gu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function lE(){return new du({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var fE=ns,pE=Ae;function ft(t){return t instanceof Gn&&t.status===401||(t instanceof Ft||t instanceof Ys)&&t.code===401}function im(t){return t instanceof T&&t.code===$.MethodNotFound}function sm(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function hE(t){return t instanceof T&&t.code===$.RequestTimeout}function mE(t){return t instanceof T&&t.code===$.ConnectionClosed}var eH=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function gE(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return eH.some(r=>e.includes(r))}function yE(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function am(t){return t instanceof Gn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var Q=tH.child({prefix:"pi-mcp"});function nH(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function oH(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&nH(r,o)})}var iH=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),sH=/^Node\.js v\d/,aH=/^[\w$.]*error[\w$]*:/i,vE=400,cH=63e3,_E=3,uH=/[\\/]lib[\\/]cli\.js/,dH="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.",kE=Symbol("mcpReinitReported");function lH(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,kE,{value:!0,enumerable:!1,configurable:!0})}function fH(t){return typeof t=="object"&&t!==null&&t[kE]===!0}function pH(t){let e=t.filter(a=>!sH.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>uH.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return dH;let o=r.findIndex(a=>aH.test(a)),s=(o===-1?r.slice(-_E):r.slice(o,o+_E)).join(" / ");return s.length>vE?`${s.slice(0,vE)}\u2026`:s}function hH(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(iH,"").split(`
101
+ `).map(i=>i.trim()).filter(i=>i.length>0),o=pH(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var mH=6e5,gH=18e5,SE=2147483647,yH=3e4,wE=1e4,TE=[250,1e3,2e3],Bn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Xs=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},vH=250,bE=3,_H=[200,500];function SH(t){for(let e of Object.values(t))if(jr(e))return!0;return!1}function cm(t){let e=new Set;for(let r of t.matchAll(Ii))e.add(Ga(r[0]));return[...e].sort()}function um(t){return[...new Set(t)].sort()}function RE(t,e){return dv(e.map(r=>t?.[r]??"missing"))}function wH({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return um([...e&&t?Oi(t):[],...n&&r?cm(r):[],...o.flatMap(cm)])}var Ru="${augmentToken}";function bH(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 RH(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var AE="(unknown uri)",dm="unknown",CE=/=+$/,CH=/\s+/g,PH=/[-_]/g,xH=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Wn(t,e){return typeof t=="string"?t:e}function ME(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 kH(t){let e=t.replace(CH,"").replace(PH,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(CE,"");if(r.toString("base64").replace(CE,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function $E(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function TH(t){let e=$E(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Wn(e.uri,AE),n=Wn(e.mimeType,dm);if(typeof e.blob=="string"&&EH(n)){let i=kH(e.blob);if(i!==void 0)return i}let o=ME(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function AH(t){let e=Wn(t.type,"unknown");if(e==="resource")return TH(t);if(e==="audio"){let r=Wn(t.mimeType,dm),n=ME(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Wn(t.uri,AE),n=Wn(t.name,""),o=Wn(t.mimeType,dm);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function MH(t){if(t.type!=="resource")return;let e=$E(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&xH.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function $H(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=MH(t);return e||{type:"text",text:EE(AH(t))}}function IH(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($H(n))}return e}function OH(t){return tv(t,cH)}function IE(t,e){let r=IH(t);if(r.length===0){let o=OH(e);o!==void 0&&r.push({type:"text",text:EE(o)})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function zH(t,e){let r=IE(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 OE=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),NH=new Set([502,503,504]),Qs=TE.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 PE(t){if(ft(t)||am(t)||t instanceof yt)return;let e=t?.cause?.code;if(typeof e=="string")return OE.has(e)?{totalAttempts:Qs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:DH}:NH.has(r)?{totalAttempts:Qs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Qs}:void 0}var jH=80,FH=10,UH=/[^a-zA-Z0-9_.()-]/g,qH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function Cu(t){return t.replace(UH,"_").slice(0,jH)||"unknown"}function HH(t){let e=LH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||OE.has(e)))return e}function Ve(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=qH.has(e)?e:"Error",n=HH(t);return n===void 0?r:`${r}(${n})`}function GH(t,e,r){return t instanceof yt?new yt(Cu(t.serverName),t.missingKeys.slice(0,FH).map(Cu),void 0,t.reason).message:t instanceof Gn?t.message:`MCP ${r} ${e} failed (${Ve(t)})`}function Zn(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:Cu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var lm={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"}},ZH="configured MCP server",BH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,xE=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,WH=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Vn=class extends Error{category;serverDisplayName;constructor(e,r){super(lm[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function VH(t){return hE(t)?"heartbeat_timeout":mE(t)?"connection_closed":"heartbeat_failed"}var Pu=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_lastFailureTransient=!1;_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;_errorProbe;_authEpoch=0;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;_suppressStdioDiagnostics;_toolErrorRedactor;constructor(e,r){this._config=e,this._targetAuth=Y().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 lastFailureTransient(){return this._lastFailureTransient}get isDisposed(){return this._disposing||this._disposed}get suppressesProviderDiagnostics(){return this._suppressStdioDiagnostics}get connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._suppressStdioDiagnostics?[]:this._stdioTransport?.getLogHistory().map(e=>Ha(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=>{Q.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&&!ft(r)?Ha(hH(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=Qs,r={available:!0};for(let n=1;n<=Qs;n++)try{let o=await this._attemptConnect(r);return n>1&&Q.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=PE(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=(TE[r-1]??0)+Math.floor(Math.random()*(vH+1));Q.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Ve(e)}; retrying in ${i}ms`),await hn(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 ft(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 Bn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=lE();this._client=i;let s;try{if(await om({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(fE,()=>{Q.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._lastFailureTransient=!1,this._emitState("connected"),this._wireLivenessHandlers(),this._startHeartbeat();let c=Y();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&ct(c,this.name),Q.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){Q.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":GH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(this._lastFailureTransient=PE(e)!==void 0,e instanceof yt){this._status="failed";let o=Y();si(o,this.name,e.reason,at(o,this.name,this._config.id))}else if(e instanceof Xs||e instanceof Bn)this._status="failed";else if(ft(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(ft(e)){this._status="auth_required";let o=Y(),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);Mi(Zn(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=Y().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=oE({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=iE(this._resolvedEnv??e.env);return aE({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 dE(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=uE(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?SH(r):!1,o=e.type==="stdio"&&jr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(jr);if(!(n||o||s))return;let a=Y();if(!this._targetAuth&&!uv(a)){let u=wH({source:r,sourceHasSecretRef:n,command:e.type==="stdio"?e.command:void 0,commandHasSecretRef:o,args:i});throw new yt(this.name,u)}let c=this._targetAuth?.getSecret??av(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 fv({configEnv:e,localEnv:n&&!this._targetAuth?sE():{},getSecret:s})}catch(c){throw Q.error(`MCP server "${this.name}" secret resolution failed (${Ve(c)})`),new yt(this.name,Oi(e),c,"transient")}let a=um([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new yt(this.name,a,void 0,RE(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=al(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await pv(e,r,n)}catch(s){throw Q.error(`MCP server "${this.name}" command secret resolution failed (${Ve(s)})`),new yt(this.name,cm(e),s,"transient")}let i=um([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new yt(this.name,i,void 0,RE(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(Ru)))return;let o;if(bH(e.url)){let s=Y().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${Ru} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${Ru} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${RH(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(Ru,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=Y();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"?Q.error(i):Q.warn(i)}_usableToken(){let e=Y();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&&!ht(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=Y();return r.tokens.hasCredentialIdentity?.(this.name,Gt(r,this))===!0}async _maybeProactiveRefresh(){let e=Y(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,Gt(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!Md(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():bi(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=Y(),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:at(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||!ht(this._config,i.config))return;let u=Gt(e.state,i),d=n===void 0&&u===void 0||kr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),dn({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||!kr(Gt(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;dn({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&N(f,e.state)}catch{Q.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)&&Id(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&si(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),Q.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),si(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=Gt(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await Od(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),dn({state:e.state,name:this.name,revision:i}),ct(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&N(s,e.state),Q.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:am(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}Q.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e,r){if(this._config.type!=="http")return e();try{return await e()}catch(n){let o=this._isSessionExpiredError(n),i=this._reinitializingPromise!==void 0;if(!(o||i))throw n;Q.info(o?`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`),r?.("reconnecting");try{await this._reinitializeSession()}catch(s){throw Q.error(`MCP server "${this.name}" session re-initialization failed (${Ve(s)})`),lH(n),n}return r?.("running"),await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Bn}async _withAuthRetry(e,r,n){let o=this._config,i=Y(),s=at(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),om({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||!ft(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Xs;if(this._hostedCredentialProvenance!==void 0)throw new Bn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;Q.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`),n?.onPhase?.("reauthorizing");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}this._authEpoch++,n?.onPhase?.("running");try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw ft(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=Y();si(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Ve(e)),Q.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._probeAfterError()})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},yH),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=Y(),r=at(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=bE&&n.outcome==="transient";s++)await hn(_H[s-2]??0),n=await this._runProbe();let o=at(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"&&ct(e,this.name,r),i&&(n.outcome==="alive"||n.outcome==="authFailure")?this._lastProbeResult=n:n.outcome==="inconclusive"?Q.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&Q.debug(`MCP server "${this.name}" startup verification ping remained transient after ${bE} 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:wE})},"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"?Q.debug(i):Q.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":im(e)||sm(e)?"alive":ft(e)?"authFailure":gE(e)?"transient":"inconclusive"}async _sendHeartbeat(){if(this._inFlightCalls.size===0||this._reinitializingPromise)return;let e=this._client;if(!e||this._disposed)return;let r=new Set(this._inFlightCalls),n=this._authEpoch;try{await e.ping({timeout:wE})}catch(o){if(this._reinitializingPromise||this._disposed||this._authEpoch!==n||sm(o)||im(o)||ft(o))return;this._failInFlightCalls(new Vn(VH(o),this._safeDiagnosticName()),!0,r)}}_probeAfterError(){if(this._errorProbe)return;let e=this._sendHeartbeat().finally(()=>{this._errorProbe===e&&(this._errorProbe=void 0)});this._errorProbe=e}_handleTransportClosed(){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(new Vn("connection_closed",this._safeDiagnosticName())))}_diagnosticRedactor(){let e=Y().tokens.get(this.name),r=this._config.type==="stdio"?this._config.env:this._config.headers;return al([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!BH.test(e)||xE.test(e)||Ha(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?ZH:e}_safeCorrelationId(e){if(!(!e||!WH.test(e)||xE.test(e)||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e))return e}_wedgeRecoveryOwnership(e){let r=e.failure;return ft(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&&!ft(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,n){let o=[...this._inFlightCalls].filter(u=>!u.livenessRejected&&(!n||n.has(u)));if(o.length===0)return;if(!r){for(let u of o)u.livenessRejected=!0,u.reject(e);Q.warn(`MCP server "${this.name}" failing ${o.length} in-flight tool call(s)`);return}let i=o.map(u=>({call:u,state:this._wedgeRecoveryOwnership(u)})),s=i.some(({state:u})=>u==="recoverable"),a=!1;for(let{call:u,state:d}of i)d==="recoverable"||d==="owned"&&s||(u.livenessRejected=!0,a=!0,u.reject(e instanceof Vn?e:u.failure??e));let c=o.filter(u=>u.livenessRejected).length;this._logInFlightFailure({error:e,unsettled:o,failedCount:c}),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=a):a&&this.onWedged?.()}_logInFlightFailure({error:e,unsettled:r,failedCount:n}){if(!(e instanceof Vn)){Q.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;rH(lm[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=!oH(this._tools,r);if(this._tools=r,n){Q.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){Q.warn(`MCP server "${this.name}" onToolsChanged handler threw (${Ve(o)})`)}}}catch(e){Q.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,i){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>SE)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${SE}.`);let s=this._toolErrorRedactor,c={timeout:this._config.timeoutMs??mH,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??gH,onprogress:h=>{if(!this._suppressStdioDiagnostics){Q.debug(`MCP server "${this.name}" tool "${e}" progress: ${h.progress}${h.total===void 0?"":`/${h.total}`}${h.message?` - ${h.message}`:""}`);try{i?.onProgress?.(h)}catch{}}}},u=i?.onPhase?h=>{try{i.onPhase?.(h)}catch{}}:void 0,d,l=new Promise((h,m)=>{d={reject:m,livenessRejected:!1,sessionRecoveryOwned:!1,correlationId:this._safeCorrelationId(o?.toolCallId)}});l.catch(()=>{}),d&&this._inFlightCalls.add(d);let p=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??{}},pE,c)},"tool_call",{call:d,onPhase:u}),u).then(h=>(d&&this._settleInFlightCall(d,!0,void 0),h),h=>{throw d&&this._settleInFlightCall(d,!1,h),h});try{let h=await Promise.race([p,l]);if(this._suppressStdioDiagnostics&&h.isError===!0)return zH({content:h.content,structuredContent:h.structuredContent},s);let m=IE(h.content,h.structuredContent);return{isError:h.isError===!0,content:m.content,rawItemCount:m.rawItemCount}}catch(h){return(n?.aborted||h instanceof Error&&h.name==="AbortError")&&this._throwCallCancellation(h),this._reportAndThrowToolError(h,e)}finally{d&&!this._wedgeRecoveryOwners.has(d)&&(d.failure=void 0,this._inFlightCalls.delete(d))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Zn("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(e instanceof Vn){let c=Zn(lm[e.category].tool,"Error");throw this._disposed||Mi(c,{server:e.serverDisplayName,op:"tool_call",transport:this._config.type}),c}if(this._suppressStdioDiagnostics){let c=Zn("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||Mi(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Bn||e instanceof Xs)throw e;if(ft(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=Cu(r),i=Ve(e),s=yE(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 fH(e)||Mi(Zn(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Zn(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=Zn("MCP stdio close failed","Error");if(Q.debug(o.message),e?.strict)throw o;return}if(Q.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var ea=JH.child({prefix:"pi-mcp"}),YH=3,XH=6e4;function QH(t,e){let r=Date.now(),n=r-XH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=YH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}var eG=2e3,tG=6e4,zE=20,rG=15e3,nG=.2;function fm(t){return t?.status==="failed"&&t.lastFailureTransient&&!t.isDisposed}function jE(t,e){let r=t.transientReconnects?.get(e);r?.timer&&clearTimeout(r.timer),t.transientReconnects?.delete(e)}function FE(t){for(let e of[...t.transientReconnects?.keys()??[]])jE(t,e)}function xu(t,e,r){e.transientReconnects??=new Map;let n=e.servers.get(t);if(!fm(n)){jE(e,t);return}let o=e.transientReconnects.get(t)??{attempt:0,timer:void 0};if(e.transientReconnects.set(t,o),o.timer&&o.host!==n&&(clearTimeout(o.timer),o.timer=void 0),o.timer||o.attempt>=zE){o.timer||ea.warn(`MCP server "${t}" transient reconnects exhausted; restart required`);return}let i=Math.min(tG,eG*2**o.attempt),s=1+(Math.random()*2-1)*nG,a=Math.round(i*s);o.attempt+=1;let c=o.attempt;o.host=n;let u=setTimeout(()=>{if(o.timer===u){if(o.timer=void 0,o.host=void 0,e.servers.get(t)!==n){xu(t,e,e.currentLoad?.latestPi??r);return}fm(n)&&(ea.info(`MCP server "${t}" reconnecting after transient failure (attempt ${c}/${zE})`),or(t,e,e.currentLoad?.latestPi??r))}},a);o.timer=u,typeof u.unref=="function"&&u.unref()}async function UE(t,e,r,n){if(n?.aborted)return!1;let o=e.reconnects?.get(t);if(o)return await NE(o.catch(()=>{}),n),e.servers.get(t)?.status==="success";if(!fm(e.servers.get(t)))return!1;let i=e.transientReconnects?.get(t);i?.timer&&(clearTimeout(i.timer),i.timer=void 0,i.host=void 0),ea.info(`MCP server "${t}" reconnecting on demand for a tool call`);let s=or(t,e,e.currentLoad?.latestPi??r).catch(()=>{});return await NE(s,n),e.servers.get(t)?.status==="success"}async function NE(t,e){let r,n,o=new Promise(i=>{r=setTimeout(i,rG),typeof r.unref=="function"&&r.unref(),n=()=>i(),e?.addEventListener("abort",n,{once:!0})});try{await Promise.race([t,o])}finally{r&&clearTimeout(r),n&&e?.removeEventListener("abort",n)}}function DE(t){Wt(t),Ca(t)}async function oG(t,e,r){if(!QH(e,t)){ea.warn(`MCP server "${t}" automatic restart rate-limited`);return}ea.warn(`MCP server "${t}" wedged; recycling transport`),await or(t,e,r)}function Eu(t,e,r){if(qE(e)){DE(t),N(t,e);return}wd(t,r),zr(e)&&DE(t),N(t,e)}function qE(t){return hi()||Rd(t)&&t.toolSearchLatched}function nr(t,e,r){return rd(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function pm(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,ct(t,e),t.authRefreshNeededReportKeys.delete(e),r}function iG(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&&hg(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 hm(t){let{state:e,config:r,generation:n}=t;return new Pu(r,iG({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 mm(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 gm(t,e,r){return t.configDesiredRevisions.get(e)===r}function LE(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function ym(t,e,r,n){t.onStateChange=(a,c)=>{if(!nr(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(KH,u),(a==="failed"||a==="auth_required")&&qE(r)&&Wt(r.currentLoad?.latestPi??n)},t.onWedged=()=>{if(!nr(t,e,r))return;let a=r.currentLoad?.latestPi??n;oG(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(!nr(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(!nr(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&ct(r,t.name,s)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{nr(t,e,r)&&t.status==="success"&&Eu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;bd(a,t,e),a!==n&&bd(n,t,e)}}async function HE(t,e,r,n){let o=setTimeout(()=>{nr(t,e,r)&&N(n(),r)},ua);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),nr(t,e,r)&&(N(n(),r),xu(t.name,r,n()))}}async function GE(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function ku(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 sG(t){let{state:e,config:r,displaced:n,retirement:o}=t;mm(e,n.config),li(e,r.name),n.beginDisposal?.();try{let i=od(n.config,r)?Promise.resolve():mt(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 aG(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=ut({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"}}),Ee({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 cG(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),nr(r,o,e)?a?.(n)===!1?(await aG({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&Eu(c(),e,r),N(c(),e),xu(r.name,e,c()),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 uG(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(!gm(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return Ee({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=pm(e,r.name),l=hm({state:e,config:r,generation:d});return ym(l,d,e,o),fa({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:cG({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(Ee({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function dG(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!gm(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?te(r,a.name,u):D(r,a.name),l=Er(a,i),f=ui({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=()=>uG({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await sG({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await td(f.retirement),h());return f.retirement?m():h()}async function Je(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,a=t.map(d=>({config:d,revision:o?.get(d.name)??Ke(e,d.name)})),c=a.map(async d=>{try{let l=await dG({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)},ua);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u);for(let d of a)xu(d.config.name,e,s())}}async function lG({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!LE(e,t,n))return!1;let i=o.config,s=te(e,t,o);if(!rd(e,t,o))return!1;mm(e,i),li(e,t);let a=ut({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||!LE(e,t,n))return Ee({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=pm(e,t),u=hm({state:e,config:i,generation:c});if(ym(u,c,e,r),!fa({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await HE(u,c,e,d),nr(u,c,e)&&u.status==="success"&&Eu(d(),e,u),!0}function or(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 lG({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 fG(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;mm(e,n.config),li(e,r),n.beginDisposal?.();try{let s=o!==void 0&&od(n.config,o)?Promise.resolve():mt(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 ZE(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=ro(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(m=>m.name===t),c=Ke(e,t),u=e.servers.get(t),d=u?te(e,t,u):D(e,t),l={kind:"local",identity:a?.id??t},f=ui({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await fG({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await td(f.retirement),D(e,t)?.revision!==f.lease.revision||!gm(e,t,c)){Ee({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){Ee({state:e,name:t,owner:l,revision:f.lease.revision}),N(i(),e);return}let p=pm(e,t),h=hm({state:e,config:a,generation:p});ym(h,p,e,r),fa({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await HE(h,p,e,i),nr(h,p,e)&&h.status==="success"&&Eu(i(),e,h))}async function ta(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>or(n,e,r)))}finally{e.reconnecting=!1}}var BE=Symbol.for("__pi_mcp_registry_ingress__");function Tu(t){return Object.defineProperty(t,BE,{value:!0}),t}function Kn(t){return Object.getOwnPropertyDescriptor(t,BE)?.value===!0}function nn(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)&&!Kn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as pG}from"@hermes/logger";var hG=pG.child({prefix:"pi-mcp"}),mG=1e6,gG=1e3,yG=/^\d+$/;function WE(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function on(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"||!yG.test(e)||typeof r!="string"||r.length===0)return;let n=ha(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:WE(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function vG(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:Tr(o,n)>0?o:n}function _G(t,e,r){if(t===void 0)return!0;let n=WE(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:")&&Ar(n)===r.domain&&Ar(e.domain)===r.domain?!0:r?.kind==="domain"&&!Ie(n)&&Ie(e.domain)&&Ar(n)===r.domain}function SG(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 hG.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=Ar(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(!_G(c,r,s))return"reject";let u=vG(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=Tr(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 wG(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 bG(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 RG(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*gG+Math.floor(t.access_token_expires_at.nanos/mG):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 CG(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 wr(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!bG(n))return{decision:"reject"};let i=on(n),s=SG(r,n,i,o);if(s==="reject")return{decision:s};let a=RG(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!CG(e.get(r),a))||s==="apply"&&wG(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function Au(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=wr({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 vm=PG.child({prefix:"pi-mcp"});function sn(t,e){vm.info(`Targeted MCP credential update for config ${t} skipped: ${e}`),VE("MCP targeted credential update skipped",{outcome:e})}function xG(t,e){let r=nn({state:t,target:e,byConfigId:!0});if(!r)return;let o=D(t,r.name)?.owner??Er(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=on(i);if(s===void 0)return!1;let a=ln(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 KE(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){vm.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`),sn(n.configId,"invalid_payload");return}let o=xG(r,n.configId),i=o?EG(n.credentials,n.configId,o.server.config.name):void 0;if(!o){sn(n.configId,"no_live_host");return}if(!i){sn(n.configId,"credential_mismatch");return}let s=D(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth"){sn(n.configId,"unsupported_transport");return}let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>wr({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject"){sn(n.configId,"credential_rejected");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){sn(n.configId,"host_changed");return}if(u().decision==="reject"){sn(n.configId,"credential_rejected");return}te(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=Au(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name)){sn(n.configId,"not_applied");return}if(l.applied.includes(o.name)){let f=on(i);f&&(r.credentialRevisions.set(o.name,f),r.hostedCredentialOwnership.set(o.name,{...f,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}await TG({pi:r.currentLoad?.latestPi??e,state:r,name:o.name,configId:n.configId,reconnect:t.reconnect??or,report:t.report??N})}function kG(t,e){return t?"restart_failed":e?"reconnected":"restart_not_connected"}async function TG(t){let{pi:e,state:r,name:n,configId:o}=t,i=!1;await t.reconnect(n,r,e).catch(a=>{i=!0,vm.warn(`Targeted MCP credential restart failed for config ${o}: ${a instanceof Error?a.name:"non-Error"}`)}),t.report(e,r),Se(r);let s=r.servers.get(n)?.status==="success";VE("MCP targeted credential update applied",{outcome:kG(i,s)})}import{logger as HG}from"@hermes/logger";import{randomUUID as AG}from"node:crypto";import{setToolSource as MG}from"@augmentcode/auggie-v2";import{logger as $G}from"@hermes/logger";import{Type as IG}from"@sinclair/typebox";var YE=$G.child({prefix:"pi-mcp"}),ir="attach-mcp-server",OG="augment:mcp-attach-request",zG=15e3,NG={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 DG(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(fn(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 LG(t,e){let r=e.name.toLowerCase();return fn(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function _m(t,e){let r=LG(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 jG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},zG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function JE(t){let e=fn(t).map(r=>`${r.name} (id: ${r.id})`);return e.length>0?`Available unattached servers: ${e.join(", ")}.`:"No unattached servers are currently available."}function FG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return xe(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${_m(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return xe(`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.${_m(r,e)}`)}function UG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return xe(`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,xe("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 xe(`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 xe(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return xe(`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 xe(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return xe(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${_m(n,e)}`);case"NO_ACTIVE_VM":return xe(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return xe(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function qG(t,e,r){if(e.mcpAttachDisabled)return xe("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(`${ir} requires a string "config_id" parameter. ${JE(e)}`);let o=DG(e,n);if(o.kind==="none")return xe(`No MCP server matching "${n}" is available to attach. ${JE(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return xe(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=FG({entry:i,state:e});if(s!==void 0)return s;if(Cd(e,i))return xe(`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 xe(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=AG();YE.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=jG(e,a);t.events.emit(OG,{configId:i.id,requestId:a});let u=await c,d=UG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(ir),oo(ir),zr(e)&&Wt(t)),d}function Mu(t,e){let r={name:ir,label:ir,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:IG.Unsafe(NG),execute:(n,o)=>qG(t,e,o)};MG(ir,"mcp"),t.registerTool(r),Ir(r),YE.debug("Registered attach-mcp-server tool")}var $u=HG.child({prefix:"pi-mcp"}),Sm="augment:mcp-attach-result";function XE(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(Sm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){$u.warn(`${Sm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){$u.debug(`${Sm}: 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 Iu(t,e){if(e.mcpAttachCloudSignaled&&Pa(e)){Mu(t,e);return}e.mcpAttachCloudSignaled&&Mg(ir)!==void 0&&(t.unregisterTool(ir),oo(ir))}function Xo(t,e){if(!e.mcpAttachCloudSignaled||!Pa(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await qg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,$u.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,$u.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Iu(s,e),zr(e)&&Wt(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as nZ}from"@hermes/logger";function GG(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case mi.OAUTH:return"oauth";case mi.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 ZG(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case Nr.CLI:return"cli";case Nr.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 Ou(t){if(t==null)return;if(t.length===0)return[];let e=t.map(ZG).filter(r=>r!==void 0);return e.length===0?void 0:e}function zu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=GG(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=eo(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...to(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof Tt?s.message:String(s)}}}function BG(t){let e=t.config?.auth_type;return e===mi.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function WG(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 wm(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 VG(t,e,r){if(r!==void 0&&t.added_by===r)return Ou(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?Ou(n):[]}function KG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=wm(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=wm(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=wm(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)?VG(p,o,s):Ou(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 JG(t,e="cloud_agent"){if(t==null)return e==="cli"?Nr.CLI:Nr.CLOUD_AGENT}function YG(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 QE(t,e,r,n){try{let o=t.type==="stdio"?Bt(t,n):Zt(t,n);return{ok:!0,server:Tu(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 XG(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=zu(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=QE(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=QE(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 QG(t){let e=[],r=[],n=[];for(let o of t)BG(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 eZ(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=WG(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 tZ(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 Nu(t){let e=t.productType??"cloud_agent",r=t.client??new Ea(t.creds),{tenant:n,user:o,diagnostics:i}=await ey(r,JG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=KG({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=QG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...YG(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 _=XG({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});tZ(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=eZ(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 rZ}from"@hermes/logger";var Qo=rZ.child({prefix:"pi-mcp"});function ek(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Qo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=zu(n,"tenant");if(!i.ok){Qo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return Tu(i.server.type==="stdio"?Bt(i.server,s):Zt(i.server,s))}catch(a){Qo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function tk(t,e){let r;try{r=JSON.parse(t)}catch(n){Qo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return ek(r,e)}function ei(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Qo.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Qo.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=ek(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=nZ.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 ok(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?ut({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(Ke(e,r),"retiring"):void 0:(Ee({state:e,name:r,owner:n.owner,revision:n.revision}),Ke(e,r),"released");let c=a.get(r),u=ui({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 oZ(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=te(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=ok({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"&&Ee({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 iZ(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=ok({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 sZ(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=oZ({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||iZ({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function ik(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(mt(t,l,f.id,f))}try{await Promise.all(i)}catch(l){let f=`Registry credential reconciliation failed: ${l instanceof Error?l.message:String(l)}`;throw new kt(f)}let d=new Map;for(let[l,f]of s){let p=t.registryCredentialConfigs.get(l);p&&(d.set(l,{...p}),ht(p,f)&&f.id!==void 0&&t.registryCredentialConfigsById.set(f.id,{...f}))}t.registryCredentialConfigs=d}function aZ(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 cZ(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 ei(o,e.workspaceRoot??process.cwd(),n)}async function uZ(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(mt(e,c,a,d?.id===a?d:void 0))}}try{await Promise.all(s);for(let{id:a,name:c}of i)e.registryCredentialConfigs.get(c)?.id===a&&e.registryCredentialConfigs.delete(c)}catch(a){let c=`Registry credential deselection failed: ${a instanceof Error?a.message:String(a)}`;throw new kt(c)}}function dZ(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 lZ(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 fZ(t){let e=new Set;for(let[r,n]of t.servers){let o=te(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 pZ(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 ik(e,r.servers,n,i,o!==void 0)}async function sk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():pi(t,r.id)))}async function rk(t){return await sk(t.state,t.result),t.state.registryGeneration===t.generation&&await pZ(t),t.result}function hZ(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=aZ(n,r,i);return rk({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=>rk({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function mZ(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 gZ(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 yZ(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 ak(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 bm(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&&Ee({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function vZ(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){bm({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 sk(e,r),e.registryGeneration!==o)return;let c=ak({state:e,generation:o}),u=r.servers.filter(c),d=await Promise.all(u.map(v=>$r({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]);mZ({state:e,result:r,selection:n}),gZ({state:e,servers:f}),bm({state:e,result:r,selection:n,slotReservations:a});let p=yZ({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?te(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 _Z({state:e,pi:s,result:r,generation:o,connect:i})}async function _Z(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 SZ({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function SZ(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 $r({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,ak({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 wZ(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 ik(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function bZ(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 RZ(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await vZ({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),bm({state:t.resultArgs.state,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:t.resultArgs.state.registryGeneration===t.resultArgs.generation?t.resultArgs.selection:void 0,slotReservations:e}),r instanceof kt)throw bZ(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 wZ({...t.resultArgs,error:r})}}function ra(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Nu,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)&&_g(r,new Set(a.configIds.map(He)));let u=cZ({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=uZ({state:r,previousSelectedIds:l,configIds:a.configIds}),p=dZ({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([sZ(r,a.configIds,p),f]).then(([w])=>w);lZ(r);let g=a.configIds?[...a.configIds]:void 0,v=hZ({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:fZ(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?RZ({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as CZ}from"@hermes/logger";var an=CZ.child({prefix:"pi-mcp"});function PZ(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 xZ(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function lk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function EZ(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function ck(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&&(EZ({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 fk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function uk(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Kn(n.config))continue;let o=te(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function pk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function kZ(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=D(e,r),s=n?Er(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?sg({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):Ee({state:e,name:r,owner:i.owner,revision:i.revision}))&&D(e,r)===void 0&&(pk(e,r),Ke(e,r))}async function Rm(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 an.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=Er(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 an.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await fi(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 an.warn(b),e.diagnostics.push({server:a,message:b}),w}lk({state:e,configId:r,fence:i})&&(fk(e,r),kZ({state:e,name:a,config:s,retirement:g})),an.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 dk(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)}`;an.warn(i),e.diagnostics.push({server:r,message:i})}async function TZ(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(dk({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([fi(e,r,n,o.config)]);return dk({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 AZ(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?te(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=ut({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),an.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await TZ({state:e,name:n,configId:r,server:a});if(h&&lk({state:e,configId:r,fence:s})?fk(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&&Ee({state:e,name:n,owner:c.owner,revision:c.revision})&&pk(e,n),i(p,e),!h)throw m}function Du(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return an.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!no({state:r,configId:s,generation:i?.attachmentGeneration}))return an.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:_a({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=uk(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(ck({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>Rm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=PZ(r,s);if(u===void 0&&d===void 0)return a(Rm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=xZ({state:r,configId:s,liveEditGeneration:h});return a(ck({state:r,configId:s,fence:m,operation:()=>{let g=uk(r,s);return g===void 0?Rm({state:r,configId:s,pi:e,report:c,sourceFence:m}):AZ({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as MZ}from"node:crypto";var $Z=/^[1-9][0-9]*$/,IZ=/^[a-f0-9]{64}$/,OZ=new Set(["version","operation","config_id","server_name","transport","url","command","args","use_shell_interpolation","route_revision","binding_generation","ownership","auth_type","vm_id","connection_version","execution_principal_id","execution_principal_type","access_token","static_secrets"]);function fe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Cm(t){return typeof t=="string"&&$Z.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function xm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&Cm(t.connectionVersion)}function zZ(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!jr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!jr(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 mk(t){if(!(!fe(t)||Object.keys(t).some(e=>!OZ.has(e)))&&!(!zZ(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"||!IZ.test(t.route_revision)||!Cm(t.connection_version))&&!(t.execution_principal_type!==void 0&&(typeof t.execution_principal_type!="number"||!Number.isInteger(t.execution_principal_type)||t.execution_principal_type<0||t.execution_principal_type>2147483647))&&!(t.ownership==="uncredentialed"?t.auth_type!=="none"||t.binding_generation!=="0":t.ownership!=="recipient"||t.auth_type==="none"||!Cm(t.binding_generation))){if(t.operation==="retire"||t.auth_type==="none"){if(t.access_token!==void 0||t.static_secrets!==void 0)return}else if(t.auth_type==="oauth"){if(typeof t.access_token!="string"||t.access_token.length===0||t.static_secrets!==void 0)return}else if(t.access_token!==void 0||!fe(t.static_secrets)||Object.keys(t.static_secrets).length===0||Object.values(t.static_secrets).some(e=>typeof e!="string"||e.trim().length===0))return;return{...t,execution_principal_type:t.execution_principal_type??0}}}}function Pm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function NZ(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 DZ(t,e){return t.transport==="stdio"&&e.type==="stdio"?e.command===t.command&&e.useShellInterpolation===t.use_shell_interpolation&&e.args.length===t.args.length&&e.args.every((r,n)=>r===t.args[n]):e.type!=="stdio"&&t.transport===e.type&&e.url===t.url&&e.auth==="oauth"==(t.auth_type==="oauth")}function hk(t,e){return Pm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&NZ(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function LZ(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 jZ(t,e){let r=Oi((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 Lu=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 xm(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&&!Pm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&Pm(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||!DZ(e,r)||!n&&(!o||!this.#r.has(r)||!hk(e,o.material))||!jZ(e,r))return!1;if(!o)return!0;let i=BigInt(e.binding_generation)-BigInt(o.material.binding_generation);return i>=0n&&(i!==0n||o.material.operation==="install"&&hk(e,o.material)&&LZ(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 gk(t){return MZ("sha256").update(t).digest("hex")}function FZ(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 UZ(t,e){if(e.length<=1)return!0;let r=ha(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 qZ(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 GZ(t,e,r){if(typeof t!="string"||gk(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(!qZ(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 vk(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?FZ(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)||!UZ(f,b)||n.has(l)||wr({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=mk(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?GZ(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)&&!Kn(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=at(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=ei(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 ZZ(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=vk(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,Mu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=ra({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),Xo(p,r),!0}async function BZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return ZZ(t);let o;try{o=vk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await VZ({pi:e,state:r,data:n,candidate:i,store:s})}function WZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function VZ(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(!no(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=WZ(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)||Kn(v.config)))){let v=Du({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?hd(c):va(c))}}function na(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 KZ(t,e){t.registryGeneration++,mg(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=ut({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 _k(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Lu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(xm(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,KZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;na(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await BZ({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 c2}from"@hermes/logger";import{execFile as Em}from"node:child_process";import{win32 as km}from"node:path";import{logger as JZ}from"@hermes/logger";var YZ=5e3,XZ=/^[a-z]:[\\/]/i,QZ=/[<>:"|?*]/;function e2(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!XZ.test(t)||!km.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||QZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:km.join(km.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function t2(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function r2(t,e){switch(process.platform){case"darwin":return Em("open",[t],e);case"win32":{let r=e2();return r?Em(r,["-NoProfile","-NonInteractive","-EncodedCommand",t2(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return Em("xdg-open",[t],e)}}function Sk(t,e=YZ){let r=JZ.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=r2(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as n2}from"node:http";function ju(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function wk(t){let e=ju(t.title),r=ju(t.heading),n=ju(t.message),o=t.details?ju(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 aE(t){return sE({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function zu(t,e){return sE({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var jZ="127.0.0.1",dE="/callback",cE=3e3,uE=3010,FZ="Authentication successful. You can close this window.",Nu={"Content-Type":"text/html; charset=utf-8"};function lE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function fE(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:new URLSearchParams({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}}if(!n.get("code"))throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return o===null&&n.set("state",e),{kind:"success",result:n}}function bm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function UZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==dE){e.writeHead(404,Nu),e.end(zu("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,Nu),e.end(zu("Authentication did not complete.",`Error: ${s}`));let u=bm(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,Nu),e.end(zu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Nu),e.end(aE(FZ)),r.onSuccess(n.searchParams)}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function qZ(t){for(let e=cE;e<=uE;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,jZ)}))return e;throw new Error(`No free port in ${cE}-${uE} for the OAuth callback server`)}async function pE(){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=LZ((a,c)=>{UZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await qZ(i);return{port:s,redirectUri:`http://localhost:${s}${dE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var Rm=HZ.child({prefix:"pi-mcp"}),GZ=300*1e3,gE="MCP authentication was superseded";function hE(){return lE()?"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 wr(t){if(t.aborted)throw new Error("Authentication cancelled")}function yE(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&&vE(t.credentialRevisions.get(e),r.credentialRevision)}function vE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function mE(t,e,r){if(!yE(t,e,r))throw new Error(gE)}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=Gt(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||!kr(Gt(t,a),f)||!vE(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{Rm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function BZ(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 WZ(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"))),GZ)},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(bm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=fE(g,r());if(v.kind==="success"){u(()=>o(v.result));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(m))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function _E(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=Gt(r,i),d;try{wr(o.signal),d=await pE(),wr(o.signal);let l=new URL(s.url),f,p;try{f=await Kd(l),wr(o.signal),p=await Jd(f),wr(o.signal)}catch(be){wr(o.signal);let qt=xi(be);throw qt?ki(qt):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);mE(r,e,c),wr(o.signal);let m=await Yd({config:s.clientId?{clientId:s.clientId}:{},serverMetadata:p,redirectUris:[d.redirectUri],preferStaticClient:s.registrySource===void 0});wr(o.signal);let g=await Na(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);wr(o.signal);let v=g,w=!1,b,R,_=(be,qt)=>{if(w)return R&&b&&Da(be,b)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Da(be,v))return Promise.resolve(null);w=!0;let cn=v;return b=cn,qt(),Rm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Xd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:hE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(be=>_(be,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:hE()}),wr(o.signal),await iE(g.authUri.toString());let C=await WZ(d,o,()=>v.state,_),I=await Qd(C,v);mE(r,e,c);let Q=BZ(I),pe=await c.tokenStore.persistAuthenticated(e,Q,u,h);if(!yE(r,e,c))throw await ZZ(r,e,c,u,Q,pe,n),new Error(gE);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 Xs([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),Rm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as u2}from"@augmentcode/auggie-v2";import{resolveTargetFiles as VZ,SETTINGS_TARGET_ORDER as KZ,SettingsManager as JZ,scopeToSettingsTarget as YZ,settingsTargetToScope as Cm}from"@augmentcode/auggie-v2";var XZ=KZ.map(t=>Cm(t)),SE=(t,e)=>JZ.create(t,e);function wE(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 bE(t,e,r){let n=SE(e,r);return XZ.filter(o=>wE(n,o)?.[t])}function RE(t){let e=t.map(n=>({target:YZ(n),path:n,exists:!0})),r=VZ({files:e});return"directTarget"in r?{scopes:t,direct:Cm(r.directTarget)}:{scopes:r.files.map(n=>Cm(n.target)),direct:null}}function QZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function CE(t,e,r,n,o){try{let i=SE(n,o);if(!wE(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:QZ(t,n,o)!==e}}function Pm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function PE(t,e,r){return Pm(t)}function xE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as e2}from"@hermes/logger";var km=e2.child({prefix:"pi-mcp"}),kE="hermes:mcp:register-server-source";function t2(t,e){return t.type==="stdio"?Bt(t,e):Zt(t,e)}function EE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function r2(t,e){return{...t,disabled:e}}function n2(t){try{return t.getServers()}catch(e){return km.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function o2(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function TE(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 i2(t,e,r,n){let o=new Map;if(!t)return o;for(let i of n2(t)){let s=e.servers.get(i.name),a=t2(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=r2(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)&&EE(s.config,u);p&&(ee(e,i.name,s),Xm({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),TE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function s2(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 AE(t,e){TE(t,e)}function a2(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"){AE(e,a);continue}u===o.get(a)&&n.has(a)&&EE(u.config,c)||(s.set(a,Ke(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function c2(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&&o2(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=i2(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 s2(a,u,e);let{reservedRevisions:d,toConnect:l}=a2({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;km.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||AE(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 xm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>c2(t,e,r)).catch(i=>{km.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function ME(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),xm(o.currentLoad?.latestPi??i,o,e))}function $E(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,xm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,xm(e.currentLoad?.latestPi??t,e))})}}function d2(t,e){let n=u2.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function IE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(d2(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:Pm(e)};if(cd(r.mcpConfigOverride).has(e))return{kind:"session"};if(Pr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=bE(e,n,o);if(s.length===0)return{kind:"blocked",message:PE(e,n,o)};let{scopes:a,direct:c}=RE(s);return{kind:"local",scopes:a,direct:c}}async function OE(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 ME({name:e,disabled:r,state:n,pi:o});return}cd(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 zE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=CE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await Ak(e,o,i,s,a),Se(o),c.overridden?{notice:xE(e)}:{}}import{DynamicBorder as M2}from"@augmentcode/auggie-v2";import{Key as $2,matchesKey as I2,SearchableWindowedList as O2,SpinnerTimer as z2,truncateToWidth as Hu,wrapTextWithAnsi as N2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as l2,scopeToSettingsTarget as f2}from"@augmentcode/auggie-v2";import{truncateToWidth as p2,visibleWidth as Kn,wrapTextWithAnsi as h2}from"@earendil-works/pi-tui";var m2=2,g2=2,Du={name:"Name",source:"Source",status:"Status"};function Em(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 Tm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Am(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function Lu(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 NE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(m2,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(g2,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(Du[w]))&&(a=ei(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Tm(g)),l=t.map(g=>Em(g)),f=Math.max(Kn(Du.source),Lu(d)),p=Math.max(Kn(Du.status),Lu(l.map(g=>g.label))),h=Math.max(Kn(Du.name),Lu(t.map(g=>g.name))),m=Math.max(p,Lu(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 DE(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=>h2(n,r).map(o=>Kn(o)<=r?o:p2(o,r,"")))}function y2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,y2(e,r)))}function LE(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 jE(t,e){return String(t+1).padStart(String(e).length," ")}function Mm(t){return l2(f2(t))}import{Key as v2,matchesKey as _2}from"@earendil-works/pi-tui";function ju(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 FE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var UE=10,Jn=15;var S2="k",w2="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 $m(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===S2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===w2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:_2(t,v2.backspace)?{kind:"back"}:{kind:"ignore"}}function b2(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 R2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=ju(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ni(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ni(t.actionIndex+1,o.length)}};case"cancel":case"back":return{state:{...t,step:"serverList"}};case"confirm":{let i=o[t.actionIndex];return i==="viewTools"?{state:{...t,step:"viewTools",toolIndex:0}}:i==="viewLogs"?{state:{...t,step:"viewLogs",logScrollOffset:0}}:i==="authenticate"?{state:t,effect:{kind:"authenticate",server:n.name}}:i==="toggle"?{state:t,effect:{kind:"toggle",server:n.name,disable:!n.disabled}}:{state:t,effect:{kind:"reconnect",server:n.name}}}default:return{state:t}}}function C2(t,e,r){let n=r.snapshots[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 x2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Fu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function k2(t,e){let r=t.targetScopes.length;if(r===0)return{state:Fu(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:Fu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Fu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Fu(t,"serverActions")}}default:return{state:t}}}function qE(t,e,r){switch(t.step){case"serverList":return b2(t,e,r.snapshots);case"serverActions":return R2(t,e,r);case"viewTools":return C2(t,e,r);case"viewLogs":return P2(t,e,r);case"pasteAuthCode":return x2(t,e);case"selectTarget":return k2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as E2,wrapTextWithAnsi as an}from"@earendil-works/pi-tui";var Im="\u2192 ",Uu=" ";function HE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function br(t,e){return e>0?Ut(t,e,"\u2026"):""}function GE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=NE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?Am(m,c.nameWidth):"",c.sourceWidth>0?Am(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=br(Uu,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",br("Name",c.nameWidth))),i.bold(i.fg("accent",br("Source",c.sourceWidth))),i.bold(i.fg("accent",br("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=Em(h),v=br(g.label,c.statusWidth),w=c.statusWidth-E2(v),b=g.hint?br(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=br(m?Im:Uu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,HE(br(h.name,c.nameWidth),m,i),HE(br(Tm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var T2={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 A2(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 T2[t]}function ZE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return an(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=an(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...an(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=ju(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=A2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Im:Uu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function BE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return an(r.fg("muted","No tools available."),o);if(i.disabled)return an(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return an(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=DE(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",`${jE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function WE(t,e,r,n){let o=Math.max(1,n),s=e[st(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return an(r.fg("muted","No logs available yet."),o);let a=ti(s,o),c=a.length,u=LE(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 VE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)]?.name??"",s=[...an(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",Mm(c))):r.fg("text",Mm(c));s.push(Ut((u?Im:Uu)+d,o,"\u2026"))}return s}var qu=3;function D2(t){return t.type==="stdio"?t.command:t.url}function L2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
143
+ </html>`}function bk(t){return wk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Fu(t,e){return wk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var o2="127.0.0.1",Pk="/callback",Rk=3e3,Ck=3010,i2="Authentication successful. You can close this window.",Uu={"Content-Type":"text/html; charset=utf-8"};function xk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Ek(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:new URLSearchParams({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}}if(!n.get("code"))throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return o===null&&n.set("state",e),{kind:"success",result:n}}function Tm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function s2(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Pk){e.writeHead(404,Uu),e.end(Fu("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,Uu),e.end(Fu("Authentication did not complete.",`Error: ${s}`));let u=Tm(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,Uu),e.end(Fu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Uu),e.end(bk(i2)),r.onSuccess(n.searchParams)}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function a2(t){for(let e=Rk;e<=Ck;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,o2)}))return e;throw new Error(`No free port in ${Rk}-${Ck} for the OAuth callback server`)}async function kk(){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=n2((a,c)=>{s2(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await a2(i);return{port:s,redirectUri:`http://localhost:${s}${Pk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var Am=c2.child({prefix:"pi-mcp"}),u2=300*1e3,Mk="MCP authentication was superseded";function Tk(){return xk()?"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 br(t){if(t.aborted)throw new Error("Authentication cancelled")}function $k(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&&Ik(t.credentialRevisions.get(e),r.credentialRevision)}function Ik(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function Ak(t,e,r){if(!$k(t,e,r))throw new Error(Mk)}async function d2(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||!ht(r.server.config,a.config))return;let l=a.config,f=Gt(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||!kr(Gt(t,a),f)||!Ik(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;dn({state:t,name:e,revision:p}),N(t.currentLoad?.latestPi??s,t)}catch{Am.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function l2(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 f2(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"))),u2)},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(Tm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=Ek(g,r());if(v.kind==="success"){u(()=>o(v.result));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(m))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function Ok(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=Gt(r,i),d;try{br(o.signal),d=await kk(),br(o.signal);let l=new URL(s.url),f,p;try{f=await el(l),br(o.signal),p=await tl(f),br(o.signal)}catch(be){br(o.signal);let qt=ki(be);throw qt?Ti(qt):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);Ak(r,e,c),br(o.signal);let m=await rl({config:s.clientId?{clientId:s.clientId}:{},serverMetadata:p,redirectUris:[d.redirectUri],preferStaticClient:s.registrySource===void 0});br(o.signal);let g=await Fa(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);br(o.signal);let v=g,w=!1,b,R,_=(be,qt)=>{if(w)return R&&b&&Ua(be,b)?R.then(pt=>pt.authUri.toString()):Promise.resolve(null);if(!Ua(be,v))return Promise.resolve(null);w=!0;let un=v;return b=un,qt(),Am.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=nl(un).then(pt=>(v=pt,o.onAuthUrl({url:pt.authUri.toString(),instructions:Tk()}),pt)),R.then(pt=>pt.authUri.toString())};d.setErrorRetryHandler(be=>_(be,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Tk()}),br(o.signal),await Sk(g.authUri.toString());let C=await f2(d,o,()=>v.state,_),I=await ol(C,v);Ak(r,e,c);let ee=l2(I),pe=await c.tokenStore.persistAuthenticated(e,ee,u,h);if(!$k(r,e,c))throw await d2(r,e,c,u,ee,pe,n),new Error(Mk);c.tokenStore.commit(e,ee,u),r.preservedCredentialIdentities?.delete(e),dn({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),ct(r,e),await ta([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),Am.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as k2}from"@augmentcode/auggie-v2";import{resolveTargetFiles as p2,SETTINGS_TARGET_ORDER as h2,SettingsManager as m2,scopeToSettingsTarget as g2,settingsTargetToScope as Mm}from"@augmentcode/auggie-v2";var y2=h2.map(t=>Mm(t)),zk=(t,e)=>m2.create(t,e);function Nk(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 Dk(t,e,r){let n=zk(e,r);return y2.filter(o=>Nk(n,o)?.[t])}function Lk(t){let e=t.map(n=>({target:g2(n),path:n,exists:!0})),r=p2({files:e});return"directTarget"in r?{scopes:t,direct:Mm(r.directTarget)}:{scopes:r.files.map(n=>Mm(n.target)),direct:null}}function v2(t,e,r){let{servers:n}=ro(e,r);return n.find(o=>o.name===t)?.disabled===!0}function jk(t,e,r,n,o){try{let i=zk(n,o);if(!Nk(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:v2(t,n,o)!==e}}function $m(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function Fk(t,e,r){return $m(t)}function Uk(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as _2}from"@hermes/logger";var Om=_2.child({prefix:"pi-mcp"}),qk="hermes:mcp:register-server-source";function S2(t,e){return t.type==="stdio"?Bt(t,e):Zt(t,e)}function Hk(t,e){return JSON.stringify(t)===JSON.stringify(e)}function w2(t,e){return{...t,disabled:e}}function b2(t){try{return t.getServers()}catch(e){return Om.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function R2(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function Gk(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 C2(t,e,r,n){let o=new Map;if(!t)return o;for(let i of b2(t)){let s=e.servers.get(i.name),a=S2(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=w2(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&te(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)&&Hk(s.config,u);p&&(te(e,i.name,s),ig({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),Gk(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function P2(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){Ee({state:r,name:o,owner:i.owner,revision:i.revision});continue}let a=ut({state:r,name:o,owner:i.owner,revision:i.revision,host:s});if(!a)continue;let c=mt(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"}}),Ee({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function Zk(t,e){Gk(t,e)}function x2(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?te(e,a,u):D(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){Zk(e,a);continue}u===o.get(a)&&n.has(a)&&Hk(u.config,c)||(s.set(a,Ke(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function E2(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&&R2(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)&&te(e,h,m)}let a=C2(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 P2(a,u,e);let{reservedRevisions:d,toConnect:l}=x2({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;Om.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||Zk(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 Im(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>E2(t,e,r)).catch(i=>{Om.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function Bk(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?te(o,r,s):D(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),Im(o.currentLoad?.latestPi??i,o,e))}function Wk(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,Im(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,Im(e.currentLoad?.latestPi??t,e))})}}function T2(t,e){let n=k2.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function Vk(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(T2(n,o).has(e))return{kind:"blocked",message:`Cannot toggle "${e}": server is managed and cannot be modified`};let i=r.servers.get(e);if(!i)return{kind:"blocked",message:$m(e)};if(pd(r.mcpConfigOverride).has(e))return{kind:"session"};if(xr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=Dk(e,n,o);if(s.length===0)return{kind:"blocked",message:Fk(e,n,o)};let{scopes:a,direct:c}=Lk(s);return{kind:"local",scopes:a,direct:c}}async function Kk(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?te(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await Bk({name:e,disabled:r,state:n,pi:o});return}pd(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 Jk(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=jk(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await ZE(e,o,i,s,a),Se(o),c.overridden?{notice:Uk(e)}:{}}import{DynamicBorder as J2}from"@augmentcode/auggie-v2";import{Key as Y2,matchesKey as X2,SearchableWindowedList as Q2,SpinnerTimer as e4,truncateToWidth as Vu,wrapTextWithAnsi as t4}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as A2,scopeToSettingsTarget as M2}from"@augmentcode/auggie-v2";import{truncateToWidth as $2,visibleWidth as Jn,wrapTextWithAnsi as I2}from"@earendil-works/pi-tui";var O2=2,z2=2,qu={name:"Name",source:"Source",status:"Status"};function zm(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 Nm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Dm(t,e){let r=e-Jn(t);return r>0?t+" ".repeat(r):t}function Hu(t){return t.reduce((e,r)=>Math.max(e,Jn(r)),0)}function ti(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 Yk(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(O2,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(z2,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=ti(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Jn(qu[w]))&&(a=ti(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Nm(g)),l=t.map(g=>zm(g)),f=Math.max(Jn(qu.source),Hu(d)),p=Math.max(Jn(qu.status),Hu(l.map(g=>g.label))),h=Math.max(Jn(qu.name),Hu(t.map(g=>g.name))),m=Math.max(p,Hu(l.map(g=>g.label+(g.hint??""))));return a=ti(u,"source",f,a),a=ti(u,"status",p,a),a=ti(u,"name",h,a),ti(u,"status",m,a),u}function Xk(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 ri(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>I2(n,r).map(o=>Jn(o)<=r?o:$2(o,r,"")))}function N2(t,e){return Math.max(0,t-e)}function ni(t,e,r){return Math.max(0,Math.min(t,N2(e,r)))}function Qk(t,e,r){let n=ni(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 eT(t,e){return String(t+1).padStart(String(e).length," ")}function Lm(t){return A2(M2(t))}import{Key as D2,matchesKey as L2}from"@earendil-works/pi-tui";function Gu(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 tT(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var rT=10,Yn=15;var j2="k",F2="j";function oi(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 jm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===j2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===F2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:L2(t,D2.backspace)?{kind:"back"}:{kind:"ignore"}}function U2(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=oi(st(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=oi(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 q2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Gu(n);switch(e.kind){case"up":return{state:{...t,actionIndex:oi(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:oi(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 G2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)]?.logLines()??[],o=ri(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:ni(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:ni(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function Z2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Zu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function B2(t,e){let r=t.targetScopes.length;if(r===0)return{state:Zu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:oi(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:oi(t.targetIndex+1,r)}};case"cancel":case"back":return{state:Zu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Zu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Zu(t,"serverActions")}}default:return{state:t}}}function nT(t,e,r){switch(t.step){case"serverList":return U2(t,e,r.snapshots);case"serverActions":return q2(t,e,r);case"viewTools":return H2(t,e,r);case"viewLogs":return G2(t,e,r);case"pasteAuthCode":return Z2(t,e);case"selectTarget":return B2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as W2,wrapTextWithAnsi as cn}from"@earendil-works/pi-tui";var Fm="\u2192 ",Bu=" ";function oT(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function Rr(t,e){return e>0?Ut(t,e,"\u2026"):""}function iT(t,e,r,n,o,i,s){let a=Math.max(1,s),c=Yk(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?Dm(m,c.nameWidth):"",c.sourceWidth>0?Dm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=Rr(Bu,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",Rr("Name",c.nameWidth))),i.bold(i.fg("accent",Rr("Source",c.sourceWidth))),i.bold(i.fg("accent",Rr("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=zm(h),v=Rr(g.label,c.statusWidth),w=c.statusWidth-W2(v),b=g.hint?Rr(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=Rr(m?Fm:Bu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,oT(Rr(h.name,c.nameWidth),m,i),oT(Rr(Nm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var V2={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 K2(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 V2[t]}function sT(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return cn(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=cn(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...cn(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Gu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=K2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Fm:Bu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function aT(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return cn(r.fg("muted","No tools available."),o);if(i.disabled)return cn(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return cn(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=Xk(t.toolIndex,s,Yn),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",`${eT(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function cT(t,e,r,n){let o=Math.max(1,n),s=e[st(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return cn(r.fg("muted","No logs available yet."),o);let a=ri(s,o),c=a.length,u=Qk(t.logScrollOffset,c,Yn),d=[];c>Yn&&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 uT(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)]?.name??"",s=[...cn(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",Lm(c))):r.fg("text",Lm(c));s.push(Ut((u?Fm:Bu)+d,o,"\u2026"))}return s}var Wu=3;function r4(t){return t.type==="stdio"?t.command:t.url}function n4(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 KE(t){return t.disabled?2:t.status==="auth_required"?0:1}function j2(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:Pr(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:D2(r.config),logLines:()=>L2(r)});return e.sort((r,n)=>KE(r)-KE(n)),e}function F2(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 U2(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 q2(t,e,r,n,o){switch(t.step){case"serverActions":return ZE(t,e,n,o);case"viewTools":return BE(t,e,n,o);case"viewLogs":return WE(t,e,n,o);case"selectTarget":return VE(t,e,n,o);default:return GE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function H2(t,e,r,n,o){let i=Math.max(1,o),s=Hu(n.bold(n.fg("accent",F2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=qu?[...r.renderInput(i),""]:[],c=q2(t,e,r,n,i);return[s,"",...a,...c,"",Hu(n.fg("muted",U2(t.step)),i,"\u2026")]}function G2(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[Hu(s,i,"\u2026"),"",Hu(a,i,"\u2026")]}function Z2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function B2(t,e,r){let n=s=>s.flatMap(a=>N2(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 W2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function JE(t){return t?"Disabling":"Enabling"}function YE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Om=class{state=FE();config;border;serverList;busy=null;spinner;opDone;authenticating=null;authStatus="pending";authUrl;authInstructions;authError;authAbort;manualCode;queuedManualCodes=[];authInPaste=!1;authPasteBuffer="";authDone;currentWidth;_focused=!1;component=this;get focused(){return this._focused}set focused(e){this._focused=e,this.syncSearchFocus()}constructor(e){this.config=e,this.border=new M2(r=>e.theme.fg("border",r)),this.serverList=new O2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:UE})}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=G2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=B2({server:this.authenticating,status:this.authStatus,url:this.authUrl,instructions:this.authInstructions,input:this.state.authInput,error:this.authError},this.config.theme,r);else{let o=this.config.snapshots();this.syncServerList(o),this.clampLogScrollOffset(o,r),n=H2(this.state,o,this.serverList,this.config.theme,r)}return[...this.border.render(r),...n,...this.border.render(r)]}handleInput=e=>{this.dispatch(e)};invalidate(){}syncServerList(e){this.serverList.setItems(e);let r=this.state.selectedServer;r!==null&&this.serverList.selectIdentity(r)||(this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null})}isSearchAvailable(){return this.currentWidth===void 0||this.currentWidth>=qu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=qu&&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=qE(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??qu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=$m(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($m(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,JE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(YE(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,JE(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(YE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new z2(()=>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(I2(e,$2.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&&W2(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 XE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Om({tui:i,theme:s,keybindings:a,snapshots:()=>j2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Nm=["list"];function QE(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 V2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var K2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function zm(t,e){return e.length>0?[t,...e]:null}function J2(t){let e=[],r=[];for(let o of t.servers.values())(Pr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[zm("MCP Server Status:",e.map(QE)),zm("Plugin MCP servers:",r.map(QE)),zm("Diagnostics:",t.diagnostics.map(V2))];return t.servers.size===0&&n.unshift([K2]),n.filter(o=>o!==null).map(o=>o.join(`
145
+ `)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function dT(t){return t.disabled?2:t.status==="auth_required"?0:1}function o4(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:xr(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:r4(r.config),logLines:()=>n4(r)});return e.sort((r,n)=>dT(r)-dT(n)),e}function i4(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 s4(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 a4(t,e,r,n,o){switch(t.step){case"serverActions":return sT(t,e,n,o);case"viewTools":return aT(t,e,n,o);case"viewLogs":return cT(t,e,n,o);case"selectTarget":return uT(t,e,n,o);default:return iT(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function c4(t,e,r,n,o){let i=Math.max(1,o),s=Vu(n.bold(n.fg("accent",i4(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Wu?[...r.renderInput(i),""]:[],c=a4(t,e,r,n,i);return[s,"",...a,...c,"",Vu(n.fg("muted",s4(t.step)),i,"\u2026")]}function u4(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[Vu(s,i,"\u2026"),"",Vu(a,i,"\u2026")]}function d4(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function l4(t,e,r){let n=s=>s.flatMap(a=>t4(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 f4(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function lT(t){return t?"Disabling":"Enabling"}function fT(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Um=class{state=tT();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 J2(r=>e.theme.fg("border",r)),this.serverList=new Q2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:rT})}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=u4(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=l4({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=c4(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>=Wu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Wu&&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=ri(n?.logLines()??[],r).length,i=ni(this.state.logScrollOffset,o,Yn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=nT(this.state,e,{snapshots:r,windowSize:Yn,logViewportWidth:this.currentWidth??Wu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=jm(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(jm(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,lT(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(fT(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,lT(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(fT(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new e4(()=>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??=d4(),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(X2(e,Y2.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&&f4(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 pT(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Um({tui:i,theme:s,keybindings:a,snapshots:()=>o4(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Hm=["list"];function hT(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 p4(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var h4="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function qm(t,e){return e.length>0?[t,...e]:null}function m4(t){let e=[],r=[];for(let o of t.servers.values())(xr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[qm("MCP Server Status:",e.map(hT)),qm("Plugin MCP servers:",r.map(hT)),qm("Diagnostics:",t.diagnostics.map(p4))];return t.servers.size===0&&n.unshift([h4]),n.filter(o=>o!==null).map(o=>o.join(`
147
147
  `)).join(`
148
148
 
149
- `)}function Y2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Nm.includes(e))return e}async function X2(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=Xs([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function eT(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Nm.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 XE(n,e,s=>Xs([s],e,t),{classify:s=>IE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>OE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>zE({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)=>_E({serverName:s,state:e,pi:t,controller:a}));return}let i=Y2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Nm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(J2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await X2(n,e,t)}})}import{logger as Q2}from"@hermes/logger";var tT=Q2.child({prefix:"pi-mcp"}),Dm="augment:feature-flags";function e4(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 rT(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Dm,r=>{let n=e4(r);if(n===void 0){tT.warn(`${Dm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,tT.debug(`Received feature-flag snapshot via ${Dm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as t4}from"@hermes/logger";var ta=t4.child({prefix:"pi-mcp"}),nT=300*1e3,Lm=600*1e3;function r4(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+Lm||(ta.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Lm}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&ta.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{ta.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function oT(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{r4(t)},nT);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,ta.debug(`Started background MCP OAuth refresh loop (interval ${nT}ms, buffer ${Lm}ms)`)}function iT(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,ta.debug("Stopped background MCP OAuth refresh loop"))}import{logger as n4}from"@hermes/logger";var kt=n4.child({prefix:"pi-mcp"});function o4(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 or(t){Ye({state:t.state,domain:He(t.configId),epoch:t.intentEpoch})}function i4(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 sT(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function aT(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 ra(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;or(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 s4(t,e){return e.flatMap(r=>Ru(t,r)?[r.config]:[])}function a4(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function c4(t,e){let r=a4(e);if(r){if(ra(t,r.error),r.error instanceof Et)throw r.error;return}let n=s4(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){o4(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 cT(t,e){try{c4(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function u4(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 d4(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){or(t);return}if(u4(t,e)){or(t);return}try{if(!await Mr({state:t.state,config:e,pi:t.activePi})){or(t);return}}catch(r){throw ra(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);cT(t,r??[])}catch(r){if(ra(t,r),r instanceof Et)throw r}}async function l4(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){or(t),kt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){aT(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),or(t);return}if(await fi(r,n),o()){or(t);return}try{if((await Promise.all(e.servers.map(c=>Mr({state:r,config:c,pi:t.activePi})))).some(c=>!c)){or(t);return}}catch(a){throw ra(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()){or(t);return}aT(r,e),cT(t,s??[])}function f4(t,e){if(typeof e=="string")return Fk(e,t.workspaceRoot??process.cwd())}function p4(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function uT(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=f4(r,i?.embeddedConfig);if(p4(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=fa({state:r,domain:He(s),forceNew:!0}),u=i4(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:()=>sT(r,s)},m;if(a)m=d4(h,a);else{let g=r.credentials;g?m=(o?.discover??Mu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>l4(h,w)).catch(w=>{if(!(w instanceof Et)){ra(h,w);return}throw w}):(kt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),or(h),m=Promise.resolve())}return ga({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>sT(r,s)})}import{logger as h4}from"@hermes/logger";var na=h4.child({prefix:"pi-mcp"}),dT=3,lT=6e4,m4=1e3,g4=8e3;function jm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??rn,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 na.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=nn({state:r,target:d});if(!l)return na.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<lT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>dT)return na.warn(`augment:mcp-restart-server: ${f} exceeded ${dT} restarts within ${lT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(m4*2**(v-1),g4);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||D(r,f)!==h||nn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return na.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(_)}`;na.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as y4}from"@hermes/logger";var oa=y4.child({prefix:"pi-mcp"}),v4=/^\d+$/,Fm=1,fT="AUGMENT_ACTIVE_SPACE_ID",_4="augment-mcp-access-token-";function Gu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function pT(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 Zu=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??wd}_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(_4)&&Object.hasOwn(process.env,fT)&&(r.active_space_id=process.env[fT]??""),r}getSecret(e){let r=Gu(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=Gu(e),s=(await this._callUpsert({name:o,value:r,scope:Fm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!v4.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),oa.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Gu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Fm}),oa.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>ar?`${o.slice(0,ar)}\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>ar?`${o.slice(0,ar)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=Gu(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===Fm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:pT(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&&oa.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:pT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return oa.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return oa.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>ar?`${i.slice(0,ar)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}};function Um(t){return{latestPi:t}}import{logger as S4}from"@hermes/logger";var oi=S4.child({prefix:"pi-mcp"});async function w4(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 b4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function R4(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"?Bt(a,s):Zt(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof Tt?a.message:`Failed to normalize VFS MCP server "${r}": ${a instanceof Error?a.message:String(a)}`;e.diagnostics.push({server:r,message:c,origin:"vfs"}),oi.warn(c);return}}function C4(t,e){let r=new Set;for(let[s,a]of t.servers){let c=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=R4({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 hT(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=w4(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;b4(r,s.diagnostics);let{servers:l,blockedNames:f}=C4(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(oi.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let h=p?.find(m=>m.status==="failed"||m.status==="unavailable");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));return l.every(m=>(p??[]).some(g=>g.config===m&&Ru(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=x4.child({prefix:"pi-mcp"}),_T="augment:mcp-oauth-credentials",mT="augment:mcp-header-secrets",gT="augment:mcp-header-secret-failures",qm="augment:mcp-oauth-failures",yT="augment:credentials",k4="augment:mcp-config-ids",vT="augment:mcp-configs",E4="augment:mcp-vfs-servers",T4="augment:mcp-add-server",A4="augment:mcp-restart-server",M4="augment:mcp-remove-server",$4="augment:cloud-mode";function I4(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 O4(t){if(!t||typeof t!="object"){we.warn(`${_T} 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 Hm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=on(n),i=nn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&ST({state:t,name:r,revision:o})&&!wT({state:t,revision:o})&&Sr({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 z4(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=nn({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){Ok({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Hm(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&&!Hm(r,n))return;let c=F4({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))){jm({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)&&Hm(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 N4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(_T,r=>{let n=O4(r);n&&z4({pi:t,state:e,payload:n})}))}function ST(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 wT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function D4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=on(s);if(Sr({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(wT({state:e,revision:a})){pg({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(ST({state:e,name:i,revision:a})){o[i]=s;continue}lg({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function L4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=on(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 j4(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"&&rn(s,r,i).catch(()=>{}).finally(()=>{N(i,r),Se(r)})}}function F4(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=D4({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}=Sr({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=Pu(r.tokens,i,s);return L4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),j4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function U4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(mT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${mT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);Yy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(gT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${gT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Qy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(qm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${qm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${qm} entries is not an object`);return}Vm(e,n.entries)}))}function q4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(yT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${yT} 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 Zu(e.credentials),I4(e)}),t.events.on(k4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Eu(e.currentLoad?.latestPi??t,e),Qs({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 bT(t,e){e.isCloudMode!==!1||e.mcpAttachCloudSignaled||!e.credentials||Qs({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 H4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on($4,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&&bT(e.currentLoad?.latestPi??t,e))}))}function G4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(vT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${vT} 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&&Mr({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(E4,r=>{hT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function RT(t,e){Or(e)?(sr(t),Sa(t)):Tg(t,e),Se(e)}function B4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(T4,r=>{let n=()=>uT({pi:t,state:e,data:r});(e.targetMaterialQueue?ea(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 W4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(A4,r=>{let n=()=>jm({pi:t,state:e,data:r});(e.targetMaterialQueue?ea(e,n):n()).then(()=>{Se(e)})}))}function V4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(M4,r=>{let n=()=>$u({pi:t,state:e,data:r});(e.targetMaterialQueue?ea(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 yte(t){return Jy(t)}function K4(t,e,r){e.connectStarted=!0,pi()&&sr(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(()=>Tk(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),bT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function J4(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)}RT(e,t)}var CT=t=>{let e=te();e.currentLoad=Um(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;eT(t,e),oE(t,e),N4(t,e),U4(t,e),q4(t,e),G4(t,e),Z4(t,e),B4(t,e),W4(t,e),V4(t,e),H4(t,e),rT(t,e),Dk(t,e),Eu(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=Um(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,oT(e),e.connectStarted?RT(t,e):K4(o,e,t),o.mode==="acp"&&await J4(e,t),r||(r=!0,t.events.emit(kE,$E(t,e)))}),t.on("session_shutdown",()=>{iT(e)})};Pg(CT);var vte=CT;export{vte as default,yte as setMcpErrorReporter};
149
+ `)}function g4(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Hm.includes(e))return e}async function y4(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=ta([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function mT(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Hm.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 pT(n,e,s=>ta([s],e,t),{classify:s=>Vk({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>Kk({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>Jk({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)=>Ok({serverName:s,state:e,pi:t,controller:a}));return}let i=g4(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Hm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(m4(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await y4(n,e,t)}})}import{logger as v4}from"@hermes/logger";var gT=v4.child({prefix:"pi-mcp"}),Gm="augment:feature-flags";function _4(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 yT(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Gm,r=>{let n=_4(r);if(n===void 0){gT.warn(`${Gm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,gT.debug(`Received feature-flag snapshot via ${Gm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as S4}from"@hermes/logger";var oa=S4.child({prefix:"pi-mcp"}),vT=300*1e3,Zm=600*1e3;function w4(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&&(bi(o,e)||o.expiresAt>e+Zm||(oa.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Zm}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&oa.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{oa.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function _T(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{w4(t)},vT);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,oa.debug(`Started background MCP OAuth refresh loop (interval ${vT}ms, buffer ${Zm}ms)`)}function ST(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,oa.debug("Stopped background MCP OAuth refresh loop"))}import{logger as b4}from"@hermes/logger";var Et=b4.child({prefix:"pi-mcp"});function R4(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 sr(t){Ye({state:t.state,domain:He(t.configId),epoch:t.intentEpoch})}function C4(t){let e=new Set;for(let[r,n]of t.servers){let o=te(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 wT(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function bT(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),Et.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function ia(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;sr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(Et.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 P4(t,e){return e.flatMap(r=>ku(t,r)?[r.config]:[])}function x4(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function E4(t,e){let r=x4(e);if(r){if(ia(t,r.error),r.error instanceof kt)throw r.error;return}let n=P4(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){R4(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{E4(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function k4(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t,s=r.servers.get(e.name);if(!s)return!1;let a=te(r,e.name,s);if(a.owner.kind==="plugin"||a.owner.kind==="vfs")return!1;if(i())return Et.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 Et.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 T4(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await pi(t.state,t.configId),t.superseded()){sr(t);return}if(k4(t,e)){sr(t);return}try{if(!await $r({state:t.state,config:e,pi:t.activePi})){sr(t);return}}catch(r){throw ia(t,r),r}Et.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(ia(t,r),r instanceof kt)throw r}}async function A4(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){sr(t),Et.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){bT(r,e),Et.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),sr(t);return}if(await pi(r,n),o()){sr(t);return}try{if((await Promise.all(e.servers.map(c=>$r({state:r,config:c,pi:t.activePi})))).some(c=>!c)){sr(t);return}}catch(a){throw ia(t,a),a}Et.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()){sr(t);return}bT(r,e),RT(t,s??[])}function M4(t,e){if(typeof e=="string")return tk(e,t.workspaceRoot??process.cwd())}function $4(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function CT(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return Et.warn("augment:mcp-add-server payload missing configId"),Promise.resolve();let a=M4(r,i?.embeddedConfig);if($4(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return Et.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!no({state:r,configId:s,generation:i?.attachmentGeneration}))return Et.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=ma({state:r,domain:He(s),forceNew:!0}),u=C4(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:()=>wT(r,s)},m;if(a)m=T4(h,a);else{let g=r.credentials;g?m=(o?.discover??Nu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>A4(h,w)).catch(w=>{if(!(w instanceof kt)){ia(h,w);return}throw w}):(Et.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),sr(h),m=Promise.resolve())}return _a({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>wT(r,s)})}import{logger as I4}from"@hermes/logger";var sa=I4.child({prefix:"pi-mcp"}),PT=3,xT=6e4,O4=1e3,z4=8e3;function Bm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??or,s=o?.now??Date.now,a=o?.sleep??hn,c=o?.report??N,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return sa.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=nn({state:r,target:d});if(!l)return sa.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<xT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>PT)return sa.warn(`augment:mcp-restart-server: ${f} exceeded ${PT} restarts within ${xT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(O4*2**(v-1),z4);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||D(r,f)!==h||nn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return sa.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(_)}`;sa.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as N4}from"@hermes/logger";var aa=N4.child({prefix:"pi-mcp"}),D4=/^\d+$/,Wm=1,ET="AUGMENT_ACTIVE_SPACE_ID",L4="augment-mcp-access-token-";function Ku(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function kT(t,e){return e?.["augment:encoding"]!=="base64"?t:/^[A-Za-z0-9+/]*={0,2}$/.test(t)&&t.length%4===0?Buffer.from(t,"base64").toString("utf-8"):t}var Ju=class{apiKey;apiUrl;userAgent;fetchImpl;timeoutMs;cache=new Map;inflight=new Map;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.userAgent=e.userAgent,this.fetchImpl=r,this.timeoutMs=n??xd}_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(L4)&&Object.hasOwn(process.env,ET)&&(r.active_space_id=process.env[ET]??""),r}getSecret(e){let r=Ku(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 mn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Ku(e),s=(await this._callUpsert({name:o,value:r,scope:Wm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!D4.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),aa.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await mn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Ku(e);this.cache.delete(r),await this._callDelete({name:r,scope:Wm}),aa.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>cr?`${o.slice(0,cr)}\u2026[truncated]`:o;throw new gt(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>cr?`${o.slice(0,cr)}\u2026[truncated]`:o;throw new gt(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=Ku(e);try{let n=await mn(()=>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===Wm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:kT(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof gt&&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&&aa.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await mn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:kT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof gt&&o.statusCode===404)return aa.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return aa.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>cr?`${i.slice(0,cr)}\u2026[truncated]`:i;throw new gt(o.status,o.statusText,s)}return await o.json()}};function Vm(t){return{latestPi:t}}import{logger as j4}from"@hermes/logger";var ii=j4.child({prefix:"pi-mcp"});async function F4(t){let e=[];for(let[r,n]of t.servers){let o=te(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=ut({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;Ke(t,r);let s=mt(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"}}),Ee({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function U4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),ii.warn(r.message))}function q4(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"}),ii.warn(a);return}try{let a=to(r,n);return{...a.type==="stdio"?Bt(a,s):Zt(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"}),ii.warn(c);return}}function H4(t,e){let r=new Set;for(let[s,a]of t.servers){let c=te(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=q4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function G4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function TT(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 ii.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&&G4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=F4(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;U4(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):(ii.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&&ku(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)}`;ii.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var we=Z4.child({prefix:"pi-mcp"}),OT="augment:mcp-oauth-credentials",AT="augment:mcp-header-secrets",MT="augment:mcp-header-secret-failures",Km="augment:mcp-oauth-failures",$T="augment:credentials",B4="augment:mcp-config-ids",IT="augment:mcp-configs",W4="augment:mcp-vfs-servers",V4="augment:mcp-add-server",K4="augment:mcp-restart-server",J4="augment:mcp-remove-server",Y4="augment:cloud-mode";function X4(t){if(!t.secretsClient||t.tokens instanceof _i)return;let e=t.tokens;t.tokens=new _i(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),we.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function Q4(t){if(!t||typeof t!="object"){we.warn(`${OT} payload is not an object`);return}let e=t,r=e.suppressReconnect===!0&&typeof e.credentials=="object"&&e.credentials!==null&&!Array.isArray(e.credentials);return{credentials:r?e.credentials:t,restart:r&&e.restart&&typeof e.restart=="object"?e.restart:void 0,suppressReconnect:r,targetConfigId:r&&typeof e.targetConfigId=="string"?e.targetConfigId:void 0}}function Jm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=on(n),i=nn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&zT({state:t,name:r,revision:o})&&!NT({state:t,revision:o})&&wr({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 eB(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=nn({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){KE({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=iB({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))){Bm({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 tB(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(OT,r=>{let n=Q4(r);n&&eB({pi:t,state:e,payload:n})}))}function zT(t){let{state:e,name:r,revision:n}=t,o=ln(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 NT(t){let{state:e,revision:r}=t,n=ln(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function rB(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=on(s);if(wr({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(NT({state:e,revision:a})){Sg({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(zT({state:e,name:i,revision:a})){o[i]=s;continue}vg({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function nB(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=on(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 oB(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"&&or(s,r,i).catch(()=>{}).finally(()=>{N(i,r),Se(r)})}}function iB(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=rB({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}=wr({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=Au(r.tokens,i,s);return nB({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),oB({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function sB(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(AT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${AT} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);sv(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(MT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${MT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);cv(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Km,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${Km} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${Km} entries is not an object`);return}tg(e,n.entries)}))}function aB(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on($T,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${$T} payload missing apiKey or apiUrl`);return}e.credentials={apiKey:n.apiKey,apiUrl:n.apiUrl,...typeof n.userAgent=="string"?{userAgent:n.userAgent}:{},...typeof n.userId=="string"?{userId:n.userId}:{}},e.secretsClient=new Ju(e.credentials),X4(e)}),t.events.on(B4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Iu(e.currentLoad?.latestPi??t,e),ra({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),Xo(n,e)})}))}function DT(t,e){e.isCloudMode!==!1||e.mcpAttachCloudSignaled||!e.credentials||ra({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 cB(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(Y4,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&&DT(e.currentLoad?.latestPi??t,e))}))}function uB(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(IT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${IT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=ei(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&$r({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 dB(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(W4,r=>{TT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function LT(t,e){zr(e)?(Wt(t),Ca(t)):Dg(t,e),Se(e)}function lB(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(V4,r=>{let n=()=>CT({pi:t,state:e,data:r});(e.targetMaterialQueue?na(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),Xo(o,e)})}))}function fB(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(K4,r=>{let n=()=>Bm({pi:t,state:e,data:r});(e.targetMaterialQueue?na(e,n):n()).then(()=>{Se(e)})}))}function pB(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(J4,r=>{let n=()=>Du({pi:t,state:e,data:r});(e.targetMaterialQueue?na(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),Xo(o,e)})}))}function Dte(t){return iv(t)}function hB(t,e,r){e.connectStarted=!0,hi()&&Wt(r);let{servers:n,diagnostics:o}=ro(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(()=>GE(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),DT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function mB(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)}LT(e,t)}var jT=t=>{let e=Y();e.currentLoad=Vm(t),e.recoverTransientServer=(n,o)=>UE(n,e,t,o),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;mT(t,e),_k(t,e),tB(t,e),sB(t,e),aB(t,e),uB(t,e),dB(t,e),lB(t,e),fB(t,e),pB(t,e),cB(t,e),yT(t,e),XE(t,e),Iu(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=Vm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,_T(e),e.connectStarted?LT(t,e):hB(o,e,t),o.mode==="acp"&&await mB(e,t),r||(r=!0,t.events.emit(qk,Wk(t,e)))}),t.on("session_shutdown",()=>{ST(e),FE(e)})};$g(jT);var Lte=jT;export{Lte as default,Dte as setMcpErrorReporter};
150
150
  /*! Bundled license information:
151
151
 
152
152
  content-type/index.js: