@augmentcode/onison 1.2.0-prerelease.202610091215 → 1.2.0-prerelease.202610091519

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 yT=Object.create;var Hu=Object.defineProperty;var vT=Object.getOwnPropertyDescriptor;var _T=Object.getOwnPropertyNames;var ST=Object.getPrototypeOf,wT=Object.prototype.hasOwnProperty;var Rr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var P=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Gu=(t,e)=>{for(var r in e)Hu(t,r,{get:e[r],enumerable:!0})},bT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of _T(e))!wT.call(t,o)&&o!==r&&Hu(t,o,{get:()=>e[o],enumerable:!(n=vT(e,o))||n.enumerable});return t};var ta=(t,e,r)=>(r=t!=null?yT(ST(t)):{},bT(e||!t||!t.__esModule?Hu(r,"default",{value:t,enumerable:!0}):r,t));var rs=P(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var es=class{};J._CodeOrName=es;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends es{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};J.Name=Pn;var wt=class extends es{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof Pn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=wt;J.nil=new wt("");function $b(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Pf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=$b;var Cf=new wt("+");function Ib(t,...e){let r=[ts(t[0])],n=0;for(;n<e.length;)r.push(Cf),Pf(r,e[n]),r.push(Cf,ts(t[++n]));return nN(r),new wt(r)}J.str=Ib;function Pf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(sN(e))}J.addCodeArg=Pf;function nN(t){let e=1;for(;e<t.length-1;){if(t[e]===Cf){let r=oN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function oN(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 iN(t,e){return e.emptyStr()?t:t.emptyStr()?e:Ib`${t}${e}`}J.strConcat=iN;function sN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ts(Array.isArray(t)?t.join(","):t)}function aN(t){return new wt(ts(t))}J.stringify=aN;function ts(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ts;function cN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):$b`[${t}]`}J.getProperty=cN;function uN(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=uN;function dN(t){return new wt(t.toString())}J.regexpCode=dN});var Ef=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.ValueScope=rt.ValueScopeName=rt.Scope=rt.varKinds=rt.UsedValueState=void 0;var tt=rs(),xf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},yc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(yc||(rt.UsedValueState=yc={}));rt.varKinds={const:new tt.Name("const"),let:new tt.Name("let"),var:new tt.Name("var")};var vc=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=vc;var _c=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=_c;var lN=(0,tt._)`\n`,kf=class extends vc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?lN:tt.nil}}get(){return this._scope}name(e){return new _c(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,yc.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 xf(u);c.set(u,yc.Completed)})}return i}};rt.ValueScope=kf});var j=P(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var G=rs(),Ot=Ef(),Br=rs();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Br._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Br.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Br.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Br.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Br.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Br.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Br.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Br.Name}});var Rc=Ef();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return Rc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return Rc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return Rc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return Rc.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var fr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Tf=class extends fr{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Ot.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=xo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},Sc=class extends fr{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof G.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=xo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return bc(e,this.rhs)}},Af=class extends Sc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Mf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},$f=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},If=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Of=class extends fr{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=xo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ns=class extends fr{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(fN(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>En(e,r.names),{})}},pr=class extends ns{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},zf=class extends ns{},Po=class extends pr{};Po.kind="else";var xn=class t extends pr{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Po(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Ob(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 bc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var Nf=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)}},Df=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=bc(super.names,this.from);return bc(e,this.to)}},wc=class extends kn{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=xo(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},os=class extends pr{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};os.kind="func";var is=class extends ns{render(e){return"return "+super.render(e)}};is.kind="return";var Lf=class extends pr{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&En(e,this.catch.names),this.finally&&En(e,this.finally.names),e}},ss=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};ss.kind="catch";var as=class extends pr{render(e){return"finally"+super.render(e)}};as.kind="finally";var jf=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 Tf(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 Sc(e,r,n))}add(e,r){return this._leafNode(new Af(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Of(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 Nf(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 Df(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 wc("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 wc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Mf(e))}break(e){return this._leafNode(new $f(e))}return(e){let r=new is;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(is)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Lf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new ss(i),r(i)}return n&&(this._currNode=o.finally=new as,this.code(n)),this._endBlockNode(ss,as)}throw(e){return this._leafNode(new If(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=G.nil,n,o){return this._blockNode(new os(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(os)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof xn))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};F.CodeGen=jf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function bc(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 fN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Ob(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Ff(t)}`}F.not=Ob;var pN=zb(F.operators.AND);function hN(...t){return t.reduce(pN)}F.and=hN;var mN=zb(F.operators.OR);function gN(...t){return t.reduce(mN)}F.or=gN;function zb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Ff(e)} ${t} ${Ff(r)}`}function Ff(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(),yN=rs();function vN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=vN;function _N(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Lb(t,e),!jb(e,t.self.RULES.all))}U.alwaysValidSchema=_N;function Lb(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]||qb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Lb;function jb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=jb;function SN(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=SN;function wN({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=wN;function bN(t){return Fb(decodeURIComponent(t))}U.unescapeFragment=bN;function RN(t){return encodeURIComponent(qf(t))}U.escapeFragment=RN;function qf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=qf;function Fb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Fb;function CN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=CN;function Nb({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:Nb({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} || {}`),Hf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Ub}),items:Nb({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 Ub(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Hf(t,r,e),r}U.evaluatedPropsToName=Ub;function Hf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Hf;var Db={};function PN(t,e){return t.scopeValue("func",{ref:e,code:Db[e.code]||(Db[e.code]=new yN._Code(e.code))})}U.useFunc=PN;var Uf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Uf||(U.Type=Uf={}));function xN(t,e,r){if(t instanceof se.Name){let n=e===Uf.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():"/"+qf(t)}U.getErrorPath=xN;function qb(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=qb});var hr=P(Gf=>{"use strict";Object.defineProperty(Gf,"__esModule",{value:!0});var Fe=j(),kN={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")};Gf.default=kN});var cs=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.extendErrors=Ue.resetErrorsCount=Ue.reportExtraError=Ue.reportError=Ue.keyword$DataError=Ue.keywordError=void 0;var W=j(),Cc=B(),Ze=hr();Ue.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Ue.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function EN(t,e=Ue.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Zb(t,e,r);n??(s||a)?Hb(i,c):Gb(o,(0,W._)`[${c}]`)}Ue.reportError=EN;function TN(t,e=Ue.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Zb(t,e,r);Hb(o,a),i||s||Gb(n,Ze.default.vErrors)}Ue.reportExtraError=TN;function AN(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=AN;function MN({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=MN;function Hb(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 Gb(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 Zb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:$N(t,e,r)}function $N(t,e,r={}){let{gen:n,it:o}=t,i=[IN(o,r),ON(t,r)];return zN(t,e,i),n.object(...i)}function IN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Cc.getErrorPath)(e,Cc.Type.Str)}`:t;return[Ze.default.instancePath,(0,W.strConcat)(Ze.default.instancePath,r)]}function ON({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,Cc.getErrorPath)(r,Cc.Type.Str)}`),[Tn.schemaPath,o]}function zN(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 Wb=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var NN=cs(),DN=j(),LN=hr(),jN={message:"boolean schema is false"};function FN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Bb(t,!1):typeof r=="object"&&r.$async===!0?e.return(LN.default.data):(e.assign((0,DN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=FN;function UN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Bb(t)):r.var(e,!0)}ko.boolOrEmptySchema=UN;function Bb(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,NN.reportError)(o,jN,void 0,e)}});var Zf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var qN=["string","number","integer","boolean","null","object","array"],HN=new Set(qN);function GN(t){return typeof t=="string"&&HN.has(t)}Eo.isJSONType=GN;function ZN(){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=ZN});var Bf=P(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.shouldUseRule=Wr.shouldUseGroup=Wr.schemaHasRulesForType=void 0;function BN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Vb(t,n)}Wr.schemaHasRulesForType=BN;function Vb(t,e){return e.rules.some(r=>Kb(t,r))}Wr.shouldUseGroup=Vb;function Kb(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Wr.shouldUseRule=Kb});var us=P(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.reportTypeError=qe.checkDataTypes=qe.checkDataType=qe.coerceAndCheckDataType=qe.getJSONTypes=qe.getSchemaTypes=qe.DataType=void 0;var WN=Zf(),VN=Bf(),KN=cs(),L=j(),Jb=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(qe.DataType=To={}));function JN(t){let e=Yb(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=JN;function Yb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(WN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}qe.getJSONTypes=Yb;function YN(t,e){let{gen:r,data:n,opts:o}=t,i=XN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,VN.schemaHasRulesForType)(t,e[0]));if(s){let a=Vf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?QN(t,e,i):Kf(t)})}return s}qe.coerceAndCheckDataType=YN;var Xb=new Set(["string","number","integer","boolean","null"]);function XN(t,e){return e?t.filter(r=>Xb.has(r)||e==="array"&&r==="array"):[]}function QN(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(Vf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Xb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Kf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),eD(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 yT=Object.create;var Hu=Object.defineProperty;var vT=Object.getOwnPropertyDescriptor;var _T=Object.getOwnPropertyNames;var ST=Object.getPrototypeOf,wT=Object.prototype.hasOwnProperty;var Rr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var P=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Gu=(t,e)=>{for(var r in e)Hu(t,r,{get:e[r],enumerable:!0})},bT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of _T(e))!wT.call(t,o)&&o!==r&&Hu(t,o,{get:()=>e[o],enumerable:!(n=vT(e,o))||n.enumerable});return t};var ra=(t,e,r)=>(r=t!=null?yT(ST(t)):{},bT(e||!t||!t.__esModule?Hu(r,"default",{value:t,enumerable:!0}):r,t));var rs=P(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var es=class{};J._CodeOrName=es;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends es{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};J.Name=Pn;var wt=class extends es{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof Pn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=wt;J.nil=new wt("");function $b(t,...e){let r=[t[0]],n=0;for(;n<e.length;)Pf(r,e[n]),r.push(t[++n]);return new wt(r)}J._=$b;var Cf=new wt("+");function Ib(t,...e){let r=[ts(t[0])],n=0;for(;n<e.length;)r.push(Cf),Pf(r,e[n]),r.push(Cf,ts(t[++n]));return nN(r),new wt(r)}J.str=Ib;function Pf(t,e){e instanceof wt?t.push(...e._items):e instanceof Pn?t.push(e):t.push(sN(e))}J.addCodeArg=Pf;function nN(t){let e=1;for(;e<t.length-1;){if(t[e]===Cf){let r=oN(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function oN(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 iN(t,e){return e.emptyStr()?t:t.emptyStr()?e:Ib`${t}${e}`}J.strConcat=iN;function sN(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:ts(Array.isArray(t)?t.join(","):t)}function aN(t){return new wt(ts(t))}J.stringify=aN;function ts(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=ts;function cN(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new wt(`.${t}`):$b`[${t}]`}J.getProperty=cN;function uN(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=uN;function dN(t){return new wt(t.toString())}J.regexpCode=dN});var Ef=P(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.ValueScope=rt.ValueScopeName=rt.Scope=rt.varKinds=rt.UsedValueState=void 0;var tt=rs(),xf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},vc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(vc||(rt.UsedValueState=vc={}));rt.varKinds={const:new tt.Name("const"),let:new tt.Name("let"),var:new tt.Name("var")};var _c=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof tt.Name?e:this.name(e)}name(e){return new tt.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};rt.Scope=_c;var Sc=class extends tt.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,tt._)`.${new tt.Name(r)}[${n}]`}};rt.ValueScopeName=Sc;var lN=(0,tt._)`\n`,kf=class extends _c{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?lN:tt.nil}}get(){return this._scope}name(e){return new Sc(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:i}=o,s=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[i];if(a){let d=a.get(s);if(d)return d}else a=this._values[i]=new Map;a.set(s,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,tt._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=tt.nil;for(let s in e){let a=e[s];if(!a)continue;let c=n[s]=n[s]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,vc.Started);let d=r(u);if(d){let l=this.opts.es5?rt.varKinds.var:rt.varKinds.const;i=(0,tt._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,tt._)`${i}${d}${this.opts._n}`;else throw new xf(u);c.set(u,vc.Completed)})}return i}};rt.ValueScope=kf});var j=P(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var G=rs(),Ot=Ef(),Br=rs();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Br._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Br.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Br.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Br.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Br.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Br.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Br.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Br.Name}});var Cc=Ef();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return Cc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return Cc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return Cc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return Cc.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var fr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Tf=class extends fr{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Ot.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=xo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},wc=class extends fr{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof G.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=xo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return Rc(e,this.rhs)}},Af=class extends wc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Mf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},$f=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},If=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Of=class extends fr{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=xo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ns=class extends fr{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(fN(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>En(e,r.names),{})}},pr=class extends ns{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},zf=class extends ns{},Po=class extends pr{};Po.kind="else";var xn=class t extends pr{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Po(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Ob(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=xo(this.condition,e,r),this}get names(){let e=super.names;return Rc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var Nf=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)}},Df=class extends kn{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?Ot.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=Rc(super.names,this.from);return Rc(e,this.to)}},bc=class extends kn{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=xo(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},os=class extends pr{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};os.kind="func";var is=class extends ns{render(e){return"return "+super.render(e)}};is.kind="return";var Lf=class extends pr{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&En(e,this.catch.names),this.finally&&En(e,this.finally.names),e}},ss=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};ss.kind="catch";var as=class extends pr{render(e){return"finally"+super.render(e)}};as.kind="finally";var jf=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 Tf(e,i,n)),i}const(e,r,n){return this._def(Ot.varKinds.const,e,r,n)}let(e,r,n){return this._def(Ot.varKinds.let,e,r,n)}var(e,r,n){return this._def(Ot.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new wc(e,r,n))}add(e,r){return this._leafNode(new Af(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Of(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 Nf(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 Df(i,s,r,n),()=>o(s))}forOf(e,r,n,o=Ot.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let s=r instanceof G.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,G._)`${s}.length`,a=>{this.var(i,(0,G._)`${s}[${a}]`),n(i)})}return this._for(new bc("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?Ot.varKinds.var:Ot.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,G._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new bc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Mf(e))}break(e){return this._leafNode(new $f(e))}return(e){let r=new is;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(is)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Lf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new ss(i),r(i)}return n&&(this._currNode=o.finally=new as,this.code(n)),this._endBlockNode(ss,as)}throw(e){return this._leafNode(new If(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=G.nil,n,o){return this._blockNode(new os(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(os)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof xn))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};F.CodeGen=jf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Rc(t,e){return e instanceof G._CodeOrName?En(t,e.names):t}function xo(t,e,r){if(t instanceof G.Name)return n(t);if(!o(t))return t;return new G._Code(t._items.reduce((i,s)=>(s instanceof G.Name&&(s=n(s)),s instanceof G._Code?i.push(...s._items):i.push(s),i),[]));function n(i){let s=r[i.str];return s===void 0||e[i.str]!==1?i:(delete e[i.str],s)}function o(i){return i instanceof G._Code&&i._items.some(s=>s instanceof G.Name&&e[s.str]===1&&r[s.str]!==void 0)}}function fN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Ob(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Ff(t)}`}F.not=Ob;var pN=zb(F.operators.AND);function hN(...t){return t.reduce(pN)}F.and=hN;var mN=zb(F.operators.OR);function gN(...t){return t.reduce(mN)}F.or=gN;function zb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Ff(e)} ${t} ${Ff(r)}`}function Ff(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(),yN=rs();function vN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=vN;function _N(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Lb(t,e),!jb(e,t.self.RULES.all))}U.alwaysValidSchema=_N;function Lb(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]||qb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Lb;function jb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=jb;function SN(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=SN;function wN({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=wN;function bN(t){return Fb(decodeURIComponent(t))}U.unescapeFragment=bN;function RN(t){return encodeURIComponent(qf(t))}U.escapeFragment=RN;function qf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=qf;function Fb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Fb;function CN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=CN;function Nb({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:Nb({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} || {}`),Hf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Ub}),items:Nb({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 Ub(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Hf(t,r,e),r}U.evaluatedPropsToName=Ub;function Hf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Hf;var Db={};function PN(t,e){return t.scopeValue("func",{ref:e,code:Db[e.code]||(Db[e.code]=new yN._Code(e.code))})}U.useFunc=PN;var Uf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Uf||(U.Type=Uf={}));function xN(t,e,r){if(t instanceof se.Name){let n=e===Uf.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():"/"+qf(t)}U.getErrorPath=xN;function qb(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=qb});var hr=P(Gf=>{"use strict";Object.defineProperty(Gf,"__esModule",{value:!0});var Fe=j(),kN={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")};Gf.default=kN});var cs=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.extendErrors=Ue.resetErrorsCount=Ue.reportExtraError=Ue.reportError=Ue.keyword$DataError=Ue.keywordError=void 0;var W=j(),Pc=B(),Ze=hr();Ue.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Ue.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function EN(t,e=Ue.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Zb(t,e,r);n??(s||a)?Hb(i,c):Gb(o,(0,W._)`[${c}]`)}Ue.reportError=EN;function TN(t,e=Ue.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Zb(t,e,r);Hb(o,a),i||s||Gb(n,Ze.default.vErrors)}Ue.reportExtraError=TN;function AN(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=AN;function MN({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=MN;function Hb(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 Gb(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 Zb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:$N(t,e,r)}function $N(t,e,r={}){let{gen:n,it:o}=t,i=[IN(o,r),ON(t,r)];return zN(t,e,i),n.object(...i)}function IN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,Pc.getErrorPath)(e,Pc.Type.Str)}`:t;return[Ze.default.instancePath,(0,W.strConcat)(Ze.default.instancePath,r)]}function ON({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,Pc.getErrorPath)(r,Pc.Type.Str)}`),[Tn.schemaPath,o]}function zN(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 Wb=P(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.boolOrEmptySchema=ko.topBoolOrEmptySchema=void 0;var NN=cs(),DN=j(),LN=hr(),jN={message:"boolean schema is false"};function FN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Bb(t,!1):typeof r=="object"&&r.$async===!0?e.return(LN.default.data):(e.assign((0,DN._)`${n}.errors`,null),e.return(!0))}ko.topBoolOrEmptySchema=FN;function UN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Bb(t)):r.var(e,!0)}ko.boolOrEmptySchema=UN;function Bb(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,NN.reportError)(o,jN,void 0,e)}});var Zf=P(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.getRules=Eo.isJSONType=void 0;var qN=["string","number","integer","boolean","null","object","array"],HN=new Set(qN);function GN(t){return typeof t=="string"&&HN.has(t)}Eo.isJSONType=GN;function ZN(){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=ZN});var Bf=P(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.shouldUseRule=Wr.shouldUseGroup=Wr.schemaHasRulesForType=void 0;function BN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Vb(t,n)}Wr.schemaHasRulesForType=BN;function Vb(t,e){return e.rules.some(r=>Kb(t,r))}Wr.shouldUseGroup=Vb;function Kb(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Wr.shouldUseRule=Kb});var us=P(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.reportTypeError=qe.checkDataTypes=qe.checkDataType=qe.coerceAndCheckDataType=qe.getJSONTypes=qe.getSchemaTypes=qe.DataType=void 0;var WN=Zf(),VN=Bf(),KN=cs(),L=j(),Jb=B(),To;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(To||(qe.DataType=To={}));function JN(t){let e=Yb(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=JN;function Yb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(WN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}qe.getJSONTypes=Yb;function YN(t,e){let{gen:r,data:n,opts:o}=t,i=XN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,VN.schemaHasRulesForType)(t,e[0]));if(s){let a=Vf(e,n,o.strictNumbers,To.Wrong);r.if(a,()=>{i.length?QN(t,e,i):Kf(t)})}return s}qe.coerceAndCheckDataType=YN;var Xb=new Set(["string","number","integer","boolean","null"]);function XN(t,e){return e?t.filter(r=>Xb.has(r)||e==="array"&&r==="array"):[]}function QN(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(Vf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Xb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Kf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),eD(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 eD({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Wf(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=Wf;function Vf(t,e,r,n){if(t.length===1)return Wf(t[0],e,r,n);let o,i=(0,Jb.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,Wf(s,e,r,n));return o}qe.checkDataTypes=Vf;var tD={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Kf(t){let e=rD(t);(0,KN.reportError)(e,tD)}qe.reportTypeError=Kf;function rD(t){let{gen:e,data:r,schema:n}=t,o=(0,Jb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var eR=P(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.assignDefaults=void 0;var Ao=j(),nD=B();function oD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Qb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Qb(t,i,o.default))}Pc.assignDefaults=oD;function Qb(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,nD.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(),Jf=B(),Vr=hr(),iD=B();function sD(t,e){let{gen:r,data:n,it:o}=t;r.if(Xf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}ne.checkReportMissingProp=sD;function aD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Xf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}ne.checkMissingProp=aD;function cD(t,e){t.setParams({missingProperty:e},!0),t.error()}ne.reportMissingProp=cD;function tR(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=tR;function Yf(t,e,r){return(0,de._)`${tR(t)}.call(${e}, ${r})`}ne.isOwnProperty=Yf;function uD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Yf(t,e,r)}`:o}ne.propertyInData=uD;function Xf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Yf(t,e,r))):o}ne.noPropertyInData=Xf;function rR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ne.allSchemaProperties=rR;function dD(t,e){return rR(e).filter(r=>!(0,Jf.alwaysValidSchema)(t,e[r]))}ne.schemaProperties=dD;function lD({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:s},a,c,u){let d=u?(0,de._)`${t}, ${e}, ${n}${o}`:e,l=[[Vr.default.instancePath,(0,de.strConcat)(Vr.default.instancePath,i)],[Vr.default.parentData,s.parentData],[Vr.default.parentDataProperty,s.parentDataProperty],[Vr.default.rootData,Vr.default.rootData]];s.opts.dynamicRef&&l.push([Vr.default.dynamicAnchors,Vr.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...l)}`;return c!==de.nil?(0,de._)`${a}.call(${c}, ${f})`:(0,de._)`${a}(${f})`}ne.callValidateCode=lD;var fD=(0,de._)`new RegExp`;function pD({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"?fD:(0,iD.useFunc)(t,o)}(${r}, ${n})`})}ne.usePattern=pD;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:Jf.Type.Num},i),e.if((0,de.not)(i),a)})}}ne.validateArray=hD;function mD(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,Jf.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=mD});var iR=P(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.validateKeywordUsage=Jt.validSchemaType=Jt.funcKeywordCode=Jt.macroKeywordCode=void 0;var Be=j(),An=hr(),gD=bt(),yD=cs();function vD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=oR(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Be.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Jt.macroKeywordCode=vD;function _D(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;wD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=oR(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&&nR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&nR(t),g(()=>SD(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,gD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Be.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Jt.funcKeywordCode=_D;function nR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Be._)`${n.parentData}[${n.parentDataProperty}]`))}function SD(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,yD.extendErrors)(t)},()=>t.error())}function wD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function oR(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 bD(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Jt.validSchemaType=bD;function RD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Jt.validateKeywordUsage=RD});var aR=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.extendSubschemaMode=Kr.extendSubschemaData=Kr.getSubschema=void 0;var Yt=j(),sR=B();function CD(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}${(0,Yt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,sR.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Kr.getSubschema=CD;function PD(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:s}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:d,opts:l}=e,f=a.let("data",(0,Yt._)`${e.data}${(0,Yt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Yt.str)`${u}${(0,sR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Yt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Yt.Name?o:a.let("data",o,!0);c(u),s!==void 0&&(t.propertyName=s)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Kr.extendSubschemaData=PD;function xD(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Kr.extendSubschemaMode=xD});var Qf=P((Q5,cR)=>{"use strict";cR.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 dR=P((e3,uR)=>{"use strict";var Jr=uR.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(){};xc(e,n,o,t,"",t)};Jr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Jr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Jr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Jr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function xc(t,e,r,n,o,i,s,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,i,s,a,c,u);for(var d in n){var l=n[d];if(Array.isArray(l)){if(d in Jr.arrayKeywords)for(var f=0;f<l.length;f++)xc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Jr.propsKeywords){if(l&&typeof l=="object")for(var p in l)xc(t,e,r,l[p],o+"/"+d+"/"+kD(p),i,o,d,n,p)}else(d in Jr.keywords||t.allKeys&&!(d in Jr.skipKeywords))&&xc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function kD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ds=P(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.getSchemaRefs=nt.resolveUrl=nt.normalizeId=nt._getFullPath=nt.getFullPath=nt.inlineRef=void 0;var ED=B(),TD=Qf(),AD=dR(),MD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function $D(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ep(t):e?lR(t)<=e:!1}nt.inlineRef=$D;var ID=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ep(t){for(let e in t){if(ID.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ep)||typeof r=="object"&&ep(r))return!0}return!1}function lR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!MD.has(r)&&(typeof t[r]=="object"&&(0,ED.eachItem)(t[r],n=>e+=lR(n)),e===1/0))return 1/0}return e}function fR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return pR(t,n)}nt.getFullPath=fR;function pR(t,e){return t.serialize(e).split("#")[0]+"#"}nt._getFullPath=pR;var OD=/#\/?$/;function Mo(t){return t?t.replace(OD,""):""}nt.normalizeId=Mo;function zD(t,e,r){return r=Mo(r),t.resolve(e,r)}nt.resolveUrl=zD;var ND=/^[a-z_][-a-z0-9._]*$/i;function DD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=fR(n,o,!1),a={},c=new Set;return AD(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(!ND.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!TD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}nt.getSchemaRefs=DD});var ps=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getData=Yr.KeywordCxt=Yr.validateFunctionCode=void 0;var vR=Wb(),hR=us(),rp=Bf(),kc=us(),LD=eR(),fs=iR(),tp=aR(),A=j(),z=hr(),jD=ds(),mr=B(),ls=cs();function FD(t){if(wR(t)&&(bR(t),SR(t))){HD(t);return}_R(t,()=>(0,vR.topBoolOrEmptySchema)(t))}Yr.validateFunctionCode=FD;function _R({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"; ${mR(r,o)}`),qD(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${UD(o)}`,n.$async,()=>t.code(mR(r,o)).code(i))}function UD(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 qD(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 HD(t){let{schema:e,opts:r,gen:n}=t;_R(t,()=>{r.$comment&&e.$comment&&CR(t),VD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&GD(t),RR(t),YD(t)})}function GD(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 mR(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 ZD(t,e){if(wR(t)&&(bR(t),SR(t))){BD(t,e);return}(0,vR.boolOrEmptySchema)(t,e)}function SR({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 wR(t){return typeof t.schema!="boolean"}function BD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&CR(t),KD(t),JD(t);let i=n.const("_errs",z.default.errors);RR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function bR(t){(0,mr.checkUnknownRules)(t),WD(t)}function RR(t,e){if(t.opts.jtd)return gR(t,[],!1,e);let r=(0,hR.getSchemaTypes)(t.schema),n=(0,hR.coerceAndCheckDataType)(t,r);gR(t,r,!n,e)}function WD(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,mr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function VD(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,mr.checkStrictMode)(t,"default is ignored in the schema root")}function KD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,jD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function JD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function CR({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 YD(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&&XD(t),e.return((0,A._)`${z.default.errors} === 0`))}function XD({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 gR(t,e,r,n){let{gen:o,schema:i,data:s,allErrors:a,opts:c,self:u}=t,{RULES:d}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,mr.schemaHasRulesButRef)(i,d))){o.block(()=>xR(t,"$ref",d.all.$ref.definition));return}c.jtd||QD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,rp.shouldUseGroup)(i,f)&&(f.type?(o.if((0,kc.checkDataType)(f.type,s,c.strictNumbers)),yR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,kc.reportTypeError)(t)),o.endIf()):yR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function yR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,LD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,rp.shouldUseRule)(n,i)&&xR(t,i.keyword,i.definition,e.type)})}function QD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(eL(t,e),t.opts.allowUnionTypes||tL(t,e),rL(t,t.dataTypes))}function eL(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{PR(t.dataTypes,r)||np(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),oL(t,e)}}function tL(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&np(t,"use allowUnionTypes to allow union type keyword")}function rL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,rp.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>nL(e,s))&&np(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function nL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function PR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function oL(t,e){let r=[];for(let n of t.dataTypes)PR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function np(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Ec=class{constructor(e,r,n){if((0,fs.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,mr.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",kR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,fs.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",z.default.errors))}result(e,r,n){this.failResult((0,A.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,A.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,A._)`${r} !== undefined && (${(0,A.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?ls.reportExtraError:ls.reportError)(this,this.def.error,r)}$dataError(){(0,ls.reportError)(this,this.def.$dataError||ls.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ls.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=A.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=A.nil,r=A.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,A.or)((0,A._)`${o} === undefined`,r)),e!==A.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==A.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,A.or)(s(),a());function s(){if(n.length){if(!(r instanceof A.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,A._)`${(0,kc.checkDataTypes)(c,r,i.opts.strictNumbers,kc.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,tp.getSubschema)(this.it,e);(0,tp.extendSubschemaData)(n,this.it,e),(0,tp.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return ZD(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=mr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=mr.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,A.Name)),!0}};Yr.KeywordCxt=Ec;function xR(t,e,r,n){let o=new Ec(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,fs.funcKeywordCode)(o,r):"macro"in r?(0,fs.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,fs.funcKeywordCode)(o,r)}var iL=/^\/(?:[^~]|~0|~1)*$/,sL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function kR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!iL.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,mr.unescapeJsonPointer)(u))}`,s=(0,A._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Yr.getData=kR});var Tc=P(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});var op=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};ip.default=op});var hs=P(cp=>{"use strict";Object.defineProperty(cp,"__esModule",{value:!0});var sp=ds(),ap=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,sp.resolveUrl)(e,r,n),this.missingSchema=(0,sp.normalizeId)((0,sp.getFullPath)(e,this.missingRef))}};cp.default=ap});var Mc=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(),aL=Tc(),Mn=hr(),Nt=ds(),ER=B(),cL=ps(),$o=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,Nt.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Rt.SchemaEnv=$o;function dp(t){let e=TR.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:aL.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,cL.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=dp;function uL(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=fL.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]=dL.call(this,i)}Rt.resolveRef=uL;function dL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:dp.call(this,t)}function TR(t){for(let e of this._compilations)if(lL(e,t))return e}Rt.getCompilingSchema=TR;function lL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function fL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Ac.call(this,t,e)}function Ac(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 up.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Ac.call(this,t,s);return typeof a?.schema!="object"?void 0:up.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||dp.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 up.call(this,r,s)}}Rt.resolveSchema=Ac;var pL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function up(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,ER.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!pL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,ER.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Ac.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 AR=P((s3,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 pp=P((a3,NR)=>{"use strict";var mL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),$R=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),lp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),IR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),gL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function fp(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 yL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function MR(t){return t.length=0,!0}function vL(t,e,r){if(t.length){let n=fp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function _L(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=vL;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=MR}else{o.push(u);continue}}return o.length&&(a===MR?r.zone=o.join(""):s?n.push(o.join("")):n.push(fp(o))),r.address=n.join(""),r}function OR(t){if(SL(t,":")<2)return{host:t,isIPV6:!1};let e=_L(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 SL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function wL(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 bL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},RL=/[@/?#:]/g,CL=/[@/?#]/g;function zR(t,e){let r=e?CL:RL;return r.lastIndex=0,t.replace(r,n=>bL[n])}function PL(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(lp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&IR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function xL(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(lp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&IR(i)?e+=i:e+="%"+o,r+=2;continue}}gL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function kL(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(lp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function EL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!$R(r)){let n=OR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=zR(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}NR.exports={nonSimpleDomain:yL,recomposeAuthority:EL,reescapeHostDelimiters:zR,normalizePercentEncoding:PL,normalizePathEncoding:xL,escapePreservingEscapes:kL,removeDotSegments:wL,isIPv4:$R,isUUID:mL,normalizeIPv6:OR,stringArrayToHexStripped:fp}});var UR=P((c3,FR)=>{"use strict";var{isUUID:TL}=pp(),AL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,ML=["http","https","ws","wss","urn","urn:uuid"];function $L(t){return ML.indexOf(t)!==-1}function hp(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 DR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function LR(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 IL(t){return t.secure=hp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function OL(t){if((t.port===(hp(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 zL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(AL);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=mp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function NL(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=mp(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 DL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!TL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function LL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var jR={scheme:"http",domainHost:!0,parse:DR,serialize:LR},jL={scheme:"https",domainHost:jR.domainHost,parse:DR,serialize:LR},$c={scheme:"ws",domainHost:!0,parse:IL,serialize:OL},FL={scheme:"wss",domainHost:$c.domainHost,parse:$c.parse,serialize:$c.serialize},UL={scheme:"urn",parse:zL,serialize:NL,skipNormalize:!0},qL={scheme:"urn:uuid",parse:DL,serialize:LL,skipNormalize:!0},Ic={http:jR,https:jL,ws:$c,wss:FL,urn:UL,"urn:uuid":qL};Object.setPrototypeOf(Ic,null);function mp(t){return t&&(Ic[t]||Ic[t.toLowerCase()])||void 0}FR.exports={wsIsSecure:hp,SCHEMES:Ic,isValidSchemeName:$L,getSchemeHandler:mp}});var BR=P((u3,Nc)=>{"use strict";var{normalizeIPv6:HL,removeDotSegments:ms,recomposeAuthority:GL,normalizePercentEncoding:ZL,normalizePathEncoding:BL,escapePreservingEscapes:WL,reescapeHostDelimiters:VL,isIPv4:KL,nonSimpleDomain:JL}=pp(),{SCHEMES:YL,getSchemeHandler:HR}=UR();function XL(t,e){return typeof t=="string"?t=ij(t,e):typeof t=="object"&&(t=zc($n(t,e),e)),t}function QL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Oc(t,n),{parsed:s,malformedAuthorityOrPort:a}=Oc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=GR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function GR(t,e,r,n){let o={};return n||(t=zc($n(t,r),r),e=zc($n(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ms(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ms(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ms(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=ms(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function ej(t,e,r){let n=qR(t,r),o=qR(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=HR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=ZL(r.path):(r.path=WL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=GL(r);if(s!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(s),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(a=ms(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var tj=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,rj=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,nj=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function oj(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 Oc(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(rj);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(nj);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(tj);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=oj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(KL(n.host)===!1){let f=HL(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=HR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&JL(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=VL(unescape(n.host),i))),n.path&&(n.path=BL(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 zc(t,e){return Oc(t,e).parsed}function ij(t,e){return ZR(t,e).normalized}function ZR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Oc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function qR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=ZR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var gp={SCHEMES:YL,normalize:XL,resolve:QL,resolveComponent:GR,equal:ej,serialize:$n,parse:zc};Nc.exports=gp;Nc.exports.default=gp;Nc.exports.fastUri=gp});var VR=P(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var WR=BR();WR.code='require("ajv/dist/runtime/uri").default';yp.default=WR});var rC=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=ps();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 aj=Tc(),QR=hs(),cj=Zf(),gs=Mc(),uj=j(),ys=ds(),Dc=us(),_p=B(),KR=AR(),dj=VR(),eC=(t,e)=>new RegExp(t,e);eC.code="new RegExp";var lj=["removeAdditional","useDefaults","coerceTypes"],fj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),pj={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.'},JR=200;function mj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,R,_,C,I,Q,pe;let xe=t.strict,an=(e=t.code)===null||e===void 0?void 0:e.optimize,cn=an===!0||an===void 0?1:an||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:eC,br=(o=t.uriResolver)!==null&&o!==void 0?o:dj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:xe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:xe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:xe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:xe)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:xe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:cn,regExp:lt}:{optimize:cn,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:JR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:JR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(_=t.addUsedSchema)!==null&&_!==void 0?_:!0,validateSchema:(C=t.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(I=t.validateFormats)!==null&&I!==void 0?I:!0,unicodeRegExp:(Q=t.unicodeRegExp)!==null&&Q!==void 0?Q:!0,int32range:(pe=t.int32range)!==null&&pe!==void 0?pe:!0,uriResolver:br}}var vs=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...mj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new uj.ValueScope({scope:{},prefixes:fj,es5:r,lines:n}),this.logger=wj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,cj.getRules)(),YR.call(this,pj,e,"NOT SUPPORTED"),YR.call(this,hj,e,"DEPRECATED","warn"),this._metaOpts=_j.call(this),e.formats&&yj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&vj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),gj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=KR;n==="id"&&(o={...KR},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 QR.default))throw l;return a.call(this,l),await c.call(this,l.missingSchema),s.call(this,d)}}function a({missingSchema:d,missingRef:l}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${l} cannot be resolved`)}async function c(d){let l=await u.call(this,d);this.refs[d]||await i.call(this,l.$schema),this.refs[d]||this.addSchema(l,d,r)}async function u(d){let l=this._loading[d];if(l)return l;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,o);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return r=(0,ys.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(e){let r;for(;typeof(r=XR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new gs.SchemaEnv({schema:{},schemaId:n});if(r=gs.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=XR.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,ys.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Rj.call(this,n,r),!r)return(0,_p.eachItem)(n,i=>vp.call(this,i)),this;Pj.call(this,r);let o={...r,type:(0,Dc.getJSONTypes)(r.type),schemaType:(0,Dc.getJSONTypes)(r.schemaType)};return(0,_p.eachItem)(n,o.type.length===0?i=>vp.call(this,i,o):i=>o.type.forEach(s=>vp.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]=tC(d))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:a}=this.opts;if(typeof e=="object")s=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,ys.normalizeId)(s||n);let u=ys.getSchemaRefs.call(this,e,n);return c=new gs.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):gs.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{gs.compileSchema.call(this,e)}finally{this.opts=r}}};vs.ValidationError=aj.default;vs.MissingRefError=QR.default;De.default=vs;function YR(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 XR(t){return t=(0,ys.normalizeId)(t),this.schemas[t]||this.refs[t]}function gj(){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 yj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function vj(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 _j(){let t={...this.opts};for(let e of lj)delete t[e];return t}var Sj={log(){},warn(){},error(){}};function wj(t){if(t===!1)return Sj;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 bj=/^[a-z_$][a-z0-9_$:-]*$/i;function Rj(t,e){let{RULES:r}=this;if((0,_p.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!bj.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 vp(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,Dc.getJSONTypes)(e.type),schemaType:(0,Dc.getJSONTypes)(e.schemaType)}};e.before?Cj.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 Cj(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 Pj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=tC(e)),t.validateSchema=this.compile(e,!0))}var xj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function tC(t){return{anyOf:[t,xj]}}});var nC=P(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var kj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Sp.default=kj});var aC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var Ej=hs(),oC=bt(),ot=j(),Oo=hr(),iC=Mc(),Lc=B(),Tj={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=iC.resolveRef.call(c,u,o,r);if(d===void 0)throw new Ej.default(n.opts.uriResolver,o,r);if(d instanceof iC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return jc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return jc(t,(0,ot._)`${h}.validate`,u,u.$async)}function f(h){let m=sC(t,h);jc(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 sC(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=sC;function jc(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,oC.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,oC.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=Lc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,ot._)`${h}.evaluated.props`);i.props=Lc.mergeEvaluated.props(o,v,i.props,ot.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Lc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,ot._)`${h}.evaluated.items`);i.items=Lc.mergeEvaluated.items(o,v,i.items,ot.Name)}}}In.callRef=jc;In.default=Tj});var cC=P(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var Aj=nC(),Mj=aC(),$j=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Aj.default,Mj.default];wp.default=$j});var uC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var Fc=j(),Xr=Fc.operators,Uc={maximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},minimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},exclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},exclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},Ij={message:({keyword:t,schemaCode:e})=>(0,Fc.str)`must be ${Uc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Fc._)`{comparison: ${Uc[t].okStr}, limit: ${e}}`},Oj={keyword:Object.keys(Uc),type:"number",schemaType:"number",$data:!0,error:Ij,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Fc._)`${r} ${Uc[e].fail} ${n} || isNaN(${r})`)}};bp.default=Oj});var dC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var _s=j(),zj={message:({schemaCode:t})=>(0,_s.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,_s._)`{multipleOf: ${t}}`},Nj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:zj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,_s._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,_s._)`${s} !== parseInt(${s})`;t.fail$data((0,_s._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};Rp.default=Nj});var fC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});function lC(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}Cp.default=lC;lC.code='require("ajv/dist/runtime/ucs2length").default'});var pC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var On=j(),Dj=B(),Lj=fC(),jj={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}}`},Fj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:jj,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,Dj.useFunc)(t.gen,Lj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};Pp.default=Fj});var hC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var Uj=bt(),qj=B(),zo=j(),Hj={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},Gj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Hj,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,qj.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,Uj.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};xp.default=Gj});var mC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var Ss=j(),Zj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Ss.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Ss._)`{limit: ${t}}`},Bj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Zj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Ss.operators.GT:Ss.operators.LT;t.fail$data((0,Ss._)`Object.keys(${r}).length ${o} ${n}`)}};kp.default=Bj});var gC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var ws=bt(),bs=j(),Wj=B(),Vj={message:({params:{missingProperty:t}})=>(0,bs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,bs._)`{missingProperty: ${t}}`},Kj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Vj,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,Wj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(bs.nil,l);else for(let p of r)(0,ws.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let h=e.let("valid",!0);t.block$data(h,()=>f(p,h)),t.ok(h)}else e.if((0,ws.checkMissingProp)(t,r,p)),(0,ws.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ws.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,ws.propertyInData)(e,o,p,a.ownProperties)),e.if((0,bs.not)(h),()=>{t.error(),e.break()})},bs.nil)}}};Ep.default=Kj});var yC=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Rs=j(),Jj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Rs.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Rs._)`{limit: ${t}}`},Yj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Jj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?Rs.operators.GT:Rs.operators.LT;t.fail$data((0,Rs._)`${r}.length ${o} ${n}`)}};Tp.default=Yj});var qc=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var vC=Qf();vC.code='require("ajv/dist/runtime/equal").default';Ap.default=vC});var _C=P($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var Mp=us(),Le=j(),Xj=B(),Qj=qc(),e1={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}}`},t1={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:e1,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,Mp.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,Mp.checkDataTypes)(u,g,a.opts.strictNumbers,Mp.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,Xj.useFunc)(e,Qj.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)})))}}};$p.default=t1});var SC=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Ip=j(),r1=B(),n1=qc(),o1={message:"must be equal to constant",params:({schemaCode:t})=>(0,Ip._)`{allowedValue: ${t}}`},i1={keyword:"const",$data:!0,error:o1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Ip._)`!${(0,r1.useFunc)(e,n1.default)}(${r}, ${o})`):t.fail((0,Ip._)`${i} !== ${r}`)}};Op.default=i1});var wC=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var Cs=j(),s1=B(),a1=qc(),c1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Cs._)`{allowedValues: ${t}}`},u1={keyword:"enum",schemaType:"array",$data:!0,error:c1,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,a1.default)),d;if(a||n)d=e.let("valid"),t.block$data(d,l);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let p=e.const("vSchema",i);d=(0,Cs.or)(...o.map((h,m)=>f(p,m)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,Cs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,Cs._)`${u()}(${r}, ${p}[${h}])`:(0,Cs._)`${r} === ${m}`}}};zp.default=u1});var bC=P(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var d1=uC(),l1=dC(),f1=pC(),p1=hC(),h1=mC(),m1=gC(),g1=yC(),y1=_C(),v1=SC(),_1=wC(),S1=[d1.default,l1.default,f1.default,p1.default,h1.default,m1.default,g1.default,y1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},v1.default,_1.default];Np.default=S1});var Lp=P(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.validateAdditionalItems=void 0;var zn=j(),Dp=B(),w1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},b1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:w1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Dp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}RC(t,n)}};function RC(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,Dp.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:Dp.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Ps.validateAdditionalItems=RC;Ps.default=b1});var jp=P(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.validateTuple=void 0;var CC=j(),Hc=B(),R1=bt(),C1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return PC(t,"additionalItems",e);r.items=!0,!(0,Hc.alwaysValidSchema)(r,e)&&t.ok((0,R1.validateArray)(t))}};function PC(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=Hc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,CC._)`${i}.length`);r.forEach((l,f)=>{(0,Hc.alwaysValidSchema)(a,l)||(n.if((0,CC._)`${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,Hc.checkStrictMode)(a,g,f.strictTuples)}}}xs.validateTuple=PC;xs.default=C1});var xC=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var P1=jp(),x1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,P1.validateTuple)(t,"items")};Fp.default=x1});var EC=P(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var kC=j(),k1=B(),E1=bt(),T1=Lp(),A1={message:({params:{len:t}})=>(0,kC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,kC._)`{limit: ${t}}`},M1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:A1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,k1.alwaysValidSchema)(n,e)&&(o?(0,T1.validateAdditionalItems)(t,o):t.ok((0,E1.validateArray)(t)))}};Up.default=M1});var TC=P(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var Ct=j(),Gc=B(),$1={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}}`},I1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:$1,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,Gc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Gc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Gc.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:Gc.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)))}}};qp.default=I1});var $C=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var Hp=j(),O1=B(),ks=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Hp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Hp._)`{property: ${t},
5
+ || ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function eD({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Wf(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=Wf;function Vf(t,e,r,n){if(t.length===1)return Wf(t[0],e,r,n);let o,i=(0,Jb.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,Wf(s,e,r,n));return o}qe.checkDataTypes=Vf;var tD={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Kf(t){let e=rD(t);(0,KN.reportError)(e,tD)}qe.reportTypeError=Kf;function rD(t){let{gen:e,data:r,schema:n}=t,o=(0,Jb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var eR=P(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.assignDefaults=void 0;var Ao=j(),nD=B();function oD(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Qb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Qb(t,i,o.default))}xc.assignDefaults=oD;function Qb(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,nD.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(),Jf=B(),Vr=hr(),iD=B();function sD(t,e){let{gen:r,data:n,it:o}=t;r.if(Xf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}ne.checkReportMissingProp=sD;function aD({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Xf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}ne.checkMissingProp=aD;function cD(t,e){t.setParams({missingProperty:e},!0),t.error()}ne.reportMissingProp=cD;function tR(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ne.hasPropFunc=tR;function Yf(t,e,r){return(0,de._)`${tR(t)}.call(${e}, ${r})`}ne.isOwnProperty=Yf;function uD(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Yf(t,e,r)}`:o}ne.propertyInData=uD;function Xf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Yf(t,e,r))):o}ne.noPropertyInData=Xf;function rR(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ne.allSchemaProperties=rR;function dD(t,e){return rR(e).filter(r=>!(0,Jf.alwaysValidSchema)(t,e[r]))}ne.schemaProperties=dD;function lD({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:s},a,c,u){let d=u?(0,de._)`${t}, ${e}, ${n}${o}`:e,l=[[Vr.default.instancePath,(0,de.strConcat)(Vr.default.instancePath,i)],[Vr.default.parentData,s.parentData],[Vr.default.parentDataProperty,s.parentDataProperty],[Vr.default.rootData,Vr.default.rootData]];s.opts.dynamicRef&&l.push([Vr.default.dynamicAnchors,Vr.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...l)}`;return c!==de.nil?(0,de._)`${a}.call(${c}, ${f})`:(0,de._)`${a}(${f})`}ne.callValidateCode=lD;var fD=(0,de._)`new RegExp`;function pD({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"?fD:(0,iD.useFunc)(t,o)}(${r}, ${n})`})}ne.usePattern=pD;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:Jf.Type.Num},i),e.if((0,de.not)(i),a)})}}ne.validateArray=hD;function mD(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,Jf.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=mD});var iR=P(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.validateKeywordUsage=Jt.validSchemaType=Jt.funcKeywordCode=Jt.macroKeywordCode=void 0;var Be=j(),An=hr(),gD=bt(),yD=cs();function vD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=oR(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Be.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Jt.macroKeywordCode=vD;function _D(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;wD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=oR(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&&nR(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&nR(t),g(()=>SD(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,gD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Be.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Jt.funcKeywordCode=_D;function nR(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Be._)`${n.parentData}[${n.parentDataProperty}]`))}function SD(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,yD.extendErrors)(t)},()=>t.error())}function wD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function oR(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 bD(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Jt.validSchemaType=bD;function RD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Jt.validateKeywordUsage=RD});var aR=P(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.extendSubschemaMode=Kr.extendSubschemaData=Kr.getSubschema=void 0;var Yt=j(),sR=B();function CD(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Yt._)`${t.schemaPath}${(0,Yt.getProperty)(e)}${(0,Yt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,sR.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Kr.getSubschema=CD;function PD(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:s}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:d,opts:l}=e,f=a.let("data",(0,Yt._)`${e.data}${(0,Yt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Yt.str)`${u}${(0,sR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Yt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Yt.Name?o:a.let("data",o,!0);c(u),s!==void 0&&(t.propertyName=s)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Kr.extendSubschemaData=PD;function xD(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Kr.extendSubschemaMode=xD});var Qf=P((Q5,cR)=>{"use strict";cR.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 dR=P((e3,uR)=>{"use strict";var Jr=uR.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};kc(e,n,o,t,"",t)};Jr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Jr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Jr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Jr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function kc(t,e,r,n,o,i,s,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,i,s,a,c,u);for(var d in n){var l=n[d];if(Array.isArray(l)){if(d in Jr.arrayKeywords)for(var f=0;f<l.length;f++)kc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Jr.propsKeywords){if(l&&typeof l=="object")for(var p in l)kc(t,e,r,l[p],o+"/"+d+"/"+kD(p),i,o,d,n,p)}else(d in Jr.keywords||t.allKeys&&!(d in Jr.skipKeywords))&&kc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function kD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ds=P(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.getSchemaRefs=nt.resolveUrl=nt.normalizeId=nt._getFullPath=nt.getFullPath=nt.inlineRef=void 0;var ED=B(),TD=Qf(),AD=dR(),MD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function $D(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ep(t):e?lR(t)<=e:!1}nt.inlineRef=$D;var ID=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ep(t){for(let e in t){if(ID.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ep)||typeof r=="object"&&ep(r))return!0}return!1}function lR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!MD.has(r)&&(typeof t[r]=="object"&&(0,ED.eachItem)(t[r],n=>e+=lR(n)),e===1/0))return 1/0}return e}function fR(t,e="",r){r!==!1&&(e=Mo(e));let n=t.parse(e);return pR(t,n)}nt.getFullPath=fR;function pR(t,e){return t.serialize(e).split("#")[0]+"#"}nt._getFullPath=pR;var OD=/#\/?$/;function Mo(t){return t?t.replace(OD,""):""}nt.normalizeId=Mo;function zD(t,e,r){return r=Mo(r),t.resolve(e,r)}nt.resolveUrl=zD;var ND=/^[a-z_][-a-z0-9._]*$/i;function DD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Mo(t[r]||e),i={"":o},s=fR(n,o,!1),a={},c=new Set;return AD(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(!ND.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!TD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}nt.getSchemaRefs=DD});var ps=P(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getData=Yr.KeywordCxt=Yr.validateFunctionCode=void 0;var vR=Wb(),hR=us(),rp=Bf(),Ec=us(),LD=eR(),fs=iR(),tp=aR(),A=j(),z=hr(),jD=ds(),mr=B(),ls=cs();function FD(t){if(wR(t)&&(bR(t),SR(t))){HD(t);return}_R(t,()=>(0,vR.topBoolOrEmptySchema)(t))}Yr.validateFunctionCode=FD;function _R({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"; ${mR(r,o)}`),qD(t,o),t.code(i)}):t.func(e,(0,A._)`${z.default.data}, ${UD(o)}`,n.$async,()=>t.code(mR(r,o)).code(i))}function UD(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 qD(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 HD(t){let{schema:e,opts:r,gen:n}=t;_R(t,()=>{r.$comment&&e.$comment&&CR(t),VD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&GD(t),RR(t),YD(t)})}function GD(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 mR(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 ZD(t,e){if(wR(t)&&(bR(t),SR(t))){BD(t,e);return}(0,vR.boolOrEmptySchema)(t,e)}function SR({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 wR(t){return typeof t.schema!="boolean"}function BD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&CR(t),KD(t),JD(t);let i=n.const("_errs",z.default.errors);RR(t,i),n.var(e,(0,A._)`${i} === ${z.default.errors}`)}function bR(t){(0,mr.checkUnknownRules)(t),WD(t)}function RR(t,e){if(t.opts.jtd)return gR(t,[],!1,e);let r=(0,hR.getSchemaTypes)(t.schema),n=(0,hR.coerceAndCheckDataType)(t,r);gR(t,r,!n,e)}function WD(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,mr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function VD(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,mr.checkStrictMode)(t,"default is ignored in the schema root")}function KD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,jD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function JD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function CR({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 YD(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&&XD(t),e.return((0,A._)`${z.default.errors} === 0`))}function XD({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 gR(t,e,r,n){let{gen:o,schema:i,data:s,allErrors:a,opts:c,self:u}=t,{RULES:d}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,mr.schemaHasRulesButRef)(i,d))){o.block(()=>xR(t,"$ref",d.all.$ref.definition));return}c.jtd||QD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,rp.shouldUseGroup)(i,f)&&(f.type?(o.if((0,Ec.checkDataType)(f.type,s,c.strictNumbers)),yR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,Ec.reportTypeError)(t)),o.endIf()):yR(t,f),a||o.if((0,A._)`${z.default.errors} === ${n||0}`))}}function yR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,LD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,rp.shouldUseRule)(n,i)&&xR(t,i.keyword,i.definition,e.type)})}function QD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(eL(t,e),t.opts.allowUnionTypes||tL(t,e),rL(t,t.dataTypes))}function eL(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{PR(t.dataTypes,r)||np(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),oL(t,e)}}function tL(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&np(t,"use allowUnionTypes to allow union type keyword")}function rL(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,rp.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>nL(e,s))&&np(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function nL(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function PR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function oL(t,e){let r=[];for(let n of t.dataTypes)PR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function np(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Tc=class{constructor(e,r,n){if((0,fs.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,mr.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",kR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,fs.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",z.default.errors))}result(e,r,n){this.failResult((0,A.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,A.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,A._)`${r} !== undefined && (${(0,A.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?ls.reportExtraError:ls.reportError)(this,this.def.error,r)}$dataError(){(0,ls.reportError)(this,this.def.$dataError||ls.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ls.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=A.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=A.nil,r=A.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,A.or)((0,A._)`${o} === undefined`,r)),e!==A.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==A.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,A.or)(s(),a());function s(){if(n.length){if(!(r instanceof A.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,A._)`${(0,Ec.checkDataTypes)(c,r,i.opts.strictNumbers,Ec.DataType.Wrong)}`}return A.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,A._)`!${c}(${r})`}return A.nil}}subschema(e,r){let n=(0,tp.getSubschema)(this.it,e);(0,tp.extendSubschemaData)(n,this.it,e),(0,tp.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return ZD(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=mr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=mr.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,A.Name)),!0}};Yr.KeywordCxt=Tc;function xR(t,e,r,n){let o=new Tc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,fs.funcKeywordCode)(o,r):"macro"in r?(0,fs.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,fs.funcKeywordCode)(o,r)}var iL=/^\/(?:[^~]|~0|~1)*$/,sL=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function kR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!iL.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,mr.unescapeJsonPointer)(u))}`,s=(0,A._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Yr.getData=kR});var Ac=P(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});var op=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};ip.default=op});var hs=P(cp=>{"use strict";Object.defineProperty(cp,"__esModule",{value:!0});var sp=ds(),ap=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,sp.resolveUrl)(e,r,n),this.missingSchema=(0,sp.normalizeId)((0,sp.getFullPath)(e,this.missingRef))}};cp.default=ap});var $c=P(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.resolveSchema=Rt.getCompilingSchema=Rt.resolveRef=Rt.compileSchema=Rt.SchemaEnv=void 0;var zt=j(),aL=Ac(),Mn=hr(),Nt=ds(),ER=B(),cL=ps(),$o=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,Nt.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Rt.SchemaEnv=$o;function dp(t){let e=TR.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:aL.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,cL.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=dp;function uL(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=fL.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]=dL.call(this,i)}Rt.resolveRef=uL;function dL(t){return(0,Nt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:dp.call(this,t)}function TR(t){for(let e of this._compilations)if(lL(e,t))return e}Rt.getCompilingSchema=TR;function lL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function fL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Mc.call(this,t,e)}function Mc(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Nt._getFullPath)(this.opts.uriResolver,r),o=(0,Nt.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return up.call(this,r,t);let i=(0,Nt.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Mc.call(this,t,s);return typeof a?.schema!="object"?void 0:up.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||dp.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 up.call(this,r,s)}}Rt.resolveSchema=Mc;var pL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function up(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,ER.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!pL.has(a)&&u&&(e=(0,Nt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,ER.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Nt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Mc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new $o({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var AR=P((s3,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 pp=P((a3,NR)=>{"use strict";var mL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),$R=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),lp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),IR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),gL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function fp(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 yL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function MR(t){return t.length=0,!0}function vL(t,e,r){if(t.length){let n=fp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function _L(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=vL;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=MR}else{o.push(u);continue}}return o.length&&(a===MR?r.zone=o.join(""):s?n.push(o.join("")):n.push(fp(o))),r.address=n.join(""),r}function OR(t){if(SL(t,":")<2)return{host:t,isIPV6:!1};let e=_L(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 SL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function wL(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 bL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},RL=/[@/?#:]/g,CL=/[@/?#]/g;function zR(t,e){let r=e?CL:RL;return r.lastIndex=0,t.replace(r,n=>bL[n])}function PL(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(lp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&IR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function xL(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(lp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&IR(i)?e+=i:e+="%"+o,r+=2;continue}}gL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function kL(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(lp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function EL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!$R(r)){let n=OR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=zR(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}NR.exports={nonSimpleDomain:yL,recomposeAuthority:EL,reescapeHostDelimiters:zR,normalizePercentEncoding:PL,normalizePathEncoding:xL,escapePreservingEscapes:kL,removeDotSegments:wL,isIPv4:$R,isUUID:mL,normalizeIPv6:OR,stringArrayToHexStripped:fp}});var UR=P((c3,FR)=>{"use strict";var{isUUID:TL}=pp(),AL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,ML=["http","https","ws","wss","urn","urn:uuid"];function $L(t){return ML.indexOf(t)!==-1}function hp(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 DR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function LR(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 IL(t){return t.secure=hp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function OL(t){if((t.port===(hp(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 zL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(AL);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=mp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function NL(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=mp(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 DL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!TL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function LL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var jR={scheme:"http",domainHost:!0,parse:DR,serialize:LR},jL={scheme:"https",domainHost:jR.domainHost,parse:DR,serialize:LR},Ic={scheme:"ws",domainHost:!0,parse:IL,serialize:OL},FL={scheme:"wss",domainHost:Ic.domainHost,parse:Ic.parse,serialize:Ic.serialize},UL={scheme:"urn",parse:zL,serialize:NL,skipNormalize:!0},qL={scheme:"urn:uuid",parse:DL,serialize:LL,skipNormalize:!0},Oc={http:jR,https:jL,ws:Ic,wss:FL,urn:UL,"urn:uuid":qL};Object.setPrototypeOf(Oc,null);function mp(t){return t&&(Oc[t]||Oc[t.toLowerCase()])||void 0}FR.exports={wsIsSecure:hp,SCHEMES:Oc,isValidSchemeName:$L,getSchemeHandler:mp}});var BR=P((u3,Dc)=>{"use strict";var{normalizeIPv6:HL,removeDotSegments:ms,recomposeAuthority:GL,normalizePercentEncoding:ZL,normalizePathEncoding:BL,escapePreservingEscapes:WL,reescapeHostDelimiters:VL,isIPv4:KL,nonSimpleDomain:JL}=pp(),{SCHEMES:YL,getSchemeHandler:HR}=UR();function XL(t,e){return typeof t=="string"?t=ij(t,e):typeof t=="object"&&(t=Nc($n(t,e),e)),t}function QL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=zc(t,n),{parsed:s,malformedAuthorityOrPort:a}=zc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=GR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function GR(t,e,r,n){let o={};return n||(t=Nc($n(t,r),r),e=Nc($n(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ms(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ms(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ms(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=ms(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function ej(t,e,r){let n=qR(t,r),o=qR(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=HR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=ZL(r.path):(r.path=WL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=GL(r);if(s!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(s),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(a=ms(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var tj=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,rj=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,nj=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function oj(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function zc(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let s=t.match(rj);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(nj);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(tj);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=oj(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(KL(n.host)===!1){let f=HL(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=HR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&JL(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=VL(unescape(n.host),i))),n.path&&(n.path=BL(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function Nc(t,e){return zc(t,e).parsed}function ij(t,e){return ZR(t,e).normalized}function ZR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=zc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function qR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=ZR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var gp={SCHEMES:YL,normalize:XL,resolve:QL,resolveComponent:GR,equal:ej,serialize:$n,parse:Nc};Dc.exports=gp;Dc.exports.default=gp;Dc.exports.fastUri=gp});var VR=P(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var WR=BR();WR.code='require("ajv/dist/runtime/uri").default';yp.default=WR});var rC=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=ps();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 aj=Ac(),QR=hs(),cj=Zf(),gs=$c(),uj=j(),ys=ds(),Lc=us(),_p=B(),KR=AR(),dj=VR(),eC=(t,e)=>new RegExp(t,e);eC.code="new RegExp";var lj=["removeAdditional","useDefaults","coerceTypes"],fj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),pj={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.'},JR=200;function mj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,R,_,C,I,Q,pe;let xe=t.strict,an=(e=t.code)===null||e===void 0?void 0:e.optimize,cn=an===!0||an===void 0?1:an||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:eC,br=(o=t.uriResolver)!==null&&o!==void 0?o:dj.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:xe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:xe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:xe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:xe)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=t.strictRequired)!==null&&p!==void 0?p:xe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:cn,regExp:lt}:{optimize:cn,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:JR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:JR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(R=t.schemaId)!==null&&R!==void 0?R:"$id",addUsedSchema:(_=t.addUsedSchema)!==null&&_!==void 0?_:!0,validateSchema:(C=t.validateSchema)!==null&&C!==void 0?C:!0,validateFormats:(I=t.validateFormats)!==null&&I!==void 0?I:!0,unicodeRegExp:(Q=t.unicodeRegExp)!==null&&Q!==void 0?Q:!0,int32range:(pe=t.int32range)!==null&&pe!==void 0?pe:!0,uriResolver:br}}var vs=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...mj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new uj.ValueScope({scope:{},prefixes:fj,es5:r,lines:n}),this.logger=wj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,cj.getRules)(),YR.call(this,pj,e,"NOT SUPPORTED"),YR.call(this,hj,e,"DEPRECATED","warn"),this._metaOpts=_j.call(this),e.formats&&yj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&vj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),gj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=KR;n==="id"&&(o={...KR},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 QR.default))throw l;return a.call(this,l),await c.call(this,l.missingSchema),s.call(this,d)}}function a({missingSchema:d,missingRef:l}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${l} cannot be resolved`)}async function c(d){let l=await u.call(this,d);this.refs[d]||await i.call(this,l.$schema),this.refs[d]||this.addSchema(l,d,r)}async function u(d){let l=this._loading[d];if(l)return l;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,o);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return r=(0,ys.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(e){let r;for(;typeof(r=XR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new gs.SchemaEnv({schema:{},schemaId:n});if(r=gs.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=XR.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,ys.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Rj.call(this,n,r),!r)return(0,_p.eachItem)(n,i=>vp.call(this,i)),this;Pj.call(this,r);let o={...r,type:(0,Lc.getJSONTypes)(r.type),schemaType:(0,Lc.getJSONTypes)(r.schemaType)};return(0,_p.eachItem)(n,o.type.length===0?i=>vp.call(this,i,o):i=>o.type.forEach(s=>vp.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]=tC(d))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:a}=this.opts;if(typeof e=="object")s=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,ys.normalizeId)(s||n);let u=ys.getSchemaRefs.call(this,e,n);return c=new gs.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):gs.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{gs.compileSchema.call(this,e)}finally{this.opts=r}}};vs.ValidationError=aj.default;vs.MissingRefError=QR.default;De.default=vs;function YR(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 XR(t){return t=(0,ys.normalizeId)(t),this.schemas[t]||this.refs[t]}function gj(){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 yj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function vj(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 _j(){let t={...this.opts};for(let e of lj)delete t[e];return t}var Sj={log(){},warn(){},error(){}};function wj(t){if(t===!1)return Sj;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 bj=/^[a-z_$][a-z0-9_$:-]*$/i;function Rj(t,e){let{RULES:r}=this;if((0,_p.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!bj.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 vp(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=o?i.post:i.rules.find(({type:c})=>c===r);if(s||(s={type:r,rules:[]},i.rules.push(s)),i.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,Lc.getJSONTypes)(e.type),schemaType:(0,Lc.getJSONTypes)(e.schemaType)}};e.before?Cj.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 Cj(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 Pj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=tC(e)),t.validateSchema=this.compile(e,!0))}var xj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function tC(t){return{anyOf:[t,xj]}}});var nC=P(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var kj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Sp.default=kj});var aC=P(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var Ej=hs(),oC=bt(),ot=j(),Oo=hr(),iC=$c(),jc=B(),Tj={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=iC.resolveRef.call(c,u,o,r);if(d===void 0)throw new Ej.default(n.opts.uriResolver,o,r);if(d instanceof iC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Fc(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Fc(t,(0,ot._)`${h}.validate`,u,u.$async)}function f(h){let m=sC(t,h);Fc(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,ot.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:ot.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function sC(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=sC;function Fc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?Oo.default.this:ot.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=o.let("valid");o.try(()=>{o.code((0,ot._)`await ${(0,oC.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,oC.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,ot._)`${h}.errors`;o.assign(Oo.default.vErrors,(0,ot._)`${Oo.default.vErrors} === null ? ${m} : ${Oo.default.vErrors}.concat(${m})`),o.assign(Oo.default.errors,(0,ot._)`${Oo.default.vErrors}.length`)}function p(h){var m;if(!i.opts.unevaluated)return;let g=(m=r?.validate)===null||m===void 0?void 0:m.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=jc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,ot._)`${h}.evaluated.props`);i.props=jc.mergeEvaluated.props(o,v,i.props,ot.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=jc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,ot._)`${h}.evaluated.items`);i.items=jc.mergeEvaluated.items(o,v,i.items,ot.Name)}}}In.callRef=Fc;In.default=Tj});var cC=P(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var Aj=nC(),Mj=aC(),$j=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Aj.default,Mj.default];wp.default=$j});var uC=P(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var Uc=j(),Xr=Uc.operators,qc={maximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},minimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},exclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},exclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},Ij={message:({keyword:t,schemaCode:e})=>(0,Uc.str)`must be ${qc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Uc._)`{comparison: ${qc[t].okStr}, limit: ${e}}`},Oj={keyword:Object.keys(qc),type:"number",schemaType:"number",$data:!0,error:Ij,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Uc._)`${r} ${qc[e].fail} ${n} || isNaN(${r})`)}};bp.default=Oj});var dC=P(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var _s=j(),zj={message:({schemaCode:t})=>(0,_s.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,_s._)`{multipleOf: ${t}}`},Nj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:zj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,_s._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,_s._)`${s} !== parseInt(${s})`;t.fail$data((0,_s._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};Rp.default=Nj});var fC=P(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});function lC(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}Cp.default=lC;lC.code='require("ajv/dist/runtime/ucs2length").default'});var pC=P(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var On=j(),Dj=B(),Lj=fC(),jj={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}}`},Fj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:jj,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,Dj.useFunc)(t.gen,Lj.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};Pp.default=Fj});var hC=P(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var Uj=bt(),qj=B(),zo=j(),Hj={message:({schemaCode:t})=>(0,zo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,zo._)`{pattern: ${t}}`},Gj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Hj,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,qj.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,Uj.usePattern)(t,o);t.fail$data((0,zo._)`!${c}.test(${r})`)}}};xp.default=Gj});var mC=P(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var Ss=j(),Zj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Ss.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Ss._)`{limit: ${t}}`},Bj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Zj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?Ss.operators.GT:Ss.operators.LT;t.fail$data((0,Ss._)`Object.keys(${r}).length ${o} ${n}`)}};kp.default=Bj});var gC=P(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var ws=bt(),bs=j(),Wj=B(),Vj={message:({params:{missingProperty:t}})=>(0,bs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,bs._)`{missingProperty: ${t}}`},Kj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Vj,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,Wj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(bs.nil,l);else for(let p of r)(0,ws.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let h=e.let("valid",!0);t.block$data(h,()=>f(p,h)),t.ok(h)}else e.if((0,ws.checkMissingProp)(t,r,p)),(0,ws.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ws.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,ws.propertyInData)(e,o,p,a.ownProperties)),e.if((0,bs.not)(h),()=>{t.error(),e.break()})},bs.nil)}}};Ep.default=Kj});var yC=P(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Rs=j(),Jj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Rs.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Rs._)`{limit: ${t}}`},Yj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Jj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?Rs.operators.GT:Rs.operators.LT;t.fail$data((0,Rs._)`${r}.length ${o} ${n}`)}};Tp.default=Yj});var Hc=P(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var vC=Qf();vC.code='require("ajv/dist/runtime/equal").default';Ap.default=vC});var _C=P($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var Mp=us(),Le=j(),Xj=B(),Qj=Hc(),e1={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}}`},t1={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:e1,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,Mp.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,Mp.checkDataTypes)(u,g,a.opts.strictNumbers,Mp.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,Xj.useFunc)(e,Qj.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)})))}}};$p.default=t1});var SC=P(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Ip=j(),r1=B(),n1=Hc(),o1={message:"must be equal to constant",params:({schemaCode:t})=>(0,Ip._)`{allowedValue: ${t}}`},i1={keyword:"const",$data:!0,error:o1,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Ip._)`!${(0,r1.useFunc)(e,n1.default)}(${r}, ${o})`):t.fail((0,Ip._)`${i} !== ${r}`)}};Op.default=i1});var wC=P(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var Cs=j(),s1=B(),a1=Hc(),c1={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Cs._)`{allowedValues: ${t}}`},u1={keyword:"enum",schemaType:"array",$data:!0,error:c1,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,a1.default)),d;if(a||n)d=e.let("valid"),t.block$data(d,l);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let p=e.const("vSchema",i);d=(0,Cs.or)(...o.map((h,m)=>f(p,m)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,Cs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,Cs._)`${u()}(${r}, ${p}[${h}])`:(0,Cs._)`${r} === ${m}`}}};zp.default=u1});var bC=P(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var d1=uC(),l1=dC(),f1=pC(),p1=hC(),h1=mC(),m1=gC(),g1=yC(),y1=_C(),v1=SC(),_1=wC(),S1=[d1.default,l1.default,f1.default,p1.default,h1.default,m1.default,g1.default,y1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},v1.default,_1.default];Np.default=S1});var Lp=P(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.validateAdditionalItems=void 0;var zn=j(),Dp=B(),w1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},b1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:w1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Dp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}RC(t,n)}};function RC(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,Dp.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:Dp.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Ps.validateAdditionalItems=RC;Ps.default=b1});var jp=P(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.validateTuple=void 0;var CC=j(),Gc=B(),R1=bt(),C1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return PC(t,"additionalItems",e);r.items=!0,!(0,Gc.alwaysValidSchema)(r,e)&&t.ok((0,R1.validateArray)(t))}};function PC(t,e,r=t.schema){let{gen:n,parentSchema:o,data:i,keyword:s,it:a}=t;d(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=Gc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,CC._)`${i}.length`);r.forEach((l,f)=>{(0,Gc.alwaysValidSchema)(a,l)||(n.if((0,CC._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,h=r.length,m=h===l.minItems&&(h===l.maxItems||l[e]===!1);if(f.strictTuples&&!m){let g=`"${s}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,Gc.checkStrictMode)(a,g,f.strictTuples)}}}xs.validateTuple=PC;xs.default=C1});var xC=P(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var P1=jp(),x1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,P1.validateTuple)(t,"items")};Fp.default=x1});var EC=P(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var kC=j(),k1=B(),E1=bt(),T1=Lp(),A1={message:({params:{len:t}})=>(0,kC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,kC._)`{limit: ${t}}`},M1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:A1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,k1.alwaysValidSchema)(n,e)&&(o?(0,T1.validateAdditionalItems)(t,o):t.ok((0,E1.validateArray)(t)))}};Up.default=M1});var TC=P(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var Ct=j(),Zc=B(),$1={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}}`},I1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:$1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t,s,a,{minContains:c,maxContains:u}=n;i.opts.next?(s=c===void 0?1:c,a=u):s=1;let d=e.const("len",(0,Ct._)`${o}.length`);if(t.setParams({min:s,max:a}),a===void 0&&s===0){(0,Zc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Zc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Zc.alwaysValidSchema)(i,r)){let m=(0,Ct._)`${d} >= ${s}`;a!==void 0&&(m=(0,Ct._)`${m} && ${d} <= ${a}`),t.pass(m);return}i.items=!0;let l=e.name("valid");a===void 0&&s===1?p(l,()=>e.if(l,()=>e.break())):s===0?(e.let(l,!0),a!==void 0&&e.if((0,Ct._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let m=e.name("_valid"),g=e.let("count",0);p(m,()=>e.if(m,()=>h(g)))}function p(m,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Zc.Type.Num,compositeRule:!0},m),g()})}function h(m){e.code((0,Ct._)`${m}++`),a===void 0?e.if((0,Ct._)`${m} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Ct._)`${m} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Ct._)`${m} >= ${s}`,()=>e.assign(l,!0)))}}};qp.default=I1});var $C=P(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.validateSchemaDeps=Xt.validatePropertyDeps=Xt.error=void 0;var Hp=j(),O1=B(),ks=bt();Xt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Hp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Hp._)`{property: ${t},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${e},
8
- deps: ${r}}`};var z1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=N1(t);AC(t,e),MC(t,r)}};function N1({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 AC(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,ks.propertyInData)(r,n,s,o.opts.ownProperties);t.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,ks.checkReportMissingProp)(t,u)}):(r.if((0,Hp._)`${c} && (${(0,ks.checkMissingProp)(t,a,i)})`),(0,ks.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=AC;function MC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,O1.alwaysValidSchema)(i,e[a])||(r.if((0,ks.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},s);t.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),t.ok(s))}Xt.validateSchemaDeps=MC;Xt.default=z1});var OC=P(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var IC=j(),D1=B(),L1={message:"property name must be valid",params:({params:t})=>(0,IC._)`{propertyName: ${t.propertyName}}`},j1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:L1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,D1.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,IC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Gp.default=j1});var Bp=P(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var Zc=bt(),Dt=j(),F1=hr(),Bc=B(),U1={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},q1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:U1,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,Bc.alwaysValidSchema)(s,r))return;let u=(0,Zc.allSchemaProperties)(n.properties),d=(0,Zc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${F1.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,Bc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Zc.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,Zc.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,Bc.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:Bc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Zp.default=q1});var DC=P(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var H1=ps(),zC=bt(),Wp=B(),NC=Bp(),G1={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&&NC.default.code(new H1.KeywordCxt(i,NC.default,"additionalProperties"));let s=(0,zC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Wp.mergeEvaluated.props(e,(0,Wp.toHash)(s),i.props));let a=s.filter(l=>!(0,Wp.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,zC.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)}}};Vp.default=G1});var UC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var LC=bt(),Wc=j(),jC=B(),FC=B(),Z1={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,LC.allSchemaProperties)(r),c=a.filter(m=>(0,jC.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 Wc.Name)&&(i.props=(0,FC.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,jC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Wc._)`${(0,LC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:FC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Wc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Wc.not)(d),()=>e.break())})})}}};Kp.default=Z1});var qC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var B1=B(),W1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,B1.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"}};Jp.default=W1});var HC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var V1=bt(),K1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:V1.validateUnion,error:{message:"must match a schema in anyOf"}};Yp.default=K1});var GC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var Vc=j(),J1=B(),Y1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Vc._)`{passingSchemas: ${t.passing}}`},X1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Y1,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,J1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Vc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Vc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Vc.Name)})})}}};Xp.default=X1});var ZC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var Q1=B(),eF={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,Q1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Qp.default=eF});var VC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var Kc=j(),WC=B(),tF={message:({params:t})=>(0,Kc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Kc._)`{failingKeyword: ${t.ifClause}}`},rF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:tF,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,WC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=BC(n,"then"),i=BC(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,Kc.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,Kc._)`${d}`):t.setParams({ifClause:d})}}}};function BC(t,e){let r=t.schema[e];return r!==void 0&&!(0,WC.alwaysValidSchema)(t,r)}eh.default=rF});var KC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var nF=B(),oF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,nF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};th.default=oF});var JC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var iF=Lp(),sF=xC(),aF=jp(),cF=EC(),uF=TC(),dF=$C(),lF=OC(),fF=Bp(),pF=DC(),hF=UC(),mF=qC(),gF=HC(),yF=GC(),vF=ZC(),_F=VC(),SF=KC();function wF(t=!1){let e=[mF.default,gF.default,yF.default,vF.default,_F.default,SF.default,lF.default,fF.default,dF.default,pF.default,hF.default];return t?e.push(sF.default,cF.default):e.push(iF.default,aF.default),e.push(uF.default),e}rh.default=wF});var YC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var Re=j(),bF={message:({schemaCode:t})=>(0,Re.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Re._)`{format: ${t}}`},RF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:bF,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:s,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:d,self:l}=a;if(!c.validateFormats)return;o?f():p();function f(){let h=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),m=r.const("fDef",(0,Re._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,Re._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,Re._)`${m}.type || "string"`).assign(v,(0,Re._)`${m}.validate`),()=>r.assign(g,(0,Re._)`"string"`).assign(v,m)),t.fail$data((0,Re.or)(w(),b()));function w(){return c.strictSchema===!1?Re.nil:(0,Re._)`${s} && !${v}`}function b(){let R=d.$async?(0,Re._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Re._)`${v}(${n})`,_=(0,Re._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,Re._)`${v} && ${v} !== true && ${g} === ${e} && !${_}`}}function p(){let h=l.formats[i];if(!h){w();return}if(h===!0)return;let[m,g,v]=b(h);m===e&&t.pass(R());function w(){if(c.strictSchema===!1){l.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function b(_){let C=_ instanceof RegExp?(0,Re.regexpCode)(_):c.code.formats?(0,Re._)`${c.code.formats}${(0,Re.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:_,code:C});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Re._)`${I}.validate`]:["string",_,I]}function R(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!d.$async)throw new Error("async format in sync schema");return(0,Re._)`await ${v}(${n})`}return typeof g=="function"?(0,Re._)`${v}(${n})`:(0,Re._)`${v}.test(${n})`}}}};nh.default=RF});var XC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var CF=YC(),PF=[CF.default];oh.default=PF});var QC=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 tP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var xF=cC(),kF=bC(),EF=JC(),TF=XC(),eP=QC(),AF=[xF.default,kF.default,(0,EF.default)(),TF.default,eP.metadataVocabulary,eP.contentVocabulary];ih.default=AF});var nP=P(Jc=>{"use strict";Object.defineProperty(Jc,"__esModule",{value:!0});Jc.DiscrError=void 0;var rP;(function(t){t.Tag="tag",t.Mapping="mapping"})(rP||(Jc.DiscrError=rP={}))});var iP=P(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});var Do=j(),sh=nP(),oP=Mc(),MF=hs(),$F=B(),IF={message:({params:{discrError:t,tagName:e}})=>t===sh.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}}`},OF={keyword:"discriminator",type:"object",schemaType:"object",error:IF,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:sh.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:sh.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,$F.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=oP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof oP.SchemaEnv&&(_=_.schema),_===void 0)throw new MF.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]=_}}}};ah.default=OF});var sP=P((Y3,zF)=>{zF.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 uh=P((le,ch)=>{"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 NF=rC(),DF=tP(),LF=iP(),aP=sP(),jF=["/properties"],Yc="http://json-schema.org/draft-07/schema",Lo=class extends NF.default{_addVocabularies(){super._addVocabularies(),DF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(LF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(aP,jF):aP;this.addMetaSchema(e,Yc,!1),this.refs["http://json-schema.org/schema"]=Yc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Yc)?Yc:void 0)}};le.Ajv=Lo;ch.exports=le=Lo;ch.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var FF=ps();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return FF.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 UF=Tc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return UF.default}});var qF=hs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return qF.default}})});var mP=P(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.formatNames=er.fastFormats=er.fullFormats=void 0;function Qt(t,e){return{validate:t,compare:e}}er.fullFormats={date:Qt(lP,ph),time:Qt(lh(!0),hh),"date-time":Qt(cP(!0),pP),"iso-time":Qt(lh(),fP),"iso-date-time":Qt(cP(),hP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:VF,"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:tU,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:KF,int32:{type:"number",validate:XF},int64:{type:"number",validate:QF},float:{type:"number",validate:dP},double:{type:"number",validate:dP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,ph),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,hh),"date-time":Qt(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,pP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,fP),"iso-date-time":Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,hP),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};er.formatNames=Object.keys(er.fullFormats);function HF(t){return t%4===0&&(t%100!==0||t%400===0)}var GF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,ZF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function lP(t){let e=GF.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&&HF(r)?29:ZF[n])}function ph(t,e){if(t&&e)return t>e?1:t<e?-1:0}var dh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function lh(t){return function(r){let n=dh.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 hh(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 fP(t,e){if(!(t&&e))return;let r=dh.exec(t),n=dh.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 fh=/t|\s/i;function cP(t){let e=lh(t);return function(n){let o=n.split(fh);return o.length===2&&lP(o[0])&&e(o[1])}}function pP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function hP(t,e){if(!(t&&e))return;let[r,n]=t.split(fh),[o,i]=e.split(fh),s=ph(r,o);if(s!==void 0)return s||hh(n,i)}var BF=/\/|:/,WF=/^(?:[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 VF(t){return BF.test(t)&&WF.test(t)}var uP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function KF(t){return uP.lastIndex=0,uP.test(t)}var JF=-(2**31),YF=2**31-1;function XF(t){return Number.isInteger(t)&&t<=YF&&t>=JF}function QF(t){return Number.isInteger(t)}function dP(){return!0}var eU=/[^\\]\\Z/;function tU(t){if(eU.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var gP=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var rU=uh(),Lt=j(),Qr=Lt.operators,Xc={formatMaximum:{okStr:"<=",ok:Qr.LTE,fail:Qr.GT},formatMinimum:{okStr:">=",ok:Qr.GTE,fail:Qr.LT},formatExclusiveMaximum:{okStr:"<",ok:Qr.LT,fail:Qr.GTE},formatExclusiveMinimum:{okStr:">",ok:Qr.GT,fail:Qr.LTE}},nU={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${Xc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${Xc[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(Xc),type:"string",schemaType:"string",$data:!0,error:nU,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 rU.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}) ${Xc[o].fail} 0`}},dependencies:["format"]};var oU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=oU});var SP=P((Es,_P)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});var Uo=mP(),iU=gP(),mh=j(),yP=new mh.Name("fullFormats"),sU=new mh.Name("fastFormats"),gh=(t,e={keywords:!0})=>{if(Array.isArray(e))return vP(t,e,Uo.fullFormats,yP),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,sU]:[Uo.fullFormats,yP],o=e.formats||Uo.formatNames;return vP(t,o,r,n),e.keywords&&(0,iU.default)(t),t};gh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function vP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,mh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}_P.exports=Es=gh;Object.defineProperty(Es,"__esModule",{value:!0});Es.default=gh});var KP=P((I8,VP)=>{VP.exports=WP;WP.sync=LU;var ZP=Rr("fs");function DU(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 BP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:DU(e,r)}function WP(t,e,r){ZP.stat(t,function(n,o){r(n,n?!1:BP(o,t,e))})}function LU(t,e){return BP(ZP.statSync(t),t,e)}});var ex=P((O8,QP)=>{QP.exports=YP;YP.sync=jU;var JP=Rr("fs");function YP(t,e,r){JP.stat(t,function(n,o){r(n,n?!1:XP(o,e))})}function jU(t,e){return XP(JP.statSync(t),e)}function XP(t,e){return t.isFile()&&FU(t,e)}function FU(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 rx=P((N8,tx)=>{var z8=Rr("fs"),uu;process.platform==="win32"||global.TESTING_WINDOWS?uu=KP():uu=ex();tx.exports=zh;zh.sync=UU;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)})})}uu(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function UU(t,e){try{return uu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ux=P((D8,cx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",nx=Rr("path"),qU=Ko?";":":",ox=rx(),ix=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),sx=(t,e)=>{let r=e.colon||qU,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}},ax=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=sx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(ix(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=nx.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];ox(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)},HU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=sx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=nx.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(ox.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 ix(t)};cx.exports=ax;ax.sync=HU});var lx=P((L8,Nh)=>{"use strict";var dx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Nh.exports=dx;Nh.exports.default=dx});var mx=P((j8,hx)=>{"use strict";var fx=Rr("path"),GU=ux(),ZU=lx();function px(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=GU.sync(t.command,{path:r[ZU({env:r})],pathExt:e?fx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=fx.resolve(o?t.options.cwd:"",s)),s}function BU(t){return px(t)||px(t,!0)}hx.exports=BU});var gx=P((F8,Lh)=>{"use strict";var Dh=/([()\][%!^"`<>&|;, *?])/g;function WU(t){return t=t.replace(Dh,"^$1"),t}function VU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Dh,"^$1"),e&&(t=t.replace(Dh,"^$1")),t}Lh.exports.command=WU;Lh.exports.argument=VU});var vx=P((U8,yx)=>{"use strict";yx.exports=/^#!(.*)/});var Sx=P((q8,_x)=>{"use strict";var KU=vx();_x.exports=(t="")=>{let e=t.match(KU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var bx=P((H8,wx)=>{"use strict";var jh=Rr("fs"),JU=Sx();function YU(t){let r=Buffer.alloc(150),n;try{n=jh.openSync(t,"r"),jh.readSync(n,r,0,150,0),jh.closeSync(n)}catch{}return JU(r.toString())}wx.exports=YU});var xx=P((G8,Px)=>{"use strict";var XU=Rr("path"),Rx=mx(),Cx=gx(),QU=bx(),eq=process.platform==="win32",tq=/\.(?:com|exe)$/i,rq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function nq(t){t.file=Rx(t);let e=t.file&&QU(t.file);return e?(t.args.unshift(t.file),t.command=e,Rx(t)):t.file}function oq(t){if(!eq)return t;let e=nq(t),r=!tq.test(e);if(t.options.forceShell||r){let n=rq.test(e);t.command=XU.normalize(t.command),t.command=Cx.command(t.command),t.args=t.args.map(i=>Cx.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 iq(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:oq(n)}Px.exports=iq});var Tx=P((Z8,Ex)=>{"use strict";var Fh=process.platform==="win32";function Uh(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(!Fh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=kx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function kx(t,e){return Fh&&t===1&&!e.file?Uh(e.original,"spawn"):null}function aq(t,e){return Fh&&t===1&&!e.file?Uh(e.original,"spawnSync"):null}Ex.exports={hookChildProcess:sq,verifyENOENT:kx,verifyENOENTSync:aq,notFoundError:Uh}});var $x=P((B8,Jo)=>{"use strict";var Ax=Rr("child_process"),qh=xx(),Hh=Tx();function Mx(t,e,r){let n=qh(t,e,r),o=Ax.spawn(n.command,n.args,n.options);return Hh.hookChildProcess(o,n),o}function cq(t,e,r){let n=qh(t,e,r),o=Ax.spawnSync(n.command,n.args,n.options);return o.error=o.error||Hh.verifyENOENTSync(o.status,n),o}Jo.exports=Mx;Jo.exports.spawn=Mx;Jo.exports.sync=cq;Jo.exports._parse=qh;Jo.exports._enoent=Hh});var Lx=P(Zh=>{"use strict";var zx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,pq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Nx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,hq=/\\([\u000b\u0020-\u00ff])/g,mq=/([\\"])/g,Dx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Zh.format=gq;Zh.parse=yq;function gq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Dx.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],!Nx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+_q(e[o])}return n}function yq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?vq(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(!Dx.test(n))throw new TypeError("invalid media type");var o=new Sq(n.toLowerCase());if(r!==-1){var i,s,a;for(zx.lastIndex=r;s=zx.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 vq(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 _q(t){var e=String(t);if(Nx.test(e))return e;if(e.length>0&&!pq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(mq,"\\$1")+'"'}function Sq(t){this.parameters=Object.create(null),this.type=t}});import{logger as f4}from"@hermes/logger";import{logger as VH}from"@hermes/logger";var RT="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(RT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as wH}from"@augmentcode/auggie-v2";import{logger as bH}from"@hermes/logger";import{logger as QT}from"@hermes/logger";import{logger as PT}from"@hermes/logger";function CT(t,e,r){let n=r?.get(t.name);return n!==void 0?n.host===t&&n.owner.kind==="plugin":e?.get(t.name)===t}function Cr(t,e,r){let n=r?.get(t.name);if(n?.host===t)return n.owner.kind;let o=t.config;return o?.vfsSource!==void 0?"vfs":o?.registrySource!==void 0?"registry":CT(t,e,r)?"plugin":"local"}function xT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Fm=PT.child({prefix:"pi-mcp"}),kT="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 ET(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=ft(t,e);if(r?.serverGeneration===n.serverGeneration&&r.mcpConfigId===n.mcpConfigId&&r.credentialRevision===n.credentialRevision&&r.credentialRevisionDomain===n.credentialRevisionDomain)return r.category;t.statusFailureCategories.delete(e),t.authRefreshNeededReportKeys?.delete(e)}var ra=3e4;function TT(t){switch(t.status){case"success":return"connected";case"failed":case"auth_required":return"failed";case"initializing":{let e=t.connectStartedAt;return e!==void 0&&Date.now()-e>=ra?"failed":void 0}default:return}}var Um="authentication required",AT="Authentication refresh is pending in the backend; retry shortly.",MT="timed out connecting after 30s",$T="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",IT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",OT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",zT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",NT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",DT="Server was not started: this session's Space policy does not allow it.",LT="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 FT(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)?IT:$T,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",...qT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}UT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function UT(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=Hm(e,a);if(u===void 0)continue;let d=e.registryConfigNamesById.get(a)??c.serverName;s.has(d)||(o.add(a),r.push({name:d,source:"registry",status:"failed",...u,mcpConfigId:a}),i.add(d))}}function qm(t,e){let r=new Map;for(let[n,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let i=o;typeof i.category=="string"&&typeof i.config_id=="string"&&i.config_id!==""&&r.set(i.config_id,{category:i.category,serverName:n})}t.oauthFailureCategoriesByConfigId=r}function Hm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:NT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:DT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:LT,failureCategory:"share_identity_excluded"};default:return}}function qT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:jT,failureCategory:"auth_terminal"};let i=Hm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?zT:OT,failureCategory:"configuration"}}function HT(t,e){return e!==void 0?e.isAuthError?Um:e.error:t.status==="initializing"?MT:t.lastError??(t.status==="auth_required"?Um:void 0)}function Gm(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 GT(t,e,r){if(Gm(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 ZT(t,e){let r=TT(t);if(r===void 0)return;let n=ET(e,t.name),o=r==="connected"?xT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:Cr(t,e.pluginServerHosts,e.hostLeases),status:r,transport:t.config.type,tools:t.suppressesProviderDiagnostics?[]:t.tools.map(u=>u.name)},s=t.config.id;s!==void 0&&(i.mcpConfigId=s,e.dynamicallyAddedConfigIds.has(s)&&(i.dynamicallyAdded=!0));let a=Gm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=GT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?AT:HT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function BT(t){let e=[];for(let r of t.servers.values()){let n=ZT(r,t);n!==void 0&&e.push(n)}return FT(t,e),e}function N(t,e){try{let r=BT(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(kT,o),Fm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Fm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var na={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function WT(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 Zm(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function Zu(t,e){let r=WT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function oa(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Bu(t,e,r){r&&t.servers.get(e)===r&&t.servers.delete(e),r&&t.pluginServerHosts.get(e)===r&&(t.pluginServerHosts.delete(e),t.pluginServerNames.delete(e))}function Pr(t,e){return t.registrySource!==void 0?{kind:"registry",identity:`user:${t.id??t.name}`}:t.vfsSource!==void 0?{kind:"vfs",identity:t.id??t.name}:{kind:e??"local",identity:t.id??t.name}}function ee(t,e,r){let n=qt(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Pr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:Zu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),oa(t,e,a),c}function Bm(t){let{state:e,name:r,host:n}=t,o=qt(e),i=o.get(r);if(!i||i.host!==n||i.owner.kind!=="local"||e.servers.get(r)!==n)return;let s={owner:{kind:"plugin",identity:n.config.id??r},revision:Zu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),oa(e,r,s.owner),s}function ci(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=qt(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=na[n.kind]>na[a.owner.kind],f=na[n.kind]===na[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Zm(a):void 0;Bu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Zu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),oa(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Wu(t){if(!t)return;let e=await t.teardown;if(e.status==="failed")throw e.error instanceof Error?e.error:new Error(String(e.error))}function _e(t){let{state:e,name:r,retirement:n,result:o}=t;if(n.settled)return!1;n.settled=!0,n.result=o;let s=qt(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,si(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ia(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);return!s||s.revision!==o||!ai(s.owner,n)||s.host!==void 0||s.retirement!==void 0?!1:(s.host=i,e.servers.set(r,i),n.kind==="plugin"?(e.pluginServerNames.add(r),e.pluginServerHosts.set(r,i)):(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),!0)}function ct(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);if(!s||s.revision!==o||!ai(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Zm(s);if(a)return Bu(e,r,i),s.host=void 0,s.retirement=a,a}function Wm(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=qt(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!ai(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!ai(s.owner,n)||s.revision!==o.incumbent.revision?(oa(e,r,s.owner),!0):(i.delete(r),si(e).set(r,{kind:"blocked"}),!0))}function ke(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e),a=s.get(r);return!a||a.revision!==o||!ai(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Bu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),si(e).set(r,{kind:"blocked"}),!0)}function D(t,e){return qt(t).get(e)}function Vu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Vm(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function xr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&Vm(t.url)===Vm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Yn=class{_tokens=new Map;_authRequired=new Set;_retiredCredentials=new Set;_credentialRetirementGenerations=new Map;_credentialIdentities=new Map;get(e){return this._tokens.get(e)}commit(e,r,n){this._tokens.set(e,r),this._authRequired.delete(e),this._retiredCredentials.delete(e),n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e)}hasCredentialIdentity(e,r){return xr(this._credentialIdentities.get(e),r)}reconcileCredentialIdentity(e,r,n){return this._tokens.get(e)!==r||this._retiredCredentials.has(e)?!1:(n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e),!0)}set(e,r,n){this.commit(e,r,n)}persist(e,r,n){return Promise.resolve(void 0)}captureAuthenticatedIdentityVersion(e){return Promise.resolve(void 0)}captureRefreshIdentityVersion(e){return Promise.resolve(void 0)}persistAuthenticated(e,r,n,o){return this.persist(e,r,n)}persistRefresh(e,r,n,o){return this.persist(e,r,n)}restoreAfterSupersededAuthentication(e,r,n,o,i,s){return this.persist(e,n,s)}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async setAndPersist(e,r,n){await this.persist(e,r,n),this.set(e,r,n)}snapshot(){return{tokens:new Map(this._tokens),authRequired:new Set(this._authRequired),retiredCredentials:new Set(this._retiredCredentials),credentialRetirementGenerations:new Map(this._credentialRetirementGenerations),credentialIdentities:new Map([...this._credentialIdentities].map(([e,r])=>[e,{...r}]))}}seed(e){for(let[r,n]of e.tokens)this._tokens.set(r,n);for(let r of e.authRequired)this._authRequired.add(r);for(let r of e.retiredCredentials??[])this._retiredCredentials.add(r);for(let[r,n]of e.credentialRetirementGenerations??[])this._credentialRetirementGenerations.set(r,n);for(let[r,n]of e.credentialIdentities??[])this._credentialIdentities.set(r,{...n})}delete(e,r){this._tokens.delete(e),this._credentialIdentities.delete(e)}clearLocalCredential(e){this._tokens.delete(e),this._credentialIdentities.delete(e),this._authRequired.delete(e),this._retiredCredentials.add(e),this._credentialRetirementGenerations.set(e,(this._credentialRetirementGenerations.get(e)??0)+1)}retireCredential(e,r,n){return n?.preserveNameState||this.clearLocalCredential(e),Promise.resolve()}credentialRetirementGeneration(e){return this._credentialRetirementGenerations.get(e)??0}isCredentialRetired(e){return this._retiredCredentials.has(e)}markAuthRequired(e){this._authRequired.add(e)}isAuthRequired(e){return this._authRequired.has(e)}clearAuthRequired(e){this._authRequired.delete(e)}};function di(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Ku(t){try{return new URL(t).toString()}catch{return t}}function ui(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Ku(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Ht(t,e){return ui(e.config)}function pt(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Ku(t.url)===Ku(e.url)}function Ju(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):xr(r,n)}function Ie(t){return/^secret:(private|shared):.+/.test(t)}function Yu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function sa(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 VT(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 KT(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 Km(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Yu(e,r):n!==void 0&&e!==n}function Jm(t,e,r){return r&&e!==void 0&&t!==void 0&&Yu(t,e)}function JT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Yu(i,n))}function Ym(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(KT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Km({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Km({identity:s.domain,...l})?!0:JT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function YT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function XT(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 Xm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=sa(t,e,i),c=sa(t,e,s),u=t.servers?.get(e)?.config,d=VT({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=Ym({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=Jm(a,l,f),g=Jm(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=YT({name:e,retiredConfig:d,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,Q,{preserveNameState:R})}let _=Ym({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:sa(t,e,t.oauthCredentialDomains?.get(e)),currentDomain:sa(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"}),XT({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 Xm(t,e,r,n,"durable")}function li(t,e,r,n){return Xm(t,e,r,n,"session")}function aa(t){let e=[];if(Object.hasOwn(t,"credential_owner_domain")&&e.push(t.credential_owner_domain),Object.hasOwn(t,"credentialOwnerDomain")&&e.push(t.credentialOwnerDomain),e.length===0)return{kind:"absent"};if(e.some(n=>typeof n!="string"||!/^user:.+/.test(n)))return{kind:"invalid"};let r=e[0];return e.every(n=>n===r)?{kind:"valid",ownerDomain:r}:{kind:"invalid"}}function kr(t,e){let r=t.replace(/^0+(?=\d)/,""),n=e.replace(/^0+(?=\d)/,"");return r.length!==n.length?r.length<n.length?-1:1:r===n?0:r<n?-1:1}var Qm="augment:mcp-oauth-credentials",eg=300*1e3,eA=256,Xu=QT.child({prefix:"pi-mcp"}),Et=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function He(t){return`user:${t}`}function un(t){let{state:e,name:r,revision:n}=t;if(e.credentialRevisions??=new Map,e.oauthCredentialRevisions??=new Map,e.oauthCredentialDomains??=new Map,e.hostedCredentialOwnership?.delete(r),n===void 0){e.credentialRevisions.delete(r),e.oauthCredentialDomains.delete(r),e.authRefreshNeededReportKeys?.delete(r);return}let o={...n,revision:n.revision.replace(/^0+(?=\d)/,"")},i=e.credentialRevisions.get(r);e.credentialRevisions.set(r,o),(i?.revision!==o.revision||i?.domain!==o.domain)&&e.authRefreshNeededReportKeys?.delete(r);let s=e.oauthCredentialRevisions.get(o.domain);(s===void 0||kr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Er(t){let e=t.indexOf(":");if(e<=0||e===t.length-1)return t;let r=t.slice(0,e);return r!=="private"&&r!=="shared"&&r!=="recipient"&&r!=="user"&&r!=="tenant"?t:He(t.slice(e+1))}function dn(t){return t.ownerDomain??Er(t.domain)}function tg(t,e,r){let n=He(e);return r!==void 0?r===n:Ie(t)||Er(t)===n}function tA(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function rA(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 nA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function oA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&tA(t.credentialRevisions.get(e),r.credentialRevision)&&nA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function iA(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 sA(t){let{state:e,config:r,domain:n}=t,o=r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id);return!o||e.sessionRemovedConfigIds.has(r.id??"")||!pt(o,r)?!1:o.name!==r.name||e.equalRevisionRebindDomains.get(r.name)===n}function Tr(t){t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.stagedOAuthCredentials??=new Map,t.equalRevisionRebindDomains??=new Map,t.bootOAuthCredentialBuffer??=new Map}function or(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function rg(t){Tr(t);let e=new Set([...t.registryCredentialConfigs.keys(),...t.registryConfigNamesById.values(),...t.oauthCredentialDomains.keys(),...t.credentialRevisions.keys(),...t.preservedCredentialIdentities?.keys()??[],...[...t.bootOAuthCredentialBuffer?.values()??[]].map(n=>n.serverName),...[...t.registryCredentialIntents.values()].flatMap(n=>n.configName?[n.configName]:[])]);for(let[n,o]of t.hostLeases)o.owner.kind==="registry"&&e.add(n);for(let n of e){let o=t.hostLeases.get(n);if(o&&o.owner.kind!=="registry")continue;t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.hostedCredentialOwnership?.delete(n),t.preservedCredentialIdentities?.delete(n),t.expectedCredentialDomains.set(n,{kind:"blocked"}),t.authRefreshNeededReportKeys?.delete(n)}let r=new Set(t.oauthCredentialDomains.values());for(let n of t.oauthCredentialRevisions.keys())r.has(n)||t.oauthCredentialRevisions.delete(n);for(let n of t.bootOAuthCredentialBuffer?.keys()??[])or(t,n);t.registryCredentialIntents.clear(),t.pendingRegistryCredentialDomains.clear(),t.stagedOAuthCredentials.clear(),t.equalRevisionRebindDomains.clear(),t.registryCredentialConfigs.clear(),t.registryCredentialConfigsById.clear(),t.registryConfigNamesById.clear(),t.mcpRestartState.clear()}function ng(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=eg)&&or(t,n)}function aA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function og(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 ig(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;Tr(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();ng(e,a);let c=dn(n),u=Ie(c)?`${c}\0${r}`:c,d=s.get(u),l=og(d?.credential,n.domain);if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=eA&&aA(e),or(e,u);let f={serverName:r,credential:o,suppressReconnect:i,insertedAtMs:a,connectionEpoch:e.mcpConnectionEpoch,expiryTimer:void 0};s.set(u,f),f.expiryTimer=setTimeout(()=>{s.get(u)===f&&or(e,u)},eg),f.expiryTimer.unref?.(),Xu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function cA(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ye(t){let{state:e,domain:r,epoch:n,preserveFence:o=!1,preserveBootCredential:i=!1}=t;Tr(e);let s=e.registryCredentialIntents.get(r);if(!(n!==void 0&&s?.epoch!==n)){if(!o&&s?.configName){let a=e.expectedCredentialDomains.get(s.configName);a?.kind==="domain"&&a.domain===r&&e.expectedCredentialDomains.set(s.configName,{kind:"blocked"})}e.pendingRegistryCredentialDomains.delete(r),e.registryCredentialIntents.delete(r),e.stagedOAuthCredentials.delete(r),i||or(e,r)}}function ca(t){let{state:e,domain:r,forceNew:n=!1}=t;Tr(e);let o=e.registryCredentialIntents.get(r);if(o&&!n)return e.pendingRegistryCredentialDomains.add(r),{domain:r,...o};let i=o?.configFingerprint===void 0?e.stagedOAuthCredentials.get(r):void 0;o&&Ye({state:e,domain:r,epoch:o.epoch});let s={epoch:cA(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 sg(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ye({state:t,domain:r,epoch:n.epoch});for(let r of t.pendingRegistryCredentialDomains)e.has(r)||(t.pendingRegistryCredentialDomains.delete(r),t.stagedOAuthCredentials.delete(r));for(let r of t.stagedOAuthCredentials.keys())e.has(r)||t.stagedOAuthCredentials.delete(r);for(let r of t.bootOAuthCredentialBuffer?.keys()??[]){let n=r.split("\0",1)[0];!e.has(r)&&!Ie(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);ca({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function uA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||D(e,r.name)?.owner.kind==="local")return;Tr(e);let n=He(r.id),o=iA(r),i=sA({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=ca({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 ag(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=dn(r),s=e.registryCredentialIntents.get(i);if(!s||!e.pendingRegistryCredentialDomains.has(i))return;let a=e.oauthCredentialRevisions.get(r.domain),c=e.stagedOAuthCredentials.get(i),d=c?.intentEpoch===s.epoch&&c.configFingerprint===s.configFingerprint?og(c.credential,r.domain):void 0,l=a===void 0?void 0:kr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&kr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function 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)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),at(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function 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(Qm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function fA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();ng(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return or(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&Ie(s.split("\0",1)[0]))return or(e,s),a}function pA(t){let{config:e,pi:r,buffered:n}=t;Xu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Xu.info("MCP OAuth boot credential replayed",{hasRegistryConfigId:e.id!==void 0,registryOwned:e.registrySource!==void 0,visibility:"public"});let o={[e.name]:n.credential};r.events.emit(Qm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function hA(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 mA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=oA(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 gA(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 hA({state:e,config:r,previousConfig:i})}catch(h){throw mA({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=fA({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 Ar(t){let{state:e,config:r,pi:n}=t;if(r.id===void 0||r.registrySource===void 0)return Promise.resolve(!0);let o=e.statusFailureCategories.get(r.name),i=uA({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=rA(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 gA({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 TA}from"@augmentcode/auggie-v2";import{homedir as cg}from"node:os";import{sep as yA}from"node:path";var Qu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},vA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,_A=/\\\$\{/g,SA=new Set(["workspaceFolder","augmentToken"]),ug="${workspaceFolder}";function dg(t,e){return t.includes(ug)?t.split(ug).join(e):t}function lg(t,e){return t.includes("${")?t.replace(vA,(n,o,i)=>{if(SA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Qu(o)}).replace(_A,"${"):t}function wA(t){return t.startsWith("~")?t==="~"?cg():t.startsWith("~/")||t.startsWith(`~${yA}`)?cg()+t.slice(1):t:t}function ed(t,e,r){return wA(lg(dg(t,e),r))}function Xn(t,e,r){return lg(dg(t,e),r)}function fg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var bA="$augment-";function RA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(bA)?i:Xn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:RA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:ed(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?fg(t.env,e,r):void 0,cwd:t.cwd?ed(t.cwd,e,r):e}}import{readFileSync as PA}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 CA(t){if(!t)return;let e={};for(let[r,n]of Object.entries(t))n!=null&&(e[r]=String(n));return Object.keys(e).length>0?e:void 0}function eo(t,e){let r=Qn(e);if(!r)throw new Tt(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new Tt(`MCP server "${t}" has type "${r}" but no 'url' property`);return{type:r,name:e.name??t,disabled:e.disabled,url:e.url,headers:e.headers,auth:e.auth==="oauth"?"oauth":void 0,timeoutMs:e.timeoutMs}}let n=e.command;if(!n)throw new Tt(`MCP server "${t}" has type "stdio" but no 'command' property`);let o=(e.args??[]).map(a=>String(a)),i=e.useShellInterpolation??!0,s=i&&o.length>0?`${n} ${o.join(" ")}`:n;return{type:"stdio",name:e.name??t,disabled:e.disabled,command:s,args:i?[]:o,env:CA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var mg=t=>PA(t,"utf8");function ua(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function pg(t){return ua(t)&&("command"in t||"url"in t)}function rd(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function hg(t,e){return rd(t.name)??e}function td(t,e){let r=Qn(t);if(r==="http"||r==="sse")return rd(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return rd(t.name,t.title,n)??e}function xA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[td(n,String(r)),n]});if(ua(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[td(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ua(n))return Object.entries(n).map(([o,i])=>{let s=i;return[hg(s,o),s]})}if(pg(t)){let r=t;return[[td(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(pg))return Object.entries(t).map(([r,n])=>{if(!ua(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[hg(o,r),o]})}throw new Error("unrecognized MCP config JSON shape (expected an array of servers, a { servers|mcpServers } array/record, a single server object, or a Claude-Desktop-style record)")}function nd(t){return t instanceof Error?t.message:String(t)}function kA(t,e,r,n,o){if(r)return e;try{return n(t)}catch(i){o.push({message:`Failed to read --mcp-config file "${t}": ${nd(i)}`});return}}function EA(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=kA(t,n,o,e,r);if(s===void 0)return[];let a;try{a=JSON.parse(s)}catch(c){return r.push({message:`Failed to parse --mcp-config ${i}: ${nd(c)}`}),[]}try{return xA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${nd(c)}`}),[]}}function od(t,e=mg){let r={},n=[];for(let o of t)for(let[i,s]of EA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function id(t,e=mg){return!t||t.length===0?new Set:new Set(Object.keys(od(t,e).servers))}var AA=["global","project","local","managed"];function MA(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 $A(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 IA(t,e,r){let n=od(t);r.push(...n.diagnostics);let o=n.servers;if(!e||e.size===0)return o;for(let[i,s]of Object.entries(o)){let a=e.get(i);a!==void 0&&(o[i]={...s,disabled:a})}return o}function OA(t,e,r){let n=TA.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 $A(AA.map(o=>MA(n,o)))}function to(t,e,r,n){let o=[],i=r&&r.length>0?IA(r,n,o):OA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=eo(a,c);s.push(u.type==="stdio"?Zt(u,t):Gt(u,t))}catch(u){let d=u instanceof Tt?u.message:`Failed to normalize MCP server "${a}": ${u instanceof Error?u.message:String(u)}`;o.push({server:a,message:d})}return{servers:s,diagnostics:o}}import{setToolSource as Sg}from"@augmentcode/auggie-v2";import{logger as ZA}from"@hermes/logger";import{Type as BA}from"@sinclair/typebox";var da=Symbol.for("__pi_mcp_state__");function zA(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 NA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function DA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&zA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&NA(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 LA(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&&DA(t),t.authenticationGeneration??=0,t.authenticatingServerName??=void 0,t.liveEditGenerations??=new Map,t.blockedVfsMcpNames??=new Set,t.pluginServerHosts||(t.pluginServerHosts=new Map),t.toolRegistrationsByPi??=new WeakMap,t.hostLeases??=new Map,t.hostLeaseRevisions??=new Map,t.expectedCredentialDomains??=new Map;for(let[r,n]of t.servers)n.config!==void 0&&ee(t,r,n);t.pluginReconcileQueue??=Promise.resolve(),t.mcpAttachDisabled??=!1,t.mcpAttachCloudSignaled??=!1,t.attachResolvers??=new Map,t.attachResultListenerBound??=!1,t.cloudModeListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function fi(t,e){for(;;){let r=t.missingHostRemovals.get(e);if(!r)return;try{await r.promise}catch{}if(t.missingHostRemovals.get(e)===r)return}}function ro(t){let{state:e,configId:r,generation:n}=t;e.attachmentCommandGenerations??=new Map,e.attachmentCommandInFlightGenerations??=new Map,e.attachmentCommandAppliedGenerations??=new Map;let o=e.attachmentCommandGenerations.get(r)??0;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o===0:n<o||n===e.attachmentCommandInFlightGenerations.get(r)||n===e.attachmentCommandAppliedGenerations.get(r)?!1:(e.attachmentCommandGenerations.set(r,n),e.attachmentCommandInFlightGenerations.set(r,n),!0)}function sd(t){let{state:e,configId:r,generation:n}=t;typeof n!="number"||n<=0||(e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r),e.attachmentCommandGenerations?.get(r)===n&&(e.attachmentCommandAppliedGenerations??=new Map,e.attachmentCommandAppliedGenerations.set(r,n)))}function la(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function fa(t){let{state:e,configId:r,generation:n,operation:o,wasApplied:i}=t;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o:o.then(s=>(i()?sd({state:e,configId:r,generation:n}):la({state:e,configId:r,generation:n}),s),s=>{throw la({state:e,configId:r,generation:n}),s})}function te(){let t=globalThis;if(t[da])return LA(t[da]),t[da];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[da]=e,e}var gg=Symbol.for("__hermes_mcp_tool_registry__"),jA=Symbol.for("__hermes_mcp_extension_factory__");function ad(){let t=globalThis;return t[gg]??=new Map,t[gg]}function yg(t){return ad().get(t)}function Mr(t){ad().set(t.name,t)}function no(t,e){let r=ad();(e===void 0||r.get(t)===e)&&r.delete(t)}function vg(t){Reflect.set(t,jA,!0)}function pa(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 FA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function UA(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 qA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
- `).trim()}function cd(t,e,r){if(t.isError){let o=qA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=UA(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 _g(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(pa(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=FA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return cd(o,t.serverName,r)}var HA=/[^a-zA-Z0-9_-]/g;function ud(t){return t.replace(HA,"_")}function GA(t,e){let r=ud(e),n=ud(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var $r=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=GA(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=`_${ud(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var ha=ZA.child({prefix:"pi-mcp"});function ma(){return te().toolRegistrationsByPi}function wg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=BA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){ha.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}ha.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)=>_g({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 dd(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),WA(t,e,n,r,o)}function WA(t,e,r,n,o){let i=te();for(let[s,a]of e.byServer){if(a===n||!a.registeredNames.has(r))continue;let c=i.servers.get(s);if(c===void 0||c!==a.host||c.status!=="success"||i.serverGenerations?.get(s)!==a.generation)continue;let u=new $r(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=wg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;Sg(r,"mcp"),t.registerTool(p),Mr(p),a.definitionsByName??=new Map,a.definitionsByName.set(r,p),e.ownerByToolName.set(r,a),o?t.setActiveTools([...new Set([...t.getActiveTools(),r])]):t.setActiveTools(t.getActiveTools().filter(h=>h!==r));return}}}function VA(t,e){let r=ma(),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)dd(t,n,i,a);let s={generation:o,host:e,map:new $r(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function ld(t,e){let{registration:r,replaced:n}=VA(t,e),o=new Set(r.registeredNames),i=new $r(e.name);r.map=i,r.registeredNames.clear();let s=e.name,a=0,c=[];for(let d of e.listTools()){let{namespaced:l,collision:f}=i.put(d.name);if(f){let h=i.resolve(l),m=e.suppressesProviderDiagnostics?"MCP stdio tool name collision; provider diagnostics are suppressed. Only the first tool will be available.":`Tool name collision detected in MCP server "${s}": "${d.name}" and "${h}" both map to "${l}". Only the first tool will be available.`,g=te();g.diagnostics.some(w=>w.server===s&&(w.message===m||w.message.includes(`both map to "${l}"`)))||(ha.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=wg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(Sg(l,"mcp"),t.registerTool(p),Mr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ma().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ma().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&dd(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&ha.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function fd(t,e,r){let n=ma().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)dd(t,n,o,i);return n.byServer.delete(e.name),!0}function bg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&ld(t,r)}import{getToolSource as nM}from"@augmentcode/auggie-v2";import{Type as KA}from"@sinclair/typebox";var JA=!1,Rg=2e4;function YA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function XA(t){let e=0;for(let r of t.servers.values())e+=QA(r);return e}function QA(t){if(t.status!=="success")return 0;let e=new $r(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||eM(n.inputSchema)&&(r+=YA(n))}return r}function eM(t){try{return KA.Unsafe(t??{}),!0}catch{return!1}}function tM(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:JA}function rM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:Rg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:Rg}function Cg(t){return tM(t)?XA(t)>=rM(t):!1}var oM="AUGGIE_ENABLE_TOOL_SEARCH",iM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[oM]==="1"}function Ir(t){return pi()||t.toolSearchLatched?!0:Cg(t)?(t.toolSearchLatched=!0,!0):!1}function ga(t){let e=t.getActiveTools(),r=e.filter(n=>!sM(n)||iM.has(n));r.length!==e.length&&t.setActiveTools(r)}function sM(t){return nM(t)==="mcp"}import{setToolSource as $g}from"@augmentcode/auggie-v2";import{logger as xM}from"@hermes/logger";import{Type as Ig}from"@sinclair/typebox";import{logger as aM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Or={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Pg=aM.child({prefix:"pi-mcp"}),cM=5e3,uM=1,dM=2,lM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),fM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function pM(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 hM(t){return t===uM||typeof t=="string"&&lM.has(t)?"available":t===dM||typeof t=="string"&&fM.has(t)?"opt_in_required":"unknown"}function mM(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:pM(t.auth_type),state:hM(t.state)}}function pd(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 ya(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return ya(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!pd(t,r)):[]}async function xg(t,e,r){let n=t.apiUrl.replace(/\/+$/,""),o=e??fetch;try{let i=await o(`${n}/settings/get-mcp-catalog-metadata`,{method:"POST",headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({product_type:Or.UNSPECIFIED}),signal:AbortSignal.timeout(r??cM)});if(!i.ok)return Pg.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=mM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Pg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var gM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",yM=`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 z1={keyword:"dependencies",type:"object",schemaType:"object",error:Xt.error,code(t){let[e,r]=N1(t);AC(t,e),MC(t,r)}};function N1({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 AC(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,ks.propertyInData)(r,n,s,o.opts.ownProperties);t.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,ks.checkReportMissingProp)(t,u)}):(r.if((0,Hp._)`${c} && (${(0,ks.checkMissingProp)(t,a,i)})`),(0,ks.reportMissingProp)(t,i),r.else())}}Xt.validatePropertyDeps=AC;function MC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,O1.alwaysValidSchema)(i,e[a])||(r.if((0,ks.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},s);t.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),t.ok(s))}Xt.validateSchemaDeps=MC;Xt.default=z1});var OC=P(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var IC=j(),D1=B(),L1={message:"property name must be valid",params:({params:t})=>(0,IC._)`{propertyName: ${t.propertyName}}`},j1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:L1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,D1.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,IC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Gp.default=j1});var Bp=P(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var Bc=bt(),Dt=j(),F1=hr(),Wc=B(),U1={message:"must NOT have additional properties",params:({params:t})=>(0,Dt._)`{additionalProperty: ${t.additionalProperty}}`},q1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:U1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,Wc.alwaysValidSchema)(s,r))return;let u=(0,Bc.allSchemaProperties)(n.properties),d=(0,Bc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,Dt._)`${i} === ${F1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?h(g):e.if(f(g),()=>h(g))})}function f(g){let v;if(u.length>8){let w=(0,Wc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Bc.isOwnProperty)(e,w,g)}else u.length?v=(0,Dt.or)(...u.map(w=>(0,Dt._)`${g} === ${w}`)):v=Dt.nil;return d.length&&(v=(0,Dt.or)(v,...d.map(w=>(0,Dt._)`${(0,Bc.usePattern)(t,w)}.test(${g})`))),(0,Dt.not)(v)}function p(g){e.code((0,Dt._)`delete ${o}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,Wc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(m(g,v,!1),e.if((0,Dt.not)(v),()=>{t.reset(),p(g)})):(m(g,v),a||e.if((0,Dt.not)(v),()=>e.break()))}}function m(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Wc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Zp.default=q1});var DC=P(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var H1=ps(),zC=bt(),Wp=B(),NC=Bp(),G1={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&&NC.default.code(new H1.KeywordCxt(i,NC.default,"additionalProperties"));let s=(0,zC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Wp.mergeEvaluated.props(e,(0,Wp.toHash)(s),i.props));let a=s.filter(l=>!(0,Wp.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,zC.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)}}};Vp.default=G1});var UC=P(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var LC=bt(),Vc=j(),jC=B(),FC=B(),Z1={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,LC.allSchemaProperties)(r),c=a.filter(m=>(0,jC.alwaysValidSchema)(i,r[m]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof Vc.Name)&&(i.props=(0,FC.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,jC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Vc._)`${(0,LC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:FC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Vc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Vc.not)(d),()=>e.break())})})}}};Kp.default=Z1});var qC=P(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var B1=B(),W1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,B1.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"}};Jp.default=W1});var HC=P(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var V1=bt(),K1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:V1.validateUnion,error:{message:"must match a schema in anyOf"}};Yp.default=K1});var GC=P(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var Kc=j(),J1=B(),Y1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Kc._)`{passingSchemas: ${t.passing}}`},X1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Y1,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,J1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Kc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Kc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Kc.Name)})})}}};Xp.default=X1});var ZC=P(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var Q1=B(),eF={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,Q1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Qp.default=eF});var VC=P(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var Jc=j(),WC=B(),tF={message:({params:t})=>(0,Jc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Jc._)`{failingKeyword: ${t.ifClause}}`},rF={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:tF,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,WC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=BC(n,"then"),i=BC(n,"else");if(!o&&!i)return;let s=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&i){let d=e.let("ifClause");t.setParams({ifClause:d}),e.if(a,u("then",d),u("else",d))}else o?e.if(a,u("then")):e.if((0,Jc.not)(a),u("else"));t.pass(s,()=>t.error(!0));function c(){let d=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(d)}function u(d,l){return()=>{let f=t.subschema({keyword:d},a);e.assign(s,a),t.mergeValidEvaluated(f,s),l?e.assign(l,(0,Jc._)`${d}`):t.setParams({ifClause:d})}}}};function BC(t,e){let r=t.schema[e];return r!==void 0&&!(0,WC.alwaysValidSchema)(t,r)}eh.default=rF});var KC=P(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var nF=B(),oF={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,nF.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};th.default=oF});var JC=P(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var iF=Lp(),sF=xC(),aF=jp(),cF=EC(),uF=TC(),dF=$C(),lF=OC(),fF=Bp(),pF=DC(),hF=UC(),mF=qC(),gF=HC(),yF=GC(),vF=ZC(),_F=VC(),SF=KC();function wF(t=!1){let e=[mF.default,gF.default,yF.default,vF.default,_F.default,SF.default,lF.default,fF.default,dF.default,pF.default,hF.default];return t?e.push(sF.default,cF.default):e.push(iF.default,aF.default),e.push(uF.default),e}rh.default=wF});var YC=P(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});var Re=j(),bF={message:({schemaCode:t})=>(0,Re.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Re._)`{format: ${t}}`},RF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:bF,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:s,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:d,self:l}=a;if(!c.validateFormats)return;o?f():p();function f(){let h=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),m=r.const("fDef",(0,Re._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,Re._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,Re._)`${m}.type || "string"`).assign(v,(0,Re._)`${m}.validate`),()=>r.assign(g,(0,Re._)`"string"`).assign(v,m)),t.fail$data((0,Re.or)(w(),b()));function w(){return c.strictSchema===!1?Re.nil:(0,Re._)`${s} && !${v}`}function b(){let R=d.$async?(0,Re._)`(${m}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Re._)`${v}(${n})`,_=(0,Re._)`(typeof ${v} == "function" ? ${R} : ${v}.test(${n}))`;return(0,Re._)`${v} && ${v} !== true && ${g} === ${e} && !${_}`}}function p(){let h=l.formats[i];if(!h){w();return}if(h===!0)return;let[m,g,v]=b(h);m===e&&t.pass(R());function w(){if(c.strictSchema===!1){l.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function b(_){let C=_ instanceof RegExp?(0,Re.regexpCode)(_):c.code.formats?(0,Re._)`${c.code.formats}${(0,Re.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:_,code:C});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Re._)`${I}.validate`]:["string",_,I]}function R(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!d.$async)throw new Error("async format in sync schema");return(0,Re._)`await ${v}(${n})`}return typeof g=="function"?(0,Re._)`${v}(${n})`:(0,Re._)`${v}.test(${n})`}}}};nh.default=RF});var XC=P(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var CF=YC(),PF=[CF.default];oh.default=PF});var QC=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 tP=P(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var xF=cC(),kF=bC(),EF=JC(),TF=XC(),eP=QC(),AF=[xF.default,kF.default,(0,EF.default)(),TF.default,eP.metadataVocabulary,eP.contentVocabulary];ih.default=AF});var nP=P(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.DiscrError=void 0;var rP;(function(t){t.Tag="tag",t.Mapping="mapping"})(rP||(Yc.DiscrError=rP={}))});var iP=P(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});var Do=j(),sh=nP(),oP=$c(),MF=hs(),$F=B(),IF={message:({params:{discrError:t,tagName:e}})=>t===sh.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}}`},OF={keyword:"discriminator",type:"object",schemaType:"object",error:IF,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:sh.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:sh.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,$F.schemaHasRulesButRef)(_,i.self.RULES)){let I=_.$ref;if(_=oP.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),_ instanceof oP.SchemaEnv&&(_=_.schema),_===void 0)throw new MF.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]=_}}}};ah.default=OF});var sP=P((Y3,zF)=>{zF.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 uh=P((le,ch)=>{"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 NF=rC(),DF=tP(),LF=iP(),aP=sP(),jF=["/properties"],Xc="http://json-schema.org/draft-07/schema",Lo=class extends NF.default{_addVocabularies(){super._addVocabularies(),DF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(LF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(aP,jF):aP;this.addMetaSchema(e,Xc,!1),this.refs["http://json-schema.org/schema"]=Xc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Xc)?Xc:void 0)}};le.Ajv=Lo;ch.exports=le=Lo;ch.exports.Ajv=Lo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Lo;var FF=ps();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return FF.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 UF=Ac();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return UF.default}});var qF=hs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return qF.default}})});var mP=P(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.formatNames=er.fastFormats=er.fullFormats=void 0;function Qt(t,e){return{validate:t,compare:e}}er.fullFormats={date:Qt(lP,ph),time:Qt(lh(!0),hh),"date-time":Qt(cP(!0),pP),"iso-time":Qt(lh(),fP),"iso-date-time":Qt(cP(),hP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:VF,"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:tU,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:KF,int32:{type:"number",validate:XF},int64:{type:"number",validate:QF},float:{type:"number",validate:dP},double:{type:"number",validate:dP},password:!0,binary:!0};er.fastFormats={...er.fullFormats,date:Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,ph),time:Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,hh),"date-time":Qt(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,pP),"iso-time":Qt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,fP),"iso-date-time":Qt(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,hP),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};er.formatNames=Object.keys(er.fullFormats);function HF(t){return t%4===0&&(t%100!==0||t%400===0)}var GF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,ZF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function lP(t){let e=GF.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&&HF(r)?29:ZF[n])}function ph(t,e){if(t&&e)return t>e?1:t<e?-1:0}var dh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function lh(t){return function(r){let n=dh.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 hh(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 fP(t,e){if(!(t&&e))return;let r=dh.exec(t),n=dh.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 fh=/t|\s/i;function cP(t){let e=lh(t);return function(n){let o=n.split(fh);return o.length===2&&lP(o[0])&&e(o[1])}}function pP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function hP(t,e){if(!(t&&e))return;let[r,n]=t.split(fh),[o,i]=e.split(fh),s=ph(r,o);if(s!==void 0)return s||hh(n,i)}var BF=/\/|:/,WF=/^(?:[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 VF(t){return BF.test(t)&&WF.test(t)}var uP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function KF(t){return uP.lastIndex=0,uP.test(t)}var JF=-(2**31),YF=2**31-1;function XF(t){return Number.isInteger(t)&&t<=YF&&t>=JF}function QF(t){return Number.isInteger(t)}function dP(){return!0}var eU=/[^\\]\\Z/;function tU(t){if(eU.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var gP=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var rU=uh(),Lt=j(),Qr=Lt.operators,Qc={formatMaximum:{okStr:"<=",ok:Qr.LTE,fail:Qr.GT},formatMinimum:{okStr:">=",ok:Qr.GTE,fail:Qr.LT},formatExclusiveMaximum:{okStr:"<",ok:Qr.LT,fail:Qr.GTE},formatExclusiveMinimum:{okStr:">",ok:Qr.GT,fail:Qr.LTE}},nU={message:({keyword:t,schemaCode:e})=>(0,Lt.str)`should be ${Qc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Lt._)`{comparison: ${Qc[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(Qc),type:"string",schemaType:"string",$data:!0,error:nU,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 rU.KeywordCxt(i,a.RULES.all.format.definition,"format");c.$data?u():d();function u(){let f=e.scopeValue("formats",{ref:a.formats,code:s.code.formats}),p=e.const("fmt",(0,Lt._)`${f}[${c.schemaCode}]`);t.fail$data((0,Lt.or)((0,Lt._)`typeof ${p} != "object"`,(0,Lt._)`${p} instanceof RegExp`,(0,Lt._)`typeof ${p}.compare != "function"`,l(p)))}function d(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${o}": format "${f}" does not define "compare" function`);let h=e.scopeValue("formats",{key:f,ref:p,code:s.code.formats?(0,Lt._)`${s.code.formats}${(0,Lt.getProperty)(f)}`:void 0});t.fail$data(l(h))}function l(f){return(0,Lt._)`${f}.compare(${r}, ${n}) ${Qc[o].fail} 0`}},dependencies:["format"]};var oU=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=oU});var SP=P((Es,_P)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});var Uo=mP(),iU=gP(),mh=j(),yP=new mh.Name("fullFormats"),sU=new mh.Name("fastFormats"),gh=(t,e={keywords:!0})=>{if(Array.isArray(e))return vP(t,e,Uo.fullFormats,yP),t;let[r,n]=e.mode==="fast"?[Uo.fastFormats,sU]:[Uo.fullFormats,yP],o=e.formats||Uo.formatNames;return vP(t,o,r,n),e.keywords&&(0,iU.default)(t),t};gh.get=(t,e="full")=>{let n=(e==="fast"?Uo.fastFormats:Uo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function vP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,mh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}_P.exports=Es=gh;Object.defineProperty(Es,"__esModule",{value:!0});Es.default=gh});var KP=P((I8,VP)=>{VP.exports=WP;WP.sync=LU;var ZP=Rr("fs");function DU(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 BP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:DU(e,r)}function WP(t,e,r){ZP.stat(t,function(n,o){r(n,n?!1:BP(o,t,e))})}function LU(t,e){return BP(ZP.statSync(t),t,e)}});var ex=P((O8,QP)=>{QP.exports=YP;YP.sync=jU;var JP=Rr("fs");function YP(t,e,r){JP.stat(t,function(n,o){r(n,n?!1:XP(o,e))})}function jU(t,e){return XP(JP.statSync(t),e)}function XP(t,e){return t.isFile()&&FU(t,e)}function FU(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 rx=P((N8,tx)=>{var z8=Rr("fs"),du;process.platform==="win32"||global.TESTING_WINDOWS?du=KP():du=ex();tx.exports=zh;zh.sync=UU;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)})})}du(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function UU(t,e){try{return du.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ux=P((D8,cx)=>{var Ko=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",nx=Rr("path"),qU=Ko?";":":",ox=rx(),ix=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),sx=(t,e)=>{let r=e.colon||qU,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}},ax=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=sx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(ix(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=nx.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];ox(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)},HU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=sx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=nx.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(ox.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 ix(t)};cx.exports=ax;ax.sync=HU});var lx=P((L8,Nh)=>{"use strict";var dx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Nh.exports=dx;Nh.exports.default=dx});var mx=P((j8,hx)=>{"use strict";var fx=Rr("path"),GU=ux(),ZU=lx();function px(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=GU.sync(t.command,{path:r[ZU({env:r})],pathExt:e?fx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=fx.resolve(o?t.options.cwd:"",s)),s}function BU(t){return px(t)||px(t,!0)}hx.exports=BU});var gx=P((F8,Lh)=>{"use strict";var Dh=/([()\][%!^"`<>&|;, *?])/g;function WU(t){return t=t.replace(Dh,"^$1"),t}function VU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Dh,"^$1"),e&&(t=t.replace(Dh,"^$1")),t}Lh.exports.command=WU;Lh.exports.argument=VU});var vx=P((U8,yx)=>{"use strict";yx.exports=/^#!(.*)/});var Sx=P((q8,_x)=>{"use strict";var KU=vx();_x.exports=(t="")=>{let e=t.match(KU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var bx=P((H8,wx)=>{"use strict";var jh=Rr("fs"),JU=Sx();function YU(t){let r=Buffer.alloc(150),n;try{n=jh.openSync(t,"r"),jh.readSync(n,r,0,150,0),jh.closeSync(n)}catch{}return JU(r.toString())}wx.exports=YU});var xx=P((G8,Px)=>{"use strict";var XU=Rr("path"),Rx=mx(),Cx=gx(),QU=bx(),eq=process.platform==="win32",tq=/\.(?:com|exe)$/i,rq=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function nq(t){t.file=Rx(t);let e=t.file&&QU(t.file);return e?(t.args.unshift(t.file),t.command=e,Rx(t)):t.file}function oq(t){if(!eq)return t;let e=nq(t),r=!tq.test(e);if(t.options.forceShell||r){let n=rq.test(e);t.command=XU.normalize(t.command),t.command=Cx.command(t.command),t.args=t.args.map(i=>Cx.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 iq(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:oq(n)}Px.exports=iq});var Tx=P((Z8,Ex)=>{"use strict";var Fh=process.platform==="win32";function Uh(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(!Fh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=kx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function kx(t,e){return Fh&&t===1&&!e.file?Uh(e.original,"spawn"):null}function aq(t,e){return Fh&&t===1&&!e.file?Uh(e.original,"spawnSync"):null}Ex.exports={hookChildProcess:sq,verifyENOENT:kx,verifyENOENTSync:aq,notFoundError:Uh}});var $x=P((B8,Jo)=>{"use strict";var Ax=Rr("child_process"),qh=xx(),Hh=Tx();function Mx(t,e,r){let n=qh(t,e,r),o=Ax.spawn(n.command,n.args,n.options);return Hh.hookChildProcess(o,n),o}function cq(t,e,r){let n=qh(t,e,r),o=Ax.spawnSync(n.command,n.args,n.options);return o.error=o.error||Hh.verifyENOENTSync(o.status,n),o}Jo.exports=Mx;Jo.exports.spawn=Mx;Jo.exports.sync=cq;Jo.exports._parse=qh;Jo.exports._enoent=Hh});var Lx=P(Zh=>{"use strict";var zx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,pq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Nx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,hq=/\\([\u000b\u0020-\u00ff])/g,mq=/([\\"])/g,Dx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Zh.format=gq;Zh.parse=yq;function gq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Dx.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],!Nx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+_q(e[o])}return n}function yq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?vq(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(!Dx.test(n))throw new TypeError("invalid media type");var o=new Sq(n.toLowerCase());if(r!==-1){var i,s,a;for(zx.lastIndex=r;s=zx.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 vq(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 _q(t){var e=String(t);if(Nx.test(e))return e;if(e.length>0&&!pq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(mq,"\\$1")+'"'}function Sq(t){this.parameters=Object.create(null),this.type=t}});import{logger as f4}from"@hermes/logger";import{logger as VH}from"@hermes/logger";var RT="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(RT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as wH}from"@augmentcode/auggie-v2";import{logger as bH}from"@hermes/logger";import{logger as QT}from"@hermes/logger";import{logger as PT}from"@hermes/logger";function CT(t,e,r){let n=r?.get(t.name);return n!==void 0?n.host===t&&n.owner.kind==="plugin":e?.get(t.name)===t}function Cr(t,e,r){let n=r?.get(t.name);if(n?.host===t)return n.owner.kind;let o=t.config;return o?.vfsSource!==void 0?"vfs":o?.registrySource!==void 0?"registry":CT(t,e,r)?"plugin":"local"}function xT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Fm=PT.child({prefix:"pi-mcp"}),kT="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 ET(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=ft(t,e);if(r?.serverGeneration===n.serverGeneration&&r.mcpConfigId===n.mcpConfigId&&r.credentialRevision===n.credentialRevision&&r.credentialRevisionDomain===n.credentialRevisionDomain)return r.category;t.statusFailureCategories.delete(e),t.authRefreshNeededReportKeys?.delete(e)}var na=3e4;function TT(t){switch(t.status){case"success":return"connected";case"failed":case"auth_required":return"failed";case"initializing":{let e=t.connectStartedAt;return e!==void 0&&Date.now()-e>=na?"failed":void 0}default:return}}var Um="authentication required",AT="Authentication refresh is pending in the backend; retry shortly.",MT="timed out connecting after 30s",$T="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",IT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",OT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",zT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",NT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",DT="Server was not started: this session's Space policy does not allow it.",LT="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 FT(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)?IT:$T,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",...qT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}UT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function UT(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=Hm(e,a);if(u===void 0)continue;let d=e.registryConfigNamesById.get(a)??c.serverName;s.has(d)||(o.add(a),r.push({name:d,source:"registry",status:"failed",...u,mcpConfigId:a}),i.add(d))}}function qm(t,e){let r=new Map;for(let[n,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let i=o;typeof i.category=="string"&&typeof i.config_id=="string"&&i.config_id!==""&&r.set(i.config_id,{category:i.category,serverName:n})}t.oauthFailureCategoriesByConfigId=r}function Hm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:NT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:DT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:LT,failureCategory:"share_identity_excluded"};default:return}}function qT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:jT,failureCategory:"auth_terminal"};let i=Hm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?zT:OT,failureCategory:"configuration"}}function HT(t,e){return e!==void 0?e.isAuthError?Um:e.error:t.status==="initializing"?MT:t.lastError??(t.status==="auth_required"?Um:void 0)}function Gm(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 GT(t,e,r){if(Gm(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 ZT(t,e){let r=TT(t);if(r===void 0)return;let n=ET(e,t.name),o=r==="connected"?xT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:Cr(t,e.pluginServerHosts,e.hostLeases),status:r,transport:t.config.type,tools:t.suppressesProviderDiagnostics?[]:t.tools.map(u=>u.name)},s=t.config.id;s!==void 0&&(i.mcpConfigId=s,e.dynamicallyAddedConfigIds.has(s)&&(i.dynamicallyAdded=!0));let a=Gm(t,e);a?.revision!==void 0&&a.domain!==void 0&&(i.credentialRevision=a.revision,i.credentialRevisionDomain=a.domain);let c=GT(t,e,r==="failed");return c!==void 0&&(i.serverGeneration=c),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?AT:HT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient")),i}function BT(t){let e=[];for(let r of t.servers.values()){let n=ZT(r,t);n!==void 0&&e.push(n)}return FT(t,e),e}function N(t,e){try{let r=BT(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(kT,o),Fm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Fm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var oa={local:4,registry:3,plugin:2,vfs:1};function qt(t){return t.hostLeases??=new Map,t.hostLeases}function WT(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 Zm(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function Zu(t,e){let r=WT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ia(t,e,r){if(r.kind==="registry"){si(t).set(e,{kind:"domain",domain:r.identity});return}si(t).set(e,{kind:"blocked"})}function Bu(t,e,r){r&&t.servers.get(e)===r&&t.servers.delete(e),r&&t.pluginServerHosts.get(e)===r&&(t.pluginServerHosts.delete(e),t.pluginServerNames.delete(e))}function Pr(t,e){return t.registrySource!==void 0?{kind:"registry",identity:`user:${t.id??t.name}`}:t.vfsSource!==void 0?{kind:"vfs",identity:t.id??t.name}:{kind:e??"local",identity:t.id??t.name}}function ee(t,e,r){let n=qt(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Pr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:Zu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ia(t,e,a),c}function Bm(t){let{state:e,name:r,host:n}=t,o=qt(e),i=o.get(r);if(!i||i.host!==n||i.owner.kind!=="local"||e.servers.get(r)!==n)return;let s={owner:{kind:"plugin",identity:n.config.id??r},revision:Zu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ia(e,r,s.owner),s}function ci(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=qt(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=oa[n.kind]>oa[a.owner.kind],f=oa[n.kind]===oa[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Zm(a):void 0;Bu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:Zu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ia(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Wu(t){if(!t)return;let e=await t.teardown;if(e.status==="failed")throw e.error instanceof Error?e.error:new Error(String(e.error))}function _e(t){let{state:e,name:r,retirement:n,result:o}=t;if(n.settled)return!1;n.settled=!0,n.result=o;let s=qt(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,si(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function sa(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);return!s||s.revision!==o||!ai(s.owner,n)||s.host!==void 0||s.retirement!==void 0?!1:(s.host=i,e.servers.set(r,i),n.kind==="plugin"?(e.pluginServerNames.add(r),e.pluginServerHosts.set(r,i)):(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),!0)}function ct(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e).get(r);if(!s||s.revision!==o||!ai(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Zm(s);if(a)return Bu(e,r,i),s.host=void 0,s.retirement=a,a}function Wm(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=qt(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!ai(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!ai(s.owner,n)||s.revision!==o.incumbent.revision?(ia(e,r,s.owner),!0):(i.delete(r),si(e).set(r,{kind:"blocked"}),!0))}function ke(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=qt(e),a=s.get(r);return!a||a.revision!==o||!ai(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Bu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),si(e).set(r,{kind:"blocked"}),!0)}function D(t,e){return qt(t).get(e)}function Vu(t,e,r){let n=qt(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Vm(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function xr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&Vm(t.url)===Vm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Yn=class{_tokens=new Map;_authRequired=new Set;_retiredCredentials=new Set;_credentialRetirementGenerations=new Map;_credentialIdentities=new Map;get(e){return this._tokens.get(e)}commit(e,r,n){this._tokens.set(e,r),this._authRequired.delete(e),this._retiredCredentials.delete(e),n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e)}hasCredentialIdentity(e,r){return xr(this._credentialIdentities.get(e),r)}reconcileCredentialIdentity(e,r,n){return this._tokens.get(e)!==r||this._retiredCredentials.has(e)?!1:(n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e),!0)}set(e,r,n){this.commit(e,r,n)}persist(e,r,n){return Promise.resolve(void 0)}captureAuthenticatedIdentityVersion(e){return Promise.resolve(void 0)}captureRefreshIdentityVersion(e){return Promise.resolve(void 0)}persistAuthenticated(e,r,n,o){return this.persist(e,r,n)}persistRefresh(e,r,n,o){return this.persist(e,r,n)}restoreAfterSupersededAuthentication(e,r,n,o,i,s){return this.persist(e,n,s)}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async setAndPersist(e,r,n){await this.persist(e,r,n),this.set(e,r,n)}snapshot(){return{tokens:new Map(this._tokens),authRequired:new Set(this._authRequired),retiredCredentials:new Set(this._retiredCredentials),credentialRetirementGenerations:new Map(this._credentialRetirementGenerations),credentialIdentities:new Map([...this._credentialIdentities].map(([e,r])=>[e,{...r}]))}}seed(e){for(let[r,n]of e.tokens)this._tokens.set(r,n);for(let r of e.authRequired)this._authRequired.add(r);for(let r of e.retiredCredentials??[])this._retiredCredentials.add(r);for(let[r,n]of e.credentialRetirementGenerations??[])this._credentialRetirementGenerations.set(r,n);for(let[r,n]of e.credentialIdentities??[])this._credentialIdentities.set(r,{...n})}delete(e,r){this._tokens.delete(e),this._credentialIdentities.delete(e)}clearLocalCredential(e){this._tokens.delete(e),this._credentialIdentities.delete(e),this._authRequired.delete(e),this._retiredCredentials.add(e),this._credentialRetirementGenerations.set(e,(this._credentialRetirementGenerations.get(e)??0)+1)}retireCredential(e,r,n){return n?.preserveNameState||this.clearLocalCredential(e),Promise.resolve()}credentialRetirementGeneration(e){return this._credentialRetirementGenerations.get(e)??0}isCredentialRetired(e){return this._retiredCredentials.has(e)}markAuthRequired(e){this._authRequired.add(e)}isAuthRequired(e){return this._authRequired.has(e)}clearAuthRequired(e){this._authRequired.delete(e)}};function di(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Ku(t){try{return new URL(t).toString()}catch{return t}}function ui(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Ku(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function Ht(t,e){return ui(e.config)}function pt(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Ku(t.url)===Ku(e.url)}function Ju(t,e){let r=ui(t),n=ui(e);return!r||!n?pt(t,e):xr(r,n)}function Ie(t){return/^secret:(private|shared):.+/.test(t)}function Yu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function aa(t,e,r){if(r===void 0||!Ie(r))return r;let n=t.credentialRevisions?.get(e);return n?.domain===r?n.ownerDomain:void 0}function VT(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 KT(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 Km(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Yu(e,r):n!==void 0&&e!==n}function Jm(t,e,r){return r&&e!==void 0&&t!==void 0&&Yu(t,e)}function JT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Yu(i,n))}function Ym(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(KT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Km({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Km({identity:s.domain,...l})?!0:JT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function YT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ui(r);if(n!==void 0)return{id:n,name:e}}function XT(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 Xm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=aa(t,e,i),c=aa(t,e,s),u=t.servers?.get(e)?.config,d=VT({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=Ym({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=Jm(a,l,f),g=Jm(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=YT({name:e,retiredConfig:d,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,Q,{preserveNameState:R})}let _=Ym({currentConfig:t.servers?.get(e)?.config,retiredConfig:d,expectedRegistryConfigId:r,retiresRegistryIdentity:f,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:l,retiredOwnerIdentity:p,acceptedDomain:aa(t,e,t.oauthCredentialDomains?.get(e)),currentDomain:aa(t,e,t.credentialRevisions?.get(e)?.domain)}),C=v&&!_,I=!1;return t.equalRevisionRebindDomains?.delete(e),(C||m)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),I=!0),(C||g)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),I=!0),C&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),XT({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 Xm(t,e,r,n,"durable")}function li(t,e,r,n){return Xm(t,e,r,n,"session")}function ca(t){let e=[];if(Object.hasOwn(t,"credential_owner_domain")&&e.push(t.credential_owner_domain),Object.hasOwn(t,"credentialOwnerDomain")&&e.push(t.credentialOwnerDomain),e.length===0)return{kind:"absent"};if(e.some(n=>typeof n!="string"||!/^user:.+/.test(n)))return{kind:"invalid"};let r=e[0];return e.every(n=>n===r)?{kind:"valid",ownerDomain:r}:{kind:"invalid"}}function kr(t,e){let r=t.replace(/^0+(?=\d)/,""),n=e.replace(/^0+(?=\d)/,"");return r.length!==n.length?r.length<n.length?-1:1:r===n?0:r<n?-1:1}var Qm="augment:mcp-oauth-credentials",eg=300*1e3,eA=256,Xu=QT.child({prefix:"pi-mcp"}),Et=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function He(t){return`user:${t}`}function un(t){let{state:e,name:r,revision:n}=t;if(e.credentialRevisions??=new Map,e.oauthCredentialRevisions??=new Map,e.oauthCredentialDomains??=new Map,e.hostedCredentialOwnership?.delete(r),n===void 0){e.credentialRevisions.delete(r),e.oauthCredentialDomains.delete(r),e.authRefreshNeededReportKeys?.delete(r);return}let o={...n,revision:n.revision.replace(/^0+(?=\d)/,"")},i=e.credentialRevisions.get(r);e.credentialRevisions.set(r,o),(i?.revision!==o.revision||i?.domain!==o.domain)&&e.authRefreshNeededReportKeys?.delete(r);let s=e.oauthCredentialRevisions.get(o.domain);(s===void 0||kr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Er(t){let e=t.indexOf(":");if(e<=0||e===t.length-1)return t;let r=t.slice(0,e);return r!=="private"&&r!=="shared"&&r!=="recipient"&&r!=="user"&&r!=="tenant"?t:He(t.slice(e+1))}function dn(t){return t.ownerDomain??Er(t.domain)}function tg(t,e,r){let n=He(e);return r!==void 0?r===n:Ie(t)||Er(t)===n}function tA(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function rA(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 nA(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function oA(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&tA(t.credentialRevisions.get(e),r.credentialRevision)&&nA(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function iA(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 sA(t){let{state:e,config:r,domain:n}=t,o=r.id===void 0?void 0:e.registryCredentialConfigsById.get(r.id);return!o||e.sessionRemovedConfigIds.has(r.id??"")||!pt(o,r)?!1:o.name!==r.name||e.equalRevisionRebindDomains.get(r.name)===n}function Tr(t){t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.stagedOAuthCredentials??=new Map,t.equalRevisionRebindDomains??=new Map,t.bootOAuthCredentialBuffer??=new Map}function or(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function rg(t){Tr(t);let e=new Set([...t.registryCredentialConfigs.keys(),...t.registryConfigNamesById.values(),...t.oauthCredentialDomains.keys(),...t.credentialRevisions.keys(),...t.preservedCredentialIdentities?.keys()??[],...[...t.bootOAuthCredentialBuffer?.values()??[]].map(n=>n.serverName),...[...t.registryCredentialIntents.values()].flatMap(n=>n.configName?[n.configName]:[])]);for(let[n,o]of t.hostLeases)o.owner.kind==="registry"&&e.add(n);for(let n of e){let o=t.hostLeases.get(n);if(o&&o.owner.kind!=="registry")continue;t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.hostedCredentialOwnership?.delete(n),t.preservedCredentialIdentities?.delete(n),t.expectedCredentialDomains.set(n,{kind:"blocked"}),t.authRefreshNeededReportKeys?.delete(n)}let r=new Set(t.oauthCredentialDomains.values());for(let n of t.oauthCredentialRevisions.keys())r.has(n)||t.oauthCredentialRevisions.delete(n);for(let n of t.bootOAuthCredentialBuffer?.keys()??[])or(t,n);t.registryCredentialIntents.clear(),t.pendingRegistryCredentialDomains.clear(),t.stagedOAuthCredentials.clear(),t.equalRevisionRebindDomains.clear(),t.registryCredentialConfigs.clear(),t.registryCredentialConfigsById.clear(),t.registryConfigNamesById.clear(),t.mcpRestartState.clear()}function ng(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=eg)&&or(t,n)}function aA(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function og(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 ig(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;Tr(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();ng(e,a);let c=dn(n),u=Ie(c)?`${c}\0${r}`:c,d=s.get(u),l=og(d?.credential,n.domain);if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=eA&&aA(e),or(e,u);let f={serverName:r,credential:o,suppressReconnect:i,insertedAtMs:a,connectionEpoch:e.mcpConnectionEpoch,expiryTimer:void 0};s.set(u,f),f.expiryTimer=setTimeout(()=>{s.get(u)===f&&or(e,u)},eg),f.expiryTimer.unref?.(),Xu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function cA(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ye(t){let{state:e,domain:r,epoch:n,preserveFence:o=!1,preserveBootCredential:i=!1}=t;Tr(e);let s=e.registryCredentialIntents.get(r);if(!(n!==void 0&&s?.epoch!==n)){if(!o&&s?.configName){let a=e.expectedCredentialDomains.get(s.configName);a?.kind==="domain"&&a.domain===r&&e.expectedCredentialDomains.set(s.configName,{kind:"blocked"})}e.pendingRegistryCredentialDomains.delete(r),e.registryCredentialIntents.delete(r),e.stagedOAuthCredentials.delete(r),i||or(e,r)}}function ua(t){let{state:e,domain:r,forceNew:n=!1}=t;Tr(e);let o=e.registryCredentialIntents.get(r);if(o&&!n)return e.pendingRegistryCredentialDomains.add(r),{domain:r,...o};let i=o?.configFingerprint===void 0?e.stagedOAuthCredentials.get(r):void 0;o&&Ye({state:e,domain:r,epoch:o.epoch});let s={epoch:cA(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 sg(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ye({state:t,domain:r,epoch:n.epoch});for(let r of t.pendingRegistryCredentialDomains)e.has(r)||(t.pendingRegistryCredentialDomains.delete(r),t.stagedOAuthCredentials.delete(r));for(let r of t.stagedOAuthCredentials.keys())e.has(r)||t.stagedOAuthCredentials.delete(r);for(let r of t.bootOAuthCredentialBuffer?.keys()??[]){let n=r.split("\0",1)[0];!e.has(r)&&!Ie(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);ua({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function uA(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||D(e,r.name)?.owner.kind==="local")return;Tr(e);let n=He(r.id),o=iA(r),i=sA({state:e,config:r,domain:n});i||e.equalRevisionRebindDomains.delete(r.name);let s=e.registryCredentialIntents.get(n);if(s&&s.configFingerprint===void 0){s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i;let a=e.stagedOAuthCredentials.get(n);a?.intentEpoch===s.epoch&&(a.configFingerprint=o)}else s&&s.configFingerprint!==o?(Ye({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=ua({state:e,domain:n});if(s=e.registryCredentialIntents.get(n),!s||s.epoch!==a.epoch)return;s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i}return e.pendingRegistryCredentialDomains.add(n),dA({state:e,config:r,domain:n}),{domain:n,...s}}function ag(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=dn(r),s=e.registryCredentialIntents.get(i);if(!s||!e.pendingRegistryCredentialDomains.has(i))return;let a=e.oauthCredentialRevisions.get(r.domain),c=e.stagedOAuthCredentials.get(i),d=c?.intentEpoch===s.epoch&&c.configFingerprint===s.configFingerprint?og(c.credential,r.domain):void 0,l=a===void 0?void 0:kr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&kr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function 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)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),at(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function 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(Qm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function fA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();ng(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return or(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&Ie(s.split("\0",1)[0]))return or(e,s),a}function pA(t){let{config:e,pi:r,buffered:n}=t;Xu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Xu.info("MCP OAuth boot credential replayed",{hasRegistryConfigId:e.id!==void 0,registryOwned:e.registrySource!==void 0,visibility:"public"});let o={[e.name]:n.credential};r.events.emit(Qm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function hA(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 mA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=oA(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 gA(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 hA({state:e,config:r,previousConfig:i})}catch(h){throw mA({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=fA({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 Ar(t){let{state:e,config:r,pi:n}=t;if(r.id===void 0||r.registrySource===void 0)return Promise.resolve(!0);let o=e.statusFailureCategories.get(r.name),i=uA({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=rA(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 gA({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 TA}from"@augmentcode/auggie-v2";import{homedir as cg}from"node:os";import{sep as yA}from"node:path";var Qu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},vA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,_A=/\\\$\{/g,SA=new Set(["workspaceFolder","augmentToken"]),ug="${workspaceFolder}";function dg(t,e){return t.includes(ug)?t.split(ug).join(e):t}function lg(t,e){return t.includes("${")?t.replace(vA,(n,o,i)=>{if(SA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Qu(o)}).replace(_A,"${"):t}function wA(t){return t.startsWith("~")?t==="~"?cg():t.startsWith("~/")||t.startsWith(`~${yA}`)?cg()+t.slice(1):t:t}function ed(t,e,r){return wA(lg(dg(t,e),r))}function Xn(t,e,r){return lg(dg(t,e),r)}function fg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Xn(i,e,r);return n}var bA="$augment-";function RA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(bA)?i:Xn(i,e,r);return n}function Gt(t,e){let r=process.env;return{...t,url:Xn(t.url,e,r),headers:RA(t.headers,e,r)}}function Zt(t,e){let r=process.env;return{...t,command:ed(t.command,e,r),args:t.args.map(n=>Xn(n,e,r)),env:t.env?fg(t.env,e,r):void 0,cwd:t.cwd?ed(t.cwd,e,r):e}}import{readFileSync as PA}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 CA(t){if(!t)return;let e={};for(let[r,n]of Object.entries(t))n!=null&&(e[r]=String(n));return Object.keys(e).length>0?e:void 0}function eo(t,e){let r=Qn(e);if(!r)throw new Tt(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new Tt(`MCP server "${t}" has type "${r}" but no 'url' property`);return{type:r,name:e.name??t,disabled:e.disabled,url:e.url,headers:e.headers,auth:e.auth==="oauth"?"oauth":void 0,timeoutMs:e.timeoutMs}}let n=e.command;if(!n)throw new Tt(`MCP server "${t}" has type "stdio" but no 'command' property`);let o=(e.args??[]).map(a=>String(a)),i=e.useShellInterpolation??!0,s=i&&o.length>0?`${n} ${o.join(" ")}`:n;return{type:"stdio",name:e.name??t,disabled:e.disabled,command:s,args:i?[]:o,env:CA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var mg=t=>PA(t,"utf8");function da(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function pg(t){return da(t)&&("command"in t||"url"in t)}function rd(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function hg(t,e){return rd(t.name)??e}function td(t,e){let r=Qn(t);if(r==="http"||r==="sse")return rd(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return rd(t.name,t.title,n)??e}function xA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[td(n,String(r)),n]});if(da(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[td(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(da(n))return Object.entries(n).map(([o,i])=>{let s=i;return[hg(s,o),s]})}if(pg(t)){let r=t;return[[td(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(pg))return Object.entries(t).map(([r,n])=>{if(!da(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[hg(o,r),o]})}throw new Error("unrecognized MCP config JSON shape (expected an array of servers, a { servers|mcpServers } array/record, a single server object, or a Claude-Desktop-style record)")}function nd(t){return t instanceof Error?t.message:String(t)}function kA(t,e,r,n,o){if(r)return e;try{return n(t)}catch(i){o.push({message:`Failed to read --mcp-config file "${t}": ${nd(i)}`});return}}function EA(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=kA(t,n,o,e,r);if(s===void 0)return[];let a;try{a=JSON.parse(s)}catch(c){return r.push({message:`Failed to parse --mcp-config ${i}: ${nd(c)}`}),[]}try{return xA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${nd(c)}`}),[]}}function od(t,e=mg){let r={},n=[];for(let o of t)for(let[i,s]of EA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function id(t,e=mg){return!t||t.length===0?new Set:new Set(Object.keys(od(t,e).servers))}var AA=["global","project","local","managed"];function MA(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 $A(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 IA(t,e,r){let n=od(t);r.push(...n.diagnostics);let o=n.servers;if(!e||e.size===0)return o;for(let[i,s]of Object.entries(o)){let a=e.get(i);a!==void 0&&(o[i]={...s,disabled:a})}return o}function OA(t,e,r){let n=TA.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 $A(AA.map(o=>MA(n,o)))}function to(t,e,r,n){let o=[],i=r&&r.length>0?IA(r,n,o):OA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=eo(a,c);s.push(u.type==="stdio"?Zt(u,t):Gt(u,t))}catch(u){let d=u instanceof Tt?u.message:`Failed to normalize MCP server "${a}": ${u instanceof Error?u.message:String(u)}`;o.push({server:a,message:d})}return{servers:s,diagnostics:o}}import{setToolSource as Sg}from"@augmentcode/auggie-v2";import{logger as ZA}from"@hermes/logger";import{Type as BA}from"@sinclair/typebox";var la=Symbol.for("__pi_mcp_state__");function zA(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 NA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function DA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&zA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&NA(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 LA(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&&DA(t),t.authenticationGeneration??=0,t.authenticatingServerName??=void 0,t.liveEditGenerations??=new Map,t.blockedVfsMcpNames??=new Set,t.pluginServerHosts||(t.pluginServerHosts=new Map),t.toolRegistrationsByPi??=new WeakMap,t.hostLeases??=new Map,t.hostLeaseRevisions??=new Map,t.expectedCredentialDomains??=new Map;for(let[r,n]of t.servers)n.config!==void 0&&ee(t,r,n);t.pluginReconcileQueue??=Promise.resolve(),t.mcpAttachDisabled??=!1,t.mcpAttachCloudSignaled??=!1,t.attachResolvers??=new Map,t.attachResultListenerBound??=!1,t.cloudModeListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function fi(t,e){for(;;){let r=t.missingHostRemovals.get(e);if(!r)return;try{await r.promise}catch{}if(t.missingHostRemovals.get(e)===r)return}}function ro(t){let{state:e,configId:r,generation:n}=t;e.attachmentCommandGenerations??=new Map,e.attachmentCommandInFlightGenerations??=new Map,e.attachmentCommandAppliedGenerations??=new Map;let o=e.attachmentCommandGenerations.get(r)??0;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o===0:n<o||n===e.attachmentCommandInFlightGenerations.get(r)||n===e.attachmentCommandAppliedGenerations.get(r)?!1:(e.attachmentCommandGenerations.set(r,n),e.attachmentCommandInFlightGenerations.set(r,n),!0)}function sd(t){let{state:e,configId:r,generation:n}=t;typeof n!="number"||n<=0||(e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r),e.attachmentCommandGenerations?.get(r)===n&&(e.attachmentCommandAppliedGenerations??=new Map,e.attachmentCommandAppliedGenerations.set(r,n)))}function fa(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function pa(t){let{state:e,configId:r,generation:n,operation:o,wasApplied:i}=t;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o:o.then(s=>(i()?sd({state:e,configId:r,generation:n}):fa({state:e,configId:r,generation:n}),s),s=>{throw fa({state:e,configId:r,generation:n}),s})}function te(){let t=globalThis;if(t[la])return LA(t[la]),t[la];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Yn,refreshes:new Map,reconnects:new Map,missingHostRemovals:new Map,missingHostRemovalFences:new Map,reconnectDesiredGenerations:new Map,serverGenerations:new Map,configRevisions:new Map,configDesiredRevisions:new Map,configDesiredSources:new Map,credentialRevisions:new Map,oauthCredentialRevisions:new Map,oauthCredentialDomains:new Map,equalRevisionRebindDomains:new Map,preservedCredentialIdentities:new Map,stagedOAuthCredentials:new Map,bootOAuthCredentialBuffer:new Map,pendingRegistryCredentialDomains:new Set,registryCredentialIntents:new Map,registryCredentialIntentEpochs:new Map,registryCredentialFinalizationsByName:new Map,statusHostGeneration:1,statusReportSequence:0,statusFailureCategories:new Map,authRefreshNeededReportKeys:new Map,hostedCredentialOwnership:new Map,shouldProactivelyRefreshTokens:!0,backgroundRefreshIntervalId:void 0,credsListenerBound:!1,configIdsListenerBound:!1,registryGeneration:0,liveEditGenerations:new Map,attachmentCommandGenerations:new Map,attachmentCommandInFlightGenerations:new Map,attachmentCommandAppliedGenerations:new Map,mcpConfigsListenerBound:!1,embeddedRegistryConfigs:void 0,vfsListenerBound:!1,addServerListenerBound:!1,restartServerListenerBound:!1,removeServerListenerBound:!1,mcpRestartState:new Map,vfsGeneration:0,lastSuccessfulVfsMcpSignature:void 0,blockedVfsMcpNames:new Set,credentials:void 0,secretsClient:void 0,headerSecrets:{},headerSecretFailures:{},headerSecretsListenerBound:!1,featureFlagsListenerBound:!1,workspaceRoot:void 0,mcpConfigOverride:void 0,connectStarted:!1,initialConnectPromise:null,reconnecting:!1,authenticating:!1,authenticationGeneration:0,authenticatingServerName:void 0,restartHistory:new Map,dynamicallyAddedConfigIds:new Set,failedAddConfigIds:new Set,nameCollisionAddConfigIds:new Set,authFallbackDisplacedConfigIds:new Set,sessionRemovedConfigIds:new Set,selectedRegistryConfigIds:void 0,registryConfigNamesById:new Map,oauthFailureCategoriesByConfigId:void 0,registryCredentialConfigs:new Map,registryCredentialConfigsById:new Map,lastStatusReport:void 0,diagnostics:[],pluginServerSource:void 0,pluginServerNames:new Set,pluginServerHosts:new Map,pluginReconcileQueue:Promise.resolve(),sessionPluginDisabledOverrides:new Map,sessionRegistryDisabledOverrides:new Map,sessionMcpConfigDisabledOverrides:new Map,currentLoad:void 0,ui:void 0,featureFlags:void 0,toolSearchLatched:!1,mcpCatalog:void 0,mcpAttachDisabled:!1,mcpAttachCloudSignaled:!1,catalogRefreshInFlight:void 0,attachResolvers:new Map,attachResultListenerBound:!1,isCloudMode:void 0,cloudModeListenerBound:!1};return t[la]=e,e}var gg=Symbol.for("__hermes_mcp_tool_registry__"),jA=Symbol.for("__hermes_mcp_extension_factory__");function ad(){let t=globalThis;return t[gg]??=new Map,t[gg]}function yg(t){return ad().get(t)}function Mr(t){ad().set(t.name,t)}function no(t,e){let r=ad();(e===void 0||r.get(t)===e)&&r.delete(t)}function vg(t){Reflect.set(t,jA,!0)}function ha(t,e,r,n){return r.includes(t)?n.includes(t)?`"${t}" is a built-in tool, not an MCP server. Call it directly.`:`Built-in tool "${t}" is not available (disabled).`:`MCP server "${t}" is not available (status: ${e??"unknown"}).`}function FA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function UA(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 qA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
+ `).trim()}function cd(t,e,r){if(t.isError){let o=qA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=UA(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 _g(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ha(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=FA(t.params),o=await e.callTool(r,n,t.signal,{toolCallId:t.toolCallId});return cd(o,t.serverName,r)}var HA=/[^a-zA-Z0-9_-]/g;function ud(t){return t.replace(HA,"_")}function GA(t,e){let r=ud(e),n=ud(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var $r=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=GA(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=`_${ud(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var ma=ZA.child({prefix:"pi-mcp"});function ga(){return te().toolRegistrationsByPi}function wg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=BA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){ma.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}ma.warn(`Skipping MCP tool "${r}/${n.name}": invalid input schema (${c instanceof Error?c.message:String(c)})`);return}let a=()=>te().servers.get(r);return{name:i,label:n.name,description:n.description??"",parameters:s,execute:(c,u,d,l,f)=>_g({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 dd(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),WA(t,e,n,r,o)}function WA(t,e,r,n,o){let i=te();for(let[s,a]of e.byServer){if(a===n||!a.registeredNames.has(r))continue;let c=i.servers.get(s);if(c===void 0||c!==a.host||c.status!=="success"||i.serverGenerations?.get(s)!==a.generation)continue;let u=new $r(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=wg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;Sg(r,"mcp"),t.registerTool(p),Mr(p),a.definitionsByName??=new Map,a.definitionsByName.set(r,p),e.ownerByToolName.set(r,a),o?t.setActiveTools([...new Set([...t.getActiveTools(),r])]):t.setActiveTools(t.getActiveTools().filter(h=>h!==r));return}}}function VA(t,e){let r=ga(),n=r.get(t);n||(n={byServer:new Map,ownerByToolName:new Map},r.set(t,n));let o=te().serverGenerations?.get(e.name),i=n.byServer.get(e.name);if(i?.host===e&&i.generation===o)return{registration:i,replaced:!1};if(i)for(let a of i.registeredNames)dd(t,n,i,a);let s={generation:o,host:e,map:new $r(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function ld(t,e){let{registration:r,replaced:n}=VA(t,e),o=new Set(r.registeredNames),i=new $r(e.name);r.map=i,r.registeredNames.clear();let s=e.name,a=0,c=[];for(let d of e.listTools()){let{namespaced:l,collision:f}=i.put(d.name);if(f){let h=i.resolve(l),m=e.suppressesProviderDiagnostics?"MCP stdio tool name collision; provider diagnostics are suppressed. Only the first tool will be available.":`Tool name collision detected in MCP server "${s}": "${d.name}" and "${h}" both map to "${l}". Only the first tool will be available.`,g=te();g.diagnostics.some(w=>w.server===s&&(w.message===m||w.message.includes(`both map to "${l}"`)))||(ma.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=wg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(Sg(l,"mcp"),t.registerTool(p),Mr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ga().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ga().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&dd(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&ma.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function fd(t,e,r){let n=ga().get(t);if(!n)return!1;let o=n.byServer.get(e.name);if(!o||o.host!==e||o.generation!==r)return!1;for(let i of o.registeredNames)dd(t,n,o,i);return n.byServer.delete(e.name),!0}function bg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&ld(t,r)}import{getToolSource as nM}from"@augmentcode/auggie-v2";import{Type as KA}from"@sinclair/typebox";var JA=!1,Rg=2e4;function YA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function XA(t){let e=0;for(let r of t.servers.values())e+=QA(r);return e}function QA(t){if(t.status!=="success")return 0;let e=new $r(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||eM(n.inputSchema)&&(r+=YA(n))}return r}function eM(t){try{return KA.Unsafe(t??{}),!0}catch{return!1}}function tM(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:JA}function rM(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:Rg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:Rg}function Cg(t){return tM(t)?XA(t)>=rM(t):!1}var oM="AUGGIE_ENABLE_TOOL_SEARCH",iM=new Set(["find-tool","execute-tool","attach-mcp-server"]);function pi(){return process.env[oM]==="1"}function Ir(t){return pi()||t.toolSearchLatched?!0:Cg(t)?(t.toolSearchLatched=!0,!0):!1}function ya(t){let e=t.getActiveTools(),r=e.filter(n=>!sM(n)||iM.has(n));r.length!==e.length&&t.setActiveTools(r)}function sM(t){return nM(t)==="mcp"}import{setToolSource as $g}from"@augmentcode/auggie-v2";import{logger as xM}from"@hermes/logger";import{Type as Ig}from"@sinclair/typebox";import{logger as aM}from"@hermes/logger";var hi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},Or={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var Pg=aM.child({prefix:"pi-mcp"}),cM=5e3,uM=1,dM=2,lM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),fM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function pM(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 hM(t){return t===uM||typeof t=="string"&&lM.has(t)?"available":t===dM||typeof t=="string"&&fM.has(t)?"opt_in_required":"unknown"}function mM(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:pM(t.auth_type),state:hM(t.state)}}function pd(t,e){if(t.servers.has(e.name))return!0;for(let r of t.servers.values())if(r.config?.id===e.id)return!0;return!1}function va(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return va(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!pd(t,r)):[]}async function xg(t,e,r){let n=t.apiUrl.replace(/\/+$/,""),o=e??fetch;try{let i=await o(`${n}/settings/get-mcp-catalog-metadata`,{method:"POST",headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({product_type:Or.UNSPECIFIED}),signal:AbortSignal.timeout(r??cM)});if(!i.ok)return Pg.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=mM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return Pg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var gM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",yM=`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).`,vM=/[\n\r]/g,_M=/</g,SM=/>/g;function fn(t){return t.replace(vM," ").replace(_M,"\u2039").replace(SM,"\u203A").trim()}function wM(){let t=process.env[gM];return t?.trim()?t:yM}var bM=/\{\{(query|server_name|tool_list)\}\}/g;function kg(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return wM().replace(bM,o=>n[o]??o)}function Pe(t){return{content:[{type:"text",text:t}],details:void 0}}function Eg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function hd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function va(t,e,r){let n={mcp_server:t,tools:Eg(e).map(hd),note:r};return Pe(JSON.stringify(n,null,2))}function Tg(t){return Eg(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
17
- `)}function Ag(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 RM}from"@earendil-works/pi-ai";var CM="augment:tool-search-usage";function PM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Mg(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 RM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(CM,a),PM(s)}var zg=xM.child({prefix:"pi-mcp"}),oo="find-tool",zr="execute-tool",kM=10,Og=15,EM=20,TM={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"]},AM={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 md(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function MM(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=md(t),o=e.filter(c=>n.length>0&&md(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(md(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 Ng(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:MM(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=pa(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function $M(t){if(t==null)throw new Error(`${zr} requires an "arguments" object with the tool's parameters.`);if(typeof t!="object"||Array.isArray(t)){let e=Array.isArray(t)?"an array":typeof t;throw new Error(`${zr} "arguments" must be an object, not ${e}.`)}return t}async function IM(t,e,r,n,o){let i=kg(r,n,Tg(o)),s=await Mg(t,e,i);if(!s)return;let a=Ag(s);return o.find(c=>c.name===a)}async function OM(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=Ng(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=kM)return va(i.name,s,"All tools on this server.");try{let a=await IM(t,e,n,i.name,s);return a?Pe(JSON.stringify(hd(a),null,2)):va(i.name,s,"No single best match; all tools listed.")}catch(a){return zg.warn(`${oo} LLM match failed: ${a instanceof Error?a.message:String(a)}`),va(i.name,s,"Search failed; all tools listed.")}}async function zM(t,e,r,n){let{mcp_server:o,tool_name:i,arguments:s}=e??{};if(typeof o!="string"||typeof i!="string")throw new Error(`${zr} requires string "mcp_server" and "tool_name" parameters.`);let a=$M(s),c=Ng(t,o),u=await c.server.callTool(i,a,r,n);return cd(u,c.name,i)}function NM(){let t=te(),e=[...t.servers.values()].filter(i=>i.status==="success"),r=`Search for the right MCP tool. Call with a natural-language query and the target MCP server name to get the best-matching tool, then run it with ${zr}. When this gateway is present, MCP tools may intentionally be absent as top-level tools. Before reporting an expected MCP capability unavailable, search its attached server with ${oo}, then invoke it with ${zr}.`,n=[];if(e.length===0)n.push(`${r} No MCP servers are currently connected.`);else{let i=e.map(s=>{let a=s.listTools().map(d=>d.name),c=a.slice(0,Og).join(", "),u=a.length>Og?", \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).`,vM=/[\n\r]/g,_M=/</g,SM=/>/g;function fn(t){return t.replace(vM," ").replace(_M,"\u2039").replace(SM,"\u203A").trim()}function wM(){let t=process.env[gM];return t?.trim()?t:yM}var bM=/\{\{(query|server_name|tool_list)\}\}/g;function kg(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return wM().replace(bM,o=>n[o]??o)}function Pe(t){return{content:[{type:"text",text:t}],details:void 0}}function Eg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function hd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function _a(t,e,r){let n={mcp_server:t,tools:Eg(e).map(hd),note:r};return Pe(JSON.stringify(n,null,2))}function Tg(t){return Eg(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
17
+ `)}function Ag(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 RM}from"@earendil-works/pi-ai";var CM="augment:tool-search-usage";function PM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Mg(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 RM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(CM,a),PM(s)}var zg=xM.child({prefix:"pi-mcp"}),oo="find-tool",zr="execute-tool",kM=10,Og=15,EM=20,TM={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"]},AM={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 md(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function MM(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=md(t),o=e.filter(c=>n.length>0&&md(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(md(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 Ng(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:MM(e);if(o)return o;let i=t.getActiveTools(),s=r.servers.get(e),a=[...r.servers.values()].filter(u=>u.status==="success").map(u=>u.name).sort(),c=ha(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function $M(t){if(t==null)throw new Error(`${zr} requires an "arguments" object with the tool's parameters.`);if(typeof t!="object"||Array.isArray(t)){let e=Array.isArray(t)?"an array":typeof t;throw new Error(`${zr} "arguments" must be an object, not ${e}.`)}return t}async function IM(t,e,r,n,o){let i=kg(r,n,Tg(o)),s=await Mg(t,e,i);if(!s)return;let a=Ag(s);return o.find(c=>c.name===a)}async function OM(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=Ng(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=kM)return _a(i.name,s,"All tools on this server.");try{let a=await IM(t,e,n,i.name,s);return a?Pe(JSON.stringify(hd(a),null,2)):_a(i.name,s,"No single best match; all tools listed.")}catch(a){return zg.warn(`${oo} LLM match failed: ${a instanceof Error?a.message:String(a)}`),_a(i.name,s,"Search failed; all tools listed.")}}async function zM(t,e,r,n){let{mcp_server:o,tool_name:i,arguments:s}=e??{};if(typeof o!="string"||typeof i!="string")throw new Error(`${zr} requires string "mcp_server" and "tool_name" parameters.`);let a=$M(s),c=Ng(t,o),u=await c.server.callTool(i,a,r,n);return cd(u,c.name,i)}function NM(){let t=te(),e=[...t.servers.values()].filter(i=>i.status==="success"),r=`Search for the right MCP tool. Call with a natural-language query and the target MCP server name to get the best-matching tool, then run it with ${zr}. When this gateway is present, MCP tools may intentionally be absent as top-level tools. Before reporting an expected MCP capability unavailable, search its attached server with ${oo}, then invoke it with ${zr}.`,n=[];if(e.length===0)n.push(`${r} No MCP servers are currently connected.`);else{let i=e.map(s=>{let a=s.listTools().map(d=>d.name),c=a.slice(0,Og).join(", "),u=a.length>Og?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
18
18
  ${i.join(`
19
19
  `)}`)}let o=ln(t).slice(0,EM);if(o.length>0){let i=o.map(s=>{let a=fn(s.description),c=s.requiresAuth?" [requires auth]":"";return`- ${s.name}${a?` \u2014 ${a}`:""}${c}`});n.push(`Available but not attached (use attach-mcp-server to enable):
20
20
  ${i.join(`
21
21
  `)}
22
22
  When the user's request requires one of these servers, call attach-mcp-server immediately; it attaches directly without requiring user approval.`)}return n.join(`
23
23
 
24
- `)}function ir(t){let e={name:oo,label:oo,description:NM(),parameters:Ig.Unsafe(TM),execute:(n,o,i,s,a)=>OM(t,a,o)},r={name:zr,label:zr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Ig.Unsafe(AM),execute:(n,o,i)=>zM(t,o,i,{toolCallId:n})};$g(oo,"mcp"),$g(zr,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),zg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as uk}from"@augmentcode/auggie-v2";import{logger as xq,logPublic as kq}from"@hermes/logger";import{logger as GM}from"@hermes/logger";import{logger as DM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var Dg=DM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},gd=3e4,sr=200,mt=class extends Error{statusCode;statusText;responseBody;constructor(e,r,n){super(`${e} ${r}: ${n}`),this.name="McpRegistryHttpError",this.statusCode=e,this.statusText=r,this.responseBody=n}};function yd(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,!yd(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 _a=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??gd}async callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:r===void 0?"{}":JSON.stringify({product_type:r}),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}getMcpTenantConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function Lg(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)}`;Dg.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)}`;Dg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function LM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var jg=32;function jM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>jg&&(e=e.slice(0,jg)),e=e.replace(/_+$/,""),e}function Fg(t,e){let r=e?jM(e):"",n=LM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Ug(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 FM=1e12,UM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function qM(t){let e=UM.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 HM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<FM?t*1e3:t;if(typeof t=="string")return qM(t)}function qg(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:HM(e.expiresAt),resource:typeof e.resource=="string"?e.resource:void 0,serverMetadata:e.serverMetadata&&typeof e.serverMetadata=="object"?e.serverMetadata:void 0,client:e.client&&typeof e.client=="object"?e.client:void 0}}var Bt=GM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},Gg=[100,500],ZM=Gg.length+1,BM=t=>new Promise(e=>{setTimeout(e,t)});function Hg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var _d="augment.mcp-access-token.",WM=JSON.stringify({retired:!0}),Sa=3;function Wt(t){return`${_d}${t}`}function wa(t){return`legacy:${t}`}function At(t){return t?.id?Fg(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:Zg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Zg(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:Zg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return _i(vi(t))}function VM(t){return _i(vi(t))}function KM(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:KM(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=Ug({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 JM(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function YM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=VM(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 vd(t){try{let e=qg(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||typeof r.authorization_endpoint!="string"||typeof r.token_endpoint!="string"||typeof n.client_id!="string")return;let o;return e.clientSecret?o=e.clientSecret:typeof n.client_secret=="string"&&(o=n.client_secret),{accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt,resource:e.resource,serverMetadata:{issuer:typeof r.issuer=="string"?r.issuer:r.authorization_endpoint,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint},client:{client_id:n.client_id,...o?{client_secret:o}:{}}}}catch{return}}var yi=class{_memory=new Yn;_getClient;_shouldPersist;_dirtyGenerations=new Map;_durableQueues=new Map;_registryMemoryWriteGenerations=new Map;_registryMemoryAuthorities=new Map;_registryMemoryCommittedAuthorities=new Map;_delay;_nextGeneration=0;constructor(e,r,n,o=BM){if(this._getClient=e,this._shouldPersist=r,this._delay=typeof n=="function"?n:o,n&&typeof n!="function"){this._memory.seed(n);for(let[i,s]of n.credentialIdentities??[]){let a=Mt(s);a&&this._registryMemoryCommittedAuthorities.set(i,a)}}}get(e){return this._memory.get(e)}commit(e,r,n){this._memory.commit(e,r,n);let o=Mt(n);o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e)}hasCredentialIdentity(e,r){return this._memory.hasCredentialIdentity(e,r)}reconcileCredentialIdentity(e,r,n){if(!this._memory.reconcileCredentialIdentity(e,r,n))return!1;let o=Mt(n);return o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e),!0}clearLocalCredential(e){this._memory.clearLocalCredential(e),this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e)}set(e,r,n){if(n?.id){let o=this._beginRegistryMemoryWrite(e,n);this._persist(e,r,n,!0,()=>{this._commitRegistryMemoryWrite(e,r,n,o)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; authoritative memory was not changed`)});return}this._memory.set(e,r),this._registryMemoryCommittedAuthorities.delete(e),this._persist(e,r,n,!0).then(o=>{o&&this._memory.get(e)===r&&this.commit(e,r,n)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; stored in-memory only`)})}async setAndPersist(e,r,n){if(n?.id){let i=this._beginRegistryMemoryWrite(e,n);await this._persist(e,r,n,!1,()=>{this._commitRegistryMemoryWrite(e,r,n,i)});return}let o=await this._persist(e,r,n,!1);this.commit(e,r,o?n:void 0)}_beginRegistryMemoryWrite(e,r){let n=Mt(r);if(!n)throw new Z;let o=(this._registryMemoryWriteGenerations.get(e)??0)+1;return this._registryMemoryWriteGenerations.set(e,o),this._registryMemoryAuthorities.set(e,n),{generation:o,identity:n,retirementGeneration:this._memory.credentialRetirementGeneration(e)}}_commitRegistryMemoryWrite(e,r,n,o){this._registryMemoryWriteGenerations.get(e)!==o.generation||this._registryMemoryAuthorities.get(e)!==o.identity||this._memory.credentialRetirementGeneration(e)!==o.retirementGeneration||(this._memory.commit(e,r,n),this._registryMemoryCommittedAuthorities.set(e,o.identity))}persist(e,r,n){return this._persist(e,r,n,!1)}async captureAuthenticatedIdentityVersion(e){let r=At(e),n=Mt(e),o=this._getClient();if(!(!r||!n||!o||!e))try{return await this._enqueueWrite(r,()=>this._captureAuthenticatedIdentityVersion({client:o,key:r,identity:n,registry:e}))}catch{throw new Z}}async _captureAuthenticatedIdentityVersion(e){for(let r=0;r<Sa;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=vd(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||!vd(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:wa(e)}}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async restoreAfterSupersededAuthentication(e,r,n,o,i,s=o){let a=this._getClient(),c=At(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||At(s)!==c)throw new Z;if(u=await this._enqueueWrite(c,()=>this._restoreRegistryCredential({client:a,key:c,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i})),!u)return}if(!c&&At(s))throw new Z;if(!this._shouldPersist())return u;if(!a)throw new Z;if(c&&o){try{await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredential({client:a,key:Wt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Bt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==wa(e))throw new Z;try{return await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Wt(e),serverName:e,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i}))}catch{throw new Z}}async _restoreLegacyCredentialExact(e){let{client:r,key:n,serverName:o,persistedToken:i,currentToken:s,persistedIdentity:a,currentIdentity:c,persistedRevision:u}=e,d=await r.getUserSecretWithVersion(n);if(!(!d||d.version!==u.revision||d.value!==gi(i,a)))try{return{revision:await r.upsertUserSecret(n,gi(s,c),u.revision),domain:wa(o)}}catch(l){if(this._isVersionConflict(l))return;throw l}}async _restoreRegistryCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a,persistedRevision:c}=e,u=await r.getUserSecretWithVersion(n);if(!(!u||u.version!==c.revision||u.value!==mn(o,s)))try{return{revision:await r.upsertUserSecret(n,mn(i,a),c.revision),domain:`private:${a.id}`}}catch(d){if(this._isVersionConflict(d))return;throw d}}async _restoreLegacyCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a}=e,c=await r.getUserSecretWithVersion(n);if(!(!c||c.value!==gi(o,s)))try{await r.upsertUserSecret(n,gi(i,a),c.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async _drainRegistryWrites(e,r,n,o,i){let s;try{s=await r}catch{throw new Z}if(o?.(),i?.id&&!s)throw new Z;try{await n?.()}catch{Bt.error(`Failed to mirror MCP OAuth token for "${e}" to the legacy key`)}return i?.id&&s?{revision:s,domain:`private:${i.id}`}:void 0}async _writeRegistryCredential(e,r,n,o){let i=Mt(o);if(!i)throw new Z;for(let s=0;s<Sa;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<Sa;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,JM(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:wa(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Hg(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?ZM: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?Gg[r]:void 0,i=!(e instanceof Z)&&yd(e);if(o===void 0||!i){n&&Bt.warn("MCP OAuth credential persistence exhausted retries",{attempts:r+1,credentialShape:n.credentialShape,operation:n.operation});return}return o}_upsertUserSecretOnce(e,r,n,o){return typeof e.upsertUserSecretOnce=="function"?e.upsertUserSecretOnce(r,n,o):e.upsertUserSecret(r,n,o)}_deleteUserSecretOnce(e,r){return typeof e.deleteUserSecretOnce=="function"?e.deleteUserSecretOnce(r):e.deleteUserSecret(r)}_writeLegacyKey(e,r,n,o){let i=0,s=this._enqueueWrite(Wt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Wt(e),gi(r,o));return this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e),c},{credentialShape:"legacy",operation:"write",onGeneration:a=>{i=a,this._dirtyGenerations.set(e,a)}});return s.catch(a=>{(a instanceof so||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=Mt(r),i=this._registryMemoryCommittedAuthorities.get(e),s=n?.preserveNameState===!0&&(i===void 0||i!==o),a=(this._registryMemoryWriteGenerations.get(e)??0)+1;this._registryMemoryWriteGenerations.set(e,a),this._registryMemoryAuthorities.delete(e);let c=this._getClient(),u=At(r),d;u&&r&&(c?d=this._enqueueWrite(u,()=>{let p=this._getClient();if(!p)throw new Error("MCP secrets client unavailable");return this._retireRegistryCredential(p,u,r)},{credentialShape:"registry",operation:"delete"}):d=Promise.reject(new Z));let l=this._shouldPersist()&&!s,f;return l&&(c?f=this._enqueueWrite(Wt(e),async()=>{let p=await c.upsertUserSecret(Wt(e),WM)}):f=Promise.reject(new Z)),this._awaitRetirements(e,d,f).then(()=>{this._registryMemoryWriteGenerations.get(e)===a&&(this._memory.retireCredential(e,r,{preserveNameState:s}),s||(this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e)))})}async _awaitRetirements(e,r,n){let[o,i]=await Promise.allSettled([r,n]);if(o.status==="rejected"&&Bt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Bt.error(`Failed to retire legacy MCP OAuth credential for "${e}" durably`),o.status==="rejected")throw o.reason;if(i.status==="rejected")throw i.reason}delete(e,r){if(this._memory.delete(e),this._memory.clearAuthRequired(e),this._dirtyGenerations.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._retireRegistryKey(r),!this._shouldPersist()){this._dirtyGenerations.delete(e);return}let n=Wt(e);if(!this._canScheduleDurableOperation(n)){this._dirtyGenerations.delete(e);return}let o=0;this._enqueueWrite(n,async()=>{let s=this._getClient();if(!s)throw new Error("MCP secrets client unavailable");await this._deleteUserSecretOnce(s,n)},{credentialShape:"legacy",operation:"delete",onGeneration:s=>{o=s,this._dirtyGenerations.set(e,s)}}).then(()=>{this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)}).catch(s=>{s instanceof so&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=At(e);!r||!e||!this._canScheduleDurableOperation(r)||this._enqueueWrite(r,async()=>{let n=this._getClient();if(!n)throw new Error("MCP secrets client unavailable");await this._retireRegistryCredential(n,r,e)},{credentialShape:"registry",operation:"delete"}).catch(()=>{Bt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Hg(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<Sa;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=vd(s.value);if(!c)return{identityRejected:!0};if(a.credentialIdentity===o&&a.state==="active")return{identityRejected:!1,token:c};try{return await r.upsertUserSecret(n,mn(c,i),s.version),{identityRejected:!1,token:c}}catch(u){return this._isVersionConflict(u)?void 0:{identityRejected:!0}}}async _importLegacyToken(e,r,n,o){let i=At(n),s=Mt(n);if(!i||!s||!n||o===void 0)return;let a=await this._loadLegacyToken(e,r,n);if(a)try{return await this._enqueueWrite(i,async()=>{let c=await e.getUserSecretWithVersion(i);if((c?.version??"0")===o){if(c){let u=io(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,mn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Wt(r));return o?YM(o,n):void 0}catch{return}}async ensureLoaded(e,r){if(this._memory.get(e)||!this._shouldPersist()||this.hasInFlightWrite(e))return;let o=this._getClient();if(!o)return;let i=this._memory.credentialRetirementGeneration(e),s=await this._loadRegistryToken(o,r);if(s.identityRejected)return;let a=s.token?{identityMatched:!0,token:s.token}:void 0;if(!(this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i)){if(!a){if(this._memory.isCredentialRetired(e))return;a=r?.id?await this._importLegacyToken(o,e,r,s.authorityVersion):await this._loadLegacyToken(o,e,r)}if(!a){Bt.debug(`Backend secret for MCP server "${e}" is not a usable OAuth token; ignoring`);return}this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i||(this.commit(e,a.token,a.identityMatched?r:void 0),Bt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Bg="Augment Code",Wg="https://augmentcode.com",Vg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var QM=1e3,e0=500;function wd(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 Sd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Kg(t){return new URLSearchParams({k:t}).toString().slice(2)}function t0(t,e){let r=`${Kg(t)}:${Kg(e)}`;return`Basic ${btoa(r)}`}function Qg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function r0(t){return t.client.token_endpoint_auth_method==="none"||!Qg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function n0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function o0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var i0=401,ey=500;function bd(t,...e){return t.status<ey&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Jg(t){return bd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===i0}async function Yg(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=Qg(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=o0(c),d=c.slice(0,e0);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new Sd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*QM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Xg(t,e){try{return await Yg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&bd(r,"invalid_target"))return await Yg(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 Rd(t){return!(t instanceof gn)||t.status>=ey?!1:bd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Cd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=r0(t);try{return await Xg(e,r)}catch(n){let o=n0(r);if(!(n instanceof gn)||!o||!Jg(n))throw n;try{return await Xg(e,o)}catch(i){throw i instanceof gn&&Jg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as Q0}from"@hermes/logger";var kd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(kd="oauth4webapi/v3.8.6");function lo(t,e){if(t==null)return!1;try{return t instanceof e||Object.getPrototypeOf(t)[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]}catch{return!1}}var Vt="ERR_INVALID_ARG_VALUE",Xe="ERR_INVALID_ARG_TYPE";function he(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var $d=Symbol(),s0=Symbol(),a0=Symbol(),vn=Symbol();var ty=Symbol();var c0=new TextEncoder,u0=new TextDecoder;function Ed(t){return typeof t=="string"?c0.encode(t):u0.decode(t)}var Td;Uint8Array.prototype.toBase64?Td=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Td=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 Ad;Uint8Array.fromBase64?Ad=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:Ad=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}};function Ra(t){return typeof t=="string"?Ad(t):Td(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=U0,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 Ca(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Id(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(kd&&!e.has("user-agent")&&e.set("user-agent",kd),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function Od(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 d0(t){return t.includes("//")?t.replace("//","/"):t}function l0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=d0(`${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);fy(t,n?.[$d]!==!0);let o=r(new URL(t.href)),i=Id(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:Od(o,n?.signal)})}function ao(t,e,r,n,o){try{if(typeof t!="number"||!Number.isFinite(t))throw he(`${r} must be a number`,Xe,o);if(t>0)return;if(e){if(t!==0)throw he(`${r} must be a non-negative number`,Vt,o);return}throw he(`${r} must be a positive number`,Vt,o)}catch(i){throw n?O(i.message,n,o):i}}function $e(t,e,r,n){try{if(typeof t!="string")throw he(`${e} must be a string`,Xe,n);if(t.length===0)throw he(`${e} must not be empty`,Vt,n)}catch(o){throw r?O(o.message,r,n):o}}async function oy(t,e){let r=t;if(!(r instanceof URL)&&r!==ka)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)',qd,e);Ci(e);let n=await Ma(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==ka&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Ta,{expected:r.href,body:n,attribute:"issuer"});return n}function iy(t){h0(t,"application/json")}function p0(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,H0,t)}function h0(t,e){if(x0(t)!==e)throw p0(t,e)}function zd(){return Ra(crypto.getRandomValues(new Uint8Array(32)))}function sy(){return zd()}function ay(){return zd()}function cy(){return zd()}async function uy(t){return $e(t,"codeVerifier"),Ra(await crypto.subtle.digest("SHA-256",Ed(t)))}function Nd(t){let e=t?.[s0];return typeof e=="number"&&Number.isFinite(e)?e:0}function Dd(t){let e=t?.[a0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Ld(){return Math.floor(Date.now()/1e3)}function Ea(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Xe);$e(t.issuer,'"as.issuer"')}function jd(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Xe);$e(t.client_id,'"client.client_id"')}function ry(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 Fd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function dy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=ry(r.client_id),s=ry(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function ly(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var m0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function fy(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",G0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",Z0,t)}function ny(t,e,r,n){let o;if(typeof t!="string"||!(o=m0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?B0:W0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return fy(o,n),o}function py(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?ny(t.mtls_endpoint_aliases[e],e,r,n):ny(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=F0,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=q0,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=j0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Pa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",g0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",y0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',v0="("+Pa+")\\s*=\\s*"+y0,_0="("+Pa+")\\s*=\\s*("+Pa+")",S0=new RegExp("^[,\\s]*("+Pa+")"),w0=new RegExp("^[,\\s]*"+v0+"[,\\s]*(.*)"),b0=new RegExp("^[,\\s]*"+_0+"[,\\s]*(.*)"),R0=new RegExp("^("+g0+")(?:$|[,\\s])(.*)");function C0(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(S0),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(w0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(b0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(R0)){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 P0(t){if(t.status>399&&t.status<500){Ci(t),iy(t);try{let e=await t.clone().json();if(Ca(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function hy(t,e,r){if(t.status!==e){A0(t);let n;throw(n=await P0(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)`,qd,t)}}function my(t){if(!Ud.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function x0(t){return t.headers.get("content-type")?.split(";")[0]}async function k0(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:Od(n,s?.signal)})}async function E0(t,e,r,n,o,i){let s=py(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[$d]!==!0);o.set("grant_type",n);let a=Id(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(my(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await k0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var gy=new WeakMap,T0=new WeakMap;function yy(t){if(!t.id_token)return;let e=gy.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function vy(t,e,r,n,o,i){if(Ea(t),jd(e),!lo(r,Response))throw he('"response" must be an instance of Response',Xe);await hy(r,200,"Token Endpoint"),Ci(r);let s=await Ma(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 V0(s.id_token,K0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Nd(e),Dd(e),o).then(N0.bind(void 0,a)).then($0.bind(void 0,t)).then(M0.bind(void 0,e.client_id));if(Array.isArray(c.aud)&&c.aud.length!==1){if(c.azp===void 0)throw O('ID Token "aud" (audience) claim includes additional untrusted audiences',Nr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',Nr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&ao(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),T0.set(r,u),gy.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 A0(t){let e;if(e=C0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function M0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"});return e}function $0(t,e){let r=t[X0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',Nr,{expected:r,claims:e.claims,claim:"iss"});return e}var Ud=new WeakSet;function I0(t){return Ud.add(t),t}var O0=Symbol();async function _y(t,e,r,n,o,i,s){if(Ea(t),jd(e),!Ud.has(n))throw he('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Vt);$e(o,'"redirectUri"');let a=yn(n,"code");if(!a)throw O('no authorization code in "callbackParameters"',V);let c=new URLSearchParams(s?.additionalParameters);return c.set("redirect_uri",o),c.set("code",a),i!==O0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),E0(t,e,r,"authorization_code",c,s)}var z0={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 N0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${z0[r]}) claim missing`,V,{claims:e.claims});return e}var Pd=Symbol(),xd=Symbol();async function Sy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?D0(t,e,r,n.expectedNonce,n.maxAge,n[ty],n.recognizedTokenTypes):L0(t,e,r,n?.[ty],n?.recognizedTokenTypes)}async function D0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=Pd;break;case Pd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=xd;break;case xd:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await vy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=yy(c);if(o!==xd){let d=Ld()+Nd(e),l=Dd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",xa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===Pd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:n,claims:u,claim:"nonce"});return c}async function L0(t,e,r,n,o){let i=await vy(t,e,r,void 0,n,o),s=yy(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=Ld()+Nd(e),c=Dd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",xa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:s,claim:"nonce"})}return i}var j0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",F0="OAUTH_RESPONSE_BODY_ERROR",U0="OAUTH_UNSUPPORTED_OPERATION",q0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Md="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var H0="OAUTH_RESPONSE_IS_NOT_JSON",qd="OAUTH_RESPONSE_IS_NOT_CONFORM",G0="OAUTH_HTTP_REQUEST_FORBIDDEN",Z0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",xa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Nr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Ta="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var B0="OAUTH_MISSING_SERVER_METADATA",W0="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function V0(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(Ed(Ra(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Md,l)}if(!Ca(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(Ed(Ra(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Md,l)}if(!Ca(u))throw O("JWT Payload must be a top level object",V,t);let d=Ld()+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',xa,{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',xa,{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 K0(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 J0=Symbol(),Y0=Symbol();function wy(t,e,r,n){if(Ea(t),jd(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 Y0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case J0: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 I0(new URLSearchParams(r))}async function by(t,e,r){Ea(t);let n=py(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[$d]!==!0),o=Id(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?.[vn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Od(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function Ry(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);await hy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await Ma(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 Cy(t,e){return f0(t,"resourceIdentifier",r=>(l0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Aa(t,e){let r=t;if(!(r instanceof URL)&&r!==ka)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)',qd,e);Ci(e);let n=await Ma(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==ka&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Ta,{expected:r.href,body:n,attribute:"resource"});return n}async function Ma(t,e=iy){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Md,n)}if(!Ca(r))throw O('"response" body must be a top level object',V,{body:r});return r}var ka=Symbol(),X0=Symbol();var ky=Q0.child({prefix:"pi-mcp"}),Pi=1e4,e$=1e3,t$=401,Py=200,r$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,n$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Ey;function fo(){return Ey??globalThis.fetch}function Ty(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Ay(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Gd(t){let e=Ay(t);try{let r=await o$(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await u$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Oa(r)}throw new Error("Failed to discover metadata URL")}async function o$(t){try{let e=await Cy(t,{signal:AbortSignal.timeout(Pi),[vn]:Ey??void 0});return e.ok?await Aa(t,e):(e.body?.cancel().catch(()=>{}),await My(t,e.headers.get("www-authenticate"))??await xy(t))}catch{return await xy(t)}}async function xy(t){for(let e of["HEAD","GET"])try{let r=await fo()(t,{method:e,signal:AbortSignal.timeout(Pi)});r.body?.cancel().catch(()=>{});let n=await My(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function My(t,e){let r=c$(e);if(r)try{let n=await fo()(r,{signal:AbortSignal.timeout(Pi)});return await i$(t,n)}catch{return}}async function i$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Aa(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Ta)throw o;let i=s$(r);if(!i||!a$(i,t))throw o;return await Aa(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 a$(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 c$(t){if(!t)return;let e=t.match(r$),r=t.match(n$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function u$(t){for(let e of d$(t))try{let r=new URL(e,t),n=await fo()(r,{signal:AbortSignal.timeout(Pi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function d$(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 Zd(t){try{let e=await fo()(t,{signal:AbortSignal.timeout(Pi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await l$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await oy(o,new Response(r,n))}catch(e){throw Oa(e)}}async function l$(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 Hd=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 f$(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 Bd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return f$({...t,clientId:n});if(!e.registration_endpoint)throw new Hd(e.issuer);return await p$(e,r)}async function p$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await by(t,{client_name:Bg,client_uri:Wg,logo_uri:Vg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:h$});return n.ok||ky.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await Ry(n)}catch(r){throw Oa(r)}}async function h$(t,e){let r=await fo()(t,Ty(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||ky.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${g$(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 m$(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,Ty(o))}function g$(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>Py?`${t.slice(0,Py)}\u2026`:t}}async function $a(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=sy(),c=await uy(a),u=ay(),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=Ay(i??t).toString(),m=new URL(r.authorization_endpoint);return m.searchParams.set("response_type","code"),m.searchParams.set("client_id",e.client_id),m.searchParams.set("code_challenge",c),m.searchParams.set("code_challenge_method","S256"),m.searchParams.set("redirect_uri",n),m.searchParams.set("resource",h),m.searchParams.set("state",u),p&&m.searchParams.set("scope",p),l?.includes("offline_access")&&m.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=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 Ia(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Wd(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 $a(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function y$(t,e,r){let n=await _y(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:m$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return Sy(t.serverMetadata,t.client,await v$(n))}async function Vd(t,e){try{let r=wy(e.serverMetadata,e.client,t,e.state),n=await S$(e.client,o=>y$(e,r,o));return R$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Oa(r)}}async function v$(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 $y(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function _$(t){let e=$y(t);return e===void 0?ly():t.token_endpoint_auth_method==="client_secret_basic"?dy(e):Fd(e)}async function S$(t,e){try{return await e(_$(t))}catch(r){let n=w$(t);if(n&&b$(r))return await e(n);throw r}}function w$(t){let e=$y(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Fd(e)}function b$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===t$||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function R$(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*e$:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Oa(t){if(t instanceof uo||t instanceof bi){let e=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${e}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var C$=/(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,Iy=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Oy=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,zy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",P$=/[.*+?^${}()|[\]\\]/g;function Kd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function x$(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:Kd(a,r),{value:c&&"value"in c?Ny(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 Ny(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Kd(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 Kd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:x$(t,e,r)}function Yd(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(P$,"\\$&")).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=>Ny(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var k$=500,E$=8192,T$=6;function A$(t){return Iy.test(t)||Oy.test(t)||zy.test(t)}var M$=new RegExp(Iy.source,"g"),$$=new RegExp(Oy.source,"gi"),I$=new RegExp(zy.source,"g");function Dy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function za(t){return t&&Dy(t,E$).replace(M$,_n).replace($$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(I$,_n)}function Jd(t,e,r){if(e)return _n;if(typeof t=="string")return A$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=T$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Jd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Jd(i,C$.test(o),r+1);return n}function Ly(t,e=k$){if(t==null)return;let r=Jd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Dy(n,e)}var Fy={reportError:()=>{}},jy=Symbol.for("__pi_mcp_error_reporter_slot__");function Uy(){let t=globalThis,e=t[jy];return e||(e={reporter:null},t[jy]=e),e}function qy(t){let e=Uy(),r=e.reporter??Fy;return e.reporter=t,r}function O$(){return Uy().reporter??Fy}function xi(t,e){try{O$().reportError(t,e)}catch{}}import{logger as z$}from"@hermes/logger";var Xd=z$.child({prefix:"pi-mcp"});function Hy(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++):Xd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Xd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Gy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(_d)){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 Zy(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,Xd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function By(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as N$}from"@hermes/logger";var ki=N$.child({prefix:"pi-mcp"}),D$="$augment-",Ei=/\$augment-[a-zA-Z0-9_.-]+/g,L$=new RegExp(Ei.source);function Dr(t){return L$.test(t)}function Na(t){return t.slice(D$.length)}function Ti(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ei))e.add(Na(n[0]));return[...e].sort()}var j$=["permission_denied","missing","transient"];function Wy(t){let e=new Set(t);return j$.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 Vy(t,e,r,n,o,i,s){let a=[...t.matchAll(Ei)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Na(d);try{let p=await r(f);if(p===void 0||typeof p=="object"){n.add(f),i.set(f,p===void 0?"missing":p.reason),ki.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),ki.warn(`Secret "${f}" resolved empty for "${e}"`));let m=c.slice(0,l),g=s?s(h,m):h;c=m+g+c.slice(l+d.length),ki.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),ki.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Ky({configEnv:t,localEnv:e,getSecret:r}){let n={},o=new Set,i=new Set,s=new Map;for(let[a,c]of Object.entries(t)){if(!Dr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){ki.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Vy(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 F$=/["$`\\]/g;function U$(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 q$(t,e){let r=U$(e);if(r==="double")return t.replace(F$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Jy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Vy(t,"command",e,n,o,i,r?q$: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 bq}from"node:async_hooks";var Yy,Qd=Object.freeze({status:"aborted"});function S(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=s.prototype,d=Object.keys(u);for(let l=0;l<d.length;l++){let f=d[l];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:t});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let d of u._zod.deferred)d();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var Kt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},po=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Yy=globalThis).__zod_globalConfig??(Yy.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Qe(t){return t&&Object.assign(ho,t),ho}var H={};Gu(H,{BIGINT_FORMAT_RANGES:()=>tv,Class:()=>tl,NUMBER_FORMAT_RANGES:()=>al,aborted:()=>Fr,allowsEval:()=>ol,assert:()=>W$,assertEqual:()=>H$,assertIs:()=>Z$,assertNever:()=>B$,assertNotEqual:()=>G$,assignProp:()=>Lr,base64ToUint8Array:()=>nv,base64urlToUint8Array:()=>dI,cached:()=>go,captureStackTrace:()=>ja,cleanEnum:()=>uI,cleanRegex:()=>Ii,clone:()=>yt,cloneDef:()=>K$,createTransparentProxy:()=>tI,defineLazy:()=>Y,esc:()=>La,escapeRegex:()=>cr,explicitlyAborted:()=>cl,extend:()=>oI,finalizeIssue:()=>vt,floatSafeRemainder:()=>rl,getElementAtPath:()=>J$,getEnumValues:()=>Mi,getLengthableOrigin:()=>Oi,getParsedType:()=>eI,getSizableOrigin:()=>rv,hexToUint8Array:()=>fI,isObject:()=>Sn,isPlainObject:()=>jr,issue:()=>yo,joinValues:()=>Da,jsonStringifyReplacer:()=>mo,merge:()=>sI,mergeDefs:()=>ar,normalizeParams:()=>M,nullish:()=>$i,numKeys:()=>Q$,objectClone:()=>V$,omit:()=>nI,optionalKeys:()=>sl,parsedType:()=>ul,partial:()=>aI,pick:()=>rI,prefixIssues:()=>ur,primitiveTypes:()=>ev,promiseAllObject:()=>Y$,propertyKeyTypes:()=>il,randomString:()=>X$,required:()=>cI,safeExtend:()=>iI,shallowClone:()=>Qy,slugify:()=>nl,stringifyPrimitive:()=>Fa,uint8ArrayToBase64:()=>ov,uint8ArrayToBase64url:()=>lI,uint8ArrayToHex:()=>pI,unwrapMessage:()=>Ai});function H$(t){return t}function G$(t){return t}function Z$(t){}function B$(t){throw new Error("Unexpected value in exhaustive check")}function W$(t){}function Mi(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,o])=>e.indexOf(+n)===-1).map(([n,o])=>o)}function Da(t,e="|"){return t.map(r=>Fa(r)).join(e)}function mo(t,e){return typeof e=="bigint"?e.toString():e}function go(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function $i(t){return t==null}function Ii(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function rl(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 Xy=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Xy)return n===void 0&&(n=Xy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function V$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Lr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ar(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function K$(t){return ar(t._zod.def)}function J$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Y$(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 X$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function La(t){return JSON.stringify(t)}function nl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var ja="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var ol=go(()=>{if(ho.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function jr(t){if(Sn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Sn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Qy(t){return jr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function Q$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var eI=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}`)}},il=new Set(["string","number","symbol"]),ev=new Set(["string","number","bigint","boolean","symbol","undefined"]);function cr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function M(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function tI(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 Fa(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function sl(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var al={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]},tv={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function rI(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=r.shape[a])}return Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function nI(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function oI(t,e){if(!jr(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ar(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Lr(this,"shape",i),i}});return yt(t,o)}function iI(t,e){if(!jr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Lr(this,"shape",n),n}});return yt(t,r)}function 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=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Lr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function aI(t,e,r){let o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ar(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return Lr(this,"shape",c),c},checks:[]});return yt(e,s)}function cI(t,e,r){let n=ar(e._zod.def,{get shape(){let o=e._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new t({type:"nonoptional",innerType:o[s]});return Lr(this,"shape",i),i}});return yt(e,n)}function Fr(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function cl(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue===!1)return!0;return!1}function ur(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ai(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ai(t.inst?._zod.def?.error?.(t))??Ai(e?.error?.(t))??Ai(r.customError?.(t))??Ai(r.localeError?.(t))??"Invalid input",{inst:o,continue:i,input:s,...a}=t;return a.path??(a.path=[]),a.message=n,e?.reportInput&&(a.input=s),a}function rv(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Oi(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function ul(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 uI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function nv(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 ov(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function dI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return nv(e+r)}function lI(t){return ov(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function fI(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 pI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var tl=class{constructor(...e){}};var iv=(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})},Ua=S("$ZodError",iv),dl=S("$ZodError",iv,{Parent:Error});function ll(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 fl(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 qa=t=>(e,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Kt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Qe())));throw ja(a,o?.callee),a}return s.value};var Ha=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 ja(a,o?.callee),a}return s.value};var zi=t=>(e,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new Kt;return i.issues.length?{success:!1,error:new(t??Ua)(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},Ni=zi(dl),Di=t=>async(e,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=e._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},Ga=Di(dl),sv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return qa(t)(e,r,o)};var av=t=>(e,r,n)=>qa(t)(e,r,n);var cv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ha(t)(e,r,o)};var uv=t=>async(e,r,n)=>Ha(t)(e,r,n);var dv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var lv=t=>(e,r,n)=>zi(t)(e,r,n);var fv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Di(t)(e,r,o)};var pv=t=>async(e,r,n)=>Di(t)(e,r,n);var hv=/^[cC][0-9a-z]{6,}$/,mv=/^[0-9a-z]+$/,gv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,yv=/^[0-9a-vA-V]{20}$/,vv=/^[A-Za-z0-9]{27}$/,_v=/^[a-zA-Z0-9_-]{21}$/,Sv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var wv=/^([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})$/,pl=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 bv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var mI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Rv(){return new RegExp(mI,"u")}var Cv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Pv=/^(([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 xv=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,kv=/^(([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])$/,Ev=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,hl=/^[A-Za-z0-9_-]*$/;var Tv=/^https?$/,Av=/^\+[1-9]\d{6,14}$/,Mv="(?:(?:\\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])))",$v=new RegExp(`^${Mv}$`);function Iv(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 Ov(t){return new RegExp(`^${Iv(t)}$`)}function zv(t){let e=Iv({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(`^${Mv}T(?:${n})$`)}var Nv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Dv=/^-?\d+n?$/,Lv=/^-?\d+$/,ml=/^-?\d+(?:\.\d+)?$/,jv=/^(?:true|false)$/i,Fv=/^null$/i;var Uv=/^[^A-Z]*$/,qv=/^[^a-z]*$/;var Oe=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Hv={number:"number",bigint:"bigint",object:"date"},gl=S("$ZodCheckLessThan",(t,e)=>{Oe.init(t,e);let r=Hv[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})}}),yl=S("$ZodCheckGreaterThan",(t,e)=>{Oe.init(t,e);let r=Hv[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})}}),Gv=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):rl(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})}}),Zv=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]=al[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=Lv)}),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 Bv=S("$ZodCheckMaxLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<o&&(n._zod.bag.maximum=e.maximum)}),t._zod.check=n=>{let o=n.value;if(o.length<=e.maximum)return;let s=Oi(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Wv=S("$ZodCheckMinLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;if(o.length>=e.minimum)return;let s=Oi(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Vv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),t._zod.check=n=>{let o=n.value,i=o.length;if(i===e.length)return;let s=Oi(o),a=i>e.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),ji=S("$ZodCheckStringFormat",(t,e)=>{var r,n;Oe.init(t,e),t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Kv=S("$ZodCheckRegex",(t,e)=>{ji.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Jv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Uv),ji.init(t,e)}),Yv=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=qv),ji.init(t,e)}),Xv=S("$ZodCheckIncludes",(t,e)=>{Oe.init(t,e);let r=cr(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:t,continue:!e.abort})}}),Qv=S("$ZodCheckStartsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`^${cr(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),e_=S("$ZodCheckEndsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`.*${cr(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var t_=S("$ZodCheckOverwrite",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Za=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
24
+ `)}function ir(t){let e={name:oo,label:oo,description:NM(),parameters:Ig.Unsafe(TM),execute:(n,o,i,s,a)=>OM(t,a,o)},r={name:zr,label:zr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Ig.Unsafe(AM),execute:(n,o,i)=>zM(t,o,i,{toolCallId:n})};$g(oo,"mcp"),$g(zr,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),zg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{redactSecrets as uk}from"@augmentcode/auggie-v2";import{logger as xq,logPublic as kq}from"@hermes/logger";import{logger as GM}from"@hermes/logger";import{logger as DM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var Dg=DM.child({prefix:"pi-mcp"}),mi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},gd=3e4,sr=200,mt=class extends Error{statusCode;statusText;responseBody;constructor(e,r,n){super(`${e} ${r}: ${n}`),this.name="McpRegistryHttpError",this.statusCode=e,this.statusText=r,this.responseBody=n}};function yd(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,!yd(n))throw n;if(r<mi.maxTries-1){let o=Math.min(mi.initialMs*mi.mult**r,mi.maxMs);await pn(o)}}throw e}var Sa=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??gd}async callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:r===void 0?"{}":JSON.stringify({product_type:r}),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}getMcpTenantConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return hn(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function Lg(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)}`;Dg.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)}`;Dg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function LM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var jg=32;function jM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>jg&&(e=e.slice(0,jg)),e=e.replace(/_+$/,""),e}function Fg(t,e){let r=e?jM(e):"",n=LM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Ug(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 FM=1e12,UM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function qM(t){let e=UM.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 HM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<FM?t*1e3:t;if(typeof t=="string")return qM(t)}function qg(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:HM(e.expiresAt),resource:typeof e.resource=="string"?e.resource:void 0,serverMetadata:e.serverMetadata&&typeof e.serverMetadata=="object"?e.serverMetadata:void 0,client:e.client&&typeof e.client=="object"?e.client:void 0}}var Bt=GM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},so=class extends Error{},Gg=[100,500],ZM=Gg.length+1,BM=t=>new Promise(e=>{setTimeout(e,t)});function Hg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var _d="augment.mcp-access-token.",WM=JSON.stringify({retired:!0}),wa=3;function Wt(t){return`${_d}${t}`}function ba(t){return`legacy:${t}`}function At(t){return t?.id?Fg(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:Zg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Zg(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:Zg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Mt(t){return _i(vi(t))}function VM(t){return _i(vi(t))}function KM(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:KM(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=Ug({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 JM(t){return JSON.stringify({credentialIdentity:vi(t),credentialState:"retired",retired:!0})}function YM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=VM(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 vd(t){try{let e=qg(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||typeof r.authorization_endpoint!="string"||typeof r.token_endpoint!="string"||typeof n.client_id!="string")return;let o;return e.clientSecret?o=e.clientSecret:typeof n.client_secret=="string"&&(o=n.client_secret),{accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt,resource:e.resource,serverMetadata:{issuer:typeof r.issuer=="string"?r.issuer:r.authorization_endpoint,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint},client:{client_id:n.client_id,...o?{client_secret:o}:{}}}}catch{return}}var yi=class{_memory=new Yn;_getClient;_shouldPersist;_dirtyGenerations=new Map;_durableQueues=new Map;_registryMemoryWriteGenerations=new Map;_registryMemoryAuthorities=new Map;_registryMemoryCommittedAuthorities=new Map;_delay;_nextGeneration=0;constructor(e,r,n,o=BM){if(this._getClient=e,this._shouldPersist=r,this._delay=typeof n=="function"?n:o,n&&typeof n!="function"){this._memory.seed(n);for(let[i,s]of n.credentialIdentities??[]){let a=Mt(s);a&&this._registryMemoryCommittedAuthorities.set(i,a)}}}get(e){return this._memory.get(e)}commit(e,r,n){this._memory.commit(e,r,n);let o=Mt(n);o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e)}hasCredentialIdentity(e,r){return this._memory.hasCredentialIdentity(e,r)}reconcileCredentialIdentity(e,r,n){if(!this._memory.reconcileCredentialIdentity(e,r,n))return!1;let o=Mt(n);return o?this._registryMemoryCommittedAuthorities.set(e,o):this._registryMemoryCommittedAuthorities.delete(e),!0}clearLocalCredential(e){this._memory.clearLocalCredential(e),this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e)}set(e,r,n){if(n?.id){let o=this._beginRegistryMemoryWrite(e,n);this._persist(e,r,n,!0,()=>{this._commitRegistryMemoryWrite(e,r,n,o)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; authoritative memory was not changed`)});return}this._memory.set(e,r),this._registryMemoryCommittedAuthorities.delete(e),this._persist(e,r,n,!0).then(o=>{o&&this._memory.get(e)===r&&this.commit(e,r,n)}).catch(()=>{Bt.error(`Failed to persist MCP OAuth token for "${e}"; stored in-memory only`)})}async setAndPersist(e,r,n){if(n?.id){let i=this._beginRegistryMemoryWrite(e,n);await this._persist(e,r,n,!1,()=>{this._commitRegistryMemoryWrite(e,r,n,i)});return}let o=await this._persist(e,r,n,!1);this.commit(e,r,o?n:void 0)}_beginRegistryMemoryWrite(e,r){let n=Mt(r);if(!n)throw new Z;let o=(this._registryMemoryWriteGenerations.get(e)??0)+1;return this._registryMemoryWriteGenerations.set(e,o),this._registryMemoryAuthorities.set(e,n),{generation:o,identity:n,retirementGeneration:this._memory.credentialRetirementGeneration(e)}}_commitRegistryMemoryWrite(e,r,n,o){this._registryMemoryWriteGenerations.get(e)!==o.generation||this._registryMemoryAuthorities.get(e)!==o.identity||this._memory.credentialRetirementGeneration(e)!==o.retirementGeneration||(this._memory.commit(e,r,n),this._registryMemoryCommittedAuthorities.set(e,o.identity))}persist(e,r,n){return this._persist(e,r,n,!1)}async captureAuthenticatedIdentityVersion(e){let r=At(e),n=Mt(e),o=this._getClient();if(!(!r||!n||!o||!e))try{return await this._enqueueWrite(r,()=>this._captureAuthenticatedIdentityVersion({client:o,key:r,identity:n,registry:e}))}catch{throw new Z}}async _captureAuthenticatedIdentityVersion(e){for(let r=0;r<wa;r+=1){let n=await this._captureIdentityVersionAttempt(e);if(n!==void 0)return n}throw new Z}async _captureIdentityVersionAttempt(e){let{client:r,key:n,identity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return"0";let a=io(s.value);if(a.state==="retired")return s.version;if(a.credentialIdentity!==void 0&&a.credentialIdentity!==o)throw new Z;if(a.credentialIdentity===o&&a.state==="active")return s.version;let c=vd(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||!vd(i.value))throw new Z;return i.version})}catch{throw new Z}}persistAuthenticated(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}persistRefresh(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}async _persistAuthenticated(e,r,n,o){let i=this._getClient(),s=At(n),a=n&&s&&i&&o!==void 0?this._enqueueWrite(s,()=>i.upsertUserSecret(s,mn(r,n),o)):void 0,c=this._shouldPersist()&&i?()=>this._writeLegacyKey(e,r,!1,n):void 0;if(a)return this._drainRegistryWrites(e,a,c,void 0,n);if(n?.id||this._shouldPersist()&&!i)throw new Z;if(c)return{revision:await this._asPersistenceResult(c()),domain:ba(e)}}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async restoreAfterSupersededAuthentication(e,r,n,o,i,s=o){let a=this._getClient(),c=At(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||At(s)!==c)throw new Z;if(u=await this._enqueueWrite(c,()=>this._restoreRegistryCredential({client:a,key:c,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i})),!u)return}if(!c&&At(s))throw new Z;if(!this._shouldPersist())return u;if(!a)throw new Z;if(c&&o){try{await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredential({client:a,key:Wt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Bt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==ba(e))throw new Z;try{return await this._enqueueWrite(Wt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Wt(e),serverName:e,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i}))}catch{throw new Z}}async _restoreLegacyCredentialExact(e){let{client:r,key:n,serverName:o,persistedToken:i,currentToken:s,persistedIdentity:a,currentIdentity:c,persistedRevision:u}=e,d=await r.getUserSecretWithVersion(n);if(!(!d||d.version!==u.revision||d.value!==gi(i,a)))try{return{revision:await r.upsertUserSecret(n,gi(s,c),u.revision),domain:ba(o)}}catch(l){if(this._isVersionConflict(l))return;throw l}}async _restoreRegistryCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a,persistedRevision:c}=e,u=await r.getUserSecretWithVersion(n);if(!(!u||u.version!==c.revision||u.value!==mn(o,s)))try{return{revision:await r.upsertUserSecret(n,mn(i,a),c.revision),domain:`private:${a.id}`}}catch(d){if(this._isVersionConflict(d))return;throw d}}async _restoreLegacyCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a}=e,c=await r.getUserSecretWithVersion(n);if(!(!c||c.value!==gi(o,s)))try{await r.upsertUserSecret(n,gi(i,a),c.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async _drainRegistryWrites(e,r,n,o,i){let s;try{s=await r}catch{throw new Z}if(o?.(),i?.id&&!s)throw new Z;try{await n?.()}catch{Bt.error(`Failed to mirror MCP OAuth token for "${e}" to the legacy key`)}return i?.id&&s?{revision:s,domain:`private:${i.id}`}:void 0}async _writeRegistryCredential(e,r,n,o){let i=Mt(o);if(!i)throw new Z;for(let s=0;s<wa;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?io(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,mn(n,o),a?.version??"0")}catch(u){if(!this._isVersionConflict(u))throw u}}throw new Z}async _retireRegistryCredential(e,r,n){let o=Mt(n);if(!o)throw new Z;for(let i=0;i<wa;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?io(s.value):{};if(a.state==="retired"||a.credentialIdentity!==void 0&&a.credentialIdentity!==o)return;if(s&&a.credentialIdentity===void 0)throw new Z;try{await this._upsertUserSecretOnce(e,r,JM(n),s?.version??"0");return}catch(c){if(!this._isVersionConflict(c))throw c}}throw new Z}_isVersionConflict(e){return e instanceof mt&&(e.statusCode===412||e.statusCode===400&&e.responseBody.includes("version mismatch"))}async _persist(e,r,n,o,i){let s=this._getClient(),a=At(n),c=a&&n&&s?this._enqueueWrite(a,()=>{let d=this._getClient();if(!d)throw new Error("MCP secrets client unavailable");return this._writeRegistryCredential(d,a,r,n)},{credentialShape:"registry",operation:"write"}):void 0,u=this._shouldPersist()&&s?()=>this._writeLegacyKey(e,r,o,n):void 0;if(c)return this._drainRegistryWrites(e,c,u,i,n);if(n?.id||this._shouldPersist()&&!s)throw new Z;if(u)return{revision:await this._asPersistenceResult(u()),domain:ba(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Hg(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?ZM: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?Gg[r]:void 0,i=!(e instanceof Z)&&yd(e);if(o===void 0||!i){n&&Bt.warn("MCP OAuth credential persistence exhausted retries",{attempts:r+1,credentialShape:n.credentialShape,operation:n.operation});return}return o}_upsertUserSecretOnce(e,r,n,o){return typeof e.upsertUserSecretOnce=="function"?e.upsertUserSecretOnce(r,n,o):e.upsertUserSecret(r,n,o)}_deleteUserSecretOnce(e,r){return typeof e.deleteUserSecretOnce=="function"?e.deleteUserSecretOnce(r):e.deleteUserSecret(r)}_writeLegacyKey(e,r,n,o){let i=0,s=this._enqueueWrite(Wt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Wt(e),gi(r,o));return this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e),c},{credentialShape:"legacy",operation:"write",onGeneration:a=>{i=a,this._dirtyGenerations.set(e,a)}});return s.catch(a=>{(a instanceof so||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=Mt(r),i=this._registryMemoryCommittedAuthorities.get(e),s=n?.preserveNameState===!0&&(i===void 0||i!==o),a=(this._registryMemoryWriteGenerations.get(e)??0)+1;this._registryMemoryWriteGenerations.set(e,a),this._registryMemoryAuthorities.delete(e);let c=this._getClient(),u=At(r),d;u&&r&&(c?d=this._enqueueWrite(u,()=>{let p=this._getClient();if(!p)throw new Error("MCP secrets client unavailable");return this._retireRegistryCredential(p,u,r)},{credentialShape:"registry",operation:"delete"}):d=Promise.reject(new Z));let l=this._shouldPersist()&&!s,f;return l&&(c?f=this._enqueueWrite(Wt(e),async()=>{let p=await c.upsertUserSecret(Wt(e),WM)}):f=Promise.reject(new Z)),this._awaitRetirements(e,d,f).then(()=>{this._registryMemoryWriteGenerations.get(e)===a&&(this._memory.retireCredential(e,r,{preserveNameState:s}),s||(this._dirtyGenerations.delete(e),this._registryMemoryCommittedAuthorities.delete(e)))})}async _awaitRetirements(e,r,n){let[o,i]=await Promise.allSettled([r,n]);if(o.status==="rejected"&&Bt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Bt.error(`Failed to retire legacy MCP OAuth credential for "${e}" durably`),o.status==="rejected")throw o.reason;if(i.status==="rejected")throw i.reason}delete(e,r){if(this._memory.delete(e),this._memory.clearAuthRequired(e),this._dirtyGenerations.delete(e),this._registryMemoryWriteGenerations.set(e,(this._registryMemoryWriteGenerations.get(e)??0)+1),this._registryMemoryAuthorities.delete(e),this._registryMemoryCommittedAuthorities.delete(e),this._retireRegistryKey(r),!this._shouldPersist()){this._dirtyGenerations.delete(e);return}let n=Wt(e);if(!this._canScheduleDurableOperation(n)){this._dirtyGenerations.delete(e);return}let o=0;this._enqueueWrite(n,async()=>{let s=this._getClient();if(!s)throw new Error("MCP secrets client unavailable");await this._deleteUserSecretOnce(s,n)},{credentialShape:"legacy",operation:"delete",onGeneration:s=>{o=s,this._dirtyGenerations.set(e,s)}}).then(()=>{this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)}).catch(s=>{s instanceof so&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=At(e);!r||!e||!this._canScheduleDurableOperation(r)||this._enqueueWrite(r,async()=>{let n=this._getClient();if(!n)throw new Error("MCP secrets client unavailable");await this._retireRegistryCredential(n,r,e)},{credentialShape:"registry",operation:"delete"}).catch(()=>{Bt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Hg(e)))}markAuthRequired(e){this._memory.markAuthRequired(e)}isAuthRequired(e){return this._memory.isAuthRequired(e)}clearAuthRequired(e){this._memory.clearAuthRequired(e)}hasInFlightWrite(e){return this._dirtyGenerations.has(e)}async _loadRegistryToken(e,r){let n=At(r),o=Mt(r);if(!n||!o||!r)return{identityRejected:!1};try{return await this._enqueueWrite(n,()=>this._readRegistryToken({client:e,key:n,expectedIdentity:o,registry:r}))}catch{return{identityRejected:!0}}}async _readRegistryToken(e){for(let r=0;r<wa;r+=1){let n=await this._readRegistryTokenAttempt(e);if(n!==void 0)return n}return{identityRejected:!0}}async _readRegistryTokenAttempt(e){let{client:r,key:n,expectedIdentity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return{identityRejected:!1,authorityVersion:"0"};let a=io(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=vd(s.value);if(!c)return{identityRejected:!0};if(a.credentialIdentity===o&&a.state==="active")return{identityRejected:!1,token:c};try{return await r.upsertUserSecret(n,mn(c,i),s.version),{identityRejected:!1,token:c}}catch(u){return this._isVersionConflict(u)?void 0:{identityRejected:!0}}}async _importLegacyToken(e,r,n,o){let i=At(n),s=Mt(n);if(!i||!s||!n||o===void 0)return;let a=await this._loadLegacyToken(e,r,n);if(a)try{return await this._enqueueWrite(i,async()=>{let c=await e.getUserSecretWithVersion(i);if((c?.version??"0")===o){if(c){let u=io(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,mn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Wt(r));return o?YM(o,n):void 0}catch{return}}async ensureLoaded(e,r){if(this._memory.get(e)||!this._shouldPersist()||this.hasInFlightWrite(e))return;let o=this._getClient();if(!o)return;let i=this._memory.credentialRetirementGeneration(e),s=await this._loadRegistryToken(o,r);if(s.identityRejected)return;let a=s.token?{identityMatched:!0,token:s.token}:void 0;if(!(this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i)){if(!a){if(this._memory.isCredentialRetired(e))return;a=r?.id?await this._importLegacyToken(o,e,r,s.authorityVersion):await this._loadLegacyToken(o,e,r)}if(!a){Bt.debug(`Backend secret for MCP server "${e}" is not a usable OAuth token; ignoring`);return}this._memory.get(e)||this.hasInFlightWrite(e)||this._memory.credentialRetirementGeneration(e)!==i||(this.commit(e,a.token,a.identityMatched?r:void 0),Bt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Bg="Augment Code",Wg="https://augmentcode.com",Vg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var QM=1e3,e0=500;function wd(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 Sd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Kg(t){return new URLSearchParams({k:t}).toString().slice(2)}function t0(t,e){let r=`${Kg(t)}:${Kg(e)}`;return`Basic ${btoa(r)}`}function Qg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function r0(t){return t.client.token_endpoint_auth_method==="none"||!Qg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function n0(t){return t==="basic"?"body":t==="body"?"basic":void 0}function o0(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var i0=401,ey=500;function bd(t,...e){return t.status<ey&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Jg(t){return bd(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===i0}async function Yg(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=Qg(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=o0(c),d=c.slice(0,e0);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new Sd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*QM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Xg(t,e){try{return await Yg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&bd(r,"invalid_target"))return await Yg(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 Rd(t){return!(t instanceof gn)||t.status>=ey?!1:bd(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function Cd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=r0(t);try{return await Xg(e,r)}catch(n){let o=n0(r);if(!(n instanceof gn)||!o||!Jg(n))throw n;try{return await Xg(e,o)}catch(i){throw i instanceof gn&&Jg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as Q0}from"@hermes/logger";var kd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(kd="oauth4webapi/v3.8.6");function lo(t,e){if(t==null)return!1;try{return t instanceof e||Object.getPrototypeOf(t)[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]}catch{return!1}}var Vt="ERR_INVALID_ARG_VALUE",Xe="ERR_INVALID_ARG_TYPE";function he(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var $d=Symbol(),s0=Symbol(),a0=Symbol(),vn=Symbol();var ty=Symbol();var c0=new TextEncoder,u0=new TextDecoder;function Ed(t){return typeof t=="string"?c0.encode(t):u0.decode(t)}var Td;Uint8Array.prototype.toBase64?Td=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):Td=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 Ad;Uint8Array.fromBase64?Ad=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}}:Ad=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw he("The input to be decoded is not correctly encoded.",Vt,e)}};function Ca(t){return typeof t=="string"?Ad(t):Td(t)}var co=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=U0,Error.captureStackTrace?.(this,this.constructor)}},wi=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,r?.code&&(this.code=r?.code),Error.captureStackTrace?.(this,this.constructor)}};function O(t,e,r){return new wi(t,{code:e,cause:r})}function Pa(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Id(t){lo(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(kd&&!e.has("user-agent")&&e.set("user-agent",kd),e.has("authorization"))throw he('"options.headers" must not include the "authorization" header name',Vt);return e}function Od(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 d0(t){return t.includes("//")?t.replace("//","/"):t}function l0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=d0(`${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);fy(t,n?.[$d]!==!0);let o=r(new URL(t.href)),i=Id(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:Od(o,n?.signal)})}function ao(t,e,r,n,o){try{if(typeof t!="number"||!Number.isFinite(t))throw he(`${r} must be a number`,Xe,o);if(t>0)return;if(e){if(t!==0)throw he(`${r} must be a non-negative number`,Vt,o);return}throw he(`${r} must be a positive number`,Vt,o)}catch(i){throw n?O(i.message,n,o):i}}function $e(t,e,r,n){try{if(typeof t!="string")throw he(`${e} must be a string`,Xe,n);if(t.length===0)throw he(`${e} must not be empty`,Vt,n)}catch(o){throw r?O(o.message,r,n):o}}async function oy(t,e){let r=t;if(!(r instanceof URL)&&r!==Ea)throw he('"expectedIssuerIdentifier" must be an instance of URL',Xe);if(!lo(e,Response))throw he('"response" must be an instance of Response',Xe);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',qd,e);Ci(e);let n=await $a(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==Ea&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Aa,{expected:r.href,body:n,attribute:"issuer"});return n}function iy(t){h0(t,"application/json")}function p0(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,H0,t)}function h0(t,e){if(x0(t)!==e)throw p0(t,e)}function zd(){return Ca(crypto.getRandomValues(new Uint8Array(32)))}function sy(){return zd()}function ay(){return zd()}function cy(){return zd()}async function uy(t){return $e(t,"codeVerifier"),Ca(await crypto.subtle.digest("SHA-256",Ed(t)))}function Nd(t){let e=t?.[s0];return typeof e=="number"&&Number.isFinite(e)?e:0}function Dd(t){let e=t?.[a0];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Ld(){return Math.floor(Date.now()/1e3)}function Ta(t){if(typeof t!="object"||t===null)throw he('"as" must be an object',Xe);$e(t.issuer,'"as.issuer"')}function jd(t){if(typeof t!="object"||t===null)throw he('"client" must be an object',Xe);$e(t.client_id,'"client.client_id"')}function ry(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 Fd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function dy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=ry(r.client_id),s=ry(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function ly(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var m0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function fy(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",G0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",Z0,t)}function ny(t,e,r,n){let o;if(typeof t!="string"||!(o=m0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?B0:W0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return fy(o,n),o}function py(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?ny(t.mtls_endpoint_aliases[e],e,r,n):ny(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=F0,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=q0,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=j0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},xa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",g0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",y0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',v0="("+xa+")\\s*=\\s*"+y0,_0="("+xa+")\\s*=\\s*("+xa+")",S0=new RegExp("^[,\\s]*("+xa+")"),w0=new RegExp("^[,\\s]*"+v0+"[,\\s]*(.*)"),b0=new RegExp("^[,\\s]*"+_0+"[,\\s]*(.*)"),R0=new RegExp("^("+g0+")(?:$|[,\\s])(.*)");function C0(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(S0),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(w0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(b0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(R0)){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 P0(t){if(t.status>399&&t.status<500){Ci(t),iy(t);try{let e=await t.clone().json();if(Pa(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function hy(t,e,r){if(t.status!==e){A0(t);let n;throw(n=await P0(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)`,qd,t)}}function my(t){if(!Ud.has(t))throw he('"options.DPoP" is not a valid DPoPHandle',Vt)}function x0(t){return t.headers.get("content-type")?.split(";")[0]}async function k0(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:Od(n,s?.signal)})}async function E0(t,e,r,n,o,i){let s=py(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[$d]!==!0);o.set("grant_type",n);let a=Id(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(my(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await k0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var gy=new WeakMap,T0=new WeakMap;function yy(t){if(!t.id_token)return;let e=gy.get(t);if(!e)throw he('"ref" was already garbage collected or did not resolve from the proper sources',Vt);return e}async function vy(t,e,r,n,o,i){if(Ta(t),jd(e),!lo(r,Response))throw he('"response" must be an instance of Response',Xe);await hy(r,200,"Token Endpoint"),Ci(r);let s=await $a(r);if($e(s.access_token,'"response" body "access_token" property',V,{body:s}),$e(s.token_type,'"response" body "token_type" property',V,{body:s}),s.token_type=s.token_type.toLowerCase(),s.expires_in!==void 0){let a=typeof s.expires_in!="number"?parseFloat(s.expires_in):s.expires_in;ao(a,!0,'"response" body "expires_in" property',V,{body:s}),s.expires_in=a}if(s.refresh_token!==void 0&&$e(s.refresh_token,'"response" body "refresh_token" property',V,{body:s}),s.scope!==void 0&&typeof s.scope!="string")throw O('"response" body "scope" property must be a string',V,{body:s});if(s.id_token!==void 0){$e(s.id_token,'"response" body "id_token" property',V,{body:s});let a=["aud","exp","iat","iss","sub"];e.require_auth_time===!0&&a.push("auth_time"),e.default_max_age!==void 0&&(ao(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await V0(s.id_token,K0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Nd(e),Dd(e),o).then(N0.bind(void 0,a)).then($0.bind(void 0,t)).then(M0.bind(void 0,e.client_id));if(Array.isArray(c.aud)&&c.aud.length!==1){if(c.azp===void 0)throw O('ID Token "aud" (audience) claim includes additional untrusted audiences',Nr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',Nr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&ao(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),T0.set(r,u),gy.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 A0(t){let e;if(e=C0(t))throw new Ri("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function M0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',Nr,{expected:t,claims:e.claims,claim:"aud"});return e}function $0(t,e){let r=t[X0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',Nr,{expected:r,claims:e.claims,claim:"iss"});return e}var Ud=new WeakSet;function I0(t){return Ud.add(t),t}var O0=Symbol();async function _y(t,e,r,n,o,i,s){if(Ta(t),jd(e),!Ud.has(n))throw he('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Vt);$e(o,'"redirectUri"');let a=yn(n,"code");if(!a)throw O('no authorization code in "callbackParameters"',V);let c=new URLSearchParams(s?.additionalParameters);return c.set("redirect_uri",o),c.set("code",a),i!==O0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),E0(t,e,r,"authorization_code",c,s)}var z0={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 N0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${z0[r]}) claim missing`,V,{claims:e.claims});return e}var Pd=Symbol(),xd=Symbol();async function Sy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?D0(t,e,r,n.expectedNonce,n.maxAge,n[ty],n.recognizedTokenTypes):L0(t,e,r,n?.[ty],n?.recognizedTokenTypes)}async function D0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=Pd;break;case Pd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=xd;break;case xd:break;default:ao(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await vy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=yy(c);if(o!==xd){let d=Ld()+Nd(e),l=Dd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",ka,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===Pd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:n,claims:u,claim:"nonce"});return c}async function L0(t,e,r,n,o){let i=await vy(t,e,r,void 0,n,o),s=yy(i);if(s){if(e.default_max_age!==void 0){ao(e.default_max_age,!0,'"client.default_max_age"');let a=Ld()+Nd(e),c=Dd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",ka,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',Nr,{expected:void 0,claims:s,claim:"nonce"})}return i}var j0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",F0="OAUTH_RESPONSE_BODY_ERROR",U0="OAUTH_UNSUPPORTED_OPERATION",q0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Md="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var H0="OAUTH_RESPONSE_IS_NOT_JSON",qd="OAUTH_RESPONSE_IS_NOT_CONFORM",G0="OAUTH_HTTP_REQUEST_FORBIDDEN",Z0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",ka="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",Nr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Aa="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var B0="OAUTH_MISSING_SERVER_METADATA",W0="OAUTH_INVALID_SERVER_METADATA";function Ci(t){if(t.bodyUsed)throw he('"response" body has been used already',Vt)}async function V0(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(Ed(Ca(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Md,l)}if(!Pa(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new co('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(Ed(Ca(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Md,l)}if(!Pa(u))throw O("JWT Payload must be a top level object",V,t);let d=Ld()+r;if(u.exp!==void 0){if(typeof u.exp!="number")throw O('unexpected JWT "exp" (expiration time) claim type',V,{claims:u});if(u.exp<=d-n)throw O('unexpected JWT "exp" (expiration time) claim value, expiration is past current timestamp',ka,{claims:u,now:d,tolerance:n,claim:"exp"})}if(u.iat!==void 0&&typeof u.iat!="number")throw O('unexpected JWT "iat" (issued at) claim type',V,{claims:u});if(u.iss!==void 0&&typeof u.iss!="string")throw O('unexpected JWT "iss" (issuer) claim type',V,{claims:u});if(u.nbf!==void 0){if(typeof u.nbf!="number")throw O('unexpected JWT "nbf" (not before) claim type',V,{claims:u});if(u.nbf>d+n)throw O('unexpected JWT "nbf" (not before) claim value',ka,{claims:u,now:d,tolerance:n,claim:"nbf"})}if(u.aud!==void 0&&typeof u.aud!="string"&&!Array.isArray(u.aud))throw O('unexpected JWT "aud" (audience) claim type',V,{claims:u});return{header:c,claims:u,jwt:t}}function K0(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 J0=Symbol(),Y0=Symbol();function wy(t,e,r,n){if(Ta(t),jd(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 Y0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case J0: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 I0(new URLSearchParams(r))}async function by(t,e,r){Ta(t);let n=py(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[$d]!==!0),o=Id(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?.[vn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Od(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function Ry(t){if(!lo(t,Response))throw he('"response" must be an instance of Response',Xe);await hy(t,201,"Dynamic Client Registration Endpoint"),Ci(t);let e=await $a(t);return $e(e.client_id,'"response" body "client_id" property',V,{body:e}),e.client_secret!==void 0&&$e(e.client_secret,'"response" body "client_secret" property',V,{body:e}),e.client_secret&&ao(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function Cy(t,e){return f0(t,"resourceIdentifier",r=>(l0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Ma(t,e){let r=t;if(!(r instanceof URL)&&r!==Ea)throw he('"expectedResourceIdentifier" must be an instance of URL',Xe);if(!lo(e,Response))throw he('"response" must be an instance of Response',Xe);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',qd,e);Ci(e);let n=await $a(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==Ea&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Aa,{expected:r.href,body:n,attribute:"resource"});return n}async function $a(t,e=iy){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Md,n)}if(!Pa(r))throw O('"response" body must be a top level object',V,{body:r});return r}var Ea=Symbol(),X0=Symbol();var ky=Q0.child({prefix:"pi-mcp"}),Pi=1e4,e$=1e3,t$=401,Py=200,r$=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,n$=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,Ey;function fo(){return Ey??globalThis.fetch}function Ty(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Ay(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Gd(t){let e=Ay(t);try{let r=await o$(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await u$(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw za(r)}throw new Error("Failed to discover metadata URL")}async function o$(t){try{let e=await Cy(t,{signal:AbortSignal.timeout(Pi),[vn]:Ey??void 0});return e.ok?await Ma(t,e):(e.body?.cancel().catch(()=>{}),await My(t,e.headers.get("www-authenticate"))??await xy(t))}catch{return await xy(t)}}async function xy(t){for(let e of["HEAD","GET"])try{let r=await fo()(t,{method:e,signal:AbortSignal.timeout(Pi)});r.body?.cancel().catch(()=>{});let n=await My(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function My(t,e){let r=c$(e);if(r)try{let n=await fo()(r,{signal:AbortSignal.timeout(Pi)});return await i$(t,n)}catch{return}}async function i$(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Ma(t,new Response(r,n))}catch(o){if(!(o instanceof wi)||o.code!==Aa)throw o;let i=s$(r);if(!i||!a$(i,t))throw o;return await Ma(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 a$(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 c$(t){if(!t)return;let e=t.match(r$),r=t.match(n$),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function u$(t){for(let e of d$(t))try{let r=new URL(e,t),n=await fo()(r,{signal:AbortSignal.timeout(Pi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function d$(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 Zd(t){try{let e=await fo()(t,{signal:AbortSignal.timeout(Pi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await l$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await oy(o,new Response(r,n))}catch(e){throw za(e)}}async function l$(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 Hd=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 f$(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 Bd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return f$({...t,clientId:n});if(!e.registration_endpoint)throw new Hd(e.issuer);return await p$(e,r)}async function p$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await by(t,{client_name:Bg,client_uri:Wg,logo_uri:Vg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:h$});return n.ok||ky.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await Ry(n)}catch(r){throw za(r)}}async function h$(t,e){let r=await fo()(t,Ty(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||ky.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${g$(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 m$(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,Ty(o))}function g$(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>Py?`${t.slice(0,Py)}\u2026`:t}}async function Ia(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=sy(),c=await uy(a),u=ay(),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=Ay(i??t).toString(),m=new URL(r.authorization_endpoint);return m.searchParams.set("response_type","code"),m.searchParams.set("client_id",e.client_id),m.searchParams.set("code_challenge",c),m.searchParams.set("code_challenge_method","S256"),m.searchParams.set("redirect_uri",n),m.searchParams.set("resource",h),m.searchParams.set("state",u),p&&m.searchParams.set("scope",p),l?.includes("offline_access")&&m.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=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 Oa(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Wd(t){if(!t.resource)throw new Error("Cannot rebuild authorization state without a resource");let e=t.scope?.split(/\s+/).filter(r=>r&&r!=="offline_access").join(" ");return await Ia(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function y$(t,e,r){let n=await _y(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:m$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return Sy(t.serverMetadata,t.client,await v$(n))}async function Vd(t,e){try{let r=wy(e.serverMetadata,e.client,t,e.state),n=await S$(e.client,o=>y$(e,r,o));return R$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw za(r)}}async function v$(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 $y(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function _$(t){let e=$y(t);return e===void 0?ly():t.token_endpoint_auth_method==="client_secret_basic"?dy(e):Fd(e)}async function S$(t,e){try{return await e(_$(t))}catch(r){let n=w$(t);if(n&&b$(r))return await e(n);throw r}}function w$(t){let e=$y(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Fd(e)}function b$(t){return t instanceof uo?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Ri?t.status===t$||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function R$(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*e$:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function za(t){if(t instanceof uo||t instanceof bi){let e=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${e}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var C$=/(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,Iy=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Oy=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,zy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",P$=/[.*+?^${}()|[\]\\]/g;function Kd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function x$(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:Kd(a,r),{value:c&&"value"in c?Ny(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 Ny(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Kd(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 Kd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:x$(t,e,r)}function Yd(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(P$,"\\$&")).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=>Ny(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var k$=500,E$=8192,T$=6;function A$(t){return Iy.test(t)||Oy.test(t)||zy.test(t)}var M$=new RegExp(Iy.source,"g"),$$=new RegExp(Oy.source,"gi"),I$=new RegExp(zy.source,"g");function Dy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Na(t){return t&&Dy(t,E$).replace(M$,_n).replace($$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(I$,_n)}function Jd(t,e,r){if(e)return _n;if(typeof t=="string")return A$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=T$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Jd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Jd(i,C$.test(o),r+1);return n}function Ly(t,e=k$){if(t==null)return;let r=Jd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Dy(n,e)}var Fy={reportError:()=>{}},jy=Symbol.for("__pi_mcp_error_reporter_slot__");function Uy(){let t=globalThis,e=t[jy];return e||(e={reporter:null},t[jy]=e),e}function qy(t){let e=Uy(),r=e.reporter??Fy;return e.reporter=t,r}function O$(){return Uy().reporter??Fy}function xi(t,e){try{O$().reportError(t,e)}catch{}}import{logger as z$}from"@hermes/logger";var Xd=z$.child({prefix:"pi-mcp"});function Hy(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++):Xd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Xd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Gy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(_d)){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 Zy(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,Xd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function By(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as N$}from"@hermes/logger";var ki=N$.child({prefix:"pi-mcp"}),D$="$augment-",Ei=/\$augment-[a-zA-Z0-9_.-]+/g,L$=new RegExp(Ei.source);function Dr(t){return L$.test(t)}function Da(t){return t.slice(D$.length)}function Ti(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ei))e.add(Da(n[0]));return[...e].sort()}var j$=["permission_denied","missing","transient"];function Wy(t){let e=new Set(t);return j$.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 Vy(t,e,r,n,o,i,s){let a=[...t.matchAll(Ei)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Da(d);try{let p=await r(f);if(p===void 0||typeof p=="object"){n.add(f),i.set(f,p===void 0?"missing":p.reason),ki.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),ki.warn(`Secret "${f}" resolved empty for "${e}"`));let m=c.slice(0,l),g=s?s(h,m):h;c=m+g+c.slice(l+d.length),ki.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),ki.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Ky({configEnv:t,localEnv:e,getSecret:r}){let n={},o=new Set,i=new Set,s=new Map;for(let[a,c]of Object.entries(t)){if(!Dr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){ki.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Vy(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 F$=/["$`\\]/g;function U$(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 q$(t,e){let r=U$(e);if(r==="double")return t.replace(F$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Jy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Vy(t,"command",e,n,o,i,r?q$: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 bq}from"node:async_hooks";var Yy,Qd=Object.freeze({status:"aborted"});function S(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=s.prototype,d=Object.keys(u);for(let l=0;l<d.length;l++){let f=d[l];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:t});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let d of u._zod.deferred)d();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var Kt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},po=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Yy=globalThis).__zod_globalConfig??(Yy.__zod_globalConfig={});var ho=globalThis.__zod_globalConfig;function Qe(t){return t&&Object.assign(ho,t),ho}var H={};Gu(H,{BIGINT_FORMAT_RANGES:()=>tv,Class:()=>tl,NUMBER_FORMAT_RANGES:()=>al,aborted:()=>Fr,allowsEval:()=>ol,assert:()=>W$,assertEqual:()=>H$,assertIs:()=>Z$,assertNever:()=>B$,assertNotEqual:()=>G$,assignProp:()=>Lr,base64ToUint8Array:()=>nv,base64urlToUint8Array:()=>dI,cached:()=>go,captureStackTrace:()=>Fa,cleanEnum:()=>uI,cleanRegex:()=>Ii,clone:()=>yt,cloneDef:()=>K$,createTransparentProxy:()=>tI,defineLazy:()=>Y,esc:()=>ja,escapeRegex:()=>cr,explicitlyAborted:()=>cl,extend:()=>oI,finalizeIssue:()=>vt,floatSafeRemainder:()=>rl,getElementAtPath:()=>J$,getEnumValues:()=>Mi,getLengthableOrigin:()=>Oi,getParsedType:()=>eI,getSizableOrigin:()=>rv,hexToUint8Array:()=>fI,isObject:()=>Sn,isPlainObject:()=>jr,issue:()=>yo,joinValues:()=>La,jsonStringifyReplacer:()=>mo,merge:()=>sI,mergeDefs:()=>ar,normalizeParams:()=>M,nullish:()=>$i,numKeys:()=>Q$,objectClone:()=>V$,omit:()=>nI,optionalKeys:()=>sl,parsedType:()=>ul,partial:()=>aI,pick:()=>rI,prefixIssues:()=>ur,primitiveTypes:()=>ev,promiseAllObject:()=>Y$,propertyKeyTypes:()=>il,randomString:()=>X$,required:()=>cI,safeExtend:()=>iI,shallowClone:()=>Qy,slugify:()=>nl,stringifyPrimitive:()=>Ua,uint8ArrayToBase64:()=>ov,uint8ArrayToBase64url:()=>lI,uint8ArrayToHex:()=>pI,unwrapMessage:()=>Ai});function H$(t){return t}function G$(t){return t}function Z$(t){}function B$(t){throw new Error("Unexpected value in exhaustive check")}function W$(t){}function Mi(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,o])=>e.indexOf(+n)===-1).map(([n,o])=>o)}function La(t,e="|"){return t.map(r=>Ua(r)).join(e)}function mo(t,e){return typeof e=="bigint"?e.toString():e}function go(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function $i(t){return t==null}function Ii(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function rl(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 Xy=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Xy)return n===void 0&&(n=Xy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function V$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Lr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ar(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function K$(t){return ar(t._zod.def)}function J$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Y$(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 X$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function ja(t){return JSON.stringify(t)}function nl(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Fa="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var ol=go(()=>{if(ho.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function jr(t){if(Sn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Sn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Qy(t){return jr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function Q$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var eI=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}`)}},il=new Set(["string","number","symbol"]),ev=new Set(["string","number","bigint","boolean","symbol","undefined"]);function cr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function M(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function tI(t){let e;return new Proxy({},{get(r,n,o){return e??(e=t()),Reflect.get(e,n,o)},set(r,n,o,i){return e??(e=t()),Reflect.set(e,n,o,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,o){return e??(e=t()),Reflect.defineProperty(e,n,o)}})}function Ua(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function sl(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var al={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]},tv={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function rI(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=r.shape[a])}return Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function nI(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return Lr(this,"shape",s),s},checks:[]});return yt(t,i)}function oI(t,e){if(!jr(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ar(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Lr(this,"shape",i),i}});return yt(t,o)}function iI(t,e){if(!jr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Lr(this,"shape",n),n}});return yt(t,r)}function 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=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Lr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yt(t,r)}function aI(t,e,r){let o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ar(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return Lr(this,"shape",c),c},checks:[]});return yt(e,s)}function cI(t,e,r){let n=ar(e._zod.def,{get shape(){let o=e._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new t({type:"nonoptional",innerType:o[s]});return Lr(this,"shape",i),i}});return yt(e,n)}function Fr(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function cl(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue===!1)return!0;return!1}function ur(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ai(t){return typeof t=="string"?t:t?.message}function vt(t,e,r){let n=t.message?t.message:Ai(t.inst?._zod.def?.error?.(t))??Ai(e?.error?.(t))??Ai(r.customError?.(t))??Ai(r.localeError?.(t))??"Invalid input",{inst:o,continue:i,input:s,...a}=t;return a.path??(a.path=[]),a.message=n,e?.reportInput&&(a.input=s),a}function rv(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Oi(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function ul(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 uI(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function nv(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 ov(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function dI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return nv(e+r)}function lI(t){return ov(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function fI(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 pI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var tl=class{constructor(...e){}};var iv=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,mo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},qa=S("$ZodError",iv),dl=S("$ZodError",iv,{Parent:Error});function ll(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 fl(t,e=r=>r.message){let r={_errors:[]},n=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)r._errors.push(e(s));else{let c=r,u=0;for(;u<a.length;){let d=a[u];u===a.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(e(s))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}}};return n(t),r}var Ha=t=>(e,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Kt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Qe())));throw Fa(a,o?.callee),a}return s.value};var Ga=t=>async(e,r,n,o)=>{let i=n?{...n,async:!0}:{async:!0},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>vt(c,i,Qe())));throw Fa(a,o?.callee),a}return s.value};var zi=t=>(e,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new Kt;return i.issues.length?{success:!1,error:new(t??qa)(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},Ni=zi(dl),Di=t=>async(e,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=e._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(s=>vt(s,o,Qe())))}:{success:!0,data:i.value}},Za=Di(dl),sv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ha(t)(e,r,o)};var av=t=>(e,r,n)=>Ha(t)(e,r,n);var cv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ga(t)(e,r,o)};var uv=t=>async(e,r,n)=>Ga(t)(e,r,n);var dv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var lv=t=>(e,r,n)=>zi(t)(e,r,n);var fv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Di(t)(e,r,o)};var pv=t=>async(e,r,n)=>Di(t)(e,r,n);var hv=/^[cC][0-9a-z]{6,}$/,mv=/^[0-9a-z]+$/,gv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,yv=/^[0-9a-vA-V]{20}$/,vv=/^[A-Za-z0-9]{27}$/,_v=/^[a-zA-Z0-9_-]{21}$/,Sv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var wv=/^([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})$/,pl=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 bv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var mI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Rv(){return new RegExp(mI,"u")}var Cv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Pv=/^(([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 xv=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,kv=/^(([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])$/,Ev=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,hl=/^[A-Za-z0-9_-]*$/;var Tv=/^https?$/,Av=/^\+[1-9]\d{6,14}$/,Mv="(?:(?:\\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])))",$v=new RegExp(`^${Mv}$`);function Iv(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 Ov(t){return new RegExp(`^${Iv(t)}$`)}function zv(t){let e=Iv({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(`^${Mv}T(?:${n})$`)}var Nv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Dv=/^-?\d+n?$/,Lv=/^-?\d+$/,ml=/^-?\d+(?:\.\d+)?$/,jv=/^(?:true|false)$/i,Fv=/^null$/i;var Uv=/^[^A-Z]*$/,qv=/^[^a-z]*$/;var Oe=S("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Hv={number:"number",bigint:"bigint",object:"date"},gl=S("$ZodCheckLessThan",(t,e)=>{Oe.init(t,e);let r=Hv[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})}}),yl=S("$ZodCheckGreaterThan",(t,e)=>{Oe.init(t,e);let r=Hv[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})}}),Gv=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):rl(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})}}),Zv=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]=al[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=Lv)}),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 Bv=S("$ZodCheckMaxLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<o&&(n._zod.bag.maximum=e.maximum)}),t._zod.check=n=>{let o=n.value;if(o.length<=e.maximum)return;let s=Oi(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Wv=S("$ZodCheckMinLength",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;if(o.length>=e.minimum)return;let s=Oi(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Vv=S("$ZodCheckLengthEquals",(t,e)=>{var r;Oe.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!$i(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),t._zod.check=n=>{let o=n.value,i=o.length;if(i===e.length)return;let s=Oi(o),a=i>e.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),ji=S("$ZodCheckStringFormat",(t,e)=>{var r,n;Oe.init(t,e),t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Kv=S("$ZodCheckRegex",(t,e)=>{ji.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Jv=S("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Uv),ji.init(t,e)}),Yv=S("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=qv),ji.init(t,e)}),Xv=S("$ZodCheckIncludes",(t,e)=>{Oe.init(t,e);let r=cr(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:t,continue:!e.abort})}}),Qv=S("$ZodCheckStartsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`^${cr(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),e_=S("$ZodCheckEndsWith",(t,e)=>{Oe.init(t,e);let r=new RegExp(`.*${cr(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var t_=S("$ZodCheckOverwrite",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ba=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
25
25
  `).filter(s=>s),o=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(o)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let e=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new e(...r,o.join(`
26
- `))}};var n_={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=n_;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let o of n)for(let i of o._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let o=(s,a,c)=>{let u=Fr(s),d;for(let l of a){if(l._zod.def.when){if(cl(s)||!l._zod.def.when(s))continue}else if(u)continue;let f=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&c?.async===!1)throw new Kt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=Fr(s,f)))});else{if(s.issues.length===f)continue;u||(u=Fr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(Fr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Kt;return u.then(d=>t._zod.parse(d,c))}return t._zod.parse(u,c)};t._zod.run=(s,a)=>{if(a.skipChecks)return t._zod.parse(s,a);if(a.direction==="backward"){let u=t._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(d=>i(d,s,a)):i(u,s,a)}let c=t._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new Kt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}Y(t,"~standard",()=>({validate:o=>{try{let i=Ni(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Ga(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Va=S("$ZodString",(t,e)=>{re.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Nv(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),ce=S("$ZodStringFormat",(t,e)=>{ji.init(t,e),Va.init(t,e)}),f_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e)}),p_=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=pl(n))}else e.pattern??(e.pattern=pl());ce.init(t,e)}),h_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),m_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Tv.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})}}}),g_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Rv()),ce.init(t,e)}),y_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)}),v_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),__=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),S_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),w_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),b_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),R_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=zv(e)),ce.init(t,e)}),C_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=$v),ce.init(t,e)}),P_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Ov(e)),ce.init(t,e)}),x_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),k_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e),t._zod.bag.format="ipv4"}),E_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Pv),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 T_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e)}),A_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=kv),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 M_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var $_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{M_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function vI(t){if(!hl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return M_(r)}var I_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=hl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{vI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),O_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Av),ce.init(t,e)});function _I(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 z_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{_I(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var _l=S("$ZodNumber",(t,e)=>{re.init(t,e),t._zod.pattern=t._zod.bag.pattern??ml,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}}),N_=S("$ZodNumberFormat",(t,e)=>{Zv.init(t,e),_l.init(t,e)}),D_=S("$ZodBoolean",(t,e)=>{re.init(t,e),t._zod.pattern=jv,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}}),L_=S("$ZodBigInt",(t,e)=>{re.init(t,e),t._zod.pattern=Dv,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 j_=S("$ZodNull",(t,e)=>{re.init(t,e),t._zod.pattern=Fv,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}}),F_=S("$ZodAny",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),U_=S("$ZodUnknown",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),q_=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 H_=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 o_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var G_=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=>o_(u,r,s))):o_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Wa(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...ur(r,t.issues))}if(!s&&!o){t.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}t.value===void 0?s&&(e.value[r]=void 0):e.value[r]=t.value}function Z_(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=sl(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function B_(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=>Wa(h,r,f,e,d,l))):Wa(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 SI=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(()=>Z_(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=>Wa(v,a,f,u,h,m))):Wa(g,a,f,u,h,m)}return i?B_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),W_=S("$ZodObjectJIT",(t,e)=>{SI.init(t,e);let r=t._zod.parse,n=go(()=>Z_(e)),o=f=>{let p=new Za(["shape","payload","ctx"]),h=n.value,m=b=>{let R=La(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],_=La(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 n_={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=n_;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let o of n)for(let i of o._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let o=(s,a,c)=>{let u=Fr(s),d;for(let l of a){if(l._zod.def.when){if(cl(s)||!l._zod.def.when(s))continue}else if(u)continue;let f=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&c?.async===!1)throw new Kt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=Fr(s,f)))});else{if(s.issues.length===f)continue;u||(u=Fr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(Fr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Kt;return u.then(d=>t._zod.parse(d,c))}return t._zod.parse(u,c)};t._zod.run=(s,a)=>{if(a.skipChecks)return t._zod.parse(s,a);if(a.direction==="backward"){let u=t._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(d=>i(d,s,a)):i(u,s,a)}let c=t._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new Kt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}Y(t,"~standard",()=>({validate:o=>{try{let i=Ni(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Za(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ka=S("$ZodString",(t,e)=>{re.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Nv(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),ce=S("$ZodStringFormat",(t,e)=>{ji.init(t,e),Ka.init(t,e)}),f_=S("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e)}),p_=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=pl(n))}else e.pattern??(e.pattern=pl());ce.init(t,e)}),h_=S("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)}),m_=S("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Tv.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})}}}),g_=S("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Rv()),ce.init(t,e)}),y_=S("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)}),v_=S("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),__=S("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),S_=S("$ZodULID",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),w_=S("$ZodXID",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),b_=S("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),R_=S("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=zv(e)),ce.init(t,e)}),C_=S("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=$v),ce.init(t,e)}),P_=S("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Ov(e)),ce.init(t,e)}),x_=S("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),k_=S("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e),t._zod.bag.format="ipv4"}),E_=S("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Pv),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 T_=S("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=xv),ce.init(t,e)}),A_=S("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=kv),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 M_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var $_=S("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Ev),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{M_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function vI(t){if(!hl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return M_(r)}var I_=S("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=hl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{vI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),O_=S("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Av),ce.init(t,e)});function _I(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 z_=S("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{_I(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var _l=S("$ZodNumber",(t,e)=>{re.init(t,e),t._zod.pattern=t._zod.bag.pattern??ml,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}}),N_=S("$ZodNumberFormat",(t,e)=>{Zv.init(t,e),_l.init(t,e)}),D_=S("$ZodBoolean",(t,e)=>{re.init(t,e),t._zod.pattern=jv,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}}),L_=S("$ZodBigInt",(t,e)=>{re.init(t,e),t._zod.pattern=Dv,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 j_=S("$ZodNull",(t,e)=>{re.init(t,e),t._zod.pattern=Fv,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}}),F_=S("$ZodAny",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),U_=S("$ZodUnknown",(t,e)=>{re.init(t,e),t._zod.parse=r=>r}),q_=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 H_=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 o_(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var G_=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=>o_(u,r,s))):o_(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Va(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...ur(r,t.issues))}if(!s&&!o){t.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}t.value===void 0?s&&(e.value[r]=void 0):e.value[r]=t.value}function Z_(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=sl(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function B_(t,e,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,d=c.optin==="optional",l=c.optout==="optional";for(let f in e){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}let p=c.run({value:e[f],issues:[]},n);p instanceof Promise?t.push(p.then(h=>Va(h,r,f,e,d,l))):Va(p,r,f,e,d,l)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:i}),t.length?Promise.all(t).then(()=>r):r}var SI=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(()=>Z_(e));Y(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=Sn,i=e.catchall,s;t._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let d=[],l=s.shape;for(let f of s.keys){let p=l[f],h=p._zod.optin==="optional",m=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>Va(v,a,f,u,h,m))):Va(g,a,f,u,h,m)}return i?B_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),W_=S("$ZodObjectJIT",(t,e)=>{SI.init(t,e);let r=t._zod.parse,n=go(()=>Z_(e)),o=f=>{let p=new Ba(["shape","payload","ctx"]),h=n.value,m=b=>{let R=ja(b);return`shape[${R}]._zod.run({ value: input[${R}], issues: [] }, ctx)`};p.write("const input = payload.value;");let g=Object.create(null),v=0;for(let b of h.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of h.keys){let R=g[b],_=ja(b),C=f[b],I=C?._zod?.optin==="optional",Q=C?._zod?.optout==="optional";p.write(`const ${R} = ${m(b)};`),I&&Q?p.write(`
27
27
  if (${R}.issues.length) {
28
28
  if (${_} in input) {
29
29
  payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
@@ -82,9 +82,9 @@ 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&&ol.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?B_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function i_(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let o=t.filter(i=>!Fr(i));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>vt(s,n,Qe())))}),e)}var Sl=S("$ZodUnion",(t,e)=>{re.init(t,e),Y(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Y(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Y(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Y(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Ii(o.source)).join("|")})$`)}});let r=e.options.length===1?e.options[0]._zod.run:null;t._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,s=[];for(let a of e.options){let c=a._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}return i?Promise.all(s).then(a=>i_(a,n,t,o)):i_(s,n,t,o)}});var V_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,Sl.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)}}),K_=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])=>s_(r,c,u)):s_(r,i,s)}});function vl(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(jr(t)&&jr(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(let i of n){let s=vl(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=vl(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 s_(t,e,r){let n=new Map,o;for(let a of e.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else t.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else t.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&t.issues.push({...o,keys:i}),Fr(t))return t;let s=vl(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 J_=S("$ZodRecord",(t,e)=>{re.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!jr(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:t}),r;let i=[],s=e.keyType._zod.values;if(s){r.value={};let a=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let d=e.keyType._zod.run({value:u,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(p=>vt(p,n,Qe())),input:u,path:[u],inst:t});continue}let l=d.value,f=e.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(p=>{p.issues.length&&r.issues.push(...ur(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...ur(u,f.issues)),r.value[l]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&ml.test(a)&&c.issues.length){let l=e.keyType._zod.run({value:Number(a),issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");l.issues.length===0&&(c=l)}if(c.issues.length){e.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(l=>vt(l,n,Qe())),input:a,path:[a],inst:t});continue}let d=e.valueType._zod.run({value:o[a],issues:[]},n);d instanceof Promise?i.push(d.then(l=>{l.issues.length&&r.issues.push(...ur(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...ur(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var Y_=S("$ZodEnum",(t,e)=>{re.init(t,e);let r=Mi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>il.has(typeof o)).map(o=>typeof o=="string"?cr(o):o.toString()).join("|")})$`),t._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),X_=S("$ZodLiteral",(t,e)=>{if(re.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?cr(n):n?cr(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}});var Q_=S("$ZodTransform",(t,e)=>{re.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new po(t.constructor.name);let o=e.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r.fallback=!0,r));if(o instanceof Promise)throw new Kt;return r.value=o,r.fallback=!0,r}});function a_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var wl=S("$ZodOptional",(t,e)=>{re.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let o=r.value,i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>a_(s,o)):a_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),eS=S("$ZodExactOptional",(t,e)=>{wl.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)}),tS=S("$ZodNullable",(t,e)=>{re.init(t,e),Y(t._zod,"optin",()=>e.innerType._zod.optin),Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(r.source)}|null)$`):void 0}),Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),rS=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=>c_(i,e)):c_(o,e)}});function c_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var nS=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))}),oS=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=>u_(i,t)):u_(o,t)}});function u_(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 iS=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 bl=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=>Ba(s,e.in,n)):Ba(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ba(i,e.out,n)):Ba(o,e.out,n)}});function Ba(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 sS=S("$ZodPreprocess",(t,e)=>{bl.init(t,e)}),aS=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(d_):d_(o)}});function d_(t){return t.value=Object.freeze(t.value),t}var cS=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=>l_(i,r,n,t));l_(o,r,n,t)}});function l_(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 wI=()=>{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=ul(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Fa(o.values[0])}`:`Invalid option: expected one of ${Da(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":""}: ${Da(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 uS(){return{localeError:wI()}}var dS;var Rl=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 lS(){return new Rl}(dS=globalThis).__zod_globalRegistry??(dS.__zod_globalRegistry=lS());var Ur=globalThis.__zod_globalRegistry;function fS(t,e){return new t({type:"string",...M(e)})}function pS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function hS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Cl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function mS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function gS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function yS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function vS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function Pl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function _S(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function SS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function wS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function bS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function PS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function xS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function IS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function OS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function zS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function NS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function DS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function LS(t,e){return new t({type:"number",checks:[],...M(e)})}function jS(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function FS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function US(t,e){return new t({type:"boolean",...M(e)})}function qS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function HS(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function GS(t,e){return new t({type:"null",...M(e)})}function ZS(t){return new t({type:"any"})}function BS(t){return new t({type:"unknown"})}function WS(t,e){return new t({type:"never",...M(e)})}function VS(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new gl({check:"less_than",...M(e),value:t,inclusive:!1})}function dr(t,e){return new gl({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new yl({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new yl({check:"greater_than",...M(e),value:t,inclusive:!0})}function Fi(t,e){return new Gv({check:"multiple_of",...M(e),value:t})}function Ka(t,e){return new Bv({check:"max_length",...M(e),maximum:t})}function So(t,e){return new Wv({check:"min_length",...M(e),minimum:t})}function Ja(t,e){return new Vv({check:"length_equals",...M(e),length:t})}function xl(t,e){return new Kv({check:"string_format",format:"regex",...M(e),pattern:t})}function kl(t){return new Jv({check:"string_format",format:"lowercase",...M(t)})}function El(t){return new Yv({check:"string_format",format:"uppercase",...M(t)})}function Tl(t,e){return new Xv({check:"string_format",format:"includes",...M(e),includes:t})}function Al(t,e){return new Qv({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Ml(t,e){return new e_({check:"string_format",format:"ends_with",...M(e),suffix:t})}function qr(t){return new t_({check:"overwrite",tx:t})}function $l(t){return qr(e=>e.normalize(t))}function Il(){return qr(t=>t.trim())}function Ol(){return qr(t=>t.toLowerCase())}function zl(){return qr(t=>t.toUpperCase())}function Nl(){return qr(t=>nl(t))}function KS(t,e,r){return new t({type:"array",element:e,...M(r)})}function JS(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function YS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function XS(t,e){let r=bI(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 bI(t,e){let r=new Oe({check:"custom",...M(e)});return r._zod.check=t,r}function Dl(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Ur,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function be(t,e,r={path:[],schemaPath:[]}){var n;let o=t._zod.def,i=e.seen.get(t);if(i)return i.count++,r.schemaPath.includes(t)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,s);let a=t._zod.toJSONSchema?.();if(a)s.schema=a;else{let d={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,s.schema,d);else{let f=s.schema,p=e.processors[o.type];if(!p)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);p(t,e,f,d)}let l=t._zod.parent;l&&(s.ref||(s.ref=l),be(l,e,d),e.seen.get(l).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),e.io==="input"&&Ge(t)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(t).schema}function Ll(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of t.seen.entries()){let a=t.metadataRegistry.get(s[0])?.id;if(a){let c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}let o=s=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let l=t.external.registry.get(s[0])?.id,f=t.external.uri??(h=>h);if(l)return{ref:f(l)};let p=s[1].defId??s[1].schema.id??`schema${t.counter++}`;return s[1].defId=p,{defId:p,ref:`${f("__shared")}#/${a}/${p}`}}if(s[1]===r)return{ref:"#"};let u=`#/${a}/`,d=s[1].schema.id??`__schema${t.counter++}`;return{defId:d,ref:u+d}},i=s=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:u}=o(s);a.def={...a.schema},u&&(a.defId=u);let d=a.schema;for(let l in d)delete d[l];d.$ref=c};if(t.cycles==="throw")for(let s of t.seen.entries()){let a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
85
+ `)}p.write("payload.value = newResult;"),p.write("return payload;");let w=p.compile();return(b,R)=>w(f,b,R)},i,s=Sn,a=!ho.jitless,u=a&&ol.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?B_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function i_(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let o=t.filter(i=>!Fr(i));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>vt(s,n,Qe())))}),e)}var Sl=S("$ZodUnion",(t,e)=>{re.init(t,e),Y(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Y(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Y(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Y(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Ii(o.source)).join("|")})$`)}});let r=e.options.length===1?e.options[0]._zod.run:null;t._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,s=[];for(let a of e.options){let c=a._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}return i?Promise.all(s).then(a=>i_(a,n,t,o)):i_(s,n,t,o)}});var V_=S("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,Sl.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)}}),K_=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])=>s_(r,c,u)):s_(r,i,s)}});function vl(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(jr(t)&&jr(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(let i of n){let s=vl(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=vl(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 s_(t,e,r){let n=new Map,o;for(let a of e.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else t.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else t.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&t.issues.push({...o,keys:i}),Fr(t))return t;let s=vl(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 J_=S("$ZodRecord",(t,e)=>{re.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!jr(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:t}),r;let i=[],s=e.keyType._zod.values;if(s){r.value={};let a=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let d=e.keyType._zod.run({value:u,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(p=>vt(p,n,Qe())),input:u,path:[u],inst:t});continue}let l=d.value,f=e.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(p=>{p.issues.length&&r.issues.push(...ur(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...ur(u,f.issues)),r.value[l]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&ml.test(a)&&c.issues.length){let l=e.keyType._zod.run({value:Number(a),issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");l.issues.length===0&&(c=l)}if(c.issues.length){e.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(l=>vt(l,n,Qe())),input:a,path:[a],inst:t});continue}let d=e.valueType._zod.run({value:o[a],issues:[]},n);d instanceof Promise?i.push(d.then(l=>{l.issues.length&&r.issues.push(...ur(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...ur(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var Y_=S("$ZodEnum",(t,e)=>{re.init(t,e);let r=Mi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>il.has(typeof o)).map(o=>typeof o=="string"?cr(o):o.toString()).join("|")})$`),t._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),X_=S("$ZodLiteral",(t,e)=>{if(re.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?cr(n):n?cr(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}});var Q_=S("$ZodTransform",(t,e)=>{re.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new po(t.constructor.name);let o=e.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r.fallback=!0,r));if(o instanceof Promise)throw new Kt;return r.value=o,r.fallback=!0,r}});function a_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var wl=S("$ZodOptional",(t,e)=>{re.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let o=r.value,i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>a_(s,o)):a_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),eS=S("$ZodExactOptional",(t,e)=>{wl.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)}),tS=S("$ZodNullable",(t,e)=>{re.init(t,e),Y(t._zod,"optin",()=>e.innerType._zod.optin),Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ii(r.source)}|null)$`):void 0}),Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),rS=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=>c_(i,e)):c_(o,e)}});function c_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var nS=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))}),oS=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=>u_(i,t)):u_(o,t)}});function u_(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 iS=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 bl=S("$ZodPipe",(t,e)=>{re.init(t,e),Y(t._zod,"values",()=>e.in._zod.values),Y(t._zod,"optin",()=>e.in._zod.optin),Y(t._zod,"optout",()=>e.out._zod.optout),Y(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Wa(s,e.in,n)):Wa(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Wa(i,e.out,n)):Wa(o,e.out,n)}});function Wa(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var sS=S("$ZodPreprocess",(t,e)=>{bl.init(t,e)}),aS=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(d_):d_(o)}});function d_(t){return t.value=Object.freeze(t.value),t}var cS=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=>l_(i,r,n,t));l_(o,r,n,t)}});function l_(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 wI=()=>{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=ul(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ua(o.values[0])}`:`Invalid option: expected one of ${La(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=e(o.origin);return s?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=e(o.origin);return s?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${s.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${La(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return o.options&&Array.isArray(o.options)&&o.options.length>0?`Invalid discriminator value. Expected ${o.options.map(s=>`'${s}'`).join(" | ")}`:"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function uS(){return{localeError:wI()}}var dS;var Rl=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 lS(){return new Rl}(dS=globalThis).__zod_globalRegistry??(dS.__zod_globalRegistry=lS());var Ur=globalThis.__zod_globalRegistry;function fS(t,e){return new t({type:"string",...M(e)})}function pS(t,e){return new t({type:"string",coerce:!0,...M(e)})}function hS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...M(e)})}function Cl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...M(e)})}function mS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...M(e)})}function gS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...M(e)})}function yS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...M(e)})}function vS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...M(e)})}function Pl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...M(e)})}function _S(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...M(e)})}function SS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...M(e)})}function wS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...M(e)})}function bS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...M(e)})}function RS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...M(e)})}function CS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...M(e)})}function PS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...M(e)})}function xS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...M(e)})}function kS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...M(e)})}function ES(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...M(e)})}function TS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...M(e)})}function AS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...M(e)})}function MS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...M(e)})}function $S(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...M(e)})}function IS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...M(e)})}function OS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...M(e)})}function zS(t,e){return new t({type:"string",format:"date",check:"string_format",...M(e)})}function NS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...M(e)})}function DS(t,e){return new t({type:"string",format:"duration",check:"string_format",...M(e)})}function LS(t,e){return new t({type:"number",checks:[],...M(e)})}function jS(t,e){return new t({type:"number",coerce:!0,checks:[],...M(e)})}function FS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...M(e)})}function US(t,e){return new t({type:"boolean",...M(e)})}function qS(t,e){return new t({type:"boolean",coerce:!0,...M(e)})}function HS(t,e){return new t({type:"bigint",coerce:!0,...M(e)})}function GS(t,e){return new t({type:"null",...M(e)})}function ZS(t){return new t({type:"any"})}function BS(t){return new t({type:"unknown"})}function WS(t,e){return new t({type:"never",...M(e)})}function VS(t,e){return new t({type:"date",coerce:!0,...M(e)})}function vo(t,e){return new gl({check:"less_than",...M(e),value:t,inclusive:!1})}function dr(t,e){return new gl({check:"less_than",...M(e),value:t,inclusive:!0})}function _o(t,e){return new yl({check:"greater_than",...M(e),value:t,inclusive:!1})}function $t(t,e){return new yl({check:"greater_than",...M(e),value:t,inclusive:!0})}function Fi(t,e){return new Gv({check:"multiple_of",...M(e),value:t})}function Ja(t,e){return new Bv({check:"max_length",...M(e),maximum:t})}function So(t,e){return new Wv({check:"min_length",...M(e),minimum:t})}function Ya(t,e){return new Vv({check:"length_equals",...M(e),length:t})}function xl(t,e){return new Kv({check:"string_format",format:"regex",...M(e),pattern:t})}function kl(t){return new Jv({check:"string_format",format:"lowercase",...M(t)})}function El(t){return new Yv({check:"string_format",format:"uppercase",...M(t)})}function Tl(t,e){return new Xv({check:"string_format",format:"includes",...M(e),includes:t})}function Al(t,e){return new Qv({check:"string_format",format:"starts_with",...M(e),prefix:t})}function Ml(t,e){return new e_({check:"string_format",format:"ends_with",...M(e),suffix:t})}function qr(t){return new t_({check:"overwrite",tx:t})}function $l(t){return qr(e=>e.normalize(t))}function Il(){return qr(t=>t.trim())}function Ol(){return qr(t=>t.toLowerCase())}function zl(){return qr(t=>t.toUpperCase())}function Nl(){return qr(t=>nl(t))}function KS(t,e,r){return new t({type:"array",element:e,...M(r)})}function JS(t,e,r){let n=M(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function YS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...M(r)})}function XS(t,e){let r=bI(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 bI(t,e){let r=new Oe({check:"custom",...M(e)});return r._zod.check=t,r}function Dl(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Ur,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function be(t,e,r={path:[],schemaPath:[]}){var n;let o=t._zod.def,i=e.seen.get(t);if(i)return i.count++,r.schemaPath.includes(t)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,s);let a=t._zod.toJSONSchema?.();if(a)s.schema=a;else{let d={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,s.schema,d);else{let f=s.schema,p=e.processors[o.type];if(!p)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);p(t,e,f,d)}let l=t._zod.parent;l&&(s.ref||(s.ref=l),be(l,e,d),e.seen.get(l).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),e.io==="input"&&Ge(t)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(t).schema}function Ll(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 jl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),h=p.schema;if(h.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(h.$ref&&p.def)for(let g in u)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(u[g])===JSON.stringify(p.def[g])&&delete u[g]}let f=a._zod.parent;if(f&&f!==l){n(f);let p=t.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(let h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:Ui(e,"input",t.processors),output:Ui(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Ge(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ge(n.element,r);if(n.type==="set")return Ge(n.valueType,r);if(n.type==="lazy")return Ge(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Ge(n.innerType,r);if(n.type==="intersection")return Ge(n.left,r)||Ge(n.right,r);if(n.type==="record"||n.type==="map")return Ge(n.keyType,r)||Ge(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:Ge(n.in,r)||Ge(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ge(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ge(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ge(o,r))return!0;return!!(n.rest&&Ge(n.rest,r))}return!1}var QS=(t,e={})=>r=>{let n=Dl({...r,processors:e});return be(t,n),Ll(n,t),jl(n,t)},Ui=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Dl({...o??{},target:i,io:e,processors:r});return be(t,s),Ll(s,t),jl(s,t)};var RI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ew=(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=RI[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}))])}},tw=(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)},rw=(t,e,r,n)=>{r.type="boolean"},nw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var ow=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var iw=(t,e,r,n)=>{r.not={}},sw=(t,e,r,n)=>{},aw=(t,e,r,n)=>{},cw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},uw=(t,e,r,n)=>{let o=t._zod.def,i=Mi(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},dw=(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 lw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var fw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var pw=(t,e,r,n)=>{let o=r,i=t._zod.def,{minimum:s,maximum:a}=t._zod.bag;typeof s=="number"&&(o.minItems=s),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=be(i.element,e,{...n,path:[...n.path,"items"]})},hw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=be(s[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(s)),c=new Set([...a].filter(u=>{let d=i.shape[u]._zod;return e.io==="input"?d.optin===void 0:d.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=be(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},mw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>be(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},gw=(t,e,r,n)=>{let o=t._zod.def,i=be(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=be(o.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];r.allOf=c};var yw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let d=be(i.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let l of c)o.patternProperties[l.source]=d}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=be(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=be(i.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let d=[...u].filter(l=>typeof l=="string"||typeof l=="number");d.length>0&&(o.required=d)}},vw=(t,e,r,n)=>{let o=t._zod.def,i=be(o.innerType,e,n),s=e.seen.get(t);e.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},_w=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Sw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},ww=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},bw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},Rw=(t,e,r,n)=>{let o=t._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=e.io==="input"?i?o.out:o.in:o.out;be(s,e,n);let a=e.seen.get(t);a.ref=s},Cw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Fl=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Ya(t){return!!t._zod}function It(t,e){return Ya(t)?Ni(t,e):t.safeParse(e)}function Xa(t){if(!t)return;let e;if(Ya(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Qa(t){if(Ya(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var qi={};Gu(qi,{ZodISODate:()=>xw,ZodISODateTime:()=>Pw,ZodISODuration:()=>Ew,ZodISOTime:()=>kw,date:()=>ql,datetime:()=>Ul,duration:()=>Gl,time:()=>Hl});var Pw=S("ZodISODateTime",(t,e)=>{R_.init(t,e),me.init(t,e)});function Ul(t){return OS(Pw,t)}var xw=S("ZodISODate",(t,e)=>{C_.init(t,e),me.init(t,e)});function ql(t){return zS(xw,t)}var kw=S("ZodISOTime",(t,e)=>{P_.init(t,e),me.init(t,e)});function Hl(t){return NS(kw,t)}var Ew=S("ZodISODuration",(t,e)=>{x_.init(t,e),me.init(t,e)});function Gl(t){return DS(Ew,t)}var MI=(t,e)=>{Ua.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>fl(t,r)},flatten:{value:r=>ll(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",MI,{Parent:Error});var Aw=qa(ut),Mw=Ha(ut),$w=zi(ut),Iw=Di(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut),Dw=uv(ut),Lw=dv(ut),jw=lv(ut),Fw=fv(ut),Uw=pv(ut);var qw=new WeakMap;function Hi(t,e,r){let n=Object.getPrototypeOf(t),o=qw.get(n);if(o||(o=new Set,qw.set(n,o)),!o.has(e)){o.add(e);for(let i in r){let s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){let a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var oe=S("ZodType",(t,e)=>(re.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Ui(t,"input"),output:Ui(t,"output")}}),t.toJSONSchema=QS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Aw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>$w(t,r,n),t.parseAsync=async(r,n)=>Mw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Iw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Ow(t,r,n),t.decode=(r,n)=>zw(t,r,n),t.encodeAsync=async(r,n)=>Nw(t,r,n),t.decodeAsync=async(r,n)=>Dw(t,r,n),t.safeEncode=(r,n)=>Lw(t,r,n),t.safeDecode=(r,n)=>jw(t,r,n),t.safeEncodeAsync=async(r,n)=>Fw(t,r,n),t.safeDecodeAsync=async(r,n)=>Uw(t,r,n),Hi(t,"ZodType",{check(...r){let n=this.def;return this.clone(H.mergeDefs(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return yt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(_O(r,n))},superRefine(r,n){return this.check(SO(r,n))},overwrite(r){return this.check(qr(r))},optional(){return ye(this)},exactOptional(){return aO(this)},nullable(){return Bw(this)},nullish(){return ye(Bw(this))},nonoptional(r){return pO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return rc(this,r)},transform(r){return Ww(this,nb(r))},default(r){return dO(this,r)},prefault(r){return fO(this,r)},catch(r){return mO(this,r)},pipe(r){return Ww(this,r)},readonly(){return vO(this)},describe(r){let n=this.clone();return Ur.add(n,{description:r}),n},meta(...r){if(r.length===0)return Ur.get(this);let n=this.clone();return Ur.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(t,"description",{get(){return Ur.get(t)?.description},configurable:!0}),t)),Vw=S("_ZodString",(t,e)=>{Va.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ew(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Hi(t,"_ZodString",{regex(...n){return this.check(xl(...n))},includes(...n){return this.check(Tl(...n))},startsWith(...n){return this.check(Al(...n))},endsWith(...n){return this.check(Ml(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Ka(...n))},length(...n){return this.check(Ja(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check(kl(n))},uppercase(n){return this.check(El(n))},trim(){return this.check(Il())},normalize(...n){return this.check($l(...n))},toLowerCase(){return this.check(Ol())},toUpperCase(){return this.check(zl())},slugify(){return this.check(Nl())}})}),Bl=S("ZodString",(t,e)=>{Va.init(t,e),Vw.init(t,e),t.email=r=>t.check(hS(II,r)),t.url=r=>t.check(Pl(Kw,r)),t.jwt=r=>t.check(IS(VI,r)),t.emoji=r=>t.check(_S(OI,r)),t.guid=r=>t.check(Cl(Hw,r)),t.uuid=r=>t.check(mS(ec,r)),t.uuidv4=r=>t.check(gS(ec,r)),t.uuidv6=r=>t.check(yS(ec,r)),t.uuidv7=r=>t.check(vS(ec,r)),t.nanoid=r=>t.check(SS(zI,r)),t.guid=r=>t.check(Cl(Hw,r)),t.cuid=r=>t.check(wS(NI,r)),t.cuid2=r=>t.check(bS(DI,r)),t.ulid=r=>t.check(RS(LI,r)),t.base64=r=>t.check(AS(ZI,r)),t.base64url=r=>t.check(MS(BI,r)),t.xid=r=>t.check(CS(jI,r)),t.ksuid=r=>t.check(PS(FI,r)),t.ipv4=r=>t.check(xS(UI,r)),t.ipv6=r=>t.check(kS(qI,r)),t.cidrv4=r=>t.check(ES(HI,r)),t.cidrv6=r=>t.check(TS(GI,r)),t.e164=r=>t.check($S(WI,r)),t.datetime=r=>t.check(Ul(r)),t.date=r=>t.check(ql(r)),t.time=r=>t.check(Hl(r)),t.duration=r=>t.check(Gl(r))});function y(t){return fS(Bl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Vw.init(t,e)}),II=S("ZodEmail",(t,e)=>{h_.init(t,e),me.init(t,e)});var Hw=S("ZodGUID",(t,e)=>{f_.init(t,e),me.init(t,e)});var ec=S("ZodUUID",(t,e)=>{p_.init(t,e),me.init(t,e)});var Kw=S("ZodURL",(t,e)=>{m_.init(t,e),me.init(t,e)});function Jw(t){return Pl(Kw,t)}var OI=S("ZodEmoji",(t,e)=>{g_.init(t,e),me.init(t,e)});var zI=S("ZodNanoID",(t,e)=>{y_.init(t,e),me.init(t,e)});var NI=S("ZodCUID",(t,e)=>{v_.init(t,e),me.init(t,e)});var DI=S("ZodCUID2",(t,e)=>{__.init(t,e),me.init(t,e)});var LI=S("ZodULID",(t,e)=>{S_.init(t,e),me.init(t,e)});var jI=S("ZodXID",(t,e)=>{w_.init(t,e),me.init(t,e)});var FI=S("ZodKSUID",(t,e)=>{b_.init(t,e),me.init(t,e)});var UI=S("ZodIPv4",(t,e)=>{k_.init(t,e),me.init(t,e)});var qI=S("ZodIPv6",(t,e)=>{E_.init(t,e),me.init(t,e)});var HI=S("ZodCIDRv4",(t,e)=>{T_.init(t,e),me.init(t,e)});var GI=S("ZodCIDRv6",(t,e)=>{A_.init(t,e),me.init(t,e)});var ZI=S("ZodBase64",(t,e)=>{$_.init(t,e),me.init(t,e)});var BI=S("ZodBase64URL",(t,e)=>{I_.init(t,e),me.init(t,e)});var WI=S("ZodE164",(t,e)=>{O_.init(t,e),me.init(t,e)});var VI=S("ZodJWT",(t,e)=>{z_.init(t,e),me.init(t,e)});var tc=S("ZodNumber",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>tw(t,n,o,i),Hi(t,"ZodNumber",{gt(n,o){return this.check(_o(n,o))},gte(n,o){return this.check($t(n,o))},min(n,o){return this.check($t(n,o))},lt(n,o){return this.check(vo(n,o))},lte(n,o){return this.check(dr(n,o))},max(n,o){return this.check(dr(n,o))},int(n){return this.check(Gw(n))},safe(n){return this.check(Gw(n))},positive(n){return this.check(_o(0,n))},nonnegative(n){return this.check($t(0,n))},negative(n){return this.check(vo(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Fi(n,o))},step(n,o){return this.check(Fi(n,o))},finite(){return this}});let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function K(t){return LS(tc,t)}var KI=S("ZodNumberFormat",(t,e)=>{N_.init(t,e),tc.init(t,e)});function Gw(t){return FS(KI,t)}var Wl=S("ZodBoolean",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function ie(t){return US(Wl,t)}var Yw=S("ZodBigInt",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>nw(t,n,o,i),t.gte=(n,o)=>t.check($t(n,o)),t.min=(n,o)=>t.check($t(n,o)),t.gt=(n,o)=>t.check(_o(n,o)),t.gte=(n,o)=>t.check($t(n,o)),t.min=(n,o)=>t.check($t(n,o)),t.lt=(n,o)=>t.check(vo(n,o)),t.lte=(n,o)=>t.check(dr(n,o)),t.max=(n,o)=>t.check(dr(n,o)),t.positive=n=>t.check(_o(BigInt(0),n)),t.negative=n=>t.check(vo(BigInt(0),n)),t.nonpositive=n=>t.check(dr(BigInt(0),n)),t.nonnegative=n=>t.check($t(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Fi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var JI=S("ZodNull",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o)});function Xw(t){return GS(JI,t)}var YI=S("ZodAny",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o)});function Qw(){return ZS(YI)}var XI=S("ZodUnknown",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o)});function ge(){return BS(XI)}var QI=S("ZodNever",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o)});function eO(t){return WS(QI,t)}var eb=S("ZodDate",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>cw(t,n,o,i),t.min=(n,o)=>t.check($t(n,o)),t.max=(n,o)=>t.check(dr(n,o));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});var tO=S("ZodArray",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.element=e.element,Hi(t,"ZodArray",{min(r,n){return this.check(So(r,n))},nonempty(r){return this.check(So(1,r))},max(r,n){return this.check(Ka(r,n))},length(r,n){return this.check(Ja(r,n))},unwrap(){return this.element}})});function x(t,e){return KS(tO,t,e)}var tb=S("ZodObject",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Hi(t,"ZodObject",{keyof(){return et(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:ge()})},loose(){return this.clone({...this._zod.def,catchall:ge()})},strict(){return this.clone({...this._zod.def,catchall:eO()})},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(ob,this,r[0])},required(...r){return H.required(ib,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new tb(r)}function Ee(t,e){return new tb({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var rb=S("ZodUnion",(t,e)=>{Sl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.options=e.options});function ue(t,e){return new rb({type:"union",options:t,...H.normalizeParams(e)})}var rO=S("ZodDiscriminatedUnion",(t,e)=>{rb.init(t,e),V_.init(t,e)});function Vl(t,e,r){return new rO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var nO=S("ZodIntersection",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o)});function rc(t,e){return new nO({type:"intersection",left:t,right:e})}var Zw=S("ZodRecord",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Zw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Zw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Zl=S("ZodEnum",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>uw(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 Zl({...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 Zl({...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 Zl({type:"enum",entries:r,...H.normalizeParams(e)})}var oO=S("ZodLiteral",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(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 oO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var iO=S("ZodTransform",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(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 nb(t){return new iO({type:"transform",transform:t})}var ob=S("ZodOptional",(t,e)=>{wl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Fl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new ob({type:"optional",innerType:t})}var sO=S("ZodExactOptional",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Fl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function aO(t){return new sO({type:"optional",innerType:t})}var cO=S("ZodNullable",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Bw(t){return new cO({type:"nullable",innerType:t})}var uO=S("ZodDefault",(t,e)=>{rS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function dO(t,e){return new uO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var lO=S("ZodPrefault",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function fO(t,e){return new lO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var ib=S("ZodNonOptional",(t,e)=>{oS.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 pO(t,e){return new ib({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var hO=S("ZodCatch",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function mO(t,e){return new hO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var sb=S("ZodPipe",(t,e)=>{bl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rw(t,r,n,o),t.in=e.in,t.out=e.out});function Ww(t,e){return new sb({type:"pipe",in:t,out:e})}var gO=S("ZodPreprocess",(t,e)=>{sb.init(t,e),sS.init(t,e)}),yO=S("ZodReadonly",(t,e)=>{aS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Cw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function vO(t){return new yO({type:"readonly",innerType:t})}var ab=S("ZodCustom",(t,e)=>{cS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o)});function cb(t,e){return JS(ab,t??(()=>!0),e)}function _O(t,e={}){return YS(ab,t,e)}function SO(t,e){return XS(t,e)}function Kl(t,e){return new gO({type:"pipe",in:nb(t),out:e})}var db={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 ub;ub||(ub={});var nc={};Gu(nc,{bigint:()=>CO,boolean:()=>RO,date:()=>PO,number:()=>bO,string:()=>wO});function wO(t){return pS(Bl,t)}function bO(t){return jS(tc,t)}function RO(t){return qS(Wl,t)}function CO(t){return HS(Yw,t)}function PO(t){return VS(eb,t)}Qe(uS());var Ro="2025-11-25";var lb=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Hr="io.modelcontextprotocol/related-task",ic="2.0",Te=cb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),fb=ue([y(),K().int()]),pb=y(),XV=Ee({ttl:K().optional(),pollInterval:K().optional()}),kO=k({ttl:K().optional()}),EO=k({taskId:y()}),Yl=Ee({progressToken:fb.optional(),[Hr]:EO.optional()}),dt=k({_meta:Yl.optional()}),Gi=dt.extend({task:kO.optional()}),hb=t=>Gi.safeParse(t).success,ze=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Yl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:Yl.optional()}),sc=ue([y(),K().int()]),mb=k({jsonrpc:E(ic),id:sc,...ze.shape}).strict(),Zi=t=>mb.safeParse(t).success,gb=k({jsonrpc:E(ic),...St.shape}).strict(),yb=t=>gb.safeParse(t).success,Xl=k({jsonrpc:E(ic),id:sc,result:Ae}).strict(),wn=t=>Xl.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 Ql=k({jsonrpc:E(ic),id:sc.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var vb=t=>Ql.safeParse(t).success;var Gr=ue([mb,gb,Xl,Ql]),QV=ue([Xl,Ql]),bn=Ae.strict(),TO=_t.extend({requestId:sc.optional(),reason:y().optional()}),ac=St.extend({method:E("notifications/cancelled"),params:TO}),AO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:et(["light","dark"]).optional()}),Bi=k({icons:x(AO).optional()}),bo=k({name:y(),title:y().optional()}),_b=bo.extend({...bo.shape,...Bi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),MO=rc(k({applyDefaults:ie().optional()}),ae(y(),ge())),$O=Kl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,rc(k({form:MO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),IO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),OO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),zO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:$O.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:IO.optional(),extensions:ae(y(),Te).optional()}),NO=dt.extend({protocolVersion:y(),capabilities:zO,clientInfo:_b}),DO=ze.extend({method:E("initialize"),params:NO});var LO=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:OO.optional(),extensions:ae(y(),Te).optional()}),ef=Ae.extend({protocolVersion:y(),capabilities:LO,serverInfo:_b,instructions:y().optional()}),Sb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),wb=t=>Sb.safeParse(t).success,cc=ze.extend({method:E("ping"),params:dt.optional()}),jO=k({progress:K(),total:ye(K()),message:ye(y())}),FO=k({..._t.shape,...jO.shape,progressToken:fb}),uc=St.extend({method:E("notifications/progress"),params:FO}),UO=dt.extend({cursor:pb.optional()}),Wi=ze.extend({params:UO.optional()}),Vi=Ae.extend({nextCursor:pb.optional()}),qO=et(["working","input_required","completed","failed","cancelled"]),Ki=k({taskId:y(),status:qO,ttl:ue([K(),Xw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Ki}),HO=_t.merge(Ki),Ji=St.extend({method:E("notifications/tasks/status"),params:HO}),dc=ze.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),lc=Ae.merge(Ki),fc=ze.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),e6=Ae.loose(),pc=Wi.extend({method:E("tasks/list")}),hc=Vi.extend({tasks:x(Ki)}),mc=ze.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),bb=Ae.merge(Ki),Rb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),Cb=Rb.extend({text:y()}),tf=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Pb=Rb.extend({blob:tf}),Yi=et(["user","assistant"]),Co=k({audience:x(Yi).optional(),priority:K().min(0).max(1).optional(),lastModified:qi.datetime({offset:!0}).optional()}),xb=k({...bo.shape,...Bi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),GO=k({...bo.shape,...Bi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),ZO=Wi.extend({method:E("resources/list")}),rf=Vi.extend({resources:x(xb)}),BO=Wi.extend({method:E("resources/templates/list")}),nf=Vi.extend({resourceTemplates:x(GO)}),of=dt.extend({uri:y()}),WO=of,VO=ze.extend({method:E("resources/read"),params:WO}),sf=Ae.extend({contents:x(ue([Cb,Pb]))}),af=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),KO=of,JO=ze.extend({method:E("resources/subscribe"),params:KO}),YO=of,XO=ze.extend({method:E("resources/unsubscribe"),params:YO}),QO=_t.extend({uri:y()}),ez=St.extend({method:E("notifications/resources/updated"),params:QO}),tz=k({name:y(),description:ye(y()),required:ye(ie())}),rz=k({...bo.shape,...Bi.shape,description:ye(y()),arguments:ye(x(tz)),_meta:ye(Ee({}))}),nz=Wi.extend({method:E("prompts/list")}),cf=Vi.extend({prompts:x(rz)}),oz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),iz=ze.extend({method:E("prompts/get"),params:oz}),uf=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),df=k({type:E("image"),data:tf,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),lf=k({type:E("audio"),data:tf,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()}),az=k({type:E("resource"),resource:ue([Cb,Pb]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),cz=xb.extend({type:E("resource_link")}),ff=ue([uf,df,lf,cz,az]),uz=k({role:Yi,content:ff}),pf=Ae.extend({description:y().optional(),messages:x(uz)}),hf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),dz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),lz=k({taskSupport:et(["required","optional","forbidden"]).optional()}),kb=k({...bo.shape,...Bi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:dz.optional(),execution:lz.optional(),_meta:ae(y(),ge()).optional()}),fz=Wi.extend({method:E("tools/list")}),mf=Vi.extend({tools:x(kb)}),Cn=Ae.extend({content:x(ff).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),t6=Cn.or(Ae.extend({toolResult:ge()})),pz=Gi.extend({name:y(),arguments:ae(y(),ge()).optional()}),hz=ze.extend({method:E("tools/call"),params:pz}),Xi=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Eb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Tb=et(["debug","info","notice","warning","error","critical","alert","emergency"]),mz=dt.extend({level:Tb}),gz=ze.extend({method:E("logging/setLevel"),params:mz}),yz=_t.extend({level:Tb,logger:y().optional(),data:ge()}),vz=St.extend({method:E("notifications/message"),params:yz}),_z=k({name:y().optional()}),Sz=k({hints:x(_z).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),wz=k({mode:et(["auto","required","none"]).optional()}),bz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(ff).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),Rz=Vl("type",[uf,df,lf]),oc=Vl("type",[uf,df,lf,sz,bz]),Cz=k({role:Yi,content:ue([oc,x(oc)]),_meta:ae(y(),ge()).optional()}),Pz=Gi.extend({messages:x(Cz),modelPreferences:Sz.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(kb).optional(),toolChoice:wz.optional()}),gf=ze.extend({method:E("sampling/createMessage"),params:Pz}),yf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens"]).or(y())),role:Yi,content:Rz}),vf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Yi,content:ue([oc,x(oc)])}),xz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),kz=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()}),Ez=k({type:et(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Tz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),Az=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),Mz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),$z=ue([Tz,Az]),Iz=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()}),Oz=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()}),zz=ue([Iz,Oz]),Nz=ue([Mz,$z,zz]),Dz=ue([Nz,xz,kz,Ez]),Lz=Gi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Dz),required:x(y()).optional()})}),jz=Gi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Fz=ue([Lz,jz]),_f=ze.extend({method:E("elicitation/create"),params:Fz}),Uz=_t.extend({elicitationId:y()}),qz=St.extend({method:E("notifications/elicitation/complete"),params:Uz}),Sf=Ae.extend({action:et(["accept","decline","cancel"]),content:Kl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Hz=k({type:E("ref/resource"),uri:y()});var Gz=k({type:E("ref/prompt"),name:y()}),Zz=dt.extend({ref:ue([Gz,Hz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Bz=ze.extend({method:E("completion/complete"),params:Zz});var wf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Wz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),Vz=ze.extend({method:E("roots/list"),params:dt.optional()}),Kz=Ae.extend({roots:x(Wz)}),Jz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),r6=ue([cc,DO,Bz,gz,iz,nz,ZO,BO,VO,JO,XO,hz,fz,dc,fc,pc,mc]),n6=ue([ac,uc,Sb,Jz,Ji]),o6=ue([bn,yf,vf,Sf,Kz,lc,hc,Rn]),i6=ue([cc,gf,_f,Vz,dc,fc,pc,mc]),s6=ue([ac,uc,vz,ez,af,Xi,hf,Ji,qz]),a6=ue([bn,ef,wf,pf,cf,rf,nf,sf,Cn,mf,lc,hc,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 Jl(o.elicitations,r)}return new t(e,r,n)}},Jl=class extends T{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Zr(t){return t==="completed"||t==="failed"||t==="cancelled"}var F6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function bf(t){let r=Xa(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Qa(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Rf(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var rN=6e4,gc=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(ac,r=>{this._oncancel(r)}),this.setNotificationHandler(uc,r=>{this._onprogress(r)}),this.setRequestHandler(cc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(dc,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(fc,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),a.type==="response")d(c);else{let l=c,f=new T(l.error.code,l.error.message,l.error.data);d(f)}else{let l=a.type==="response"?"Response":"Error";this._onerror(new Error(`${l} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new T($.InvalidParams,`Task not found: ${i}`);if(!Zr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Zr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Hr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(pc,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(mc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Zr(o.status))throw new T($.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new T($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof T?o:new T($.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),T.fromError($.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),wn(i)||vb(i)?this._onresponse(i):Zi(i)?this._onrequest(i,s):yb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=T.fromError($.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[Hr]?.taskId;if(n===void 0){let d={jsonrpc:"2.0",id:e.id,error:{code:$.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId).catch(l=>this._onerror(new Error(`Failed to enqueue error response: ${l}`))):o?.send(d).catch(l=>this._onerror(new Error(`Failed to send an error response: ${l}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let a=hb(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async d=>{if(s.signal.aborted)return;let l={relatedRequestId:e.id};i&&(l.relatedTask={taskId:i}),await this.notification(d,l)},sendRequest:async(d,l,f)=>{if(s.signal.aborted)throw new T($.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:e.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let h=p.relatedTask?.taskId??i;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),wn(e))n(e);else{let s=new T(e.error.code,e.error.message,e.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(wn(e)&&e.result&&typeof e.result=="object"){let s=e.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,r))}}if(i||this._progressHandlers.delete(r),wn(e))o(e);else{let s=T.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof T?s:new T($.InternalError,String(s))}}return}let i;try{let s=await this.request(e,Rn,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new T($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Zr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new T($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new T($.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof T?s:new T($.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,d)=>{let l=w=>{d(w)};if(!this._transport){l(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(w){l(w);return}n?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...e,jsonrpc:"2.0",id:f};n?.onprogress&&(this._progressHandlers.set(f,n.onprogress),p.params={...e.params,_meta:{...e.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[Hr]:c}});let h=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(R=>this._onerror(new Error(`Failed to send cancellation: ${R}`)));let b=w instanceof T?w:new T($.RequestTimeout,String(w));d(b)};this._responseHandlers.set(f,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return d(w);try{let b=It(r,w.result);b.success?u(b.data):d(b.error)}catch(b){d(b)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let m=n?.timeout??rN,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},lc,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},hc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},bb,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[Hr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Hr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Hr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=bf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Rf(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=bf(e);this._notificationHandlers.set(n,o=>{let i=Rf(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Zi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new T($.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new T($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new T($.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new T($.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Ji.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Zr(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new T($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Zr(a.status))throw new T($.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Ji.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Zr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Ab(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Mb(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];Ab(s)&&Ab(i)?r[o]={...s,...i}:r[o]=i}return r}var wP=ta(uh(),1),bP=ta(SP(),1);function aU(){let t=new wP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,bP.default)(t),t}var Qc=class{constructor(e){this._ajv=e??aU()}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 eu=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 RP(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 CP(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 tu(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&&tu(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&tu(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&tu(r,e)}}function cU(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 ru=class extends gc{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 Qc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Xi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",hf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",af,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new eu(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Mb(this._capabilities,e)}setRequestHandler(e,r){let o=Xa(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Qa(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(_f,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}=cU(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(Sf,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{tu(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(gf,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?vf:yf,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}},ef,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!lb.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){RP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&CP(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},wf,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},pf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},cf,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},rf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},nf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},sf,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},mf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Eb.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:s,debounceMs:a}=i.data,{onChanged:c}=n,u=async()=>{if(!s){c(null,null);return}try{let l=await o();c(null,l)}catch(l){let f=l instanceof Error?l:new Error(String(l));c(f,null)}},d=()=>{if(a){let l=this._listChangedDebounceTimers.get(e);l&&clearTimeout(l);let f=setTimeout(u,a);this._listChangedDebounceTimers.set(e,f)}else u()};this.setNotificationHandler(r,d)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var Ts=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},PP=10,uU=13,Nn=32;function yh(t){}function nu(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=yh,onError:r=yh,onRetry:n=yh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(_){if(p)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,_.charCodeAt(0)===239&&_.charCodeAt(1)===187&&_.charCodeAt(2)===191&&(_=_.slice(3))),s.length===0){let Q=g(_);Q!==""&&(s.push(Q),a=Q.length),m();return}if(_.indexOf(`
87
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of t.seen.entries()){let a=s[1];if(e===s[0]){i(s);continue}if(t.external){let u=t.external.registry.get(s[0])?.id;if(e!==s[0]&&u){i(s);continue}}if(t.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&t.reused==="ref"){i(s);continue}}}function jl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),h=p.schema;if(h.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(h.$ref&&p.def)for(let g in u)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(u[g])===JSON.stringify(p.def[g])&&delete u[g]}let f=a._zod.parent;if(f&&f!==l){n(f);let p=t.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(let h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:Ui(e,"input",t.processors),output:Ui(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Ge(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ge(n.element,r);if(n.type==="set")return Ge(n.valueType,r);if(n.type==="lazy")return Ge(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Ge(n.innerType,r);if(n.type==="intersection")return Ge(n.left,r)||Ge(n.right,r);if(n.type==="record"||n.type==="map")return Ge(n.keyType,r)||Ge(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:Ge(n.in,r)||Ge(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ge(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ge(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ge(o,r))return!0;return!!(n.rest&&Ge(n.rest,r))}return!1}var QS=(t,e={})=>r=>{let n=Dl({...r,processors:e});return be(t,n),Ll(n,t),jl(n,t)},Ui=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Dl({...o??{},target:i,io:e,processors:r});return be(t,s),Ll(s,t),jl(s,t)};var RI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ew=(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=RI[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}))])}},tw=(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)},rw=(t,e,r,n)=>{r.type="boolean"},nw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var ow=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var iw=(t,e,r,n)=>{r.not={}},sw=(t,e,r,n)=>{},aw=(t,e,r,n)=>{},cw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},uw=(t,e,r,n)=>{let o=t._zod.def,i=Mi(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},dw=(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 lw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var fw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var pw=(t,e,r,n)=>{let o=r,i=t._zod.def,{minimum:s,maximum:a}=t._zod.bag;typeof s=="number"&&(o.minItems=s),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=be(i.element,e,{...n,path:[...n.path,"items"]})},hw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=be(s[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(s)),c=new Set([...a].filter(u=>{let d=i.shape[u]._zod;return e.io==="input"?d.optin===void 0:d.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=be(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},mw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>be(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},gw=(t,e,r,n)=>{let o=t._zod.def,i=be(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=be(o.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];r.allOf=c};var yw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let d=be(i.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let l of c)o.patternProperties[l.source]=d}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=be(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=be(i.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let d=[...u].filter(l=>typeof l=="string"||typeof l=="number");d.length>0&&(o.required=d)}},vw=(t,e,r,n)=>{let o=t._zod.def,i=be(o.innerType,e,n),s=e.seen.get(t);e.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},_w=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Sw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},ww=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},bw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},Rw=(t,e,r,n)=>{let o=t._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=e.io==="input"?i?o.out:o.in:o.out;be(s,e,n);let a=e.seen.get(t);a.ref=s},Cw=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Fl=(t,e,r,n)=>{let o=t._zod.def;be(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Xa(t){return!!t._zod}function It(t,e){return Xa(t)?Ni(t,e):t.safeParse(e)}function Qa(t){if(!t)return;let e;if(Xa(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function ec(t){if(Xa(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var qi={};Gu(qi,{ZodISODate:()=>xw,ZodISODateTime:()=>Pw,ZodISODuration:()=>Ew,ZodISOTime:()=>kw,date:()=>ql,datetime:()=>Ul,duration:()=>Gl,time:()=>Hl});var Pw=S("ZodISODateTime",(t,e)=>{R_.init(t,e),me.init(t,e)});function Ul(t){return OS(Pw,t)}var xw=S("ZodISODate",(t,e)=>{C_.init(t,e),me.init(t,e)});function ql(t){return zS(xw,t)}var kw=S("ZodISOTime",(t,e)=>{P_.init(t,e),me.init(t,e)});function Hl(t){return NS(kw,t)}var Ew=S("ZodISODuration",(t,e)=>{x_.init(t,e),me.init(t,e)});function Gl(t){return DS(Ew,t)}var MI=(t,e)=>{qa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>fl(t,r)},flatten:{value:r=>ll(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",MI,{Parent:Error});var Aw=Ha(ut),Mw=Ga(ut),$w=zi(ut),Iw=Di(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut),Dw=uv(ut),Lw=dv(ut),jw=lv(ut),Fw=fv(ut),Uw=pv(ut);var qw=new WeakMap;function Hi(t,e,r){let n=Object.getPrototypeOf(t),o=qw.get(n);if(o||(o=new Set,qw.set(n,o)),!o.has(e)){o.add(e);for(let i in r){let s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){let a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var oe=S("ZodType",(t,e)=>(re.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Ui(t,"input"),output:Ui(t,"output")}}),t.toJSONSchema=QS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Aw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>$w(t,r,n),t.parseAsync=async(r,n)=>Mw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Iw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Ow(t,r,n),t.decode=(r,n)=>zw(t,r,n),t.encodeAsync=async(r,n)=>Nw(t,r,n),t.decodeAsync=async(r,n)=>Dw(t,r,n),t.safeEncode=(r,n)=>Lw(t,r,n),t.safeDecode=(r,n)=>jw(t,r,n),t.safeEncodeAsync=async(r,n)=>Fw(t,r,n),t.safeDecodeAsync=async(r,n)=>Uw(t,r,n),Hi(t,"ZodType",{check(...r){let n=this.def;return this.clone(H.mergeDefs(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return yt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(_O(r,n))},superRefine(r,n){return this.check(SO(r,n))},overwrite(r){return this.check(qr(r))},optional(){return ye(this)},exactOptional(){return aO(this)},nullable(){return Bw(this)},nullish(){return ye(Bw(this))},nonoptional(r){return pO(this,r)},array(){return x(this)},or(r){return ue([this,r])},and(r){return nc(this,r)},transform(r){return Ww(this,nb(r))},default(r){return dO(this,r)},prefault(r){return fO(this,r)},catch(r){return mO(this,r)},pipe(r){return Ww(this,r)},readonly(){return vO(this)},describe(r){let n=this.clone();return Ur.add(n,{description:r}),n},meta(...r){if(r.length===0)return Ur.get(this);let n=this.clone();return Ur.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(t,"description",{get(){return Ur.get(t)?.description},configurable:!0}),t)),Vw=S("_ZodString",(t,e)=>{Ka.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ew(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Hi(t,"_ZodString",{regex(...n){return this.check(xl(...n))},includes(...n){return this.check(Tl(...n))},startsWith(...n){return this.check(Al(...n))},endsWith(...n){return this.check(Ml(...n))},min(...n){return this.check(So(...n))},max(...n){return this.check(Ja(...n))},length(...n){return this.check(Ya(...n))},nonempty(...n){return this.check(So(1,...n))},lowercase(n){return this.check(kl(n))},uppercase(n){return this.check(El(n))},trim(){return this.check(Il())},normalize(...n){return this.check($l(...n))},toLowerCase(){return this.check(Ol())},toUpperCase(){return this.check(zl())},slugify(){return this.check(Nl())}})}),Bl=S("ZodString",(t,e)=>{Ka.init(t,e),Vw.init(t,e),t.email=r=>t.check(hS(II,r)),t.url=r=>t.check(Pl(Kw,r)),t.jwt=r=>t.check(IS(VI,r)),t.emoji=r=>t.check(_S(OI,r)),t.guid=r=>t.check(Cl(Hw,r)),t.uuid=r=>t.check(mS(tc,r)),t.uuidv4=r=>t.check(gS(tc,r)),t.uuidv6=r=>t.check(yS(tc,r)),t.uuidv7=r=>t.check(vS(tc,r)),t.nanoid=r=>t.check(SS(zI,r)),t.guid=r=>t.check(Cl(Hw,r)),t.cuid=r=>t.check(wS(NI,r)),t.cuid2=r=>t.check(bS(DI,r)),t.ulid=r=>t.check(RS(LI,r)),t.base64=r=>t.check(AS(ZI,r)),t.base64url=r=>t.check(MS(BI,r)),t.xid=r=>t.check(CS(jI,r)),t.ksuid=r=>t.check(PS(FI,r)),t.ipv4=r=>t.check(xS(UI,r)),t.ipv6=r=>t.check(kS(qI,r)),t.cidrv4=r=>t.check(ES(HI,r)),t.cidrv6=r=>t.check(TS(GI,r)),t.e164=r=>t.check($S(WI,r)),t.datetime=r=>t.check(Ul(r)),t.date=r=>t.check(ql(r)),t.time=r=>t.check(Hl(r)),t.duration=r=>t.check(Gl(r))});function y(t){return fS(Bl,t)}var me=S("ZodStringFormat",(t,e)=>{ce.init(t,e),Vw.init(t,e)}),II=S("ZodEmail",(t,e)=>{h_.init(t,e),me.init(t,e)});var Hw=S("ZodGUID",(t,e)=>{f_.init(t,e),me.init(t,e)});var tc=S("ZodUUID",(t,e)=>{p_.init(t,e),me.init(t,e)});var Kw=S("ZodURL",(t,e)=>{m_.init(t,e),me.init(t,e)});function Jw(t){return Pl(Kw,t)}var OI=S("ZodEmoji",(t,e)=>{g_.init(t,e),me.init(t,e)});var zI=S("ZodNanoID",(t,e)=>{y_.init(t,e),me.init(t,e)});var NI=S("ZodCUID",(t,e)=>{v_.init(t,e),me.init(t,e)});var DI=S("ZodCUID2",(t,e)=>{__.init(t,e),me.init(t,e)});var LI=S("ZodULID",(t,e)=>{S_.init(t,e),me.init(t,e)});var jI=S("ZodXID",(t,e)=>{w_.init(t,e),me.init(t,e)});var FI=S("ZodKSUID",(t,e)=>{b_.init(t,e),me.init(t,e)});var UI=S("ZodIPv4",(t,e)=>{k_.init(t,e),me.init(t,e)});var qI=S("ZodIPv6",(t,e)=>{E_.init(t,e),me.init(t,e)});var HI=S("ZodCIDRv4",(t,e)=>{T_.init(t,e),me.init(t,e)});var GI=S("ZodCIDRv6",(t,e)=>{A_.init(t,e),me.init(t,e)});var ZI=S("ZodBase64",(t,e)=>{$_.init(t,e),me.init(t,e)});var BI=S("ZodBase64URL",(t,e)=>{I_.init(t,e),me.init(t,e)});var WI=S("ZodE164",(t,e)=>{O_.init(t,e),me.init(t,e)});var VI=S("ZodJWT",(t,e)=>{z_.init(t,e),me.init(t,e)});var rc=S("ZodNumber",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>tw(t,n,o,i),Hi(t,"ZodNumber",{gt(n,o){return this.check(_o(n,o))},gte(n,o){return this.check($t(n,o))},min(n,o){return this.check($t(n,o))},lt(n,o){return this.check(vo(n,o))},lte(n,o){return this.check(dr(n,o))},max(n,o){return this.check(dr(n,o))},int(n){return this.check(Gw(n))},safe(n){return this.check(Gw(n))},positive(n){return this.check(_o(0,n))},nonnegative(n){return this.check($t(0,n))},negative(n){return this.check(vo(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Fi(n,o))},step(n,o){return this.check(Fi(n,o))},finite(){return this}});let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function K(t){return LS(rc,t)}var KI=S("ZodNumberFormat",(t,e)=>{N_.init(t,e),rc.init(t,e)});function Gw(t){return FS(KI,t)}var Wl=S("ZodBoolean",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function ie(t){return US(Wl,t)}var Yw=S("ZodBigInt",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>nw(t,n,o,i),t.gte=(n,o)=>t.check($t(n,o)),t.min=(n,o)=>t.check($t(n,o)),t.gt=(n,o)=>t.check(_o(n,o)),t.gte=(n,o)=>t.check($t(n,o)),t.min=(n,o)=>t.check($t(n,o)),t.lt=(n,o)=>t.check(vo(n,o)),t.lte=(n,o)=>t.check(dr(n,o)),t.max=(n,o)=>t.check(dr(n,o)),t.positive=n=>t.check(_o(BigInt(0),n)),t.negative=n=>t.check(vo(BigInt(0),n)),t.nonpositive=n=>t.check(dr(BigInt(0),n)),t.nonnegative=n=>t.check($t(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Fi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var JI=S("ZodNull",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o)});function Xw(t){return GS(JI,t)}var YI=S("ZodAny",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o)});function Qw(){return ZS(YI)}var XI=S("ZodUnknown",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o)});function ge(){return BS(XI)}var QI=S("ZodNever",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o)});function eO(t){return WS(QI,t)}var eb=S("ZodDate",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>cw(t,n,o,i),t.min=(n,o)=>t.check($t(n,o)),t.max=(n,o)=>t.check(dr(n,o));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});var tO=S("ZodArray",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.element=e.element,Hi(t,"ZodArray",{min(r,n){return this.check(So(r,n))},nonempty(r){return this.check(So(1,r))},max(r,n){return this.check(Ja(r,n))},length(r,n){return this.check(Ya(r,n))},unwrap(){return this.element}})});function x(t,e){return KS(tO,t,e)}var tb=S("ZodObject",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Hi(t,"ZodObject",{keyof(){return et(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:ge()})},loose(){return this.clone({...this._zod.def,catchall:ge()})},strict(){return this.clone({...this._zod.def,catchall:eO()})},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(ob,this,r[0])},required(...r){return H.required(ib,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new tb(r)}function Ee(t,e){return new tb({type:"object",shape:t,catchall:ge(),...H.normalizeParams(e)})}var rb=S("ZodUnion",(t,e)=>{Sl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.options=e.options});function ue(t,e){return new rb({type:"union",options:t,...H.normalizeParams(e)})}var rO=S("ZodDiscriminatedUnion",(t,e)=>{rb.init(t,e),V_.init(t,e)});function Vl(t,e,r){return new rO({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var nO=S("ZodIntersection",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o)});function nc(t,e){return new nO({type:"intersection",left:t,right:e})}var Zw=S("ZodRecord",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Zw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Zw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Zl=S("ZodEnum",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>uw(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 Zl({...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 Zl({...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 Zl({type:"enum",entries:r,...H.normalizeParams(e)})}var oO=S("ZodLiteral",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(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 oO({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var iO=S("ZodTransform",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(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 nb(t){return new iO({type:"transform",transform:t})}var ob=S("ZodOptional",(t,e)=>{wl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Fl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ye(t){return new ob({type:"optional",innerType:t})}var sO=S("ZodExactOptional",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Fl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function aO(t){return new sO({type:"optional",innerType:t})}var cO=S("ZodNullable",(t,e)=>{tS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Bw(t){return new cO({type:"nullable",innerType:t})}var uO=S("ZodDefault",(t,e)=>{rS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function dO(t,e){return new uO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var lO=S("ZodPrefault",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ww(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function fO(t,e){return new lO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var ib=S("ZodNonOptional",(t,e)=>{oS.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 pO(t,e){return new ib({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var hO=S("ZodCatch",(t,e)=>{iS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function mO(t,e){return new hO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var sb=S("ZodPipe",(t,e)=>{bl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rw(t,r,n,o),t.in=e.in,t.out=e.out});function Ww(t,e){return new sb({type:"pipe",in:t,out:e})}var gO=S("ZodPreprocess",(t,e)=>{sb.init(t,e),sS.init(t,e)}),yO=S("ZodReadonly",(t,e)=>{aS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Cw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function vO(t){return new yO({type:"readonly",innerType:t})}var ab=S("ZodCustom",(t,e)=>{cS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o)});function cb(t,e){return JS(ab,t??(()=>!0),e)}function _O(t,e={}){return YS(ab,t,e)}function SO(t,e){return XS(t,e)}function Kl(t,e){return new gO({type:"pipe",in:nb(t),out:e})}var db={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 ub;ub||(ub={});var oc={};Gu(oc,{bigint:()=>CO,boolean:()=>RO,date:()=>PO,number:()=>bO,string:()=>wO});function wO(t){return pS(Bl,t)}function bO(t){return jS(rc,t)}function RO(t){return qS(Wl,t)}function CO(t){return HS(Yw,t)}function PO(t){return VS(eb,t)}Qe(uS());var Ro="2025-11-25";var lb=[Ro,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Hr="io.modelcontextprotocol/related-task",sc="2.0",Te=cb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),fb=ue([y(),K().int()]),pb=y(),XV=Ee({ttl:K().optional(),pollInterval:K().optional()}),kO=k({ttl:K().optional()}),EO=k({taskId:y()}),Yl=Ee({progressToken:fb.optional(),[Hr]:EO.optional()}),dt=k({_meta:Yl.optional()}),Gi=dt.extend({task:kO.optional()}),hb=t=>Gi.safeParse(t).success,ze=k({method:y(),params:dt.loose().optional()}),_t=k({_meta:Yl.optional()}),St=k({method:y(),params:_t.loose().optional()}),Ae=Ee({_meta:Yl.optional()}),ac=ue([y(),K().int()]),mb=k({jsonrpc:E(sc),id:ac,...ze.shape}).strict(),Zi=t=>mb.safeParse(t).success,gb=k({jsonrpc:E(sc),...St.shape}).strict(),yb=t=>gb.safeParse(t).success,Xl=k({jsonrpc:E(sc),id:ac,result:Ae}).strict(),wn=t=>Xl.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 Ql=k({jsonrpc:E(sc),id:ac.optional(),error:k({code:K().int(),message:y(),data:ge().optional()})}).strict();var vb=t=>Ql.safeParse(t).success;var Gr=ue([mb,gb,Xl,Ql]),QV=ue([Xl,Ql]),bn=Ae.strict(),TO=_t.extend({requestId:ac.optional(),reason:y().optional()}),cc=St.extend({method:E("notifications/cancelled"),params:TO}),AO=k({src:y(),mimeType:y().optional(),sizes:x(y()).optional(),theme:et(["light","dark"]).optional()}),Bi=k({icons:x(AO).optional()}),bo=k({name:y(),title:y().optional()}),_b=bo.extend({...bo.shape,...Bi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),MO=nc(k({applyDefaults:ie().optional()}),ae(y(),ge())),$O=Kl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,nc(k({form:MO.optional(),url:Te.optional()}),ae(y(),ge()).optional())),IO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({sampling:Ee({createMessage:Te.optional()}).optional(),elicitation:Ee({create:Te.optional()}).optional()}).optional()}),OO=Ee({list:Te.optional(),cancel:Te.optional(),requests:Ee({tools:Ee({call:Te.optional()}).optional()}).optional()}),zO=k({experimental:ae(y(),Te).optional(),sampling:k({context:Te.optional(),tools:Te.optional()}).optional(),elicitation:$O.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:IO.optional(),extensions:ae(y(),Te).optional()}),NO=dt.extend({protocolVersion:y(),capabilities:zO,clientInfo:_b}),DO=ze.extend({method:E("initialize"),params:NO});var LO=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:OO.optional(),extensions:ae(y(),Te).optional()}),ef=Ae.extend({protocolVersion:y(),capabilities:LO,serverInfo:_b,instructions:y().optional()}),Sb=St.extend({method:E("notifications/initialized"),params:_t.optional()}),wb=t=>Sb.safeParse(t).success,uc=ze.extend({method:E("ping"),params:dt.optional()}),jO=k({progress:K(),total:ye(K()),message:ye(y())}),FO=k({..._t.shape,...jO.shape,progressToken:fb}),dc=St.extend({method:E("notifications/progress"),params:FO}),UO=dt.extend({cursor:pb.optional()}),Wi=ze.extend({params:UO.optional()}),Vi=Ae.extend({nextCursor:pb.optional()}),qO=et(["working","input_required","completed","failed","cancelled"]),Ki=k({taskId:y(),status:qO,ttl:ue([K(),Xw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(K()),statusMessage:ye(y())}),Rn=Ae.extend({task:Ki}),HO=_t.merge(Ki),Ji=St.extend({method:E("notifications/tasks/status"),params:HO}),lc=ze.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),fc=Ae.merge(Ki),pc=ze.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),e6=Ae.loose(),hc=Wi.extend({method:E("tasks/list")}),mc=Vi.extend({tasks:x(Ki)}),gc=ze.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),bb=Ae.merge(Ki),Rb=k({uri:y(),mimeType:ye(y()),_meta:ae(y(),ge()).optional()}),Cb=Rb.extend({text:y()}),tf=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Pb=Rb.extend({blob:tf}),Yi=et(["user","assistant"]),Co=k({audience:x(Yi).optional(),priority:K().min(0).max(1).optional(),lastModified:qi.datetime({offset:!0}).optional()}),xb=k({...bo.shape,...Bi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),size:ye(K()),annotations:Co.optional(),_meta:ye(Ee({}))}),GO=k({...bo.shape,...Bi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:Co.optional(),_meta:ye(Ee({}))}),ZO=Wi.extend({method:E("resources/list")}),rf=Vi.extend({resources:x(xb)}),BO=Wi.extend({method:E("resources/templates/list")}),nf=Vi.extend({resourceTemplates:x(GO)}),of=dt.extend({uri:y()}),WO=of,VO=ze.extend({method:E("resources/read"),params:WO}),sf=Ae.extend({contents:x(ue([Cb,Pb]))}),af=St.extend({method:E("notifications/resources/list_changed"),params:_t.optional()}),KO=of,JO=ze.extend({method:E("resources/subscribe"),params:KO}),YO=of,XO=ze.extend({method:E("resources/unsubscribe"),params:YO}),QO=_t.extend({uri:y()}),ez=St.extend({method:E("notifications/resources/updated"),params:QO}),tz=k({name:y(),description:ye(y()),required:ye(ie())}),rz=k({...bo.shape,...Bi.shape,description:ye(y()),arguments:ye(x(tz)),_meta:ye(Ee({}))}),nz=Wi.extend({method:E("prompts/list")}),cf=Vi.extend({prompts:x(rz)}),oz=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),iz=ze.extend({method:E("prompts/get"),params:oz}),uf=k({type:E("text"),text:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),df=k({type:E("image"),data:tf,mimeType:y(),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),lf=k({type:E("audio"),data:tf,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()}),az=k({type:E("resource"),resource:ue([Cb,Pb]),annotations:Co.optional(),_meta:ae(y(),ge()).optional()}),cz=xb.extend({type:E("resource_link")}),ff=ue([uf,df,lf,cz,az]),uz=k({role:Yi,content:ff}),pf=Ae.extend({description:y().optional(),messages:x(uz)}),hf=St.extend({method:E("notifications/prompts/list_changed"),params:_t.optional()}),dz=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),lz=k({taskSupport:et(["required","optional","forbidden"]).optional()}),kb=k({...bo.shape,...Bi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()),outputSchema:k({type:E("object"),properties:ae(y(),Te).optional(),required:x(y()).optional()}).catchall(ge()).optional(),annotations:dz.optional(),execution:lz.optional(),_meta:ae(y(),ge()).optional()}),fz=Wi.extend({method:E("tools/list")}),mf=Vi.extend({tools:x(kb)}),Cn=Ae.extend({content:x(ff).default([]),structuredContent:ae(y(),ge()).optional(),isError:ie().optional()}),t6=Cn.or(Ae.extend({toolResult:ge()})),pz=Gi.extend({name:y(),arguments:ae(y(),ge()).optional()}),hz=ze.extend({method:E("tools/call"),params:pz}),Xi=St.extend({method:E("notifications/tools/list_changed"),params:_t.optional()}),Eb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Tb=et(["debug","info","notice","warning","error","critical","alert","emergency"]),mz=dt.extend({level:Tb}),gz=ze.extend({method:E("logging/setLevel"),params:mz}),yz=_t.extend({level:Tb,logger:y().optional(),data:ge()}),vz=St.extend({method:E("notifications/message"),params:yz}),_z=k({name:y().optional()}),Sz=k({hints:x(_z).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),wz=k({mode:et(["auto","required","none"]).optional()}),bz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:x(ff).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),ge()).optional()}),Rz=Vl("type",[uf,df,lf]),ic=Vl("type",[uf,df,lf,sz,bz]),Cz=k({role:Yi,content:ue([ic,x(ic)]),_meta:ae(y(),ge()).optional()}),Pz=Gi.extend({messages:x(Cz),modelPreferences:Sz.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(kb).optional(),toolChoice:wz.optional()}),gf=ze.extend({method:E("sampling/createMessage"),params:Pz}),yf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens"]).or(y())),role:Yi,content:Rz}),vf=Ae.extend({model:y(),stopReason:ye(et(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Yi,content:ue([ic,x(ic)])}),xz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),kz=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()}),Ez=k({type:et(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),Tz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),default:y().optional()}),Az=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:x(k({const:y(),title:y()})),default:y().optional()}),Mz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:x(y()),enumNames:x(y()).optional(),default:y().optional()}),$z=ue([Tz,Az]),Iz=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()}),Oz=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()}),zz=ue([Iz,Oz]),Nz=ue([Mz,$z,zz]),Dz=ue([Nz,xz,kz,Ez]),Lz=Gi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Dz),required:x(y()).optional()})}),jz=Gi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Fz=ue([Lz,jz]),_f=ze.extend({method:E("elicitation/create"),params:Fz}),Uz=_t.extend({elicitationId:y()}),qz=St.extend({method:E("notifications/elicitation/complete"),params:Uz}),Sf=Ae.extend({action:et(["accept","decline","cancel"]),content:Kl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),x(y())])).optional())}),Hz=k({type:E("ref/resource"),uri:y()});var Gz=k({type:E("ref/prompt"),name:y()}),Zz=dt.extend({ref:ue([Gz,Hz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Bz=ze.extend({method:E("completion/complete"),params:Zz});var wf=Ae.extend({completion:Ee({values:x(y()).max(100),total:ye(K().int()),hasMore:ye(ie())})}),Wz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),ge()).optional()}),Vz=ze.extend({method:E("roots/list"),params:dt.optional()}),Kz=Ae.extend({roots:x(Wz)}),Jz=St.extend({method:E("notifications/roots/list_changed"),params:_t.optional()}),r6=ue([uc,DO,Bz,gz,iz,nz,ZO,BO,VO,JO,XO,hz,fz,lc,pc,hc,gc]),n6=ue([cc,dc,Sb,Jz,Ji]),o6=ue([bn,yf,vf,Sf,Kz,fc,mc,Rn]),i6=ue([uc,gf,_f,Vz,lc,pc,hc,gc]),s6=ue([cc,dc,vz,ez,af,Xi,hf,Ji,qz]),a6=ue([bn,ef,wf,pf,cf,rf,nf,sf,Cn,mf,fc,mc,Rn]),T=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===$.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new Jl(o.elicitations,r)}return new t(e,r,n)}},Jl=class extends T{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Zr(t){return t==="completed"||t==="failed"||t==="cancelled"}var F6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function bf(t){let r=Qa(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=ec(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Rf(t,e){let r=It(t,e);if(!r.success)throw r.error;return r.data}var rN=6e4,yc=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(cc,r=>{this._oncancel(r)}),this.setNotificationHandler(dc,r=>{this._onprogress(r)}),this.setRequestHandler(uc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(lc,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(pc,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),a.type==="response")d(c);else{let l=c,f=new T(l.error.code,l.error.message,l.error.data);d(f)}else{let l=a.type==="response"?"Response":"Error";this._onerror(new Error(`${l} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new T($.InvalidParams,`Task not found: ${i}`);if(!Zr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Zr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Hr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(hc,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new T($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(gc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new T($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Zr(o.status))throw new T($.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new T($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof T?o:new T($.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),T.fromError($.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),wn(i)||vb(i)?this._onresponse(i):Zi(i)?this._onrequest(i,s):yb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=T.fromError($.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[Hr]?.taskId;if(n===void 0){let d={jsonrpc:"2.0",id:e.id,error:{code:$.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId).catch(l=>this._onerror(new Error(`Failed to enqueue error response: ${l}`))):o?.send(d).catch(l=>this._onerror(new Error(`Failed to send an error response: ${l}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let a=hb(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async d=>{if(s.signal.aborted)return;let l={relatedRequestId:e.id};i&&(l.relatedTask={taskId:i}),await this.notification(d,l)},sendRequest:async(d,l,f)=>{if(s.signal.aborted)throw new T($.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:e.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let h=p.relatedTask?.taskId??i;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),wn(e))n(e);else{let s=new T(e.error.code,e.error.message,e.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(wn(e)&&e.result&&typeof e.result=="object"){let s=e.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,r))}}if(i||this._progressHandlers.delete(r),wn(e))o(e);else{let s=T.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof T?s:new T($.InternalError,String(s))}}return}let i;try{let s=await this.request(e,Rn,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new T($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Zr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new T($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new T($.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof T?s:new T($.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,d)=>{let l=w=>{d(w)};if(!this._transport){l(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(w){l(w);return}n?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...e,jsonrpc:"2.0",id:f};n?.onprogress&&(this._progressHandlers.set(f,n.onprogress),p.params={...e.params,_meta:{...e.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[Hr]:c}});let h=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(R=>this._onerror(new Error(`Failed to send cancellation: ${R}`)));let b=w instanceof T?w:new T($.RequestTimeout,String(w));d(b)};this._responseHandlers.set(f,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return d(w);try{let b=It(r,w.result);b.success?u(b.data):d(b.error)}catch(b){d(b)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let m=n?.timeout??rN,g=()=>h(T.fromError($.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let w=b=>{let R=this._responseHandlers.get(f);R?R(b):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,w),this._enqueueTaskMessage(v,{type:"request",message:p,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(f),d(b)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(w=>{this._cleanupTimeout(f),d(w)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},fc,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},mc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},bb,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[Hr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Hr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Hr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=bf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Rf(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=bf(e);this._notificationHandlers.set(n,o=>{let i=Rf(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Zi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new T($.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new T($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new T($.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new T($.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Ji.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Zr(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new T($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Zr(a.status))throw new T($.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Ji.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Zr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Ab(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Mb(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];Ab(s)&&Ab(i)?r[o]={...s,...i}:r[o]=i}return r}var wP=ra(uh(),1),bP=ra(SP(),1);function aU(){let t=new wP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,bP.default)(t),t}var eu=class{constructor(e){this._ajv=e??aU()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var tu=class{constructor(e){this._client=e}async*callToolStream(e,r=Cn,n){let o=this._client,i={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},s=o.requestStream({method:"tools/call",params:e},r,i),a=o.getToolOutputValidator(e.name);for await(let c of s){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new T($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let d=a(u.structuredContent);if(!d.valid){yield{type:"error",error:new T($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof T){yield{type:"error",error:d};return}yield{type:"error",error:new T($.InvalidParams,`Failed to validate structured content: ${d instanceof Error?d.message:String(d)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function RP(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 CP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function ru(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let o of Object.keys(n)){let i=n[o];r[o]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[o]=i.default),r[o]!==void 0&&ru(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&ru(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&ru(r,e)}}function cU(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var nu=class extends yc{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new eu,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Xi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",hf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",af,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new tu(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Mb(this._capabilities,e)}setRequestHandler(e,r){let o=Qa(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=ec(o);if(typeof i!="string")throw new Error("Schema method literal must be a string");let s=i;if(s==="elicitation/create"){let a=async(c,u)=>{let d=It(_f,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}=cU(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(Sf,h);if(!m.success){let w=m.error instanceof Error?m.error.message:String(m.error);throw new T($.InvalidParams,`Invalid elicitation result: ${w}`)}let g=m.data,v=l.mode==="form"?l.requestedSchema:void 0;if(l.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{ru(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=It(gf,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?vf:yf,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}},ef,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!lb.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){RP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&CP(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},wf,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},pf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},cf,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},rf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},nf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},sf,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},mf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Eb.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:s,debounceMs:a}=i.data,{onChanged:c}=n,u=async()=>{if(!s){c(null,null);return}try{let l=await o();c(null,l)}catch(l){let f=l instanceof Error?l:new Error(String(l));c(f,null)}},d=()=>{if(a){let l=this._listChangedDebounceTimers.get(e);l&&clearTimeout(l);let f=setTimeout(u,a);this._listChangedDebounceTimers.set(e,f)}else u()};this.setNotificationHandler(r,d)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var Ts=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},PP=10,uU=13,Nn=32;function yh(t){}function ou(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=yh,onError:r=yh,onRetry:n=yh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(_){if(p)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,_.charCodeAt(0)===239&&_.charCodeAt(1)===187&&_.charCodeAt(2)===191&&(_=_.slice(3))),s.length===0){let Q=g(_);Q!==""&&(s.push(Q),a=Q.length),m();return}if(_.indexOf(`
88
88
  `)===-1&&_.indexOf("\r")===-1){s.push(_),a+=_.length,m();return}s.push(_);let C=s.join("");s.length=0,a=0;let I=g(C);I!==""&&(s.push(I),a=I.length),m()}function m(){i!==void 0&&(a+d.length<=i||(p=!0,s.length=0,a=0,u=void 0,d="",l=0,f=void 0,r(new Ts(`Buffered data exceeded max buffer size of ${i} characters`,{type:"max-buffer-size-exceeded"}))))}function g(_){let C=0;if(_.indexOf("\r")===-1){let I=_.indexOf(`
89
89
  `,C);for(;I!==-1;){if(C===I){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0,C=I+1,I=_.indexOf(`
90
90
  `,C);continue}let Q=_.charCodeAt(C);if(xP(_,C,Q)){let pe=_.charCodeAt(C+5)===Nn?C+6:C+5,xe=_.slice(pe,I);if(l===0&&_.charCodeAt(I+1)===PP){e({id:u,event:f,data:xe}),u=void 0,d="",f=void 0,C=I+2,I=_.indexOf(`
@@ -93,12 +93,12 @@ ${xe}`,l++}else kP(_,C,Q)?f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0:v(
93
93
  `,C)}return _.slice(C)}for(;C<_.length;){let I=_.indexOf("\r",C),Q=_.indexOf(`
94
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)===uU&&_.charCodeAt(C)===PP&&C++}return _.slice(C)}function v(_,C,I){if(C===I){b();return}let Q=_.charCodeAt(C);if(xP(_,C,Q)){let br=_.charCodeAt(C+5)===Nn?C+6:C+5,jm=_.slice(br,I);d=l===0?jm:`${d}
95
95
  ${jm}`,l++;return}if(kP(_,C,Q)){f=_.slice(_.charCodeAt(C+6)===Nn?C+7:C+6,I)||void 0;return}if(Q===105&&_.charCodeAt(C+1)===100&&_.charCodeAt(C+2)===58){let br=_.slice(_.charCodeAt(C+3)===Nn?C+4:C+3,I);u=br.includes("\0")?void 0:br;return}if(Q===58){if(o){let br=_.slice(C,I);o(br.slice(_.charCodeAt(C+1)===Nn?2:1))}return}let pe=_.slice(C,I),xe=pe.indexOf(":");if(xe===-1){w(pe,"",pe);return}let an=pe.slice(0,xe),cn=pe.charCodeAt(xe+1)===Nn?2:1,lt=pe.slice(xe+cn);w(an,lt,pe)}function w(_,C,I){switch(_){case"event":f=C||void 0;break;case"data":d=l===0?C:`${d}
96
- ${C}`,l++;break;case"id":u=C.includes("\0")?void 0:C;break;case"retry":/^\d+$/.test(C)?n(parseInt(C,10)):r(new Ts(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new Ts(`Unknown field "${_.length>20?`${_.slice(0,20)}\u2026`:_}"`,{type:"unknown-field",field:_,value:C,line:I}));break}}function b(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function R(_={}){if(_.consume&&s.length>0){let C=s.join("");v(C,0,C.length)}c=!0,u=void 0,d="",l=0,f=void 0,s.length=0,a=0,p=!1}return{feed:h,reset:R}}function xP(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 kP(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 iu=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(EP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(EP(this),r)}};function dU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function vh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(vh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${vh(t.cause)}`:t.message:`${t}`}function EP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var AP=t=>{throw TypeError(t)},xh=(t,e,r)=>e.has(t)||AP("Cannot "+r),q=(t,e,r)=>(xh(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?AP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(xh(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(xh(t,e,"access private method"),r),it,Dn,qo,ou,su,$s,Zo,Is,en,Ho,Bo,Go,As,jt,_h,Sh,wh,TP,bh,Rh,Ms,Ch,Ph,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,ou),Me(this,su),Me(this,$s),Me(this,Zo),Me(this,Is,null),Me(this,en),Me(this,Ho),Me(this,Bo,null),Me(this,Go,null),Me(this,As,null),Me(this,Sh,async i=>{var s;q(this,Ho).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,jt,Ms).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ve(this,qo,new URL(i.url)):ve(this,qo,void 0),u!==200){gr(this,jt,Ms).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,jt,Ms).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(q(this,it)===this.CLOSED)return;ve(this,it,this.OPEN);let l=new Event("open");if((s=q(this,As))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,jt,Ms).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),h=!0;do{let{done:m,value:g}=await p.read();g&&q(this,Ho).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Ho).reset(),gr(this,jt,Ch).call(this))}while(h)}),Me(this,wh,i=>{ve(this,en,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,jt,Ch).call(this,vh(i))}),Me(this,bh,i=>{typeof i.id=="string"&&ve(this,Is,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,qo)?q(this,qo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,Go)&&(!i.event||i.event==="message")&&q(this,Go).call(this,s),this.dispatchEvent(s)}),Me(this,Rh,i=>{ve(this,$s,i)}),Me(this,Ph,()=>{ve(this,Zo,void 0),q(this,it)===this.CONNECTING&&gr(this,jt,_h).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,lU()));else throw new Error("Invalid URL")}catch{throw dU("An invalid or illegal string was specified")}ve(this,Ho,nu({onEvent:q(this,bh),onRetry:q(this,Rh)})),ve(this,it,this.CONNECTING),ve(this,$s,3e3),ve(this,su,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,ou,(o=r?.withCredentials)!=null?o:!1),gr(this,jt,_h).call(this)}get readyState(){return q(this,it)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,ou)}get onerror(){return q(this,Bo)}set onerror(e){ve(this,Bo,e)}get onmessage(){return q(this,Go)}set onmessage(e){ve(this,Go,e)}get onopen(){return q(this,As)}set onopen(e){ve(this,As,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){q(this,Zo)&&clearTimeout(q(this,Zo)),q(this,it)!==this.CLOSED&&(q(this,en)&&q(this,en).abort(),ve(this,it,this.CLOSED),ve(this,en,void 0))}};it=new WeakMap,Dn=new WeakMap,qo=new WeakMap,ou=new WeakMap,su=new WeakMap,$s=new WeakMap,Zo=new WeakMap,Is=new WeakMap,en=new WeakMap,Ho=new WeakMap,Bo=new WeakMap,Go=new WeakMap,As=new WeakMap,jt=new WeakSet,_h=function(){ve(this,it,this.CONNECTING),ve(this,en,new AbortController),q(this,su)(q(this,Dn),gr(this,jt,TP).call(this)).then(q(this,Sh)).catch(q(this,wh))},Sh=new WeakMap,wh=new WeakMap,TP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Is)?{"Last-Event-ID":q(this,Is)}:void 0},cache:"no-store",signal:(t=q(this,en))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},bh=new WeakMap,Rh=new WeakMap,Ms=function(t,e){var r;q(this,it)!==this.CLOSED&&ve(this,it,this.CLOSED);let n=new iu("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},Ch=function(t,e){var r;if(q(this,it)===this.CLOSED)return;ve(this,it,this.CONNECTING);let n=new iu("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,Ph),q(this,$s)))},Ph=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function lU(){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 au(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 kh;kh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function fU(t){return(await kh).getRandomValues(new Uint8Array(t))}async function pU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await fU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function hU(t){return await pU(t)}async function mU(t){let e=await(await kh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Eh(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 mU(e);return{code_verifier:e,code_challenge:r}}var je=Jw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:db.custom,message:"URL must be parseable",fatal:!0}),Qd}).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"}),$P=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()}),Th=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()}),gU=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()}),IP=k({...gU.shape,...Th.pick({code_challenge_methods_supported:!0}).shape}),OP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:nc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),zP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),MP=je.optional().or(E("").transform(()=>{})),yU=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:MP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:MP,policy_uri:y().optional(),jwks_uri:je.optional(),jwks:Qw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),vU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),NP=yU.merge(vU),g8=k({error:y(),error_description:y().optional()}).strip(),y8=k({token:y(),token_type_hint:y().optional()}).strip();function DP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function LP({requestedResource:t,configuredResource:e}){let r=typeof t=="string"?new URL(t):new URL(t.href),n=typeof e=="string"?new URL(e):new URL(e.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;let o=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",i=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return o.startsWith(i)}var Ce=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},Os=class extends Ce{};Os.errorCode="invalid_request";var jn=class extends Ce{};jn.errorCode="invalid_client";var Fn=class extends Ce{};Fn.errorCode="invalid_grant";var Un=class extends Ce{};Un.errorCode="unauthorized_client";var zs=class extends Ce{};zs.errorCode="unsupported_grant_type";var Ns=class extends Ce{};Ns.errorCode="invalid_scope";var Ds=class extends Ce{};Ds.errorCode="access_denied";var yr=class extends Ce{};yr.errorCode="server_error";var Ls=class extends Ce{};Ls.errorCode="temporarily_unavailable";var js=class extends Ce{};js.errorCode="unsupported_response_type";var Fs=class extends Ce{};Fs.errorCode="unsupported_token_type";var Us=class extends Ce{};Us.errorCode="invalid_token";var qs=class extends Ce{};qs.errorCode="method_not_allowed";var Hs=class extends Ce{};Hs.errorCode="too_many_requests";var qn=class extends Ce{};qn.errorCode="invalid_client_metadata";var Gs=class extends Ce{};Gs.errorCode="insufficient_scope";var Zs=class extends Ce{};Zs.errorCode="invalid_target";var jP={[Os.errorCode]:Os,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[zs.errorCode]:zs,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[yr.errorCode]:yr,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qs.errorCode]:qs,[Hs.errorCode]:Hs,[qn.errorCode]:qn,[Gs.errorCode]:Gs,[Zs.errorCode]:Zs};var We=class extends Error{constructor(e){super(e??"Unauthorized")}};function _U(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Ah="code",Mh="S256";function SU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&_U(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 wU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":bU(o,i,r);return;case"client_secret_post":RU(o,i,n);return;case"none":CU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function bU(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 RU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function CU(t,e){e.set("client_id",t)}async function UP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=zP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=jP[o]||yr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new yr(o)}}async function vr(t,e){try{return await $h(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await $h(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await $h(t,e);throw r}}async function $h(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 HP(c,{fetchFn:i}),!a)try{a=await qP(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 MU(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 xU(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&&!PU(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 NU(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 zU(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 OU(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof Ce)||b instanceof yr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await $U(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 PU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function xU(t,e,r){let n=DP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!LP({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=Ih(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Ih(t,"scope")||void 0,a=Ih(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Ih(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 qP(t,e,r=fetch){let n=await TU(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 $P.parse(await n.json())}async function Oh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Oh(t,void 0,r):void 0;throw n}}function kU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function FP(t,e,r=fetch){return await Oh(t,{"MCP-Protocol-Version":e},r)}function EU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function TU(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=kU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await FP(s,i,r);if(!n?.metadataUrl&&EU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await FP(c,i,r)}return a}function AU(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 HP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=AU(t);for(let{url:i,type:s}of o){let a=await Oh(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"?Th.parse(await a.json()):IP.parse(await a.json())}}}async function MU(t,e){let r,n;try{r=await qP(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 HP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function $U(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(Ah))throw new Error(`Incompatible auth server: does not support response type ${Ah}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Mh))throw new Error(`Incompatible auth server: does not support code challenge method ${Mh}`)}else a=new URL("/authorize",t);let c=await Eh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Ah),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Mh),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 IU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function GP(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=SU(n,d);wU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await UP(u);return OP.parse(await u.json())}async function OU(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 GP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function zU(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=IU(o,u,t.redirectUrl)}let c=await t.clientInformation();return GP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function NU(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 UP(s);return NP.parse(await s.json())}var Bs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},cu=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=au(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new We;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Wo(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Ln(this._url.href,{...this._eventSourceInit,fetch:async(o,i)=>{let s=await this._commonHeaders();s.set("Accept","text/event-stream");let a=await e(o,{...i,headers:s});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Vo(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let i=new Bs(o.code,o.message,o);n(i),this.onerror?.(i)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let i=o;try{if(this._endpoint=new URL(i.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(s){n(s),this.onerror?.(s),this.close();return}r()}),this._eventSource.onmessage=o=>{let i=o,s;try{s=Gr.parse(JSON.parse(i.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(s)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new We("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let i=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:s,scope:a}=Vo(o);if(this._resourceMetadataUrl=s,this._scope=a,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${i}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var Ox=ta($x(),1);import Gh from"node:process";import{PassThrough as lq}from"node:stream";var uq=10*1024*1024,du=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??uq}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(`
96
+ ${C}`,l++;break;case"id":u=C.includes("\0")?void 0:C;break;case"retry":/^\d+$/.test(C)?n(parseInt(C,10)):r(new Ts(`Invalid \`retry\` value: "${C}"`,{type:"invalid-retry",value:C,line:I}));break;default:r(new Ts(`Unknown field "${_.length>20?`${_.slice(0,20)}\u2026`:_}"`,{type:"unknown-field",field:_,value:C,line:I}));break}}function b(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function R(_={}){if(_.consume&&s.length>0){let C=s.join("");v(C,0,C.length)}c=!0,u=void 0,d="",l=0,f=void 0,s.length=0,a=0,p=!1}return{feed:h,reset:R}}function xP(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 kP(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var su=class extends Event{constructor(e,r){var n,o;super(e),this.code=(n=r?.code)!=null?n:void 0,this.message=(o=r?.message)!=null?o:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,r,n){return n(EP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(EP(this),r)}};function dU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function vh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(vh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${vh(t.cause)}`:t.message:`${t}`}function EP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var AP=t=>{throw TypeError(t)},xh=(t,e,r)=>e.has(t)||AP("Cannot "+r),q=(t,e,r)=>(xh(t,e,"read from private field"),r?r.call(t):e.get(t)),Me=(t,e,r)=>e.has(t)?AP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ve=(t,e,r,n)=>(xh(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(xh(t,e,"access private method"),r),it,Dn,qo,iu,au,$s,Zo,Is,en,Ho,Bo,Go,As,jt,_h,Sh,wh,TP,bh,Rh,Ms,Ch,Ph,Ln=class extends EventTarget{constructor(e,r){var n,o;super(),Me(this,jt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Me(this,it),Me(this,Dn),Me(this,qo),Me(this,iu),Me(this,au),Me(this,$s),Me(this,Zo),Me(this,Is,null),Me(this,en),Me(this,Ho),Me(this,Bo,null),Me(this,Go,null),Me(this,As,null),Me(this,Sh,async i=>{var s;q(this,Ho).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,jt,Ms).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ve(this,qo,new URL(i.url)):ve(this,qo,void 0),u!==200){gr(this,jt,Ms).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,jt,Ms).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(q(this,it)===this.CLOSED)return;ve(this,it,this.OPEN);let l=new Event("open");if((s=q(this,As))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,jt,Ms).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),h=!0;do{let{done:m,value:g}=await p.read();g&&q(this,Ho).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,Ho).reset(),gr(this,jt,Ch).call(this))}while(h)}),Me(this,wh,i=>{ve(this,en,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,jt,Ch).call(this,vh(i))}),Me(this,bh,i=>{typeof i.id=="string"&&ve(this,Is,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,qo)?q(this,qo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,Go)&&(!i.event||i.event==="message")&&q(this,Go).call(this,s),this.dispatchEvent(s)}),Me(this,Rh,i=>{ve(this,$s,i)}),Me(this,Ph,()=>{ve(this,Zo,void 0),q(this,it)===this.CONNECTING&&gr(this,jt,_h).call(this)});try{if(e instanceof URL)ve(this,Dn,e);else if(typeof e=="string")ve(this,Dn,new URL(e,lU()));else throw new Error("Invalid URL")}catch{throw dU("An invalid or illegal string was specified")}ve(this,Ho,ou({onEvent:q(this,bh),onRetry:q(this,Rh)})),ve(this,it,this.CONNECTING),ve(this,$s,3e3),ve(this,au,(n=r?.fetch)!=null?n:globalThis.fetch),ve(this,iu,(o=r?.withCredentials)!=null?o:!1),gr(this,jt,_h).call(this)}get readyState(){return q(this,it)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,iu)}get onerror(){return q(this,Bo)}set onerror(e){ve(this,Bo,e)}get onmessage(){return q(this,Go)}set onmessage(e){ve(this,Go,e)}get onopen(){return q(this,As)}set onopen(e){ve(this,As,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){q(this,Zo)&&clearTimeout(q(this,Zo)),q(this,it)!==this.CLOSED&&(q(this,en)&&q(this,en).abort(),ve(this,it,this.CLOSED),ve(this,en,void 0))}};it=new WeakMap,Dn=new WeakMap,qo=new WeakMap,iu=new WeakMap,au=new WeakMap,$s=new WeakMap,Zo=new WeakMap,Is=new WeakMap,en=new WeakMap,Ho=new WeakMap,Bo=new WeakMap,Go=new WeakMap,As=new WeakMap,jt=new WeakSet,_h=function(){ve(this,it,this.CONNECTING),ve(this,en,new AbortController),q(this,au)(q(this,Dn),gr(this,jt,TP).call(this)).then(q(this,Sh)).catch(q(this,wh))},Sh=new WeakMap,wh=new WeakMap,TP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Is)?{"Last-Event-ID":q(this,Is)}:void 0},cache:"no-store",signal:(t=q(this,en))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},bh=new WeakMap,Rh=new WeakMap,Ms=function(t,e){var r;q(this,it)!==this.CLOSED&&ve(this,it,this.CLOSED);let n=new su("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n)},Ch=function(t,e){var r;if(q(this,it)===this.CLOSED)return;ve(this,it,this.CONNECTING);let n=new su("error",{code:e,message:t});(r=q(this,Bo))==null||r.call(this,n),this.dispatchEvent(n),ve(this,Zo,setTimeout(q(this,Ph),q(this,$s)))},Ph=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function lU(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}function Wo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function cu(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Wo(e.headers),...Wo(n.headers)}:e.headers};return t(r,o)}:t}var kh;kh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function fU(t){return(await kh).getRandomValues(new Uint8Array(t))}async function pU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await fU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function hU(t){return await pU(t)}async function mU(t){let e=await(await kh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Eh(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 mU(e);return{code_verifier:e,code_challenge:r}}var je=Jw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:db.custom,message:"URL must be parseable",fatal:!0}),Qd}).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"}),$P=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()}),Th=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()}),gU=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()}),IP=k({...gU.shape,...Th.pick({code_challenge_methods_supported:!0}).shape}),OP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:oc.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),zP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),MP=je.optional().or(E("").transform(()=>{})),yU=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:MP,scope:y().optional(),contacts:x(y()).optional(),tos_uri:MP,policy_uri:y().optional(),jwks_uri:je.optional(),jwks:Qw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),vU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),NP=yU.merge(vU),g8=k({error:y(),error_description:y().optional()}).strip(),y8=k({token:y(),token_type_hint:y().optional()}).strip();function DP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function LP({requestedResource:t,configuredResource:e}){let r=typeof t=="string"?new URL(t):new URL(t.href),n=typeof e=="string"?new URL(e):new URL(e.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;let o=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",i=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return o.startsWith(i)}var Ce=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},Os=class extends Ce{};Os.errorCode="invalid_request";var jn=class extends Ce{};jn.errorCode="invalid_client";var Fn=class extends Ce{};Fn.errorCode="invalid_grant";var Un=class extends Ce{};Un.errorCode="unauthorized_client";var zs=class extends Ce{};zs.errorCode="unsupported_grant_type";var Ns=class extends Ce{};Ns.errorCode="invalid_scope";var Ds=class extends Ce{};Ds.errorCode="access_denied";var yr=class extends Ce{};yr.errorCode="server_error";var Ls=class extends Ce{};Ls.errorCode="temporarily_unavailable";var js=class extends Ce{};js.errorCode="unsupported_response_type";var Fs=class extends Ce{};Fs.errorCode="unsupported_token_type";var Us=class extends Ce{};Us.errorCode="invalid_token";var qs=class extends Ce{};qs.errorCode="method_not_allowed";var Hs=class extends Ce{};Hs.errorCode="too_many_requests";var qn=class extends Ce{};qn.errorCode="invalid_client_metadata";var Gs=class extends Ce{};Gs.errorCode="insufficient_scope";var Zs=class extends Ce{};Zs.errorCode="invalid_target";var jP={[Os.errorCode]:Os,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[zs.errorCode]:zs,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[yr.errorCode]:yr,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qs.errorCode]:qs,[Hs.errorCode]:Hs,[qn.errorCode]:qn,[Gs.errorCode]:Gs,[Zs.errorCode]:Zs};var We=class extends Error{constructor(e){super(e??"Unauthorized")}};function _U(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Ah="code",Mh="S256";function SU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&_U(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 wU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":bU(o,i,r);return;case"client_secret_post":RU(o,i,n);return;case"none":CU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function bU(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 RU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function CU(t,e){e.set("client_id",t)}async function UP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=zP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=jP[o]||yr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new yr(o)}}async function vr(t,e){try{return await $h(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await $h(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await $h(t,e);throw r}}async function $h(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 HP(c,{fetchFn:i}),!a)try{a=await qP(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 MU(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 xU(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&&!PU(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 NU(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 zU(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 OU(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof Ce)||b instanceof yr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await $U(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 PU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function xU(t,e,r){let n=DP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!LP({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=Ih(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Ih(t,"scope")||void 0,a=Ih(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Ih(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 qP(t,e,r=fetch){let n=await TU(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 $P.parse(await n.json())}async function Oh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Oh(t,void 0,r):void 0;throw n}}function kU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function FP(t,e,r=fetch){return await Oh(t,{"MCP-Protocol-Version":e},r)}function EU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function TU(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=kU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await FP(s,i,r);if(!n?.metadataUrl&&EU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await FP(c,i,r)}return a}function AU(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 HP(t,{fetchFn:e=fetch,protocolVersion:r=Ro}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=AU(t);for(let{url:i,type:s}of o){let a=await Oh(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"?Th.parse(await a.json()):IP.parse(await a.json())}}}async function MU(t,e){let r,n;try{r=await qP(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 HP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function $U(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(Ah))throw new Error(`Incompatible auth server: does not support response type ${Ah}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Mh))throw new Error(`Incompatible auth server: does not support code challenge method ${Mh}`)}else a=new URL("/authorize",t);let c=await Eh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Ah),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Mh),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 IU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function GP(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=SU(n,d);wU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await UP(u);return OP.parse(await u.json())}async function OU(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 GP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function zU(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=IU(o,u,t.redirectUrl)}let c=await t.clientInformation();return GP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function NU(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 UP(s);return NP.parse(await s.json())}var Bs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},uu=class{constructor(e,r){this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=r?.eventSourceInit,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=cu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new We;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Wo(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Ln(this._url.href,{...this._eventSourceInit,fetch:async(o,i)=>{let s=await this._commonHeaders();s.set("Accept","text/event-stream");let a=await e(o,{...i,headers:s});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Vo(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let i=new Bs(o.code,o.message,o);n(i),this.onerror?.(i)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let i=o;try{if(this._endpoint=new URL(i.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(s){n(s),this.onerror?.(s),this.close();return}r()}),this._eventSource.onmessage=o=>{let i=o,s;try{s=Gr.parse(JSON.parse(i.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(s)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new We("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let i=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:s,scope:a}=Vo(o);if(this._resourceMetadataUrl=s,this._scope=a,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${i}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var Ox=ra($x(),1);import Gh from"node:process";import{PassThrough as lq}from"node:stream";var uq=10*1024*1024,lu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??uq}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
97
97
  `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),dq(r)}clear(){this._buffer=void 0}};function dq(t){return Gr.parse(JSON.parse(t))}function Ix(t){return JSON.stringify(t)+`
98
- `}var fq=Gh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function fu(){let t={};for(let e of fq){let r=Gh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var lu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new du({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new lq)}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,Ox.default)(this._serverParams.command,this._serverParams.args??[],{env:{...fu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Gh.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=Ix(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var jx=ta(Lx(),1);function Fx(t){if(t)try{return jx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var pu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=nu({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 wq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},hu=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=au(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??wq}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new We;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Wo(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new Ft(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(i=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${i instanceof Error?i.message:String(i)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:i}=r,s,a=!1,c=!1;(async()=>{try{let d=e.pipeThrough(new TextDecoderStream).pipeThrough(new pu({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:h}=await d.read();if(h)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let m=Gr.parse(JSON.parse(p.data));wn(m)&&(c=!0,i!==void 0&&(m.id=i)),this.onmessage?.(m)}catch(m){this.onerror?.(m)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new We("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Zi(e)?e.id:void 0}).catch(p=>this.onerror?.(p));return}let i=await this._commonHeaders();i.set("content-type","application/json"),i.set("accept","application/json, text/event-stream");let s={...this._requestInit,method:"POST",headers:i,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,s),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let p=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new Ft(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:h,scope:m}=Vo(a);if(this._resourceMetadataUrl=h,this._scope=m,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:h,scope:m,error:g}=Vo(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new Ft(403,"Server returned 403 after trying upscoping");if(m&&(this._scope=m),h&&(this._resourceMetadataUrl=h),this._lastUpscopingHeader=v??void 0,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new We;return this.send(e)}}throw new Ft(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),wb(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=Fx(l);if(d)if(f==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(f==="application/json"){let p=await a.json(),h=Array.isArray(p)?p.map(m=>Gr.parse(m)):[Gr.parse(p)];for(let m of h)this.onmessage?.(m)}else throw await a.body?.cancel(),new Ft(-1,`Unexpected content type: ${l}`);else await a.body?.cancel()}catch(n){throw this.onerror?.(n),n}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let e=await this._commonHeaders(),r={...this._requestInit,method:"DELETE",headers:e,signal:this._abortController?.signal},n=await(this._fetch??fetch)(this._url,r);if(await n.body?.cancel(),!n.ok&&n.status!==405)throw new Ft(n.status,`Failed to terminate session: ${n.statusText}`);this._sessionId=void 0}catch(e){throw this.onerror?.(e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}async resumeStream(e,r){await this._startOrAuthSse({resumptionToken:e,onresumptiontoken:r?.onresumptiontoken})}};function Ux(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 Rq={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 qx(t){return{...fu(),...Rq,...t??{}}}function Hx(){return fu()}var Bh=class t extends lu{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];suppressStderr;constructor(e,r=!1){super(e),this.suppressStderr=r}async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){if(this.suppressStderr)return;this._lineBuffer+=e.toString();let r=this._lineBuffer.split(`
98
+ `}var fq=Gh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function pu(){let t={};for(let e of fq){let r=Gh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var fu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new lu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new lq)}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,Ox.default)(this._serverParams.command,this._serverParams.args??[],{env:{...pu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Gh.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=Ix(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var jx=ra(Lx(),1);function Fx(t){if(t)try{return jx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var hu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=ou({onEvent:a=>{s.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&s.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(s){i.feed(s)}})}};var wq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Ft=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},mu=class{constructor(e,r){this._hasCompletedAuthFlow=!1,this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=cu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??wq}async _authThenStart(){if(!this._authProvider)throw new We("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new We;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Wo(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new Ft(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(i=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${i instanceof Error?i.message:String(i)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:i}=r,s,a=!1,c=!1;(async()=>{try{let d=e.pipeThrough(new TextDecoderStream).pipeThrough(new hu({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:h}=await d.read();if(h)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let m=Gr.parse(JSON.parse(p.data));wn(m)&&(c=!0,i!==void 0&&(m.id=i)),this.onmessage?.(m)}catch(m){this.onerror?.(m)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new We("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Zi(e)?e.id:void 0}).catch(p=>this.onerror?.(p));return}let i=await this._commonHeaders();i.set("content-type","application/json"),i.set("accept","application/json, text/event-stream");let s={...this._requestInit,method:"POST",headers:i,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,s),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let p=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new Ft(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:h,scope:m}=Vo(a);if(this._resourceMetadataUrl=h,this._scope=m,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new We;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:h,scope:m,error:g}=Vo(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new Ft(403,"Server returned 403 after trying upscoping");if(m&&(this._scope=m),h&&(this._resourceMetadataUrl=h),this._lastUpscopingHeader=v??void 0,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new We;return this.send(e)}}throw new Ft(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),wb(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=Fx(l);if(d)if(f==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(f==="application/json"){let p=await a.json(),h=Array.isArray(p)?p.map(m=>Gr.parse(m)):[Gr.parse(p)];for(let m of h)this.onmessage?.(m)}else throw await a.body?.cancel(),new Ft(-1,`Unexpected content type: ${l}`);else await a.body?.cancel()}catch(n){throw this.onerror?.(n),n}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let e=await this._commonHeaders(),r={...this._requestInit,method:"DELETE",headers:e,signal:this._abortController?.signal},n=await(this._fetch??fetch)(this._url,r);if(await n.body?.cancel(),!n.ok&&n.status!==405)throw new Ft(n.status,`Failed to terminate session: ${n.statusText}`);this._sessionId=void 0}catch(e){throw this.onerror?.(e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}async resumeStream(e,r){await this._startOrAuthSse({resumptionToken:e,onresumptiontoken:r?.onresumptiontoken})}};function Ux(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 Rq={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 qx(t){return{...pu(),...Rq,...t??{}}}function Hx(){return pu()}var Bh=class t extends fu{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];suppressStderr;constructor(e,r=!1){super(e),this.suppressStderr=r}async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){if(this.suppressStderr)return;this._lineBuffer+=e.toString();let r=this._lineBuffer.split(`
99
99
  `);this._lineBuffer=r.at(-1)??"",this._lineBuffer.length>t.MAX_LINE_BUFFER_CHARS&&(this._lineBuffer=this._lineBuffer.slice(-t.MAX_LINE_BUFFER_CHARS));for(let n of r.slice(0,-1))this.pushCapturedLine(`${n}
100
- `)}pushCapturedLine(e){this._captured.push(e),this._captured.length>t.MAX_CAPTURED_LINES&&this._captured.shift(),this._logHistory.push(e),this._logHistory.length>t.MAX_LOG_HISTORY&&this._logHistory.shift()}consumeStderr(){this._lineBuffer.length>0&&(this.pushCapturedLine(this._lineBuffer),this._lineBuffer="");let e=this._captured.join("");return this._captured=[],e}getLogHistory(){return[...this._logHistory]}};function Gx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Bh(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}},Wh=new bq;function Vh(t,e){return Wh.run(t,e)}function Cq(t){Wh.getStore()?.onFailure?.(t)}function Zx({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=Wh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw Cq(u),u}}function Bx(t,e){let r=Zx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new hu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Wx(t,e){let r=Zx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new cu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Vx(){return new ru({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Kx=Xi,Jx=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof Ft||t instanceof Bs)&&t.code===401}function Kh(t){return t instanceof T&&t.code===$.MethodNotFound}function Jh(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function Yx(t){return t instanceof T&&t.code===$.RequestTimeout}function Xx(t){return t instanceof T&&t.code===$.ConnectionClosed}var Pq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Qx(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return Pq.some(r=>e.includes(r))}function ek(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Yh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var X=xq.child({prefix:"pi-mcp"});function Eq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function Tq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&Eq(r,o)})}var Aq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Mq=/^Node\.js v\d/,$q=/^[\w$.]*error[\w$]*:/i,tk=400,Iq=63e3,rk=3,Oq=/[\\/]lib[\\/]cli\.js/,zq="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.",dk=Symbol("mcpReinitReported");function Nq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,dk,{value:!0,enumerable:!1,configurable:!0})}function Dq(t){return typeof t=="object"&&t!==null&&t[dk]===!0}function Lq(t){let e=t.filter(a=>!Mq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Oq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return zq;let o=r.findIndex(a=>$q.test(a)),s=(o===-1?r.slice(-rk):r.slice(o,o+rk)).join(" / ");return s.length>tk?`${s.slice(0,tk)}\u2026`:s}function jq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Aq,"").split(`
101
- `).map(i=>i.trim()).filter(i=>i.length>0),o=Lq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Fq=6e5,Uq=18e5,nk=2147483647,qq=3e4,ok=1e4,lk=[250,1e3,2e3],Zn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Ws=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Hq=250,ik=3,Gq=[200,500];function Zq(t){for(let e of Object.values(t))if(Dr(e))return!0;return!1}function Xh(t){let e=new Set;for(let r of t.matchAll(Ei))e.add(Na(r[0]));return[...e].sort()}function Qh(t){return[...new Set(t)].sort()}function sk(t,e){return Wy(e.map(r=>t?.[r]??"missing"))}function Bq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Qh([...e&&t?Ti(t):[],...n&&r?Xh(r):[],...o.flatMap(Xh)])}var mu="${augmentToken}";function Wq(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 Vq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var fk="(unknown uri)",em="unknown",ak=/=+$/,Kq=/\s+/g,Jq=/[-_]/g,Yq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function pk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Xq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Qq(t){let e=t.replace(Kq,"").replace(Jq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(ak,"");if(r.toString("base64").replace(ak,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function hk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function eH(t){let e=hk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,fk),n=Bn(e.mimeType,em);if(typeof e.blob=="string"&&Xq(n)){let i=Qq(e.blob);if(i!==void 0)return i}let o=pk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function tH(t){let e=Bn(t.type,"unknown");if(e==="resource")return eH(t);if(e==="audio"){let r=Bn(t.mimeType,em),n=pk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,fk),n=Bn(t.name,""),o=Bn(t.mimeType,em);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function rH(t){if(t.type!=="resource")return;let e=hk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Yq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function nH(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=rH(t);return e||{type:"text",text:uk(tH(t))}}function oH(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(nH(n))}return e}function iH(t){return Ly(t,Iq)}function mk(t,e){let r=oH(t);if(r.length===0){let o=iH(e);o!==void 0&&r.push({type:"text",text:uk(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=mk(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 gk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),aH=new Set([502,503,504]),Vs=lk.length+1,cH=2;function uH(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 dH(t){if(Pt(t)||Yh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return gk.has(e)?{totalAttempts:Vs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:cH}:aH.has(r)?{totalAttempts:Vs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Vs}:void 0}var lH=80,fH=10,pH=/[^a-zA-Z0-9_.()-]/g,hH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function gu(t){return t.replace(pH,"_").slice(0,lH)||"unknown"}function mH(t){let e=uH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||gk.has(e)))return e}function Ve(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=hH.has(e)?e:"Error",n=mH(t);return n===void 0?r:`${r}(${n})`}function gH(t,e,r){return t instanceof gt?new gt(gu(t.serverName),t.missingKeys.slice(0,fH).map(gu),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:gu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var tm={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"}},yH="configured MCP server",vH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,ck=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,_H=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(tm[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function SH(t){return Yx(t)?"heartbeat_timeout":Xx(t)?"connection_closed":"heartbeat_failed"}var yu=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=>za(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)?za(jq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Ve(r))}}async _connectWithRetries(){let e=Vs,r={available:!0};for(let n=1;n<=Vs;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=dH(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=(lk[r-1]??0)+Math.floor(Math.random()*(Hq+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=Vx();this._client=i;let s;try{if(await Vh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Kx,()=>{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":gH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=te();ii(o,this.name,e.reason,ft(o,this.name,this._config.id))}else if(e instanceof Ws||e instanceof Zn)this._status="failed";else if(Pt(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(Pt(e)){this._status="auth_required";let o=te(),i=o.servers.get(this.name);(i===void 0||i===this)&&o.tokens.markAuthRequired(this.name)}else{this._status="failed";let o=this._connectFailureMessage(e,r);xi(Gn(o,Ve(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=te().targetMaterialStore;if(!this._targetAuth&&(r?.has(e.name)||e.id&&r?.has(e.id)))throw new Error("MCP target provenance is unavailable");switch(this._targetAuth?.headers(),e.type){case"stdio":{let n=Ux({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=qx(this._resolvedEnv??e.env);return Gx({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 Wx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Bx(e,{headers:r,getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});return this._activeTransport=n,n}async _resolveSecretRefs(){let e=this._config,r=e.type==="stdio"?e.env:this._resolvedHeaders??e.headers,n=r?Zq(r):!1,o=e.type==="stdio"&&Dr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Dr);if(!(n||o||s))return;let a=te();if(!this._targetAuth&&!By(a)){let u=Bq({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??Gy(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 Ky({configEnv:e,localEnv:n&&!this._targetAuth?Hx():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${Ve(c)})`),new gt(this.name,Ti(e),c,"transient")}let a=Qh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,sk(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Yd(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Jy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Ve(s)})`),new gt(this.name,Xh(e),s,"transient")}let i=Qh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,sk(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(mu)))return;let o;if(Wq(e.url)){let s=te().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${mu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${mu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Vq(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(mu,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=te();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?X.error(i):X.warn(i)}_usableToken(){let e=te();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!pt(n,this._config)))return r}_buildAuthHeaders(){if(this._targetAuth)return this._targetAuth.headers();let e=this._usableToken();return e?.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{}}hasRefreshEligibleOAuthCredential(){let{config:e}=this;if(e.type!=="http"&&e.type!=="sse"||e.disabled||this._hostedCredentialProvenance!==void 0||!this._usableToken())return!1;if(e.auth==="oauth")return!0;let r=te();return r.tokens.hasCredentialIdentity?.(this.name,Ht(r,this))===!0}async _maybeProactiveRefresh(){let e=te(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,Ht(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!wd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():Si(i)&&e.tokens.markAuthRequired(this.name)))}refreshTokenIfPossible(){return this._refreshTokenDeduped()}getRefreshInFlight(){return this._refreshPromise}_refreshTokenDeduped(){if(this._disposing||this._disposed)return Promise.resolve({kind:"transient_failure"});let e=te(),r=e.refreshes.get(this.name);if(r)return r.then(a=>a??{kind:"refreshed"});let n={state:e,tokenStore:e.tokens,serverGeneration:e.serverGenerations.get(this.name)??0,configRevision:e.configRevisions.get(this.name)??0,credential:e.credentialRevisions.get(this.name),localRefreshEnabled:e.shouldProactivelyRefreshTokens,failureScope:ft(e,this.name,this._config.id),token:this._usableToken(),hostWasUntracked:e.servers.get(this.name)===void 0},o=JSON.stringify([this.name,n.serverGeneration,n.configRevision,n.credential?.domain??null,n.credential?.revision??null]),i=e.refreshes.get(o);if(i)return i.then(a=>a??{kind:"refreshed"});let s=this._performTokenRefresh(n).finally(()=>{this._refreshPersisting=!1,e.refreshes.get(o)===s&&e.refreshes.delete(o),this._refreshPromise===s&&(this._refreshPromise=void 0)});return this._refreshPromise=s,e.refreshes.set(o,s),s}_ownsRefresh(e){let{state:r}=e,n=r.credentialRevisions.get(this.name),o=D(r,this.name)?.retirement?.incumbent.host,i=r.servers.get(this.name)===this||this._refreshPersisting&&o===this||e.hostWasUntracked&&r.servers.get(this.name)===void 0;return(!this._disposing||this._refreshPersisting)&&i&&(r.serverGenerations.get(this.name)??0)===e.serverGeneration&&(r.configRevisions.get(this.name)??0)===e.configRevision&&this._ownsRefreshCredential(e,n)&&(e.localRefreshEnabled===r.shouldProactivelyRefreshTokens||this._refreshPersisting)}_ownsRefreshCredential(e,r){return e.state.tokens===e.tokenStore&&e.tokenStore.get(this.name)===e.token&&r?.domain===e.credential?.domain&&r?.revision===e.credential?.revision}async _restoreAfterSupersededRefresh(e,r,n,o){let i=e.state.servers.get(this.name),s=e.state.tokens,a=s.get(this.name),c=e.state.credentialRevisions.get(this.name);if(s!==e.tokenStore||!i||!a||!pt(this._config,i.config))return;let u=Ht(e.state,i),d=n===void 0&&u===void 0||xr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),un({state:e.state,name:this.name,revision:o});return}let l=await s.restoreAfterSupersededRefresh(this.name,r,a,n,o,u);if(!l||e.state.tokens!==s||e.state.servers.get(this.name)!==i||s.get(this.name)!==a||!xr(Ht(e.state,i),u)||e.state.credentialRevisions.get(this.name)?.revision!==c?.revision||e.state.credentialRevisions.get(this.name)?.domain!==c?.domain||s.reconcileCredentialIdentity?.(this.name,a,u)!==!0)return;un({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&N(f,e.state)}catch{X.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&Rd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&ii(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),X.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${Ve(e)})`),n&&o?{kind:"terminal_failure"}:{kind:"transient_failure"}}async _performTokenRefresh(e){if(!e.localRefreshEnabled)return{kind:"transient_failure"};if(!e.token?.refreshToken)return this._ownsRefresh(e)?(e.state.tokens.markAuthRequired(this.name),ii(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=Ht(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await Cd(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:Yh(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)})`),Nq(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),Vh({operation:r,onFailure:a?u=>{a.failure=u}:void 0},e));try{let u=await c();return this._clearHostedAuthFailure(),u}catch(u){let d=a?.failure??u;if(this._disposed||!Pt(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Ws;if(this._hostedCredentialProvenance!==void 0)throw new Zn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;X.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw Pt(h)&&this._markAuthRequired(h,s),h}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=te();ii(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Ve(e)),X.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed()},e.onerror=()=>{this._handleTransportClosed()})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},qq),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<=ik&&n.outcome==="transient";s++)await pn(Gq[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 ${ik} 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:ok})},"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":Kh(e)||Jh(e)?"alive":Pt(e)?"authFailure":Qx(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:ok})}catch(r){if(this._reinitializingPromise||this._disposed||Jh(r)||Kh(r))return;this._failInFlightCalls(new Wn(SH(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 Yd([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!vH.test(e)||ck.test(e)||za(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?yH:e}_safeCorrelationId(e){if(!(!e||!_H.test(e)||ck.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;kq(tm[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=!Tq(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>nk)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${nk}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??Fq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Uq,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??{}},Jx,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=mk(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(tm[e.category].tool,"Error");throw this._disposed||xi(c,{server:e.serverDisplayName,op:"tool_call",transport:this._config.type}),c}if(this._suppressStdioDiagnostics){let c=Gn("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||xi(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Zn||e instanceof Ws)throw e;if(Pt(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=gu(r),i=Ve(e),s=ek(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 Dq(e)||xi(Gn(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Gn(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._toolErrorRedactor=void 0,this._targetAuth&&(this._resolvedHeaders=void 0,this._resolvedEnv=void 0,this._resolvedCommand=void 0),this._stopHeartbeat(),this._failInFlightCalls(new Error(`MCP server "${this.name}" is being disposed`),!1),this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1}async dispose(e){this.beginDisposal(),await this._refreshPromise,this._stopHeartbeat();let r=this._client;if(this._client=void 0,this._activeTransport=void 0,this._reinitializingPromise=void 0,this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1,this._stdioTransport=void 0,!!r)try{await r.close()}catch(n){if(this._suppressStdioDiagnostics){let o=Gn("MCP stdio close failed","Error");if(X.debug(o.message),e?.strict)throw o;return}if(X.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var yk=bH.child({prefix:"pi-mcp"}),RH=3,CH=6e4;function PH(t,e){let r=Date.now(),n=r-CH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=RH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function vk(t){ir(t),ga(t)}async function xH(t,e,r){if(!PH(e,t)){yk.warn(`MCP server "${t}" automatic restart rate-limited`);return}yk.warn(`MCP server "${t}" wedged; recycling transport`),await tn(t,e,r)}function vu(t,e,r){if(kH(e)){vk(t),N(t,e);return}ld(t,r),Ir(e)&&vk(t),N(t,e)}function kH(t){return pi()||t.toolSearchLatched}function tr(t,e,r){return Vu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function rm(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 EH(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&&tg(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 nm(t){let{state:e,config:r,generation:n}=t;return new yu(r,EH({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 om(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 im(t,e,r){return t.configDesiredRevisions.get(e)===r}function _k(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function sm(t,e,r,n){t.onStateChange=(a,c)=>{if(!tr(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(wH,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;xH(t.name,r,a)};let o=t.hostedCredentialProvenance,i=t.targetCredentialProvenance?.credential,s;i&&(t.config.type==="http"||t.config.type==="sse")&&t.config.auth==="oauth"?s={serverGeneration:e,mcpConfigId:t.config.id,credentialRevision:i.revision,credentialRevisionDomain:i.domain}:o?.kind==="accepted"&&o.hostedAccessTokenOnly&&(s={serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain}),t.onAuthRefreshNeeded=()=>{if(!tr(t,e,r)||!s)return;let a=JSON.stringify(s);r.statusFailureCategories.set(t.name,{category:"auth_refresh_needed",...s}),r.authRefreshNeededReportKeys.get(t.name)!==a&&(r.authRefreshNeededReportKeys.set(t.name,a),N(r.currentLoad?.latestPi??n,r))},t.onAuthRefreshCleared=()=>{if(!tr(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&at(r,t.name,s)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&vu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;fd(a,t,e),a!==n&&fd(n,t,e)}}async function Sk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&N(n(),r)},ra);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&N(n(),r)}}async function wk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function _u(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 TH(t){let{state:e,config:r,displaced:n,retirement:o}=t;om(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Ju(n.config,r)?Promise.resolve():ht(e,r.name,n.config.id,n.config),a=(await Promise.allSettled([i,n.dispose({strict:!0})])).find(c=>c.status==="rejected");if(a)throw a.reason;_e({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw _e({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function AH(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 MH(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),tr(r,o,e)?a?.(n)===!1?(await AH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&vu(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 $H(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(!im(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=rm(e,r.name),l=nm({state:e,config:r,generation:d});return sm(l,d,e,o),ia({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:MH({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 IH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!im(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?ee(r,a.name,u):D(r,a.name),l=Pr(a,i),f=ci({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,h=()=>$H({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await TH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Wu(f.retirement),h());return f.retirement?m():h()}async function Je(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??Ke(e,d.name)})).map(async d=>{try{let l=await IH({intent:d,state:e,pi:r,sourceOwnership:n,sourceKind:i,activePi:s});return"connection"in l?l.connection:l}catch(l){return{status:"failed",config:d.config,error:l}}});if(c.length===0)return[];let u=setTimeout(()=>{N(s(),e)},ra);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function OH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!_k(e,t,n))return!1;let i=o.config,s=ee(e,t,o);if(!Vu(e,t,o))return!1;om(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||!_k(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=rm(e,t),u=nm({state:e,config:i,generation:c});if(sm(u,c,e,r),!ia({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await Sk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&vu(d(),e,u),!0}function tn(t,e,r){e.reconnects??=new Map,e.configRevisions??=new Map,e.reconnectDesiredGenerations??=new Map,e.statusFailureCategories??=new Map;let n=(e.reconnectDesiredGenerations.get(t)??0)+1;e.reconnectDesiredGenerations.set(t,n);let o=e.reconnects.get(t);if(o)return o;let i=(async()=>{let s=0,a=e.configRevisions.get(t)??0;do{let c=e.reconnectDesiredGenerations.get(t)??0;if((e.configRevisions.get(t)??0)!==a||!await OH({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 zH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;om(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Ju(n.config,o)?Promise.resolve():ht(e,r,n.config.id,n.config),c=(await Promise.allSettled([s,n.dispose({strict:!0})])).find(u=>u.status==="rejected");if(c)throw c.reason;i&&_e({state:e,name:r,retirement:i,result:{status:"retired"}})}catch(s){throw i&&_e({state:e,name:r,retirement:i,result:{status:"failed",error:s}}),s}}async function bk(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 zH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Wu(f.retirement),D(e,t)?.revision!==f.lease.revision||!im(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=rm(e,t),h=nm({state:e,config:a,generation:p});sm(h,p,e,r),ia({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await Sk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&vu(i(),e,h))}async function Ks(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>tn(n,e,r)))}finally{e.reconnecting=!1}}var Rk=Symbol.for("__pi_mcp_registry_ingress__");function Su(t){return Object.defineProperty(t,Rk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,Rk)?.value===!0}function rn(t){let{state:e,target:r,byConfigId:n=!1}=t;if(!r)return;let o=[...e.servers].filter(([u,d])=>d.config.id===r||!n&&u===r);if(o.length!==1)return;let i=o[0];if(!i)return;let[s,a]=i;if(a.config.id&&[...e.servers].some(([u,d])=>u!==s&&d.config.id===a.config.id))return;let c=D(e,s);if(!(c&&(c.host!==a||c.owner.kind==="registry"&&c.connectionEpoch!==e.mcpConnectionEpoch))&&!(!c&&e.mcpConnectionEpoch!==void 0&&a.config.registrySource!==void 0)&&!((n||s!==r)&&!Vn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as NH}from"@hermes/logger";var DH=NH.child({prefix:"pi-mcp"}),LH=1e6,jH=1e3,FH=/^\d+$/;function Ck(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function nn(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t.credential_revision??t.credentialRevision,r=t.credential_revision_domain??t.credentialRevisionDomain;if(typeof e!="string"||!FH.test(e)||typeof r!="string"||r.length===0)return;let n=aa(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:Ck(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function UH(t,e,r){let n=t?.get(e),o=typeof r=="string"?t?.get(r):void 0;return n===void 0?o:o===void 0?n:kr(o,n)>0?o:n}function qH(t,e,r){if(t===void 0)return!0;let n=Ck(t);return n===e.domain||r?.kind==="domain"&&e.ownerDomain===r.domain||r?.kind==="domain"&&(n.startsWith("private:")||n.startsWith("shared:"))&&e.domain.startsWith("recipient:")&&Er(n)===r.domain&&Er(e.domain)===r.domain?!0:r?.kind==="domain"&&!Ie(n)&&Ie(e.domain)&&Er(n)===r.domain}function HH(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 DH.warn(`Skipping MCP OAuth credentials for "${t}": invalid credential revision or domain`),"reject";let s=n?.expectedDomains?.get(t);if(r===void 0)return n?.requireRevision===!0||s!==void 0||n?.acceptedDomains?.has(t)===!0?"reject":"apply";let a=Er(r.domain);if(s?.kind==="blocked"||s?.kind==="domain"&&r.ownerDomain!==void 0&&r.ownerDomain!==s.domain||s?.kind==="domain"&&r.ownerDomain===void 0&&!Ie(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!qH(c,r,s))return"reject";let u=UH(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=kr(r.revision,u);return d>0||d===0&&c===void 0&&s?.kind==="domain"&&n?.equalRevisionRebindDomains?.get(t)===s.domain?"apply":d===0?"equal":"reject"}function GH(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 ZH(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 BH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*jH+Math.floor(t.access_token_expires_at.nanos/LH):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 WH(t,e){return t?t.accessToken===e.accessToken&&t.refreshToken===e.refreshToken&&t.expiresAt===e.expiresAt&&t.tokenType===e.tokenType&&t.scope===e.scope&&t.resource===e.resource&&t.serverMetadata?.issuer===e.serverMetadata?.issuer&&t.serverMetadata?.authorization_endpoint===e.serverMetadata?.authorization_endpoint&&t.serverMetadata?.token_endpoint===e.serverMetadata?.token_endpoint&&t.client?.client_id===e.client?.client_id&&t.client?.client_secret===e.client?.client_secret&&t.client?.token_endpoint_auth_method===e.client?.token_endpoint_auth_method:!1}function _r(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!ZH(n))return{decision:"reject"};let i=nn(n),s=HH(r,n,i,o);if(s==="reject")return{decision:s};let a=BH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!WH(e.get(r),a))||s==="apply"&&GH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function wu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=_r({store:t,serverName:o,proto:i,options:r});if(s.decision!=="apply"){n[s.decision==="equal"?"equal":"rejected"].push(o);continue}let{token:a,revision:c}=s;t.set(o,a),r?.equalRevisionRebindDomains?.delete(o),c!==void 0&&(r?.acceptedRevisions?.set(c.domain,c.revision),r?.acceptedDomains?.set(o,c.domain)),n.applied.push(o)}return n}var Pk=VH.child({prefix:"pi-mcp"});function KH(t,e){let r=rn({state:t,target:e,byConfigId:!0});if(!r)return;let o=D(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function JH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=nn(i);if(s===void 0)return!1;let a=dn(s);return s.ownerDomain!==void 0?a===`user:${e}`:o===r&&Ie(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function xk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){Pk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=KH(r,n.configId),i=o?JH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=D(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth")return;let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>_r({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject")return;let d=o.server.getRefreshInFlight?.();if(d&&await Promise.resolve(d).catch(()=>{}),r.mcpConnectionEpoch!==a||r.servers.get(o.name)!==o.server||D(r,o.name)!==s||u().decision==="reject")return;ee(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=wu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let m=nn(i);m&&(r.credentialRevisions.set(o.name,m),r.hostedCredentialOwnership.set(o.name,{...m,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??tn,h=t.report??N;await p(o.name,r,f).catch(m=>{Pk.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 dG}from"@hermes/logger";import{randomUUID as YH}from"node:crypto";import{setToolSource as XH}from"@augmentcode/auggie-v2";import{logger as QH}from"@hermes/logger";import{Type as eG}from"@sinclair/typebox";var Ek=QH.child({prefix:"pi-mcp"}),rr="attach-mcp-server",tG="augment:mcp-attach-request",rG=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 oG(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 iG(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function am(t,e){let r=iG(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)},rG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function kk(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 aG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Pe(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${am(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Pe(`MCP server "${e.name}" failed to connect after the attach was accepted. Ask the user to reconnect it from the session MCP panel before trying again.${am(r,e)}`)}function cG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Pe(`Timed out waiting for the attach request for "${e.name}" to be acknowledged. The server may still attach shortly; check find-tool's server list before retrying.`);if(r.error==="UNIMPLEMENTED")return n.mcpAttachDisabled=!0,Pe("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");if(r.error==="DENIED")return Pe(`The control plane denied the request to attach "${e.name}". Do not retry; ask the user to verify that the server is available for this session.`);if(r.error!==void 0)return Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Pe(`Attach accepted for "${e.name}". Connection continues in the background; use find-tool to discover its tools when ready. If its tools do not appear, call attach-mcp-server again with the same config id for connection guidance.`);case"ALREADY_ATTACHED":return Pe(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Pe(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${am(n,e)}`);case"NO_ACTIVE_VM":return Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Pe(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function uG(t,e,r){if(e.mcpAttachDisabled)return Pe("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");let{config_id:n}=r??{};if(typeof n!="string"||n.trim().length===0)throw new Error(`${rr} requires a string "config_id" parameter. ${kk(e)}`);let o=oG(e,n);if(o.kind==="none")return Pe(`No MCP server matching "${n}" is available to attach. ${kk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Pe(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=aG({entry:i,state:e});if(s!==void 0)return s;if(pd(e,i))return Pe(`MCP server "${i.name}" is already attached to this session. Use find-tool to discover its tools.`);if(i.state!=="available"&&i.state!=="opt_in_required")return Pe(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=YH();Ek.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=sG(e,a);t.events.emit(tG,{configId:i.id,requestId:a});let u=await c,d=cG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),no(rr),Ir(e)&&ir(t)),d}function bu(t,e){let r={name:rr,label:rr,description:"Attach an available MCP server to this session so its tools become usable. Only servers listed as available-but-not-attached in find-tool's description can be attached. Call this tool immediately when the user's request needs one of those servers; it attaches directly without requiring user approval.",parameters:eG.Unsafe(nG),execute:(n,o)=>uG(t,e,o)};XH(rr,"mcp"),t.registerTool(r),Mr(r),Ek.debug("Registered attach-mcp-server tool")}var Ru=dG.child({prefix:"pi-mcp"}),cm="augment:mcp-attach-result";function Tk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(cm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){Ru.warn(`${cm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){Ru.debug(`${cm}: 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 Cu(t,e){if(e.mcpAttachCloudSignaled&&ya(e)){bu(t,e);return}e.mcpAttachCloudSignaled&&yg(rr)!==void 0&&(t.unregisterTool(rr),no(rr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!ya(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await xg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,Ru.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,Ru.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Cu(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as CG}from"@hermes/logger";function lG(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 fG(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case Or.CLI:return"cli";case Or.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function Pu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(fG).filter(r=>r!==void 0);return e.length===0?void 0:e}function xu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=lG(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 pG(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 hG(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 um(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 mG(t,e,r){if(r!==void 0&&t.added_by===r)return Pu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?Pu(n):[]}function gG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=um(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=um(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=um(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)?mG(p,o,s):Pu(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 yG(t,e="cloud_agent"){if(t==null)return e==="cli"?Or.CLI:Or.CLOUD_AGENT}function vG(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 Ak(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:Su(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 _G(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=xu(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=Ak(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=Ak(c,e.id,s,i);return u.ok?(o.add(c.name),{kind:"connected",server:u.server}):{kind:"retained",name:c.name,diagnostic:u.diagnostic}}function SG(t){let e=[],r=[],n=[];for(let o of t)pG(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 wG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=hG(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 bG(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 ku(t){let e=t.productType??"cloud_agent",r=t.client??new _a(t.creds),{tenant:n,user:o,diagnostics:i}=await Lg(r,yG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=gG({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=SG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...vG(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 _=_G({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});bG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=wG(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 RG}from"@hermes/logger";var Xo=RG.child({prefix:"pi-mcp"});function Mk(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=xu(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 Su(i.server.type==="stdio"?Zt(i.server,s):Gt(i.server,s))}catch(a){Xo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function $k(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 Mk(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=Mk(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=CG.child({prefix:"pi-mcp"});function Ok(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function zk(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 PG(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=zk({state:e,name:r,lease:c,host:n,isDeselected:Ok({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 xG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=zk({state:e,name:r,lease:n,isDeselected:Ok({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function kG(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=PG({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||xG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Nk(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 EG(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 TG(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 AG(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 MG(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 $G(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 IG(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 OG(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 Nk(e,r.servers,n,i,o!==void 0)}async function Dk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function Ik(t){return await Dk(t.state,t.result),t.state.registryGeneration===t.generation&&await OG(t),t.result}function zG(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=EG(n,r,i);return Ik({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=>Ik({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function NG(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 DG(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 LG(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 Lk(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 dm(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 jG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){dm({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 Dk(e,r),e.registryGeneration!==o)return;let c=Lk({state:e,generation:o}),u=r.servers.filter(c),d=await Promise.all(u.map(v=>Ar({state:e,config:v,pi:s})));if(e.registryGeneration!==o)return;let l=u.filter((v,w)=>d[w]),f=u.filter((v,w)=>!d[w]);NG({state:e,result:r,selection:n}),DG({state:e,servers:f}),dm({state:e,result:r,selection:n,slotReservations:a});let p=LG({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 FG({state:e,pi:s,result:r,generation:o,connect:i})}async function FG(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 UG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function UG(t){let{state:e,pi:r,generation:n,connect:o,name:i,candidate:s}=t;if(e.registryGeneration!==n)return"abort";let a=e.servers.get(i);if(!a||a.status!=="auth_required"&&a.status!=="failed")return"settled";let c=a.config.id;if(c===void 0||c===s.id)return"settled";if(!await Ar({state:e,config:s,pi:r})||e.registryGeneration!==n)return"abort";xt.info(`MCP auth fallback: "${i}" (id=${c}) landed ${a.status}; connecting same-named config id=${s.id} in its place`),await o([s],e,e.currentLoad?.latestPi??r,Lk({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 qG(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 Nk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function HG(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 GG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await jG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),dm({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 HG(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 qG({...t.resultArgs,error:r})}}function Js(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??ku,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)&&sg(r,new Set(a.configIds.map(He)));let u=TG({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=AG({state:r,previousSelectedIds:l,configIds:a.configIds}),p=MG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([kG(r,a.configIds,p),f]).then(([w])=>w);$G(r);let g=a.configIds?[...a.configIds]:void 0,v=zG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:IG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?GG({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as ZG}from"@hermes/logger";var on=ZG.child({prefix:"pi-mcp"});function BG(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 WG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function qk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function VG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function jk(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&&(VG({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 Hk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Fk(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 Gk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function KG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=D(e,r),s=n?Pr(n):void 0;if(i===void 0){Ke(e,r);return}let a=i.host===void 0&&i.owner.kind==="registry"&&s?.kind==="registry"&&i.owner.identity===s.identity,c=o?.incumbent.owner.kind==="registry"&&s?.kind==="registry"&&o.incumbent.owner.identity===s.identity;if(!a&&!c)return;(o?.settled&&i.retirement===o?Wm({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&&(Gk(e,r),Ke(e,r))}async function lm(t){let{state:e,configId:r,pi:n,report:o,sourceFence:i}=t,s=e.registryCredentialConfigsById.get(r),a=s?.name;if(!s||!a){let w=`Live MCP remove-server cannot retire config id ${r}: exact registry identity is unavailable`;throw on.warn(w),e.diagnostics.push({message:w,origin:"registry"}),new Error(w)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=D(e,a),u=Pr(s),d=c?.retirement?.incumbent.owner.kind==="registry"&&u.kind==="registry"&&c.retirement.incumbent.owner.identity===u.identity?c.retirement:void 0,l=c!==void 0&&c.host===void 0&&c.owner.kind==="registry"&&u.kind==="registry"&&c.owner.identity===u.identity,f=e.configDesiredRevisions.get(a),p=e.configDesiredSources.get(a),h=l&&d?.settled!==!0?Ke(e,a):void 0;if(d&&!d.settled&&(await d.teardown).status==="retired"&&!l)return;let g=D(e,a)?.retirement===d?d:void 0,v=g?.result;if(d&&v?.status==="failed"&&v.transportDisposed!==!0){let w=v.error instanceof Error?v.error:new Error(String(v.error)),b=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw on.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await li(e,a,r,s)}catch(w){h!==void 0&&e.configDesiredRevisions.get(a)===h&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let b=`Live MCP remove-server failed to detach ${a}: ${w instanceof Error?w.message:String(w)}`;throw on.warn(b),e.diagnostics.push({server:a,message:b}),w}qk({state:e,configId:r,fence:i})&&(Hk(e,r),KG({state:e,name:a,config:s,retirement:g})),on.info(`Live MCP remove-server: config id ${r} resolved to no live server (already removed or unknown id)`),o(e.currentLoad?.latestPi??n,e)}function Uk(t){let{state:e,name:r,operation:n,result:o}=t;if(o.status!=="rejected")return;let i=`Live MCP remove-server failed to ${n} ${r}: ${o.reason instanceof Error?o.reason.message:String(o.reason)}`;on.warn(i),e.diagnostics.push({server:r,message:i})}async function JG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Uk({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 Uk({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 YG(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?ee(e,n,a):D(e,n);if(!a||!c||c.owner.kind!=="registry"||c.host!==a)return;e.registryConfigNamesById.set(r,n),e.registryCredentialConfigsById.set(r,{...a.config});let u=e.configDesiredRevisions.get(n),d=e.configDesiredSources.get(n),l=Ke(e,n),f=ct({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),on.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await JG({state:e,name:n,configId:r,server:a});if(h&&qk({state:e,configId:r,fence:s})?Hk(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})&&Gk(e,n),i(p,e),!h)throw m}function Eu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return on.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return on.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:fa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=Fk(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(jk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>lm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=BG(r,s);if(u===void 0&&d===void 0)return a(lm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=WG({state:r,configId:s,liveEditGeneration:h});return a(jk({state:r,configId:s,fence:m,operation:()=>{let g=Fk(r,s);return g===void 0?lm({state:r,configId:s,pi:e,report:c,sourceFence:m}):YG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as XG}from"node:crypto";var QG=/^[1-9][0-9]*$/,eZ=/^[a-f0-9]{64}$/,tZ=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 fm(t){return typeof t=="string"&&QG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function hm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&fm(t.connectionVersion)}function rZ(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Dr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Dr(e))&&typeof t.use_shell_interpolation=="boolean"&&t.auth_type!=="oauth";if(t.version!==1||t.transport!=="http"&&t.transport!=="sse"||typeof t.url!="string"||t.command!==void 0||t.args!==void 0||t.use_shell_interpolation!==void 0)return!1;try{let e=new URL(t.url);return["http:","https:"].includes(e.protocol)&&!e.username&&!e.password&&!e.hash}catch{return!1}}function Bk(t){if(!(!fe(t)||Object.keys(t).some(e=>!tZ.has(e)))&&!(!rZ(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"||!eZ.test(t.route_revision)||!fm(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"||!fm(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 oZ(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 Zk(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 iZ(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=Ti((e.type==="stdio"?e.env:e.headers)??{}),n=Object.keys(t.static_secrets??{});return t.auth_type==="static"?r.length>0&&r.length===n.length&&n.every(o=>r.includes(o)):r.length===0}var Tu=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 hm(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||!oZ(e,r)||!n&&(!o||!this.#r.has(r)||!Zk(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"&&Zk(e,o.material)&&iZ(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 Wk(t){return XG("sha256").update(t).digest("hex")}function aZ(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 cZ(t,e){if(e.length<=1)return!0;let r=aa(t);return r.kind==="valid"&&e.filter(n=>He(n)===r.ownerDomain).length===1}function Vk(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 uZ(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 dZ(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 lZ(t,e,r){if(typeof t!="string"||Wk(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||!dZ(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(!uZ(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 Kk(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?Vk(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?aZ(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)||!cZ(f,b)||n.has(l)||_r({store:t.tokens,serverName:l,proto:f,options:{requireEqualMaterial:!0}}).decision==="reject")&&r?.add(l);continue}if(!fe(f)||Object.entries(f).some(([b,R])=>b!=="target_material"&&b!=="passive_install"&&R!==""))return;let p=Bk(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?lZ(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 fZ(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=Kk(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=[...Vk(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,bu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=Js({pi:e,state:r,data:{configIds:d},admittedConfigs:l,deps:{connect:(h,m,g,v)=>{if(!u())return Promise.resolve([]);let w=h.map(b=>{let R=b.id?l.get(b.id):void 0;if(!R&&b.id&&o.has(b.id))throw new Error("MCP target material is unavailable");return R??b});return Je(w,m,g,b=>u()&&(v?.(b)??!0))}}});if(a.size>0&&r.diagnostics.push({origin:"registry",message:`Withheld ${a.size} MCP OAuth credential(s) that failed boot admission: ${[...a].join(", ")}`}),u()&&typeof n.onAdmitted=="function"&&n.onAdmitted(u,a),await f,!u())return!1;let p=r.currentLoad?.latestPi??e;return N(p,r),Se(r),Yo(p,r),!0}async function pZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return fZ(t);let o;try{o=Kk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await mZ({pi:e,state:r,data:n,candidate:i,store:s})}function hZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function mZ(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=hZ(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=Eu({pi:e,state:r,data:{configId:s.config_id},replacement:!0});u&&(f=r.liveEditGenerations?.get(s.config_id)),await v}return!p()||(r.sessionRemovedConfigIds.delete(s.config_id),m?r.dynamicallyAddedConfigIds.add(s.config_id):r.dynamicallyAddedConfigIds.delete(s.config_id),s.operation!=="retire"&&(await Je([a],r,e,p),!p()))?!1:(N(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?sd(c):la(c))}}function Ys(t,e){let r=t.mcpConnectionEpoch,n=(t.targetMaterialQueue??Promise.resolve()).then(()=>t.mcpConnectionEpoch===r?e():void 0).then(()=>{});return t.targetMaterialQueue=n.catch(()=>{}),n}function gZ(t,e){t.registryGeneration++,rg(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 Jk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Tu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(hm(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,gZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Ys(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await pZ({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 TZ}from"@hermes/logger";import{execFile as mm}from"node:child_process";import{win32 as gm}from"node:path";import{logger as yZ}from"@hermes/logger";var vZ=5e3,_Z=/^[a-z]:[\\/]/i,SZ=/[<>:"|?*]/;function wZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!_Z.test(t)||!gm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||SZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:gm.join(gm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function bZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function RZ(t,e){switch(process.platform){case"darwin":return mm("open",[t],e);case"win32":{let r=wZ();return r?mm(r,["-NoProfile","-NonInteractive","-EncodedCommand",bZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return mm("xdg-open",[t],e)}}function Yk(t,e=vZ){let r=yZ.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=RZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as CZ}from"node:http";function Au(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Xk(t){let e=Au(t.title),r=Au(t.heading),n=Au(t.message),o=t.details?Au(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 Gx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Bh(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}},Wh=new bq;function Vh(t,e){return Wh.run(t,e)}function Cq(t){Wh.getStore()?.onFailure?.(t)}function Zx({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=Wh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw Cq(u),u}}function Bx(t,e){let r=Zx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new mu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Wx(t,e){let r=Zx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new uu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Vx(){return new nu({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Kx=Xi,Jx=Ae;function Pt(t){return t instanceof Hn&&t.status===401||(t instanceof Ft||t instanceof Bs)&&t.code===401}function Kh(t){return t instanceof T&&t.code===$.MethodNotFound}function Jh(t){return t instanceof Error&&(t.name==="ZodError"||t.name==="$ZodError")&&Array.isArray(t.issues)}function Yx(t){return t instanceof T&&t.code===$.RequestTimeout}function Xx(t){return t instanceof T&&t.code===$.ConnectionClosed}var Pq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Qx(t){if(t instanceof T&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return Pq.some(r=>e.includes(r))}function ek(t){return t instanceof T&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Yh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Ft&&t.code===404}var X=xq.child({prefix:"pi-mcp"});function Eq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function Tq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&Eq(r,o)})}var Aq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Mq=/^Node\.js v\d/,$q=/^[\w$.]*error[\w$]*:/i,tk=400,Iq=63e3,rk=3,Oq=/[\\/]lib[\\/]cli\.js/,zq="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.",dk=Symbol("mcpReinitReported");function Nq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,dk,{value:!0,enumerable:!1,configurable:!0})}function Dq(t){return typeof t=="object"&&t!==null&&t[dk]===!0}function Lq(t){let e=t.filter(a=>!Mq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Oq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return zq;let o=r.findIndex(a=>$q.test(a)),s=(o===-1?r.slice(-rk):r.slice(o,o+rk)).join(" / ");return s.length>tk?`${s.slice(0,tk)}\u2026`:s}function jq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(Aq,"").split(`
101
+ `).map(i=>i.trim()).filter(i=>i.length>0),o=Lq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Fq=6e5,Uq=18e5,nk=2147483647,qq=3e4,ok=1e4,lk=[250,1e3,2e3],Zn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Ws=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Hq=250,ik=3,Gq=[200,500];function Zq(t){for(let e of Object.values(t))if(Dr(e))return!0;return!1}function Xh(t){let e=new Set;for(let r of t.matchAll(Ei))e.add(Da(r[0]));return[...e].sort()}function Qh(t){return[...new Set(t)].sort()}function sk(t,e){return Wy(e.map(r=>t?.[r]??"missing"))}function Bq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Qh([...e&&t?Ti(t):[],...n&&r?Xh(r):[],...o.flatMap(Xh)])}var gu="${augmentToken}";function Wq(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 Vq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var fk="(unknown uri)",em="unknown",ak=/=+$/,Kq=/\s+/g,Jq=/[-_]/g,Yq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Bn(t,e){return typeof t=="string"?t:e}function pk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Xq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Qq(t){let e=t.replace(Kq,"").replace(Jq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(ak,"");if(r.toString("base64").replace(ak,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function hk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function eH(t){let e=hk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Bn(e.uri,fk),n=Bn(e.mimeType,em);if(typeof e.blob=="string"&&Xq(n)){let i=Qq(e.blob);if(i!==void 0)return i}let o=pk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function tH(t){let e=Bn(t.type,"unknown");if(e==="resource")return eH(t);if(e==="audio"){let r=Bn(t.mimeType,em),n=pk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Bn(t.uri,fk),n=Bn(t.name,""),o=Bn(t.mimeType,em);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function rH(t){if(t.type!=="resource")return;let e=hk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Yq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function nH(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=rH(t);return e||{type:"text",text:uk(tH(t))}}function oH(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(nH(n))}return e}function iH(t){return Ly(t,Iq)}function mk(t,e){let r=oH(t);if(r.length===0){let o=iH(e);o!==void 0&&r.push({type:"text",text:uk(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=mk(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 gk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),aH=new Set([502,503,504]),Vs=lk.length+1,cH=2;function uH(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 dH(t){if(Pt(t)||Yh(t)||t instanceof gt)return;let e=t?.cause?.code;if(typeof e=="string")return gk.has(e)?{totalAttempts:Vs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:cH}:aH.has(r)?{totalAttempts:Vs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Vs}:void 0}var lH=80,fH=10,pH=/[^a-zA-Z0-9_.()-]/g,hH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function yu(t){return t.replace(pH,"_").slice(0,lH)||"unknown"}function mH(t){let e=uH(t);if(e!==void 0&&(/^\d{3}$/.test(e)||gk.has(e)))return e}function Ve(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=hH.has(e)?e:"Error",n=mH(t);return n===void 0?r:`${r}(${n})`}function gH(t,e,r){return t instanceof gt?new gt(yu(t.serverName),t.missingKeys.slice(0,fH).map(yu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${Ve(t)})`}function Gn(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:yu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var tm={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"}},yH="configured MCP server",vH=/^[A-Za-z][A-Za-z0-9 _.-]{0,79}$/,ck=/authorization|bearer|token|secret|password|passwd|api.?key|private.?key|cookie|credential|session/i,_H=/^(?:call_|toolu_)[A-Za-z0-9_-]{1,100}$/,Wn=class extends Error{category;serverDisplayName;constructor(e,r){super(tm[e].tool),this.category=e,this.serverDisplayName=r,this.stack=`Error: ${this.message}`}};function SH(t){return Yx(t)?"heartbeat_timeout":Xx(t)?"connection_closed":"heartbeat_failed"}var vu=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_tools=[];_connectPromise;_connectStartedAt;_refreshPromise;_refreshPersisting=!1;_disposing=!1;_disposed=!1;_resolvedEnv;_resolvedHeaders;_resolvedCommand;_resolvedArgs;onStateChange;_lastEmittedState;_activeTransport;_reinitializingPromise;_inFlightCalls=new Set;_wedgeRecoveryOwners=new Set;_wedgePending=!1;_wedgeRequired=!1;_heartbeatTimer;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;_suppressStdioDiagnostics;_toolErrorRedactor;constructor(e,r){this._config=e,this._targetAuth=te().targetMaterialStore?.auth(e),this._suppressStdioDiagnostics=e.type==="stdio"&&this._targetAuth?.credential!==void 0,this._hostedCredentialProvenance=r?Object.freeze({...r}):void 0,this.name=e.name,this._status=e.disabled?"disabled":"initializing"}_emitState(e,r){if(e!==this._lastEmittedState){this._lastEmittedState=e;try{this.onStateChange?.(e,r)}catch{}}}get targetCredentialProvenance(){return this._targetAuth?{credential:this._targetAuth.credential}:void 0}get status(){return this._status}get config(){return this._config}get hostedCredentialProvenance(){return this._hostedCredentialProvenance}get lastError(){return this._lastError}get suppressesProviderDiagnostics(){return this._suppressStdioDiagnostics}get connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._suppressStdioDiagnostics?[]:this._stdioTransport?.getLogHistory().map(e=>Na(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{X.warn(`MCP server "${this.name}" connect failed (${Ve(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=this._connectFailureMessage(r,"connect"),o=this._config.type==="stdio"&&!this._suppressStdioDiagnostics&&!Pt(r)?Na(jq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Ve(r))}}async _connectWithRetries(){let e=Vs,r={available:!0};for(let n=1;n<=Vs;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=dH(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=(lk[r-1]??0)+Math.floor(Math.random()*(Hq+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=Vx();this._client=i;let s;try{if(await Vh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Kx,()=>{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":gH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof gt){this._status="failed";let o=te();ii(o,this.name,e.reason,ft(o,this.name,this._config.id))}else if(e instanceof Ws||e instanceof Zn)this._status="failed";else if(Pt(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(Pt(e)){this._status="auth_required";let o=te(),i=o.servers.get(this.name);(i===void 0||i===this)&&o.tokens.markAuthRequired(this.name)}else{this._status="failed";let o=this._connectFailureMessage(e,r);xi(Gn(o,Ve(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=te().targetMaterialStore;if(!this._targetAuth&&(r?.has(e.name)||e.id&&r?.has(e.id)))throw new Error("MCP target provenance is unavailable");switch(this._targetAuth?.headers(),e.type){case"stdio":{let n=Ux({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=qx(this._resolvedEnv??e.env);return Gx({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 Wx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Bx(e,{headers:r,getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});return this._activeTransport=n,n}async _resolveSecretRefs(){let e=this._config,r=e.type==="stdio"?e.env:this._resolvedHeaders??e.headers,n=r?Zq(r):!1,o=e.type==="stdio"&&Dr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Dr);if(!(n||o||s))return;let a=te();if(!this._targetAuth&&!By(a)){let u=Bq({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??Gy(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 Ky({configEnv:e,localEnv:n&&!this._targetAuth?Hx():{},getSecret:s})}catch(c){throw X.error(`MCP server "${this.name}" secret resolution failed (${Ve(c)})`),new gt(this.name,Ti(e),c,"transient")}let a=Qh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new gt(this.name,a,void 0,sk(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Yd(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Jy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Ve(s)})`),new gt(this.name,Xh(e),s,"transient")}let i=Qh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new gt(this.name,i,void 0,sk(o.failureReasons,i));return o.resolved}_expandAugmentToken(){if(this._targetAuth)return;let e=this._config;if(e.type!=="http"&&e.type!=="sse")return;let r=e.headers;if(!r||!Object.values(r).some(s=>s.includes(gu)))return;let o;if(Wq(e.url)){let s=te().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${gu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${gu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Vq(e.url)}" does not qualify, sending the literal placeholder`,"error");if(o===void 0)return;let i={};for(let[s,a]of Object.entries(r))i[s]=a.replaceAll(gu,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=te();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?X.error(i):X.warn(i)}_usableToken(){let e=te();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!pt(n,this._config)))return r}_buildAuthHeaders(){if(this._targetAuth)return this._targetAuth.headers();let e=this._usableToken();return e?.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{}}hasRefreshEligibleOAuthCredential(){let{config:e}=this;if(e.type!=="http"&&e.type!=="sse"||e.disabled||this._hostedCredentialProvenance!==void 0||!this._usableToken())return!1;if(e.auth==="oauth")return!0;let r=te();return r.tokens.hasCredentialIdentity?.(this.name,Ht(r,this))===!0}async _maybeProactiveRefresh(){let e=te(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,Ht(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!wd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():Si(i)&&e.tokens.markAuthRequired(this.name)))}refreshTokenIfPossible(){return this._refreshTokenDeduped()}getRefreshInFlight(){return this._refreshPromise}_refreshTokenDeduped(){if(this._disposing||this._disposed)return Promise.resolve({kind:"transient_failure"});let e=te(),r=e.refreshes.get(this.name);if(r)return r.then(a=>a??{kind:"refreshed"});let n={state:e,tokenStore:e.tokens,serverGeneration:e.serverGenerations.get(this.name)??0,configRevision:e.configRevisions.get(this.name)??0,credential:e.credentialRevisions.get(this.name),localRefreshEnabled:e.shouldProactivelyRefreshTokens,failureScope:ft(e,this.name,this._config.id),token:this._usableToken(),hostWasUntracked:e.servers.get(this.name)===void 0},o=JSON.stringify([this.name,n.serverGeneration,n.configRevision,n.credential?.domain??null,n.credential?.revision??null]),i=e.refreshes.get(o);if(i)return i.then(a=>a??{kind:"refreshed"});let s=this._performTokenRefresh(n).finally(()=>{this._refreshPersisting=!1,e.refreshes.get(o)===s&&e.refreshes.delete(o),this._refreshPromise===s&&(this._refreshPromise=void 0)});return this._refreshPromise=s,e.refreshes.set(o,s),s}_ownsRefresh(e){let{state:r}=e,n=r.credentialRevisions.get(this.name),o=D(r,this.name)?.retirement?.incumbent.host,i=r.servers.get(this.name)===this||this._refreshPersisting&&o===this||e.hostWasUntracked&&r.servers.get(this.name)===void 0;return(!this._disposing||this._refreshPersisting)&&i&&(r.serverGenerations.get(this.name)??0)===e.serverGeneration&&(r.configRevisions.get(this.name)??0)===e.configRevision&&this._ownsRefreshCredential(e,n)&&(e.localRefreshEnabled===r.shouldProactivelyRefreshTokens||this._refreshPersisting)}_ownsRefreshCredential(e,r){return e.state.tokens===e.tokenStore&&e.tokenStore.get(this.name)===e.token&&r?.domain===e.credential?.domain&&r?.revision===e.credential?.revision}async _restoreAfterSupersededRefresh(e,r,n,o){let i=e.state.servers.get(this.name),s=e.state.tokens,a=s.get(this.name),c=e.state.credentialRevisions.get(this.name);if(s!==e.tokenStore||!i||!a||!pt(this._config,i.config))return;let u=Ht(e.state,i),d=n===void 0&&u===void 0||xr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),un({state:e.state,name:this.name,revision:o});return}let l=await s.restoreAfterSupersededRefresh(this.name,r,a,n,o,u);if(!l||e.state.tokens!==s||e.state.servers.get(this.name)!==i||s.get(this.name)!==a||!xr(Ht(e.state,i),u)||e.state.credentialRevisions.get(this.name)?.revision!==c?.revision||e.state.credentialRevisions.get(this.name)?.domain!==c?.domain||s.reconcileCredentialIdentity?.(this.name,a,u)!==!0)return;un({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&N(f,e.state)}catch{X.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&Rd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&ii(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),X.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${Ve(e)})`),n&&o?{kind:"terminal_failure"}:{kind:"transient_failure"}}async _performTokenRefresh(e){if(!e.localRefreshEnabled)return{kind:"transient_failure"};if(!e.token?.refreshToken)return this._ownsRefresh(e)?(e.state.tokens.markAuthRequired(this.name),ii(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=Ht(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await Cd(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:Yh(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)})`),Nq(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),Vh({operation:r,onFailure:a?u=>{a.failure=u}:void 0},e));try{let u=await c();return this._clearHostedAuthFailure(),u}catch(u){let d=a?.failure??u;if(this._disposed||!Pt(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Ws;if(this._hostedCredentialProvenance!==void 0)throw new Zn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;X.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw Pt(h)&&this._markAuthRequired(h,s),h}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=te();ii(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Ve(e)),X.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed()},e.onerror=()=>{this._handleTransportClosed()})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},qq),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<=ik&&n.outcome==="transient";s++)await pn(Gq[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 ${ik} 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:ok})},"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":Kh(e)||Jh(e)?"alive":Pt(e)?"authFailure":Qx(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:ok})}catch(r){if(this._reinitializingPromise||this._disposed||Jh(r)||Kh(r))return;this._failInFlightCalls(new Wn(SH(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 Yd([...Object.values(r??{}),...Object.values(this._resolvedEnv??{}),...Object.values(this._resolvedHeaders??{}),e?.accessToken??"",e?.refreshToken??""])}_safeDiagnosticName(){let e=this.name;return!vH.test(e)||ck.test(e)||Na(e)!==e||this._diagnosticRedactor().text(e)!==e||this._toolErrorRedactor&&this._toolErrorRedactor.text(e)!==e?yH:e}_safeCorrelationId(e){if(!(!e||!_H.test(e)||ck.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;kq(tm[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=!Tq(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>nk)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${nk}.`);let i=this._toolErrorRedactor,a={timeout:this._config.timeoutMs??Fq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Uq,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??{}},Jx,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=mk(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(tm[e.category].tool,"Error");throw this._disposed||xi(c,{server:e.serverDisplayName,op:"tool_call",transport:this._config.type}),c}if(this._suppressStdioDiagnostics){let c=Gn("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||xi(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Zn||e instanceof Ws)throw e;if(Pt(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=yu(r),i=Ve(e),s=ek(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 Dq(e)||xi(Gn(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Gn(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._toolErrorRedactor=void 0,this._targetAuth&&(this._resolvedHeaders=void 0,this._resolvedEnv=void 0,this._resolvedCommand=void 0),this._stopHeartbeat(),this._failInFlightCalls(new Error(`MCP server "${this.name}" is being disposed`),!1),this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1}async dispose(e){this.beginDisposal(),await this._refreshPromise,this._stopHeartbeat();let r=this._client;if(this._client=void 0,this._activeTransport=void 0,this._reinitializingPromise=void 0,this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1,this._stdioTransport=void 0,!!r)try{await r.close()}catch(n){if(this._suppressStdioDiagnostics){let o=Gn("MCP stdio close failed","Error");if(X.debug(o.message),e?.strict)throw o;return}if(X.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var yk=bH.child({prefix:"pi-mcp"}),RH=3,CH=6e4;function PH(t,e){let r=Date.now(),n=r-CH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=RH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function vk(t){ir(t),ya(t)}async function xH(t,e,r){if(!PH(e,t)){yk.warn(`MCP server "${t}" automatic restart rate-limited`);return}yk.warn(`MCP server "${t}" wedged; recycling transport`),await tn(t,e,r)}function _u(t,e,r){if(kH(e)){vk(t),N(t,e);return}ld(t,r),Ir(e)&&vk(t),N(t,e)}function kH(t){return pi()||t.toolSearchLatched}function tr(t,e,r){return Vu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function rm(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 EH(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&&tg(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 nm(t){let{state:e,config:r,generation:n}=t;return new vu(r,EH({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 om(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 im(t,e,r){return t.configDesiredRevisions.get(e)===r}function _k(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function sm(t,e,r,n){t.onStateChange=(a,c)=>{if(!tr(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(wH,u)},t.onWedged=()=>{if(!tr(t,e,r))return;let a=r.currentLoad?.latestPi??n;xH(t.name,r,a)};let o=t.hostedCredentialProvenance,i=t.targetCredentialProvenance?.credential,s;i&&(t.config.type==="http"||t.config.type==="sse")&&t.config.auth==="oauth"?s={serverGeneration:e,mcpConfigId:t.config.id,credentialRevision:i.revision,credentialRevisionDomain:i.domain}:o?.kind==="accepted"&&o.hostedAccessTokenOnly&&(s={serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain}),t.onAuthRefreshNeeded=()=>{if(!tr(t,e,r)||!s)return;let a=JSON.stringify(s);r.statusFailureCategories.set(t.name,{category:"auth_refresh_needed",...s}),r.authRefreshNeededReportKeys.get(t.name)!==a&&(r.authRefreshNeededReportKeys.set(t.name,a),N(r.currentLoad?.latestPi??n,r))},t.onAuthRefreshCleared=()=>{if(!tr(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&at(r,t.name,s)&&N(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{tr(t,e,r)&&t.status==="success"&&_u(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;fd(a,t,e),a!==n&&fd(n,t,e)}}async function Sk(t,e,r,n){let o=setTimeout(()=>{tr(t,e,r)&&N(n(),r)},na);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),tr(t,e,r)&&N(n(),r)}}async function wk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function Su(t,e){if(e.status!=="installed")return!1;let r=D(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function TH(t){let{state:e,config:r,displaced:n,retirement:o}=t;om(e,n.config),di(e,r.name),n.beginDisposal?.();try{let i=Ju(n.config,r)?Promise.resolve():ht(e,r.name,n.config.id,n.config),a=(await Promise.allSettled([i,n.dispose({strict:!0})])).find(c=>c.status==="rejected");if(a)throw a.reason;_e({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw _e({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function AH(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 MH(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),tr(r,o,e)?a?.(n)===!1?(await AH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&_u(c(),e,r),N(c(),e),r.status==="failed"?{status:"unavailable",config:n,error:new Error(r.lastError??`MCP server "${n.name}" failed`)}:{status:"installed",config:n,leaseRevision:s}):{status:"superseded",config:n}}function $H(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(!im(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=rm(e,r.name),l=nm({state:e,config:r,generation:d});return sm(l,d,e,o),sa({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:MH({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 IH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!im(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?ee(r,a.name,u):D(r,a.name),l=Pr(a,i),f=ci({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,h=()=>$H({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await TH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Wu(f.retirement),h());return f.retirement?m():h()}async function Je(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??Ke(e,d.name)})).map(async d=>{try{let l=await IH({intent:d,state:e,pi:r,sourceOwnership:n,sourceKind:i,activePi:s});return"connection"in l?l.connection:l}catch(l){return{status:"failed",config:d.config,error:l}}});if(c.length===0)return[];let u=setTimeout(()=>{N(s(),e)},na);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function OH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!_k(e,t,n))return!1;let i=o.config,s=ee(e,t,o);if(!Vu(e,t,o))return!1;om(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||!_k(e,t,n))return ke({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=rm(e,t),u=nm({state:e,config:i,generation:c});if(sm(u,c,e,r),!sa({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await Sk(u,c,e,d),tr(u,c,e)&&u.status==="success"&&_u(d(),e,u),!0}function tn(t,e,r){e.reconnects??=new Map,e.configRevisions??=new Map,e.reconnectDesiredGenerations??=new Map,e.statusFailureCategories??=new Map;let n=(e.reconnectDesiredGenerations.get(t)??0)+1;e.reconnectDesiredGenerations.set(t,n);let o=e.reconnects.get(t);if(o)return o;let i=(async()=>{let s=0,a=e.configRevisions.get(t)??0;do{let c=e.reconnectDesiredGenerations.get(t)??0;if((e.configRevisions.get(t)??0)!==a||!await OH({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 zH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;om(e,n.config),di(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Ju(n.config,o)?Promise.resolve():ht(e,r,n.config.id,n.config),c=(await Promise.allSettled([s,n.dispose({strict:!0})])).find(u=>u.status==="rejected");if(c)throw c.reason;i&&_e({state:e,name:r,retirement:i,result:{status:"retired"}})}catch(s){throw i&&_e({state:e,name:r,retirement:i,result:{status:"failed",error:s}}),s}}async function bk(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 zH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Wu(f.retirement),D(e,t)?.revision!==f.lease.revision||!im(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=rm(e,t),h=nm({state:e,config:a,generation:p});sm(h,p,e,r),sa({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await Sk(h,p,e,i),tr(h,p,e)&&h.status==="success"&&_u(i(),e,h))}async function Ks(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>tn(n,e,r)))}finally{e.reconnecting=!1}}var Rk=Symbol.for("__pi_mcp_registry_ingress__");function wu(t){return Object.defineProperty(t,Rk,{value:!0}),t}function Vn(t){return Object.getOwnPropertyDescriptor(t,Rk)?.value===!0}function rn(t){let{state:e,target:r,byConfigId:n=!1}=t;if(!r)return;let o=[...e.servers].filter(([u,d])=>d.config.id===r||!n&&u===r);if(o.length!==1)return;let i=o[0];if(!i)return;let[s,a]=i;if(a.config.id&&[...e.servers].some(([u,d])=>u!==s&&d.config.id===a.config.id))return;let c=D(e,s);if(!(c&&(c.host!==a||c.owner.kind==="registry"&&c.connectionEpoch!==e.mcpConnectionEpoch))&&!(!c&&e.mcpConnectionEpoch!==void 0&&a.config.registrySource!==void 0)&&!((n||s!==r)&&!Vn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as NH}from"@hermes/logger";var DH=NH.child({prefix:"pi-mcp"}),LH=1e6,jH=1e3,FH=/^\d+$/;function Ck(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function nn(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t.credential_revision??t.credentialRevision,r=t.credential_revision_domain??t.credentialRevisionDomain;if(typeof e!="string"||!FH.test(e)||typeof r!="string"||r.length===0)return;let n=ca(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:Ck(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function UH(t,e,r){let n=t?.get(e),o=typeof r=="string"?t?.get(r):void 0;return n===void 0?o:o===void 0?n:kr(o,n)>0?o:n}function qH(t,e,r){if(t===void 0)return!0;let n=Ck(t);return n===e.domain||r?.kind==="domain"&&e.ownerDomain===r.domain||r?.kind==="domain"&&(n.startsWith("private:")||n.startsWith("shared:"))&&e.domain.startsWith("recipient:")&&Er(n)===r.domain&&Er(e.domain)===r.domain?!0:r?.kind==="domain"&&!Ie(n)&&Ie(e.domain)&&Er(n)===r.domain}function HH(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 DH.warn(`Skipping MCP OAuth credentials for "${t}": invalid credential revision or domain`),"reject";let s=n?.expectedDomains?.get(t);if(r===void 0)return n?.requireRevision===!0||s!==void 0||n?.acceptedDomains?.has(t)===!0?"reject":"apply";let a=Er(r.domain);if(s?.kind==="blocked"||s?.kind==="domain"&&r.ownerDomain!==void 0&&r.ownerDomain!==s.domain||s?.kind==="domain"&&r.ownerDomain===void 0&&!Ie(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!qH(c,r,s))return"reject";let u=UH(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=kr(r.revision,u);return d>0||d===0&&c===void 0&&s?.kind==="domain"&&n?.equalRevisionRebindDomains?.get(t)===s.domain?"apply":d===0?"equal":"reject"}function GH(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 ZH(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 BH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*jH+Math.floor(t.access_token_expires_at.nanos/LH):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 WH(t,e){return t?t.accessToken===e.accessToken&&t.refreshToken===e.refreshToken&&t.expiresAt===e.expiresAt&&t.tokenType===e.tokenType&&t.scope===e.scope&&t.resource===e.resource&&t.serverMetadata?.issuer===e.serverMetadata?.issuer&&t.serverMetadata?.authorization_endpoint===e.serverMetadata?.authorization_endpoint&&t.serverMetadata?.token_endpoint===e.serverMetadata?.token_endpoint&&t.client?.client_id===e.client?.client_id&&t.client?.client_secret===e.client?.client_secret&&t.client?.token_endpoint_auth_method===e.client?.token_endpoint_auth_method:!1}function _r(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!ZH(n))return{decision:"reject"};let i=nn(n),s=HH(r,n,i,o);if(s==="reject")return{decision:s};let a=BH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!WH(e.get(r),a))||s==="apply"&&GH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function bu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=_r({store:t,serverName:o,proto:i,options:r});if(s.decision!=="apply"){n[s.decision==="equal"?"equal":"rejected"].push(o);continue}let{token:a,revision:c}=s;t.set(o,a),r?.equalRevisionRebindDomains?.delete(o),c!==void 0&&(r?.acceptedRevisions?.set(c.domain,c.revision),r?.acceptedDomains?.set(o,c.domain)),n.applied.push(o)}return n}var Pk=VH.child({prefix:"pi-mcp"});function KH(t,e){let r=rn({state:t,target:e,byConfigId:!0});if(!r)return;let o=D(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function JH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=nn(i);if(s===void 0)return!1;let a=dn(s);return s.ownerDomain!==void 0?a===`user:${e}`:o===r&&Ie(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function xk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){Pk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=KH(r,n.configId),i=o?JH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=D(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth")return;let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>_r({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject")return;let d=o.server.getRefreshInFlight?.();if(d&&await Promise.resolve(d).catch(()=>{}),r.mcpConnectionEpoch!==a||r.servers.get(o.name)!==o.server||D(r,o.name)!==s||u().decision==="reject")return;ee(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=bu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let m=nn(i);m&&(r.credentialRevisions.set(o.name,m),r.hostedCredentialOwnership.set(o.name,{...m,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??tn,h=t.report??N;await p(o.name,r,f).catch(m=>{Pk.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 dG}from"@hermes/logger";import{randomUUID as YH}from"node:crypto";import{setToolSource as XH}from"@augmentcode/auggie-v2";import{logger as QH}from"@hermes/logger";import{Type as eG}from"@sinclair/typebox";var Ek=QH.child({prefix:"pi-mcp"}),rr="attach-mcp-server",tG="augment:mcp-attach-request",rG=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 oG(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 iG(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function am(t,e){let r=iG(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)},rG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function kk(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 aG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Pe(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${am(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Pe(`MCP server "${e.name}" failed to connect after the attach was accepted. Ask the user to reconnect it from the session MCP panel before trying again.${am(r,e)}`)}function cG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Pe(`Timed out waiting for the attach request for "${e.name}" to be acknowledged. The server may still attach shortly; check find-tool's server list before retrying.`);if(r.error==="UNIMPLEMENTED")return n.mcpAttachDisabled=!0,Pe("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");if(r.error==="DENIED")return Pe(`The control plane denied the request to attach "${e.name}". Do not retry; ask the user to verify that the server is available for this session.`);if(r.error!==void 0)return Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Pe(`Attach accepted for "${e.name}". Connection continues in the background; use find-tool to discover its tools when ready. If its tools do not appear, call attach-mcp-server again with the same config id for connection guidance.`);case"ALREADY_ATTACHED":return Pe(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Pe(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${am(n,e)}`);case"NO_ACTIVE_VM":return Pe(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Pe(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function uG(t,e,r){if(e.mcpAttachDisabled)return Pe("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");let{config_id:n}=r??{};if(typeof n!="string"||n.trim().length===0)throw new Error(`${rr} requires a string "config_id" parameter. ${kk(e)}`);let o=oG(e,n);if(o.kind==="none")return Pe(`No MCP server matching "${n}" is available to attach. ${kk(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Pe(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=aG({entry:i,state:e});if(s!==void 0)return s;if(pd(e,i))return Pe(`MCP server "${i.name}" is already attached to this session. Use find-tool to discover its tools.`);if(i.state!=="available"&&i.state!=="opt_in_required")return Pe(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=YH();Ek.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=sG(e,a);t.events.emit(tG,{configId:i.id,requestId:a});let u=await c,d=cG({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(rr),no(rr),Ir(e)&&ir(t)),d}function Ru(t,e){let r={name:rr,label:rr,description:"Attach an available MCP server to this session so its tools become usable. Only servers listed as available-but-not-attached in find-tool's description can be attached. Call this tool immediately when the user's request needs one of those servers; it attaches directly without requiring user approval.",parameters:eG.Unsafe(nG),execute:(n,o)=>uG(t,e,o)};XH(rr,"mcp"),t.registerTool(r),Mr(r),Ek.debug("Registered attach-mcp-server tool")}var Cu=dG.child({prefix:"pi-mcp"}),cm="augment:mcp-attach-result";function Tk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(cm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){Cu.warn(`${cm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){Cu.debug(`${cm}: no pending resolver for request ${o} (already timed out?)`);return}let s={...typeof n?.status=="string"?{status:n.status}:{},...typeof n?.error=="string"?{error:n.error}:{}};i(s)}))}function Pu(t,e){if(e.mcpAttachCloudSignaled&&va(e)){Ru(t,e);return}e.mcpAttachCloudSignaled&&yg(rr)!==void 0&&(t.unregisterTool(rr),no(rr))}function Yo(t,e){if(!e.mcpAttachCloudSignaled||!va(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await xg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,Cu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,Cu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Pu(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as CG}from"@hermes/logger";function lG(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 fG(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case Or.CLI:return"cli";case Or.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function xu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(fG).filter(r=>r!==void 0);return e.length===0?void 0:e}function ku(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=lG(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 pG(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 hG(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 um(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 mG(t,e,r){if(r!==void 0&&t.added_by===r)return xu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?xu(n):[]}function gG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=um(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=um(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=um(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)?mG(p,o,s):xu(p.enabled_products),g=t.productType??"cloud_agent";m===void 0||m.includes(g)?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function yG(t,e="cloud_agent"){if(t==null)return e==="cli"?Or.CLI:Or.CLOUD_AGENT}function vG(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 Ak(t,e,r,n){try{let o=t.type==="stdio"?Zt(t,n):Gt(t,n);return{ok:!0,server:wu(o)}}catch(o){let i=o instanceof Error?o.message:String(o);return{ok:!1,diagnostic:{server:t.name,message:`Skipped registry MCP server "${t.name}" (id=${e}, ${r}): ${i}`}}}}function _G(t){let{payload:e,userIds:r,localServerNames:n,seenNames:o,workspaceRoot:i}=t;if(e.config?.disabled)return e.config.name?{kind:"retained",name:e.config.name}:{kind:"dropped"};let s=r.has(e.id)?"user":"tenant",a=ku(e,s);if(!a.ok){let d=e.config?.name,l={server:d,message:`Skipped registry MCP server "${d??e.id}" (id=${e.id}, ${s}): ${a.reason}`};return d?{kind:"retained",name:d,diagnostic:l}:{kind:"dropped",diagnostic:l}}let c=a.server;if(o.has(c.name)){if(n.has(c.name))return{kind:"retained",name:c.name,diagnostic:{server:c.name,message:`Skipped registry MCP server "${c.name}" (id=${e.id}, ${s}): a local server with the same name takes precedence`}};let d=Ak(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=Ak(c,e.id,s,i);return u.ok?(o.add(c.name),{kind:"connected",server:u.server}):{kind:"retained",name:c.name,diagnostic:u.diagnostic}}function SG(t){let e=[],r=[],n=[];for(let o of t)pG(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 wG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=hG(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 bG(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function Eu(t){let e=t.productType??"cloud_agent",r=t.client??new Sa(t.creds),{tenant:n,user:o,diagnostics:i}=await Lg(r,yG(t.configIds,e)),s=o.mcp_configs??[],a=new Set(s.map(R=>R.id)),{selected:c,filteredOutIds:u,missingIds:d,retainedNames:l}=gG({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=SG(c),p=f.selected;u.push(...f.droppedIds),i.push(...f.diagnostics),i.push(...vG(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 _=_G({payload:R,userIds:a,localServerNames:t.localServerNames,seenNames:g,workspaceRoot:t.workspaceRoot});bG(_,{servers:h,retainedNames:l,diagnostics:i,nameCollisionFallbacks:m})}let w=wG(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 RG}from"@hermes/logger";var Xo=RG.child({prefix:"pi-mcp"});function Mk(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Xo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=ku(n,"tenant");if(!i.ok){Xo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return wu(i.server.type==="stdio"?Zt(i.server,s):Gt(i.server,s))}catch(a){Xo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function $k(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 Mk(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=Mk(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=CG.child({prefix:"pi-mcp"});function Ok(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function zk(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 PG(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=zk({state:e,name:r,lease:c,host:n,isDeselected:Ok({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 xG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=zk({state:e,name:r,lease:n,isDeselected:Ok({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function kG(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=PG({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||xG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Nk(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 EG(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 TG(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 AG(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 MG(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 $G(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 IG(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 OG(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 Nk(e,r.servers,n,i,o!==void 0)}async function Dk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():fi(t,r.id)))}async function Ik(t){return await Dk(t.state,t.result),t.state.registryGeneration===t.generation&&await OG(t),t.result}function zG(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=EG(n,r,i);return Ik({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=>Ik({state:e,result:f,previousSelectedIds:s,selection:a,generation:c})):void 0}function NG(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 DG(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 LG(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 Lk(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 dm(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 jG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){dm({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 Dk(e,r),e.registryGeneration!==o)return;let c=Lk({state:e,generation:o}),u=r.servers.filter(c),d=await Promise.all(u.map(v=>Ar({state:e,config:v,pi:s})));if(e.registryGeneration!==o)return;let l=u.filter((v,w)=>d[w]),f=u.filter((v,w)=>!d[w]);NG({state:e,result:r,selection:n}),DG({state:e,servers:f}),dm({state:e,result:r,selection:n,slotReservations:a});let p=LG({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 FG({state:e,pi:s,result:r,generation:o,connect:i})}async function FG(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 UG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function UG(t){let{state:e,pi:r,generation:n,connect:o,name:i,candidate:s}=t;if(e.registryGeneration!==n)return"abort";let a=e.servers.get(i);if(!a||a.status!=="auth_required"&&a.status!=="failed")return"settled";let c=a.config.id;if(c===void 0||c===s.id)return"settled";if(!await Ar({state:e,config:s,pi:r})||e.registryGeneration!==n)return"abort";xt.info(`MCP auth fallback: "${i}" (id=${c}) landed ${a.status}; connecting same-named config id=${s.id} in its place`),await o([s],e,e.currentLoad?.latestPi??r,Lk({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 qG(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 Nk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function HG(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 GG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await jG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),dm({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 HG(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 qG({...t.resultArgs,error:r})}}function Js(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Eu,s=o?.connect??Je,a=n;if(!a||typeof a!="object"||Array.isArray(a))return xt.warn("augment:mcp-config-ids payload is not an object"),Promise.resolve();let c=t.productType??a.productType??"cloud_agent";Array.isArray(a.configIds)&&sg(r,new Set(a.configIds.map(He)));let u=TG({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=AG({state:r,previousSelectedIds:l,configIds:a.configIds}),p=MG({parsedEmbedded:u,configIds:a.configIds}),h=++r.registryGeneration,m=Promise.all([kG(r,a.configIds,p),f]).then(([w])=>w);$G(r);let g=a.configIds?[...a.configIds]:void 0,v=zG({state:r,configIds:a.configIds,parsedEmbedded:u,credentials:d,localServerNames:IG(r),previousSelectedIds:l,selection:g,generation:h,discover:i,productType:c});return v?GG({disposal:m,discovery:v,resultArgs:{state:r,previousSelectedIds:l,selection:g,generation:h,connect:s,pi:e}}):Promise.resolve()}import{logger as ZG}from"@hermes/logger";var on=ZG.child({prefix:"pi-mcp"});function BG(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 WG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function qk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function VG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function jk(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&&(VG({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 Hk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Fk(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 Gk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function KG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=D(e,r),s=n?Pr(n):void 0;if(i===void 0){Ke(e,r);return}let a=i.host===void 0&&i.owner.kind==="registry"&&s?.kind==="registry"&&i.owner.identity===s.identity,c=o?.incumbent.owner.kind==="registry"&&s?.kind==="registry"&&o.incumbent.owner.identity===s.identity;if(!a&&!c)return;(o?.settled&&i.retirement===o?Wm({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&&(Gk(e,r),Ke(e,r))}async function lm(t){let{state:e,configId:r,pi:n,report:o,sourceFence:i}=t,s=e.registryCredentialConfigsById.get(r),a=s?.name;if(!s||!a){let w=`Live MCP remove-server cannot retire config id ${r}: exact registry identity is unavailable`;throw on.warn(w),e.diagnostics.push({message:w,origin:"registry"}),new Error(w)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=D(e,a),u=Pr(s),d=c?.retirement?.incumbent.owner.kind==="registry"&&u.kind==="registry"&&c.retirement.incumbent.owner.identity===u.identity?c.retirement:void 0,l=c!==void 0&&c.host===void 0&&c.owner.kind==="registry"&&u.kind==="registry"&&c.owner.identity===u.identity,f=e.configDesiredRevisions.get(a),p=e.configDesiredSources.get(a),h=l&&d?.settled!==!0?Ke(e,a):void 0;if(d&&!d.settled&&(await d.teardown).status==="retired"&&!l)return;let g=D(e,a)?.retirement===d?d:void 0,v=g?.result;if(d&&v?.status==="failed"&&v.transportDisposed!==!0){let w=v.error instanceof Error?v.error:new Error(String(v.error)),b=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw on.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await li(e,a,r,s)}catch(w){h!==void 0&&e.configDesiredRevisions.get(a)===h&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let b=`Live MCP remove-server failed to detach ${a}: ${w instanceof Error?w.message:String(w)}`;throw on.warn(b),e.diagnostics.push({server:a,message:b}),w}qk({state:e,configId:r,fence:i})&&(Hk(e,r),KG({state:e,name:a,config:s,retirement:g})),on.info(`Live MCP remove-server: config id ${r} resolved to no live server (already removed or unknown id)`),o(e.currentLoad?.latestPi??n,e)}function Uk(t){let{state:e,name:r,operation:n,result:o}=t;if(o.status!=="rejected")return;let i=`Live MCP remove-server failed to ${n} ${r}: ${o.reason instanceof Error?o.reason.message:String(o.reason)}`;on.warn(i),e.diagnostics.push({server:r,message:i})}async function JG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Uk({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 Uk({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 YG(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?ee(e,n,a):D(e,n);if(!a||!c||c.owner.kind!=="registry"||c.host!==a)return;e.registryConfigNamesById.set(r,n),e.registryCredentialConfigsById.set(r,{...a.config});let u=e.configDesiredRevisions.get(n),d=e.configDesiredSources.get(n),l=Ke(e,n),f=ct({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),on.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await JG({state:e,name:n,configId:r,server:a});if(h&&qk({state:e,configId:r,fence:s})?Hk(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})&&Gk(e,n),i(p,e),!h)throw m}function Tu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return on.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return on.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:pa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??N,u=Fk(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(jk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>lm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=BG(r,s);if(u===void 0&&d===void 0)return a(lm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=WG({state:r,configId:s,liveEditGeneration:h});return a(jk({state:r,configId:s,fence:m,operation:()=>{let g=Fk(r,s);return g===void 0?lm({state:r,configId:s,pi:e,report:c,sourceFence:m}):YG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{createHash as XG}from"node:crypto";var QG=/^[1-9][0-9]*$/,eZ=/^[a-f0-9]{64}$/,tZ=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 fm(t){return typeof t=="string"&&QG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function hm(t){return fe(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&fm(t.connectionVersion)}function rZ(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Dr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Dr(e))&&typeof t.use_shell_interpolation=="boolean"&&t.auth_type!=="oauth";if(t.version!==1||t.transport!=="http"&&t.transport!=="sse"||typeof t.url!="string"||t.command!==void 0||t.args!==void 0||t.use_shell_interpolation!==void 0)return!1;try{let e=new URL(t.url);return["http:","https:"].includes(e.protocol)&&!e.username&&!e.password&&!e.hash}catch{return!1}}function Bk(t){if(!(!fe(t)||Object.keys(t).some(e=>!tZ.has(e)))&&!(!rZ(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"||!eZ.test(t.route_revision)||!fm(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"||!fm(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 oZ(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 Zk(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 iZ(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=Ti((e.type==="stdio"?e.env:e.headers)??{}),n=Object.keys(t.static_secrets??{});return t.auth_type==="static"?r.length>0&&r.length===n.length&&n.every(o=>r.includes(o)):r.length===0}var Au=class{#t=new Map;#o=new WeakSet;#r=new WeakSet;#e;#n;#i=Symbol("mcp-connection");get epoch(){return this.#i}get hasConnection(){return this.#e!==void 0}revokeConnection(){this.#t.clear(),this.#r=new WeakSet,this.#n=void 0,this.#e=void 0,this.#i=Symbol("mcp-connection")}setConnection(e){return hm(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||!oZ(e,r)||!n&&(!o||!this.#r.has(r)||!Zk(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"&&Zk(e,o.material)&&iZ(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 Wk(t){return XG("sha256").update(t).digest("hex")}function aZ(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 cZ(t,e){if(e.length<=1)return!0;let r=ca(t);return r.kind==="valid"&&e.filter(n=>He(n)===r.ownerDomain).length===1}function Vk(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 uZ(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 dZ(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 lZ(t,e,r){if(typeof t!="string"||Wk(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||!dZ(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(!uZ(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 Kk(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?Vk(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?aZ(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)||!cZ(f,b)||n.has(l)||_r({store:t.tokens,serverName:l,proto:f,options:{requireEqualMaterial:!0}}).decision==="reject")&&r?.add(l);continue}if(!fe(f)||Object.entries(f).some(([b,R])=>b!=="target_material"&&b!=="passive_install"&&R!==""))return;let p=Bk(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?lZ(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 fZ(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=Kk(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=[...Vk(n.configsJson).keys()]);let l=new Map(i.map(h=>[h.material.config_id,h.config]));o.retainSelection(new Set(l.keys()));for(let{material:h,config:m}of i)o.commit(h,m);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,Ru(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let f=Js({pi:e,state:r,data:{configIds:d},admittedConfigs:l,deps:{connect:(h,m,g,v)=>{if(!u())return Promise.resolve([]);let w=h.map(b=>{let R=b.id?l.get(b.id):void 0;if(!R&&b.id&&o.has(b.id))throw new Error("MCP target material is unavailable");return R??b});return Je(w,m,g,b=>u()&&(v?.(b)??!0))}}});if(a.size>0&&r.diagnostics.push({origin:"registry",message:`Withheld ${a.size} MCP OAuth credential(s) that failed boot admission: ${[...a].join(", ")}`}),u()&&typeof n.onAdmitted=="function"&&n.onAdmitted(u,a),await f,!u())return!1;let p=r.currentLoad?.latestPi??e;return N(p,r),Se(r),Yo(p,r),!0}async function pZ(t){let{pi:e,state:r,data:n}=t;if(!fe(n))return!1;if(n.kind==="boot")return fZ(t);let o;try{o=Kk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await mZ({pi:e,state:r,data:n,candidate:i,store:s})}function hZ(t,e){let r=fe(t.credentials)?t.credentials[e]:void 0;return fe(r)&&Object.hasOwn(r,"passive_install")}async function mZ(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=hZ(n,s.server_name),d=i.epoch,l=r.attachmentCommandGenerations?.get(s.config_id),f,p=()=>i.epoch===d&&(f===void 0||r.liveEditGenerations?.get(s.config_id)===f)&&r.attachmentCommandGenerations?.get(s.config_id)===l,h=!1;try{i.commit(s,a);let m=n.kind==="add"||r.dynamicallyAddedConfigIds.has(s.config_id);if([...r.servers.values()].find(v=>v.config.id===s.config_id&&v.config.registrySource!==void 0&&(i.hasTargetProvenance(v.config)||Vn(v.config)))){let v=Tu({pi:e,state:r,data:{configId:s.config_id},replacement:!0});u&&(f=r.liveEditGenerations?.get(s.config_id)),await v}return!p()||(r.sessionRemovedConfigIds.delete(s.config_id),m?r.dynamicallyAddedConfigIds.add(s.config_id):r.dynamicallyAddedConfigIds.delete(s.config_id),s.operation!=="retire"&&(await Je([a],r,e,p),!p()))?!1:(N(e,r),h=!0,!0)}finally{n.kind==="add"&&(h?sd(c):fa(c))}}function Ys(t,e){let r=t.mcpConnectionEpoch,n=(t.targetMaterialQueue??Promise.resolve()).then(()=>t.mcpConnectionEpoch===r?e():void 0).then(()=>{});return t.targetMaterialQueue=n.catch(()=>{}),n}function gZ(t,e){t.registryGeneration++,rg(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 Jk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Au,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(hm(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,gZ(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Ys(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await pZ({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 TZ}from"@hermes/logger";import{execFile as mm}from"node:child_process";import{win32 as gm}from"node:path";import{logger as yZ}from"@hermes/logger";var vZ=5e3,_Z=/^[a-z]:[\\/]/i,SZ=/[<>:"|?*]/;function wZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!_Z.test(t)||!gm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||SZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:gm.join(gm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function bZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function RZ(t,e){switch(process.platform){case"darwin":return mm("open",[t],e);case"win32":{let r=wZ();return r?mm(r,["-NoProfile","-NonInteractive","-EncodedCommand",bZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return mm("xdg-open",[t],e)}}function Yk(t,e=vZ){let r=yZ.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=RZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as CZ}from"node:http";function Mu(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Xk(t){let e=Mu(t.title),r=Mu(t.heading),n=Mu(t.message),o=t.details?Mu(t.details):void 0,i=t.autoClose?"<script>setTimeout(() => window.close(), 2000);</script>":"";return`<!doctype html>
102
102
  <html lang="en">
103
103
  <head>
104
104
  <meta charset="utf-8" />
@@ -140,13 +140,13 @@ ${C}`,l++;break;case"id":u=C.includes("\0")?void 0:C;break;case"retry":/^\d+$/.t
140
140
  </main>
141
141
  ${i}
142
142
  </body>
143
- </html>`}function Qk(t){return Xk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Mu(t,e){return Xk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var PZ="127.0.0.1",rE="/callback",eE=3e3,tE=3010,xZ="Authentication successful. You can close this window.",$u={"Content-Type":"text/html; charset=utf-8"};function nE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function oE(t,e){let r=t.trim();if(!r)throw new Error("No authorization code provided");let n;try{n=new URL(r).searchParams}catch{(r.includes("code=")||r.includes("error="))&&(n=new URLSearchParams(r))}if(!n)return{kind:"success",result:{code:r,state:e}};let o=n.get("state");if(n.has("error")){if(o!==e)throw new Error("OAuth state mismatch");return{kind:"error",params:n}}let i=n.get("code");if(!i)throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return{kind:"success",result:{code:i,state:o??e}}}function ym(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function kZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==rE){e.writeHead(404,$u),e.end(Mu("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,$u),e.end(Mu("Authentication did not complete.",`Error: ${s}`));let u=ym(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,$u),e.end(Mu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,$u),e.end(Qk(xZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function EZ(t){for(let e=eE;e<=tE;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,PZ)}))return e;throw new Error(`No free port in ${eE}-${tE} for the OAuth callback server`)}async function iE(){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=CZ((a,c)=>{kZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await EZ(i);return{port:s,redirectUri:`http://localhost:${s}${rE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var vm=TZ.child({prefix:"pi-mcp"}),AZ=300*1e3,cE="MCP authentication was superseded";function sE(){return nE()?"You appear to be on a remote machine. Open the URL in a local browser, then paste the final redirect URL or code below.":"Complete sign-in in your browser. If it doesn't open, paste the final redirect URL or code below."}function Sr(t){if(t.aborted)throw new Error("Authentication cancelled")}function uE(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&&dE(t.credentialRevisions.get(e),r.credentialRevision)}function dE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function aE(t,e,r){if(!uE(t,e,r))throw new Error(cE)}async function MZ(t,e,r,n,o,i,s){let a=t.servers.get(e),c=t.tokens,u=c.get(e),d=t.credentialRevisions.get(e);if(c!==r.tokenStore||!a||!u||!pt(r.server.config,a.config))return;let l=a.config,f=Ht(t,a);try{let p=await c.restoreAfterSupersededAuthentication(e,o,u,n,i,f);if(p===void 0||t.tokens!==c||t.servers.get(e)?.config!==l||c.get(e)!==u||!xr(Ht(t,a),f)||!dE(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{vm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function $Z(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 IZ(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"))),AZ)},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(ym(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=oE(g,r());if(v.kind==="success"){u(()=>o(new URLSearchParams({code:v.result.code,state:v.result.state})));return}let w=e.waitForManualCode();await p(v.params,w)}catch(v){f(v)}}).catch(g=>u(()=>i(g instanceof Error?g:new Error(String(g)))))};if(t.setErrorRetryHandler(m=>n(m,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(m=>{m&&u(()=>o(new URLSearchParams({code:m.code,state:m.state})))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function lE(t){let{serverName:e,state:r,pi:n,controller:o}=t,i=r.servers.get(e);if(!i)throw new Error(`Unknown MCP server "${e}"`);let s=i.config;if(s.type!=="http"&&s.type!=="sse")throw new Error(`MCP server "${e}" does not use OAuth authentication`);if(r.authenticating)throw new Error("Another MCP authentication is already in progress");r.authenticating=!0,r.authenticatingServerName=e;let a=++r.authenticationGeneration,c={authenticationGeneration:a,server:i,serverGeneration:r.serverGenerations.get(e)??0,installedConfigRevision:r.configRevisions.get(e)??0,desiredConfigRevision:r.configDesiredRevisions.get(e)??0,tokenStore:r.tokens,token:r.tokens.get(e),credentialRevision:r.credentialRevisions.get(e)},u=Ht(r,i),d;try{Sr(o.signal),d=await iE(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Gd(l),Sr(o.signal),p=await Zd(f),Sr(o.signal)}catch{throw Sr(o.signal),new Error(`OAuth discovery failed for MCP server "${e}". Verify that the endpoint supports OAuth and publishes discovery metadata.`)}let h=await c.tokenStore.captureAuthenticatedIdentityVersion(u);aE(r,e,c),Sr(o.signal);let m=await Bd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await $a(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);Sr(o.signal);let v=g,w=!1,b,R,_=(xe,an)=>{if(w)return R&&b&&Ia(xe,b)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Ia(xe,v))return Promise.resolve(null);w=!0;let cn=v;return b=cn,an(),vm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Wd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:sE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(xe=>_(xe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:sE()}),Sr(o.signal),await Yk(g.authUri.toString());let C=await IZ(d,o,()=>v.state,_),I=await Vd(C,v);aE(r,e,c);let Q=$Z(I),pe=await c.tokenStore.persistAuthenticated(e,Q,u,h);if(!uE(r,e,c))throw await MZ(r,e,c,u,Q,pe,n),new Error(cE);c.tokenStore.commit(e,Q,u),r.preservedCredentialIdentities?.delete(e),un({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),at(r,e),await Ks([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),vm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as KZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as OZ,SETTINGS_TARGET_ORDER as zZ,SettingsManager as NZ,scopeToSettingsTarget as DZ,settingsTargetToScope as _m}from"@augmentcode/auggie-v2";var LZ=zZ.map(t=>_m(t)),fE=(t,e)=>NZ.create(t,e);function pE(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 hE(t,e,r){let n=fE(e,r);return LZ.filter(o=>pE(n,o)?.[t])}function mE(t){let e=t.map(n=>({target:DZ(n),path:n,exists:!0})),r=OZ({files:e});return"directTarget"in r?{scopes:t,direct:_m(r.directTarget)}:{scopes:r.files.map(n=>_m(n.target)),direct:null}}function jZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function gE(t,e,r,n,o){try{let i=fE(n,o);if(!pE(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:jZ(t,n,o)!==e}}function Sm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function yE(t,e,r){return Sm(t)}function vE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as FZ}from"@hermes/logger";var bm=FZ.child({prefix:"pi-mcp"}),_E="hermes:mcp:register-server-source";function UZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function SE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function qZ(t,e){return{...t,disabled:e}}function HZ(t){try{return t.getServers()}catch(e){return bm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function GZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function wE(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 ZZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of HZ(t)){let s=e.servers.get(i.name),a=UZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=qZ(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)&&SE(s.config,u);p&&(ee(e,i.name,s),Bm({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),wE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function BZ(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 bE(t,e){wE(t,e)}function WZ(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"){bE(e,a);continue}u===o.get(a)&&n.has(a)&&SE(u.config,c)||(s.set(a,Ke(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function VZ(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&&GZ(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=ZZ(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 BZ(a,u,e);let{reservedRevisions:d,toConnect:l}=WZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;bm.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||bE(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 wm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>VZ(t,e,r)).catch(i=>{bm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function RE(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),wm(o.currentLoad?.latestPi??i,o,e))}function CE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,wm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,wm(e.currentLoad?.latestPi??t,e))})}}function JZ(t,e){let n=KZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function PE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(JZ(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:Sm(e)};if(id(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=hE(e,n,o);if(s.length===0)return{kind:"blocked",message:yE(e,n,o)};let{scopes:a,direct:c}=mE(s);return{kind:"local",scopes:a,direct:c}}async function xE(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 RE({name:e,disabled:r,state:n,pi:o});return}id(n.mcpConfigOverride).has(e)&&n.sessionMcpConfigDisabledOverrides.set(e,r),i.config.registrySource!==void 0&&n.sessionRegistryDisabledOverrides.set(e,r);let a={...i.config,disabled:r};await Je([a],n,o,void 0,void 0,s?.owner.kind),Se(n)}async function kE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=gE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await bk(e,o,i,s,a),Se(o),c.overridden?{notice:vE(e)}:{}}import{DynamicBorder as y2}from"@augmentcode/auggie-v2";import{Key as v2,matchesKey as _2,SearchableWindowedList as S2,SpinnerTimer as w2,truncateToWidth as ju,wrapTextWithAnsi as b2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as YZ,scopeToSettingsTarget as XZ}from"@augmentcode/auggie-v2";import{truncateToWidth as QZ,visibleWidth as Kn,wrapTextWithAnsi as e2}from"@earendil-works/pi-tui";var t2=2,r2=2,Iu={name:"Name",source:"Source",status:"Status"};function Rm(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 Cm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Pm(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function Ou(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 EE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(t2,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(r2,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(Iu[w]))&&(a=ei(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Cm(g)),l=t.map(g=>Rm(g)),f=Math.max(Kn(Iu.source),Ou(d)),p=Math.max(Kn(Iu.status),Ou(l.map(g=>g.label))),h=Math.max(Kn(Iu.name),Ou(t.map(g=>g.name))),m=Math.max(p,Ou(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 TE(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=>e2(n,r).map(o=>Kn(o)<=r?o:QZ(o,r,"")))}function n2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,n2(e,r)))}function AE(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 ME(t,e){return String(t+1).padStart(String(e).length," ")}function xm(t){return YZ(XZ(t))}import{Key as o2,matchesKey as i2}from"@earendil-works/pi-tui";function zu(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 $E(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var IE=10,Jn=15;var s2="k",a2="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 km(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===s2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===a2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:i2(t,o2.backspace)?{kind:"back"}:{kind:"ignore"}}function c2(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 u2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=zu(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 d2(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 l2(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 f2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Nu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function p2(t,e){let r=t.targetScopes.length;if(r===0)return{state:Nu(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:Nu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Nu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Nu(t,"serverActions")}}default:return{state:t}}}function OE(t,e,r){switch(t.step){case"serverList":return c2(t,e,r.snapshots);case"serverActions":return u2(t,e,r);case"viewTools":return d2(t,e,r);case"viewLogs":return l2(t,e,r);case"pasteAuthCode":return f2(t,e);case"selectTarget":return p2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as h2,wrapTextWithAnsi as sn}from"@earendil-works/pi-tui";var Em="\u2192 ",Du=" ";function zE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function wr(t,e){return e>0?Ut(t,e,"\u2026"):""}function NE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=EE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?Pm(m,c.nameWidth):"",c.sourceWidth>0?Pm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=wr(Du,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",wr("Name",c.nameWidth))),i.bold(i.fg("accent",wr("Source",c.sourceWidth))),i.bold(i.fg("accent",wr("Status",c.statusWidth))))];if(e.length===0)p.push(Ut(i.fg("muted","No MCP servers available"),a,"\u2026"));else if(o.total===0)p.push(Ut(i.fg("muted","No matching MCP servers"),a,"\u2026"));else for(let h of n){let m=h.name===t.selectedServer,g=Rm(h),v=wr(g.label,c.statusWidth),w=c.statusWidth-h2(v),b=g.hint?wr(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=wr(m?Em:Du,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,zE(wr(h.name,c.nameWidth),m,i),zE(wr(Cm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var m2={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 g2(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 m2[t]}function DE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=sn(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...sn(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=zu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=g2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Em:Du)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function LE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No tools available."),o);if(i.disabled)return sn(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return sn(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=TE(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",`${ME(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function jE(t,e,r,n){let o=Math.max(1,n),s=e[st(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return sn(r.fg("muted","No logs available yet."),o);let a=ti(s,o),c=a.length,u=AE(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 FE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)]?.name??"",s=[...sn(r.fg("muted",`Save the toggle for "${i}" to which settings file?`),o),""];for(let[a,c]of t.targetScopes.entries()){let u=a===t.targetIndex,d=u?r.bold(r.fg("accent",xm(c))):r.fg("text",xm(c));s.push(Ut((u?Em:Du)+d,o,"\u2026"))}return s}var Lu=3;function R2(t){return t.type==="stdio"?t.command:t.url}function C2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
143
+ </html>`}function Qk(t){return Xk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function $u(t,e){return Xk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var PZ="127.0.0.1",rE="/callback",eE=3e3,tE=3010,xZ="Authentication successful. You can close this window.",Iu={"Content-Type":"text/html; charset=utf-8"};function nE(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function oE(t,e){let r=t.trim();if(!r)throw new Error("No authorization code provided");let n;try{n=new URL(r).searchParams}catch{(r.includes("code=")||r.includes("error="))&&(n=new URLSearchParams(r))}if(!n)return{kind:"success",result:{code:r,state:e}};let o=n.get("state");if(n.has("error")){if(o!==e)throw new Error("OAuth state mismatch");return{kind:"error",params:n}}let i=n.get("code");if(!i)throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return{kind:"success",result:{code:i,state:o??e}}}function ym(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function kZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==rE){e.writeHead(404,Iu),e.end($u("Callback route not found."));return}let o=n.searchParams.get("code"),i=n.searchParams.get("state"),s=n.searchParams.get("error");if(s){let a=c=>{e.writeHead(400,Iu),e.end($u("Authentication did not complete.",`Error: ${s}`));let u=ym(n.searchParams);c instanceof Error?u=c:c!==void 0&&(u=new Error(String(c))),r.onError(u)};r.onErrorRetry(n.searchParams).then(c=>{c?(e.writeHead(302,{Location:c}),e.end()):a()}).catch(c=>a(c));return}if(!o||!i){e.writeHead(400,Iu),e.end($u("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Iu),e.end(Qk(xZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function EZ(t){for(let e=eE;e<=tE;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,PZ)}))return e;throw new Error(`No free port in ${eE}-${tE} for the OAuth callback server`)}async function iE(){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=CZ((a,c)=>{kZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await EZ(i);return{port:s,redirectUri:`http://localhost:${s}${rE}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var vm=TZ.child({prefix:"pi-mcp"}),AZ=300*1e3,cE="MCP authentication was superseded";function sE(){return nE()?"You appear to be on a remote machine. Open the URL in a local browser, then paste the final redirect URL or code below.":"Complete sign-in in your browser. If it doesn't open, paste the final redirect URL or code below."}function Sr(t){if(t.aborted)throw new Error("Authentication cancelled")}function uE(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&&dE(t.credentialRevisions.get(e),r.credentialRevision)}function dE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function aE(t,e,r){if(!uE(t,e,r))throw new Error(cE)}async function MZ(t,e,r,n,o,i,s){let a=t.servers.get(e),c=t.tokens,u=c.get(e),d=t.credentialRevisions.get(e);if(c!==r.tokenStore||!a||!u||!pt(r.server.config,a.config))return;let l=a.config,f=Ht(t,a);try{let p=await c.restoreAfterSupersededAuthentication(e,o,u,n,i,f);if(p===void 0||t.tokens!==c||t.servers.get(e)?.config!==l||c.get(e)!==u||!xr(Ht(t,a),f)||!dE(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{vm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function $Z(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 IZ(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"))),AZ)},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(ym(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=oE(g,r());if(v.kind==="success"){u(()=>o(new URLSearchParams({code:v.result.code,state:v.result.state})));return}let w=e.waitForManualCode();await p(v.params,w)}catch(v){f(v)}}).catch(g=>u(()=>i(g instanceof Error?g:new Error(String(g)))))};if(t.setErrorRetryHandler(m=>n(m,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(m=>{m&&u(()=>o(new URLSearchParams({code:m.code,state:m.state})))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function lE(t){let{serverName:e,state:r,pi:n,controller:o}=t,i=r.servers.get(e);if(!i)throw new Error(`Unknown MCP server "${e}"`);let s=i.config;if(s.type!=="http"&&s.type!=="sse")throw new Error(`MCP server "${e}" does not use OAuth authentication`);if(r.authenticating)throw new Error("Another MCP authentication is already in progress");r.authenticating=!0,r.authenticatingServerName=e;let a=++r.authenticationGeneration,c={authenticationGeneration:a,server:i,serverGeneration:r.serverGenerations.get(e)??0,installedConfigRevision:r.configRevisions.get(e)??0,desiredConfigRevision:r.configDesiredRevisions.get(e)??0,tokenStore:r.tokens,token:r.tokens.get(e),credentialRevision:r.credentialRevisions.get(e)},u=Ht(r,i),d;try{Sr(o.signal),d=await iE(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Gd(l),Sr(o.signal),p=await Zd(f),Sr(o.signal)}catch{throw Sr(o.signal),new Error(`OAuth discovery failed for MCP server "${e}". Verify that the endpoint supports OAuth and publishes discovery metadata.`)}let h=await c.tokenStore.captureAuthenticatedIdentityVersion(u);aE(r,e,c),Sr(o.signal);let m=await Bd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await Ia(l,m,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);Sr(o.signal);let v=g,w=!1,b,R,_=(xe,an)=>{if(w)return R&&b&&Oa(xe,b)?R.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Oa(xe,v))return Promise.resolve(null);w=!0;let cn=v;return b=cn,an(),vm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),R=Wd(cn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:sE()}),lt)),R.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(xe=>_(xe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:sE()}),Sr(o.signal),await Yk(g.authUri.toString());let C=await IZ(d,o,()=>v.state,_),I=await Vd(C,v);aE(r,e,c);let Q=$Z(I),pe=await c.tokenStore.persistAuthenticated(e,Q,u,h);if(!uE(r,e,c))throw await MZ(r,e,c,u,Q,pe,n),new Error(cE);c.tokenStore.commit(e,Q,u),r.preservedCredentialIdentities?.delete(e),un({state:r,name:e,revision:pe}),r.tokens.clearAuthRequired(e),at(r,e),await Ks([e],r,n),N(r.currentLoad?.latestPi??n,r),Se(r),vm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as KZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as OZ,SETTINGS_TARGET_ORDER as zZ,SettingsManager as NZ,scopeToSettingsTarget as DZ,settingsTargetToScope as _m}from"@augmentcode/auggie-v2";var LZ=zZ.map(t=>_m(t)),fE=(t,e)=>NZ.create(t,e);function pE(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 hE(t,e,r){let n=fE(e,r);return LZ.filter(o=>pE(n,o)?.[t])}function mE(t){let e=t.map(n=>({target:DZ(n),path:n,exists:!0})),r=OZ({files:e});return"directTarget"in r?{scopes:t,direct:_m(r.directTarget)}:{scopes:r.files.map(n=>_m(n.target)),direct:null}}function jZ(t,e,r){let{servers:n}=to(e,r);return n.find(o=>o.name===t)?.disabled===!0}function gE(t,e,r,n,o){try{let i=fE(n,o);if(!pE(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:jZ(t,n,o)!==e}}function Sm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function yE(t,e,r){return Sm(t)}function vE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as FZ}from"@hermes/logger";var bm=FZ.child({prefix:"pi-mcp"}),_E="hermes:mcp:register-server-source";function UZ(t,e){return t.type==="stdio"?Zt(t,e):Gt(t,e)}function SE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function qZ(t,e){return{...t,disabled:e}}function HZ(t){try{return t.getServers()}catch(e){return bm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function GZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function wE(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 ZZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of HZ(t)){let s=e.servers.get(i.name),a=UZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=qZ(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)&&SE(s.config,u);p&&(ee(e,i.name,s),Bm({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),wE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function BZ(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 bE(t,e){wE(t,e)}function WZ(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"){bE(e,a);continue}u===o.get(a)&&n.has(a)&&SE(u.config,c)||(s.set(a,Ke(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function VZ(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&&GZ(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=ZZ(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 BZ(a,u,e);let{reservedRevisions:d,toConnect:l}=WZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;bm.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||bE(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 wm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>VZ(t,e,r)).catch(i=>{bm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function RE(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),wm(o.currentLoad?.latestPi??i,o,e))}function CE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,wm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,wm(e.currentLoad?.latestPi??t,e))})}}function JZ(t,e){let n=KZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function PE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(JZ(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:Sm(e)};if(id(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=hE(e,n,o);if(s.length===0)return{kind:"blocked",message:yE(e,n,o)};let{scopes:a,direct:c}=mE(s);return{kind:"local",scopes:a,direct:c}}async function xE(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 RE({name:e,disabled:r,state:n,pi:o});return}id(n.mcpConfigOverride).has(e)&&n.sessionMcpConfigDisabledOverrides.set(e,r),i.config.registrySource!==void 0&&n.sessionRegistryDisabledOverrides.set(e,r);let a={...i.config,disabled:r};await Je([a],n,o,void 0,void 0,s?.owner.kind),Se(n)}async function kE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=gE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await bk(e,o,i,s,a),Se(o),c.overridden?{notice:vE(e)}:{}}import{DynamicBorder as y2}from"@augmentcode/auggie-v2";import{Key as v2,matchesKey as _2,SearchableWindowedList as S2,SpinnerTimer as w2,truncateToWidth as Fu,wrapTextWithAnsi as b2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as YZ,scopeToSettingsTarget as XZ}from"@augmentcode/auggie-v2";import{truncateToWidth as QZ,visibleWidth as Kn,wrapTextWithAnsi as e2}from"@earendil-works/pi-tui";var t2=2,r2=2,Ou={name:"Name",source:"Source",status:"Status"};function Rm(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 Cm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Pm(t,e){let r=e-Kn(t);return r>0?t+" ".repeat(r):t}function zu(t){return t.reduce((e,r)=>Math.max(e,Kn(r)),0)}function ei(t,e,r,n){let o=`${e}Width`,i=Math.min(Math.max(0,r-t[o]),n);return t[o]+=i,n-i}function EE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(t2,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(r2,Math.floor((o-i)/(i-1))),a=o-s*Math.max(0,i-1),c=["name","source","status"].slice(0,i),u={prefixWidth:n,gapWidth:s,nameWidth:0,sourceWidth:0,statusWidth:0};for(let g of c)a=ei(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Kn(Ou[w]))&&(a=ei(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>Cm(g)),l=t.map(g=>Rm(g)),f=Math.max(Kn(Ou.source),zu(d)),p=Math.max(Kn(Ou.status),zu(l.map(g=>g.label))),h=Math.max(Kn(Ou.name),zu(t.map(g=>g.name))),m=Math.max(p,zu(l.map(g=>g.label+(g.hint??""))));return a=ei(u,"source",f,a),a=ei(u,"status",p,a),a=ei(u,"name",h,a),ei(u,"status",m,a),u}function TE(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=>e2(n,r).map(o=>Kn(o)<=r?o:QZ(o,r,"")))}function n2(t,e){return Math.max(0,t-e)}function ri(t,e,r){return Math.max(0,Math.min(t,n2(e,r)))}function AE(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 ME(t,e){return String(t+1).padStart(String(e).length," ")}function xm(t){return YZ(XZ(t))}import{Key as o2,matchesKey as i2}from"@earendil-works/pi-tui";function Nu(t){if(t.source==="plugin"&&t.disabled)return t.canAuthenticate?["authenticate","toggle"]:["toggle"];let e=t.transport==="stdio"?["viewTools","viewLogs"]:["viewTools"];return t.canAuthenticate&&e.unshift("authenticate"),e.push("toggle","reconnect"),e}function $E(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var IE=10,Jn=15;var s2="k",a2="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 km(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===s2?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===a2?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:i2(t,o2.backspace)?{kind:"back"}:{kind:"ignore"}}function c2(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 u2(t,e,r){let n=r.snapshots[st(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Nu(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ni(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ni(t.actionIndex+1,o.length)}};case"cancel":case"back":return{state:{...t,step:"serverList"}};case"confirm":{let i=o[t.actionIndex];return i==="viewTools"?{state:{...t,step:"viewTools",toolIndex:0}}:i==="viewLogs"?{state:{...t,step:"viewLogs",logScrollOffset:0}}:i==="authenticate"?{state:t,effect:{kind:"authenticate",server:n.name}}:i==="toggle"?{state:t,effect:{kind:"toggle",server:n.name,disable:!n.disabled}}:{state:t,effect:{kind:"reconnect",server:n.name}}}default:return{state:t}}}function d2(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 l2(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 f2(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Du(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function p2(t,e){let r=t.targetScopes.length;if(r===0)return{state:Du(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ni(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ni(t.targetIndex+1,r)}};case"cancel":case"back":return{state:Du(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Du({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Du(t,"serverActions")}}default:return{state:t}}}function OE(t,e,r){switch(t.step){case"serverList":return c2(t,e,r.snapshots);case"serverActions":return u2(t,e,r);case"viewTools":return d2(t,e,r);case"viewLogs":return l2(t,e,r);case"pasteAuthCode":return f2(t,e);case"selectTarget":return p2(t,e);default:return{state:t}}}import{truncateToWidth as Ut,visibleWidth as h2,wrapTextWithAnsi as sn}from"@earendil-works/pi-tui";var Em="\u2192 ",Lu=" ";function zE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function wr(t,e){return e>0?Ut(t,e,"\u2026"):""}function NE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=EE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?Pm(m,c.nameWidth):"",c.sourceWidth>0?Pm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=wr(Lu,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",wr("Name",c.nameWidth))),i.bold(i.fg("accent",wr("Source",c.sourceWidth))),i.bold(i.fg("accent",wr("Status",c.statusWidth))))];if(e.length===0)p.push(Ut(i.fg("muted","No MCP servers available"),a,"\u2026"));else if(o.total===0)p.push(Ut(i.fg("muted","No matching MCP servers"),a,"\u2026"));else for(let h of n){let m=h.name===t.selectedServer,g=Rm(h),v=wr(g.label,c.statusWidth),w=c.statusWidth-h2(v),b=g.hint?wr(g.hint,w):"",R=i.fg(g.color,v)+(b?i.fg("muted",b):""),_=wr(m?Em:Lu,c.prefixWidth);p.push(d(m?i.fg("accent",_):_,zE(wr(h.name,c.nameWidth),m,i),zE(wr(Cm(h),c.sourceWidth),m,i),R))}return o.hasOverflow&&p.push(Ut(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var m2={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 g2(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 m2[t]}function DE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=sn(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...sn(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Nu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=g2(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ut((l?Em:Lu)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function LE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)];if(!i)return sn(r.fg("muted","No tools available."),o);if(i.disabled)return sn(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return sn(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=TE(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",`${ME(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function jE(t,e,r,n){let o=Math.max(1,n),s=e[st(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return sn(r.fg("muted","No logs available yet."),o);let a=ti(s,o),c=a.length,u=AE(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 FE(t,e,r,n){let o=Math.max(1,n),i=e[st(e,t.selectedServer)]?.name??"",s=[...sn(r.fg("muted",`Save the toggle for "${i}" to which settings file?`),o),""];for(let[a,c]of t.targetScopes.entries()){let u=a===t.targetIndex,d=u?r.bold(r.fg("accent",xm(c))):r.fg("text",xm(c));s.push(Ut((u?Em:Lu)+d,o,"\u2026"))}return s}var ju=3;function R2(t){return t.type==="stdio"?t.command:t.url}function C2(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 UE(t){return t.disabled?2:t.status==="auth_required"?0:1}function P2(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:Cr(r,t.pluginServerHosts,t.hostLeases),registrySource:r.config.registrySource,disabled:r.config.disabled===!0,canAuthenticate:r.config.type!=="stdio",tools:r.tools.map(n=>({name:n.name,disabled:!1})),connectionInfo:R2(r.config),logLines:()=>C2(r)});return e.sort((r,n)=>UE(r)-UE(n)),e}function x2(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 k2(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 E2(t,e,r,n,o){switch(t.step){case"serverActions":return DE(t,e,n,o);case"viewTools":return LE(t,e,n,o);case"viewLogs":return jE(t,e,n,o);case"selectTarget":return FE(t,e,n,o);default:return NE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function T2(t,e,r,n,o){let i=Math.max(1,o),s=ju(n.bold(n.fg("accent",x2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Lu?[...r.renderInput(i),""]:[],c=E2(t,e,r,n,i);return[s,"",...a,...c,"",ju(n.fg("muted",k2(t.step)),i,"\u2026")]}function A2(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[ju(s,i,"\u2026"),"",ju(a,i,"\u2026")]}function M2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function $2(t,e,r){let n=s=>s.flatMap(a=>b2(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 I2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function qE(t){return t?"Disabling":"Enabling"}function HE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Tm=class{state=$E();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 y2(r=>e.theme.fg("border",r)),this.serverList=new S2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:IE})}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=A2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=$2({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=T2(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>=Lu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Lu&&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=OE(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??Lu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=km(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(km(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,qE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(HE(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,qE(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(HE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new w2(()=>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??=M2(),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(_2(e,v2.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&&I2(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 GE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Tm({tui:i,theme:s,keybindings:a,snapshots:()=>P2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Mm=["list"];function ZE(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}
145
+ `)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function UE(t){return t.disabled?2:t.status==="auth_required"?0:1}function P2(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:Cr(r,t.pluginServerHosts,t.hostLeases),registrySource:r.config.registrySource,disabled:r.config.disabled===!0,canAuthenticate:r.config.type!=="stdio",tools:r.tools.map(n=>({name:n.name,disabled:!1})),connectionInfo:R2(r.config),logLines:()=>C2(r)});return e.sort((r,n)=>UE(r)-UE(n)),e}function x2(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 k2(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 E2(t,e,r,n,o){switch(t.step){case"serverActions":return DE(t,e,n,o);case"viewTools":return LE(t,e,n,o);case"viewLogs":return jE(t,e,n,o);case"selectTarget":return FE(t,e,n,o);default:return NE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function T2(t,e,r,n,o){let i=Math.max(1,o),s=Fu(n.bold(n.fg("accent",x2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=ju?[...r.renderInput(i),""]:[],c=E2(t,e,r,n,i);return[s,"",...a,...c,"",Fu(n.fg("muted",k2(t.step)),i,"\u2026")]}function A2(t,e,r,n,o){let i=Math.max(1,o),s=n.bold(n.fg("accent",`MCP Servers \u203A ${t}`)),a=`${n.fg("accent",r)} ${n.fg("text",`${e} ${t}\u2026`)}`;return[Fu(s,i,"\u2026"),"",Fu(a,i,"\u2026")]}function M2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function $2(t,e,r){let n=s=>s.flatMap(a=>b2(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 I2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function qE(t){return t?"Disabling":"Enabling"}function HE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Tm=class{state=$E();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 y2(r=>e.theme.fg("border",r)),this.serverList=new S2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:IE})}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=A2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=$2({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=T2(this.state,o,this.serverList,this.config.theme,r)}return[...this.border.render(r),...n,...this.border.render(r)]}handleInput=e=>{this.dispatch(e)};invalidate(){}syncServerList(e){this.serverList.setItems(e);let r=this.state.selectedServer;r!==null&&this.serverList.selectIdentity(r)||(this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null})}isSearchAvailable(){return this.currentWidth===void 0||this.currentWidth>=ju}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=ju&&this.state.step==="serverList"&&this.busy===null&&this.authenticating===null;this.serverList.setInputFocused(this._focused&&e)}clampLogScrollOffset(e,r){if(this.state.step!=="viewLogs")return;let n=e[st(e,this.state.selectedServer)],o=ti(n?.logLines()??[],r).length,i=ri(this.state.logScrollOffset,o,Jn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=OE(this.state,e,{snapshots:r,windowSize:Jn,logViewportWidth:this.currentWidth??ju});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=km(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(km(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,qE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(HE(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,qE(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(HE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new w2(()=>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??=M2(),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(_2(e,v2.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&&I2(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 GE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Tm({tui:i,theme:s,keybindings:a,snapshots:()=>P2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Mm=["list"];function ZE(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
146
  error: ${t.lastError}`:n}function O2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var z2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function Am(t,e){return e.length>0?[t,...e]:null}function N2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[Am("MCP Server Status:",e.map(ZE)),Am("Plugin MCP servers:",r.map(ZE)),Am("Diagnostics:",t.diagnostics.map(O2))];return t.servers.size===0&&n.unshift([z2]),n.filter(o=>o!==null).map(o=>o.join(`
147
147
  `)).join(`
148
148
 
149
- `)}function D2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Mm.includes(e))return e}async function L2(t,e,r){if(e.servers.size===0){t.ui.notify("MCP servers are not available","warning");return}if(e.reconnecting){t.ui.notify("MCP servers are already restarting...","warning");return}t.ui.notify("Restarting MCP servers...","info");let n=Ks([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function BE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Mm.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 GE(n,e,s=>Ks([s],e,t),{classify:s=>PE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>xE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>kE({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)=>lE({serverName:s,state:e,pi:t,controller:a}));return}let i=D2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Mm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(N2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await L2(n,e,t)}})}import{logger as j2}from"@hermes/logger";var WE=j2.child({prefix:"pi-mcp"}),$m="augment:feature-flags";function F2(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 VE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on($m,r=>{let n=F2(r);if(n===void 0){WE.warn(`${$m} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,WE.debug(`Received feature-flag snapshot via ${$m} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as U2}from"@hermes/logger";var Xs=U2.child({prefix:"pi-mcp"}),KE=300*1e3,Im=600*1e3;function q2(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+Im||(Xs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Im}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Xs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Xs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function JE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{q2(t)},KE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Xs.debug(`Started background MCP OAuth refresh loop (interval ${KE}ms, buffer ${Im}ms)`)}function YE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Xs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as H2}from"@hermes/logger";var kt=H2.child({prefix:"pi-mcp"});function G2(t,e,r){t.dynamicallyAddedConfigIds.add(e),t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.sessionRemovedConfigIds.delete(e);for(let n of r)n.id!==void 0&&(t.registryConfigNamesById.set(n.id,n.name),t.registryCredentialConfigsById.set(n.id,{...n}))}function nr(t){Ye({state:t.state,domain:He(t.configId),epoch:t.intentEpoch})}function Z2(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 XE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function QE(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),kt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Qs(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;nr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(kt.warn(s),!o()){if(r.diagnostics.push({message:s,origin:"registry"}),!i()){r.failedAddConfigIds.add(n);return}r.dynamicallyAddedConfigIds.add(n),r.sessionRemovedConfigIds.delete(n)}}function B2(t,e){return e.flatMap(r=>_u(t,r)?[r.config]:[])}function W2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function V2(t,e){let r=W2(e);if(r){if(Qs(t,r.error),r.error instanceof Et)throw r.error;return}let n=B2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){G2(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 eT(t,e){try{V2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function K2(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 J2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){nr(t);return}if(K2(t,e)){nr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){nr(t);return}}catch(r){throw Qs(t,r),r}kt.info(`Live MCP add-server: connecting embedded config id ${t.configId} (no registry refetch)`);try{let r=await t.connect([e],t.state,t.activePi,t.sourceOwnership);eT(t,r??[])}catch(r){if(Qs(t,r),r instanceof Et)throw r}}async function Y2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){nr(t),kt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){QE(r,e),kt.info(`Live MCP add-server: config id ${n} resolved to no new server (already connected, not opted in, or unknown id)`),i()||r.failedAddConfigIds.add(n),nr(t);return}if(await fi(r,n),o()){nr(t);return}try{if((await Promise.all(e.servers.map(c=>Ar({state:r,config:c,pi:t.activePi})))).some(c=>!c)){nr(t);return}}catch(a){throw Qs(t,a),a}kt.info(`Live MCP add-server: connecting ${e.servers.length} server(s) for config id ${n}`);let s=await t.connect(e.servers,r,t.activePi,t.sourceOwnership);if(o()){nr(t);return}QE(r,e),eT(t,s??[])}function X2(t,e){if(typeof e=="string")return $k(e,t.workspaceRoot??process.cwd())}function Q2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function tT(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=X2(r,i?.embeddedConfig);if(Q2(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=ca({state:r,domain:He(s),forceNew:!0}),u=Z2(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:()=>XE(r,s)},m;if(a)m=J2(h,a);else{let g=r.credentials;g?m=(o?.discover??ku)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>Y2(h,w)).catch(w=>{if(!(w instanceof Et)){Qs(h,w);return}throw w}):(kt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),nr(h),m=Promise.resolve())}return fa({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>XE(r,s)})}import{logger as e4}from"@hermes/logger";var Fu=e4.child({prefix:"pi-mcp"}),rT=3,nT=6e4,t4=1e3,r4=8e3;function Om(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??tn,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??N,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Fu.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=rn({state:r,target:d});if(!l||r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,h=D(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<nT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>rT)return Fu.warn(`augment:mcp-restart-server: ${f} exceeded ${rT} restarts within ${nT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(t4*2**(v-1),r4);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||D(r,f)!==h||rn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Fu.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(_)}`;Fu.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as n4}from"@hermes/logger";var ea=n4.child({prefix:"pi-mcp"}),o4=/^\d+$/,zm=1,oT="AUGMENT_ACTIVE_SPACE_ID",i4="augment-mcp-access-token-";function Uu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function iT(t,e){return e?.["augment:encoding"]!=="base64"?t:/^[A-Za-z0-9+/]*={0,2}$/.test(t)&&t.length%4===0?Buffer.from(t,"base64").toString("utf-8"):t}var qu=class{apiKey;apiUrl;userAgent;fetchImpl;timeoutMs;cache=new Map;inflight=new Map;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.userAgent=e.userAgent,this.fetchImpl=r,this.timeoutMs=n??gd}_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(i4)&&Object.hasOwn(process.env,oT)&&(r.active_space_id=process.env[oT]??""),r}getSecret(e){let r=Uu(e),n=this.inflight.get(r);if(n)return n;let o=this._resolve(r).finally(()=>{this.inflight.delete(r)});return this.inflight.set(r,o),o}upsertUserSecret(e,r,n){return hn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Uu(e),s=(await this._callUpsert({name:o,value:r,scope:zm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!o4.test(s))throw new Error("user secret upsert response contained an invalid persisted version");let a=BigInt(s).toString();return this.cache.set(o,r),ea.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Uu(e);this.cache.delete(r),await this._callDelete({name:r,scope:zm}),ea.debug(`Deleted user secret "${r}"`)}async _callUpsert(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/upsert`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}return await n.json()}async _callDelete(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/delete`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=Uu(e);try{let n=await hn(()=>this._callApi("/mcp-secrets/get",this.lookupBody(r))),o=n.secret?.value,i=n.secret?.version;if(o===void 0||i===void 0)return;let s=n.secret?.scope===zm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:iT(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof mt&&n.statusCode===404)return;throw n}}async _resolve(e){let r=await this._tryGet("/mcp-secrets/get",this.lookupBody(e),e);if(r.value!==void 0)return this.cache.set(e,r.value),r.value;if(r.errored){let n=this.cache.get(e);return n!==void 0&&ea.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await hn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:iT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return ea.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return ea.debug(`Secret "${n}" lookup via ${e} failed: ${i}`),{errored:!0}}}async _callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:this._headers(),body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}};function Nm(t){return{latestPi:t}}import{logger as s4}from"@hermes/logger";var oi=s4.child({prefix:"pi-mcp"});async function a4(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 c4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function u4(t){let{state:e,name:r,stored:n,higherPriorityNames:o,blockedNames:i,workspaceRoot:s}=t;if(o.has(r)){i.add(r);let a=`VFS MCP server "${r}" ignored: a higher-priority server with the same name takes precedence`;e.diagnostics.push({server:r,message:a,origin:"vfs"}),oi.warn(a);return}try{let a=eo(r,n);return{...a.type==="stdio"?Zt(a,s):Gt(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof Tt?a.message:`Failed to normalize VFS MCP server "${r}": ${a instanceof Error?a.message:String(a)}`;e.diagnostics.push({server:r,message:c,origin:"vfs"}),oi.warn(c);return}}function d4(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=u4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function l4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function sT(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&&l4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=a4(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;c4(r,s.diagnostics);let{servers:l,blockedNames:f}=d4(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&&_u(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=f4.child({prefix:"pi-mcp"}),lT="augment:mcp-oauth-credentials",aT="augment:mcp-header-secrets",cT="augment:mcp-header-secret-failures",Dm="augment:mcp-oauth-failures",uT="augment:credentials",p4="augment:mcp-config-ids",dT="augment:mcp-configs",h4="augment:mcp-vfs-servers",m4="augment:mcp-add-server",g4="augment:mcp-restart-server",y4="augment:mcp-remove-server",v4="augment:cloud-mode";function _4(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 S4(t){if(!t||typeof t!="object"){we.warn(`${lT} 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 Lm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=nn(n),i=rn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&fT({state:t,name:r,revision:o})&&!pT({state:t,revision:o})&&_r({store:t.tokens,serverName:r,proto:n,options:{acceptedRevisions:t.oauthCredentialRevisions,acceptedDomains:t.oauthCredentialDomains,expectedDomains:t.expectedCredentialDomains,equalRevisionRebindDomains:t.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}}).decision!=="reject")return!0;let s="MCP restart credential was rejected; keeping the existing host";return we.warn(s),t.diagnostics.push({server:r,message:s}),!1}function w4(t){let{pi:e,state:r}=t,{payload:n}=t,o=r.mcpConnectionEpoch;if(Object.entries(n.credentials).some(([c,u])=>r.targetMaterialStore?.has(c)||fe(u)&&Object.hasOwn(u,"target_material"))||n.targetConfigId&&r.targetMaterialStore?.has(n.targetConfigId))return;if(n.restart){let c=Object.keys(n.credentials);if(typeof n.restart.serverName!="string"||typeof n.restart.requestId!="string"||c.length!==1){we.warn("MCP restart credentials must contain exactly the target entry");return}let u=rn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){we.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){xk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Lm(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&&!Lm(r,n))return;let c=x4({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))){Om({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)&&Lm(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 b4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(lT,r=>{let n=S4(r);n&&w4({pi:t,state:e,payload:n})}))}function fT(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 pT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function R4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=nn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(pT({state:e,revision:a})){ag({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(fT({state:e,name:i,revision:a})){o[i]=s;continue}ig({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function C4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=nn(i);s===void 0?(e.credentialRevisions.delete(o),e.hostedCredentialOwnership.delete(o)):(e.credentialRevisions.set(o,s),e.hostedCredentialOwnership.set(o,{...s,accessTokenOnly:i?.refresh_token===void 0})),e.statusFailureCategories.delete(o),e.authRefreshNeededReportKeys.delete(o),e.tokens.clearAuthRequired(o)}}function P4(t){let{pi:e,state:r,seeded:n,suppressReconnect:o}=t;if(o)return;let i=r.currentLoad?.latestPi??e;for(let s of n){let a=r.servers.get(s),c=r.expectedCredentialDomains.get(s),u=D(r,s),d=c?.kind!=="domain"||u?.owner.kind==="registry"&&u.owner.identity===c.domain;a&&d&&a.config.type!=="stdio"&&a.config.auth==="oauth"&&tn(s,r,i).catch(()=>{}).finally(()=>{N(i,r),Se(r)})}}function x4(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=R4({state:r,credentials:n,suppressReconnect:o}),s={acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:t.requireEqualMaterial};Object.entries(i).some(([u,d])=>{let{decision:l}=_r({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=wu(r.tokens,i,s);return C4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),P4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function k4(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);Hy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(cT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${cT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Zy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Dm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${Dm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${Dm} entries is not an object`);return}qm(e,n.entries)}))}function E4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(uT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${uT} payload missing apiKey or apiUrl`);return}e.credentials={apiKey:n.apiKey,apiUrl:n.apiUrl,...typeof n.userAgent=="string"?{userAgent:n.userAgent}:{},...typeof n.userId=="string"?{userId:n.userId}:{}},e.secretsClient=new qu(e.credentials),_4(e)}),t.events.on(p4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Cu(e.currentLoad?.latestPi??t,e),Js({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(n=>{we.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;Se(e),Yo(n,e)})}))}function hT(t,e){e.isCloudMode!==!1||e.mcpAttachCloudSignaled||!e.credentials||Js({pi:t,state:e,data:{configIds:void 0,productType:"cli"},productType:"cli"}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(r=>{we.warn(`CLI registry discovery failed: ${r instanceof Error?r.message:String(r)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{Se(e)})}function T4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(v4,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&&hT(e.currentLoad?.latestPi??t,e))}))}function A4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(dT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${dT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Qo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{we.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}we.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function M4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(h4,r=>{sT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function mT(t,e){Ir(e)?(ir(t),ga(t)):bg(t,e),Se(e)}function $4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(m4,r=>{let n=()=>tT({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(o=>{we.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Yo(o,e)})}))}function I4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(g4,r=>{let n=()=>Om({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{Se(e)})}))}function O4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(y4,r=>{let n=()=>Eu({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).catch(o=>{we.warn(`Live MCP remove-server did not retire durably: ${o instanceof Error?o.message:String(o)}`)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Yo(o,e)})}))}function ete(t){return qy(t)}function z4(t,e,r){e.connectStarted=!0,pi()&&ir(r);let{servers:n,diagnostics:o}=to(t.cwd,t.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let s of o)e.diagnostics.push(s),we.warn(s.message);let i=Je(n,e,r).then(()=>wk(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),hT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function N4(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)}mT(e,t)}var gT=t=>{let e=te();e.currentLoad=Nm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;BE(t,e),Jk(t,e),b4(t,e),k4(t,e),E4(t,e),A4(t,e),M4(t,e),$4(t,e),I4(t,e),O4(t,e),T4(t,e),VE(t,e),Tk(t,e),Cu(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=Nm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,JE(e),e.connectStarted?mT(t,e):z4(o,e,t),o.mode==="acp"&&await N4(e,t),r||(r=!0,t.events.emit(_E,CE(t,e)))}),t.on("session_shutdown",()=>{YE(e)})};vg(gT);var tte=gT;export{tte as default,ete as setMcpErrorReporter};
149
+ `)}function D2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Mm.includes(e))return e}async function L2(t,e,r){if(e.servers.size===0){t.ui.notify("MCP servers are not available","warning");return}if(e.reconnecting){t.ui.notify("MCP servers are already restarting...","warning");return}t.ui.notify("Restarting MCP servers...","info");let n=Ks([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function BE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Mm.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 GE(n,e,s=>Ks([s],e,t),{classify:s=>PE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>xE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>kE({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)=>lE({serverName:s,state:e,pi:t,controller:a}));return}let i=D2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Mm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(N2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await L2(n,e,t)}})}import{logger as j2}from"@hermes/logger";var WE=j2.child({prefix:"pi-mcp"}),$m="augment:feature-flags";function F2(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 VE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on($m,r=>{let n=F2(r);if(n===void 0){WE.warn(`${$m} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,WE.debug(`Received feature-flag snapshot via ${$m} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as U2}from"@hermes/logger";var Xs=U2.child({prefix:"pi-mcp"}),KE=300*1e3,Im=600*1e3;function q2(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+Im||(Xs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Im}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Xs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Xs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function JE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{q2(t)},KE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Xs.debug(`Started background MCP OAuth refresh loop (interval ${KE}ms, buffer ${Im}ms)`)}function YE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Xs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as H2}from"@hermes/logger";var kt=H2.child({prefix:"pi-mcp"});function G2(t,e,r){t.dynamicallyAddedConfigIds.add(e),t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.sessionRemovedConfigIds.delete(e);for(let n of r)n.id!==void 0&&(t.registryConfigNamesById.set(n.id,n.name),t.registryCredentialConfigsById.set(n.id,{...n}))}function nr(t){Ye({state:t.state,domain:He(t.configId),epoch:t.intentEpoch})}function Z2(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 XE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function QE(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),kt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Qs(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;nr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(kt.warn(s),!o()){if(r.diagnostics.push({message:s,origin:"registry"}),!i()){r.failedAddConfigIds.add(n);return}r.dynamicallyAddedConfigIds.add(n),r.sessionRemovedConfigIds.delete(n)}}function B2(t,e){return e.flatMap(r=>Su(t,r)?[r.config]:[])}function W2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function V2(t,e){let r=W2(e);if(r){if(Qs(t,r.error),r.error instanceof Et)throw r.error;return}let n=B2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){G2(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 eT(t,e){try{V2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function K2(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 J2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await fi(t.state,t.configId),t.superseded()){nr(t);return}if(K2(t,e)){nr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){nr(t);return}}catch(r){throw Qs(t,r),r}kt.info(`Live MCP add-server: connecting embedded config id ${t.configId} (no registry refetch)`);try{let r=await t.connect([e],t.state,t.activePi,t.sourceOwnership);eT(t,r??[])}catch(r){if(Qs(t,r),r instanceof Et)throw r}}async function Y2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){nr(t),kt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){QE(r,e),kt.info(`Live MCP add-server: config id ${n} resolved to no new server (already connected, not opted in, or unknown id)`),i()||r.failedAddConfigIds.add(n),nr(t);return}if(await fi(r,n),o()){nr(t);return}try{if((await Promise.all(e.servers.map(c=>Ar({state:r,config:c,pi:t.activePi})))).some(c=>!c)){nr(t);return}}catch(a){throw Qs(t,a),a}kt.info(`Live MCP add-server: connecting ${e.servers.length} server(s) for config id ${n}`);let s=await t.connect(e.servers,r,t.activePi,t.sourceOwnership);if(o()){nr(t);return}QE(r,e),eT(t,s??[])}function X2(t,e){if(typeof e=="string")return $k(e,t.workspaceRoot??process.cwd())}function Q2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function tT(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=X2(r,i?.embeddedConfig);if(Q2(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return kt.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!ro({state:r,configId:s,generation:i?.attachmentGeneration}))return kt.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=ua({state:r,domain:He(s),forceNew:!0}),u=Z2(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:()=>XE(r,s)},m;if(a)m=J2(h,a);else{let g=r.credentials;g?m=(o?.discover??Eu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>Y2(h,w)).catch(w=>{if(!(w instanceof Et)){Qs(h,w);return}throw w}):(kt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),nr(h),m=Promise.resolve())}return pa({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>XE(r,s)})}import{logger as e4}from"@hermes/logger";var ea=e4.child({prefix:"pi-mcp"}),rT=3,nT=6e4,t4=1e3,r4=8e3;function Om(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??tn,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??N,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return ea.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=rn({state:r,target:d});if(!l)return ea.warn(`augment:mcp-restart-server: no unique live host for ${d}; re-reporting status`),c(r.currentLoad?.latestPi??e,r),Promise.resolve();if(r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,h=D(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<nT?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>rT)return ea.warn(`augment:mcp-restart-server: ${f} exceeded ${rT} restarts within ${nT}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(t4*2**(v-1),r4);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||D(r,f)!==h||rn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return ea.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,w)}).catch(_=>{let C=`Live MCP restart-server failed for ${f}: ${_ instanceof Error?_.message:String(_)}`;ea.warn(C),r.diagnostics.push({server:f,message:C})}).then(()=>{c(w,r)})}import{logger as n4}from"@hermes/logger";var ta=n4.child({prefix:"pi-mcp"}),o4=/^\d+$/,zm=1,oT="AUGMENT_ACTIVE_SPACE_ID",i4="augment-mcp-access-token-";function Uu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function iT(t,e){return e?.["augment:encoding"]!=="base64"?t:/^[A-Za-z0-9+/]*={0,2}$/.test(t)&&t.length%4===0?Buffer.from(t,"base64").toString("utf-8"):t}var qu=class{apiKey;apiUrl;userAgent;fetchImpl;timeoutMs;cache=new Map;inflight=new Map;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.userAgent=e.userAgent,this.fetchImpl=r,this.timeoutMs=n??gd}_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(i4)&&Object.hasOwn(process.env,oT)&&(r.active_space_id=process.env[oT]??""),r}getSecret(e){let r=Uu(e),n=this.inflight.get(r);if(n)return n;let o=this._resolve(r).finally(()=>{this.inflight.delete(r)});return this.inflight.set(r,o),o}upsertUserSecret(e,r,n){return hn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Uu(e),s=(await this._callUpsert({name:o,value:r,scope:zm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!o4.test(s))throw new Error("user secret upsert response contained an invalid persisted version");let a=BigInt(s).toString();return this.cache.set(o,r),ta.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Uu(e);this.cache.delete(r),await this._callDelete({name:r,scope:zm}),ta.debug(`Deleted user secret "${r}"`)}async _callUpsert(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/upsert`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}return await n.json()}async _callDelete(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/delete`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new mt(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=Uu(e);try{let n=await hn(()=>this._callApi("/mcp-secrets/get",this.lookupBody(r))),o=n.secret?.value,i=n.secret?.version;if(o===void 0||i===void 0)return;let s=n.secret?.scope===zm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:iT(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof mt&&n.statusCode===404)return;throw n}}async _resolve(e){let r=await this._tryGet("/mcp-secrets/get",this.lookupBody(e),e);if(r.value!==void 0)return this.cache.set(e,r.value),r.value;if(r.errored){let n=this.cache.get(e);return n!==void 0&&ta.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await hn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:iT(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof mt&&o.statusCode===404)return ta.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return ta.debug(`Secret "${n}" lookup via ${e} failed: ${i}`),{errored:!0}}}async _callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:this._headers(),body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new mt(o.status,o.statusText,s)}return await o.json()}};function Nm(t){return{latestPi:t}}import{logger as s4}from"@hermes/logger";var oi=s4.child({prefix:"pi-mcp"});async function a4(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 c4(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),oi.warn(r.message))}function u4(t){let{state:e,name:r,stored:n,higherPriorityNames:o,blockedNames:i,workspaceRoot:s}=t;if(o.has(r)){i.add(r);let a=`VFS MCP server "${r}" ignored: a higher-priority server with the same name takes precedence`;e.diagnostics.push({server:r,message:a,origin:"vfs"}),oi.warn(a);return}try{let a=eo(r,n);return{...a.type==="stdio"?Zt(a,s):Gt(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof Tt?a.message:`Failed to normalize VFS MCP server "${r}": ${a instanceof Error?a.message:String(a)}`;e.diagnostics.push({server:r,message:c,origin:"vfs"}),oi.warn(c);return}}function d4(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=u4({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function l4(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function sT(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&&l4(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=a4(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;c4(r,s.diagnostics);let{servers:l,blockedNames:f}=d4(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(oi.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let h=p?.find(m=>m.status==="failed"||m.status==="unavailable");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));return l.every(m=>(p??[]).some(g=>g.config===m&&Su(r,g)))}))}).then(l=>{l&&a!==void 0&&r.vfsGeneration===c&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=u)}).catch(l=>{let f=`VFS MCP overlay connect failed: ${l instanceof Error?l.message:String(l)}`;oi.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var we=f4.child({prefix:"pi-mcp"}),lT="augment:mcp-oauth-credentials",aT="augment:mcp-header-secrets",cT="augment:mcp-header-secret-failures",Dm="augment:mcp-oauth-failures",uT="augment:credentials",p4="augment:mcp-config-ids",dT="augment:mcp-configs",h4="augment:mcp-vfs-servers",m4="augment:mcp-add-server",g4="augment:mcp-restart-server",y4="augment:mcp-remove-server",v4="augment:cloud-mode";function _4(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 S4(t){if(!t||typeof t!="object"){we.warn(`${lT} 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 Lm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=nn(n),i=rn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&fT({state:t,name:r,revision:o})&&!pT({state:t,revision:o})&&_r({store:t.tokens,serverName:r,proto:n,options:{acceptedRevisions:t.oauthCredentialRevisions,acceptedDomains:t.oauthCredentialDomains,expectedDomains:t.expectedCredentialDomains,equalRevisionRebindDomains:t.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}}).decision!=="reject")return!0;let s="MCP restart credential was rejected; keeping the existing host";return we.warn(s),t.diagnostics.push({server:r,message:s}),!1}function w4(t){let{pi:e,state:r}=t,{payload:n}=t,o=r.mcpConnectionEpoch;if(Object.entries(n.credentials).some(([c,u])=>r.targetMaterialStore?.has(c)||fe(u)&&Object.hasOwn(u,"target_material"))||n.targetConfigId&&r.targetMaterialStore?.has(n.targetConfigId))return;if(n.restart){let c=Object.keys(n.credentials);if(typeof n.restart.serverName!="string"||typeof n.restart.requestId!="string"||c.length!==1){we.warn("MCP restart credentials must contain exactly the target entry");return}let u=rn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){we.warn("MCP restart credentials must contain exactly the resolved target entry"),N(r.currentLoad?.latestPi??e,r);return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){xk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Lm(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&&!Lm(r,n))return;let c=x4({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))){Om({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)&&Lm(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 b4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(lT,r=>{let n=S4(r);n&&w4({pi:t,state:e,payload:n})}))}function fT(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 pT(t){let{state:e,revision:r}=t,n=dn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function R4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=nn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(pT({state:e,revision:a})){ag({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(fT({state:e,name:i,revision:a})){o[i]=s;continue}ig({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function C4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=nn(i);s===void 0?(e.credentialRevisions.delete(o),e.hostedCredentialOwnership.delete(o)):(e.credentialRevisions.set(o,s),e.hostedCredentialOwnership.set(o,{...s,accessTokenOnly:i?.refresh_token===void 0})),e.statusFailureCategories.delete(o),e.authRefreshNeededReportKeys.delete(o),e.tokens.clearAuthRequired(o)}}function P4(t){let{pi:e,state:r,seeded:n,suppressReconnect:o}=t;if(o)return;let i=r.currentLoad?.latestPi??e;for(let s of n){let a=r.servers.get(s),c=r.expectedCredentialDomains.get(s),u=D(r,s),d=c?.kind!=="domain"||u?.owner.kind==="registry"&&u.owner.identity===c.domain;a&&d&&a.config.type!=="stdio"&&a.config.auth==="oauth"&&tn(s,r,i).catch(()=>{}).finally(()=>{N(i,r),Se(r)})}}function x4(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=R4({state:r,credentials:n,suppressReconnect:o}),s={acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:t.requireEqualMaterial};Object.entries(i).some(([u,d])=>{let{decision:l}=_r({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=bu(r.tokens,i,s);return C4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(we.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),P4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function k4(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);Hy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(cT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${cT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Zy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Dm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){we.warn(`${Dm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){we.warn(`${Dm} entries is not an object`);return}qm(e,n.entries)}))}function E4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(uT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){we.warn(`${uT} payload missing apiKey or apiUrl`);return}e.credentials={apiKey:n.apiKey,apiUrl:n.apiUrl,...typeof n.userAgent=="string"?{userAgent:n.userAgent}:{},...typeof n.userId=="string"?{userId:n.userId}:{}},e.secretsClient=new qu(e.credentials),_4(e)}),t.events.on(p4,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Pu(e.currentLoad?.latestPi??t,e),Js({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(n=>{we.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;Se(e),Yo(n,e)})}))}function hT(t,e){e.isCloudMode!==!1||e.mcpAttachCloudSignaled||!e.credentials||Js({pi:t,state:e,data:{configIds:void 0,productType:"cli"},productType:"cli"}).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(r=>{we.warn(`CLI registry discovery failed: ${r instanceof Error?r.message:String(r)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{Se(e)})}function T4(t,e){e.cloudModeListenerBound||(e.cloudModeListenerBound=!0,t.events.on(v4,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&&hT(e.currentLoad?.latestPi??t,e))}))}function A4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(dT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){we.warn(`${dT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Qo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{we.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}we.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function M4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(h4,r=>{sT({pi:t,state:e,data:r}).then(()=>{N(e.currentLoad?.latestPi??t,e),Se(e)})}))}function mT(t,e){Ir(e)?(ir(t),ya(t)):bg(t,e),Se(e)}function $4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(m4,r=>{let n=()=>tT({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{N(e.currentLoad?.latestPi??t,e)}).catch(o=>{we.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),N(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Yo(o,e)})}))}function I4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(g4,r=>{let n=()=>Om({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).then(()=>{Se(e)})}))}function O4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(y4,r=>{let n=()=>Tu({pi:t,state:e,data:r});(e.targetMaterialQueue?Ys(e,n):n()).catch(o=>{we.warn(`Live MCP remove-server did not retire durably: ${o instanceof Error?o.message:String(o)}`)}).finally(()=>{let o=e.currentLoad?.latestPi??t;Se(e),Yo(o,e)})}))}function ete(t){return qy(t)}function z4(t,e,r){e.connectStarted=!0,pi()&&ir(r);let{servers:n,diagnostics:o}=to(t.cwd,t.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let s of o)e.diagnostics.push(s),we.warn(s.message);let i=Je(n,e,r).then(()=>wk(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),hT(e.currentLoad?.latestPi??r,e),e.initialConnectPromise=null});e.initialConnectPromise=i}async function N4(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)}mT(e,t)}var gT=t=>{let e=te();e.currentLoad=Nm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{Se(e)});let r=!1;BE(t,e),Jk(t,e),b4(t,e),k4(t,e),E4(t,e),A4(t,e),M4(t,e),$4(t,e),I4(t,e),O4(t,e),T4(t,e),VE(t,e),Tk(t,e),Pu(t,e),t.on("session_start",async(n,o)=>{e.currentLoad=Nm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,JE(e),e.connectStarted?mT(t,e):z4(o,e,t),o.mode==="acp"&&await N4(e,t),r||(r=!0,t.events.emit(_E,CE(t,e)))}),t.on("session_shutdown",()=>{YE(e)})};vg(gT);var tte=gT;export{tte as default,ete as setMcpErrorReporter};
150
150
  /*! Bundled license information:
151
151
 
152
152
  content-type/index.js: