@augmentcode/auggie 1.2.0-prerelease.202609150952 → 1.2.0-prerelease.202609151517
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auggie-v2.mjs +1295 -1295
- package/auggie-v2.mjs.d/extensions/mcp/index.js +26 -26
- package/indexing-worker.mjs +51 -51
- package/package.json +1 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
var oT=Object.create;var Du=Object.defineProperty;var iT=Object.getOwnPropertyDescriptor;var sT=Object.getOwnPropertyNames;var aT=Object.getPrototypeOf,cT=Object.prototype.hasOwnProperty;var wr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var C=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Lu=(t,e)=>{for(var r in e)Du(t,r,{get:e[r],enumerable:!0})},uT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of sT(e))!cT.call(t,o)&&o!==r&&Du(t,o,{get:()=>e[o],enumerable:!(n=iT(e,o))||n.enumerable});return t};var Ys=(t,e,r)=>(r=t!=null?oT(aT(t)):{},uT(e||!t||!t.__esModule?Du(r,"default",{value:t,enumerable:!0}):r,t));var Xi=C(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var Ji=class{};J._CodeOrName=Ji;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Rn=class extends Ji{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=Rn;var St=class extends Ji{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 Rn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=St;J.nil=new St("");function Cb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)vf(r,e[n]),r.push(t[++n]);return new St(r)}J._=Cb;var yf=new St("+");function Pb(t,...e){let r=[Yi(t[0])],n=0;for(;n<e.length;)r.push(yf),vf(r,e[n]),r.push(yf,Yi(t[++n]));return Gz(r),new St(r)}J.str=Pb;function vf(t,e){e instanceof St?t.push(...e._items):e instanceof Rn?t.push(e):t.push(Wz(e))}J.addCodeArg=vf;function Gz(t){let e=1;for(;e<t.length-1;){if(t[e]===yf){let r=Zz(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Zz(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof Rn||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 Rn))return`"${t}${e.slice(1)}`}function Bz(t,e){return e.emptyStr()?t:t.emptyStr()?e:Pb`${t}${e}`}J.strConcat=Bz;function Wz(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:Yi(Array.isArray(t)?t.join(","):t)}function Vz(t){return new St(Yi(t))}J.stringify=Vz;function Yi(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=Yi;function Kz(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new St(`.${t}`):Cb`[${t}]`}J.getProperty=Kz;function Jz(t){if(typeof t=="string"&&J.IDENTIFIER.test(t))return new St(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}J.getEsmExportName=Jz;function Yz(t){return new St(t.toString())}J.regexpCode=Yz});var wf=C(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.ValueScope=et.ValueScopeName=et.Scope=et.varKinds=et.UsedValueState=void 0;var Qe=Xi(),_f=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},dc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(dc||(et.UsedValueState=dc={}));et.varKinds={const:new Qe.Name("const"),let:new Qe.Name("let"),var:new Qe.Name("var")};var lc=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Qe.Name?e:this.name(e)}name(e){return new Qe.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};et.Scope=lc;var fc=class extends Qe.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Qe._)`.${new Qe.Name(r)}[${n}]`}};et.ValueScopeName=fc;var Xz=(0,Qe._)`\n`,Sf=class extends lc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?Xz:Qe.nil}}get(){return this._scope}name(e){return new fc(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:i}=o,s=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[i];if(a){let d=a.get(s);if(d)return d}else a=this._values[i]=new Map;a.set(s,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Qe._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=Qe.nil;for(let s in e){let a=e[s];if(!a)continue;let c=n[s]=n[s]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,dc.Started);let d=r(u);if(d){let l=this.opts.es5?et.varKinds.var:et.varKinds.const;i=(0,Qe._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,Qe._)`${i}${d}${this.opts._n}`;else throw new _f(u);c.set(u,dc.Completed)})}return i}};et.ValueScope=Sf});var j=C(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var G=Xi(),$t=wf(),qr=Xi();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return qr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return qr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return qr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return qr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return qr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return qr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return qr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return qr.Name}});var gc=wf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return gc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return gc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return gc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return gc.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 dr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},bf=class extends dr{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?$t.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=bo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},pc=class extends dr{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=bo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return mc(e,this.rhs)}},Rf=class extends pc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Cf=class extends dr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Pf=class extends dr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},xf=class extends dr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},kf=class extends dr{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=bo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},Qi=class extends dr{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)||(Qz(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>xn(e,r.names),{})}},lr=class extends Qi{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Ef=class extends Qi{},wo=class extends lr{};wo.kind="else";var Cn=class t extends lr{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 wo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(xb(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=bo(this.condition,e,r),this}get names(){let e=super.names;return mc(e,this.condition),this.else&&xn(e,this.else.names),e}};Cn.kind="if";var Pn=class extends lr{};Pn.kind="for";var Tf=class extends Pn{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=bo(this.iteration,e,r),this}get names(){return xn(super.names,this.iteration.names)}},Af=class extends Pn{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?$t.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=mc(super.names,this.from);return mc(e,this.to)}},hc=class extends Pn{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=bo(this.iterable,e,r),this}get names(){return xn(super.names,this.iterable.names)}},es=class extends lr{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)}};es.kind="func";var ts=class extends Qi{render(e){return"return "+super.render(e)}};ts.kind="return";var Mf=class extends lr{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&&xn(e,this.catch.names),this.finally&&xn(e,this.finally.names),e}},rs=class extends lr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};rs.kind="catch";var ns=class extends lr{render(e){return"finally"+super.render(e)}};ns.kind="finally";var $f=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
-
`:""},this._extScope=e,this._scope=new $t.Scope({parent:e}),this._nodes=[new Ef]}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 bf(e,i,n)),i}const(e,r,n){return this._def($t.varKinds.const,e,r,n)}let(e,r,n){return this._def($t.varKinds.let,e,r,n)}var(e,r,n){return this._def($t.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new pc(e,r,n))}add(e,r){return this._leafNode(new Rf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new kf(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 Cn(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 Cn(e))}else(){return this._elseNode(new wo)}endIf(){return this._endBlockNode(Cn,wo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Tf(e),r)}forRange(e,r,n,o,i=this.opts.es5?$t.varKinds.var:$t.varKinds.let){let s=this._scope.toName(e);return this._for(new Af(i,s,r,n),()=>o(s))}forOf(e,r,n,o=$t.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 hc("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?$t.varKinds.var:$t.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 hc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(Pn)}label(e){return this._leafNode(new Cf(e))}break(e){return this._leafNode(new Pf(e))}return(e){let r=new ts;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ts)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Mf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new rs(i),r(i)}return n&&(this._currNode=o.finally=new ns,this.code(n)),this._endBlockNode(rs,ns)}throw(e){return this._leafNode(new xf(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 es(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(es)}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 Cn))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=$f;function xn(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function mc(t,e){return e instanceof G._CodeOrName?xn(t,e.names):t}function bo(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 Qz(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function xb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${If(t)}`}F.not=xb;var eN=kb(F.operators.AND);function tN(...t){return t.reduce(eN)}F.and=tN;var rN=kb(F.operators.OR);function nN(...t){return t.reduce(rN)}F.or=nN;function kb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${If(e)} ${t} ${If(r)}`}function If(t){return t instanceof G.Name?t:(0,G._)`(${t})`}});var B=C(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var se=j(),oN=Xi();function iN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=iN;function sN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Ab(t,e),!Mb(e,t.self.RULES.all))}U.alwaysValidSchema=sN;function Ab(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]||Ob(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Ab;function Mb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Mb;function aN(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=aN;function cN({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=cN;function uN(t){return $b(decodeURIComponent(t))}U.unescapeFragment=uN;function dN(t){return encodeURIComponent(zf(t))}U.escapeFragment=dN;function zf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=zf;function $b(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=$b;function lN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=lN;function Eb({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:Eb({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} || {}`),Nf(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Ib}),items:Eb({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 Ib(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Nf(t,r,e),r}U.evaluatedPropsToName=Ib;function Nf(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Nf;var Tb={};function fN(t,e){return t.scopeValue("func",{ref:e,code:Tb[e.code]||(Tb[e.code]=new oN._Code(e.code))})}U.useFunc=fN;var Of;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Of||(U.Type=Of={}));function pN(t,e,r){if(t instanceof se.Name){let n=e===Of.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():"/"+zf(t)}U.getErrorPath=pN;function Ob(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=Ob});var fr=C(Df=>{"use strict";Object.defineProperty(Df,"__esModule",{value:!0});var je=j(),hN={data:new je.Name("data"),valCxt:new je.Name("valCxt"),instancePath:new je.Name("instancePath"),parentData:new je.Name("parentData"),parentDataProperty:new je.Name("parentDataProperty"),rootData:new je.Name("rootData"),dynamicAnchors:new je.Name("dynamicAnchors"),vErrors:new je.Name("vErrors"),errors:new je.Name("errors"),this:new je.Name("this"),self:new je.Name("self"),scope:new je.Name("scope"),json:new je.Name("json"),jsonPos:new je.Name("jsonPos"),jsonLen:new je.Name("jsonLen"),jsonPart:new je.Name("jsonPart")};Df.default=hN});var os=C(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.extendErrors=Fe.resetErrorsCount=Fe.reportExtraError=Fe.reportError=Fe.keyword$DataError=Fe.keywordError=void 0;var W=j(),yc=B(),He=fr();Fe.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Fe.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function mN(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Db(t,e,r);n??(s||a)?zb(i,c):Nb(o,(0,W._)`[${c}]`)}Fe.reportError=mN;function gN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Db(t,e,r);zb(o,a),i||s||Nb(n,He.default.vErrors)}Fe.reportExtraError=gN;function yN(t,e){t.assign(He.default.errors,e),t.if((0,W._)`${He.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,W._)`${He.default.vErrors}.length`,e),()=>t.assign(He.default.vErrors,null)))}Fe.resetErrorsCount=yN;function vN({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let s=t.name("err");t.forRange("i",o,He.default.errors,a=>{t.const(s,(0,W._)`${He.default.vErrors}[${a}]`),t.if((0,W._)`${s}.instancePath === undefined`,()=>t.assign((0,W._)`${s}.instancePath`,(0,W.strConcat)(He.default.instancePath,i.errorPath))),t.assign((0,W._)`${s}.schemaPath`,(0,W.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,W._)`${s}.schema`,r),t.assign((0,W._)`${s}.data`,n))})}Fe.extendErrors=vN;function zb(t,e){let r=t.const("err",e);t.if((0,W._)`${He.default.vErrors} === null`,()=>t.assign(He.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${He.default.vErrors}.push(${r})`),t.code((0,W._)`${He.default.errors}++`)}function Nb(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 kn={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 Db(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=[SN(o,r),wN(t,r)];return bN(t,e,i),n.object(...i)}function SN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,yc.getErrorPath)(e,yc.Type.Str)}`:t;return[He.default.instancePath,(0,W.strConcat)(He.default.instancePath,r)]}function wN({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,yc.getErrorPath)(r,yc.Type.Str)}`),[kn.schemaPath,o]}function bN(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([kn.keyword,o],[kn.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([kn.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([kn.schema,s],[kn.parentSchema,(0,W._)`${d}${l}`],[He.default.data,i]),u&&n.push([kn.propertyName,u])}});var jb=C(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.boolOrEmptySchema=Ro.topBoolOrEmptySchema=void 0;var RN=os(),CN=j(),PN=fr(),xN={message:"boolean schema is false"};function kN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Lb(t,!1):typeof r=="object"&&r.$async===!0?e.return(PN.default.data):(e.assign((0,CN._)`${n}.errors`,null),e.return(!0))}Ro.topBoolOrEmptySchema=kN;function EN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Lb(t)):r.var(e,!0)}Ro.boolOrEmptySchema=EN;function Lb(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,RN.reportError)(o,xN,void 0,e)}});var Lf=C(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.getRules=Co.isJSONType=void 0;var TN=["string","number","integer","boolean","null","object","array"],AN=new Set(TN);function MN(t){return typeof t=="string"&&AN.has(t)}Co.isJSONType=MN;function $N(){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:{}}}Co.getRules=$N});var jf=C(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.shouldUseRule=Hr.shouldUseGroup=Hr.schemaHasRulesForType=void 0;function IN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Fb(t,n)}Hr.schemaHasRulesForType=IN;function Fb(t,e){return e.rules.some(r=>Ub(t,r))}Hr.shouldUseGroup=Fb;function Ub(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))}Hr.shouldUseRule=Ub});var is=C(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.reportTypeError=Ue.checkDataTypes=Ue.checkDataType=Ue.coerceAndCheckDataType=Ue.getJSONTypes=Ue.getSchemaTypes=Ue.DataType=void 0;var ON=Lf(),zN=jf(),NN=os(),L=j(),qb=B(),Po;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(Po||(Ue.DataType=Po={}));function DN(t){let e=Hb(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Ue.getSchemaTypes=DN;function Hb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(ON.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Hb;function LN(t,e){let{gen:r,data:n,opts:o}=t,i=jN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,zN.schemaHasRulesForType)(t,e[0]));if(s){let a=Uf(e,n,o.strictNumbers,Po.Wrong);r.if(a,()=>{i.length?FN(t,e,i):qf(t)})}return s}Ue.coerceAndCheckDataType=LN;var Gb=new Set(["string","number","integer","boolean","null"]);function jN(t,e){return e?t.filter(r=>Gb.has(r)||e==="array"&&r==="array"):[]}function FN(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(Uf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Gb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),qf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),UN(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 aT=Object.create;var Fu=Object.defineProperty;var cT=Object.getOwnPropertyDescriptor;var uT=Object.getOwnPropertyNames;var dT=Object.getPrototypeOf,lT=Object.prototype.hasOwnProperty;var Rr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var C=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Uu=(t,e)=>{for(var r in e)Fu(t,r,{get:e[r],enumerable:!0})},fT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of uT(e))!lT.call(t,o)&&o!==r&&Fu(t,o,{get:()=>e[o],enumerable:!(n=cT(e,o))||n.enumerable});return t};var Xs=(t,e,r)=>(r=t!=null?aT(dT(t)):{},fT(e||!t||!t.__esModule?Fu(r,"default",{value:t,enumerable:!0}):r,t));var es=C(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var Xi=class{};J._CodeOrName=Xi;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Pn=class extends Xi{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};J.Name=Pn;var St=class extends Xi{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof Pn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=St;J.nil=new St("");function kb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)bf(r,e[n]),r.push(t[++n]);return new St(r)}J._=kb;var wf=new St("+");function Eb(t,...e){let r=[Qi(t[0])],n=0;for(;n<e.length;)r.push(wf),bf(r,e[n]),r.push(wf,Qi(t[++n]));return Wz(r),new St(r)}J.str=Eb;function bf(t,e){e instanceof St?t.push(...e._items):e instanceof Pn?t.push(e):t.push(Jz(e))}J.addCodeArg=bf;function Wz(t){let e=1;for(;e<t.length-1;){if(t[e]===wf){let r=Vz(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Vz(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 Kz(t,e){return e.emptyStr()?t:t.emptyStr()?e:Eb`${t}${e}`}J.strConcat=Kz;function Jz(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:Qi(Array.isArray(t)?t.join(","):t)}function Yz(t){return new St(Qi(t))}J.stringify=Yz;function Qi(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=Qi;function Xz(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new St(`.${t}`):kb`[${t}]`}J.getProperty=Xz;function Qz(t){if(typeof t=="string"&&J.IDENTIFIER.test(t))return new St(`${t}`);throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}J.getEsmExportName=Qz;function eN(t){return new St(t.toString())}J.regexpCode=eN});var Pf=C(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.ValueScope=et.ValueScopeName=et.Scope=et.varKinds=et.UsedValueState=void 0;var Qe=es(),Rf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},fc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(fc||(et.UsedValueState=fc={}));et.varKinds={const:new Qe.Name("const"),let:new Qe.Name("let"),var:new Qe.Name("var")};var pc=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Qe.Name?e:this.name(e)}name(e){return new Qe.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};et.Scope=pc;var hc=class extends Qe.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Qe._)`.${new Qe.Name(r)}[${n}]`}};et.ValueScopeName=hc;var tN=(0,Qe._)`\n`,Cf=class extends pc{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?tN:Qe.nil}}get(){return this._scope}name(e){return new hc(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(e),{prefix:i}=o,s=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[i];if(a){let d=a.get(s);if(d)return d}else a=this._values[i]=new Map;a.set(s,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Qe._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=Qe.nil;for(let s in e){let a=e[s];if(!a)continue;let c=n[s]=n[s]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,fc.Started);let d=r(u);if(d){let l=this.opts.es5?et.varKinds.var:et.varKinds.const;i=(0,Qe._)`${i}${l} ${u} = ${d};${this.opts._n}`}else if(d=o?.(u))i=(0,Qe._)`${i}${d}${this.opts._n}`;else throw new Rf(u);c.set(u,fc.Completed)})}return i}};et.ValueScope=Cf});var j=C(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.or=F.and=F.not=F.CodeGen=F.operators=F.varKinds=F.ValueScopeName=F.ValueScope=F.Scope=F.Name=F.regexpCode=F.stringify=F.getProperty=F.nil=F.strConcat=F.str=F._=void 0;var G=es(),$t=Pf(),Zr=es();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Zr._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Zr.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Zr.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Zr.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Zr.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Zr.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Zr.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Zr.Name}});var vc=Pf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return vc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return vc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return vc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return vc.varKinds}});F.operators={GT:new G._Code(">"),GTE:new G._Code(">="),LT:new G._Code("<"),LTE:new G._Code("<="),EQ:new G._Code("==="),NEQ:new G._Code("!=="),NOT:new G._Code("!"),OR:new G._Code("||"),AND:new G._Code("&&"),ADD:new G._Code("+")};var fr=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},xf=class extends fr{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?$t.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Co(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},mc=class extends fr{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof G.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Co(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return yc(e,this.rhs)}},kf=class extends mc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Ef=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Tf=class extends fr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Af=class extends fr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Mf=class extends fr{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Co(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},ts=class extends fr{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(rN(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>En(e,r.names),{})}},pr=class extends ts{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},$f=class extends ts{},Ro=class extends pr{};Ro.kind="else";var xn=class t extends pr{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Ro(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Tb(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Co(this.condition,e,r),this}get names(){let e=super.names;return yc(e,this.condition),this.else&&En(e,this.else.names),e}};xn.kind="if";var kn=class extends pr{};kn.kind="for";var If=class extends kn{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Co(this.iteration,e,r),this}get names(){return En(super.names,this.iteration.names)}},Of=class extends kn{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?$t.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=yc(super.names,this.from);return yc(e,this.to)}},gc=class extends kn{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Co(this.iterable,e,r),this}get names(){return En(super.names,this.iterable.names)}},rs=class extends pr{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};rs.kind="func";var ns=class extends ts{render(e){return"return "+super.render(e)}};ns.kind="return";var zf=class extends pr{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&En(e,this.catch.names),this.finally&&En(e,this.finally.names),e}},os=class extends pr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};os.kind="catch";var is=class extends pr{render(e){return"finally"+super.render(e)}};is.kind="finally";var Nf=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
|
|
2
|
+
`:""},this._extScope=e,this._scope=new $t.Scope({parent:e}),this._nodes=[new $f]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new xf(e,i,n)),i}const(e,r,n){return this._def($t.varKinds.const,e,r,n)}let(e,r,n){return this._def($t.varKinds.let,e,r,n)}var(e,r,n){return this._def($t.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new mc(e,r,n))}add(e,r){return this._leafNode(new kf(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Mf(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,G.addCodeArg)(r,o));return r.push("}"),new G._Code(r)}if(e,r,n){if(this._blockNode(new xn(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new xn(e))}else(){return this._elseNode(new Ro)}endIf(){return this._endBlockNode(xn,Ro)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new If(e),r)}forRange(e,r,n,o,i=this.opts.es5?$t.varKinds.var:$t.varKinds.let){let s=this._scope.toName(e);return this._for(new Of(i,s,r,n),()=>o(s))}forOf(e,r,n,o=$t.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let s=r instanceof G.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,G._)`${s}.length`,a=>{this.var(i,(0,G._)`${s}[${a}]`),n(i)})}return this._for(new gc("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?$t.varKinds.var:$t.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,G._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new gc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(kn)}label(e){return this._leafNode(new Ef(e))}break(e){return this._leafNode(new Tf(e))}return(e){let r=new ns;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ns)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new zf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new os(i),r(i)}return n&&(this._currNode=o.finally=new is,this.code(n)),this._endBlockNode(os,is)}throw(e){return this._leafNode(new Af(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=G.nil,n,o){return this._blockNode(new rs(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(rs)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof xn))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};F.CodeGen=Nf;function En(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function yc(t,e){return e instanceof G._CodeOrName?En(t,e.names):t}function Co(t,e,r){if(t instanceof G.Name)return n(t);if(!o(t))return t;return new G._Code(t._items.reduce((i,s)=>(s instanceof G.Name&&(s=n(s)),s instanceof G._Code?i.push(...s._items):i.push(s),i),[]));function n(i){let s=r[i.str];return s===void 0||e[i.str]!==1?i:(delete e[i.str],s)}function o(i){return i instanceof G._Code&&i._items.some(s=>s instanceof G.Name&&e[s.str]===1&&r[s.str]!==void 0)}}function rN(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Tb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Df(t)}`}F.not=Tb;var nN=Ab(F.operators.AND);function oN(...t){return t.reduce(nN)}F.and=oN;var iN=Ab(F.operators.OR);function sN(...t){return t.reduce(iN)}F.or=sN;function Ab(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Df(e)} ${t} ${Df(r)}`}function Df(t){return t instanceof G.Name?t:(0,G._)`(${t})`}});var B=C(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.checkStrictMode=U.getErrorPath=U.Type=U.useFunc=U.setEvaluated=U.evaluatedPropsToName=U.mergeEvaluated=U.eachItem=U.unescapeJsonPointer=U.escapeJsonPointer=U.escapeFragment=U.unescapeFragment=U.schemaRefOrVal=U.schemaHasRulesButRef=U.schemaHasRules=U.checkUnknownRules=U.alwaysValidSchema=U.toHash=void 0;var se=j(),aN=es();function cN(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=cN;function uN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(Ib(t,e),!Ob(e,t.self.RULES.all))}U.alwaysValidSchema=uN;function Ib(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]||Db(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=Ib;function Ob(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Ob;function dN(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=dN;function lN({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=lN;function fN(t){return zb(decodeURIComponent(t))}U.unescapeFragment=fN;function pN(t){return encodeURIComponent(jf(t))}U.escapeFragment=pN;function jf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=jf;function zb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=zb;function hN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=hN;function Mb({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:Mb({mergeNames:(t,e,r)=>t.if((0,se._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,se._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,se._)`${r} || {}`).code((0,se._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,se._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,se._)`${r} || {}`),Ff(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Nb}),items:Mb({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 Nb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&Ff(t,r,e),r}U.evaluatedPropsToName=Nb;function Ff(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=Ff;var $b={};function mN(t,e){return t.scopeValue("func",{ref:e,code:$b[e.code]||($b[e.code]=new aN._Code(e.code))})}U.useFunc=mN;var Lf;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Lf||(U.Type=Lf={}));function gN(t,e,r){if(t instanceof se.Name){let n=e===Lf.Num;return r?n?(0,se._)`"[" + ${t} + "]"`:(0,se._)`"['" + ${t} + "']"`:n?(0,se._)`"/" + ${t}`:(0,se._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,se.getProperty)(t).toString():"/"+jf(t)}U.getErrorPath=gN;function Db(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=Db});var hr=C(Uf=>{"use strict";Object.defineProperty(Uf,"__esModule",{value:!0});var je=j(),yN={data:new je.Name("data"),valCxt:new je.Name("valCxt"),instancePath:new je.Name("instancePath"),parentData:new je.Name("parentData"),parentDataProperty:new je.Name("parentDataProperty"),rootData:new je.Name("rootData"),dynamicAnchors:new je.Name("dynamicAnchors"),vErrors:new je.Name("vErrors"),errors:new je.Name("errors"),this:new je.Name("this"),self:new je.Name("self"),scope:new je.Name("scope"),json:new je.Name("json"),jsonPos:new je.Name("jsonPos"),jsonLen:new je.Name("jsonLen"),jsonPart:new je.Name("jsonPart")};Uf.default=yN});var ss=C(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.extendErrors=Fe.resetErrorsCount=Fe.reportExtraError=Fe.reportError=Fe.keyword$DataError=Fe.keywordError=void 0;var W=j(),_c=B(),He=hr();Fe.keywordError={message:({keyword:t})=>(0,W.str)`must pass "${t}" keyword validation`};Fe.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,W.str)`"${t}" keyword must be ${e} ($data)`:(0,W.str)`"${t}" keyword is invalid ($data)`};function vN(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Fb(t,e,r);n??(s||a)?Lb(i,c):jb(o,(0,W._)`[${c}]`)}Fe.reportError=vN;function _N(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Fb(t,e,r);Lb(o,a),i||s||jb(n,He.default.vErrors)}Fe.reportExtraError=_N;function SN(t,e){t.assign(He.default.errors,e),t.if((0,W._)`${He.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,W._)`${He.default.vErrors}.length`,e),()=>t.assign(He.default.vErrors,null)))}Fe.resetErrorsCount=SN;function wN({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let s=t.name("err");t.forRange("i",o,He.default.errors,a=>{t.const(s,(0,W._)`${He.default.vErrors}[${a}]`),t.if((0,W._)`${s}.instancePath === undefined`,()=>t.assign((0,W._)`${s}.instancePath`,(0,W.strConcat)(He.default.instancePath,i.errorPath))),t.assign((0,W._)`${s}.schemaPath`,(0,W.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,W._)`${s}.schema`,r),t.assign((0,W._)`${s}.data`,n))})}Fe.extendErrors=wN;function Lb(t,e){let r=t.const("err",e);t.if((0,W._)`${He.default.vErrors} === null`,()=>t.assign(He.default.vErrors,(0,W._)`[${r}]`),(0,W._)`${He.default.vErrors}.push(${r})`),t.code((0,W._)`${He.default.errors}++`)}function jb(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 Fb(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:bN(t,e,r)}function bN(t,e,r={}){let{gen:n,it:o}=t,i=[RN(o,r),CN(t,r)];return PN(t,e,i),n.object(...i)}function RN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,_c.getErrorPath)(e,_c.Type.Str)}`:t;return[He.default.instancePath,(0,W.strConcat)(He.default.instancePath,r)]}function CN({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,_c.getErrorPath)(r,_c.Type.Str)}`),[Tn.schemaPath,o]}function PN(t,{params:e,message:r},n){let{keyword:o,data:i,schemaValue:s,it:a}=t,{opts:c,propertyName:u,topSchemaRef:d,schemaPath:l}=a;n.push([Tn.keyword,o],[Tn.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([Tn.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Tn.schema,s],[Tn.parentSchema,(0,W._)`${d}${l}`],[He.default.data,i]),u&&n.push([Tn.propertyName,u])}});var qb=C(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.boolOrEmptySchema=Po.topBoolOrEmptySchema=void 0;var xN=ss(),kN=j(),EN=hr(),TN={message:"boolean schema is false"};function AN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Ub(t,!1):typeof r=="object"&&r.$async===!0?e.return(EN.default.data):(e.assign((0,kN._)`${n}.errors`,null),e.return(!0))}Po.topBoolOrEmptySchema=AN;function MN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Ub(t)):r.var(e,!0)}Po.boolOrEmptySchema=MN;function Ub(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,xN.reportError)(o,TN,void 0,e)}});var qf=C(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.getRules=xo.isJSONType=void 0;var $N=["string","number","integer","boolean","null","object","array"],IN=new Set($N);function ON(t){return typeof t=="string"&&IN.has(t)}xo.isJSONType=ON;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:{}}}xo.getRules=zN});var Hf=C(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.shouldUseRule=Br.shouldUseGroup=Br.schemaHasRulesForType=void 0;function NN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Hb(t,n)}Br.schemaHasRulesForType=NN;function Hb(t,e){return e.rules.some(r=>Gb(t,r))}Br.shouldUseGroup=Hb;function Gb(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Br.shouldUseRule=Gb});var as=C(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.reportTypeError=Ue.checkDataTypes=Ue.checkDataType=Ue.coerceAndCheckDataType=Ue.getJSONTypes=Ue.getSchemaTypes=Ue.DataType=void 0;var DN=qf(),LN=Hf(),jN=ss(),L=j(),Zb=B(),ko;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(ko||(Ue.DataType=ko={}));function FN(t){let e=Bb(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Ue.getSchemaTypes=FN;function Bb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(DN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Bb;function UN(t,e){let{gen:r,data:n,opts:o}=t,i=qN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,LN.schemaHasRulesForType)(t,e[0]));if(s){let a=Zf(e,n,o.strictNumbers,ko.Wrong);r.if(a,()=>{i.length?HN(t,e,i):Bf(t)})}return s}Ue.coerceAndCheckDataType=UN;var Wb=new Set(["string","number","integer","boolean","null"]);function qN(t,e){return e?t.filter(r=>Wb.has(r)||e==="array"&&r==="array"):[]}function HN(t,e,r){let{gen:n,data:o,opts:i}=t,s=n.let("dataType",(0,L._)`typeof ${o}`),a=n.let("coerced",(0,L._)`undefined`);i.coerceTypes==="array"&&n.if((0,L._)`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,L._)`${o}[0]`).assign(s,(0,L._)`typeof ${o}`).if(Zf(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,L._)`${a} !== undefined`);for(let u of r)(Wb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Bf(t),n.endIf(),n.if((0,L._)`${a} !== undefined`,()=>{n.assign(o,a),GN(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 UN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Ff(t,e,r,n=Po.Correct){let o=n===Po.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===Po.Correct?i:(0,L.not)(i);function s(a=L.nil){return(0,L.and)((0,L._)`typeof ${e} == "number"`,a,r?(0,L._)`isFinite(${e})`:L.nil)}}Ue.checkDataType=Ff;function Uf(t,e,r,n){if(t.length===1)return Ff(t[0],e,r,n);let o,i=(0,qb.toHash)(t);if(i.array&&i.object){let s=(0,L._)`typeof ${e} != "object"`;o=i.null?s:(0,L._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else o=L.nil;i.number&&delete i.integer;for(let s in i)o=(0,L.and)(o,Ff(s,e,r,n));return o}Ue.checkDataTypes=Uf;var qN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function qf(t){let e=HN(t);(0,NN.reportError)(e,qN)}Ue.reportTypeError=qf;function HN(t){let{gen:e,data:r,schema:n}=t,o=(0,qb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Bb=C(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.assignDefaults=void 0;var xo=j(),GN=B();function ZN(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Zb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Zb(t,i,o.default))}vc.assignDefaults=ZN;function Zb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,xo._)`${i}${(0,xo.getProperty)(e)}`;if(o){(0,GN.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,xo._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,xo._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,xo._)`${a} = ${(0,xo.stringify)(r)}`)}});var wt=C(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.validateUnion=re.validateArray=re.usePattern=re.callValidateCode=re.schemaProperties=re.allSchemaProperties=re.noPropertyInData=re.propertyInData=re.isOwnProperty=re.hasPropFunc=re.reportMissingProp=re.checkMissingProp=re.checkReportMissingProp=void 0;var de=j(),Hf=B(),Gr=fr(),BN=B();function WN(t,e){let{gen:r,data:n,it:o}=t;r.if(Zf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=WN;function VN({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Zf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=VN;function KN(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=KN;function Wb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Wb;function Gf(t,e,r){return(0,de._)`${Wb(t)}.call(${e}, ${r})`}re.isOwnProperty=Gf;function JN(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Gf(t,e,r)}`:o}re.propertyInData=JN;function Zf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Gf(t,e,r))):o}re.noPropertyInData=Zf;function Vb(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=Vb;function YN(t,e){return Vb(e).filter(r=>!(0,Hf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=YN;function XN({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=[[Gr.default.instancePath,(0,de.strConcat)(Gr.default.instancePath,i)],[Gr.default.parentData,s.parentData],[Gr.default.parentDataProperty,s.parentDataProperty],[Gr.default.rootData,Gr.default.rootData]];s.opts.dynamicRef&&l.push([Gr.default.dynamicAnchors,Gr.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...l)}`;return c!==de.nil?(0,de._)`${a}.call(${c}, ${f})`:(0,de._)`${a}(${f})`}re.callValidateCode=XN;var QN=(0,de._)`new RegExp`;function eD({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"?QN:(0,BN.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=eD;function tD(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:Hf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=tD;function rD(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,Hf.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let s=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let d=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(s,(0,de._)`${s} || ${a}`),t.mergeValidEvaluated(d,a)||e.if((0,de.not)(s))})),t.result(s,()=>t.reset(),()=>t.error(!0))}re.validateUnion=rD});var Yb=C(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.validateKeywordUsage=Kt.validSchemaType=Kt.funcKeywordCode=Kt.macroKeywordCode=void 0;var Ge=j(),En=fr(),nD=wt(),oD=os();function iD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=Jb(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Ge.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Kt.macroKeywordCode=iD;function sD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;cD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=Jb(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)h(),e.modifying&&Kb(t),g(()=>t.error());else{let v=e.async?p():m();e.modifying&&Kb(t),g(()=>aD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,Ge._)`await `),w=>n.assign(l,!1).if((0,Ge._)`${w} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Ge._)`${w}.errors`),()=>n.throw(w))),v}function m(){let v=(0,Ge._)`${d}.errors`;return n.assign(v,null),h(Ge.nil),v}function h(v=e.async?(0,Ge._)`await `:Ge.nil){let w=c.opts.passContext?En.default.this:En.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ge._)`${v}${(0,nD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Ge.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Kt.funcKeywordCode=sD;function Kb(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ge._)`${n.parentData}[${n.parentDataProperty}]`))}function aD(t,e){let{gen:r}=t;r.if((0,Ge._)`Array.isArray(${e})`,()=>{r.assign(En.default.vErrors,(0,Ge._)`${En.default.vErrors} === null ? ${e} : ${En.default.vErrors}.concat(${e})`).assign(En.default.errors,(0,Ge._)`${En.default.vErrors}.length`),(0,oD.extendErrors)(t)},()=>t.error())}function cD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function Jb(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ge.stringify)(r)})}function uD(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")}Kt.validSchemaType=uD;function dD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Kt.validateKeywordUsage=dD});var Qb=C(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.extendSubschemaMode=Zr.extendSubschemaData=Zr.getSubschema=void 0;var Jt=j(),Xb=B();function lD(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:s}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Jt._)`${t.schemaPath}${(0,Jt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Jt._)`${t.schemaPath}${(0,Jt.getProperty)(e)}${(0,Jt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,Xb.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')}Zr.getSubschema=lD;function fD(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,Jt._)`${e.data}${(0,Jt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Jt.str)`${u}${(0,Xb.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Jt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Jt.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]}}Zr.extendSubschemaData=fD;function pD(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}Zr.extendSubschemaMode=pD});var Bf=C((k5,eR)=>{"use strict";eR.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 rR=C((E5,tR)=>{"use strict";var Br=tR.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(){};_c(e,n,o,t,"",t)};Br.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Br.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Br.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Br.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 _c(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 Br.arrayKeywords)for(var f=0;f<l.length;f++)_c(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Br.propsKeywords){if(l&&typeof l=="object")for(var p in l)_c(t,e,r,l[p],o+"/"+d+"/"+hD(p),i,o,d,n,p)}else(d in Br.keywords||t.allKeys&&!(d in Br.skipKeywords))&&_c(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function hD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var ss=C(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.getSchemaRefs=tt.resolveUrl=tt.normalizeId=tt._getFullPath=tt.getFullPath=tt.inlineRef=void 0;var mD=B(),gD=Bf(),yD=rR(),vD=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?!Wf(t):e?nR(t)<=e:!1}tt.inlineRef=_D;var SD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Wf(t){for(let e in t){if(SD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Wf)||typeof r=="object"&&Wf(r))return!0}return!1}function nR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!vD.has(r)&&(typeof t[r]=="object"&&(0,mD.eachItem)(t[r],n=>e+=nR(n)),e===1/0))return 1/0}return e}function oR(t,e="",r){r!==!1&&(e=ko(e));let n=t.parse(e);return iR(t,n)}tt.getFullPath=oR;function iR(t,e){return t.serialize(e).split("#")[0]+"#"}tt._getFullPath=iR;var wD=/#\/?$/;function ko(t){return t?t.replace(wD,""):""}tt.normalizeId=ko;function bD(t,e,r){return r=ko(r),t.resolve(e,r)}tt.resolveUrl=bD;var RD=/^[a-z_][-a-z0-9._]*$/i;function CD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=ko(t[r]||e),i={"":o},s=oR(n,o,!1),a={},c=new Set;return yD(t,{allKeys:!0},(l,f,p,m)=>{if(m===void 0)return;let h=s+f,g=i[m];typeof l[r]=="string"&&(g=v.call(this,l[r])),w.call(this,l.$anchor),w.call(this,l.$dynamicAnchor),i[f]=g;function v(b){let x=this.opts.uriResolver.resolve;if(b=ko(g?x(g,b):b),c.has(b))throw d(b);c.add(b);let S=this.refs[b];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(l,S.schema,b):b!==ko(h)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=h),b}function w(b){if(typeof b=="string"){if(!RD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!gD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}tt.getSchemaRefs=CD});var us=C(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.getData=Wr.KeywordCxt=Wr.validateFunctionCode=void 0;var dR=jb(),sR=is(),Kf=jf(),Sc=is(),PD=Bb(),cs=Yb(),Vf=Qb(),T=j(),z=fr(),xD=ss(),pr=B(),as=os();function kD(t){if(pR(t)&&(hR(t),fR(t))){AD(t);return}lR(t,()=>(0,dR.topBoolOrEmptySchema)(t))}Wr.validateFunctionCode=kD;function lR({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,T._)`${z.default.data}, ${z.default.valCxt}`,n.$async,()=>{t.code((0,T._)`"use strict"; ${aR(r,o)}`),TD(t,o),t.code(i)}):t.func(e,(0,T._)`${z.default.data}, ${ED(o)}`,n.$async,()=>t.code(aR(r,o)).code(i))}function ED(t){return(0,T._)`{${z.default.instancePath}="", ${z.default.parentData}, ${z.default.parentDataProperty}, ${z.default.rootData}=${z.default.data}${t.dynamicRef?(0,T._)`, ${z.default.dynamicAnchors}={}`:T.nil}}={}`}function TD(t,e){t.if(z.default.valCxt,()=>{t.var(z.default.instancePath,(0,T._)`${z.default.valCxt}.${z.default.instancePath}`),t.var(z.default.parentData,(0,T._)`${z.default.valCxt}.${z.default.parentData}`),t.var(z.default.parentDataProperty,(0,T._)`${z.default.valCxt}.${z.default.parentDataProperty}`),t.var(z.default.rootData,(0,T._)`${z.default.valCxt}.${z.default.rootData}`),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`${z.default.valCxt}.${z.default.dynamicAnchors}`)},()=>{t.var(z.default.instancePath,(0,T._)`""`),t.var(z.default.parentData,(0,T._)`undefined`),t.var(z.default.parentDataProperty,(0,T._)`undefined`),t.var(z.default.rootData,z.default.data),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`{}`)})}function AD(t){let{schema:e,opts:r,gen:n}=t;lR(t,()=>{r.$comment&&e.$comment&&gR(t),zD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&MD(t),mR(t),LD(t)})}function MD(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,T._)`${r}.evaluated`),e.if((0,T._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,T._)`${t.evaluated}.props`,(0,T._)`undefined`)),e.if((0,T._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,T._)`${t.evaluated}.items`,(0,T._)`undefined`))}function aR(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,T._)`/*# sourceURL=${r} */`:T.nil}function $D(t,e){if(pR(t)&&(hR(t),fR(t))){ID(t,e);return}(0,dR.boolOrEmptySchema)(t,e)}function fR({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 pR(t){return typeof t.schema!="boolean"}function ID(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&gR(t),ND(t),DD(t);let i=n.const("_errs",z.default.errors);mR(t,i),n.var(e,(0,T._)`${i} === ${z.default.errors}`)}function hR(t){(0,pr.checkUnknownRules)(t),OD(t)}function mR(t,e){if(t.opts.jtd)return cR(t,[],!1,e);let r=(0,sR.getSchemaTypes)(t.schema),n=(0,sR.coerceAndCheckDataType)(t,r);cR(t,r,!n,e)}function OD(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,pr.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function zD(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,pr.checkStrictMode)(t,"default is ignored in the schema root")}function ND(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,xD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function DD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function gR({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,T._)`${z.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,T.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,T._)`${z.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function LD(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,T._)`${z.default.errors} === 0`,()=>e.return(z.default.data),()=>e.throw((0,T._)`new ${o}(${z.default.vErrors})`)):(e.assign((0,T._)`${n}.errors`,z.default.vErrors),i.unevaluated&&jD(t),e.return((0,T._)`${z.default.errors} === 0`))}function jD({gen:t,evaluated:e,props:r,items:n}){r instanceof T.Name&&t.assign((0,T._)`${e}.props`,r),n instanceof T.Name&&t.assign((0,T._)`${e}.items`,n)}function cR(t,e,r,n){let{gen:o,schema:i,data:s,allErrors:a,opts:c,self:u}=t,{RULES:d}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,pr.schemaHasRulesButRef)(i,d))){o.block(()=>vR(t,"$ref",d.all.$ref.definition));return}c.jtd||FD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,Kf.shouldUseGroup)(i,f)&&(f.type?(o.if((0,Sc.checkDataType)(f.type,s,c.strictNumbers)),uR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,Sc.reportTypeError)(t)),o.endIf()):uR(t,f),a||o.if((0,T._)`${z.default.errors} === ${n||0}`))}}function uR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,PD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,Kf.shouldUseRule)(n,i)&&vR(t,i.keyword,i.definition,e.type)})}function FD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(UD(t,e),t.opts.allowUnionTypes||qD(t,e),HD(t,t.dataTypes))}function UD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{yR(t.dataTypes,r)||Jf(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),ZD(t,e)}}function qD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Jf(t,"use allowUnionTypes to allow union type keyword")}function HD(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Kf.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>GD(e,s))&&Jf(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function GD(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function yR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function ZD(t,e){let r=[];for(let n of t.dataTypes)yR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Jf(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,pr.checkStrictMode)(t,e,t.opts.strictTypes)}var wc=class{constructor(e,r,n){if((0,cs.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,pr.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",_R(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,cs.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",z.default.errors))}result(e,r,n){this.failResult((0,T.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,T.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,T._)`${r} !== undefined && (${(0,T.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?as.reportExtraError:as.reportError)(this,this.def.error,r)}$dataError(){(0,as.reportError)(this,this.def.$dataError||as.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,as.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=T.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=T.nil,r=T.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,T.or)((0,T._)`${o} === undefined`,r)),e!==T.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==T.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,T.or)(s(),a());function s(){if(n.length){if(!(r instanceof T.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,T._)`${(0,Sc.checkDataTypes)(c,r,i.opts.strictNumbers,Sc.DataType.Wrong)}`}return T.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,T._)`!${c}(${r})`}return T.nil}}subschema(e,r){let n=(0,Vf.getSubschema)(this.it,e);(0,Vf.extendSubschemaData)(n,this.it,e),(0,Vf.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return $D(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=pr.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=pr.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,T.Name)),!0}};Wr.KeywordCxt=wc;function vR(t,e,r,n){let o=new wc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,cs.funcKeywordCode)(o,r):"macro"in r?(0,cs.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,cs.funcKeywordCode)(o,r)}var BD=/^\/(?:[^~]|~0|~1)*$/,WD=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function _R(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!BD.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=WD.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let d=+u[1];if(o=u[2],o==="#"){if(d>=e)throw new Error(c("property/index",d));return n[e-d]}if(d>e)throw new Error(c("data",d));if(i=r[e-d],!o)return i}let s=i,a=o.split("/");for(let u of a)u&&(i=(0,T._)`${i}${(0,T.getProperty)((0,pr.unescapeJsonPointer)(u))}`,s=(0,T._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Wr.getData=_R});var bc=C(Xf=>{"use strict";Object.defineProperty(Xf,"__esModule",{value:!0});var Yf=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Xf.default=Yf});var ds=C(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});var Qf=ss(),ep=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Qf.resolveUrl)(e,r,n),this.missingSchema=(0,Qf.normalizeId)((0,Qf.getFullPath)(e,this.missingRef))}};tp.default=ep});var Cc=C(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.resolveSchema=bt.getCompilingSchema=bt.resolveRef=bt.compileSchema=bt.SchemaEnv=void 0;var It=j(),VD=bc(),Tn=fr(),Ot=ss(),SR=B(),KD=us(),Eo=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,Ot.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};bt.SchemaEnv=Eo;function np(t){let e=wR.call(this,t);if(e)return e;let r=(0,Ot.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,s=new It.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),a;t.$async&&(a=s.scopeValue("Error",{ref:VD.default,code:(0,It._)`require("ajv/dist/runtime/validation_error").default`}));let c=s.scopeName("validate");t.validateName=c;let u={gen:s,allErrors:this.opts.allErrors,data:Tn.default.data,parentData:Tn.default.parentData,parentDataProperty:Tn.default.parentDataProperty,dataNames:[Tn.default.data],dataPathArr:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,It.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:It.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(t),(0,KD.validateFunctionCode)(u),s.optimize(this.opts.code.optimize);let l=s.toString();d=`${s.scopeRefs(Tn.default.scope)}return ${l}`,this.opts.code.process&&(d=this.opts.code.process(d,t));let p=new Function(`${Tn.default.self}`,`${Tn.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:m,items:h}=u;p.evaluated={props:m instanceof It.Name?void 0:m,items:h instanceof It.Name?void 0:h,dynamicProps:m instanceof It.Name,dynamicItems:h instanceof It.Name},p.source&&(p.source.evaluated=(0,It.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)}}bt.compileSchema=np;function JD(t,e,r){var n;r=(0,Ot.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let i=QD.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 Eo({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=YD.call(this,i)}bt.resolveRef=JD;function YD(t){return(0,Ot.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:np.call(this,t)}function wR(t){for(let e of this._compilations)if(XD(e,t))return e}bt.getCompilingSchema=wR;function XD(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function QD(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Rc.call(this,t,e)}function Rc(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Ot._getFullPath)(this.opts.uriResolver,r),o=(0,Ot.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return rp.call(this,r,t);let i=(0,Ot.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Rc.call(this,t,s);return typeof a?.schema!="object"?void 0:rp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||np.call(this,s),i===(0,Ot.normalizeId)(e)){let{schema:a}=s,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,Ot.resolveUrl)(this.opts.uriResolver,o,u)),new Eo({schema:a,schemaId:c,root:t,baseId:o})}return rp.call(this,r,s)}}bt.resolveSchema=Rc;var eL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function rp(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,SR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!eL.has(a)&&u&&(e=(0,Ot.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,SR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Ot.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Rc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Eo({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var bR=C((O5,tL)=>{tL.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 sp=C((z5,ER)=>{"use strict";var rL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),CR=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),op=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),PR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),nL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function ip(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 oL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function RR(t){return t.length=0,!0}function iL(t,e,r){if(t.length){let n=ip(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function sL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=iL;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=RR}else{o.push(u);continue}}return o.length&&(a===RR?r.zone=o.join(""):s?n.push(o.join("")):n.push(ip(o))),r.address=n.join(""),r}function xR(t){if(aL(t,":")<2)return{host:t,isIPV6:!1};let e=sL(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 aL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function cL(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 uL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},dL=/[@/?#:]/g,lL=/[@/?#]/g;function kR(t,e){let r=e?lL:dL;return r.lastIndex=0,t.replace(r,n=>uL[n])}function fL(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(op(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&PR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function pL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(op(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&PR(i)?e+=i:e+="%"+o,r+=2;continue}}nL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function hL(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(op(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function mL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!CR(r)){let n=xR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=kR(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}ER.exports={nonSimpleDomain:oL,recomposeAuthority:mL,reescapeHostDelimiters:kR,normalizePercentEncoding:fL,normalizePathEncoding:pL,escapePreservingEscapes:hL,removeDotSegments:cL,isIPv4:CR,isUUID:rL,normalizeIPv6:xR,stringArrayToHexStripped:ip}});var IR=C((N5,$R)=>{"use strict";var{isUUID:gL}=sp(),yL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,vL=["http","https","ws","wss","urn","urn:uuid"];function _L(t){return vL.indexOf(t)!==-1}function ap(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 TR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function AR(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 SL(t){return t.secure=ap(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function wL(t){if((t.port===(ap(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 bL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(yL);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=cp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function RL(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=cp(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 CL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!gL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function PL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var MR={scheme:"http",domainHost:!0,parse:TR,serialize:AR},xL={scheme:"https",domainHost:MR.domainHost,parse:TR,serialize:AR},Pc={scheme:"ws",domainHost:!0,parse:SL,serialize:wL},kL={scheme:"wss",domainHost:Pc.domainHost,parse:Pc.parse,serialize:Pc.serialize},EL={scheme:"urn",parse:bL,serialize:RL,skipNormalize:!0},TL={scheme:"urn:uuid",parse:CL,serialize:PL,skipNormalize:!0},xc={http:MR,https:xL,ws:Pc,wss:kL,urn:EL,"urn:uuid":TL};Object.setPrototypeOf(xc,null);function cp(t){return t&&(xc[t]||xc[t.toLowerCase()])||void 0}$R.exports={wsIsSecure:ap,SCHEMES:xc,isValidSchemeName:_L,getSchemeHandler:cp}});var LR=C((D5,Tc)=>{"use strict";var{normalizeIPv6:AL,removeDotSegments:ls,recomposeAuthority:ML,normalizePercentEncoding:$L,normalizePathEncoding:IL,escapePreservingEscapes:OL,reescapeHostDelimiters:zL,isIPv4:NL,nonSimpleDomain:DL}=sp(),{SCHEMES:LL,getSchemeHandler:zR}=IR();function jL(t,e){return typeof t=="string"?t=BL(t,e):typeof t=="object"&&(t=Ec(An(t,e),e)),t}function FL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=kc(t,n),{parsed:s,malformedAuthorityOrPort:a}=kc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=NR(o,s,n,!0);return n.skipEscape=!0,An(c,n)}function NR(t,e,r,n){let o={};return n||(t=Ec(An(t,r),r),e=Ec(An(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=ls(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=ls(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ls(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=ls(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 UL(t,e,r){let n=OR(t,r),o=OR(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function An(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),o=[],i=zR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=$L(r.path):(r.path=OL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=ML(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=ls(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var qL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,HL=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,GL=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function ZL(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 kc(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(HL);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(GL);if(a!==null){let u=a[1],d=u.replace(/[\t\n\r]/g,"");d.length>=2&&(d.slice(0,2)!=="//"?(n.error=n.error||"URI authority must not contain a literal backslash.",o=!0):u.length!==d.length&&(n.error=n.error||"URI authority introducer must not contain whitespace.",o=!0))}let c=t.match(qL);if(c){n.scheme=c[1],n.userinfo=c[3],n.host=c[4],n.port=parseInt(c[5],10),n.path=c[6]||"",n.query=c[7],n.fragment=c[8],isNaN(n.port)&&(n.port=c[5]);let u=ZL(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(NL(n.host)===!1){let f=AL(n.host);n.host=f.host.toLowerCase(),i=f.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let d=zR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&DL(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=zL(unescape(n.host),i))),n.path&&(n.path=IL(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 Ec(t,e){return kc(t,e).parsed}function BL(t,e){return DR(t,e).normalized}function DR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=kc(t,e);return{normalized:n?t:An(r,e),malformedAuthorityOrPort:n}}function OR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=DR(t,e);return n?void 0:r}if(typeof t=="object")return An(t,e)}var up={SCHEMES:LL,normalize:jL,resolve:FL,resolveComponent:NR,equal:UL,serialize:An,parse:Ec};Tc.exports=up;Tc.exports.default=up;Tc.exports.fastUri=up});var FR=C(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var jR=LR();jR.code='require("ajv/dist/runtime/uri").default';dp.default=jR});var VR=C(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CodeGen=Ne.Name=Ne.nil=Ne.stringify=Ne.str=Ne._=Ne.KeywordCxt=void 0;var WL=us();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return WL.KeywordCxt}});var To=j();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return To._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return To.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return To.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return To.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return To.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return To.CodeGen}});var VL=bc(),ZR=ds(),KL=Lf(),fs=Cc(),JL=j(),ps=ss(),Ac=is(),fp=B(),UR=bR(),YL=FR(),BR=(t,e)=>new RegExp(t,e);BR.code="new RegExp";var XL=["removeAdditional","useDefaults","coerceTypes"],QL=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ej={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."},tj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},qR=200;function rj(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,m,h,g,v,w,b,x,S,R,I,ne,fe;let Pe=t.strict,rn=(e=t.code)===null||e===void 0?void 0:e.optimize,nn=rn===!0||rn===void 0?1:rn||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:BR,Sr=(o=t.uriResolver)!==null&&o!==void 0?o:YL.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:Pe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:Pe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:Pe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:Pe)!==null&&f!==void 0?f:"log",strictRequired:(m=(p=t.strictRequired)!==null&&p!==void 0?p:Pe)!==null&&m!==void 0?m:!1,code:t.code?{...t.code,optimize:nn,regExp:lt}:{optimize:nn,regExp:lt},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:qR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:qR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(R=t.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(I=t.validateFormats)!==null&&I!==void 0?I:!0,unicodeRegExp:(ne=t.unicodeRegExp)!==null&&ne!==void 0?ne:!0,int32range:(fe=t.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:Sr}}var hs=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,...rj(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new JL.ValueScope({scope:{},prefixes:QL,es5:r,lines:n}),this.logger=cj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,KL.getRules)(),HR.call(this,ej,e,"NOT SUPPORTED"),HR.call(this,tj,e,"DEPRECATED","warn"),this._metaOpts=sj.call(this),e.formats&&oj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&ij.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),nj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=UR;n==="id"&&(o={...UR},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 ZR.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,ps.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=GR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new fs.SchemaEnv({schema:{},schemaId:n});if(r=fs.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=GR.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,ps.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(dj.call(this,n,r),!r)return(0,fp.eachItem)(n,i=>lp.call(this,i)),this;fj.call(this,r);let o={...r,type:(0,Ac.getJSONTypes)(r.type),schemaType:(0,Ac.getJSONTypes)(r.schemaType)};return(0,fp.eachItem)(n,o.type.length===0?i=>lp.call(this,i,o):i=>o.type.forEach(s=>lp.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]=WR(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,ps.normalizeId)(s||n);let u=ps.getSchemaRefs.call(this,e,n);return c=new fs.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):fs.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{fs.compileSchema.call(this,e)}finally{this.opts=r}}};hs.ValidationError=VL.default;hs.MissingRefError=ZR.default;Ne.default=hs;function HR(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 GR(t){return t=(0,ps.normalizeId)(t),this.schemas[t]||this.refs[t]}function nj(){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 oj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function ij(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 sj(){let t={...this.opts};for(let e of XL)delete t[e];return t}var aj={log(){},warn(){},error(){}};function cj(t){if(t===!1)return aj;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 uj=/^[a-z_$][a-z0-9_$:-]*$/i;function dj(t,e){let{RULES:r}=this;if((0,fp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!uj.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 lp(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,Ac.getJSONTypes)(e.type),schemaType:(0,Ac.getJSONTypes)(e.schemaType)}};e.before?lj.call(this,s,a,e.before):s.rules.push(a),i.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function lj(t,e,r){let n=t.rules.findIndex(o=>o.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function fj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=WR(e)),t.validateSchema=this.compile(e,!0))}var pj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function WR(t){return{anyOf:[t,pj]}}});var KR=C(pp=>{"use strict";Object.defineProperty(pp,"__esModule",{value:!0});var hj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};pp.default=hj});var QR=C(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.callRef=Mn.getValidate=void 0;var mj=ds(),JR=wt(),rt=j(),Ao=fr(),YR=Cc(),Mc=B(),gj={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=YR.resolveRef.call(c,u,o,r);if(d===void 0)throw new mj.default(n.opts.uriResolver,o,r);if(d instanceof YR.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return $c(t,s,i,i.$async);let m=e.scopeValue("root",{ref:u});return $c(t,(0,rt._)`${m}.validate`,u,u.$async)}function f(m){let h=XR(t,m);$c(t,h,m,m.$async)}function p(m){let h=e.scopeValue("schema",a.code.source===!0?{ref:m,code:(0,rt.stringify)(m)}:{ref:m}),g=e.name("valid"),v=t.subschema({schema:m,dataTypes:[],schemaPath:rt.nil,topSchemaRef:h,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function XR(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,rt._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Mn.getValidate=XR;function $c(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?Ao.default.this:rt.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let m=o.let("valid");o.try(()=>{o.code((0,rt._)`await ${(0,JR.callValidateCode)(t,e,u)}`),p(e),s||o.assign(m,!0)},h=>{o.if((0,rt._)`!(${h} instanceof ${i.ValidationError})`,()=>o.throw(h)),f(h),s||o.assign(m,!1)}),t.ok(m)}function l(){t.result((0,JR.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(m){let h=(0,rt._)`${m}.errors`;o.assign(Ao.default.vErrors,(0,rt._)`${Ao.default.vErrors} === null ? ${h} : ${Ao.default.vErrors}.concat(${h})`),o.assign(Ao.default.errors,(0,rt._)`${Ao.default.vErrors}.length`)}function p(m){var h;if(!i.opts.unevaluated)return;let g=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Mc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,rt._)`${m}.evaluated.props`);i.props=Mc.mergeEvaluated.props(o,v,i.props,rt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Mc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,rt._)`${m}.evaluated.items`);i.items=Mc.mergeEvaluated.items(o,v,i.items,rt.Name)}}}Mn.callRef=$c;Mn.default=gj});var eC=C(hp=>{"use strict";Object.defineProperty(hp,"__esModule",{value:!0});var yj=KR(),vj=QR(),_j=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",yj.default,vj.default];hp.default=_j});var tC=C(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var Ic=j(),Vr=Ic.operators,Oc={maximum:{okStr:"<=",ok:Vr.LTE,fail:Vr.GT},minimum:{okStr:">=",ok:Vr.GTE,fail:Vr.LT},exclusiveMaximum:{okStr:"<",ok:Vr.LT,fail:Vr.GTE},exclusiveMinimum:{okStr:">",ok:Vr.GT,fail:Vr.LTE}},Sj={message:({keyword:t,schemaCode:e})=>(0,Ic.str)`must be ${Oc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Ic._)`{comparison: ${Oc[t].okStr}, limit: ${e}}`},wj={keyword:Object.keys(Oc),type:"number",schemaType:"number",$data:!0,error:Sj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Ic._)`${r} ${Oc[e].fail} ${n} || isNaN(${r})`)}};mp.default=wj});var rC=C(gp=>{"use strict";Object.defineProperty(gp,"__esModule",{value:!0});var ms=j(),bj={message:({schemaCode:t})=>(0,ms.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ms._)`{multipleOf: ${t}}`},Rj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:bj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,ms._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,ms._)`${s} !== parseInt(${s})`;t.fail$data((0,ms._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};gp.default=Rj});var oC=C(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});function nC(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}yp.default=nC;nC.code='require("ajv/dist/runtime/ucs2length").default'});var iC=C(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var $n=j(),Cj=B(),Pj=oC(),xj={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,$n.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,$n._)`{limit: ${t}}`},kj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:xj,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?$n.operators.GT:$n.operators.LT,s=o.opts.unicode===!1?(0,$n._)`${r}.length`:(0,$n._)`${(0,Cj.useFunc)(t.gen,Pj.default)}(${r})`;t.fail$data((0,$n._)`${s} ${i} ${n}`)}};vp.default=kj});var sC=C(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var Ej=wt(),Tj=B(),Mo=j(),Aj={message:({schemaCode:t})=>(0,Mo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Mo._)`{pattern: ${t}}`},Mj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Aj,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,Mo._)`new RegExp`:(0,Tj.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,Mo._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,Mo._)`!${d}`)}else{let c=(0,Ej.usePattern)(t,o);t.fail$data((0,Mo._)`!${c}.test(${r})`)}}};_p.default=Mj});var aC=C(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var gs=j(),$j={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,gs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,gs._)`{limit: ${t}}`},Ij={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:$j,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?gs.operators.GT:gs.operators.LT;t.fail$data((0,gs._)`Object.keys(${r}).length ${o} ${n}`)}};Sp.default=Ij});var cC=C(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var ys=wt(),vs=j(),Oj=B(),zj={message:({params:{missingProperty:t}})=>(0,vs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,vs._)`{missingProperty: ${t}}`},Nj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:zj,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:m}=t.it;for(let h of r)if(p?.[h]===void 0&&!m.has(h)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${h}" is not defined at "${g}" (strictRequired)`;(0,Oj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(vs.nil,l);else for(let p of r)(0,ys.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let m=e.let("valid",!0);t.block$data(m,()=>f(p,m)),t.ok(m)}else e.if((0,ys.checkMissingProp)(t,r,p)),(0,ys.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ys.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,m){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(m,(0,ys.propertyInData)(e,o,p,a.ownProperties)),e.if((0,vs.not)(m),()=>{t.error(),e.break()})},vs.nil)}}};wp.default=Nj});var uC=C(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var _s=j(),Dj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,_s.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,_s._)`{limit: ${t}}`},Lj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Dj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?_s.operators.GT:_s.operators.LT;t.fail$data((0,_s._)`${r}.length ${o} ${n}`)}};bp.default=Lj});var zc=C(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var dC=Bf();dC.code='require("ajv/dist/runtime/equal").default';Rp.default=dC});var lC=C(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var Cp=is(),De=j(),jj=B(),Fj=zc(),Uj={message:({params:{i:t,j:e}})=>(0,De.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,De._)`{i: ${t}, j: ${e}}`},qj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Uj,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,Cp.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,De._)`${s} === false`),t.ok(c);function d(){let m=e.let("i",(0,De._)`${r}.length`),h=e.let("j");t.setParams({i:m,j:h}),e.assign(c,!0),e.if((0,De._)`${m} > 1`,()=>(l()?f:p)(m,h))}function l(){return u.length>0&&!u.some(m=>m==="object"||m==="array")}function f(m,h){let g=e.name("item"),v=(0,Cp.checkDataTypes)(u,g,a.opts.strictNumbers,Cp.DataType.Wrong),w=e.const("indices",(0,De._)`{}`);e.for((0,De._)`;${m}--;`,()=>{e.let(g,(0,De._)`${r}[${m}]`),e.if(v,(0,De._)`continue`),u.length>1&&e.if((0,De._)`typeof ${g} == "string"`,(0,De._)`${g} += "_"`),e.if((0,De._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(h,(0,De._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,De._)`${w}[${g}] = ${m}`)})}function p(m,h){let g=(0,jj.useFunc)(e,Fj.default),v=e.name("outer");e.label(v).for((0,De._)`;${m}--;`,()=>e.for((0,De._)`${h} = ${m}; ${h}--;`,()=>e.if((0,De._)`${g}(${r}[${m}], ${r}[${h}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Pp.default=qj});var fC=C(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var xp=j(),Hj=B(),Gj=zc(),Zj={message:"must be equal to constant",params:({schemaCode:t})=>(0,xp._)`{allowedValue: ${t}}`},Bj={keyword:"const",$data:!0,error:Zj,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,xp._)`!${(0,Hj.useFunc)(e,Gj.default)}(${r}, ${o})`):t.fail((0,xp._)`${i} !== ${r}`)}};kp.default=Bj});var pC=C(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var Ss=j(),Wj=B(),Vj=zc(),Kj={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Ss._)`{allowedValues: ${t}}`},Jj={keyword:"enum",schemaType:"array",$data:!0,error:Kj,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,Wj.useFunc)(e,Vj.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,Ss.or)(...o.map((m,h)=>f(p,h)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,Ss._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,m){let h=o[m];return typeof h=="object"&&h!==null?(0,Ss._)`${u()}(${r}, ${p}[${m}])`:(0,Ss._)`${r} === ${h}`}}};Ep.default=Jj});var hC=C(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Yj=tC(),Xj=rC(),Qj=iC(),e1=sC(),t1=aC(),r1=cC(),n1=uC(),o1=lC(),i1=fC(),s1=pC(),a1=[Yj.default,Xj.default,Qj.default,e1.default,t1.default,r1.default,n1.default,o1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},i1.default,s1.default];Tp.default=a1});var Mp=C(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});ws.validateAdditionalItems=void 0;var In=j(),Ap=B(),c1={message:({params:{len:t}})=>(0,In.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,In._)`{limit: ${t}}`},u1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:c1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Ap.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}mC(t,n)}};function mC(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,In._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,In._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,Ap.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,In._)`${a} <= ${e.length}`);r.if((0,In.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:Ap.Type.Num},u),s.allErrors||r.if((0,In.not)(u),()=>r.break())})}}ws.validateAdditionalItems=mC;ws.default=u1});var $p=C(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});bs.validateTuple=void 0;var gC=j(),Nc=B(),d1=wt(),l1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return yC(t,"additionalItems",e);r.items=!0,!(0,Nc.alwaysValidSchema)(r,e)&&t.ok((0,d1.validateArray)(t))}};function yC(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=Nc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,gC._)`${i}.length`);r.forEach((l,f)=>{(0,Nc.alwaysValidSchema)(a,l)||(n.if((0,gC._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,m=r.length,h=m===l.minItems&&(m===l.maxItems||l[e]===!1);if(f.strictTuples&&!h){let g=`"${s}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,Nc.checkStrictMode)(a,g,f.strictTuples)}}}bs.validateTuple=yC;bs.default=l1});var vC=C(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var f1=$p(),p1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,f1.validateTuple)(t,"items")};Ip.default=p1});var SC=C(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var _C=j(),h1=B(),m1=wt(),g1=Mp(),y1={message:({params:{len:t}})=>(0,_C.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,_C._)`{limit: ${t}}`},v1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:y1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,h1.alwaysValidSchema)(n,e)&&(o?(0,g1.validateAdditionalItems)(t,o):t.ok((0,m1.validateArray)(t)))}};Op.default=v1});var wC=C(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var Rt=j(),Dc=B(),_1={message:({params:{min:t,max:e}})=>e===void 0?(0,Rt.str)`must contain at least ${t} valid item(s)`:(0,Rt.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Rt._)`{minContains: ${t}}`:(0,Rt._)`{minContains: ${t}, maxContains: ${e}}`},S1={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,Rt._)`${o}.length`);if(t.setParams({min:s,max:a}),a===void 0&&s===0){(0,Dc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Dc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Dc.alwaysValidSchema)(i,r)){let h=(0,Rt._)`${d} >= ${s}`;a!==void 0&&(h=(0,Rt._)`${h} && ${d} <= ${a}`),t.pass(h);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,Rt._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let h=e.name("_valid"),g=e.let("count",0);p(h,()=>e.if(h,()=>m(g)))}function p(h,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Dc.Type.Num,compositeRule:!0},h),g()})}function m(h){e.code((0,Rt._)`${h}++`),a===void 0?e.if((0,Rt._)`${h} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Rt._)`${h} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Rt._)`${h} >= ${s}`,()=>e.assign(l,!0)))}}};zp.default=S1});var CC=C(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.validateSchemaDeps=Yt.validatePropertyDeps=Yt.error=void 0;var Np=j(),w1=B(),Rs=wt();Yt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Np.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Np._)`{property: ${t},
|
|
5
|
+
|| ${s} === "boolean" || ${o} === null`).assign(a,(0,L._)`[${o}]`)}}}function GN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,L._)`${e} !== undefined`,()=>t.assign((0,L._)`${e}[${r}]`,n))}function Gf(t,e,r,n=ko.Correct){let o=n===ko.Correct?L.operators.EQ:L.operators.NEQ,i;switch(t){case"null":return(0,L._)`${e} ${o} null`;case"array":i=(0,L._)`Array.isArray(${e})`;break;case"object":i=(0,L._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,L._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,L._)`typeof ${e} ${o} ${t}`}return n===ko.Correct?i:(0,L.not)(i);function s(a=L.nil){return(0,L.and)((0,L._)`typeof ${e} == "number"`,a,r?(0,L._)`isFinite(${e})`:L.nil)}}Ue.checkDataType=Gf;function Zf(t,e,r,n){if(t.length===1)return Gf(t[0],e,r,n);let o,i=(0,Zb.toHash)(t);if(i.array&&i.object){let s=(0,L._)`typeof ${e} != "object"`;o=i.null?s:(0,L._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else o=L.nil;i.number&&delete i.integer;for(let s in i)o=(0,L.and)(o,Gf(s,e,r,n));return o}Ue.checkDataTypes=Zf;var ZN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,L._)`{type: ${t}}`:(0,L._)`{type: ${e}}`};function Bf(t){let e=BN(t);(0,jN.reportError)(e,ZN)}Ue.reportTypeError=Bf;function BN(t){let{gen:e,data:r,schema:n}=t,o=(0,Zb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Kb=C(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.assignDefaults=void 0;var Eo=j(),WN=B();function VN(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Vb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Vb(t,i,o.default))}Sc.assignDefaults=VN;function Vb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Eo._)`${i}${(0,Eo.getProperty)(e)}`;if(o){(0,WN.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Eo._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Eo._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Eo._)`${a} = ${(0,Eo.stringify)(r)}`)}});var wt=C(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.validateUnion=re.validateArray=re.usePattern=re.callValidateCode=re.schemaProperties=re.allSchemaProperties=re.noPropertyInData=re.propertyInData=re.isOwnProperty=re.hasPropFunc=re.reportMissingProp=re.checkMissingProp=re.checkReportMissingProp=void 0;var de=j(),Wf=B(),Wr=hr(),KN=B();function JN(t,e){let{gen:r,data:n,it:o}=t;r.if(Kf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=JN;function YN({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Kf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=YN;function XN(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=XN;function Jb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Jb;function Vf(t,e,r){return(0,de._)`${Jb(t)}.call(${e}, ${r})`}re.isOwnProperty=Vf;function QN(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Vf(t,e,r)}`:o}re.propertyInData=QN;function Kf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Vf(t,e,r))):o}re.noPropertyInData=Kf;function Yb(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=Yb;function eD(t,e){return Yb(e).filter(r=>!(0,Wf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=eD;function tD({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:s},a,c,u){let d=u?(0,de._)`${t}, ${e}, ${n}${o}`:e,l=[[Wr.default.instancePath,(0,de.strConcat)(Wr.default.instancePath,i)],[Wr.default.parentData,s.parentData],[Wr.default.parentDataProperty,s.parentDataProperty],[Wr.default.rootData,Wr.default.rootData]];s.opts.dynamicRef&&l.push([Wr.default.dynamicAnchors,Wr.default.dynamicAnchors]);let f=(0,de._)`${d}, ${r.object(...l)}`;return c!==de.nil?(0,de._)`${a}.call(${c}, ${f})`:(0,de._)`${a}(${f})`}re.callValidateCode=tD;var rD=(0,de._)`new RegExp`;function nD({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"?rD:(0,KN.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=nD;function oD(t){let{gen:e,data:r,keyword:n,it:o}=t,i=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return s(()=>e.assign(a,!1)),a}return e.var(i,!0),s(()=>e.break()),i;function s(a){let c=e.const("len",(0,de._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:Wf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=oD;function iD(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Wf.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let s=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let d=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(s,(0,de._)`${s} || ${a}`),t.mergeValidEvaluated(d,a)||e.if((0,de.not)(s))})),t.result(s,()=>t.reset(),()=>t.error(!0))}re.validateUnion=iD});var eR=C(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.validateKeywordUsage=Kt.validSchemaType=Kt.funcKeywordCode=Kt.macroKeywordCode=void 0;var Ge=j(),An=hr(),sD=wt(),aD=ss();function cD(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=Qb(r,n,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Ge.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Kt.macroKeywordCode=cD;function uD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;lD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=Qb(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)h(),e.modifying&&Xb(t),g(()=>t.error());else{let v=e.async?p():m();e.modifying&&Xb(t),g(()=>dD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,Ge._)`await `),w=>n.assign(l,!1).if((0,Ge._)`${w} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Ge._)`${w}.errors`),()=>n.throw(w))),v}function m(){let v=(0,Ge._)`${d}.errors`;return n.assign(v,null),h(Ge.nil),v}function h(v=e.async?(0,Ge._)`await `:Ge.nil){let w=c.opts.passContext?An.default.this:An.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ge._)`${v}${(0,sD.callValidateCode)(t,d,w,b)}`,e.modifying)}function g(v){var w;n.if((0,Ge.not)((w=e.valid)!==null&&w!==void 0?w:l),v)}}Kt.funcKeywordCode=uD;function Xb(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ge._)`${n.parentData}[${n.parentDataProperty}]`))}function dD(t,e){let{gen:r}=t;r.if((0,Ge._)`Array.isArray(${e})`,()=>{r.assign(An.default.vErrors,(0,Ge._)`${An.default.vErrors} === null ? ${e} : ${An.default.vErrors}.concat(${e})`).assign(An.default.errors,(0,Ge._)`${An.default.vErrors}.length`),(0,aD.extendErrors)(t)},()=>t.error())}function lD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function Qb(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ge.stringify)(r)})}function fD(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")}Kt.validSchemaType=fD;function pD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Kt.validateKeywordUsage=pD});var rR=C(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.extendSubschemaMode=Vr.extendSubschemaData=Vr.getSubschema=void 0;var Jt=j(),tR=B();function hD(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,Jt._)`${t.schemaPath}${(0,Jt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Jt._)`${t.schemaPath}${(0,Jt.getProperty)(e)}${(0,Jt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,tR.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Vr.getSubschema=hD;function mD(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,Jt._)`${e.data}${(0,Jt.getProperty)(r)}`,!0);c(f),t.errorPath=(0,Jt.str)`${u}${(0,tR.getErrorPath)(r,n,l.jsPropertySyntax)}`,t.parentDataProperty=(0,Jt._)`${r}`,t.dataPathArr=[...d,t.parentDataProperty]}if(o!==void 0){let u=o instanceof Jt.Name?o:a.let("data",o,!0);c(u),s!==void 0&&(t.propertyName=s)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Vr.extendSubschemaData=mD;function gD(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Vr.extendSubschemaMode=gD});var Jf=C((A5,nR)=>{"use strict";nR.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 iR=C((M5,oR)=>{"use strict";var Kr=oR.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};wc(e,n,o,t,"",t)};Kr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Kr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Kr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Kr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function wc(t,e,r,n,o,i,s,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,i,s,a,c,u);for(var d in n){var l=n[d];if(Array.isArray(l)){if(d in Kr.arrayKeywords)for(var f=0;f<l.length;f++)wc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Kr.propsKeywords){if(l&&typeof l=="object")for(var p in l)wc(t,e,r,l[p],o+"/"+d+"/"+yD(p),i,o,d,n,p)}else(d in Kr.keywords||t.allKeys&&!(d in Kr.skipKeywords))&&wc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function yD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var cs=C(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.getSchemaRefs=tt.resolveUrl=tt.normalizeId=tt._getFullPath=tt.getFullPath=tt.inlineRef=void 0;var vD=B(),_D=Jf(),SD=iR(),wD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function bD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Yf(t):e?sR(t)<=e:!1}tt.inlineRef=bD;var RD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Yf(t){for(let e in t){if(RD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Yf)||typeof r=="object"&&Yf(r))return!0}return!1}function sR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!wD.has(r)&&(typeof t[r]=="object"&&(0,vD.eachItem)(t[r],n=>e+=sR(n)),e===1/0))return 1/0}return e}function aR(t,e="",r){r!==!1&&(e=To(e));let n=t.parse(e);return cR(t,n)}tt.getFullPath=aR;function cR(t,e){return t.serialize(e).split("#")[0]+"#"}tt._getFullPath=cR;var CD=/#\/?$/;function To(t){return t?t.replace(CD,""):""}tt.normalizeId=To;function PD(t,e,r){return r=To(r),t.resolve(e,r)}tt.resolveUrl=PD;var xD=/^[a-z_][-a-z0-9._]*$/i;function kD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=To(t[r]||e),i={"":o},s=aR(n,o,!1),a={},c=new Set;return SD(t,{allKeys:!0},(l,f,p,m)=>{if(m===void 0)return;let h=s+f,g=i[m];typeof l[r]=="string"&&(g=v.call(this,l[r])),w.call(this,l.$anchor),w.call(this,l.$dynamicAnchor),i[f]=g;function v(b){let x=this.opts.uriResolver.resolve;if(b=To(g?x(g,b):b),c.has(b))throw d(b);c.add(b);let S=this.refs[b];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(l,S.schema,b):b!==To(h)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=h),b}function w(b){if(typeof b=="string"){if(!xD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!_D(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}tt.getSchemaRefs=kD});var ls=C(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.getData=Jr.KeywordCxt=Jr.validateFunctionCode=void 0;var pR=qb(),uR=as(),Qf=Hf(),bc=as(),ED=Kb(),ds=eR(),Xf=rR(),T=j(),z=hr(),TD=cs(),mr=B(),us=ss();function AD(t){if(gR(t)&&(yR(t),mR(t))){ID(t);return}hR(t,()=>(0,pR.topBoolOrEmptySchema)(t))}Jr.validateFunctionCode=AD;function hR({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,T._)`${z.default.data}, ${z.default.valCxt}`,n.$async,()=>{t.code((0,T._)`"use strict"; ${dR(r,o)}`),$D(t,o),t.code(i)}):t.func(e,(0,T._)`${z.default.data}, ${MD(o)}`,n.$async,()=>t.code(dR(r,o)).code(i))}function MD(t){return(0,T._)`{${z.default.instancePath}="", ${z.default.parentData}, ${z.default.parentDataProperty}, ${z.default.rootData}=${z.default.data}${t.dynamicRef?(0,T._)`, ${z.default.dynamicAnchors}={}`:T.nil}}={}`}function $D(t,e){t.if(z.default.valCxt,()=>{t.var(z.default.instancePath,(0,T._)`${z.default.valCxt}.${z.default.instancePath}`),t.var(z.default.parentData,(0,T._)`${z.default.valCxt}.${z.default.parentData}`),t.var(z.default.parentDataProperty,(0,T._)`${z.default.valCxt}.${z.default.parentDataProperty}`),t.var(z.default.rootData,(0,T._)`${z.default.valCxt}.${z.default.rootData}`),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`${z.default.valCxt}.${z.default.dynamicAnchors}`)},()=>{t.var(z.default.instancePath,(0,T._)`""`),t.var(z.default.parentData,(0,T._)`undefined`),t.var(z.default.parentDataProperty,(0,T._)`undefined`),t.var(z.default.rootData,z.default.data),e.dynamicRef&&t.var(z.default.dynamicAnchors,(0,T._)`{}`)})}function ID(t){let{schema:e,opts:r,gen:n}=t;hR(t,()=>{r.$comment&&e.$comment&&_R(t),LD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&OD(t),vR(t),UD(t)})}function OD(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,T._)`${r}.evaluated`),e.if((0,T._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,T._)`${t.evaluated}.props`,(0,T._)`undefined`)),e.if((0,T._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,T._)`${t.evaluated}.items`,(0,T._)`undefined`))}function dR(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,T._)`/*# sourceURL=${r} */`:T.nil}function zD(t,e){if(gR(t)&&(yR(t),mR(t))){ND(t,e);return}(0,pR.boolOrEmptySchema)(t,e)}function mR({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 gR(t){return typeof t.schema!="boolean"}function ND(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&_R(t),jD(t),FD(t);let i=n.const("_errs",z.default.errors);vR(t,i),n.var(e,(0,T._)`${i} === ${z.default.errors}`)}function yR(t){(0,mr.checkUnknownRules)(t),DD(t)}function vR(t,e){if(t.opts.jtd)return lR(t,[],!1,e);let r=(0,uR.getSchemaTypes)(t.schema),n=(0,uR.coerceAndCheckDataType)(t,r);lR(t,r,!n,e)}function DD(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 LD(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 jD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,TD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function FD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function _R({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,T._)`${z.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,T.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,T._)`${z.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function UD(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,T._)`${z.default.errors} === 0`,()=>e.return(z.default.data),()=>e.throw((0,T._)`new ${o}(${z.default.vErrors})`)):(e.assign((0,T._)`${n}.errors`,z.default.vErrors),i.unevaluated&&qD(t),e.return((0,T._)`${z.default.errors} === 0`))}function qD({gen:t,evaluated:e,props:r,items:n}){r instanceof T.Name&&t.assign((0,T._)`${e}.props`,r),n instanceof T.Name&&t.assign((0,T._)`${e}.items`,n)}function lR(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(()=>wR(t,"$ref",d.all.$ref.definition));return}c.jtd||HD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,Qf.shouldUseGroup)(i,f)&&(f.type?(o.if((0,bc.checkDataType)(f.type,s,c.strictNumbers)),fR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,bc.reportTypeError)(t)),o.endIf()):fR(t,f),a||o.if((0,T._)`${z.default.errors} === ${n||0}`))}}function fR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,ED.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,Qf.shouldUseRule)(n,i)&&wR(t,i.keyword,i.definition,e.type)})}function HD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(GD(t,e),t.opts.allowUnionTypes||ZD(t,e),BD(t,t.dataTypes))}function GD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{SR(t.dataTypes,r)||ep(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),VD(t,e)}}function ZD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&ep(t,"use allowUnionTypes to allow union type keyword")}function BD(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Qf.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>WD(e,s))&&ep(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function WD(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function SR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function VD(t,e){let r=[];for(let n of t.dataTypes)SR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function ep(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,mr.checkStrictMode)(t,e,t.opts.strictTypes)}var Rc=class{constructor(e,r,n){if((0,ds.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,mr.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",bR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,ds.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",z.default.errors))}result(e,r,n){this.failResult((0,T.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,T.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,T._)`${r} !== undefined && (${(0,T.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?us.reportExtraError:us.reportError)(this,this.def.error,r)}$dataError(){(0,us.reportError)(this,this.def.$dataError||us.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,us.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=T.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=T.nil,r=T.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:s}=this;n.if((0,T.or)((0,T._)`${o} === undefined`,r)),e!==T.nil&&n.assign(e,!0),(i.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==T.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,T.or)(s(),a());function s(){if(n.length){if(!(r instanceof T.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,T._)`${(0,bc.checkDataTypes)(c,r,i.opts.strictNumbers,bc.DataType.Wrong)}`}return T.nil}function a(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,T._)`!${c}(${r})`}return T.nil}}subschema(e,r){let n=(0,Xf.getSubschema)(this.it,e);(0,Xf.extendSubschemaData)(n,this.it,e),(0,Xf.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return 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,T.Name)),!0}};Jr.KeywordCxt=Rc;function wR(t,e,r,n){let o=new Rc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,ds.funcKeywordCode)(o,r):"macro"in r?(0,ds.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,ds.funcKeywordCode)(o,r)}var KD=/^\/(?:[^~]|~0|~1)*$/,JD=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function bR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!KD.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=JD.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let d=+u[1];if(o=u[2],o==="#"){if(d>=e)throw new Error(c("property/index",d));return n[e-d]}if(d>e)throw new Error(c("data",d));if(i=r[e-d],!o)return i}let s=i,a=o.split("/");for(let u of a)u&&(i=(0,T._)`${i}${(0,T.getProperty)((0,mr.unescapeJsonPointer)(u))}`,s=(0,T._)`${s} && ${i}`);return s;function c(u,d){return`Cannot access ${u} ${d} levels up, current level is ${e}`}}Jr.getData=bR});var Cc=C(rp=>{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});var tp=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};rp.default=tp});var fs=C(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});var np=cs(),op=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,np.resolveUrl)(e,r,n),this.missingSchema=(0,np.normalizeId)((0,np.getFullPath)(e,this.missingRef))}};ip.default=op});var xc=C(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.resolveSchema=bt.getCompilingSchema=bt.resolveRef=bt.compileSchema=bt.SchemaEnv=void 0;var It=j(),YD=Cc(),Mn=hr(),Ot=cs(),RR=B(),XD=ls(),Ao=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,Ot.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};bt.SchemaEnv=Ao;function ap(t){let e=CR.call(this,t);if(e)return e;let r=(0,Ot.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,s=new It.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),a;t.$async&&(a=s.scopeValue("Error",{ref:YD.default,code:(0,It._)`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:[It.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,It.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:It.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,It._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(t),(0,XD.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:m,items:h}=u;p.evaluated={props:m instanceof It.Name?void 0:m,items:h instanceof It.Name?void 0:h,dynamicProps:m instanceof It.Name,dynamicItems:h instanceof It.Name},p.source&&(p.source.evaluated=(0,It.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)}}bt.compileSchema=ap;function QD(t,e,r){var n;r=(0,Ot.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let i=rL.call(this,t,r);if(i===void 0){let s=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;s&&(i=new Ao({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=eL.call(this,i)}bt.resolveRef=QD;function eL(t){return(0,Ot.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:ap.call(this,t)}function CR(t){for(let e of this._compilations)if(tL(e,t))return e}bt.getCompilingSchema=CR;function tL(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function rL(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Pc.call(this,t,e)}function Pc(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Ot._getFullPath)(this.opts.uriResolver,r),o=(0,Ot.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return sp.call(this,r,t);let i=(0,Ot.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=Pc.call(this,t,s);return typeof a?.schema!="object"?void 0:sp.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||ap.call(this,s),i===(0,Ot.normalizeId)(e)){let{schema:a}=s,{schemaId:c}=this.opts,u=a[c];return u&&(o=(0,Ot.resolveUrl)(this.opts.uriResolver,o,u)),new Ao({schema:a,schemaId:c,root:t,baseId:o})}return sp.call(this,r,s)}}bt.resolveSchema=Pc;var nL=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function sp(t,{baseId:e,schema:r,root:n}){var o;if(((o=t.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,RR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!nL.has(a)&&u&&(e=(0,Ot.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,RR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Ot.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Pc.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Ao({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var PR=C((D5,oL)=>{oL.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var dp=C((L5,MR)=>{"use strict";var iL=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),kR=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),cp=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),ER=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),sL=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function up(t){let e="",r=0,n=0;for(n=0;n<t.length;n++)if(r=t[n].charCodeAt(0),r!==48){if(!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n<t.length;n++){if(r=t[n].charCodeAt(0),!(r>=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var aL=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function xR(t){return t.length=0,!0}function cL(t,e,r){if(t.length){let n=up(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function uL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=cL;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=xR}else{o.push(u);continue}}return o.length&&(a===xR?r.zone=o.join(""):s?n.push(o.join("")):n.push(up(o))),r.address=n.join(""),r}function TR(t){if(dL(t,":")<2)return{host:t,isIPV6:!1};let e=uL(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 dL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function lL(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 fL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},pL=/[@/?#:]/g,hL=/[@/?#]/g;function AR(t,e){let r=e?hL:pL;return r.lastIndex=0,t.replace(r,n=>fL[n])}function mL(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n<t.length;n++){if(t[n]==="%"&&n+2<t.length){let o=t.slice(n+1,n+3);if(cp(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&ER(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function gL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(cp(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&ER(i)?e+=i:e+="%"+o,r+=2;continue}}sL(t[r])?e+=t[r]:e+=escape(t[r])}return e}function yL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(cp(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function vL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!kR(r)){let n=TR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=AR(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}MR.exports={nonSimpleDomain:aL,recomposeAuthority:vL,reescapeHostDelimiters:AR,normalizePercentEncoding:mL,normalizePathEncoding:gL,escapePreservingEscapes:yL,removeDotSegments:lL,isIPv4:kR,isUUID:iL,normalizeIPv6:TR,stringArrayToHexStripped:up}});var NR=C((j5,zR)=>{"use strict";var{isUUID:_L}=dp(),SL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,wL=["http","https","ws","wss","urn","urn:uuid"];function bL(t){return wL.indexOf(t)!==-1}function lp(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function $R(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function IR(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 RL(t){return t.secure=lp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function CL(t){if((t.port===(lp(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function PL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(SL);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,i=fp(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function xL(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),o=`${r}:${e.nid||n}`,i=fp(o);i&&(t=i.serialize(t,e));let s=t,a=t.nss;return s.path=`${n||e.nid}:${a}`,e.skipEscape=!0,s}function kL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!_L(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function EL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var OR={scheme:"http",domainHost:!0,parse:$R,serialize:IR},TL={scheme:"https",domainHost:OR.domainHost,parse:$R,serialize:IR},kc={scheme:"ws",domainHost:!0,parse:RL,serialize:CL},AL={scheme:"wss",domainHost:kc.domainHost,parse:kc.parse,serialize:kc.serialize},ML={scheme:"urn",parse:PL,serialize:xL,skipNormalize:!0},$L={scheme:"urn:uuid",parse:kL,serialize:EL,skipNormalize:!0},Ec={http:OR,https:TL,ws:kc,wss:AL,urn:ML,"urn:uuid":$L};Object.setPrototypeOf(Ec,null);function fp(t){return t&&(Ec[t]||Ec[t.toLowerCase()])||void 0}zR.exports={wsIsSecure:lp,SCHEMES:Ec,isValidSchemeName:bL,getSchemeHandler:fp}});var UR=C((F5,Mc)=>{"use strict";var{normalizeIPv6:IL,removeDotSegments:ps,recomposeAuthority:OL,normalizePercentEncoding:zL,normalizePathEncoding:NL,escapePreservingEscapes:DL,reescapeHostDelimiters:LL,isIPv4:jL,nonSimpleDomain:FL}=dp(),{SCHEMES:UL,getSchemeHandler:LR}=NR();function qL(t,e){return typeof t=="string"?t=KL(t,e):typeof t=="object"&&(t=Ac($n(t,e),e)),t}function HL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Tc(t,n),{parsed:s,malformedAuthorityOrPort:a}=Tc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=jR(o,s,n,!0);return n.skipEscape=!0,$n(c,n)}function jR(t,e,r,n){let o={};return n||(t=Ac($n(t,r),r),e=Ac($n(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ps(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ps(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ps(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=ps(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function GL(t,e,r){let n=DR(t,r),o=DR(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=LR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=zL(r.path):(r.path=DL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=OL(r);if(s!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(s),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(a=ps(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var ZL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,BL=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,WL=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function VL(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function Tc(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let s=t.match(BL);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(WL);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(ZL);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=VL(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(jL(n.host)===!1){let f=IL(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=LR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&FL(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=LL(unescape(n.host),i))),n.path&&(n.path=NL(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}d&&d.parse&&d.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:o}}function Ac(t,e){return Tc(t,e).parsed}function KL(t,e){return FR(t,e).normalized}function FR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Tc(t,e);return{normalized:n?t:$n(r,e),malformedAuthorityOrPort:n}}function DR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=FR(t,e);return n?void 0:r}if(typeof t=="object")return $n(t,e)}var pp={SCHEMES:UL,normalize:qL,resolve:HL,resolveComponent:jR,equal:GL,serialize:$n,parse:Ac};Mc.exports=pp;Mc.exports.default=pp;Mc.exports.fastUri=pp});var HR=C(hp=>{"use strict";Object.defineProperty(hp,"__esModule",{value:!0});var qR=UR();qR.code='require("ajv/dist/runtime/uri").default';hp.default=qR});var YR=C(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CodeGen=Ne.Name=Ne.nil=Ne.stringify=Ne.str=Ne._=Ne.KeywordCxt=void 0;var JL=ls();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return JL.KeywordCxt}});var Mo=j();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Mo._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Mo.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Mo.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Mo.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Mo.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return Mo.CodeGen}});var YL=Cc(),VR=fs(),XL=qf(),hs=xc(),QL=j(),ms=cs(),$c=as(),gp=B(),GR=PR(),ej=HR(),KR=(t,e)=>new RegExp(t,e);KR.code="new RegExp";var tj=["removeAdditional","useDefaults","coerceTypes"],rj=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),nj={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."},oj={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},ZR=200;function ij(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,m,h,g,v,w,b,x,S,R,I,ne,fe;let Pe=t.strict,sn=(e=t.code)===null||e===void 0?void 0:e.optimize,an=sn===!0||sn===void 0?1:sn||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:KR,br=(o=t.uriResolver)!==null&&o!==void 0?o:ej.default;return{strictSchema:(s=(i=t.strictSchema)!==null&&i!==void 0?i:Pe)!==null&&s!==void 0?s:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:Pe)!==null&&c!==void 0?c:!0,strictTypes:(d=(u=t.strictTypes)!==null&&u!==void 0?u:Pe)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=t.strictTuples)!==null&&l!==void 0?l:Pe)!==null&&f!==void 0?f:"log",strictRequired:(m=(p=t.strictRequired)!==null&&p!==void 0?p:Pe)!==null&&m!==void 0?m:!1,code:t.code?{...t.code,optimize:an,regExp:lt}:{optimize:an,regExp:lt},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:ZR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:ZR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(R=t.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(I=t.validateFormats)!==null&&I!==void 0?I:!0,unicodeRegExp:(ne=t.unicodeRegExp)!==null&&ne!==void 0?ne:!0,int32range:(fe=t.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:br}}var gs=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...ij(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new QL.ValueScope({scope:{},prefixes:rj,es5:r,lines:n}),this.logger=lj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,XL.getRules)(),BR.call(this,nj,e,"NOT SUPPORTED"),BR.call(this,oj,e,"DEPRECATED","warn"),this._metaOpts=uj.call(this),e.formats&&aj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&cj.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),sj.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=GR;n==="id"&&(o={...GR},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 VR.default))throw l;return a.call(this,l),await c.call(this,l.missingSchema),s.call(this,d)}}function a({missingSchema:d,missingRef:l}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${l} cannot be resolved`)}async function c(d){let l=await u.call(this,d);this.refs[d]||await i.call(this,l.$schema),this.refs[d]||this.addSchema(l,d,r)}async function u(d){let l=this._loading[d];if(l)return l;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,o);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return r=(0,ms.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,e);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(e){let r;for(;typeof(r=WR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new hs.SchemaEnv({schema:{},schemaId:n});if(r=hs.resolveSchema.call(this,o,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=WR.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,ms.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(pj.call(this,n,r),!r)return(0,gp.eachItem)(n,i=>mp.call(this,i)),this;mj.call(this,r);let o={...r,type:(0,$c.getJSONTypes)(r.type),schemaType:(0,$c.getJSONTypes)(r.schemaType)};return(0,gp.eachItem)(n,o.type.length===0?i=>mp.call(this,i,o):i=>o.type.forEach(s=>mp.call(this,i,o,s))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===e);o>=0&&n.rules.splice(o,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let o of r){let i=o.split("/").slice(1),s=e;for(let a of i)s=s[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,d=s[a];u&&d&&(s[a]=JR(d))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:a}=this.opts;if(typeof e=="object")s=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,ms.normalizeId)(s||n);let u=ms.getSchemaRefs.call(this,e,n);return c=new hs.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):hs.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{hs.compileSchema.call(this,e)}finally{this.opts=r}}};gs.ValidationError=YL.default;gs.MissingRefError=VR.default;Ne.default=gs;function BR(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 WR(t){return t=(0,ms.normalizeId)(t),this.schemas[t]||this.refs[t]}function sj(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function aj(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function cj(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 uj(){let t={...this.opts};for(let e of tj)delete t[e];return t}var dj={log(){},warn(){},error(){}};function lj(t){if(t===!1)return dj;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 fj=/^[a-z_$][a-z0-9_$:-]*$/i;function pj(t,e){let{RULES:r}=this;if((0,gp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!fj.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function mp(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=o?i.post:i.rules.find(({type:c})=>c===r);if(s||(s={type:r,rules:[]},i.rules.push(s)),i.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,$c.getJSONTypes)(e.type),schemaType:(0,$c.getJSONTypes)(e.schemaType)}};e.before?hj.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 hj(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 mj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=JR(e)),t.validateSchema=this.compile(e,!0))}var gj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function JR(t){return{anyOf:[t,gj]}}});var XR=C(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var yj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};yp.default=yj});var rC=C(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.callRef=In.getValidate=void 0;var vj=fs(),QR=wt(),rt=j(),$o=hr(),eC=xc(),Ic=B(),_j={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=eC.resolveRef.call(c,u,o,r);if(d===void 0)throw new vj.default(n.opts.uriResolver,o,r);if(d instanceof eC.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Oc(t,s,i,i.$async);let m=e.scopeValue("root",{ref:u});return Oc(t,(0,rt._)`${m}.validate`,u,u.$async)}function f(m){let h=tC(t,m);Oc(t,h,m,m.$async)}function p(m){let h=e.scopeValue("schema",a.code.source===!0?{ref:m,code:(0,rt.stringify)(m)}:{ref:m}),g=e.name("valid"),v=t.subschema({schema:m,dataTypes:[],schemaPath:rt.nil,topSchemaRef:h,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function tC(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,rt._)`${r.scopeValue("wrapper",{ref:e})}.validate`}In.getValidate=tC;function Oc(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?$o.default.this:rt.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let m=o.let("valid");o.try(()=>{o.code((0,rt._)`await ${(0,QR.callValidateCode)(t,e,u)}`),p(e),s||o.assign(m,!0)},h=>{o.if((0,rt._)`!(${h} instanceof ${i.ValidationError})`,()=>o.throw(h)),f(h),s||o.assign(m,!1)}),t.ok(m)}function l(){t.result((0,QR.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(m){let h=(0,rt._)`${m}.errors`;o.assign($o.default.vErrors,(0,rt._)`${$o.default.vErrors} === null ? ${h} : ${$o.default.vErrors}.concat(${h})`),o.assign($o.default.errors,(0,rt._)`${$o.default.vErrors}.length`)}function p(m){var h;if(!i.opts.unevaluated)return;let g=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Ic.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,rt._)`${m}.evaluated.props`);i.props=Ic.mergeEvaluated.props(o,v,i.props,rt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Ic.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,rt._)`${m}.evaluated.items`);i.items=Ic.mergeEvaluated.items(o,v,i.items,rt.Name)}}}In.callRef=Oc;In.default=_j});var nC=C(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var Sj=XR(),wj=rC(),bj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Sj.default,wj.default];vp.default=bj});var oC=C(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var zc=j(),Yr=zc.operators,Nc={maximum:{okStr:"<=",ok:Yr.LTE,fail:Yr.GT},minimum:{okStr:">=",ok:Yr.GTE,fail:Yr.LT},exclusiveMaximum:{okStr:"<",ok:Yr.LT,fail:Yr.GTE},exclusiveMinimum:{okStr:">",ok:Yr.GT,fail:Yr.LTE}},Rj={message:({keyword:t,schemaCode:e})=>(0,zc.str)`must be ${Nc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,zc._)`{comparison: ${Nc[t].okStr}, limit: ${e}}`},Cj={keyword:Object.keys(Nc),type:"number",schemaType:"number",$data:!0,error:Rj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,zc._)`${r} ${Nc[e].fail} ${n} || isNaN(${r})`)}};_p.default=Cj});var iC=C(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var ys=j(),Pj={message:({schemaCode:t})=>(0,ys.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ys._)`{multipleOf: ${t}}`},xj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Pj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,ys._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,ys._)`${s} !== parseInt(${s})`;t.fail$data((0,ys._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};Sp.default=xj});var aC=C(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});function sC(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}wp.default=sC;sC.code='require("ajv/dist/runtime/ucs2length").default'});var cC=C(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var On=j(),kj=B(),Ej=aC(),Tj={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}}`},Aj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Tj,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,kj.useFunc)(t.gen,Ej.default)}(${r})`;t.fail$data((0,On._)`${s} ${i} ${n}`)}};bp.default=Aj});var uC=C(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var Mj=wt(),$j=B(),Io=j(),Ij={message:({schemaCode:t})=>(0,Io.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Io._)`{pattern: ${t}}`},Oj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Ij,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:s}=t,a=s.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=s.opts.code,u=c.code==="new RegExp"?(0,Io._)`new RegExp`:(0,$j.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,Io._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,Io._)`!${d}`)}else{let c=(0,Mj.usePattern)(t,o);t.fail$data((0,Io._)`!${c}.test(${r})`)}}};Rp.default=Oj});var dC=C(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var vs=j(),zj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,vs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,vs._)`{limit: ${t}}`},Nj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:zj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?vs.operators.GT:vs.operators.LT;t.fail$data((0,vs._)`Object.keys(${r}).length ${o} ${n}`)}};Cp.default=Nj});var lC=C(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var _s=wt(),Ss=j(),Dj=B(),Lj={message:({params:{missingProperty:t}})=>(0,Ss.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Ss._)`{missingProperty: ${t}}`},jj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Lj,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:m}=t.it;for(let h of r)if(p?.[h]===void 0&&!m.has(h)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${h}" is not defined at "${g}" (strictRequired)`;(0,Dj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(Ss.nil,l);else for(let p of r)(0,_s.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let m=e.let("valid",!0);t.block$data(m,()=>f(p,m)),t.ok(m)}else e.if((0,_s.checkMissingProp)(t,r,p)),(0,_s.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,_s.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,m){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(m,(0,_s.propertyInData)(e,o,p,a.ownProperties)),e.if((0,Ss.not)(m),()=>{t.error(),e.break()})},Ss.nil)}}};Pp.default=jj});var fC=C(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var ws=j(),Fj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ws.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ws._)`{limit: ${t}}`},Uj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Fj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ws.operators.GT:ws.operators.LT;t.fail$data((0,ws._)`${r}.length ${o} ${n}`)}};xp.default=Uj});var Dc=C(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});var pC=Jf();pC.code='require("ajv/dist/runtime/equal").default';kp.default=pC});var hC=C(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Ep=as(),De=j(),qj=B(),Hj=Dc(),Gj={message:({params:{i:t,j:e}})=>(0,De.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,De._)`{i: ${t}, j: ${e}}`},Zj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Gj,code(t){let{gen:e,data:r,$data:n,schema:o,parentSchema:i,schemaCode:s,it:a}=t;if(!n&&!o)return;let c=e.let("valid"),u=i.items?(0,Ep.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,De._)`${s} === false`),t.ok(c);function d(){let m=e.let("i",(0,De._)`${r}.length`),h=e.let("j");t.setParams({i:m,j:h}),e.assign(c,!0),e.if((0,De._)`${m} > 1`,()=>(l()?f:p)(m,h))}function l(){return u.length>0&&!u.some(m=>m==="object"||m==="array")}function f(m,h){let g=e.name("item"),v=(0,Ep.checkDataTypes)(u,g,a.opts.strictNumbers,Ep.DataType.Wrong),w=e.const("indices",(0,De._)`{}`);e.for((0,De._)`;${m}--;`,()=>{e.let(g,(0,De._)`${r}[${m}]`),e.if(v,(0,De._)`continue`),u.length>1&&e.if((0,De._)`typeof ${g} == "string"`,(0,De._)`${g} += "_"`),e.if((0,De._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(h,(0,De._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,De._)`${w}[${g}] = ${m}`)})}function p(m,h){let g=(0,qj.useFunc)(e,Hj.default),v=e.name("outer");e.label(v).for((0,De._)`;${m}--;`,()=>e.for((0,De._)`${h} = ${m}; ${h}--;`,()=>e.if((0,De._)`${g}(${r}[${m}], ${r}[${h}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};Tp.default=Zj});var mC=C(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Ap=j(),Bj=B(),Wj=Dc(),Vj={message:"must be equal to constant",params:({schemaCode:t})=>(0,Ap._)`{allowedValue: ${t}}`},Kj={keyword:"const",$data:!0,error:Vj,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Ap._)`!${(0,Bj.useFunc)(e,Wj.default)}(${r}, ${o})`):t.fail((0,Ap._)`${i} !== ${r}`)}};Mp.default=Kj});var gC=C($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var bs=j(),Jj=B(),Yj=Dc(),Xj={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,bs._)`{allowedValues: ${t}}`},Qj={keyword:"enum",schemaType:"array",$data:!0,error:Xj,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,Jj.useFunc)(e,Yj.default)),d;if(a||n)d=e.let("valid"),t.block$data(d,l);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let p=e.const("vSchema",i);d=(0,bs.or)(...o.map((m,h)=>f(p,h)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,bs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,m){let h=o[m];return typeof h=="object"&&h!==null?(0,bs._)`${u()}(${r}, ${p}[${m}])`:(0,bs._)`${r} === ${h}`}}};$p.default=Qj});var yC=C(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var e1=oC(),t1=iC(),r1=cC(),n1=uC(),o1=dC(),i1=lC(),s1=fC(),a1=hC(),c1=mC(),u1=gC(),d1=[e1.default,t1.default,r1.default,n1.default,o1.default,i1.default,s1.default,a1.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},c1.default,u1.default];Ip.default=d1});var zp=C(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateAdditionalItems=void 0;var zn=j(),Op=B(),l1={message:({params:{len:t}})=>(0,zn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zn._)`{limit: ${t}}`},f1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:l1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Op.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}vC(t,n)}};function vC(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,zn._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,zn._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,Op.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,zn._)`${a} <= ${e.length}`);r.if((0,zn.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:Op.Type.Num},u),s.allErrors||r.if((0,zn.not)(u),()=>r.break())})}}Rs.validateAdditionalItems=vC;Rs.default=f1});var Np=C(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});Cs.validateTuple=void 0;var _C=j(),Lc=B(),p1=wt(),h1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return SC(t,"additionalItems",e);r.items=!0,!(0,Lc.alwaysValidSchema)(r,e)&&t.ok((0,p1.validateArray)(t))}};function SC(t,e,r=t.schema){let{gen:n,parentSchema:o,data:i,keyword:s,it:a}=t;d(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=Lc.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,_C._)`${i}.length`);r.forEach((l,f)=>{(0,Lc.alwaysValidSchema)(a,l)||(n.if((0,_C._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,m=r.length,h=m===l.minItems&&(m===l.maxItems||l[e]===!1);if(f.strictTuples&&!h){let g=`"${s}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,Lc.checkStrictMode)(a,g,f.strictTuples)}}}Cs.validateTuple=SC;Cs.default=h1});var wC=C(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var m1=Np(),g1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,m1.validateTuple)(t,"items")};Dp.default=g1});var RC=C(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var bC=j(),y1=B(),v1=wt(),_1=zp(),S1={message:({params:{len:t}})=>(0,bC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,bC._)`{limit: ${t}}`},w1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:S1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,y1.alwaysValidSchema)(n,e)&&(o?(0,_1.validateAdditionalItems)(t,o):t.ok((0,v1.validateArray)(t)))}};Lp.default=w1});var CC=C(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var Rt=j(),jc=B(),b1={message:({params:{min:t,max:e}})=>e===void 0?(0,Rt.str)`must contain at least ${t} valid item(s)`:(0,Rt.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Rt._)`{minContains: ${t}}`:(0,Rt._)`{minContains: ${t}, maxContains: ${e}}`},R1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:b1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t,s,a,{minContains:c,maxContains:u}=n;i.opts.next?(s=c===void 0?1:c,a=u):s=1;let d=e.const("len",(0,Rt._)`${o}.length`);if(t.setParams({min:s,max:a}),a===void 0&&s===0){(0,jc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,jc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,jc.alwaysValidSchema)(i,r)){let h=(0,Rt._)`${d} >= ${s}`;a!==void 0&&(h=(0,Rt._)`${h} && ${d} <= ${a}`),t.pass(h);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,Rt._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let h=e.name("_valid"),g=e.let("count",0);p(h,()=>e.if(h,()=>m(g)))}function p(h,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:jc.Type.Num,compositeRule:!0},h),g()})}function m(h){e.code((0,Rt._)`${h}++`),a===void 0?e.if((0,Rt._)`${h} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Rt._)`${h} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Rt._)`${h} >= ${s}`,()=>e.assign(l,!0)))}}};jp.default=R1});var kC=C(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.validateSchemaDeps=Yt.validatePropertyDeps=Yt.error=void 0;var Fp=j(),C1=B(),Ps=wt();Yt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Fp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Fp._)`{property: ${t},
|
|
6
6
|
missingProperty: ${n},
|
|
7
7
|
depsCount: ${e},
|
|
8
|
-
deps: ${r}}`};var b1={keyword:"dependencies",type:"object",schemaType:"object",error:Yt.error,code(t){let[e,r]=R1(t);bC(t,e),RC(t,r)}};function R1({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 bC(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,Rs.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,Rs.checkReportMissingProp)(t,u)}):(r.if((0,Np._)`${c} && (${(0,Rs.checkMissingProp)(t,a,i)})`),(0,Rs.reportMissingProp)(t,i),r.else())}}Yt.validatePropertyDeps=bC;function RC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,w1.alwaysValidSchema)(i,e[a])||(r.if((0,Rs.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))}Yt.validateSchemaDeps=RC;Yt.default=b1});var xC=C(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var PC=j(),C1=B(),P1={message:"property name must be valid",params:({params:t})=>(0,PC._)`{propertyName: ${t.propertyName}}`},x1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:P1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,C1.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,PC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Dp.default=x1});var jp=C(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var Lc=wt(),zt=j(),k1=fr(),jc=B(),E1={message:"must NOT have additional properties",params:({params:t})=>(0,zt._)`{additionalProperty: ${t.additionalProperty}}`},T1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:E1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,jc.alwaysValidSchema)(s,r))return;let u=(0,Lc.allSchemaProperties)(n.properties),d=(0,Lc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,zt._)`${i} === ${k1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?m(g):e.if(f(g),()=>m(g))})}function f(g){let v;if(u.length>8){let w=(0,jc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Lc.isOwnProperty)(e,w,g)}else u.length?v=(0,zt.or)(...u.map(w=>(0,zt._)`${g} === ${w}`)):v=zt.nil;return d.length&&(v=(0,zt.or)(v,...d.map(w=>(0,zt._)`${(0,Lc.usePattern)(t,w)}.test(${g})`))),(0,zt.not)(v)}function p(g){e.code((0,zt._)`delete ${o}[${g}]`)}function m(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,jc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(h(g,v,!1),e.if((0,zt.not)(v),()=>{t.reset(),p(g)})):(h(g,v),a||e.if((0,zt.not)(v),()=>e.break()))}}function h(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:jc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Lp.default=T1});var TC=C(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var A1=us(),kC=wt(),Fp=B(),EC=jp(),M1={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&&EC.default.code(new A1.KeywordCxt(i,EC.default,"additionalProperties"));let s=(0,kC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Fp.mergeEvaluated.props(e,(0,Fp.toHash)(s),i.props));let a=s.filter(l=>!(0,Fp.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,kC.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)}}};Up.default=M1});var IC=C(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var AC=wt(),Fc=j(),MC=B(),$C=B(),$1={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,AC.allSchemaProperties)(r),c=a.filter(h=>(0,MC.alwaysValidSchema)(i,r[h]));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 Fc.Name)&&(i.props=(0,$C.evaluatedPropsToName)(e,i.props));let{props:l}=i;f();function f(){for(let h of a)u&&p(h),i.allErrors?m(h):(e.var(d,!0),m(h),e.if(d))}function p(h){for(let g in u)new RegExp(h).test(g)&&(0,MC.checkStrictMode)(i,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function m(h){e.forIn("key",n,g=>{e.if((0,Fc._)`${(0,AC.usePattern)(t,h)}.test(${g})`,()=>{let v=c.includes(h);v||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:$C.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Fc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Fc.not)(d),()=>e.break())})})}}};qp.default=$1});var OC=C(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var I1=B(),O1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,I1.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"}};Hp.default=O1});var zC=C(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var z1=wt(),N1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:z1.validateUnion,error:{message:"must match a schema in anyOf"}};Gp.default=N1});var NC=C(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var Uc=j(),D1=B(),L1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Uc._)`{passingSchemas: ${t.passing}}`},j1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:L1,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,D1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Uc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Uc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Uc.Name)})})}}};Zp.default=j1});var DC=C(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var F1=B(),U1={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,F1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Bp.default=U1});var FC=C(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var qc=j(),jC=B(),q1={message:({params:t})=>(0,qc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,qc._)`{failingKeyword: ${t.ifClause}}`},H1={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:q1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,jC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=LC(n,"then"),i=LC(n,"else");if(!o&&!i)return;let s=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&i){let d=e.let("ifClause");t.setParams({ifClause:d}),e.if(a,u("then",d),u("else",d))}else o?e.if(a,u("then")):e.if((0,qc.not)(a),u("else"));t.pass(s,()=>t.error(!0));function c(){let d=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(d)}function u(d,l){return()=>{let f=t.subschema({keyword:d},a);e.assign(s,a),t.mergeValidEvaluated(f,s),l?e.assign(l,(0,qc._)`${d}`):t.setParams({ifClause:d})}}}};function LC(t,e){let r=t.schema[e];return r!==void 0&&!(0,jC.alwaysValidSchema)(t,r)}Wp.default=H1});var UC=C(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var G1=B(),Z1={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,G1.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Vp.default=Z1});var qC=C(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var B1=Mp(),W1=vC(),V1=$p(),K1=SC(),J1=wC(),Y1=CC(),X1=xC(),Q1=jp(),eF=TC(),tF=IC(),rF=OC(),nF=zC(),oF=NC(),iF=DC(),sF=FC(),aF=UC();function cF(t=!1){let e=[rF.default,nF.default,oF.default,iF.default,sF.default,aF.default,X1.default,Q1.default,Y1.default,eF.default,tF.default];return t?e.push(W1.default,K1.default):e.push(B1.default,V1.default),e.push(J1.default),e}Kp.default=cF});var HC=C(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var we=j(),uF={message:({schemaCode:t})=>(0,we.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,we._)`{format: ${t}}`},dF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:uF,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 m=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),h=r.const("fDef",(0,we._)`${m}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,we._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(g,(0,we._)`${h}.type || "string"`).assign(v,(0,we._)`${h}.validate`),()=>r.assign(g,(0,we._)`"string"`).assign(v,h)),t.fail$data((0,we.or)(w(),b()));function w(){return c.strictSchema===!1?we.nil:(0,we._)`${s} && !${v}`}function b(){let x=d.$async?(0,we._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,we._)`${v}(${n})`,S=(0,we._)`(typeof ${v} == "function" ? ${x} : ${v}.test(${n}))`;return(0,we._)`${v} && ${v} !== true && ${g} === ${e} && !${S}`}}function p(){let m=l.formats[i];if(!m){w();return}if(m===!0)return;let[h,g,v]=b(m);h===e&&t.pass(x());function w(){if(c.strictSchema===!1){l.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function b(S){let R=S instanceof RegExp?(0,we.regexpCode)(S):c.code.formats?(0,we._)`${c.code.formats}${(0,we.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:S,code:R});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,we._)`${I}.validate`]:["string",S,I]}function x(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,we._)`await ${v}(${n})`}return typeof g=="function"?(0,we._)`${v}(${n})`:(0,we._)`${v}.test(${n})`}}}};Jp.default=dF});var GC=C(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var lF=HC(),fF=[lF.default];Yp.default=fF});var ZC=C($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.contentVocabulary=$o.metadataVocabulary=void 0;$o.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];$o.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var WC=C(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var pF=eC(),hF=hC(),mF=qC(),gF=GC(),BC=ZC(),yF=[pF.default,hF.default,(0,mF.default)(),gF.default,BC.metadataVocabulary,BC.contentVocabulary];Xp.default=yF});var KC=C(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.DiscrError=void 0;var VC;(function(t){t.Tag="tag",t.Mapping="mapping"})(VC||(Hc.DiscrError=VC={}))});var YC=C(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var Io=j(),Qp=KC(),JC=Cc(),vF=ds(),_F=B(),SF={message:({params:{discrError:t,tagName:e}})=>t===Qp.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Io._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},wF={keyword:"discriminator",type:"object",schemaType:"object",error:SF,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,Io._)`${r}${(0,Io.getProperty)(a)}`);e.if((0,Io._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:Qp.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function d(){let p=f();e.if(!1);for(let m in p)e.elseIf((0,Io._)`${u} === ${m}`),e.assign(c,l(p[m]));e.else(),t.error(!1,{discrError:Qp.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function l(p){let m=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:p},m);return t.mergeEvaluated(h,Io.Name),m}function f(){var p;let m={},h=v(o),g=!0;for(let x=0;x<s.length;x++){let S=s[x];if(S?.$ref&&!(0,_F.schemaHasRulesButRef)(S,i.self.RULES)){let I=S.$ref;if(S=JC.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),S instanceof JC.SchemaEnv&&(S=S.schema),S===void 0)throw new vF.default(i.opts.uriResolver,i.baseId,I)}let R=(p=S?.properties)===null||p===void 0?void 0:p[a];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);g=g&&(h||v(S)),w(R,x)}if(!g)throw new Error(`discriminator: "${a}" must be required`);return m;function v({required:x}){return Array.isArray(x)&&x.includes(a)}function w(x,S){if(x.const)b(x.const,S);else if(x.enum)for(let R of x.enum)b(R,S);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function b(x,S){if(typeof x!="string"||x in m)throw new Error(`discriminator: "${a}" values must be unique strings`);m[x]=S}}}};eh.default=wF});var XC=C((P3,bF)=>{bF.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 rh=C((le,th)=>{"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 RF=VR(),CF=WC(),PF=YC(),QC=XC(),xF=["/properties"],Gc="http://json-schema.org/draft-07/schema",Oo=class extends RF.default{_addVocabularies(){super._addVocabularies(),CF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(PF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(QC,xF):QC;this.addMetaSchema(e,Gc,!1),this.refs["http://json-schema.org/schema"]=Gc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Gc)?Gc:void 0)}};le.Ajv=Oo;th.exports=le=Oo;th.exports.Ajv=Oo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Oo;var kF=us();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return kF.KeywordCxt}});var zo=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return zo._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return zo.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return zo.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return zo.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return zo.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return zo.CodeGen}});var EF=bc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return EF.default}});var TF=ds();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return TF.default}})});var aP=C(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.formatNames=Qt.fastFormats=Qt.fullFormats=void 0;function Xt(t,e){return{validate:t,compare:e}}Qt.fullFormats={date:Xt(nP,sh),time:Xt(oh(!0),ah),"date-time":Xt(eP(!0),iP),"iso-time":Xt(oh(),oP),"iso-date-time":Xt(eP(),sP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:zF,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:qF,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:NF,int32:{type:"number",validate:jF},int64:{type:"number",validate:FF},float:{type:"number",validate:rP},double:{type:"number",validate:rP},password:!0,binary:!0};Qt.fastFormats={...Qt.fullFormats,date:Xt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,sh),time:Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,ah),"date-time":Xt(/^\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,iP),"iso-time":Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,oP),"iso-date-time":Xt(/^\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,sP),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};Qt.formatNames=Object.keys(Qt.fullFormats);function AF(t){return t%4===0&&(t%100!==0||t%400===0)}var MF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,$F=[0,31,28,31,30,31,30,31,31,30,31,30,31];function nP(t){let e=MF.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&&AF(r)?29:$F[n])}function sh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var nh=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function oh(t){return function(r){let n=nh.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 ah(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 oP(t,e){if(!(t&&e))return;let r=nh.exec(t),n=nh.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 ih=/t|\s/i;function eP(t){let e=oh(t);return function(n){let o=n.split(ih);return o.length===2&&nP(o[0])&&e(o[1])}}function iP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function sP(t,e){if(!(t&&e))return;let[r,n]=t.split(ih),[o,i]=e.split(ih),s=sh(r,o);if(s!==void 0)return s||ah(n,i)}var IF=/\/|:/,OF=/^(?:[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 zF(t){return IF.test(t)&&OF.test(t)}var tP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function NF(t){return tP.lastIndex=0,tP.test(t)}var DF=-(2**31),LF=2**31-1;function jF(t){return Number.isInteger(t)&&t<=LF&&t>=DF}function FF(t){return Number.isInteger(t)}function rP(){return!0}var UF=/[^\\]\\Z/;function qF(t){if(UF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var cP=C(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.formatLimitDefinition=void 0;var HF=rh(),Nt=j(),Kr=Nt.operators,Zc={formatMaximum:{okStr:"<=",ok:Kr.LTE,fail:Kr.GT},formatMinimum:{okStr:">=",ok:Kr.GTE,fail:Kr.LT},formatExclusiveMaximum:{okStr:"<",ok:Kr.LT,fail:Kr.GTE},formatExclusiveMinimum:{okStr:">",ok:Kr.GT,fail:Kr.LTE}},GF={message:({keyword:t,schemaCode:e})=>(0,Nt.str)`should be ${Zc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Nt._)`{comparison: ${Zc[t].okStr}, limit: ${e}}`};No.formatLimitDefinition={keyword:Object.keys(Zc),type:"string",schemaType:"string",$data:!0,error:GF,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 HF.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,Nt._)`${f}[${c.schemaCode}]`);t.fail$data((0,Nt.or)((0,Nt._)`typeof ${p} != "object"`,(0,Nt._)`${p} instanceof RegExp`,(0,Nt._)`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 m=e.scopeValue("formats",{key:f,ref:p,code:s.code.formats?(0,Nt._)`${s.code.formats}${(0,Nt.getProperty)(f)}`:void 0});t.fail$data(l(m))}function l(f){return(0,Nt._)`${f}.compare(${r}, ${n}) ${Zc[o].fail} 0`}},dependencies:["format"]};var ZF=t=>(t.addKeyword(No.formatLimitDefinition),t);No.default=ZF});var fP=C((Cs,lP)=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});var Do=aP(),BF=cP(),ch=j(),uP=new ch.Name("fullFormats"),WF=new ch.Name("fastFormats"),uh=(t,e={keywords:!0})=>{if(Array.isArray(e))return dP(t,e,Do.fullFormats,uP),t;let[r,n]=e.mode==="fast"?[Do.fastFormats,WF]:[Do.fullFormats,uP],o=e.formats||Do.formatNames;return dP(t,o,r,n),e.keywords&&(0,BF.default)(t),t};uh.get=(t,e="full")=>{let n=(e==="fast"?Do.fastFormats:Do.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function dP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,ch._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}lP.exports=Cs=uh;Object.defineProperty(Cs,"__esModule",{value:!0});Cs.default=uh});var UP=C((a8,FP)=>{FP.exports=jP;jP.sync=PU;var DP=wr("fs");function CU(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 LP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:CU(e,r)}function jP(t,e,r){DP.stat(t,function(n,o){r(n,n?!1:LP(o,t,e))})}function PU(t,e){return LP(DP.statSync(t),t,e)}});var BP=C((c8,ZP)=>{ZP.exports=HP;HP.sync=xU;var qP=wr("fs");function HP(t,e,r){qP.stat(t,function(n,o){r(n,n?!1:GP(o,e))})}function xU(t,e){return GP(qP.statSync(t),e)}function GP(t,e){return t.isFile()&&kU(t,e)}function kU(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 VP=C((d8,WP)=>{var u8=wr("fs"),ru;process.platform==="win32"||global.TESTING_WINDOWS?ru=UP():ru=BP();WP.exports=Eh;Eh.sync=EU;function Eh(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){Eh(t,e||{},function(i,s){i?o(i):n(s)})})}ru(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function EU(t,e){try{return ru.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var tx=C((l8,ex)=>{var Zo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",KP=wr("path"),TU=Zo?";":":",JP=VP(),YP=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),XP=(t,e)=>{let r=e.colon||TU,n=t.match(/\//)||Zo&&t.match(/\\/)?[""]:[...Zo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Zo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Zo?o.split(r):[""];return Zo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},QP=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=XP(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(YP(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,m=KP.join(p,t),h=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+m:m;d(c(h,u,0))}),c=(u,d,l)=>new Promise((f,p)=>{if(l===o.length)return f(a(d+1));let m=o[l];JP(u+m,{pathExt:i},(h,g)=>{if(!h&&g)if(e.all)s.push(u+m);else return f(u+m);return f(c(u,d,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},AU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=XP(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=KP.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(JP.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 YP(t)};ex.exports=QP;QP.sync=AU});var nx=C((f8,Th)=>{"use strict";var rx=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Th.exports=rx;Th.exports.default=rx});var ax=C((p8,sx)=>{"use strict";var ox=wr("path"),MU=tx(),$U=nx();function ix(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=MU.sync(t.command,{path:r[$U({env:r})],pathExt:e?ox.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=ox.resolve(o?t.options.cwd:"",s)),s}function IU(t){return ix(t)||ix(t,!0)}sx.exports=IU});var cx=C((h8,Mh)=>{"use strict";var Ah=/([()\][%!^"`<>&|;, *?])/g;function OU(t){return t=t.replace(Ah,"^$1"),t}function zU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Ah,"^$1"),e&&(t=t.replace(Ah,"^$1")),t}Mh.exports.command=OU;Mh.exports.argument=zU});var dx=C((m8,ux)=>{"use strict";ux.exports=/^#!(.*)/});var fx=C((g8,lx)=>{"use strict";var NU=dx();lx.exports=(t="")=>{let e=t.match(NU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var hx=C((y8,px)=>{"use strict";var $h=wr("fs"),DU=fx();function LU(t){let r=Buffer.alloc(150),n;try{n=$h.openSync(t,"r"),$h.readSync(n,r,0,150,0),$h.closeSync(n)}catch{}return DU(r.toString())}px.exports=LU});var vx=C((v8,yx)=>{"use strict";var jU=wr("path"),mx=ax(),gx=cx(),FU=hx(),UU=process.platform==="win32",qU=/\.(?:com|exe)$/i,HU=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function GU(t){t.file=mx(t);let e=t.file&&FU(t.file);return e?(t.args.unshift(t.file),t.command=e,mx(t)):t.file}function ZU(t){if(!UU)return t;let e=GU(t),r=!qU.test(e);if(t.options.forceShell||r){let n=HU.test(e);t.command=jU.normalize(t.command),t.command=gx.command(t.command),t.args=t.args.map(i=>gx.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 BU(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:ZU(n)}yx.exports=BU});var wx=C((_8,Sx)=>{"use strict";var Ih=process.platform==="win32";function Oh(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 WU(t,e){if(!Ih)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=_x(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function _x(t,e){return Ih&&t===1&&!e.file?Oh(e.original,"spawn"):null}function VU(t,e){return Ih&&t===1&&!e.file?Oh(e.original,"spawnSync"):null}Sx.exports={hookChildProcess:WU,verifyENOENT:_x,verifyENOENTSync:VU,notFoundError:Oh}});var Cx=C((S8,Bo)=>{"use strict";var bx=wr("child_process"),zh=vx(),Nh=wx();function Rx(t,e,r){let n=zh(t,e,r),o=bx.spawn(n.command,n.args,n.options);return Nh.hookChildProcess(o,n),o}function KU(t,e,r){let n=zh(t,e,r),o=bx.spawnSync(n.command,n.args,n.options);return o.error=o.error||Nh.verifyENOENTSync(o.status,n),o}Bo.exports=Rx;Bo.exports.spawn=Rx;Bo.exports.sync=KU;Bo.exports._parse=zh;Bo.exports._enoent=Nh});var Ax=C(Lh=>{"use strict";var kx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,eq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Ex=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,tq=/\\([\u000b\u0020-\u00ff])/g,rq=/([\\"])/g,Tx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Lh.format=nq;Lh.parse=oq;function nq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Tx.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],!Ex.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+sq(e[o])}return n}function oq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?iq(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(!Tx.test(n))throw new TypeError("invalid media type");var o=new aq(n.toLowerCase());if(r!==-1){var i,s,a;for(kx.lastIndex=r;s=kx.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(tq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function iq(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 sq(t){var e=String(t);if(Ex.test(e))return e;if(e.length>0&&!eq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(rq,"\\$1")+'"'}function aq(t){this.parameters=Object.create(null),this.type=t}});import{logger as G2}from"@hermes/logger";import{logger as AH}from"@hermes/logger";var dT="mcp-auth";function _e(t,e=t.ui){if(!e)return;let r=0;for(let n of t.servers.values())n.status==="auth_required"&&r++;e.setStatus(dT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as nH}from"@augmentcode/auggie-v2";import{logger as oH}from"@hermes/logger";import{logger as FT}from"@hermes/logger";import{logger as fT}from"@hermes/logger";function lT(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 br(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":lT(t,e,r)?"plugin":"local"}function pT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Mm=fT.child({prefix:"pi-mcp"}),hT="augment:mcp-status-report";function rr(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 ri(t,e,r,n){let o=rr(t,e);return o.serverGeneration!==n.serverGeneration||o.mcpConfigId!==n.mcpConfigId||o.credentialRevision!==n.credentialRevision||o.credentialRevisionDomain!==n.credentialRevisionDomain?!1:(t.statusFailureCategories??=new Map,t.statusFailureCategories.set(e,{category:r,...n}),!0)}function it(t,e,r){if(r){let o=rr(t,e);if(o.serverGeneration!==r.serverGeneration||o.mcpConfigId!==r.mcpConfigId||o.credentialRevision!==r.credentialRevision||o.credentialRevisionDomain!==r.credentialRevisionDomain)return!1}let n=t.statusFailureCategories?.get(e);return t.statusFailureCategories?.delete(e),typeof n=="object"&&n.category==="auth_refresh_needed"&&t.authRefreshNeededReportKeys?.delete(e),!0}function mT(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=rr(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 Xs=3e4;function gT(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>=Xs?"failed":void 0}default:return}}var $m="authentication required",yT="Authentication refresh is pending in the backend; retry shortly.",vT="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.",ST="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",wT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",bT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",RT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",CT="Server was not started: this session's Space policy does not allow it.",PT="Server was not started: its shared credential is not available to this session's identity.",xT="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 kT(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)?ST:_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",...TT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}ET({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function ET(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=Om(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 Im(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 Om(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:RT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:CT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:PT,failureCategory:"share_identity_excluded"};default:return}}function TT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:xT,failureCategory:"auth_terminal"};let i=Om(e,r);return i!==void 0?i:{errorMessage:o.has(n)?bT:wT,failureCategory:"configuration"}}function AT(t,e){return e!==void 0?e.isAuthError?$m:e.error:t.status==="initializing"?vT:t.lastError??(t.status==="auth_required"?$m:void 0)}function MT(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 $T(t,e){let r=gT(t);if(r===void 0)return;let n=mT(e,t.name),o=r==="connected"?pT(t):void 0;(o!==void 0||n==="auth_refresh_needed")&&(r="failed");let i={name:t.name,source:br(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=e.statusFailureCategories?.get(t.name),c=MT(t,e);return c?.revision!==void 0&&c.domain!==void 0&&(i.credentialRevision=c.revision,i.credentialRevisionDomain=c.domain),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?yT:AT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient"),typeof a=="object"&&(i.serverGeneration=a.serverGeneration)),i}function IT(t){let e=[];for(let r of t.servers.values()){let n=$T(r,t);n!==void 0&&e.push(n)}return kT(t,e),e}function D(t,e){try{let r=IT(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(hT,o),Mm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Mm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var Qs={local:4,registry:3,plugin:2,vfs:1};function Ut(t){return t.hostLeases??=new Map,t.hostLeases}function OT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function ni(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function oi(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 ju(t,e){let r=OT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ea(t,e,r){if(r.kind==="registry"){ni(t).set(e,{kind:"domain",domain:r.identity});return}ni(t).set(e,{kind:"blocked"})}function Fu(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 Rr(t,e){return t.registrySource!==void 0?{kind:"registry",identity:`user:${t.id??t.name}`}:t.vfsSource!==void 0?{kind:"vfs",identity:t.id??t.name}:{kind:e??"local",identity:t.id??t.name}}function Q(t,e,r){let n=Ut(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Rr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:ju(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ea(t,e,a),c}function Nm(t){let{state:e,name:r,host:n}=t,o=Ut(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:ju(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ea(e,r,s.owner),s}function ii(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=Ut(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=Qs[n.kind]>Qs[a.owner.kind],f=Qs[n.kind]===Qs[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;Fu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:ju(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ea(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Uu(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 ve(t){let{state:e,name:r,retirement:n,result:o}=t;if(n.settled)return!1;n.settled=!0,n.result=o;let s=Ut(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,ni(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ta(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e).get(r);return!s||s.revision!==o||!oi(s.owner,n)||s.host!==void 0||s.retirement!==void 0?!1:(s.host=i,e.servers.set(r,i),n.kind==="plugin"?(e.pluginServerNames.add(r),e.pluginServerHosts.set(r,i)):(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),!0)}function st(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e).get(r);if(!s||s.revision!==o||!oi(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=zm(s);if(a)return Fu(e,r,i),s.host=void 0,s.retirement=a,a}function Dm(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=Ut(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!oi(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!oi(s.owner,n)||s.revision!==o.incumbent.revision?(ea(e,r,s.owner),!0):(i.delete(r),ni(e).set(r,{kind:"blocked"}),!0))}function xe(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e),a=s.get(r);return!a||a.revision!==o||!oi(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Fu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),ni(e).set(r,{kind:"blocked"}),!0)}function N(t,e){return Ut(t).get(e)}function qu(t,e,r){let n=Ut(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Lm(t){if(t!==void 0)try{return new URL(t).toString()}catch{return t}}function Cr(t,e){return!t||!e?!1:t.id===e.id&&t.name===e.name&&t.type===e.type&&Lm(t.url)===Lm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Wn=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 Cr(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 ai(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Hu(t){try{return new URL(t).toString()}catch{return t}}function si(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Hu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function qt(t,e){return si(e.config)}function ft(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Hu(t.url)===Hu(e.url)}function Gu(t,e){let r=si(t),n=si(e);return!r||!n?ft(t,e):Cr(r,n)}function Zu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function zT(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 NT(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}=t;return e?r?!ft(e,r):n===void 0?!1:e.id===void 0?e.registrySource===void 0:e.id!==n:!1}function jm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Zu(e,r):n!==void 0&&e!==n}function Fm(t,e,r){return r&&e!==void 0&&t!==void 0&&Zu(t,e)}function DT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Zu(i,n))}function Um(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(NT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||jm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&jm({identity:s.domain,...l})?!0:DT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function LT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return si(r);if(n!==void 0)return{id:n,name:e}}function jT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!si(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function qm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=zT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:a}),u=c?.id??r,d=c?.registrySource!==void 0||c===void 0&&r!==void 0,l=c?.registrySource===void 0?void 0:`user:${c.id??c.name}`,f=Um({currentConfig:a,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:i,currentDomain:s}),p=Fm(i,u,d),m=Fm(s,u,d),h=!f,g=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,w=f&&!(h||p||m||g);if(o==="durable"){let R=LT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,R,{preserveNameState:w})}let b=Um({currentConfig:t.servers?.get(e)?.config,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:t.oauthCredentialDomains?.get(e),currentDomain:t.credentialRevisions?.get(e)?.domain}),x=h&&!b,S=!1;return t.equalRevisionRebindDomains?.delete(e),(x||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),S=!0),(x||m)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),S=!0),x&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),jT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:x,retiredConfig:c}),S&&(ai(t,e),it(t,e),t.authRefreshNeededReportKeys?.delete(e)),x}function pt(t,e,r,n){return qm(t,e,r,n,"durable")}function ci(t,e,r,n){return qm(t,e,r,n,"session")}function Hm(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 Pr(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 Gm="augment:mcp-oauth-credentials",Zm=300*1e3,UT=256,Bu=FT.child({prefix:"pi-mcp"}),xt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function at(t){return`user:${t}`}function on(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||Pr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function xr(t){let e=t.indexOf(":");if(e<=0||e===t.length-1)return t;let r=t.slice(0,e);return r!=="private"&&r!=="shared"&&r!=="recipient"&&r!=="user"&&r!=="tenant"?t:at(t.slice(e+1))}function ct(t){return/^secret:(private|shared):.+/.test(t)}function sn(t){return t.ownerDomain??xr(t.domain)}function Bm(t,e,r){let n=at(e);return r!==void 0?r===n:ct(t)||xr(t)===n}function qT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function HT(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 GT(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function ZT(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&qT(t.credentialRevisions.get(e),r.credentialRevision)&>(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function BT(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 WT(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??"")||!ft(o,r)?!1:o.name!==r.name||e.equalRevisionRebindDomains.get(r.name)===n}function kr(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 nr(t,e){let r=t.bootOAuthCredentialBuffer?.get(e);r?.expiryTimer!==void 0&&clearTimeout(r.expiryTimer),t.bootOAuthCredentialBuffer?.delete(e)}function Wm(t){kr(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()??[])nr(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 Vm(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Zm)&&nr(t,n)}function VT(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&nr(t,e)}function Km(t){let{state:e,serverName:r,revision:n,credential:o,suppressReconnect:i}=t;kr(e),e.bootOAuthCredentialBuffer??=new Map;let s=e.bootOAuthCredentialBuffer,a=Date.now();Vm(e,a);let c=sn(n),u=ct(c)?`${c}\0${r}`:c,d=s.get(u),l=d?.credential.credential_revision??d?.credential.credentialRevision;if(typeof l=="string"&&Pr(n.revision,l)<=0)return;!d&&s.size>=UT&&VT(e),nr(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&&nr(e,u)},Zm),f.expiryTimer.unref?.(),Bu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function KT(t,e){kr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ke(t){let{state:e,domain:r,epoch:n,preserveFence:o=!1,preserveBootCredential:i=!1}=t;kr(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||nr(e,r)}}function ra(t){let{state:e,domain:r,forceNew:n=!1}=t;kr(e);let o=e.registryCredentialIntents.get(r);if(o&&!n)return e.pendingRegistryCredentialDomains.add(r),{domain:r,...o};let i=o?.configFingerprint===void 0?e.stagedOAuthCredentials.get(r):void 0;o&&Ke({state:e,domain:r,epoch:o.epoch});let s={epoch:KT(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 Jm(t,e){kr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ke({state:t,domain:r,epoch:n.epoch});for(let r of t.pendingRegistryCredentialDomains)e.has(r)||(t.pendingRegistryCredentialDomains.delete(r),t.stagedOAuthCredentials.delete(r));for(let r of t.stagedOAuthCredentials.keys())e.has(r)||t.stagedOAuthCredentials.delete(r);for(let r of t.bootOAuthCredentialBuffer?.keys()??[]){let n=r.split("\0",1)[0];!e.has(r)&&!ct(n)&&nr(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);ra({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function JT(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||N(e,r.name)?.owner.kind==="local")return;kr(e);let n=at(r.id),o=BT(r),i=WT({state:e,config:r,domain:n});i||e.equalRevisionRebindDomains.delete(r.name);let s=e.registryCredentialIntents.get(n);if(s&&s.configFingerprint===void 0){s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i;let a=e.stagedOAuthCredentials.get(n);a?.intentEpoch===s.epoch&&(a.configFingerprint=o)}else s&&s.configFingerprint!==o?(Ke({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=ra({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),YT({state:e,config:r,domain:n}),{domain:n,...s}}function Ym(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;kr(e);let i=sn(r),s=e.registryCredentialIntents.get(i);if(!s||!e.pendingRegistryCredentialDomains.has(i))return;let a=e.oauthCredentialRevisions.get(r.domain),c=e.stagedOAuthCredentials.get(i),d=c?.intentEpoch===s.epoch&&c.configFingerprint===s.configFingerprint?c.credential.credential_revision??c.credential.credentialRevision:void 0,l=a===void 0?void 0:Pr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&Pr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function YT(t){let{state:e,config:r,domain:n}=t,o=e.oauthCredentialDomains.get(r.name);e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:n});let i=e.credentialRevisions.get(r.name);(o===void 0||i?.ownerDomain!==void 0&&i.ownerDomain!==n||i?.ownerDomain===void 0&&!ct(o)&&xr(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),it(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function XT(t){let{state:e,config:r,pi:n,intent:o}=t,i=e.stagedOAuthCredentials.get(o.domain);if(!i||i.intentEpoch!==o.epoch||i.configFingerprint!==o.configFingerprint||i.requiresEqualRevisionRebind&&!o.allowEqualRevisionRebind)return;e.stagedOAuthCredentials.delete(o.domain),i.requiresEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(Gm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function QT(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();Vm(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return nr(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&ct(s.split("\0",1)[0]))return nr(e,s),a}function eA(t){let{config:e,pi:r,buffered:n}=t;Bu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Bu.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(Gm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function tA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(ft(n,r)){if(n.name===r.name)return;await ci(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 pt(e,r.name,n.id,n);let o=e.expectedCredentialDomains.get(r.name);return o?.kind==="blocked"?o:void 0}function rA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=ZT(e,r.name,o);Ke({state:e,domain:n.domain,epoch:n.epoch,preserveFence:!c}),c&&(e.expectedCredentialDomains.set(r.name,{kind:"blocked"}),o.restoreFailure!==void 0&&e.statusFailureCategories.set(r.name,o.restoreFailure))}let a=`Registry credential replacement failed for ${r.name}: ${i instanceof Error?i.message:String(i)}`;return e.diagnostics.push({server:r.name,message:a,origin:"registry"}),new xt(a)}async function nA(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 tA({state:e,config:r,previousConfig:i})}catch(m){throw rA({state:e,config:r,intent:o,rollbackSnapshot:s,cause:m})}let u=e.registryCredentialIntents.get(o.domain);c&&u?.epoch===o.epoch&&e.expectedCredentialDomains.get(r.name)===c&&e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let d=e.expectedCredentialDomains.get(r.name);if(u?.epoch!==o.epoch||u.configFingerprint!==o.configFingerprint||d?.kind!=="domain"||d.domain!==o.domain)return Ke({state:e,domain:o.domain,epoch:o.epoch}),!1;let l=r.id;if(l===void 0)return!1;let f={...r};e.registryConfigNamesById.set(l,r.name),e.registryCredentialConfigs.set(r.name,f),e.registryCredentialConfigsById.set(l,f),o.allowEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),XT({state:e,config:r,pi:n,intent:o});let p=QT({state:e,domain:o.domain,serverName:r.name});return Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&eA({config:r,pi:n,buffered:p}),!0}function Er(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=JT({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=HT(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 nA({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 gA}from"@augmentcode/auggie-v2";import{homedir as Xm}from"node:os";import{sep as oA}from"node:path";var Wu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},iA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,sA=/\\\$\{/g,aA=new Set(["workspaceFolder","augmentToken"]),Qm="${workspaceFolder}";function eg(t,e){return t.includes(Qm)?t.split(Qm).join(e):t}function tg(t,e){return t.includes("${")?t.replace(iA,(n,o,i)=>{if(aA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Wu(o)}).replace(sA,"${"):t}function cA(t){return t.startsWith("~")?t==="~"?Xm():t.startsWith("~/")||t.startsWith(`~${oA}`)?Xm()+t.slice(1):t:t}function Vu(t,e,r){return cA(tg(eg(t,e),r))}function Vn(t,e,r){return tg(eg(t,e),r)}function rg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Vn(i,e,r);return n}var uA="$augment-";function dA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(uA)?i:Vn(i,e,r);return n}function Ht(t,e){let r=process.env;return{...t,url:Vn(t.url,e,r),headers:dA(t.headers,e,r)}}function Gt(t,e){let r=process.env;return{...t,command:Vu(t.command,e,r),args:t.args.map(n=>Vn(n,e,r)),env:t.env?rg(t.env,e,r):void 0,cwd:t.cwd?Vu(t.cwd,e,r):e}}import{readFileSync as fA}from"node:fs";var kt=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Kn(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 lA(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 Jn(t,e){let r=Kn(e);if(!r)throw new kt(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new kt(`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 kt(`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:lA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var ig=t=>fA(t,"utf8");function na(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ng(t){return na(t)&&("command"in t||"url"in t)}function Ju(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function og(t,e){return Ju(t.name)??e}function Ku(t,e){let r=Kn(t);if(r==="http"||r==="sse")return Ju(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return Ju(t.name,t.title,n)??e}function pA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[Ku(n,String(r)),n]});if(na(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[Ku(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(na(n))return Object.entries(n).map(([o,i])=>{let s=i;return[og(s,o),s]})}if(ng(t)){let r=t;return[[Ku(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(ng))return Object.entries(t).map(([r,n])=>{if(!na(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[og(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 Yu(t){return t instanceof Error?t.message:String(t)}function hA(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}": ${Yu(i)}`});return}}function mA(t,e,r){let n=t.trim();if(n.length===0)return[];let o=n.startsWith("[")||n.startsWith("{"),i=o?"inline JSON":`file "${t}"`,s=hA(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}: ${Yu(c)}`}),[]}try{return pA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${Yu(c)}`}),[]}}function Xu(t,e=ig){let r={},n=[];for(let o of t)for(let[i,s]of mA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function Qu(t,e=ig){return!t||t.length===0?new Set:new Set(Object.keys(Xu(t,e).servers))}var yA=["global","project","local","managed"];function vA(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 SA(t,e,r){let n=Xu(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 wA(t,e,r){let n=gA.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(yA.map(o=>vA(n,o)))}function Yn(t,e,r,n){let o=[],i=r&&r.length>0?SA(r,n,o):wA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=Jn(a,c);s.push(u.type==="stdio"?Gt(u,t):Ht(u,t))}catch(u){let d=u instanceof kt?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 lg}from"@augmentcode/auggie-v2";import{logger as $A}from"@hermes/logger";import{Type as IA}from"@sinclair/typebox";var oa=Symbol.for("__pi_mcp_state__");function bA(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 RA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function CA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&bA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&RA(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 PA(t){t.dynamicallyAddedConfigIds??=new Set,t.failedAddConfigIds??=new Set,t.nameCollisionAddConfigIds??=new Set,t.authFallbackDisplacedConfigIds??=new Set,t.sessionRemovedConfigIds??=new Set,t.registryConfigNamesById??=new Map,t.registryCredentialConfigs??=new Map,t.registryCredentialConfigsById??=new Map,t.toolSearchLatched??=!1,t.sessionMcpConfigDisabledOverrides??=new Map,t.reconnects??=new Map,t.missingHostRemovals??=new Map,t.missingHostRemovalFences??=new Map,t.reconnectDesiredGenerations??=new Map,t.serverGenerations??=t.hostGenerations??new Map,t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map,t.credentialRevisions??=new Map,t.oauthCredentialRevisions??=new Map,t.oauthCredentialDomains??=new Map;let e=t.equalRevisionRebindDomains===void 0;t.equalRevisionRebindDomains??=new Map,t.preservedCredentialIdentities??=new Map,t.stagedOAuthCredentials??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.registryCredentialFinalizationsByName??=new Map;for(let r of t.pendingRegistryCredentialDomains)if(!t.registryCredentialIntents.has(r)){let n=(t.registryCredentialIntentEpochs.get(r)??0)+1;t.registryCredentialIntentEpochs.set(r,n),t.registryCredentialIntents.set(r,{epoch:n,configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0})}for(let r of t.registryCredentialIntents.values())r.allowEqualRevisionRebind??=!1;for(let[r,n]of t.stagedOAuthCredentials){let o=t.registryCredentialIntents.get(r);if(!o){t.stagedOAuthCredentials.delete(r);continue}let i=n;i.intentEpoch??=o.epoch,i.configFingerprint??=o.configFingerprint,i.requiresEqualRevisionRebind??=!1}t.statusHostGeneration??=1,t.statusReportSequence??=0,t.statusFailureCategories??=new Map,t.authRefreshNeededReportKeys??=new Map,t.hostedCredentialOwnership??=new Map,e&&CA(t),t.authenticationGeneration??=0,t.authenticatingServerName??=void 0,t.liveEditGenerations??=new Map,t.blockedVfsMcpNames??=new Set,t.pluginServerHosts||(t.pluginServerHosts=new Map),t.toolRegistrationsByPi??=new WeakMap,t.hostLeases??=new Map,t.hostLeaseRevisions??=new Map,t.expectedCredentialDomains??=new Map;for(let[r,n]of t.servers)n.config!==void 0&&Q(t,r,n);t.pluginReconcileQueue??=Promise.resolve(),t.mcpAttachDisabled??=!1,t.mcpAttachCloudSignaled??=!1,t.attachResolvers??=new Map,t.attachResultListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function ui(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 Xn(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 ed(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 ia(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function sa(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()?ed({state:e,configId:r,generation:n}):ia({state:e,configId:r,generation:n}),s),s=>{throw ia({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[oa])return PA(t[oa]),t[oa];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Wn,refreshes:new Map,reconnects:new Map,missingHostRemovals:new Map,missingHostRemovalFences:new Map,reconnectDesiredGenerations:new Map,serverGenerations:new Map,configRevisions:new Map,configDesiredRevisions:new Map,configDesiredSources:new Map,credentialRevisions:new Map,oauthCredentialRevisions:new Map,oauthCredentialDomains:new Map,equalRevisionRebindDomains:new Map,preservedCredentialIdentities:new Map,stagedOAuthCredentials:new Map,bootOAuthCredentialBuffer:new Map,pendingRegistryCredentialDomains:new Set,registryCredentialIntents:new Map,registryCredentialIntentEpochs:new Map,registryCredentialFinalizationsByName:new Map,statusHostGeneration:1,statusReportSequence:0,statusFailureCategories:new Map,authRefreshNeededReportKeys:new Map,hostedCredentialOwnership:new Map,shouldProactivelyRefreshTokens:!0,backgroundRefreshIntervalId:void 0,credsListenerBound:!1,configIdsListenerBound:!1,registryGeneration:0,liveEditGenerations:new Map,attachmentCommandGenerations:new Map,attachmentCommandInFlightGenerations:new Map,attachmentCommandAppliedGenerations:new Map,mcpConfigsListenerBound:!1,embeddedRegistryConfigs:void 0,vfsListenerBound:!1,addServerListenerBound:!1,restartServerListenerBound:!1,removeServerListenerBound:!1,mcpRestartState:new Map,vfsGeneration:0,lastSuccessfulVfsMcpSignature:void 0,blockedVfsMcpNames:new Set,credentials:void 0,secretsClient:void 0,headerSecrets:{},headerSecretFailures:{},headerSecretsListenerBound:!1,featureFlagsListenerBound:!1,workspaceRoot:void 0,mcpConfigOverride:void 0,connectStarted:!1,reconnecting:!1,authenticating:!1,authenticationGeneration:0,authenticatingServerName:void 0,restartHistory:new Map,dynamicallyAddedConfigIds:new Set,failedAddConfigIds:new Set,nameCollisionAddConfigIds:new Set,authFallbackDisplacedConfigIds:new Set,sessionRemovedConfigIds:new Set,selectedRegistryConfigIds:void 0,registryConfigNamesById:new Map,oauthFailureCategoriesByConfigId:void 0,registryCredentialConfigs:new Map,registryCredentialConfigsById:new Map,lastStatusReport:void 0,diagnostics:[],pluginServerSource:void 0,pluginServerNames:new Set,pluginServerHosts:new Map,pluginReconcileQueue:Promise.resolve(),sessionPluginDisabledOverrides:new Map,sessionRegistryDisabledOverrides:new Map,sessionMcpConfigDisabledOverrides:new Map,currentLoad:void 0,ui:void 0,featureFlags:void 0,toolSearchLatched:!1,mcpCatalog:void 0,mcpAttachDisabled:!1,mcpAttachCloudSignaled:!1,catalogRefreshInFlight:void 0,attachResolvers:new Map,attachResultListenerBound:!1};return t[oa]=e,e}var sg=Symbol.for("__hermes_mcp_tool_registry__"),xA=Symbol.for("__hermes_mcp_extension_factory__");function ag(){let t=globalThis;return t[sg]??=new Map,t[sg]}function Tr(t){ag().set(t.name,t)}function cg(t,e){let r=ag();(e===void 0||r.get(t)===e)&&r.delete(t)}function ug(t){Reflect.set(t,xA,!0)}function aa(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 kA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function EA(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 TA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
|
|
9
|
-
`).trim()}function
|
|
8
|
+
deps: ${r}}`};var P1={keyword:"dependencies",type:"object",schemaType:"object",error:Yt.error,code(t){let[e,r]=x1(t);PC(t,e),xC(t,r)}};function x1({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 PC(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,Ps.propertyInData)(r,n,s,o.opts.ownProperties);t.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,Ps.checkReportMissingProp)(t,u)}):(r.if((0,Fp._)`${c} && (${(0,Ps.checkMissingProp)(t,a,i)})`),(0,Ps.reportMissingProp)(t,i),r.else())}}Yt.validatePropertyDeps=PC;function xC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,C1.alwaysValidSchema)(i,e[a])||(r.if((0,Ps.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},s);t.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),t.ok(s))}Yt.validateSchemaDeps=xC;Yt.default=P1});var TC=C(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var EC=j(),k1=B(),E1={message:"property name must be valid",params:({params:t})=>(0,EC._)`{propertyName: ${t.propertyName}}`},T1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:E1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,k1.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,EC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Up.default=T1});var Hp=C(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var Fc=wt(),zt=j(),A1=hr(),Uc=B(),M1={message:"must NOT have additional properties",params:({params:t})=>(0,zt._)`{additionalProperty: ${t.additionalProperty}}`},$1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:M1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,Uc.alwaysValidSchema)(s,r))return;let u=(0,Fc.allSchemaProperties)(n.properties),d=(0,Fc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,zt._)`${i} === ${A1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?m(g):e.if(f(g),()=>m(g))})}function f(g){let v;if(u.length>8){let w=(0,Uc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Fc.isOwnProperty)(e,w,g)}else u.length?v=(0,zt.or)(...u.map(w=>(0,zt._)`${g} === ${w}`)):v=zt.nil;return d.length&&(v=(0,zt.or)(v,...d.map(w=>(0,zt._)`${(0,Fc.usePattern)(t,w)}.test(${g})`))),(0,zt.not)(v)}function p(g){e.code((0,zt._)`delete ${o}[${g}]`)}function m(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,Uc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(h(g,v,!1),e.if((0,zt.not)(v),()=>{t.reset(),p(g)})):(h(g,v),a||e.if((0,zt.not)(v),()=>e.break()))}}function h(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Uc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};qp.default=$1});var $C=C(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var I1=ls(),AC=wt(),Gp=B(),MC=Hp(),O1={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&&MC.default.code(new I1.KeywordCxt(i,MC.default,"additionalProperties"));let s=(0,AC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Gp.mergeEvaluated.props(e,(0,Gp.toHash)(s),i.props));let a=s.filter(l=>!(0,Gp.alwaysValidSchema)(i,r[l]));if(a.length===0)return;let c=e.name("valid");for(let l of a)u(l)?d(l):(e.if((0,AC.propertyInData)(e,o,l,i.opts.ownProperties)),d(l),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(l),t.ok(c);function u(l){return i.opts.useDefaults&&!i.compositeRule&&r[l].default!==void 0}function d(l){t.subschema({keyword:"properties",schemaProp:l,dataProp:l},c)}}};Zp.default=O1});var NC=C(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var IC=wt(),qc=j(),OC=B(),zC=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,IC.allSchemaProperties)(r),c=a.filter(h=>(0,OC.alwaysValidSchema)(i,r[h]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof qc.Name)&&(i.props=(0,zC.evaluatedPropsToName)(e,i.props));let{props:l}=i;f();function f(){for(let h of a)u&&p(h),i.allErrors?m(h):(e.var(d,!0),m(h),e.if(d))}function p(h){for(let g in u)new RegExp(h).test(g)&&(0,OC.checkStrictMode)(i,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function m(h){e.forIn("key",n,g=>{e.if((0,qc._)`${(0,IC.usePattern)(t,h)}.test(${g})`,()=>{let v=c.includes(h);v||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:zC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,qc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,qc.not)(d),()=>e.break())})})}}};Bp.default=z1});var DC=C(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var N1=B(),D1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,N1.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};Wp.default=D1});var LC=C(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var L1=wt(),j1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:L1.validateUnion,error:{message:"must match a schema in anyOf"}};Vp.default=j1});var jC=C(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var Hc=j(),F1=B(),U1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Hc._)`{passingSchemas: ${t.passing}}`},q1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:U1,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,F1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Hc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Hc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Hc.Name)})})}}};Kp.default=q1});var FC=C(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var H1=B(),G1={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,H1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};Jp.default=G1});var HC=C(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var Gc=j(),qC=B(),Z1={message:({params:t})=>(0,Gc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Gc._)`{failingKeyword: ${t.ifClause}}`},B1={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Z1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,qC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=UC(n,"then"),i=UC(n,"else");if(!o&&!i)return;let s=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),o&&i){let d=e.let("ifClause");t.setParams({ifClause:d}),e.if(a,u("then",d),u("else",d))}else o?e.if(a,u("then")):e.if((0,Gc.not)(a),u("else"));t.pass(s,()=>t.error(!0));function c(){let d=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(d)}function u(d,l){return()=>{let f=t.subschema({keyword:d},a);e.assign(s,a),t.mergeValidEvaluated(f,s),l?e.assign(l,(0,Gc._)`${d}`):t.setParams({ifClause:d})}}}};function UC(t,e){let r=t.schema[e];return r!==void 0&&!(0,qC.alwaysValidSchema)(t,r)}Yp.default=B1});var GC=C(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var W1=B(),V1={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,W1.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Xp.default=V1});var ZC=C(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var K1=zp(),J1=wC(),Y1=Np(),X1=RC(),Q1=CC(),eF=kC(),tF=TC(),rF=Hp(),nF=$C(),oF=NC(),iF=DC(),sF=LC(),aF=jC(),cF=FC(),uF=HC(),dF=GC();function lF(t=!1){let e=[iF.default,sF.default,aF.default,cF.default,uF.default,dF.default,tF.default,rF.default,eF.default,nF.default,oF.default];return t?e.push(J1.default,X1.default):e.push(K1.default,Y1.default),e.push(Q1.default),e}Qp.default=lF});var BC=C(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var we=j(),fF={message:({schemaCode:t})=>(0,we.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,we._)`{format: ${t}}`},pF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:fF,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 m=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),h=r.const("fDef",(0,we._)`${m}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,we._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(g,(0,we._)`${h}.type || "string"`).assign(v,(0,we._)`${h}.validate`),()=>r.assign(g,(0,we._)`"string"`).assign(v,h)),t.fail$data((0,we.or)(w(),b()));function w(){return c.strictSchema===!1?we.nil:(0,we._)`${s} && !${v}`}function b(){let x=d.$async?(0,we._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,we._)`${v}(${n})`,S=(0,we._)`(typeof ${v} == "function" ? ${x} : ${v}.test(${n}))`;return(0,we._)`${v} && ${v} !== true && ${g} === ${e} && !${S}`}}function p(){let m=l.formats[i];if(!m){w();return}if(m===!0)return;let[h,g,v]=b(m);h===e&&t.pass(x());function w(){if(c.strictSchema===!1){l.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function b(S){let R=S instanceof RegExp?(0,we.regexpCode)(S):c.code.formats?(0,we._)`${c.code.formats}${(0,we.getProperty)(i)}`:void 0,I=r.scopeValue("formats",{key:i,ref:S,code:R});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,we._)`${I}.validate`]:["string",S,I]}function x(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!d.$async)throw new Error("async format in sync schema");return(0,we._)`await ${v}(${n})`}return typeof g=="function"?(0,we._)`${v}(${n})`:(0,we._)`${v}.test(${n})`}}}};eh.default=pF});var WC=C(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});var hF=BC(),mF=[hF.default];th.default=mF});var VC=C(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.contentVocabulary=Oo.metadataVocabulary=void 0;Oo.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Oo.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var JC=C(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var gF=nC(),yF=yC(),vF=ZC(),_F=WC(),KC=VC(),SF=[gF.default,yF.default,(0,vF.default)(),_F.default,KC.metadataVocabulary,KC.contentVocabulary];rh.default=SF});var XC=C(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});Zc.DiscrError=void 0;var YC;(function(t){t.Tag="tag",t.Mapping="mapping"})(YC||(Zc.DiscrError=YC={}))});var eP=C(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var zo=j(),nh=XC(),QC=xc(),wF=fs(),bF=B(),RF={message:({params:{discrError:t,tagName:e}})=>t===nh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,zo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},CF={keyword:"discriminator",type:"object",schemaType:"object",error:RF,code(t){let{gen:e,data:r,schema:n,parentSchema:o,it:i}=t,{oneOf:s}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,zo._)`${r}${(0,zo.getProperty)(a)}`);e.if((0,zo._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:nh.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function d(){let p=f();e.if(!1);for(let m in p)e.elseIf((0,zo._)`${u} === ${m}`),e.assign(c,l(p[m]));e.else(),t.error(!1,{discrError:nh.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function l(p){let m=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:p},m);return t.mergeEvaluated(h,zo.Name),m}function f(){var p;let m={},h=v(o),g=!0;for(let x=0;x<s.length;x++){let S=s[x];if(S?.$ref&&!(0,bF.schemaHasRulesButRef)(S,i.self.RULES)){let I=S.$ref;if(S=QC.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),S instanceof QC.SchemaEnv&&(S=S.schema),S===void 0)throw new wF.default(i.opts.uriResolver,i.baseId,I)}let R=(p=S?.properties)===null||p===void 0?void 0:p[a];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);g=g&&(h||v(S)),w(R,x)}if(!g)throw new Error(`discriminator: "${a}" must be required`);return m;function v({required:x}){return Array.isArray(x)&&x.includes(a)}function w(x,S){if(x.const)b(x.const,S);else if(x.enum)for(let R of x.enum)b(R,S);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function b(x,S){if(typeof x!="string"||x in m)throw new Error(`discriminator: "${a}" values must be unique strings`);m[x]=S}}}};oh.default=CF});var tP=C((E3,PF)=>{PF.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var sh=C((le,ih)=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});le.MissingRefError=le.ValidationError=le.CodeGen=le.Name=le.nil=le.stringify=le.str=le._=le.KeywordCxt=le.Ajv=void 0;var xF=YR(),kF=JC(),EF=eP(),rP=tP(),TF=["/properties"],Bc="http://json-schema.org/draft-07/schema",No=class extends xF.default{_addVocabularies(){super._addVocabularies(),kF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(EF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(rP,TF):rP;this.addMetaSchema(e,Bc,!1),this.refs["http://json-schema.org/schema"]=Bc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Bc)?Bc:void 0)}};le.Ajv=No;ih.exports=le=No;ih.exports.Ajv=No;Object.defineProperty(le,"__esModule",{value:!0});le.default=No;var AF=ls();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return AF.KeywordCxt}});var Do=j();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return Do._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return Do.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return Do.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return Do.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return Do.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return Do.CodeGen}});var MF=Cc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return MF.default}});var $F=fs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return $F.default}})});var dP=C(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.formatNames=Qt.fastFormats=Qt.fullFormats=void 0;function Xt(t,e){return{validate:t,compare:e}}Qt.fullFormats={date:Xt(sP,dh),time:Xt(ch(!0),lh),"date-time":Xt(nP(!0),cP),"iso-time":Xt(ch(),aP),"iso-date-time":Xt(nP(),uP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:LF,"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:ZF,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:jF,int32:{type:"number",validate:qF},int64:{type:"number",validate:HF},float:{type:"number",validate:iP},double:{type:"number",validate:iP},password:!0,binary:!0};Qt.fastFormats={...Qt.fullFormats,date:Xt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,dh),time:Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,lh),"date-time":Xt(/^\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,cP),"iso-time":Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,aP),"iso-date-time":Xt(/^\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,uP),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};Qt.formatNames=Object.keys(Qt.fullFormats);function IF(t){return t%4===0&&(t%100!==0||t%400===0)}var OF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,zF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function sP(t){let e=OF.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&&IF(r)?29:zF[n])}function dh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var ah=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function ch(t){return function(r){let n=ah.exec(r);if(!n)return!1;let o=+n[1],i=+n[2],s=+n[3],a=n[4],c=n[5]==="-"?-1:1,u=+(n[6]||0),d=+(n[7]||0);if(u>23||d>59||t&&!a)return!1;if(o<=23&&i<=59&&s<60)return!0;let l=i-d*c,f=o-u*c-(l<0?1:0);return(f===23||f===-1)&&(l===59||l===-1)&&s<61}}function lh(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function aP(t,e){if(!(t&&e))return;let r=ah.exec(t),n=ah.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t<e?-1:0}var uh=/t|\s/i;function nP(t){let e=ch(t);return function(n){let o=n.split(uh);return o.length===2&&sP(o[0])&&e(o[1])}}function cP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function uP(t,e){if(!(t&&e))return;let[r,n]=t.split(uh),[o,i]=e.split(uh),s=dh(r,o);if(s!==void 0)return s||lh(n,i)}var NF=/\/|:/,DF=/^(?:[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 LF(t){return NF.test(t)&&DF.test(t)}var oP=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function jF(t){return oP.lastIndex=0,oP.test(t)}var FF=-(2**31),UF=2**31-1;function qF(t){return Number.isInteger(t)&&t<=UF&&t>=FF}function HF(t){return Number.isInteger(t)}function iP(){return!0}var GF=/[^\\]\\Z/;function ZF(t){if(GF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var lP=C(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.formatLimitDefinition=void 0;var BF=sh(),Nt=j(),Xr=Nt.operators,Wc={formatMaximum:{okStr:"<=",ok:Xr.LTE,fail:Xr.GT},formatMinimum:{okStr:">=",ok:Xr.GTE,fail:Xr.LT},formatExclusiveMaximum:{okStr:"<",ok:Xr.LT,fail:Xr.GTE},formatExclusiveMinimum:{okStr:">",ok:Xr.GT,fail:Xr.LTE}},WF={message:({keyword:t,schemaCode:e})=>(0,Nt.str)`should be ${Wc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Nt._)`{comparison: ${Wc[t].okStr}, limit: ${e}}`};Lo.formatLimitDefinition={keyword:Object.keys(Wc),type:"string",schemaType:"string",$data:!0,error:WF,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 BF.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,Nt._)`${f}[${c.schemaCode}]`);t.fail$data((0,Nt.or)((0,Nt._)`typeof ${p} != "object"`,(0,Nt._)`${p} instanceof RegExp`,(0,Nt._)`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 m=e.scopeValue("formats",{key:f,ref:p,code:s.code.formats?(0,Nt._)`${s.code.formats}${(0,Nt.getProperty)(f)}`:void 0});t.fail$data(l(m))}function l(f){return(0,Nt._)`${f}.compare(${r}, ${n}) ${Wc[o].fail} 0`}},dependencies:["format"]};var VF=t=>(t.addKeyword(Lo.formatLimitDefinition),t);Lo.default=VF});var mP=C((xs,hP)=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});var jo=dP(),KF=lP(),fh=j(),fP=new fh.Name("fullFormats"),JF=new fh.Name("fastFormats"),ph=(t,e={keywords:!0})=>{if(Array.isArray(e))return pP(t,e,jo.fullFormats,fP),t;let[r,n]=e.mode==="fast"?[jo.fastFormats,JF]:[jo.fullFormats,fP],o=e.formats||jo.formatNames;return pP(t,o,r,n),e.keywords&&(0,KF.default)(t),t};ph.get=(t,e="full")=>{let n=(e==="fast"?jo.fastFormats:jo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function pP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,fh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}hP.exports=xs=ph;Object.defineProperty(xs,"__esModule",{value:!0});xs.default=ph});var GP=C((d8,HP)=>{HP.exports=qP;qP.sync=EU;var FP=Rr("fs");function kU(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 UP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:kU(e,r)}function qP(t,e,r){FP.stat(t,function(n,o){r(n,n?!1:UP(o,t,e))})}function EU(t,e){return UP(FP.statSync(t),t,e)}});var KP=C((l8,VP)=>{VP.exports=BP;BP.sync=TU;var ZP=Rr("fs");function BP(t,e,r){ZP.stat(t,function(n,o){r(n,n?!1:WP(o,e))})}function TU(t,e){return WP(ZP.statSync(t),e)}function WP(t,e){return t.isFile()&&AU(t,e)}function AU(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 YP=C((p8,JP)=>{var f8=Rr("fs"),ou;process.platform==="win32"||global.TESTING_WINDOWS?ou=GP():ou=KP();JP.exports=$h;$h.sync=MU;function $h(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){$h(t,e||{},function(i,s){i?o(i):n(s)})})}ou(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function MU(t,e){try{return ou.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ox=C((h8,nx)=>{var Wo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",XP=Rr("path"),$U=Wo?";":":",QP=YP(),ex=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),tx=(t,e)=>{let r=e.colon||$U,n=t.match(/\//)||Wo&&t.match(/\\/)?[""]:[...Wo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Wo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Wo?o.split(r):[""];return Wo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},rx=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=tx(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(ex(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,m=XP.join(p,t),h=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+m:m;d(c(h,u,0))}),c=(u,d,l)=>new Promise((f,p)=>{if(l===o.length)return f(a(d+1));let m=o[l];QP(u+m,{pathExt:i},(h,g)=>{if(!h&&g)if(e.all)s.push(u+m);else return f(u+m);return f(c(u,d,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},IU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=tx(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=XP.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(QP.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 ex(t)};nx.exports=rx;rx.sync=IU});var sx=C((m8,Ih)=>{"use strict";var ix=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ih.exports=ix;Ih.exports.default=ix});var dx=C((g8,ux)=>{"use strict";var ax=Rr("path"),OU=ox(),zU=sx();function cx(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=OU.sync(t.command,{path:r[zU({env:r})],pathExt:e?ax.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=ax.resolve(o?t.options.cwd:"",s)),s}function NU(t){return cx(t)||cx(t,!0)}ux.exports=NU});var lx=C((y8,zh)=>{"use strict";var Oh=/([()\][%!^"`<>&|;, *?])/g;function DU(t){return t=t.replace(Oh,"^$1"),t}function LU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(Oh,"^$1"),e&&(t=t.replace(Oh,"^$1")),t}zh.exports.command=DU;zh.exports.argument=LU});var px=C((v8,fx)=>{"use strict";fx.exports=/^#!(.*)/});var mx=C((_8,hx)=>{"use strict";var jU=px();hx.exports=(t="")=>{let e=t.match(jU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var yx=C((S8,gx)=>{"use strict";var Nh=Rr("fs"),FU=mx();function UU(t){let r=Buffer.alloc(150),n;try{n=Nh.openSync(t,"r"),Nh.readSync(n,r,0,150,0),Nh.closeSync(n)}catch{}return FU(r.toString())}gx.exports=UU});var wx=C((w8,Sx)=>{"use strict";var qU=Rr("path"),vx=dx(),_x=lx(),HU=yx(),GU=process.platform==="win32",ZU=/\.(?:com|exe)$/i,BU=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function WU(t){t.file=vx(t);let e=t.file&&HU(t.file);return e?(t.args.unshift(t.file),t.command=e,vx(t)):t.file}function VU(t){if(!GU)return t;let e=WU(t),r=!ZU.test(e);if(t.options.forceShell||r){let n=BU.test(e);t.command=qU.normalize(t.command),t.command=_x.command(t.command),t.args=t.args.map(i=>_x.argument(i,n));let o=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${o}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function KU(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:VU(n)}Sx.exports=KU});var Cx=C((b8,Rx)=>{"use strict";var Dh=process.platform==="win32";function Lh(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function JU(t,e){if(!Dh)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=bx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function bx(t,e){return Dh&&t===1&&!e.file?Lh(e.original,"spawn"):null}function YU(t,e){return Dh&&t===1&&!e.file?Lh(e.original,"spawnSync"):null}Rx.exports={hookChildProcess:JU,verifyENOENT:bx,verifyENOENTSync:YU,notFoundError:Lh}});var kx=C((R8,Vo)=>{"use strict";var Px=Rr("child_process"),jh=wx(),Fh=Cx();function xx(t,e,r){let n=jh(t,e,r),o=Px.spawn(n.command,n.args,n.options);return Fh.hookChildProcess(o,n),o}function XU(t,e,r){let n=jh(t,e,r),o=Px.spawnSync(n.command,n.args,n.options);return o.error=o.error||Fh.verifyENOENTSync(o.status,n),o}Vo.exports=xx;Vo.exports.spawn=xx;Vo.exports.sync=XU;Vo.exports._parse=jh;Vo.exports._enoent=Fh});var Ix=C(qh=>{"use strict";var Ax=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,nq=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Mx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,oq=/\\([\u000b\u0020-\u00ff])/g,iq=/([\\"])/g,$x=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;qh.format=sq;qh.parse=aq;function sq(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!$x.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],!Mx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+uq(e[o])}return n}function aq(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?cq(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(!$x.test(n))throw new TypeError("invalid media type");var o=new dq(n.toLowerCase());if(r!==-1){var i,s,a;for(Ax.lastIndex=r;s=Ax.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(oq,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function cq(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 uq(t){var e=String(t);if(Mx.test(e))return e;if(e.length>0&&!nq.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(iq,"\\$1")+'"'}function dq(t){this.parameters=Object.create(null),this.type=t}});import{logger as W2}from"@hermes/logger";import{logger as IH}from"@hermes/logger";var pT="mcp-auth";function _e(t,e=t.ui){if(!e)return;let r=0;for(let n of t.servers.values())n.status==="auth_required"&&r++;e.setStatus(pT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as sH}from"@augmentcode/auggie-v2";import{logger as aH}from"@hermes/logger";import{logger as HT}from"@hermes/logger";import{logger as mT}from"@hermes/logger";function hT(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":hT(t,e,r)?"plugin":"local"}function gT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var zm=mT.child({prefix:"pi-mcp"}),yT="augment:mcp-status-report";function nr(t,e,r){let n=t.servers.get(e),o=n?.hostedCredentialProvenance;if(o?.kind==="accepted"&&o.hostedAccessTokenOnly===!0)return{serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain};let i=n?.targetCredentialProvenance?n.targetCredentialProvenance.credential:t.credentialRevisions?.get(e);return{serverGeneration:t.serverGenerations?.get(e)??0,mcpConfigId:r??n?.config.id,credentialRevision:i?.revision,credentialRevisionDomain:i?.domain}}function oi(t,e,r,n){let o=nr(t,e);return o.serverGeneration!==n.serverGeneration||o.mcpConfigId!==n.mcpConfigId||o.credentialRevision!==n.credentialRevision||o.credentialRevisionDomain!==n.credentialRevisionDomain?!1:(t.statusFailureCategories??=new Map,t.statusFailureCategories.set(e,{category:r,...n}),!0)}function it(t,e,r){if(r){let o=nr(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 vT(t,e){t.statusFailureCategories??=new Map;let r=t.statusFailureCategories.get(e);if(typeof r=="string")return r;let n=nr(t,e);if(r?.serverGeneration===n.serverGeneration&&r.mcpConfigId===n.mcpConfigId&&r.credentialRevision===n.credentialRevision&&r.credentialRevisionDomain===n.credentialRevisionDomain)return r.category;t.statusFailureCategories.delete(e),t.authRefreshNeededReportKeys?.delete(e)}var Qs=3e4;function _T(t){switch(t.status){case"success":return"connected";case"failed":case"auth_required":return"failed";case"initializing":{let e=t.connectStartedAt;return e!==void 0&&Date.now()-e>=Qs?"failed":void 0}default:return}}var Nm="authentication required",ST="Authentication refresh is pending in the backend; retry shortly.",wT="timed out connecting after 30s",bT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",RT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",CT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",PT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",xT="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",kT="Server was not started: this session's Space policy does not allow it.",ET="Server was not started: its shared credential is not available to this session's identity.",TT="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 AT(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)?RT:bT,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",...$T({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}MT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function MT(t){let{state:e,servers:r,liveConfigIds:n,reportedConfigIds:o,reportedNames:i,idlessReportedNames:s}=t;for(let[a,c]of e.oauthFailureCategoriesByConfigId??[]){if(n.has(a)||o.has(a)||e.sessionRemovedConfigIds.has(a))continue;let u=Lm(e,a);if(u===void 0)continue;let d=e.registryConfigNamesById.get(a)??c.serverName;s.has(d)||(o.add(a),r.push({name:d,source:"registry",status:"failed",...u,mcpConfigId:a}),i.add(d))}}function Dm(t,e){let r=new Map;for(let[n,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let i=o;typeof i.category=="string"&&typeof i.config_id=="string"&&i.config_id!==""&&r.set(i.config_id,{category:i.category,serverName:n})}t.oauthFailureCategoriesByConfigId=r}function Lm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:xT,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:kT,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:ET,failureCategory:"share_identity_excluded"};default:return}}function $T(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:TT,failureCategory:"auth_terminal"};let i=Lm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?PT:CT,failureCategory:"configuration"}}function IT(t,e){return e!==void 0?e.isAuthError?Nm:e.error:t.status==="initializing"?wT:t.lastError??(t.status==="auth_required"?Nm:void 0)}function OT(t,e){if(t.targetCredentialProvenance)return t.targetCredentialProvenance.credential;let r=e.statusFailureCategories?.get(t.name);return typeof r=="object"?{revision:r.credentialRevision,domain:r.credentialRevisionDomain}:e.credentialRevisions?.get(t.name)}function zT(t,e){let r=_T(t);if(r===void 0)return;let n=vT(e,t.name),o=r==="connected"?gT(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=e.statusFailureCategories?.get(t.name),c=OT(t,e);return c?.revision!==void 0&&c.domain!==void 0&&(i.credentialRevision=c.revision,i.credentialRevisionDomain=c.domain),r==="failed"&&(i.errorMessage=n==="auth_refresh_needed"?ST:IT(t,o),i.failureCategory=n??(t.status==="auth_required"||o?.isAuthError===!0?"auth_terminal":"transport_transient"),typeof a=="object"&&(i.serverGeneration=a.serverGeneration)),i}function NT(t){let e=[];for(let r of t.servers.values()){let n=zT(r,t);n!==void 0&&e.push(n)}return AT(t,e),e}function D(t,e){try{let r=NT(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(yT,o),zm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){zm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var ea={local:4,registry:3,plugin:2,vfs:1};function Ut(t){return t.hostLeases??=new Map,t.hostLeases}function DT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function ii(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function si(t,e){return t.kind===e.kind&&t.identity===e.identity}function jm(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function qu(t,e){let r=DT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function ta(t,e,r){if(r.kind==="registry"){ii(t).set(e,{kind:"domain",domain:r.identity});return}ii(t).set(e,{kind:"blocked"})}function Hu(t,e,r){r&&t.servers.get(e)===r&&t.servers.delete(e),r&&t.pluginServerHosts.get(e)===r&&(t.pluginServerHosts.delete(e),t.pluginServerNames.delete(e))}function Pr(t,e){return t.registrySource!==void 0?{kind:"registry",identity:`user:${t.id??t.name}`}:t.vfsSource!==void 0?{kind:"vfs",identity:t.id??t.name}:{kind:e??"local",identity:t.id??t.name}}function Q(t,e,r){let n=Ut(t),o=n.get(e);if(o)return o;let i=t.pluginServerHosts.get(e)===r?"plugin":void 0,s=r.config,a=s?Pr(s,i):{kind:i??"local",identity:e},c={owner:a,revision:qu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),ta(t,e,a),c}function Fm(t){let{state:e,name:r,host:n}=t,o=Ut(e),i=o.get(r);if(!i||i.host!==n||i.owner.kind!=="local"||e.servers.get(r)!==n)return;let s={owner:{kind:"plugin",identity:n.config.id??r},revision:qu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),ta(e,r,s.owner),s}function ai(t){let{state:e,name:r,owner:n,expectedRevision:o,expectedHost:i}=t,s=Ut(e),a=s.get(r);if(a){if(a.retirement?.settled)return;let l=ea[n.kind]>ea[a.owner.kind],f=ea[n.kind]===ea[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?jm(a):void 0;Hu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:qu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),ta(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Gu(t){if(!t)return;let e=await t.teardown;if(e.status==="failed")throw e.error instanceof Error?e.error:new Error(String(e.error))}function ve(t){let{state:e,name:r,retirement:n,result:o}=t;if(n.settled)return!1;n.settled=!0,n.result=o;let s=Ut(e).get(r);return s?.retirement===n&&(o.status==="failed"?(s.host=void 0,ii(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function ra(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e).get(r);return!s||s.revision!==o||!si(s.owner,n)||s.host!==void 0||s.retirement!==void 0?!1:(s.host=i,e.servers.set(r,i),n.kind==="plugin"?(e.pluginServerNames.add(r),e.pluginServerHosts.set(r,i)):(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),!0)}function st(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e).get(r);if(!s||s.revision!==o||!si(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=jm(s);if(a)return Hu(e,r,i),s.host=void 0,s.retirement=a,a}function Um(t){let{state:e,name:r,retiredOwner:n,retirement:o}=t,i=Ut(e),s=i.get(r),a=o.result;return!s||s.retirement!==o||s.host!==void 0||!o.settled||!si(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!si(s.owner,n)||s.revision!==o.incumbent.revision?(ta(e,r,s.owner),!0):(i.delete(r),ii(e).set(r,{kind:"blocked"}),!0))}function xe(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e),a=s.get(r);return!a||a.revision!==o||!si(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Hu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),ii(e).set(r,{kind:"blocked"}),!0)}function N(t,e){return Ut(t).get(e)}function Zu(t,e,r){let n=Ut(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function qm(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&&qm(t.url)===qm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Kn=class{_tokens=new Map;_authRequired=new Set;_retiredCredentials=new Set;_credentialRetirementGenerations=new Map;_credentialIdentities=new Map;get(e){return this._tokens.get(e)}commit(e,r,n){this._tokens.set(e,r),this._authRequired.delete(e),this._retiredCredentials.delete(e),n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e)}hasCredentialIdentity(e,r){return xr(this._credentialIdentities.get(e),r)}reconcileCredentialIdentity(e,r,n){return this._tokens.get(e)!==r||this._retiredCredentials.has(e)?!1:(n?this._credentialIdentities.set(e,{...n}):this._credentialIdentities.delete(e),!0)}set(e,r,n){this.commit(e,r,n)}persist(e,r,n){return Promise.resolve(void 0)}captureAuthenticatedIdentityVersion(e){return Promise.resolve(void 0)}captureRefreshIdentityVersion(e){return Promise.resolve(void 0)}persistAuthenticated(e,r,n,o){return this.persist(e,r,n)}persistRefresh(e,r,n,o){return this.persist(e,r,n)}restoreAfterSupersededAuthentication(e,r,n,o,i,s){return this.persist(e,n,s)}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async setAndPersist(e,r,n){await this.persist(e,r,n),this.set(e,r,n)}snapshot(){return{tokens:new Map(this._tokens),authRequired:new Set(this._authRequired),retiredCredentials:new Set(this._retiredCredentials),credentialRetirementGenerations:new Map(this._credentialRetirementGenerations),credentialIdentities:new Map([...this._credentialIdentities].map(([e,r])=>[e,{...r}]))}}seed(e){for(let[r,n]of e.tokens)this._tokens.set(r,n);for(let r of e.authRequired)this._authRequired.add(r);for(let r of e.retiredCredentials??[])this._retiredCredentials.add(r);for(let[r,n]of e.credentialRetirementGenerations??[])this._credentialRetirementGenerations.set(r,n);for(let[r,n]of e.credentialIdentities??[])this._credentialIdentities.set(r,{...n})}delete(e,r){this._tokens.delete(e),this._credentialIdentities.delete(e)}clearLocalCredential(e){this._tokens.delete(e),this._credentialIdentities.delete(e),this._authRequired.delete(e),this._retiredCredentials.add(e),this._credentialRetirementGenerations.set(e,(this._credentialRetirementGenerations.get(e)??0)+1)}retireCredential(e,r,n){return n?.preserveNameState||this.clearLocalCredential(e),Promise.resolve()}credentialRetirementGeneration(e){return this._credentialRetirementGenerations.get(e)??0}isCredentialRetired(e){return this._retiredCredentials.has(e)}markAuthRequired(e){this._authRequired.add(e)}isAuthRequired(e){return this._authRequired.has(e)}clearAuthRequired(e){this._authRequired.delete(e)}};function ui(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function Bu(t){try{return new URL(t).toString()}catch{return t}}function ci(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:Bu(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function qt(t,e){return ci(e.config)}function ft(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:Bu(t.url)===Bu(e.url)}function Wu(t,e){let r=ci(t),n=ci(e);return!r||!n?ft(t,e):xr(r,n)}function Vu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function LT(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 jT(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}=t;return e?r?!ft(e,r):n===void 0?!1:e.id===void 0?e.registrySource===void 0:e.id!==n:!1}function Hm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Vu(e,r):n!==void 0&&e!==n}function Gm(t,e,r){return r&&e!==void 0&&t!==void 0&&Vu(t,e)}function FT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Vu(i,n))}function Zm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if(jT({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Hm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Hm({identity:s.domain,...l})?!0:FT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function UT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ci(r);if(n!==void 0)return{id:n,name:e}}function qT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ci(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function Bm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=LT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:a}),u=c?.id??r,d=c?.registrySource!==void 0||c===void 0&&r!==void 0,l=c?.registrySource===void 0?void 0:`user:${c.id??c.name}`,f=Zm({currentConfig:a,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:i,currentDomain:s}),p=Gm(i,u,d),m=Gm(s,u,d),h=!f,g=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,w=f&&!(h||p||m||g);if(o==="durable"){let R=UT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,R,{preserveNameState:w})}let b=Zm({currentConfig:t.servers?.get(e)?.config,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:t.oauthCredentialDomains?.get(e),currentDomain:t.credentialRevisions?.get(e)?.domain}),x=h&&!b,S=!1;return t.equalRevisionRebindDomains?.delete(e),(x||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),S=!0),(x||m)&&t.credentialRevisions?.get(e)?.domain===s&&(t.credentialRevisions.delete(e),t.hostedCredentialOwnership?.delete(e),S=!0),x&&o==="durable"&&t.expectedCredentialDomains?.set(e,{kind:"blocked"}),qT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:x,retiredConfig:c}),S&&(ui(t,e),it(t,e),t.authRefreshNeededReportKeys?.delete(e)),x}function pt(t,e,r,n){return Bm(t,e,r,n,"durable")}function di(t,e,r,n){return Bm(t,e,r,n,"session")}function Wm(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 Vm="augment:mcp-oauth-credentials",Km=300*1e3,GT=256,Ku=HT.child({prefix:"pi-mcp"}),xt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function at(t){return`user:${t}`}function cn(t){let{state:e,name:r,revision:n}=t;if(e.credentialRevisions??=new Map,e.oauthCredentialRevisions??=new Map,e.oauthCredentialDomains??=new Map,e.hostedCredentialOwnership?.delete(r),n===void 0){e.credentialRevisions.delete(r),e.oauthCredentialDomains.delete(r),e.authRefreshNeededReportKeys?.delete(r);return}let o={...n,revision:n.revision.replace(/^0+(?=\d)/,"")},i=e.credentialRevisions.get(r);e.credentialRevisions.set(r,o),(i?.revision!==o.revision||i?.domain!==o.domain)&&e.authRefreshNeededReportKeys?.delete(r);let s=e.oauthCredentialRevisions.get(o.domain);(s===void 0||kr(o.revision,s)>0)&&e.oauthCredentialRevisions.set(o.domain,o.revision),e.oauthCredentialDomains.set(r,o.domain)}function Er(t){let e=t.indexOf(":");if(e<=0||e===t.length-1)return t;let r=t.slice(0,e);return r!=="private"&&r!=="shared"&&r!=="recipient"&&r!=="user"&&r!=="tenant"?t:at(t.slice(e+1))}function ct(t){return/^secret:(private|shared):.+/.test(t)}function un(t){return t.ownerDomain??Er(t.domain)}function Jm(t,e,r){let n=at(e);return r!==void 0?r===n:ct(t)||Er(t)===n}function ZT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function BT(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 WT(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function VT(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&ZT(t.credentialRevisions.get(e),r.credentialRevision)&&WT(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function KT(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 JT(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??"")||!ft(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 Ym(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 Xm(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Km)&&or(t,n)}function YT(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&or(t,e)}function Qm(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();Xm(e,a);let c=un(n),u=ct(c)?`${c}\0${r}`:c,d=s.get(u),l=d?.credential.credential_revision??d?.credential.credentialRevision;if(typeof l=="string"&&kr(n.revision,l)<=0)return;!d&&s.size>=GT&&YT(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)},Km),f.expiryTimer.unref?.(),Ku.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function XT(t,e){Tr(t);let r=(t.registryCredentialIntentEpochs.get(e)??0)+1;return t.registryCredentialIntentEpochs.set(e,r),r}function Ke(t){let{state:e,domain:r,epoch:n,preserveFence:o=!1,preserveBootCredential:i=!1}=t;Tr(e);let s=e.registryCredentialIntents.get(r);if(!(n!==void 0&&s?.epoch!==n)){if(!o&&s?.configName){let a=e.expectedCredentialDomains.get(s.configName);a?.kind==="domain"&&a.domain===r&&e.expectedCredentialDomains.set(s.configName,{kind:"blocked"})}e.pendingRegistryCredentialDomains.delete(r),e.registryCredentialIntents.delete(r),e.stagedOAuthCredentials.delete(r),i||or(e,r)}}function na(t){let{state:e,domain:r,forceNew:n=!1}=t;Tr(e);let o=e.registryCredentialIntents.get(r);if(o&&!n)return e.pendingRegistryCredentialDomains.add(r),{domain:r,...o};let i=o?.configFingerprint===void 0?e.stagedOAuthCredentials.get(r):void 0;o&&Ke({state:e,domain:r,epoch:o.epoch});let s={epoch:XT(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 eg(t,e){Tr(t);for(let[r,n]of t.registryCredentialIntents)e.has(r)||Ke({state:t,domain:r,epoch:n.epoch});for(let r of t.pendingRegistryCredentialDomains)e.has(r)||(t.pendingRegistryCredentialDomains.delete(r),t.stagedOAuthCredentials.delete(r));for(let r of t.stagedOAuthCredentials.keys())e.has(r)||t.stagedOAuthCredentials.delete(r);for(let r of t.bootOAuthCredentialBuffer?.keys()??[]){let n=r.split("\0",1)[0];!e.has(r)&&!ct(n)&&or(t,r)}for(let r of e){let n=t.registryCredentialIntents.get(r);na({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function QT(t){let{state:e,config:r}=t;if(r.id===void 0||r.registrySource===void 0||N(e,r.name)?.owner.kind==="local")return;Tr(e);let n=at(r.id),o=KT(r),i=JT({state:e,config:r,domain:n});i||e.equalRevisionRebindDomains.delete(r.name);let s=e.registryCredentialIntents.get(n);if(s&&s.configFingerprint===void 0){s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i;let a=e.stagedOAuthCredentials.get(n);a?.intentEpoch===s.epoch&&(a.configFingerprint=o)}else s&&s.configFingerprint!==o?(Ke({state:e,domain:n,epoch:s.epoch}),s=void 0):s&&(s.allowEqualRevisionRebind=i);if(!s){let a=na({state:e,domain:n});if(s=e.registryCredentialIntents.get(n),!s||s.epoch!==a.epoch)return;s.configFingerprint=o,s.configName=r.name,s.allowEqualRevisionRebind=i}return e.pendingRegistryCredentialDomains.add(n),eA({state:e,config:r,domain:n}),{domain:n,...s}}function tg(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;Tr(e);let i=un(r),s=e.registryCredentialIntents.get(i);if(!s||!e.pendingRegistryCredentialDomains.has(i))return;let a=e.oauthCredentialRevisions.get(r.domain),c=e.stagedOAuthCredentials.get(i),d=c?.intentEpoch===s.epoch&&c.configFingerprint===s.configFingerprint?c.credential.credential_revision??c.credential.credentialRevision:void 0,l=a===void 0?void 0:kr(r.revision,a),f=l===0;l!==void 0&&l<0||f&&s.configFingerprint!==void 0&&!s.allowEqualRevisionRebind||typeof d=="string"&&kr(r.revision,d)<=0||e.stagedOAuthCredentials.set(i,{credential:n,suppressReconnect:o,intentEpoch:s.epoch,configFingerprint:s.configFingerprint,requiresEqualRevisionRebind:f})}function eA(t){let{state:e,config:r,domain:n}=t,o=e.oauthCredentialDomains.get(r.name);e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:n});let i=e.credentialRevisions.get(r.name);(o===void 0||i?.ownerDomain!==void 0&&i.ownerDomain!==n||i?.ownerDomain===void 0&&!ct(o)&&Er(o)!==n)&&(e.oauthCredentialDomains.delete(r.name),e.credentialRevisions.delete(r.name),e.hostedCredentialOwnership?.delete(r.name),it(e,r.name),e.authRefreshNeededReportKeys?.delete(r.name))}function tA(t){let{state:e,config:r,pi:n,intent:o}=t,i=e.stagedOAuthCredentials.get(o.domain);if(!i||i.intentEpoch!==o.epoch||i.configFingerprint!==o.configFingerprint||i.requiresEqualRevisionRebind&&!o.allowEqualRevisionRebind)return;e.stagedOAuthCredentials.delete(o.domain),i.requiresEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0,preserveBootCredential:!0});let s={[r.name]:i.credential};n.events.emit(Vm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function rA(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();Xm(e,o);let i=e.bootOAuthCredentialBuffer?.get(r);if(i)return or(e,r),i;for(let[s,a]of e.bootOAuthCredentialBuffer??[])if(a.serverName===n&&ct(s.split("\0",1)[0]))return or(e,s),a}function nA(t){let{config:e,pi:r,buffered:n}=t;Ku.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),Ku.info("MCP OAuth boot credential replayed",{hasRegistryConfigId:e.id!==void 0,registryOwned:e.registrySource!==void 0,visibility:"public"});let o={[e.name]:n.credential};r.events.emit(Vm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function oA(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(ft(n,r)){if(n.name===r.name)return;await di(e,n.name,n.id,n),e.tokens.clearLocalCredential(n.name),e.preservedCredentialIdentities?.delete(n.name),e.expectedCredentialDomains.set(n.name,{kind:"blocked"}),e.registryCredentialConfigs.delete(n.name);return}await pt(e,r.name,n.id,n);let o=e.expectedCredentialDomains.get(r.name);return o?.kind==="blocked"?o:void 0}function iA(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=VT(e,r.name,o);Ke({state:e,domain:n.domain,epoch:n.epoch,preserveFence:!c}),c&&(e.expectedCredentialDomains.set(r.name,{kind:"blocked"}),o.restoreFailure!==void 0&&e.statusFailureCategories.set(r.name,o.restoreFailure))}let a=`Registry credential replacement failed for ${r.name}: ${i instanceof Error?i.message:String(i)}`;return e.diagnostics.push({server:r.name,message:a,origin:"registry"}),new xt(a)}async function sA(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 oA({state:e,config:r,previousConfig:i})}catch(m){throw iA({state:e,config:r,intent:o,rollbackSnapshot:s,cause:m})}let u=e.registryCredentialIntents.get(o.domain);c&&u?.epoch===o.epoch&&e.expectedCredentialDomains.get(r.name)===c&&e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let d=e.expectedCredentialDomains.get(r.name);if(u?.epoch!==o.epoch||u.configFingerprint!==o.configFingerprint||d?.kind!=="domain"||d.domain!==o.domain)return Ke({state:e,domain:o.domain,epoch:o.epoch}),!1;let l=r.id;if(l===void 0)return!1;let f={...r};e.registryConfigNamesById.set(l,r.name),e.registryCredentialConfigs.set(r.name,f),e.registryCredentialConfigsById.set(l,f),o.allowEqualRevisionRebind&&e.equalRevisionRebindDomains.set(r.name,o.domain),tA({state:e,config:r,pi:n,intent:o});let p=rA({state:e,domain:o.domain,serverName:r.name});return Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&nA({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=QT({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=BT(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 sA({state:e,config:r,pi:n,intent:i,previousConfig:d,rollbackSnapshot:a})});return e.registryCredentialFinalizationsByName.set(r.name,u),s.finalization=u,u.then(()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)},()=>{e.registryCredentialFinalizationsByName.get(r.name)===u&&e.registryCredentialFinalizationsByName.delete(r.name)}),u}import{SettingsManager as _A}from"@augmentcode/auggie-v2";import{homedir as rg}from"node:os";import{sep as aA}from"node:path";var Ju=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},cA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,uA=/\\\$\{/g,dA=new Set(["workspaceFolder","augmentToken"]),ng="${workspaceFolder}";function og(t,e){return t.includes(ng)?t.split(ng).join(e):t}function ig(t,e){return t.includes("${")?t.replace(cA,(n,o,i)=>{if(dA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Ju(o)}).replace(uA,"${"):t}function lA(t){return t.startsWith("~")?t==="~"?rg():t.startsWith("~/")||t.startsWith(`~${aA}`)?rg()+t.slice(1):t:t}function Yu(t,e,r){return lA(ig(og(t,e),r))}function Jn(t,e,r){return ig(og(t,e),r)}function sg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Jn(i,e,r);return n}var fA="$augment-";function pA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(fA)?i:Jn(i,e,r);return n}function Ht(t,e){let r=process.env;return{...t,url:Jn(t.url,e,r),headers:pA(t.headers,e,r)}}function Gt(t,e){let r=process.env;return{...t,command:Yu(t.command,e,r),args:t.args.map(n=>Jn(n,e,r)),env:t.env?sg(t.env,e,r):void 0,cwd:t.cwd?Yu(t.cwd,e,r):e}}import{readFileSync as mA}from"node:fs";var kt=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Yn(t){if(t.type==="stdio"||t.type==="http"||t.type==="sse")return t.type;if(t.url)return"http";if(t.command)return"stdio"}function hA(t){if(!t)return;let e={};for(let[r,n]of Object.entries(t))n!=null&&(e[r]=String(n));return Object.keys(e).length>0?e:void 0}function Xn(t,e){let r=Yn(e);if(!r)throw new kt(`MCP server "${t}" must declare a 'command' (stdio) or 'url' (http/sse) property`);if(r==="http"||r==="sse"){if(!e.url)throw new kt(`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 kt(`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:hA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var ug=t=>mA(t,"utf8");function oa(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ag(t){return oa(t)&&("command"in t||"url"in t)}function Qu(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function cg(t,e){return Qu(t.name)??e}function Xu(t,e){let r=Yn(t);if(r==="http"||r==="sse")return Qu(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return Qu(t.name,t.title,n)??e}function gA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[Xu(n,String(r)),n]});if(oa(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[Xu(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(oa(n))return Object.entries(n).map(([o,i])=>{let s=i;return[cg(s,o),s]})}if(ag(t)){let r=t;return[[Xu(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(ag))return Object.entries(t).map(([r,n])=>{if(!oa(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[cg(o,r),o]})}throw new Error("unrecognized MCP config JSON shape (expected an array of servers, a { servers|mcpServers } array/record, a single server object, or a Claude-Desktop-style record)")}function ed(t){return t instanceof Error?t.message:String(t)}function yA(t,e,r,n,o){if(r)return e;try{return n(t)}catch(i){o.push({message:`Failed to read --mcp-config file "${t}": ${ed(i)}`});return}}function vA(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=yA(t,n,o,e,r);if(s===void 0)return[];let a;try{a=JSON.parse(s)}catch(c){return r.push({message:`Failed to parse --mcp-config ${i}: ${ed(c)}`}),[]}try{return gA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${ed(c)}`}),[]}}function td(t,e=ug){let r={},n=[];for(let o of t)for(let[i,s]of vA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function rd(t,e=ug){return!t||t.length===0?new Set:new Set(Object.keys(td(t,e).servers))}var SA=["global","project","local","managed"];function wA(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 bA(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 RA(t,e,r){let n=td(t);r.push(...n.diagnostics);let o=n.servers;if(!e||e.size===0)return o;for(let[i,s]of Object.entries(o)){let a=e.get(i);a!==void 0&&(o[i]={...s,disabled:a})}return o}function CA(t,e,r){let n=_A.create(t,e);for(let{scope:o,error:i}of n.drainErrors()){let s=i.message.includes("parse settings JSON")?"parse":"read";r.push({message:`Failed to ${s} ${o} settings.json: ${i.message}`})}return bA(SA.map(o=>wA(n,o)))}function Qn(t,e,r,n){let o=[],i=r&&r.length>0?RA(r,n,o):CA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=Xn(a,c);s.push(u.type==="stdio"?Gt(u,t):Ht(u,t))}catch(u){let d=u instanceof kt?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 hg}from"@augmentcode/auggie-v2";import{logger as zA}from"@hermes/logger";import{Type as NA}from"@sinclair/typebox";var ia=Symbol.for("__pi_mcp_state__");function PA(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 xA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function kA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&PA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&xA(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 EA(t){t.dynamicallyAddedConfigIds??=new Set,t.failedAddConfigIds??=new Set,t.nameCollisionAddConfigIds??=new Set,t.authFallbackDisplacedConfigIds??=new Set,t.sessionRemovedConfigIds??=new Set,t.registryConfigNamesById??=new Map,t.registryCredentialConfigs??=new Map,t.registryCredentialConfigsById??=new Map,t.toolSearchLatched??=!1,t.sessionMcpConfigDisabledOverrides??=new Map,t.reconnects??=new Map,t.missingHostRemovals??=new Map,t.missingHostRemovalFences??=new Map,t.reconnectDesiredGenerations??=new Map,t.serverGenerations??=t.hostGenerations??new Map,t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map,t.credentialRevisions??=new Map,t.oauthCredentialRevisions??=new Map,t.oauthCredentialDomains??=new Map;let e=t.equalRevisionRebindDomains===void 0;t.equalRevisionRebindDomains??=new Map,t.preservedCredentialIdentities??=new Map,t.stagedOAuthCredentials??=new Map,t.pendingRegistryCredentialDomains??=new Set,t.registryCredentialIntents??=new Map,t.registryCredentialIntentEpochs??=new Map,t.registryCredentialFinalizationsByName??=new Map;for(let r of t.pendingRegistryCredentialDomains)if(!t.registryCredentialIntents.has(r)){let n=(t.registryCredentialIntentEpochs.get(r)??0)+1;t.registryCredentialIntentEpochs.set(r,n),t.registryCredentialIntents.set(r,{epoch:n,configFingerprint:void 0,configName:void 0,allowEqualRevisionRebind:!1,finalization:void 0})}for(let r of t.registryCredentialIntents.values())r.allowEqualRevisionRebind??=!1;for(let[r,n]of t.stagedOAuthCredentials){let o=t.registryCredentialIntents.get(r);if(!o){t.stagedOAuthCredentials.delete(r);continue}let i=n;i.intentEpoch??=o.epoch,i.configFingerprint??=o.configFingerprint,i.requiresEqualRevisionRebind??=!1}t.statusHostGeneration??=1,t.statusReportSequence??=0,t.statusFailureCategories??=new Map,t.authRefreshNeededReportKeys??=new Map,t.hostedCredentialOwnership??=new Map,e&&kA(t),t.authenticationGeneration??=0,t.authenticatingServerName??=void 0,t.liveEditGenerations??=new Map,t.blockedVfsMcpNames??=new Set,t.pluginServerHosts||(t.pluginServerHosts=new Map),t.toolRegistrationsByPi??=new WeakMap,t.hostLeases??=new Map,t.hostLeaseRevisions??=new Map,t.expectedCredentialDomains??=new Map;for(let[r,n]of t.servers)n.config!==void 0&&Q(t,r,n);t.pluginReconcileQueue??=Promise.resolve(),t.mcpAttachDisabled??=!1,t.mcpAttachCloudSignaled??=!1,t.attachResolvers??=new Map,t.attachResultListenerBound??=!1,t.attachmentCommandGenerations??=new Map,t.attachmentCommandInFlightGenerations??=new Map,t.attachmentCommandAppliedGenerations??=new Map}async function li(t,e){for(;;){let r=t.missingHostRemovals.get(e);if(!r)return;try{await r.promise}catch{}if(t.missingHostRemovals.get(e)===r)return}}function eo(t){let{state:e,configId:r,generation:n}=t;e.attachmentCommandGenerations??=new Map,e.attachmentCommandInFlightGenerations??=new Map,e.attachmentCommandAppliedGenerations??=new Map;let o=e.attachmentCommandGenerations.get(r)??0;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o===0:n<o||n===e.attachmentCommandInFlightGenerations.get(r)||n===e.attachmentCommandAppliedGenerations.get(r)?!1:(e.attachmentCommandGenerations.set(r,n),e.attachmentCommandInFlightGenerations.set(r,n),!0)}function nd(t){let{state:e,configId:r,generation:n}=t;typeof n!="number"||n<=0||(e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r),e.attachmentCommandGenerations?.get(r)===n&&(e.attachmentCommandAppliedGenerations??=new Map,e.attachmentCommandAppliedGenerations.set(r,n)))}function sa(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function aa(t){let{state:e,configId:r,generation:n,operation:o,wasApplied:i}=t;return typeof n!="number"||!Number.isSafeInteger(n)||n<=0?o:o.then(s=>(i()?nd({state:e,configId:r,generation:n}):sa({state:e,configId:r,generation:n}),s),s=>{throw sa({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[ia])return EA(t[ia]),t[ia];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Kn,refreshes:new Map,reconnects:new Map,missingHostRemovals:new Map,missingHostRemovalFences:new Map,reconnectDesiredGenerations:new Map,serverGenerations:new Map,configRevisions:new Map,configDesiredRevisions:new Map,configDesiredSources:new Map,credentialRevisions:new Map,oauthCredentialRevisions:new Map,oauthCredentialDomains:new Map,equalRevisionRebindDomains:new Map,preservedCredentialIdentities:new Map,stagedOAuthCredentials:new Map,bootOAuthCredentialBuffer:new Map,pendingRegistryCredentialDomains:new Set,registryCredentialIntents:new Map,registryCredentialIntentEpochs:new Map,registryCredentialFinalizationsByName:new Map,statusHostGeneration:1,statusReportSequence:0,statusFailureCategories:new Map,authRefreshNeededReportKeys:new Map,hostedCredentialOwnership:new Map,shouldProactivelyRefreshTokens:!0,backgroundRefreshIntervalId:void 0,credsListenerBound:!1,configIdsListenerBound:!1,registryGeneration:0,liveEditGenerations:new Map,attachmentCommandGenerations:new Map,attachmentCommandInFlightGenerations:new Map,attachmentCommandAppliedGenerations:new Map,mcpConfigsListenerBound:!1,embeddedRegistryConfigs:void 0,vfsListenerBound:!1,addServerListenerBound:!1,restartServerListenerBound:!1,removeServerListenerBound:!1,mcpRestartState:new Map,vfsGeneration:0,lastSuccessfulVfsMcpSignature:void 0,blockedVfsMcpNames:new Set,credentials:void 0,secretsClient:void 0,headerSecrets:{},headerSecretFailures:{},headerSecretsListenerBound:!1,featureFlagsListenerBound:!1,workspaceRoot:void 0,mcpConfigOverride:void 0,connectStarted:!1,reconnecting:!1,authenticating:!1,authenticationGeneration:0,authenticatingServerName:void 0,restartHistory:new Map,dynamicallyAddedConfigIds:new Set,failedAddConfigIds:new Set,nameCollisionAddConfigIds:new Set,authFallbackDisplacedConfigIds:new Set,sessionRemovedConfigIds:new Set,selectedRegistryConfigIds:void 0,registryConfigNamesById:new Map,oauthFailureCategoriesByConfigId:void 0,registryCredentialConfigs:new Map,registryCredentialConfigsById:new Map,lastStatusReport:void 0,diagnostics:[],pluginServerSource:void 0,pluginServerNames:new Set,pluginServerHosts:new Map,pluginReconcileQueue:Promise.resolve(),sessionPluginDisabledOverrides:new Map,sessionRegistryDisabledOverrides:new Map,sessionMcpConfigDisabledOverrides:new Map,currentLoad:void 0,ui:void 0,featureFlags:void 0,toolSearchLatched:!1,mcpCatalog:void 0,mcpAttachDisabled:!1,mcpAttachCloudSignaled:!1,catalogRefreshInFlight:void 0,attachResolvers:new Map,attachResultListenerBound:!1};return t[ia]=e,e}var dg=Symbol.for("__hermes_mcp_tool_registry__"),TA=Symbol.for("__hermes_mcp_extension_factory__");function od(){let t=globalThis;return t[dg]??=new Map,t[dg]}function lg(t){return od().get(t)}function Mr(t){od().set(t.name,t)}function to(t,e){let r=od();(e===void 0||r.get(t)===e)&&r.delete(t)}function fg(t){Reflect.set(t,TA,!0)}function ca(t,e,r,n){return r.includes(t)?n.includes(t)?`"${t}" is a built-in tool, not an MCP server. Call it directly.`:`Built-in tool "${t}" is not available (disabled).`:`MCP server "${t}" is not available (status: ${e??"unknown"}).`}function AA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function MA(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 $A(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
|
|
9
|
+
`).trim()}function id(t,e,r){if(t.isError){let o=$A(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=MA(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 pg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ca(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=AA(t.params),o=await e.callTool(r,n,t.signal);return id(o,t.serverName,r)}var IA=/[^a-zA-Z0-9_-]/g;function sd(t){return t.replace(IA,"_")}function OA(t,e){let r=sd(e),n=sd(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=OA(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=`_${sd(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var ua=zA.child({prefix:"pi-mcp"});function da(){return ee().toolRegistrationsByPi}function mg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=NA.Unsafe(n.inputSchema??{})}catch(c){if(t.suppressDiagnostics){ua.warn("Skipping MCP stdio tool with invalid input schema; provider diagnostics are suppressed");return}ua.warn(`Skipping MCP tool "${r}/${n.name}": invalid input schema (${c instanceof Error?c.message:String(c)})`);return}let a=()=>ee().servers.get(r);return{name:i,label:n.name,description:n.description??"",parameters:s,execute:(c,u,d,l,f)=>pg({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d})}}function ad(t,e,r,n){if(e.ownerByToolName.get(n)!==r)return;let o=t.getActiveTools().includes(n),i=r.definitionsByName?.get(n);e.ownerByToolName.delete(n),t.unregisterTool(n),to(n,i),r.definitionsByName?.delete(n),DA(t,e,n,r,o)}function DA(t,e,r,n,o){let i=ee();for(let[s,a]of e.byServer){if(a===n||!a.registeredNames.has(r))continue;let c=i.servers.get(s);if(c===void 0||c!==a.host||c.status!=="success"||i.serverGenerations?.get(s)!==a.generation)continue;let u=new $r(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=mg({pi:t,serverName:s,tool:d,map:u,namespaced:l,suppressDiagnostics:c.suppressesProviderDiagnostics});if(!p)return;hg(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(m=>m!==r));return}}}function LA(t,e){let r=da(),n=r.get(t);n||(n={byServer:new Map,ownerByToolName:new Map},r.set(t,n));let o=ee().serverGenerations?.get(e.name),i=n.byServer.get(e.name);if(i?.host===e&&i.generation===o)return{registration:i,replaced:!1};if(i)for(let a of i.registeredNames)ad(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 cd(t,e){let{registration:r,replaced:n}=LA(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 m=i.resolve(l),h=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 "${m}" both map to "${l}". Only the first tool will be available.`,g=ee();g.diagnostics.some(w=>w.server===s&&(w.message===h||w.message.includes(`both map to "${l}"`)))||(ua.warn(h),g.diagnostics.push({server:s,message:h}));continue}let p=mg({pi:t,serverName:s,tool:d,map:i,namespaced:l,suppressDiagnostics:e.suppressesProviderDiagnostics});p&&(hg(l,"mcp"),t.registerTool(p),Mr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),da().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=da().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&ad(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&ua.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function ud(t,e,r){let n=da().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)ad(t,n,o,i);return n.byServer.delete(e.name),!0}function gg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&cd(t,r)}import{getToolSource as WA}from"@augmentcode/auggie-v2";import{Type as jA}from"@sinclair/typebox";var FA=!1,yg=2e4;function UA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function qA(t){let e=0;for(let r of t.servers.values())e+=HA(r);return e}function HA(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||GA(n.inputSchema)&&(r+=UA(n))}return r}function GA(t){try{return jA.Unsafe(t??{}),!0}catch{return!1}}function ZA(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:FA}function BA(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:yg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:yg}function vg(t){return ZA(t)?qA(t)>=BA(t):!1}var VA="AUGGIE_ENABLE_TOOL_SEARCH",KA=new Set(["find-tool","execute-tool","attach-mcp-server"]);function fi(){return process.env[VA]==="1"}function Ir(t){return fi()||t.toolSearchLatched?!0:vg(t)?(t.toolSearchLatched=!0,!0):!1}function la(t){let e=t.getActiveTools(),r=e.filter(n=>!JA(n)||KA.has(n));r.length!==e.length&&t.setActiveTools(r)}function JA(t){return WA(t)==="mcp"}import{setToolSource as xg}from"@augmentcode/auggie-v2";import{logger as gM}from"@hermes/logger";import{Type as kg}from"@sinclair/typebox";import{logger as YA}from"@hermes/logger";var pi={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},dn={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var _g=YA.child({prefix:"pi-mcp"}),XA=5e3,QA=1,eM=2,tM=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),rM=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function nM(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 oM(t){return t===QA||typeof t=="string"&&tM.has(t)?"available":t===eM||typeof t=="string"&&rM.has(t)?"opt_in_required":"unknown"}function iM(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:nM(t.auth_type),state:oM(t.state)}}function dd(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 fa(t){return t.featureFlags?.flags.cosmosMcpAgentAttach===!0&&!t.mcpAttachDisabled}function ln(t){return fa(t)?(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!dd(t,r)):[]}async function Sg(t,e,r){let n=t.apiUrl.replace(/\/+$/,""),o=e??fetch;try{let i=await o(`${n}/settings/get-mcp-catalog-metadata`,{method:"POST",headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({product_type:dn.UNSPECIFIED}),signal:AbortSignal.timeout(r??XA)});if(!i.ok)return _g.debug(`MCP catalog fetch failed with ${i.status}; treating catalog as empty`),{ok:!1,disable:i.status===404};let s=await i.json(),a=[];for(let c of s.entries??[]){let u=iM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return _g.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var sM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",aM=`You are a tool search assistant. Given a user's query and a list of available tools, identify the single best matching tool.
|
|
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).`,
|
|
17
|
-
`)}function
|
|
16
|
+
Respond with ONLY the tool name (no markdown, no explanation).`,cM=/[\n\r]/g,uM=/</g,dM=/>/g;function fn(t){return t.replace(cM," ").replace(uM,"\u2039").replace(dM,"\u203A").trim()}function lM(){let t=process.env[sM];return t?.trim()?t:aM}var fM=/\{\{(query|server_name|tool_list)\}\}/g;function wg(t,e,r){let n={"{{query}}":fn(t),"{{server_name}}":fn(e),"{{tool_list}}":r};return lM().replace(fM,o=>n[o]??o)}function Ce(t){return{content:[{type:"text",text:t}],details:void 0}}function bg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function ld(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function pa(t,e,r){let n={mcp_server:t,tools:bg(e).map(ld),note:r};return Ce(JSON.stringify(n,null,2))}function Rg(t){return bg(t).map(e=>{let r=fn(e.name),n=fn(e.description??"");return`- ${r}: ${n}`}).join(`
|
|
17
|
+
`)}function Cg(t){let e=t.trim();try{let r=JSON.parse(e);if(typeof r.tool_name=="string")return r.tool_name}catch{}return e}import{complete as pM}from"@earendil-works/pi-ai";var hM="augment:tool-search-usage";function mM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Pg(t,e,r){let n=e.model;if(!n)return;let o=await e.modelRegistry.getApiKeyAndHeaders(n);if(!(o.ok&&o.apiKey))return;let i={role:"user",content:[{type:"text",text:r}],timestamp:Date.now()},s=await pM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(hM,a),mM(s)}var Tg=gM.child({prefix:"pi-mcp"}),ro="find-tool",Or="execute-tool",yM=10,Eg=15,vM=20,_M={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"]},SM={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 fd(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function wM(t){let e=[...ee().servers.values()].filter(c=>c.status==="success"),r=e.find(c=>c.name===t);if(r)return{server:r,name:r.name};let n=fd(t),o=e.filter(c=>n.length>0&&fd(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(fd(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 Ag(t,e){let r=ee(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=ln(r).find(l=>l.id===e.trim()||l.name.toLowerCase()===u);if(d)throw new Error(`MCP server "${d.name}" is available but not attached. Call attach-mcp-server now with config_id "${d.id}"; it attaches directly without requiring user approval.`)}let o=n.includes(e)?void 0:wM(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=ca(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function bM(t){if(t==null)throw new Error(`${Or} requires an "arguments" object with the tool's parameters.`);if(typeof t!="object"||Array.isArray(t)){let e=Array.isArray(t)?"an array":typeof t;throw new Error(`${Or} "arguments" must be an object, not ${e}.`)}return t}async function RM(t,e,r,n,o){let i=wg(r,n,Rg(o)),s=await Pg(t,e,i);if(!s)return;let a=Cg(s);return o.find(c=>c.name===a)}async function CM(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${ro} requires string "query" and "mcp_server" parameters.`);let i=Ag(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=yM)return pa(i.name,s,"All tools on this server.");try{let a=await RM(t,e,n,i.name,s);return a?Ce(JSON.stringify(ld(a),null,2)):pa(i.name,s,"No single best match; all tools listed.")}catch(a){return Tg.warn(`${ro} LLM match failed: ${a instanceof Error?a.message:String(a)}`),pa(i.name,s,"Search failed; all tools listed.")}}async function PM(t,e,r){let{mcp_server:n,tool_name:o,arguments:i}=e??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${Or} requires string "mcp_server" and "tool_name" parameters.`);let s=bM(i),a=Ag(t,n),c=await a.server.callTool(o,s,r);return id(c,a.name,o)}function xM(){let t=ee(),e=[...t.servers.values()].filter(i=>i.status==="success"),r=`Search for the right MCP tool. Call with a natural-language query and the target MCP server name to get the best-matching tool, then run it with ${Or}. When this gateway is present, MCP tools may intentionally be absent as top-level tools. Before reporting an expected MCP capability unavailable, search its attached server with ${ro}, then invoke it with ${Or}.`,n=[];if(e.length===0)n.push(`${r} No MCP servers are currently connected.`);else{let i=e.map(s=>{let a=s.listTools().map(d=>d.name),c=a.slice(0,Eg).join(", "),u=a.length>Eg?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
|
|
18
18
|
${i.join(`
|
|
19
|
-
`)}`)}let o=
|
|
19
|
+
`)}`)}let o=ln(t).slice(0,vM);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 dn(t){let e={name:eo,label:eo,description:RM(),parameters:Cg.Unsafe(gM),execute:(n,o,i,s,a)=>wM(t,a,o)},r={name:Mr,label:Mr,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:Cg.Unsafe(yM),execute:(n,o,i)=>bM(t,o,i)};Rg(eo,"mcp"),Rg(Mr,"mcp"),t.registerTool(e),t.registerTool(r),Tr(e),Tr(r),xg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{logger as pq}from"@hermes/logger";import{logger as MM}from"@hermes/logger";import{logger as CM}from"@hermes/logger";function ln(t){return new Promise(e=>setTimeout(e,t))}var Eg=CM.child({prefix:"pi-mcp"}),fi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},ud=3e4,or=200,ht=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 dd(t){return t instanceof ht?t.statusCode>=500:!0}async function fn(t){let e;for(let r=0;r<fi.maxTries;r++)try{return await t()}catch(n){if(e=n,!dd(n))throw n;if(r<fi.maxTries-1){let o=Math.min(fi.initialMs*fi.mult**r,fi.maxMs);await ln(o)}}throw e}var fa=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??ud}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>or?`${i.slice(0,or)}\u2026[truncated]`:i;throw new ht(o.status,o.statusText,s)}return await o.json()}getMcpTenantConfigs(e){return fn(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return fn(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function Tg(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)}`;Eg.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)}`;Eg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function PM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Ag=32;function xM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Ag&&(e=e.slice(0,Ag)),e=e.replace(/_+$/,""),e}function Mg(t,e){let r=e?xM(e):"",n=PM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function $g(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 kM=1e12,EM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function TM(t){let e=EM.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 AM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<kM?t*1e3:t;if(typeof t=="string")return TM(t)}function Ig(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:AM(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 Zt=MM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},ro=class extends Error{},zg=[100,500],$M=zg.length+1,IM=t=>new Promise(e=>{setTimeout(e,t)});function Og(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var fd="augment.mcp-access-token.",OM=JSON.stringify({retired:!0}),pa=3;function Bt(t){return`${fd}${t}`}function ha(t){return`legacy:${t}`}function Et(t){return t?.id?Mg(t.id,t.name):void 0}function mi(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:Ng(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Ng(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function gi(t){if(typeof t=="string")try{return gi(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:Ng(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Tt(t){return gi(mi(t))}function zM(t){return gi(mi(t))}function NM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function to(t){try{let e=JSON.parse(t);return{credentialIdentity:gi(e.credentialIdentity),state:NM(e)}}catch{return{}}}function pi(t,e){let r={...t,type:"oauth",credentialIdentity:mi(e)};return JSON.stringify(r)}function pn(t,e){let r=$g({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:mi(e),credentialState:"active"})}function DM(t){return JSON.stringify({credentialIdentity:mi(t),credentialState:"retired",retired:!0})}function LM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=zM(e),i=gi(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 ld(t){try{let e=Ig(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 hi=class{_memory=new Wn;_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=IM){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=Tt(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=Tt(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=Tt(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(()=>{Zt.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(()=>{Zt.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=Tt(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=Et(e),n=Tt(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<pa;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=to(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=ld(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,pn(c,i),s.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async captureRefreshIdentityVersion(e){let r=Et(e),n=Tt(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=to(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!ld(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=Et(n),a=n&&s&&i&&o!==void 0?this._enqueueWrite(s,()=>i.upsertUserSecret(s,pn(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:ha(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=Et(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||Et(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&&Et(s))throw new Z;if(!this._shouldPersist())return u;if(!a)throw new Z;if(c&&o){try{await this._enqueueWrite(Bt(e),()=>this._restoreLegacyCredential({client:a,key:Bt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Zt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==ha(e))throw new Z;try{return await this._enqueueWrite(Bt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Bt(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!==pi(i,a)))try{return{revision:await r.upsertUserSecret(n,pi(s,c),u.revision),domain:ha(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!==pn(o,s)))try{return{revision:await r.upsertUserSecret(n,pn(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!==pi(o,s)))try{await r.upsertUserSecret(n,pi(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{Zt.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=Tt(o);if(!i)throw new Z;for(let s=0;s<pa;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?to(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,pn(n,o),a?.version??"0")}catch(u){if(!this._isVersionConflict(u))throw u}}throw new Z}async _retireRegistryCredential(e,r,n){let o=Tt(n);if(!o)throw new Z;for(let i=0;i<pa;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?to(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,DM(n),s?.version??"0");return}catch(c){if(!this._isVersionConflict(c))throw c}}throw new Z}_isVersionConflict(e){return e instanceof ht&&(e.statusCode===412||e.statusCode===400&&e.responseBody.includes("version mismatch"))}async _persist(e,r,n,o,i){let s=this._getClient(),a=Et(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:ha(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Og(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?$M:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new ro;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 ro}_persistenceRetryDelay(e,r,n){let o=n?zg[r]:void 0,i=!(e instanceof Z)&&dd(e);if(o===void 0||!i){n&&Zt.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(Bt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Bt(e),pi(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 ro||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=Tt(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=Et(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(Bt(e),async()=>{let p=await c.upsertUserSecret(Bt(e),OM)}):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"&&Zt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Zt.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=Bt(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 ro&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=Et(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(()=>{Zt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Og(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=Et(r),o=Tt(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<pa;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=to(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=ld(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,pn(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=Et(n),s=Tt(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=to(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,pn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Bt(r));return o?LM(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){Zt.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),Zt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Dg="Augment Code",Lg="https://augmentcode.com",jg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var FM=1e3,UM=500;function hd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function yi(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var pd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Fg(t){return new URLSearchParams({k:t}).toString().slice(2)}function qM(t,e){let r=`${Fg(t)}:${Fg(e)}`;return`Basic ${btoa(r)}`}function Gg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function HM(t){return t.client.token_endpoint_auth_method==="none"||!Gg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function GM(t){return t==="basic"?"body":t==="body"?"basic":void 0}function ZM(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var BM=401,Zg=500;function md(t,...e){return t.status<Zg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Ug(t){return md(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===BM}async function qg(t,e,r){let n={"Content-Type":"application/x-www-form-urlencoded"},o=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken});r&&o.set("resource",r);let i=Gg(t);e==="basic"&&i?n.Authorization=qM(t.client.client_id,i):(o.set("client_id",t.client.client_id),e==="body"&&i&&o.set("client_secret",i));let s=await fetch(t.serverMetadata.token_endpoint,{method:"POST",headers:n,body:o.toString(),signal:AbortSignal.timeout(1e4)});if(!s.ok){let c=await s.text().catch(()=>""),u=ZM(c),d=c.slice(0,UM);throw new hn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new pd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*FM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Hg(t,e){try{return await qg(t,e,t.resource)}catch(r){if(r instanceof hn&&t.resource&&md(r,"invalid_target"))return await qg(t,e,void 0);throw r}}var hn=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 gd(t){return!(t instanceof hn)||t.status>=Zg?!1:md(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function yd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=HM(t);try{return await Hg(e,r)}catch(n){let o=GM(r);if(!(n instanceof hn)||!o||!Ug(n))throw n;try{return await Hg(e,o)}catch(i){throw i instanceof hn&&Ug(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as F0}from"@hermes/logger";var Sd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Sd="oauth4webapi/v3.8.6");function so(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 Wt="ERR_INVALID_ARG_VALUE",Je="ERR_INVALID_ARG_TYPE";function pe(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var Pd=Symbol(),WM=Symbol(),VM=Symbol(),gn=Symbol();var Bg=Symbol();var KM=new TextEncoder,JM=new TextDecoder;function wd(t){return typeof t=="string"?KM.encode(t):JM.decode(t)}var bd;Uint8Array.prototype.toBase64?bd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):bd=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 Rd;Uint8Array.fromBase64?Rd=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}}:Rd=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}};function ga(t){return typeof t=="string"?Rd(t):bd(t)}var oo=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=E0,Error.captureStackTrace?.(this,this.constructor)}},vi=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 vi(t,{code:e,cause:r})}function ya(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function xd(t){so(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Sd&&!e.has("user-agent")&&e.set("user-agent",Sd),e.has("authorization"))throw pe('"options.headers" must not include the "authorization" header name',Wt);return e}function kd(t,e){if(e!==void 0){if(typeof e=="function"&&(e=e(t.href)),!(e instanceof AbortSignal))throw pe('"options.signal" must return or be an instance of AbortSignal',Je);return e}}function YM(t){return t.includes("//")?t.replace("//","/"):t}function XM(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=YM(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function QM(t,e,r,n){if(!(t instanceof URL))throw pe(`"${e}" must be an instance of URL`,Je);ny(t,n?.[Pd]!==!0);let o=r(new URL(t.href)),i=xd(n?.headers);return i.set("accept","application/json"),(n?.[gn]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:kd(o,n?.signal)})}function no(t,e,r,n,o){try{if(typeof t!="number"||!Number.isFinite(t))throw pe(`${r} must be a number`,Je,o);if(t>0)return;if(e){if(t!==0)throw pe(`${r} must be a non-negative number`,Wt,o);return}throw pe(`${r} must be a positive number`,Wt,o)}catch(i){throw n?O(i.message,n,o):i}}function $e(t,e,r,n){try{if(typeof t!="string")throw pe(`${e} must be a string`,Je,n);if(t.length===0)throw pe(`${e} must not be empty`,Wt,n)}catch(o){throw r?O(o.message,r,n):o}}async function Kg(t,e){let r=t;if(!(r instanceof URL)&&r!==Sa)throw pe('"expectedIssuerIdentifier" must be an instance of URL',Je);if(!so(e,Response))throw pe('"response" must be an instance of Response',Je);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',zd,e);wi(e);let n=await Ca(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==Sa&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',ba,{expected:r.href,body:n,attribute:"issuer"});return n}function Jg(t){t0(t,"application/json")}function e0(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,A0,t)}function t0(t,e){if(p0(t)!==e)throw e0(t,e)}function Ed(){return ga(crypto.getRandomValues(new Uint8Array(32)))}function Yg(){return Ed()}function Xg(){return Ed()}function Qg(){return Ed()}async function ey(t){return $e(t,"codeVerifier"),ga(await crypto.subtle.digest("SHA-256",wd(t)))}function Td(t){let e=t?.[WM];return typeof e=="number"&&Number.isFinite(e)?e:0}function Ad(t){let e=t?.[VM];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function Md(){return Math.floor(Date.now()/1e3)}function wa(t){if(typeof t!="object"||t===null)throw pe('"as" must be an object',Je);$e(t.issuer,'"as.issuer"')}function $d(t){if(typeof t!="object"||t===null)throw pe('"client" must be an object',Je);$e(t.client_id,'"client.client_id"')}function Wg(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 Id(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function ty(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=Wg(r.client_id),s=Wg(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function ry(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var r0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function ny(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",M0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",$0,t)}function Vg(t,e,r,n){let o;if(typeof t!="string"||!(o=r0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?I0:O0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return ny(o,n),o}function oy(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?Vg(t.mtls_endpoint_aliases[e],e,r,n):Vg(t[e],e,r,n)}var io=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=k0,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)}},_i=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=T0,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)}},Si=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=x0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},va="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",n0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",o0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',i0="("+va+")\\s*=\\s*"+o0,s0="("+va+")\\s*=\\s*("+va+")",a0=new RegExp("^[,\\s]*("+va+")"),c0=new RegExp("^[,\\s]*"+i0+"[,\\s]*(.*)"),u0=new RegExp("^[,\\s]*"+s0+"[,\\s]*(.*)"),d0=new RegExp("^("+n0+")(?:$|[,\\s])(.*)");function l0(t){if(!so(t,Response))throw pe('"response" must be an instance of Response',Je);let e=t.headers.get("www-authenticate");if(e===null)return;let r=[],n=e;for(;n;){let o=n.match(a0),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(c0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(u0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(d0)){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 f0(t){if(t.status>399&&t.status<500){wi(t),Jg(t);try{let e=await t.clone().json();if(ya(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function iy(t,e,r){if(t.status!==e){y0(t);let n;throw(n=await f0(t))?(await t.body?.cancel(),new io("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)`,zd,t)}}function sy(t){if(!Od.has(t))throw pe('"options.DPoP" is not a valid DPoPHandle',Wt)}function p0(t){return t.headers.get("content-type")?.split(";")[0]}async function h0(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?.[gn]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:kd(n,s?.signal)})}async function m0(t,e,r,n,o,i){let s=oy(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Pd]!==!0);o.set("grant_type",n);let a=xd(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(sy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await h0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var ay=new WeakMap,g0=new WeakMap;function cy(t){if(!t.id_token)return;let e=ay.get(t);if(!e)throw pe('"ref" was already garbage collected or did not resolve from the proper sources',Wt);return e}async function uy(t,e,r,n,o,i){if(wa(t),$d(e),!so(r,Response))throw pe('"response" must be an instance of Response',Je);await iy(r,200,"Token Endpoint"),wi(r);let s=await Ca(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;no(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&&(no(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await z0(s.id_token,N0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Td(e),Ad(e),o).then(R0.bind(void 0,a)).then(_0.bind(void 0,t)).then(v0.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',$r,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',$r,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&no(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),g0.set(r,u),ay.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 oo("unsupported `token_type` value",{cause:{body:s}});return s}function y0(t){let e;if(e=l0(t))throw new Si("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function v0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',$r,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',$r,{expected:t,claims:e.claims,claim:"aud"});return e}function _0(t,e){let r=t[j0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',$r,{expected:r,claims:e.claims,claim:"iss"});return e}var Od=new WeakSet;function S0(t){return Od.add(t),t}var w0=Symbol();async function dy(t,e,r,n,o,i,s){if(wa(t),$d(e),!Od.has(n))throw pe('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Wt);$e(o,'"redirectUri"');let a=mn(n,"code");if(!a)throw O('no authorization code in "callbackParameters"',V);let c=new URLSearchParams(s?.additionalParameters);return c.set("redirect_uri",o),c.set("code",a),i!==w0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),m0(t,e,r,"authorization_code",c,s)}var b0={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 R0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${b0[r]}) claim missing`,V,{claims:e.claims});return e}var vd=Symbol(),_d=Symbol();async function ly(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?C0(t,e,r,n.expectedNonce,n.maxAge,n[Bg],n.recognizedTokenTypes):P0(t,e,r,n?.[Bg],n?.recognizedTokenTypes)}async function C0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=vd;break;case vd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=_d;break;case _d:break;default:no(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await uy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=cy(c);if(o!==_d){let d=Md()+Td(e),l=Ad(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",_a,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===vd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',$r,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',$r,{expected:n,claims:u,claim:"nonce"});return c}async function P0(t,e,r,n,o){let i=await uy(t,e,r,void 0,n,o),s=cy(i);if(s){if(e.default_max_age!==void 0){no(e.default_max_age,!0,'"client.default_max_age"');let a=Md()+Td(e),c=Ad(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",_a,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',$r,{expected:void 0,claims:s,claim:"nonce"})}return i}var x0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",k0="OAUTH_RESPONSE_BODY_ERROR",E0="OAUTH_UNSUPPORTED_OPERATION",T0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Cd="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var A0="OAUTH_RESPONSE_IS_NOT_JSON",zd="OAUTH_RESPONSE_IS_NOT_CONFORM",M0="OAUTH_HTTP_REQUEST_FORBIDDEN",$0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",_a="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",$r="OAUTH_JWT_CLAIM_COMPARISON_FAILED",ba="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var I0="OAUTH_MISSING_SERVER_METADATA",O0="OAUTH_INVALID_SERVER_METADATA";function wi(t){if(t.bodyUsed)throw pe('"response" body has been used already',Wt)}async function z0(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 oo("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(wd(ga(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Cd,l)}if(!ya(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new oo('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(wd(ga(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Cd,l)}if(!ya(u))throw O("JWT Payload must be a top level object",V,t);let d=Md()+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',_a,{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',_a,{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 N0(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 mn(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 D0=Symbol(),L0=Symbol();function fy(t,e,r,n){if(wa(t),$d(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw pe('"parameters" must be an instance of URLSearchParams, or URL',Je);if(mn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=mn(r,"iss"),i=mn(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 L0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case D0: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(mn(r,"error"))throw new _i("authorization response from the server is an error",{cause:r});let a=mn(r,"id_token"),c=mn(r,"token");if(a!==void 0||c!==void 0)throw new oo("implicit and hybrid flows are not supported");return S0(new URLSearchParams(r))}async function py(t,e,r){wa(t);let n=oy(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Pd]!==!0),o=xd(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(sy(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?.[gn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:kd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function hy(t){if(!so(t,Response))throw pe('"response" must be an instance of Response',Je);await iy(t,201,"Dynamic Client Registration Endpoint"),wi(t);let e=await Ca(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&&no(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function my(t,e){return QM(t,"resourceIdentifier",r=>(XM(r,".well-known/oauth-protected-resource",!0),r),e)}async function Ra(t,e){let r=t;if(!(r instanceof URL)&&r!==Sa)throw pe('"expectedResourceIdentifier" must be an instance of URL',Je);if(!so(e,Response))throw pe('"response" must be an instance of Response',Je);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',zd,e);wi(e);let n=await Ca(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==Sa&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',ba,{expected:r.href,body:n,attribute:"resource"});return n}async function Ca(t,e=Jg){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Cd,n)}if(!ya(r))throw O('"response" body must be a top level object',V,{body:r});return r}var Sa=Symbol(),j0=Symbol();var vy=F0.child({prefix:"pi-mcp"}),bi=1e4,U0=1e3,q0=401,gy=200,H0=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,G0=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,_y;function ao(){return _y??globalThis.fetch}function Sy(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function wy(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Dd(t){let e=wy(t);try{let r=await Z0(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await J0(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw ka(r)}throw new Error("Failed to discover metadata URL")}async function Z0(t){try{let e=await my(t,{signal:AbortSignal.timeout(bi),[gn]:_y??void 0});return e.ok?await Ra(t,e):(e.body?.cancel().catch(()=>{}),await by(t,e.headers.get("www-authenticate"))??await yy(t))}catch{return await yy(t)}}async function yy(t){for(let e of["HEAD","GET"])try{let r=await ao()(t,{method:e,signal:AbortSignal.timeout(bi)});r.body?.cancel().catch(()=>{});let n=await by(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function by(t,e){let r=K0(e);if(r)try{let n=await ao()(r,{signal:AbortSignal.timeout(bi)});return await B0(t,n)}catch{return}}async function B0(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Ra(t,new Response(r,n))}catch(o){if(!(o instanceof vi)||o.code!==ba)throw o;let i=W0(r);if(!i||!V0(i,t))throw o;return await Ra(i,new Response(r,n))}}function W0(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function V0(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 K0(t){if(!t)return;let e=t.match(H0),r=t.match(G0),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function J0(t){for(let e of Y0(t))try{let r=new URL(e,t),n=await ao()(r,{signal:AbortSignal.timeout(bi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function Y0(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 Ld(t){try{let e=await ao()(t,{signal:AbortSignal.timeout(bi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await X0(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await Kg(o,new Response(r,n))}catch(e){throw ka(e)}}async function X0(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 Nd=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 Q0(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 jd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return Q0({...t,clientId:n});if(!e.registration_endpoint)throw new Nd(e.issuer);return await e$(e,r)}async function e$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await py(t,{client_name:Dg,client_uri:Lg,logo_uri:jg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[gn]:t$});return n.ok||vy.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await hy(n)}catch(r){throw ka(r)}}async function t$(t,e){let r=await ao()(t,Sy(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||vy.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${n$(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 r$(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}),ao()(t,Sy(o))}function n$(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>gy?`${t.slice(0,gy)}\u2026`:t}}async function Pa(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=Yg(),c=await ey(a),u=Xg(),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,m=wy(i??t).toString(),h=new URL(r.authorization_endpoint);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",e.client_id),h.searchParams.set("code_challenge",c),h.searchParams.set("code_challenge_method","S256"),h.searchParams.set("redirect_uri",n),h.searchParams.set("resource",m),h.searchParams.set("state",u),p&&h.searchParams.set("scope",p),l?.includes("offline_access")&&h.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=Qg(),h.searchParams.set("nonce",d)),{client:e,serverMetadata:r,redirectUri:n,codeVerifier:a,nonce:d,scope:p,state:u,resource:m,offlineAccessAugmented:f,authUri:h}}function xa(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Fd(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 Pa(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function o$(t,e,r){let n=await dy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[gn]:r$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return ly(t.serverMetadata,t.client,await i$(n))}async function Ud(t,e){try{let r=fy(e.serverMetadata,e.client,t,e.state),n=await a$(e.client,o=>o$(e,r,o));return d$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw ka(r)}}async function i$(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 Ry(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function s$(t){let e=Ry(t);return e===void 0?ry():t.token_endpoint_auth_method==="client_secret_basic"?ty(e):Id(e)}async function a$(t,e){try{return await e(s$(t))}catch(r){let n=c$(t);if(n&&u$(r))return await e(n);throw r}}function c$(t){let e=Ry(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Id(e)}function u$(t){return t instanceof io?t.error==="invalid_client"||t.error==="unauthorized":t instanceof Si?t.status===q0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function d$(t,e,r,n,o){if(!t.access_token)throw new Error("OAuth token response contained no access token");return{accessToken:t.access_token,refreshToken:t.refresh_token||n,expiresAt:t.expires_in?Date.now()+t.expires_in*U0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function ka(t){if(t instanceof io||t instanceof _i){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 l$=/(authorization|auth[_-]?token|access[_-]?token|refresh[_-]?token|\btoken\b|secret|password|passwd|\bpwd\b|api[_-]?key|apikey|client[_-]?secret|private[_-]?key|cookie|session[_-]?id|credential|bearer)/i,Cy=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Py=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,xy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,yn="[redacted]",f$=/[.*+?^${}()|[\]\\]/g;function qd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function p$(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:qd(a,r),{value:c&&"value"in c?ky(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 ky(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return qd(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 qd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:p$(t,e,r)}function Ey(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(f$,"\\$&")).join("|"),"g"):void 0,n=e.some(i=>yn.includes(i))?"":yn,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=>ky(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var h$=500,m$=8192,g$=6;function y$(t){return Cy.test(t)||Py.test(t)||xy.test(t)}var v$=new RegExp(Cy.source,"g"),_$=new RegExp(Py.source,"gi"),S$=new RegExp(xy.source,"g");function Ty(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Gd(t){return t&&Ty(t,m$).replace(v$,yn).replace(_$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${yn}`).replace(S$,yn)}function Hd(t,e,r){if(e)return yn;if(typeof t=="string")return y$(t)?yn:t;if(t===null||typeof t!="object")return t;if(r>=g$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Hd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Hd(i,l$.test(o),r+1);return n}function Ay(t,e=h$){if(t==null)return;let r=Hd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Ty(n,e)}var $y={reportError:()=>{}},My=Symbol.for("__pi_mcp_error_reporter_slot__");function Iy(){let t=globalThis,e=t[My];return e||(e={reporter:null},t[My]=e),e}function Oy(t){let e=Iy(),r=e.reporter??$y;return e.reporter=t,r}function w$(){return Iy().reporter??$y}function Ea(t,e){try{w$().reportError(t,e)}catch{}}import{logger as b$}from"@hermes/logger";var Zd=b$.child({prefix:"pi-mcp"});function zy(t,e,r){let n=0,o=0,i=r?.authoritative?{}:{...t.headerSecrets};for(let[s,a]of Object.entries(e))typeof a=="string"&&a!==""?(i[s]=a,n++):a===null||a===""?s in i&&(delete i[s],o++):Zd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Zd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Ny(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(fd)){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 Dy(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,Zd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Ly(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as R$}from"@hermes/logger";var Ri=R$.child({prefix:"pi-mcp"}),C$="$augment-",Ci=/\$augment-[a-zA-Z0-9_.-]+/g,P$=new RegExp(Ci.source);function Ir(t){return P$.test(t)}function Ta(t){return t.slice(C$.length)}function Pi(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Ci))e.add(Ta(n[0]));return[...e].sort()}var x$=["permission_denied","missing","transient"];function jy(t){let e=new Set(t);return x$.find(r=>e.has(r))??"missing"}var mt=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 Fy(t,e,r,n,o,i,s){let a=[...t.matchAll(Ci)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Ta(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),Ri.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let m=p;m.trim()===""&&(o.add(f),Ri.warn(`Secret "${f}" resolved empty for "${e}"`));let h=c.slice(0,l),g=s?s(m,h):m;c=h+g+c.slice(l+d.length),Ri.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),Ri.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Uy({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(!Ir(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){Ri.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Fy(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 k$=/["$`\\]/g;function E$(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 T$(t,e){let r=E$(e);if(r==="double")return t.replace(k$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function qy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Fy(t,"command",e,n,o,i,r?T$: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 uq}from"node:async_hooks";var Hy,Bd=Object.freeze({status:"aborted"});function _(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=s.prototype,d=Object.keys(u);for(let l=0;l<d.length;l++){let f=d[l];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:t});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let d of u._zod.deferred)d();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var Vt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},co=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Hy=globalThis).__zod_globalConfig??(Hy.__zod_globalConfig={});var uo=globalThis.__zod_globalConfig;function Ye(t){return t&&Object.assign(uo,t),uo}var H={};Lu(H,{BIGINT_FORMAT_RANGES:()=>Wy,Class:()=>Vd,NUMBER_FORMAT_RANGES:()=>el,aborted:()=>Nr,allowsEval:()=>Yd,assert:()=>O$,assertEqual:()=>A$,assertIs:()=>$$,assertNever:()=>I$,assertNotEqual:()=>M$,assignProp:()=>Or,base64ToUint8Array:()=>Ky,base64urlToUint8Array:()=>Y$,cached:()=>fo,captureStackTrace:()=>$a,cleanEnum:()=>J$,cleanRegex:()=>Ti,clone:()=>gt,cloneDef:()=>N$,createTransparentProxy:()=>q$,defineLazy:()=>X,esc:()=>Ma,escapeRegex:()=>sr,explicitlyAborted:()=>tl,extend:()=>Z$,finalizeIssue:()=>yt,floatSafeRemainder:()=>Kd,getElementAtPath:()=>D$,getEnumValues:()=>ki,getLengthableOrigin:()=>Ai,getParsedType:()=>U$,getSizableOrigin:()=>Vy,hexToUint8Array:()=>Q$,isObject:()=>vn,isPlainObject:()=>zr,issue:()=>po,joinValues:()=>Aa,jsonStringifyReplacer:()=>lo,merge:()=>W$,mergeDefs:()=>ir,normalizeParams:()=>A,nullish:()=>Ei,numKeys:()=>F$,objectClone:()=>z$,omit:()=>G$,optionalKeys:()=>Qd,parsedType:()=>rl,partial:()=>V$,pick:()=>H$,prefixIssues:()=>ar,primitiveTypes:()=>By,promiseAllObject:()=>L$,propertyKeyTypes:()=>Xd,randomString:()=>j$,required:()=>K$,safeExtend:()=>B$,shallowClone:()=>Zy,slugify:()=>Jd,stringifyPrimitive:()=>Ia,uint8ArrayToBase64:()=>Jy,uint8ArrayToBase64url:()=>X$,uint8ArrayToHex:()=>eI,unwrapMessage:()=>xi});function A$(t){return t}function M$(t){return t}function $$(t){}function I$(t){throw new Error("Unexpected value in exhaustive check")}function O$(t){}function ki(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 Aa(t,e="|"){return t.map(r=>Ia(r)).join(e)}function lo(t,e){return typeof e=="bigint"?e.toString():e}function fo(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ei(t){return t==null}function Ti(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Kd(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 Gy=Symbol("evaluating");function X(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Gy)return n===void 0&&(n=Gy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function z$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Or(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ir(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function N$(t){return ir(t._zod.def)}function D$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function L$(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<e.length;i++)o[e[i]]=n[i];return o})}function j$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function Ma(t){return JSON.stringify(t)}function Jd(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var $a="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function vn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Yd=fo(()=>{if(uo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function zr(t){if(vn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(vn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Zy(t){return zr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function F$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var U$=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}`)}},Xd=new Set(["string","number","symbol"]),By=new Set(["string","number","bigint","boolean","symbol","undefined"]);function sr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function gt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function A(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function q$(t){let e;return new Proxy({},{get(r,n,o){return e??(e=t()),Reflect.get(e,n,o)},set(r,n,o,i){return e??(e=t()),Reflect.set(e,n,o,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,o){return e??(e=t()),Reflect.defineProperty(e,n,o)}})}function Ia(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Qd(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var el={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]},Wy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function H$(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=ir(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 Or(this,"shape",s),s},checks:[]});return gt(t,i)}function G$(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=ir(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 Or(this,"shape",s),s},checks:[]});return gt(t,i)}function Z$(t,e){if(!zr(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=ir(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Or(this,"shape",i),i}});return gt(t,o)}function B$(t,e){if(!zr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ir(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Or(this,"shape",n),n}});return gt(t,r)}function W$(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=ir(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Or(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return gt(t,r)}function V$(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=ir(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 Or(this,"shape",c),c},checks:[]});return gt(e,s)}function K$(t,e,r){let n=ir(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 Or(this,"shape",i),i}});return gt(e,n)}function Nr(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 tl(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 ar(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function xi(t){return typeof t=="string"?t:t?.message}function yt(t,e,r){let n=t.message?t.message:xi(t.inst?._zod.def?.error?.(t))??xi(e?.error?.(t))??xi(r.customError?.(t))??xi(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 Vy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Ai(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function rl(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 po(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function J$(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Ky(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 Jy(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function Y$(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Ky(e+r)}function X$(t){return Jy(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Q$(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 eI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Vd=class{constructor(...e){}};var Yy=(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,lo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Oa=_("$ZodError",Yy),nl=_("$ZodError",Yy,{Parent:Error});function ol(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 il(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 za=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 Vt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>yt(c,i,Ye())));throw $a(a,o?.callee),a}return s.value};var Na=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=>yt(c,i,Ye())));throw $a(a,o?.callee),a}return s.value};var Mi=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 Vt;return i.issues.length?{success:!1,error:new(t??Oa)(i.issues.map(s=>yt(s,o,Ye())))}:{success:!0,data:i.value}},$i=Mi(nl),Ii=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=>yt(s,o,Ye())))}:{success:!0,data:i.value}},Da=Ii(nl),Xy=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return za(t)(e,r,o)};var Qy=t=>(e,r,n)=>za(t)(e,r,n);var ev=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Na(t)(e,r,o)};var tv=t=>async(e,r,n)=>Na(t)(e,r,n);var rv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Mi(t)(e,r,o)};var nv=t=>(e,r,n)=>Mi(t)(e,r,n);var ov=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ii(t)(e,r,o)};var iv=t=>async(e,r,n)=>Ii(t)(e,r,n);var sv=/^[cC][0-9a-z]{6,}$/,av=/^[0-9a-z]+$/,cv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,uv=/^[0-9a-vA-V]{20}$/,dv=/^[A-Za-z0-9]{27}$/,lv=/^[a-zA-Z0-9_-]{21}$/,fv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var pv=/^([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})$/,sl=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 hv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var rI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function mv(){return new RegExp(rI,"u")}var gv=/^(?:(?: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])$/,yv=/^(([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 vv=/^((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])$/,_v=/^(([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])$/,Sv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,al=/^[A-Za-z0-9_-]*$/;var wv=/^https?$/,bv=/^\+[1-9]\d{6,14}$/,Rv="(?:(?:\\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])))",Cv=new RegExp(`^${Rv}$`);function Pv(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 xv(t){return new RegExp(`^${Pv(t)}$`)}function kv(t){let e=Pv({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(`^${Rv}T(?:${n})$`)}var Ev=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Tv=/^-?\d+n?$/,Av=/^-?\d+$/,cl=/^-?\d+(?:\.\d+)?$/,Mv=/^(?:true|false)$/i,$v=/^null$/i;var Iv=/^[^A-Z]*$/,Ov=/^[^a-z]*$/;var Ie=_("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),zv={number:"number",bigint:"bigint",object:"date"},ul=_("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=zv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<i&&(e.inclusive?o.maximum=e.value:o.exclusiveMaximum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value<=e.value:n.value<e.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),dl=_("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=zv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?o.minimum=e.value:o.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),Nv=_("$ZodCheckMultipleOf",(t,e)=>{Ie.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Kd(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})}}),Dv=_("$ZodCheckNumberFormat",(t,e)=>{Ie.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=el[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=Av)}),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 Lv=_("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ei(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=Ai(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),jv=_("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ei(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=Ai(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Fv=_("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ei(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=Ai(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})}}),zi=_("$ZodCheckStringFormat",(t,e)=>{var r,n;Ie.init(t,e),t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Uv=_("$ZodCheckRegex",(t,e)=>{zi.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),qv=_("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Iv),zi.init(t,e)}),Hv=_("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Ov),zi.init(t,e)}),Gv=_("$ZodCheckIncludes",(t,e)=>{Ie.init(t,e);let r=sr(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})}}),Zv=_("$ZodCheckStartsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`^${sr(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})}}),Bv=_("$ZodCheckEndsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`.*${sr(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 Wv=_("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var La=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
|
24
|
+
`)}function ir(t){let e={name:ro,label:ro,description:xM(),parameters:kg.Unsafe(_M),execute:(n,o,i,s,a)=>CM(t,a,o)},r={name:Or,label:Or,description:"Execute a discovered MCP tool by its original name, using the tool_name and mcp_server returned by find-tool.",parameters:kg.Unsafe(SM),execute:(n,o,i)=>PM(t,o,i)};xg(ro,"mcp"),xg(Or,"mcp"),t.registerTool(e),t.registerTool(r),Mr(e),Mr(r),Tg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{logger as gq}from"@hermes/logger";import{logger as OM}from"@hermes/logger";import{logger as kM}from"@hermes/logger";function pn(t){return new Promise(e=>setTimeout(e,t))}var Mg=kM.child({prefix:"pi-mcp"}),hi={maxTries:3,initialMs:500,mult:2,maxMs:2e3},pd=3e4,sr=200,ht=class extends Error{statusCode;statusText;responseBody;constructor(e,r,n){super(`${e} ${r}: ${n}`),this.name="McpRegistryHttpError",this.statusCode=e,this.statusText=r,this.responseBody=n}};function hd(t){return t instanceof ht?t.statusCode>=500:!0}async function hn(t){let e;for(let r=0;r<hi.maxTries;r++)try{return await t()}catch(n){if(e=n,!hd(n))throw n;if(r<hi.maxTries-1){let o=Math.min(hi.initialMs*hi.mult**r,hi.maxMs);await pn(o)}}throw e}var ha=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??pd}async callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:r===void 0?"{}":JSON.stringify({product_type:r}),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new ht(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 $g(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)}`;Mg.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)}`;Mg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function EM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Ig=32;function TM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Ig&&(e=e.slice(0,Ig)),e=e.replace(/_+$/,""),e}function Og(t,e){let r=e?TM(e):"",n=EM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function zg(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 AM=1e12,MM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function $M(t){let e=MM.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 IM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<AM?t*1e3:t;if(typeof t=="string")return $M(t)}function Ng(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:IM(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 Zt=OM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},oo=class extends Error{},Lg=[100,500],zM=Lg.length+1,NM=t=>new Promise(e=>{setTimeout(e,t)});function Dg(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var gd="augment.mcp-access-token.",DM=JSON.stringify({retired:!0}),ma=3;function Bt(t){return`${gd}${t}`}function ga(t){return`legacy:${t}`}function Et(t){return t?.id?Og(t.id,t.name):void 0}function yi(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:jg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function jg(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function vi(t){if(typeof t=="string")try{return vi(JSON.parse(t))??t}catch{return t}if(typeof t!="object"||t===null||Array.isArray(t))return t===void 0?void 0:JSON.stringify(t);let e=t;return JSON.stringify({type:e.type??null,id:e.id??null,name:e.name??null,url:jg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Tt(t){return vi(yi(t))}function LM(t){return vi(yi(t))}function jM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function no(t){try{let e=JSON.parse(t);return{credentialIdentity:vi(e.credentialIdentity),state:jM(e)}}catch{return{}}}function mi(t,e){let r={...t,type:"oauth",credentialIdentity:yi(e)};return JSON.stringify(r)}function mn(t,e){let r=zg({accessToken:t.accessToken,refreshToken:t.refreshToken,clientSecret:t.client.client_secret,expiresAt:t.expiresAt,resource:t.resource,serverMetadata:t.serverMetadata,client:t.client});return JSON.stringify({...JSON.parse(r),credentialIdentity:yi(e),credentialState:"active"})}function FM(t){return JSON.stringify({credentialIdentity:yi(t),credentialState:"retired",retired:!0})}function UM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=LM(e),i=vi(n.credentialIdentity);if(!(o&&(i===void 0?e?.auth!=="oauth":i!==o))&&!(typeof n.accessToken!="string"||n.accessToken.length===0||typeof n.serverMetadata!="object"||n.serverMetadata===null||typeof n.client!="object"||n.client===null))return{identityMatched:o!==void 0&&i===o,token:n}}function md(t){try{let e=Ng(t),r=e.serverMetadata,n=e.client;if(!r||!n||!e.accessToken&&!e.refreshToken||typeof r.authorization_endpoint!="string"||typeof r.token_endpoint!="string"||typeof n.client_id!="string")return;let o;return e.clientSecret?o=e.clientSecret:typeof n.client_secret=="string"&&(o=n.client_secret),{accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt,resource:e.resource,serverMetadata:{issuer:typeof r.issuer=="string"?r.issuer:r.authorization_endpoint,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint},client:{client_id:n.client_id,...o?{client_secret:o}:{}}}}catch{return}}var gi=class{_memory=new Kn;_getClient;_shouldPersist;_dirtyGenerations=new Map;_durableQueues=new Map;_registryMemoryWriteGenerations=new Map;_registryMemoryAuthorities=new Map;_registryMemoryCommittedAuthorities=new Map;_delay;_nextGeneration=0;constructor(e,r,n,o=NM){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=Tt(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=Tt(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=Tt(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(()=>{Zt.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(()=>{Zt.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=Tt(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=Et(e),n=Tt(e),o=this._getClient();if(!(!r||!n||!o||!e))try{return await this._enqueueWrite(r,()=>this._captureAuthenticatedIdentityVersion({client:o,key:r,identity:n,registry:e}))}catch{throw new Z}}async _captureAuthenticatedIdentityVersion(e){for(let r=0;r<ma;r+=1){let n=await this._captureIdentityVersionAttempt(e);if(n!==void 0)return n}throw new Z}async _captureIdentityVersionAttempt(e){let{client:r,key:n,identity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return"0";let a=no(s.value);if(a.state==="retired")return s.version;if(a.credentialIdentity!==void 0&&a.credentialIdentity!==o)throw new Z;if(a.credentialIdentity===o&&a.state==="active")return s.version;let c=md(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,mn(c,i),s.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async captureRefreshIdentityVersion(e){let r=Et(e),n=Tt(e),o=this._getClient();if(!r||!n||!o){if(e?.id)throw new Z;return}try{return await this._enqueueWrite(r,async()=>{let i=await o.getUserSecretWithVersion(r);if(!i)throw new Z;let s=no(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!md(i.value))throw new Z;return i.version})}catch{throw new Z}}persistAuthenticated(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}persistRefresh(e,r,n,o){return this._persistAuthenticated(e,r,n,o)}async _persistAuthenticated(e,r,n,o){let i=this._getClient(),s=Et(n),a=n&&s&&i&&o!==void 0?this._enqueueWrite(s,()=>i.upsertUserSecret(s,mn(r,n),o)):void 0,c=this._shouldPersist()&&i?()=>this._writeLegacyKey(e,r,!1,n):void 0;if(a)return this._drainRegistryWrites(e,a,c,void 0,n);if(n?.id||this._shouldPersist()&&!i)throw new Z;if(c)return{revision:await this._asPersistenceResult(c()),domain:ga(e)}}restoreAfterSupersededRefresh(e,r,n,o,i,s){return this.restoreAfterSupersededAuthentication(e,r,n,o,i,s)}async restoreAfterSupersededAuthentication(e,r,n,o,i,s=o){let a=this._getClient(),c=Et(o),u;if(c&&o){if(!a||!s||i?.domain!==`private:${o.id}`||Et(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&&Et(s))throw new Z;if(!this._shouldPersist())return u;if(!a)throw new Z;if(c&&o){try{await this._enqueueWrite(Bt(e),()=>this._restoreLegacyCredential({client:a,key:Bt(e),persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s}))}catch{Zt.error(`Failed to mirror restored MCP OAuth token for "${e}" to the legacy key`)}return u}if(i?.domain!==ga(e))throw new Z;try{return await this._enqueueWrite(Bt(e),()=>this._restoreLegacyCredentialExact({client:a,key:Bt(e),serverName:e,persistedToken:r,currentToken:n,persistedIdentity:o,currentIdentity:s,persistedRevision:i}))}catch{throw new Z}}async _restoreLegacyCredentialExact(e){let{client:r,key:n,serverName:o,persistedToken:i,currentToken:s,persistedIdentity:a,currentIdentity:c,persistedRevision:u}=e,d=await r.getUserSecretWithVersion(n);if(!(!d||d.version!==u.revision||d.value!==mi(i,a)))try{return{revision:await r.upsertUserSecret(n,mi(s,c),u.revision),domain:ga(o)}}catch(l){if(this._isVersionConflict(l))return;throw l}}async _restoreRegistryCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a,persistedRevision:c}=e,u=await r.getUserSecretWithVersion(n);if(!(!u||u.version!==c.revision||u.value!==mn(o,s)))try{return{revision:await r.upsertUserSecret(n,mn(i,a),c.revision),domain:`private:${a.id}`}}catch(d){if(this._isVersionConflict(d))return;throw d}}async _restoreLegacyCredential(e){let{client:r,key:n,persistedToken:o,currentToken:i,persistedIdentity:s,currentIdentity:a}=e,c=await r.getUserSecretWithVersion(n);if(!(!c||c.value!==mi(o,s)))try{await r.upsertUserSecret(n,mi(i,a),c.version)}catch(u){if(!this._isVersionConflict(u))throw u}}async _drainRegistryWrites(e,r,n,o,i){let s;try{s=await r}catch{throw new Z}if(o?.(),i?.id&&!s)throw new Z;try{await n?.()}catch{Zt.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=Tt(o);if(!i)throw new Z;for(let s=0;s<ma;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?no(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,mn(n,o),a?.version??"0")}catch(u){if(!this._isVersionConflict(u))throw u}}throw new Z}async _retireRegistryCredential(e,r,n){let o=Tt(n);if(!o)throw new Z;for(let i=0;i<ma;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?no(s.value):{};if(a.state==="retired"||a.credentialIdentity!==void 0&&a.credentialIdentity!==o)return;if(s&&a.credentialIdentity===void 0)throw new Z;try{await this._upsertUserSecretOnce(e,r,FM(n),s?.version??"0");return}catch(c){if(!this._isVersionConflict(c))throw c}}throw new Z}_isVersionConflict(e){return e instanceof ht&&(e.statusCode===412||e.statusCode===400&&e.responseBody.includes("version mismatch"))}async _persist(e,r,n,o,i){let s=this._getClient(),a=Et(n),c=a&&n&&s?this._enqueueWrite(a,()=>{let d=this._getClient();if(!d)throw new Error("MCP secrets client unavailable");return this._writeRegistryCredential(d,a,r,n)},{credentialShape:"registry",operation:"write"}):void 0,u=this._shouldPersist()&&s?()=>this._writeLegacyKey(e,r,o,n):void 0;if(c)return this._drainRegistryWrites(e,c,u,i,n);if(n?.id||this._shouldPersist()&&!s)throw new Z;if(u)return{revision:await this._asPersistenceResult(u()),domain:ga(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Dg(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 oo;try{return await n()}catch(a){this._throwIfPersistenceCanceled(e,r,o);let c=this._persistenceRetryDelay(a,s,o);if(c===void 0)throw a;await this._delay(c)}}throw new Z}_isLegacyPersistenceGateClosed(e){return e?.credentialShape==="legacy"&&!this._shouldPersist()}_throwIfPersistenceCanceled(e,r,n){if(n!==void 0&&e.latestMutationGeneration!==r||this._isLegacyPersistenceGateClosed(n))throw new oo}_persistenceRetryDelay(e,r,n){let o=n?Lg[r]:void 0,i=!(e instanceof Z)&&hd(e);if(o===void 0||!i){n&&Zt.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(Bt(e),async()=>{let a=this._getClient();if(!a)throw new Error("MCP secrets client unavailable");let c=await this._upsertUserSecretOnce(a,Bt(e),mi(r,o));return this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e),c},{credentialShape:"legacy",operation:"write",onGeneration:a=>{i=a,this._dirtyGenerations.set(e,a)}});return s.catch(a=>{(a instanceof oo||!n)&&this._dirtyGenerations.get(e)===i&&this._dirtyGenerations.delete(e)}),s}retireCredential(e,r,n){let o=Tt(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=Et(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(Bt(e),async()=>{let p=await c.upsertUserSecret(Bt(e),DM)}):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"&&Zt.error(`Failed to retire MCP OAuth credential identity for "${e}" durably`),i.status==="rejected"&&Zt.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=Bt(e);if(!this._canScheduleDurableOperation(n)){this._dirtyGenerations.delete(e);return}let o=0;this._enqueueWrite(n,async()=>{let s=this._getClient();if(!s)throw new Error("MCP secrets client unavailable");await this._deleteUserSecretOnce(s,n)},{credentialShape:"legacy",operation:"delete",onGeneration:s=>{o=s,this._dirtyGenerations.set(e,s)}}).then(()=>{this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)}).catch(s=>{s instanceof oo&&this._dirtyGenerations.get(e)===o&&this._dirtyGenerations.delete(e)})}_retireRegistryKey(e){let r=Et(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(()=>{Zt.error(`Failed to retire MCP OAuth registry credential "${r}" durably; cleared in-memory only`)})}_canScheduleDurableOperation(e){return!!(this._getClient()??this._durableQueues.get(Dg(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=Et(r),o=Tt(r);if(!n||!o||!r)return{identityRejected:!1};try{return await this._enqueueWrite(n,()=>this._readRegistryToken({client:e,key:n,expectedIdentity:o,registry:r}))}catch{return{identityRejected:!0}}}async _readRegistryToken(e){for(let r=0;r<ma;r+=1){let n=await this._readRegistryTokenAttempt(e);if(n!==void 0)return n}return{identityRejected:!0}}async _readRegistryTokenAttempt(e){let{client:r,key:n,expectedIdentity:o,registry:i}=e,s=await r.getUserSecretWithVersion(n);if(!s)return{identityRejected:!1,authorityVersion:"0"};let a=no(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=md(s.value);if(!c)return{identityRejected:!0};if(a.credentialIdentity===o&&a.state==="active")return{identityRejected:!1,token:c};try{return await r.upsertUserSecret(n,mn(c,i),s.version),{identityRejected:!1,token:c}}catch(u){return this._isVersionConflict(u)?void 0:{identityRejected:!0}}}async _importLegacyToken(e,r,n,o){let i=Et(n),s=Tt(n);if(!i||!s||!n||o===void 0)return;let a=await this._loadLegacyToken(e,r,n);if(a)try{return await this._enqueueWrite(i,async()=>{let c=await e.getUserSecretWithVersion(i);if((c?.version??"0")===o){if(c){let u=no(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,mn(a.token,n),o),{identityMatched:!0,token:a.token}}})}catch{return}}async _loadLegacyToken(e,r,n){try{let o=await e.getSecret(Bt(r));return o?UM(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){Zt.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),Zt.debug(`Seeded MCP OAuth token for "${e}" from backend`))}}};var Fg="Augment Code",Ug="https://augmentcode.com",qg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var HM=1e3,GM=500;function vd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function _i(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var yd=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Hg(t){return new URLSearchParams({k:t}).toString().slice(2)}function ZM(t,e){let r=`${Hg(t)}:${Hg(e)}`;return`Basic ${btoa(r)}`}function Wg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function BM(t){return t.client.token_endpoint_auth_method==="none"||!Wg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function WM(t){return t==="basic"?"body":t==="body"?"basic":void 0}function VM(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var KM=401,Vg=500;function _d(t,...e){return t.status<Vg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Gg(t){return _d(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===KM}async function Zg(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=Wg(t);e==="basic"&&i?n.Authorization=ZM(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=VM(c),d=c.slice(0,GM);throw new gn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new yd;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*HM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Bg(t,e){try{return await Zg(t,e,t.resource)}catch(r){if(r instanceof gn&&t.resource&&_d(r,"invalid_target"))return await Zg(t,e,void 0);throw r}}var gn=class t extends Error{status;statusText;body;oauthErrorCode;clientAuthPlacementsExhausted;constructor(e,r,n,o,i=!1){super(`Token refresh failed: ${e} ${r}${n?` \u2014 ${n}`:""}`),this.name="RefreshHttpError",this.status=e,this.statusText=r,this.body=n,this.oauthErrorCode=o,this.clientAuthPlacementsExhausted=i}withClientAuthPlacementsExhausted(){return new t(this.status,this.statusText,this.body,this.oauthErrorCode,!0)}};function Sd(t){return!(t instanceof gn)||t.status>=Vg?!1:_d(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function wd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=BM(t);try{return await Bg(e,r)}catch(n){let o=WM(r);if(!(n instanceof gn)||!o||!Gg(n))throw n;try{return await Bg(e,o)}catch(i){throw i instanceof gn&&Gg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as H0}from"@hermes/logger";var Cd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Cd="oauth4webapi/v3.8.6");function co(t,e){if(t==null)return!1;try{return t instanceof e||Object.getPrototypeOf(t)[Symbol.toStringTag]===e.prototype[Symbol.toStringTag]}catch{return!1}}var Wt="ERR_INVALID_ARG_VALUE",Je="ERR_INVALID_ARG_TYPE";function pe(t,e,r){let n=new TypeError(t,{cause:r});return Object.assign(n,{code:e}),n}var Td=Symbol(),JM=Symbol(),YM=Symbol(),vn=Symbol();var Kg=Symbol();var XM=new TextEncoder,QM=new TextDecoder;function Pd(t){return typeof t=="string"?XM.encode(t):QM.decode(t)}var xd;Uint8Array.prototype.toBase64?xd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):xd=e=>{e instanceof ArrayBuffer&&(e=new Uint8Array(e));let r=[];for(let n=0;n<e.byteLength;n+=32768)r.push(String.fromCharCode.apply(null,e.subarray(n,n+32768)));return btoa(r.join("")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")};var kd;Uint8Array.fromBase64?kd=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}}:kd=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}};function va(t){return typeof t=="string"?kd(t):xd(t)}var so=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=M0,Error.captureStackTrace?.(this,this.constructor)}},Si=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,r?.code&&(this.code=r?.code),Error.captureStackTrace?.(this,this.constructor)}};function O(t,e,r){return new Si(t,{code:e,cause:r})}function _a(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function Ad(t){co(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(Cd&&!e.has("user-agent")&&e.set("user-agent",Cd),e.has("authorization"))throw pe('"options.headers" must not include the "authorization" header name',Wt);return e}function Md(t,e){if(e!==void 0){if(typeof e=="function"&&(e=e(t.href)),!(e instanceof AbortSignal))throw pe('"options.signal" must return or be an instance of AbortSignal',Je);return e}}function e0(t){return t.includes("//")?t.replace("//","/"):t}function t0(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=e0(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function r0(t,e,r,n){if(!(t instanceof URL))throw pe(`"${e}" must be an instance of URL`,Je);sy(t,n?.[Td]!==!0);let o=r(new URL(t.href)),i=Ad(n?.headers);return i.set("accept","application/json"),(n?.[vn]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:Md(o,n?.signal)})}function io(t,e,r,n,o){try{if(typeof t!="number"||!Number.isFinite(t))throw pe(`${r} must be a number`,Je,o);if(t>0)return;if(e){if(t!==0)throw pe(`${r} must be a non-negative number`,Wt,o);return}throw pe(`${r} must be a positive number`,Wt,o)}catch(i){throw n?O(i.message,n,o):i}}function $e(t,e,r,n){try{if(typeof t!="string")throw pe(`${e} must be a string`,Je,n);if(t.length===0)throw pe(`${e} must not be empty`,Wt,n)}catch(o){throw r?O(o.message,r,n):o}}async function Xg(t,e){let r=t;if(!(r instanceof URL)&&r!==ba)throw pe('"expectedIssuerIdentifier" must be an instance of URL',Je);if(!co(e,Response))throw pe('"response" must be an instance of Response',Je);if(e.status!==200)throw O('"response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)',jd,e);Ri(e);let n=await xa(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==ba&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',Ca,{expected:r.href,body:n,attribute:"issuer"});return n}function Qg(t){o0(t,"application/json")}function n0(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,I0,t)}function o0(t,e){if(g0(t)!==e)throw n0(t,e)}function $d(){return va(crypto.getRandomValues(new Uint8Array(32)))}function ey(){return $d()}function ty(){return $d()}function ry(){return $d()}async function ny(t){return $e(t,"codeVerifier"),va(await crypto.subtle.digest("SHA-256",Pd(t)))}function Id(t){let e=t?.[JM];return typeof e=="number"&&Number.isFinite(e)?e:0}function Od(t){let e=t?.[YM];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function zd(){return Math.floor(Date.now()/1e3)}function Ra(t){if(typeof t!="object"||t===null)throw pe('"as" must be an object',Je);$e(t.issuer,'"as.issuer"')}function Nd(t){if(typeof t!="object"||t===null)throw pe('"client" must be an object',Je);$e(t.client_id,'"client.client_id"')}function Jg(t){return encodeURIComponent(t).replace(/(?:[-_.!~*'()]|%20)/g,e=>{switch(e){case"-":case"_":case".":case"!":case"~":case"*":case"'":case"(":case")":return`%${e.charCodeAt(0).toString(16).toUpperCase()}`;case"%20":return"+";default:throw new Error}})}function Dd(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function oy(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=Jg(r.client_id),s=Jg(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function iy(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var i0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function sy(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",O0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",z0,t)}function Yg(t,e,r,n){let o;if(typeof t!="string"||!(o=i0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?N0:D0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return sy(o,n),o}function ay(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?Yg(t.mtls_endpoint_aliases[e],e,r,n):Yg(t[e],e,r,n)}var ao=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=A0,this.cause=r.cause,this.error=r.cause.error,this.status=r.response.status,this.error_description=r.cause.error_description,Object.defineProperty(this,"response",{enumerable:!1,value:r.response}),Error.captureStackTrace?.(this,this.constructor)}},wi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=$0,this.cause=r.cause,this.error=r.cause.get("error"),this.error_description=r.cause.get("error_description")??void 0,Error.captureStackTrace?.(this,this.constructor)}},bi=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=T0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},Sa="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",s0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",a0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',c0="("+Sa+")\\s*=\\s*"+a0,u0="("+Sa+")\\s*=\\s*("+Sa+")",d0=new RegExp("^[,\\s]*("+Sa+")"),l0=new RegExp("^[,\\s]*"+c0+"[,\\s]*(.*)"),f0=new RegExp("^[,\\s]*"+u0+"[,\\s]*(.*)"),p0=new RegExp("^("+s0+")(?:$|[,\\s])(.*)");function h0(t){if(!co(t,Response))throw pe('"response" must be an instance of Response',Je);let e=t.headers.get("www-authenticate");if(e===null)return;let r=[],n=e;for(;n;){let o=n.match(d0),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(l0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(f0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(p0)){if(Object.keys(u).length)break;[,d,n]=o;break}return}else n=s||void 0;let l={scheme:i,parameters:u};d&&(l.token68=d),r.push(l)}if(r.length)return r}async function m0(t){if(t.status>399&&t.status<500){Ri(t),Qg(t);try{let e=await t.clone().json();if(_a(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function cy(t,e,r){if(t.status!==e){S0(t);let n;throw(n=await m0(t))?(await t.body?.cancel(),new ao("server responded with an error in the response body",{cause:n,response:t})):O(`"response" is not a conform ${r} response (unexpected HTTP status code)`,jd,t)}}function uy(t){if(!Ld.has(t))throw pe('"options.DPoP" is not a valid DPoPHandle',Wt)}function g0(t){return t.headers.get("content-type")?.split(";")[0]}async function y0(t,e,r,n,o,i,s){return await r(t,e,o,i),i.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),(s?.[vn]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:Md(n,s?.signal)})}async function v0(t,e,r,n,o,i){let s=ay(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[Td]!==!0);o.set("grant_type",n);let a=Ad(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(uy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await y0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var dy=new WeakMap,_0=new WeakMap;function ly(t){if(!t.id_token)return;let e=dy.get(t);if(!e)throw pe('"ref" was already garbage collected or did not resolve from the proper sources',Wt);return e}async function fy(t,e,r,n,o,i){if(Ra(t),Nd(e),!co(r,Response))throw pe('"response" must be an instance of Response',Je);await cy(r,200,"Token Endpoint"),Ri(r);let s=await xa(r);if($e(s.access_token,'"response" body "access_token" property',V,{body:s}),$e(s.token_type,'"response" body "token_type" property',V,{body:s}),s.token_type=s.token_type.toLowerCase(),s.expires_in!==void 0){let a=typeof s.expires_in!="number"?parseFloat(s.expires_in):s.expires_in;io(a,!0,'"response" body "expires_in" property',V,{body:s}),s.expires_in=a}if(s.refresh_token!==void 0&&$e(s.refresh_token,'"response" body "refresh_token" property',V,{body:s}),s.scope!==void 0&&typeof s.scope!="string")throw O('"response" body "scope" property must be a string',V,{body:s});if(s.id_token!==void 0){$e(s.id_token,'"response" body "id_token" property',V,{body:s});let a=["aud","exp","iat","iss","sub"];e.require_auth_time===!0&&a.push("auth_time"),e.default_max_age!==void 0&&(io(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await L0(s.id_token,j0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Id(e),Od(e),o).then(x0.bind(void 0,a)).then(b0.bind(void 0,t)).then(w0.bind(void 0,e.client_id));if(Array.isArray(c.aud)&&c.aud.length!==1){if(c.azp===void 0)throw O('ID Token "aud" (audience) claim includes additional untrusted audiences',zr,{claims:c,claim:"aud"});if(c.azp!==e.client_id)throw O('unexpected ID Token "azp" (authorized party) claim value',zr,{expected:e.client_id,claims:c,claim:"azp"})}c.auth_time!==void 0&&io(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),_0.set(r,u),dy.set(s,c)}if(i?.[s.token_type]!==void 0)i[s.token_type](r,s);else if(s.token_type!=="dpop"&&s.token_type!=="bearer")throw new so("unsupported `token_type` value",{cause:{body:s}});return s}function S0(t){let e;if(e=h0(t))throw new bi("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function w0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',zr,{expected:t,claims:e.claims,claim:"aud"})}else if(e.claims.aud!==t)throw O('unexpected JWT "aud" (audience) claim value',zr,{expected:t,claims:e.claims,claim:"aud"});return e}function b0(t,e){let r=t[q0]?.(e)??t.issuer;if(e.claims.iss!==r)throw O('unexpected JWT "iss" (issuer) claim value',zr,{expected:r,claims:e.claims,claim:"iss"});return e}var Ld=new WeakSet;function R0(t){return Ld.add(t),t}var C0=Symbol();async function py(t,e,r,n,o,i,s){if(Ra(t),Nd(e),!Ld.has(n))throw pe('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Wt);$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!==C0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),v0(t,e,r,"authorization_code",c,s)}var P0={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 x0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${P0[r]}) claim missing`,V,{claims:e.claims});return e}var bd=Symbol(),Rd=Symbol();async function hy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?k0(t,e,r,n.expectedNonce,n.maxAge,n[Kg],n.recognizedTokenTypes):E0(t,e,r,n?.[Kg],n?.recognizedTokenTypes)}async function k0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=bd;break;case bd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=Rd;break;case Rd:break;default:io(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await fy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=ly(c);if(o!==Rd){let d=zd()+Id(e),l=Od(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",wa,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===bd){if(u.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',zr,{expected:void 0,claims:u,claim:"nonce"})}else if(u.nonce!==n)throw O('unexpected ID Token "nonce" claim value',zr,{expected:n,claims:u,claim:"nonce"});return c}async function E0(t,e,r,n,o){let i=await fy(t,e,r,void 0,n,o),s=ly(i);if(s){if(e.default_max_age!==void 0){io(e.default_max_age,!0,'"client.default_max_age"');let a=zd()+Id(e),c=Od(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",wa,{claims:s,now:a,tolerance:c,claim:"auth_time"})}if(s.nonce!==void 0)throw O('unexpected ID Token "nonce" claim value',zr,{expected:void 0,claims:s,claim:"nonce"})}return i}var T0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",A0="OAUTH_RESPONSE_BODY_ERROR",M0="OAUTH_UNSUPPORTED_OPERATION",$0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Ed="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var I0="OAUTH_RESPONSE_IS_NOT_JSON",jd="OAUTH_RESPONSE_IS_NOT_CONFORM",O0="OAUTH_HTTP_REQUEST_FORBIDDEN",z0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",wa="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",zr="OAUTH_JWT_CLAIM_COMPARISON_FAILED",Ca="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var N0="OAUTH_MISSING_SERVER_METADATA",D0="OAUTH_INVALID_SERVER_METADATA";function Ri(t){if(t.bodyUsed)throw pe('"response" body has been used already',Wt)}async function L0(t,e,r,n,o){let{0:i,1:s,length:a}=t.split(".");if(a===5)if(o!==void 0)t=await o(t),{0:i,1:s,length:a}=t.split(".");else throw new so("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(Pd(va(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Ed,l)}if(!_a(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new so('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(Pd(va(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Ed,l)}if(!_a(u))throw O("JWT Payload must be a top level object",V,t);let d=zd()+r;if(u.exp!==void 0){if(typeof u.exp!="number")throw O('unexpected JWT "exp" (expiration time) claim type',V,{claims:u});if(u.exp<=d-n)throw O('unexpected JWT "exp" (expiration time) claim value, expiration is past current timestamp',wa,{claims:u,now:d,tolerance:n,claim:"exp"})}if(u.iat!==void 0&&typeof u.iat!="number")throw O('unexpected JWT "iat" (issued at) claim type',V,{claims:u});if(u.iss!==void 0&&typeof u.iss!="string")throw O('unexpected JWT "iss" (issuer) claim type',V,{claims:u});if(u.nbf!==void 0){if(typeof u.nbf!="number")throw O('unexpected JWT "nbf" (not before) claim type',V,{claims:u});if(u.nbf>d+n)throw O('unexpected JWT "nbf" (not before) claim value',wa,{claims:u,now:d,tolerance:n,claim:"nbf"})}if(u.aud!==void 0&&typeof u.aud!="string"&&!Array.isArray(u.aud))throw O('unexpected JWT "aud" (audience) claim type',V,{claims:u});return{header:c,claims:u,jwt:t}}function j0(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 F0=Symbol(),U0=Symbol();function my(t,e,r,n){if(Ra(t),Nd(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw pe('"parameters" must be an instance of URLSearchParams, or URL',Je);if(yn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=yn(r,"iss"),i=yn(r,"state");if(!o&&t.authorization_response_iss_parameter_supported)throw O('response parameter "iss" (issuer) missing',V,{parameters:r});if(o&&o!==t.issuer)throw O('unexpected "iss" (issuer) response parameter value',V,{expected:t.issuer,parameters:r});switch(n){case void 0:case U0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case F0:break;default:if($e(n,'"expectedState" argument'),i!==n)throw O(i===void 0?'response parameter "state" missing':'unexpected "state" response parameter value',V,{expected:n,parameters:r})}if(yn(r,"error"))throw new wi("authorization response from the server is an error",{cause:r});let a=yn(r,"id_token"),c=yn(r,"token");if(a!==void 0||c!==void 0)throw new so("implicit and hybrid flows are not supported");return R0(new URLSearchParams(r))}async function gy(t,e,r){Ra(t);let n=ay(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[Td]!==!0),o=Ad(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(uy(r.DPoP),await r.DPoP.addProof(n,o,i,r.initialAccessToken)),r?.initialAccessToken&&o.set("authorization",`${o.has("dpop")?"DPoP":"Bearer"} ${r.initialAccessToken}`);let s=await(r?.[vn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Md(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function yy(t){if(!co(t,Response))throw pe('"response" must be an instance of Response',Je);await cy(t,201,"Dynamic Client Registration Endpoint"),Ri(t);let e=await xa(t);return $e(e.client_id,'"response" body "client_id" property',V,{body:e}),e.client_secret!==void 0&&$e(e.client_secret,'"response" body "client_secret" property',V,{body:e}),e.client_secret&&io(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function vy(t,e){return r0(t,"resourceIdentifier",r=>(t0(r,".well-known/oauth-protected-resource",!0),r),e)}async function Pa(t,e){let r=t;if(!(r instanceof URL)&&r!==ba)throw pe('"expectedResourceIdentifier" must be an instance of URL',Je);if(!co(e,Response))throw pe('"response" must be an instance of Response',Je);if(e.status!==200)throw O('"response" is not a conform Resource Server Metadata response (unexpected HTTP status code)',jd,e);Ri(e);let n=await xa(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==ba&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',Ca,{expected:r.href,body:n,attribute:"resource"});return n}async function xa(t,e=Qg){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Ed,n)}if(!_a(r))throw O('"response" body must be a top level object',V,{body:r});return r}var ba=Symbol(),q0=Symbol();var wy=H0.child({prefix:"pi-mcp"}),Ci=1e4,G0=1e3,Z0=401,_y=200,B0=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,W0=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,by;function uo(){return by??globalThis.fetch}function Ry(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Cy(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Ud(t){let e=Cy(t);try{let r=await V0(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await Q0(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Ta(r)}throw new Error("Failed to discover metadata URL")}async function V0(t){try{let e=await vy(t,{signal:AbortSignal.timeout(Ci),[vn]:by??void 0});return e.ok?await Pa(t,e):(e.body?.cancel().catch(()=>{}),await Py(t,e.headers.get("www-authenticate"))??await Sy(t))}catch{return await Sy(t)}}async function Sy(t){for(let e of["HEAD","GET"])try{let r=await uo()(t,{method:e,signal:AbortSignal.timeout(Ci)});r.body?.cancel().catch(()=>{});let n=await Py(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function Py(t,e){let r=X0(e);if(r)try{let n=await uo()(r,{signal:AbortSignal.timeout(Ci)});return await K0(t,n)}catch{return}}async function K0(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Pa(t,new Response(r,n))}catch(o){if(!(o instanceof Si)||o.code!==Ca)throw o;let i=J0(r);if(!i||!Y0(i,t))throw o;return await Pa(i,new Response(r,n))}}function J0(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function Y0(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 X0(t){if(!t)return;let e=t.match(B0),r=t.match(W0),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function Q0(t){for(let e of e$(t))try{let r=new URL(e,t),n=await uo()(r,{signal:AbortSignal.timeout(Ci)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function e$(t){let e=t.pathname.startsWith("/")?t.pathname.slice(1):t.pathname;return[...e.length>0?[new URL(`/.well-known/oauth-authorization-server/${e}`,t),new URL(`/.well-known/openid-configuration/${e}`,t),new URL(`/${e}/.well-known/openid-configuration`,t)]:[],new URL("/.well-known/oauth-authorization-server",t),new URL("/.well-known/openid-configuration",t)]}async function qd(t){try{let e=await uo()(t,{signal:AbortSignal.timeout(Ci)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await t$(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await Xg(o,new Response(r,n))}catch(e){throw Ta(e)}}async function t$(t){if(!t.ok)throw new Error("Invalid status code from discovery response");let e=await t.json();if(!e.issuer||typeof e.issuer!="string")throw new Error("Invalid issuer from discovery response");return new URL(e.issuer)}var Fd=class extends Error{issuer;constructor(e){super(`This MCP server's authorization server (\`${e}\`) does not support Dynamic Client Registration. Configure a static OAuth Client ID and Secret in the Advanced section.`),this.name="McpOAuthDcrUnsupportedError",this.issuer=e}};function r$(t){if(!t.clientId)throw new Error("clientId is required to build client from config");let e=t.clientSecret?.trim();return{client_id:t.clientId,...e?{client_secret:e}:{}}}async function Hd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return r$({...t,clientId:n});if(!e.registration_endpoint)throw new Fd(e.issuer);return await n$(e,r)}async function n$(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await gy(t,{client_name:Fg,client_uri:Ug,logo_uri:qg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[vn]:o$});return n.ok||wy.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await yy(n)}catch(r){throw Ta(r)}}async function o$(t,e){let r=await uo()(t,Ry(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||wy.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${s$(n)}`),r.status===200&&(o.status=201,o.statusText="Created"),o.status===201)try{let i=JSON.parse(n);i.client_secret_expires_at||(i.client_secret_expires_at=0),"client_secret"in i&&!i.client_secret&&(i.client_secret=void 0),n=JSON.stringify(i)}catch{}return new Response(n,o)}function i$(t,e){let r=new Headers(e?.headers),n=r.get("content-type"),o=e;return n?.toLowerCase().startsWith("application/x-www-form-urlencoded;")&&(r.set("content-type","application/x-www-form-urlencoded"),o={...e,headers:r}),uo()(t,Ry(o))}function s$(t){try{let e=JSON.parse(t);for(let r of Object.keys(e))/secret|token/i.test(r)&&(e[r]="[REDACTED]");return JSON.stringify(e)}catch{return t.length>_y?`${t.slice(0,_y)}\u2026`:t}}async function ka(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=ey(),c=await ny(a),u=ty(),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,m=Cy(i??t).toString(),h=new URL(r.authorization_endpoint);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",e.client_id),h.searchParams.set("code_challenge",c),h.searchParams.set("code_challenge_method","S256"),h.searchParams.set("redirect_uri",n),h.searchParams.set("resource",m),h.searchParams.set("state",u),p&&h.searchParams.set("scope",p),l?.includes("offline_access")&&h.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=ry(),h.searchParams.set("nonce",d)),{client:e,serverMetadata:r,redirectUri:n,codeVerifier:a,nonce:d,scope:p,state:u,resource:m,offlineAccessAugmented:f,authUri:h}}function Ea(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Gd(t){if(!t.resource)throw new Error("Cannot rebuild authorization state without a resource");let e=t.scope?.split(/\s+/).filter(r=>r&&r!=="offline_access").join(" ");return await ka(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function a$(t,e,r){let n=await py(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[vn]:i$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return hy(t.serverMetadata,t.client,await c$(n))}async function Zd(t,e){try{let r=my(e.serverMetadata,e.client,t,e.state),n=await d$(e.client,o=>a$(e,r,o));return p$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Ta(r)}}async function c$(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 xy(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function u$(t){let e=xy(t);return e===void 0?iy():t.token_endpoint_auth_method==="client_secret_basic"?oy(e):Dd(e)}async function d$(t,e){try{return await e(u$(t))}catch(r){let n=l$(t);if(n&&f$(r))return await e(n);throw r}}function l$(t){let e=xy(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Dd(e)}function f$(t){return t instanceof ao?t.error==="invalid_client"||t.error==="unauthorized":t instanceof bi?t.status===Z0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function p$(t,e,r,n,o){if(!t.access_token)throw new Error("OAuth token response contained no access token");return{accessToken:t.access_token,refreshToken:t.refresh_token||n,expiresAt:t.expires_in?Date.now()+t.expires_in*G0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Ta(t){if(t instanceof ao||t instanceof wi){let e=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${e}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var h$=/(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,ky=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Ey=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Ty=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_n="[redacted]",m$=/[.*+?^${}()|[\]\\]/g;function Bd(t,e){return e.chars-=t.length,e.chars<0?e.marker:e.redactText(t)}function g$(t,e,r){try{let n=Array.isArray(t);if(n&&t.length>r.nodes)return r.marker;let o=Object.getPrototypeOf(t);if(!n&&o!==null&&o!==Object.prototype)return r.marker;r.active.add(t);let i=Object.keys(t);if(i.length>r.nodes)return r.marker;let s=n?[]:Object.create(null);for(let a of i){if(n&&!/^(0|[1-9]\d*)$/.test(a))continue;let c=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(s,n?a:Bd(a,r),{value:c&&"value"in c?Ay(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 Ay(t,e,r){if(--r.nodes<0||e>16)return r.marker;if(typeof t=="string")return Bd(t,r);if(t===void 0)return t;if(t===null||typeof t=="boolean"||typeof t=="number"){if(typeof t=="number"&&!Number.isFinite(t))return r.marker;let n=JSON.stringify(t);return Bd(n,r)===n?t:r.marker}return typeof t!="object"||r.active.has(t)?r.marker:g$(t,e,r)}function My(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(m$,"\\$&")).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=>Ay(i,0,{redactText:o,marker:n,nodes:1e4,chars:262144,active:new WeakSet})}}var y$=500,v$=8192,_$=6;function S$(t){return ky.test(t)||Ey.test(t)||Ty.test(t)}var w$=new RegExp(ky.source,"g"),b$=new RegExp(Ey.source,"gi"),R$=new RegExp(Ty.source,"g");function $y(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function Vd(t){return t&&$y(t,v$).replace(w$,_n).replace(b$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_n}`).replace(R$,_n)}function Wd(t,e,r){if(e)return _n;if(typeof t=="string")return S$(t)?_n:t;if(t===null||typeof t!="object")return t;if(r>=_$)return"[truncated]";if(Array.isArray(t))return t.map(o=>Wd(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Wd(i,h$.test(o),r+1);return n}function Iy(t,e=y$){if(t==null)return;let r=Wd(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return $y(n,e)}var zy={reportError:()=>{}},Oy=Symbol.for("__pi_mcp_error_reporter_slot__");function Ny(){let t=globalThis,e=t[Oy];return e||(e={reporter:null},t[Oy]=e),e}function Dy(t){let e=Ny(),r=e.reporter??zy;return e.reporter=t,r}function C$(){return Ny().reporter??zy}function Aa(t,e){try{C$().reportError(t,e)}catch{}}import{logger as P$}from"@hermes/logger";var Kd=P$.child({prefix:"pi-mcp"});function Ly(t,e,r){let n=0,o=0,i=r?.authoritative?{}:{...t.headerSecrets};for(let[s,a]of Object.entries(e))typeof a=="string"&&a!==""?(i[s]=a,n++):a===null||a===""?s in i&&(delete i[s],o++):Kd.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Kd.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function jy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(gd)){let o=t.headerSecrets[e];if(o!==void 0)return o;let i=t.headerSecretFailures[e];if(i==="missing"||i==="permission_denied")return{reason:i}}let r=t.secretsClient;if(r)try{let o=await r.getSecret(e);return o!==void 0?(delete t.headerSecretFailures[e],o):{reason:t.headerSecretFailures[e]??"missing"}}catch{return{reason:"transient"}}let n=t.headerSecretFailures[e];return n===void 0?void 0:{reason:n}}}function Fy(t,e,r){t.headerSecretFailures??={};let n=r?.authoritative?{}:{...t.headerSecretFailures},o={...t.headerSecrets};for(let[i,s]of Object.entries(e))(s==="missing"||s==="permission_denied"||s==="transient")&&(n[i]=s,delete o[i]);t.headerSecrets=o,t.headerSecretFailures=n,Kd.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Uy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as x$}from"@hermes/logger";var Pi=x$.child({prefix:"pi-mcp"}),k$="$augment-",xi=/\$augment-[a-zA-Z0-9_.-]+/g,E$=new RegExp(xi.source);function Nr(t){return E$.test(t)}function Ma(t){return t.slice(k$.length)}function ki(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(xi))e.add(Ma(n[0]));return[...e].sort()}var T$=["permission_denied","missing","transient"];function qy(t){let e=new Set(t);return T$.find(r=>e.has(r))??"missing"}var mt=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 Hy(t,e,r,n,o,i,s){let a=[...t.matchAll(xi)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Ma(d);try{let p=await r(f);if(p===void 0||typeof p=="object"){n.add(f),i.set(f,p===void 0?"missing":p.reason),Pi.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let m=p;m.trim()===""&&(o.add(f),Pi.warn(`Secret "${f}" resolved empty for "${e}"`));let h=c.slice(0,l),g=s?s(m,h):m;c=h+g+c.slice(l+d.length),Pi.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),Pi.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Gy({configEnv:t,localEnv:e,getSecret:r}){let n={},o=new Set,i=new Set,s=new Map;for(let[a,c]of Object.entries(t)){if(!Nr(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){Pi.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Hy(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 A$=/["$`\\]/g;function M$(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 $$(t,e){let r=M$(e);if(r==="double")return t.replace(A$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Zy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Hy(t,"command",e,n,o,i,r?$$: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 fq}from"node:async_hooks";var By,Jd=Object.freeze({status:"aborted"});function _(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=s.prototype,d=Object.keys(u);for(let l=0;l<d.length;l++){let f=d[l];f in a||(a[f]=u[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:t});function s(a){var c;let u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let d of u._zod.deferred)d();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var Vt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},lo=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(By=globalThis).__zod_globalConfig??(By.__zod_globalConfig={});var fo=globalThis.__zod_globalConfig;function Ye(t){return t&&Object.assign(fo,t),fo}var H={};Uu(H,{BIGINT_FORMAT_RANGES:()=>Jy,Class:()=>Xd,NUMBER_FORMAT_RANGES:()=>ol,aborted:()=>jr,allowsEval:()=>tl,assert:()=>D$,assertEqual:()=>I$,assertIs:()=>z$,assertNever:()=>N$,assertNotEqual:()=>O$,assignProp:()=>Dr,base64ToUint8Array:()=>Xy,base64urlToUint8Array:()=>eI,cached:()=>ho,captureStackTrace:()=>Oa,cleanEnum:()=>Q$,cleanRegex:()=>Mi,clone:()=>gt,cloneDef:()=>j$,createTransparentProxy:()=>Z$,defineLazy:()=>X,esc:()=>Ia,escapeRegex:()=>cr,explicitlyAborted:()=>il,extend:()=>V$,finalizeIssue:()=>yt,floatSafeRemainder:()=>Qd,getElementAtPath:()=>F$,getEnumValues:()=>Ti,getLengthableOrigin:()=>$i,getParsedType:()=>G$,getSizableOrigin:()=>Yy,hexToUint8Array:()=>rI,isObject:()=>Sn,isPlainObject:()=>Lr,issue:()=>mo,joinValues:()=>$a,jsonStringifyReplacer:()=>po,merge:()=>J$,mergeDefs:()=>ar,normalizeParams:()=>A,nullish:()=>Ai,numKeys:()=>H$,objectClone:()=>L$,omit:()=>W$,optionalKeys:()=>nl,parsedType:()=>sl,partial:()=>Y$,pick:()=>B$,prefixIssues:()=>ur,primitiveTypes:()=>Ky,promiseAllObject:()=>U$,propertyKeyTypes:()=>rl,randomString:()=>q$,required:()=>X$,safeExtend:()=>K$,shallowClone:()=>Vy,slugify:()=>el,stringifyPrimitive:()=>za,uint8ArrayToBase64:()=>Qy,uint8ArrayToBase64url:()=>tI,uint8ArrayToHex:()=>nI,unwrapMessage:()=>Ei});function I$(t){return t}function O$(t){return t}function z$(t){}function N$(t){throw new Error("Unexpected value in exhaustive check")}function D$(t){}function Ti(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,o])=>e.indexOf(+n)===-1).map(([n,o])=>o)}function $a(t,e="|"){return t.map(r=>za(r)).join(e)}function po(t,e){return typeof e=="bigint"?e.toString():e}function ho(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ai(t){return t==null}function Mi(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Qd(t,e){let r=t/e,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var Wy=Symbol("evaluating");function X(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Wy)return n===void 0&&(n=Wy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function L$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Dr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ar(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function j$(t){return ar(t._zod.def)}function F$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function U$(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 q$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function Ia(t){return JSON.stringify(t)}function el(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Oa="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function Sn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var tl=ho(()=>{if(fo.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Lr(t){if(Sn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Sn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Vy(t){return Lr(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function H$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var G$=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},rl=new Set(["string","number","symbol"]),Ky=new Set(["string","number","bigint","boolean","symbol","undefined"]);function cr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function gt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function A(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function Z$(t){let e;return new Proxy({},{get(r,n,o){return e??(e=t()),Reflect.get(e,n,o)},set(r,n,o,i){return e??(e=t()),Reflect.set(e,n,o,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,o){return e??(e=t()),Reflect.defineProperty(e,n,o)}})}function za(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function nl(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var ol={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Jy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function B$(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=r.shape[a])}return Dr(this,"shape",s),s},checks:[]});return gt(t,i)}function W$(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ar(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return Dr(this,"shape",s),s},checks:[]});return gt(t,i)}function V$(t,e){if(!Lr(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ar(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Dr(this,"shape",i),i}});return gt(t,o)}function K$(t,e){if(!Lr(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Dr(this,"shape",n),n}});return gt(t,r)}function J$(t,e){if(t._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=ar(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Dr(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return gt(t,r)}function Y$(t,e,r){let o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ar(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return Dr(this,"shape",c),c},checks:[]});return gt(e,s)}function X$(t,e,r){let n=ar(e._zod.def,{get shape(){let o=e._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new t({type:"nonoptional",innerType:o[s]});return Dr(this,"shape",i),i}});return gt(e,n)}function jr(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function il(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue===!1)return!0;return!1}function ur(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ei(t){return typeof t=="string"?t:t?.message}function yt(t,e,r){let n=t.message?t.message:Ei(t.inst?._zod.def?.error?.(t))??Ei(e?.error?.(t))??Ei(r.customError?.(t))??Ei(r.localeError?.(t))??"Invalid input",{inst:o,continue:i,input:s,...a}=t;return a.path??(a.path=[]),a.message=n,e?.reportInput&&(a.input=s),a}function Yy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function $i(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function sl(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function mo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function Q$(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Xy(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 Qy(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function eI(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Xy(e+r)}function tI(t){return Qy(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function rI(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 nI(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Xd=class{constructor(...e){}};var ev=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,po,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Na=_("$ZodError",ev),al=_("$ZodError",ev,{Parent:Error});function cl(t,e=r=>r.message){let r={},n=[];for(let o of t.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(e(o))):n.push(e(o));return{formErrors:n,fieldErrors:r}}function ul(t,e=r=>r.message){let r={_errors:[]},n=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)r._errors.push(e(s));else{let c=r,u=0;for(;u<a.length;){let d=a[u];u===a.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(e(s))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}}};return n(t),r}var Da=t=>(e,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Vt;if(s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>yt(c,i,Ye())));throw Oa(a,o?.callee),a}return s.value};var La=t=>async(e,r,n,o)=>{let i=n?{...n,async:!0}:{async:!0},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??t)(s.issues.map(c=>yt(c,i,Ye())));throw Oa(a,o?.callee),a}return s.value};var Ii=t=>(e,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new Vt;return i.issues.length?{success:!1,error:new(t??Na)(i.issues.map(s=>yt(s,o,Ye())))}:{success:!0,data:i.value}},Oi=Ii(al),zi=t=>async(e,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=e._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(s=>yt(s,o,Ye())))}:{success:!0,data:i.value}},ja=zi(al),tv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Da(t)(e,r,o)};var rv=t=>(e,r,n)=>Da(t)(e,r,n);var nv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return La(t)(e,r,o)};var ov=t=>async(e,r,n)=>La(t)(e,r,n);var iv=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ii(t)(e,r,o)};var sv=t=>(e,r,n)=>Ii(t)(e,r,n);var av=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return zi(t)(e,r,o)};var cv=t=>async(e,r,n)=>zi(t)(e,r,n);var uv=/^[cC][0-9a-z]{6,}$/,dv=/^[0-9a-z]+$/,lv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fv=/^[0-9a-vA-V]{20}$/,pv=/^[A-Za-z0-9]{27}$/,hv=/^[a-zA-Z0-9_-]{21}$/,mv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var gv=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,dl=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;var yv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var iI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function vv(){return new RegExp(iI,"u")}var _v=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Sv=/^(([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 wv=/^((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])$/,bv=/^(([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])$/,Rv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ll=/^[A-Za-z0-9_-]*$/;var Cv=/^https?$/,Pv=/^\+[1-9]\d{6,14}$/,xv="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",kv=new RegExp(`^${xv}$`);function Ev(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 Tv(t){return new RegExp(`^${Ev(t)}$`)}function Av(t){let e=Ev({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(`^${xv}T(?:${n})$`)}var Mv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},$v=/^-?\d+n?$/,Iv=/^-?\d+$/,fl=/^-?\d+(?:\.\d+)?$/,Ov=/^(?:true|false)$/i,zv=/^null$/i;var Nv=/^[^A-Z]*$/,Dv=/^[^a-z]*$/;var Ie=_("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Lv={number:"number",bigint:"bigint",object:"date"},pl=_("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=Lv[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<i&&(e.inclusive?o.maximum=e.value:o.exclusiveMaximum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value<=e.value:n.value<e.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),hl=_("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=Lv[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})}}),jv=_("$ZodCheckMultipleOf",(t,e)=>{Ie.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Qd(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),Fv=_("$ZodCheckNumberFormat",(t,e)=>{Ie.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=ol[e.format];t._zod.onattach.push(s=>{let a=s._zod.bag;a.format=e.format,a.minimum=o,a.maximum=i,r&&(a.pattern=Iv)}),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 Uv=_("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<o&&(n._zod.bag.maximum=e.maximum)}),t._zod.check=n=>{let o=n.value;if(o.length<=e.maximum)return;let s=$i(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),qv=_("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;if(o.length>=e.minimum)return;let s=$i(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Hv=_("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ai(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),t._zod.check=n=>{let o=n.value,i=o.length;if(i===e.length)return;let s=$i(o),a=i>e.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Di=_("$ZodCheckStringFormat",(t,e)=>{var r,n;Ie.init(t,e),t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Gv=_("$ZodCheckRegex",(t,e)=>{Di.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Zv=_("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Nv),Di.init(t,e)}),Bv=_("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Dv),Di.init(t,e)}),Wv=_("$ZodCheckIncludes",(t,e)=>{Ie.init(t,e);let r=cr(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:t,continue:!e.abort})}}),Vv=_("$ZodCheckStartsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`^${cr(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),Kv=_("$ZodCheckEndsWith",(t,e)=>{Ie.init(t,e);let r=new RegExp(`.*${cr(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var Jv=_("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Fa=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
|
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 Kv={major:4,minor:4,patch:3};var te=_("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Kv;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=Nr(s),d;for(let l of a){if(l._zod.def.when){if(tl(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 Vt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=Nr(s,f)))});else{if(s.issues.length===f)continue;u||(u=Nr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(Nr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Vt;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 Vt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}X(t,"~standard",()=>({validate:o=>{try{let i=$i(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Da(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ua=_("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Ev(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),ce=_("$ZodStringFormat",(t,e)=>{zi.init(t,e),Ua.init(t,e)}),o_=_("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e)}),i_=_("$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=sl(n))}else e.pattern??(e.pattern=sl());ce.init(t,e)}),s_=_("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),a_=_("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===wv.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:t,continue:!e.abort});return}let o=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),c_=_("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=mv()),ce.init(t,e)}),u_=_("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=lv),ce.init(t,e)}),d_=_("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=sv),ce.init(t,e)}),l_=_("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=av),ce.init(t,e)}),f_=_("$ZodULID",(t,e)=>{e.pattern??(e.pattern=cv),ce.init(t,e)}),p_=_("$ZodXID",(t,e)=>{e.pattern??(e.pattern=uv),ce.init(t,e)}),h_=_("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=dv),ce.init(t,e)}),m_=_("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=kv(e)),ce.init(t,e)}),g_=_("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Cv),ce.init(t,e)}),y_=_("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=xv(e)),ce.init(t,e)}),v_=_("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e)}),__=_("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e),t._zod.bag.format="ipv4"}),S_=_("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=yv),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 w_=_("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)}),b_=_("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=_v),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 R_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var C_=_("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{R_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function iI(t){if(!al.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return R_(r)}var P_=_("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=al),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{iI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),x_=_("$ZodE164",(t,e)=>{e.pattern??(e.pattern=bv),ce.init(t,e)});function sI(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 k_=_("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{sI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var fl=_("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??cl,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}}),E_=_("$ZodNumberFormat",(t,e)=>{Dv.init(t,e),fl.init(t,e)}),T_=_("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=Mv,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}}),A_=_("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=Tv,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 M_=_("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=$v,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}}),$_=_("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),I_=_("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),O_=_("$ZodNever",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});var z_=_("$ZodDate",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:t}),r}});function Jv(t,e,r){t.issues.length&&e.issues.push(...ar(r,t.issues)),e.value[r]=t.value}var N_=_("$ZodArray",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:t}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],c=e.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(u=>Jv(u,r,s))):Jv(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Fa(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...ar(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 D_(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=Qd(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function L_(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(m=>Fa(m,r,f,e,d,l))):Fa(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 aI=_("$ZodObject",(t,e)=>{if(te.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=fo(()=>D_(e));X(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=vn,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],m=p._zod.optin==="optional",h=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>Fa(v,a,f,u,m,h))):Fa(g,a,f,u,m,h)}return i?L_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),j_=_("$ZodObjectJIT",(t,e)=>{aI.init(t,e);let r=t._zod.parse,n=fo(()=>D_(e)),o=f=>{let p=new La(["shape","payload","ctx"]),m=n.value,h=b=>{let x=Ma(b);return`shape[${x}]._zod.run({ value: input[${x}], issues: [] }, ctx)`};p.write("const input = payload.value;");let g=Object.create(null),v=0;for(let b of m.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of m.keys){let x=g[b],S=Ma(b),R=f[b],I=R?._zod?.optin==="optional",ne=R?._zod?.optout==="optional";p.write(`const ${x} = ${h(b)};`),I&&ne?p.write(`
|
|
26
|
+
`))}};var Xv={major:4,minor:4,patch:3};var te=_("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Xv;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let o of n)for(let i of o._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let o=(s,a,c)=>{let u=jr(s),d;for(let l of a){if(l._zod.def.when){if(il(s)||!l._zod.def.when(s))continue}else if(u)continue;let f=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&c?.async===!1)throw new Vt;if(d||p instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await p,s.issues.length!==f&&(u||(u=jr(s,f)))});else{if(s.issues.length===f)continue;u||(u=jr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(jr(s))return s.aborted=!0,s;let u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Vt;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 Vt;return c.then(u=>o(u,n,a))}return o(c,n,a)}}X(t,"~standard",()=>({validate:o=>{try{let i=Oi(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ja(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Ha=_("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Mv(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),ce=_("$ZodStringFormat",(t,e)=>{Di.init(t,e),Ha.init(t,e)}),a_=_("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e)}),c_=_("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=dl(n))}else e.pattern??(e.pattern=dl());ce.init(t,e)}),u_=_("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e)}),d_=_("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===Cv.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})}}}),l_=_("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=vv()),ce.init(t,e)}),f_=_("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),p_=_("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=uv),ce.init(t,e)}),h_=_("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=dv),ce.init(t,e)}),m_=_("$ZodULID",(t,e)=>{e.pattern??(e.pattern=lv),ce.init(t,e)}),g_=_("$ZodXID",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e)}),y_=_("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e)}),v_=_("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Av(e)),ce.init(t,e)}),__=_("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=kv),ce.init(t,e)}),S_=_("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Tv(e)),ce.init(t,e)}),w_=_("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),b_=_("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e),t._zod.bag.format="ipv4"}),R_=_("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Sv),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 C_=_("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e)}),P_=_("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=bv),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 x_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var k_=_("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Rv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{x_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function cI(t){if(!ll.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return x_(r)}var E_=_("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=ll),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{cI(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),T_=_("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Pv),ce.init(t,e)});function uI(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 A_=_("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{uI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var gl=_("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??fl,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:t,...i?{received:i}:{}}),r}}),M_=_("$ZodNumberFormat",(t,e)=>{Fv.init(t,e),gl.init(t,e)}),$_=_("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=Ov,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}}),I_=_("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=$v,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 O_=_("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=zv,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}}),z_=_("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),N_=_("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),D_=_("$ZodNever",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});var L_=_("$ZodDate",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:t}),r}});function Qv(t,e,r){t.issues.length&&e.issues.push(...ur(r,t.issues)),e.value[r]=t.value}var j_=_("$ZodArray",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:t}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],c=e.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(u=>Qv(u,r,s))):Qv(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function qa(t,e,r,n,o,i){let s=r in n;if(t.issues.length){if(o&&i&&!s)return;e.issues.push(...ur(r,t.issues))}if(!s&&!o){t.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}t.value===void 0?s&&(e.value[r]=void 0):e.value[r]=t.value}function F_(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=nl(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function U_(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(m=>qa(m,r,f,e,d,l))):qa(p,r,f,e,d,l)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:i}),t.length?Promise.all(t).then(()=>r):r}var dI=_("$ZodObject",(t,e)=>{if(te.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=ho(()=>F_(e));X(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=Sn,i=e.catchall,s;t._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let d=[],l=s.shape;for(let f of s.keys){let p=l[f],m=p._zod.optin==="optional",h=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>qa(v,a,f,u,m,h))):qa(g,a,f,u,m,h)}return i?U_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),q_=_("$ZodObjectJIT",(t,e)=>{dI.init(t,e);let r=t._zod.parse,n=ho(()=>F_(e)),o=f=>{let p=new Fa(["shape","payload","ctx"]),m=n.value,h=b=>{let x=Ia(b);return`shape[${x}]._zod.run({ value: input[${x}], issues: [] }, ctx)`};p.write("const input = payload.value;");let g=Object.create(null),v=0;for(let b of m.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of m.keys){let x=g[b],S=Ia(b),R=f[b],I=R?._zod?.optin==="optional",ne=R?._zod?.optout==="optional";p.write(`const ${x} = ${h(b)};`),I&&ne?p.write(`
|
|
27
27
|
if (${x}.issues.length) {
|
|
28
28
|
if (${S} in input) {
|
|
29
29
|
payload.issues = payload.issues.concat(${x}.issues.map(iss => ({
|
|
@@ -82,23 +82,23 @@ When the user's request requires one of these servers, call attach-mcp-server im
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
`)}p.write("payload.value = newResult;"),p.write("return payload;");let w=p.compile();return(b,x)=>w(f,b,x)},i,s=vn,a=!uo.jitless,u=a&&Yd.value,d=e.catchall,l;t._zod.parse=(f,p)=>{l??(l=n.value);let m=f.value;return s(m)?a&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(e.shape)),f=i(f,p),d?L_([],m,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),f)}});function Yv(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=>!Nr(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=>yt(s,n,Ye())))}),e)}var pl=_("$ZodUnion",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),X(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),X(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),X(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Ti(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=>Yv(a,n,t,o)):Yv(s,n,t,o)}});var F_=_("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,pl.init(t,e);let r=t._zod.parse;X(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=fo(()=>{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(!vn(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)}}),U_=_("$ZodIntersection",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value,i=e.left._zod.run({value:o,issues:[]},n),s=e.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([c,u])=>Xv(r,c,u)):Xv(r,i,s)}});function ll(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(zr(t)&&zr(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=ll(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=ll(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 Xv(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}),Nr(t))return t;let s=ll(e.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return t.value=s.data,t}var q_=_("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!zr(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=>yt(p,n,Ye())),input:u,path:[u],inst:t});continue}let l=d.value,f=e.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(p=>{p.issues.length&&r.issues.push(...ar(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...ar(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"&&cl.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=>yt(l,n,Ye())),input:a,path:[a],inst:t});continue}let d=e.valueType._zod.run({value:o[a],issues:[]},n);d instanceof Promise?i.push(d.then(l=>{l.issues.length&&r.issues.push(...ar(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...ar(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var H_=_("$ZodEnum",(t,e)=>{te.init(t,e);let r=ki(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>Xd.has(typeof o)).map(o=>typeof o=="string"?sr(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}}),G_=_("$ZodLiteral",(t,e)=>{if(te.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?sr(n):n?sr(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 Z_=_("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new co(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 Vt;return r.value=o,r.fallback=!0,r}});function Qv(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var hl=_("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ti(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=>Qv(s,o)):Qv(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),B_=_("$ZodExactOptional",(t,e)=>{hl.init(t,e),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),W_=_("$ZodNullable",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.innerType._zod.optin),X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Ti(r.source)}|null)$`):void 0}),X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),V_=_("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>e_(i,e)):e_(o,e)}});function e_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var K_=_("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),J_=_("$ZodNonOptional",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>t_(i,t)):t_(o,t)}});function t_(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 Y_=_("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>yt(s,n,Ye()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=e.catchValue({...r,error:{issues:o.issues.map(i=>yt(i,n,Ye()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var ml=_("$ZodPipe",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>e.in._zod.values),X(t._zod,"optin",()=>e.in._zod.optin),X(t._zod,"optout",()=>e.out._zod.optout),X(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>ja(s,e.in,n)):ja(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>ja(i,e.out,n)):ja(o,e.out,n)}});function ja(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var X_=_("$ZodPreprocess",(t,e)=>{ml.init(t,e)}),Q_=_("$ZodReadonly",(t,e)=>{te.init(t,e),X(t._zod,"propValues",()=>e.innerType._zod.propValues),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"optin",()=>e.innerType?._zod?.optin),X(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(r_):r_(o)}});function r_(t){return t.value=Object.freeze(t.value),t}var eS=_("$ZodCustom",(t,e)=>{Ie.init(t,e),te.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,o=e.fn(n);if(o instanceof Promise)return o.then(i=>n_(i,r,n,t));n_(o,r,n,t)}});function n_(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(po(o))}}var cI=()=>{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=rl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ia(o.values[0])}`:`Invalid option: expected one of ${Aa(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":""}: ${Aa(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 tS(){return{localeError:cI()}}var rS;var gl=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 nS(){return new gl}(rS=globalThis).__zod_globalRegistry??(rS.__zod_globalRegistry=nS());var Dr=globalThis.__zod_globalRegistry;function oS(t,e){return new t({type:"string",...A(e)})}function iS(t,e){return new t({type:"string",coerce:!0,...A(e)})}function sS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...A(e)})}function yl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...A(e)})}function aS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...A(e)})}function cS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(e)})}function uS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(e)})}function dS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(e)})}function vl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...A(e)})}function lS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...A(e)})}function fS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(e)})}function pS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...A(e)})}function hS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(e)})}function mS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...A(e)})}function gS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...A(e)})}function yS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(e)})}function vS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(e)})}function _S(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(e)})}function SS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(e)})}function wS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(e)})}function bS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...A(e)})}function RS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...A(e)})}function CS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...A(e)})}function PS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...A(e)})}function xS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(e)})}function kS(t,e){return new t({type:"string",format:"date",check:"string_format",...A(e)})}function ES(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...A(e)})}function TS(t,e){return new t({type:"string",format:"duration",check:"string_format",...A(e)})}function AS(t,e){return new t({type:"number",checks:[],...A(e)})}function MS(t,e){return new t({type:"number",coerce:!0,checks:[],...A(e)})}function $S(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...A(e)})}function IS(t,e){return new t({type:"boolean",...A(e)})}function OS(t,e){return new t({type:"boolean",coerce:!0,...A(e)})}function zS(t,e){return new t({type:"bigint",coerce:!0,...A(e)})}function NS(t,e){return new t({type:"null",...A(e)})}function DS(t){return new t({type:"any"})}function LS(t){return new t({type:"unknown"})}function jS(t,e){return new t({type:"never",...A(e)})}function FS(t,e){return new t({type:"date",coerce:!0,...A(e)})}function ho(t,e){return new ul({check:"less_than",...A(e),value:t,inclusive:!1})}function cr(t,e){return new ul({check:"less_than",...A(e),value:t,inclusive:!0})}function mo(t,e){return new dl({check:"greater_than",...A(e),value:t,inclusive:!1})}function At(t,e){return new dl({check:"greater_than",...A(e),value:t,inclusive:!0})}function Ni(t,e){return new Nv({check:"multiple_of",...A(e),value:t})}function qa(t,e){return new Lv({check:"max_length",...A(e),maximum:t})}function go(t,e){return new jv({check:"min_length",...A(e),minimum:t})}function Ha(t,e){return new Fv({check:"length_equals",...A(e),length:t})}function _l(t,e){return new Uv({check:"string_format",format:"regex",...A(e),pattern:t})}function Sl(t){return new qv({check:"string_format",format:"lowercase",...A(t)})}function wl(t){return new Hv({check:"string_format",format:"uppercase",...A(t)})}function bl(t,e){return new Gv({check:"string_format",format:"includes",...A(e),includes:t})}function Rl(t,e){return new Zv({check:"string_format",format:"starts_with",...A(e),prefix:t})}function Cl(t,e){return new Bv({check:"string_format",format:"ends_with",...A(e),suffix:t})}function Lr(t){return new Wv({check:"overwrite",tx:t})}function Pl(t){return Lr(e=>e.normalize(t))}function xl(){return Lr(t=>t.trim())}function kl(){return Lr(t=>t.toLowerCase())}function El(){return Lr(t=>t.toUpperCase())}function Tl(){return Lr(t=>Jd(t))}function US(t,e,r){return new t({type:"array",element:e,...A(r)})}function qS(t,e,r){let n=A(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function HS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...A(r)})}function GS(t,e){let r=uI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(po(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(po(i))}},t(n.value,n)),e);return r}function uI(t,e){let r=new Ie({check:"custom",...A(e)});return r._zod.check=t,r}function Al(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??Dr,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 Se(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),Se(l,e,d),e.seen.get(l).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),e.io==="input"&&qe(t)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(t).schema}function Ml(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??(m=>m);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,x)=>w(f,b,x)},i,s=Sn,a=!fo.jitless,u=a&&tl.value,d=e.catchall,l;t._zod.parse=(f,p)=>{l??(l=n.value);let m=f.value;return s(m)?a&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(e.shape)),f=i(f,p),d?U_([],m,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),f)}});function e_(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let o=t.filter(i=>!jr(i));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>yt(s,n,Ye())))}),e)}var yl=_("$ZodUnion",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),X(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),X(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),X(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Mi(o.source)).join("|")})$`)}});let r=e.options.length===1?e.options[0]._zod.run:null;t._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,s=[];for(let a of e.options){let c=a._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}return i?Promise.all(s).then(a=>e_(a,n,t,o)):e_(s,n,t,o)}});var H_=_("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,yl.init(t,e);let r=t._zod.parse;X(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=ho(()=>{let o=e.options,i=new Map;for(let s of o){let a=s._zod.propValues?.[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let c of a){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,s)}}return i});t._zod.parse=(o,i)=>{let s=o.value;if(!Sn(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:t}),o;let a=n.value.get(s?.[e.discriminator]);return a?a._zod.run(o,i):e.unionFallback||i.direction==="backward"?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,options:Array.from(n.value.keys()),input:s,path:[e.discriminator],inst:t}),o)}}),G_=_("$ZodIntersection",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value,i=e.left._zod.run({value:o,issues:[]},n),s=e.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([c,u])=>t_(r,c,u)):t_(r,i,s)}});function ml(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Lr(t)&&Lr(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(let i of n){let s=ml(t[i],e[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<t.length;n++){let o=t[n],i=e[n],s=ml(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function t_(t,e,r){let n=new Map,o;for(let a of e.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else t.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else t.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&t.issues.push({...o,keys:i}),jr(t))return t;let s=ml(e.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return t.value=s.data,t}var Z_=_("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Lr(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:t}),r;let i=[],s=e.keyType._zod.values;if(s){r.value={};let a=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let d=e.keyType._zod.run({value:u,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(d.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(p=>yt(p,n,Ye())),input:u,path:[u],inst:t});continue}let l=d.value,f=e.valueType._zod.run({value:o[u],issues:[]},n);f instanceof Promise?i.push(f.then(p=>{p.issues.length&&r.issues.push(...ur(u,p.issues)),r.value[l]=p.value})):(f.issues.length&&r.issues.push(...ur(u,f.issues)),r.value[l]=f.value)}let c;for(let u in o)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,a))continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&fl.test(a)&&c.issues.length){let l=e.keyType._zod.run({value:Number(a),issues:[]},n);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");l.issues.length===0&&(c=l)}if(c.issues.length){e.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(l=>yt(l,n,Ye())),input:a,path:[a],inst:t});continue}let d=e.valueType._zod.run({value:o[a],issues:[]},n);d instanceof Promise?i.push(d.then(l=>{l.issues.length&&r.issues.push(...ur(a,l.issues)),r.value[c.value]=l.value})):(d.issues.length&&r.issues.push(...ur(a,d.issues)),r.value[c.value]=d.value)}}return i.length?Promise.all(i).then(()=>r):r}});var B_=_("$ZodEnum",(t,e)=>{te.init(t,e);let r=Ti(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>rl.has(typeof o)).map(o=>typeof o=="string"?cr(o):o.toString()).join("|")})$`),t._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),W_=_("$ZodLiteral",(t,e)=>{if(te.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?cr(n):n?cr(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}});var V_=_("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new lo(t.constructor.name);let o=e.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r.fallback=!0,r));if(o instanceof Promise)throw new Vt;return r.value=o,r.fallback=!0,r}});function r_(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var vl=_("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Mi(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let o=r.value,i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>r_(s,o)):r_(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),K_=_("$ZodExactOptional",(t,e)=>{vl.init(t,e),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),J_=_("$ZodNullable",(t,e)=>{te.init(t,e),X(t._zod,"optin",()=>e.innerType._zod.optin),X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Mi(r.source)}|null)$`):void 0}),X(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),Y_=_("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>n_(i,e)):n_(o,e)}});function n_(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var X_=_("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),Q_=_("$ZodNonOptional",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>o_(i,t)):o_(o,t)}});function o_(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 eS=_("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",X(t._zod,"optout",()=>e.innerType._zod.optout),X(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>yt(s,n,Ye()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=e.catchValue({...r,error:{issues:o.issues.map(i=>yt(i,n,Ye()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var _l=_("$ZodPipe",(t,e)=>{te.init(t,e),X(t._zod,"values",()=>e.in._zod.values),X(t._zod,"optin",()=>e.in._zod.optin),X(t._zod,"optout",()=>e.out._zod.optout),X(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Ua(s,e.in,n)):Ua(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ua(i,e.out,n)):Ua(o,e.out,n)}});function Ua(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var tS=_("$ZodPreprocess",(t,e)=>{_l.init(t,e)}),rS=_("$ZodReadonly",(t,e)=>{te.init(t,e),X(t._zod,"propValues",()=>e.innerType._zod.propValues),X(t._zod,"values",()=>e.innerType._zod.values),X(t._zod,"optin",()=>e.innerType?._zod?.optin),X(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i_):i_(o)}});function i_(t){return t.value=Object.freeze(t.value),t}var nS=_("$ZodCustom",(t,e)=>{Ie.init(t,e),te.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,o=e.fn(n);if(o instanceof Promise)return o.then(i=>s_(i,r,n,t));s_(o,r,n,t)}});function s_(t,e,r,n){if(!t){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),e.issues.push(mo(o))}}var lI=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(o){return t[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,s=sl(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${za(o.values[0])}`:`Invalid option: expected one of ${$a(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=e(o.origin);return s?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=e(o.origin);return s?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${s.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${$a(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return o.options&&Array.isArray(o.options)&&o.options.length>0?`Invalid discriminator value. Expected ${o.options.map(s=>`'${s}'`).join(" | ")}`:"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function oS(){return{localeError:lI()}}var iS;var Sl=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function sS(){return new Sl}(iS=globalThis).__zod_globalRegistry??(iS.__zod_globalRegistry=sS());var Fr=globalThis.__zod_globalRegistry;function aS(t,e){return new t({type:"string",...A(e)})}function cS(t,e){return new t({type:"string",coerce:!0,...A(e)})}function uS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...A(e)})}function wl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...A(e)})}function dS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...A(e)})}function lS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(e)})}function fS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(e)})}function pS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(e)})}function bl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...A(e)})}function hS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...A(e)})}function mS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(e)})}function gS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...A(e)})}function yS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(e)})}function vS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...A(e)})}function _S(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...A(e)})}function SS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(e)})}function wS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(e)})}function bS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(e)})}function RS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(e)})}function CS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(e)})}function PS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...A(e)})}function xS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...A(e)})}function kS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...A(e)})}function ES(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...A(e)})}function TS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(e)})}function AS(t,e){return new t({type:"string",format:"date",check:"string_format",...A(e)})}function MS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...A(e)})}function $S(t,e){return new t({type:"string",format:"duration",check:"string_format",...A(e)})}function IS(t,e){return new t({type:"number",checks:[],...A(e)})}function OS(t,e){return new t({type:"number",coerce:!0,checks:[],...A(e)})}function zS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...A(e)})}function NS(t,e){return new t({type:"boolean",...A(e)})}function DS(t,e){return new t({type:"boolean",coerce:!0,...A(e)})}function LS(t,e){return new t({type:"bigint",coerce:!0,...A(e)})}function jS(t,e){return new t({type:"null",...A(e)})}function FS(t){return new t({type:"any"})}function US(t){return new t({type:"unknown"})}function qS(t,e){return new t({type:"never",...A(e)})}function HS(t,e){return new t({type:"date",coerce:!0,...A(e)})}function go(t,e){return new pl({check:"less_than",...A(e),value:t,inclusive:!1})}function dr(t,e){return new pl({check:"less_than",...A(e),value:t,inclusive:!0})}function yo(t,e){return new hl({check:"greater_than",...A(e),value:t,inclusive:!1})}function At(t,e){return new hl({check:"greater_than",...A(e),value:t,inclusive:!0})}function Li(t,e){return new jv({check:"multiple_of",...A(e),value:t})}function Ga(t,e){return new Uv({check:"max_length",...A(e),maximum:t})}function vo(t,e){return new qv({check:"min_length",...A(e),minimum:t})}function Za(t,e){return new Hv({check:"length_equals",...A(e),length:t})}function Rl(t,e){return new Gv({check:"string_format",format:"regex",...A(e),pattern:t})}function Cl(t){return new Zv({check:"string_format",format:"lowercase",...A(t)})}function Pl(t){return new Bv({check:"string_format",format:"uppercase",...A(t)})}function xl(t,e){return new Wv({check:"string_format",format:"includes",...A(e),includes:t})}function kl(t,e){return new Vv({check:"string_format",format:"starts_with",...A(e),prefix:t})}function El(t,e){return new Kv({check:"string_format",format:"ends_with",...A(e),suffix:t})}function Ur(t){return new Jv({check:"overwrite",tx:t})}function Tl(t){return Ur(e=>e.normalize(t))}function Al(){return Ur(t=>t.trim())}function Ml(){return Ur(t=>t.toLowerCase())}function $l(){return Ur(t=>t.toUpperCase())}function Il(){return Ur(t=>el(t))}function GS(t,e,r){return new t({type:"array",element:e,...A(r)})}function ZS(t,e,r){let n=A(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function BS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...A(r)})}function WS(t,e){let r=fI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(mo(o,n.value,r._zod.def));else{let i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(mo(i))}},t(n.value,n)),e);return r}function fI(t,e){let r=new Ie({check:"custom",...A(e)});return r._zod.check=t,r}function Ol(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Fr,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function Se(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),Se(l,e,d),e.seen.get(l).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),e.io==="input"&&qe(t)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(t).schema}function zl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of t.seen.entries()){let a=t.metadataRegistry.get(s[0])?.id;if(a){let c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}let o=s=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let l=t.external.registry.get(s[0])?.id,f=t.external.uri??(m=>m);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 $l(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),m=p.schema;if(m.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(m)):Object.assign(u,m),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(m.$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 m in u)m==="$ref"||m==="allOf"||m in p.def&&JSON.stringify(u[m])===JSON.stringify(p.def[m])&&delete u[m]}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:Di(e,"input",t.processors),output:Di(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function qe(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return qe(n.element,r);if(n.type==="set")return qe(n.valueType,r);if(n.type==="lazy")return qe(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return qe(n.innerType,r);if(n.type==="intersection")return qe(n.left,r)||qe(n.right,r);if(n.type==="record"||n.type==="map")return qe(n.keyType,r)||qe(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:qe(n.in,r)||qe(n.out,r);if(n.type==="object"){for(let o in n.shape)if(qe(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(qe(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(qe(o,r))return!0;return!!(n.rest&&qe(n.rest,r))}return!1}var ZS=(t,e={})=>r=>{let n=Al({...r,processors:e});return Se(t,n),Ml(n,t),$l(n,t)},Di=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Al({...o??{},target:i,io:e,processors:r});return Se(t,s),Ml(s,t),$l(s,t)};var dI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},BS=(t,e,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),a&&(o.format=dI[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(l=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))])}},WS=(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)},VS=(t,e,r,n)=>{r.type="boolean"},KS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var JS=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var YS=(t,e,r,n)=>{r.not={}},XS=(t,e,r,n)=>{},QS=(t,e,r,n)=>{},ew=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},tw=(t,e,r,n)=>{let o=t._zod.def,i=ki(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},rw=(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 nw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var ow=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var iw=(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=Se(i.element,e,{...n,path:[...n.path,"items"]})},sw=(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]=Se(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=Se(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},aw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>Se(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},cw=(t,e,r,n)=>{let o=t._zod.def,i=Se(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=Se(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 uw=(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=Se(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=Se(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=Se(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)}},dw=(t,e,r,n)=>{let o=t._zod.def,i=Se(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"}]},lw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},fw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},pw=(t,e,r,n)=>{let o=t._zod.def;Se(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)))},hw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},mw=(t,e,r,n)=>{let o=t._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=e.io==="input"?i?o.out:o.in:o.out;Se(s,e,n);let a=e.seen.get(t);a.ref=s},gw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Il=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Ga(t){return!!t._zod}function Mt(t,e){return Ga(t)?$i(t,e):t.safeParse(e)}function Za(t){if(!t)return;let e;if(Ga(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Ba(t){if(Ga(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 Li={};Lu(Li,{ZodISODate:()=>vw,ZodISODateTime:()=>yw,ZodISODuration:()=>Sw,ZodISOTime:()=>_w,date:()=>zl,datetime:()=>Ol,duration:()=>Dl,time:()=>Nl});var yw=_("ZodISODateTime",(t,e)=>{m_.init(t,e),he.init(t,e)});function Ol(t){return xS(yw,t)}var vw=_("ZodISODate",(t,e)=>{g_.init(t,e),he.init(t,e)});function zl(t){return kS(vw,t)}var _w=_("ZodISOTime",(t,e)=>{y_.init(t,e),he.init(t,e)});function Nl(t){return ES(_w,t)}var Sw=_("ZodISODuration",(t,e)=>{v_.init(t,e),he.init(t,e)});function Dl(t){return TS(Sw,t)}var vI=(t,e)=>{Oa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>il(t,r)},flatten:{value:r=>ol(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,lo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,lo,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=_("ZodError",vI,{Parent:Error});var bw=za(ut),Rw=Na(ut),Cw=Mi(ut),Pw=Ii(ut),xw=Xy(ut),kw=Qy(ut),Ew=ev(ut),Tw=tv(ut),Aw=rv(ut),Mw=nv(ut),$w=ov(ut),Iw=iv(ut);var Ow=new WeakMap;function ji(t,e,r){let n=Object.getPrototypeOf(t),o=Ow.get(n);if(o||(o=new Set,Ow.set(n,o)),!o.has(e)){o.add(e);for(let i in r){let s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){let a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var oe=_("ZodType",(t,e)=>(te.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Di(t,"input"),output:Di(t,"output")}}),t.toJSONSchema=ZS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>bw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Cw(t,r,n),t.parseAsync=async(r,n)=>Rw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Pw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>xw(t,r,n),t.decode=(r,n)=>kw(t,r,n),t.encodeAsync=async(r,n)=>Ew(t,r,n),t.decodeAsync=async(r,n)=>Tw(t,r,n),t.safeEncode=(r,n)=>Aw(t,r,n),t.safeDecode=(r,n)=>Mw(t,r,n),t.safeEncodeAsync=async(r,n)=>$w(t,r,n),t.safeDecodeAsync=async(r,n)=>Iw(t,r,n),ji(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 gt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(sO(r,n))},superRefine(r,n){return this.check(aO(r,n))},overwrite(r){return this.check(Lr(r))},optional(){return ge(this)},exactOptional(){return VI(this)},nullable(){return Lw(this)},nullish(){return ge(Lw(this))},nonoptional(r){return eO(this,r)},array(){return P(this)},or(r){return ue([this,r])},and(r){return Ka(this,r)},transform(r){return jw(this,Kw(r))},default(r){return YI(this,r)},prefault(r){return QI(this,r)},catch(r){return rO(this,r)},pipe(r){return jw(this,r)},readonly(){return iO(this)},describe(r){let n=this.clone();return Dr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Dr.get(this);let n=this.clone();return Dr.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 Dr.get(t)?.description},configurable:!0}),t)),Fw=_("_ZodString",(t,e)=>{Ua.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>BS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,ji(t,"_ZodString",{regex(...n){return this.check(_l(...n))},includes(...n){return this.check(bl(...n))},startsWith(...n){return this.check(Rl(...n))},endsWith(...n){return this.check(Cl(...n))},min(...n){return this.check(go(...n))},max(...n){return this.check(qa(...n))},length(...n){return this.check(Ha(...n))},nonempty(...n){return this.check(go(1,...n))},lowercase(n){return this.check(Sl(n))},uppercase(n){return this.check(wl(n))},trim(){return this.check(xl())},normalize(...n){return this.check(Pl(...n))},toLowerCase(){return this.check(kl())},toUpperCase(){return this.check(El())},slugify(){return this.check(Tl())}})}),jl=_("ZodString",(t,e)=>{Ua.init(t,e),Fw.init(t,e),t.email=r=>t.check(sS(SI,r)),t.url=r=>t.check(vl(Uw,r)),t.jwt=r=>t.check(PS(zI,r)),t.emoji=r=>t.check(lS(wI,r)),t.guid=r=>t.check(yl(zw,r)),t.uuid=r=>t.check(aS(Wa,r)),t.uuidv4=r=>t.check(cS(Wa,r)),t.uuidv6=r=>t.check(uS(Wa,r)),t.uuidv7=r=>t.check(dS(Wa,r)),t.nanoid=r=>t.check(fS(bI,r)),t.guid=r=>t.check(yl(zw,r)),t.cuid=r=>t.check(pS(RI,r)),t.cuid2=r=>t.check(hS(CI,r)),t.ulid=r=>t.check(mS(PI,r)),t.base64=r=>t.check(bS($I,r)),t.base64url=r=>t.check(RS(II,r)),t.xid=r=>t.check(gS(xI,r)),t.ksuid=r=>t.check(yS(kI,r)),t.ipv4=r=>t.check(vS(EI,r)),t.ipv6=r=>t.check(_S(TI,r)),t.cidrv4=r=>t.check(SS(AI,r)),t.cidrv6=r=>t.check(wS(MI,r)),t.e164=r=>t.check(CS(OI,r)),t.datetime=r=>t.check(Ol(r)),t.date=r=>t.check(zl(r)),t.time=r=>t.check(Nl(r)),t.duration=r=>t.check(Dl(r))});function y(t){return oS(jl,t)}var he=_("ZodStringFormat",(t,e)=>{ce.init(t,e),Fw.init(t,e)}),SI=_("ZodEmail",(t,e)=>{s_.init(t,e),he.init(t,e)});var zw=_("ZodGUID",(t,e)=>{o_.init(t,e),he.init(t,e)});var Wa=_("ZodUUID",(t,e)=>{i_.init(t,e),he.init(t,e)});var Uw=_("ZodURL",(t,e)=>{a_.init(t,e),he.init(t,e)});function qw(t){return vl(Uw,t)}var wI=_("ZodEmoji",(t,e)=>{c_.init(t,e),he.init(t,e)});var bI=_("ZodNanoID",(t,e)=>{u_.init(t,e),he.init(t,e)});var RI=_("ZodCUID",(t,e)=>{d_.init(t,e),he.init(t,e)});var CI=_("ZodCUID2",(t,e)=>{l_.init(t,e),he.init(t,e)});var PI=_("ZodULID",(t,e)=>{f_.init(t,e),he.init(t,e)});var xI=_("ZodXID",(t,e)=>{p_.init(t,e),he.init(t,e)});var kI=_("ZodKSUID",(t,e)=>{h_.init(t,e),he.init(t,e)});var EI=_("ZodIPv4",(t,e)=>{__.init(t,e),he.init(t,e)});var TI=_("ZodIPv6",(t,e)=>{S_.init(t,e),he.init(t,e)});var AI=_("ZodCIDRv4",(t,e)=>{w_.init(t,e),he.init(t,e)});var MI=_("ZodCIDRv6",(t,e)=>{b_.init(t,e),he.init(t,e)});var $I=_("ZodBase64",(t,e)=>{C_.init(t,e),he.init(t,e)});var II=_("ZodBase64URL",(t,e)=>{P_.init(t,e),he.init(t,e)});var OI=_("ZodE164",(t,e)=>{x_.init(t,e),he.init(t,e)});var zI=_("ZodJWT",(t,e)=>{k_.init(t,e),he.init(t,e)});var Va=_("ZodNumber",(t,e)=>{fl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>WS(t,n,o,i),ji(t,"ZodNumber",{gt(n,o){return this.check(mo(n,o))},gte(n,o){return this.check(At(n,o))},min(n,o){return this.check(At(n,o))},lt(n,o){return this.check(ho(n,o))},lte(n,o){return this.check(cr(n,o))},max(n,o){return this.check(cr(n,o))},int(n){return this.check(Nw(n))},safe(n){return this.check(Nw(n))},positive(n){return this.check(mo(0,n))},nonnegative(n){return this.check(At(0,n))},negative(n){return this.check(ho(0,n))},nonpositive(n){return this.check(cr(0,n))},multipleOf(n,o){return this.check(Ni(n,o))},step(n,o){return this.check(Ni(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 AS(Va,t)}var NI=_("ZodNumberFormat",(t,e)=>{E_.init(t,e),Va.init(t,e)});function Nw(t){return $S(NI,t)}var Fl=_("ZodBoolean",(t,e)=>{T_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>VS(t,r,n,o)});function ie(t){return IS(Fl,t)}var Hw=_("ZodBigInt",(t,e)=>{A_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>KS(t,n,o,i),t.gte=(n,o)=>t.check(At(n,o)),t.min=(n,o)=>t.check(At(n,o)),t.gt=(n,o)=>t.check(mo(n,o)),t.gte=(n,o)=>t.check(At(n,o)),t.min=(n,o)=>t.check(At(n,o)),t.lt=(n,o)=>t.check(ho(n,o)),t.lte=(n,o)=>t.check(cr(n,o)),t.max=(n,o)=>t.check(cr(n,o)),t.positive=n=>t.check(mo(BigInt(0),n)),t.negative=n=>t.check(ho(BigInt(0),n)),t.nonpositive=n=>t.check(cr(BigInt(0),n)),t.nonnegative=n=>t.check(At(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Ni(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var DI=_("ZodNull",(t,e)=>{M_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>JS(t,r,n,o)});function Gw(t){return NS(DI,t)}var LI=_("ZodAny",(t,e)=>{$_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>XS(t,r,n,o)});function Zw(){return DS(LI)}var jI=_("ZodUnknown",(t,e)=>{I_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>QS(t,r,n,o)});function me(){return LS(jI)}var FI=_("ZodNever",(t,e)=>{O_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>YS(t,r,n,o)});function UI(t){return jS(FI,t)}var Bw=_("ZodDate",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ew(t,n,o,i),t.min=(n,o)=>t.check(At(n,o)),t.max=(n,o)=>t.check(cr(n,o));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});var qI=_("ZodArray",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o),t.element=e.element,ji(t,"ZodArray",{min(r,n){return this.check(go(r,n))},nonempty(r){return this.check(go(1,r))},max(r,n){return this.check(qa(r,n))},length(r,n){return this.check(Ha(r,n))},unwrap(){return this.element}})});function P(t,e){return US(qI,t,e)}var Ww=_("ZodObject",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),ji(t,"ZodObject",{keyof(){return Xe(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:me()})},loose(){return this.clone({...this._zod.def,catchall:me()})},strict(){return this.clone({...this._zod.def,catchall:UI()})},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(Jw,this,r[0])},required(...r){return H.required(Yw,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Ww(r)}function ke(t,e){return new Ww({type:"object",shape:t,catchall:me(),...H.normalizeParams(e)})}var Vw=_("ZodUnion",(t,e)=>{pl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o),t.options=e.options});function ue(t,e){return new Vw({type:"union",options:t,...H.normalizeParams(e)})}var HI=_("ZodDiscriminatedUnion",(t,e)=>{Vw.init(t,e),F_.init(t,e)});function Ul(t,e,r){return new HI({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var GI=_("ZodIntersection",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o)});function Ka(t,e){return new GI({type:"intersection",left:t,right:e})}var Dw=_("ZodRecord",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Dw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Dw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Ll=_("ZodEnum",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>tw(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 Ll({...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 Ll({...e,checks:[],...H.normalizeParams(o),entries:i})}});function Xe(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Ll({type:"enum",entries:r,...H.normalizeParams(e)})}var ZI=_("ZodLiteral",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(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 ZI({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var BI=_("ZodTransform",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new co(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 Kw(t){return new BI({type:"transform",transform:t})}var Jw=_("ZodOptional",(t,e)=>{hl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Il(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ge(t){return new Jw({type:"optional",innerType:t})}var WI=_("ZodExactOptional",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Il(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function VI(t){return new WI({type:"optional",innerType:t})}var KI=_("ZodNullable",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Lw(t){return new KI({type:"nullable",innerType:t})}var JI=_("ZodDefault",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function YI(t,e){return new JI({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var XI=_("ZodPrefault",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function QI(t,e){return new XI({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var Yw=_("ZodNonOptional",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function eO(t,e){return new Yw({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var tO=_("ZodCatch",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function rO(t,e){return new tO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Xw=_("ZodPipe",(t,e)=>{ml.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.in=e.in,t.out=e.out});function jw(t,e){return new Xw({type:"pipe",in:t,out:e})}var nO=_("ZodPreprocess",(t,e)=>{Xw.init(t,e),X_.init(t,e)}),oO=_("ZodReadonly",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function iO(t){return new oO({type:"readonly",innerType:t})}var Qw=_("ZodCustom",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o)});function eb(t,e){return qS(Qw,t??(()=>!0),e)}function sO(t,e={}){return HS(Qw,t,e)}function aO(t,e){return GS(t,e)}function ql(t,e){return new nO({type:"pipe",in:Kw(t),out:e})}var rb={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 tb;tb||(tb={});var Ja={};Lu(Ja,{bigint:()=>lO,boolean:()=>dO,date:()=>fO,number:()=>uO,string:()=>cO});function cO(t){return iS(jl,t)}function uO(t){return MS(Va,t)}function dO(t){return OS(Fl,t)}function lO(t){return zS(Hw,t)}function fO(t){return FS(Bw,t)}Ye(tS());var _o="2025-11-25";var nb=[_o,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],jr="io.modelcontextprotocol/related-task",Xa="2.0",Ee=eb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),ob=ue([y(),K().int()]),ib=y(),xV=ke({ttl:K().optional(),pollInterval:K().optional()}),hO=k({ttl:K().optional()}),mO=k({taskId:y()}),Gl=ke({progressToken:ob.optional(),[jr]:mO.optional()}),dt=k({_meta:Gl.optional()}),Fi=dt.extend({task:hO.optional()}),sb=t=>Fi.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),vt=k({_meta:Gl.optional()}),_t=k({method:y(),params:vt.loose().optional()}),Te=ke({_meta:Gl.optional()}),Qa=ue([y(),K().int()]),ab=k({jsonrpc:E(Xa),id:Qa,...Oe.shape}).strict(),Ui=t=>ab.safeParse(t).success,cb=k({jsonrpc:E(Xa),..._t.shape}).strict(),ub=t=>cb.safeParse(t).success,Zl=k({jsonrpc:E(Xa),id:Qa,result:Te}).strict(),_n=t=>Zl.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 Bl=k({jsonrpc:E(Xa),id:Qa.optional(),error:k({code:K().int(),message:y(),data:me().optional()})}).strict();var db=t=>Bl.safeParse(t).success;var Fr=ue([ab,cb,Zl,Bl]),kV=ue([Zl,Bl]),Sn=Te.strict(),gO=vt.extend({requestId:Qa.optional(),reason:y().optional()}),ec=_t.extend({method:E("notifications/cancelled"),params:gO}),yO=k({src:y(),mimeType:y().optional(),sizes:P(y()).optional(),theme:Xe(["light","dark"]).optional()}),qi=k({icons:P(yO).optional()}),vo=k({name:y(),title:y().optional()}),lb=vo.extend({...vo.shape,...qi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),vO=Ka(k({applyDefaults:ie().optional()}),ae(y(),me())),_O=ql(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Ka(k({form:vO.optional(),url:Ee.optional()}),ae(y(),me()).optional())),SO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({sampling:ke({createMessage:Ee.optional()}).optional(),elicitation:ke({create:Ee.optional()}).optional()}).optional()}),wO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({tools:ke({call:Ee.optional()}).optional()}).optional()}),bO=k({experimental:ae(y(),Ee).optional(),sampling:k({context:Ee.optional(),tools:Ee.optional()}).optional(),elicitation:_O.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:SO.optional(),extensions:ae(y(),Ee).optional()}),RO=dt.extend({protocolVersion:y(),capabilities:bO,clientInfo:lb}),CO=Oe.extend({method:E("initialize"),params:RO});var PO=k({experimental:ae(y(),Ee).optional(),logging:Ee.optional(),completions:Ee.optional(),prompts:k({listChanged:ie().optional()}).optional(),resources:k({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:k({listChanged:ie().optional()}).optional(),tasks:wO.optional(),extensions:ae(y(),Ee).optional()}),Wl=Te.extend({protocolVersion:y(),capabilities:PO,serverInfo:lb,instructions:y().optional()}),fb=_t.extend({method:E("notifications/initialized"),params:vt.optional()}),pb=t=>fb.safeParse(t).success,tc=Oe.extend({method:E("ping"),params:dt.optional()}),xO=k({progress:K(),total:ge(K()),message:ge(y())}),kO=k({...vt.shape,...xO.shape,progressToken:ob}),rc=_t.extend({method:E("notifications/progress"),params:kO}),EO=dt.extend({cursor:ib.optional()}),Hi=Oe.extend({params:EO.optional()}),Gi=Te.extend({nextCursor:ib.optional()}),TO=Xe(["working","input_required","completed","failed","cancelled"]),Zi=k({taskId:y(),status:TO,ttl:ue([K(),Gw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ge(K()),statusMessage:ge(y())}),wn=Te.extend({task:Zi}),AO=vt.merge(Zi),Bi=_t.extend({method:E("notifications/tasks/status"),params:AO}),nc=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),oc=Te.merge(Zi),ic=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),EV=Te.loose(),sc=Hi.extend({method:E("tasks/list")}),ac=Gi.extend({tasks:P(Zi)}),cc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),hb=Te.merge(Zi),mb=k({uri:y(),mimeType:ge(y()),_meta:ae(y(),me()).optional()}),gb=mb.extend({text:y()}),Vl=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),yb=mb.extend({blob:Vl}),Wi=Xe(["user","assistant"]),So=k({audience:P(Wi).optional(),priority:K().min(0).max(1).optional(),lastModified:Li.datetime({offset:!0}).optional()}),vb=k({...vo.shape,...qi.shape,uri:y(),description:ge(y()),mimeType:ge(y()),size:ge(K()),annotations:So.optional(),_meta:ge(ke({}))}),MO=k({...vo.shape,...qi.shape,uriTemplate:y(),description:ge(y()),mimeType:ge(y()),annotations:So.optional(),_meta:ge(ke({}))}),$O=Hi.extend({method:E("resources/list")}),Kl=Gi.extend({resources:P(vb)}),IO=Hi.extend({method:E("resources/templates/list")}),Jl=Gi.extend({resourceTemplates:P(MO)}),Yl=dt.extend({uri:y()}),OO=Yl,zO=Oe.extend({method:E("resources/read"),params:OO}),Xl=Te.extend({contents:P(ue([gb,yb]))}),Ql=_t.extend({method:E("notifications/resources/list_changed"),params:vt.optional()}),NO=Yl,DO=Oe.extend({method:E("resources/subscribe"),params:NO}),LO=Yl,jO=Oe.extend({method:E("resources/unsubscribe"),params:LO}),FO=vt.extend({uri:y()}),UO=_t.extend({method:E("notifications/resources/updated"),params:FO}),qO=k({name:y(),description:ge(y()),required:ge(ie())}),HO=k({...vo.shape,...qi.shape,description:ge(y()),arguments:ge(P(qO)),_meta:ge(ke({}))}),GO=Hi.extend({method:E("prompts/list")}),ef=Gi.extend({prompts:P(HO)}),ZO=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),BO=Oe.extend({method:E("prompts/get"),params:ZO}),tf=k({type:E("text"),text:y(),annotations:So.optional(),_meta:ae(y(),me()).optional()}),rf=k({type:E("image"),data:Vl,mimeType:y(),annotations:So.optional(),_meta:ae(y(),me()).optional()}),nf=k({type:E("audio"),data:Vl,mimeType:y(),annotations:So.optional(),_meta:ae(y(),me()).optional()}),WO=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),me()),_meta:ae(y(),me()).optional()}),VO=k({type:E("resource"),resource:ue([gb,yb]),annotations:So.optional(),_meta:ae(y(),me()).optional()}),KO=vb.extend({type:E("resource_link")}),of=ue([tf,rf,nf,KO,VO]),JO=k({role:Wi,content:of}),sf=Te.extend({description:y().optional(),messages:P(JO)}),af=_t.extend({method:E("notifications/prompts/list_changed"),params:vt.optional()}),YO=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),XO=k({taskSupport:Xe(["required","optional","forbidden"]).optional()}),_b=k({...vo.shape,...qi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:P(y()).optional()}).catchall(me()),outputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:P(y()).optional()}).catchall(me()).optional(),annotations:YO.optional(),execution:XO.optional(),_meta:ae(y(),me()).optional()}),QO=Hi.extend({method:E("tools/list")}),cf=Gi.extend({tools:P(_b)}),bn=Te.extend({content:P(of).default([]),structuredContent:ae(y(),me()).optional(),isError:ie().optional()}),TV=bn.or(Te.extend({toolResult:me()})),ez=Fi.extend({name:y(),arguments:ae(y(),me()).optional()}),tz=Oe.extend({method:E("tools/call"),params:ez}),Vi=_t.extend({method:E("notifications/tools/list_changed"),params:vt.optional()}),Sb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),wb=Xe(["debug","info","notice","warning","error","critical","alert","emergency"]),rz=dt.extend({level:wb}),nz=Oe.extend({method:E("logging/setLevel"),params:rz}),oz=vt.extend({level:wb,logger:y().optional(),data:me()}),iz=_t.extend({method:E("notifications/message"),params:oz}),sz=k({name:y().optional()}),az=k({hints:P(sz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),cz=k({mode:Xe(["auto","required","none"]).optional()}),uz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:P(of).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),me()).optional()}),dz=Ul("type",[tf,rf,nf]),Ya=Ul("type",[tf,rf,nf,WO,uz]),lz=k({role:Wi,content:ue([Ya,P(Ya)]),_meta:ae(y(),me()).optional()}),fz=Fi.extend({messages:P(lz),modelPreferences:az.optional(),systemPrompt:y().optional(),includeContext:Xe(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:P(y()).optional(),metadata:Ee.optional(),tools:P(_b).optional(),toolChoice:cz.optional()}),uf=Oe.extend({method:E("sampling/createMessage"),params:fz}),df=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Wi,content:dz}),lf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Wi,content:ue([Ya,P(Ya)])}),pz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),hz=k({type:E("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:Xe(["email","uri","date","date-time"]).optional(),default:y().optional()}),mz=k({type:Xe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),gz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),default:y().optional()}),yz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:P(k({const:y(),title:y()})),default:y().optional()}),vz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),enumNames:P(y()).optional(),default:y().optional()}),_z=ue([gz,yz]),Sz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({type:E("string"),enum:P(y())}),default:P(y()).optional()}),wz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({anyOf:P(k({const:y(),title:y()}))}),default:P(y()).optional()}),bz=ue([Sz,wz]),Rz=ue([vz,_z,bz]),Cz=ue([Rz,pz,hz,mz]),Pz=Fi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),Cz),required:P(y()).optional()})}),xz=Fi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),kz=ue([Pz,xz]),ff=Oe.extend({method:E("elicitation/create"),params:kz}),Ez=vt.extend({elicitationId:y()}),Tz=_t.extend({method:E("notifications/elicitation/complete"),params:Ez}),pf=Te.extend({action:Xe(["accept","decline","cancel"]),content:ql(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),P(y())])).optional())}),Az=k({type:E("ref/resource"),uri:y()});var Mz=k({type:E("ref/prompt"),name:y()}),$z=dt.extend({ref:ue([Mz,Az]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Iz=Oe.extend({method:E("completion/complete"),params:$z});var hf=Te.extend({completion:ke({values:P(y()).max(100),total:ge(K().int()),hasMore:ge(ie())})}),Oz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),me()).optional()}),zz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Nz=Te.extend({roots:P(Oz)}),Dz=_t.extend({method:E("notifications/roots/list_changed"),params:vt.optional()}),AV=ue([tc,CO,Iz,nz,BO,GO,$O,IO,zO,DO,jO,tz,QO,nc,ic,sc,cc]),MV=ue([ec,rc,fb,Dz,Bi]),$V=ue([Sn,df,lf,pf,Nz,oc,ac,wn]),IV=ue([tc,uf,ff,zz,nc,ic,sc,cc]),OV=ue([ec,rc,iz,UO,Ql,Vi,af,Bi,Tz]),zV=ue([Sn,Wl,hf,sf,ef,Kl,Jl,Xl,bn,cf,oc,ac,wn]),M=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===$.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new Hl(o.elicitations,r)}return new t(e,r,n)}},Hl=class extends M{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Ur(t){return t==="completed"||t==="failed"||t==="cancelled"}var h6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function mf(t){let r=Za(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Ba(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function gf(t,e){let r=Mt(t,e);if(!r.success)throw r.error;return r.data}var Hz=6e4,uc=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(ec,r=>{this._oncancel(r)}),this.setNotificationHandler(rc,r=>{this._onprogress(r)}),this.setRequestHandler(tc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(nc,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(ic,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),a.type==="response")d(c);else{let l=c,f=new M(l.error.code,l.error.message,l.error.data);d(f)}else{let l=a.type==="response"?"Response":"Error";this._onerror(new Error(`${l} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new M($.InvalidParams,`Task not found: ${i}`);if(!Ur(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Ur(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[jr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(sc,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new M($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(cc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Ur(o.status))throw new M($.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new M($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof M?o:new M($.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),M.fromError($.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),_n(i)||db(i)?this._onresponse(i):Ui(i)?this._onrequest(i,s):ub(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=M.fromError($.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[jr]?.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=sb(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async d=>{if(s.signal.aborted)return;let l={relatedRequestId:e.id};i&&(l.relatedTask={taskId:i}),await this.notification(d,l)},sendRequest:async(d,l,f)=>{if(s.signal.aborted)throw new M($.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:e.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let m=p.relatedTask?.taskId??i;return m&&c&&await c.updateTaskStatus(m,"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),_n(e))n(e);else{let s=new M(e.error.code,e.error.message,e.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(_n(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),_n(e))o(e);else{let s=M.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}return}let i;try{let s=await this.request(e,wn,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new M($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Ur(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new M($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new M($.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,d)=>{let l=w=>{d(w)};if(!this._transport){l(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(w){l(w);return}n?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...e,jsonrpc:"2.0",id:f};n?.onprogress&&(this._progressHandlers.set(f,n.onprogress),p.params={...e.params,_meta:{...e.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[jr]:c}});let m=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=w instanceof M?w:new M($.RequestTimeout,String(w));d(b)};this._responseHandlers.set(f,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return d(w);try{let b=Mt(r,w.result);b.success?u(b.data):d(b.error)}catch(b){d(b)}}}),n?.signal?.addEventListener("abort",()=>{m(n?.signal?.reason)});let h=n?.timeout??Hz,g=()=>m(M.fromError($.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(f,h,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let w=b=>{let x=this._responseHandlers.get(f);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,w),this._enqueueTaskMessage(v,{type:"request",message:p,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(f),d(b)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(w=>{this._cleanupTimeout(f),d(w)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},oc,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},ac,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},hb,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||{},[jr]: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||{},[jr]: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||{},[jr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=mf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=gf(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=mf(e);this._notificationHandlers.set(n,o=>{let i=gf(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"&&Ui(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new M($.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new M($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new M($.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Bi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Ur(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new M($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Ur(a.status))throw new M($.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Bi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Ur(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function bb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Rb(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];bb(s)&&bb(i)?r[o]={...s,...i}:r[o]=i}return r}var pP=Ys(rh(),1),hP=Ys(fP(),1);function VF(){let t=new pP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,hP.default)(t),t}var Bc=class{constructor(e){this._ajv=e??VF()}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 Wc=class{constructor(e){this._client=e}async*callToolStream(e,r=bn,n){let o=this._client,i={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},s=o.requestStream({method:"tools/call",params:e},r,i),a=o.getToolOutputValidator(e.name);for await(let c of s){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let d=a(u.structuredContent);if(!d.valid){yield{type:"error",error:new M($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof M){yield{type:"error",error:d};return}yield{type:"error",error:new M($.InvalidParams,`Failed to validate structured content: ${d instanceof Error?d.message:String(d)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function mP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function gP(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 Vc(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&&Vc(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Vc(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Vc(r,e)}}function KF(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 Kc=class extends uc{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 Bc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Vi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",af,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Ql,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Wc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Rb(this._capabilities,e)}setRequestHandler(e,r){let o=Za(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Ba(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=Mt(ff,c);if(!d.success){let w=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid elicitation request: ${w}`)}let{params:l}=d.data;l.mode=l.mode??"form";let{supportsFormMode:f,supportsUrlMode:p}=KF(this._capabilities.elicitation);if(l.mode==="form"&&!f)throw new M($.InvalidParams,"Client does not support form-mode elicitation requests");if(l.mode==="url"&&!p)throw new M($.InvalidParams,"Client does not support URL-mode elicitation requests");let m=await Promise.resolve(r(c,u));if(l.task){let w=Mt(wn,m);if(!w.success){let b=w.error instanceof Error?w.error.message:String(w.error);throw new M($.InvalidParams,`Invalid task creation result: ${b}`)}return w.data}let h=Mt(pf,m);if(!h.success){let w=h.error instanceof Error?h.error.message:String(h.error);throw new M($.InvalidParams,`Invalid elicitation result: ${w}`)}let g=h.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{Vc(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=Mt(uf,c);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid sampling request: ${g}`)}let{params:l}=d.data,f=await Promise.resolve(r(c,u));if(l.task){let g=Mt(wn,f);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new M($.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let m=l.tools||l.toolChoice?lf:df,h=Mt(m,f);if(!h.success){let g=h.error instanceof Error?h.error.message:String(h.error);throw new M($.InvalidParams,`Invalid sampling result: ${g}`)}return h.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:_o,capabilities:this._capabilities,clientInfo:this._clientInfo}},Wl,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!nb.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){mP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&gP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},Sn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},hf,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},Sn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},sf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},ef,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Kl,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Jl,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Xl,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},Sn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},Sn,r)}async callTool(e,r=bn,n){if(this.isToolTaskRequired(e.name))throw new M($.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let o=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!o.structuredContent&&!o.isError)throw new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(o.structuredContent)try{let s=i(o.structuredContent);if(!s.valid)throw new M($.InvalidParams,`Structured content does not match the tool's output schema: ${s.errorMessage}`)}catch(s){throw s instanceof M?s:new M($.InvalidParams,`Failed to validate structured content: ${s instanceof Error?s.message:String(s)}`)}}return o}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let o=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,o)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},cf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Sb.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 Ps=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}},yP=10,JF=13,On=32;function dh(t){}function Jc(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=dh,onError:r=dh,onRetry:n=dh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function m(S){if(p)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,S.charCodeAt(0)===239&&S.charCodeAt(1)===187&&S.charCodeAt(2)===191&&(S=S.slice(3))),s.length===0){let ne=g(S);ne!==""&&(s.push(ne),a=ne.length),h();return}if(S.indexOf(`
|
|
88
|
-
`)===-1&&S.indexOf("\r")===-1){s.push(S),a+=S.length,h();return}s.push(S);let R=s.join("");s.length=0,a=0;let I=g(R);I!==""&&(s.push(I),a=I.length),h()}function h(){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
|
|
87
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of t.seen.entries()){let a=s[1];if(e===s[0]){i(s);continue}if(t.external){let u=t.external.registry.get(s[0])?.id;if(e!==s[0]&&u){i(s);continue}}if(t.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&t.reused==="ref"){i(s);continue}}}function Nl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),m=p.schema;if(m.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(m)):Object.assign(u,m),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(m.$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 m in u)m==="$ref"||m==="allOf"||m in p.def&&JSON.stringify(u[m])===JSON.stringify(p.def[m])&&delete u[m]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:ji(e,"input",t.processors),output:ji(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function qe(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return qe(n.element,r);if(n.type==="set")return qe(n.valueType,r);if(n.type==="lazy")return qe(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return qe(n.innerType,r);if(n.type==="intersection")return qe(n.left,r)||qe(n.right,r);if(n.type==="record"||n.type==="map")return qe(n.keyType,r)||qe(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:qe(n.in,r)||qe(n.out,r);if(n.type==="object"){for(let o in n.shape)if(qe(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(qe(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(qe(o,r))return!0;return!!(n.rest&&qe(n.rest,r))}return!1}var VS=(t,e={})=>r=>{let n=Ol({...r,processors:e});return Se(t,n),zl(n,t),Nl(n,t)},ji=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=Ol({...o??{},target:i,io:e,processors:r});return Se(t,s),zl(s,t),Nl(s,t)};var pI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},KS=(t,e,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),a&&(o.format=pI[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(l=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))])}},JS=(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)},YS=(t,e,r,n)=>{r.type="boolean"},XS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var QS=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var ew=(t,e,r,n)=>{r.not={}},tw=(t,e,r,n)=>{},rw=(t,e,r,n)=>{},nw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},ow=(t,e,r,n)=>{let o=t._zod.def,i=Ti(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},iw=(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 sw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var aw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var cw=(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=Se(i.element,e,{...n,path:[...n.path,"items"]})},uw=(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]=Se(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=Se(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},dw=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>Se(a,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},lw=(t,e,r,n)=>{let o=t._zod.def,i=Se(o.left,e,{...n,path:[...n.path,"allOf",0]}),s=Se(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 fw=(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=Se(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=Se(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=Se(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)}},pw=(t,e,r,n)=>{let o=t._zod.def,i=Se(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"}]},hw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},mw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},gw=(t,e,r,n)=>{let o=t._zod.def;Se(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)))},yw=(t,e,r,n)=>{let o=t._zod.def;Se(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},vw=(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;Se(s,e,n);let a=e.seen.get(t);a.ref=s},_w=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0};var Dl=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType};function Ba(t){return!!t._zod}function Mt(t,e){return Ba(t)?Oi(t,e):t.safeParse(e)}function Wa(t){if(!t)return;let e;if(Ba(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Va(t){if(Ba(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Fi={};Uu(Fi,{ZodISODate:()=>ww,ZodISODateTime:()=>Sw,ZodISODuration:()=>Rw,ZodISOTime:()=>bw,date:()=>jl,datetime:()=>Ll,duration:()=>Ul,time:()=>Fl});var Sw=_("ZodISODateTime",(t,e)=>{v_.init(t,e),he.init(t,e)});function Ll(t){return TS(Sw,t)}var ww=_("ZodISODate",(t,e)=>{__.init(t,e),he.init(t,e)});function jl(t){return AS(ww,t)}var bw=_("ZodISOTime",(t,e)=>{S_.init(t,e),he.init(t,e)});function Fl(t){return MS(bw,t)}var Rw=_("ZodISODuration",(t,e)=>{w_.init(t,e),he.init(t,e)});function Ul(t){return $S(Rw,t)}var wI=(t,e)=>{Na.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>ul(t,r)},flatten:{value:r=>cl(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,po,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,po,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=_("ZodError",wI,{Parent:Error});var Pw=Da(ut),xw=La(ut),kw=Ii(ut),Ew=zi(ut),Tw=tv(ut),Aw=rv(ut),Mw=nv(ut),$w=ov(ut),Iw=iv(ut),Ow=sv(ut),zw=av(ut),Nw=cv(ut);var Dw=new WeakMap;function Ui(t,e,r){let n=Object.getPrototypeOf(t),o=Dw.get(n);if(o||(o=new Set,Dw.set(n,o)),!o.has(e)){o.add(e);for(let i in r){let s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){let a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var oe=_("ZodType",(t,e)=>(te.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:ji(t,"input"),output:ji(t,"output")}}),t.toJSONSchema=VS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>Pw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>kw(t,r,n),t.parseAsync=async(r,n)=>xw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Ew(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Tw(t,r,n),t.decode=(r,n)=>Aw(t,r,n),t.encodeAsync=async(r,n)=>Mw(t,r,n),t.decodeAsync=async(r,n)=>$w(t,r,n),t.safeEncode=(r,n)=>Iw(t,r,n),t.safeDecode=(r,n)=>Ow(t,r,n),t.safeEncodeAsync=async(r,n)=>zw(t,r,n),t.safeDecodeAsync=async(r,n)=>Nw(t,r,n),Ui(t,"ZodType",{check(...r){let n=this.def;return this.clone(H.mergeDefs(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return gt(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(uO(r,n))},superRefine(r,n){return this.check(dO(r,n))},overwrite(r){return this.check(Ur(r))},optional(){return ge(this)},exactOptional(){return YI(this)},nullable(){return Uw(this)},nullish(){return ge(Uw(this))},nonoptional(r){return nO(this,r)},array(){return P(this)},or(r){return ue([this,r])},and(r){return Ya(this,r)},transform(r){return qw(this,Xw(r))},default(r){return eO(this,r)},prefault(r){return rO(this,r)},catch(r){return iO(this,r)},pipe(r){return qw(this,r)},readonly(){return cO(this)},describe(r){let n=this.clone();return Fr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Fr.get(this);let n=this.clone();return Fr.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(t,"description",{get(){return Fr.get(t)?.description},configurable:!0}),t)),Hw=_("_ZodString",(t,e)=>{Ha.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>KS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Ui(t,"_ZodString",{regex(...n){return this.check(Rl(...n))},includes(...n){return this.check(xl(...n))},startsWith(...n){return this.check(kl(...n))},endsWith(...n){return this.check(El(...n))},min(...n){return this.check(vo(...n))},max(...n){return this.check(Ga(...n))},length(...n){return this.check(Za(...n))},nonempty(...n){return this.check(vo(1,...n))},lowercase(n){return this.check(Cl(n))},uppercase(n){return this.check(Pl(n))},trim(){return this.check(Al())},normalize(...n){return this.check(Tl(...n))},toLowerCase(){return this.check(Ml())},toUpperCase(){return this.check($l())},slugify(){return this.check(Il())}})}),Hl=_("ZodString",(t,e)=>{Ha.init(t,e),Hw.init(t,e),t.email=r=>t.check(uS(RI,r)),t.url=r=>t.check(bl(Gw,r)),t.jwt=r=>t.check(ES(LI,r)),t.emoji=r=>t.check(hS(CI,r)),t.guid=r=>t.check(wl(Lw,r)),t.uuid=r=>t.check(dS(Ka,r)),t.uuidv4=r=>t.check(lS(Ka,r)),t.uuidv6=r=>t.check(fS(Ka,r)),t.uuidv7=r=>t.check(pS(Ka,r)),t.nanoid=r=>t.check(mS(PI,r)),t.guid=r=>t.check(wl(Lw,r)),t.cuid=r=>t.check(gS(xI,r)),t.cuid2=r=>t.check(yS(kI,r)),t.ulid=r=>t.check(vS(EI,r)),t.base64=r=>t.check(PS(zI,r)),t.base64url=r=>t.check(xS(NI,r)),t.xid=r=>t.check(_S(TI,r)),t.ksuid=r=>t.check(SS(AI,r)),t.ipv4=r=>t.check(wS(MI,r)),t.ipv6=r=>t.check(bS($I,r)),t.cidrv4=r=>t.check(RS(II,r)),t.cidrv6=r=>t.check(CS(OI,r)),t.e164=r=>t.check(kS(DI,r)),t.datetime=r=>t.check(Ll(r)),t.date=r=>t.check(jl(r)),t.time=r=>t.check(Fl(r)),t.duration=r=>t.check(Ul(r))});function y(t){return aS(Hl,t)}var he=_("ZodStringFormat",(t,e)=>{ce.init(t,e),Hw.init(t,e)}),RI=_("ZodEmail",(t,e)=>{u_.init(t,e),he.init(t,e)});var Lw=_("ZodGUID",(t,e)=>{a_.init(t,e),he.init(t,e)});var Ka=_("ZodUUID",(t,e)=>{c_.init(t,e),he.init(t,e)});var Gw=_("ZodURL",(t,e)=>{d_.init(t,e),he.init(t,e)});function Zw(t){return bl(Gw,t)}var CI=_("ZodEmoji",(t,e)=>{l_.init(t,e),he.init(t,e)});var PI=_("ZodNanoID",(t,e)=>{f_.init(t,e),he.init(t,e)});var xI=_("ZodCUID",(t,e)=>{p_.init(t,e),he.init(t,e)});var kI=_("ZodCUID2",(t,e)=>{h_.init(t,e),he.init(t,e)});var EI=_("ZodULID",(t,e)=>{m_.init(t,e),he.init(t,e)});var TI=_("ZodXID",(t,e)=>{g_.init(t,e),he.init(t,e)});var AI=_("ZodKSUID",(t,e)=>{y_.init(t,e),he.init(t,e)});var MI=_("ZodIPv4",(t,e)=>{b_.init(t,e),he.init(t,e)});var $I=_("ZodIPv6",(t,e)=>{R_.init(t,e),he.init(t,e)});var II=_("ZodCIDRv4",(t,e)=>{C_.init(t,e),he.init(t,e)});var OI=_("ZodCIDRv6",(t,e)=>{P_.init(t,e),he.init(t,e)});var zI=_("ZodBase64",(t,e)=>{k_.init(t,e),he.init(t,e)});var NI=_("ZodBase64URL",(t,e)=>{E_.init(t,e),he.init(t,e)});var DI=_("ZodE164",(t,e)=>{T_.init(t,e),he.init(t,e)});var LI=_("ZodJWT",(t,e)=>{A_.init(t,e),he.init(t,e)});var Ja=_("ZodNumber",(t,e)=>{gl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>JS(t,n,o,i),Ui(t,"ZodNumber",{gt(n,o){return this.check(yo(n,o))},gte(n,o){return this.check(At(n,o))},min(n,o){return this.check(At(n,o))},lt(n,o){return this.check(go(n,o))},lte(n,o){return this.check(dr(n,o))},max(n,o){return this.check(dr(n,o))},int(n){return this.check(jw(n))},safe(n){return this.check(jw(n))},positive(n){return this.check(yo(0,n))},nonnegative(n){return this.check(At(0,n))},negative(n){return this.check(go(0,n))},nonpositive(n){return this.check(dr(0,n))},multipleOf(n,o){return this.check(Li(n,o))},step(n,o){return this.check(Li(n,o))},finite(){return this}});let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function K(t){return IS(Ja,t)}var jI=_("ZodNumberFormat",(t,e)=>{M_.init(t,e),Ja.init(t,e)});function jw(t){return zS(jI,t)}var Gl=_("ZodBoolean",(t,e)=>{$_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>YS(t,r,n,o)});function ie(t){return NS(Gl,t)}var Bw=_("ZodBigInt",(t,e)=>{I_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>XS(t,n,o,i),t.gte=(n,o)=>t.check(At(n,o)),t.min=(n,o)=>t.check(At(n,o)),t.gt=(n,o)=>t.check(yo(n,o)),t.gte=(n,o)=>t.check(At(n,o)),t.min=(n,o)=>t.check(At(n,o)),t.lt=(n,o)=>t.check(go(n,o)),t.lte=(n,o)=>t.check(dr(n,o)),t.max=(n,o)=>t.check(dr(n,o)),t.positive=n=>t.check(yo(BigInt(0),n)),t.negative=n=>t.check(go(BigInt(0),n)),t.nonpositive=n=>t.check(dr(BigInt(0),n)),t.nonnegative=n=>t.check(At(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(Li(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var FI=_("ZodNull",(t,e)=>{O_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>QS(t,r,n,o)});function Ww(t){return jS(FI,t)}var UI=_("ZodAny",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>tw(t,r,n,o)});function Vw(){return FS(UI)}var qI=_("ZodUnknown",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o)});function me(){return US(qI)}var HI=_("ZodNever",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o)});function GI(t){return qS(HI,t)}var Kw=_("ZodDate",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>nw(t,n,o,i),t.min=(n,o)=>t.check(At(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 ZI=_("ZodArray",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o),t.element=e.element,Ui(t,"ZodArray",{min(r,n){return this.check(vo(r,n))},nonempty(r){return this.check(vo(1,r))},max(r,n){return this.check(Ga(r,n))},length(r,n){return this.check(Za(r,n))},unwrap(){return this.element}})});function P(t,e){return GS(ZI,t,e)}var Jw=_("ZodObject",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Ui(t,"ZodObject",{keyof(){return Xe(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:me()})},loose(){return this.clone({...this._zod.def,catchall:me()})},strict(){return this.clone({...this._zod.def,catchall:GI()})},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(Qw,this,r[0])},required(...r){return H.required(eb,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Jw(r)}function ke(t,e){return new Jw({type:"object",shape:t,catchall:me(),...H.normalizeParams(e)})}var Yw=_("ZodUnion",(t,e)=>{yl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>dw(t,r,n,o),t.options=e.options});function ue(t,e){return new Yw({type:"union",options:t,...H.normalizeParams(e)})}var BI=_("ZodDiscriminatedUnion",(t,e)=>{Yw.init(t,e),H_.init(t,e)});function Zl(t,e,r){return new BI({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var WI=_("ZodIntersection",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o)});function Ya(t,e){return new WI({type:"intersection",left:t,right:e})}var Fw=_("ZodRecord",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Fw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Fw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var ql=_("ZodEnum",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ow(t,n,o,i),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,o)=>{let i={};for(let s of n)if(r.has(s))i[s]=e.entries[s];else throw new Error(`Key ${s} not found in enum`);return new ql({...e,checks:[],...H.normalizeParams(o),entries:i})},t.exclude=(n,o)=>{let i={...e.entries};for(let s of n)if(r.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new ql({...e,checks:[],...H.normalizeParams(o),entries:i})}});function Xe(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new ql({type:"enum",entries:r,...H.normalizeParams(e)})}var VI=_("ZodLiteral",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(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 VI({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var KI=_("ZodTransform",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new lo(t.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(H.issue(i,r.value,e));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=t),r.issues.push(H.issue(s))}};let o=e.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function Xw(t){return new KI({type:"transform",transform:t})}var Qw=_("ZodOptional",(t,e)=>{vl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Dl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ge(t){return new Qw({type:"optional",innerType:t})}var JI=_("ZodExactOptional",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Dl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function YI(t){return new JI({type:"optional",innerType:t})}var XI=_("ZodNullable",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>pw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Uw(t){return new XI({type:"nullable",innerType:t})}var QI=_("ZodDefault",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function eO(t,e){return new QI({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var tO=_("ZodPrefault",(t,e)=>{X_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function rO(t,e){return new tO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var eb=_("ZodNonOptional",(t,e)=>{Q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function nO(t,e){return new eb({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var oO=_("ZodCatch",(t,e)=>{eS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function iO(t,e){return new oO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var tb=_("ZodPipe",(t,e)=>{_l.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vw(t,r,n,o),t.in=e.in,t.out=e.out});function qw(t,e){return new tb({type:"pipe",in:t,out:e})}var sO=_("ZodPreprocess",(t,e)=>{tb.init(t,e),tS.init(t,e)}),aO=_("ZodReadonly",(t,e)=>{rS.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 cO(t){return new aO({type:"readonly",innerType:t})}var rb=_("ZodCustom",(t,e)=>{nS.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o)});function nb(t,e){return ZS(rb,t??(()=>!0),e)}function uO(t,e={}){return BS(rb,t,e)}function dO(t,e){return WS(t,e)}function Bl(t,e){return new sO({type:"pipe",in:Xw(t),out:e})}var ib={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 ob;ob||(ob={});var Xa={};Uu(Xa,{bigint:()=>hO,boolean:()=>pO,date:()=>mO,number:()=>fO,string:()=>lO});function lO(t){return cS(Hl,t)}function fO(t){return OS(Ja,t)}function pO(t){return DS(Gl,t)}function hO(t){return LS(Bw,t)}function mO(t){return HS(Kw,t)}Ye(oS());var wo="2025-11-25";var sb=[wo,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],qr="io.modelcontextprotocol/related-task",ec="2.0",Ee=nb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),ab=ue([y(),K().int()]),cb=y(),TV=ke({ttl:K().optional(),pollInterval:K().optional()}),yO=k({ttl:K().optional()}),vO=k({taskId:y()}),Vl=ke({progressToken:ab.optional(),[qr]:vO.optional()}),dt=k({_meta:Vl.optional()}),qi=dt.extend({task:yO.optional()}),ub=t=>qi.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),vt=k({_meta:Vl.optional()}),_t=k({method:y(),params:vt.loose().optional()}),Te=ke({_meta:Vl.optional()}),tc=ue([y(),K().int()]),db=k({jsonrpc:E(ec),id:tc,...Oe.shape}).strict(),Hi=t=>db.safeParse(t).success,lb=k({jsonrpc:E(ec),..._t.shape}).strict(),fb=t=>lb.safeParse(t).success,Kl=k({jsonrpc:E(ec),id:tc,result:Te}).strict(),wn=t=>Kl.safeParse(t).success;var $;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})($||($={}));var Jl=k({jsonrpc:E(ec),id:tc.optional(),error:k({code:K().int(),message:y(),data:me().optional()})}).strict();var pb=t=>Jl.safeParse(t).success;var Hr=ue([db,lb,Kl,Jl]),AV=ue([Kl,Jl]),bn=Te.strict(),_O=vt.extend({requestId:tc.optional(),reason:y().optional()}),rc=_t.extend({method:E("notifications/cancelled"),params:_O}),SO=k({src:y(),mimeType:y().optional(),sizes:P(y()).optional(),theme:Xe(["light","dark"]).optional()}),Gi=k({icons:P(SO).optional()}),So=k({name:y(),title:y().optional()}),hb=So.extend({...So.shape,...Gi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),wO=Ya(k({applyDefaults:ie().optional()}),ae(y(),me())),bO=Bl(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Ya(k({form:wO.optional(),url:Ee.optional()}),ae(y(),me()).optional())),RO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({sampling:ke({createMessage:Ee.optional()}).optional(),elicitation:ke({create:Ee.optional()}).optional()}).optional()}),CO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({tools:ke({call:Ee.optional()}).optional()}).optional()}),PO=k({experimental:ae(y(),Ee).optional(),sampling:k({context:Ee.optional(),tools:Ee.optional()}).optional(),elicitation:bO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:RO.optional(),extensions:ae(y(),Ee).optional()}),xO=dt.extend({protocolVersion:y(),capabilities:PO,clientInfo:hb}),kO=Oe.extend({method:E("initialize"),params:xO});var EO=k({experimental:ae(y(),Ee).optional(),logging:Ee.optional(),completions:Ee.optional(),prompts:k({listChanged:ie().optional()}).optional(),resources:k({subscribe:ie().optional(),listChanged:ie().optional()}).optional(),tools:k({listChanged:ie().optional()}).optional(),tasks:CO.optional(),extensions:ae(y(),Ee).optional()}),Yl=Te.extend({protocolVersion:y(),capabilities:EO,serverInfo:hb,instructions:y().optional()}),mb=_t.extend({method:E("notifications/initialized"),params:vt.optional()}),gb=t=>mb.safeParse(t).success,nc=Oe.extend({method:E("ping"),params:dt.optional()}),TO=k({progress:K(),total:ge(K()),message:ge(y())}),AO=k({...vt.shape,...TO.shape,progressToken:ab}),oc=_t.extend({method:E("notifications/progress"),params:AO}),MO=dt.extend({cursor:cb.optional()}),Zi=Oe.extend({params:MO.optional()}),Bi=Te.extend({nextCursor:cb.optional()}),$O=Xe(["working","input_required","completed","failed","cancelled"]),Wi=k({taskId:y(),status:$O,ttl:ue([K(),Ww()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ge(K()),statusMessage:ge(y())}),Rn=Te.extend({task:Wi}),IO=vt.merge(Wi),Vi=_t.extend({method:E("notifications/tasks/status"),params:IO}),ic=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),sc=Te.merge(Wi),ac=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),MV=Te.loose(),cc=Zi.extend({method:E("tasks/list")}),uc=Bi.extend({tasks:P(Wi)}),dc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),yb=Te.merge(Wi),vb=k({uri:y(),mimeType:ge(y()),_meta:ae(y(),me()).optional()}),_b=vb.extend({text:y()}),Xl=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Sb=vb.extend({blob:Xl}),Ki=Xe(["user","assistant"]),bo=k({audience:P(Ki).optional(),priority:K().min(0).max(1).optional(),lastModified:Fi.datetime({offset:!0}).optional()}),wb=k({...So.shape,...Gi.shape,uri:y(),description:ge(y()),mimeType:ge(y()),size:ge(K()),annotations:bo.optional(),_meta:ge(ke({}))}),OO=k({...So.shape,...Gi.shape,uriTemplate:y(),description:ge(y()),mimeType:ge(y()),annotations:bo.optional(),_meta:ge(ke({}))}),zO=Zi.extend({method:E("resources/list")}),Ql=Bi.extend({resources:P(wb)}),NO=Zi.extend({method:E("resources/templates/list")}),ef=Bi.extend({resourceTemplates:P(OO)}),tf=dt.extend({uri:y()}),DO=tf,LO=Oe.extend({method:E("resources/read"),params:DO}),rf=Te.extend({contents:P(ue([_b,Sb]))}),nf=_t.extend({method:E("notifications/resources/list_changed"),params:vt.optional()}),jO=tf,FO=Oe.extend({method:E("resources/subscribe"),params:jO}),UO=tf,qO=Oe.extend({method:E("resources/unsubscribe"),params:UO}),HO=vt.extend({uri:y()}),GO=_t.extend({method:E("notifications/resources/updated"),params:HO}),ZO=k({name:y(),description:ge(y()),required:ge(ie())}),BO=k({...So.shape,...Gi.shape,description:ge(y()),arguments:ge(P(ZO)),_meta:ge(ke({}))}),WO=Zi.extend({method:E("prompts/list")}),of=Bi.extend({prompts:P(BO)}),VO=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),KO=Oe.extend({method:E("prompts/get"),params:VO}),sf=k({type:E("text"),text:y(),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),af=k({type:E("image"),data:Xl,mimeType:y(),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),cf=k({type:E("audio"),data:Xl,mimeType:y(),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),JO=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),me()),_meta:ae(y(),me()).optional()}),YO=k({type:E("resource"),resource:ue([_b,Sb]),annotations:bo.optional(),_meta:ae(y(),me()).optional()}),XO=wb.extend({type:E("resource_link")}),uf=ue([sf,af,cf,XO,YO]),QO=k({role:Ki,content:uf}),df=Te.extend({description:y().optional(),messages:P(QO)}),lf=_t.extend({method:E("notifications/prompts/list_changed"),params:vt.optional()}),ez=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),tz=k({taskSupport:Xe(["required","optional","forbidden"]).optional()}),bb=k({...So.shape,...Gi.shape,description:y().optional(),inputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:P(y()).optional()}).catchall(me()),outputSchema:k({type:E("object"),properties:ae(y(),Ee).optional(),required:P(y()).optional()}).catchall(me()).optional(),annotations:ez.optional(),execution:tz.optional(),_meta:ae(y(),me()).optional()}),rz=Zi.extend({method:E("tools/list")}),ff=Bi.extend({tools:P(bb)}),Cn=Te.extend({content:P(uf).default([]),structuredContent:ae(y(),me()).optional(),isError:ie().optional()}),$V=Cn.or(Te.extend({toolResult:me()})),nz=qi.extend({name:y(),arguments:ae(y(),me()).optional()}),oz=Oe.extend({method:E("tools/call"),params:nz}),Ji=_t.extend({method:E("notifications/tools/list_changed"),params:vt.optional()}),Rb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),Cb=Xe(["debug","info","notice","warning","error","critical","alert","emergency"]),iz=dt.extend({level:Cb}),sz=Oe.extend({method:E("logging/setLevel"),params:iz}),az=vt.extend({level:Cb,logger:y().optional(),data:me()}),cz=_t.extend({method:E("notifications/message"),params:az}),uz=k({name:y().optional()}),dz=k({hints:P(uz).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),lz=k({mode:Xe(["auto","required","none"]).optional()}),fz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:P(uf).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),me()).optional()}),pz=Zl("type",[sf,af,cf]),Qa=Zl("type",[sf,af,cf,JO,fz]),hz=k({role:Ki,content:ue([Qa,P(Qa)]),_meta:ae(y(),me()).optional()}),mz=qi.extend({messages:P(hz),modelPreferences:dz.optional(),systemPrompt:y().optional(),includeContext:Xe(["none","thisServer","allServers"]).optional(),temperature:K().optional(),maxTokens:K().int(),stopSequences:P(y()).optional(),metadata:Ee.optional(),tools:P(bb).optional(),toolChoice:lz.optional()}),pf=Oe.extend({method:E("sampling/createMessage"),params:mz}),hf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Ki,content:pz}),mf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Ki,content:ue([Qa,P(Qa)])}),gz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),yz=k({type:E("string"),title:y().optional(),description:y().optional(),minLength:K().optional(),maxLength:K().optional(),format:Xe(["email","uri","date","date-time"]).optional(),default:y().optional()}),vz=k({type:Xe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),_z=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),default:y().optional()}),Sz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:P(k({const:y(),title:y()})),default:y().optional()}),wz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),enumNames:P(y()).optional(),default:y().optional()}),bz=ue([_z,Sz]),Rz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({type:E("string"),enum:P(y())}),default:P(y()).optional()}),Cz=k({type:E("array"),title:y().optional(),description:y().optional(),minItems:K().optional(),maxItems:K().optional(),items:k({anyOf:P(k({const:y(),title:y()}))}),default:P(y()).optional()}),Pz=ue([Rz,Cz]),xz=ue([wz,bz,Pz]),kz=ue([xz,gz,yz,vz]),Ez=qi.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),kz),required:P(y()).optional()})}),Tz=qi.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),Az=ue([Ez,Tz]),gf=Oe.extend({method:E("elicitation/create"),params:Az}),Mz=vt.extend({elicitationId:y()}),$z=_t.extend({method:E("notifications/elicitation/complete"),params:Mz}),yf=Te.extend({action:Xe(["accept","decline","cancel"]),content:Bl(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),P(y())])).optional())}),Iz=k({type:E("ref/resource"),uri:y()});var Oz=k({type:E("ref/prompt"),name:y()}),zz=dt.extend({ref:ue([Oz,Iz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Nz=Oe.extend({method:E("completion/complete"),params:zz});var vf=Te.extend({completion:ke({values:P(y()).max(100),total:ge(K().int()),hasMore:ge(ie())})}),Dz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),me()).optional()}),Lz=Oe.extend({method:E("roots/list"),params:dt.optional()}),jz=Te.extend({roots:P(Dz)}),Fz=_t.extend({method:E("notifications/roots/list_changed"),params:vt.optional()}),IV=ue([nc,kO,Nz,sz,KO,WO,zO,NO,LO,FO,qO,oz,rz,ic,ac,cc,dc]),OV=ue([rc,oc,mb,Fz,Vi]),zV=ue([bn,hf,mf,yf,jz,sc,uc,Rn]),NV=ue([nc,pf,gf,Lz,ic,ac,cc,dc]),DV=ue([rc,oc,cz,GO,nf,Ji,lf,Vi,$z]),LV=ue([bn,Yl,vf,df,of,Ql,ef,rf,Cn,ff,sc,uc,Rn]),M=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===$.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new Wl(o.elicitations,r)}return new t(e,r,n)}},Wl=class extends M{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super($.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Gr(t){return t==="completed"||t==="failed"||t==="cancelled"}var y6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function _f(t){let r=Wa(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Va(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Sf(t,e){let r=Mt(t,e);if(!r.success)throw r.error;return r.data}var Bz=6e4,lc=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(rc,r=>{this._oncancel(r)}),this.setNotificationHandler(oc,r=>{this._onprogress(r)}),this.setRequestHandler(nc,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ic,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(ac,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),a.type==="response")d(c);else{let l=c,f=new M(l.error.code,l.error.message,l.error.data);d(f)}else{let l=a.type==="response"?"Response":"Error";this._onerror(new Error(`${l} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new M($.InvalidParams,`Task not found: ${i}`);if(!Gr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Gr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[qr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(cc,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new M($.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(dc,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new M($.InvalidParams,`Task not found: ${r.params.taskId}`);if(Gr(o.status))throw new M($.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new M($.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof M?o:new M($.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),M.fromError($.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),wn(i)||pb(i)?this._onresponse(i):Hi(i)?this._onrequest(i,s):fb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=M.fromError($.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[qr]?.taskId;if(n===void 0){let d={jsonrpc:"2.0",id:e.id,error:{code:$.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId).catch(l=>this._onerror(new Error(`Failed to enqueue error response: ${l}`))):o?.send(d).catch(l=>this._onerror(new Error(`Failed to send an error response: ${l}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let a=ub(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async d=>{if(s.signal.aborted)return;let l={relatedRequestId:e.id};i&&(l.relatedTask={taskId:i}),await this.notification(d,l)},sendRequest:async(d,l,f)=>{if(s.signal.aborted)throw new M($.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:e.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let m=p.relatedTask?.taskId??i;return m&&c&&await c.updateTaskStatus(m,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),wn(e))n(e);else{let s=new M(e.error.code,e.error.message,e.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(wn(e)&&e.result&&typeof e.result=="object"){let s=e.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,r))}}if(i||this._progressHandlers.delete(r),wn(e))o(e);else{let s=M.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}return}let i;try{let s=await this.request(e,Rn,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new M($.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Gr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new M($.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new M($.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof M?s:new M($.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,d)=>{let l=w=>{d(w)};if(!this._transport){l(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(w){l(w);return}n?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...e,jsonrpc:"2.0",id:f};n?.onprogress&&(this._progressHandlers.set(f,n.onprogress),p.params={...e.params,_meta:{...e.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[qr]:c}});let m=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=w instanceof M?w:new M($.RequestTimeout,String(w));d(b)};this._responseHandlers.set(f,w=>{if(!n?.signal?.aborted){if(w instanceof Error)return d(w);try{let b=Mt(r,w.result);b.success?u(b.data):d(b.error)}catch(b){d(b)}}}),n?.signal?.addEventListener("abort",()=>{m(n?.signal?.reason)});let h=n?.timeout??Bz,g=()=>m(M.fromError($.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(f,h,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let w=b=>{let x=this._responseHandlers.get(f);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,w),this._enqueueTaskMessage(v,{type:"request",message:p,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(f),d(b)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(w=>{this._cleanupTimeout(f),d(w)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},sc,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},uc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},yb,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[qr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[qr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[qr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=_f(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=Sf(e,o);return Promise.resolve(r(s,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=_f(e);this._notificationHandlers.set(n,o=>{let i=Sf(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&Hi(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new M($.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new M($.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new M($.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new M($.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Vi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Gr(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new M($.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Gr(a.status))throw new M($.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Vi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Gr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Pb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function xb(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];Pb(s)&&Pb(i)?r[o]={...s,...i}:r[o]=i}return r}var gP=Xs(sh(),1),yP=Xs(mP(),1);function YF(){let t=new gP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,yP.default)(t),t}var Vc=class{constructor(e){this._ajv=e??YF()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Kc=class{constructor(e){this._client=e}async*callToolStream(e,r=Cn,n){let o=this._client,i={...n,task:n?.task??(o.isToolTask(e.name)?{}:void 0)},s=o.requestStream({method:"tools/call",params:e},r,i),a=o.getToolOutputValidator(e.name);for await(let c of s){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let d=a(u.structuredContent);if(!d.valid){yield{type:"error",error:new M($.InvalidParams,`Structured content does not match the tool's output schema: ${d.errorMessage}`)};return}}catch(d){if(d instanceof M){yield{type:"error",error:d};return}yield{type:"error",error:new M($.InvalidParams,`Failed to validate structured content: ${d instanceof Error?d.message:String(d)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function vP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function _P(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Jc(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let o of Object.keys(n)){let i=n[o];r[o]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[o]=i.default),r[o]!==void 0&&Jc(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Jc(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Jc(r,e)}}function XF(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Yc=class extends lc{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Vc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Ji,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",lf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",nf,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Kc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=xb(this._capabilities,e)}setRequestHandler(e,r){let o=Wa(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=Va(o);if(typeof i!="string")throw new Error("Schema method literal must be a string");let s=i;if(s==="elicitation/create"){let a=async(c,u)=>{let d=Mt(gf,c);if(!d.success){let w=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid elicitation request: ${w}`)}let{params:l}=d.data;l.mode=l.mode??"form";let{supportsFormMode:f,supportsUrlMode:p}=XF(this._capabilities.elicitation);if(l.mode==="form"&&!f)throw new M($.InvalidParams,"Client does not support form-mode elicitation requests");if(l.mode==="url"&&!p)throw new M($.InvalidParams,"Client does not support URL-mode elicitation requests");let m=await Promise.resolve(r(c,u));if(l.task){let w=Mt(Rn,m);if(!w.success){let b=w.error instanceof Error?w.error.message:String(w.error);throw new M($.InvalidParams,`Invalid task creation result: ${b}`)}return w.data}let h=Mt(yf,m);if(!h.success){let w=h.error instanceof Error?h.error.message:String(h.error);throw new M($.InvalidParams,`Invalid elicitation result: ${w}`)}let g=h.data,v=l.mode==="form"?l.requestedSchema:void 0;if(l.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Jc(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=Mt(pf,c);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new M($.InvalidParams,`Invalid sampling request: ${g}`)}let{params:l}=d.data,f=await Promise.resolve(r(c,u));if(l.task){let g=Mt(Rn,f);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new M($.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let m=l.tools||l.toolChoice?mf:hf,h=Mt(m,f);if(!h.success){let g=h.error instanceof Error?h.error.message:String(h.error);throw new M($.InvalidParams,`Invalid sampling result: ${g}`)}return h.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:wo,capabilities:this._capabilities,clientInfo:this._clientInfo}},Yl,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!sb.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){vP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&_P(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},bn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},vf,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},bn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},df,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},of,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Ql,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},ef,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},rf,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},bn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},bn,r)}async callTool(e,r=Cn,n){if(this.isToolTaskRequired(e.name))throw new M($.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let o=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!o.structuredContent&&!o.isError)throw new M($.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(o.structuredContent)try{let s=i(o.structuredContent);if(!s.valid)throw new M($.InvalidParams,`Structured content does not match the tool's output schema: ${s.errorMessage}`)}catch(s){throw s instanceof M?s:new M($.InvalidParams,`Failed to validate structured content: ${s instanceof Error?s.message:String(s)}`)}}return o}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let o=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,o)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},ff,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=Rb.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:s,debounceMs:a}=i.data,{onChanged:c}=n,u=async()=>{if(!s){c(null,null);return}try{let l=await o();c(null,l)}catch(l){let f=l instanceof Error?l:new Error(String(l));c(f,null)}},d=()=>{if(a){let l=this._listChangedDebounceTimers.get(e);l&&clearTimeout(l);let f=setTimeout(u,a);this._listChangedDebounceTimers.set(e,f)}else u()};this.setNotificationHandler(r,d)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var ks=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},SP=10,QF=13,Nn=32;function hh(t){}function Xc(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=hh,onError:r=hh,onRetry:n=hh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function m(S){if(p)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,S.charCodeAt(0)===239&&S.charCodeAt(1)===187&&S.charCodeAt(2)===191&&(S=S.slice(3))),s.length===0){let ne=g(S);ne!==""&&(s.push(ne),a=ne.length),h();return}if(S.indexOf(`
|
|
88
|
+
`)===-1&&S.indexOf("\r")===-1){s.push(S),a+=S.length,h();return}s.push(S);let R=s.join("");s.length=0,a=0;let I=g(R);I!==""&&(s.push(I),a=I.length),h()}function h(){i!==void 0&&(a+d.length<=i||(p=!0,s.length=0,a=0,u=void 0,d="",l=0,f=void 0,r(new ks(`Buffered data exceeded max buffer size of ${i} characters`,{type:"max-buffer-size-exceeded"}))))}function g(S){let R=0;if(S.indexOf("\r")===-1){let I=S.indexOf(`
|
|
89
89
|
`,R);for(;I!==-1;){if(R===I){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0,R=I+1,I=S.indexOf(`
|
|
90
|
-
`,R);continue}let ne=S.charCodeAt(R);if(
|
|
90
|
+
`,R);continue}let ne=S.charCodeAt(R);if(wP(S,R,ne)){let fe=S.charCodeAt(R+5)===Nn?R+6:R+5,Pe=S.slice(fe,I);if(l===0&&S.charCodeAt(I+1)===SP){e({id:u,event:f,data:Pe}),u=void 0,d="",f=void 0,R=I+2,I=S.indexOf(`
|
|
91
91
|
`,R);continue}d=l===0?Pe:`${d}
|
|
92
|
-
${Pe}`,l++}else
|
|
92
|
+
${Pe}`,l++}else bP(S,R,ne)?f=S.slice(S.charCodeAt(R+6)===Nn?R+7:R+6,I)||void 0:v(S,R,I);R=I+1,I=S.indexOf(`
|
|
93
93
|
`,R)}return S.slice(R)}for(;R<S.length;){let I=S.indexOf("\r",R),ne=S.indexOf(`
|
|
94
|
-
`,R),fe=-1;if(I!==-1&&ne!==-1?fe=I<ne?I:ne:I!==-1?I===S.length-1?fe=-1:fe=I:ne!==-1&&(fe=ne),fe===-1)break;v(S,R,fe),R=fe+1,S.charCodeAt(R-1)===
|
|
95
|
-
${
|
|
96
|
-
${R}`,l++;break;case"id":u=R.includes("\0")?void 0:R;break;case"retry":/^\d+$/.test(R)?n(parseInt(R,10)):r(new Ps(`Invalid \`retry\` value: "${R}"`,{type:"invalid-retry",value:R,line:I}));break;default:r(new Ps(`Unknown field "${S.length>20?`${S.slice(0,20)}\u2026`:S}"`,{type:"unknown-field",field:S,value:R,line:I}));break}}function b(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function x(S={}){if(S.consume&&s.length>0){let R=s.join("");v(R,0,R.length)}c=!0,u=void 0,d="",l=0,f=void 0,s.length=0,a=0,p=!1}return{feed:m,reset:x}}function vP(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 _P(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 Xc=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(SP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(SP(this),r)}};function YF(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function lh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(lh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${lh(t.cause)}`:t.message:`${t}`}function SP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var bP=t=>{throw TypeError(t)},_h=(t,e,r)=>e.has(t)||bP("Cannot "+r),q=(t,e,r)=>(_h(t,e,"read from private field"),r?r.call(t):e.get(t)),Ae=(t,e,r)=>e.has(t)?bP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ye=(t,e,r,n)=>(_h(t,e,"write to private field"),e.set(t,r),r),hr=(t,e,r)=>(_h(t,e,"access private method"),r),nt,zn,Lo,Yc,Qc,Es,Uo,Ts,Jr,jo,qo,Fo,xs,Dt,fh,ph,hh,wP,mh,gh,ks,yh,vh,Nn=class extends EventTarget{constructor(e,r){var n,o;super(),Ae(this,Dt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Ae(this,nt),Ae(this,zn),Ae(this,Lo),Ae(this,Yc),Ae(this,Qc),Ae(this,Es),Ae(this,Uo),Ae(this,Ts,null),Ae(this,Jr),Ae(this,jo),Ae(this,qo,null),Ae(this,Fo,null),Ae(this,xs,null),Ae(this,ph,async i=>{var s;q(this,jo).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){hr(this,Dt,ks).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ye(this,Lo,new URL(i.url)):ye(this,Lo,void 0),u!==200){hr(this,Dt,ks).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){hr(this,Dt,ks).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.OPEN);let l=new Event("open");if((s=q(this,xs))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){hr(this,Dt,ks).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),m=!0;do{let{done:h,value:g}=await p.read();g&&q(this,jo).feed(f.decode(g,{stream:!h})),h&&(m=!1,q(this,jo).reset(),hr(this,Dt,yh).call(this))}while(m)}),Ae(this,hh,i=>{ye(this,Jr,void 0),!(i.name==="AbortError"||i.type==="aborted")&&hr(this,Dt,yh).call(this,lh(i))}),Ae(this,mh,i=>{typeof i.id=="string"&&ye(this,Ts,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,Lo)?q(this,Lo).origin:q(this,zn).origin,lastEventId:i.id||""});q(this,Fo)&&(!i.event||i.event==="message")&&q(this,Fo).call(this,s),this.dispatchEvent(s)}),Ae(this,gh,i=>{ye(this,Es,i)}),Ae(this,vh,()=>{ye(this,Uo,void 0),q(this,nt)===this.CONNECTING&&hr(this,Dt,fh).call(this)});try{if(e instanceof URL)ye(this,zn,e);else if(typeof e=="string")ye(this,zn,new URL(e,XF()));else throw new Error("Invalid URL")}catch{throw YF("An invalid or illegal string was specified")}ye(this,jo,Jc({onEvent:q(this,mh),onRetry:q(this,gh)})),ye(this,nt,this.CONNECTING),ye(this,Es,3e3),ye(this,Qc,(n=r?.fetch)!=null?n:globalThis.fetch),ye(this,Yc,(o=r?.withCredentials)!=null?o:!1),hr(this,Dt,fh).call(this)}get readyState(){return q(this,nt)}get url(){return q(this,zn).href}get withCredentials(){return q(this,Yc)}get onerror(){return q(this,qo)}set onerror(e){ye(this,qo,e)}get onmessage(){return q(this,Fo)}set onmessage(e){ye(this,Fo,e)}get onopen(){return q(this,xs)}set onopen(e){ye(this,xs,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,Uo)&&clearTimeout(q(this,Uo)),q(this,nt)!==this.CLOSED&&(q(this,Jr)&&q(this,Jr).abort(),ye(this,nt,this.CLOSED),ye(this,Jr,void 0))}};nt=new WeakMap,zn=new WeakMap,Lo=new WeakMap,Yc=new WeakMap,Qc=new WeakMap,Es=new WeakMap,Uo=new WeakMap,Ts=new WeakMap,Jr=new WeakMap,jo=new WeakMap,qo=new WeakMap,Fo=new WeakMap,xs=new WeakMap,Dt=new WeakSet,fh=function(){ye(this,nt,this.CONNECTING),ye(this,Jr,new AbortController),q(this,Qc)(q(this,zn),hr(this,Dt,wP).call(this)).then(q(this,ph)).catch(q(this,hh))},ph=new WeakMap,hh=new WeakMap,wP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ts)?{"Last-Event-ID":q(this,Ts)}:void 0},cache:"no-store",signal:(t=q(this,Jr))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},mh=new WeakMap,gh=new WeakMap,ks=function(t,e){var r;q(this,nt)!==this.CLOSED&&ye(this,nt,this.CLOSED);let n=new Xc("error",{code:e,message:t});(r=q(this,qo))==null||r.call(this,n),this.dispatchEvent(n)},yh=function(t,e){var r;if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.CONNECTING);let n=new Xc("error",{code:e,message:t});(r=q(this,qo))==null||r.call(this,n),this.dispatchEvent(n),ye(this,Uo,setTimeout(q(this,vh),q(this,Es)))},vh=new WeakMap,Nn.CONNECTING=0,Nn.OPEN=1,Nn.CLOSED=2;function XF(){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 Ho(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function eu(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Ho(e.headers),...Ho(n.headers)}:e.headers};return t(r,o)}:t}var Sh;Sh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function QF(t){return(await Sh).getRandomValues(new Uint8Array(t))}async function eU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await QF(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function tU(t){return await eU(t)}async function rU(t){let e=await(await Sh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function wh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await tU(t),r=await rU(e);return{code_verifier:e,code_challenge:r}}var Le=qw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:rb.custom,message:"URL must be parseable",fatal:!0}),Bd}).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"}),CP=ke({resource:y().url(),authorization_servers:P(Le).optional(),jwks_uri:y().url().optional(),scopes_supported:P(y()).optional(),bearer_methods_supported:P(y()).optional(),resource_signing_alg_values_supported:P(y()).optional(),resource_name:y().optional(),resource_documentation:y().optional(),resource_policy_uri:y().url().optional(),resource_tos_uri:y().url().optional(),tls_client_certificate_bound_access_tokens:ie().optional(),authorization_details_types_supported:P(y()).optional(),dpop_signing_alg_values_supported:P(y()).optional(),dpop_bound_access_tokens_required:ie().optional()}),bh=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,registration_endpoint:Le.optional(),scopes_supported:P(y()).optional(),response_types_supported:P(y()),response_modes_supported:P(y()).optional(),grant_types_supported:P(y()).optional(),token_endpoint_auth_methods_supported:P(y()).optional(),token_endpoint_auth_signing_alg_values_supported:P(y()).optional(),service_documentation:Le.optional(),revocation_endpoint:Le.optional(),revocation_endpoint_auth_methods_supported:P(y()).optional(),revocation_endpoint_auth_signing_alg_values_supported:P(y()).optional(),introspection_endpoint:y().optional(),introspection_endpoint_auth_methods_supported:P(y()).optional(),introspection_endpoint_auth_signing_alg_values_supported:P(y()).optional(),code_challenge_methods_supported:P(y()).optional(),client_id_metadata_document_supported:ie().optional()}),nU=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,userinfo_endpoint:Le.optional(),jwks_uri:Le,registration_endpoint:Le.optional(),scopes_supported:P(y()).optional(),response_types_supported:P(y()),response_modes_supported:P(y()).optional(),grant_types_supported:P(y()).optional(),acr_values_supported:P(y()).optional(),subject_types_supported:P(y()),id_token_signing_alg_values_supported:P(y()),id_token_encryption_alg_values_supported:P(y()).optional(),id_token_encryption_enc_values_supported:P(y()).optional(),userinfo_signing_alg_values_supported:P(y()).optional(),userinfo_encryption_alg_values_supported:P(y()).optional(),userinfo_encryption_enc_values_supported:P(y()).optional(),request_object_signing_alg_values_supported:P(y()).optional(),request_object_encryption_alg_values_supported:P(y()).optional(),request_object_encryption_enc_values_supported:P(y()).optional(),token_endpoint_auth_methods_supported:P(y()).optional(),token_endpoint_auth_signing_alg_values_supported:P(y()).optional(),display_values_supported:P(y()).optional(),claim_types_supported:P(y()).optional(),claims_supported:P(y()).optional(),service_documentation:y().optional(),claims_locales_supported:P(y()).optional(),ui_locales_supported:P(y()).optional(),claims_parameter_supported:ie().optional(),request_parameter_supported:ie().optional(),request_uri_parameter_supported:ie().optional(),require_request_uri_registration:ie().optional(),op_policy_uri:Le.optional(),op_tos_uri:Le.optional(),client_id_metadata_document_supported:ie().optional()}),PP=k({...nU.shape,...bh.pick({code_challenge_methods_supported:!0}).shape}),xP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:Ja.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),kP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),RP=Le.optional().or(E("").transform(()=>{})),oU=k({redirect_uris:P(Le),token_endpoint_auth_method:y().optional(),grant_types:P(y()).optional(),response_types:P(y()).optional(),client_name:y().optional(),client_uri:Le.optional(),logo_uri:RP,scope:y().optional(),contacts:P(y()).optional(),tos_uri:RP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Zw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),iU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),EP=oU.merge(iU),G3=k({error:y(),error_description:y().optional()}).strip(),Z3=k({token:y(),token_type_hint:y().optional()}).strip();function TP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function AP({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 be=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}},As=class extends be{};As.errorCode="invalid_request";var Dn=class extends be{};Dn.errorCode="invalid_client";var Ln=class extends be{};Ln.errorCode="invalid_grant";var jn=class extends be{};jn.errorCode="unauthorized_client";var Ms=class extends be{};Ms.errorCode="unsupported_grant_type";var $s=class extends be{};$s.errorCode="invalid_scope";var Is=class extends be{};Is.errorCode="access_denied";var mr=class extends be{};mr.errorCode="server_error";var Os=class extends be{};Os.errorCode="temporarily_unavailable";var zs=class extends be{};zs.errorCode="unsupported_response_type";var Ns=class extends be{};Ns.errorCode="unsupported_token_type";var Ds=class extends be{};Ds.errorCode="invalid_token";var Ls=class extends be{};Ls.errorCode="method_not_allowed";var js=class extends be{};js.errorCode="too_many_requests";var Fn=class extends be{};Fn.errorCode="invalid_client_metadata";var Fs=class extends be{};Fs.errorCode="insufficient_scope";var Us=class extends be{};Us.errorCode="invalid_target";var MP={[As.errorCode]:As,[Dn.errorCode]:Dn,[Ln.errorCode]:Ln,[jn.errorCode]:jn,[Ms.errorCode]:Ms,[$s.errorCode]:$s,[Is.errorCode]:Is,[mr.errorCode]:mr,[Os.errorCode]:Os,[zs.errorCode]:zs,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fn.errorCode]:Fn,[Fs.errorCode]:Fs,[Us.errorCode]:Us};var Ze=class extends Error{constructor(e){super(e??"Unauthorized")}};function sU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var Rh="code",Ch="S256";function aU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&sU(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 cU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":uU(o,i,r);return;case"client_secret_post":dU(o,i,n);return;case"none":lU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function uU(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function dU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function lU(t,e){e.set("client_id",t)}async function IP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=kP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=MP[o]||mr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new mr(o)}}async function gr(t,e){try{return await Ph(t,e)}catch(r){if(r instanceof Dn||r instanceof jn)return await t.invalidateCredentials?.("all"),await Ph(t,e);if(r instanceof Ln)return await t.invalidateCredentials?.("tokens"),await Ph(t,e);throw r}}async function Ph(t,{serverUrl:e,authorizationCode:r,scope:n,resourceMetadataUrl:o,fetchFn:i}){let s=await t.discoveryState?.(),a,c,u,d=o;if(!d&&s?.resourceMetadataUrl&&(d=new URL(s.resourceMetadataUrl)),s?.authorizationServerUrl){if(c=s.authorizationServerUrl,a=s.resourceMetadata,u=s.authorizationServerMetadata??await zP(c,{fetchFn:i}),!a)try{a=await OP(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 vU(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 pU(e,t,a),f=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,p=await Promise.resolve(t.clientInformation());if(!p){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let b=u?.client_id_metadata_document_supported===!0,x=t.clientMetadataUrl;if(x&&!fU(x))throw new Fn(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${x}`);if(b&&x)p={client_id:x},await t.saveClientInformation?.(p);else{if(!t.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let R=await RU(c,{metadata:u,clientMetadata:t.clientMetadata,scope:f,fetchFn:i});await t.saveClientInformation(R),p=R}}let m=!t.redirectUrl;if(r!==void 0||m){let b=await bU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}let h=await t.tokens();if(h?.refresh_token)try{let b=await wU(c,{metadata:u,clientInformation:p,refreshToken:h.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof be)||b instanceof mr))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 fU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function pU(t,e,r){let n=TP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!AP({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 Go(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=xh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=xh(t,"scope")||void 0,a=xh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function xh(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 OP(t,e,r=fetch){let n=await gU(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 CP.parse(await n.json())}async function kh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?kh(t,void 0,r):void 0;throw n}}function hU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function $P(t,e,r=fetch){return await kh(t,{"MCP-Protocol-Version":e},r)}function mU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function gU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??_o,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=hU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await $P(s,i,r);if(!n?.metadataUrl&&mU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await $P(c,i,r)}return a}function yU(t){let e=typeof t=="string"?new URL(t):t,r=e.pathname!=="/",n=[];if(!r)return n.push({url:new URL("/.well-known/oauth-authorization-server",e.origin),type:"oauth"}),n.push({url:new URL("/.well-known/openid-configuration",e.origin),type:"oidc"}),n;let o=e.pathname;return o.endsWith("/")&&(o=o.slice(0,-1)),n.push({url:new URL(`/.well-known/oauth-authorization-server${o}`,e.origin),type:"oauth"}),n.push({url:new URL(`/.well-known/openid-configuration${o}`,e.origin),type:"oidc"}),n.push({url:new URL(`${o}/.well-known/openid-configuration`,e.origin),type:"oidc"}),n}async function zP(t,{fetchFn:e=fetch,protocolVersion:r=_o}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=yU(t);for(let{url:i,type:s}of o){let a=await kh(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"?bh.parse(await a.json()):PP.parse(await a.json())}}}async function vU(t,e){let r,n;try{r=await OP(t,{resourceMetadataUrl:e?.resourceMetadataUrl},e?.fetchFn),r.authorization_servers&&r.authorization_servers.length>0&&(n=r.authorization_servers[0])}catch{}n||(n=String(new URL("/",t)));let o=await zP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function _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(Rh))throw new Error(`Incompatible auth server: does not support response type ${Rh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Ch))throw new Error(`Incompatible auth server: does not support code challenge method ${Ch}`)}else a=new URL("/authorize",t);let c=await wh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",Rh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Ch),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 SU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function NP(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=aU(n,d);cU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await IP(u);return xP.parse(await u.json())}async function wU(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 NP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function bU(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=SU(o,u,t.redirectUrl)}let c=await t.clientInformation();return NP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function RU(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 IP(s);return EP.parse(await s.json())}var qs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},tu=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=eu(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new Ze("No auth provider");let e;try{e=await gr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Ze;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Ho(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 Nn(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}=Go(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 qs(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=Fr.parse(JSON.parse(i.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(s)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new Ze("No auth provider");if(await gr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let i=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:s,scope:a}=Go(o);if(this._resourceMetadataUrl=s,this._scope=a,await gr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${i}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var xx=Ys(Cx(),1);import Dh from"node:process";import{PassThrough as XU}from"node:stream";var JU=10*1024*1024,nu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??JU}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
97
|
-
`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),
|
|
98
|
-
`}var QU=Dh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function iu(){let t={};for(let e of QU){let r=Dh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var ou=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new nu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new XU)}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,xx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...iu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Dh.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=Px(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Mx=Ys(Ax(),1);function $x(t){if(t)try{return Mx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var su=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=Jc({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 cq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Lt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},au=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=eu(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??cq}async _authThenStart(){if(!this._authProvider)throw new Ze("No auth provider");let e;try{e=await gr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Ze;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Ho(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 Lt(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 su({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:m}=await d.read();if(m)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let h=Fr.parse(JSON.parse(p.data));_n(h)&&(c=!0,i!==void 0&&(h.id=i)),this.onmessage?.(h)}catch(h){this.onerror?.(h)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new Ze("No auth provider");if(await gr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Ui(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 Lt(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:m,scope:h}=Go(a);if(this._resourceMetadataUrl=m,this._scope=h,await gr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:m,scope:h,error:g}=Go(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new Lt(403,"Server returned 403 after trying upscoping");if(h&&(this._scope=h),m&&(this._resourceMetadataUrl=m),this._lastUpscopingHeader=v??void 0,await gr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new Ze;return this.send(e)}}throw new Lt(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),pb(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=$x(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(),m=Array.isArray(p)?p.map(h=>Fr.parse(h)):[Fr.parse(p)];for(let h of m)this.onmessage?.(h)}else throw await a.body?.cancel(),new Lt(-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 Lt(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 Ix(t){if(!t.useShellInterpolation)return{command:t.command,args:t.args};let e=[t.command,...t.args].join(" ");return process.platform==="win32"?{command:"cmd.exe",args:["/c",e]}:{command:"/bin/sh",args:["-c",e]}}var dq={NO_UPDATE_NOTIFIER:"1",npm_config_update_notifier:"false",npm_config_loglevel:"silent",npm_config_fund:"false",npm_config_audit:"false",npm_config_yes:"true",CI:"1"};function Ox(t){return{...iu(),...dq,...t??{}}}function zx(){return iu()}var jh=class t extends ou{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];suppressStderr;constructor(e,r=!1){super(e),this.suppressStderr=r}async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){if(this.suppressStderr)return;this._lineBuffer+=e.toString();let r=this._lineBuffer.split(`
|
|
94
|
+
`,R),fe=-1;if(I!==-1&&ne!==-1?fe=I<ne?I:ne:I!==-1?I===S.length-1?fe=-1:fe=I:ne!==-1&&(fe=ne),fe===-1)break;v(S,R,fe),R=fe+1,S.charCodeAt(R-1)===QF&&S.charCodeAt(R)===SP&&R++}return S.slice(R)}function v(S,R,I){if(R===I){b();return}let ne=S.charCodeAt(R);if(wP(S,R,ne)){let br=S.charCodeAt(R+5)===Nn?R+6:R+5,Om=S.slice(br,I);d=l===0?Om:`${d}
|
|
95
|
+
${Om}`,l++;return}if(bP(S,R,ne)){f=S.slice(S.charCodeAt(R+6)===Nn?R+7:R+6,I)||void 0;return}if(ne===105&&S.charCodeAt(R+1)===100&&S.charCodeAt(R+2)===58){let br=S.slice(S.charCodeAt(R+3)===Nn?R+4:R+3,I);u=br.includes("\0")?void 0:br;return}if(ne===58){if(o){let br=S.slice(R,I);o(br.slice(S.charCodeAt(R+1)===Nn?2:1))}return}let fe=S.slice(R,I),Pe=fe.indexOf(":");if(Pe===-1){w(fe,"",fe);return}let sn=fe.slice(0,Pe),an=fe.charCodeAt(Pe+1)===Nn?2:1,lt=fe.slice(Pe+an);w(sn,lt,fe)}function w(S,R,I){switch(S){case"event":f=R||void 0;break;case"data":d=l===0?R:`${d}
|
|
96
|
+
${R}`,l++;break;case"id":u=R.includes("\0")?void 0:R;break;case"retry":/^\d+$/.test(R)?n(parseInt(R,10)):r(new ks(`Invalid \`retry\` value: "${R}"`,{type:"invalid-retry",value:R,line:I}));break;default:r(new ks(`Unknown field "${S.length>20?`${S.slice(0,20)}\u2026`:S}"`,{type:"unknown-field",field:S,value:R,line:I}));break}}function b(){l>0&&e({id:u,event:f,data:d}),u=void 0,d="",l=0,f=void 0}function x(S={}){if(S.consume&&s.length>0){let R=s.join("");v(R,0,R.length)}c=!0,u=void 0,d="",l=0,f=void 0,s.length=0,a=0,p=!1}return{feed:m,reset:x}}function wP(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 bP(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var eu=class extends Event{constructor(e,r){var n,o;super(e),this.code=(n=r?.code)!=null?n:void 0,this.message=(o=r?.message)!=null?o:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,r,n){return n(RP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(RP(this),r)}};function eU(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function mh(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(mh).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${mh(t.cause)}`:t.message:`${t}`}function RP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var PP=t=>{throw TypeError(t)},Rh=(t,e,r)=>e.has(t)||PP("Cannot "+r),q=(t,e,r)=>(Rh(t,e,"read from private field"),r?r.call(t):e.get(t)),Ae=(t,e,r)=>e.has(t)?PP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ye=(t,e,r,n)=>(Rh(t,e,"write to private field"),e.set(t,r),r),gr=(t,e,r)=>(Rh(t,e,"access private method"),r),nt,Dn,Fo,Qc,tu,As,Ho,Ms,Qr,Uo,Go,qo,Es,Dt,gh,yh,vh,CP,_h,Sh,Ts,wh,bh,Ln=class extends EventTarget{constructor(e,r){var n,o;super(),Ae(this,Dt),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,Ae(this,nt),Ae(this,Dn),Ae(this,Fo),Ae(this,Qc),Ae(this,tu),Ae(this,As),Ae(this,Ho),Ae(this,Ms,null),Ae(this,Qr),Ae(this,Uo),Ae(this,Go,null),Ae(this,qo,null),Ae(this,Es,null),Ae(this,yh,async i=>{var s;q(this,Uo).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){gr(this,Dt,Ts).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ye(this,Fo,new URL(i.url)):ye(this,Fo,void 0),u!==200){gr(this,Dt,Ts).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){gr(this,Dt,Ts).call(this,'Invalid content type, expected "text/event-stream"',u);return}if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.OPEN);let l=new Event("open");if((s=q(this,Es))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){gr(this,Dt,Ts).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),m=!0;do{let{done:h,value:g}=await p.read();g&&q(this,Uo).feed(f.decode(g,{stream:!h})),h&&(m=!1,q(this,Uo).reset(),gr(this,Dt,wh).call(this))}while(m)}),Ae(this,vh,i=>{ye(this,Qr,void 0),!(i.name==="AbortError"||i.type==="aborted")&&gr(this,Dt,wh).call(this,mh(i))}),Ae(this,_h,i=>{typeof i.id=="string"&&ye(this,Ms,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,Fo)?q(this,Fo).origin:q(this,Dn).origin,lastEventId:i.id||""});q(this,qo)&&(!i.event||i.event==="message")&&q(this,qo).call(this,s),this.dispatchEvent(s)}),Ae(this,Sh,i=>{ye(this,As,i)}),Ae(this,bh,()=>{ye(this,Ho,void 0),q(this,nt)===this.CONNECTING&&gr(this,Dt,gh).call(this)});try{if(e instanceof URL)ye(this,Dn,e);else if(typeof e=="string")ye(this,Dn,new URL(e,tU()));else throw new Error("Invalid URL")}catch{throw eU("An invalid or illegal string was specified")}ye(this,Uo,Xc({onEvent:q(this,_h),onRetry:q(this,Sh)})),ye(this,nt,this.CONNECTING),ye(this,As,3e3),ye(this,tu,(n=r?.fetch)!=null?n:globalThis.fetch),ye(this,Qc,(o=r?.withCredentials)!=null?o:!1),gr(this,Dt,gh).call(this)}get readyState(){return q(this,nt)}get url(){return q(this,Dn).href}get withCredentials(){return q(this,Qc)}get onerror(){return q(this,Go)}set onerror(e){ye(this,Go,e)}get onmessage(){return q(this,qo)}set onmessage(e){ye(this,qo,e)}get onopen(){return q(this,Es)}set onopen(e){ye(this,Es,e)}addEventListener(e,r,n){let o=r;super.addEventListener(e,o,n)}removeEventListener(e,r,n){let o=r;super.removeEventListener(e,o,n)}close(){q(this,Ho)&&clearTimeout(q(this,Ho)),q(this,nt)!==this.CLOSED&&(q(this,Qr)&&q(this,Qr).abort(),ye(this,nt,this.CLOSED),ye(this,Qr,void 0))}};nt=new WeakMap,Dn=new WeakMap,Fo=new WeakMap,Qc=new WeakMap,tu=new WeakMap,As=new WeakMap,Ho=new WeakMap,Ms=new WeakMap,Qr=new WeakMap,Uo=new WeakMap,Go=new WeakMap,qo=new WeakMap,Es=new WeakMap,Dt=new WeakSet,gh=function(){ye(this,nt,this.CONNECTING),ye(this,Qr,new AbortController),q(this,tu)(q(this,Dn),gr(this,Dt,CP).call(this)).then(q(this,yh)).catch(q(this,vh))},yh=new WeakMap,vh=new WeakMap,CP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ms)?{"Last-Event-ID":q(this,Ms)}:void 0},cache:"no-store",signal:(t=q(this,Qr))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},_h=new WeakMap,Sh=new WeakMap,Ts=function(t,e){var r;q(this,nt)!==this.CLOSED&&ye(this,nt,this.CLOSED);let n=new eu("error",{code:e,message:t});(r=q(this,Go))==null||r.call(this,n),this.dispatchEvent(n)},wh=function(t,e){var r;if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.CONNECTING);let n=new eu("error",{code:e,message:t});(r=q(this,Go))==null||r.call(this,n),this.dispatchEvent(n),ye(this,Ho,setTimeout(q(this,bh),q(this,As)))},bh=new WeakMap,Ln.CONNECTING=0,Ln.OPEN=1,Ln.CLOSED=2;function tU(){let t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}function Zo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function ru(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Zo(e.headers),...Zo(n.headers)}:e.headers};return t(r,o)}:t}var Ch;Ch=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function rU(t){return(await Ch).getRandomValues(new Uint8Array(t))}async function nU(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await rU(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function oU(t){return await nU(t)}async function iU(t){let e=await(await Ch).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Ph(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await oU(t),r=await iU(e);return{code_verifier:e,code_challenge:r}}var Le=Zw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:ib.custom,message:"URL must be parseable",fatal:!0}),Jd}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),kP=ke({resource:y().url(),authorization_servers:P(Le).optional(),jwks_uri:y().url().optional(),scopes_supported:P(y()).optional(),bearer_methods_supported:P(y()).optional(),resource_signing_alg_values_supported:P(y()).optional(),resource_name:y().optional(),resource_documentation:y().optional(),resource_policy_uri:y().url().optional(),resource_tos_uri:y().url().optional(),tls_client_certificate_bound_access_tokens:ie().optional(),authorization_details_types_supported:P(y()).optional(),dpop_signing_alg_values_supported:P(y()).optional(),dpop_bound_access_tokens_required:ie().optional()}),xh=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,registration_endpoint:Le.optional(),scopes_supported:P(y()).optional(),response_types_supported:P(y()),response_modes_supported:P(y()).optional(),grant_types_supported:P(y()).optional(),token_endpoint_auth_methods_supported:P(y()).optional(),token_endpoint_auth_signing_alg_values_supported:P(y()).optional(),service_documentation:Le.optional(),revocation_endpoint:Le.optional(),revocation_endpoint_auth_methods_supported:P(y()).optional(),revocation_endpoint_auth_signing_alg_values_supported:P(y()).optional(),introspection_endpoint:y().optional(),introspection_endpoint_auth_methods_supported:P(y()).optional(),introspection_endpoint_auth_signing_alg_values_supported:P(y()).optional(),code_challenge_methods_supported:P(y()).optional(),client_id_metadata_document_supported:ie().optional()}),sU=ke({issuer:y(),authorization_endpoint:Le,token_endpoint:Le,userinfo_endpoint:Le.optional(),jwks_uri:Le,registration_endpoint:Le.optional(),scopes_supported:P(y()).optional(),response_types_supported:P(y()),response_modes_supported:P(y()).optional(),grant_types_supported:P(y()).optional(),acr_values_supported:P(y()).optional(),subject_types_supported:P(y()),id_token_signing_alg_values_supported:P(y()),id_token_encryption_alg_values_supported:P(y()).optional(),id_token_encryption_enc_values_supported:P(y()).optional(),userinfo_signing_alg_values_supported:P(y()).optional(),userinfo_encryption_alg_values_supported:P(y()).optional(),userinfo_encryption_enc_values_supported:P(y()).optional(),request_object_signing_alg_values_supported:P(y()).optional(),request_object_encryption_alg_values_supported:P(y()).optional(),request_object_encryption_enc_values_supported:P(y()).optional(),token_endpoint_auth_methods_supported:P(y()).optional(),token_endpoint_auth_signing_alg_values_supported:P(y()).optional(),display_values_supported:P(y()).optional(),claim_types_supported:P(y()).optional(),claims_supported:P(y()).optional(),service_documentation:y().optional(),claims_locales_supported:P(y()).optional(),ui_locales_supported:P(y()).optional(),claims_parameter_supported:ie().optional(),request_parameter_supported:ie().optional(),request_uri_parameter_supported:ie().optional(),require_request_uri_registration:ie().optional(),op_policy_uri:Le.optional(),op_tos_uri:Le.optional(),client_id_metadata_document_supported:ie().optional()}),EP=k({...sU.shape,...xh.pick({code_challenge_methods_supported:!0}).shape}),TP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:Xa.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),AP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),xP=Le.optional().or(E("").transform(()=>{})),aU=k({redirect_uris:P(Le),token_endpoint_auth_method:y().optional(),grant_types:P(y()).optional(),response_types:P(y()).optional(),client_name:y().optional(),client_uri:Le.optional(),logo_uri:xP,scope:y().optional(),contacts:P(y()).optional(),tos_uri:xP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Vw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),cU=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),MP=aU.merge(cU),W3=k({error:y(),error_description:y().optional()}).strip(),V3=k({token:y(),token_type_hint:y().optional()}).strip();function $P(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function IP({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 be=class extends Error{constructor(e,r){super(e),this.errorUri=r,this.name=this.constructor.name}toResponseObject(){let e={error:this.errorCode,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}get errorCode(){return this.constructor.errorCode}},$s=class extends be{};$s.errorCode="invalid_request";var jn=class extends be{};jn.errorCode="invalid_client";var Fn=class extends be{};Fn.errorCode="invalid_grant";var Un=class extends be{};Un.errorCode="unauthorized_client";var Is=class extends be{};Is.errorCode="unsupported_grant_type";var Os=class extends be{};Os.errorCode="invalid_scope";var zs=class extends be{};zs.errorCode="access_denied";var yr=class extends be{};yr.errorCode="server_error";var Ns=class extends be{};Ns.errorCode="temporarily_unavailable";var Ds=class extends be{};Ds.errorCode="unsupported_response_type";var Ls=class extends be{};Ls.errorCode="unsupported_token_type";var js=class extends be{};js.errorCode="invalid_token";var Fs=class extends be{};Fs.errorCode="method_not_allowed";var Us=class extends be{};Us.errorCode="too_many_requests";var qn=class extends be{};qn.errorCode="invalid_client_metadata";var qs=class extends be{};qs.errorCode="insufficient_scope";var Hs=class extends be{};Hs.errorCode="invalid_target";var OP={[$s.errorCode]:$s,[jn.errorCode]:jn,[Fn.errorCode]:Fn,[Un.errorCode]:Un,[Is.errorCode]:Is,[Os.errorCode]:Os,[zs.errorCode]:zs,[yr.errorCode]:yr,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[Ls.errorCode]:Ls,[js.errorCode]:js,[Fs.errorCode]:Fs,[Us.errorCode]:Us,[qn.errorCode]:qn,[qs.errorCode]:qs,[Hs.errorCode]:Hs};var Ze=class extends Error{constructor(e){super(e??"Unauthorized")}};function uU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var kh="code",Eh="S256";function dU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&uU(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 lU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":fU(o,i,r);return;case"client_secret_post":pU(o,i,n);return;case"none":hU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function fU(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function pU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function hU(t,e){e.set("client_id",t)}async function NP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=AP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=OP[o]||yr;return new a(i||"",s)}catch(n){let o=`${e?`HTTP ${e}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new yr(o)}}async function vr(t,e){try{return await Th(t,e)}catch(r){if(r instanceof jn||r instanceof Un)return await t.invalidateCredentials?.("all"),await Th(t,e);if(r instanceof Fn)return await t.invalidateCredentials?.("tokens"),await Th(t,e);throw r}}async function Th(t,{serverUrl:e,authorizationCode:r,scope:n,resourceMetadataUrl:o,fetchFn:i}){let s=await t.discoveryState?.(),a,c,u,d=o;if(!d&&s?.resourceMetadataUrl&&(d=new URL(s.resourceMetadataUrl)),s?.authorizationServerUrl){if(c=s.authorizationServerUrl,a=s.resourceMetadata,u=s.authorizationServerMetadata??await LP(c,{fetchFn:i}),!a)try{a=await DP(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 wU(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 gU(e,t,a),f=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,p=await Promise.resolve(t.clientInformation());if(!p){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let b=u?.client_id_metadata_document_supported===!0,x=t.clientMetadataUrl;if(x&&!mU(x))throw new qn(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${x}`);if(b&&x)p={client_id:x},await t.saveClientInformation?.(p);else{if(!t.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");let R=await xU(c,{metadata:u,clientMetadata:t.clientMetadata,scope:f,fetchFn:i});await t.saveClientInformation(R),p=R}}let m=!t.redirectUrl;if(r!==void 0||m){let b=await PU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}let h=await t.tokens();if(h?.refresh_token)try{let b=await CU(c,{metadata:u,clientInformation:p,refreshToken:h.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof be)||b instanceof yr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await bU(c,{metadata:u,clientInformation:p,state:g,redirectUrl:t.redirectUrl,scope:f,resource:l});return await t.saveCodeVerifier(w),await t.redirectToAuthorization(v),"REDIRECT"}function mU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function gU(t,e,r){let n=$P(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!IP({requestedResource:n,configuredResource:r.resource}))throw new Error(`Protected resource ${r.resource} does not match expected ${n} (or origin)`);return new URL(r.resource)}}function Bo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=Ah(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=Ah(t,"scope")||void 0,a=Ah(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function Ah(t,e){let r=t.headers.get("WWW-Authenticate");if(!r)return null;let n=new RegExp(`${e}=(?:"([^"]+)"|([^\\s,]+))`),o=r.match(n);return o?o[1]||o[2]:null}async function DP(t,e,r=fetch){let n=await _U(t,"oauth-protected-resource",r,{protocolVersion:e?.protocolVersion,metadataUrl:e?.resourceMetadataUrl});if(!n||n.status===404)throw await n?.body?.cancel(),new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!n.ok)throw await n.body?.cancel(),new Error(`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`);return kP.parse(await n.json())}async function Mh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Mh(t,void 0,r):void 0;throw n}}function yU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function zP(t,e,r=fetch){return await Mh(t,{"MCP-Protocol-Version":e},r)}function vU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function _U(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??wo,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=yU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await zP(s,i,r);if(!n?.metadataUrl&&vU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await zP(c,i,r)}return a}function SU(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 LP(t,{fetchFn:e=fetch,protocolVersion:r=wo}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=SU(t);for(let{url:i,type:s}of o){let a=await Mh(i,n,e);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw new Error(`HTTP ${a.status} trying to load ${s==="oauth"?"OAuth":"OpenID provider"} metadata from ${i}`)}return s==="oauth"?xh.parse(await a.json()):EP.parse(await a.json())}}}async function wU(t,e){let r,n;try{r=await DP(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 LP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function bU(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:i,resource:s}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(kh))throw new Error(`Incompatible auth server: does not support response type ${kh}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Eh))throw new Error(`Incompatible auth server: does not support code challenge method ${Eh}`)}else a=new URL("/authorize",t);let c=await Ph(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",kh),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Eh),a.searchParams.set("redirect_uri",String(n)),i&&a.searchParams.set("state",i),o&&a.searchParams.set("scope",o),o?.includes("offline_access")&&a.searchParams.append("prompt","consent"),s&&a.searchParams.set("resource",s.href),{authorizationUrl:a,codeVerifier:u}}function RU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function jP(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=dU(n,d);lU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await NP(u);return TP.parse(await u.json())}async function CU(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 jP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function PU(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=RU(o,u,t.redirectUrl)}let c=await t.clientInformation();return jP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function xU(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 NP(s);return MP.parse(await s.json())}var Gs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},nu=class{constructor(e,r){this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=r?.eventSourceInit,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=ru(r?.fetch,r?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new Ze("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Ze;return await this._startOrAuth()}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Zo(this._requestInit?.headers);return new Headers({...e,...r})}_startOrAuth(){let e=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((r,n)=>{this._eventSource=new Ln(this._url.href,{...this._eventSourceInit,fetch:async(o,i)=>{let s=await this._commonHeaders();s.set("Accept","text/event-stream");let a=await e(o,{...i,headers:s});if(a.status===401&&a.headers.has("www-authenticate")){let{resourceMetadataUrl:c,scope:u}=Bo(a);this._resourceMetadataUrl=c,this._scope=u}return a}}),this._abortController=new AbortController,this._eventSource.onerror=o=>{if(o.code===401&&this._authProvider){this._authThenStart().then(r,n);return}let i=new Gs(o.code,o.message,o);n(i),this.onerror?.(i)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",o=>{let i=o;try{if(this._endpoint=new URL(i.data,this._url),this._endpoint.origin!==this._url.origin)throw new Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch(s){n(s),this.onerror?.(s),this.close();return}r()}),this._eventSource.onmessage=o=>{let i=o,s;try{s=Hr.parse(JSON.parse(i.data))}catch(a){this.onerror?.(a);return}this.onmessage?.(s)}})}async start(){if(this._eventSource)throw new Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(e){if(!this._authProvider)throw new Ze("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(e){if(!this._endpoint)throw new Error("Not connected");try{let r=await this._commonHeaders();r.set("content-type","application/json");let n={...this._requestInit,method:"POST",headers:r,body:JSON.stringify(e),signal:this._abortController?.signal},o=await(this._fetch??fetch)(this._endpoint,n);if(!o.ok){let i=await o.text().catch(()=>null);if(o.status===401&&this._authProvider){let{resourceMetadataUrl:s,scope:a}=Bo(o);if(this._resourceMetadataUrl=s,this._scope=a,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze;return this.send(e)}throw new Error(`Error POSTing to endpoint (HTTP ${o.status}): ${i}`)}await o.body?.cancel()}catch(r){throw this.onerror?.(r),r}}setProtocolVersion(e){this._protocolVersion=e}};var Tx=Xs(kx(),1);import Uh from"node:process";import{PassThrough as tq}from"node:stream";var QU=10*1024*1024,iu=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??QU}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
97
|
+
`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),eq(r)}clear(){this._buffer=void 0}};function eq(t){return Hr.parse(JSON.parse(t))}function Ex(t){return JSON.stringify(t)+`
|
|
98
|
+
`}var rq=Uh.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function au(){let t={};for(let e of rq){let r=Uh.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var su=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new iu({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new tq)}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,Tx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...au(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Uh.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{try{this._readBuffer.append(n),this.processReadBuffer()}catch(o){this.onerror?.(o),this.close().catch(()=>{})}}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=Ex(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Ox=Xs(Ix(),1);function zx(t){if(t)try{return Ox.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var cu=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=Xc({onEvent:a=>{s.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&s.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(s){i.feed(s)}})}};var lq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Lt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},uu=class{constructor(e,r){this._hasCompletedAuthFlow=!1,this._url=e,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=r?.requestInit,this._authProvider=r?.authProvider,this._fetch=r?.fetch,this._fetchWithInit=ru(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??lq}async _authThenStart(){if(!this._authProvider)throw new Ze("No auth provider");let e;try{e=await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(r){throw this.onerror?.(r),r}if(e!=="AUTHORIZED")throw new Ze;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let e={};if(this._authProvider){let n=await this._authProvider.tokens();n&&(e.Authorization=`Bearer ${n.access_token}`)}this._sessionId&&(e["mcp-session-id"]=this._sessionId),this._protocolVersion&&(e["mcp-protocol-version"]=this._protocolVersion);let r=Zo(this._requestInit?.headers);return new Headers({...e,...r})}async _startOrAuthSse(e){let{resumptionToken:r}=e;try{let n=await this._commonHeaders();n.set("Accept","text/event-stream"),r&&n.set("last-event-id",r);let o=await(this._fetch??fetch)(this._url,{method:"GET",headers:n,signal:this._abortController?.signal});if(!o.ok){if(await o.body?.cancel(),o.status===401&&this._authProvider)return await this._authThenStart();if(o.status===405)return;throw new Lt(o.status,`Failed to open SSE stream: ${o.statusText}`)}this._handleSseStream(o.body,e,!0)}catch(n){throw this.onerror?.(n),n}}_getNextReconnectionDelay(e){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let r=this._reconnectionOptions.initialReconnectionDelay,n=this._reconnectionOptions.reconnectionDelayGrowFactor,o=this._reconnectionOptions.maxReconnectionDelay;return Math.min(r*Math.pow(n,e),o)}_scheduleReconnection(e,r=0){let n=this._reconnectionOptions.maxRetries;if(r>=n){this.onerror?.(new Error(`Maximum reconnection attempts (${n}) exceeded.`));return}let o=this._getNextReconnectionDelay(r);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(e).catch(i=>{this.onerror?.(new Error(`Failed to reconnect SSE stream: ${i instanceof Error?i.message:String(i)}`)),this._scheduleReconnection(e,r+1)})},o)}_handleSseStream(e,r,n){if(!e)return;let{onresumptiontoken:o,replayMessageId:i}=r,s,a=!1,c=!1;(async()=>{try{let d=e.pipeThrough(new TextDecoderStream).pipeThrough(new cu({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:m}=await d.read();if(m)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let h=Hr.parse(JSON.parse(p.data));wn(h)&&(c=!0,i!==void 0&&(h.id=i)),this.onmessage?.(h)}catch(h){this.onerror?.(h)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new Ze("No auth provider");if(await vr(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(e,r){try{let{resumptionToken:n,onresumptiontoken:o}=r||{};if(n){this._startOrAuthSse({resumptionToken:n,replayMessageId:Hi(e)?e.id:void 0}).catch(p=>this.onerror?.(p));return}let i=await this._commonHeaders();i.set("content-type","application/json"),i.set("accept","application/json, text/event-stream");let s={...this._requestInit,method:"POST",headers:i,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,s),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let p=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new Lt(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:m,scope:h}=Bo(a);if(this._resourceMetadataUrl=m,this._scope=h,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new Ze;return this._hasCompletedAuthFlow=!0,this.send(e)}if(a.status===403&&this._authProvider){let{resourceMetadataUrl:m,scope:h,error:g}=Bo(a);if(g==="insufficient_scope"){let v=a.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===v)throw new Lt(403,"Server returned 403 after trying upscoping");if(h&&(this._scope=h),m&&(this._resourceMetadataUrl=m),this._lastUpscopingHeader=v??void 0,await vr(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new Ze;return this.send(e)}}throw new Lt(a.status,`Error POSTing to endpoint: ${p}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,a.status===202){await a.body?.cancel(),gb(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=zx(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(),m=Array.isArray(p)?p.map(h=>Hr.parse(h)):[Hr.parse(p)];for(let h of m)this.onmessage?.(h)}else throw await a.body?.cancel(),new Lt(-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 Lt(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 Nx(t){if(!t.useShellInterpolation)return{command:t.command,args:t.args};let e=[t.command,...t.args].join(" ");return process.platform==="win32"?{command:"cmd.exe",args:["/c",e]}:{command:"/bin/sh",args:["-c",e]}}var pq={NO_UPDATE_NOTIFIER:"1",npm_config_update_notifier:"false",npm_config_loglevel:"silent",npm_config_fund:"false",npm_config_audit:"false",npm_config_yes:"true",CI:"1"};function Dx(t){return{...au(),...pq,...t??{}}}function Lx(){return au()}var Hh=class t extends su{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];suppressStderr;constructor(e,r=!1){super(e),this.suppressStderr=r}async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){if(this.suppressStderr)return;this._lineBuffer+=e.toString();let r=this._lineBuffer.split(`
|
|
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
|
|
101
|
-
`).map(i=>i.trim()).filter(i=>i.length>0),o=Cq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var xq=6e5,kq=18e5,Vx=2147483647,Eq=3e4,Kx=1e4,ek=[250,1e3,2e3],qn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Hs=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Tq=250,Jx=3,Aq=[200,500];function Mq(t){for(let e of Object.values(t))if(Ir(e))return!0;return!1}function Gh(t){let e=new Set;for(let r of t.matchAll(Ci))e.add(Ta(r[0]));return[...e].sort()}function Zh(t){return[...new Set(t)].sort()}function Yx(t,e){return jy(e.map(r=>t?.[r]??"missing"))}function $q({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Zh([...e&&t?Pi(t):[],...n&&r?Gh(r):[],...o.flatMap(Gh)])}var cu="${augmentToken}";function Iq(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 Oq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var tk="(unknown uri)",Bh="unknown",Xx=/=+$/,zq=/\s+/g,Nq=/[-_]/g,Dq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Hn(t,e){return typeof t=="string"?t:e}function rk(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Lq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function jq(t){let e=t.replace(zq,"").replace(Nq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(Xx,"");if(r.toString("base64").replace(Xx,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function nk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Fq(t){let e=nk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Hn(e.uri,tk),n=Hn(e.mimeType,Bh);if(typeof e.blob=="string"&&Lq(n)){let i=jq(e.blob);if(i!==void 0)return i}let o=rk(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Uq(t){let e=Hn(t.type,"unknown");if(e==="resource")return Fq(t);if(e==="audio"){let r=Hn(t.mimeType,Bh),n=rk(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Hn(t.uri,tk),n=Hn(t.name,""),o=Hn(t.mimeType,Bh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function qq(t){if(t.type!=="resource")return;let e=nk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Dq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function Hq(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=qq(t);return e||{type:"text",text:Uq(t)}}function Gq(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(Hq(n))}return e}function Zq(t){return Ay(t,_q)}function ok(t,e){let r=Gq(t);if(r.length===0){let o=Zq(e);o!==void 0&&r.push({type:"text",text:o})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function Bq(t,e){let r=ok(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 ik=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),Wq=new Set([502,503,504]),Gs=ek.length+1,Vq=2;function Kq(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 Jq(t){if(Ct(t)||Hh(t)||t instanceof mt)return;let e=t?.cause?.code;if(typeof e=="string")return ik.has(e)?{totalAttempts:Gs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:Vq}:Wq.has(r)?{totalAttempts:Gs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Gs}:void 0}var Yq=80,Xq=10,Qq=/[^a-zA-Z0-9_.()-]/g,eH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportClosedError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function uu(t){return t.replace(Qq,"_").slice(0,Yq)||"unknown"}function tH(t){let e=Kq(t);if(e!==void 0&&(/^\d{3}$/.test(e)||ik.has(e)))return e}function Be(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=eH.has(e)?e:"Error",n=tH(t);return n===void 0?r:`${r}(${n})`}function rH(t,e,r){return t instanceof mt?new mt(uu(t.serverName),t.missingKeys.slice(0,Xq).map(uu),void 0,t.reason).message:t instanceof Un?t.message:`MCP ${r} ${e} failed (${Be(t)})`}function Wo(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:uu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var du=class extends Error{operation="transport";transport;kind;constructor(e,r){super(`MCP ${e} transport ${r}`),this.transport=e,this.kind=r}},lu=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_tools=[];_connectPromise;_connectStartedAt;_refreshPromise;_refreshPersisting=!1;_disposing=!1;_disposed=!1;_resolvedEnv;_resolvedHeaders;_resolvedCommand;_resolvedArgs;onStateChange;_lastEmittedState;_activeTransport;_reinitializingPromise;_inFlightCalls=new Set;_wedgeRecoveryOwners=new Set;_wedgePending=!1;_wedgeRequired=!1;_heartbeatTimer;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;_suppressStdioDiagnostics;_toolErrorRedactor;constructor(e,r){this._config=e,this._targetAuth=ee().targetMaterialStore?.auth(e),this._suppressStdioDiagnostics=e.type==="stdio"&&this._targetAuth?.credential!==void 0,this._hostedCredentialProvenance=r?Object.freeze({...r}):void 0,this.name=e.name,this._status=e.disabled?"disabled":"initializing"}_emitState(e,r){if(e!==this._lastEmittedState){this._lastEmittedState=e;try{this.onStateChange?.(e,r)}catch{}}}get targetCredentialProvenance(){return this._targetAuth?{credential:this._targetAuth.credential}:void 0}get status(){return this._status}get config(){return this._config}get hostedCredentialProvenance(){return this._hostedCredentialProvenance}get lastError(){return this._lastError}get suppressesProviderDiagnostics(){return this._suppressStdioDiagnostics}get connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._suppressStdioDiagnostics?[]:this._stdioTransport?.getLogHistory().map(e=>Gd(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{Y.warn(`MCP server "${this.name}" connect failed (${Be(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=this._connectFailureMessage(r,"connect"),o=this._config.type==="stdio"&&!this._suppressStdioDiagnostics&&!Ct(r)?Gd(Pq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Be(r))}}async _connectWithRetries(){let e=Gs,r={available:!0};for(let n=1;n<=Gs;n++)try{let o=await this._attemptConnect(r);return n>1&&Y.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=Jq(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=(ek[r-1]??0)+Math.floor(Math.random()*(Tq+1));Y.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Be(e)}; retrying in ${i}ms`),await ln(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 Ct(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 qn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Fx();this._client=i;let s;try{if(await Uh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Ux,()=>{Y.debug(`MCP server "${this.name}" sent tools/list_changed; refreshing tools`),this._refreshTools()});let a=await this._listToolsWithAuthRetry(e);if(this._disposed)return await this._closeFailedInitialization(i,n),o;this._tools=this._safeTools(a.tools??[]),this._status="success",this._lastError=void 0,this._emitState("connected"),this._wireLivenessHandlers(),this._startHeartbeat();let c=ee();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&it(c,this.name),Y.info(`MCP server "${this.name}" connected (${this._tools.length} tool(s))`),o}catch(a){throw await this._closeFailedInitialization(i,n),s??a}}async _closeFailedInitialization(e,r){if(this._client===e){this._client=void 0,this._activeTransport===r&&(this._activeTransport=void 0);try{await e.close()}catch(n){Y.debug(`MCP server "${this.name}" close after failed connect attempt (${Be(n)})`)}}}_connectFailureMessage(e,r){return this._suppressStdioDiagnostics?"MCP stdio connection failed; provider diagnostics are suppressed to protect credentials":rH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof mt){this._status="failed";let o=ee();ri(o,this.name,e.reason,rr(o,this.name,this._config.id))}else if(e instanceof Hs||e instanceof qn)this._status="failed";else if(Ct(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(Ct(e)){this._status="auth_required";let o=ee(),i=o.servers.get(this.name);(i===void 0||i===this)&&o.tokens.markAuthRequired(this.name)}else{this._status="failed";let o=this._connectFailureMessage(e,r);Ea(Wo(o,Be(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=ee().targetMaterialStore;if(!this._targetAuth&&(r?.has(e.name)||e.id&&r?.has(e.id)))throw new Error("MCP target provenance is unavailable");switch(this._targetAuth?.headers(),e.type){case"stdio":{let n=Ix({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Ox(this._resolvedEnv??e.env);return Nx({command:n.command,args:n.args,env:o,cwd:e.cwd,...this._suppressStdioDiagnostics?{suppressStderr:!0}:{}})}case"http":return this._createHttpTransport(e.url,this._resolvedHeaders??e.headers??{});case"sse":return jx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Lx(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?Mq(r):!1,o=e.type==="stdio"&&Ir(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Ir);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!Ly(a)){let u=$q({source:r,sourceHasSecretRef:n,command:e.type==="stdio"?e.command:void 0,commandHasSecretRef:o,args:i});throw new mt(this.name,u)}let c=this._targetAuth?.getSecret??Ny(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 Uy({configEnv:e,localEnv:n&&!this._targetAuth?zx():{},getSecret:s})}catch(c){throw Y.error(`MCP server "${this.name}" secret resolution failed (${Be(c)})`),new mt(this.name,Pi(e),c,"transient")}let a=Zh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new mt(this.name,a,void 0,Yx(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=Ey(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await qy(e,r,n)}catch(s){throw Y.error(`MCP server "${this.name}" command secret resolution failed (${Be(s)})`),new mt(this.name,Gh(e),s,"transient")}let i=Zh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new mt(this.name,i,void 0,Yx(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(cu)))return;let o;if(Iq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${cu} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${cu} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Oq(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(cu,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=ee();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?Y.error(i):Y.warn(i)}_usableToken(){let e=ee();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!ft(n,this._config)))return r}_buildAuthHeaders(){if(this._targetAuth)return this._targetAuth.headers();let e=this._usableToken();return e?.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{}}hasRefreshEligibleOAuthCredential(){let{config:e}=this;if(e.type!=="http"&&e.type!=="sse"||e.disabled||this._hostedCredentialProvenance!==void 0||!this._usableToken())return!1;if(e.auth==="oauth")return!0;let r=ee();return r.tokens.hasCredentialIdentity?.(this.name,qt(r,this))===!0}async _maybeProactiveRefresh(){let e=ee(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,qt(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!hd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():yi(i)&&e.tokens.markAuthRequired(this.name)))}refreshTokenIfPossible(){return this._refreshTokenDeduped()}getRefreshInFlight(){return this._refreshPromise}_refreshTokenDeduped(){if(this._disposing||this._disposed)return Promise.resolve({kind:"transient_failure"});let e=ee(),r=e.refreshes.get(this.name);if(r)return r.then(a=>a??{kind:"refreshed"});let n={state:e,tokenStore:e.tokens,serverGeneration:e.serverGenerations.get(this.name)??0,configRevision:e.configRevisions.get(this.name)??0,credential:e.credentialRevisions.get(this.name),localRefreshEnabled:e.shouldProactivelyRefreshTokens,failureScope:rr(e,this.name,this._config.id),token:this._usableToken(),hostWasUntracked:e.servers.get(this.name)===void 0},o=JSON.stringify([this.name,n.serverGeneration,n.configRevision,n.credential?.domain??null,n.credential?.revision??null]),i=e.refreshes.get(o);if(i)return i.then(a=>a??{kind:"refreshed"});let s=this._performTokenRefresh(n).finally(()=>{this._refreshPersisting=!1,e.refreshes.get(o)===s&&e.refreshes.delete(o),this._refreshPromise===s&&(this._refreshPromise=void 0)});return this._refreshPromise=s,e.refreshes.set(o,s),s}_ownsRefresh(e){let{state:r}=e,n=r.credentialRevisions.get(this.name),o=N(r,this.name)?.retirement?.incumbent.host,i=r.servers.get(this.name)===this||this._refreshPersisting&&o===this||e.hostWasUntracked&&r.servers.get(this.name)===void 0;return(!this._disposing||this._refreshPersisting)&&i&&(r.serverGenerations.get(this.name)??0)===e.serverGeneration&&(r.configRevisions.get(this.name)??0)===e.configRevision&&this._ownsRefreshCredential(e,n)&&(e.localRefreshEnabled===r.shouldProactivelyRefreshTokens||this._refreshPersisting)}_ownsRefreshCredential(e,r){return e.state.tokens===e.tokenStore&&e.tokenStore.get(this.name)===e.token&&r?.domain===e.credential?.domain&&r?.revision===e.credential?.revision}async _restoreAfterSupersededRefresh(e,r,n,o){let i=e.state.servers.get(this.name),s=e.state.tokens,a=s.get(this.name),c=e.state.credentialRevisions.get(this.name);if(s!==e.tokenStore||!i||!a||!ft(this._config,i.config))return;let u=qt(e.state,i),d=n===void 0&&u===void 0||Cr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),on({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||!Cr(qt(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;on({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&D(f,e.state)}catch{Y.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&gd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&ri(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),Y.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${Be(e)})`),n&&o?{kind:"terminal_failure"}:{kind:"transient_failure"}}async _performTokenRefresh(e){if(!e.localRefreshEnabled)return{kind:"transient_failure"};if(!e.token?.refreshToken)return this._ownsRefresh(e)?(e.state.tokens.markAuthRequired(this.name),ri(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=qt(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await yd(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),on({state:e.state,name:this.name,revision:i}),it(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&D(s,e.state),Y.debug(`MCP server "${this.name}" token refreshed`),{kind:"refreshed"}}catch(r){return this._handleRefreshFailure(r,e)}}_isSessionExpiredError(e){return this._config.type!=="http"||this._activeTransport?.sessionId===void 0?!1:Hh(e)}_reinitializeSession(){return this._reinitializingPromise===void 0&&(this._reinitializingPromise=this._doReinitializeSession().finally(()=>{this._reinitializingPromise=void 0})),this._reinitializingPromise}async _doReinitializeSession(){if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);if(this._config.type!=="http")throw new Error("Session re-initialization is only supported for Streamable HTTP servers");await this._client.close();let e=this._createHttpTransport(this._config.url,this._resolvedHeaders??this._config.headers??{});try{await this._client.connect(e)}catch(r){throw this._recordConnectFailure(r,"reinit"),r}Y.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e){if(this._config.type!=="http")return e();try{return await e()}catch(r){let n=this._isSessionExpiredError(r),o=this._reinitializingPromise!==void 0;if(!(n||o))throw r;Y.info(n?`MCP server "${this.name}" returned 404 (session expired); re-initializing and retrying`:`MCP server "${this.name}" call interrupted by a concurrent re-initialization; retrying once`);try{await this._reinitializeSession()}catch(i){throw Y.error(`MCP server "${this.name}" session re-initialization failed (${Be(i)})`),bq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new qn}async _withAuthRetry(e,r,n){let o=this._config,i=ee(),s=rr(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),Uh({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||!Ct(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Hs;if(this._hostedCredentialProvenance!==void 0)throw new qn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;Y.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let m=a?.failure??p;throw Ct(m)&&this._markAuthRequired(m,s),m}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=ee();ri(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Be(e)),Y.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed(new du(this._config.type,"closed"))},e.onerror=()=>{this._handleTransportClosed(new du(this._config.type,"error"))})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},Eq),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=ee(),r=rr(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=Jx&&n.outcome==="transient";s++)await ln(Aq[s-2]??0),n=await this._runProbe();let o=rr(e,this.name,this._config.id),i=o.serverGeneration===r.serverGeneration&&o.mcpConfigId===r.mcpConfigId&&o.credentialRevision===r.credentialRevision&&o.credentialRevisionDomain===r.credentialRevisionDomain;return i&&n.outcome==="alive"&&it(e,this.name,r),i&&(n.outcome==="alive"||n.outcome==="authFailure")?this._lastProbeResult=n:n.outcome==="inconclusive"?Y.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&Y.debug(`MCP server "${this.name}" startup verification ping remained transient after ${Jx} 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:Kx})},"ping",{preserveAuthErrorOnRefreshUnavailable:!0}),{ok:!0,outcome:"alive"}}catch(r){let n=this._classifyProbeError(r,e);if(n==="alive")return{ok:!0,outcome:"alive"};let o=`MCP startup verification failed (${Be(r)})`,i=`MCP server "${this.name}" failed startup verification ping (${n}): ${o}`;return n==="transient"?Y.debug(i):Y.warn(i),{ok:!1,outcome:n,error:o,isAuthError:n==="authFailure"}}}_classifyProbeError(e,r){return r||!this._client||this._disposed||this._reinitializingPromise!==void 0?"transient":Hx(e)||qh(e)?"alive":Ct(e)?"authFailure":Gx(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:Kx})}catch(r){if(this._reinitializingPromise||this._disposed||qh(r))return;Y.warn(`MCP server "${this.name}" failed liveness ping; in-flight tool calls are treated as wedged`),this._failInFlightCalls(new Error(`MCP server "${this.name}" is unresponsive (liveness ping failed)`))}}_handleTransportClosed(e){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(e))}_wedgeRecoveryOwnership(e){let r=e.failure;return Ct(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&&!Ct(n)&&(this._wedgeRequired=!0),this._wedgeRecoveryOwners.size!==0))return!1;let o=this._wedgePending&&this._wedgeRequired;return this._wedgePending=!1,this._wedgeRequired=!1,o}_failInFlightCalls(e,r=!0){let n=[...this._inFlightCalls].filter(c=>!c.livenessRejected);if(n.length===0)return;if(!r){for(let c of n)c.livenessRejected=!0,c.reject(e);Y.warn(`MCP server "${this.name}" failing ${n.length} in-flight tool call(s)`);return}let o=n.map(c=>({call:c,state:this._wedgeRecoveryOwnership(c)})),i=o.some(({state:c})=>c==="recoverable"),s=!1;for(let{call:c,state:u}of o)u==="recoverable"||u==="owned"&&i||(c.livenessRejected=!0,s=!0,c.reject(c.failure??e));let a=n.filter(c=>c.livenessRejected).length;Y.warn(`MCP server "${this.name}" failing ${a} in-flight tool call(s)`),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=s):s&&this.onWedged?.()}_listToolsWithAuthRetry(e){return this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.listTools()},"list_tools",{startupAuthRefreshBudget:e})}async _refreshTools(){if(!(this._disposed||this._status!=="success"||!this._client))try{let e=await this._listToolsWithAuthRetry();if(this._disposed)return;let r=this._safeTools(e.tools??[]),n=!mq(this._tools,r);if(this._tools=r,n){Y.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){Y.warn(`MCP server "${this.name}" onToolsChanged handler threw (${Be(o)})`)}}}catch(e){Y.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Be(e)}), keeping cached tools`)}}_safeTools(e){return this._suppressStdioDiagnostics?this._toolErrorRedactor?e.filter(r=>JSON.stringify(this._toolErrorRedactor?.value(r))===JSON.stringify(r)):[]:e}listTools(){return this._tools}async callTool(e,r,n){if(this._disposing||this._disposed)throw new Error(`MCP server "${this.name}" is being disposed`);if(this._status!=="success"||!this._client)throw new Error(`MCP server "${this.name}" is not connected (status: ${this._status})`);if(this._config.timeoutMs!==void 0&&this._config.timeoutMs>Vx)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${Vx}.`);let o=this._toolErrorRedactor,s={timeout:this._config.timeoutMs??xq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??kq,onprogress:l=>{this._suppressStdioDiagnostics||Y.debug(`MCP server "${this.name}" tool "${e}" progress: ${l.progress}${l.total===void 0?"":`/${l.total}`}${l.message?` - ${l.message}`:""}`)}},a,c=new Promise((l,f)=>{a={reject:f,livenessRejected:!1,sessionRecoveryOwned:!1}});c.catch(()=>{}),a&&this._inFlightCalls.add(a);let d=this._withSessionRetry(()=>this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.callTool({name:e,arguments:r??{}},qx,s)},"tool_call",{call:a})).then(l=>(a&&this._settleInFlightCall(a,!0,void 0),l),l=>{throw a&&this._settleInFlightCall(a,!1,l),l});try{let l=await Promise.race([d,c]);if(this._suppressStdioDiagnostics&&l.isError===!0)return Bq({content:l.content,structuredContent:l.structuredContent},o);let f=ok(l.content,l.structuredContent);return{isError:l.isError===!0,content:f.content,rawItemCount:f.rawItemCount}}catch(l){return(n?.aborted||l instanceof Error&&l.name==="AbortError")&&this._throwCallCancellation(l),this._reportAndThrowToolError(l,e)}finally{a&&!this._wedgeRecoveryOwners.has(a)&&(a.failure=void 0,this._inFlightCalls.delete(a))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Wo("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(this._suppressStdioDiagnostics){let c=Wo("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||Ea(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof qn||e instanceof Hs)throw e;if(Ct(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=uu(r),i=Be(e),s=Zx(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 Rq(e)||Ea(Wo(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Wo(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=Wo("MCP stdio close failed","Error");if(Y.debug(o.message),e?.strict)throw o;return}if(Y.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var sk=oH.child({prefix:"pi-mcp"}),iH=3,sH=6e4;function aH(t,e){let r=Date.now(),n=r-sH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=iH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function ak(t){dn(t),da(t)}async function cH(t,e,r){if(!aH(e,t)){sk.warn(`MCP server "${t}" automatic restart rate-limited`);return}sk.warn(`MCP server "${t}" wedged; recycling transport`),await Yr(t,e,r)}function fu(t,e,r){if(uH(e)){ak(t),D(t,e);return}od(t,r),Qn(e)&&ak(t),D(t,e)}function uH(t){return di()||t.toolSearchLatched}function er(t,e,r){return qu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function Wh(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,it(t,e),t.authRefreshNeededReportKeys.delete(e),r}function dH(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&&Bm(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 Vh(t){let{state:e,config:r,generation:n}=t;return new lu(r,dH({state:e,config:r,hostGeneration:n}))}function We(t,e,r="base"){t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map;let o=Math.max(t.configRevisions.get(e)??0,t.configDesiredRevisions.get(e)??0)+1;return t.configDesiredRevisions.set(e,o),t.configDesiredSources.set(e,r),o}function Kh(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 Jh(t,e,r){return t.configDesiredRevisions.get(e)===r}function ck(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function Yh(t,e,r,n){t.onStateChange=(a,c)=>{if(!er(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(nH,u)},t.onWedged=()=>{if(!er(t,e,r))return;let a=r.currentLoad?.latestPi??n;cH(t.name,r,a)};let o=t.hostedCredentialProvenance,i=t.targetCredentialProvenance?.credential,s;i&&(t.config.type==="http"||t.config.type==="sse")&&t.config.auth==="oauth"?s={serverGeneration:e,mcpConfigId:t.config.id,credentialRevision:i.revision,credentialRevisionDomain:i.domain}:o?.kind==="accepted"&&o.hostedAccessTokenOnly&&(s={serverGeneration:o.hostGeneration,mcpConfigId:o.configId,credentialRevision:o.credentialRevision,credentialRevisionDomain:o.credentialRevisionDomain}),t.onAuthRefreshNeeded=()=>{if(!er(t,e,r)||!s)return;let a=JSON.stringify(s);r.statusFailureCategories.set(t.name,{category:"auth_refresh_needed",...s}),r.authRefreshNeededReportKeys.get(t.name)!==a&&(r.authRefreshNeededReportKeys.set(t.name,a),D(r.currentLoad?.latestPi??n,r))},t.onAuthRefreshCleared=()=>{if(!er(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&it(r,t.name,s)&&D(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{er(t,e,r)&&t.status==="success"&&fu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;id(a,t,e),a!==n&&id(n,t,e)}}async function uk(t,e,r,n){let o=setTimeout(()=>{er(t,e,r)&&D(n(),r)},Xs);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),er(t,e,r)&&D(n(),r)}}async function dk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function pu(t,e){if(e.status!=="installed")return!1;let r=N(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function lH(t){let{state:e,config:r,displaced:n,retirement:o}=t;Kh(e,n.config),ai(e,r.name),n.beginDisposal?.();try{let i=Gu(n.config,r)?Promise.resolve():pt(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;ve({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw ve({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function fH(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=st({state:e,name:r.name,owner:n,revision:o,host:r});if(i){r.beginDisposal?.();try{await r.dispose({strict:!0}),ve({state:e,name:r.name,retirement:i,result:{status:"retired"}}),xe({state:e,name:r.name,owner:n,revision:o})}catch(s){throw ve({state:e,name:r.name,retirement:i,result:{status:"failed",error:s}}),s}}}async function pH(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),er(r,o,e)?a?.(n)===!1?(await fH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&fu(c(),e,r),D(c(),e),r.status==="failed"?{status:"unavailable",config:n,error:new Error(r.lastError??`MCP server "${n.name}" failed`)}:{status:"installed",config:n,leaseRevision:s}):{status:"superseded",config:n}}function hH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=N(e,r.name);if(!Jh(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=Wh(e,r.name),l=Vh({state:e,config:r,generation:d});return Yh(l,d,e,o),ta({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:pH({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function mH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!Jh(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?Q(r,a.name,u):N(r,a.name),l=Rr(a,i),f=ii({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,m=()=>hH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),h=async()=>(f.displacedHost&&f.retirement?await lH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Uu(f.retirement),m());return f.retirement?h():m()}async function Ve(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??We(e,d.name)})).map(async d=>{try{let l=await mH({intent:d,state:e,pi:r,sourceOwnership:n,sourceKind:i,activePi:s});return"connection"in l?l.connection:l}catch(l){return{status:"failed",config:d.config,error:l}}});if(c.length===0)return[];let u=setTimeout(()=>{D(s(),e)},Xs);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function gH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!ck(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!qu(e,t,o))return!1;Kh(e,i),ai(e,t);let a=st({state:e,name:t,owner:s.owner,revision:s.revision,host:o});if(!a)return!1;o.beginDisposal?.();try{await o.dispose({strict:!0}),ve({state:e,name:t,retirement:a,result:{status:"retired"}})}catch(l){throw ve({state:e,name:t,retirement:a,result:{status:"failed",error:l}}),l}if(N(e,t)?.revision!==s.revision||!ck(e,t,n))return xe({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=Wh(e,t),u=Vh({state:e,config:i,generation:c});if(Yh(u,c,e,r),!ta({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await uk(u,c,e,d),er(u,c,e)&&u.status==="success"&&fu(d(),e,u),!0}function Yr(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 gH({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 yH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;Kh(e,n.config),ai(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Gu(n.config,o)?Promise.resolve():pt(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&&ve({state:e,name:r,retirement:i,result:{status:"retired"}})}catch(s){throw i&&ve({state:e,name:r,retirement:i,result:{status:"failed",error:s}}),s}}async function lk(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=Yn(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(h=>h.name===t),c=We(e,t),u=e.servers.get(t),d=u?Q(e,t,u):N(e,t),l={kind:"local",identity:a?.id??t},f=ii({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await yH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Uu(f.retirement),N(e,t)?.revision!==f.lease.revision||!Jh(e,t,c)){xe({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){xe({state:e,name:t,owner:l,revision:f.lease.revision}),D(i(),e);return}let p=Wh(e,t),m=Vh({state:e,config:a,generation:p});Yh(m,p,e,r),ta({state:e,name:t,owner:l,revision:f.lease.revision,host:m})&&(await uk(m,p,e,i),er(m,p,e)&&m.status==="success"&&fu(i(),e,m))}async function Zs(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>Yr(n,e,r)))}finally{e.reconnecting=!1}}var fk=Symbol.for("__pi_mcp_registry_ingress__");function hu(t){return Object.defineProperty(t,fk,{value:!0}),t}function Gn(t){return Object.getOwnPropertyDescriptor(t,fk)?.value===!0}function Xr(t){let{state:e,target:r,byConfigId:n=!1}=t;if(!r)return;let o=[...e.servers].filter(([u,d])=>d.config.id===r||!n&&u===r);if(o.length!==1)return;let i=o[0];if(!i)return;let[s,a]=i;if(a.config.id&&[...e.servers].some(([u,d])=>u!==s&&d.config.id===a.config.id))return;let c=N(e,s);if(!(c&&(c.host!==a||c.owner.kind==="registry"&&c.connectionEpoch!==e.mcpConnectionEpoch))&&!(!c&&e.mcpConnectionEpoch!==void 0&&a.config.registrySource!==void 0)&&!((n||s!==r)&&!Gn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as vH}from"@hermes/logger";var _H=vH.child({prefix:"pi-mcp"}),SH=1e6,wH=1e3,bH=/^\d+$/;function pk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function Qr(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"||!bH.test(e)||typeof r!="string"||r.length===0)return;let n=Hm(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:pk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function RH(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:Pr(o,n)>0?o:n}function CH(t,e,r){if(t===void 0)return!0;let n=pk(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:")&&xr(n)===r.domain&&xr(e.domain)===r.domain?!0:r?.kind==="domain"&&!ct(n)&&ct(e.domain)&&xr(n)===r.domain}function PH(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 _H.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=xr(r.domain);if(s?.kind==="blocked"||s?.kind==="domain"&&r.ownerDomain!==void 0&&r.ownerDomain!==s.domain||s?.kind==="domain"&&r.ownerDomain===void 0&&!ct(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!CH(c,r,s))return"reject";let u=RH(n?.acceptedRevisions,r.domain,i);if(u===void 0)return"apply";let d=Pr(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 xH(t,e,r,n){if(n!==void 0)return!1;let o=t.get(e);return o===void 0?!1:r.expiresAt===void 0||o.expiresAt===void 0||r.expiresAt<=o.expiresAt}function kH(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t;if(typeof e.access_token!="string"||e.access_token.length===0||["refresh_token","token_type","scope","authorization_endpoint","token_endpoint","issuer","client_id","client_secret","token_endpoint_auth_method"].some(s=>e[s]!==void 0&&typeof e[s]!="string"))return!1;let n=e.access_token_expires_at;if(n===void 0)return!0;if(typeof n!="object"||n===null||Array.isArray(n))return!1;let{seconds:o,nanos:i}=n;return typeof o=="number"&&Number.isSafeInteger(o)&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&i<1e9}function EH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*wH+Math.floor(t.access_token_expires_at.nanos/SH):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 TH(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 yr(t){let{store:e,serverName:r,proto:n,options:o}=t;if(!kH(n))return{decision:"reject"};let i=Qr(n),s=PH(r,n,i,o);if(s==="reject")return{decision:s};let a=EH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!TH(e.get(r),a))||s==="apply"&&xH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function mu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=yr({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 hk=AH.child({prefix:"pi-mcp"});function MH(t,e){let r=Xr({state:t,target:e,byConfigId:!0});if(!r)return;let o=N(t,r.name)?.owner??Rr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function $H(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=Qr(i);if(s===void 0)return!1;let a=sn(s);return s.ownerDomain!==void 0?a===`user:${e}`:o===r&&ct(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function mk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){hk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=MH(r,n.configId),i=o?$H(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=N(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth")return;let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>yr({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject")return;let d=o.server.getRefreshInFlight?.();if(d&&await Promise.resolve(d).catch(()=>{}),r.mcpConnectionEpoch!==a||r.servers.get(o.name)!==o.server||N(r,o.name)!==s||u().decision==="reject")return;Q(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=mu(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 h=Qr(i);h&&(r.credentialRevisions.set(o.name,h),r.hostedCredentialOwnership.set(o.name,{...h,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??Yr,m=t.report??D;await p(o.name,r,f).catch(h=>{hk.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${h instanceof Error?h.name:"non-Error"}`)}),m(f,r),_e(r)}import{logger as IH}from"@hermes/logger";var gu=IH.child({prefix:"pi-mcp"}),Xh="augment:mcp-attach-result";function gk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(Xh,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){gu.warn(`${Xh} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){gu.debug(`${Xh}: 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 Vo(t,e){if(!e.mcpAttachCloudSignaled||e.mcpAttachDisabled||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await yg(r);e.mcpConnectionEpoch!==n||e.credentials!==r||(i.ok?(e.mcpCatalog=i.entries,gu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,gu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session")),Qn(e)&&dn(e.currentLoad?.latestPi??t))})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as WH}from"@hermes/logger";function OH(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case li.OAUTH:return"oauth";case li.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 zH(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case an.CLI:return"cli";case an.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 yu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(zH).filter(r=>r!==void 0);return e.length===0?void 0:e}function vu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=OH(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=Kn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...Jn(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof kt?s.message:String(s)}}}function NH(t){let e=t.config?.auth_type;return e===li.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function DH(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 Qh(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 LH(t,e,r){if(r!==void 0&&t.added_by===r)return yu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?yu(n):[]}function jH(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=Qh(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(m=>m.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),m=Qh(e,r,()=>!0),h=new Set(m.map(b=>b.id)),g=m.filter(b=>p.has(b.id)),v=m.filter(b=>!p.has(b.id)).map(b=>b.id),w=i.filter(b=>!h.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=Qh(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let h=!d.has(p.id)&&a.has(p.id)?LH(p,o,s):yu(p.enabled_products);h===void 0||h.includes("cloud_agent")?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function FH(t){return t==null?an.CLOUD_AGENT:void 0}function UH(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 yk(t,e,r,n){try{let o=t.type==="stdio"?Gt(t,n):Ht(t,n);return{ok:!0,server:hu(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 qH(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=vu(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=yk(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=yk(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 HH(t){let e=[],r=[],n=[];for(let o of t)NH(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 GH(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=DH(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 ZH(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 _u(t){let e=t.client??new fa(t.creds),{tenant:r,user:n,diagnostics:o}=await Tg(e,FH(t.configIds)),i=n.mcp_configs??[],s=new Set(i.map(b=>b.id)),{selected:a,filteredOutIds:c,missingIds:u,retainedNames:d}=jH({tenantConfigs:r.mcp_configs??[],userConfigs:i,enabledSharedServerIds:n.enabled_shared_server_ids??[],serverProductPreferences:n.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId}),l=HH(a),f=l.selected;c.push(...l.droppedIds),o.push(...l.diagnostics),o.push(...UH(u));let p=[],m=new Map,h=new Set(t.localServerNames),g=[...f.filter(b=>s.has(b.id)),...f.filter(b=>!s.has(b.id))];for(let b of g){let x=qH({payload:b,userIds:s,localServerNames:t.localServerNames,seenNames:h,workspaceRoot:t.workspaceRoot});ZH(x,{servers:p,retainedNames:d,diagnostics:o,nameCollisionFallbacks:m})}let v=GH(p);d.push(...v.droppedNames),o.push(...v.diagnostics);let w=new Map;for(let b of[...r.mcp_configs??[],...i])b.config?.name&&w.set(b.id,b.config.name);return{servers:v.servers,diagnostics:o,filteredOutIds:c,retainedNames:d,namesById:w,nameCollisionFallbacks:m}}import{logger as BH}from"@hermes/logger";var Ko=BH.child({prefix:"pi-mcp"});function vk(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Ko.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=vu(n,"tenant");if(!i.ok){Ko.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return hu(i.server.type==="stdio"?Gt(i.server,s):Ht(i.server,s))}catch(a){Ko.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){Ko.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return vk(r,e)}function Jo(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Ko.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Ko.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=vk(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 jt=WH.child({prefix:"pi-mcp"});function wk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function bk(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?st({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(We(e,r),"retiring"):void 0:(xe({state:e,name:r,owner:n.owner,revision:n.revision}),We(e,r),"released");let c=a.get(r),u=ii({state:e,name:r,owner:c??n.owner,expectedRevision:n.revision,...o?{expectedHost:o}:{}});if(u)return i&&c===void 0&&e.expectedCredentialDomains.set(r,{kind:"blocked"}),{configRevision:We(e,r),leaseRevision:u.lease.revision}}function VH(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=Q(e,r,n);if(c.owner.kind!=="registry"||c.host!==n)return;a.add(r);let u={...n.config};e.registryCredentialConfigs.set(r,u),n.config.id&&(e.registryConfigNamesById.set(n.config.id,r),e.registryCredentialConfigsById.set(n.config.id,u));let d=bk({state:e,name:r,lease:c,host:n,isDeselected:wk({selectedIds:o,config:n.config}),selectionIsEmpty:o?.size===0,replacementOwners:i});if(d===void 0)return;d!=="released"&&d!=="retiring"&&s.set(r,d);let l=N(e,r)?.retirement;return n.beginDisposal?.(),n.dispose({strict:!0}).then(()=>{l&&ve({state:e,name:r,retirement:l,result:{status:"retired"}}),d==="retiring"&&xe({state:e,name:r,owner:c.owner,revision:c.revision})},f=>{throw l&&ve({state:e,name:r,retirement:l,result:{status:"failed",error:f}}),f})}function KH(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=bk({state:e,name:r,lease:n,isDeselected:wk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function JH(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=VH({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||KH({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Rk(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 m=f.id===void 0?c.has(l):a.has(f.id);p===void 0&&!m&&i.push(pt(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 xt(f)}let d=new Map;for(let[l,f]of s){let p=t.registryCredentialConfigs.get(l);p&&(d.set(l,{...p}),ft(p,f)&&f.id!==void 0&&t.registryCredentialConfigsById.set(f.id,{...f}))}t.registryCredentialConfigs=d}function YH(t,e,r){let n=e!=null&&e.length>0?new Set(e):void 0,o=[],i=[],s=[],a=[],c=new Set(r);for(let l of t.servers){if(n&&l.id!==void 0&&!n.has(l.id)){s.push(l.id);continue}if(c.has(l.name)){i.push({server:l.name,message:`Skipped embedded MCP server "${l.name}" (id=${l.id}): a local server with the same name takes precedence`}),a.push(l.name);continue}c.add(l.name),o.push(l)}let u=new Set(o.map(l=>l.name)),d=new Set(a);for(let[l,{name:f}]of t.allConfigsById)n&&!n.has(l)||u.has(f)||d.has(f)||(d.add(f),a.push(f));return{servers:o,diagnostics:i,filteredOutIds:s,retainedNames:a}}function XH(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 Jo(o,e.workspaceRoot??process.cwd(),n)}async function QH(t){let{state:e,previousSelectedIds:r,configIds:n}=t;if(!n)return;let o=new Set(n),i=[],s=[];for(let a of r){if(o.has(a))continue;let c=e.registryConfigNamesById.get(a),u=[...o].some(d=>e.registryCredentialIntents.get(at(d))?.configName===c);if(c&&!u){let d=e.registryCredentialConfigs.get(c);i.push({id:a,name:c}),s.push(pt(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 xt(c)}}function eG(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 tG(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 rG(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);o.owner.kind==="local"&&o.host===n&&e.add(r)}for(let[r,n]of t.hostLeases)n.owner.kind==="local"&&e.add(r);return e}function nG(t){let{state:e,result:r,previousSelectedIds:n,selection:o}=t,i=new Set([...o??[],...r.servers.flatMap(s=>s.id===void 0?[]:[s.id]),...r.namesById?.keys()??[]]);return Rk(e,r.servers,n,i,o!==void 0)}async function Ck(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():ui(t,r.id)))}async function Sk(t){return await Ck(t.state,t.result),t.state.registryGeneration===t.generation&&await nG(t),t.result}function oG(t){let{state:e,configIds:r,parsedEmbedded:n,credentials:o,localServerNames:i,previousSelectedIds:s,selection:a,generation:c,discover:u}=t;if(n){jt.info(`Registry selection: using ${n.servers.length} embedded config(s) (no registry fetch)`);let l=YH(n,r,i);return Sk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})}return o?u({configIds:r,creds:o,currentUserId:o.userId,workspaceRoot:e.workspaceRoot??process.cwd(),localServerNames:i}).then(l=>Sk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})):void 0}function iG(t){let{state:e,result:r,selection:n}=t;e.selectedRegistryConfigIds=n;for(let o of r.diagnostics)e.diagnostics.push({...o,origin:"registry"}),jt.warn(o.message);for(let[o,i]of r.namesById??[])e.registryConfigNamesById.set(o,i);r.filteredOutIds.length>0&&jt.info(`Registry discovery filtered out ${r.filteredOutIds.length} server(s) by selection/opt-in/product`)}function sG(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 Pk(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 em(t){let{state:e,result:r,selection:n,slotReservations:o}=t,i=new Set([...r.servers.map(s=>s.name),...r.retainedNames??[],...(n??[]).flatMap(s=>{let a=e.registryConfigNamesById.get(s);return a?[a]:[]})]);for(let[s,a]of o){if(i.has(s))continue;let c=N(e,s);c?.owner.kind==="registry"&&c.host===void 0&&c.revision===a.leaseRevision&&xe({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function aG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){em({state:e,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:void 0,slotReservations:a}),jt.info(`Registry discovery superseded by a newer selection; skipping ${r.servers.length} server(s)`);return}if(await Ck(e,r),e.registryGeneration!==o)return;let c=Pk({state:e,generation:o}),u=r.servers.filter(c);if((await Promise.all(u.map(h=>Er({state:e,config:h,pi:s})))).some(h=>!h)||e.registryGeneration!==o)return;iG({state:e,result:r,selection:n}),em({state:e,result:r,selection:n,slotReservations:a});let l=sG({state:e,result:{...r,servers:u}});if(l.length===0)return;let f=l.filter(h=>{let g=e.servers.get(h.name);if((g?Q(e,h.name,g):N(e,h.name))?.owner.kind==="local")return jt.info(`Registry install of "${h.name}" skipped: a local server claimed the name during discovery`),!1;let w=a.get(h.name)?.configRevision;if(w===void 0)return!0;let b=e.configDesiredRevisions.get(h.name);return b!==w?(jt.info(`Registry install of "${h.name}" skipped: slot revision advanced from ${w} to ${b} by a concurrent operation`),!1):!0});if(f.length===0)return;jt.info(`Registry discovery: connecting ${f.length} server(s)`);let m=(await i(f,e,e.currentLoad?.latestPi??s,c))?.find(h=>h.status==="failed");if(m)throw m.error instanceof Error?m.error:new Error(String(m.error));await cG({state:e,pi:s,result:r,generation:o,connect:i})}async function cG(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 Er({state:e,config:s,pi:r})||e.registryGeneration!==n)return"abort";jt.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,Pk({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 dG(t){let{state:e,error:r,generation:n,previousSelectedIds:o,selection:i}=t,s=`Registry discovery failed: ${r instanceof Error?r.message:String(r)}`;jt.warn(s),e.registryGeneration===n&&(await Rk(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function lG(t,e){for(let r of e??[]){let n=at(r),o=t.registryCredentialIntents.get(n);o?.configName&&t.expectedCredentialDomains.set(o.configName,{kind:"blocked"}),Ke({state:t,domain:n,epoch:o?.epoch})}}async function fG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await aG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),em({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 xt)throw lG(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 dG({...t.resultArgs,error:r})}}function Su(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??_u,s=o?.connect??Ve,a=n;if(!a||typeof a!="object"||Array.isArray(a))return jt.warn("augment:mcp-config-ids payload is not an object"),Promise.resolve();Array.isArray(a.configIds)&&Jm(r,new Set(a.configIds.map(at)));let c=XH({state:r,configIds:a.configIds,admittedConfigs:t.admittedConfigs}),u=r.credentials;if(!(c||u)){jt.warn("augment:mcp-config-ids received before credentials; skipping registry discovery");for(let v of a.configIds??[])Ke({state:r,domain:at(v)});return Promise.resolve()}let d=r.selectedRegistryConfigIds??[],l=QH({state:r,previousSelectedIds:d,configIds:a.configIds}),f=eG({parsedEmbedded:c,configIds:a.configIds}),p=++r.registryGeneration,m=Promise.all([JH(r,a.configIds,f),l]).then(([v])=>v);tG(r);let h=a.configIds?[...a.configIds]:void 0,g=oG({state:r,configIds:a.configIds,parsedEmbedded:c,credentials:u,localServerNames:rG(r),previousSelectedIds:d,selection:h,generation:p,discover:i});return g?fG({disposal:m,discovery:g,resultArgs:{state:r,previousSelectedIds:d,selection:h,generation:p,connect:s,pi:e}}):Promise.resolve()}import{logger as pG}from"@hermes/logger";var en=pG.child({prefix:"pi-mcp"});function hG(t,e){Ke({state:t,domain:`user:${e}`}),t.liveEditGenerations??=new Map;let r=(t.liveEditGenerations.get(e)??0)+1;return t.liveEditGenerations.set(e,r),r}function mG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Tk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function gG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function xk(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&&(gG({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 Ak(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function kk(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Gn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function Mk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function yG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=N(e,r),s=n?Rr(n):void 0;if(i===void 0){We(e,r);return}let a=i.host===void 0&&i.owner.kind==="registry"&&s?.kind==="registry"&&i.owner.identity===s.identity,c=o?.incumbent.owner.kind==="registry"&&s?.kind==="registry"&&o.incumbent.owner.identity===s.identity;if(!a&&!c)return;(o?.settled&&i.retirement===o?Dm({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):xe({state:e,name:r,owner:i.owner,revision:i.revision}))&&N(e,r)===void 0&&(Mk(e,r),We(e,r))}async function tm(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 en.warn(w),e.diagnostics.push({message:w,origin:"registry"}),new Error(w)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=N(e,a),u=Rr(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),m=l&&d?.settled!==!0?We(e,a):void 0;if(d&&!d.settled&&(await d.teardown).status==="retired"&&!l)return;let g=N(e,a)?.retirement===d?d:void 0,v=g?.result;if(d&&v?.status==="failed"&&v.transportDisposed!==!0){let w=v.error instanceof Error?v.error:new Error(String(v.error)),b=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw en.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await ci(e,a,r,s)}catch(w){m!==void 0&&e.configDesiredRevisions.get(a)===m&&(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 en.warn(b),e.diagnostics.push({server:a,message:b}),w}Tk({state:e,configId:r,fence:i})&&(Ak(e,r),yG({state:e,name:a,config:s,retirement:g})),en.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 Ek(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)}`;en.warn(i),e.diagnostics.push({server:r,message:i})}async function vG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Ek({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([ci(e,r,n,o.config)]);return Ek({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 _G(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?Q(e,n,a):N(e,n);if(!a||!c||c.owner.kind!=="registry"||c.host!==a)return;e.registryConfigNamesById.set(r,n),e.registryCredentialConfigsById.set(r,{...a.config});let u=e.configDesiredRevisions.get(n),d=e.configDesiredSources.get(n),l=We(e,n),f=st({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),en.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:m,failure:h,transportDisposed:g}=await vG({state:e,name:n,configId:r,server:a});if(m&&Tk({state:e,configId:r,fence:s})?Ak(e,r):!m&&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)),ve({state:e,name:n,retirement:f,result:m?{status:"retired"}:{status:"failed",error:h,transportDisposed:g}}),m&&xe({state:e,name:n,owner:c.owner,revision:c.revision})&&Mk(e,n),i(p,e),!m)throw h}function wu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return en.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!Xn({state:r,configId:s,generation:i?.attachmentGeneration}))return en.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:sa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??D,u=kk(r,s),d=r.registryCredentialConfigsById.get(s),l=d?.name?N(r,d.name)?.retirement:void 0,f=r.missingHostRemovals.get(s),p=f?.registryGeneration===r.registryGeneration&&f?.liveEditGeneration===r.liveEditGenerations.get(s);if(p&&l===void 0)return a(f.promise);if(p&&l!==void 0){let g=r.missingHostRemovalFences.get(s);if(g)return a(xk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>tm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let m=hG(r,s);if(u===void 0&&d===void 0)return a(tm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:m,registryGeneration:r.registryGeneration}}));let h=mG({state:r,configId:s,liveEditGeneration:m});return a(xk({state:r,configId:s,fence:h,operation:()=>{let g=kk(r,s);return g===void 0?tm({state:r,configId:s,pi:e,report:c,sourceFence:h}):_G({state:r,configId:s,name:g,pi:e,report:c,sourceFence:h})}}))}import{randomUUID as SG}from"node:crypto";import{setToolSource as wG}from"@augmentcode/auggie-v2";import{logger as bG}from"@hermes/logger";import{Type as RG}from"@sinclair/typebox";var Ik=bG.child({prefix:"pi-mcp"}),bu="attach-mcp-server",CG="augment:mcp-attach-request",PG=15e3,xG={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 kG(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(cn(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 EG(t,e){let r=e.name.toLowerCase();return cn(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function rm(t,e){let r=EG(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 TG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},PG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function $k(t){let e=cn(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 Ce(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${rm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Ce(`MCP server "${e.name}" failed to connect after the attach was accepted. Ask the user to reconnect it from the session MCP panel before trying again.${rm(r,e)}`)}function MG(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Ce(`Timed out waiting for the attach request for "${e.name}" to be acknowledged. The server may still attach shortly; check find-tool's server list before retrying.`);if(r.error==="UNIMPLEMENTED")return n.mcpAttachDisabled=!0,Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");if(r.error==="DENIED")return Ce(`The control plane denied the request to attach "${e.name}". Do not retry; ask the user to verify that the server is available for this session.`);if(r.error!==void 0)return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Ce(`Attach accepted for "${e.name}". Connection continues in the background; use find-tool to discover its tools when ready. If its tools do not appear, call attach-mcp-server again with the same config id for connection guidance.`);case"ALREADY_ATTACHED":return Ce(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Ce(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${rm(n,e)}`);case"NO_ACTIVE_VM":return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Ce(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function $G(t,e,r){if(e.mcpAttachDisabled)return Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");let{config_id:n}=r??{};if(typeof n!="string"||n.trim().length===0)throw new Error(`${bu} requires a string "config_id" parameter. ${$k(e)}`);let o=kG(e,n);if(o.kind==="none")return Ce(`No MCP server matching "${n}" is available to attach. ${$k(e)}`);if(o.kind==="ambiguous"){let d=o.candidates.map(l=>`"${l.name}" (id: ${l.id})`).join(", ");return Ce(`Multiple MCP servers match the name "${n}": ${d}. 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(sd(e,i))return Ce(`MCP server "${i.name}" is already attached to this session. Use find-tool to discover its tools.`);if(i.state!=="available"&&i.state!=="opt_in_required")return Ce(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=SG();Ik.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=TG(e,a);t.events.emit(CG,{configId:i.id,requestId:a});let u=await c;return MG({entry:i,result:u,state:e})}function Bs(t,e){let r={name:bu,label:bu,description:"Attach an available MCP server to this session so its tools become usable. Only servers listed as available-but-not-attached in find-tool's description can be attached. Call this tool immediately when the user's request needs one of those servers; it attaches directly without requiring user approval.",parameters:RG.Unsafe(xG),execute:(n,o)=>$G(t,e,o)};wG(bu,"mcp"),t.registerTool(r),Tr(r),Ik.debug("Registered attach-mcp-server tool")}import{createHash as IG}from"node:crypto";var OG=/^[1-9][0-9]*$/,zG=/^[a-f0-9]{64}$/,NG=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 Re(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function nm(t){return typeof t=="string"&&OG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function im(t){return Re(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&nm(t.connectionVersion)}function DG(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Ir(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Ir(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 zk(t){if(!(!Re(t)||Object.keys(t).some(e=>!NG.has(e)))&&!(!DG(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"||!zG.test(t.route_revision)||!nm(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"||!nm(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||!Re(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 om(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function LG(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 jG(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 Ok(t,e){return om(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&LG(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function FG(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 UG(t,e){let r=Pi((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 Ru=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 im(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&&!om(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&om(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||!jG(e,r)||!n&&(!o||!this.#r.has(r)||!Ok(e,o.material))||!UG(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"&&Ok(e,o.material)&&FG(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 Nk(t){return IG("sha256").update(t).digest("hex")}function Dk(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=>!Re(a)||!Re(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(!Re(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 qG(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 HG(t){return t.env!==void 0&&(!Re(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 GG(t,e,r){if(typeof t!="string"||Nk(t)!==e.route_revision)return;let n=JSON.parse(t);if(!Re(n)||!Re(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||!HG(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(!qG(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 Lk(t,e){if(!Re(e)||!Re(e.credentials))return;let r=t.targetMaterialStore;if(!r?.hasConnection)return;let n=Object.entries(e.credentials),o=e.kind==="boot";if(!o&&(e.version!==1||n.length!==1||e.kind!=="add"&&e.kind!=="restart"||e.hasLegacySecrets===!0))return;let i=o?Dk(e.configsJson):new Map;if(o&&(e.headerSecrets!==void 0&&(!Re(e.headerSecrets)||Object.values(e.headerSecrets).some(u=>u!==null&&typeof u!="string"))||e.configIds!==void 0&&(!Array.isArray(e.configIds)||e.configIds.some(u=>typeof u!="string"||!u)||new Set(e.configIds).size!==e.configIds.length)))return;let s=[],a=new Set,c;for(let[u,d]of n){if(o&&Re(d)&&!Object.hasOwn(d,"target_material")){if(![...i.values()].some(w=>{let b=JSON.parse(w);return Re(b)&&Re(b.config)&&b.config.name===u&&(!Array.isArray(e.configIds)||e.configIds.includes(b.id))})&&(e.configsJson!==void 0||e.configIds!==void 0)||r.has(u)||yr({store:t.tokens,serverName:u,proto:d,options:{requireEqualMaterial:!0}}).decision==="reject")return;continue}if(!Re(d)||Object.entries(d).some(([v,w])=>v!=="target_material"&&w!==""))return;let l=zk(d.target_material);if(!l||l.server_name!==u||a.has(l.config_id))return;let f=JSON.stringify([l.execution_principal_id,l.execution_principal_type]);if(c!==void 0&&c!==f||(c=f,a.add(l.config_id),!o&&e.target!==(e.kind==="add"?l.config_id:u)))return;let p=o||e.kind==="add";if(p&&l.operation!=="install")return;let m=p?GG(o?i.get(l.config_id):e.config,l,t.workspaceRoot):r.config(l.config_id);if(!m||!r.validate(l,m,p)||o&&Array.isArray(e.configIds)&&!e.configIds.includes(l.config_id))return;let h=t.servers.get(m.name),g=t.hostLeases.get(m.name);if(h&&!r.trusts(h.config)&&!Gn(h.config)&&!r.hasTargetProvenance(h.config)||h&&(h.config.registrySource===void 0||h.config.vfsSource!==void 0||h.config.id!==l.config_id)||h&&(!g||g.host!==h)||g&&(g.owner.kind!=="registry"||g.owner.identity!==`user:${l.config_id}`))return;s.push({material:l,config:m})}if(!(o&&[...i.keys()].some(u=>r.has(u)&&!a.has(u)&&(!Array.isArray(e.configIds)||e.configIds.includes(u))))){if(o&&i.size>0){let u=Jo(e.configsJson,t.workspaceRoot,new Map(s.map(({material:d,config:l})=>[d.config_id,l])));if(!u||u.allConfigsById.size!==i.size||[...u.allConfigsById.values()].some(d=>!d.config)||new Set([...u.allConfigsById.values()].map(d=>d.name)).size!==i.size)return}return s}}async function ZG(t){let{pi:e,state:r,data:n}=t;if(!Re(n)||n.kind!=="boot")return!1;let o=r.targetMaterialStore;if(!o?.hasConnection)return!1;let i,s;try{i=Lk(r,n);let p=n.configsJson===void 0?void 0:JSON.parse(n.configsJson);if(p!==void 0&&!Array.isArray(p))return!1;s=p}catch{return!1}if(!i)return!1;let a=o.epoch,c=()=>o.epoch===a,u=n.configIds;u===void 0&&s!==void 0&&(u=[...Dk(n.configsJson).keys()]);let d=new Map(i.map(p=>[p.material.config_id,p.config]));o.retainSelection(new Set(d.keys()));for(let{material:p,config:m}of i)o.commit(p,m);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,Bs(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let l=Su({pi:e,state:r,data:{configIds:u},admittedConfigs:d,deps:{connect:(p,m,h,g)=>{if(!c())return Promise.resolve([]);let v=p.map(w=>{let b=w.id?d.get(w.id):void 0;if(!b&&w.id&&o.has(w.id))throw new Error("MCP target material is unavailable");return b??w});return Ve(v,m,h,w=>c()&&(g?.(w)??!0))}}});if(c()&&typeof n.onAdmitted=="function"&&n.onAdmitted(c),await l,!c())return!1;let f=r.currentLoad?.latestPi??e;return D(f,r),_e(r),Vo(f,r),!0}async function BG(t){let{pi:e,state:r,data:n}=t;if(!Re(n))return!1;if(n.kind==="boot")return ZG(t);let o;try{o=Lk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await WG({pi:e,state:r,data:n,candidate:i,store:s})}async function WG(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(!Xn(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=i.epoch,d=r.attachmentCommandGenerations?.get(s.config_id),l=()=>i.epoch===u&&r.attachmentCommandGenerations?.get(s.config_id)===d,f=!1;try{i.commit(s,a);let p=n.kind==="add"||r.dynamicallyAddedConfigIds.has(s.config_id);return[...r.servers.values()].find(h=>h.config.id===s.config_id&&h.config.registrySource!==void 0&&(i.hasTargetProvenance(h.config)||Gn(h.config)))&&await wu({pi:e,state:r,data:{configId:s.config_id},replacement:!0}),!l()||(r.sessionRemovedConfigIds.delete(s.config_id),p?r.dynamicallyAddedConfigIds.add(s.config_id):r.dynamicallyAddedConfigIds.delete(s.config_id),s.operation!=="retire"&&(await Ve([a],r,e,l),!l()))?!1:(D(e,r),f=!0,!0)}finally{n.kind==="add"&&(f?ed(c):ia(c))}}function Ws(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 VG(t,e){t.registryGeneration++,Wm(t),t.headerSecrets={},t.headerSecretFailures={},t.mcpCatalog=void 0,t.mcpAttachDisabled=!1,t.catalogRefreshInFlight=void 0;let r=[];for(let[n,o]of t.hostLeases){if(o.owner.kind!=="registry")continue;t.configRevisions.set(n,(t.configRevisions.get(n)??0)+1),t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.stagedOAuthCredentials.delete(n);let s=o.host;if(!s)continue;s.beginDisposal?.();let a=st({state:t,name:n,owner:o.owner,revision:o.revision,host:s});a&&r.push(s.dispose({strict:!0}).then(()=>{ve({state:t,name:n,retirement:a,result:{status:"retired"}})},c=>{ve({state:t,name:n,retirement:a,result:{status:"failed",error:c}}),t.diagnostics.push({origin:"registry",message:"Previous MCP connection could not be retired safely"}),D(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),D(e,t)}function jk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new Ru,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(im(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,VG(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Ws(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await BG({pi:t,state:e,data:r})&&e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP configuration update was rejected; a fresh authorized configuration is required"}),D(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),D(t,e))})}))}import{logger as aZ}from"@hermes/logger";import{execFile as sm}from"node:child_process";import{win32 as am}from"node:path";import{logger as KG}from"@hermes/logger";var JG=5e3,YG=/^[a-z]:[\\/]/i,XG=/[<>:"|?*]/;function QG(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!YG.test(t)||!am.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||XG.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:am.join(am.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function eZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function tZ(t,e){switch(process.platform){case"darwin":return sm("open",[t],e);case"win32":{let r=QG();return r?sm(r,["-NoProfile","-NonInteractive","-EncodedCommand",eZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return sm("xdg-open",[t],e)}}function Fk(t,e=JG){let r=KG.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=tZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as rZ}from"node:http";function Cu(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Uk(t){let e=Cu(t.title),r=Cu(t.heading),n=Cu(t.message),o=t.details?Cu(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 jx(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new Hh(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}},Gh=new fq;function Zh(t,e){return Gh.run(t,e)}function hq(t){Gh.getStore()?.onFailure?.(t)}function Fx({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=Gh.getStore(),u=new Hn({status:a.status,transport:e,operation:c?.operation??"transport"});throw hq(u),u}}function Ux(t,e){let r=Fx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new uu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function qx(t,e){let r=Fx({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new nu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Hx(){return new Yc({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Gx=Ji,Zx=Te;function Ct(t){return t instanceof Hn&&t.status===401||(t instanceof Lt||t instanceof Gs)&&t.code===401}function Bx(t){return t instanceof M&&t.code===$.MethodNotFound}function Bh(t){return t instanceof Error&&t.name==="ZodError"&&Array.isArray(t.issues)}var mq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Wx(t){if(t instanceof M&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return mq.some(r=>e.includes(r))}function Vx(t){return t instanceof M&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function Wh(t){return t instanceof Hn&&t.transport==="http"&&t.status===404||t instanceof Lt&&t.code===404}var Y=gq.child({prefix:"pi-mcp"});function yq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function vq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&yq(r,o)})}var _q=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),Sq=/^Node\.js v\d/,wq=/^[\w$.]*error[\w$]*:/i,Kx=400,bq=63e3,Jx=3,Rq=/[\\/]lib[\\/]cli\.js/,Cq="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.",rk=Symbol("mcpReinitReported");function Pq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,rk,{value:!0,enumerable:!1,configurable:!0})}function xq(t){return typeof t=="object"&&t!==null&&t[rk]===!0}function kq(t){let e=t.filter(a=>!Sq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>Rq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return Cq;let o=r.findIndex(a=>wq.test(a)),s=(o===-1?r.slice(-Jx):r.slice(o,o+Jx)).join(" / ");return s.length>Kx?`${s.slice(0,Kx)}\u2026`:s}function Eq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(_q,"").split(`
|
|
101
|
+
`).map(i=>i.trim()).filter(i=>i.length>0),o=kq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Tq=6e5,Aq=18e5,Yx=2147483647,Mq=3e4,Xx=1e4,nk=[250,1e3,2e3],Gn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Zs=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},$q=250,Qx=3,Iq=[200,500];function Oq(t){for(let e of Object.values(t))if(Nr(e))return!0;return!1}function Vh(t){let e=new Set;for(let r of t.matchAll(xi))e.add(Ma(r[0]));return[...e].sort()}function Kh(t){return[...new Set(t)].sort()}function ek(t,e){return qy(e.map(r=>t?.[r]??"missing"))}function zq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Kh([...e&&t?ki(t):[],...n&&r?Vh(r):[],...o.flatMap(Vh)])}var du="${augmentToken}";function Nq(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 Dq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var ok="(unknown uri)",Jh="unknown",tk=/=+$/,Lq=/\s+/g,jq=/[-_]/g,Fq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Zn(t,e){return typeof t=="string"?t:e}function ik(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Uq(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(Lq,"").replace(jq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(tk,"");if(r.toString("base64").replace(tk,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function sk(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Hq(t){let e=sk(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Zn(e.uri,ok),n=Zn(e.mimeType,Jh);if(typeof e.blob=="string"&&Uq(n)){let i=qq(e.blob);if(i!==void 0)return i}let o=ik(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Gq(t){let e=Zn(t.type,"unknown");if(e==="resource")return Hq(t);if(e==="audio"){let r=Zn(t.mimeType,Jh),n=ik(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Zn(t.uri,ok),n=Zn(t.name,""),o=Zn(t.mimeType,Jh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function Zq(t){if(t.type!=="resource")return;let e=sk(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Fq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function Bq(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=Zq(t);return e||{type:"text",text:Gq(t)}}function Wq(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(Bq(n))}return e}function Vq(t){return Iy(t,bq)}function ak(t,e){let r=Wq(t);if(r.length===0){let o=Vq(e);o!==void 0&&r.push({type:"text",text:o})}let n=0;return Array.isArray(t)?n=t.length:t!=null&&(n=1),{content:r,rawItemCount:n}}function Kq(t,e){let r=ak(e?.value(t.content),e?.value(t.structuredContent)),n=r.content.flatMap(o=>o.type==="text"?[{type:"text",text:e?.text(o.text)??""}]:[]);return n.length===0&&n.push({type:"text",text:"MCP stdio tool failed; no usable secret-free diagnostic content"}),{isError:!0,content:n,rawItemCount:r.rawItemCount}}var ck=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),Jq=new Set([502,503,504]),Bs=nk.length+1,Yq=2;function Xq(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 Qq(t){if(Ct(t)||Wh(t)||t instanceof mt)return;let e=t?.cause?.code;if(typeof e=="string")return ck.has(e)?{totalAttempts:Bs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:Yq}:Jq.has(r)?{totalAttempts:Bs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Bs}:void 0}var eH=80,tH=10,rH=/[^a-zA-Z0-9_.()-]/g,nH=new Set(["Error","McpError","McpSecretResolutionError","McpTransportClosedError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function lu(t){return t.replace(rH,"_").slice(0,eH)||"unknown"}function oH(t){let e=Xq(t);if(e!==void 0&&(/^\d{3}$/.test(e)||ck.has(e)))return e}function Be(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=nH.has(e)?e:"Error",n=oH(t);return n===void 0?r:`${r}(${n})`}function iH(t,e,r){return t instanceof mt?new mt(lu(t.serverName),t.missingKeys.slice(0,tH).map(lu),void 0,t.reason).message:t instanceof Hn?t.message:`MCP ${r} ${e} failed (${Be(t)})`}function Ko(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:lu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var fu=class extends Error{operation="transport";transport;kind;constructor(e,r){super(`MCP ${e} transport ${r}`),this.transport=e,this.kind=r}},pu=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_tools=[];_connectPromise;_connectStartedAt;_refreshPromise;_refreshPersisting=!1;_disposing=!1;_disposed=!1;_resolvedEnv;_resolvedHeaders;_resolvedCommand;_resolvedArgs;onStateChange;_lastEmittedState;_activeTransport;_reinitializingPromise;_inFlightCalls=new Set;_wedgeRecoveryOwners=new Set;_wedgePending=!1;_wedgeRequired=!1;_heartbeatTimer;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;_suppressStdioDiagnostics;_toolErrorRedactor;constructor(e,r){this._config=e,this._targetAuth=ee().targetMaterialStore?.auth(e),this._suppressStdioDiagnostics=e.type==="stdio"&&this._targetAuth?.credential!==void 0,this._hostedCredentialProvenance=r?Object.freeze({...r}):void 0,this.name=e.name,this._status=e.disabled?"disabled":"initializing"}_emitState(e,r){if(e!==this._lastEmittedState){this._lastEmittedState=e;try{this.onStateChange?.(e,r)}catch{}}}get targetCredentialProvenance(){return this._targetAuth?{credential:this._targetAuth.credential}:void 0}get status(){return this._status}get config(){return this._config}get hostedCredentialProvenance(){return this._hostedCredentialProvenance}get lastError(){return this._lastError}get suppressesProviderDiagnostics(){return this._suppressStdioDiagnostics}get connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._suppressStdioDiagnostics?[]:this._stdioTransport?.getLogHistory().map(e=>Vd(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{Y.warn(`MCP server "${this.name}" connect failed (${Be(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=this._connectFailureMessage(r,"connect"),o=this._config.type==="stdio"&&!this._suppressStdioDiagnostics&&!Ct(r)?Vd(Eq(n,e??this._stdioTransport)):n;this._recordConnectFailure(r,"connect",o),this._emitState(this._status==="auth_required"?"auth_required":"failed",Be(r))}}async _connectWithRetries(){let e=Bs,r={available:!0};for(let n=1;n<=Bs;n++)try{let o=await this._attemptConnect(r);return n>1&&Y.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=Qq(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=(nk[r-1]??0)+Math.floor(Math.random()*($q+1));Y.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Be(e)}; retrying in ${i}ms`),await pn(i)}async _attemptConnect(e){let r=this._config;(r.type==="http"||r.type==="sse")&&await this._maybeProactiveRefresh(),this._expandAugmentToken(),await this._resolveSecretRefs();let n=!1;for(;;)try{return await this._initializeFreshClient(e)}catch(o){if(this._disposed)return;if(!n&&e.available&&this._canRecoverInitialization(o)){if(n=!0,await this._recoverStartupAuthentication(o,e)==="disposed")return;continue}throw o}}_canRecoverInitialization(e){return Ct(e)&&this.hasRefreshEligibleOAuthCredential()&&!!this._usableToken()?.refreshToken}async _recoverStartupAuthentication(e,r){if(r.available=!1,this._disposed)return"disposed";let n=await this._refreshTokenDeduped();if(this._disposed)return"disposed";if(n.kind==="refreshed")return"retry";throw n.kind==="transient_failure"?new Gn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Hx();this._client=i;let s;try{if(await Zh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Gx,()=>{Y.debug(`MCP server "${this.name}" sent tools/list_changed; refreshing tools`),this._refreshTools()});let a=await this._listToolsWithAuthRetry(e);if(this._disposed)return await this._closeFailedInitialization(i,n),o;this._tools=this._safeTools(a.tools??[]),this._status="success",this._lastError=void 0,this._emitState("connected"),this._wireLivenessHandlers(),this._startHeartbeat();let c=ee();return c.tokens.clearAuthRequired(this.name),(c.servers.get(this.name)===void 0||c.servers.get(this.name)===this)&&it(c,this.name),Y.info(`MCP server "${this.name}" connected (${this._tools.length} tool(s))`),o}catch(a){throw await this._closeFailedInitialization(i,n),s??a}}async _closeFailedInitialization(e,r){if(this._client===e){this._client=void 0,this._activeTransport===r&&(this._activeTransport=void 0);try{await e.close()}catch(n){Y.debug(`MCP server "${this.name}" close after failed connect attempt (${Be(n)})`)}}}_connectFailureMessage(e,r){return this._suppressStdioDiagnostics?"MCP stdio connection failed; provider diagnostics are suppressed to protect credentials":iH(e,r,this._config.type)}_recordConnectFailure(e,r,n=this._connectFailureMessage(e,r)){if(e instanceof mt){this._status="failed";let o=ee();oi(o,this.name,e.reason,nr(o,this.name,this._config.id))}else if(e instanceof Zs||e instanceof Gn)this._status="failed";else if(Ct(e)&&this._isHostedAccessTokenOnly())this._status="failed",this.onAuthRefreshNeeded?.();else if(Ct(e)){this._status="auth_required";let o=ee(),i=o.servers.get(this.name);(i===void 0||i===this)&&o.tokens.markAuthRequired(this.name)}else{this._status="failed";let o=this._connectFailureMessage(e,r);Aa(Ko(o,Be(e)),{server:this.name,op:r,transport:this._config.type})}this._lastError=n,this._client=void 0}_createTransport(){let e=this._config,r=ee().targetMaterialStore;if(!this._targetAuth&&(r?.has(e.name)||e.id&&r?.has(e.id)))throw new Error("MCP target provenance is unavailable");switch(this._targetAuth?.headers(),e.type){case"stdio":{let n=Nx({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Dx(this._resolvedEnv??e.env);return jx({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 qx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Ux(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?Oq(r):!1,o=e.type==="stdio"&&Nr(e.command),i=e.type==="stdio"?e.args:[],s=i.some(Nr);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!Uy(a)){let u=zq({source:r,sourceHasSecretRef:n,command:e.type==="stdio"?e.command:void 0,commandHasSecretRef:o,args:i});throw new mt(this.name,u)}let c=this._targetAuth?.getSecret??jy(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 Gy({configEnv:e,localEnv:n&&!this._targetAuth?Lx():{},getSecret:s})}catch(c){throw Y.error(`MCP server "${this.name}" secret resolution failed (${Be(c)})`),new mt(this.name,ki(e),c,"transient")}let a=Kh([...o.unresolvedKeys,...o.emptyKeys]);if(a.length>0)throw new mt(this.name,a,void 0,ek(o.failureReasons,a));if(this._targetAuth){if(this._disposed)return;this._targetAuth.headers()}n?(this._suppressStdioDiagnostics&&(this._toolErrorRedactor=My(i)),this._resolvedEnv=o.resolved):this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await Zy(e,r,n)}catch(s){throw Y.error(`MCP server "${this.name}" command secret resolution failed (${Be(s)})`),new mt(this.name,Vh(e),s,"transient")}let i=Kh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new mt(this.name,i,void 0,ek(o.failureReasons,i));return o.resolved}_expandAugmentToken(){if(this._targetAuth)return;let e=this._config;if(e.type!=="http"&&e.type!=="sse")return;let r=e.headers;if(!r||!Object.values(r).some(s=>s.includes(du)))return;let o;if(Nq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${du} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${du} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Dq(e.url)}" does not qualify, sending the literal placeholder`,"error");if(o===void 0)return;let i={};for(let[s,a]of Object.entries(r))i[s]=a.replaceAll(du,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=ee();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?Y.error(i):Y.warn(i)}_usableToken(){let e=ee();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!ft(n,this._config)))return r}_buildAuthHeaders(){if(this._targetAuth)return this._targetAuth.headers();let e=this._usableToken();return e?.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{}}hasRefreshEligibleOAuthCredential(){let{config:e}=this;if(e.type!=="http"&&e.type!=="sse"||e.disabled||this._hostedCredentialProvenance!==void 0||!this._usableToken())return!1;if(e.auth==="oauth")return!0;let r=ee();return r.tokens.hasCredentialIdentity?.(this.name,qt(r,this))===!0}async _maybeProactiveRefresh(){let e=ee(),r=e.tokens,{config:n}=this;(n.type==="http"||n.type==="sse")&&await r.ensureLoaded?.(this.name,qt(e,this));let i=this._usableToken();i&&this.hasRefreshEligibleOAuthCredential()&&(i.accessToken&&!vd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():_i(i)&&e.tokens.markAuthRequired(this.name)))}refreshTokenIfPossible(){return this._refreshTokenDeduped()}getRefreshInFlight(){return this._refreshPromise}_refreshTokenDeduped(){if(this._disposing||this._disposed)return Promise.resolve({kind:"transient_failure"});let e=ee(),r=e.refreshes.get(this.name);if(r)return r.then(a=>a??{kind:"refreshed"});let n={state:e,tokenStore:e.tokens,serverGeneration:e.serverGenerations.get(this.name)??0,configRevision:e.configRevisions.get(this.name)??0,credential:e.credentialRevisions.get(this.name),localRefreshEnabled:e.shouldProactivelyRefreshTokens,failureScope:nr(e,this.name,this._config.id),token:this._usableToken(),hostWasUntracked:e.servers.get(this.name)===void 0},o=JSON.stringify([this.name,n.serverGeneration,n.configRevision,n.credential?.domain??null,n.credential?.revision??null]),i=e.refreshes.get(o);if(i)return i.then(a=>a??{kind:"refreshed"});let s=this._performTokenRefresh(n).finally(()=>{this._refreshPersisting=!1,e.refreshes.get(o)===s&&e.refreshes.delete(o),this._refreshPromise===s&&(this._refreshPromise=void 0)});return this._refreshPromise=s,e.refreshes.set(o,s),s}_ownsRefresh(e){let{state:r}=e,n=r.credentialRevisions.get(this.name),o=N(r,this.name)?.retirement?.incumbent.host,i=r.servers.get(this.name)===this||this._refreshPersisting&&o===this||e.hostWasUntracked&&r.servers.get(this.name)===void 0;return(!this._disposing||this._refreshPersisting)&&i&&(r.serverGenerations.get(this.name)??0)===e.serverGeneration&&(r.configRevisions.get(this.name)??0)===e.configRevision&&this._ownsRefreshCredential(e,n)&&(e.localRefreshEnabled===r.shouldProactivelyRefreshTokens||this._refreshPersisting)}_ownsRefreshCredential(e,r){return e.state.tokens===e.tokenStore&&e.tokenStore.get(this.name)===e.token&&r?.domain===e.credential?.domain&&r?.revision===e.credential?.revision}async _restoreAfterSupersededRefresh(e,r,n,o){let i=e.state.servers.get(this.name),s=e.state.tokens,a=s.get(this.name),c=e.state.credentialRevisions.get(this.name);if(s!==e.tokenStore||!i||!a||!ft(this._config,i.config))return;let u=qt(e.state,i),d=n===void 0&&u===void 0||xr(n,u);try{if(a===e.token&&d){s.commit(this.name,r,n),cn({state:e.state,name:this.name,revision:o});return}let l=await s.restoreAfterSupersededRefresh(this.name,r,a,n,o,u);if(!l||e.state.tokens!==s||e.state.servers.get(this.name)!==i||s.get(this.name)!==a||!xr(qt(e.state,i),u)||e.state.credentialRevisions.get(this.name)?.revision!==c?.revision||e.state.credentialRevisions.get(this.name)?.domain!==c?.domain||s.reconcileCredentialIdentity?.(this.name,a,u)!==!0)return;cn({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&D(f,e.state)}catch{Y.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&Sd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&oi(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),Y.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${Be(e)})`),n&&o?{kind:"terminal_failure"}:{kind:"transient_failure"}}async _performTokenRefresh(e){if(!e.localRefreshEnabled)return{kind:"transient_failure"};if(!e.token?.refreshToken)return this._ownsRefresh(e)?(e.state.tokens.markAuthRequired(this.name),oi(e.state,this.name,"auth_terminal",e.failureScope),{kind:"terminal_failure"}):{kind:"transient_failure"};try{let r=qt(e.state,this),n=await e.tokenStore.captureRefreshIdentityVersion(r);if(!this._ownsRefresh(e))return{kind:"transient_failure"};let o=await wd(e.token);if(!this._ownsRefresh(e))return{kind:"transient_failure"};this._refreshPersisting=!0;let i=await e.tokenStore.persistRefresh(this.name,o,r,n);if(!this._ownsRefresh(e))return await this._restoreAfterSupersededRefresh(e,o,r,i),{kind:"transient_failure"};e.tokenStore.commit(this.name,o,r),cn({state:e.state,name:this.name,revision:i}),it(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&D(s,e.state),Y.debug(`MCP server "${this.name}" token refreshed`),{kind:"refreshed"}}catch(r){return this._handleRefreshFailure(r,e)}}_isSessionExpiredError(e){return this._config.type!=="http"||this._activeTransport?.sessionId===void 0?!1:Wh(e)}_reinitializeSession(){return this._reinitializingPromise===void 0&&(this._reinitializingPromise=this._doReinitializeSession().finally(()=>{this._reinitializingPromise=void 0})),this._reinitializingPromise}async _doReinitializeSession(){if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);if(this._config.type!=="http")throw new Error("Session re-initialization is only supported for Streamable HTTP servers");await this._client.close();let e=this._createHttpTransport(this._config.url,this._resolvedHeaders??this._config.headers??{});try{await this._client.connect(e)}catch(r){throw this._recordConnectFailure(r,"reinit"),r}Y.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e){if(this._config.type!=="http")return e();try{return await e()}catch(r){let n=this._isSessionExpiredError(r),o=this._reinitializingPromise!==void 0;if(!(n||o))throw r;Y.info(n?`MCP server "${this.name}" returned 404 (session expired); re-initializing and retrying`:`MCP server "${this.name}" call interrupted by a concurrent re-initialization; retrying once`);try{await this._reinitializeSession()}catch(i){throw Y.error(`MCP server "${this.name}" session re-initialization failed (${Be(i)})`),Pq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Gn}async _withAuthRetry(e,r,n){let o=this._config,i=ee(),s=nr(i,this.name,this._config.id),a=n?.call;if(o.type!=="http"&&o.type!=="sse")return e();let c=()=>(a&&(a.failure=void 0),Zh({operation:r,onFailure:a?u=>{a.failure=u}:void 0},e));try{let u=await c();return this._clearHostedAuthFailure(),u}catch(u){let d=a?.failure??u;if(this._disposed||!Ct(d))throw d;let l=n?.startupAuthRefreshBudget;if(this._isHostedAccessTokenOnly())throw this.onAuthRefreshNeeded?.(),new Zs;if(this._hostedCredentialProvenance!==void 0)throw new Gn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;Y.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let m=a?.failure??p;throw Ct(m)&&this._markAuthRequired(m,s),m}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=ee();oi(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Be(e)),Y.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed(new fu(this._config.type,"closed"))},e.onerror=()=>{this._handleTransportClosed(new fu(this._config.type,"error"))})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},Mq),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=ee(),r=nr(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=Qx&&n.outcome==="transient";s++)await pn(Iq[s-2]??0),n=await this._runProbe();let o=nr(e,this.name,this._config.id),i=o.serverGeneration===r.serverGeneration&&o.mcpConfigId===r.mcpConfigId&&o.credentialRevision===r.credentialRevision&&o.credentialRevisionDomain===r.credentialRevisionDomain;return i&&n.outcome==="alive"&&it(e,this.name,r),i&&(n.outcome==="alive"||n.outcome==="authFailure")?this._lastProbeResult=n:n.outcome==="inconclusive"?Y.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&Y.debug(`MCP server "${this.name}" startup verification ping remained transient after ${Qx} 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:Xx})},"ping",{preserveAuthErrorOnRefreshUnavailable:!0}),{ok:!0,outcome:"alive"}}catch(r){let n=this._classifyProbeError(r,e);if(n==="alive")return{ok:!0,outcome:"alive"};let o=`MCP startup verification failed (${Be(r)})`,i=`MCP server "${this.name}" failed startup verification ping (${n}): ${o}`;return n==="transient"?Y.debug(i):Y.warn(i),{ok:!1,outcome:n,error:o,isAuthError:n==="authFailure"}}}_classifyProbeError(e,r){return r||!this._client||this._disposed||this._reinitializingPromise!==void 0?"transient":Bx(e)||Bh(e)?"alive":Ct(e)?"authFailure":Wx(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:Xx})}catch(r){if(this._reinitializingPromise||this._disposed||Bh(r))return;Y.warn(`MCP server "${this.name}" failed liveness ping; in-flight tool calls are treated as wedged`),this._failInFlightCalls(new Error(`MCP server "${this.name}" is unresponsive (liveness ping failed)`))}}_handleTransportClosed(e){this._reinitializingPromise||this._disposed||(this._stopHeartbeat(),this._failInFlightCalls(e))}_wedgeRecoveryOwnership(e){let r=e.failure;return Ct(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&&!Ct(n)&&(this._wedgeRequired=!0),this._wedgeRecoveryOwners.size!==0))return!1;let o=this._wedgePending&&this._wedgeRequired;return this._wedgePending=!1,this._wedgeRequired=!1,o}_failInFlightCalls(e,r=!0){let n=[...this._inFlightCalls].filter(c=>!c.livenessRejected);if(n.length===0)return;if(!r){for(let c of n)c.livenessRejected=!0,c.reject(e);Y.warn(`MCP server "${this.name}" failing ${n.length} in-flight tool call(s)`);return}let o=n.map(c=>({call:c,state:this._wedgeRecoveryOwnership(c)})),i=o.some(({state:c})=>c==="recoverable"),s=!1;for(let{call:c,state:u}of o)u==="recoverable"||u==="owned"&&i||(c.livenessRejected=!0,s=!0,c.reject(c.failure??e));let a=n.filter(c=>c.livenessRejected).length;Y.warn(`MCP server "${this.name}" failing ${a} in-flight tool call(s)`),this._wedgeRecoveryOwners.size>0?(this._wedgePending=!0,this._wedgeRequired||=s):s&&this.onWedged?.()}_listToolsWithAuthRetry(e){return this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.listTools()},"list_tools",{startupAuthRefreshBudget:e})}async _refreshTools(){if(!(this._disposed||this._status!=="success"||!this._client))try{let e=await this._listToolsWithAuthRetry();if(this._disposed)return;let r=this._safeTools(e.tools??[]),n=!vq(this._tools,r);if(this._tools=r,n){Y.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){Y.warn(`MCP server "${this.name}" onToolsChanged handler threw (${Be(o)})`)}}}catch(e){Y.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Be(e)}), keeping cached tools`)}}_safeTools(e){return this._suppressStdioDiagnostics?this._toolErrorRedactor?e.filter(r=>JSON.stringify(this._toolErrorRedactor?.value(r))===JSON.stringify(r)):[]:e}listTools(){return this._tools}async callTool(e,r,n){if(this._disposing||this._disposed)throw new Error(`MCP server "${this.name}" is being disposed`);if(this._status!=="success"||!this._client)throw new Error(`MCP server "${this.name}" is not connected (status: ${this._status})`);if(this._config.timeoutMs!==void 0&&this._config.timeoutMs>Yx)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${Yx}.`);let o=this._toolErrorRedactor,s={timeout:this._config.timeoutMs??Tq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??Aq,onprogress:l=>{this._suppressStdioDiagnostics||Y.debug(`MCP server "${this.name}" tool "${e}" progress: ${l.progress}${l.total===void 0?"":`/${l.total}`}${l.message?` - ${l.message}`:""}`)}},a,c=new Promise((l,f)=>{a={reject:f,livenessRejected:!1,sessionRecoveryOwned:!1}});c.catch(()=>{}),a&&this._inFlightCalls.add(a);let d=this._withSessionRetry(()=>this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.callTool({name:e,arguments:r??{}},Zx,s)},"tool_call",{call:a})).then(l=>(a&&this._settleInFlightCall(a,!0,void 0),l),l=>{throw a&&this._settleInFlightCall(a,!1,l),l});try{let l=await Promise.race([d,c]);if(this._suppressStdioDiagnostics&&l.isError===!0)return Kq({content:l.content,structuredContent:l.structuredContent},o);let f=ak(l.content,l.structuredContent);return{isError:l.isError===!0,content:f.content,rawItemCount:f.rawItemCount}}catch(l){return(n?.aborted||l instanceof Error&&l.name==="AbortError")&&this._throwCallCancellation(l),this._reportAndThrowToolError(l,e)}finally{a&&!this._wedgeRecoveryOwners.has(a)&&(a.failure=void 0,this._inFlightCalls.delete(a))}}_throwCallCancellation(e){throw this._suppressStdioDiagnostics?Ko("MCP stdio tool call cancelled","AbortError"):e}_reportAndThrowToolError(e,r){if(this._suppressStdioDiagnostics){let c=Ko("MCP stdio tool call failed; provider diagnostics are suppressed to protect credentials","Error");throw this._disposed||Aa(c,{server:this.name,op:"tool_call",transport:"stdio"}),c}if(e instanceof Gn||e instanceof Zs)throw e;if(Ct(e))throw new Error(`Authentication failed for MCP server "${this.name}". Reconnect "${this.name}" in MCP settings before retrying this tool.`);let o=lu(r),i=Be(e),s=Vx(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 xq(e)||Aa(Ko(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Ko(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._toolErrorRedactor=void 0,this._targetAuth&&(this._resolvedHeaders=void 0,this._resolvedEnv=void 0,this._resolvedCommand=void 0),this._stopHeartbeat(),this._failInFlightCalls(new Error(`MCP server "${this.name}" is being disposed`),!1),this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1}async dispose(e){this.beginDisposal(),await this._refreshPromise,this._stopHeartbeat();let r=this._client;if(this._client=void 0,this._activeTransport=void 0,this._reinitializingPromise=void 0,this._wedgeRecoveryOwners.clear(),this._wedgePending=!1,this._wedgeRequired=!1,this._stdioTransport=void 0,!!r)try{await r.close()}catch(n){if(this._suppressStdioDiagnostics){let o=Ko("MCP stdio close failed","Error");if(Y.debug(o.message),e?.strict)throw o;return}if(Y.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var uk=aH.child({prefix:"pi-mcp"}),cH=3,uH=6e4;function dH(t,e){let r=Date.now(),n=r-uH,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=cH?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function dk(t){ir(t),la(t)}async function lH(t,e,r){if(!dH(e,t)){uk.warn(`MCP server "${t}" automatic restart rate-limited`);return}uk.warn(`MCP server "${t}" wedged; recycling transport`),await en(t,e,r)}function hu(t,e,r){if(fH(e)){dk(t),D(t,e);return}cd(t,r),Ir(e)&&dk(t),D(t,e)}function fH(t){return fi()||t.toolSearchLatched}function er(t,e,r){return Zu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function Yh(t,e){t.serverGenerations??=new Map;let r=(t.serverGenerations.get(e)??0)+1;return t.serverGenerations.set(e,r),t.statusFailureCategories??=new Map,it(t,e),t.authRefreshNeededReportKeys.delete(e),r}function pH(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&&Jm(o.domain,r.id,o.ownerDomain);return o!==void 0&&i!==void 0&&s!==void 0&&a&&c&&u&&d&&l?Object.freeze({kind:"accepted",configId:r.id,credentialRevision:o.revision,credentialRevisionDomain:o.domain,hostGeneration:n,hostedAccessTokenOnly:s.accessTokenOnly}):s===void 0&&e.shouldProactivelyRefreshTokens?void 0:Object.freeze({kind:"incomplete",configId:r.id,hostGeneration:n})}function Xh(t){let{state:e,config:r,generation:n}=t;return new pu(r,pH({state:e,config:r,hostGeneration:n}))}function We(t,e,r="base"){t.configRevisions??=new Map,t.configDesiredRevisions??=new Map,t.configDesiredSources??=new Map;let o=Math.max(t.configRevisions.get(e)??0,t.configDesiredRevisions.get(e)??0)+1;return t.configDesiredRevisions.set(e,o),t.configDesiredSources.set(e,r),o}function Qh(t,e){if(e.id&&e.registrySource!==void 0){let r={...e};t.registryConfigNamesById.set(e.id,e.name),t.registryCredentialConfigs.set(e.name,r),t.registryCredentialConfigsById.set(e.id,r)}}function em(t,e,r){return t.configDesiredRevisions.get(e)===r}function lk(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function tm(t,e,r,n){t.onStateChange=(a,c)=>{if(!er(t,e,r))return;let u={server:t.name,state:a,...c===void 0?{}:{errorType:c}};n.events.emit(sH,u)},t.onWedged=()=>{if(!er(t,e,r))return;let a=r.currentLoad?.latestPi??n;lH(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(!er(t,e,r)||!s)return;let a=JSON.stringify(s);r.statusFailureCategories.set(t.name,{category:"auth_refresh_needed",...s}),r.authRefreshNeededReportKeys.get(t.name)!==a&&(r.authRefreshNeededReportKeys.set(t.name,a),D(r.currentLoad?.latestPi??n,r))},t.onAuthRefreshCleared=()=>{if(!er(t,e,r)||!s)return;let a=r.statusFailureCategories.get(t.name);typeof a=="object"&&a.category==="auth_refresh_needed"&&it(r,t.name,s)&&D(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{er(t,e,r)&&t.status==="success"&&hu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;ud(a,t,e),a!==n&&ud(n,t,e)}}async function fk(t,e,r,n){let o=setTimeout(()=>{er(t,e,r)&&D(n(),r)},Qs);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),er(t,e,r)&&D(n(),r)}}async function pk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function mu(t,e){if(e.status!=="installed")return!1;let r=N(t,e.config.name);return r?.revision===e.leaseRevision&&r.host?.config===e.config}async function hH(t){let{state:e,config:r,displaced:n,retirement:o}=t;Qh(e,n.config),ui(e,r.name),n.beginDisposal?.();try{let i=Wu(n.config,r)?Promise.resolve():pt(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;ve({state:e,name:r.name,retirement:o,result:{status:"retired"}})}catch(i){throw ve({state:e,name:r.name,retirement:o,result:{status:"failed",error:i}}),i}}async function mH(t){let{state:e,server:r,owner:n,leaseRevision:o}=t,i=st({state:e,name:r.name,owner:n,revision:o,host:r});if(i){r.beginDisposal?.();try{await r.dispose({strict:!0}),ve({state:e,name:r.name,retirement:i,result:{status:"retired"}}),xe({state:e,name:r.name,owner:n,revision:o})}catch(s){throw ve({state:e,name:r.name,retirement:i,result:{status:"failed",error:s}}),s}}}async function gH(t){let{state:e,server:r,config:n,generation:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t;return await r.connect(),er(r,o,e)?a?.(n)===!1?(await mH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&hu(c(),e,r),D(c(),e),r.status==="failed"?{status:"unavailable",config:n,error:new Error(r.lastError??`MCP server "${n.name}" failed`)}:{status:"installed",config:n,leaseRevision:s}):{status:"superseded",config:n}}function yH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=N(e,r.name);if(!em(e,r.name,n)||u?.revision!==s||a?.(r)===!1)return xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r};e.configRevisions.set(r.name,n);let d=Yh(e,r.name),l=Xh({state:e,config:r,generation:d});return tm(l,d,e,o),ra({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:gH({state:e,server:l,config:r,generation:d,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c})}:(xe({state:e,name:r.name,owner:i,revision:s}),{status:"superseded",config:r})}function vH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!em(r,a.name,c))return{status:"superseded",config:a};let u=r.servers.get(a.name),d=u?Q(r,a.name,u):N(r,a.name),l=Pr(a,i),f=ai({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,m=()=>yH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),h=async()=>(f.displacedHost&&f.retirement?await hH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Gu(f.retirement),m());return f.retirement?h():m()}async function Ve(t,e,r,n,o,i){let s=()=>e.currentLoad?.latestPi??r,c=t.map(d=>({config:d,revision:o?.get(d.name)??We(e,d.name)})).map(async d=>{try{let l=await vH({intent:d,state:e,pi:r,sourceOwnership:n,sourceKind:i,activePi:s});return"connection"in l?l.connection:l}catch(l){return{status:"failed",config:d.config,error:l}}});if(c.length===0)return[];let u=setTimeout(()=>{D(s(),e)},Qs);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function _H({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!lk(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Zu(e,t,o))return!1;Qh(e,i),ui(e,t);let a=st({state:e,name:t,owner:s.owner,revision:s.revision,host:o});if(!a)return!1;o.beginDisposal?.();try{await o.dispose({strict:!0}),ve({state:e,name:t,retirement:a,result:{status:"retired"}})}catch(l){throw ve({state:e,name:t,retirement:a,result:{status:"failed",error:l}}),l}if(N(e,t)?.revision!==s.revision||!lk(e,t,n))return xe({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=Yh(e,t),u=Xh({state:e,config:i,generation:c});if(tm(u,c,e,r),!ra({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await fk(u,c,e,d),er(u,c,e)&&u.status==="success"&&hu(d(),e,u),!0}function en(t,e,r){e.reconnects??=new Map,e.configRevisions??=new Map,e.reconnectDesiredGenerations??=new Map,e.statusFailureCategories??=new Map;let n=(e.reconnectDesiredGenerations.get(t)??0)+1;e.reconnectDesiredGenerations.set(t,n);let o=e.reconnects.get(t);if(o)return o;let i=(async()=>{let s=0,a=e.configRevisions.get(t)??0;do{let c=e.reconnectDesiredGenerations.get(t)??0;if((e.configRevisions.get(t)??0)!==a||!await _H({name:t,state:e,pi:r,configRevision:a}))return;s=c}while(s<(e.reconnectDesiredGenerations.get(t)??s))})().finally(()=>{e.reconnects.get(t)===i&&e.reconnects.delete(t)});return e.reconnects.set(t,i),i}async function SH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;Qh(e,n.config),ui(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Wu(n.config,o)?Promise.resolve():pt(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&&ve({state:e,name:r,retirement:i,result:{status:"retired"}})}catch(s){throw i&&ve({state:e,name:r,retirement:i,result:{status:"failed",error:s}}),s}}async function hk(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=Qn(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(h=>h.name===t),c=We(e,t),u=e.servers.get(t),d=u?Q(e,t,u):N(e,t),l={kind:"local",identity:a?.id??t},f=ai({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await SH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Gu(f.retirement),N(e,t)?.revision!==f.lease.revision||!em(e,t,c)){xe({state:e,name:t,owner:l,revision:f.lease.revision});return}if(e.configRevisions.set(t,c),!a){xe({state:e,name:t,owner:l,revision:f.lease.revision}),D(i(),e);return}let p=Yh(e,t),m=Xh({state:e,config:a,generation:p});tm(m,p,e,r),ra({state:e,name:t,owner:l,revision:f.lease.revision,host:m})&&(await fk(m,p,e,i),er(m,p,e)&&m.status==="success"&&hu(i(),e,m))}async function Ws(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>en(n,e,r)))}finally{e.reconnecting=!1}}var mk=Symbol.for("__pi_mcp_registry_ingress__");function gu(t){return Object.defineProperty(t,mk,{value:!0}),t}function Bn(t){return Object.getOwnPropertyDescriptor(t,mk)?.value===!0}function tn(t){let{state:e,target:r,byConfigId:n=!1}=t;if(!r)return;let o=[...e.servers].filter(([u,d])=>d.config.id===r||!n&&u===r);if(o.length!==1)return;let i=o[0];if(!i)return;let[s,a]=i;if(a.config.id&&[...e.servers].some(([u,d])=>u!==s&&d.config.id===a.config.id))return;let c=N(e,s);if(!(c&&(c.host!==a||c.owner.kind==="registry"&&c.connectionEpoch!==e.mcpConnectionEpoch))&&!(!c&&e.mcpConnectionEpoch!==void 0&&a.config.registrySource!==void 0)&&!((n||s!==r)&&!Bn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as wH}from"@hermes/logger";var bH=wH.child({prefix:"pi-mcp"}),RH=1e6,CH=1e3,PH=/^\d+$/;function gk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function rn(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t.credential_revision??t.credentialRevision,r=t.credential_revision_domain??t.credentialRevisionDomain;if(typeof e!="string"||!PH.test(e)||typeof r!="string"||r.length===0)return;let n=Wm(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:gk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function xH(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 kH(t,e,r){if(t===void 0)return!0;let n=gk(t);return n===e.domain||r?.kind==="domain"&&e.ownerDomain===r.domain||r?.kind==="domain"&&(n.startsWith("private:")||n.startsWith("shared:"))&&e.domain.startsWith("recipient:")&&Er(n)===r.domain&&Er(e.domain)===r.domain?!0:r?.kind==="domain"&&!ct(n)&&ct(e.domain)&&Er(n)===r.domain}function EH(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 bH.warn(`Skipping MCP OAuth credentials for "${t}": invalid credential revision or domain`),"reject";let s=n?.expectedDomains?.get(t);if(r===void 0)return n?.requireRevision===!0||s!==void 0||n?.acceptedDomains?.has(t)===!0?"reject":"apply";let a=Er(r.domain);if(s?.kind==="blocked"||s?.kind==="domain"&&r.ownerDomain!==void 0&&r.ownerDomain!==s.domain||s?.kind==="domain"&&r.ownerDomain===void 0&&!ct(r.domain)&&a!==s.domain)return"reject";let c=n?.acceptedDomains?.get(t);if(!kH(c,r,s))return"reject";let u=xH(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 TH(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 AH(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 MH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*CH+Math.floor(t.access_token_expires_at.nanos/RH):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 $H(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(!AH(n))return{decision:"reject"};let i=rn(n),s=EH(r,n,i,o);if(s==="reject")return{decision:s};let a=MH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!$H(e.get(r),a))||s==="apply"&&TH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function yu(t,e,r){let n={applied:[],equal:[],rejected:[]};for(let[o,i]of Object.entries(e)){let s=_r({store:t,serverName:o,proto:i,options:r});if(s.decision!=="apply"){n[s.decision==="equal"?"equal":"rejected"].push(o);continue}let{token:a,revision:c}=s;t.set(o,a),r?.equalRevisionRebindDomains?.delete(o),c!==void 0&&(r?.acceptedRevisions?.set(c.domain,c.revision),r?.acceptedDomains?.set(o,c.domain)),n.applied.push(o)}return n}var yk=IH.child({prefix:"pi-mcp"});function OH(t,e){let r=tn({state:t,target:e,byConfigId:!0});if(!r)return;let o=N(t,r.name)?.owner??Pr(r.server.config);return o.kind==="registry"&&o.identity===`user:${e}`?r:void 0}function zH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=rn(i);if(s===void 0)return!1;let a=un(s);return s.ownerDomain!==void 0?a===`user:${e}`:o===r&&ct(s.domain)||a===`user:${e}`});return n.length===1?n[0]?.[1]:void 0}async function vk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){yk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=OH(r,n.configId),i=o?zH(n.credentials,n.configId,o.server.config.name):void 0;if(!o||!i)return;let s=N(r,o.name),a=r.mcpConnectionEpoch;if(o.server.config.type==="stdio"||o.server.config.auth!=="oauth")return;let c=()=>({acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}),u=()=>_r({store:r.tokens,serverName:o.name,proto:i,options:c()});if(u().decision==="reject")return;let d=o.server.getRefreshInFlight?.();if(d&&await Promise.resolve(d).catch(()=>{}),r.mcpConnectionEpoch!==a||r.servers.get(o.name)!==o.server||N(r,o.name)!==s||u().decision==="reject")return;Q(r,o.name,o.server),r.shouldProactivelyRefreshTokens=!1;let l=yu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let h=rn(i);h&&(r.credentialRevisions.set(o.name,h),r.hostedCredentialOwnership.set(o.name,{...h,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??en,m=t.report??D;await p(o.name,r,f).catch(h=>{yk.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${h instanceof Error?h.name:"non-Error"}`)}),m(f,r),_e(r)}import{logger as KH}from"@hermes/logger";import{randomUUID as NH}from"node:crypto";import{setToolSource as DH}from"@augmentcode/auggie-v2";import{logger as LH}from"@hermes/logger";import{Type as jH}from"@sinclair/typebox";var Sk=LH.child({prefix:"pi-mcp"}),tr="attach-mcp-server",FH="augment:mcp-attach-request",UH=15e3,qH={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 HH(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 GH(t,e){let r=e.name.toLowerCase();return ln(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function rm(t,e){let r=GH(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 ZH(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},UH);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function _k(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 BH(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Ce(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${rm(r,e)}`);if(n?.status==="failed"||r.failedAddConfigIds.has(e.id))return Ce(`MCP server "${e.name}" failed to connect after the attach was accepted. Ask the user to reconnect it from the session MCP panel before trying again.${rm(r,e)}`)}function WH(t){let{entry:e,result:r,state:n}=t;if(r===void 0)return Ce(`Timed out waiting for the attach request for "${e.name}" to be acknowledged. The server may still attach shortly; check find-tool's server list before retrying.`);if(r.error==="UNIMPLEMENTED")return n.mcpAttachDisabled=!0,Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");if(r.error==="DENIED")return Ce(`The control plane denied the request to attach "${e.name}". Do not retry; ask the user to verify that the server is available for this session.`);if(r.error!==void 0)return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);switch(r.status){case"ACCEPTED":return Ce(`Attach accepted for "${e.name}". Connection continues in the background; use find-tool to discover its tools when ready. If its tools do not appear, call attach-mcp-server again with the same config id for connection guidance.`);case"ALREADY_ATTACHED":return Ce(`MCP server "${e.name}" is already attached to this session. Use find-tool to discover its tools.`);case"AUTH_REQUIRED":return Ce(`MCP server "${e.name}" requires authentication \u2014 the user must connect it from the session MCP panel before it can be attached.${rm(n,e)}`);case"NO_ACTIVE_VM":return Ce(`Could not reach the control plane to attach "${e.name}". Try again later.`);default:return Ce(`The attach request for "${e.name}" returned an unrecognized status. Check find-tool's server list shortly to see whether it attached.`)}}async function VH(t,e,r){if(e.mcpAttachDisabled)return Ce("Attaching MCP servers is not enabled for this session. Ask the user to attach the server from the session's MCP settings instead.");let{config_id:n}=r??{};if(typeof n!="string"||n.trim().length===0)throw new Error(`${tr} requires a string "config_id" parameter. ${_k(e)}`);let o=HH(e,n);if(o.kind==="none")return Ce(`No MCP server matching "${n}" is available to attach. ${_k(e)}`);if(o.kind==="ambiguous"){let l=o.candidates.map(f=>`"${f.name}" (id: ${f.id})`).join(", ");return Ce(`Multiple MCP servers match the name "${n}": ${l}. Retry with the exact id of the intended server.`)}let i=o.entry,s=BH({entry:i,state:e});if(s!==void 0)return s;if(dd(e,i))return Ce(`MCP server "${i.name}" is already attached to this session. Use find-tool to discover its tools.`);if(i.state!=="available"&&i.state!=="opt_in_required")return Ce(`MCP server "${i.name}" is not currently available to attach. Ask the user to attach it from the session's MCP settings.`);let a=NH();Sk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=ZH(e,a);t.events.emit(FH,{configId:i.id,requestId:a});let u=await c,d=WH({entry:i,result:u,state:e});return e.mcpAttachDisabled&&(e.mcpCatalog=void 0,t.unregisterTool(tr),to(tr),Ir(e)&&ir(t)),d}function vu(t,e){let r={name:tr,label:tr,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:jH.Unsafe(qH),execute:(n,o)=>VH(t,e,o)};DH(tr,"mcp"),t.registerTool(r),Mr(r),Sk.debug("Registered attach-mcp-server tool")}var _u=KH.child({prefix:"pi-mcp"}),nm="augment:mcp-attach-result";function wk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(nm,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){_u.warn(`${nm} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){_u.debug(`${nm}: no pending resolver for request ${o} (already timed out?)`);return}let s={...typeof n?.status=="string"?{status:n.status}:{},...typeof n?.error=="string"?{error:n.error}:{}};i(s)}))}function Su(t,e){if(e.mcpAttachCloudSignaled&&fa(e)){vu(t,e);return}e.mcpAttachCloudSignaled&&lg(tr)!==void 0&&(t.unregisterTool(tr),to(tr))}function Jo(t,e){if(!e.mcpAttachCloudSignaled||!fa(e)||!e.credentials)return Promise.resolve();if(e.catalogRefreshInFlight)return e.catalogRefreshInFlight;let r=e.credentials,n=e.mcpConnectionEpoch,o=(async()=>{let i=await Sg(r);if(e.mcpConnectionEpoch!==n||e.credentials!==r)return;i.ok?(e.mcpCatalog=i.entries,_u.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,_u.debug("MCP catalog endpoint unavailable (404); disabling attach for this session"));let s=e.currentLoad?.latestPi??t;Su(s,e),Ir(e)&&ir(s)})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as uG}from"@hermes/logger";function JH(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case pi.OAUTH:return"oauth";case pi.API_KEY:return"header";default:return}let e=String(t).toLowerCase();if(e==="oauth"||e==="mcp_auth_type_oauth")return"oauth";if(e==="header"||e==="api_key"||e==="mcp_auth_type_api_key")return"header"}function YH(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case dn.CLI:return"cli";case dn.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function wu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(YH).filter(r=>r!==void 0);return e.length===0?void 0:e}function bu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=JH(r.auth_type),o={name:r.name,type:r.type==="http"||r.type==="sse"||r.type==="stdio"?r.type:void 0,disabled:r.disabled,command:r.command,args:r.args,env:r.env,url:r.url,auth:n==="oauth"?"oauth":void 0,timeoutMs:r.timeout_ms,useShellInterpolation:r.use_shell_interpolation},i=Yn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...Xn(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof kt?s.message:String(s)}}}function XH(t){let e=t.config?.auth_type;return e===pi.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function QH(t){let e=t.name;return t.type==="stdio"?`stdio\0${e}\0${t.command}\0${t.args.join(" ")}`:`${t.type}\0${e}\0${t.url}`}function om(t,e,r){let n=new Map;for(let o of t)r(o.id)&&n.set(o.id,o);for(let o of e)n.set(o.id,o);return[...n.values()]}function eG(t,e,r){if(r!==void 0&&t.added_by===r)return wu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?wu(n):[]}function tG(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=om(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(m=>m.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),m=om(e,r,()=>!0),h=new Set(m.map(b=>b.id)),g=m.filter(b=>p.has(b.id)),v=m.filter(b=>!p.has(b.id)).map(b=>b.id),w=i.filter(b=>!h.has(b));return{selected:g,filteredOutIds:v,missingIds:w,retainedNames:[]}}let a=new Set(n),c=[];for(let p of e)a.has(p.id)||c.push(p.id);let u=om(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let h=!d.has(p.id)&&a.has(p.id)?eG(p,o,s):wu(p.enabled_products);h===void 0||h.includes("cloud_agent")?l.push(p):(c.push(p.id),p.config?.name&&f.push(p.config.name))}return{selected:l,filteredOutIds:c,missingIds:[],retainedNames:f}}function rG(t){return t==null?dn.CLOUD_AGENT:void 0}function nG(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 bk(t,e,r,n){try{let o=t.type==="stdio"?Gt(t,n):Ht(t,n);return{ok:!0,server:gu(o)}}catch(o){let i=o instanceof Error?o.message:String(o);return{ok:!1,diagnostic:{server:t.name,message:`Skipped registry MCP server "${t.name}" (id=${e}, ${r}): ${i}`}}}}function oG(t){let{payload:e,userIds:r,localServerNames:n,seenNames:o,workspaceRoot:i}=t;if(e.config?.disabled)return e.config.name?{kind:"retained",name:e.config.name}:{kind:"dropped"};let s=r.has(e.id)?"user":"tenant",a=bu(e,s);if(!a.ok){let d=e.config?.name,l={server:d,message:`Skipped registry MCP server "${d??e.id}" (id=${e.id}, ${s}): ${a.reason}`};return d?{kind:"retained",name:d,diagnostic:l}:{kind:"dropped",diagnostic:l}}let c=a.server;if(o.has(c.name)){if(n.has(c.name))return{kind:"retained",name:c.name,diagnostic:{server:c.name,message:`Skipped registry MCP server "${c.name}" (id=${e.id}, ${s}): a local server with the same name takes precedence`}};let d=bk(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=bk(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 iG(t){let e=[],r=[],n=[];for(let o of t)XH(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 sG(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=QH(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 aG(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function Ru(t){let e=t.client??new ha(t.creds),{tenant:r,user:n,diagnostics:o}=await $g(e,rG(t.configIds)),i=n.mcp_configs??[],s=new Set(i.map(b=>b.id)),{selected:a,filteredOutIds:c,missingIds:u,retainedNames:d}=tG({tenantConfigs:r.mcp_configs??[],userConfigs:i,enabledSharedServerIds:n.enabled_shared_server_ids??[],serverProductPreferences:n.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId}),l=iG(a),f=l.selected;c.push(...l.droppedIds),o.push(...l.diagnostics),o.push(...nG(u));let p=[],m=new Map,h=new Set(t.localServerNames),g=[...f.filter(b=>s.has(b.id)),...f.filter(b=>!s.has(b.id))];for(let b of g){let x=oG({payload:b,userIds:s,localServerNames:t.localServerNames,seenNames:h,workspaceRoot:t.workspaceRoot});aG(x,{servers:p,retainedNames:d,diagnostics:o,nameCollisionFallbacks:m})}let v=sG(p);d.push(...v.droppedNames),o.push(...v.diagnostics);let w=new Map;for(let b of[...r.mcp_configs??[],...i])b.config?.name&&w.set(b.id,b.config.name);return{servers:v.servers,diagnostics:o,filteredOutIds:c,retainedNames:d,namesById:w,nameCollisionFallbacks:m}}import{logger as cG}from"@hermes/logger";var Yo=cG.child({prefix:"pi-mcp"});function Rk(t,e,r){let n=t;if(!n||typeof n!="object"||!n.id){Yo.warn("Embedded MCP config is missing an id; ignoring");return}let o=r?.get(n.id);if(o)return o;let i=bu(n,"tenant");if(!i.ok){Yo.warn(`Embedded MCP config '${n.id}' is not convertible; ignoring: ${i.reason}`);return}let s=e??process.cwd();try{return gu(i.server.type==="stdio"?Gt(i.server,s):Ht(i.server,s))}catch(a){Yo.warn(`Embedded MCP config '${n.id}' failed expansion; ignoring: ${a instanceof Error?a.message:String(a)}`);return}}function Ck(t,e){let r;try{r=JSON.parse(t)}catch(n){Yo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return Rk(r,e)}function Xo(t,e,r){let n=t;if(typeof n=="string")try{n=JSON.parse(n)}catch(a){Yo.warn(`Failed to parse embedded MCP configs: ${a instanceof Error?a.name:"non-Error thrown"}`);return}if(!Array.isArray(n)){Yo.warn("Embedded MCP configs payload is not an array; ignoring");return}let o=[],i=new Map,s=!1;for(let a of n){let c=a,u=Rk(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 jt=uG.child({prefix:"pi-mcp"});function xk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function kk(t){let{state:e,name:r,lease:n,host:o,isDeselected:i,selectionIsEmpty:s,replacementOwners:a}=t;if(s)return o?st({state:e,name:r,owner:n.owner,revision:n.revision,host:o})?(We(e,r),"retiring"):void 0:(xe({state:e,name:r,owner:n.owner,revision:n.revision}),We(e,r),"released");let c=a.get(r),u=ai({state:e,name:r,owner:c??n.owner,expectedRevision:n.revision,...o?{expectedHost:o}:{}});if(u)return i&&c===void 0&&e.expectedCredentialDomains.set(r,{kind:"blocked"}),{configRevision:We(e,r),leaseRevision:u.lease.revision}}function dG(t){let{state:e,name:r,server:n,selectedIds:o,replacementOwners:i,slotReservations:s,processedNames:a}=t,c=Q(e,r,n);if(c.owner.kind!=="registry"||c.host!==n)return;a.add(r);let u={...n.config};e.registryCredentialConfigs.set(r,u),n.config.id&&(e.registryConfigNamesById.set(n.config.id,r),e.registryCredentialConfigsById.set(n.config.id,u));let d=kk({state:e,name:r,lease:c,host:n,isDeselected:xk({selectedIds:o,config:n.config}),selectionIsEmpty:o?.size===0,replacementOwners:i});if(d===void 0)return;d!=="released"&&d!=="retiring"&&s.set(r,d);let l=N(e,r)?.retirement;return n.beginDisposal?.(),n.dispose({strict:!0}).then(()=>{l&&ve({state:e,name:r,retirement:l,result:{status:"retired"}}),d==="retiring"&&xe({state:e,name:r,owner:c.owner,revision:c.revision})},f=>{throw l&&ve({state:e,name:r,retirement:l,result:{status:"failed",error:f}}),f})}function lG(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=kk({state:e,name:r,lease:n,isDeselected:xk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function fG(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=dG({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||lG({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function Ek(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 m=f.id===void 0?c.has(l):a.has(f.id);p===void 0&&!m&&i.push(pt(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 xt(f)}let d=new Map;for(let[l,f]of s){let p=t.registryCredentialConfigs.get(l);p&&(d.set(l,{...p}),ft(p,f)&&f.id!==void 0&&t.registryCredentialConfigsById.set(f.id,{...f}))}t.registryCredentialConfigs=d}function pG(t,e,r){let n=e!=null&&e.length>0?new Set(e):void 0,o=[],i=[],s=[],a=[],c=new Set(r);for(let l of t.servers){if(n&&l.id!==void 0&&!n.has(l.id)){s.push(l.id);continue}if(c.has(l.name)){i.push({server:l.name,message:`Skipped embedded MCP server "${l.name}" (id=${l.id}): a local server with the same name takes precedence`}),a.push(l.name);continue}c.add(l.name),o.push(l)}let u=new Set(o.map(l=>l.name)),d=new Set(a);for(let[l,{name:f}]of t.allConfigsById)n&&!n.has(l)||u.has(f)||d.has(f)||(d.add(f),a.push(f));return{servers:o,diagnostics:i,filteredOutIds:s,retainedNames:a}}function hG(t){let{state:e,configIds:r,admittedConfigs:n}=t,o=e.embeddedRegistryConfigs;if(e.embeddedRegistryConfigs=void 0,r?.length===0||Array.isArray(o)&&o.length===0)return{servers:[],allConfigsById:new Map};if(o!==void 0)return Xo(o,e.workspaceRoot??process.cwd(),n)}async function mG(t){let{state:e,previousSelectedIds:r,configIds:n}=t;if(!n)return;let o=new Set(n),i=[],s=[];for(let a of r){if(o.has(a))continue;let c=e.registryConfigNamesById.get(a),u=[...o].some(d=>e.registryCredentialIntents.get(at(d))?.configName===c);if(c&&!u){let d=e.registryCredentialConfigs.get(c);i.push({id:a,name:c}),s.push(pt(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 xt(c)}}function gG(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 yG(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 vG(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);o.owner.kind==="local"&&o.host===n&&e.add(r)}for(let[r,n]of t.hostLeases)n.owner.kind==="local"&&e.add(r);return e}function _G(t){let{state:e,result:r,previousSelectedIds:n,selection:o}=t,i=new Set([...o??[],...r.servers.flatMap(s=>s.id===void 0?[]:[s.id]),...r.namesById?.keys()??[]]);return Ek(e,r.servers,n,i,o!==void 0)}async function Tk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():li(t,r.id)))}async function Pk(t){return await Tk(t.state,t.result),t.state.registryGeneration===t.generation&&await _G(t),t.result}function SG(t){let{state:e,configIds:r,parsedEmbedded:n,credentials:o,localServerNames:i,previousSelectedIds:s,selection:a,generation:c,discover:u}=t;if(n){jt.info(`Registry selection: using ${n.servers.length} embedded config(s) (no registry fetch)`);let l=pG(n,r,i);return Pk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})}return o?u({configIds:r,creds:o,currentUserId:o.userId,workspaceRoot:e.workspaceRoot??process.cwd(),localServerNames:i}).then(l=>Pk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})):void 0}function wG(t){let{state:e,result:r,selection:n}=t;e.selectedRegistryConfigIds=n;for(let o of r.diagnostics)e.diagnostics.push({...o,origin:"registry"}),jt.warn(o.message);for(let[o,i]of r.namesById??[])e.registryConfigNamesById.set(o,i);r.filteredOutIds.length>0&&jt.info(`Registry discovery filtered out ${r.filteredOutIds.length} server(s) by selection/opt-in/product`)}function bG(t){let{state:e,result:r}=t,n=r.servers.map(i=>{let s=e.sessionRegistryDisabledOverrides.get(i.name);return s===void 0?i:{...i,disabled:s}}),o=new Set([...n.map(i=>i.name),...r.retainedNames??[]]);for(let i of e.sessionRegistryDisabledOverrides.keys())o.has(i)||e.sessionRegistryDisabledOverrides.delete(i);return n}function Ak(t){let{state:e,generation:r}=t;return n=>{if(e.registryGeneration!==r||n.id===void 0)return e.registryGeneration===r;let o=e.missingHostRemovalFences.get(n.id);return!e.sessionRemovedConfigIds.has(n.id)&&o?.registryGeneration!==r}}function im(t){let{state:e,result:r,selection:n,slotReservations:o}=t,i=new Set([...r.servers.map(s=>s.name),...r.retainedNames??[],...(n??[]).flatMap(s=>{let a=e.registryConfigNamesById.get(s);return a?[a]:[]})]);for(let[s,a]of o){if(i.has(s))continue;let c=N(e,s);c?.owner.kind==="registry"&&c.host===void 0&&c.revision===a.leaseRevision&&xe({state:e,name:s,owner:c.owner,revision:a.leaseRevision})}}async function RG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){im({state:e,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:void 0,slotReservations:a}),jt.info(`Registry discovery superseded by a newer selection; skipping ${r.servers.length} server(s)`);return}if(await Tk(e,r),e.registryGeneration!==o)return;let c=Ak({state:e,generation:o}),u=r.servers.filter(c);if((await Promise.all(u.map(h=>Ar({state:e,config:h,pi:s})))).some(h=>!h)||e.registryGeneration!==o)return;wG({state:e,result:r,selection:n}),im({state:e,result:r,selection:n,slotReservations:a});let l=bG({state:e,result:{...r,servers:u}});if(l.length===0)return;let f=l.filter(h=>{let g=e.servers.get(h.name);if((g?Q(e,h.name,g):N(e,h.name))?.owner.kind==="local")return jt.info(`Registry install of "${h.name}" skipped: a local server claimed the name during discovery`),!1;let w=a.get(h.name)?.configRevision;if(w===void 0)return!0;let b=e.configDesiredRevisions.get(h.name);return b!==w?(jt.info(`Registry install of "${h.name}" skipped: slot revision advanced from ${w} to ${b} by a concurrent operation`),!1):!0});if(f.length===0)return;jt.info(`Registry discovery: connecting ${f.length} server(s)`);let m=(await i(f,e,e.currentLoad?.latestPi??s,c))?.find(h=>h.status==="failed");if(m)throw m.error instanceof Error?m.error:new Error(String(m.error));await CG({state:e,pi:s,result:r,generation:o,connect:i})}async function CG(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 PG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function PG(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";jt.info(`MCP auth fallback: "${i}" (id=${c}) landed ${a.status}; connecting same-named config id=${s.id} in its place`),await o([s],e,e.currentLoad?.latestPi??r,Ak({state:e,generation:n}));let d=e.servers.get(i);return d?.config.id!==c&&e.authFallbackDisplacedConfigIds.add(c),d!==void 0&&d.config.id===s.id&&d.status==="success"?"settled":"next"}async function xG(t){let{state:e,error:r,generation:n,previousSelectedIds:o,selection:i}=t,s=`Registry discovery failed: ${r instanceof Error?r.message:String(r)}`;jt.warn(s),e.registryGeneration===n&&(await Ek(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function kG(t,e){for(let r of e??[]){let n=at(r),o=t.registryCredentialIntents.get(n);o?.configName&&t.expectedCredentialDomains.set(o.configName,{kind:"blocked"}),Ke({state:t,domain:n,epoch:o?.epoch})}}async function EG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await RG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),im({state:t.resultArgs.state,result:{servers:[],diagnostics:[],filteredOutIds:[]},selection:t.resultArgs.state.registryGeneration===t.resultArgs.generation?t.resultArgs.selection:void 0,slotReservations:e}),r instanceof xt)throw kG(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 xG({...t.resultArgs,error:r})}}function Cu(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??Ru,s=o?.connect??Ve,a=n;if(!a||typeof a!="object"||Array.isArray(a))return jt.warn("augment:mcp-config-ids payload is not an object"),Promise.resolve();Array.isArray(a.configIds)&&eg(r,new Set(a.configIds.map(at)));let c=hG({state:r,configIds:a.configIds,admittedConfigs:t.admittedConfigs}),u=r.credentials;if(!(c||u)){jt.warn("augment:mcp-config-ids received before credentials; skipping registry discovery");for(let v of a.configIds??[])Ke({state:r,domain:at(v)});return Promise.resolve()}let d=r.selectedRegistryConfigIds??[],l=mG({state:r,previousSelectedIds:d,configIds:a.configIds}),f=gG({parsedEmbedded:c,configIds:a.configIds}),p=++r.registryGeneration,m=Promise.all([fG(r,a.configIds,f),l]).then(([v])=>v);yG(r);let h=a.configIds?[...a.configIds]:void 0,g=SG({state:r,configIds:a.configIds,parsedEmbedded:c,credentials:u,localServerNames:vG(r),previousSelectedIds:d,selection:h,generation:p,discover:i});return g?EG({disposal:m,discovery:g,resultArgs:{state:r,previousSelectedIds:d,selection:h,generation:p,connect:s,pi:e}}):Promise.resolve()}import{logger as TG}from"@hermes/logger";var nn=TG.child({prefix:"pi-mcp"});function AG(t,e){Ke({state:t,domain:`user:${e}`}),t.liveEditGenerations??=new Map;let r=(t.liveEditGenerations.get(e)??0)+1;return t.liveEditGenerations.set(e,r),r}function MG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Ok(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function $G(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function Mk(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&&($G({state:e,configId:r,fence:n}),e.missingHostRemovals.delete(r))});return e.missingHostRemovals.set(r,{promise:a,liveEditGeneration:n.liveEditGeneration,registryGeneration:n.registryGeneration}),a}function zk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function $k(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!Bn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function Nk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function IG(t){let{state:e,name:r,config:n,retirement:o}=t;if(e.servers.has(r))return;let i=N(e,r),s=n?Pr(n):void 0;if(i===void 0){We(e,r);return}let a=i.host===void 0&&i.owner.kind==="registry"&&s?.kind==="registry"&&i.owner.identity===s.identity,c=o?.incumbent.owner.kind==="registry"&&s?.kind==="registry"&&o.incumbent.owner.identity===s.identity;if(!a&&!c)return;(o?.settled&&i.retirement===o?Um({state:e,name:r,retiredOwner:o.incumbent.owner,retirement:o}):xe({state:e,name:r,owner:i.owner,revision:i.revision}))&&N(e,r)===void 0&&(Nk(e,r),We(e,r))}async function sm(t){let{state:e,configId:r,pi:n,report:o,sourceFence:i}=t,s=e.registryCredentialConfigsById.get(r),a=s?.name;if(!s||!a){let w=`Live MCP remove-server cannot retire config id ${r}: exact registry identity is unavailable`;throw nn.warn(w),e.diagnostics.push({message:w,origin:"registry"}),new Error(w)}e.configDesiredRevisions??=new Map,e.configDesiredSources??=new Map;let c=N(e,a),u=Pr(s),d=c?.retirement?.incumbent.owner.kind==="registry"&&u.kind==="registry"&&c.retirement.incumbent.owner.identity===u.identity?c.retirement:void 0,l=c!==void 0&&c.host===void 0&&c.owner.kind==="registry"&&u.kind==="registry"&&c.owner.identity===u.identity,f=e.configDesiredRevisions.get(a),p=e.configDesiredSources.get(a),m=l&&d?.settled!==!0?We(e,a):void 0;if(d&&!d.settled&&(await d.teardown).status==="retired"&&!l)return;let g=N(e,a)?.retirement===d?d:void 0,v=g?.result;if(d&&v?.status==="failed"&&v.transportDisposed!==!0){let w=v.error instanceof Error?v.error:new Error(String(v.error)),b=`Live MCP remove-server cannot complete ${a}: strict transport disposal is unresolved`;throw nn.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await di(e,a,r,s)}catch(w){m!==void 0&&e.configDesiredRevisions.get(a)===m&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let b=`Live MCP remove-server failed to detach ${a}: ${w instanceof Error?w.message:String(w)}`;throw nn.warn(b),e.diagnostics.push({server:a,message:b}),w}Ok({state:e,configId:r,fence:i})&&(zk(e,r),IG({state:e,name:a,config:s,retirement:g})),nn.info(`Live MCP remove-server: config id ${r} resolved to no live server (already removed or unknown id)`),o(e.currentLoad?.latestPi??n,e)}function Ik(t){let{state:e,name:r,operation:n,result:o}=t;if(o.status!=="rejected")return;let i=`Live MCP remove-server failed to ${n} ${r}: ${o.reason instanceof Error?o.reason.message:String(o.reason)}`;nn.warn(i),e.diagnostics.push({server:r,message:i})}async function OG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Ik({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([di(e,r,n,o.config)]);return Ik({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 zG(t){let{state:e,configId:r,name:n,pi:o,report:i,sourceFence:s}=t,a=e.servers.get(n),c=a?Q(e,n,a):N(e,n);if(!a||!c||c.owner.kind!=="registry"||c.host!==a)return;e.registryConfigNamesById.set(r,n),e.registryCredentialConfigsById.set(r,{...a.config});let u=e.configDesiredRevisions.get(n),d=e.configDesiredSources.get(n),l=We(e,n),f=st({state:e,name:n,owner:c.owner,revision:c.revision,host:a});if(!f)return;a.beginDisposal?.(),nn.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:m,failure:h,transportDisposed:g}=await OG({state:e,name:n,configId:r,server:a});if(m&&Ok({state:e,configId:r,fence:s})?zk(e,r):!m&&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)),ve({state:e,name:n,retirement:f,result:m?{status:"retired"}:{status:"failed",error:h,transportDisposed:g}}),m&&xe({state:e,name:n,owner:c.owner,revision:c.revision})&&Nk(e,n),i(p,e),!m)throw h}function Pu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return nn.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!t.replacement&&!eo({state:r,configId:s,generation:i?.attachmentGeneration}))return nn.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>t.replacement?g:aa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??D,u=$k(r,s),d=r.registryCredentialConfigsById.get(s),l=d?.name?N(r,d.name)?.retirement:void 0,f=r.missingHostRemovals.get(s),p=f?.registryGeneration===r.registryGeneration&&f?.liveEditGeneration===r.liveEditGenerations.get(s);if(p&&l===void 0)return a(f.promise);if(p&&l!==void 0){let g=r.missingHostRemovalFences.get(s);if(g)return a(Mk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>sm({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let m=AG(r,s);if(u===void 0&&d===void 0)return a(sm({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:m,registryGeneration:r.registryGeneration}}));let h=MG({state:r,configId:s,liveEditGeneration:m});return a(Mk({state:r,configId:s,fence:h,operation:()=>{let g=$k(r,s);return g===void 0?sm({state:r,configId:s,pi:e,report:c,sourceFence:h}):zG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:h})}}))}import{createHash as NG}from"node:crypto";var DG=/^[1-9][0-9]*$/,LG=/^[a-f0-9]{64}$/,jG=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 Re(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function am(t){return typeof t=="string"&&DG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function um(t){return Re(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&am(t.connectionVersion)}function FG(t){if(t.version===2&&t.transport==="stdio")return(t.url===void 0||t.url==="")&&typeof t.command=="string"&&t.command.trim().length>0&&!Nr(t.command)&&Array.isArray(t.args)&&t.args.every(e=>typeof e=="string"&&!Nr(e))&&typeof t.use_shell_interpolation=="boolean"&&t.auth_type!=="oauth";if(t.version!==1||t.transport!=="http"&&t.transport!=="sse"||typeof t.url!="string"||t.command!==void 0||t.args!==void 0||t.use_shell_interpolation!==void 0)return!1;try{let e=new URL(t.url);return["http:","https:"].includes(e.protocol)&&!e.username&&!e.password&&!e.hash}catch{return!1}}function Lk(t){if(!(!Re(t)||Object.keys(t).some(e=>!jG.has(e)))&&!(!FG(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"||!LG.test(t.route_revision)||!am(t.connection_version))&&!(t.execution_principal_type!==void 0&&(typeof t.execution_principal_type!="number"||!Number.isInteger(t.execution_principal_type)||t.execution_principal_type<0||t.execution_principal_type>2147483647))&&!(t.ownership==="uncredentialed"?t.auth_type!=="none"||t.binding_generation!=="0":t.ownership!=="recipient"||t.auth_type==="none"||!am(t.binding_generation))){if(t.operation==="retire"||t.auth_type==="none"){if(t.access_token!==void 0||t.static_secrets!==void 0)return}else if(t.auth_type==="oauth"){if(typeof t.access_token!="string"||t.access_token.length===0||t.static_secrets!==void 0)return}else if(t.access_token!==void 0||!Re(t.static_secrets)||Object.keys(t.static_secrets).length===0||Object.values(t.static_secrets).some(e=>typeof e!="string"||e.trim().length===0))return;return{...t,execution_principal_type:t.execution_principal_type??0}}}}function cm(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function UG(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 qG(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 Dk(t,e){return cm(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&UG(t,e)&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function HG(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 GG(t,e){let r=ki((e.type==="stdio"?e.env:e.headers)??{}),n=Object.keys(t.static_secrets??{});return t.auth_type==="static"?r.length>0&&r.length===n.length&&n.every(o=>r.includes(o)):r.length===0}var xu=class{#t=new Map;#o=new WeakSet;#r=new WeakSet;#e;#n;#i=Symbol("mcp-connection");get epoch(){return this.#i}get hasConnection(){return this.#e!==void 0}revokeConnection(){this.#t.clear(),this.#r=new WeakSet,this.#n=void 0,this.#e=void 0,this.#i=Symbol("mcp-connection")}setConnection(e){return um(e)?this.#e?.vmId===e.vmId&&this.#e.connectionVersion===e.connectionVersion?!1:(this.revokeConnection(),this.#e={...e},!0):(this.revokeConnection(),!0)}has(e){return this.#t.has(e)||[...this.#t.values()].some(r=>r.material.server_name===e)}hasTargetProvenance(e){return this.#o.has(e)}trusts(e){return this.#r.has(e)}retainSelection(e){for(let[r,n]of this.#t)e.has(r)||this.#r.delete(n.config)}config(e){return this.#t.get(e)?.config}validate(e,r,n){let o=this.#t.get(e.config_id);if(!this.#e||e.vm_id!==this.#e.vmId||e.connection_version!==this.#e.connectionVersion||this.#n&&!cm(e,this.#n))return!1;if(e.operation==="retire")return!n&&!!o&&this.#r.has(r)&&o.config===r&&cm(e,o.material)&&e.binding_generation===o.material.binding_generation;if(r.disabled||!r.registrySource||r.vfsSource||r.id!==e.config_id||r.name!==e.server_name||!qG(e,r)||!n&&(!o||!this.#r.has(r)||!Dk(e,o.material))||!GG(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"&&Dk(e,o.material)&&HG(e,o.material))}commit(e,r){let n=Object.freeze({...e,...e.transport==="stdio"?{args:Object.freeze([...e.args])}:{},...e.static_secrets?{static_secrets:Object.freeze({...e.static_secrets})}:{}});this.#t.set(e.config_id,{material:n,config:r,epoch:Symbol("target-material")}),this.#r.add(r),this.#o.add(r),this.#n??={...n,access_token:void 0,static_secrets:void 0}}auth(e){if(!this.#r.has(e)||!e.id)return;let r=this.#t.get(e.id)?.epoch,n=()=>{let i=this.#t.get(e.id??"");if(!i||!this.#r.has(e)||i.epoch!==r||i.material.operation!=="install"||i.config!==e||i.material.vm_id!==this.#e?.vmId||i.material.connection_version!==this.#e.connectionVersion)throw new Error("MCP target material is unavailable");return i.material},o=n();return{...o.ownership==="recipient"?{credential:Object.freeze({revision:o.binding_generation,domain:`recipient:${o.config_id}`})}:{},validateUrl:i=>{let s=n();if(s.transport==="stdio")throw new Error("MCP target destination is unavailable");let a=new URL(i),c=new URL(s.url);if(a.username||a.password||a.hash||(s.transport==="sse"?a.origin!==c.origin:a.href!==c.href))throw new Error("MCP target destination is unavailable")},getSecret:async i=>n().static_secrets?.[i],headers:()=>{let i=n();return i.auth_type==="oauth"?{Authorization:`Bearer ${i.access_token}`}:{}}}}};function jk(t){return NG("sha256").update(t).digest("hex")}function Fk(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=>!Re(a)||!Re(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(!Re(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 ZG(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 BG(t){return t.env!==void 0&&(!Re(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 WG(t,e,r){if(typeof t!="string"||jk(t)!==e.route_revision)return;let n=JSON.parse(t);if(!Re(n)||!Re(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||!BG(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(!ZG(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 Uk(t,e){if(!Re(e)||!Re(e.credentials))return;let r=t.targetMaterialStore;if(!r?.hasConnection)return;let n=Object.entries(e.credentials),o=e.kind==="boot";if(!o&&(e.version!==1||n.length!==1||e.kind!=="add"&&e.kind!=="restart"||e.hasLegacySecrets===!0))return;let i=o?Fk(e.configsJson):new Map;if(o&&(e.headerSecrets!==void 0&&(!Re(e.headerSecrets)||Object.values(e.headerSecrets).some(u=>u!==null&&typeof u!="string"))||e.configIds!==void 0&&(!Array.isArray(e.configIds)||e.configIds.some(u=>typeof u!="string"||!u)||new Set(e.configIds).size!==e.configIds.length)))return;let s=[],a=new Set,c;for(let[u,d]of n){if(o&&Re(d)&&!Object.hasOwn(d,"target_material")){if(![...i.values()].some(w=>{let b=JSON.parse(w);return Re(b)&&Re(b.config)&&b.config.name===u&&(!Array.isArray(e.configIds)||e.configIds.includes(b.id))})&&(e.configsJson!==void 0||e.configIds!==void 0)||r.has(u)||_r({store:t.tokens,serverName:u,proto:d,options:{requireEqualMaterial:!0}}).decision==="reject")return;continue}if(!Re(d)||Object.entries(d).some(([v,w])=>v!=="target_material"&&w!==""))return;let l=Lk(d.target_material);if(!l||l.server_name!==u||a.has(l.config_id))return;let f=JSON.stringify([l.execution_principal_id,l.execution_principal_type]);if(c!==void 0&&c!==f||(c=f,a.add(l.config_id),!o&&e.target!==(e.kind==="add"?l.config_id:u)))return;let p=o||e.kind==="add";if(p&&l.operation!=="install")return;let m=p?WG(o?i.get(l.config_id):e.config,l,t.workspaceRoot):r.config(l.config_id);if(!m||!r.validate(l,m,p)||o&&Array.isArray(e.configIds)&&!e.configIds.includes(l.config_id))return;let h=t.servers.get(m.name),g=t.hostLeases.get(m.name);if(h&&!r.trusts(h.config)&&!Bn(h.config)&&!r.hasTargetProvenance(h.config)||h&&(h.config.registrySource===void 0||h.config.vfsSource!==void 0||h.config.id!==l.config_id)||h&&(!g||g.host!==h)||g&&(g.owner.kind!=="registry"||g.owner.identity!==`user:${l.config_id}`))return;s.push({material:l,config:m})}if(!(o&&[...i.keys()].some(u=>r.has(u)&&!a.has(u)&&(!Array.isArray(e.configIds)||e.configIds.includes(u))))){if(o&&i.size>0){let u=Xo(e.configsJson,t.workspaceRoot,new Map(s.map(({material:d,config:l})=>[d.config_id,l])));if(!u||u.allConfigsById.size!==i.size||[...u.allConfigsById.values()].some(d=>!d.config)||new Set([...u.allConfigsById.values()].map(d=>d.name)).size!==i.size)return}return s}}async function VG(t){let{pi:e,state:r,data:n}=t;if(!Re(n)||n.kind!=="boot")return!1;let o=r.targetMaterialStore;if(!o?.hasConnection)return!1;let i,s;try{i=Uk(r,n);let p=n.configsJson===void 0?void 0:JSON.parse(n.configsJson);if(p!==void 0&&!Array.isArray(p))return!1;s=p}catch{return!1}if(!i)return!1;let a=o.epoch,c=()=>o.epoch===a,u=n.configIds;u===void 0&&s!==void 0&&(u=[...Fk(n.configsJson).keys()]);let d=new Map(i.map(p=>[p.material.config_id,p.config]));o.retainSelection(new Set(d.keys()));for(let{material:p,config:m}of i)o.commit(p,m);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,vu(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let l=Cu({pi:e,state:r,data:{configIds:u},admittedConfigs:d,deps:{connect:(p,m,h,g)=>{if(!c())return Promise.resolve([]);let v=p.map(w=>{let b=w.id?d.get(w.id):void 0;if(!b&&w.id&&o.has(w.id))throw new Error("MCP target material is unavailable");return b??w});return Ve(v,m,h,w=>c()&&(g?.(w)??!0))}}});if(c()&&typeof n.onAdmitted=="function"&&n.onAdmitted(c),await l,!c())return!1;let f=r.currentLoad?.latestPi??e;return D(f,r),_e(r),Jo(f,r),!0}async function KG(t){let{pi:e,state:r,data:n}=t;if(!Re(n))return!1;if(n.kind==="boot")return VG(t);let o;try{o=Uk(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;return!i||o?.length!==1||!s?!1:await JG({pi:e,state:r,data:n,candidate:i,store:s})}async function JG(t){let{pi:e,state:r,data:n,candidate:o,store:i}=t,{material:s,config:a}=o,c={state:r,configId:s.config_id,generation:n.attachmentGeneration};if(n.kind==="add"){if(!eo(c))return!1}else if(r.sessionRemovedConfigIds.has(s.config_id))return!1;let u=i.epoch,d=r.attachmentCommandGenerations?.get(s.config_id),l=()=>i.epoch===u&&r.attachmentCommandGenerations?.get(s.config_id)===d,f=!1;try{i.commit(s,a);let p=n.kind==="add"||r.dynamicallyAddedConfigIds.has(s.config_id);return[...r.servers.values()].find(h=>h.config.id===s.config_id&&h.config.registrySource!==void 0&&(i.hasTargetProvenance(h.config)||Bn(h.config)))&&await Pu({pi:e,state:r,data:{configId:s.config_id},replacement:!0}),!l()||(r.sessionRemovedConfigIds.delete(s.config_id),p?r.dynamicallyAddedConfigIds.add(s.config_id):r.dynamicallyAddedConfigIds.delete(s.config_id),s.operation!=="retire"&&(await Ve([a],r,e,l),!l()))?!1:(D(e,r),f=!0,!0)}finally{n.kind==="add"&&(f?nd(c):sa(c))}}function Vs(t,e){let r=t.mcpConnectionEpoch,n=(t.targetMaterialQueue??Promise.resolve()).then(()=>t.mcpConnectionEpoch===r?e():void 0).then(()=>{});return t.targetMaterialQueue=n.catch(()=>{}),n}function YG(t,e){t.registryGeneration++,Ym(t),t.headerSecrets={},t.headerSecretFailures={},t.mcpCatalog=void 0,t.mcpAttachDisabled=!1,t.catalogRefreshInFlight=void 0;let r=[];for(let[n,o]of t.hostLeases){if(o.owner.kind!=="registry")continue;t.configRevisions.set(n,(t.configRevisions.get(n)??0)+1),t.tokens.clearLocalCredential(n);let i=t.oauthCredentialDomains.get(n);i&&t.oauthCredentialRevisions.delete(i),t.oauthCredentialDomains.delete(n),t.credentialRevisions.delete(n),t.stagedOAuthCredentials.delete(n);let s=o.host;if(!s)continue;s.beginDisposal?.();let a=st({state:t,name:n,owner:o.owner,revision:o.revision,host:s});a&&r.push(s.dispose({strict:!0}).then(()=>{ve({state:t,name:n,retirement:a,result:{status:"retired"}})},c=>{ve({state:t,name:n,retirement:a,result:{status:"failed",error:c}}),t.diagnostics.push({origin:"registry",message:"Previous MCP connection could not be retired safely"}),D(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),D(e,t)}function qk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new xu,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(um(r)){if(!n.setConnection(r))return}else n.revokeConnection(),e.diagnostics.push({origin:"registry",message:"MCP connection metadata is invalid; previous credential authority was revoked"});e.mcpConnectionEpoch=n.epoch,YG(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Vs(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await KG({pi:t,state:e,data:r})&&e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP configuration update was rejected; a fresh authorized configuration is required"}),D(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),D(t,e))})}))}import{logger as dZ}from"@hermes/logger";import{execFile as dm}from"node:child_process";import{win32 as lm}from"node:path";import{logger as XG}from"@hermes/logger";var QG=5e3,eZ=/^[a-z]:[\\/]/i,tZ=/[<>:"|?*]/;function rZ(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!eZ.test(t)||!lm.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||tZ.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:lm.join(lm.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function nZ(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function oZ(t,e){switch(process.platform){case"darwin":return dm("open",[t],e);case"win32":{let r=rZ();return r?dm(r,["-NoProfile","-NonInteractive","-EncodedCommand",nZ(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return dm("xdg-open",[t],e)}}function Hk(t,e=QG){let r=XG.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=oZ(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as iZ}from"node:http";function ku(t){return t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Gk(t){let e=ku(t.title),r=ku(t.heading),n=ku(t.message),o=t.details?ku(t.details):void 0,i=t.autoClose?"<script>setTimeout(() => window.close(), 2000);</script>":"";return`<!doctype html>
|
|
102
102
|
<html lang="en">
|
|
103
103
|
<head>
|
|
104
104
|
<meta charset="utf-8" />
|
|
@@ -140,13 +140,13 @@ ${R}`,l++;break;case"id":u=R.includes("\0")?void 0:R;break;case"retry":/^\d+$/.t
|
|
|
140
140
|
</main>
|
|
141
141
|
${i}
|
|
142
142
|
</body>
|
|
143
|
-
</html>`}function qk(t){return Uk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Pu(t,e){return Uk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var nZ="127.0.0.1",Zk="/callback",Hk=3e3,Gk=3010,oZ="Authentication successful. You can close this window.",xu={"Content-Type":"text/html; charset=utf-8"};function Bk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Wk(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 cm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function iZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Zk){e.writeHead(404,xu),e.end(Pu("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,xu),e.end(Pu("Authentication did not complete.",`Error: ${s}`));let u=cm(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,xu),e.end(Pu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,xu),e.end(qk(oZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function sZ(t){for(let e=Hk;e<=Gk;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,nZ)}))return e;throw new Error(`No free port in ${Hk}-${Gk} for the OAuth callback server`)}async function Vk(){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=rZ((a,c)=>{iZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await sZ(i);return{port:s,redirectUri:`http://localhost:${s}${Zk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var um=aZ.child({prefix:"pi-mcp"}),cZ=300*1e3,Yk="MCP authentication was superseded";function Kk(){return Bk()?"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 vr(t){if(t.aborted)throw new Error("Authentication cancelled")}function Xk(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&&Qk(t.credentialRevisions.get(e),r.credentialRevision)}function Qk(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function Jk(t,e,r){if(!Xk(t,e,r))throw new Error(Yk)}async function uZ(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||!ft(r.server.config,a.config))return;let l=a.config,f=qt(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||!Cr(qt(t,a),f)||!Qk(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;on({state:t,name:e,revision:p}),D(t.currentLoad?.latestPi??s,t)}catch{um.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function dZ(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 lZ(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=h=>{s||(s=!0,c(),h())},d=()=>u(()=>i(new Error("Authentication cancelled"))),l=()=>{a&&clearTimeout(a),a=setTimeout(()=>u(()=>i(new Error("Authentication timed out"))),cZ)},f=h=>{let g=h instanceof Error?h.message:String(h);u(()=>i(new Error(`Could not read the pasted authorization code (${g}). Restart sign-in and paste the full redirect URL.`)))},p=async(h,g)=>{let v=await n(h,l);if(!s){if(v){m(g);return}u(()=>i(cm(h)))}},m=(h=e.waitForManualCode())=>{h.then(async g=>{if(!(s||!g))try{let v=Wk(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(h=>n(h,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(h=>{h&&u(()=>o(new URLSearchParams({code:h.code,state:h.state})))}).catch(h=>u(()=>i(h instanceof Error?h:new Error(String(h))))),m()})}async function eE(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=qt(r,i),d;try{vr(o.signal),d=await Vk(),vr(o.signal);let l=new URL(s.url),f,p;try{f=await Dd(l),vr(o.signal),p=await Ld(f),vr(o.signal)}catch{throw vr(o.signal),new Error(`OAuth discovery failed for MCP server "${e}". Verify that the endpoint supports OAuth and publishes discovery metadata.`)}let m=await c.tokenStore.captureAuthenticatedIdentityVersion(u);Jk(r,e,c),vr(o.signal);let h=await jd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});vr(o.signal);let g=await Pa(l,h,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);vr(o.signal);let v=g,w=!1,b,x,S=(Pe,rn)=>{if(w)return x&&b&&xa(Pe,b)?x.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!xa(Pe,v))return Promise.resolve(null);w=!0;let nn=v;return b=nn,rn(),um.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),x=Fd(nn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:Kk()}),lt)),x.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(Pe=>S(Pe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Kk()}),vr(o.signal),await Fk(g.authUri.toString());let R=await lZ(d,o,()=>v.state,S),I=await Ud(R,v);Jk(r,e,c);let ne=dZ(I),fe=await c.tokenStore.persistAuthenticated(e,ne,u,m);if(!Xk(r,e,c))throw await uZ(r,e,c,u,ne,fe,n),new Error(Yk);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),on({state:r,name:e,revision:fe}),r.tokens.clearAuthRequired(e),it(r,e),await Zs([e],r,n),D(r.currentLoad?.latestPi??n,r),_e(r),um.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 fZ,SETTINGS_TARGET_ORDER as pZ,SettingsManager as hZ,scopeToSettingsTarget as mZ,settingsTargetToScope as dm}from"@augmentcode/auggie-v2";var gZ=pZ.map(t=>dm(t)),tE=(t,e)=>hZ.create(t,e);function rE(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 nE(t,e,r){let n=tE(e,r);return gZ.filter(o=>rE(n,o)?.[t])}function oE(t){let e=t.map(n=>({target:mZ(n),path:n,exists:!0})),r=fZ({files:e});return"directTarget"in r?{scopes:t,direct:dm(r.directTarget)}:{scopes:r.files.map(n=>dm(n.target)),direct:null}}function yZ(t,e,r){let{servers:n}=Yn(e,r);return n.find(o=>o.name===t)?.disabled===!0}function iE(t,e,r,n,o){try{let i=tE(n,o);if(!rE(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:yZ(t,n,o)!==e}}function lm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function sE(t,e,r){return lm(t)}function aE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as vZ}from"@hermes/logger";var pm=vZ.child({prefix:"pi-mcp"}),cE="hermes:mcp:register-server-source";function _Z(t,e){return t.type==="stdio"?Gt(t,e):Ht(t,e)}function uE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function SZ(t,e){return{...t,disabled:e}}function wZ(t){try{return t.getServers()}catch(e){return pm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function bZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function dE(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 RZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of wZ(t)){let s=e.servers.get(i.name),a=_Z(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=SZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&Q(e,i.name,s);let l=N(e,i.name),f=s!==void 0&&l?.owner.kind==="plugin"&&l.host===s,p=s!==void 0&&d===void 0&&n.has(i.name)&&uE(s.config,u);p&&(Q(e,i.name,s),Nm({state:e,name:i.name,host:s}));let m=l?.owner.kind==="vfs";if(s&&!(f||p||m)){e.pluginServerNames.delete(i.name),e.pluginServerHosts.delete(i.name),dE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function CZ(t,e,r){let n=[];for(let o of e){if(t.has(o))continue;r.sessionPluginDisabledOverrides.delete(o);let i=N(r,o);if(i?.owner.kind!=="plugin")continue;let s=i.host;if(!s){xe({state:r,name:o,owner:i.owner,revision:i.revision});continue}let a=st({state:r,name:o,owner:i.owner,revision:i.revision,host:s});if(!a)continue;let c=pt(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 ve({state:r,name:o,retirement:a,result:{status:"failed",error:d.reason}}),d.reason;ve({state:r,name:o,retirement:a,result:{status:"retired"}}),xe({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function lE(t,e){dE(t,e)}function PZ(t){let{state:e,desired:r,previousNames:n,previousHosts:o}=t,i=[],s=new Map;for(let[a,c]of r){let u=e.servers.get(a),d=u?Q(e,a,u):N(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){lE(e,a);continue}u===o.get(a)&&n.has(a)&&uE(u.config,c)||(s.set(a,We(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function xZ(t,e,r){let n=r?.connect??Ve,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(m=>m.origin!=="plugin"),o&&bZ(o,e);let s=new Set(e.pluginServerNames);e.pluginServerHosts??=new Map;for(let[m,h]of e.pluginServerHosts){let g=e.servers.get(m);(g===void 0||g===h)&&Q(e,m,h)}let a=RZ(o,e,i,s);e.configDesiredRevisions??=new Map,e.configRevisions??=new Map;let c=new Map,u=new Set;for(let[m,h]of e.hostLeases)h.owner.kind==="plugin"&&(u.add(m),h.host&&c.set(m,h.host));await CZ(a,u,e);let{reservedRevisions:d,toConnect:l}=PZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;pm.info(`Plugin MCP source: connecting ${l.length} server(s)`);let f=()=>e.currentLoad?.latestPi??t,p=m=>{let h=d.get(m.name);if(h===void 0||e.configDesiredRevisions.get(m.name)!==h)return!1;let g=N(e,m.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||lE(e,m.name),v};try{await n(l,e,f(),p,d,"plugin");for(let m of l)p(m)}catch{}finally{e.pluginServerNames=new Set([...e.hostLeases].filter(([,m])=>m.owner.kind==="plugin").map(([m])=>m)),D(f(),e),_e(e)}}function fm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>xZ(t,e,r)).catch(i=>{pm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function fE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?Q(o,r,s):N(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),fm(o.currentLoad?.latestPi??i,o,e))}function pE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,fm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,fm(e.currentLoad?.latestPi??t,e))})}}function EZ(t,e){let n=kZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function hE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(EZ(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:lm(e)};if(Qu(r.mcpConfigOverride).has(e))return{kind:"session"};if(br(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=nE(e,n,o);if(s.length===0)return{kind:"blocked",message:sE(e,n,o)};let{scopes:a,direct:c}=oE(s);return{kind:"local",scopes:a,direct:c}}async function mE(t){let{server:e,disable:r,state:n,pi:o}=t,i=n.servers.get(e);if(!i)return;let s=n.hostLeases?.get(e)??(n.pluginServerHosts?.get(e)===i?Q(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await fE({name:e,disabled:r,state:n,pi:o});return}Qu(n.mcpConfigOverride).has(e)&&n.sessionMcpConfigDisabledOverrides.set(e,r),i.config.registrySource!==void 0&&n.sessionRegistryDisabledOverrides.set(e,r);let a={...i.config,disabled:r};await Ve([a],n,o,void 0,void 0,s?.owner.kind),_e(n)}async function gE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=iE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await lk(e,o,i,s,a),_e(o),c.overridden?{notice:aE(e)}:{}}import{DynamicBorder as KZ}from"@augmentcode/auggie-v2";import{Key as JZ,matchesKey as YZ,SearchableWindowedList as XZ,SpinnerTimer as QZ,truncateToWidth as Iu,wrapTextWithAnsi as e2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as TZ,scopeToSettingsTarget as AZ}from"@augmentcode/auggie-v2";import{truncateToWidth as MZ,visibleWidth as Zn,wrapTextWithAnsi as $Z}from"@earendil-works/pi-tui";var IZ=2,OZ=2,ku={name:"Name",source:"Source",status:"Status"};function hm(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 mm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function gm(t,e){let r=e-Zn(t);return r>0?t+" ".repeat(r):t}function Eu(t){return t.reduce((e,r)=>Math.max(e,Zn(r)),0)}function Yo(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 yE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(IZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(OZ,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=Yo(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Zn(ku[w]))&&(a=Yo(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>mm(g)),l=t.map(g=>hm(g)),f=Math.max(Zn(ku.source),Eu(d)),p=Math.max(Zn(ku.status),Eu(l.map(g=>g.label))),m=Math.max(Zn(ku.name),Eu(t.map(g=>g.name))),h=Math.max(p,Eu(l.map(g=>g.label+(g.hint??""))));return a=Yo(u,"source",f,a),a=Yo(u,"status",p,a),a=Yo(u,"name",m,a),Yo(u,"status",h,a),u}function vE(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 Xo(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>$Z(n,r).map(o=>Zn(o)<=r?o:MZ(o,r,"")))}function zZ(t,e){return Math.max(0,t-e)}function Qo(t,e,r){return Math.max(0,Math.min(t,zZ(e,r)))}function _E(t,e,r){let n=Qo(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 SE(t,e){return String(t+1).padStart(String(e).length," ")}function ym(t){return TZ(AZ(t))}import{Key as NZ,matchesKey as DZ}from"@earendil-works/pi-tui";function Tu(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 wE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var bE=10,Bn=15;var LZ="k",jZ="j";function ei(t,e){return(t%e+e)%e}function ot(t,e){let r=t.findIndex(n=>n.name===e);return r>=0?r:0}function vm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===LZ?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===jZ?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:DZ(t,NZ.backspace)?{kind:"back"}:{kind:"ignore"}}function FZ(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=ei(ot(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ei(ot(r,t.selectedServer)+1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"confirm":{let o=r[ot(r,t.selectedServer)];return o?.status==="auth_required"&&o.canAuthenticate?{state:t,effect:{kind:"authenticate",server:o.name}}:{state:{...t,step:"serverActions",actionIndex:0}}}case"cancel":return{state:t,effect:{kind:"close"}};default:return{state:t}}}function UZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Tu(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ei(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ei(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 qZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.tools.length??0;switch(e.kind){case"up":return{state:{...t,toolIndex:Math.max(0,t.toolIndex-1)}};case"down":return{state:{...t,toolIndex:Math.min(Math.max(0,n-1),t.toolIndex+1)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function HZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.logLines()??[],o=Xo(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:Qo(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:Qo(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function GZ(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Au(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function ZZ(t,e){let r=t.targetScopes.length;if(r===0)return{state:Au(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ei(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ei(t.targetIndex+1,r)}};case"cancel":case"back":return{state:Au(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Au({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Au(t,"serverActions")}}default:return{state:t}}}function RE(t,e,r){switch(t.step){case"serverList":return FZ(t,e,r.snapshots);case"serverActions":return UZ(t,e,r);case"viewTools":return qZ(t,e,r);case"viewLogs":return HZ(t,e,r);case"pasteAuthCode":return GZ(t,e);case"selectTarget":return ZZ(t,e);default:return{state:t}}}import{truncateToWidth as Ft,visibleWidth as BZ,wrapTextWithAnsi as tn}from"@earendil-works/pi-tui";var _m="\u2192 ",Mu=" ";function CE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function _r(t,e){return e>0?Ft(t,e,"\u2026"):""}function PE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=yE(r,a),u=" ".repeat(c.gapWidth),d=(m,h,g,v)=>{let w=[c.nameWidth>0?gm(h,c.nameWidth):"",c.sourceWidth>0?gm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return m+w.join(u)},l=_r(Mu,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",_r("Name",c.nameWidth))),i.bold(i.fg("accent",_r("Source",c.sourceWidth))),i.bold(i.fg("accent",_r("Status",c.statusWidth))))];if(e.length===0)p.push(Ft(i.fg("muted","No MCP servers available"),a,"\u2026"));else if(o.total===0)p.push(Ft(i.fg("muted","No matching MCP servers"),a,"\u2026"));else for(let m of n){let h=m.name===t.selectedServer,g=hm(m),v=_r(g.label,c.statusWidth),w=c.statusWidth-BZ(v),b=g.hint?_r(g.hint,w):"",x=i.fg(g.color,v)+(b?i.fg("muted",b):""),S=_r(h?_m:Mu,c.prefixWidth);p.push(d(h?i.fg("accent",S):S,CE(_r(m.name,c.nameWidth),h,i),CE(_r(mm(m),c.sourceWidth),h,i),x))}return o.hasOverflow&&p.push(Ft(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var WZ={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 VZ(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 WZ[t]}function xE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return tn(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=tn(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...tn(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Tu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=VZ(d,i),p=f.label,m=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ft((l?_m:Mu)+m+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function kE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return tn(r.fg("muted","No tools available."),o);if(i.disabled)return tn(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return tn(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=vE(t.toolIndex,s,Bn),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(Ft(r.fg("muted",`${SE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function EE(t,e,r,n){let o=Math.max(1,n),s=e[ot(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return tn(r.fg("muted","No logs available yet."),o);let a=Xo(s,o),c=a.length,u=_E(t.logScrollOffset,c,Bn),d=[];c>Bn&&d.push(Ft(r.fg("muted",u.rangeLabel),o,"\u2026")),u.aboveCount>0&&d.push(Ft(r.fg("dim",`\u2191 ${u.aboveCount} more rows`),o,"\u2026"));for(let l of a.slice(u.start,u.end))d.push(Ft(r.fg("text",l),o,""));return u.belowCount>0&&d.push(Ft(r.fg("dim",`\u2193 ${u.belowCount} more rows`),o,"\u2026")),d}function TE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)]?.name??"",s=[...tn(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",ym(c))):r.fg("text",ym(c));s.push(Ft((u?_m:Mu)+d,o,"\u2026"))}return s}var $u=3;function t2(t){return t.type==="stdio"?t.command:t.url}function r2(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
|
|
143
|
+
</html>`}function Zk(t){return Gk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function Eu(t,e){return Gk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var sZ="127.0.0.1",Vk="/callback",Bk=3e3,Wk=3010,aZ="Authentication successful. You can close this window.",Tu={"Content-Type":"text/html; charset=utf-8"};function Kk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Jk(t,e){let r=t.trim();if(!r)throw new Error("No authorization code provided");let n;try{n=new URL(r).searchParams}catch{(r.includes("code=")||r.includes("error="))&&(n=new URLSearchParams(r))}if(!n)return{kind:"success",result:{code:r,state:e}};let o=n.get("state");if(n.has("error")){if(o!==e)throw new Error("OAuth state mismatch");return{kind:"error",params:n}}let i=n.get("code");if(!i)throw new Error("Could not find an authorization code in the pasted input");if(o&&o!==e)throw new Error("OAuth state mismatch");return{kind:"success",result:{code:i,state:o??e}}}function fm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function cZ(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Vk){e.writeHead(404,Tu),e.end(Eu("Callback route not found."));return}let o=n.searchParams.get("code"),i=n.searchParams.get("state"),s=n.searchParams.get("error");if(s){let a=c=>{e.writeHead(400,Tu),e.end(Eu("Authentication did not complete.",`Error: ${s}`));let u=fm(n.searchParams);c instanceof Error?u=c:c!==void 0&&(u=new Error(String(c))),r.onError(u)};r.onErrorRetry(n.searchParams).then(c=>{c?(e.writeHead(302,{Location:c}),e.end()):a()}).catch(c=>a(c));return}if(!o||!i){e.writeHead(400,Tu),e.end(Eu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,Tu),e.end(Zk(aZ)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function uZ(t){for(let e=Bk;e<=Wk;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,sZ)}))return e;throw new Error(`No free port in ${Bk}-${Wk} for the OAuth callback server`)}async function Yk(){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=iZ((a,c)=>{cZ(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await uZ(i);return{port:s,redirectUri:`http://localhost:${s}${Vk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var pm=dZ.child({prefix:"pi-mcp"}),lZ=300*1e3,eE="MCP authentication was superseded";function Xk(){return Kk()?"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 tE(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&&rE(t.credentialRevisions.get(e),r.credentialRevision)}function rE(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function Qk(t,e,r){if(!tE(t,e,r))throw new Error(eE)}async function fZ(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||!ft(r.server.config,a.config))return;let l=a.config,f=qt(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(qt(t,a),f)||!rE(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;cn({state:t,name:e,revision:p}),D(t.currentLoad?.latestPi??s,t)}catch{pm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function pZ(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 hZ(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=h=>{s||(s=!0,c(),h())},d=()=>u(()=>i(new Error("Authentication cancelled"))),l=()=>{a&&clearTimeout(a),a=setTimeout(()=>u(()=>i(new Error("Authentication timed out"))),lZ)},f=h=>{let g=h instanceof Error?h.message:String(h);u(()=>i(new Error(`Could not read the pasted authorization code (${g}). Restart sign-in and paste the full redirect URL.`)))},p=async(h,g)=>{let v=await n(h,l);if(!s){if(v){m(g);return}u(()=>i(fm(h)))}},m=(h=e.waitForManualCode())=>{h.then(async g=>{if(!(s||!g))try{let v=Jk(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(h=>n(h,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(h=>{h&&u(()=>o(new URLSearchParams({code:h.code,state:h.state})))}).catch(h=>u(()=>i(h instanceof Error?h:new Error(String(h))))),m()})}async function nE(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=qt(r,i),d;try{Sr(o.signal),d=await Yk(),Sr(o.signal);let l=new URL(s.url),f,p;try{f=await Ud(l),Sr(o.signal),p=await qd(f),Sr(o.signal)}catch{throw Sr(o.signal),new Error(`OAuth discovery failed for MCP server "${e}". Verify that the endpoint supports OAuth and publishes discovery metadata.`)}let m=await c.tokenStore.captureAuthenticatedIdentityVersion(u);Qk(r,e,c),Sr(o.signal);let h=await Hd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});Sr(o.signal);let g=await ka(l,h,p,d.redirectUri,f.resourceScopes?.join(" "),f.resourceIdentifier?new URL(f.resourceIdentifier):void 0);Sr(o.signal);let v=g,w=!1,b,x,S=(Pe,sn)=>{if(w)return x&&b&&Ea(Pe,b)?x.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Ea(Pe,v))return Promise.resolve(null);w=!0;let an=v;return b=an,sn(),pm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),x=Gd(an).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:Xk()}),lt)),x.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(Pe=>S(Pe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Xk()}),Sr(o.signal),await Hk(g.authUri.toString());let R=await hZ(d,o,()=>v.state,S),I=await Zd(R,v);Qk(r,e,c);let ne=pZ(I),fe=await c.tokenStore.persistAuthenticated(e,ne,u,m);if(!tE(r,e,c))throw await fZ(r,e,c,u,ne,fe,n),new Error(eE);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),cn({state:r,name:e,revision:fe}),r.tokens.clearAuthRequired(e),it(r,e),await Ws([e],r,n),D(r.currentLoad?.latestPi??n,r),_e(r),pm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as AZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as mZ,SETTINGS_TARGET_ORDER as gZ,SettingsManager as yZ,scopeToSettingsTarget as vZ,settingsTargetToScope as hm}from"@augmentcode/auggie-v2";var _Z=gZ.map(t=>hm(t)),oE=(t,e)=>yZ.create(t,e);function iE(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 sE(t,e,r){let n=oE(e,r);return _Z.filter(o=>iE(n,o)?.[t])}function aE(t){let e=t.map(n=>({target:vZ(n),path:n,exists:!0})),r=mZ({files:e});return"directTarget"in r?{scopes:t,direct:hm(r.directTarget)}:{scopes:r.files.map(n=>hm(n.target)),direct:null}}function SZ(t,e,r){let{servers:n}=Qn(e,r);return n.find(o=>o.name===t)?.disabled===!0}function cE(t,e,r,n,o){try{let i=oE(n,o);if(!iE(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:SZ(t,n,o)!==e}}function mm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function uE(t,e,r){return mm(t)}function dE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as wZ}from"@hermes/logger";var ym=wZ.child({prefix:"pi-mcp"}),lE="hermes:mcp:register-server-source";function bZ(t,e){return t.type==="stdio"?Gt(t,e):Ht(t,e)}function fE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function RZ(t,e){return{...t,disabled:e}}function CZ(t){try{return t.getServers()}catch(e){return ym.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function PZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function pE(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 xZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of CZ(t)){let s=e.servers.get(i.name),a=bZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=RZ(a,c??a.disabled===!0),d=e.pluginServerHosts.get(i.name);s&&d===s&&Q(e,i.name,s);let l=N(e,i.name),f=s!==void 0&&l?.owner.kind==="plugin"&&l.host===s,p=s!==void 0&&d===void 0&&n.has(i.name)&&fE(s.config,u);p&&(Q(e,i.name,s),Fm({state:e,name:i.name,host:s}));let m=l?.owner.kind==="vfs";if(s&&!(f||p||m)){e.pluginServerNames.delete(i.name),e.pluginServerHosts.delete(i.name),pE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function kZ(t,e,r){let n=[];for(let o of e){if(t.has(o))continue;r.sessionPluginDisabledOverrides.delete(o);let i=N(r,o);if(i?.owner.kind!=="plugin")continue;let s=i.host;if(!s){xe({state:r,name:o,owner:i.owner,revision:i.revision});continue}let a=st({state:r,name:o,owner:i.owner,revision:i.revision,host:s});if(!a)continue;let c=pt(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 ve({state:r,name:o,retirement:a,result:{status:"failed",error:d.reason}}),d.reason;ve({state:r,name:o,retirement:a,result:{status:"retired"}}),xe({state:r,name:o,owner:i.owner,revision:i.revision})}))}await Promise.all(n)}function hE(t,e){pE(t,e)}function EZ(t){let{state:e,desired:r,previousNames:n,previousHosts:o}=t,i=[],s=new Map;for(let[a,c]of r){let u=e.servers.get(a),d=u?Q(e,a,u):N(e,a);if(d?.owner.kind==="local"||d?.owner.kind==="registry"){hE(e,a);continue}u===o.get(a)&&n.has(a)&&fE(u.config,c)||(s.set(a,We(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function TZ(t,e,r){let n=r?.connect??Ve,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(m=>m.origin!=="plugin"),o&&PZ(o,e);let s=new Set(e.pluginServerNames);e.pluginServerHosts??=new Map;for(let[m,h]of e.pluginServerHosts){let g=e.servers.get(m);(g===void 0||g===h)&&Q(e,m,h)}let a=xZ(o,e,i,s);e.configDesiredRevisions??=new Map,e.configRevisions??=new Map;let c=new Map,u=new Set;for(let[m,h]of e.hostLeases)h.owner.kind==="plugin"&&(u.add(m),h.host&&c.set(m,h.host));await kZ(a,u,e);let{reservedRevisions:d,toConnect:l}=EZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;ym.info(`Plugin MCP source: connecting ${l.length} server(s)`);let f=()=>e.currentLoad?.latestPi??t,p=m=>{let h=d.get(m.name);if(h===void 0||e.configDesiredRevisions.get(m.name)!==h)return!1;let g=N(e,m.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||hE(e,m.name),v};try{await n(l,e,f(),p,d,"plugin");for(let m of l)p(m)}catch{}finally{e.pluginServerNames=new Set([...e.hostLeases].filter(([,m])=>m.owner.kind==="plugin").map(([m])=>m)),D(f(),e),_e(e)}}function gm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>TZ(t,e,r)).catch(i=>{ym.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function mE(t,e){let{name:r,disabled:n,state:o,pi:i}=t,s=o.servers.get(r),a=s?Q(o,r,s):N(o,r);return a?.owner.kind!=="plugin"||a.host!==s?Promise.resolve():(o.sessionPluginDisabledOverrides.set(r,n),gm(o.currentLoad?.latestPi??i,o,e))}function gE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,gm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,gm(e.currentLoad?.latestPi??t,e))})}}function MZ(t,e){let n=AZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function yE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(MZ(n,o).has(e))return{kind:"blocked",message:`Cannot toggle "${e}": server is managed and cannot be modified`};let i=r.servers.get(e);if(!i)return{kind:"blocked",message:mm(e)};if(rd(r.mcpConfigOverride).has(e))return{kind:"session"};if(Cr(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=sE(e,n,o);if(s.length===0)return{kind:"blocked",message:uE(e,n,o)};let{scopes:a,direct:c}=aE(s);return{kind:"local",scopes:a,direct:c}}async function vE(t){let{server:e,disable:r,state:n,pi:o}=t,i=n.servers.get(e);if(!i)return;let s=n.hostLeases?.get(e)??(n.pluginServerHosts?.get(e)===i?Q(n,e,i):void 0);if(s?.owner.kind==="plugin"&&s.host===i){await mE({name:e,disabled:r,state:n,pi:o});return}rd(n.mcpConfigOverride).has(e)&&n.sessionMcpConfigDisabledOverrides.set(e,r),i.config.registrySource!==void 0&&n.sessionRegistryDisabledOverrides.set(e,r);let a={...i.config,disabled:r};await Ve([a],n,o,void 0,void 0,s?.owner.kind),_e(n)}async function _E(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=cE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await hk(e,o,i,s,a),_e(o),c.overridden?{notice:dE(e)}:{}}import{DynamicBorder as XZ}from"@augmentcode/auggie-v2";import{Key as QZ,matchesKey as e2,SearchableWindowedList as t2,SpinnerTimer as r2,truncateToWidth as Nu,wrapTextWithAnsi as n2}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as $Z,scopeToSettingsTarget as IZ}from"@augmentcode/auggie-v2";import{truncateToWidth as OZ,visibleWidth as Wn,wrapTextWithAnsi as zZ}from"@earendil-works/pi-tui";var NZ=2,DZ=2,Au={name:"Name",source:"Source",status:"Status"};function vm(t){if(t.disabled)return{label:"Disabled",color:"muted"};switch(t.status){case"success":return{label:`${t.tools.length} tools available`,color:"success"};case"failed":return{label:"Failed",color:"error"};case"auth_required":return{label:"Auth required",color:"warning",hint:" Press Enter for options"};case"disabled":return{label:"Disabled",color:"muted"};default:return{label:"Initializing",color:"text"}}}function _m(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function Sm(t,e){let r=e-Wn(t);return r>0?t+" ".repeat(r):t}function Mu(t){return t.reduce((e,r)=>Math.max(e,Wn(r)),0)}function Qo(t,e,r,n){let o=`${e}Width`,i=Math.min(Math.max(0,r-t[o]),n);return t[o]+=i,n-i}function SE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(NZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(DZ,Math.floor((o-i)/(i-1))),a=o-s*Math.max(0,i-1),c=["name","source","status"].slice(0,i),u={prefixWidth:n,gapWidth:s,nameWidth:0,sourceWidth:0,statusWidth:0};for(let g of c)a=Qo(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Wn(Au[w]))&&(a=Qo(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>_m(g)),l=t.map(g=>vm(g)),f=Math.max(Wn(Au.source),Mu(d)),p=Math.max(Wn(Au.status),Mu(l.map(g=>g.label))),m=Math.max(Wn(Au.name),Mu(t.map(g=>g.name))),h=Math.max(p,Mu(l.map(g=>g.label+(g.hint??""))));return a=Qo(u,"source",f,a),a=Qo(u,"status",p,a),a=Qo(u,"name",m,a),Qo(u,"status",h,a),u}function wE(t,e,r){if(e<=r)return{start:0,end:e};let n=Math.floor(r/2),o=Math.max(0,Math.min(t-n,e-r));return{start:o,end:o+r}}function ei(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>zZ(n,r).map(o=>Wn(o)<=r?o:OZ(o,r,"")))}function LZ(t,e){return Math.max(0,t-e)}function ti(t,e,r){return Math.max(0,Math.min(t,LZ(e,r)))}function bE(t,e,r){let n=ti(t,e,r),o=Math.min(e,n+r);return{start:n,end:o,aboveCount:n,belowCount:e-o,rangeLabel:`Rows ${n+1}-${o} of ${e}`}}function RE(t,e){return String(t+1).padStart(String(e).length," ")}function wm(t){return $Z(IZ(t))}import{Key as jZ,matchesKey as FZ}from"@earendil-works/pi-tui";function $u(t){if(t.source==="plugin"&&t.disabled)return t.canAuthenticate?["authenticate","toggle"]:["toggle"];let e=t.transport==="stdio"?["viewTools","viewLogs"]:["viewTools"];return t.canAuthenticate&&e.unshift("authenticate"),e.push("toggle","reconnect"),e}function CE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var PE=10,Vn=15;var UZ="k",qZ="j";function ri(t,e){return(t%e+e)%e}function ot(t,e){let r=t.findIndex(n=>n.name===e);return r>=0?r:0}function bm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===UZ?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===qZ?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:FZ(t,jZ.backspace)?{kind:"back"}:{kind:"ignore"}}function HZ(t,e,r){if(e.kind==="filterChanged")return{state:{...t,filterQuery:e.query,selectedServer:r[0]?.name??null}};let n=r.length;if(n===0)return e.kind==="cancel"?{state:t,effect:{kind:"close"}}:{state:t};switch(e.kind){case"up":{let o=ri(ot(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=ri(ot(r,t.selectedServer)+1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"confirm":{let o=r[ot(r,t.selectedServer)];return o?.status==="auth_required"&&o.canAuthenticate?{state:t,effect:{kind:"authenticate",server:o.name}}:{state:{...t,step:"serverActions",actionIndex:0}}}case"cancel":return{state:t,effect:{kind:"close"}};default:return{state:t}}}function GZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=$u(n);switch(e.kind){case"up":return{state:{...t,actionIndex:ri(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:ri(t.actionIndex+1,o.length)}};case"cancel":case"back":return{state:{...t,step:"serverList"}};case"confirm":{let i=o[t.actionIndex];return i==="viewTools"?{state:{...t,step:"viewTools",toolIndex:0}}:i==="viewLogs"?{state:{...t,step:"viewLogs",logScrollOffset:0}}:i==="authenticate"?{state:t,effect:{kind:"authenticate",server:n.name}}:i==="toggle"?{state:t,effect:{kind:"toggle",server:n.name,disable:!n.disabled}}:{state:t,effect:{kind:"reconnect",server:n.name}}}default:return{state:t}}}function ZZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.tools.length??0;switch(e.kind){case"up":return{state:{...t,toolIndex:Math.max(0,t.toolIndex-1)}};case"down":return{state:{...t,toolIndex:Math.min(Math.max(0,n-1),t.toolIndex+1)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function BZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.logLines()??[],o=ei(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:ti(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:ti(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function WZ(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function Iu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function VZ(t,e){let r=t.targetScopes.length;if(r===0)return{state:Iu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:ri(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:ri(t.targetIndex+1,r)}};case"cancel":case"back":return{state:Iu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:Iu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:Iu(t,"serverActions")}}default:return{state:t}}}function xE(t,e,r){switch(t.step){case"serverList":return HZ(t,e,r.snapshots);case"serverActions":return GZ(t,e,r);case"viewTools":return ZZ(t,e,r);case"viewLogs":return BZ(t,e,r);case"pasteAuthCode":return WZ(t,e);case"selectTarget":return VZ(t,e);default:return{state:t}}}import{truncateToWidth as Ft,visibleWidth as KZ,wrapTextWithAnsi as on}from"@earendil-works/pi-tui";var Rm="\u2192 ",Ou=" ";function kE(t,e,r){return e?r.bold(r.fg("accent",t)):r.fg("text",t)}function wr(t,e){return e>0?Ft(t,e,"\u2026"):""}function EE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=SE(r,a),u=" ".repeat(c.gapWidth),d=(m,h,g,v)=>{let w=[c.nameWidth>0?Sm(h,c.nameWidth):"",c.sourceWidth>0?Sm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return m+w.join(u)},l=wr(Ou,c.prefixWidth),p=[d(l,i.bold(i.fg("accent",wr("Name",c.nameWidth))),i.bold(i.fg("accent",wr("Source",c.sourceWidth))),i.bold(i.fg("accent",wr("Status",c.statusWidth))))];if(e.length===0)p.push(Ft(i.fg("muted","No MCP servers available"),a,"\u2026"));else if(o.total===0)p.push(Ft(i.fg("muted","No matching MCP servers"),a,"\u2026"));else for(let m of n){let h=m.name===t.selectedServer,g=vm(m),v=wr(g.label,c.statusWidth),w=c.statusWidth-KZ(v),b=g.hint?wr(g.hint,w):"",x=i.fg(g.color,v)+(b?i.fg("muted",b):""),S=wr(h?Rm:Ou,c.prefixWidth);p.push(d(h?i.fg("accent",S):S,kE(wr(m.name,c.nameWidth),h,i),kE(wr(_m(m),c.sourceWidth),h,i),x))}return o.hasOverflow&&p.push(Ft(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var JZ={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 YZ(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 JZ[t]}function TE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return on(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=on(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...on(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=$u(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=YZ(d,i),p=f.label,m=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ft((l?Rm:Ou)+m+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function AE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return on(r.fg("muted","No tools available."),o);if(i.disabled)return on(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return on(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=wE(t.toolIndex,s,Vn),u=[];for(let d=a;d<c;d++){let l=i.tools[d];if(!l)continue;let p=d===t.toolIndex?r.bold(r.fg("accent",l.name)):r.fg("text",l.name);u.push(Ft(r.fg("muted",`${RE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function ME(t,e,r,n){let o=Math.max(1,n),s=e[ot(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return on(r.fg("muted","No logs available yet."),o);let a=ei(s,o),c=a.length,u=bE(t.logScrollOffset,c,Vn),d=[];c>Vn&&d.push(Ft(r.fg("muted",u.rangeLabel),o,"\u2026")),u.aboveCount>0&&d.push(Ft(r.fg("dim",`\u2191 ${u.aboveCount} more rows`),o,"\u2026"));for(let l of a.slice(u.start,u.end))d.push(Ft(r.fg("text",l),o,""));return u.belowCount>0&&d.push(Ft(r.fg("dim",`\u2193 ${u.belowCount} more rows`),o,"\u2026")),d}function $E(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)]?.name??"",s=[...on(r.fg("muted",`Save the toggle for "${i}" to which settings file?`),o),""];for(let[a,c]of t.targetScopes.entries()){let u=a===t.targetIndex,d=u?r.bold(r.fg("accent",wm(c))):r.fg("text",wm(c));s.push(Ft((u?Rm:Ou)+d,o,"\u2026"))}return s}var zu=3;function o2(t){return t.type==="stdio"?t.command:t.url}function i2(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 AE(t){return t.disabled?2:t.status==="auth_required"?0:1}function n2(t){let e=[];for(let r of t.servers.values())e.push({name:r.name,status:r.status,transport:r.config.type,source:br(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:t2(r.config),logLines:()=>r2(r)});return e.sort((r,n)=>AE(r)-AE(n)),e}function o2(t,e){let r=e[ot(e,t.selectedServer)]?.name??"";switch(t.step){case"serverActions":return`MCP Servers \u203A ${r}`;case"viewTools":return`MCP Servers \u203A ${r} \u203A Tools`;case"viewLogs":return`MCP Servers \u203A ${r} \u203A Logs`;case"selectTarget":return`MCP Servers \u203A ${r} \u203A Settings file`;default:return"MCP Servers"}}function i2(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 s2(t,e,r,n,o){switch(t.step){case"serverActions":return xE(t,e,n,o);case"viewTools":return kE(t,e,n,o);case"viewLogs":return EE(t,e,n,o);case"selectTarget":return TE(t,e,n,o);default:return PE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function a2(t,e,r,n,o){let i=Math.max(1,o),s=Iu(n.bold(n.fg("accent",o2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=$u?[...r.renderInput(i),""]:[],c=s2(t,e,r,n,i);return[s,"",...a,...c,"",Iu(n.fg("muted",i2(t.step)),i,"\u2026")]}function c2(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[Iu(s,i,"\u2026"),"",Iu(a,i,"\u2026")]}function u2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function d2(t,e,r){let n=s=>s.flatMap(a=>e2(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 l2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function ME(t){return t?"Disabling":"Enabling"}function $E(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Sm=class{state=wE();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 KZ(r=>e.theme.fg("border",r)),this.serverList=new XZ({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:bE})}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=c2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=d2({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=a2(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>=$u}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=$u&&this.state.step==="serverList"&&this.busy===null&&this.authenticating===null;this.serverList.setInputFocused(this._focused&&e)}clampLogScrollOffset(e,r){if(this.state.step!=="viewLogs")return;let n=e[ot(e,this.state.selectedServer)],o=Xo(n?.logLines()??[],r).length,i=Qo(this.state.logScrollOffset,o,Bn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=RE(this.state,e,{snapshots:r,windowSize:Bn,logViewportWidth:this.currentWidth??$u});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=vm(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(vm(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,ME(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify($E(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,ME(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($E(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new QZ(()=>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??=u2(),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(YZ(e,JZ.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&&l2(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 IE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Sm({tui:i,theme:s,keybindings:a,snapshots:()=>n2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var bm=["list"];function OE(t){let{name:e,status:r}=t,n;switch(r){case"success":{let o=t.tools.length;n=o>0?` \u2705 ${e} (${o} tool${o===1?"":"s"})`:` \u2705 ${e} (ready)`;break}case"failed":n=` \u274C ${e} (failed)`;break;case"auth_required":n=` \u{1F510} ${e} (auth required)`;break;case"disabled":n=` \u26AA ${e} (disabled)`;break;default:n=` \u23F3 ${e} (initializing...)`;break}return r==="failed"&&t.lastError?`${n}
|
|
146
|
-
error: ${t.lastError}`:n}function
|
|
145
|
+
`)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function IE(t){return t.disabled?2:t.status==="auth_required"?0:1}function s2(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:o2(r.config),logLines:()=>i2(r)});return e.sort((r,n)=>IE(r)-IE(n)),e}function a2(t,e){let r=e[ot(e,t.selectedServer)]?.name??"";switch(t.step){case"serverActions":return`MCP Servers \u203A ${r}`;case"viewTools":return`MCP Servers \u203A ${r} \u203A Tools`;case"viewLogs":return`MCP Servers \u203A ${r} \u203A Logs`;case"selectTarget":return`MCP Servers \u203A ${r} \u203A Settings file`;default:return"MCP Servers"}}function c2(t){switch(t){case"serverList":return"Type to filter \xB7 \u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Close";case"serverActions":case"selectTarget":return"\u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Back";default:return"\u2191\u2193 Navigate \xB7 Esc Back"}}function u2(t,e,r,n,o){switch(t.step){case"serverActions":return TE(t,e,n,o);case"viewTools":return AE(t,e,n,o);case"viewLogs":return ME(t,e,n,o);case"selectTarget":return $E(t,e,n,o);default:return EE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function d2(t,e,r,n,o){let i=Math.max(1,o),s=Nu(n.bold(n.fg("accent",a2(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=zu?[...r.renderInput(i),""]:[],c=u2(t,e,r,n,i);return[s,"",...a,...c,"",Nu(n.fg("muted",c2(t.step)),i,"\u2026")]}function l2(t,e,r,n,o){let i=Math.max(1,o),s=n.bold(n.fg("accent",`MCP Servers \u203A ${t}`)),a=`${n.fg("accent",r)} ${n.fg("text",`${e} ${t}\u2026`)}`;return[Nu(s,i,"\u2026"),"",Nu(a,i,"\u2026")]}function f2(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function p2(t,e,r){let n=s=>s.flatMap(a=>n2(a,Math.max(1,r))),o=e.bold(e.fg("accent",`MCP Servers \u203A ${t.server} \u203A Authenticate`));if(t.status==="error")return n([o,"",e.fg("error","Authentication failed"),e.fg("muted",t.error??"Unknown error"),"",e.fg("muted","Press any key to dismiss")]);let i=[o,"",e.fg("text","Opening your browser to sign in\u2026")];return t.url&&i.push(e.fg("accent",t.url)),t.instructions&&i.push(e.fg("muted",t.instructions)),i.push("",`${e.fg("text","Paste code or redirect URL: ")}${e.fg("accent",t.input)}`,"",e.fg("muted","Enter Submit \xB7 Esc Cancel")),n(i)}function h2(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function OE(t){return t?"Disabling":"Enabling"}function zE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var Cm=class{state=CE();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 XZ(r=>e.theme.fg("border",r)),this.serverList=new t2({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:PE})}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=l2(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=p2({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=d2(this.state,o,this.serverList,this.config.theme,r)}return[...this.border.render(r),...n,...this.border.render(r)]}handleInput=e=>{this.dispatch(e)};invalidate(){}syncServerList(e){this.serverList.setItems(e);let r=this.state.selectedServer;r!==null&&this.serverList.selectIdentity(r)||(this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null})}isSearchAvailable(){return this.currentWidth===void 0||this.currentWidth>=zu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=zu&&this.state.step==="serverList"&&this.busy===null&&this.authenticating===null;this.serverList.setInputFocused(this._focused&&e)}clampLogScrollOffset(e,r){if(this.state.step!=="viewLogs")return;let n=e[ot(e,this.state.selectedServer)],o=ei(n?.logLines()??[],r).length,i=ti(this.state.logScrollOffset,o,Vn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=xE(this.state,e,{snapshots:r,windowSize:Vn,logViewportWidth:this.currentWidth??zu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=bm(e,this.config.keybindings,!n);if(o.kind==="up"||o.kind==="down"){o.kind==="up"?this.serverList.selectPrevious():this.serverList.selectNext(),this.state={...this.state,selectedServer:this.serverList.getSelectedIdentity()??null};return}if(o.kind==="confirm"||o.kind==="cancel"){this.applyAction(o,[...this.serverList.getMatchingItems()]);return}n&&this.serverList.handleInput(e)&&this.applyAction({kind:"filterChanged",query:this.serverList.getQuery()},[...this.serverList.getMatchingItems()])}dispatch(e){if(this.busy)return;if(this.authenticating){this.handleAuthInput(e);return}let r=this.config.snapshots();this.state.step==="serverList"?this.dispatchServerList(e,r):this.applyAction(bm(e,this.config.keybindings),r),this.syncSearchFocus(),this.config.tui.requestRender()}runEffect(e){switch(e.kind){case"close":this.config.done();return;case"reconnect":this.startOp(e.server,"Reconnecting",()=>this.config.reconnect(e.server));return;case"authenticate":this.startAuth(e.server);return;case"toggle":this.startToggle(e.server,e.disable);return;case"toggleWrite":this.startToggleWrite(e.server,e.disable,e.scope);return;default:return}}startToggle(e,r){if(this.busy||this.config.isReconnecting())return;let n=this.config.toggle.classify(e);if(n.kind==="blocked"){this.config.toggle.notify(n.message),this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender();return}if(n.kind==="session"){this.startOp(e,OE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(zE(e,o))}});return}if(n.direct){this.startToggleWrite(e,r,n.direct);return}this.state={...this.state,step:"selectTarget",targetScopes:n.scopes,targetIndex:0,pendingToggle:{server:e,disable:r}},this.config.tui.requestRender()}startToggleWrite(e,r,n){this.startOp(e,OE(r),async()=>{try{let{notice:o}=await this.config.toggle.applyLocal(e,r,n);o&&this.config.toggle.notify(o)}catch(o){this.config.toggle.notify(zE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new r2(()=>this.config.tui.requestRender()),this.opDone=n().finally(()=>{this.spinner?.stop(),this.spinner=void 0,this.busy=null,this.state={...this.state,step:"serverList",actionIndex:0},this.config.tui.requestRender()}))}startAuth(e){if(this.authenticating||this.config.isAuthenticating())return;this.authenticating=e,this.authStatus="pending",this.authUrl=void 0,this.authInstructions=void 0,this.authError=void 0,this.state={...this.state,step:"pasteAuthCode",authInput:""},this.authAbort=new AbortController,this.manualCode=void 0,this.queuedManualCodes.length=0;let r={onAuthUrl:n=>{this.authUrl=n.url,this.authInstructions=n.instructions,this.config.tui.requestRender()},waitForManualCode:()=>{if(this.authenticating!==e)return Promise.resolve(null);let n=this.queuedManualCodes.shift();return n!==void 0?Promise.resolve(n):(this.manualCode??=f2(),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(e2(e,QZ.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&&h2(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 NE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new Cm({tui:i,theme:s,keybindings:a,snapshots:()=>s2(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var xm=["list"];function DE(t){let{name:e,status:r}=t,n;switch(r){case"success":{let o=t.tools.length;n=o>0?` \u2705 ${e} (${o} tool${o===1?"":"s"})`:` \u2705 ${e} (ready)`;break}case"failed":n=` \u274C ${e} (failed)`;break;case"auth_required":n=` \u{1F510} ${e} (auth required)`;break;case"disabled":n=` \u26AA ${e} (disabled)`;break;default:n=` \u23F3 ${e} (initializing...)`;break}return r==="failed"&&t.lastError?`${n}
|
|
146
|
+
error: ${t.lastError}`:n}function m2(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var g2="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function Pm(t,e){return e.length>0?[t,...e]:null}function y2(t){let e=[],r=[];for(let o of t.servers.values())(Cr(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[Pm("MCP Server Status:",e.map(DE)),Pm("Plugin MCP servers:",r.map(DE)),Pm("Diagnostics:",t.diagnostics.map(m2))];return t.servers.size===0&&n.unshift([g2]),n.filter(o=>o!==null).map(o=>o.join(`
|
|
147
147
|
`)).join(`
|
|
148
148
|
|
|
149
|
-
`)}function m2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(bm.includes(e))return e}async function g2(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=Zs([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function zE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return bm.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 IE(n,e,s=>Zs([s],e,t),{classify:s=>hE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>mE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>gE({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)=>eE({serverName:s,state:e,pi:t,controller:a}));return}let i=m2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${bm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(h2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await g2(n,e,t)}})}import{logger as y2}from"@hermes/logger";var NE=y2.child({prefix:"pi-mcp"}),Rm="augment:feature-flags";function v2(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 DE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Rm,r=>{let n=v2(r);if(n===void 0){NE.warn(`${Rm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,NE.debug(`Received feature-flag snapshot via ${Rm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as _2}from"@hermes/logger";var Vs=_2.child({prefix:"pi-mcp"}),LE=300*1e3,Cm=600*1e3;function S2(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&&(yi(o,e)||o.expiresAt>e+Cm||(Vs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Cm}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Vs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Vs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function jE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{S2(t)},LE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Vs.debug(`Started background MCP OAuth refresh loop (interval ${LE}ms, buffer ${Cm}ms)`)}function FE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Vs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as w2}from"@hermes/logger";var Pt=w2.child({prefix:"pi-mcp"});function b2(t,e,r){t.dynamicallyAddedConfigIds.add(e),t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.sessionRemovedConfigIds.delete(e);for(let n of r)n.id!==void 0&&(t.registryConfigNamesById.set(n.id,n.name),t.registryCredentialConfigsById.set(n.id,{...n}))}function tr(t){Ke({state:t.state,domain:at(t.configId),epoch:t.intentEpoch})}function R2(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);(o.owner.kind==="local"||o.owner.kind==="registry")&&e.add(r)}for(let[r,n]of t.hostLeases)(n.owner.kind==="local"||n.owner.kind==="registry")&&e.add(r);return e}function UE(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"}),Pt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Ks(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;tr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(Pt.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 C2(t,e){return e.flatMap(r=>pu(t,r)?[r.config]:[])}function P2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function x2(t,e){let r=P2(e);if(r){if(Ks(t,r.error),r.error instanceof xt)throw r.error;return}let n=C2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){b2(t.state,t.configId,n);return}!t.superseded()&&e.some(o=>o.status==="collision")&&(t.state.failedAddConfigIds.add(t.configId),t.state.nameCollisionAddConfigIds.add(t.configId))}function HE(t,e){try{x2(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=Q(r,e.name,s);if(a.owner.kind==="plugin"||a.owner.kind==="vfs")return!1;if(i())return Pt.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 Pt.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 E2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await ui(t.state,t.configId),t.superseded()){tr(t);return}if(k2(t,e)){tr(t);return}try{if(!await Er({state:t.state,config:e,pi:t.activePi})){tr(t);return}}catch(r){throw Ks(t,r),r}Pt.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);HE(t,r??[])}catch(r){if(Ks(t,r),r instanceof xt)throw r}}async function T2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){tr(t),Pt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){qE(r,e),Pt.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),tr(t);return}if(await ui(r,n),o()){tr(t);return}try{if((await Promise.all(e.servers.map(c=>Er({state:r,config:c,pi:t.activePi})))).some(c=>!c)){tr(t);return}}catch(a){throw Ks(t,a),a}Pt.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()){tr(t);return}qE(r,e),HE(t,s??[])}function A2(t,e){if(typeof e=="string")return _k(e,t.workspaceRoot??process.cwd())}function M2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function GE(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return Pt.warn("augment:mcp-add-server payload missing configId"),Promise.resolve();let a=A2(r,i?.embeddedConfig);if(M2(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return Pt.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!Xn({state:r,configId:s,generation:i?.attachmentGeneration}))return Pt.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=ra({state:r,domain:at(s),forceNew:!0}),u=R2(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,m={state:r,configId:s,activePi:d,connect:o?.connect??Ve,report:o?.report??D,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>UE(r,s)},h;if(a)h=E2(m,a);else{let g=r.credentials;g?h=(o?.discover??_u)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>T2(m,w)).catch(w=>{if(!(w instanceof xt)){Ks(m,w);return}throw w}):(Pt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),tr(m),h=Promise.resolve())}return sa({state:r,configId:s,generation:i?.attachmentGeneration,operation:h,wasApplied:()=>UE(r,s)})}import{logger as $2}from"@hermes/logger";var Ou=$2.child({prefix:"pi-mcp"}),ZE=3,BE=6e4,I2=1e3,O2=8e3;function Pm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??Yr,s=o?.now??Date.now,a=o?.sleep??ln,c=o?.report??D,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Ou.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=Xr({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,m=N(r,f),h=s(),g=r.mcpRestartState.get(f),v=g&&h-g.lastRestart<BE?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>ZE)return Ou.warn(`augment:mcp-restart-server: ${f} exceeded ${ZE} restarts within ${BE}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:h});let b=Math.min(I2*2**(v-1),O2);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||N(r,f)!==m||Xr({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Ou.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,w)}).catch(S=>{let R=`Live MCP restart-server failed for ${f}: ${S instanceof Error?S.message:String(S)}`;Ou.warn(R),r.diagnostics.push({server:f,message:R})}).then(()=>{c(w,r)})}import{logger as z2}from"@hermes/logger";var Js=z2.child({prefix:"pi-mcp"}),N2=/^\d+$/,xm=1,WE="AUGMENT_ACTIVE_SPACE_ID",D2="augment-mcp-access-token-";function zu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function VE(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 Nu=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??ud}_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(D2)&&Object.hasOwn(process.env,WE)&&(r.active_space_id=process.env[WE]??""),r}getSecret(e){let r=zu(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 fn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=zu(e),s=(await this._callUpsert({name:o,value:r,scope:xm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!N2.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),Js.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await fn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=zu(e);this.cache.delete(r),await this._callDelete({name:r,scope:xm}),Js.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>or?`${o.slice(0,or)}\u2026[truncated]`:o;throw new ht(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>or?`${o.slice(0,or)}\u2026[truncated]`:o;throw new ht(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=zu(e);try{let n=await fn(()=>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===xm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:VE(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof ht&&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&&Js.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await fn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:VE(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof ht&&o.statusCode===404)return Js.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return Js.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>or?`${i.slice(0,or)}\u2026[truncated]`:i;throw new ht(o.status,o.statusText,s)}return await o.json()}};function km(t){return{latestPi:t}}import{logger as L2}from"@hermes/logger";var ti=L2.child({prefix:"pi-mcp"});async function j2(t){let e=[];for(let[r,n]of t.servers){let o=Q(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=st({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;We(t,r);let s=pt(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 ve({state:t,name:r,retirement:i,result:{status:"failed",error:c.reason}}),c.reason;ve({state:t,name:r,retirement:i,result:{status:"retired"}}),xe({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function F2(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),ti.warn(r.message))}function U2(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"}),ti.warn(a);return}try{let a=Jn(r,n);return{...a.type==="stdio"?Gt(a,s):Ht(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof kt?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"}),ti.warn(c);return}}function q2(t,e){let r=new Set;for(let[s,a]of t.servers){let c=Q(t,s,a);c.owner.kind!=="vfs"&&c.host===a&&r.add(s)}for(let[s,a]of t.hostLeases)a.owner.kind!=="vfs"&&r.add(s);let n=t.workspaceRoot??process.cwd(),o=[],i=new Set;for(let[s,a]of Object.entries(e.servers??{})){if(a===null)continue;let c=U2({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function H2(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function KE(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.connect??Ve,s=n;if(!s||typeof s!="object"||Array.isArray(s))return ti.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&&H2(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=j2(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;F2(r,s.diagnostics);let{servers:l,blockedNames:f}=q2(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(ti.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let m=p?.find(h=>h.status==="failed"||h.status==="unavailable");if(m)throw m.error instanceof Error?m.error:new Error(String(m.error));return l.every(h=>(p??[]).some(g=>g.config===h&&pu(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)}`;ti.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var Me=G2.child({prefix:"pi-mcp"}),eT="augment:mcp-oauth-credentials",JE="augment:mcp-header-secrets",YE="augment:mcp-header-secret-failures",Em="augment:mcp-oauth-failures",XE="augment:credentials",Z2="augment:mcp-config-ids",QE="augment:mcp-configs",B2="augment:mcp-vfs-servers",W2="augment:mcp-add-server",V2="augment:mcp-restart-server",K2="augment:mcp-remove-server";function J2(t){if(!t.secretsClient||t.tokens instanceof hi)return;let e=t.tokens;t.tokens=new hi(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),Me.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function Y2(t){if(!t||typeof t!="object"){Me.warn(`${eT} 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 Tm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=Qr(n),i=Xr({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&tT({state:t,name:r,revision:o})&&!rT({state:t,revision:o})&&yr({store:t.tokens,serverName:r,proto:n,options:{acceptedRevisions:t.oauthCredentialRevisions,acceptedDomains:t.oauthCredentialDomains,expectedDomains:t.expectedCredentialDomains,equalRevisionRebindDomains:t.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}}).decision!=="reject")return!0;let s="MCP restart credential was rejected; keeping the existing host";return Me.warn(s),t.diagnostics.push({server:r,message:s}),!1}function X2(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)||Re(u)&&Object.hasOwn(u,"target_material"))||n.targetConfigId&&r.targetMaterialStore?.has(n.targetConfigId))return;if(n.restart){let c=Object.keys(n.credentials);if(typeof n.restart.serverName!="string"||typeof n.restart.requestId!="string"||c.length!==1){Me.warn("MCP restart credentials must contain exactly the target entry");return}let u=Xr({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){Me.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){mk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Tm(r,n))return;let i=Object.keys(n.credentials).map(c=>({name:c,server:r.servers.get(c),lease:N(r,c)})),s=new Set;for(let c of Object.keys(n.credentials)){let u=r.servers.get(c)?.getRefreshInFlight?.();u&&s.add(u)}let a=()=>{if(r.mcpConnectionEpoch!==o||i.some(({name:d,server:l,lease:f})=>r.servers.get(d)!==l||N(r,d)!==f)||n.restart&&!Tm(r,n))return;let c=n4({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))){Pm({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&N(r,d)===f)&&Tm(r,n),data:{serverName:u.serverName,requestId:u.requestId}});return}if(Object.hasOwn(n.credentials,u.serverName)&&!c.equal.includes(u.serverName)){let d="MCP restart credential was rejected; keeping the existing host";Me.warn(d),r.diagnostics.push({server:u.serverName,message:d})}}};if(s.size===0){a();return}Promise.allSettled(s).then(a)}function Q2(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(eT,r=>{let n=Y2(r);n&&X2({pi:t,state:e,payload:n})}))}function tT(t){let{state:e,name:r,revision:n}=t,o=sn(n);if(e.pendingRegistryCredentialDomains.has(o)&&e.registryCredentialIntents.has(o))return!1;let i=e.expectedCredentialDomains.get(r),s=e.oauthCredentialDomains.get(r),a=e.servers.get(r),c=a?.config.id,u=a?.config.registrySource!==void 0&&c!==void 0&&at(c)===o;return n.ownerDomain!==void 0?i?.kind==="domain"?i.domain===o:u:i===void 0&&s===void 0?u:i?.kind==="domain"&&(i.domain===o||ct(n.domain))||s===n.domain}function rT(t){let{state:e,revision:r}=t,n=sn(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function e4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=Qr(s);if(yr({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(rT({state:e,revision:a})){Ym({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(tT({state:e,name:i,revision:a})){o[i]=s;continue}Km({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function t4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=Qr(i);s===void 0?(e.credentialRevisions.delete(o),e.hostedCredentialOwnership.delete(o)):(e.credentialRevisions.set(o,s),e.hostedCredentialOwnership.set(o,{...s,accessTokenOnly:i?.refresh_token===void 0})),e.statusFailureCategories.delete(o),e.authRefreshNeededReportKeys.delete(o),e.tokens.clearAuthRequired(o)}}function r4(t){let{pi:e,state:r,seeded:n,suppressReconnect:o}=t;if(o)return;let i=r.currentLoad?.latestPi??e;for(let s of n){let a=r.servers.get(s),c=r.expectedCredentialDomains.get(s),u=N(r,s),d=c?.kind!=="domain"||u?.owner.kind==="registry"&&u.owner.identity===c.domain;a&&d&&a.config.type!=="stdio"&&a.config.auth==="oauth"&&Yr(s,r,i).catch(()=>{}).finally(()=>{D(i,r),_e(r)})}}function n4(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=e4({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}=yr({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=mu(r.tokens,i,s);return t4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(Me.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),r4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function o4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(JE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${JE} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);zy(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(YE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${YE} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Dy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Em,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${Em} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){Me.warn(`${Em} entries is not an object`);return}Im(e,n.entries)}))}function i4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(XE,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){Me.warn(`${XE} 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 Nu(e.credentials),J2(e)}),t.events.on(Z2,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0,Bs(e.currentLoad?.latestPi??t,e)),Su({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(n=>{Me.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;_e(e),Vo(n,e)})}))}function s4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(QE,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){Me.warn(`${QE} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Jo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Er({state:e,config:s,pi:t}).catch(a=>{Me.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}Me.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function a4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(B2,r=>{KE({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e),_e(e)})}))}function c4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(W2,r=>{let n=()=>GE({pi:t,state:e,data:r});(e.targetMaterialQueue?Ws(e,n):n()).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(o=>{Me.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;_e(e),Vo(o,e)})}))}function u4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(V2,r=>{let n=()=>Pm({pi:t,state:e,data:r});(e.targetMaterialQueue?Ws(e,n):n()).then(()=>{_e(e)})}))}function d4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(K2,r=>{let n=()=>wu({pi:t,state:e,data:r});(e.targetMaterialQueue?Ws(e,n):n()).catch(o=>{Me.warn(`Live MCP remove-server did not retire durably: ${o instanceof Error?o.message:String(o)}`)}).finally(()=>{let o=e.currentLoad?.latestPi??t;_e(e),Vo(o,e)})}))}function See(t){return Oy(t)}var nT=t=>{let e=ee();e.currentLoad=km(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{_e(e)});let r=!1;zE(t,e),jk(t,e),Q2(t,e),o4(t,e),i4(t,e),s4(t,e),a4(t,e),c4(t,e),u4(t,e),d4(t,e),DE(t,e),gk(t,e),e.mcpAttachCloudSignaled&&Bs(t,e),t.on("session_start",(n,o)=>{e.currentLoad=km(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;if(e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,jE(e),e.connectStarted)Qn(e)?(dn(t),da(t)):pg(t,e),_e(e);else{e.connectStarted=!0,di()&&dn(t);let{servers:s,diagnostics:a}=Yn(o.cwd,o.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let c of a)e.diagnostics.push(c),Me.warn(c.message);Ve(s,e,t).then(()=>dk(e)).catch(()=>{}).finally(()=>{D(e.currentLoad?.latestPi??t,e),_e(e)})}r||(r=!0,t.events.emit(cE,pE(t,e)))}),t.on("session_shutdown",()=>{FE(e)})};ug(nT);var wee=nT;export{wee as default,See as setMcpErrorReporter};
|
|
149
|
+
`)}function v2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(xm.includes(e))return e}async function _2(t,e,r){if(e.servers.size===0){t.ui.notify("MCP servers are not available","warning");return}if(e.reconnecting){t.ui.notify("MCP servers are already restarting...","warning");return}t.ui.notify("Restarting MCP servers...","info");let n=Ws([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function LE(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return xm.filter(o=>o.startsWith(n)).map(o=>({value:o,label:o}))},handler:async(r,n)=>{if(r.trim().length===0&&n.mode==="interactive"&&n.hasUI){await NE(n,e,s=>Ws([s],e,t),{classify:s=>yE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>vE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>_E({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)=>nE({serverName:s,state:e,pi:t,controller:a}));return}let i=v2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${xm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(y2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await _2(n,e,t)}})}import{logger as S2}from"@hermes/logger";var jE=S2.child({prefix:"pi-mcp"}),km="augment:feature-flags";function w2(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 FE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(km,r=>{let n=w2(r);if(n===void 0){jE.warn(`${km} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,jE.debug(`Received feature-flag snapshot via ${km} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as b2}from"@hermes/logger";var Ks=b2.child({prefix:"pi-mcp"}),UE=300*1e3,Em=600*1e3;function R2(t){if(!t.shouldProactivelyRefreshTokens)return;let e=Date.now();for(let r of t.servers.values()){let{config:n}=r;if(n.type!=="http"&&n.type!=="sse"||n.disabled||!r.hasRefreshEligibleOAuthCredential())continue;let o=t.tokens.get(r.name);o&&o.expiresAt!==void 0&&(_i(o,e)||o.expiresAt>e+Em||(Ks.debug(`Background refresh: token for MCP server "${r.name}" expires within ${Em}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Ks.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Ks.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function qE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{R2(t)},UE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Ks.debug(`Started background MCP OAuth refresh loop (interval ${UE}ms, buffer ${Em}ms)`)}function HE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Ks.debug("Stopped background MCP OAuth refresh loop"))}import{logger as C2}from"@hermes/logger";var Pt=C2.child({prefix:"pi-mcp"});function P2(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 rr(t){Ke({state:t.state,domain:at(t.configId),epoch:t.intentEpoch})}function x2(t){let e=new Set;for(let[r,n]of t.servers){let o=Q(t,r,n);(o.owner.kind==="local"||o.owner.kind==="registry")&&e.add(r)}for(let[r,n]of t.hostLeases)(n.owner.kind==="local"||n.owner.kind==="registry")&&e.add(r);return e}function GE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function ZE(t,e){for(let r of e.diagnostics)t.diagnostics.push({...r,origin:"registry"}),Pt.warn(r.message);for(let[r,n]of e.namesById??[])t.registryConfigNamesById.set(r,n)}function Js(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;rr(t);let s=`Live MCP add-server failed for config id ${n}: ${e instanceof Error?e.message:String(e)}`;if(Pt.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 k2(t,e){return e.flatMap(r=>mu(t,r)?[r.config]:[])}function E2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function T2(t,e){let r=E2(e);if(r){if(Js(t,r.error),r.error instanceof xt)throw r.error;return}let n=k2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){P2(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 BE(t,e){try{T2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function A2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t,s=r.servers.get(e.name);if(!s)return!1;let a=Q(r,e.name,s);if(a.owner.kind==="plugin"||a.owner.kind==="vfs")return!1;if(i())return Pt.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 Pt.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 M2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await li(t.state,t.configId),t.superseded()){rr(t);return}if(A2(t,e)){rr(t);return}try{if(!await Ar({state:t.state,config:e,pi:t.activePi})){rr(t);return}}catch(r){throw Js(t,r),r}Pt.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);BE(t,r??[])}catch(r){if(Js(t,r),r instanceof xt)throw r}}async function $2(t,e){let{state:r,configId:n,superseded:o,hasLiveHostForId:i}=t;if(o()){rr(t),Pt.info(`Live MCP add-server for config id ${n} superseded by a newer selection; discarding`);return}if(e.servers.length===0){ZE(r,e),Pt.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),rr(t);return}if(await li(r,n),o()){rr(t);return}try{if((await Promise.all(e.servers.map(c=>Ar({state:r,config:c,pi:t.activePi})))).some(c=>!c)){rr(t);return}}catch(a){throw Js(t,a),a}Pt.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()){rr(t);return}ZE(r,e),BE(t,s??[])}function I2(t,e){if(typeof e=="string")return Ck(e,t.workspaceRoot??process.cwd())}function O2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function WE(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return Pt.warn("augment:mcp-add-server payload missing configId"),Promise.resolve();let a=I2(r,i?.embeddedConfig);if(O2(r,s,a))return Promise.resolve();if(a!==void 0&&a.id!==s)return Pt.warn(`Embedded MCP config id ${a.id??"<missing>"} does not match add target ${s}; rejecting`),Promise.resolve();if(!eo({state:r,configId:s,generation:i?.attachmentGeneration}))return Pt.info(`Ignoring stale live MCP add-server command for config id ${s}`),Promise.resolve();r.sessionRemovedConfigIds.delete(s);let c=na({state:r,domain:at(s),forceNew:!0}),u=x2(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,m={state:r,configId:s,activePi:d,connect:o?.connect??Ve,report:o?.report??D,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>GE(r,s)},h;if(a)h=M2(m,a);else{let g=r.credentials;g?h=(o?.discover??Ru)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>$2(m,w)).catch(w=>{if(!(w instanceof xt)){Js(m,w);return}throw w}):(Pt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),rr(m),h=Promise.resolve())}return aa({state:r,configId:s,generation:i?.attachmentGeneration,operation:h,wasApplied:()=>GE(r,s)})}import{logger as z2}from"@hermes/logger";var Du=z2.child({prefix:"pi-mcp"}),VE=3,KE=6e4,N2=1e3,D2=8e3;function Tm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??en,s=o?.now??Date.now,a=o?.sleep??pn,c=o?.report??D,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Du.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=tn({state:r,target:d});if(!l||r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,m=N(r,f),h=s(),g=r.mcpRestartState.get(f),v=g&&h-g.lastRestart<KE?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>VE)return Du.warn(`augment:mcp-restart-server: ${f} exceeded ${VE} restarts within ${KE}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:h});let b=Math.min(N2*2**(v-1),D2);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||N(r,f)!==m||tn({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Du.info(`Live MCP restart-server: reconnecting ${f}`),i(f,r,w)}).catch(S=>{let R=`Live MCP restart-server failed for ${f}: ${S instanceof Error?S.message:String(S)}`;Du.warn(R),r.diagnostics.push({server:f,message:R})}).then(()=>{c(w,r)})}import{logger as L2}from"@hermes/logger";var Ys=L2.child({prefix:"pi-mcp"}),j2=/^\d+$/,Am=1,JE="AUGMENT_ACTIVE_SPACE_ID",F2="augment-mcp-access-token-";function Lu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function YE(t,e){return e?.["augment:encoding"]!=="base64"?t:/^[A-Za-z0-9+/]*={0,2}$/.test(t)&&t.length%4===0?Buffer.from(t,"base64").toString("utf-8"):t}var ju=class{apiKey;apiUrl;userAgent;fetchImpl;timeoutMs;cache=new Map;inflight=new Map;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.userAgent=e.userAgent,this.fetchImpl=r,this.timeoutMs=n??pd}_headers(){return{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",...this.userAgent?{"User-Agent":this.userAgent}:{}}}lookupBody(e){let r={name:e};return!e.startsWith(F2)&&Object.hasOwn(process.env,JE)&&(r.active_space_id=process.env[JE]??""),r}getSecret(e){let r=Lu(e),n=this.inflight.get(r);if(n)return n;let o=this._resolve(r).finally(()=>{this.inflight.delete(r)});return this.inflight.set(r,o),o}upsertUserSecret(e,r,n){return hn(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Lu(e),s=(await this._callUpsert({name:o,value:r,scope:Am,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!j2.test(s))throw new Error("user secret upsert response contained an invalid persisted version");let a=BigInt(s).toString();return this.cache.set(o,r),Ys.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await hn(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Lu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Am}),Ys.debug(`Deleted user secret "${r}"`)}async _callUpsert(e){let n=await(this.fetchImpl??fetch)(`${this.apiUrl}/user-secrets/upsert`,{method:"POST",headers:this._headers(),body:JSON.stringify(e),signal:AbortSignal.timeout(this.timeoutMs)});if(!n.ok){let o=await n.text().catch(()=>""),i=o.length>sr?`${o.slice(0,sr)}\u2026[truncated]`:o;throw new ht(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 ht(n.status,n.statusText,i)}}async getUserSecretWithVersion(e){let r=Lu(e);try{let n=await hn(()=>this._callApi("/mcp-secrets/get",this.lookupBody(r))),o=n.secret?.value,i=n.secret?.version;if(o===void 0||i===void 0)return;let s=n.secret?.scope===Am||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:YE(o,n.secret?.tags),version:s?i:"0"}}catch(n){if(n instanceof ht&&n.statusCode===404)return;throw n}}async _resolve(e){let r=await this._tryGet("/mcp-secrets/get",this.lookupBody(e),e);if(r.value!==void 0)return this.cache.set(e,r.value),r.value;if(r.errored){let n=this.cache.get(e);return n!==void 0&&Ys.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await hn(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:YE(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof ht&&o.statusCode===404)return Ys.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return Ys.debug(`Secret "${n}" lookup via ${e} failed: ${i}`),{errored:!0}}}async _callApi(e,r){let o=await(this.fetchImpl??fetch)(`${this.apiUrl}${e}`,{method:"POST",headers:this._headers(),body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeoutMs)});if(!o.ok){let i=await o.text().catch(()=>""),s=i.length>sr?`${i.slice(0,sr)}\u2026[truncated]`:i;throw new ht(o.status,o.statusText,s)}return await o.json()}};function Mm(t){return{latestPi:t}}import{logger as U2}from"@hermes/logger";var ni=U2.child({prefix:"pi-mcp"});async function q2(t){let e=[];for(let[r,n]of t.servers){let o=Q(t,r,n);if(o.owner.kind!=="vfs"||o.host!==n)continue;let i=st({state:t,name:r,owner:o.owner,revision:o.revision,host:n});if(!i)continue;We(t,r);let s=pt(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 ve({state:t,name:r,retirement:i,result:{status:"failed",error:c.reason}}),c.reason;ve({state:t,name:r,retirement:i,result:{status:"retired"}}),xe({state:t,name:r,owner:o.owner,revision:o.revision})}))}await Promise.all(e)}function H2(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),ni.warn(r.message))}function G2(t){let{state:e,name:r,stored:n,higherPriorityNames:o,blockedNames:i,workspaceRoot:s}=t;if(o.has(r)){i.add(r);let a=`VFS MCP server "${r}" ignored: a higher-priority server with the same name takes precedence`;e.diagnostics.push({server:r,message:a,origin:"vfs"}),ni.warn(a);return}try{let a=Xn(r,n);return{...a.type==="stdio"?Gt(a,s):Ht(a,s),vfsSource:"vfs"}}catch(a){let c=a instanceof kt?a.message:`Failed to normalize VFS MCP server "${r}": ${a instanceof Error?a.message:String(a)}`;e.diagnostics.push({server:r,message:c,origin:"vfs"}),ni.warn(c);return}}function Z2(t,e){let r=new Set;for(let[s,a]of t.servers){let c=Q(t,s,a);c.owner.kind!=="vfs"&&c.host===a&&r.add(s)}for(let[s,a]of t.hostLeases)a.owner.kind!=="vfs"&&r.add(s);let n=t.workspaceRoot??process.cwd(),o=[],i=new Set;for(let[s,a]of Object.entries(e.servers??{})){if(a===null)continue;let c=G2({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function B2(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function XE(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.connect??Ve,s=n;if(!s||typeof s!="object"||Array.isArray(s))return ni.warn("augment:mcp-vfs-servers payload is not an object"),Promise.resolve();let a=typeof s.signature=="string"?s.signature:void 0;if(a!==void 0&&a===r.lastSuccessfulVfsMcpSignature&&B2(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=q2(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;H2(r,s.diagnostics);let{servers:l,blockedNames:f}=Z2(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(ni.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let m=p?.find(h=>h.status==="failed"||h.status==="unavailable");if(m)throw m.error instanceof Error?m.error:new Error(String(m.error));return l.every(h=>(p??[]).some(g=>g.config===h&&mu(r,g)))}))}).then(l=>{l&&a!==void 0&&r.vfsGeneration===c&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=u)}).catch(l=>{let f=`VFS MCP overlay connect failed: ${l instanceof Error?l.message:String(l)}`;ni.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var Me=W2.child({prefix:"pi-mcp"}),nT="augment:mcp-oauth-credentials",QE="augment:mcp-header-secrets",eT="augment:mcp-header-secret-failures",$m="augment:mcp-oauth-failures",tT="augment:credentials",V2="augment:mcp-config-ids",rT="augment:mcp-configs",K2="augment:mcp-vfs-servers",J2="augment:mcp-add-server",Y2="augment:mcp-restart-server",X2="augment:mcp-remove-server";function Q2(t){if(!t.secretsClient||t.tokens instanceof gi)return;let e=t.tokens;t.tokens=new gi(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),Me.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function e4(t){if(!t||typeof t!="object"){Me.warn(`${nT} payload is not an object`);return}let e=t,r=e.suppressReconnect===!0&&typeof e.credentials=="object"&&e.credentials!==null&&!Array.isArray(e.credentials);return{credentials:r?e.credentials:t,restart:r&&e.restart&&typeof e.restart=="object"?e.restart:void 0,suppressReconnect:r,targetConfigId:r&&typeof e.targetConfigId=="string"?e.targetConfigId:void 0}}function Im(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=rn(n),i=tn({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&oT({state:t,name:r,revision:o})&&!iT({state:t,revision:o})&&_r({store:t.tokens,serverName:r,proto:n,options:{acceptedRevisions:t.oauthCredentialRevisions,acceptedDomains:t.oauthCredentialDomains,expectedDomains:t.expectedCredentialDomains,equalRevisionRebindDomains:t.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:!0}}).decision!=="reject")return!0;let s="MCP restart credential was rejected; keeping the existing host";return Me.warn(s),t.diagnostics.push({server:r,message:s}),!1}function t4(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)||Re(u)&&Object.hasOwn(u,"target_material"))||n.targetConfigId&&r.targetMaterialStore?.has(n.targetConfigId))return;if(n.restart){let c=Object.keys(n.credentials);if(typeof n.restart.serverName!="string"||typeof n.restart.requestId!="string"||c.length!==1){Me.warn("MCP restart credentials must contain exactly the target entry");return}let u=tn({state:r,target:n.restart.serverName});if(!u||c[0]!==u.name){Me.warn("MCP restart credentials must contain exactly the resolved target entry");return}n={...n,restart:{...n.restart,serverName:u.name}}}if(n.targetConfigId){vk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!Im(r,n))return;let i=Object.keys(n.credentials).map(c=>({name:c,server:r.servers.get(c),lease:N(r,c)})),s=new Set;for(let c of Object.keys(n.credentials)){let u=r.servers.get(c)?.getRefreshInFlight?.();u&&s.add(u)}let a=()=>{if(r.mcpConnectionEpoch!==o||i.some(({name:d,server:l,lease:f})=>r.servers.get(d)!==l||N(r,d)!==f)||n.restart&&!Im(r,n))return;let c=s4({pi:e,state:r,credentials:n.credentials,suppressReconnect:n.suppressReconnect,requireEqualMaterial:n.restart!==void 0}),{restart:u}=n;if(!(typeof u?.serverName!="string"||typeof u.requestId!="string")){if(c.rejected.length===0&&c.applied.length+c.equal.length===1&&(c.applied.includes(u.serverName)||c.equal.includes(u.serverName))){Tm({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&N(r,d)===f)&&Im(r,n),data:{serverName:u.serverName,requestId:u.requestId}});return}if(Object.hasOwn(n.credentials,u.serverName)&&!c.equal.includes(u.serverName)){let d="MCP restart credential was rejected; keeping the existing host";Me.warn(d),r.diagnostics.push({server:u.serverName,message:d})}}};if(s.size===0){a();return}Promise.allSettled(s).then(a)}function r4(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(nT,r=>{let n=e4(r);n&&t4({pi:t,state:e,payload:n})}))}function oT(t){let{state:e,name:r,revision:n}=t,o=un(n);if(e.pendingRegistryCredentialDomains.has(o)&&e.registryCredentialIntents.has(o))return!1;let i=e.expectedCredentialDomains.get(r),s=e.oauthCredentialDomains.get(r),a=e.servers.get(r),c=a?.config.id,u=a?.config.registrySource!==void 0&&c!==void 0&&at(c)===o;return n.ownerDomain!==void 0?i?.kind==="domain"?i.domain===o:u:i===void 0&&s===void 0?u:i?.kind==="domain"&&(i.domain===o||ct(n.domain))||s===n.domain}function iT(t){let{state:e,revision:r}=t,n=un(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function n4(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=rn(s);if(_r({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(iT({state:e,revision:a})){tg({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(oT({state:e,name:i,revision:a})){o[i]=s;continue}Qm({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function o4(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=rn(i);s===void 0?(e.credentialRevisions.delete(o),e.hostedCredentialOwnership.delete(o)):(e.credentialRevisions.set(o,s),e.hostedCredentialOwnership.set(o,{...s,accessTokenOnly:i?.refresh_token===void 0})),e.statusFailureCategories.delete(o),e.authRefreshNeededReportKeys.delete(o),e.tokens.clearAuthRequired(o)}}function i4(t){let{pi:e,state:r,seeded:n,suppressReconnect:o}=t;if(o)return;let i=r.currentLoad?.latestPi??e;for(let s of n){let a=r.servers.get(s),c=r.expectedCredentialDomains.get(s),u=N(r,s),d=c?.kind!=="domain"||u?.owner.kind==="registry"&&u.owner.identity===c.domain;a&&d&&a.config.type!=="stdio"&&a.config.auth==="oauth"&&en(s,r,i).catch(()=>{}).finally(()=>{D(i,r),_e(r)})}}function s4(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=n4({state:r,credentials:n,suppressReconnect:o}),s={acceptedRevisions:r.oauthCredentialRevisions,acceptedDomains:r.oauthCredentialDomains,expectedDomains:r.expectedCredentialDomains,equalRevisionRebindDomains:r.equalRevisionRebindDomains,requireRevision:!0,requireEqualMaterial:t.requireEqualMaterial};Object.entries(i).some(([u,d])=>{let{decision:l}=_r({store:r.tokens,serverName:u,proto:d,options:s});return l==="apply"||l==="equal"&&t.requireEqualMaterial===!0})&&(r.shouldProactivelyRefreshTokens=!1);let c=yu(r.tokens,i,s);return o4({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(Me.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),i4({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function a4(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(QE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${QE} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);Ly(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(eT,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${eT} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Fy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on($m,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${$m} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){Me.warn(`${$m} entries is not an object`);return}Dm(e,n.entries)}))}function c4(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(tT,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){Me.warn(`${tT} payload missing apiKey or apiUrl`);return}e.credentials={apiKey:n.apiKey,apiUrl:n.apiUrl,...typeof n.userAgent=="string"?{userAgent:n.userAgent}:{},...typeof n.userId=="string"?{userId:n.userId}:{}},e.secretsClient=new ju(e.credentials),Q2(e)}),t.events.on(V2,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0),Su(e.currentLoad?.latestPi??t,e),Cu({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(n=>{Me.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;_e(e),Jo(n,e)})}))}function u4(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(rT,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){Me.warn(`${rT} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Xo(o,e.workspaceRoot??process.cwd());for(let{config:s}of i?.allConfigsById.values()??[])s&&Ar({state:e,config:s,pi:t}).catch(a=>{Me.warn(`Embedded MCP credential intent did not retire durably: ${a instanceof Error?a.message:String(a)}`)})}Me.info(`Stored ${o===void 0?0:o.length} embedded MCP config(s) for the next registry selection`)}))}function d4(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(K2,r=>{XE({pi:t,state:e,data:r}).then(()=>{D(e.currentLoad?.latestPi??t,e),_e(e)})}))}function l4(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(J2,r=>{let n=()=>WE({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).then(()=>{D(e.currentLoad?.latestPi??t,e)}).catch(o=>{Me.warn(`Live MCP add-server did not retire credentials durably: ${o instanceof Error?o.message:String(o)}`),D(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;_e(e),Jo(o,e)})}))}function f4(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(Y2,r=>{let n=()=>Tm({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).then(()=>{_e(e)})}))}function p4(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(X2,r=>{let n=()=>Pu({pi:t,state:e,data:r});(e.targetMaterialQueue?Vs(e,n):n()).catch(o=>{Me.warn(`Live MCP remove-server did not retire durably: ${o instanceof Error?o.message:String(o)}`)}).finally(()=>{let o=e.currentLoad?.latestPi??t;_e(e),Jo(o,e)})}))}function xee(t){return Dy(t)}var sT=t=>{let e=ee();e.currentLoad=Mm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{_e(e)});let r=!1;LE(t,e),qk(t,e),r4(t,e),a4(t,e),c4(t,e),u4(t,e),d4(t,e),l4(t,e),f4(t,e),p4(t,e),FE(t,e),wk(t,e),Su(t,e),t.on("session_start",(n,o)=>{e.currentLoad=Mm(t),e.workspaceRoot=o.cwd;let i=o.mcpConfigOverride;if(e.mcpConfigOverride=Array.isArray(i)&&i.length>0?i:void 0,e.ui=o.ui,qE(e),e.connectStarted)Ir(e)?(ir(t),la(t)):gg(t,e),_e(e);else{e.connectStarted=!0,fi()&&ir(t);let{servers:s,diagnostics:a}=Qn(o.cwd,o.agentDir,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides);for(let c of a)e.diagnostics.push(c),Me.warn(c.message);Ve(s,e,t).then(()=>pk(e)).catch(()=>{}).finally(()=>{D(e.currentLoad?.latestPi??t,e),_e(e)})}r||(r=!0,t.events.emit(lE,gE(t,e)))}),t.on("session_shutdown",()=>{HE(e)})};fg(sT);var kee=sT;export{kee as default,xee as setMcpErrorReporter};
|
|
150
150
|
/*! Bundled license information:
|
|
151
151
|
|
|
152
152
|
content-type/index.js:
|