@augmentcode/auggie 1.2.0-prerelease.202609130202 → 1.2.0-prerelease.202609140920

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,29 +1,29 @@
1
- var eT=Object.create;var Iu=Object.defineProperty;var tT=Object.getOwnPropertyDescriptor;var rT=Object.getOwnPropertyNames;var nT=Object.getPrototypeOf,oT=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}},Ou=(t,e)=>{for(var r in e)Iu(t,r,{get:e[r],enumerable:!0})},iT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of rT(e))!oT.call(t,o)&&o!==r&&Iu(t,o,{get:()=>e[o],enumerable:!(n=tT(e,o))||n.enumerable});return t};var Ws=(t,e,r)=>(r=t!=null?eT(nT(t)):{},iT(e||!t||!t.__esModule?Iu(r,"default",{value:t,enumerable:!0}):r,t));var Vi=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 Bi=class{};J._CodeOrName=Bi;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var wn=class extends Bi{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=wn;var St=class extends Bi{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 wn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=St;J.nil=new St("");function Sb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)hf(r,e[n]),r.push(t[++n]);return new St(r)}J._=Sb;var pf=new St("+");function wb(t,...e){let r=[Wi(t[0])],n=0;for(;n<e.length;)r.push(pf),hf(r,e[n]),r.push(pf,Wi(t[++n]));return Lz(r),new St(r)}J.str=wb;function hf(t,e){e instanceof St?t.push(...e._items):e instanceof wn?t.push(e):t.push(Uz(e))}J.addCodeArg=hf;function Lz(t){let e=1;for(;e<t.length-1;){if(t[e]===pf){let r=jz(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function jz(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof wn||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 wn))return`"${t}${e.slice(1)}`}function Fz(t,e){return e.emptyStr()?t:t.emptyStr()?e:wb`${t}${e}`}J.strConcat=Fz;function Uz(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:Wi(Array.isArray(t)?t.join(","):t)}function qz(t){return new St(Wi(t))}J.stringify=qz;function Wi(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=Wi;function Hz(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new St(`.${t}`):Sb`[${t}]`}J.getProperty=Hz;function Gz(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=Gz;function Zz(t){return new St(t.toString())}J.regexpCode=Zz});var yf=C(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.ValueScope=et.ValueScopeName=et.Scope=et.varKinds=et.UsedValueState=void 0;var Qe=Vi(),mf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},sc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(sc||(et.UsedValueState=sc={}));et.varKinds={const:new Qe.Name("const"),let:new Qe.Name("let"),var:new Qe.Name("var")};var ac=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=ac;var cc=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=cc;var Bz=(0,Qe._)`\n`,gf=class extends ac{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?Bz:Qe.nil}}get(){return this._scope}name(e){return new cc(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,sc.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 mf(u);c.set(u,sc.Completed)})}return i}};et.ValueScope=gf});var L=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=Vi(),$t=yf(),Ur=Vi();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Ur._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Ur.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Ur.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Ur.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Ur.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Ur.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Ur.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Ur.Name}});var fc=yf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return fc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return fc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return fc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return fc.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}},vf=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=vo(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},uc=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=vo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return lc(e,this.rhs)}},_f=class extends uc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Sf=class extends dr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},wf=class extends dr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},bf=class extends dr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Rf=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=vo(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},Ki=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)||(Wz(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Cn(e,r.names),{})}},lr=class extends Ki{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Cf=class extends Ki{},yo=class extends lr{};yo.kind="else";var bn=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 yo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(bb(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=vo(this.condition,e,r),this}get names(){let e=super.names;return lc(e,this.condition),this.else&&Cn(e,this.else.names),e}};bn.kind="if";var Rn=class extends lr{};Rn.kind="for";var Pf=class extends Rn{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=vo(this.iteration,e,r),this}get names(){return Cn(super.names,this.iteration.names)}},xf=class extends Rn{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=lc(super.names,this.from);return lc(e,this.to)}},dc=class extends Rn{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=vo(this.iterable,e,r),this}get names(){return Cn(super.names,this.iterable.names)}},Ji=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)}};Ji.kind="func";var Yi=class extends Ki{render(e){return"return "+super.render(e)}};Yi.kind="return";var kf=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&&Cn(e,this.catch.names),this.finally&&Cn(e,this.finally.names),e}},Xi=class extends lr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Xi.kind="catch";var Qi=class extends lr{render(e){return"finally"+super.render(e)}};Qi.kind="finally";var Ef=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 Cf]}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 vf(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 uc(e,r,n))}add(e,r){return this._leafNode(new _f(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Rf(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 bn(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 bn(e))}else(){return this._elseNode(new yo)}endIf(){return this._endBlockNode(bn,yo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Pf(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 xf(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 dc("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 dc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(Rn)}label(e){return this._leafNode(new Sf(e))}break(e){return this._leafNode(new wf(e))}return(e){let r=new Yi;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Yi)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new kf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new Xi(i),r(i)}return n&&(this._currNode=o.finally=new Qi,this.code(n)),this._endBlockNode(Xi,Qi)}throw(e){return this._leafNode(new bf(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 Ji(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Ji)}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 bn))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=Ef;function Cn(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function lc(t,e){return e instanceof G._CodeOrName?Cn(t,e.names):t}function vo(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 Wz(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function bb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Tf(t)}`}F.not=bb;var Vz=Rb(F.operators.AND);function Kz(...t){return t.reduce(Vz)}F.and=Kz;var Jz=Rb(F.operators.OR);function Yz(...t){return t.reduce(Jz)}F.or=Yz;function Rb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Tf(e)} ${t} ${Tf(r)}`}function Tf(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=L(),Xz=Vi();function Qz(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=Qz;function eN(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(xb(t,e),!kb(e,t.self.RULES.all))}U.alwaysValidSchema=eN;function xb(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]||Ab(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=xb;function kb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=kb;function tN(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=tN;function rN({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,se._)`${r}`}return(0,se._)`${t}${e}${(0,se.getProperty)(n)}`}U.schemaRefOrVal=rN;function nN(t){return Eb(decodeURIComponent(t))}U.unescapeFragment=nN;function oN(t){return encodeURIComponent(Mf(t))}U.escapeFragment=oN;function Mf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Mf;function Eb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Eb;function iN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=iN;function Cb({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:Cb({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} || {}`),$f(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Tb}),items:Cb({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 Tb(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&$f(t,r,e),r}U.evaluatedPropsToName=Tb;function $f(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=$f;var Pb={};function sN(t,e){return t.scopeValue("func",{ref:e,code:Pb[e.code]||(Pb[e.code]=new Xz._Code(e.code))})}U.useFunc=sN;var Af;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Af||(U.Type=Af={}));function aN(t,e,r){if(t instanceof se.Name){let n=e===Af.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():"/"+Mf(t)}U.getErrorPath=aN;function Ab(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=Ab});var fr=C(If=>{"use strict";Object.defineProperty(If,"__esModule",{value:!0});var je=L(),cN={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")};If.default=cN});var es=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=L(),pc=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 uN(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Ib(t,e,r);n??(s||a)?Mb(i,c):$b(o,(0,W._)`[${c}]`)}Fe.reportError=uN;function dN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Ib(t,e,r);Mb(o,a),i||s||$b(n,He.default.vErrors)}Fe.reportExtraError=dN;function lN(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=lN;function fN({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=fN;function Mb(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 $b(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 Pn={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 Ib(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:pN(t,e,r)}function pN(t,e,r={}){let{gen:n,it:o}=t,i=[hN(o,r),mN(t,r)];return gN(t,e,i),n.object(...i)}function hN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,pc.getErrorPath)(e,pc.Type.Str)}`:t;return[He.default.instancePath,(0,W.strConcat)(He.default.instancePath,r)]}function mN({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,pc.getErrorPath)(r,pc.Type.Str)}`),[Pn.schemaPath,o]}function gN(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([Pn.keyword,o],[Pn.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([Pn.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Pn.schema,s],[Pn.parentSchema,(0,W._)`${d}${l}`],[He.default.data,i]),u&&n.push([Pn.propertyName,u])}});var zb=C(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.boolOrEmptySchema=_o.topBoolOrEmptySchema=void 0;var yN=es(),vN=L(),_N=fr(),SN={message:"boolean schema is false"};function wN(t){let{gen:e,schema:r,validateName:n}=t;r===!1?Ob(t,!1):typeof r=="object"&&r.$async===!0?e.return(_N.default.data):(e.assign((0,vN._)`${n}.errors`,null),e.return(!0))}_o.topBoolOrEmptySchema=wN;function bN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),Ob(t)):r.var(e,!0)}_o.boolOrEmptySchema=bN;function Ob(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,yN.reportError)(o,SN,void 0,e)}});var Of=C(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.getRules=So.isJSONType=void 0;var RN=["string","number","integer","boolean","null","object","array"],CN=new Set(RN);function PN(t){return typeof t=="string"&&CN.has(t)}So.isJSONType=PN;function xN(){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:{}}}So.getRules=xN});var zf=C(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.shouldUseRule=qr.shouldUseGroup=qr.schemaHasRulesForType=void 0;function kN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Nb(t,n)}qr.schemaHasRulesForType=kN;function Nb(t,e){return e.rules.some(r=>Db(t,r))}qr.shouldUseGroup=Nb;function Db(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))}qr.shouldUseRule=Db});var ts=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 EN=Of(),TN=zf(),AN=es(),D=L(),Lb=B(),wo;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(wo||(Ue.DataType=wo={}));function MN(t){let e=jb(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=MN;function jb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(EN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=jb;function $N(t,e){let{gen:r,data:n,opts:o}=t,i=IN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,TN.schemaHasRulesForType)(t,e[0]));if(s){let a=Df(e,n,o.strictNumbers,wo.Wrong);r.if(a,()=>{i.length?ON(t,e,i):Lf(t)})}return s}Ue.coerceAndCheckDataType=$N;var Fb=new Set(["string","number","integer","boolean","null"]);function IN(t,e){return e?t.filter(r=>Fb.has(r)||e==="array"&&r==="array"):[]}function ON(t,e,r){let{gen:n,data:o,opts:i}=t,s=n.let("dataType",(0,D._)`typeof ${o}`),a=n.let("coerced",(0,D._)`undefined`);i.coerceTypes==="array"&&n.if((0,D._)`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,D._)`${o}[0]`).assign(s,(0,D._)`typeof ${o}`).if(Df(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,D._)`${a} !== undefined`);for(let u of r)(Fb.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Lf(t),n.endIf(),n.if((0,D._)`${a} !== undefined`,()=>{n.assign(o,a),zN(t,a)});function c(u){switch(u){case"string":n.elseIf((0,D._)`${s} == "number" || ${s} == "boolean"`).assign(a,(0,D._)`"" + ${o}`).elseIf((0,D._)`${o} === null`).assign(a,(0,D._)`""`);return;case"number":n.elseIf((0,D._)`${s} == "boolean" || ${o} === null
1
+ var eT=Object.create;var Iu=Object.defineProperty;var tT=Object.getOwnPropertyDescriptor;var rT=Object.getOwnPropertyNames;var nT=Object.getPrototypeOf,oT=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}},Ou=(t,e)=>{for(var r in e)Iu(t,r,{get:e[r],enumerable:!0})},iT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of rT(e))!oT.call(t,o)&&o!==r&&Iu(t,o,{get:()=>e[o],enumerable:!(n=tT(e,o))||n.enumerable});return t};var Ks=(t,e,r)=>(r=t!=null?eT(nT(t)):{},iT(e||!t||!t.__esModule?Iu(r,"default",{value:t,enumerable:!0}):r,t));var Ji=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 Vi=class{};J._CodeOrName=Vi;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var wn=class extends Vi{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=wn;var St=class extends Vi{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 wn&&(r[n.str]=(r[n.str]||0)+1),r),{})}};J._Code=St;J.nil=new St("");function wb(t,...e){let r=[t[0]],n=0;for(;n<e.length;)hf(r,e[n]),r.push(t[++n]);return new St(r)}J._=wb;var pf=new St("+");function bb(t,...e){let r=[Ki(t[0])],n=0;for(;n<e.length;)r.push(pf),hf(r,e[n]),r.push(pf,Ki(t[++n]));return Nz(r),new St(r)}J.str=bb;function hf(t,e){e instanceof St?t.push(...e._items):e instanceof wn?t.push(e):t.push(jz(e))}J.addCodeArg=hf;function Nz(t){let e=1;for(;e<t.length-1;){if(t[e]===pf){let r=Dz(t[e-1],t[e+1]);if(r!==void 0){t.splice(e-1,3,r);continue}t[e++]="+"}e++}}function Dz(t,e){if(e==='""')return t;if(t==='""')return e;if(typeof t=="string")return e instanceof wn||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 wn))return`"${t}${e.slice(1)}`}function Lz(t,e){return e.emptyStr()?t:t.emptyStr()?e:bb`${t}${e}`}J.strConcat=Lz;function jz(t){return typeof t=="number"||typeof t=="boolean"||t===null?t:Ki(Array.isArray(t)?t.join(","):t)}function Fz(t){return new St(Ki(t))}J.stringify=Fz;function Ki(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=Ki;function Uz(t){return typeof t=="string"&&J.IDENTIFIER.test(t)?new St(`.${t}`):wb`[${t}]`}J.getProperty=Uz;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 Hz(t){return new St(t.toString())}J.regexpCode=Hz});var yf=C(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.ValueScope=et.ValueScopeName=et.Scope=et.varKinds=et.UsedValueState=void 0;var Qe=Ji(),mf=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},sc;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(sc||(et.UsedValueState=sc={}));et.varKinds={const:new Qe.Name("const"),let:new Qe.Name("let"),var:new Qe.Name("var")};var ac=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=ac;var cc=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=cc;var Gz=(0,Qe._)`\n`,gf=class extends ac{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?Gz:Qe.nil}}get(){return this._scope}name(e){return new cc(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,sc.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 mf(u);c.set(u,sc.Completed)})}return i}};et.ValueScope=gf});var L=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=Ji(),$t=yf(),Ur=Ji();Object.defineProperty(F,"_",{enumerable:!0,get:function(){return Ur._}});Object.defineProperty(F,"str",{enumerable:!0,get:function(){return Ur.str}});Object.defineProperty(F,"strConcat",{enumerable:!0,get:function(){return Ur.strConcat}});Object.defineProperty(F,"nil",{enumerable:!0,get:function(){return Ur.nil}});Object.defineProperty(F,"getProperty",{enumerable:!0,get:function(){return Ur.getProperty}});Object.defineProperty(F,"stringify",{enumerable:!0,get:function(){return Ur.stringify}});Object.defineProperty(F,"regexpCode",{enumerable:!0,get:function(){return Ur.regexpCode}});Object.defineProperty(F,"Name",{enumerable:!0,get:function(){return Ur.Name}});var fc=yf();Object.defineProperty(F,"Scope",{enumerable:!0,get:function(){return fc.Scope}});Object.defineProperty(F,"ValueScope",{enumerable:!0,get:function(){return fc.ValueScope}});Object.defineProperty(F,"ValueScopeName",{enumerable:!0,get:function(){return fc.ValueScopeName}});Object.defineProperty(F,"varKinds",{enumerable:!0,get:function(){return fc.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}},vf=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=_o(this.rhs,e,r)),this}get names(){return this.rhs instanceof G._CodeOrName?this.rhs.names:{}}},uc=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=_o(this.rhs,e,r),this}get names(){let e=this.lhs instanceof G.Name?{}:{...this.lhs.names};return lc(e,this.rhs)}},_f=class extends uc{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Sf=class extends dr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},wf=class extends dr{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},bf=class extends dr{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Rf=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=_o(this.code,e,r),this}get names(){return this.code instanceof G._CodeOrName?this.code.names:{}}},Yi=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)||(Zz(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Cn(e,r.names),{})}},lr=class extends Yi{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Cf=class extends Yi{},vo=class extends lr{};vo.kind="else";var bn=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 vo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Rb(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=_o(this.condition,e,r),this}get names(){let e=super.names;return lc(e,this.condition),this.else&&Cn(e,this.else.names),e}};bn.kind="if";var Rn=class extends lr{};Rn.kind="for";var Pf=class extends Rn{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=_o(this.iteration,e,r),this}get names(){return Cn(super.names,this.iteration.names)}},xf=class extends Rn{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=lc(super.names,this.from);return lc(e,this.to)}},dc=class extends Rn{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=_o(this.iterable,e,r),this}get names(){return Cn(super.names,this.iterable.names)}},Xi=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)}};Xi.kind="func";var Qi=class extends Yi{render(e){return"return "+super.render(e)}};Qi.kind="return";var kf=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&&Cn(e,this.catch.names),this.finally&&Cn(e,this.finally.names),e}},es=class extends lr{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};es.kind="catch";var ts=class extends lr{render(e){return"finally"+super.render(e)}};ts.kind="finally";var Ef=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 Cf]}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 vf(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 uc(e,r,n))}add(e,r){return this._leafNode(new _f(e,F.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==G.nil&&this._leafNode(new Rf(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 bn(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 bn(e))}else(){return this._elseNode(new vo)}endIf(){return this._endBlockNode(bn,vo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Pf(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 xf(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 dc("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 dc("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(Rn)}label(e){return this._leafNode(new Sf(e))}break(e){return this._leafNode(new wf(e))}return(e){let r=new Qi;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Qi)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new kf;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new es(i),r(i)}return n&&(this._currNode=o.finally=new ts,this.code(n)),this._endBlockNode(es,ts)}throw(e){return this._leafNode(new bf(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 Xi(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Xi)}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 bn))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=Ef;function Cn(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function lc(t,e){return e instanceof G._CodeOrName?Cn(t,e.names):t}function _o(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 Zz(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Rb(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,G._)`!${Tf(t)}`}F.not=Rb;var Bz=Cb(F.operators.AND);function Wz(...t){return t.reduce(Bz)}F.and=Wz;var Vz=Cb(F.operators.OR);function Kz(...t){return t.reduce(Vz)}F.or=Kz;function Cb(t){return(e,r)=>e===G.nil?r:r===G.nil?e:(0,G._)`${Tf(e)} ${t} ${Tf(r)}`}function Tf(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=L(),Jz=Ji();function Yz(t){let e={};for(let r of t)e[r]=!0;return e}U.toHash=Yz;function Xz(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(kb(t,e),!Eb(e,t.self.RULES.all))}U.alwaysValidSchema=Xz;function kb(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]||Mb(t,`unknown keyword: "${i}"`)}U.checkUnknownRules=kb;function Eb(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}U.schemaHasRules=Eb;function Qz(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=Qz;function eN({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=eN;function tN(t){return Tb(decodeURIComponent(t))}U.unescapeFragment=tN;function rN(t){return encodeURIComponent(Mf(t))}U.escapeFragment=rN;function Mf(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}U.escapeJsonPointer=Mf;function Tb(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}U.unescapeJsonPointer=Tb;function nN(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}U.eachItem=nN;function Pb({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:Pb({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} || {}`),$f(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Ab}),items:Pb({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 Ab(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,se._)`{}`);return e!==void 0&&$f(t,r,e),r}U.evaluatedPropsToName=Ab;function $f(t,e,r){Object.keys(r).forEach(n=>t.assign((0,se._)`${e}${(0,se.getProperty)(n)}`,!0))}U.setEvaluated=$f;var xb={};function oN(t,e){return t.scopeValue("func",{ref:e,code:xb[e.code]||(xb[e.code]=new Jz._Code(e.code))})}U.useFunc=oN;var Af;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Af||(U.Type=Af={}));function iN(t,e,r){if(t instanceof se.Name){let n=e===Af.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():"/"+Mf(t)}U.getErrorPath=iN;function Mb(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=Mb});var fr=C(If=>{"use strict";Object.defineProperty(If,"__esModule",{value:!0});var je=L(),sN={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")};If.default=sN});var rs=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=L(),pc=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 aN(t,e=Fe.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:s,allErrors:a}=o,c=Ob(t,e,r);n??(s||a)?$b(i,c):Ib(o,(0,W._)`[${c}]`)}Fe.reportError=aN;function cN(t,e=Fe.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:s}=n,a=Ob(t,e,r);$b(o,a),i||s||Ib(n,He.default.vErrors)}Fe.reportExtraError=cN;function uN(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=uN;function dN({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=dN;function $b(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 Ib(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 Pn={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 Ob(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,W._)`{}`:lN(t,e,r)}function lN(t,e,r={}){let{gen:n,it:o}=t,i=[fN(o,r),pN(t,r)];return hN(t,e,i),n.object(...i)}function fN({errorPath:t},{instancePath:e}){let r=e?(0,W.str)`${t}${(0,pc.getErrorPath)(e,pc.Type.Str)}`:t;return[He.default.instancePath,(0,W.strConcat)(He.default.instancePath,r)]}function pN({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,W.str)`${e}/${t}`;return r&&(o=(0,W.str)`${o}${(0,pc.getErrorPath)(r,pc.Type.Str)}`),[Pn.schemaPath,o]}function hN(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([Pn.keyword,o],[Pn.params,typeof e=="function"?e(t):e||(0,W._)`{}`]),c.messages&&n.push([Pn.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Pn.schema,s],[Pn.parentSchema,(0,W._)`${d}${l}`],[He.default.data,i]),u&&n.push([Pn.propertyName,u])}});var Nb=C(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.boolOrEmptySchema=So.topBoolOrEmptySchema=void 0;var mN=rs(),gN=L(),yN=fr(),vN={message:"boolean schema is false"};function _N(t){let{gen:e,schema:r,validateName:n}=t;r===!1?zb(t,!1):typeof r=="object"&&r.$async===!0?e.return(yN.default.data):(e.assign((0,gN._)`${n}.errors`,null),e.return(!0))}So.topBoolOrEmptySchema=_N;function SN(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),zb(t)):r.var(e,!0)}So.boolOrEmptySchema=SN;function zb(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,mN.reportError)(o,vN,void 0,e)}});var Of=C(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.getRules=wo.isJSONType=void 0;var wN=["string","number","integer","boolean","null","object","array"],bN=new Set(wN);function RN(t){return typeof t=="string"&&bN.has(t)}wo.isJSONType=RN;function CN(){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:{}}}wo.getRules=CN});var zf=C(qr=>{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.shouldUseRule=qr.shouldUseGroup=qr.schemaHasRulesForType=void 0;function PN({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&Db(t,n)}qr.schemaHasRulesForType=PN;function Db(t,e){return e.rules.some(r=>Lb(t,r))}qr.shouldUseGroup=Db;function Lb(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))}qr.shouldUseRule=Lb});var ns=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 xN=Of(),kN=zf(),EN=rs(),D=L(),jb=B(),bo;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(bo||(Ue.DataType=bo={}));function TN(t){let e=Fb(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=TN;function Fb(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(xN.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ue.getJSONTypes=Fb;function AN(t,e){let{gen:r,data:n,opts:o}=t,i=MN(e,o.coerceTypes),s=e.length>0&&!(i.length===0&&e.length===1&&(0,kN.schemaHasRulesForType)(t,e[0]));if(s){let a=Df(e,n,o.strictNumbers,bo.Wrong);r.if(a,()=>{i.length?$N(t,e,i):Lf(t)})}return s}Ue.coerceAndCheckDataType=AN;var Ub=new Set(["string","number","integer","boolean","null"]);function MN(t,e){return e?t.filter(r=>Ub.has(r)||e==="array"&&r==="array"):[]}function $N(t,e,r){let{gen:n,data:o,opts:i}=t,s=n.let("dataType",(0,D._)`typeof ${o}`),a=n.let("coerced",(0,D._)`undefined`);i.coerceTypes==="array"&&n.if((0,D._)`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,D._)`${o}[0]`).assign(s,(0,D._)`typeof ${o}`).if(Df(e,o,i.strictNumbers),()=>n.assign(a,o))),n.if((0,D._)`${a} !== undefined`);for(let u of r)(Ub.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),Lf(t),n.endIf(),n.if((0,D._)`${a} !== undefined`,()=>{n.assign(o,a),IN(t,a)});function c(u){switch(u){case"string":n.elseIf((0,D._)`${s} == "number" || ${s} == "boolean"`).assign(a,(0,D._)`"" + ${o}`).elseIf((0,D._)`${o} === null`).assign(a,(0,D._)`""`);return;case"number":n.elseIf((0,D._)`${s} == "boolean" || ${o} === null
3
3
  || (${s} == "string" && ${o} && ${o} == +${o})`).assign(a,(0,D._)`+${o}`);return;case"integer":n.elseIf((0,D._)`${s} === "boolean" || ${o} === null
4
4
  || (${s} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(a,(0,D._)`+${o}`);return;case"boolean":n.elseIf((0,D._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(a,!1).elseIf((0,D._)`${o} === "true" || ${o} === 1`).assign(a,!0);return;case"null":n.elseIf((0,D._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(a,null);return;case"array":n.elseIf((0,D._)`${s} === "string" || ${s} === "number"
5
- || ${s} === "boolean" || ${o} === null`).assign(a,(0,D._)`[${o}]`)}}}function zN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,D._)`${e} !== undefined`,()=>t.assign((0,D._)`${e}[${r}]`,n))}function Nf(t,e,r,n=wo.Correct){let o=n===wo.Correct?D.operators.EQ:D.operators.NEQ,i;switch(t){case"null":return(0,D._)`${e} ${o} null`;case"array":i=(0,D._)`Array.isArray(${e})`;break;case"object":i=(0,D._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,D._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,D._)`typeof ${e} ${o} ${t}`}return n===wo.Correct?i:(0,D.not)(i);function s(a=D.nil){return(0,D.and)((0,D._)`typeof ${e} == "number"`,a,r?(0,D._)`isFinite(${e})`:D.nil)}}Ue.checkDataType=Nf;function Df(t,e,r,n){if(t.length===1)return Nf(t[0],e,r,n);let o,i=(0,Lb.toHash)(t);if(i.array&&i.object){let s=(0,D._)`typeof ${e} != "object"`;o=i.null?s:(0,D._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else o=D.nil;i.number&&delete i.integer;for(let s in i)o=(0,D.and)(o,Nf(s,e,r,n));return o}Ue.checkDataTypes=Df;var NN={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,D._)`{type: ${t}}`:(0,D._)`{type: ${e}}`};function Lf(t){let e=DN(t);(0,AN.reportError)(e,NN)}Ue.reportTypeError=Lf;function DN(t){let{gen:e,data:r,schema:n}=t,o=(0,Lb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var qb=C(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});hc.assignDefaults=void 0;var bo=L(),LN=B();function jN(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)Ub(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>Ub(t,i,o.default))}hc.assignDefaults=jN;function Ub(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,bo._)`${i}${(0,bo.getProperty)(e)}`;if(o){(0,LN.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,bo._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,bo._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,bo._)`${a} = ${(0,bo.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=L(),jf=B(),Hr=fr(),FN=B();function UN(t,e){let{gen:r,data:n,it:o}=t;r.if(Uf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=UN;function qN({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Uf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=qN;function HN(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=HN;function Hb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Hb;function Ff(t,e,r){return(0,de._)`${Hb(t)}.call(${e}, ${r})`}re.isOwnProperty=Ff;function GN(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Ff(t,e,r)}`:o}re.propertyInData=GN;function Uf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Ff(t,e,r))):o}re.noPropertyInData=Uf;function Gb(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=Gb;function ZN(t,e){return Gb(e).filter(r=>!(0,jf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=ZN;function BN({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=[[Hr.default.instancePath,(0,de.strConcat)(Hr.default.instancePath,i)],[Hr.default.parentData,s.parentData],[Hr.default.parentDataProperty,s.parentDataProperty],[Hr.default.rootData,Hr.default.rootData]];s.opts.dynamicRef&&l.push([Hr.default.dynamicAnchors,Hr.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=BN;var WN=(0,de._)`new RegExp`;function VN({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"?WN:(0,FN.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=VN;function KN(t){let{gen:e,data:r,keyword:n,it:o}=t,i=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return s(()=>e.assign(a,!1)),a}return e.var(i,!0),s(()=>e.break()),i;function s(a){let c=e.const("len",(0,de._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:jf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=KN;function JN(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,jf.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let s=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let d=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(s,(0,de._)`${s} || ${a}`),t.mergeValidEvaluated(d,a)||e.if((0,de.not)(s))})),t.result(s,()=>t.reset(),()=>t.error(!0))}re.validateUnion=JN});var Wb=C(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.validateKeywordUsage=Kt.validSchemaType=Kt.funcKeywordCode=Kt.macroKeywordCode=void 0;var Ge=L(),xn=fr(),YN=wt(),XN=es();function QN(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=Bb(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=QN;function eD(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;rD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=Bb(n,o,u),l=n.let("valid");t.block$data(l,f),t.ok((r=e.valid)!==null&&r!==void 0?r:l);function f(){if(e.errors===!1)m(),e.modifying&&Zb(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&Zb(t),g(()=>tD(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((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 h(){let v=(0,Ge._)`${d}.errors`;return n.assign(v,null),m(Ge.nil),v}function m(v=e.async?(0,Ge._)`await `:Ge.nil){let w=c.opts.passContext?xn.default.this:xn.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ge._)`${v}${(0,YN.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=eD;function Zb(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ge._)`${n.parentData}[${n.parentDataProperty}]`))}function tD(t,e){let{gen:r}=t;r.if((0,Ge._)`Array.isArray(${e})`,()=>{r.assign(xn.default.vErrors,(0,Ge._)`${xn.default.vErrors} === null ? ${e} : ${xn.default.vErrors}.concat(${e})`).assign(xn.default.errors,(0,Ge._)`${xn.default.vErrors}.length`),(0,XN.extendErrors)(t)},()=>t.error())}function rD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function Bb(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 nD(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Kt.validSchemaType=nD;function oD({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=oD});var Kb=C(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.extendSubschemaMode=Gr.extendSubschemaData=Gr.getSubschema=void 0;var Jt=L(),Vb=B();function iD(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,Vb.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')}Gr.getSubschema=iD;function sD(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,Vb.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]}}Gr.extendSubschemaData=sD;function aD(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Gr.extendSubschemaMode=aD});var qf=C((h5,Jb)=>{"use strict";Jb.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 Xb=C((m5,Yb)=>{"use strict";var Zr=Yb.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(){};mc(e,n,o,t,"",t)};Zr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Zr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Zr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Zr.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 mc(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 Zr.arrayKeywords)for(var f=0;f<l.length;f++)mc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Zr.propsKeywords){if(l&&typeof l=="object")for(var p in l)mc(t,e,r,l[p],o+"/"+d+"/"+cD(p),i,o,d,n,p)}else(d in Zr.keywords||t.allKeys&&!(d in Zr.skipKeywords))&&mc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function cD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var rs=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 uD=B(),dD=qf(),lD=Xb(),fD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function pD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Hf(t):e?Qb(t)<=e:!1}tt.inlineRef=pD;var hD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Hf(t){for(let e in t){if(hD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Hf)||typeof r=="object"&&Hf(r))return!0}return!1}function Qb(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!fD.has(r)&&(typeof t[r]=="object"&&(0,uD.eachItem)(t[r],n=>e+=Qb(n)),e===1/0))return 1/0}return e}function eR(t,e="",r){r!==!1&&(e=Ro(e));let n=t.parse(e);return tR(t,n)}tt.getFullPath=eR;function tR(t,e){return t.serialize(e).split("#")[0]+"#"}tt._getFullPath=tR;var mD=/#\/?$/;function Ro(t){return t?t.replace(mD,""):""}tt.normalizeId=Ro;function gD(t,e,r){return r=Ro(r),t.resolve(e,r)}tt.resolveUrl=gD;var yD=/^[a-z_][-a-z0-9._]*$/i;function vD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Ro(t[r]||e),i={"":o},s=eR(n,o,!1),a={},c=new Set;return lD(t,{allKeys:!0},(l,f,p,h)=>{if(h===void 0)return;let m=s+f,g=i[h];typeof l[r]=="string"&&(g=v.call(this,l[r])),w.call(this,l.$anchor),w.call(this,l.$dynamicAnchor),i[f]=g;function v(b){let x=this.opts.uriResolver.resolve;if(b=Ro(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!==Ro(m)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=m),b}function w(b){if(typeof b=="string"){if(!yD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!dD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}tt.getSchemaRefs=vD});var is=C(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.getData=Br.KeywordCxt=Br.validateFunctionCode=void 0;var sR=zb(),rR=ts(),Zf=zf(),gc=ts(),_D=qb(),os=Wb(),Gf=Kb(),T=L(),z=fr(),SD=rs(),pr=B(),ns=es();function wD(t){if(uR(t)&&(dR(t),cR(t))){CD(t);return}aR(t,()=>(0,sR.topBoolOrEmptySchema)(t))}Br.validateFunctionCode=wD;function aR({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"; ${nR(r,o)}`),RD(t,o),t.code(i)}):t.func(e,(0,T._)`${z.default.data}, ${bD(o)}`,n.$async,()=>t.code(nR(r,o)).code(i))}function bD(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 RD(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 CD(t){let{schema:e,opts:r,gen:n}=t;aR(t,()=>{r.$comment&&e.$comment&&fR(t),TD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&PD(t),lR(t),$D(t)})}function PD(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 nR(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 xD(t,e){if(uR(t)&&(dR(t),cR(t))){kD(t,e);return}(0,sR.boolOrEmptySchema)(t,e)}function cR({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 uR(t){return typeof t.schema!="boolean"}function kD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&fR(t),AD(t),MD(t);let i=n.const("_errs",z.default.errors);lR(t,i),n.var(e,(0,T._)`${i} === ${z.default.errors}`)}function dR(t){(0,pr.checkUnknownRules)(t),ED(t)}function lR(t,e){if(t.opts.jtd)return oR(t,[],!1,e);let r=(0,rR.getSchemaTypes)(t.schema),n=(0,rR.coerceAndCheckDataType)(t,r);oR(t,r,!n,e)}function ED(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 TD(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 AD(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,SD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function MD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function fR({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 $D(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&&ID(t),e.return((0,T._)`${z.default.errors} === 0`))}function ID({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 oR(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(()=>hR(t,"$ref",d.all.$ref.definition));return}c.jtd||OD(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,Zf.shouldUseGroup)(i,f)&&(f.type?(o.if((0,gc.checkDataType)(f.type,s,c.strictNumbers)),iR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,gc.reportTypeError)(t)),o.endIf()):iR(t,f),a||o.if((0,T._)`${z.default.errors} === ${n||0}`))}}function iR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,_D.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,Zf.shouldUseRule)(n,i)&&hR(t,i.keyword,i.definition,e.type)})}function OD(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(zD(t,e),t.opts.allowUnionTypes||ND(t,e),DD(t,t.dataTypes))}function zD(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{pR(t.dataTypes,r)||Bf(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),jD(t,e)}}function ND(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Bf(t,"use allowUnionTypes to allow union type keyword")}function DD(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Zf.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>LD(e,s))&&Bf(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function LD(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function pR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function jD(t,e){let r=[];for(let n of t.dataTypes)pR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Bf(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,pr.checkStrictMode)(t,e,t.opts.strictTypes)}var yc=class{constructor(e,r,n){if((0,os.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",mR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,os.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?ns.reportExtraError:ns.reportError)(this,this.def.error,r)}$dataError(){(0,ns.reportError)(this,this.def.$dataError||ns.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ns.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,gc.checkDataTypes)(c,r,i.opts.strictNumbers,gc.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,Gf.getSubschema)(this.it,e);(0,Gf.extendSubschemaData)(n,this.it,e),(0,Gf.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return xD(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}};Br.KeywordCxt=yc;function hR(t,e,r,n){let o=new yc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,os.funcKeywordCode)(o,r):"macro"in r?(0,os.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,os.funcKeywordCode)(o,r)}var FD=/^\/(?:[^~]|~0|~1)*$/,UD=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function mR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!FD.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=z.default.rootData}else{let u=UD.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}`}}Br.getData=mR});var vc=C(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});var Wf=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Vf.default=Wf});var ss=C(Yf=>{"use strict";Object.defineProperty(Yf,"__esModule",{value:!0});var Kf=rs(),Jf=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Kf.resolveUrl)(e,r,n),this.missingSchema=(0,Kf.normalizeId)((0,Kf.getFullPath)(e,this.missingRef))}};Yf.default=Jf});var Sc=C(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.resolveSchema=bt.getCompilingSchema=bt.resolveRef=bt.compileSchema=bt.SchemaEnv=void 0;var It=L(),qD=vc(),kn=fr(),Ot=rs(),gR=B(),HD=is(),Co=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=Co;function Qf(t){let e=yR.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:qD.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:kn.default.data,parentData:kn.default.parentData,parentDataProperty:kn.default.parentDataProperty,dataNames:[kn.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,HD.validateFunctionCode)(u),s.optimize(this.opts.code.optimize);let l=s.toString();d=`${s.scopeRefs(kn.default.scope)}return ${l}`,this.opts.code.process&&(d=this.opts.code.process(d,t));let p=new Function(`${kn.default.self}`,`${kn.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=t.schema,p.schemaEnv=t,t.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:l,scopeValues:s._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof It.Name?void 0:h,items:m instanceof It.Name?void 0:m,dynamicProps:h instanceof It.Name,dynamicItems:m 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=Qf;function GD(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=WD.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 Co({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=ZD.call(this,i)}bt.resolveRef=GD;function ZD(t){return(0,Ot.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Qf.call(this,t)}function yR(t){for(let e of this._compilations)if(BD(e,t))return e}bt.getCompilingSchema=yR;function BD(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function WD(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||_c.call(this,t,e)}function _c(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 Xf.call(this,r,t);let i=(0,Ot.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=_c.call(this,t,s);return typeof a?.schema!="object"?void 0:Xf.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||Qf.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 Co({schema:a,schemaId:c,root:t,baseId:o})}return Xf.call(this,r,s)}}bt.resolveSchema=_c;var VD=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Xf(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,gR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!VD.has(a)&&u&&(e=(0,Ot.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,gR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Ot.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=_c.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Co({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var vR=C((w5,KD)=>{KD.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var rp=C((b5,CR)=>{"use strict";var JD=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),SR=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),ep=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),wR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),YD=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function tp(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 XD=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function _R(t){return t.length=0,!0}function QD(t,e,r){if(t.length){let n=tp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function eL(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=QD;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=_R}else{o.push(u);continue}}return o.length&&(a===_R?r.zone=o.join(""):s?n.push(o.join("")):n.push(tp(o))),r.address=n.join(""),r}function bR(t){if(tL(t,":")<2)return{host:t,isIPV6:!1};let e=eL(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 tL(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function rL(t){let e=t,r=[],n=-1,o=0;for(;o=e.length;){if(o===1){if(e===".")break;if(e==="/"){r.push("/");break}else{r.push(e);break}}else if(o===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){r.push("/");break}}else if(o===3&&e==="/.."){r.length!==0&&r.pop(),r.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),r.length!==0&&r.pop();continue}}if((n=e.indexOf("/",1))===-1){r.push(e);break}else r.push(e.slice(0,n)),e=e.slice(n)}return r.join("")}var nL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},oL=/[@/?#:]/g,iL=/[@/?#]/g;function RR(t,e){let r=e?iL:oL;return r.lastIndex=0,t.replace(r,n=>nL[n])}function sL(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(ep(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&wR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function aL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(ep(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&wR(i)?e+=i:e+="%"+o,r+=2;continue}}YD(t[r])?e+=t[r]:e+=escape(t[r])}return e}function cL(t){let e="";for(let r=0;r<t.length;r++){if(t[r]==="%"&&r+2<t.length){let n=t.slice(r+1,r+3);if(ep(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function uL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!SR(r)){let n=bR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=RR(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}CR.exports={nonSimpleDomain:XD,recomposeAuthority:uL,reescapeHostDelimiters:RR,normalizePercentEncoding:sL,normalizePathEncoding:aL,escapePreservingEscapes:cL,removeDotSegments:rL,isIPv4:SR,isUUID:JD,normalizeIPv6:bR,stringArrayToHexStripped:tp}});var TR=C((R5,ER)=>{"use strict";var{isUUID:dL}=rp(),lL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,fL=["http","https","ws","wss","urn","urn:uuid"];function pL(t){return fL.indexOf(t)!==-1}function np(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 PR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function xR(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 hL(t){return t.secure=np(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function mL(t){if((t.port===(np(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 gL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(lL);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=op(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function yL(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=op(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 vL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!dL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function _L(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var kR={scheme:"http",domainHost:!0,parse:PR,serialize:xR},SL={scheme:"https",domainHost:kR.domainHost,parse:PR,serialize:xR},wc={scheme:"ws",domainHost:!0,parse:hL,serialize:mL},wL={scheme:"wss",domainHost:wc.domainHost,parse:wc.parse,serialize:wc.serialize},bL={scheme:"urn",parse:gL,serialize:yL,skipNormalize:!0},RL={scheme:"urn:uuid",parse:vL,serialize:_L,skipNormalize:!0},bc={http:kR,https:SL,ws:wc,wss:wL,urn:bL,"urn:uuid":RL};Object.setPrototypeOf(bc,null);function op(t){return t&&(bc[t]||bc[t.toLowerCase()])||void 0}ER.exports={wsIsSecure:np,SCHEMES:bc,isValidSchemeName:pL,getSchemeHandler:op}});var OR=C((C5,Pc)=>{"use strict";var{normalizeIPv6:CL,removeDotSegments:as,recomposeAuthority:PL,normalizePercentEncoding:xL,normalizePathEncoding:kL,escapePreservingEscapes:EL,reescapeHostDelimiters:TL,isIPv4:AL,nonSimpleDomain:ML}=rp(),{SCHEMES:$L,getSchemeHandler:MR}=TR();function IL(t,e){return typeof t=="string"?t=FL(t,e):typeof t=="object"&&(t=Cc(En(t,e),e)),t}function OL(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Rc(t,n),{parsed:s,malformedAuthorityOrPort:a}=Rc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=$R(o,s,n,!0);return n.skipEscape=!0,En(c,n)}function $R(t,e,r,n){let o={};return n||(t=Cc(En(t,r),r),e=Cc(En(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=as(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=as(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=as(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=as(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 zL(t,e,r){let n=AR(t,r),o=AR(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function En(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=MR(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=xL(r.path):(r.path=EL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=PL(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=as(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 NL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,DL=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,LL=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function jL(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 Rc(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(DL);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(LL);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(NL);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=jL(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(AL(n.host)===!1){let f=CL(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=MR(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&ML(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=TL(unescape(n.host),i))),n.path&&(n.path=kL(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 Cc(t,e){return Rc(t,e).parsed}function FL(t,e){return IR(t,e).normalized}function IR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Rc(t,e);return{normalized:n?t:En(r,e),malformedAuthorityOrPort:n}}function AR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=IR(t,e);return n?void 0:r}if(typeof t=="object")return En(t,e)}var ip={SCHEMES:$L,normalize:IL,resolve:OL,resolveComponent:$R,equal:zL,serialize:En,parse:Cc};Pc.exports=ip;Pc.exports.default=ip;Pc.exports.fastUri=ip});var NR=C(sp=>{"use strict";Object.defineProperty(sp,"__esModule",{value:!0});var zR=OR();zR.code='require("ajv/dist/runtime/uri").default';sp.default=zR});var GR=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 UL=is();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return UL.KeywordCxt}});var Po=L();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Po._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Po.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Po.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Po.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Po.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return Po.CodeGen}});var qL=vc(),UR=ss(),HL=Of(),cs=Sc(),GL=L(),us=rs(),xc=ts(),cp=B(),DR=vR(),ZL=NR(),qR=(t,e)=>new RegExp(t,e);qR.code="new RegExp";var BL=["removeAdditional","useDefaults","coerceTypes"],WL=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),VL={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."},KL={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},LR=200;function JL(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,x,S,R,I,ne,fe;let Pe=t.strict,tn=(e=t.code)===null||e===void 0?void 0:e.optimize,rn=tn===!0||tn===void 0?1:tn||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:qR,Sr=(o=t.uriResolver)!==null&&o!==void 0?o:ZL.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:(h=(p=t.strictRequired)!==null&&p!==void 0?p:Pe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:rn,regExp:lt}:{optimize:rn,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:LR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:LR,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 ds=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,...JL(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new GL.ValueScope({scope:{},prefixes:WL,es5:r,lines:n}),this.logger=rj(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,HL.getRules)(),jR.call(this,VL,e,"NOT SUPPORTED"),jR.call(this,KL,e,"DEPRECATED","warn"),this._metaOpts=ej.call(this),e.formats&&XL.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&QL.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),YL.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=DR;n==="id"&&(o={...DR},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 UR.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,us.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=FR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new cs.SchemaEnv({schema:{},schemaId:n});if(r=cs.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=FR.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,us.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(oj.call(this,n,r),!r)return(0,cp.eachItem)(n,i=>ap.call(this,i)),this;sj.call(this,r);let o={...r,type:(0,xc.getJSONTypes)(r.type),schemaType:(0,xc.getJSONTypes)(r.schemaType)};return(0,cp.eachItem)(n,o.type.length===0?i=>ap.call(this,i,o):i=>o.type.forEach(s=>ap.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]=HR(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,us.normalizeId)(s||n);let u=us.getSchemaRefs.call(this,e,n);return c=new cs.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):cs.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{cs.compileSchema.call(this,e)}finally{this.opts=r}}};ds.ValidationError=qL.default;ds.MissingRefError=UR.default;Ne.default=ds;function jR(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 FR(t){return t=(0,us.normalizeId)(t),this.schemas[t]||this.refs[t]}function YL(){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 XL(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function QL(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 ej(){let t={...this.opts};for(let e of BL)delete t[e];return t}var tj={log(){},warn(){},error(){}};function rj(t){if(t===!1)return tj;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var nj=/^[a-z_$][a-z0-9_$:-]*$/i;function oj(t,e){let{RULES:r}=this;if((0,cp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!nj.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function ap(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,xc.getJSONTypes)(e.type),schemaType:(0,xc.getJSONTypes)(e.schemaType)}};e.before?ij.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 ij(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 sj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=HR(e)),t.validateSchema=this.compile(e,!0))}var aj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function HR(t){return{anyOf:[t,aj]}}});var ZR=C(up=>{"use strict";Object.defineProperty(up,"__esModule",{value:!0});var cj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};up.default=cj});var KR=C(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.callRef=Tn.getValidate=void 0;var uj=ss(),BR=wt(),rt=L(),xo=fr(),WR=Sc(),kc=B(),dj={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=WR.resolveRef.call(c,u,o,r);if(d===void 0)throw new uj.default(n.opts.uriResolver,o,r);if(d instanceof WR.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Ec(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Ec(t,(0,rt._)`${h}.validate`,u,u.$async)}function f(h){let m=VR(t,h);Ec(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,rt.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:rt.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function VR(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,rt._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Tn.getValidate=VR;function Ec(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?xo.default.this:rt.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=o.let("valid");o.try(()=>{o.code((0,rt._)`await ${(0,BR.callValidateCode)(t,e,u)}`),p(e),s||o.assign(h,!0)},m=>{o.if((0,rt._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),f(m),s||o.assign(h,!1)}),t.ok(h)}function l(){t.result((0,BR.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,rt._)`${h}.errors`;o.assign(xo.default.vErrors,(0,rt._)`${xo.default.vErrors} === null ? ${m} : ${xo.default.vErrors}.concat(${m})`),o.assign(xo.default.errors,(0,rt._)`${xo.default.vErrors}.length`)}function p(h){var m;if(!i.opts.unevaluated)return;let g=(m=r?.validate)===null||m===void 0?void 0:m.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=kc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,rt._)`${h}.evaluated.props`);i.props=kc.mergeEvaluated.props(o,v,i.props,rt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=kc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,rt._)`${h}.evaluated.items`);i.items=kc.mergeEvaluated.items(o,v,i.items,rt.Name)}}}Tn.callRef=Ec;Tn.default=dj});var JR=C(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var lj=ZR(),fj=KR(),pj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",lj.default,fj.default];dp.default=pj});var YR=C(lp=>{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});var Tc=L(),Wr=Tc.operators,Ac={maximum:{okStr:"<=",ok:Wr.LTE,fail:Wr.GT},minimum:{okStr:">=",ok:Wr.GTE,fail:Wr.LT},exclusiveMaximum:{okStr:"<",ok:Wr.LT,fail:Wr.GTE},exclusiveMinimum:{okStr:">",ok:Wr.GT,fail:Wr.LTE}},hj={message:({keyword:t,schemaCode:e})=>(0,Tc.str)`must be ${Ac[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Tc._)`{comparison: ${Ac[t].okStr}, limit: ${e}}`},mj={keyword:Object.keys(Ac),type:"number",schemaType:"number",$data:!0,error:hj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Tc._)`${r} ${Ac[e].fail} ${n} || isNaN(${r})`)}};lp.default=mj});var XR=C(fp=>{"use strict";Object.defineProperty(fp,"__esModule",{value:!0});var ls=L(),gj={message:({schemaCode:t})=>(0,ls.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ls._)`{multipleOf: ${t}}`},yj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:gj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,ls._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,ls._)`${s} !== parseInt(${s})`;t.fail$data((0,ls._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};fp.default=yj});var eC=C(pp=>{"use strict";Object.defineProperty(pp,"__esModule",{value:!0});function QR(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}pp.default=QR;QR.code='require("ajv/dist/runtime/ucs2length").default'});var tC=C(hp=>{"use strict";Object.defineProperty(hp,"__esModule",{value:!0});var An=L(),vj=B(),_j=eC(),Sj={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,An.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,An._)`{limit: ${t}}`},wj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Sj,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?An.operators.GT:An.operators.LT,s=o.opts.unicode===!1?(0,An._)`${r}.length`:(0,An._)`${(0,vj.useFunc)(t.gen,_j.default)}(${r})`;t.fail$data((0,An._)`${s} ${i} ${n}`)}};hp.default=wj});var rC=C(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var bj=wt(),Rj=B(),ko=L(),Cj={message:({schemaCode:t})=>(0,ko.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,ko._)`{pattern: ${t}}`},Pj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Cj,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,ko._)`new RegExp`:(0,Rj.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,ko._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,ko._)`!${d}`)}else{let c=(0,bj.usePattern)(t,o);t.fail$data((0,ko._)`!${c}.test(${r})`)}}};mp.default=Pj});var nC=C(gp=>{"use strict";Object.defineProperty(gp,"__esModule",{value:!0});var fs=L(),xj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,fs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,fs._)`{limit: ${t}}`},kj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:xj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?fs.operators.GT:fs.operators.LT;t.fail$data((0,fs._)`Object.keys(${r}).length ${o} ${n}`)}};gp.default=kj});var oC=C(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var ps=wt(),hs=L(),Ej=B(),Tj={message:({params:{missingProperty:t}})=>(0,hs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,hs._)`{missingProperty: ${t}}`},Aj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Tj,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:i,it:s}=t,{opts:a}=s;if(!i&&r.length===0)return;let c=r.length>=a.loopRequired;if(s.allErrors?u():d(),a.strictRequired){let p=t.parentSchema.properties,{definedProperties:h}=t.it;for(let m of r)if(p?.[m]===void 0&&!h.has(m)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,Ej.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(hs.nil,l);else for(let p of r)(0,ps.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let h=e.let("valid",!0);t.block$data(h,()=>f(p,h)),t.ok(h)}else e.if((0,ps.checkMissingProp)(t,r,p)),(0,ps.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ps.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,ps.propertyInData)(e,o,p,a.ownProperties)),e.if((0,hs.not)(h),()=>{t.error(),e.break()})},hs.nil)}}};yp.default=Aj});var iC=C(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var ms=L(),Mj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ms.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ms._)`{limit: ${t}}`},$j={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Mj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ms.operators.GT:ms.operators.LT;t.fail$data((0,ms._)`${r}.length ${o} ${n}`)}};vp.default=$j});var Mc=C(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var sC=qf();sC.code='require("ajv/dist/runtime/equal").default';_p.default=sC});var aC=C(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var Sp=ts(),De=L(),Ij=B(),Oj=Mc(),zj={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}}`},Nj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:zj,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,Sp.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,De._)`${s} === false`),t.ok(c);function d(){let h=e.let("i",(0,De._)`${r}.length`),m=e.let("j");t.setParams({i:h,j:m}),e.assign(c,!0),e.if((0,De._)`${h} > 1`,()=>(l()?f:p)(h,m))}function l(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=e.name("item"),v=(0,Sp.checkDataTypes)(u,g,a.opts.strictNumbers,Sp.DataType.Wrong),w=e.const("indices",(0,De._)`{}`);e.for((0,De._)`;${h}--;`,()=>{e.let(g,(0,De._)`${r}[${h}]`),e.if(v,(0,De._)`continue`),u.length>1&&e.if((0,De._)`typeof ${g} == "string"`,(0,De._)`${g} += "_"`),e.if((0,De._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(m,(0,De._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,De._)`${w}[${g}] = ${h}`)})}function p(h,m){let g=(0,Ij.useFunc)(e,Oj.default),v=e.name("outer");e.label(v).for((0,De._)`;${h}--;`,()=>e.for((0,De._)`${m} = ${h}; ${m}--;`,()=>e.if((0,De._)`${g}(${r}[${h}], ${r}[${m}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};wp.default=Nj});var cC=C(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var bp=L(),Dj=B(),Lj=Mc(),jj={message:"must be equal to constant",params:({schemaCode:t})=>(0,bp._)`{allowedValue: ${t}}`},Fj={keyword:"const",$data:!0,error:jj,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,bp._)`!${(0,Dj.useFunc)(e,Lj.default)}(${r}, ${o})`):t.fail((0,bp._)`${i} !== ${r}`)}};Rp.default=Fj});var uC=C(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var gs=L(),Uj=B(),qj=Mc(),Hj={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,gs._)`{allowedValues: ${t}}`},Gj={keyword:"enum",schemaType:"array",$data:!0,error:Hj,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,Uj.useFunc)(e,qj.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,gs.or)(...o.map((h,m)=>f(p,m)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,gs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,gs._)`${u()}(${r}, ${p}[${h}])`:(0,gs._)`${r} === ${m}`}}};Cp.default=Gj});var dC=C(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var Zj=YR(),Bj=XR(),Wj=tC(),Vj=rC(),Kj=nC(),Jj=oC(),Yj=iC(),Xj=aC(),Qj=cC(),e1=uC(),t1=[Zj.default,Bj.default,Wj.default,Vj.default,Kj.default,Jj.default,Yj.default,Xj.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Qj.default,e1.default];Pp.default=t1});var kp=C(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.validateAdditionalItems=void 0;var Mn=L(),xp=B(),r1={message:({params:{len:t}})=>(0,Mn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Mn._)`{limit: ${t}}`},n1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:r1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,xp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}lC(t,n)}};function lC(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,Mn._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Mn._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,xp.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,Mn._)`${a} <= ${e.length}`);r.if((0,Mn.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:xp.Type.Num},u),s.allErrors||r.if((0,Mn.not)(u),()=>r.break())})}}ys.validateAdditionalItems=lC;ys.default=n1});var Ep=C(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.validateTuple=void 0;var fC=L(),$c=B(),o1=wt(),i1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return pC(t,"additionalItems",e);r.items=!0,!(0,$c.alwaysValidSchema)(r,e)&&t.ok((0,o1.validateArray)(t))}};function pC(t,e,r=t.schema){let{gen:n,parentSchema:o,data:i,keyword:s,it:a}=t;d(o),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=$c.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,fC._)`${i}.length`);r.forEach((l,f)=>{(0,$c.alwaysValidSchema)(a,l)||(n.if((0,fC._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,h=r.length,m=h===l.minItems&&(h===l.maxItems||l[e]===!1);if(f.strictTuples&&!m){let g=`"${s}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,$c.checkStrictMode)(a,g,f.strictTuples)}}}vs.validateTuple=pC;vs.default=i1});var hC=C(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var s1=Ep(),a1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,s1.validateTuple)(t,"items")};Tp.default=a1});var gC=C(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var mC=L(),c1=B(),u1=wt(),d1=kp(),l1={message:({params:{len:t}})=>(0,mC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,mC._)`{limit: ${t}}`},f1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:l1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,c1.alwaysValidSchema)(n,e)&&(o?(0,d1.validateAdditionalItems)(t,o):t.ok((0,u1.validateArray)(t)))}};Ap.default=f1});var yC=C(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Rt=L(),Ic=B(),p1={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}}`},h1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:p1,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,Ic.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Ic.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Ic.alwaysValidSchema)(i,r)){let m=(0,Rt._)`${d} >= ${s}`;a!==void 0&&(m=(0,Rt._)`${m} && ${d} <= ${a}`),t.pass(m);return}i.items=!0;let l=e.name("valid");a===void 0&&s===1?p(l,()=>e.if(l,()=>e.break())):s===0?(e.let(l,!0),a!==void 0&&e.if((0,Rt._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let m=e.name("_valid"),g=e.let("count",0);p(m,()=>e.if(m,()=>h(g)))}function p(m,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Ic.Type.Num,compositeRule:!0},m),g()})}function h(m){e.code((0,Rt._)`${m}++`),a===void 0?e.if((0,Rt._)`${m} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Rt._)`${m} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Rt._)`${m} >= ${s}`,()=>e.assign(l,!0)))}}};Mp.default=h1});var SC=C(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.validateSchemaDeps=Yt.validatePropertyDeps=Yt.error=void 0;var $p=L(),m1=B(),_s=wt();Yt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,$p.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,$p._)`{property: ${t},
5
+ || ${s} === "boolean" || ${o} === null`).assign(a,(0,D._)`[${o}]`)}}}function IN({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,D._)`${e} !== undefined`,()=>t.assign((0,D._)`${e}[${r}]`,n))}function Nf(t,e,r,n=bo.Correct){let o=n===bo.Correct?D.operators.EQ:D.operators.NEQ,i;switch(t){case"null":return(0,D._)`${e} ${o} null`;case"array":i=(0,D._)`Array.isArray(${e})`;break;case"object":i=(0,D._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=s((0,D._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=s();break;default:return(0,D._)`typeof ${e} ${o} ${t}`}return n===bo.Correct?i:(0,D.not)(i);function s(a=D.nil){return(0,D.and)((0,D._)`typeof ${e} == "number"`,a,r?(0,D._)`isFinite(${e})`:D.nil)}}Ue.checkDataType=Nf;function Df(t,e,r,n){if(t.length===1)return Nf(t[0],e,r,n);let o,i=(0,jb.toHash)(t);if(i.array&&i.object){let s=(0,D._)`typeof ${e} != "object"`;o=i.null?s:(0,D._)`!${e} || ${s}`,delete i.null,delete i.array,delete i.object}else o=D.nil;i.number&&delete i.integer;for(let s in i)o=(0,D.and)(o,Nf(s,e,r,n));return o}Ue.checkDataTypes=Df;var ON={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,D._)`{type: ${t}}`:(0,D._)`{type: ${e}}`};function Lf(t){let e=zN(t);(0,EN.reportError)(e,ON)}Ue.reportTypeError=Lf;function zN(t){let{gen:e,data:r,schema:n}=t,o=(0,jb.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var Hb=C(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});hc.assignDefaults=void 0;var Ro=L(),NN=B();function DN(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)qb(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>qb(t,i,o.default))}hc.assignDefaults=DN;function qb(t,e,r){let{gen:n,compositeRule:o,data:i,opts:s}=t;if(r===void 0)return;let a=(0,Ro._)`${i}${(0,Ro.getProperty)(e)}`;if(o){(0,NN.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Ro._)`${a} === undefined`;s.useDefaults==="empty"&&(c=(0,Ro._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Ro._)`${a} = ${(0,Ro.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=L(),jf=B(),Hr=fr(),LN=B();function jN(t,e){let{gen:r,data:n,it:o}=t;r.if(Uf(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,de._)`${e}`},!0),t.error()})}re.checkReportMissingProp=jN;function FN({gen:t,data:e,it:{opts:r}},n,o){return(0,de.or)(...n.map(i=>(0,de.and)(Uf(t,e,i,r.ownProperties),(0,de._)`${o} = ${i}`)))}re.checkMissingProp=FN;function UN(t,e){t.setParams({missingProperty:e},!0),t.error()}re.reportMissingProp=UN;function Gb(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}re.hasPropFunc=Gb;function Ff(t,e,r){return(0,de._)`${Gb(t)}.call(${e}, ${r})`}re.isOwnProperty=Ff;function qN(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} !== undefined`;return n?(0,de._)`${o} && ${Ff(t,e,r)}`:o}re.propertyInData=qN;function Uf(t,e,r,n){let o=(0,de._)`${e}${(0,de.getProperty)(r)} === undefined`;return n?(0,de.or)(o,(0,de.not)(Ff(t,e,r))):o}re.noPropertyInData=Uf;function Zb(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}re.allSchemaProperties=Zb;function HN(t,e){return Zb(e).filter(r=>!(0,jf.alwaysValidSchema)(t,e[r]))}re.schemaProperties=HN;function GN({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=[[Hr.default.instancePath,(0,de.strConcat)(Hr.default.instancePath,i)],[Hr.default.parentData,s.parentData],[Hr.default.parentDataProperty,s.parentDataProperty],[Hr.default.rootData,Hr.default.rootData]];s.opts.dynamicRef&&l.push([Hr.default.dynamicAnchors,Hr.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=GN;var ZN=(0,de._)`new RegExp`;function BN({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"?ZN:(0,LN.useFunc)(t,o)}(${r}, ${n})`})}re.usePattern=BN;function WN(t){let{gen:e,data:r,keyword:n,it:o}=t,i=e.name("valid");if(o.allErrors){let a=e.let("valid",!0);return s(()=>e.assign(a,!1)),a}return e.var(i,!0),s(()=>e.break()),i;function s(a){let c=e.const("len",(0,de._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:jf.Type.Num},i),e.if((0,de.not)(i),a)})}}re.validateArray=WN;function VN(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,jf.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let s=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let d=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(s,(0,de._)`${s} || ${a}`),t.mergeValidEvaluated(d,a)||e.if((0,de.not)(s))})),t.result(s,()=>t.reset(),()=>t.error(!0))}re.validateUnion=VN});var Vb=C(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.validateKeywordUsage=Kt.validSchemaType=Kt.funcKeywordCode=Kt.macroKeywordCode=void 0;var Ge=L(),xn=fr(),KN=wt(),JN=rs();function YN(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:s}=t,a=e.macro.call(s.self,o,i,s),c=Wb(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=YN;function XN(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:s,$data:a,it:c}=t;eD(c,e);let u=!a&&e.compile?e.compile.call(c.self,i,s,c):e.validate,d=Wb(n,o,u),l=n.let("valid");t.block$data(l,f),t.ok((r=e.valid)!==null&&r!==void 0?r:l);function f(){if(e.errors===!1)m(),e.modifying&&Bb(t),g(()=>t.error());else{let v=e.async?p():h();e.modifying&&Bb(t),g(()=>QN(t,v))}}function p(){let v=n.let("ruleErrs",null);return n.try(()=>m((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 h(){let v=(0,Ge._)`${d}.errors`;return n.assign(v,null),m(Ge.nil),v}function m(v=e.async?(0,Ge._)`await `:Ge.nil){let w=c.opts.passContext?xn.default.this:xn.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(l,(0,Ge._)`${v}${(0,KN.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=XN;function Bb(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ge._)`${n.parentData}[${n.parentDataProperty}]`))}function QN(t,e){let{gen:r}=t;r.if((0,Ge._)`Array.isArray(${e})`,()=>{r.assign(xn.default.vErrors,(0,Ge._)`${xn.default.vErrors} === null ? ${e} : ${xn.default.vErrors}.concat(${e})`).assign(xn.default.errors,(0,Ge._)`${xn.default.vErrors}.length`),(0,JN.extendErrors)(t)},()=>t.error())}function eD({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function Wb(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 tD(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=tD;function rD({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Kt.validateKeywordUsage=rD});var Jb=C(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.extendSubschemaMode=Gr.extendSubschemaData=Gr.getSubschema=void 0;var Jt=L(),Kb=B();function nD(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,Kb.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')}Gr.getSubschema=nD;function oD(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,Kb.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]}}Gr.extendSubschemaData=oD;function iD(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}Gr.extendSubschemaMode=iD});var qf=C((l5,Yb)=>{"use strict";Yb.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 Qb=C((f5,Xb)=>{"use strict";var Zr=Xb.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(){};mc(e,n,o,t,"",t)};Zr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Zr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Zr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Zr.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 mc(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 Zr.arrayKeywords)for(var f=0;f<l.length;f++)mc(t,e,r,l[f],o+"/"+d+"/"+f,i,o,d,n,f)}else if(d in Zr.propsKeywords){if(l&&typeof l=="object")for(var p in l)mc(t,e,r,l[p],o+"/"+d+"/"+sD(p),i,o,d,n,p)}else(d in Zr.keywords||t.allKeys&&!(d in Zr.skipKeywords))&&mc(t,e,r,l,o+"/"+d,i,o,d,n)}r(n,o,i,s,a,c,u)}}function sD(t){return t.replace(/~/g,"~0").replace(/\//g,"~1")}});var os=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 aD=B(),cD=qf(),uD=Qb(),dD=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function lD(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Hf(t):e?eR(t)<=e:!1}tt.inlineRef=lD;var fD=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Hf(t){for(let e in t){if(fD.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Hf)||typeof r=="object"&&Hf(r))return!0}return!1}function eR(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!dD.has(r)&&(typeof t[r]=="object"&&(0,aD.eachItem)(t[r],n=>e+=eR(n)),e===1/0))return 1/0}return e}function tR(t,e="",r){r!==!1&&(e=Co(e));let n=t.parse(e);return rR(t,n)}tt.getFullPath=tR;function rR(t,e){return t.serialize(e).split("#")[0]+"#"}tt._getFullPath=rR;var pD=/#\/?$/;function Co(t){return t?t.replace(pD,""):""}tt.normalizeId=Co;function hD(t,e,r){return r=Co(r),t.resolve(e,r)}tt.resolveUrl=hD;var mD=/^[a-z_][-a-z0-9._]*$/i;function gD(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=Co(t[r]||e),i={"":o},s=tR(n,o,!1),a={},c=new Set;return uD(t,{allKeys:!0},(l,f,p,h)=>{if(h===void 0)return;let m=s+f,g=i[h];typeof l[r]=="string"&&(g=v.call(this,l[r])),w.call(this,l.$anchor),w.call(this,l.$dynamicAnchor),i[f]=g;function v(b){let x=this.opts.uriResolver.resolve;if(b=Co(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!==Co(m)&&(b[0]==="#"?(u(l,a[b],b),a[b]=l):this.refs[b]=m),b}function w(b){if(typeof b=="string"){if(!mD.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(l,f,p){if(f!==void 0&&!cD(l,f))throw d(p)}function d(l){return new Error(`reference "${l}" resolves to more than one schema`)}}tt.getSchemaRefs=gD});var as=C(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.getData=Br.KeywordCxt=Br.validateFunctionCode=void 0;var aR=Nb(),nR=ns(),Zf=zf(),gc=ns(),yD=Hb(),ss=Vb(),Gf=Jb(),T=L(),z=fr(),vD=os(),pr=B(),is=rs();function _D(t){if(dR(t)&&(lR(t),uR(t))){bD(t);return}cR(t,()=>(0,aR.topBoolOrEmptySchema)(t))}Br.validateFunctionCode=_D;function cR({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"; ${oR(r,o)}`),wD(t,o),t.code(i)}):t.func(e,(0,T._)`${z.default.data}, ${SD(o)}`,n.$async,()=>t.code(oR(r,o)).code(i))}function SD(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 wD(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 bD(t){let{schema:e,opts:r,gen:n}=t;cR(t,()=>{r.$comment&&e.$comment&&pR(t),kD(t),n.let(z.default.vErrors,null),n.let(z.default.errors,0),r.unevaluated&&RD(t),fR(t),AD(t)})}function RD(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 oR(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 CD(t,e){if(dR(t)&&(lR(t),uR(t))){PD(t,e);return}(0,aR.boolOrEmptySchema)(t,e)}function uR({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 dR(t){return typeof t.schema!="boolean"}function PD(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&pR(t),ED(t),TD(t);let i=n.const("_errs",z.default.errors);fR(t,i),n.var(e,(0,T._)`${i} === ${z.default.errors}`)}function lR(t){(0,pr.checkUnknownRules)(t),xD(t)}function fR(t,e){if(t.opts.jtd)return iR(t,[],!1,e);let r=(0,nR.getSchemaTypes)(t.schema),n=(0,nR.coerceAndCheckDataType)(t,r);iR(t,r,!n,e)}function xD(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 kD(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 ED(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,vD.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function TD(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function pR({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 AD(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&&MD(t),e.return((0,T._)`${z.default.errors} === 0`))}function MD({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 iR(t,e,r,n){let{gen:o,schema:i,data:s,allErrors:a,opts:c,self:u}=t,{RULES:d}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,pr.schemaHasRulesButRef)(i,d))){o.block(()=>mR(t,"$ref",d.all.$ref.definition));return}c.jtd||$D(t,e),o.block(()=>{for(let f of d.rules)l(f);l(d.post)});function l(f){(0,Zf.shouldUseGroup)(i,f)&&(f.type?(o.if((0,gc.checkDataType)(f.type,s,c.strictNumbers)),sR(t,f),e.length===1&&e[0]===f.type&&r&&(o.else(),(0,gc.reportTypeError)(t)),o.endIf()):sR(t,f),a||o.if((0,T._)`${z.default.errors} === ${n||0}`))}}function sR(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,yD.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,Zf.shouldUseRule)(n,i)&&mR(t,i.keyword,i.definition,e.type)})}function $D(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(ID(t,e),t.opts.allowUnionTypes||OD(t,e),zD(t,t.dataTypes))}function ID(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{hR(t.dataTypes,r)||Bf(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),DD(t,e)}}function OD(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Bf(t,"use allowUnionTypes to allow union type keyword")}function zD(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Zf.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>ND(e,s))&&Bf(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function ND(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function hR(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function DD(t,e){let r=[];for(let n of t.dataTypes)hR(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Bf(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,pr.checkStrictMode)(t,e,t.opts.strictTypes)}var yc=class{constructor(e,r,n){if((0,ss.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",gR(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,ss.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?is.reportExtraError:is.reportError)(this,this.def.error,r)}$dataError(){(0,is.reportError)(this,this.def.$dataError||is.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,is.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,gc.checkDataTypes)(c,r,i.opts.strictNumbers,gc.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,Gf.getSubschema)(this.it,e);(0,Gf.extendSubschemaData)(n,this.it,e),(0,Gf.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return CD(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}};Br.KeywordCxt=yc;function mR(t,e,r,n){let o=new yc(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,ss.funcKeywordCode)(o,r):"macro"in r?(0,ss.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,ss.funcKeywordCode)(o,r)}var LD=/^\/(?:[^~]|~0|~1)*$/,jD=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function gR(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return z.default.rootData;if(t[0]==="/"){if(!LD.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,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}`}}Br.getData=gR});var vc=C(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});var Wf=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Vf.default=Wf});var cs=C(Yf=>{"use strict";Object.defineProperty(Yf,"__esModule",{value:!0});var Kf=os(),Jf=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Kf.resolveUrl)(e,r,n),this.missingSchema=(0,Kf.normalizeId)((0,Kf.getFullPath)(e,this.missingRef))}};Yf.default=Jf});var Sc=C(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.resolveSchema=bt.getCompilingSchema=bt.resolveRef=bt.compileSchema=bt.SchemaEnv=void 0;var It=L(),FD=vc(),kn=fr(),Ot=os(),yR=B(),UD=as(),Po=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=Po;function Qf(t){let e=vR.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:FD.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:kn.default.data,parentData:kn.default.parentData,parentDataProperty:kn.default.parentDataProperty,dataNames:[kn.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,UD.validateFunctionCode)(u),s.optimize(this.opts.code.optimize);let l=s.toString();d=`${s.scopeRefs(kn.default.scope)}return ${l}`,this.opts.code.process&&(d=this.opts.code.process(d,t));let p=new Function(`${kn.default.self}`,`${kn.default.scope}`,d)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=t.schema,p.schemaEnv=t,t.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:l,scopeValues:s._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof It.Name?void 0:h,items:m instanceof It.Name?void 0:m,dynamicProps:h instanceof It.Name,dynamicItems:m 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=Qf;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=ZD.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 Po({schema:s,schemaId:a,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=HD.call(this,i)}bt.resolveRef=qD;function HD(t){return(0,Ot.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Qf.call(this,t)}function vR(t){for(let e of this._compilations)if(GD(e,t))return e}bt.getCompilingSchema=vR;function GD(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function ZD(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||_c.call(this,t,e)}function _c(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 Xf.call(this,r,t);let i=(0,Ot.normalizeId)(n),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=_c.call(this,t,s);return typeof a?.schema!="object"?void 0:Xf.call(this,r,a)}if(typeof s?.schema=="object"){if(s.validate||Qf.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 Po({schema:a,schemaId:c,root:t,baseId:o})}return Xf.call(this,r,s)}}bt.resolveSchema=_c;var BD=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Xf(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,yR.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!BD.has(a)&&u&&(e=(0,Ot.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,yR.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Ot.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=_c.call(this,n,a)}let{schemaId:s}=this.opts;if(i=i||new Po({schema:r,schemaId:s,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var _R=C((v5,WD)=>{WD.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var rp=C((_5,PR)=>{"use strict";var VD=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),wR=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),ep=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),bR=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),KD=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function tp(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 JD=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function SR(t){return t.length=0,!0}function YD(t,e,r){if(t.length){let n=tp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function XD(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,s=!1,a=YD;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=SR}else{o.push(u);continue}}return o.length&&(a===SR?r.zone=o.join(""):s?n.push(o.join("")):n.push(tp(o))),r.address=n.join(""),r}function RR(t){if(QD(t,":")<2)return{host:t,isIPV6:!1};let e=XD(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 QD(t,e){let r=0;for(let n=0;n<t.length;n++)t[n]===e&&r++;return r}function eL(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 tL={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},rL=/[@/?#:]/g,nL=/[@/?#]/g;function CR(t,e){let r=e?nL:rL;return r.lastIndex=0,t.replace(r,n=>tL[n])}function oL(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(ep(o)){let i=o.toUpperCase(),s=String.fromCharCode(parseInt(i,16));e&&bR(s)?r+=s:r+="%"+i,n+=2;continue}}r+=t[n]}return r}function iL(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(ep(n)){let o=n.toUpperCase(),i=String.fromCharCode(parseInt(o,16));i!=="."&&bR(i)?e+=i:e+="%"+o,r+=2;continue}}KD(t[r])?e+=t[r]:e+=escape(t[r])}return e}function sL(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(ep(n)){e+="%"+n.toUpperCase(),r+=2;continue}}e+=escape(t[r])}return e}function aL(t){let e=[];if(t.userinfo!==void 0&&(e.push(t.userinfo),e.push("@")),t.host!==void 0){let r=unescape(t.host);if(!wR(r)){let n=RR(r);n.isIPV6===!0?r=`[${n.escapedHost}]`:r=CR(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}PR.exports={nonSimpleDomain:JD,recomposeAuthority:aL,reescapeHostDelimiters:CR,normalizePercentEncoding:oL,normalizePathEncoding:iL,escapePreservingEscapes:sL,removeDotSegments:eL,isIPv4:wR,isUUID:VD,normalizeIPv6:RR,stringArrayToHexStripped:tp}});var AR=C((S5,TR)=>{"use strict";var{isUUID:cL}=rp(),uL=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,dL=["http","https","ws","wss","urn","urn:uuid"];function lL(t){return dL.indexOf(t)!==-1}function np(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 xR(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function kR(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 fL(t){return t.secure=np(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function pL(t){if((t.port===(np(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 hL(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(uL);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=op(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function mL(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=op(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 gL(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!cL(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function yL(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var ER={scheme:"http",domainHost:!0,parse:xR,serialize:kR},vL={scheme:"https",domainHost:ER.domainHost,parse:xR,serialize:kR},wc={scheme:"ws",domainHost:!0,parse:fL,serialize:pL},_L={scheme:"wss",domainHost:wc.domainHost,parse:wc.parse,serialize:wc.serialize},SL={scheme:"urn",parse:hL,serialize:mL,skipNormalize:!0},wL={scheme:"urn:uuid",parse:gL,serialize:yL,skipNormalize:!0},bc={http:ER,https:vL,ws:wc,wss:_L,urn:SL,"urn:uuid":wL};Object.setPrototypeOf(bc,null);function op(t){return t&&(bc[t]||bc[t.toLowerCase()])||void 0}TR.exports={wsIsSecure:np,SCHEMES:bc,isValidSchemeName:lL,getSchemeHandler:op}});var zR=C((w5,Pc)=>{"use strict";var{normalizeIPv6:bL,removeDotSegments:us,recomposeAuthority:RL,normalizePercentEncoding:CL,normalizePathEncoding:PL,escapePreservingEscapes:xL,reescapeHostDelimiters:kL,isIPv4:EL,nonSimpleDomain:TL}=rp(),{SCHEMES:AL,getSchemeHandler:$R}=AR();function ML(t,e){return typeof t=="string"?t=LL(t,e):typeof t=="object"&&(t=Cc(En(t,e),e)),t}function $L(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},{parsed:o,malformedAuthorityOrPort:i}=Rc(t,n),{parsed:s,malformedAuthorityOrPort:a}=Rc(e,n);if(i||a)throw new Error(o.error||s.error||"URI is malformed.");let c=IR(o,s,n,!0);return n.skipEscape=!0,En(c,n)}function IR(t,e,r,n){let o={};return n||(t=Cc(En(t,r),r),e=Cc(En(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=us(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=us(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=us(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=us(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 IL(t,e,r){let n=MR(t,r),o=MR(e,r);return n!==void 0&&o!==void 0&&n.toLowerCase()===o.toLowerCase()}function En(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=$R(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=CL(r.path):(r.path=xL(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let s=RL(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=us(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 OL=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,zL=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,NL=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function DL(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 Rc(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(zL);s!==null&&s[1].indexOf("\\")!==-1&&(n.error="URI authority must not contain a literal backslash.",o=!0);let a=t.match(NL);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(OL);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=DL(n,c);if(u!==void 0&&(n.error=n.error||u,o=!0),n.host)if(EL(n.host)===!1){let f=bL(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=$R(r.scheme||n.scheme);if(!r.unicodeSupport&&(!d||!d.unicodeSupport)&&n.host&&(r.domainHost||d&&d.domainHost)&&i===!1&&TL(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=kL(unescape(n.host),i))),n.path&&(n.path=PL(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 Cc(t,e){return Rc(t,e).parsed}function LL(t,e){return OR(t,e).normalized}function OR(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Rc(t,e);return{normalized:n?t:En(r,e),malformedAuthorityOrPort:n}}function MR(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=OR(t,e);return n?void 0:r}if(typeof t=="object")return En(t,e)}var ip={SCHEMES:AL,normalize:ML,resolve:$L,resolveComponent:IR,equal:IL,serialize:En,parse:Cc};Pc.exports=ip;Pc.exports.default=ip;Pc.exports.fastUri=ip});var DR=C(sp=>{"use strict";Object.defineProperty(sp,"__esModule",{value:!0});var NR=zR();NR.code='require("ajv/dist/runtime/uri").default';sp.default=NR});var ZR=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=as();Object.defineProperty(Ne,"KeywordCxt",{enumerable:!0,get:function(){return jL.KeywordCxt}});var xo=L();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return xo._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return xo.str}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return xo.stringify}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return xo.nil}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return xo.Name}});Object.defineProperty(Ne,"CodeGen",{enumerable:!0,get:function(){return xo.CodeGen}});var FL=vc(),qR=cs(),UL=Of(),ds=Sc(),qL=L(),ls=os(),xc=ns(),cp=B(),LR=_R(),HL=DR(),HR=(t,e)=>new RegExp(t,e);HR.code="new RegExp";var GL=["removeAdditional","useDefaults","coerceTypes"],ZL=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),BL={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."},WL={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},jR=200;function VL(t){var e,r,n,o,i,s,a,c,u,d,l,f,p,h,m,g,v,w,b,x,S,R,I,ne,fe;let Pe=t.strict,tn=(e=t.code)===null||e===void 0?void 0:e.optimize,rn=tn===!0||tn===void 0?1:tn||0,lt=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:HR,Sr=(o=t.uriResolver)!==null&&o!==void 0?o:HL.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:(h=(p=t.strictRequired)!==null&&p!==void 0?p:Pe)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:rn,regExp:lt}:{optimize:rn,regExp:lt},loopRequired:(m=t.loopRequired)!==null&&m!==void 0?m:jR,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:jR,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(w=t.messages)!==null&&w!==void 0?w:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(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 fs=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,...VL(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new qL.ValueScope({scope:{},prefixes:ZL,es5:r,lines:n}),this.logger=ej(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,UL.getRules)(),FR.call(this,BL,e,"NOT SUPPORTED"),FR.call(this,WL,e,"DEPRECATED","warn"),this._metaOpts=XL.call(this),e.formats&&JL.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&YL.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),KL.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=LR;n==="id"&&(o={...LR},o.id=o.$id,delete o.$id),r&&e&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,e,r);async function o(d,l){await i.call(this,d.$schema);let f=this._addSchema(d,l);return f.validate||s.call(this,f)}async function i(d){d&&!this.getSchema(d)&&await o.call(this,{$ref:d},!0)}async function s(d){try{return this._compileSchemaEnv(d)}catch(l){if(!(l instanceof qR.default))throw l;return a.call(this,l),await c.call(this,l.missingSchema),s.call(this,d)}}function a({missingSchema:d,missingRef:l}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${l} cannot be resolved`)}async function c(d){let l=await u.call(this,d);this.refs[d]||await i.call(this,l.$schema),this.refs[d]||this.addSchema(l,d,r)}async function u(d){let l=this._loading[d];if(l)return l;try{return await(this._loading[d]=n(d))}finally{delete this._loading[d]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,n,o);return this}let i;if(typeof e=="object"){let{schemaId:s}=this.opts;if(i=e[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return r=(0,ls.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=UR.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new ds.SchemaEnv({schema:{},schemaId:n});if(r=ds.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=UR.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,ls.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(rj.call(this,n,r),!r)return(0,cp.eachItem)(n,i=>ap.call(this,i)),this;oj.call(this,r);let o={...r,type:(0,xc.getJSONTypes)(r.type),schemaType:(0,xc.getJSONTypes)(r.schemaType)};return(0,cp.eachItem)(n,o.type.length===0?i=>ap.call(this,i,o):i=>o.type.forEach(s=>ap.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]=GR(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,ls.normalizeId)(s||n);let u=ls.getSchemaRefs.call(this,e,n);return c=new ds.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):ds.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{ds.compileSchema.call(this,e)}finally{this.opts=r}}};fs.ValidationError=FL.default;fs.MissingRefError=qR.default;Ne.default=fs;function FR(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 UR(t){return t=(0,ls.normalizeId)(t),this.schemas[t]||this.refs[t]}function KL(){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 JL(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function YL(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 XL(){let t={...this.opts};for(let e of GL)delete t[e];return t}var QL={log(){},warn(){},error(){}};function ej(t){if(t===!1)return QL;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 tj=/^[a-z_$][a-z0-9_$:-]*$/i;function rj(t,e){let{RULES:r}=this;if((0,cp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!tj.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 ap(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,xc.getJSONTypes)(e.type),schemaType:(0,xc.getJSONTypes)(e.schemaType)}};e.before?nj.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 nj(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 oj(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=GR(e)),t.validateSchema=this.compile(e,!0))}var ij={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function GR(t){return{anyOf:[t,ij]}}});var BR=C(up=>{"use strict";Object.defineProperty(up,"__esModule",{value:!0});var sj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};up.default=sj});var JR=C(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.callRef=Tn.getValidate=void 0;var aj=cs(),WR=wt(),rt=L(),ko=fr(),VR=Sc(),kc=B(),cj={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=VR.resolveRef.call(c,u,o,r);if(d===void 0)throw new aj.default(n.opts.uriResolver,o,r);if(d instanceof VR.SchemaEnv)return f(d);return p(d);function l(){if(i===u)return Ec(t,s,i,i.$async);let h=e.scopeValue("root",{ref:u});return Ec(t,(0,rt._)`${h}.validate`,u,u.$async)}function f(h){let m=KR(t,h);Ec(t,m,h,h.$async)}function p(h){let m=e.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,rt.stringify)(h)}:{ref:h}),g=e.name("valid"),v=t.subschema({schema:h,dataTypes:[],schemaPath:rt.nil,topSchemaRef:m,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function KR(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,rt._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Tn.getValidate=KR;function Ec(t,e,r,n){let{gen:o,it:i}=t,{allErrors:s,schemaEnv:a,opts:c}=i,u=c.passContext?ko.default.this:rt.nil;n?d():l();function d(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=o.let("valid");o.try(()=>{o.code((0,rt._)`await ${(0,WR.callValidateCode)(t,e,u)}`),p(e),s||o.assign(h,!0)},m=>{o.if((0,rt._)`!(${m} instanceof ${i.ValidationError})`,()=>o.throw(m)),f(m),s||o.assign(h,!1)}),t.ok(h)}function l(){t.result((0,WR.callValidateCode)(t,e,u),()=>p(e),()=>f(e))}function f(h){let m=(0,rt._)`${h}.errors`;o.assign(ko.default.vErrors,(0,rt._)`${ko.default.vErrors} === null ? ${m} : ${ko.default.vErrors}.concat(${m})`),o.assign(ko.default.errors,(0,rt._)`${ko.default.vErrors}.length`)}function p(h){var m;if(!i.opts.unevaluated)return;let g=(m=r?.validate)===null||m===void 0?void 0:m.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=kc.mergeEvaluated.props(o,g.props,i.props));else{let v=o.var("props",(0,rt._)`${h}.evaluated.props`);i.props=kc.mergeEvaluated.props(o,v,i.props,rt.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=kc.mergeEvaluated.items(o,g.items,i.items));else{let v=o.var("items",(0,rt._)`${h}.evaluated.items`);i.items=kc.mergeEvaluated.items(o,v,i.items,rt.Name)}}}Tn.callRef=Ec;Tn.default=cj});var YR=C(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var uj=BR(),dj=JR(),lj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",uj.default,dj.default];dp.default=lj});var XR=C(lp=>{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});var Tc=L(),Wr=Tc.operators,Ac={maximum:{okStr:"<=",ok:Wr.LTE,fail:Wr.GT},minimum:{okStr:">=",ok:Wr.GTE,fail:Wr.LT},exclusiveMaximum:{okStr:"<",ok:Wr.LT,fail:Wr.GTE},exclusiveMinimum:{okStr:">",ok:Wr.GT,fail:Wr.LTE}},fj={message:({keyword:t,schemaCode:e})=>(0,Tc.str)`must be ${Ac[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Tc._)`{comparison: ${Ac[t].okStr}, limit: ${e}}`},pj={keyword:Object.keys(Ac),type:"number",schemaType:"number",$data:!0,error:fj,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Tc._)`${r} ${Ac[e].fail} ${n} || isNaN(${r})`)}};lp.default=pj});var QR=C(fp=>{"use strict";Object.defineProperty(fp,"__esModule",{value:!0});var ps=L(),hj={message:({schemaCode:t})=>(0,ps.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ps._)`{multipleOf: ${t}}`},mj={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:hj,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,s=e.let("res"),a=i?(0,ps._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,ps._)`${s} !== parseInt(${s})`;t.fail$data((0,ps._)`(${n} === 0 || (${s} = ${r}/${n}, ${a}))`)}};fp.default=mj});var tC=C(pp=>{"use strict";Object.defineProperty(pp,"__esModule",{value:!0});function eC(t){let e=t.length,r=0,n=0,o;for(;n<e;)r++,o=t.charCodeAt(n++),o>=55296&&o<=56319&&n<e&&(o=t.charCodeAt(n),(o&64512)===56320&&n++);return r}pp.default=eC;eC.code='require("ajv/dist/runtime/ucs2length").default'});var rC=C(hp=>{"use strict";Object.defineProperty(hp,"__esModule",{value:!0});var An=L(),gj=B(),yj=tC(),vj={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,An.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,An._)`{limit: ${t}}`},_j={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:vj,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?An.operators.GT:An.operators.LT,s=o.opts.unicode===!1?(0,An._)`${r}.length`:(0,An._)`${(0,gj.useFunc)(t.gen,yj.default)}(${r})`;t.fail$data((0,An._)`${s} ${i} ${n}`)}};hp.default=_j});var nC=C(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var Sj=wt(),wj=B(),Eo=L(),bj={message:({schemaCode:t})=>(0,Eo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Eo._)`{pattern: ${t}}`},Rj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:bj,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,Eo._)`new RegExp`:(0,wj.useFunc)(e,c),d=e.let("valid");e.try(()=>e.assign(d,(0,Eo._)`${u}(${i}, ${a}).test(${r})`),()=>e.assign(d,!1)),t.fail$data((0,Eo._)`!${d}`)}else{let c=(0,Sj.usePattern)(t,o);t.fail$data((0,Eo._)`!${c}.test(${r})`)}}};mp.default=Rj});var oC=C(gp=>{"use strict";Object.defineProperty(gp,"__esModule",{value:!0});var hs=L(),Cj={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,hs.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,hs._)`{limit: ${t}}`},Pj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Cj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?hs.operators.GT:hs.operators.LT;t.fail$data((0,hs._)`Object.keys(${r}).length ${o} ${n}`)}};gp.default=Pj});var iC=C(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var ms=wt(),gs=L(),xj=B(),kj={message:({params:{missingProperty:t}})=>(0,gs.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,gs._)`{missingProperty: ${t}}`},Ej={keyword:"required",type:"object",schemaType:"array",$data:!0,error:kj,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:i,it:s}=t,{opts:a}=s;if(!i&&r.length===0)return;let c=r.length>=a.loopRequired;if(s.allErrors?u():d(),a.strictRequired){let p=t.parentSchema.properties,{definedProperties:h}=t.it;for(let m of r)if(p?.[m]===void 0&&!h.has(m)){let g=s.schemaEnv.baseId+s.errSchemaPath,v=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,xj.checkStrictMode)(s,v,s.opts.strictRequired)}}function u(){if(c||i)t.block$data(gs.nil,l);else for(let p of r)(0,ms.checkReportMissingProp)(t,p)}function d(){let p=e.let("missing");if(c||i){let h=e.let("valid",!0);t.block$data(h,()=>f(p,h)),t.ok(h)}else e.if((0,ms.checkMissingProp)(t,r,p)),(0,ms.reportMissingProp)(t,p),e.else()}function l(){e.forOf("prop",n,p=>{t.setParams({missingProperty:p}),e.if((0,ms.noPropertyInData)(e,o,p,a.ownProperties),()=>t.error())})}function f(p,h){t.setParams({missingProperty:p}),e.forOf(p,n,()=>{e.assign(h,(0,ms.propertyInData)(e,o,p,a.ownProperties)),e.if((0,gs.not)(h),()=>{t.error(),e.break()})},gs.nil)}}};yp.default=Ej});var sC=C(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var ys=L(),Tj={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ys.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ys._)`{limit: ${t}}`},Aj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Tj,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ys.operators.GT:ys.operators.LT;t.fail$data((0,ys._)`${r}.length ${o} ${n}`)}};vp.default=Aj});var Mc=C(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var aC=qf();aC.code='require("ajv/dist/runtime/equal").default';_p.default=aC});var cC=C(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var Sp=ns(),De=L(),Mj=B(),$j=Mc(),Ij={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}}`},Oj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Ij,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,Sp.getSchemaTypes)(i.items):[];t.block$data(c,d,(0,De._)`${s} === false`),t.ok(c);function d(){let h=e.let("i",(0,De._)`${r}.length`),m=e.let("j");t.setParams({i:h,j:m}),e.assign(c,!0),e.if((0,De._)`${h} > 1`,()=>(l()?f:p)(h,m))}function l(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=e.name("item"),v=(0,Sp.checkDataTypes)(u,g,a.opts.strictNumbers,Sp.DataType.Wrong),w=e.const("indices",(0,De._)`{}`);e.for((0,De._)`;${h}--;`,()=>{e.let(g,(0,De._)`${r}[${h}]`),e.if(v,(0,De._)`continue`),u.length>1&&e.if((0,De._)`typeof ${g} == "string"`,(0,De._)`${g} += "_"`),e.if((0,De._)`typeof ${w}[${g}] == "number"`,()=>{e.assign(m,(0,De._)`${w}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,De._)`${w}[${g}] = ${h}`)})}function p(h,m){let g=(0,Mj.useFunc)(e,$j.default),v=e.name("outer");e.label(v).for((0,De._)`;${h}--;`,()=>e.for((0,De._)`${m} = ${h}; ${m}--;`,()=>e.if((0,De._)`${g}(${r}[${h}], ${r}[${m}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};wp.default=Oj});var uC=C(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var bp=L(),zj=B(),Nj=Mc(),Dj={message:"must be equal to constant",params:({schemaCode:t})=>(0,bp._)`{allowedValue: ${t}}`},Lj={keyword:"const",$data:!0,error:Dj,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,bp._)`!${(0,zj.useFunc)(e,Nj.default)}(${r}, ${o})`):t.fail((0,bp._)`${i} !== ${r}`)}};Rp.default=Lj});var dC=C(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var vs=L(),jj=B(),Fj=Mc(),Uj={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,vs._)`{allowedValues: ${t}}`},qj={keyword:"enum",schemaType:"array",$data:!0,error:Uj,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,Fj.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,vs.or)(...o.map((h,m)=>f(p,m)))}t.pass(d);function l(){e.assign(d,!1),e.forOf("v",i,p=>e.if((0,vs._)`${u()}(${r}, ${p})`,()=>e.assign(d,!0).break()))}function f(p,h){let m=o[h];return typeof m=="object"&&m!==null?(0,vs._)`${u()}(${r}, ${p}[${h}])`:(0,vs._)`${r} === ${m}`}}};Cp.default=qj});var lC=C(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var Hj=XR(),Gj=QR(),Zj=rC(),Bj=nC(),Wj=oC(),Vj=iC(),Kj=sC(),Jj=cC(),Yj=uC(),Xj=dC(),Qj=[Hj.default,Gj.default,Zj.default,Bj.default,Wj.default,Vj.default,Kj.default,Jj.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Yj.default,Xj.default];Pp.default=Qj});var kp=C(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.validateAdditionalItems=void 0;var Mn=L(),xp=B(),e1={message:({params:{len:t}})=>(0,Mn.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Mn._)`{limit: ${t}}`},t1={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:e1,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,xp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}fC(t,n)}};function fC(t,e){let{gen:r,schema:n,data:o,keyword:i,it:s}=t;s.items=!0;let a=r.const("len",(0,Mn._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Mn._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,xp.alwaysValidSchema)(s,n)){let u=r.var("valid",(0,Mn._)`${a} <= ${e.length}`);r.if((0,Mn.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,d=>{t.subschema({keyword:i,dataProp:d,dataPropType:xp.Type.Num},u),s.allErrors||r.if((0,Mn.not)(u),()=>r.break())})}}_s.validateAdditionalItems=fC;_s.default=t1});var Ep=C(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.validateTuple=void 0;var pC=L(),$c=B(),r1=wt(),n1={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return hC(t,"additionalItems",e);r.items=!0,!(0,$c.alwaysValidSchema)(r,e)&&t.ok((0,r1.validateArray)(t))}};function hC(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=$c.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,pC._)`${i}.length`);r.forEach((l,f)=>{(0,$c.alwaysValidSchema)(a,l)||(n.if((0,pC._)`${u} > ${f}`,()=>t.subschema({keyword:s,schemaProp:f,dataProp:f},c)),t.ok(c))});function d(l){let{opts:f,errSchemaPath:p}=a,h=r.length,m=h===l.minItems&&(h===l.maxItems||l[e]===!1);if(f.strictTuples&&!m){let g=`"${s}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0,$c.checkStrictMode)(a,g,f.strictTuples)}}}Ss.validateTuple=hC;Ss.default=n1});var mC=C(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var o1=Ep(),i1={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,o1.validateTuple)(t,"items")};Tp.default=i1});var yC=C(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var gC=L(),s1=B(),a1=wt(),c1=kp(),u1={message:({params:{len:t}})=>(0,gC.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,gC._)`{limit: ${t}}`},d1={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:u1,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,s1.alwaysValidSchema)(n,e)&&(o?(0,c1.validateAdditionalItems)(t,o):t.ok((0,a1.validateArray)(t)))}};Ap.default=d1});var vC=C(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Rt=L(),Ic=B(),l1={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}}`},f1={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:l1,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,Ic.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,Ic.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Ic.alwaysValidSchema)(i,r)){let m=(0,Rt._)`${d} >= ${s}`;a!==void 0&&(m=(0,Rt._)`${m} && ${d} <= ${a}`),t.pass(m);return}i.items=!0;let l=e.name("valid");a===void 0&&s===1?p(l,()=>e.if(l,()=>e.break())):s===0?(e.let(l,!0),a!==void 0&&e.if((0,Rt._)`${o}.length > 0`,f)):(e.let(l,!1),f()),t.result(l,()=>t.reset());function f(){let m=e.name("_valid"),g=e.let("count",0);p(m,()=>e.if(m,()=>h(g)))}function p(m,g){e.forRange("i",0,d,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Ic.Type.Num,compositeRule:!0},m),g()})}function h(m){e.code((0,Rt._)`${m}++`),a===void 0?e.if((0,Rt._)`${m} >= ${s}`,()=>e.assign(l,!0).break()):(e.if((0,Rt._)`${m} > ${a}`,()=>e.assign(l,!1).break()),s===1?e.assign(l,!0):e.if((0,Rt._)`${m} >= ${s}`,()=>e.assign(l,!0)))}}};Mp.default=f1});var wC=C(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.validateSchemaDeps=Yt.validatePropertyDeps=Yt.error=void 0;var $p=L(),p1=B(),ws=wt();Yt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,$p.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,$p._)`{property: ${t},
6
6
  missingProperty: ${n},
7
7
  depsCount: ${e},
8
- deps: ${r}}`};var g1={keyword:"dependencies",type:"object",schemaType:"object",error:Yt.error,code(t){let[e,r]=y1(t);vC(t,e),_C(t,r)}};function y1({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 vC(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,_s.propertyInData)(r,n,s,o.opts.ownProperties);t.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of a)(0,_s.checkReportMissingProp)(t,u)}):(r.if((0,$p._)`${c} && (${(0,_s.checkMissingProp)(t,a,i)})`),(0,_s.reportMissingProp)(t,i),r.else())}}Yt.validatePropertyDeps=vC;function _C(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,m1.alwaysValidSchema)(i,e[a])||(r.if((0,_s.propertyInData)(r,n,a,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:a},s);t.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),t.ok(s))}Yt.validateSchemaDeps=_C;Yt.default=g1});var bC=C(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var wC=L(),v1=B(),_1={message:"property name must be valid",params:({params:t})=>(0,wC._)`{propertyName: ${t.propertyName}}`},S1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:_1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,v1.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,wC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Ip.default=S1});var zp=C(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Oc=wt(),zt=L(),w1=fr(),zc=B(),b1={message:"must NOT have additional properties",params:({params:t})=>(0,zt._)`{additionalProperty: ${t.additionalProperty}}`},R1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:b1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,zc.alwaysValidSchema)(s,r))return;let u=(0,Oc.allSchemaProperties)(n.properties),d=(0,Oc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,zt._)`${i} === ${w1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?h(g):e.if(f(g),()=>h(g))})}function f(g){let v;if(u.length>8){let w=(0,zc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Oc.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,Oc.usePattern)(t,w)}.test(${g})`))),(0,zt.not)(v)}function p(g){e.code((0,zt._)`delete ${o}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,zc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(m(g,v,!1),e.if((0,zt.not)(v),()=>{t.reset(),p(g)})):(m(g,v),a||e.if((0,zt.not)(v),()=>e.break()))}}function m(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:zc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Op.default=R1});var PC=C(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var C1=is(),RC=wt(),Np=B(),CC=zp(),P1={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&&CC.default.code(new C1.KeywordCxt(i,CC.default,"additionalProperties"));let s=(0,RC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Np.mergeEvaluated.props(e,(0,Np.toHash)(s),i.props));let a=s.filter(l=>!(0,Np.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,RC.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)}}};Dp.default=P1});var TC=C(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var xC=wt(),Nc=L(),kC=B(),EC=B(),x1={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,xC.allSchemaProperties)(r),c=a.filter(m=>(0,kC.alwaysValidSchema)(i,r[m]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof Nc.Name)&&(i.props=(0,EC.evaluatedPropsToName)(e,i.props));let{props:l}=i;f();function f(){for(let m of a)u&&p(m),i.allErrors?h(m):(e.var(d,!0),h(m),e.if(d))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,kC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Nc._)`${(0,xC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:EC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Nc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Nc.not)(d),()=>e.break())})})}}};Lp.default=x1});var AC=C(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var k1=B(),E1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,k1.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};jp.default=E1});var MC=C(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var T1=wt(),A1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:T1.validateUnion,error:{message:"must match a schema in anyOf"}};Fp.default=A1});var $C=C(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var Dc=L(),M1=B(),$1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Dc._)`{passingSchemas: ${t.passing}}`},I1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:$1,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,M1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Dc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Dc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Dc.Name)})})}}};Up.default=I1});var IC=C(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var O1=B(),z1={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,O1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};qp.default=z1});var NC=C(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var Lc=L(),zC=B(),N1={message:({params:t})=>(0,Lc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Lc._)`{failingKeyword: ${t.ifClause}}`},D1={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:N1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,zC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=OC(n,"then"),i=OC(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,Lc.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,Lc._)`${d}`):t.setParams({ifClause:d})}}}};function OC(t,e){let r=t.schema[e];return r!==void 0&&!(0,zC.alwaysValidSchema)(t,r)}Hp.default=D1});var DC=C(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var L1=B(),j1={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,L1.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Gp.default=j1});var LC=C(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var F1=kp(),U1=hC(),q1=Ep(),H1=gC(),G1=yC(),Z1=SC(),B1=bC(),W1=zp(),V1=PC(),K1=TC(),J1=AC(),Y1=MC(),X1=$C(),Q1=IC(),eF=NC(),tF=DC();function rF(t=!1){let e=[J1.default,Y1.default,X1.default,Q1.default,eF.default,tF.default,B1.default,W1.default,Z1.default,V1.default,K1.default];return t?e.push(U1.default,H1.default):e.push(F1.default,q1.default),e.push(G1.default),e}Zp.default=rF});var jC=C(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var we=L(),nF={message:({schemaCode:t})=>(0,we.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,we._)`{format: ${t}}`},oF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:nF,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:s,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:d,self:l}=a;if(!c.validateFormats)return;o?f():p();function f(){let h=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),m=r.const("fDef",(0,we._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,we._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,we._)`${m}.type || "string"`).assign(v,(0,we._)`${m}.validate`),()=>r.assign(g,(0,we._)`"string"`).assign(v,m)),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._)`(${m}.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 h=l.formats[i];if(!h){w();return}if(h===!0)return;let[m,g,v]=b(h);m===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 h=="object"&&!(h instanceof RegExp)&&h.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})`}}}};Bp.default=oF});var FC=C(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var iF=jC(),sF=[iF.default];Wp.default=sF});var UC=C(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.contentVocabulary=Eo.metadataVocabulary=void 0;Eo.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Eo.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var HC=C(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var aF=JR(),cF=dC(),uF=LC(),dF=FC(),qC=UC(),lF=[aF.default,cF.default,(0,uF.default)(),dF.default,qC.metadataVocabulary,qC.contentVocabulary];Vp.default=lF});var ZC=C(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.DiscrError=void 0;var GC;(function(t){t.Tag="tag",t.Mapping="mapping"})(GC||(jc.DiscrError=GC={}))});var WC=C(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var To=L(),Kp=ZC(),BC=Sc(),fF=ss(),pF=B(),hF={message:({params:{discrError:t,tagName:e}})=>t===Kp.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,To._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},mF={keyword:"discriminator",type:"object",schemaType:"object",error:hF,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,To._)`${r}${(0,To.getProperty)(a)}`);e.if((0,To._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:Kp.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function d(){let p=f();e.if(!1);for(let h in p)e.elseIf((0,To._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:Kp.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function l(p){let h=e.name("valid"),m=t.subschema({keyword:"oneOf",schemaProp:p},h);return t.mergeEvaluated(m,To.Name),h}function f(){var p;let h={},m=v(o),g=!0;for(let x=0;x<s.length;x++){let S=s[x];if(S?.$ref&&!(0,pF.schemaHasRulesButRef)(S,i.self.RULES)){let I=S.$ref;if(S=BC.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),S instanceof BC.SchemaEnv&&(S=S.schema),S===void 0)throw new fF.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&&(m||v(S)),w(R,x)}if(!g)throw new Error(`discriminator: "${a}" must be required`);return h;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 h)throw new Error(`discriminator: "${a}" values must be unique strings`);h[x]=S}}}};Jp.default=mF});var VC=C((f3,gF)=>{gF.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 Xp=C((le,Yp)=>{"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 yF=GR(),vF=HC(),_F=WC(),KC=VC(),SF=["/properties"],Fc="http://json-schema.org/draft-07/schema",Ao=class extends yF.default{_addVocabularies(){super._addVocabularies(),vF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(_F.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(KC,SF):KC;this.addMetaSchema(e,Fc,!1),this.refs["http://json-schema.org/schema"]=Fc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Fc)?Fc:void 0)}};le.Ajv=Ao;Yp.exports=le=Ao;Yp.exports.Ajv=Ao;Object.defineProperty(le,"__esModule",{value:!0});le.default=Ao;var wF=is();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return wF.KeywordCxt}});var Mo=L();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return Mo._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return Mo.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return Mo.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return Mo.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return Mo.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return Mo.CodeGen}});var bF=vc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return bF.default}});var RF=ss();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return RF.default}})});var nP=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(QC,rh),time:Xt(eh(!0),nh),"date-time":Xt(JC(!0),tP),"iso-time":Xt(eh(),eP),"iso-date-time":Xt(JC(),rP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:TF,"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:NF,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:AF,int32:{type:"number",validate:IF},int64:{type:"number",validate:OF},float:{type:"number",validate:XC},double:{type:"number",validate:XC},password:!0,binary:!0};Qt.fastFormats={...Qt.fullFormats,date:Xt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,rh),time:Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,nh),"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,tP),"iso-time":Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,eP),"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,rP),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 CF(t){return t%4===0&&(t%100!==0||t%400===0)}var PF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,xF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function QC(t){let e=PF.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&&CF(r)?29:xF[n])}function rh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var Qp=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function eh(t){return function(r){let n=Qp.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 nh(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 eP(t,e){if(!(t&&e))return;let r=Qp.exec(t),n=Qp.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 th=/t|\s/i;function JC(t){let e=eh(t);return function(n){let o=n.split(th);return o.length===2&&QC(o[0])&&e(o[1])}}function tP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function rP(t,e){if(!(t&&e))return;let[r,n]=t.split(th),[o,i]=e.split(th),s=rh(r,o);if(s!==void 0)return s||nh(n,i)}var kF=/\/|:/,EF=/^(?:[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 TF(t){return kF.test(t)&&EF.test(t)}var YC=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function AF(t){return YC.lastIndex=0,YC.test(t)}var MF=-(2**31),$F=2**31-1;function IF(t){return Number.isInteger(t)&&t<=$F&&t>=MF}function OF(t){return Number.isInteger(t)}function XC(){return!0}var zF=/[^\\]\\Z/;function NF(t){if(zF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var oP=C($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.formatLimitDefinition=void 0;var DF=Xp(),Nt=L(),Vr=Nt.operators,Uc={formatMaximum:{okStr:"<=",ok:Vr.LTE,fail:Vr.GT},formatMinimum:{okStr:">=",ok:Vr.GTE,fail:Vr.LT},formatExclusiveMaximum:{okStr:"<",ok:Vr.LT,fail:Vr.GTE},formatExclusiveMinimum:{okStr:">",ok:Vr.GT,fail:Vr.LTE}},LF={message:({keyword:t,schemaCode:e})=>(0,Nt.str)`should be ${Uc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Nt._)`{comparison: ${Uc[t].okStr}, limit: ${e}}`};$o.formatLimitDefinition={keyword:Object.keys(Uc),type:"string",schemaType:"string",$data:!0,error:LF,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 DF.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 h=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(h))}function l(f){return(0,Nt._)`${f}.compare(${r}, ${n}) ${Uc[o].fail} 0`}},dependencies:["format"]};var jF=t=>(t.addKeyword($o.formatLimitDefinition),t);$o.default=jF});var cP=C((Ss,aP)=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});var Io=nP(),FF=oP(),oh=L(),iP=new oh.Name("fullFormats"),UF=new oh.Name("fastFormats"),ih=(t,e={keywords:!0})=>{if(Array.isArray(e))return sP(t,e,Io.fullFormats,iP),t;let[r,n]=e.mode==="fast"?[Io.fastFormats,UF]:[Io.fullFormats,iP],o=e.formats||Io.formatNames;return sP(t,o,r,n),e.keywords&&(0,FF.default)(t),t};ih.get=(t,e="full")=>{let n=(e==="fast"?Io.fastFormats:Io.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function sP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,oh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}aP.exports=Ss=ih;Object.defineProperty(Ss,"__esModule",{value:!0});Ss.default=ih});var DP=C((V3,NP)=>{NP.exports=zP;zP.sync=_U;var IP=wr("fs");function vU(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 OP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:vU(e,r)}function zP(t,e,r){IP.stat(t,function(n,o){r(n,n?!1:OP(o,t,e))})}function _U(t,e){return OP(IP.statSync(t),t,e)}});var qP=C((K3,UP)=>{UP.exports=jP;jP.sync=SU;var LP=wr("fs");function jP(t,e,r){LP.stat(t,function(n,o){r(n,n?!1:FP(o,e))})}function SU(t,e){return FP(LP.statSync(t),e)}function FP(t,e){return t.isFile()&&wU(t,e)}function wU(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 GP=C((Y3,HP)=>{var J3=wr("fs"),Xc;process.platform==="win32"||global.TESTING_WINDOWS?Xc=DP():Xc=qP();HP.exports=Ch;Ch.sync=bU;function Ch(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){Ch(t,e||{},function(i,s){i?o(i):n(s)})})}Xc(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function bU(t,e){try{return Xc.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var YP=C((X3,JP)=>{var Uo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ZP=wr("path"),RU=Uo?";":":",BP=GP(),WP=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),VP=(t,e)=>{let r=e.colon||RU,n=t.match(/\//)||Uo&&t.match(/\\/)?[""]:[...Uo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=Uo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Uo?o.split(r):[""];return Uo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},KP=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=VP(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(WP(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=ZP.join(p,t),m=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;d(c(m,u,0))}),c=(u,d,l)=>new Promise((f,p)=>{if(l===o.length)return f(a(d+1));let h=o[l];BP(u+h,{pathExt:i},(m,g)=>{if(!m&&g)if(e.all)s.push(u+h);else return f(u+h);return f(c(u,d,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},CU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=VP(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=ZP.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(BP.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 WP(t)};JP.exports=KP;KP.sync=CU});var QP=C((Q3,Ph)=>{"use strict";var XP=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ph.exports=XP;Ph.exports.default=XP});var nx=C((e8,rx)=>{"use strict";var ex=wr("path"),PU=YP(),xU=QP();function tx(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=PU.sync(t.command,{path:r[xU({env:r})],pathExt:e?ex.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=ex.resolve(o?t.options.cwd:"",s)),s}function kU(t){return tx(t)||tx(t,!0)}rx.exports=kU});var ox=C((t8,kh)=>{"use strict";var xh=/([()\][%!^"`<>&|;, *?])/g;function EU(t){return t=t.replace(xh,"^$1"),t}function TU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(xh,"^$1"),e&&(t=t.replace(xh,"^$1")),t}kh.exports.command=EU;kh.exports.argument=TU});var sx=C((r8,ix)=>{"use strict";ix.exports=/^#!(.*)/});var cx=C((n8,ax)=>{"use strict";var AU=sx();ax.exports=(t="")=>{let e=t.match(AU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var dx=C((o8,ux)=>{"use strict";var Eh=wr("fs"),MU=cx();function $U(t){let r=Buffer.alloc(150),n;try{n=Eh.openSync(t,"r"),Eh.readSync(n,r,0,150,0),Eh.closeSync(n)}catch{}return MU(r.toString())}ux.exports=$U});var hx=C((i8,px)=>{"use strict";var IU=wr("path"),lx=nx(),fx=ox(),OU=dx(),zU=process.platform==="win32",NU=/\.(?:com|exe)$/i,DU=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function LU(t){t.file=lx(t);let e=t.file&&OU(t.file);return e?(t.args.unshift(t.file),t.command=e,lx(t)):t.file}function jU(t){if(!zU)return t;let e=LU(t),r=!NU.test(e);if(t.options.forceShell||r){let n=DU.test(e);t.command=IU.normalize(t.command),t.command=fx.command(t.command),t.args=t.args.map(i=>fx.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 FU(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:jU(n)}px.exports=FU});var yx=C((s8,gx)=>{"use strict";var Th=process.platform==="win32";function Ah(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 UU(t,e){if(!Th)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=mx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function mx(t,e){return Th&&t===1&&!e.file?Ah(e.original,"spawn"):null}function qU(t,e){return Th&&t===1&&!e.file?Ah(e.original,"spawnSync"):null}gx.exports={hookChildProcess:UU,verifyENOENT:mx,verifyENOENTSync:qU,notFoundError:Ah}});var Sx=C((a8,qo)=>{"use strict";var vx=wr("child_process"),Mh=hx(),$h=yx();function _x(t,e,r){let n=Mh(t,e,r),o=vx.spawn(n.command,n.args,n.options);return $h.hookChildProcess(o,n),o}function HU(t,e,r){let n=Mh(t,e,r),o=vx.spawnSync(n.command,n.args,n.options);return o.error=o.error||$h.verifyENOENTSync(o.status,n),o}qo.exports=_x;qo.exports.spawn=_x;qo.exports.sync=HU;qo.exports._parse=Mh;qo.exports._enoent=$h});var xx=C(Oh=>{"use strict";var Rx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,VU=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Cx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,KU=/\\([\u000b\u0020-\u00ff])/g,JU=/([\\"])/g,Px=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Oh.format=YU;Oh.parse=XU;function YU(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!Px.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],!Cx.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+eq(e[o])}return n}function XU(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?QU(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(!Px.test(n))throw new TypeError("invalid media type");var o=new tq(n.toLowerCase());if(r!==-1){var i,s,a;for(Rx.lastIndex=r;s=Rx.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(KU,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function QU(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 eq(t){var e=String(t);if(Cx.test(e))return e;if(e.length>0&&!VU.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(JU,"\\$1")+'"'}function tq(t){this.parameters=Object.create(null),this.type=t}});import{logger as A2}from"@hermes/logger";import{logger as RH}from"@hermes/logger";var sT="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(sT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as Jq}from"@augmentcode/auggie-v2";import{logger as Yq}from"@hermes/logger";import{logger as NT}from"@hermes/logger";import{logger as cT}from"@hermes/logger";function aT(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":aT(t,e,r)?"plugin":"local"}function uT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Em=cT.child({prefix:"pi-mcp"}),dT="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 Yo(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 lT(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 Vs=3e4;function fT(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>=Vs?"failed":void 0}default:return}}var Tm="authentication required",pT="Authentication refresh is pending in the backend; retry shortly.",hT="timed out connecting after 30s",mT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",gT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",yT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",vT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",_T="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",ST="Server was not started: this session's Space policy does not allow it.",wT="Server was not started: its shared credential is not available to this session's identity.",bT="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 RT(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)?gT:mT,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",...PT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}CT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function CT(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=Mm(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 Am(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 Mm(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:_T,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:ST,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:wT,failureCategory:"share_identity_excluded"};default:return}}function PT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:bT,failureCategory:"auth_terminal"};let i=Mm(e,r);return i!==void 0?i:{errorMessage:o.has(n)?vT:yT,failureCategory:"configuration"}}function xT(t,e){return e!==void 0?e.isAuthError?Tm:e.error:t.status==="initializing"?hT:t.lastError??(t.status==="auth_required"?Tm:void 0)}function kT(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 ET(t,e){let r=fT(t);if(r===void 0)return;let n=lT(e,t.name),o=r==="connected"?uT(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.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=kT(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"?pT:xT(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 TT(t){let e=[];for(let r of t.servers.values()){let n=ET(r,t);n!==void 0&&e.push(n)}return RT(t,e),e}function j(t,e){try{let r=TT(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(dT,o),Em.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Em.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var Ks={local:4,registry:3,plugin:2,vfs:1};function Ut(t){return t.hostLeases??=new Map,t.hostLeases}function AT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function Xo(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function Qo(t,e){return t.kind===e.kind&&t.identity===e.identity}function $m(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function zu(t,e){let r=AT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function Js(t,e,r){if(r.kind==="registry"){Xo(t).set(e,{kind:"domain",domain:r.identity});return}Xo(t).set(e,{kind:"blocked"})}function Nu(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:zu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),Js(t,e,a),c}function Im(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:zu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),Js(e,r,s.owner),s}function ei(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=Ks[n.kind]>Ks[a.owner.kind],f=Ks[n.kind]===Ks[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?$m(a):void 0;Nu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:zu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),Js(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Du(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,Xo(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function Ys(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e).get(r);return!s||s.revision!==o||!Qo(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||!Qo(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=$m(s);if(a)return Nu(e,r,i),s.host=void 0,s.retirement=a,a}function Om(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||!Qo(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!Qo(s.owner,n)||s.revision!==o.incumbent.revision?(Js(e,r,s.owner),!0):(i.delete(r),Xo(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||!Qo(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Nu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),Xo(e).set(r,{kind:"blocked"}),!0)}function N(t,e){return Ut(t).get(e)}function Lu(t,e,r){let n=Ut(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function zm(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&&zm(t.url)===zm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Zn=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 ri(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function ju(t){try{return new URL(t).toString()}catch{return t}}function ti(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:ju(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function qt(t,e){return ti(e.config)}function ft(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:ju(t.url)===ju(e.url)}function Fu(t,e){let r=ti(t),n=ti(e);return!r||!n?ft(t,e):Cr(r,n)}function Uu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function MT(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 $T(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 Nm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Uu(e,r):n!==void 0&&e!==n}function Dm(t,e,r){return r&&e!==void 0&&t!==void 0&&Uu(t,e)}function IT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Uu(i,n))}function Lm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if($T({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Nm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Nm({identity:s.domain,...l})?!0:IT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function OT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ti(r);if(n!==void 0)return{id:n,name:e}}function zT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ti(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function jm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=MT({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=Lm({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=Dm(i,u,d),h=Dm(s,u,d),m=!f,g=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,w=f&&!(m||p||h||g);if(o==="durable"){let R=OT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,R,{preserveNameState:w})}let b=Lm({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=m&&!b,S=!1;return t.equalRevisionRebindDomains?.delete(e),(x||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),S=!0),(x||h)&&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"}),zT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:x,retiredConfig:c}),S&&(ri(t,e),it(t,e),t.authRefreshNeededReportKeys?.delete(e)),x}function pt(t,e,r,n){return jm(t,e,r,n,"durable")}function ni(t,e,r,n){return jm(t,e,r,n,"session")}function Fm(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 Um="augment:mcp-oauth-credentials",qm=300*1e3,DT=256,qu=NT.child({prefix:"pi-mcp"}),xt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function at(t){return`user:${t}`}function nn(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 on(t){return t.ownerDomain??xr(t.domain)}function Hm(t,e,r){let n=at(e);return r!==void 0?r===n:ct(t)||xr(t)===n}function LT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function jT(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 FT(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function UT(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&LT(t.credentialRevisions.get(e),r.credentialRevision)&&FT(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function qT(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 HT(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 Gm(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 Zm(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=qm)&&nr(t,n)}function GT(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&nr(t,e)}function Bm(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();Zm(e,a);let c=on(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>=DT&&GT(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)},qm),f.expiryTimer.unref?.(),qu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function ZT(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 Xs(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:ZT(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 Wm(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);Xs({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function BT(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=qT(r),i=HT({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=Xs({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),WT({state:e,config:r,domain:n}),{domain:n,...s}}function Vm(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;kr(e);let i=on(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 WT(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 VT(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(Um,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function KT(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();Zm(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 JT(t){let{config:e,pi:r,buffered:n}=t;qu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),qu.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(Um,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function YT(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(ft(n,r)){if(n.name===r.name)return;await ni(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 XT(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=UT(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 QT(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 YT({state:e,config:r,previousConfig:i})}catch(h){throw XT({state:e,config:r,intent:o,rollbackSnapshot:s,cause:h})}let u=e.registryCredentialIntents.get(o.domain);c&&u?.epoch===o.epoch&&e.expectedCredentialDomains.get(r.name)===c&&e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let d=e.expectedCredentialDomains.get(r.name);if(u?.epoch!==o.epoch||u.configFingerprint!==o.configFingerprint||d?.kind!=="domain"||d.domain!==o.domain)return 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),VT({state:e,config:r,pi:n,intent:o});let p=KT({state:e,domain:o.domain,serverName:r.name});return Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&JT({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=BT({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=jT(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 QT({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 hA}from"@augmentcode/auggie-v2";import{homedir as Km}from"node:os";import{sep as eA}from"node:path";var Hu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},tA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,rA=/\\\$\{/g,nA=new Set(["workspaceFolder","augmentToken"]),Jm="${workspaceFolder}";function Ym(t,e){return t.includes(Jm)?t.split(Jm).join(e):t}function Xm(t,e){return t.includes("${")?t.replace(tA,(n,o,i)=>{if(nA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Hu(o)}).replace(rA,"${"):t}function oA(t){return t.startsWith("~")?t==="~"?Km():t.startsWith("~/")||t.startsWith(`~${eA}`)?Km()+t.slice(1):t:t}function Gu(t,e,r){return oA(Xm(Ym(t,e),r))}function Qs(t,e,r){return Xm(Ym(t,e),r)}function Qm(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Qs(i,e,r);return n}var iA="$augment-";function sA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(iA)?i:Qs(i,e,r);return n}function Ht(t,e){let r=process.env;return{...t,url:Qs(t.url,e,r),headers:sA(t.headers,e,r)}}function Gt(t,e){let r=process.env;return{...t,command:Gu(t.command,e,r),args:t.args,env:t.env?Qm(t.env,e,r):void 0,cwd:t.cwd?Gu(t.cwd,e,r):e}}import{readFileSync as dA}from"node:fs";import{logger as aA}from"@hermes/logger";var cA=aA.child({prefix:"pi-mcp"}),kt=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Bn(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 uA(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 Wn(t,e){let r=Bn(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=o.length>0?`${n} ${o.join(" ")}`:n,s=e.name??t;return e.useShellInterpolation===!1&&cA.warn(`MCP server "${s}": useShellInterpolation:false is ignored; settings.json stdio servers always shell-wrap in Wave 1 (V1 json.ts parity)`),{type:"stdio",name:s,disabled:e.disabled,command:i,args:[],env:uA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:!0}}var rg=t=>dA(t,"utf8");function ea(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function eg(t){return ea(t)&&("command"in t||"url"in t)}function Bu(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function tg(t,e){return Bu(t.name)??e}function Zu(t,e){let r=Bn(t);if(r==="http"||r==="sse")return Bu(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return Bu(t.name,t.title,n)??e}function lA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[Zu(n,String(r)),n]});if(ea(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[Zu(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ea(n))return Object.entries(n).map(([o,i])=>{let s=i;return[tg(s,o),s]})}if(eg(t)){let r=t;return[[Zu(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(eg))return Object.entries(t).map(([r,n])=>{if(!ea(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[tg(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 Wu(t){return t instanceof Error?t.message:String(t)}function fA(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}": ${Wu(i)}`});return}}function pA(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=fA(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}: ${Wu(c)}`}),[]}try{return lA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${Wu(c)}`}),[]}}function Vu(t,e=rg){let r={},n=[];for(let o of t)for(let[i,s]of pA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function Ku(t,e=rg){return!t||t.length===0?new Set:new Set(Object.keys(Vu(t,e).servers))}var mA=["global","project","local","managed"];function gA(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 yA(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 vA(t,e,r){let n=Vu(t);r.push(...n.diagnostics);let o=n.servers;if(!e||e.size===0)return o;for(let[i,s]of Object.entries(o)){let a=e.get(i);a!==void 0&&(o[i]={...s,disabled:a})}return o}function _A(t,e,r){let n=hA.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 yA(mA.map(o=>gA(n,o)))}function Vn(t,e,r,n){let o=[],i=r&&r.length>0?vA(r,n,o):_A(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=Wn(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 ug}from"@augmentcode/auggie-v2";import{logger as MA}from"@hermes/logger";import{Type as $A}from"@sinclair/typebox";var ta=Symbol.for("__pi_mcp_state__");function SA(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 wA(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function bA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&SA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&wA(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 RA(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&&bA(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 oi(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 ra(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 CA(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 ng(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function na(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()?CA({state:e,configId:r,generation:n}):ng({state:e,configId:r,generation:n}),s),s=>{throw ng({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[ta])return RA(t[ta]),t[ta];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Zn,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[ta]=e,e}var og=Symbol.for("__hermes_mcp_tool_registry__"),PA=Symbol.for("__hermes_mcp_extension_factory__");function ig(){let t=globalThis;return t[og]??=new Map,t[og]}function Tr(t){ig().set(t.name,t)}function sg(t,e){let r=ig();(e===void 0||r.get(t)===e)&&r.delete(t)}function ag(t){Reflect.set(t,PA,!0)}function oa(t,e,r,n){return r.includes(t)?n.includes(t)?`"${t}" is a built-in tool, not an MCP server. Call it directly.`:`Built-in tool "${t}" is not available (disabled).`:`MCP server "${t}" is not available (status: ${e??"unknown"}).`}function xA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function kA(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 EA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
- `).trim()}function Ju(t,e,r){if(t.isError){let o=EA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=kA(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 cg(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(oa(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=xA(t.params),o=await e.callTool(r,n,t.signal);return Ju(o,t.serverName,r)}var TA=/[^a-zA-Z0-9_-]/g;function Yu(t){return t.replace(TA,"_")}function AA(t,e){let r=Yu(e),n=Yu(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var Ar=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=AA(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=`_${Yu(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var Xu=MA.child({prefix:"pi-mcp"});function ia(){return ee().toolRegistrationsByPi}function dg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=$A.Unsafe(n.inputSchema??{})}catch(c){Xu.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)=>cg({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d})}}function Qu(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),sg(n,i),r.definitionsByName?.delete(n),IA(t,e,n,r,o)}function IA(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 Ar(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=dg({pi:t,serverName:s,tool:d,map:u,namespaced:l});if(!p)return;ug(r,"mcp"),t.registerTool(p),Tr(p),a.definitionsByName??=new Map,a.definitionsByName.set(r,p),e.ownerByToolName.set(r,a),o?t.setActiveTools([...new Set([...t.getActiveTools(),r])]):t.setActiveTools(t.getActiveTools().filter(h=>h!==r));return}}}function OA(t,e){let r=ia(),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)Qu(t,n,i,a);let s={generation:o,host:e,map:new Ar(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function ed(t,e){let{registration:r,replaced:n}=OA(t,e),o=new Set(r.registeredNames),i=new Ar(e.name);r.map=i,r.registeredNames.clear();let s=e.name,a=0,c=[];for(let d of e.listTools()){let{namespaced:l,collision:f}=i.put(d.name);if(f){let h=i.resolve(l),m=`Tool name collision detected in MCP server "${s}": "${d.name}" and "${h}" both map to "${l}". Only the first tool will be available.`,g=ee();g.diagnostics.some(w=>w.server===s&&w.message.includes(`both map to "${l}"`))||(Xu.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=dg({pi:t,serverName:s,tool:d,map:i,namespaced:l});p&&(ug(l,"mcp"),t.registerTool(p),Tr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),ia().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=ia().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&Qu(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&Xu.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function td(t,e,r){let n=ia().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)Qu(t,n,o,i);return n.byServer.delete(e.name),!0}function lg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&ed(t,r)}import{getToolSource as HA}from"@augmentcode/auggie-v2";import{Type as zA}from"@sinclair/typebox";var NA=!1,fg=2e4;function DA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function LA(t){let e=0;for(let r of t.servers.values())e+=jA(r);return e}function jA(t){if(t.status!=="success")return 0;let e=new Ar(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||FA(n.inputSchema)&&(r+=DA(n))}return r}function FA(t){try{return zA.Unsafe(t??{}),!0}catch{return!1}}function UA(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:NA}function qA(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:fg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:fg}function pg(t){return UA(t)?LA(t)>=qA(t):!1}var GA="AUGGIE_ENABLE_TOOL_SEARCH",ZA=new Set(["find-tool","execute-tool","attach-mcp-server"]);function ii(){return process.env[GA]==="1"}function Kn(t){return ii()||t.toolSearchLatched?!0:pg(t)?(t.toolSearchLatched=!0,!0):!1}function sa(t){let e=t.getActiveTools(),r=e.filter(n=>!BA(n)||ZA.has(n));r.length!==e.length&&t.setActiveTools(r)}function BA(t){return HA(t)==="mcp"}import{setToolSource as wg}from"@augmentcode/auggie-v2";import{logger as fM}from"@hermes/logger";import{Type as bg}from"@sinclair/typebox";import{logger as WA}from"@hermes/logger";var si={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},sn={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var hg=WA.child({prefix:"pi-mcp"}),VA=5e3,KA=1,JA=2,YA=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),XA=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function QA(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 eM(t){return t===KA||typeof t=="string"&&YA.has(t)?"available":t===JA||typeof t=="string"&&XA.has(t)?"opt_in_required":"unknown"}function tM(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:QA(t.auth_type),state:eM(t.state)}}function rd(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 an(t){return(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!rd(t,r))}async function mg(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:sn.UNSPECIFIED}),signal:AbortSignal.timeout(r??VA)});if(!i.ok)return hg.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=tM(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return hg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var rM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",nM=`You are a tool search assistant. Given a user's query and a list of available tools, identify the single best matching tool.
8
+ deps: ${r}}`};var h1={keyword:"dependencies",type:"object",schemaType:"object",error:Yt.error,code(t){let[e,r]=m1(t);_C(t,e),SC(t,r)}};function m1({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let o=Array.isArray(t[n])?e:r;o[n]=t[n]}return[e,r]}function _C(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let s in e){let a=e[s];if(a.length===0)continue;let c=(0,ws.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,ws.checkReportMissingProp)(t,u)}):(r.if((0,$p._)`${c} && (${(0,ws.checkMissingProp)(t,a,i)})`),(0,ws.reportMissingProp)(t,i),r.else())}}Yt.validatePropertyDeps=_C;function SC(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,s=r.name("valid");for(let a in e)(0,p1.alwaysValidSchema)(i,e[a])||(r.if((0,ws.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=SC;Yt.default=h1});var RC=C(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var bC=L(),g1=B(),y1={message:"property name must be valid",params:({params:t})=>(0,bC._)`{propertyName: ${t.propertyName}}`},v1={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:y1,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,g1.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,bC.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Ip.default=v1});var zp=C(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var Oc=wt(),zt=L(),_1=fr(),zc=B(),S1={message:"must NOT have additional properties",params:({params:t})=>(0,zt._)`{additionalProperty: ${t.additionalProperty}}`},w1={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:S1,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:s}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,zc.alwaysValidSchema)(s,r))return;let u=(0,Oc.allSchemaProperties)(n.properties),d=(0,Oc.allSchemaProperties)(n.patternProperties);l(),t.ok((0,zt._)`${i} === ${_1.default.errors}`);function l(){e.forIn("key",o,g=>{!u.length&&!d.length?h(g):e.if(f(g),()=>h(g))})}function f(g){let v;if(u.length>8){let w=(0,zc.schemaRefOrVal)(s,n.properties,"properties");v=(0,Oc.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,Oc.usePattern)(t,w)}.test(${g})`))),(0,zt.not)(v)}function p(g){e.code((0,zt._)`delete ${o}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,zc.alwaysValidSchema)(s,r)){let v=e.name("valid");c.removeAdditional==="failing"?(m(g,v,!1),e.if((0,zt.not)(v),()=>{t.reset(),p(g)})):(m(g,v),a||e.if((0,zt.not)(v),()=>e.break()))}}function m(g,v,w){let b={keyword:"additionalProperties",dataProp:g,dataPropType:zc.Type.Str};w===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};Op.default=w1});var xC=C(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var b1=as(),CC=wt(),Np=B(),PC=zp(),R1={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&&PC.default.code(new b1.KeywordCxt(i,PC.default,"additionalProperties"));let s=(0,CC.allSchemaProperties)(r);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=Np.mergeEvaluated.props(e,(0,Np.toHash)(s),i.props));let a=s.filter(l=>!(0,Np.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,CC.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)}}};Dp.default=R1});var AC=C(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var kC=wt(),Nc=L(),EC=B(),TC=B(),C1={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,kC.allSchemaProperties)(r),c=a.filter(m=>(0,EC.alwaysValidSchema)(i,r[m]));if(a.length===0||c.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,d=e.name("valid");i.props!==!0&&!(i.props instanceof Nc.Name)&&(i.props=(0,TC.evaluatedPropsToName)(e,i.props));let{props:l}=i;f();function f(){for(let m of a)u&&p(m),i.allErrors?h(m):(e.var(d,!0),h(m),e.if(d))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,EC.checkStrictMode)(i,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){e.forIn("key",n,g=>{e.if((0,Nc._)`${(0,kC.usePattern)(t,m)}.test(${g})`,()=>{let v=c.includes(m);v||t.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:TC.Type.Str},d),i.opts.unevaluated&&l!==!0?e.assign((0,Nc._)`${l}[${g}]`,!0):!v&&!i.allErrors&&e.if((0,Nc.not)(d),()=>e.break())})})}}};Lp.default=C1});var MC=C(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var P1=B(),x1={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,P1.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};jp.default=x1});var $C=C(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var k1=wt(),E1={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:k1.validateUnion,error:{message:"must match a schema in anyOf"}};Fp.default=E1});var IC=C(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var Dc=L(),T1=B(),A1={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Dc._)`{passingSchemas: ${t.passing}}`},M1={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:A1,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,T1.alwaysValidSchema)(o,d)?e.var(c,!0):f=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Dc._)`${c} && ${s}`).assign(s,!1).assign(a,(0,Dc._)`[${a}, ${l}]`).else(),e.if(c,()=>{e.assign(s,!0),e.assign(a,l),f&&t.mergeEvaluated(f,Dc.Name)})})}}};Up.default=M1});var OC=C(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var $1=B(),I1={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,$1.alwaysValidSchema)(n,i))return;let a=t.subschema({keyword:"allOf",schemaProp:s},o);t.ok(o),t.mergeEvaluated(a)})}};qp.default=I1});var DC=C(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var Lc=L(),NC=B(),O1={message:({params:t})=>(0,Lc.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Lc._)`{failingKeyword: ${t.ifClause}}`},z1={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:O1,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,NC.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=zC(n,"then"),i=zC(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,Lc.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,Lc._)`${d}`):t.setParams({ifClause:d})}}}};function zC(t,e){let r=t.schema[e];return r!==void 0&&!(0,NC.alwaysValidSchema)(t,r)}Hp.default=z1});var LC=C(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var N1=B(),D1={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,N1.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Gp.default=D1});var jC=C(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var L1=kp(),j1=mC(),F1=Ep(),U1=yC(),q1=vC(),H1=wC(),G1=RC(),Z1=zp(),B1=xC(),W1=AC(),V1=MC(),K1=$C(),J1=IC(),Y1=OC(),X1=DC(),Q1=LC();function eF(t=!1){let e=[V1.default,K1.default,J1.default,Y1.default,X1.default,Q1.default,G1.default,Z1.default,H1.default,B1.default,W1.default];return t?e.push(j1.default,U1.default):e.push(L1.default,F1.default),e.push(q1.default),e}Zp.default=eF});var FC=C(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var we=L(),tF={message:({schemaCode:t})=>(0,we.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,we._)`{format: ${t}}`},rF={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:tF,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:s,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:d,self:l}=a;if(!c.validateFormats)return;o?f():p();function f(){let h=r.scopeValue("formats",{ref:l.formats,code:c.code.formats}),m=r.const("fDef",(0,we._)`${h}[${s}]`),g=r.let("fType"),v=r.let("format");r.if((0,we._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(g,(0,we._)`${m}.type || "string"`).assign(v,(0,we._)`${m}.validate`),()=>r.assign(g,(0,we._)`"string"`).assign(v,m)),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._)`(${m}.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 h=l.formats[i];if(!h){w();return}if(h===!0)return;let[m,g,v]=b(h);m===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 h=="object"&&!(h instanceof RegExp)&&h.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})`}}}};Bp.default=rF});var UC=C(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var nF=FC(),oF=[nF.default];Wp.default=oF});var qC=C(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.contentVocabulary=To.metadataVocabulary=void 0;To.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];To.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var GC=C(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var iF=YR(),sF=lC(),aF=jC(),cF=UC(),HC=qC(),uF=[iF.default,sF.default,(0,aF.default)(),cF.default,HC.metadataVocabulary,HC.contentVocabulary];Vp.default=uF});var BC=C(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.DiscrError=void 0;var ZC;(function(t){t.Tag="tag",t.Mapping="mapping"})(ZC||(jc.DiscrError=ZC={}))});var VC=C(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var Ao=L(),Kp=BC(),WC=Sc(),dF=cs(),lF=B(),fF={message:({params:{discrError:t,tagName:e}})=>t===Kp.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Ao._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},pF={keyword:"discriminator",type:"object",schemaType:"object",error:fF,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,Ao._)`${r}${(0,Ao.getProperty)(a)}`);e.if((0,Ao._)`typeof ${u} == "string"`,()=>d(),()=>t.error(!1,{discrError:Kp.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function d(){let p=f();e.if(!1);for(let h in p)e.elseIf((0,Ao._)`${u} === ${h}`),e.assign(c,l(p[h]));e.else(),t.error(!1,{discrError:Kp.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function l(p){let h=e.name("valid"),m=t.subschema({keyword:"oneOf",schemaProp:p},h);return t.mergeEvaluated(m,Ao.Name),h}function f(){var p;let h={},m=v(o),g=!0;for(let x=0;x<s.length;x++){let S=s[x];if(S?.$ref&&!(0,lF.schemaHasRulesButRef)(S,i.self.RULES)){let I=S.$ref;if(S=WC.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,I),S instanceof WC.SchemaEnv&&(S=S.schema),S===void 0)throw new dF.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&&(m||v(S)),w(R,x)}if(!g)throw new Error(`discriminator: "${a}" must be required`);return h;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 h)throw new Error(`discriminator: "${a}" values must be unique strings`);h[x]=S}}}};Jp.default=pF});var KC=C((u3,hF)=>{hF.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 Xp=C((le,Yp)=>{"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 mF=ZR(),gF=GC(),yF=VC(),JC=KC(),vF=["/properties"],Fc="http://json-schema.org/draft-07/schema",Mo=class extends mF.default{_addVocabularies(){super._addVocabularies(),gF.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(yF.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(JC,vF):JC;this.addMetaSchema(e,Fc,!1),this.refs["http://json-schema.org/schema"]=Fc}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Fc)?Fc:void 0)}};le.Ajv=Mo;Yp.exports=le=Mo;Yp.exports.Ajv=Mo;Object.defineProperty(le,"__esModule",{value:!0});le.default=Mo;var _F=as();Object.defineProperty(le,"KeywordCxt",{enumerable:!0,get:function(){return _F.KeywordCxt}});var $o=L();Object.defineProperty(le,"_",{enumerable:!0,get:function(){return $o._}});Object.defineProperty(le,"str",{enumerable:!0,get:function(){return $o.str}});Object.defineProperty(le,"stringify",{enumerable:!0,get:function(){return $o.stringify}});Object.defineProperty(le,"nil",{enumerable:!0,get:function(){return $o.nil}});Object.defineProperty(le,"Name",{enumerable:!0,get:function(){return $o.Name}});Object.defineProperty(le,"CodeGen",{enumerable:!0,get:function(){return $o.CodeGen}});var SF=vc();Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return SF.default}});var wF=cs();Object.defineProperty(le,"MissingRefError",{enumerable:!0,get:function(){return wF.default}})});var oP=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(eP,rh),time:Xt(eh(!0),nh),"date-time":Xt(YC(!0),rP),"iso-time":Xt(eh(),tP),"iso-date-time":Xt(YC(),nP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:kF,"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:OF,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:EF,int32:{type:"number",validate:MF},int64:{type:"number",validate:$F},float:{type:"number",validate:QC},double:{type:"number",validate:QC},password:!0,binary:!0};Qt.fastFormats={...Qt.fullFormats,date:Xt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,rh),time:Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,nh),"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,rP),"iso-time":Xt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,tP),"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,nP),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 bF(t){return t%4===0&&(t%100!==0||t%400===0)}var RF=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,CF=[0,31,28,31,30,31,30,31,31,30,31,30,31];function eP(t){let e=RF.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&&bF(r)?29:CF[n])}function rh(t,e){if(t&&e)return t>e?1:t<e?-1:0}var Qp=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function eh(t){return function(r){let n=Qp.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 nh(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function tP(t,e){if(!(t&&e))return;let r=Qp.exec(t),n=Qp.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 th=/t|\s/i;function YC(t){let e=eh(t);return function(n){let o=n.split(th);return o.length===2&&eP(o[0])&&e(o[1])}}function rP(t,e){if(!(t&&e))return;let r=new Date(t).valueOf(),n=new Date(e).valueOf();if(r&&n)return r-n}function nP(t,e){if(!(t&&e))return;let[r,n]=t.split(th),[o,i]=e.split(th),s=rh(r,o);if(s!==void 0)return s||nh(n,i)}var PF=/\/|:/,xF=/^(?:[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 kF(t){return PF.test(t)&&xF.test(t)}var XC=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function EF(t){return XC.lastIndex=0,XC.test(t)}var TF=-(2**31),AF=2**31-1;function MF(t){return Number.isInteger(t)&&t<=AF&&t>=TF}function $F(t){return Number.isInteger(t)}function QC(){return!0}var IF=/[^\\]\\Z/;function OF(t){if(IF.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var iP=C(Io=>{"use strict";Object.defineProperty(Io,"__esModule",{value:!0});Io.formatLimitDefinition=void 0;var zF=Xp(),Nt=L(),Vr=Nt.operators,Uc={formatMaximum:{okStr:"<=",ok:Vr.LTE,fail:Vr.GT},formatMinimum:{okStr:">=",ok:Vr.GTE,fail:Vr.LT},formatExclusiveMaximum:{okStr:"<",ok:Vr.LT,fail:Vr.GTE},formatExclusiveMinimum:{okStr:">",ok:Vr.GT,fail:Vr.LTE}},NF={message:({keyword:t,schemaCode:e})=>(0,Nt.str)`should be ${Uc[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Nt._)`{comparison: ${Uc[t].okStr}, limit: ${e}}`};Io.formatLimitDefinition={keyword:Object.keys(Uc),type:"string",schemaType:"string",$data:!0,error:NF,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 zF.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 h=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(h))}function l(f){return(0,Nt._)`${f}.compare(${r}, ${n}) ${Uc[o].fail} 0`}},dependencies:["format"]};var DF=t=>(t.addKeyword(Io.formatLimitDefinition),t);Io.default=DF});var uP=C((bs,cP)=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});var Oo=oP(),LF=iP(),oh=L(),sP=new oh.Name("fullFormats"),jF=new oh.Name("fastFormats"),ih=(t,e={keywords:!0})=>{if(Array.isArray(e))return aP(t,e,Oo.fullFormats,sP),t;let[r,n]=e.mode==="fast"?[Oo.fastFormats,jF]:[Oo.fullFormats,sP],o=e.formats||Oo.formatNames;return aP(t,o,r,n),e.keywords&&(0,LF.default)(t),t};ih.get=(t,e="full")=>{let n=(e==="fast"?Oo.fastFormats:Oo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function aP(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,oh._)`require("ajv-formats/dist/formats").${n}`);for(let s of e)t.addFormat(s,r[s])}cP.exports=bs=ih;Object.defineProperty(bs,"__esModule",{value:!0});bs.default=ih});var LP=C((Z3,DP)=>{DP.exports=NP;NP.sync=yU;var OP=wr("fs");function gU(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 zP(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:gU(e,r)}function NP(t,e,r){OP.stat(t,function(n,o){r(n,n?!1:zP(o,t,e))})}function yU(t,e){return zP(OP.statSync(t),t,e)}});var HP=C((B3,qP)=>{qP.exports=FP;FP.sync=vU;var jP=wr("fs");function FP(t,e,r){jP.stat(t,function(n,o){r(n,n?!1:UP(o,e))})}function vU(t,e){return UP(jP.statSync(t),e)}function UP(t,e){return t.isFile()&&_U(t,e)}function _U(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 ZP=C((V3,GP)=>{var W3=wr("fs"),Xc;process.platform==="win32"||global.TESTING_WINDOWS?Xc=LP():Xc=HP();GP.exports=Ch;Ch.sync=SU;function Ch(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){Ch(t,e||{},function(i,s){i?o(i):n(s)})})}Xc(t,e||{},function(n,o){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function SU(t,e){try{return Xc.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var XP=C((K3,YP)=>{var qo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",BP=wr("path"),wU=qo?";":":",WP=ZP(),VP=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),KP=(t,e)=>{let r=e.colon||wU,n=t.match(/\//)||qo&&t.match(/\\/)?[""]:[...qo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],o=qo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=qo?o.split(r):[""];return qo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},JP=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:o,pathExtExe:i}=KP(t,e),s=[],a=u=>new Promise((d,l)=>{if(u===n.length)return e.all&&s.length?d(s):l(VP(t));let f=n[u],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=BP.join(p,t),m=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;d(c(m,u,0))}),c=(u,d,l)=>new Promise((f,p)=>{if(l===o.length)return f(a(d+1));let h=o[l];WP(u+h,{pathExt:i},(m,g)=>{if(!m&&g)if(e.all)s.push(u+h);else return f(u+h);return f(c(u,d,l+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},bU=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=KP(t,e),i=[];for(let s=0;s<r.length;s++){let a=r[s],c=/^".*"$/.test(a)?a.slice(1,-1):a,u=BP.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(WP.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 VP(t)};YP.exports=JP;JP.sync=bU});var ex=C((J3,Ph)=>{"use strict";var QP=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ph.exports=QP;Ph.exports.default=QP});var ox=C((Y3,nx)=>{"use strict";var tx=wr("path"),RU=XP(),CU=ex();function rx(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=RU.sync(t.command,{path:r[CU({env:r})],pathExt:e?tx.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return s&&(s=tx.resolve(o?t.options.cwd:"",s)),s}function PU(t){return rx(t)||rx(t,!0)}nx.exports=PU});var ix=C((X3,kh)=>{"use strict";var xh=/([()\][%!^"`<>&|;, *?])/g;function xU(t){return t=t.replace(xh,"^$1"),t}function kU(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(xh,"^$1"),e&&(t=t.replace(xh,"^$1")),t}kh.exports.command=xU;kh.exports.argument=kU});var ax=C((Q3,sx)=>{"use strict";sx.exports=/^#!(.*)/});var ux=C((e8,cx)=>{"use strict";var EU=ax();cx.exports=(t="")=>{let e=t.match(EU);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var lx=C((t8,dx)=>{"use strict";var Eh=wr("fs"),TU=ux();function AU(t){let r=Buffer.alloc(150),n;try{n=Eh.openSync(t,"r"),Eh.readSync(n,r,0,150,0),Eh.closeSync(n)}catch{}return TU(r.toString())}dx.exports=AU});var mx=C((r8,hx)=>{"use strict";var MU=wr("path"),fx=ox(),px=ix(),$U=lx(),IU=process.platform==="win32",OU=/\.(?:com|exe)$/i,zU=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function NU(t){t.file=fx(t);let e=t.file&&$U(t.file);return e?(t.args.unshift(t.file),t.command=e,fx(t)):t.file}function DU(t){if(!IU)return t;let e=NU(t),r=!OU.test(e);if(t.options.forceShell||r){let n=zU.test(e);t.command=MU.normalize(t.command),t.command=px.command(t.command),t.args=t.args.map(i=>px.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 LU(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:DU(n)}hx.exports=LU});var vx=C((n8,yx)=>{"use strict";var Th=process.platform==="win32";function Ah(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(!Th)return;let r=t.emit;t.emit=function(n,o){if(n==="exit"){let i=gx(o,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function gx(t,e){return Th&&t===1&&!e.file?Ah(e.original,"spawn"):null}function FU(t,e){return Th&&t===1&&!e.file?Ah(e.original,"spawnSync"):null}yx.exports={hookChildProcess:jU,verifyENOENT:gx,verifyENOENTSync:FU,notFoundError:Ah}});var wx=C((o8,Ho)=>{"use strict";var _x=wr("child_process"),Mh=mx(),$h=vx();function Sx(t,e,r){let n=Mh(t,e,r),o=_x.spawn(n.command,n.args,n.options);return $h.hookChildProcess(o,n),o}function UU(t,e,r){let n=Mh(t,e,r),o=_x.spawnSync(n.command,n.args,n.options);return o.error=o.error||$h.verifyENOENTSync(o.status,n),o}Ho.exports=Sx;Ho.exports.spawn=Sx;Ho.exports.sync=UU;Ho.exports._parse=Mh;Ho.exports._enoent=$h});var kx=C(Oh=>{"use strict";var Cx=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,BU=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,Px=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,WU=/\\([\u000b\u0020-\u00ff])/g,VU=/([\\"])/g,xx=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Oh.format=KU;Oh.parse=JU;function KU(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!xx.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],!Px.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+XU(e[o])}return n}function JU(t){if(!t)throw new TypeError("argument string is required");var e=typeof t=="object"?YU(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(!xx.test(n))throw new TypeError("invalid media type");var o=new QU(n.toLowerCase());if(r!==-1){var i,s,a;for(Cx.lastIndex=r;s=Cx.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(WU,"$1"))),o.parameters[i]=a}if(r!==e.length)throw new TypeError("invalid parameter format")}return o}function YU(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 XU(t){var e=String(t);if(Px.test(e))return e;if(e.length>0&&!BU.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(VU,"\\$1")+'"'}function QU(t){this.parameters=Object.create(null),this.type=t}});import{logger as E2}from"@hermes/logger";import{logger as wH}from"@hermes/logger";var sT="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(sT,r>0?e.theme.fg("warning",`[${r} MCP needs auth, use /mcp]`):void 0)}import{MCP_CONNECTION_STATE_TOPIC as Vq}from"@augmentcode/auggie-v2";import{logger as Kq}from"@hermes/logger";import{logger as NT}from"@hermes/logger";import{logger as cT}from"@hermes/logger";function aT(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":aT(t,e,r)?"plugin":"local"}function uT(t){let e=t.getLastProbeResult();return e!==void 0&&!e.ok&&e.outcome==="authFailure"?e:void 0}var Tm=cT.child({prefix:"pi-mcp"}),dT="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 Xo(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 lT(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 Js=3e4;function fT(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>=Js?"failed":void 0}default:return}}var Am="authentication required",pT="Authentication refresh is pending in the backend; retry shortly.",hT="timed out connecting after 30s",mT="Couldn't add this MCP server: its configuration could not be loaded from the MCP registry. Remove it and try again.",gT="Couldn't add this MCP server: another connected server already uses this name. Remove or rename one of them, then try again.",yT="Server was selected for this session but could not be loaded (it may be disabled or misconfigured in the MCP registry).",vT="Server was not loaded: another selected MCP server with the same name takes precedence. Rename or deselect one of them.",_T="Server requires re-authentication \u2014 its saved credential is no longer valid. Reconnect it from the session MCP panel.",ST="Server was not started: this session's Space policy does not allow it.",wT="Server was not started: its shared credential is not available to this session's identity.",bT="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 RT(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)?gT:mT,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",...PT({state:t,id:a,name:c,reportedNames:o}),mcpConfigId:a}),o.add(c))}CT({state:t,servers:e,liveConfigIds:r,reportedConfigIds:n,reportedNames:o,idlessReportedNames:i})}function CT(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=$m(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 Mm(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 $m(t,e){switch(t.oauthFailureCategoriesByConfigId?.get(e)?.category){case"reauth_required":case"auth_terminal":return{errorMessage:_T,failureCategory:"auth_terminal"};case"policy_excluded":return{errorMessage:ST,failureCategory:"policy_excluded"};case"share_identity_excluded":return{errorMessage:wT,failureCategory:"share_identity_excluded"};default:return}}function PT(t){let{state:e,id:r,name:n,reportedNames:o}=t;if(e.authFallbackDisplacedConfigIds.has(r))return{errorMessage:bT,failureCategory:"auth_terminal"};let i=$m(e,r);return i!==void 0?i:{errorMessage:o.has(n)?vT:yT,failureCategory:"configuration"}}function xT(t,e){return e!==void 0?e.isAuthError?Am:e.error:t.status==="initializing"?hT:t.lastError??(t.status==="auth_required"?Am:void 0)}function kT(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 ET(t,e){let r=fT(t);if(r===void 0)return;let n=lT(e,t.name),o=r==="connected"?uT(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.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=kT(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"?pT:xT(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 TT(t){let e=[];for(let r of t.servers.values()){let n=ET(r,t);n!==void 0&&e.push(n)}return RT(t,e),e}function j(t,e){try{let r=TT(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(dT,o),Tm.info(`Emitted MCP status report: ${r.length} server(s)`)}catch(r){Tm.warn(`Failed to emit MCP status report: ${r instanceof Error?r.message:String(r)}`)}}var Ys={local:4,registry:3,plugin:2,vfs:1};function Ut(t){return t.hostLeases??=new Map,t.hostLeases}function AT(t){return t.hostLeaseRevisions??=new Map,t.hostLeaseRevisions}function Qo(t){return t.expectedCredentialDomains??=new Map,t.expectedCredentialDomains}function ei(t,e){return t.kind===e.kind&&t.identity===e.identity}function Im(t){if(!t.host)return t.retirement;let e=()=>{},r=new Promise(n=>{e=n});return{incumbent:{owner:t.owner,revision:t.revision,host:t.host},teardown:r,settled:!1,resolve:e}}function zu(t,e){let r=AT(t),n=(r.get(e)??0)+1;return r.set(e,n),n}function Xs(t,e,r){if(r.kind==="registry"){Qo(t).set(e,{kind:"domain",domain:r.identity});return}Qo(t).set(e,{kind:"blocked"})}function Nu(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:zu(t,e),host:r,connectionEpoch:t.mcpConnectionEpoch};return n.set(e,c),Xs(t,e,a),c}function Om(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:zu(e,r),host:n};return o.set(r,s),e.pluginServerNames.add(r),e.pluginServerHosts.set(r,n),Xs(e,r,s.owner),s}function ti(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=Ys[n.kind]>Ys[a.owner.kind],f=Ys[n.kind]===Ys[a.owner.kind],p=o===a.revision&&(i===void 0||i===a.host);if(!(l||f&&p))return}let c=a?.host,u=a?Im(a):void 0;Nu(e,r,c),a?.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r));let d={owner:n,connectionEpoch:e.mcpConnectionEpoch,revision:zu(e,r),host:void 0,...u?{retirement:u}:{}};return s.set(r,d),Xs(e,r,n),{lease:d,...c?{displacedHost:c}:{},...u?{retirement:u}:{}}}async function Du(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,Qo(e).set(r,{kind:"blocked"})):s.retirement=void 0),n.resolve(o),!0}function Qs(t){let{state:e,name:r,owner:n,revision:o,host:i}=t,s=Ut(e).get(r);return!s||s.revision!==o||!ei(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||!ei(s.owner,n)||s.host!==i||s.retirement!==void 0)return;let a=Im(s);if(a)return Nu(e,r,i),s.host=void 0,s.retirement=a,a}function zm(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||!ei(o.incumbent.owner,n)||a?.status!=="failed"||a.transportDisposed!==!0?!1:(s.retirement=void 0,!ei(s.owner,n)||s.revision!==o.incumbent.revision?(Xs(e,r,s.owner),!0):(i.delete(r),Qo(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||!ei(a.owner,n)||a.host!==i||a.retirement!==void 0?!1:(Nu(e,r,a.host),a.owner.kind==="plugin"&&(e.pluginServerNames.delete(r),e.pluginServerHosts.delete(r)),s.delete(r),Qo(e).set(r,{kind:"blocked"}),!0)}function N(t,e){return Ut(t).get(e)}function Lu(t,e,r){let n=Ut(t).get(e);return n?.host===r&&(n.owner.kind!=="registry"||n.connectionEpoch===t.mcpConnectionEpoch)}function Nm(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&&Nm(t.url)===Nm(e.url)&&t.registrySource===e.registrySource&&t.vfsSource===e.vfsSource}var Zn=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 ni(t,e){t.authenticatingServerName===e&&(t.authenticationGeneration=(t.authenticationGeneration??0)+1,t.authenticating=!1,t.authenticatingServerName=void 0)}function ju(t){try{return new URL(t).toString()}catch{return t}}function ri(t){if(!(t.type!=="http"&&t.type!=="sse"))return{id:t.id,name:t.name,type:t.type,url:ju(t.url),auth:t.auth,registrySource:t.registrySource,vfsSource:t.vfsSource}}function qt(t,e){return ri(e.config)}function ft(t,e){return t.type!==e.type||t.id!==e.id?!1:t.type==="stdio"||e.type==="stdio"?!0:ju(t.url)===ju(e.url)}function Fu(t,e){let r=ri(t),n=ri(e);return!r||!n?ft(t,e):Cr(r,n)}function Uu(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function MT(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 $T(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 Dm(t){let{identity:e,retiredConfigId:r,retiredOwnerIdentity:n}=t;return r!==void 0?!Uu(e,r):n!==void 0&&e!==n}function Lm(t,e,r){return r&&e!==void 0&&t!==void 0&&Uu(t,e)}function IT(t){let{acceptedDomain:e,currentDomain:r,retiredConfigId:n,retiresRegistryIdentity:o}=t;return!o||n===void 0?!1:[e,r].some(i=>i!==void 0&&!Uu(i,n))}function jm(t){let{currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n,retiresRegistryIdentity:o,currentLease:i,expectedFence:s,retiredConfigId:a,retiredOwnerIdentity:c,acceptedDomain:u,currentDomain:d}=t;if($T({currentConfig:e,retiredConfig:r,expectedRegistryConfigId:n}))return!0;let l={retiredConfigId:a,retiredOwnerIdentity:c};return o&&i!==void 0&&(i.owner.kind!=="registry"||Dm({identity:i.owner.identity,...l}))||o&&s?.kind==="domain"&&Dm({identity:s.domain,...l})?!0:IT({acceptedDomain:u,currentDomain:d,retiredConfigId:a,retiresRegistryIdentity:o})}function OT(t){let{name:e,retiredConfig:r,expectedRegistryConfigId:n}=t;if(r)return ri(r);if(n!==void 0)return{id:n,name:e}}function zT(t){let{state:e,name:r,mode:n,stillOwnsNameScopedRevision:o,retiredConfig:i}=t;if(n==="durable"){e.preservedCredentialIdentities?.delete(r);return}!o||!i||!ri(i)||!e.tokens?.get(r)||(e.preservedCredentialIdentities??=new Map,e.preservedCredentialIdentities.set(r,{...i}))}async function Fm(t,e,r,n,o){let i=t.oauthCredentialDomains?.get(e),s=t.credentialRevisions?.get(e)?.domain,a=t.servers?.get(e)?.config,c=MT({state:t,name:e,expectedRegistryConfigId:r,expectedConfig:n,currentConfig:a}),u=c?.id??r,d=c?.registrySource!==void 0||c===void 0&&r!==void 0,l=c?.registrySource===void 0?void 0:`user:${c.id??c.name}`,f=jm({currentConfig:a,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:i,currentDomain:s}),p=Lm(i,u,d),h=Lm(s,u,d),m=!f,g=t.tokens?.get(e)!==void 0&&i===void 0&&s===void 0,w=f&&!(m||p||h||g);if(o==="durable"){let R=OT({name:e,retiredConfig:c,expectedRegistryConfigId:r});await t.tokens?.retireCredential(e,R,{preserveNameState:w})}let b=jm({currentConfig:t.servers?.get(e)?.config,retiredConfig:c,expectedRegistryConfigId:r,retiresRegistryIdentity:d,currentLease:t.hostLeases?.get(e),expectedFence:t.expectedCredentialDomains?.get(e),retiredConfigId:u,retiredOwnerIdentity:l,acceptedDomain:t.oauthCredentialDomains?.get(e),currentDomain:t.credentialRevisions?.get(e)?.domain}),x=m&&!b,S=!1;return t.equalRevisionRebindDomains?.delete(e),(x||p)&&t.oauthCredentialDomains?.get(e)===i&&(t.oauthCredentialDomains.delete(e),S=!0),(x||h)&&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"}),zT({state:t,name:e,mode:o,stillOwnsNameScopedRevision:x,retiredConfig:c}),S&&(ni(t,e),it(t,e),t.authRefreshNeededReportKeys?.delete(e)),x}function pt(t,e,r,n){return Fm(t,e,r,n,"durable")}function oi(t,e,r,n){return Fm(t,e,r,n,"session")}function Um(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 qm="augment:mcp-oauth-credentials",Hm=300*1e3,DT=256,qu=NT.child({prefix:"pi-mcp"}),xt=class extends Error{constructor(e){super(e),this.name="RegistryCredentialRetirementError"}};function at(t){return`user:${t}`}function nn(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 on(t){return t.ownerDomain??xr(t.domain)}function Gm(t,e,r){let n=at(e);return r!==void 0?r===n:ct(t)||xr(t)===n}function LT(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain&&t?.ownerDomain===e?.ownerDomain}function jT(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 FT(t,e){return t?.kind===e?.kind&&(t?.kind!=="domain"||e?.kind==="domain"&&t.domain===e.domain)}function UT(t,e,r){return t.oauthCredentialDomains.get(e)===r.acceptedDomain&&LT(t.credentialRevisions.get(e),r.credentialRevision)&&FT(t.expectedCredentialDomains.get(e),r.expectedDomain)&&t.statusFailureCategories.get(e)===r.failure}function qT(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 HT(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 Zm(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 Bm(t,e){let r=t.bootOAuthCredentialBuffer;if(r)for(let[n,o]of r)(o.connectionEpoch!==t.mcpConnectionEpoch||e-o.insertedAtMs>=Hm)&&nr(t,n)}function GT(t){let e=t.bootOAuthCredentialBuffer?.keys().next().value;typeof e=="string"&&nr(t,e)}function Wm(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();Bm(e,a);let c=on(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>=DT&&GT(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)},Hm),f.expiryTimer.unref?.(),qu.warn(`MCP OAuth credential for "${r}" arrived before its server was known; buffered for replay after discovery`)}function ZT(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 ea(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:ZT(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 Vm(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);ea({state:t,domain:r,forceNew:n?.configFingerprint===void 0})}}function BT(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=qT(r),i=HT({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=ea({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),WT({state:e,config:r,domain:n}),{domain:n,...s}}function Km(t){let{state:e,revision:r,credential:n,suppressReconnect:o}=t;kr(e);let i=on(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 WT(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 VT(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(qm,i.suppressReconnect?{credentials:s,suppressReconnect:!0}:s)}function KT(t){let{state:e,domain:r,serverName:n}=t,o=Date.now();Bm(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 JT(t){let{config:e,pi:r,buffered:n}=t;qu.info(`Replaying boot-buffered MCP OAuth credential for "${e.name}"`),qu.info("MCP OAuth boot credential replayed",{hasRegistryConfigId:e.id!==void 0,registryOwned:e.registrySource!==void 0,visibility:"public"});let o={[e.name]:n.credential};r.events.emit(qm,n.suppressReconnect?{credentials:o,suppressReconnect:!0}:o)}async function YT(t){let{state:e,config:r,previousConfig:n}=t;if(!n)return;if(ft(n,r)){if(n.name===r.name)return;await oi(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 XT(t){let{state:e,config:r,intent:n,rollbackSnapshot:o,cause:i}=t;if(e.registryCredentialIntents.get(n.domain)?.epoch===n.epoch){let c=UT(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 QT(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 YT({state:e,config:r,previousConfig:i})}catch(h){throw XT({state:e,config:r,intent:o,rollbackSnapshot:s,cause:h})}let u=e.registryCredentialIntents.get(o.domain);c&&u?.epoch===o.epoch&&e.expectedCredentialDomains.get(r.name)===c&&e.expectedCredentialDomains.set(r.name,{kind:"domain",domain:o.domain});let d=e.expectedCredentialDomains.get(r.name);if(u?.epoch!==o.epoch||u.configFingerprint!==o.configFingerprint||d?.kind!=="domain"||d.domain!==o.domain)return 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),VT({state:e,config:r,pi:n,intent:o});let p=KT({state:e,domain:o.domain,serverName:r.name});return Ke({state:e,domain:o.domain,epoch:o.epoch,preserveFence:!0}),p&&JT({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=BT({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=jT(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 QT({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 fA}from"@augmentcode/auggie-v2";import{homedir as Jm}from"node:os";import{sep as eA}from"node:path";var Hu=class extends Error{variableName;constructor(e){super(`Missing environment variable "${e}"`),this.name="EnvVariableExpansionError",this.variableName=e}},tA=/(?<!\\)\$\{([a-zA-Z_][a-zA-Z0-9_]*)(?::-([\s\S]*?))?\}/g,rA=/\\\$\{/g,nA=new Set(["workspaceFolder","augmentToken"]),Ym="${workspaceFolder}";function Xm(t,e){return t.includes(Ym)?t.split(Ym).join(e):t}function Qm(t,e){return t.includes("${")?t.replace(tA,(n,o,i)=>{if(nA.has(o))return n;let s=e[o];if(s!==void 0)return s;if(i!==void 0)return i;throw new Hu(o)}).replace(rA,"${"):t}function oA(t){return t.startsWith("~")?t==="~"?Jm():t.startsWith("~/")||t.startsWith(`~${eA}`)?Jm()+t.slice(1):t:t}function Gu(t,e,r){return oA(Qm(Xm(t,e),r))}function Bn(t,e,r){return Qm(Xm(t,e),r)}function eg(t,e,r){let n={};for(let[o,i]of Object.entries(t))n[o]=Bn(i,e,r);return n}var iA="$augment-";function sA(t,e,r){if(!t)return;let n={};for(let[o,i]of Object.entries(t))n[o]=i.startsWith(iA)?i:Bn(i,e,r);return n}function Ht(t,e){let r=process.env;return{...t,url:Bn(t.url,e,r),headers:sA(t.headers,e,r)}}function Gt(t,e){let r=process.env;return{...t,command:Gu(t.command,e,r),args:t.args.map(n=>Bn(n,e,r)),env:t.env?eg(t.env,e,r):void 0,cwd:t.cwd?Gu(t.cwd,e,r):e}}import{readFileSync as cA}from"node:fs";var kt=class extends Error{constructor(e){super(e),this.name="McpConfigError"}};function Wn(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 aA(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 Vn(t,e){let r=Wn(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:aA(e.env),cwd:e.cwd,timeoutMs:e.timeoutMs,useShellInterpolation:i}}var ng=t=>cA(t,"utf8");function ta(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function tg(t){return ta(t)&&("command"in t||"url"in t)}function Bu(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function rg(t,e){return Bu(t.name)??e}function Zu(t,e){let r=Wn(t);if(r==="http"||r==="sse")return Bu(t.name,t.title,t.url)??e;let n=typeof t.command=="string"&&t.command.length>0?t.command.split(" ")[0]:void 0;return Bu(t.name,t.title,n)??e}function uA(t){if(Array.isArray(t))return t.map((e,r)=>{let n=e;return[Zu(n,String(r)),n]});if(ta(t)){for(let r of["servers","mcpServers"]){let n=t[r];if(Array.isArray(n))return n.map((o,i)=>{let s=o;return[Zu(s,String(i)),s]})}for(let r of["servers","mcpServers"]){let n=t[r];if(ta(n))return Object.entries(n).map(([o,i])=>{let s=i;return[rg(s,o),s]})}if(tg(t)){let r=t;return[[Zu(r,"server"),r]]}let e=Object.values(t);if(e.length>0&&e.some(tg))return Object.entries(t).map(([r,n])=>{if(!ta(n))throw new Error(`entry "${r}" is not a server config object (got ${n===null?"null":typeof n})`);let o=n;return[rg(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 Wu(t){return t instanceof Error?t.message:String(t)}function dA(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}": ${Wu(i)}`});return}}function lA(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=dA(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}: ${Wu(c)}`}),[]}try{return uA(a)}catch(c){return r.push({message:`Invalid --mcp-config ${i}: ${Wu(c)}`}),[]}}function Vu(t,e=ng){let r={},n=[];for(let o of t)for(let[i,s]of lA(o,e,n))r[i]=s;return{servers:r,diagnostics:n}}function Ku(t,e=ng){return!t||t.length===0?new Set:new Set(Object.keys(Vu(t,e).servers))}var pA=["global","project","local","managed"];function hA(t,e){switch(e){case"global":return t.getGlobalSettings().mcpServers;case"project":return t.getProjectSettings().mcpServers;case"local":return t.getLocalSettings().mcpServers;case"managed":return t.getManagedSettings().mcpServers}}function mA(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 gA(t,e,r){let n=Vu(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 yA(t,e,r){let n=fA.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 mA(pA.map(o=>hA(n,o)))}function Kn(t,e,r,n){let o=[],i=r&&r.length>0?gA(r,n,o):yA(t,e,o),s=[];for(let[a,c]of Object.entries(i))try{let u=Vn(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 dg}from"@augmentcode/auggie-v2";import{logger as TA}from"@hermes/logger";import{Type as AA}from"@sinclair/typebox";var ra=Symbol.for("__pi_mcp_state__");function vA(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 _A(t,e){return["user","tenant","private","shared"].some(r=>t===`${r}:${e}`)}function SA(t){for(let[e,r]of t.registryCredentialConfigsById){let n=[...t.registryCredentialConfigs.entries()].filter(([s,a])=>s!==r.name&&a.id===e&&vA(a,r)).map(([s])=>s),o=n.some(s=>{let a=t.oauthCredentialDomains.get(s);return a!==void 0&&_A(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 wA(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&&SA(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 ii(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 na(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 bA(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 og(t){let{state:e,configId:r,generation:n}=t;typeof n=="number"&&e.attachmentCommandInFlightGenerations?.get(r)===n&&e.attachmentCommandInFlightGenerations.delete(r)}function oa(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()?bA({state:e,configId:r,generation:n}):og({state:e,configId:r,generation:n}),s),s=>{throw og({state:e,configId:r,generation:n}),s})}function ee(){let t=globalThis;if(t[ra])return wA(t[ra]),t[ra];let e={servers:new Map,toolRegistrationsByPi:new WeakMap,hostLeases:new Map,hostLeaseRevisions:new Map,expectedCredentialDomains:new Map,tokens:new Zn,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[ra]=e,e}var ig=Symbol.for("__hermes_mcp_tool_registry__"),RA=Symbol.for("__hermes_mcp_extension_factory__");function sg(){let t=globalThis;return t[ig]??=new Map,t[ig]}function Tr(t){sg().set(t.name,t)}function ag(t,e){let r=sg();(e===void 0||r.get(t)===e)&&r.delete(t)}function cg(t){Reflect.set(t,RA,!0)}function ia(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 CA(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t}function PA(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 xA(t){let e=[];for(let r of t)r.type==="text"&&e.push(r.text);return e.join(`
9
+ `).trim()}function Ju(t,e,r){if(t.isError){let o=xA(t.content);throw new Error(o||`MCP tool "${e}/${r}" reported an error`)}let n=PA(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 ug(t){let e=t.getHost();if(!e||e.status!=="success")throw new Error(ia(t.serverName,e?.status,t.getAllToolNames(),t.getActiveToolNames()));let r=t.map.resolve(t.namespaced),n=CA(t.params),o=await e.callTool(r,n,t.signal);return Ju(o,t.serverName,r)}var kA=/[^a-zA-Z0-9_-]/g;function Yu(t){return t.replace(kA,"_")}function EA(t,e){let r=Yu(e),n=Yu(t),o=`${r}_${n}`;return o.length<=64?o:o.slice(0,64)}var Ar=class{_serverName;_map=new Map;constructor(e){this._serverName=e}put(e){let r=EA(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=`_${Yu(this._serverName)}`;return e.endsWith(n)?e.slice(0,e.length-n.length):e}};var Xu=TA.child({prefix:"pi-mcp"});function sa(){return ee().toolRegistrationsByPi}function lg(t){let{pi:e,serverName:r,tool:n,map:o,namespaced:i}=t,s;try{s=AA.Unsafe(n.inputSchema??{})}catch(c){Xu.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)=>ug({serverName:r,namespaced:i,map:o,getHost:a,getAllToolNames:()=>e.getAllTools().map(p=>p.name),getActiveToolNames:()=>e.getActiveTools(),params:u,signal:d})}}function Qu(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),ag(n,i),r.definitionsByName?.delete(n),MA(t,e,n,r,o)}function MA(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 Ar(s);for(let d of c.listTools()){let{namespaced:l,collision:f}=u.put(d.name);if(f||l!==r)continue;let p=lg({pi:t,serverName:s,tool:d,map:u,namespaced:l});if(!p)return;dg(r,"mcp"),t.registerTool(p),Tr(p),a.definitionsByName??=new Map,a.definitionsByName.set(r,p),e.ownerByToolName.set(r,a),o?t.setActiveTools([...new Set([...t.getActiveTools(),r])]):t.setActiveTools(t.getActiveTools().filter(h=>h!==r));return}}}function $A(t,e){let r=sa(),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)Qu(t,n,i,a);let s={generation:o,host:e,map:new Ar(e.name),registeredNames:new Set,definitionsByName:new Map};return n.byServer.set(e.name,s),{registration:s,replaced:i!==void 0}}function ed(t,e){let{registration:r,replaced:n}=$A(t,e),o=new Set(r.registeredNames),i=new Ar(e.name);r.map=i,r.registeredNames.clear();let s=e.name,a=0,c=[];for(let d of e.listTools()){let{namespaced:l,collision:f}=i.put(d.name);if(f){let h=i.resolve(l),m=`Tool name collision detected in MCP server "${s}": "${d.name}" and "${h}" both map to "${l}". Only the first tool will be available.`,g=ee();g.diagnostics.some(w=>w.server===s&&w.message.includes(`both map to "${l}"`))||(Xu.warn(m),g.diagnostics.push({server:s,message:m}));continue}let p=lg({pi:t,serverName:s,tool:d,map:i,namespaced:l});p&&(dg(l,"mcp"),t.registerTool(p),Tr(p),r.definitionsByName??=new Map,r.definitionsByName.set(l,p),sa().get(t)?.ownerByToolName.set(l,r),r.registeredNames.add(l),c.push(l),a+=1)}let u=sa().get(t);for(let d of o)!r.registeredNames.has(d)&&u&&Qu(t,u,r,d);n&&c.length>0&&t.setActiveTools([...new Set([...t.getActiveTools(),...c])]),a>0&&Xu.info(`Registered ${a} MCP tool(s) from server "${s}"`)}function td(t,e,r){let n=sa().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)Qu(t,n,o,i);return n.byServer.delete(e.name),!0}function fg(t,e){for(let r of e.servers.values())r.status==="success"&&r.config.registrySource===void 0&&ed(t,r)}import{getToolSource as UA}from"@augmentcode/auggie-v2";import{Type as IA}from"@sinclair/typebox";var OA=!1,pg=2e4;function zA(t){let e=JSON.stringify({name:t.name,description:t.description,inputSchema:t.inputSchema});return Math.ceil(e.length/4)}function NA(t){let e=0;for(let r of t.servers.values())e+=DA(r);return e}function DA(t){if(t.status!=="success")return 0;let e=new Ar(t.name),r=0;for(let n of t.listTools()){let{collision:o}=e.put(n.name);o||LA(n.inputSchema)&&(r+=zA(n))}return r}function LA(t){try{return IA.Unsafe(t??{}),!0}catch{return!1}}function jA(t){let e=t.featureFlags?.flags.cliMcpToolSearchAutoEnable;return typeof e=="boolean"?e:OA}function FA(t){let e=t.featureFlags?.flags.cliMcpToolSearchTokenThreshold;if(typeof e=="bigint"){let r=Number(e);return Number.isFinite(r)&&r>0?r:pg}return typeof e=="number"&&Number.isFinite(e)&&e>0?e:pg}function hg(t){return jA(t)?NA(t)>=FA(t):!1}var qA="AUGGIE_ENABLE_TOOL_SEARCH",HA=new Set(["find-tool","execute-tool","attach-mcp-server"]);function si(){return process.env[qA]==="1"}function Jn(t){return si()||t.toolSearchLatched?!0:hg(t)?(t.toolSearchLatched=!0,!0):!1}function aa(t){let e=t.getActiveTools(),r=e.filter(n=>!GA(n)||HA.has(n));r.length!==e.length&&t.setActiveTools(r)}function GA(t){return UA(t)==="mcp"}import{setToolSource as bg}from"@augmentcode/auggie-v2";import{logger as dM}from"@hermes/logger";import{Type as Rg}from"@sinclair/typebox";import{logger as ZA}from"@hermes/logger";var ai={UNSPECIFIED:0,NONE:1,OAUTH:2,API_KEY:3},sn={UNSPECIFIED:0,CLI:1,CLOUD_AGENT:2};var mg=ZA.child({prefix:"pi-mcp"}),BA=5e3,WA=1,VA=2,KA=new Set(["AVAILABLE","MCP_CATALOG_ENTRY_STATE_AVAILABLE"]),JA=new Set(["OPT_IN_REQUIRED","MCP_CATALOG_ENTRY_STATE_OPT_IN_REQUIRED"]);function YA(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 XA(t){return t===WA||typeof t=="string"&&KA.has(t)?"available":t===VA||typeof t=="string"&&JA.has(t)?"opt_in_required":"unknown"}function QA(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:YA(t.auth_type),state:XA(t.state)}}function rd(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 an(t){return(t.mcpCatalog??[]).filter(r=>(r.state==="available"||r.state==="opt_in_required")&&!rd(t,r))}async function gg(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:sn.UNSPECIFIED}),signal:AbortSignal.timeout(r??BA)});if(!i.ok)return mg.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=QA(c);u!==void 0&&a.push(u)}return{ok:!0,entries:a}}catch(i){return mg.debug(`MCP catalog fetch failed: ${i instanceof Error?i.message:String(i)}`),{ok:!1,disable:!1}}}var eM="AUGGIE_TOOL_SEARCH_FIND_TOOL_PROMPT",tM=`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).`,oM=/[\n\r]/g,iM=/</g,sM=/>/g;function cn(t){return t.replace(oM," ").replace(iM,"\u2039").replace(sM,"\u203A").trim()}function aM(){let t=process.env[rM];return t?.trim()?t:nM}var cM=/\{\{(query|server_name|tool_list)\}\}/g;function gg(t,e,r){let n={"{{query}}":cn(t),"{{server_name}}":cn(e),"{{tool_list}}":r};return aM().replace(cM,o=>n[o]??o)}function Ce(t){return{content:[{type:"text",text:t}],details:void 0}}function yg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function nd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function aa(t,e,r){let n={mcp_server:t,tools:yg(e).map(nd),note:r};return Ce(JSON.stringify(n,null,2))}function vg(t){return yg(t).map(e=>{let r=cn(e.name),n=cn(e.description??"");return`- ${r}: ${n}`}).join(`
17
- `)}function _g(t){let e=t.trim();try{let r=JSON.parse(e);if(typeof r.tool_name=="string")return r.tool_name}catch{}return e}import{complete as uM}from"@earendil-works/pi-ai";var dM="augment:tool-search-usage";function lM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function Sg(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 uM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(dM,a),lM(s)}var Cg=fM.child({prefix:"pi-mcp"}),Jn="find-tool",Mr="execute-tool",pM=10,Rg=15,hM=20,mM={type:"object",properties:{query:{type:"string",description:"Detailed description of the task you need a tool for: the action (create, read, search, delete, \u2026), the target resource, and relevant context (field names, filters). More specific queries match better."},mcp_server:{type:"string",description:"Name of the MCP server to search."}},required:["query","mcp_server"]},gM={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 od(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function yM(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=od(t),o=e.filter(c=>n.length>0&&od(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(od(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 Pg(t,e){let r=ee(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=an(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:yM(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=oa(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function vM(t){if(t==null)throw new Error(`${Mr} 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(`${Mr} "arguments" must be an object, not ${e}.`)}return t}async function _M(t,e,r,n,o){let i=gg(r,n,vg(o)),s=await Sg(t,e,i);if(!s)return;let a=_g(s);return o.find(c=>c.name===a)}async function SM(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${Jn} requires string "query" and "mcp_server" parameters.`);let i=Pg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=pM)return aa(i.name,s,"All tools on this server.");try{let a=await _M(t,e,n,i.name,s);return a?Ce(JSON.stringify(nd(a),null,2)):aa(i.name,s,"No single best match; all tools listed.")}catch(a){return Cg.warn(`${Jn} LLM match failed: ${a instanceof Error?a.message:String(a)}`),aa(i.name,s,"Search failed; all tools listed.")}}async function wM(t,e,r){let{mcp_server:n,tool_name:o,arguments:i}=e??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${Mr} requires string "mcp_server" and "tool_name" parameters.`);let s=vM(i),a=Pg(t,n),c=await a.server.callTool(o,s,r);return Ju(c,a.name,o)}function bM(){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 ${Mr}. 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 ${Jn}, then invoke it with ${Mr}.`,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,Rg).join(", "),u=a.length>Rg?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
16
+ Respond with ONLY the tool name (no markdown, no explanation).`,rM=/[\n\r]/g,nM=/</g,oM=/>/g;function cn(t){return t.replace(rM," ").replace(nM,"\u2039").replace(oM,"\u203A").trim()}function iM(){let t=process.env[eM];return t?.trim()?t:tM}var sM=/\{\{(query|server_name|tool_list)\}\}/g;function yg(t,e,r){let n={"{{query}}":cn(t),"{{server_name}}":cn(e),"{{tool_list}}":r};return iM().replace(sM,o=>n[o]??o)}function Ce(t){return{content:[{type:"text",text:t}],details:void 0}}function vg(t){return[...t].sort((e,r)=>e.name.localeCompare(r.name))}function nd(t){return{tool_name:t.name,description:t.description??"",input_schema:t.inputSchema??{}}}function ca(t,e,r){let n={mcp_server:t,tools:vg(e).map(nd),note:r};return Ce(JSON.stringify(n,null,2))}function _g(t){return vg(t).map(e=>{let r=cn(e.name),n=cn(e.description??"");return`- ${r}: ${n}`}).join(`
17
+ `)}function Sg(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 aM}from"@earendil-works/pi-ai";var cM="augment:tool-search-usage";function uM(t){let e="";for(let r of t.content)r.type==="text"&&(e+=r.text);return e.trim()}async function wg(t,e,r){let n=e.model;if(!n)return;let o=await e.modelRegistry.getApiKeyAndHeaders(n);if(!(o.ok&&o.apiKey))return;let i={role:"user",content:[{type:"text",text:r}],timestamp:Date.now()},s=await aM(n,{messages:[i]},{apiKey:o.apiKey,headers:o.headers,signal:e.signal}),a={model:s.model,usage:s.usage};return t.events.emit(cM,a),uM(s)}var Pg=dM.child({prefix:"pi-mcp"}),Yn="find-tool",Mr="execute-tool",lM=10,Cg=15,fM=20,pM={type:"object",properties:{query:{type:"string",description:"Detailed description of the task you need a tool for: the action (create, read, search, delete, \u2026), the target resource, and relevant context (field names, filters). More specific queries match better."},mcp_server:{type:"string",description:"Name of the MCP server to search."}},required:["query","mcp_server"]},hM={type:"object",properties:{mcp_server:{type:"string",description:"Name of the MCP server hosting the tool."},tool_name:{type:"string",description:"Original MCP tool name returned by find-tool."},arguments:{type:"object",description:"Arguments object to pass to the tool."}},required:["mcp_server","tool_name","arguments"]};function od(t){return t.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu," ").trim().replace(/\s+/g," ")}function mM(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=od(t),o=e.filter(c=>n.length>0&&od(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(od(c.name).split(" "));return n.length>0&&i.every(d=>u.has(d))});if(s.length===1){let[c]=s;return{server:c,name:c.name}}let a=[...o,...s].map(c=>c.name).filter((c,u,d)=>d.indexOf(c)===u).sort();if(a.length>1){let c=e.map(u=>u.name).sort();throw new Error(`MCP server name "${t}" is ambiguous. Matching servers: ${a.join(", ")}. Use an exact server name. Available servers: ${c.join(", ")}.`)}}function xg(t,e){let r=ee(),n=t.getAllTools().map(u=>u.name);if(!n.includes(e)){let u=e.trim().toLowerCase(),d=an(r).find(l=>l.id===e.trim()||l.name.toLowerCase()===u);if(d)throw new Error(`MCP server "${d.name}" is available but not attached. Call attach-mcp-server now with config_id "${d.id}"; it attaches directly without requiring user approval.`)}let o=n.includes(e)?void 0:mM(e);if(o)return o;let i=t.getActiveTools(),s=r.servers.get(e),a=[...r.servers.values()].filter(u=>u.status==="success").map(u=>u.name).sort(),c=ia(e,s?.status,n,i);throw new Error(`${c} Available servers: ${a.join(", ")||"none"}.`)}function gM(t){if(t==null)throw new Error(`${Mr} 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(`${Mr} "arguments" must be an object, not ${e}.`)}return t}async function yM(t,e,r,n,o){let i=yg(r,n,_g(o)),s=await wg(t,e,i);if(!s)return;let a=Sg(s);return o.find(c=>c.name===a)}async function vM(t,e,r){let{query:n,mcp_server:o}=r??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${Yn} requires string "query" and "mcp_server" parameters.`);let i=xg(t,o),s=i.server.listTools();if(s.length===0)throw new Error(`No tools available on MCP server "${i.name}".`);if(s.length<=lM)return ca(i.name,s,"All tools on this server.");try{let a=await yM(t,e,n,i.name,s);return a?Ce(JSON.stringify(nd(a),null,2)):ca(i.name,s,"No single best match; all tools listed.")}catch(a){return Pg.warn(`${Yn} LLM match failed: ${a instanceof Error?a.message:String(a)}`),ca(i.name,s,"Search failed; all tools listed.")}}async function _M(t,e,r){let{mcp_server:n,tool_name:o,arguments:i}=e??{};if(typeof n!="string"||typeof o!="string")throw new Error(`${Mr} requires string "mcp_server" and "tool_name" parameters.`);let s=gM(i),a=xg(t,n),c=await a.server.callTool(o,s,r);return Ju(c,a.name,o)}function SM(){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 ${Mr}. 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 ${Yn}, then invoke it with ${Mr}.`,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,Cg).join(", "),u=a.length>Cg?", \u2026":"";return`- ${s.name} (${a.length} tool(s): ${c}${u})`});n.push(`${r} Available MCP servers:
18
18
  ${i.join(`
19
- `)}`)}let o=an(t).slice(0,hM);if(o.length>0){let i=o.map(s=>{let a=cn(s.description),c=s.requiresAuth?" [requires auth]":"";return`- ${s.name}${a?` \u2014 ${a}`:""}${c}`});n.push(`Available but not attached (use attach-mcp-server to enable):
19
+ `)}`)}let o=an(t).slice(0,fM);if(o.length>0){let i=o.map(s=>{let a=cn(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 un(t){let e={name:Jn,label:Jn,description:bM(),parameters:bg.Unsafe(mM),execute:(n,o,i,s,a)=>SM(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:bg.Unsafe(gM),execute:(n,o,i)=>wM(t,o,i)};wg(Jn,"mcp"),wg(Mr,"mcp"),t.registerTool(e),t.registerTool(r),Tr(e),Tr(r),Cg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{logger as aq}from"@hermes/logger";import{logger as AM}from"@hermes/logger";import{logger as RM}from"@hermes/logger";function dn(t){return new Promise(e=>setTimeout(e,t))}var xg=RM.child({prefix:"pi-mcp"}),ai={maxTries:3,initialMs:500,mult:2,maxMs:2e3},id=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 sd(t){return t instanceof ht?t.statusCode>=500:!0}async function ln(t){let e;for(let r=0;r<ai.maxTries;r++)try{return await t()}catch(n){if(e=n,!sd(n))throw n;if(r<ai.maxTries-1){let o=Math.min(ai.initialMs*ai.mult**r,ai.maxMs);await dn(o)}}throw e}var ca=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??id}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 ln(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return ln(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function kg(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)}`;xg.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)}`;xg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function CM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Eg=32;function PM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Eg&&(e=e.slice(0,Eg)),e=e.replace(/_+$/,""),e}function Tg(t,e){let r=e?PM(e):"",n=CM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Ag(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 xM=1e12,kM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function EM(t){let e=kM.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 TM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<xM?t*1e3:t;if(typeof t=="string")return EM(t)}function Mg(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:TM(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=AM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},Xn=class extends Error{},Ig=[100,500],MM=Ig.length+1,$M=t=>new Promise(e=>{setTimeout(e,t)});function $g(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var cd="augment.mcp-access-token.",IM=JSON.stringify({retired:!0}),ua=3;function Bt(t){return`${cd}${t}`}function da(t){return`legacy:${t}`}function Et(t){return t?.id?Tg(t.id,t.name):void 0}function di(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:Og(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function Og(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function li(t){if(typeof t=="string")try{return li(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:Og(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Tt(t){return li(di(t))}function OM(t){return li(di(t))}function zM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function Yn(t){try{let e=JSON.parse(t);return{credentialIdentity:li(e.credentialIdentity),state:zM(e)}}catch{return{}}}function ci(t,e){let r={...t,type:"oauth",credentialIdentity:di(e)};return JSON.stringify(r)}function fn(t,e){let r=Ag({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:di(e),credentialState:"active"})}function NM(t){return JSON.stringify({credentialIdentity:di(t),credentialState:"retired",retired:!0})}function DM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=OM(e),i=li(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 ad(t){try{let e=Mg(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 ui=class{_memory=new Zn;_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=$M){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<ua;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=Yn(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=ad(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,fn(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=Yn(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!ad(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,fn(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:da(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!==da(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!==ci(i,a)))try{return{revision:await r.upsertUserSecret(n,ci(s,c),u.revision),domain:da(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!==fn(o,s)))try{return{revision:await r.upsertUserSecret(n,fn(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!==ci(o,s)))try{await r.upsertUserSecret(n,ci(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<ua;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?Yn(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,fn(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<ua;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?Yn(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,NM(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:da(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=$g(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?MM:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new Xn;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 Xn}_persistenceRetryDelay(e,r,n){let o=n?Ig[r]:void 0,i=!(e instanceof Z)&&sd(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),ci(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 Xn||!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),IM)}):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 Xn&&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($g(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<ua;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=Yn(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=ad(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,fn(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=Yn(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,fn(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?DM(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 zg="Augment Code",Ng="https://augmentcode.com",Dg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var jM=1e3,FM=500;function dd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function fi(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var ud=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function Lg(t){return new URLSearchParams({k:t}).toString().slice(2)}function UM(t,e){let r=`${Lg(t)}:${Lg(e)}`;return`Basic ${btoa(r)}`}function qg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function qM(t){return t.client.token_endpoint_auth_method==="none"||!qg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function HM(t){return t==="basic"?"body":t==="body"?"basic":void 0}function GM(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var ZM=401,Hg=500;function ld(t,...e){return t.status<Hg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function jg(t){return ld(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===ZM}async function Fg(t,e,r){let n={"Content-Type":"application/x-www-form-urlencoded"},o=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken});r&&o.set("resource",r);let i=qg(t);e==="basic"&&i?n.Authorization=UM(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=GM(c),d=c.slice(0,FM);throw new pn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new ud;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*jM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function Ug(t,e){try{return await Fg(t,e,t.resource)}catch(r){if(r instanceof pn&&t.resource&&ld(r,"invalid_target"))return await Fg(t,e,void 0);throw r}}var pn=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 fd(t){return!(t instanceof pn)||t.status>=Hg?!1:ld(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function pd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=qM(t);try{return await Ug(e,r)}catch(n){let o=HM(r);if(!(n instanceof pn)||!o||!jg(n))throw n;try{return await Ug(e,o)}catch(i){throw i instanceof pn&&jg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as j0}from"@hermes/logger";var gd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(gd="oauth4webapi/v3.8.6");function ro(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 wd=Symbol(),BM=Symbol(),WM=Symbol(),mn=Symbol();var Gg=Symbol();var VM=new TextEncoder,KM=new TextDecoder;function yd(t){return typeof t=="string"?VM.encode(t):KM.decode(t)}var vd;Uint8Array.prototype.toBase64?vd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):vd=e=>{e instanceof ArrayBuffer&&(e=new Uint8Array(e));let r=[];for(let n=0;n<e.byteLength;n+=32768)r.push(String.fromCharCode.apply(null,e.subarray(n,n+32768)));return btoa(r.join("")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")};var _d;Uint8Array.fromBase64?_d=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}}:_d=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}};function fa(t){return typeof t=="string"?_d(t):vd(t)}var eo=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=k0,Error.captureStackTrace?.(this,this.constructor)}},pi=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 pi(t,{code:e,cause:r})}function pa(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function bd(t){ro(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(gd&&!e.has("user-agent")&&e.set("user-agent",gd),e.has("authorization"))throw pe('"options.headers" must not include the "authorization" header name',Wt);return e}function Rd(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 JM(t){return t.includes("//")?t.replace("//","/"):t}function YM(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=JM(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function XM(t,e,r,n){if(!(t instanceof URL))throw pe(`"${e}" must be an instance of URL`,Je);ty(t,n?.[wd]!==!0);let o=r(new URL(t.href)),i=bd(n?.headers);return i.set("accept","application/json"),(n?.[mn]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:Rd(o,n?.signal)})}function Qn(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 Wg(t,e){let r=t;if(!(r instanceof URL)&&r!==ga)throw pe('"expectedIssuerIdentifier" must be an instance of URL',Je);if(!ro(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)',Md,e);gi(e);let n=await Sa(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==ga&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',va,{expected:r.href,body:n,attribute:"issuer"});return n}function Vg(t){e0(t,"application/json")}function QM(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,T0,t)}function e0(t,e){if(f0(t)!==e)throw QM(t,e)}function Cd(){return fa(crypto.getRandomValues(new Uint8Array(32)))}function Kg(){return Cd()}function Jg(){return Cd()}function Yg(){return Cd()}async function Xg(t){return $e(t,"codeVerifier"),fa(await crypto.subtle.digest("SHA-256",yd(t)))}function Pd(t){let e=t?.[BM];return typeof e=="number"&&Number.isFinite(e)?e:0}function xd(t){let e=t?.[WM];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function kd(){return Math.floor(Date.now()/1e3)}function ya(t){if(typeof t!="object"||t===null)throw pe('"as" must be an object',Je);$e(t.issuer,'"as.issuer"')}function Ed(t){if(typeof t!="object"||t===null)throw pe('"client" must be an object',Je);$e(t.client_id,'"client.client_id"')}function Zg(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 Td(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function Qg(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=Zg(r.client_id),s=Zg(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function ey(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var t0=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function ty(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",A0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",M0,t)}function Bg(t,e,r,n){let o;if(typeof t!="string"||!(o=t0(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?$0:I0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return ty(o,n),o}function ry(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?Bg(t.mtls_endpoint_aliases[e],e,r,n):Bg(t[e],e,r,n)}var to=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=x0,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)}},hi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=E0,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)}},mi=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=P0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},ha="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",r0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",n0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',o0="("+ha+")\\s*=\\s*"+n0,i0="("+ha+")\\s*=\\s*("+ha+")",s0=new RegExp("^[,\\s]*("+ha+")"),a0=new RegExp("^[,\\s]*"+o0+"[,\\s]*(.*)"),c0=new RegExp("^[,\\s]*"+i0+"[,\\s]*(.*)"),u0=new RegExp("^("+r0+")(?:$|[,\\s])(.*)");function d0(t){if(!ro(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(s0),i=o?.[1].toLowerCase();if(!i)return;let s=n.substring(o[0].length);if(s&&!s.match(/^[\s,]/))return;let a=s.match(/^\s+(.*)$/),c=!!a;n=a?a[1]:void 0;let u={},d;if(c)for(;n;){let f,p;if(o=n.match(a0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(c0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(u0)){if(Object.keys(u).length)break;[,d,n]=o;break}return}else n=s||void 0;let l={scheme:i,parameters:u};d&&(l.token68=d),r.push(l)}if(r.length)return r}async function l0(t){if(t.status>399&&t.status<500){gi(t),Vg(t);try{let e=await t.clone().json();if(pa(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function ny(t,e,r){if(t.status!==e){g0(t);let n;throw(n=await l0(t))?(await t.body?.cancel(),new to("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)`,Md,t)}}function oy(t){if(!Ad.has(t))throw pe('"options.DPoP" is not a valid DPoPHandle',Wt)}function f0(t){return t.headers.get("content-type")?.split(";")[0]}async function p0(t,e,r,n,o,i,s){return await r(t,e,o,i),i.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),(s?.[mn]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:Rd(n,s?.signal)})}async function h0(t,e,r,n,o,i){let s=ry(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[wd]!==!0);o.set("grant_type",n);let a=bd(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(oy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await p0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var iy=new WeakMap,m0=new WeakMap;function sy(t){if(!t.id_token)return;let e=iy.get(t);if(!e)throw pe('"ref" was already garbage collected or did not resolve from the proper sources',Wt);return e}async function ay(t,e,r,n,o,i){if(ya(t),Ed(e),!ro(r,Response))throw pe('"response" must be an instance of Response',Je);await ny(r,200,"Token Endpoint"),gi(r);let s=await Sa(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;Qn(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&&(Qn(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await O0(s.id_token,z0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Pd(e),xd(e),o).then(b0.bind(void 0,a)).then(v0.bind(void 0,t)).then(y0.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&&Qn(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),m0.set(r,u),iy.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 eo("unsupported `token_type` value",{cause:{body:s}});return s}function g0(t){let e;if(e=d0(t))throw new mi("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function y0(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 v0(t,e){let r=t[L0]?.(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 Ad=new WeakSet;function _0(t){return Ad.add(t),t}var S0=Symbol();async function cy(t,e,r,n,o,i,s){if(ya(t),Ed(e),!Ad.has(n))throw pe('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Wt);$e(o,'"redirectUri"');let a=hn(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!==S0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),h0(t,e,r,"authorization_code",c,s)}var w0={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 b0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${w0[r]}) claim missing`,V,{claims:e.claims});return e}var hd=Symbol(),md=Symbol();async function uy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?R0(t,e,r,n.expectedNonce,n.maxAge,n[Gg],n.recognizedTokenTypes):C0(t,e,r,n?.[Gg],n?.recognizedTokenTypes)}async function R0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=hd;break;case hd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=md;break;case md:break;default:Qn(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await ay(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=sy(c);if(o!==md){let d=kd()+Pd(e),l=xd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",ma,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===hd){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 C0(t,e,r,n,o){let i=await ay(t,e,r,void 0,n,o),s=sy(i);if(s){if(e.default_max_age!==void 0){Qn(e.default_max_age,!0,'"client.default_max_age"');let a=kd()+Pd(e),c=xd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",ma,{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 P0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",x0="OAUTH_RESPONSE_BODY_ERROR",k0="OAUTH_UNSUPPORTED_OPERATION",E0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Sd="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var T0="OAUTH_RESPONSE_IS_NOT_JSON",Md="OAUTH_RESPONSE_IS_NOT_CONFORM",A0="OAUTH_HTTP_REQUEST_FORBIDDEN",M0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",ma="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",$r="OAUTH_JWT_CLAIM_COMPARISON_FAILED",va="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var $0="OAUTH_MISSING_SERVER_METADATA",I0="OAUTH_INVALID_SERVER_METADATA";function gi(t){if(t.bodyUsed)throw pe('"response" body has been used already',Wt)}async function O0(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 eo("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(yd(fa(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Sd,l)}if(!pa(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new eo('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(yd(fa(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Sd,l)}if(!pa(u))throw O("JWT Payload must be a top level object",V,t);let d=kd()+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',ma,{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',ma,{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 z0(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 hn(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 N0=Symbol(),D0=Symbol();function dy(t,e,r,n){if(ya(t),Ed(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw pe('"parameters" must be an instance of URLSearchParams, or URL',Je);if(hn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=hn(r,"iss"),i=hn(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 D0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case N0: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(hn(r,"error"))throw new hi("authorization response from the server is an error",{cause:r});let a=hn(r,"id_token"),c=hn(r,"token");if(a!==void 0||c!==void 0)throw new eo("implicit and hybrid flows are not supported");return _0(new URLSearchParams(r))}async function ly(t,e,r){ya(t);let n=ry(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[wd]!==!0),o=bd(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(oy(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?.[mn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Rd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function fy(t){if(!ro(t,Response))throw pe('"response" must be an instance of Response',Je);await ny(t,201,"Dynamic Client Registration Endpoint"),gi(t);let e=await Sa(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&&Qn(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function py(t,e){return XM(t,"resourceIdentifier",r=>(YM(r,".well-known/oauth-protected-resource",!0),r),e)}async function _a(t,e){let r=t;if(!(r instanceof URL)&&r!==ga)throw pe('"expectedResourceIdentifier" must be an instance of URL',Je);if(!ro(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)',Md,e);gi(e);let n=await Sa(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==ga&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',va,{expected:r.href,body:n,attribute:"resource"});return n}async function Sa(t,e=Vg){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Sd,n)}if(!pa(r))throw O('"response" body must be a top level object',V,{body:r});return r}var ga=Symbol(),L0=Symbol();var gy=j0.child({prefix:"pi-mcp"}),yi=1e4,F0=1e3,U0=401,hy=200,q0=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,H0=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,yy;function no(){return yy??globalThis.fetch}function vy(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function _y(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Id(t){let e=_y(t);try{let r=await G0(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await K0(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Ra(r)}throw new Error("Failed to discover metadata URL")}async function G0(t){try{let e=await py(t,{signal:AbortSignal.timeout(yi),[mn]:yy??void 0});return e.ok?await _a(t,e):(e.body?.cancel().catch(()=>{}),await Sy(t,e.headers.get("www-authenticate"))??await my(t))}catch{return await my(t)}}async function my(t){for(let e of["HEAD","GET"])try{let r=await no()(t,{method:e,signal:AbortSignal.timeout(yi)});r.body?.cancel().catch(()=>{});let n=await Sy(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function Sy(t,e){let r=V0(e);if(r)try{let n=await no()(r,{signal:AbortSignal.timeout(yi)});return await Z0(t,n)}catch{return}}async function Z0(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await _a(t,new Response(r,n))}catch(o){if(!(o instanceof pi)||o.code!==va)throw o;let i=B0(r);if(!i||!W0(i,t))throw o;return await _a(i,new Response(r,n))}}function B0(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function W0(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 V0(t){if(!t)return;let e=t.match(q0),r=t.match(H0),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function K0(t){for(let e of J0(t))try{let r=new URL(e,t),n=await no()(r,{signal:AbortSignal.timeout(yi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function J0(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 Od(t){try{let e=await no()(t,{signal:AbortSignal.timeout(yi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await Y0(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await Wg(o,new Response(r,n))}catch(e){throw Ra(e)}}async function Y0(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 $d=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 X0(t){if(!t.clientId)throw new Error("clientId is required to build client from config");let e=t.clientSecret?.trim();return{client_id:t.clientId,...e?{client_secret:e}:{}}}async function zd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return X0({...t,clientId:n});if(!e.registration_endpoint)throw new $d(e.issuer);return await Q0(e,r)}async function Q0(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await ly(t,{client_name:zg,client_uri:Ng,logo_uri:Dg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[mn]:e$});return n.ok||gy.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await fy(n)}catch(r){throw Ra(r)}}async function e$(t,e){let r=await no()(t,vy(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||gy.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${r$(n)}`),r.status===200&&(o.status=201,o.statusText="Created"),o.status===201)try{let i=JSON.parse(n);i.client_secret_expires_at||(i.client_secret_expires_at=0),"client_secret"in i&&!i.client_secret&&(i.client_secret=void 0),n=JSON.stringify(i)}catch{}return new Response(n,o)}function t$(t,e){let r=new Headers(e?.headers),n=r.get("content-type"),o=e;return n?.toLowerCase().startsWith("application/x-www-form-urlencoded;")&&(r.set("content-type","application/x-www-form-urlencoded"),o={...e,headers:r}),no()(t,vy(o))}function r$(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>hy?`${t.slice(0,hy)}\u2026`:t}}async function wa(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=Kg(),c=await Xg(a),u=Jg(),d,l=(o??r.scopes_supported?.join(" "))?.split(/\s+/).filter(Boolean),f=!1;!s?.disableOfflineAccessAugmentation&&l?.length&&!l.includes("offline_access")&&r.scopes_supported?.includes("offline_access")&&(l.push("offline_access"),f=!0);let p=l?.join(" ")||void 0,h=_y(i??t).toString(),m=new URL(r.authorization_endpoint);return m.searchParams.set("response_type","code"),m.searchParams.set("client_id",e.client_id),m.searchParams.set("code_challenge",c),m.searchParams.set("code_challenge_method","S256"),m.searchParams.set("redirect_uri",n),m.searchParams.set("resource",h),m.searchParams.set("state",u),p&&m.searchParams.set("scope",p),l?.includes("offline_access")&&m.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=Yg(),m.searchParams.set("nonce",d)),{client:e,serverMetadata:r,redirectUri:n,codeVerifier:a,nonce:d,scope:p,state:u,resource:h,offlineAccessAugmented:f,authUri:m}}function ba(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Nd(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 wa(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function n$(t,e,r){let n=await cy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[mn]:t$,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return uy(t.serverMetadata,t.client,await o$(n))}async function Dd(t,e){try{let r=dy(e.serverMetadata,e.client,t,e.state),n=await s$(e.client,o=>n$(e,r,o));return u$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Ra(r)}}async function o$(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 wy(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function i$(t){let e=wy(t);return e===void 0?ey():t.token_endpoint_auth_method==="client_secret_basic"?Qg(e):Td(e)}async function s$(t,e){try{return await e(i$(t))}catch(r){let n=a$(t);if(n&&c$(r))return await e(n);throw r}}function a$(t){let e=wy(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Td(e)}function c$(t){return t instanceof to?t.error==="invalid_client"||t.error==="unauthorized":t instanceof mi?t.status===U0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function u$(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*F0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Ra(t){if(t instanceof to||t instanceof hi){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 d$=/(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,by=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Ry=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Cy=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,vi="[redacted]";function l$(t){return by.test(t)||Ry.test(t)||Cy.test(t)}var f$=new RegExp(by.source,"g"),p$=new RegExp(Ry.source,"gi"),h$=new RegExp(Cy.source,"g");function Py(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function jd(t){return t&&Py(t,8192).replace(f$,vi).replace(p$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${vi}`).replace(h$,vi)}function Ld(t,e,r){if(e)return vi;if(typeof t=="string")return l$(t)?vi:t;if(t===null||typeof t!="object")return t;if(r>=6)return"[truncated]";if(Array.isArray(t))return t.map(o=>Ld(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Ld(i,d$.test(o),r+1);return n}function xy(t,e=500){if(t==null)return;let r=Ld(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return Py(n,e)}var Ey={reportError:()=>{}},ky=Symbol.for("__pi_mcp_error_reporter_slot__");function Ty(){let t=globalThis,e=t[ky];return e||(e={reporter:null},t[ky]=e),e}function Ay(t){let e=Ty(),r=e.reporter??Ey;return e.reporter=t,r}function m$(){return Ty().reporter??Ey}function Fd(t,e){try{m$().reportError(t,e)}catch{}}import{logger as g$}from"@hermes/logger";var Ud=g$.child({prefix:"pi-mcp"});function My(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++):Ud.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Ud.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function $y(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(cd)){let o=t.headerSecrets[e];if(o!==void 0)return o;let i=t.headerSecretFailures[e];if(i==="missing"||i==="permission_denied")return{reason:i}}let r=t.secretsClient;if(r)try{let o=await r.getSecret(e);return o!==void 0?(delete t.headerSecretFailures[e],o):{reason:t.headerSecretFailures[e]??"missing"}}catch{return{reason:"transient"}}let n=t.headerSecretFailures[e];return n===void 0?void 0:{reason:n}}}function Iy(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,Ud.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function Oy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as y$}from"@hermes/logger";var _i=y$.child({prefix:"pi-mcp"}),v$="$augment-",Si=/\$augment-[a-zA-Z0-9_.-]+/g,_$=new RegExp(Si.source);function Ca(t){return _$.test(t)}function Pa(t){return t.slice(v$.length)}function wi(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(Si))e.add(Pa(n[0]));return[...e].sort()}var S$=["permission_denied","missing","transient"];function zy(t){let e=new Set(t);return S$.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 Ny(t,e,r,n,o,i,s){let a=[...t.matchAll(Si)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Pa(d);try{let p=await r(f);if(p===void 0||typeof p=="object"){n.add(f),i.set(f,p===void 0?"missing":p.reason),_i.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),_i.warn(`Secret "${f}" resolved empty for "${e}"`));let m=c.slice(0,l),g=s?s(h,m):h;c=m+g+c.slice(l+d.length),_i.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),_i.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Dy({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(!Ca(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){_i.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Ny(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 w$=/["$`\\]/g;function b$(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 R$(t,e){let r=b$(e);if(r==="double")return t.replace(w$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function Ly(t,e){let r=new Set,n=new Set,o=new Map;return{resolved:await Ny(t,"command",e,r,n,o,R$),unresolvedKeys:[...r].sort(),emptyKeys:[...n].sort(),...o.size===0?{}:{failureReasons:Object.fromEntries([...o.entries()].sort(([s],[a])=>s.localeCompare(a)))}}}import{AsyncLocalStorage as nq}from"node:async_hooks";var jy,qd=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.")}},oo=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(jy=globalThis).__zod_globalConfig??(jy.__zod_globalConfig={});var io=globalThis.__zod_globalConfig;function Ye(t){return t&&Object.assign(io,t),io}var H={};Ou(H,{BIGINT_FORMAT_RANGES:()=>Hy,Class:()=>Gd,NUMBER_FORMAT_RANGES:()=>Jd,aborted:()=>zr,allowsEval:()=>Wd,assert:()=>E$,assertEqual:()=>C$,assertIs:()=>x$,assertNever:()=>k$,assertNotEqual:()=>P$,assignProp:()=>Ir,base64ToUint8Array:()=>Zy,base64urlToUint8Array:()=>Z$,cached:()=>ao,captureStackTrace:()=>Ea,cleanEnum:()=>G$,cleanRegex:()=>Pi,clone:()=>gt,cloneDef:()=>A$,createTransparentProxy:()=>N$,defineLazy:()=>Y,esc:()=>ka,escapeRegex:()=>sr,explicitlyAborted:()=>Yd,extend:()=>j$,finalizeIssue:()=>yt,floatSafeRemainder:()=>Zd,getElementAtPath:()=>M$,getEnumValues:()=>Ri,getLengthableOrigin:()=>xi,getParsedType:()=>z$,getSizableOrigin:()=>Gy,hexToUint8Array:()=>W$,isObject:()=>gn,isPlainObject:()=>Or,issue:()=>co,joinValues:()=>xa,jsonStringifyReplacer:()=>so,merge:()=>U$,mergeDefs:()=>ir,normalizeParams:()=>A,nullish:()=>Ci,numKeys:()=>O$,objectClone:()=>T$,omit:()=>L$,optionalKeys:()=>Kd,parsedType:()=>Xd,partial:()=>q$,pick:()=>D$,prefixIssues:()=>ar,primitiveTypes:()=>qy,promiseAllObject:()=>$$,propertyKeyTypes:()=>Vd,randomString:()=>I$,required:()=>H$,safeExtend:()=>F$,shallowClone:()=>Uy,slugify:()=>Bd,stringifyPrimitive:()=>Ta,uint8ArrayToBase64:()=>By,uint8ArrayToBase64url:()=>B$,uint8ArrayToHex:()=>V$,unwrapMessage:()=>bi});function C$(t){return t}function P$(t){return t}function x$(t){}function k$(t){throw new Error("Unexpected value in exhaustive check")}function E$(t){}function Ri(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 xa(t,e="|"){return t.map(r=>Ta(r)).join(e)}function so(t,e){return typeof e=="bigint"?e.toString():e}function ao(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ci(t){return t==null}function Pi(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Zd(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 Fy=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Fy)return n===void 0&&(n=Fy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function T$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Ir(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 A$(t){return ir(t._zod.def)}function M$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function $$(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 I$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function ka(t){return JSON.stringify(t)}function Bd(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ea="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function gn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Wd=ao(()=>{if(io.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Or(t){if(gn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(gn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Uy(t){return Or(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function O$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var z$=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}`)}},Vd=new Set(["string","number","symbol"]),qy=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 N$(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 Ta(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Kd(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Jd={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]},Hy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function D$(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 Ir(this,"shape",s),s},checks:[]});return gt(t,i)}function L$(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 Ir(this,"shape",s),s},checks:[]});return gt(t,i)}function j$(t,e){if(!Or(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 Ir(this,"shape",i),i}});return gt(t,o)}function F$(t,e){if(!Or(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 Ir(this,"shape",n),n}});return gt(t,r)}function U$(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 Ir(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return gt(t,r)}function q$(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 Ir(this,"shape",c),c},checks:[]});return gt(e,s)}function H$(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 Ir(this,"shape",i),i}});return gt(e,n)}function zr(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 Yd(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 bi(t){return typeof t=="string"?t:t?.message}function yt(t,e,r){let n=t.message?t.message:bi(t.inst?._zod.def?.error?.(t))??bi(e?.error?.(t))??bi(r.customError?.(t))??bi(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 Gy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function xi(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Xd(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 co(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function G$(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Zy(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 By(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function Z$(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Zy(e+r)}function B$(t){return By(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function W$(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 V$(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Gd=class{constructor(...e){}};var Wy=(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,so,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Aa=_("$ZodError",Wy),Qd=_("$ZodError",Wy,{Parent:Error});function el(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 tl(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 Ma=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 Ea(a,o?.callee),a}return s.value};var $a=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 Ea(a,o?.callee),a}return s.value};var ki=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??Aa)(i.issues.map(s=>yt(s,o,Ye())))}:{success:!0,data:i.value}},Ei=ki(Qd),Ti=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}},Ia=Ti(Qd),Vy=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ma(t)(e,r,o)};var Ky=t=>(e,r,n)=>Ma(t)(e,r,n);var Jy=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return $a(t)(e,r,o)};var Yy=t=>async(e,r,n)=>$a(t)(e,r,n);var Xy=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return ki(t)(e,r,o)};var Qy=t=>(e,r,n)=>ki(t)(e,r,n);var ev=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ti(t)(e,r,o)};var tv=t=>async(e,r,n)=>Ti(t)(e,r,n);var rv=/^[cC][0-9a-z]{6,}$/,nv=/^[0-9a-z]+$/,ov=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,iv=/^[0-9a-vA-V]{20}$/,sv=/^[A-Za-z0-9]{27}$/,av=/^[a-zA-Z0-9_-]{21}$/,cv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var uv=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,rl=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;var dv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var J$="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function lv(){return new RegExp(J$,"u")}var fv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,pv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var hv=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,mv=/^(([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])$/,gv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,nl=/^[A-Za-z0-9_-]*$/;var yv=/^https?$/,vv=/^\+[1-9]\d{6,14}$/,_v="(?:(?:\\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])))",Sv=new RegExp(`^${_v}$`);function wv(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 bv(t){return new RegExp(`^${wv(t)}$`)}function Rv(t){let e=wv({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(`^${_v}T(?:${n})$`)}var Cv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Pv=/^-?\d+n?$/,xv=/^-?\d+$/,ol=/^-?\d+(?:\.\d+)?$/,kv=/^(?:true|false)$/i,Ev=/^null$/i;var Tv=/^[^A-Z]*$/,Av=/^[^a-z]*$/;var Ie=_("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Mv={number:"number",bigint:"bigint",object:"date"},il=_("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=Mv[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})}}),sl=_("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=Mv[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})}}),$v=_("$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):Zd(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})}}),Iv=_("$ZodCheckNumberFormat",(t,e)=>{Ie.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=Jd[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=xv)}),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 Ov=_("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ci(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=xi(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),zv=_("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ci(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=xi(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Nv=_("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Ci(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=xi(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})}}),Mi=_("$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=()=>{})}),Dv=_("$ZodCheckRegex",(t,e)=>{Mi.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})}}),Lv=_("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Tv),Mi.init(t,e)}),jv=_("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Av),Mi.init(t,e)}),Fv=_("$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})}}),Uv=_("$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})}}),qv=_("$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 Hv=_("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Oa=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 un(t){let e={name:Yn,label:Yn,description:SM(),parameters:Rg.Unsafe(pM),execute:(n,o,i,s,a)=>vM(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:Rg.Unsafe(hM),execute:(n,o,i)=>_M(t,o,i)};bg(Yn,"mcp"),bg(Mr,"mcp"),t.registerTool(e),t.registerTool(r),Tr(e),Tr(r),Pg.debug("Registered tool-search gateway (find-tool, execute-tool)")}import{logger as iq}from"@hermes/logger";import{logger as EM}from"@hermes/logger";import{logger as wM}from"@hermes/logger";function dn(t){return new Promise(e=>setTimeout(e,t))}var kg=wM.child({prefix:"pi-mcp"}),ci={maxTries:3,initialMs:500,mult:2,maxMs:2e3},id=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 sd(t){return t instanceof ht?t.statusCode>=500:!0}async function ln(t){let e;for(let r=0;r<ci.maxTries;r++)try{return await t()}catch(n){if(e=n,!sd(n))throw n;if(r<ci.maxTries-1){let o=Math.min(ci.initialMs*ci.mult**r,ci.maxMs);await dn(o)}}throw e}var ua=class{apiKey;apiUrl;fetchImpl;timeoutMs;constructor(e,r,n){this.apiKey=e.apiKey,this.apiUrl=e.apiUrl.replace(/\/+$/,""),this.fetchImpl=r,this.timeoutMs=n??id}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 ln(()=>this.callApi("/settings/get-mcp-tenant-configs",e))}getMcpUserConfigs(e){return ln(()=>this.callApi("/settings/get-mcp-user-configs",e))}};async function Eg(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)}`;kg.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)}`;kg.warn(a),r.push({message:a})}return{tenant:i,user:s,diagnostics:r}}function bM(t){return t.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()}var Tg=32;function RM(t){let e=t.toUpperCase();return e=e.replace(/[^A-Za-z0-9]/g,"_"),e=e.replace(/_+/g,"_"),e=e.replace(/^_+|_+$/g,""),e.length>Tg&&(e=e.slice(0,Tg)),e=e.replace(/_+$/,""),e}function Ag(t,e){let r=e?RM(e):"",n=bM(t);return r?`AUGMENT_MCP_${r}_${n}_OAUTH_CREDENTIALS`:`AUGMENT_MCP_${n}_OAUTH_CREDENTIALS`}function Mg(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 CM=1e12,PM=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;function xM(t){let e=PM.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 kM(t){if(typeof t=="number"&&Number.isFinite(t))return t>0&&t<CM?t*1e3:t;if(typeof t=="string")return xM(t)}function $g(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:kM(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=EM.child({prefix:"pi-mcp"}),Z=class extends Error{constructor(){super("MCP OAuth credential persistence failed"),this.name="TokenPersistenceError"}},Qn=class extends Error{},Og=[100,500],TM=Og.length+1,AM=t=>new Promise(e=>{setTimeout(e,t)});function Ig(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}var cd="augment.mcp-access-token.",MM=JSON.stringify({retired:!0}),da=3;function Bt(t){return`${cd}${t}`}function la(t){return`legacy:${t}`}function Et(t){return t?.id?Ag(t.id,t.name):void 0}function li(t){if(t)return{type:t.type??null,id:t.id??null,name:t.name??null,url:zg(t.url),auth:null,registrySource:t.registrySource??null,vfsSource:t.vfsSource??null}}function zg(t){if(typeof t!="string")return null;try{return new URL(t).toString()}catch{return t}}function fi(t){if(typeof t=="string")try{return fi(JSON.parse(t))??t}catch{return t}if(typeof t!="object"||t===null||Array.isArray(t))return t===void 0?void 0:JSON.stringify(t);let e=t;return JSON.stringify({type:e.type??null,id:e.id??null,name:e.name??null,url:zg(e.url),auth:null,registrySource:e.registrySource??null,vfsSource:e.vfsSource??null})}function Tt(t){return fi(li(t))}function $M(t){return fi(li(t))}function IM(t){if(t.credentialState==="active"||t.credentialState==="retired")return t.credentialState;if(t.retired===!0)return"retired"}function Xn(t){try{let e=JSON.parse(t);return{credentialIdentity:fi(e.credentialIdentity),state:IM(e)}}catch{return{}}}function ui(t,e){let r={...t,type:"oauth",credentialIdentity:li(e)};return JSON.stringify(r)}function fn(t,e){let r=Mg({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:li(e),credentialState:"active"})}function OM(t){return JSON.stringify({credentialIdentity:li(t),credentialState:"retired",retired:!0})}function zM(t,e){let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null)return;let n=r,o=$M(e),i=fi(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 ad(t){try{let e=$g(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 di=class{_memory=new Zn;_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=AM){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<da;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=Xn(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=ad(s.value);if(!c)throw new Z;try{await r.upsertUserSecret(n,fn(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=Xn(i.value);if(s.state!=="active"||s.credentialIdentity!==n||!ad(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,fn(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:la(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!==la(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!==ui(i,a)))try{return{revision:await r.upsertUserSecret(n,ui(s,c),u.revision),domain:la(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!==fn(o,s)))try{return{revision:await r.upsertUserSecret(n,fn(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!==ui(o,s)))try{await r.upsertUserSecret(n,ui(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<da;s+=1){let a=await e.getUserSecretWithVersion(r),c=a?Xn(a.value):{};if(c.state==="retired"||c.credentialIdentity!==void 0&&c.credentialIdentity!==i)throw new Z;try{return await this._upsertUserSecretOnce(e,r,fn(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<da;i+=1){let s=await e.getUserSecretWithVersion(r),a=s?Xn(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,OM(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:la(e)}}snapshot(){return this._memory.snapshot()}async _asPersistenceResult(e){try{return await e}catch{throw new Z}}_enqueueWrite(e,r,n){let o=Ig(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?TM:1;for(let s=0;s<i;s+=1){if(this._isLegacyPersistenceGateClosed(o))throw new Qn;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 Qn}_persistenceRetryDelay(e,r,n){let o=n?Og[r]:void 0,i=!(e instanceof Z)&&sd(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),ui(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 Qn||!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),MM)}):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 Qn&&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(Ig(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<da;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=Xn(s.value);if(a.state==="retired"||(a.credentialIdentity===void 0?i.auth!=="oauth":a.credentialIdentity!==o))return{identityRejected:!0};let c=ad(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,fn(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=Xn(c.value);if(u.state==="retired"||u.credentialIdentity!==void 0&&u.credentialIdentity!==s)return}return await e.upsertUserSecret(i,fn(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?zM(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 Ng="Augment Code",Dg="https://augmentcode.com",Lg="https://storage.googleapis.com/augment-bazel-data/public/auth0/2024-10-15-auth0-augment-logo-512x512.png";var DM=1e3,LM=500;function dd(t,e=Date.now()){return t.expiresAt!==void 0&&e+2e4>=t.expiresAt}function pi(t,e=Date.now()){return t.expiresAt!==void 0&&t.expiresAt<=e}var ud=class extends Error{constructor(){super("OAuth token response contained no access token"),Object.defineProperty(this,"name",{value:"MalformedRefreshResponseError",configurable:!0})}};function jg(t){return new URLSearchParams({k:t}).toString().slice(2)}function jM(t,e){let r=`${jg(t)}:${jg(e)}`;return`Basic ${btoa(r)}`}function Hg(t){let e=t.client.client_secret;return e?.trim()?e:void 0}function FM(t){return t.client.token_endpoint_auth_method==="none"||!Hg(t)?"none":t.client.token_endpoint_auth_method==="client_secret_basic"?"basic":"body"}function UM(t){return t==="basic"?"body":t==="body"?"basic":void 0}function qM(t){try{let e=JSON.parse(t);return typeof e.error=="string"?e.error:void 0}catch{return}}var HM=401,Gg=500;function ld(t,...e){return t.status<Gg&&t.oauthErrorCode!==void 0&&e.includes(t.oauthErrorCode)}function Fg(t){return ld(t,"invalid_client","unauthorized")?!0:t.oauthErrorCode===void 0&&t.status===HM}async function Ug(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=Hg(t);e==="basic"&&i?n.Authorization=jM(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=qM(c),d=c.slice(0,LM);throw new pn(s.status,s.statusText,d,u)}let a=await s.json();if(!a.access_token)throw new ud;return{accessToken:a.access_token,refreshToken:a.refresh_token||t.refreshToken,expiresAt:a.expires_in?Date.now()+a.expires_in*DM:void 0,tokenType:a.token_type??t.tokenType,scope:a.scope??t.scope,serverMetadata:t.serverMetadata,client:t.client,resource:t.resource}}async function qg(t,e){try{return await Ug(t,e,t.resource)}catch(r){if(r instanceof pn&&t.resource&&ld(r,"invalid_target"))return await Ug(t,e,void 0);throw r}}var pn=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 fd(t){return!(t instanceof pn)||t.status>=Gg?!1:ld(t,"invalid_grant","invalid_client")||t.clientAuthPlacementsExhausted}async function pd(t){if(!t.refreshToken)throw new Error("No refresh token available");let e=t,r=FM(t);try{return await qg(e,r)}catch(n){let o=UM(r);if(!(n instanceof pn)||!o||!Fg(n))throw n;try{return await qg(e,o)}catch(i){throw i instanceof pn&&Fg(i)?i.withClientAuthPlacementsExhausted():i}}}import{logger as D0}from"@hermes/logger";var gd;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(gd="oauth4webapi/v3.8.6");function no(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 wd=Symbol(),GM=Symbol(),ZM=Symbol(),mn=Symbol();var Zg=Symbol();var BM=new TextEncoder,WM=new TextDecoder;function yd(t){return typeof t=="string"?BM.encode(t):WM.decode(t)}var vd;Uint8Array.prototype.toBase64?vd=t=>(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),t.toBase64({alphabet:"base64url",omitPadding:!0})):vd=e=>{e instanceof ArrayBuffer&&(e=new Uint8Array(e));let r=[];for(let n=0;n<e.byteLength;n+=32768)r.push(String.fromCharCode.apply(null,e.subarray(n,n+32768)));return btoa(r.join("")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")};var _d;Uint8Array.fromBase64?_d=t=>{try{return Uint8Array.fromBase64(t,{alphabet:"base64url"})}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}}:_d=t=>{try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"")),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}catch(e){throw pe("The input to be decoded is not correctly encoded.",Wt,e)}};function pa(t){return typeof t=="string"?_d(t):vd(t)}var to=class extends Error{code;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=P0,Error.captureStackTrace?.(this,this.constructor)}},hi=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 hi(t,{code:e,cause:r})}function ha(t){return!(t===null||typeof t!="object"||Array.isArray(t))}function bd(t){no(t,Headers)&&(t=Object.fromEntries(t.entries()));let e=new Headers(t??{});if(gd&&!e.has("user-agent")&&e.set("user-agent",gd),e.has("authorization"))throw pe('"options.headers" must not include the "authorization" header name',Wt);return e}function Rd(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 VM(t){return t.includes("//")?t.replace("//","/"):t}function KM(t,e,r=!1){return t.pathname==="/"?t.pathname=e:t.pathname=VM(`${e}/${r?t.pathname:t.pathname.replace(/(\/)$/,"")}`),t}async function JM(t,e,r,n){if(!(t instanceof URL))throw pe(`"${e}" must be an instance of URL`,Je);ry(t,n?.[wd]!==!0);let o=r(new URL(t.href)),i=bd(n?.headers);return i.set("accept","application/json"),(n?.[mn]||fetch)(o.href,{body:void 0,headers:Object.fromEntries(i.entries()),method:"GET",redirect:"manual",signal:Rd(o,n?.signal)})}function eo(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 Vg(t,e){let r=t;if(!(r instanceof URL)&&r!==ya)throw pe('"expectedIssuerIdentifier" must be an instance of URL',Je);if(!no(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)',Md,e);yi(e);let n=await wa(e);if($e(n.issuer,'"response" body "issuer" property',V,{body:n}),r!==ya&&new URL(n.issuer).href!==r.href)throw O('"response" body "issuer" property does not match the expected value',_a,{expected:r.href,body:n,attribute:"issuer"});return n}function Kg(t){XM(t,"application/json")}function YM(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,k0,t)}function XM(t,e){if(d0(t)!==e)throw YM(t,e)}function Cd(){return pa(crypto.getRandomValues(new Uint8Array(32)))}function Jg(){return Cd()}function Yg(){return Cd()}function Xg(){return Cd()}async function Qg(t){return $e(t,"codeVerifier"),pa(await crypto.subtle.digest("SHA-256",yd(t)))}function Pd(t){let e=t?.[GM];return typeof e=="number"&&Number.isFinite(e)?e:0}function xd(t){let e=t?.[ZM];return typeof e=="number"&&Number.isFinite(e)&&Math.sign(e)!==-1?e:30}function kd(){return Math.floor(Date.now()/1e3)}function va(t){if(typeof t!="object"||t===null)throw pe('"as" must be an object',Je);$e(t.issuer,'"as.issuer"')}function Ed(t){if(typeof t!="object"||t===null)throw pe('"client" must be an object',Je);$e(t.client_id,'"client.client_id"')}function Bg(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 Td(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{n.set("client_id",r.client_id),n.set("client_secret",t)}}function ey(t){return $e(t,'"clientSecret"'),(e,r,n,o)=>{let i=Bg(r.client_id),s=Bg(t),a=btoa(`${i}:${s}`);o.set("authorization",`Basic ${a}`)}}function ty(){return(t,e,r,n)=>{r.set("client_id",e.client_id)}}var QM=URL.parse?(t,e)=>URL.parse(t,e):(t,e)=>{try{return new URL(t,e)}catch{return null}};function ry(t,e){if(e&&t.protocol!=="https:")throw O("only requests to HTTPS are allowed",E0,t);if(t.protocol!=="https:"&&t.protocol!=="http:")throw O("only HTTP and HTTPS requests are allowed",T0,t)}function Wg(t,e,r,n){let o;if(typeof t!="string"||!(o=QM(t)))throw O(`authorization server metadata does not contain a valid ${r?`"as.mtls_endpoint_aliases.${e}"`:`"as.${e}"`}`,t===void 0?A0:M0,{attribute:r?`mtls_endpoint_aliases.${e}`:e});return ry(o,n),o}function ny(t,e,r,n){return r&&t.mtls_endpoint_aliases&&e in t.mtls_endpoint_aliases?Wg(t.mtls_endpoint_aliases[e],e,r,n):Wg(t[e],e,r,n)}var ro=class extends Error{cause;code;error;status;error_description;response;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=C0,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)}},mi=class extends Error{cause;code;error;error_description;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=x0,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)}},gi=class extends Error{cause;code;response;status;constructor(e,r){super(e,r),this.name=this.constructor.name,this.code=R0,this.cause=r.cause,this.status=r.response.status,this.response=r.response,Object.defineProperty(this,"response",{enumerable:!1}),Error.captureStackTrace?.(this,this.constructor)}},ma="[a-zA-Z0-9!#$%&\\'\\*\\+\\-\\.\\^_`\\|~]+",e0="[a-zA-Z0-9\\-\\._\\~\\+\\/]+={0,2}",t0='"((?:[^"\\\\]|\\\\[\\s\\S])*)"',r0="("+ma+")\\s*=\\s*"+t0,n0="("+ma+")\\s*=\\s*("+ma+")",o0=new RegExp("^[,\\s]*("+ma+")"),i0=new RegExp("^[,\\s]*"+r0+"[,\\s]*(.*)"),s0=new RegExp("^[,\\s]*"+n0+"[,\\s]*(.*)"),a0=new RegExp("^("+e0+")(?:$|[,\\s])(.*)");function c0(t){if(!no(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(o0),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(i0)){if([,f,p,n]=o,p.includes("\\"))try{p=JSON.parse(`"${p}"`)}catch{}u[f.toLowerCase()]=p;continue}if(o=n.match(s0)){[,f,p,n]=o,u[f.toLowerCase()]=p;continue}if(o=n.match(a0)){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 u0(t){if(t.status>399&&t.status<500){yi(t),Kg(t);try{let e=await t.clone().json();if(ha(e)&&typeof e.error=="string"&&e.error.length)return e}catch{}}}async function oy(t,e,r){if(t.status!==e){h0(t);let n;throw(n=await u0(t))?(await t.body?.cancel(),new ro("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)`,Md,t)}}function iy(t){if(!Ad.has(t))throw pe('"options.DPoP" is not a valid DPoPHandle',Wt)}function d0(t){return t.headers.get("content-type")?.split(";")[0]}async function l0(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?.[mn]||fetch)(n.href,{body:o,headers:Object.fromEntries(i.entries()),method:"POST",redirect:"manual",signal:Rd(n,s?.signal)})}async function f0(t,e,r,n,o,i){let s=ny(t,"token_endpoint",e.use_mtls_endpoint_aliases,i?.[wd]!==!0);o.set("grant_type",n);let a=bd(i?.headers);a.set("accept","application/json"),i?.DPoP!==void 0&&(iy(i.DPoP),await i.DPoP.addProof(s,a,"POST"));let c=await l0(t,e,r,s,o,a,i);return i?.DPoP?.cacheNonce(c,s),c}var sy=new WeakMap,p0=new WeakMap;function ay(t){if(!t.id_token)return;let e=sy.get(t);if(!e)throw pe('"ref" was already garbage collected or did not resolve from the proper sources',Wt);return e}async function cy(t,e,r,n,o,i){if(va(t),Ed(e),!no(r,Response))throw pe('"response" must be an instance of Response',Je);await oy(r,200,"Token Endpoint"),yi(r);let s=await wa(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;eo(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&&(eo(e.default_max_age,!0,'"client.default_max_age"'),a.push("auth_time")),n?.length&&a.push(...n);let{claims:c,jwt:u}=await $0(s.id_token,I0.bind(void 0,e.id_token_signed_response_alg,t.id_token_signing_alg_values_supported,"RS256"),Pd(e),xd(e),o).then(S0.bind(void 0,a)).then(g0.bind(void 0,t)).then(m0.bind(void 0,e.client_id));if(Array.isArray(c.aud)&&c.aud.length!==1){if(c.azp===void 0)throw O('ID Token "aud" (audience) claim includes additional untrusted audiences',$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&&eo(c.auth_time,!0,'ID Token "auth_time" (authentication time)',V,{claims:c}),p0.set(r,u),sy.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 to("unsupported `token_type` value",{cause:{body:s}});return s}function h0(t){let e;if(e=c0(t))throw new gi("server responded with a challenge in the WWW-Authenticate HTTP Header",{cause:e,response:t})}function m0(t,e){if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t))throw O('unexpected JWT "aud" (audience) claim value',$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 g0(t,e){let r=t[N0]?.(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 Ad=new WeakSet;function y0(t){return Ad.add(t),t}var v0=Symbol();async function uy(t,e,r,n,o,i,s){if(va(t),Ed(e),!Ad.has(n))throw pe('"callbackParameters" must be an instance of URLSearchParams obtained from "validateAuthResponse()", or "validateJwtAuthResponse()',Wt);$e(o,'"redirectUri"');let a=hn(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!==v0&&($e(i,'"codeVerifier"'),c.set("code_verifier",i)),f0(t,e,r,"authorization_code",c,s)}var _0={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 S0(t,e){for(let r of t)if(e.claims[r]===void 0)throw O(`JWT "${r}" (${_0[r]}) claim missing`,V,{claims:e.claims});return e}var hd=Symbol(),md=Symbol();async function dy(t,e,r,n){return typeof n?.expectedNonce=="string"||typeof n?.maxAge=="number"||n?.requireIdToken?w0(t,e,r,n.expectedNonce,n.maxAge,n[Zg],n.recognizedTokenTypes):b0(t,e,r,n?.[Zg],n?.recognizedTokenTypes)}async function w0(t,e,r,n,o,i,s){let a=[];switch(n){case void 0:n=hd;break;case hd:break;default:$e(n,'"expectedNonce" argument'),a.push("nonce")}switch(o??=e.default_max_age,o){case void 0:o=md;break;case md:break;default:eo(o,!0,'"maxAge" argument'),a.push("auth_time")}let c=await cy(t,e,r,a,i,s);$e(c.id_token,'"response" body "id_token" property',V,{body:c});let u=ay(c);if(o!==md){let d=kd()+Pd(e),l=xd(e);if(u.auth_time+o<d-l)throw O("too much time has elapsed since the last End-User authentication",ga,{claims:u,now:d,tolerance:l,claim:"auth_time"})}if(n===hd){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 b0(t,e,r,n,o){let i=await cy(t,e,r,void 0,n,o),s=ay(i);if(s){if(e.default_max_age!==void 0){eo(e.default_max_age,!0,'"client.default_max_age"');let a=kd()+Pd(e),c=xd(e);if(s.auth_time+e.default_max_age<a-c)throw O("too much time has elapsed since the last End-User authentication",ga,{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 R0="OAUTH_WWW_AUTHENTICATE_CHALLENGE",C0="OAUTH_RESPONSE_BODY_ERROR",P0="OAUTH_UNSUPPORTED_OPERATION",x0="OAUTH_AUTHORIZATION_RESPONSE_ERROR";var Sd="OAUTH_PARSE_ERROR",V="OAUTH_INVALID_RESPONSE";var k0="OAUTH_RESPONSE_IS_NOT_JSON",Md="OAUTH_RESPONSE_IS_NOT_CONFORM",E0="OAUTH_HTTP_REQUEST_FORBIDDEN",T0="OAUTH_REQUEST_PROTOCOL_FORBIDDEN",ga="OAUTH_JWT_TIMESTAMP_CHECK_FAILED",$r="OAUTH_JWT_CLAIM_COMPARISON_FAILED",_a="OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED";var A0="OAUTH_MISSING_SERVER_METADATA",M0="OAUTH_INVALID_SERVER_METADATA";function yi(t){if(t.bodyUsed)throw pe('"response" body has been used already',Wt)}async function $0(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 to("JWE decryption is not configured",{cause:t});if(a!==3)throw O("Invalid JWT",V,t);let c;try{c=JSON.parse(yd(pa(i)))}catch(l){throw O("failed to parse JWT Header body as base64url encoded JSON",Sd,l)}if(!ha(c))throw O("JWT Header must be a top level object",V,t);if(e(c),c.crit!==void 0)throw new to('no JWT "crit" header parameter extensions are supported',{cause:{header:c}});let u;try{u=JSON.parse(yd(pa(s)))}catch(l){throw O("failed to parse JWT Payload body as base64url encoded JSON",Sd,l)}if(!ha(u))throw O("JWT Payload must be a top level object",V,t);let d=kd()+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',ga,{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',ga,{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 I0(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 hn(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 O0=Symbol(),z0=Symbol();function ly(t,e,r,n){if(va(t),Ed(e),r instanceof URL&&(r=r.searchParams),!(r instanceof URLSearchParams))throw pe('"parameters" must be an instance of URLSearchParams, or URL',Je);if(hn(r,"response"))throw O('"parameters" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()',V,{parameters:r});let o=hn(r,"iss"),i=hn(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 z0:if(i!==void 0)throw O('unexpected "state" response parameter encountered',V,{expected:void 0,parameters:r});break;case O0: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(hn(r,"error"))throw new mi("authorization response from the server is an error",{cause:r});let a=hn(r,"id_token"),c=hn(r,"token");if(a!==void 0||c!==void 0)throw new to("implicit and hybrid flows are not supported");return y0(new URLSearchParams(r))}async function fy(t,e,r){va(t);let n=ny(t,"registration_endpoint",e.use_mtls_endpoint_aliases,r?.[wd]!==!0),o=bd(r?.headers);o.set("accept","application/json"),o.set("content-type","application/json");let i="POST";r?.DPoP&&(iy(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?.[mn]||fetch)(n.href,{body:JSON.stringify(e),headers:Object.fromEntries(o.entries()),method:i,redirect:"manual",signal:Rd(n,r?.signal)});return r?.DPoP?.cacheNonce(s,n),s}async function py(t){if(!no(t,Response))throw pe('"response" must be an instance of Response',Je);await oy(t,201,"Dynamic Client Registration Endpoint"),yi(t);let e=await wa(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&&eo(e.client_secret_expires_at,!0,'"response" body "client_secret_expires_at" property',V,{body:e}),e}async function hy(t,e){return JM(t,"resourceIdentifier",r=>(KM(r,".well-known/oauth-protected-resource",!0),r),e)}async function Sa(t,e){let r=t;if(!(r instanceof URL)&&r!==ya)throw pe('"expectedResourceIdentifier" must be an instance of URL',Je);if(!no(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)',Md,e);yi(e);let n=await wa(e);if($e(n.resource,'"response" body "resource" property',V,{body:n}),r!==ya&&new URL(n.resource).href!==r.href)throw O('"response" body "resource" property does not match the expected value',_a,{expected:r.href,body:n,attribute:"resource"});return n}async function wa(t,e=Kg){let r;try{r=await t.json()}catch(n){throw e(t),O('failed to parse "response" body as JSON',Sd,n)}if(!ha(r))throw O('"response" body must be a top level object',V,{body:r});return r}var ya=Symbol(),N0=Symbol();var yy=D0.child({prefix:"pi-mcp"}),vi=1e4,L0=1e3,j0=401,my=200,F0=/(?:^|[\s,])resource_metadata\s*=\s*"([^"]+)"/,U0=/(?:^|[\s,])resource_metadata\s*=\s*([^,\s]+)/,vy;function oo(){return vy??globalThis.fetch}function _y(t){let e=AbortSignal.timeout(1e4),r=t?.signal?AbortSignal.any([t.signal,e]):e;return{...t,signal:r}}function Sy(t){let e=new URL(t.href);return e.search="",e.hash="",e}async function Id(t){let e=Sy(t);try{let r=await q0(e),n=r?.authorization_servers?.map(o=>new URL(o))??[e];for(let o of n){let i=await W0(o);if(i)return Object.assign(i,{resourceScopes:r?.scopes_supported,resourceIdentifier:r?.resource})}}catch(r){throw Ca(r)}throw new Error("Failed to discover metadata URL")}async function q0(t){try{let e=await hy(t,{signal:AbortSignal.timeout(vi),[mn]:vy??void 0});return e.ok?await Sa(t,e):(e.body?.cancel().catch(()=>{}),await wy(t,e.headers.get("www-authenticate"))??await gy(t))}catch{return await gy(t)}}async function gy(t){for(let e of["HEAD","GET"])try{let r=await oo()(t,{method:e,signal:AbortSignal.timeout(vi)});r.body?.cancel().catch(()=>{});let n=await wy(t,r.headers.get("www-authenticate"));if(n)return n}catch{}}async function wy(t,e){let r=B0(e);if(r)try{let n=await oo()(r,{signal:AbortSignal.timeout(vi)});return await H0(t,n)}catch{return}}async function H0(t,e){let r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers};try{return await Sa(t,new Response(r,n))}catch(o){if(!(o instanceof hi)||o.code!==_a)throw o;let i=G0(r);if(!i||!Z0(i,t))throw o;return await Sa(i,new Response(r,n))}}function G0(t){try{let e=JSON.parse(t);return typeof e.resource!="string"?void 0:new URL(e.resource)}catch{return}}function Z0(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 B0(t){if(!t)return;let e=t.match(F0),r=t.match(U0),n=e?.[1]??r?.[1];if(n)try{return new URL(n)}catch{return}}async function W0(t){for(let e of V0(t))try{let r=new URL(e,t),n=await oo()(r,{signal:AbortSignal.timeout(vi)});if(n.body?.cancel().catch(()=>{}),!n.ok)continue;return r}catch{}}function V0(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 Od(t){try{let e=await oo()(t,{signal:AbortSignal.timeout(vi)}),r=await e.text(),n={status:e.status,statusText:e.statusText,headers:e.headers},o=await K0(new Response(r,n));if(!o)throw new Error("Missing issuer from discovery response");return await Vg(o,new Response(r,n))}catch(e){throw Ca(e)}}async function K0(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 $d=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 J0(t){if(!t.clientId)throw new Error("clientId is required to build client from config");let e=t.clientSecret?.trim();return{client_id:t.clientId,...e?{client_secret:e}:{}}}async function zd({config:t,serverMetadata:e,redirectUris:r}){let n=t.clientId?.trim(),o=t.clientSecret?.trim();if(!!n&&(!!o||!e.registration_endpoint))return J0({...t,clientId:n});if(!e.registration_endpoint)throw new $d(e.issuer);return await Y0(e,r)}async function Y0(t,e){try{let r=t.token_endpoint_auth_methods_supported?.includes("none")??!1,n=await fy(t,{client_name:Ng,client_uri:Dg,logo_uri:Lg,redirect_uris:e,grant_types:["authorization_code","refresh_token"],response_types:["code"],...r?{token_endpoint_auth_method:"none"}:{}},{[mn]:X0});return n.ok||yy.error(`Dynamic client registration failed with HTTP status ${n.status} (${n.statusText})`),await py(n)}catch(r){throw Ca(r)}}async function X0(t,e){let r=await oo()(t,_y(e)),n=await r.text(),o={status:r.status,statusText:r.statusText,headers:r.headers};if(r.ok||yy.error(`Dynamic client registration error response body (HTTP ${r.status} ${r.statusText}): ${e$(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 Q0(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}),oo()(t,_y(o))}function e$(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>my?`${t.slice(0,my)}\u2026`:t}}async function ba(t,e,r,n,o,i,s){if(!r.authorization_endpoint)throw new Error("No authorization endpoint");let a=Jg(),c=await Qg(a),u=Yg(),d,l=(o??r.scopes_supported?.join(" "))?.split(/\s+/).filter(Boolean),f=!1;!s?.disableOfflineAccessAugmentation&&l?.length&&!l.includes("offline_access")&&r.scopes_supported?.includes("offline_access")&&(l.push("offline_access"),f=!0);let p=l?.join(" ")||void 0,h=Sy(i??t).toString(),m=new URL(r.authorization_endpoint);return m.searchParams.set("response_type","code"),m.searchParams.set("client_id",e.client_id),m.searchParams.set("code_challenge",c),m.searchParams.set("code_challenge_method","S256"),m.searchParams.set("redirect_uri",n),m.searchParams.set("resource",h),m.searchParams.set("state",u),p&&m.searchParams.set("scope",p),l?.includes("offline_access")&&m.searchParams.set("prompt","consent"),r.code_challenge_methods_supported?.includes("S256")||(d=Xg(),m.searchParams.set("nonce",d)),{client:e,serverMetadata:r,redirectUri:n,codeVerifier:a,nonce:d,scope:p,state:u,resource:h,offlineAccessAugmented:f,authUri:m}}function Ra(t,e){return e.offlineAccessAugmented===!0&&t.get("error")==="invalid_scope"&&t.get("state")===e.state}async function Nd(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 ba(new URL(t.resource),t.client,t.serverMetadata,t.redirectUri,e||void 0,void 0,{disableOfflineAccessAugmentation:!0})}async function t$(t,e,r){let n=await uy(t.serverMetadata,t.client,r,e,t.redirectUri,t.codeVerifier,{[mn]:Q0,...t.resource?{additionalParameters:{resource:t.resource}}:{}});return dy(t.serverMetadata,t.client,await r$(n))}async function Dd(t,e){try{let r=ly(e.serverMetadata,e.client,t,e.state),n=await o$(e.client,o=>t$(e,r,o));return a$(n,e.serverMetadata,e.client,void 0,e.resource)}catch(r){throw Ca(r)}}async function r$(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 by(t){let e=t.client_secret;return typeof e=="string"&&e.length>0?e:void 0}function n$(t){let e=by(t);return e===void 0?ty():t.token_endpoint_auth_method==="client_secret_basic"?ey(e):Td(e)}async function o$(t,e){try{return await e(n$(t))}catch(r){let n=i$(t);if(n&&s$(r))return await e(n);throw r}}function i$(t){let e=by(t);if(t.token_endpoint_auth_method==="client_secret_basic"&&e!==void 0)return Td(e)}function s$(t){return t instanceof ro?t.error==="invalid_client"||t.error==="unauthorized":t instanceof gi?t.status===j0||t.cause.some(({parameters:e})=>{let{error:r}=e;return r==="invalid_client"||r==="unauthorized"}):!1}function a$(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*L0:void 0,tokenType:t.token_type,scope:t.scope,resource:o,serverMetadata:e,client:r}}function Ca(t){if(t instanceof ro||t instanceof mi){let e=t.error_description?` (${t.error_description})`:"";return new Error(`${t.message}${e}`,{cause:t})}return t instanceof Error?t:new Error(String(t))}var c$=/(authorization|auth[_-]?token|access[_-]?token|refresh[_-]?token|\btoken\b|secret|password|passwd|\bpwd\b|api[_-]?key|apikey|client[_-]?secret|private[_-]?key|cookie|session[_-]?id|credential|bearer)/i,Ry=/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,Cy=/\b(bearer|token)\s+[A-Za-z0-9._~+/-]{12,}=*/i,Py=/\b(?=[A-Za-z0-9._-]*[A-Za-z])(?=[A-Za-z0-9._-]*\d)[A-Za-z0-9._-]{24,}\b/,_i="[redacted]";function u$(t){return Ry.test(t)||Cy.test(t)||Py.test(t)}var d$=new RegExp(Ry.source,"g"),l$=new RegExp(Cy.source,"gi"),f$=new RegExp(Py.source,"g");function xy(t,e){let r=[...t];return r.length<=e?t:`${r.slice(0,Math.max(e-3,0)).join("")}...`}function jd(t){return t&&xy(t,8192).replace(d$,_i).replace(l$,r=>`${r.match(/^(bearer|token)\s+/i)?.[0]??""}${_i}`).replace(f$,_i)}function Ld(t,e,r){if(e)return _i;if(typeof t=="string")return u$(t)?_i:t;if(t===null||typeof t!="object")return t;if(r>=6)return"[truncated]";if(Array.isArray(t))return t.map(o=>Ld(o,!1,r+1));let n={};for(let[o,i]of Object.entries(t))n[o]=Ld(i,c$.test(o),r+1);return n}function ky(t,e=500){if(t==null)return;let r=Ld(t,!1,0),n;try{n=JSON.stringify(r)}catch{return"[unserializable structured content]"}if(!(!n||n==="{}"||n==="[]"||n==='""'))return xy(n,e)}var Ty={reportError:()=>{}},Ey=Symbol.for("__pi_mcp_error_reporter_slot__");function Ay(){let t=globalThis,e=t[Ey];return e||(e={reporter:null},t[Ey]=e),e}function My(t){let e=Ay(),r=e.reporter??Ty;return e.reporter=t,r}function p$(){return Ay().reporter??Ty}function Fd(t,e){try{p$().reportError(t,e)}catch{}}import{logger as h$}from"@hermes/logger";var Ud=h$.child({prefix:"pi-mcp"});function $y(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++):Ud.warn(`Skipping malformed header-secret entry "${s}"`);t.headerSecrets=i,t.headerSecretFailures??={};for(let s of Object.keys(i))delete t.headerSecretFailures[s];Ud.info(`Applied pushed MCP header secret update for ${n} key(s), deleted ${o}`)}function Iy(t){return async e=>{if(t.headerSecretFailures??={},!e.startsWith(cd)){let o=t.headerSecrets[e];if(o!==void 0)return o;let i=t.headerSecretFailures[e];if(i==="missing"||i==="permission_denied")return{reason:i}}let r=t.secretsClient;if(r)try{let o=await r.getSecret(e);return o!==void 0?(delete t.headerSecretFailures[e],o):{reason:t.headerSecretFailures[e]??"missing"}}catch{return{reason:"transient"}}let n=t.headerSecretFailures[e];return n===void 0?void 0:{reason:n}}}function Oy(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,Ud.info(`Applied MCP header secret failure update for ${Object.keys(n).length} key(s)`)}function zy(t){return t.secretsClient!==void 0||Object.keys(t.headerSecrets).length>0||Object.keys(t.headerSecretFailures??{}).length>0}import{logger as m$}from"@hermes/logger";var Si=m$.child({prefix:"pi-mcp"}),g$="$augment-",wi=/\$augment-[a-zA-Z0-9_.-]+/g,y$=new RegExp(wi.source);function bi(t){return y$.test(t)}function Pa(t){return t.slice(g$.length)}function Ri(t){let e=new Set;for(let r of Object.values(t))for(let n of r.matchAll(wi))e.add(Pa(n[0]));return[...e].sort()}var v$=["permission_denied","missing","transient"];function Ny(t){let e=new Set(t);return v$.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 Dy(t,e,r,n,o,i,s){let a=[...t.matchAll(wi)];if(a.length===0)return t;let c=t;for(let u of a.reverse()){let d=u[0],l=u.index,f=Pa(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),Si.warn(`Secret "${f}" unavailable for "${e}"; leaving reference as-is`);continue}let h=p;h.trim()===""&&(o.add(f),Si.warn(`Secret "${f}" resolved empty for "${e}"`));let m=c.slice(0,l),g=s?s(h,m):h;c=m+g+c.slice(l+d.length),Si.debug(`Resolved secret reference for "${e}"`)}catch(p){n.add(f),i.set(f,"transient"),Si.error(`Failed to resolve secret "${f}" for "${e}" (${p instanceof Error?p.name:"non-Error"}); leaving reference as-is`)}}return c}async function Ly({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(!bi(c)){n[a]=c;continue}let u=e[a];if(u!==void 0){Si.debug(`"${a}" references a secret but is already set in the local environment; using local value`),n[a]=u;continue}n[a]=await Dy(c,a,r,o,i,s)}return{resolved:n,unresolvedKeys:[...o].sort(),emptyKeys:[...i].sort(),...s.size===0?{}:{failureReasons:Object.fromEntries([...s.entries()].sort(([a],[c])=>a.localeCompare(c)))}}}var _$=/["$`\\]/g;function S$(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 w$(t,e){let r=S$(e);if(r==="double")return t.replace(_$,"\\$&");let n=t.replaceAll("'","'\\''");return r==="single"?n:`'${n}'`}async function jy(t,e,r=!0){let n=new Set,o=new Set,i=new Map;return{resolved:await Dy(t,"command",e,n,o,i,r?w$: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 tq}from"node:async_hooks";var Fy,qd=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.")}},io=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Fy=globalThis).__zod_globalConfig??(Fy.__zod_globalConfig={});var so=globalThis.__zod_globalConfig;function Ye(t){return t&&Object.assign(so,t),so}var H={};Ou(H,{BIGINT_FORMAT_RANGES:()=>Gy,Class:()=>Gd,NUMBER_FORMAT_RANGES:()=>Jd,aborted:()=>zr,allowsEval:()=>Wd,assert:()=>x$,assertEqual:()=>b$,assertIs:()=>C$,assertNever:()=>P$,assertNotEqual:()=>R$,assignProp:()=>Ir,base64ToUint8Array:()=>By,base64urlToUint8Array:()=>H$,cached:()=>co,captureStackTrace:()=>Ea,cleanEnum:()=>q$,cleanRegex:()=>ki,clone:()=>gt,cloneDef:()=>E$,createTransparentProxy:()=>O$,defineLazy:()=>Y,esc:()=>ka,escapeRegex:()=>sr,explicitlyAborted:()=>Yd,extend:()=>D$,finalizeIssue:()=>yt,floatSafeRemainder:()=>Zd,getElementAtPath:()=>T$,getEnumValues:()=>Pi,getLengthableOrigin:()=>Ei,getParsedType:()=>I$,getSizableOrigin:()=>Zy,hexToUint8Array:()=>Z$,isObject:()=>gn,isPlainObject:()=>Or,issue:()=>uo,joinValues:()=>xa,jsonStringifyReplacer:()=>ao,merge:()=>j$,mergeDefs:()=>ir,normalizeParams:()=>A,nullish:()=>xi,numKeys:()=>$$,objectClone:()=>k$,omit:()=>N$,optionalKeys:()=>Kd,parsedType:()=>Xd,partial:()=>F$,pick:()=>z$,prefixIssues:()=>ar,primitiveTypes:()=>Hy,promiseAllObject:()=>A$,propertyKeyTypes:()=>Vd,randomString:()=>M$,required:()=>U$,safeExtend:()=>L$,shallowClone:()=>qy,slugify:()=>Bd,stringifyPrimitive:()=>Ta,uint8ArrayToBase64:()=>Wy,uint8ArrayToBase64url:()=>G$,uint8ArrayToHex:()=>B$,unwrapMessage:()=>Ci});function b$(t){return t}function R$(t){return t}function C$(t){}function P$(t){throw new Error("Unexpected value in exhaustive check")}function x$(t){}function Pi(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 xa(t,e="|"){return t.map(r=>Ta(r)).join(e)}function ao(t,e){return typeof e=="bigint"?e.toString():e}function co(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function xi(t){return t==null}function ki(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Zd(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 Uy=Symbol("evaluating");function Y(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Uy)return n===void 0&&(n=Uy,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function k$(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Ir(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 E$(t){return ir(t._zod.def)}function T$(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function A$(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 M$(t=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<t;n++)r+=e[Math.floor(Math.random()*e.length)];return r}function ka(t){return JSON.stringify(t)}function Bd(t){return t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ea="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function gn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Wd=co(()=>{if(so.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Or(t){if(gn(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(gn(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function qy(t){return Or(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}function $$(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var I$=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}`)}},Vd=new Set(["string","number","symbol"]),Hy=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 O$(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 Ta(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Kd(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Jd={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]},Gy={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function z$(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 Ir(this,"shape",s),s},checks:[]});return gt(t,i)}function N$(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 Ir(this,"shape",s),s},checks:[]});return gt(t,i)}function D$(t,e){if(!Or(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 Ir(this,"shape",i),i}});return gt(t,o)}function L$(t,e){if(!Or(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 Ir(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=ir(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Ir(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return gt(t,r)}function F$(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 Ir(this,"shape",c),c},checks:[]});return gt(e,s)}function U$(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 Ir(this,"shape",i),i}});return gt(e,n)}function zr(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 Yd(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 Ci(t){return typeof t=="string"?t:t?.message}function yt(t,e,r){let n=t.message?t.message:Ci(t.inst?._zod.def?.error?.(t))??Ci(e?.error?.(t))??Ci(r.customError?.(t))??Ci(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 Zy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Ei(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Xd(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 uo(...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 By(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 Wy(t){let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}function H$(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return By(e+r)}function G$(t){return Wy(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Z$(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 B$(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Gd=class{constructor(...e){}};var Vy=(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,ao,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Aa=_("$ZodError",Vy),Qd=_("$ZodError",Vy,{Parent:Error});function el(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 tl(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 Ma=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 Ea(a,o?.callee),a}return s.value};var $a=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 Ea(a,o?.callee),a}return s.value};var Ti=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??Aa)(i.issues.map(s=>yt(s,o,Ye())))}:{success:!0,data:i.value}},Ai=Ti(Qd),Mi=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}},Ia=Mi(Qd),Ky=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ma(t)(e,r,o)};var Jy=t=>(e,r,n)=>Ma(t)(e,r,n);var Yy=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return $a(t)(e,r,o)};var Xy=t=>async(e,r,n)=>$a(t)(e,r,n);var Qy=t=>(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Ti(t)(e,r,o)};var ev=t=>(e,r,n)=>Ti(t)(e,r,n);var tv=t=>async(e,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return Mi(t)(e,r,o)};var rv=t=>async(e,r,n)=>Mi(t)(e,r,n);var nv=/^[cC][0-9a-z]{6,}$/,ov=/^[0-9a-z]+$/,iv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,sv=/^[0-9a-vA-V]{20}$/,av=/^[A-Za-z0-9]{27}$/,cv=/^[a-zA-Z0-9_-]{21}$/,uv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var dv=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,rl=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;var lv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var V$="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function fv(){return new RegExp(V$,"u")}var pv=/^(?:(?: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])$/,hv=/^(([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 mv=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,gv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,yv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,nl=/^[A-Za-z0-9_-]*$/;var vv=/^https?$/,_v=/^\+[1-9]\d{6,14}$/,Sv="(?:(?:\\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])))",wv=new RegExp(`^${Sv}$`);function bv(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 Rv(t){return new RegExp(`^${bv(t)}$`)}function Cv(t){let e=bv({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(`^${Sv}T(?:${n})$`)}var Pv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},xv=/^-?\d+n?$/,kv=/^-?\d+$/,ol=/^-?\d+(?:\.\d+)?$/,Ev=/^(?:true|false)$/i,Tv=/^null$/i;var Av=/^[^A-Z]*$/,Mv=/^[^a-z]*$/;var Ie=_("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),$v={number:"number",bigint:"bigint",object:"date"},il=_("$ZodCheckLessThan",(t,e)=>{Ie.init(t,e);let r=$v[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})}}),sl=_("$ZodCheckGreaterThan",(t,e)=>{Ie.init(t,e);let r=$v[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})}}),Iv=_("$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):Zd(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})}}),Ov=_("$ZodCheckNumberFormat",(t,e)=>{Ie.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=Jd[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=kv)}),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 zv=_("$ZodCheckMaxLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!xi(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=Ei(o);n.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Nv=_("$ZodCheckMinLength",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!xi(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=Ei(o);n.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),Dv=_("$ZodCheckLengthEquals",(t,e)=>{var r;Ie.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!xi(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=Ei(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})}}),Ii=_("$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=()=>{})}),Lv=_("$ZodCheckRegex",(t,e)=>{Ii.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),jv=_("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Av),Ii.init(t,e)}),Fv=_("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Mv),Ii.init(t,e)}),Uv=_("$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})}}),qv=_("$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})}}),Hv=_("$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 Gv=_("$ZodCheckOverwrite",(t,e)=>{Ie.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Oa=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 Zv={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=Zv;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=zr(s),d;for(let l of a){if(l._zod.def.when){if(Yd(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=zr(s,f)))});else{if(s.issues.length===f)continue;u||(u=zr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(zr(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)}}Y(t,"~standard",()=>({validate:o=>{try{let i=Ei(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Ia(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Da=_("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Cv(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)=>{Mi.init(t,e),Da.init(t,e)}),e_=_("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=uv),ce.init(t,e)}),t_=_("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=rl(n))}else e.pattern??(e.pattern=rl());ce.init(t,e)}),r_=_("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=dv),ce.init(t,e)}),n_=_("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===yv.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})}}}),o_=_("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=lv()),ce.init(t,e)}),i_=_("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=av),ce.init(t,e)}),s_=_("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=rv),ce.init(t,e)}),a_=_("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=nv),ce.init(t,e)}),c_=_("$ZodULID",(t,e)=>{e.pattern??(e.pattern=ov),ce.init(t,e)}),u_=_("$ZodXID",(t,e)=>{e.pattern??(e.pattern=iv),ce.init(t,e)}),d_=_("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=sv),ce.init(t,e)}),l_=_("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Rv(e)),ce.init(t,e)}),f_=_("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Sv),ce.init(t,e)}),p_=_("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=bv(e)),ce.init(t,e)}),h_=_("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=cv),ce.init(t,e)}),m_=_("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=fv),ce.init(t,e),t._zod.bag.format="ipv4"}),g_=_("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e),t._zod.bag.format="ipv6",t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}});var y_=_("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=hv),ce.init(t,e)}),v_=_("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function __(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var S_=_("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{__(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function Q$(t){if(!nl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return __(r)}var w_=_("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=nl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{Q$(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),b_=_("$ZodE164",(t,e)=>{e.pattern??(e.pattern=vv),ce.init(t,e)});function eI(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 R_=_("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{eI(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var cl=_("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??ol,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}}),C_=_("$ZodNumberFormat",(t,e)=>{Iv.init(t,e),cl.init(t,e)}),P_=_("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=kv,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}}),x_=_("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=Pv,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 k_=_("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=Ev,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}}),E_=_("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),T_=_("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),A_=_("$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 M_=_("$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 Bv(t,e,r){t.issues.length&&e.issues.push(...ar(r,t.issues)),e.value[r]=t.value}var $_=_("$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=>Bv(u,r,s))):Bv(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Na(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 I_(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=Kd(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function O_(t,e,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,d=c.optin==="optional",l=c.optout==="optional";for(let f in e){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}let p=c.run({value:e[f],issues:[]},n);p instanceof Promise?t.push(p.then(h=>Na(h,r,f,e,d,l))):Na(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 tI=_("$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=ao(()=>I_(e));Y(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=gn,i=e.catchall,s;t._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let d=[],l=s.shape;for(let f of s.keys){let p=l[f],h=p._zod.optin==="optional",m=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>Na(v,a,f,u,h,m))):Na(g,a,f,u,h,m)}return i?O_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),z_=_("$ZodObjectJIT",(t,e)=>{tI.init(t,e);let r=t._zod.parse,n=ao(()=>I_(e)),o=f=>{let p=new Oa(["shape","payload","ctx"]),h=n.value,m=b=>{let x=ka(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 h.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of h.keys){let x=g[b],S=ka(b),R=f[b],I=R?._zod?.optin==="optional",ne=R?._zod?.optout==="optional";p.write(`const ${x} = ${m(b)};`),I&&ne?p.write(`
26
+ `))}};var Bv={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=Bv;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=zr(s),d;for(let l of a){if(l._zod.def.when){if(Yd(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=zr(s,f)))});else{if(s.issues.length===f)continue;u||(u=zr(s,f))}}return d?d.then(()=>s):s},i=(s,a,c)=>{if(zr(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)}}Y(t,"~standard",()=>({validate:o=>{try{let i=Ai(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Ia(t,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Da=_("$ZodString",(t,e)=>{te.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Pv(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)=>{Ii.init(t,e),Da.init(t,e)}),t_=_("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=dv),ce.init(t,e)}),r_=_("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=rl(n))}else e.pattern??(e.pattern=rl());ce.init(t,e)}),n_=_("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=lv),ce.init(t,e)}),o_=_("$ZodURL",(t,e)=>{ce.init(t,e),t._zod.check=r=>{try{let n=r.value.trim();if(!e.normalize&&e.protocol?.source===vv.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:t,continue:!e.abort});return}let o=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),i_=_("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=fv()),ce.init(t,e)}),s_=_("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=cv),ce.init(t,e)}),a_=_("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=nv),ce.init(t,e)}),c_=_("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=ov),ce.init(t,e)}),u_=_("$ZodULID",(t,e)=>{e.pattern??(e.pattern=iv),ce.init(t,e)}),d_=_("$ZodXID",(t,e)=>{e.pattern??(e.pattern=sv),ce.init(t,e)}),l_=_("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=av),ce.init(t,e)}),f_=_("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Cv(e)),ce.init(t,e)}),p_=_("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=wv),ce.init(t,e)}),h_=_("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Rv(e)),ce.init(t,e)}),m_=_("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=uv),ce.init(t,e)}),g_=_("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=pv),ce.init(t,e),t._zod.bag.format="ipv4"}),y_=_("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=hv),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 v_=_("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=mv),ce.init(t,e)}),__=_("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=gv),ce.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function S_(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var w_=_("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=yv),ce.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{S_(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function Y$(t){if(!nl.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return S_(r)}var b_=_("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=nl),ce.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{Y$(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),R_=_("$ZodE164",(t,e)=>{e.pattern??(e.pattern=_v),ce.init(t,e)});function X$(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 C_=_("$ZodJWT",(t,e)=>{ce.init(t,e),t._zod.check=r=>{X$(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var cl=_("$ZodNumber",(t,e)=>{te.init(t,e),t._zod.pattern=t._zod.bag.pattern??ol,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}}),P_=_("$ZodNumberFormat",(t,e)=>{Ov.init(t,e),cl.init(t,e)}),x_=_("$ZodBoolean",(t,e)=>{te.init(t,e),t._zod.pattern=Ev,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}}),k_=_("$ZodBigInt",(t,e)=>{te.init(t,e),t._zod.pattern=xv,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 E_=_("$ZodNull",(t,e)=>{te.init(t,e),t._zod.pattern=Tv,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}}),T_=_("$ZodAny",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),A_=_("$ZodUnknown",(t,e)=>{te.init(t,e),t._zod.parse=r=>r}),M_=_("$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 $_=_("$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 Wv(t,e,r){t.issues.length&&e.issues.push(...ar(r,t.issues)),e.value[r]=t.value}var I_=_("$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=>Wv(u,r,s))):Wv(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Na(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 O_(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=Kd(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function z_(t,e,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,d=c.optin==="optional",l=c.optout==="optional";for(let f in e){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}let p=c.run({value:e[f],issues:[]},n);p instanceof Promise?t.push(p.then(h=>Na(h,r,f,e,d,l))):Na(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 Q$=_("$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=co(()=>O_(e));Y(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(let l of d.values)c[u].add(l)}}return c});let o=gn,i=e.catchall,s;t._zod.parse=(a,c)=>{s??(s=n.value);let u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let d=[],l=s.shape;for(let f of s.keys){let p=l[f],h=p._zod.optin==="optional",m=p._zod.optout==="optional",g=p._zod.run({value:u[f],issues:[]},c);g instanceof Promise?d.push(g.then(v=>Na(v,a,f,u,h,m))):Na(g,a,f,u,h,m)}return i?z_(d,u,a,c,n.value,t):d.length?Promise.all(d).then(()=>a):a}}),N_=_("$ZodObjectJIT",(t,e)=>{Q$.init(t,e);let r=t._zod.parse,n=co(()=>O_(e)),o=f=>{let p=new Oa(["shape","payload","ctx"]),h=n.value,m=b=>{let x=ka(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 h.keys)g[b]=`key_${v++}`;p.write("const newResult = {};");for(let b of h.keys){let x=g[b],S=ka(b),R=f[b],I=R?._zod?.optin==="optional",ne=R?._zod?.optout==="optional";p.write(`const ${x} = ${m(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=gn,a=!io.jitless,u=a&&Wd.value,d=e.catchall,l;t._zod.parse=(f,p)=>{l??(l=n.value);let h=f.value;return s(h)?a&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(e.shape)),f=i(f,p),d?O_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function Wv(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=>!zr(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 ul=_("$ZodUnion",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Y(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Y(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Y(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Pi(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=>Wv(a,n,t,o)):Wv(s,n,t,o)}});var N_=_("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,ul.init(t,e);let r=t._zod.parse;Y(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=ao(()=>{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(!gn(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)}}),D_=_("$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])=>Vv(r,c,u)):Vv(r,i,s)}});function al(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(Or(t)&&Or(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=al(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=al(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 Vv(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}),zr(t))return t;let s=al(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 L_=_("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Or(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"&&ol.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 j_=_("$ZodEnum",(t,e)=>{te.init(t,e);let r=Ri(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>Vd.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}}),F_=_("$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 U_=_("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new oo(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 Kv(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var dl=_("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Pi(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=>Kv(s,o)):Kv(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),q_=_("$ZodExactOptional",(t,e)=>{dl.init(t,e),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),H_=_("$ZodNullable",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.innerType._zod.optin),Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Pi(r.source)}|null)$`):void 0}),Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),G_=_("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Jv(i,e)):Jv(o,e)}});function Jv(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Z_=_("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),B_=_("$ZodNonOptional",(t,e)=>{te.init(t,e),Y(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Yv(i,t)):Yv(o,t)}});function Yv(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 W_=_("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>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 ll=_("$ZodPipe",(t,e)=>{te.init(t,e),Y(t._zod,"values",()=>e.in._zod.values),Y(t._zod,"optin",()=>e.in._zod.optin),Y(t._zod,"optout",()=>e.out._zod.optout),Y(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>za(s,e.in,n)):za(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>za(i,e.out,n)):za(o,e.out,n)}});function za(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var V_=_("$ZodPreprocess",(t,e)=>{ll.init(t,e)}),K_=_("$ZodReadonly",(t,e)=>{te.init(t,e),Y(t._zod,"propValues",()=>e.innerType._zod.propValues),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"optin",()=>e.innerType?._zod?.optin),Y(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(Xv):Xv(o)}});function Xv(t){return t.value=Object.freeze(t.value),t}var J_=_("$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=>Qv(i,r,n,t));Qv(o,r,n,t)}});function Qv(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(co(o))}}var rI=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(o){return t[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,s=Xd(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ta(o.values[0])}`:`Invalid option: expected one of ${xa(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":""}: ${xa(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 Y_(){return{localeError:rI()}}var X_;var fl=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 Q_(){return new fl}(X_=globalThis).__zod_globalRegistry??(X_.__zod_globalRegistry=Q_());var Nr=globalThis.__zod_globalRegistry;function eS(t,e){return new t({type:"string",...A(e)})}function tS(t,e){return new t({type:"string",coerce:!0,...A(e)})}function rS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...A(e)})}function pl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...A(e)})}function nS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...A(e)})}function oS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(e)})}function iS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(e)})}function sS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(e)})}function hl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...A(e)})}function aS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...A(e)})}function cS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(e)})}function uS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...A(e)})}function dS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(e)})}function lS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...A(e)})}function fS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...A(e)})}function pS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(e)})}function hS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(e)})}function mS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(e)})}function gS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(e)})}function yS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(e)})}function vS(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...A(e)})}function _S(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...A(e)})}function SS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...A(e)})}function wS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...A(e)})}function bS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(e)})}function RS(t,e){return new t({type:"string",format:"date",check:"string_format",...A(e)})}function CS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...A(e)})}function PS(t,e){return new t({type:"string",format:"duration",check:"string_format",...A(e)})}function xS(t,e){return new t({type:"number",checks:[],...A(e)})}function kS(t,e){return new t({type:"number",coerce:!0,checks:[],...A(e)})}function ES(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...A(e)})}function TS(t,e){return new t({type:"boolean",...A(e)})}function AS(t,e){return new t({type:"boolean",coerce:!0,...A(e)})}function MS(t,e){return new t({type:"bigint",coerce:!0,...A(e)})}function $S(t,e){return new t({type:"null",...A(e)})}function IS(t){return new t({type:"any"})}function OS(t){return new t({type:"unknown"})}function zS(t,e){return new t({type:"never",...A(e)})}function NS(t,e){return new t({type:"date",coerce:!0,...A(e)})}function uo(t,e){return new il({check:"less_than",...A(e),value:t,inclusive:!1})}function cr(t,e){return new il({check:"less_than",...A(e),value:t,inclusive:!0})}function lo(t,e){return new sl({check:"greater_than",...A(e),value:t,inclusive:!1})}function At(t,e){return new sl({check:"greater_than",...A(e),value:t,inclusive:!0})}function $i(t,e){return new $v({check:"multiple_of",...A(e),value:t})}function La(t,e){return new Ov({check:"max_length",...A(e),maximum:t})}function fo(t,e){return new zv({check:"min_length",...A(e),minimum:t})}function ja(t,e){return new Nv({check:"length_equals",...A(e),length:t})}function ml(t,e){return new Dv({check:"string_format",format:"regex",...A(e),pattern:t})}function gl(t){return new Lv({check:"string_format",format:"lowercase",...A(t)})}function yl(t){return new jv({check:"string_format",format:"uppercase",...A(t)})}function vl(t,e){return new Fv({check:"string_format",format:"includes",...A(e),includes:t})}function _l(t,e){return new Uv({check:"string_format",format:"starts_with",...A(e),prefix:t})}function Sl(t,e){return new qv({check:"string_format",format:"ends_with",...A(e),suffix:t})}function Dr(t){return new Hv({check:"overwrite",tx:t})}function wl(t){return Dr(e=>e.normalize(t))}function bl(){return Dr(t=>t.trim())}function Rl(){return Dr(t=>t.toLowerCase())}function Cl(){return Dr(t=>t.toUpperCase())}function Pl(){return Dr(t=>Bd(t))}function DS(t,e,r){return new t({type:"array",element:e,...A(r)})}function LS(t,e,r){let n=A(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function jS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...A(r)})}function FS(t,e){let r=nI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(co(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(co(i))}},t(n.value,n)),e);return r}function nI(t,e){let r=new Ie({check:"custom",...A(e)});return r._zod.check=t,r}function xl(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??Nr,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 kl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of t.seen.entries()){let a=t.metadataRegistry.get(s[0])?.id;if(a){let c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}let o=s=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let l=t.external.registry.get(s[0])?.id,f=t.external.uri??(h=>h);if(l)return{ref:f(l)};let p=s[1].defId??s[1].schema.id??`schema${t.counter++}`;return s[1].defId=p,{defId:p,ref:`${f("__shared")}#/${a}/${p}`}}if(s[1]===r)return{ref:"#"};let u=`#/${a}/`,d=s[1].schema.id??`__schema${t.counter++}`;return{defId:d,ref:u+d}},i=s=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:u}=o(s);a.def={...a.schema},u&&(a.defId=u);let d=a.schema;for(let l in d)delete d[l];d.$ref=c};if(t.cycles==="throw")for(let s of t.seen.entries()){let a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
85
+ `)}p.write("payload.value = newResult;"),p.write("return payload;");let w=p.compile();return(b,x)=>w(f,b,x)},i,s=gn,a=!so.jitless,u=a&&Wd.value,d=e.catchall,l;t._zod.parse=(f,p)=>{l??(l=n.value);let h=f.value;return s(h)?a&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(e.shape)),f=i(f,p),d?z_([],h,f,p,l,t):f):r(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),f)}});function Vv(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=>!zr(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 ul=_("$ZodUnion",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Y(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Y(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Y(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){let n=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>ki(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=>Vv(a,n,t,o)):Vv(s,n,t,o)}});var D_=_("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,ul.init(t,e);let r=t._zod.parse;Y(t._zod,"propValues",()=>{let o={};for(let i of e.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[a,c]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of c)o[a].add(u)}}return o});let n=co(()=>{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(!gn(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)}}),L_=_("$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])=>Kv(r,c,u)):Kv(r,i,s)}});function al(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(Or(t)&&Or(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=al(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=al(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 Kv(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}),zr(t))return t;let s=al(e.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return t.value=s.data,t}var j_=_("$ZodRecord",(t,e)=>{te.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Or(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"&&ol.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 F_=_("$ZodEnum",(t,e)=>{te.init(t,e);let r=Pi(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>Vd.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}}),U_=_("$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 q_=_("$ZodTransform",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new io(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 Jv(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}var dl=_("$ZodOptional",(t,e)=>{te.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${ki(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=>Jv(s,o)):Jv(i,o)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),H_=_("$ZodExactOptional",(t,e)=>{dl.init(t,e),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),G_=_("$ZodNullable",(t,e)=>{te.init(t,e),Y(t._zod,"optin",()=>e.innerType._zod.optin),Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${ki(r.source)}|null)$`):void 0}),Y(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),Z_=_("$ZodDefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Yv(i,e)):Yv(o,e)}});function Yv(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var B_=_("$ZodPrefault",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),W_=_("$ZodNonOptional",(t,e)=>{te.init(t,e),Y(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Xv(i,t)):Xv(o,t)}});function Xv(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 V_=_("$ZodCatch",(t,e)=>{te.init(t,e),t._zod.optin="optional",Y(t._zod,"optout",()=>e.innerType._zod.optout),Y(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>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 ll=_("$ZodPipe",(t,e)=>{te.init(t,e),Y(t._zod,"values",()=>e.in._zod.values),Y(t._zod,"optin",()=>e.in._zod.optin),Y(t._zod,"optout",()=>e.out._zod.optout),Y(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(s=>za(s,e.in,n)):za(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>za(i,e.out,n)):za(o,e.out,n)}});function za(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}var K_=_("$ZodPreprocess",(t,e)=>{ll.init(t,e)}),J_=_("$ZodReadonly",(t,e)=>{te.init(t,e),Y(t._zod,"propValues",()=>e.innerType._zod.propValues),Y(t._zod,"values",()=>e.innerType._zod.values),Y(t._zod,"optin",()=>e.innerType?._zod?.optin),Y(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(Qv):Qv(o)}});function Qv(t){return t.value=Object.freeze(t.value),t}var Y_=_("$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=>e_(i,r,n,t));e_(o,r,n,t)}});function e_(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(uo(o))}}var eI=()=>{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=Xd(o.input),a=n[s]??s;return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${Ta(o.values[0])}`:`Invalid option: expected one of ${xa(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":""}: ${xa(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 X_(){return{localeError:eI()}}var Q_;var fl=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 eS(){return new fl}(Q_=globalThis).__zod_globalRegistry??(Q_.__zod_globalRegistry=eS());var Nr=globalThis.__zod_globalRegistry;function tS(t,e){return new t({type:"string",...A(e)})}function rS(t,e){return new t({type:"string",coerce:!0,...A(e)})}function nS(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...A(e)})}function pl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...A(e)})}function oS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...A(e)})}function iS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...A(e)})}function sS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...A(e)})}function aS(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...A(e)})}function hl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...A(e)})}function cS(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...A(e)})}function uS(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...A(e)})}function dS(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...A(e)})}function lS(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...A(e)})}function fS(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...A(e)})}function pS(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...A(e)})}function hS(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...A(e)})}function mS(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...A(e)})}function gS(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...A(e)})}function yS(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...A(e)})}function vS(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...A(e)})}function _S(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...A(e)})}function SS(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...A(e)})}function wS(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...A(e)})}function bS(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...A(e)})}function RS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...A(e)})}function CS(t,e){return new t({type:"string",format:"date",check:"string_format",...A(e)})}function PS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...A(e)})}function xS(t,e){return new t({type:"string",format:"duration",check:"string_format",...A(e)})}function kS(t,e){return new t({type:"number",checks:[],...A(e)})}function ES(t,e){return new t({type:"number",coerce:!0,checks:[],...A(e)})}function TS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...A(e)})}function AS(t,e){return new t({type:"boolean",...A(e)})}function MS(t,e){return new t({type:"boolean",coerce:!0,...A(e)})}function $S(t,e){return new t({type:"bigint",coerce:!0,...A(e)})}function IS(t,e){return new t({type:"null",...A(e)})}function OS(t){return new t({type:"any"})}function zS(t){return new t({type:"unknown"})}function NS(t,e){return new t({type:"never",...A(e)})}function DS(t,e){return new t({type:"date",coerce:!0,...A(e)})}function lo(t,e){return new il({check:"less_than",...A(e),value:t,inclusive:!1})}function cr(t,e){return new il({check:"less_than",...A(e),value:t,inclusive:!0})}function fo(t,e){return new sl({check:"greater_than",...A(e),value:t,inclusive:!1})}function At(t,e){return new sl({check:"greater_than",...A(e),value:t,inclusive:!0})}function Oi(t,e){return new Iv({check:"multiple_of",...A(e),value:t})}function La(t,e){return new zv({check:"max_length",...A(e),maximum:t})}function po(t,e){return new Nv({check:"min_length",...A(e),minimum:t})}function ja(t,e){return new Dv({check:"length_equals",...A(e),length:t})}function ml(t,e){return new Lv({check:"string_format",format:"regex",...A(e),pattern:t})}function gl(t){return new jv({check:"string_format",format:"lowercase",...A(t)})}function yl(t){return new Fv({check:"string_format",format:"uppercase",...A(t)})}function vl(t,e){return new Uv({check:"string_format",format:"includes",...A(e),includes:t})}function _l(t,e){return new qv({check:"string_format",format:"starts_with",...A(e),prefix:t})}function Sl(t,e){return new Hv({check:"string_format",format:"ends_with",...A(e),suffix:t})}function Dr(t){return new Gv({check:"overwrite",tx:t})}function wl(t){return Dr(e=>e.normalize(t))}function bl(){return Dr(t=>t.trim())}function Rl(){return Dr(t=>t.toLowerCase())}function Cl(){return Dr(t=>t.toUpperCase())}function Pl(){return Dr(t=>Bd(t))}function LS(t,e,r){return new t({type:"array",element:e,...A(r)})}function jS(t,e,r){let n=A(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function FS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...A(r)})}function US(t,e){let r=tI(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(uo(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(uo(i))}},t(n.value,n)),e);return r}function tI(t,e){let r=new Ie({check:"custom",...A(e)});return r._zod.check=t,r}function xl(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??Nr,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 kl(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of t.seen.entries()){let a=t.metadataRegistry.get(s[0])?.id;if(a){let c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}let o=s=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let l=t.external.registry.get(s[0])?.id,f=t.external.uri??(h=>h);if(l)return{ref:f(l)};let p=s[1].defId??s[1].schema.id??`schema${t.counter++}`;return s[1].defId=p,{defId:p,ref:`${f("__shared")}#/${a}/${p}`}}if(s[1]===r)return{ref:"#"};let u=`#/${a}/`,d=s[1].schema.id??`__schema${t.counter++}`;return{defId:d,ref:u+d}},i=s=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:u}=o(s);a.def={...a.schema},u&&(a.defId=u);let d=a.schema;for(let l in d)delete d[l];d.$ref=c};if(t.cycles==="throw")for(let s of t.seen.entries()){let a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
86
86
 
87
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of t.seen.entries()){let a=s[1];if(e===s[0]){i(s);continue}if(t.external){let u=t.external.registry.get(s[0])?.id;if(e!==s[0]&&u){i(s);continue}}if(t.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&t.reused==="ref"){i(s);continue}}}function El(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),h=p.schema;if(h.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(h.$ref&&p.def)for(let g in u)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(u[g])===JSON.stringify(p.def[g])&&delete u[g]}let f=a._zod.parent;if(f&&f!==l){n(f);let p=t.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(let h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:Ii(e,"input",t.processors),output:Ii(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 US=(t,e={})=>r=>{let n=xl({...r,processors:e});return Se(t,n),kl(n,t),El(n,t)},Ii=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=xl({...o??{},target:i,io:e,processors:r});return Se(t,s),kl(s,t),El(s,t)};var oI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qS=(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=oI[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}))])}},HS=(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)},GS=(t,e,r,n)=>{r.type="boolean"},ZS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var BS=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var WS=(t,e,r,n)=>{r.not={}},VS=(t,e,r,n)=>{},KS=(t,e,r,n)=>{},JS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},YS=(t,e,r,n)=>{let o=t._zod.def,i=Ri(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},XS=(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 QS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var ew=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var tw=(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"]})},rw=(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)},nw=(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},ow=(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 iw=(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)}},sw=(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"}]},aw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},cw=(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))},uw=(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)))},dw=(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},lw=(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},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.readOnly=!0};var Tl=(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 Fa(t){return!!t._zod}function Mt(t,e){return Fa(t)?Ei(t,e):t.safeParse(e)}function Ua(t){if(!t)return;let e;if(Fa(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function qa(t){if(Fa(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 Oi={};Ou(Oi,{ZodISODate:()=>hw,ZodISODateTime:()=>pw,ZodISODuration:()=>gw,ZodISOTime:()=>mw,date:()=>Ml,datetime:()=>Al,duration:()=>Il,time:()=>$l});var pw=_("ZodISODateTime",(t,e)=>{l_.init(t,e),he.init(t,e)});function Al(t){return bS(pw,t)}var hw=_("ZodISODate",(t,e)=>{f_.init(t,e),he.init(t,e)});function Ml(t){return RS(hw,t)}var mw=_("ZodISOTime",(t,e)=>{p_.init(t,e),he.init(t,e)});function $l(t){return CS(mw,t)}var gw=_("ZodISODuration",(t,e)=>{h_.init(t,e),he.init(t,e)});function Il(t){return PS(gw,t)}var fI=(t,e)=>{Aa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>tl(t,r)},flatten:{value:r=>el(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,so,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,so,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=_("ZodError",fI,{Parent:Error});var vw=Ma(ut),_w=$a(ut),Sw=ki(ut),ww=Ti(ut),bw=Vy(ut),Rw=Ky(ut),Cw=Jy(ut),Pw=Yy(ut),xw=Xy(ut),kw=Qy(ut),Ew=ev(ut),Tw=tv(ut);var Aw=new WeakMap;function zi(t,e,r){let n=Object.getPrototypeOf(t),o=Aw.get(n);if(o||(o=new Set,Aw.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:Ii(t,"input"),output:Ii(t,"output")}}),t.toJSONSchema=US(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>vw(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Sw(t,r,n),t.parseAsync=async(r,n)=>_w(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>ww(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>bw(t,r,n),t.decode=(r,n)=>Rw(t,r,n),t.encodeAsync=async(r,n)=>Cw(t,r,n),t.decodeAsync=async(r,n)=>Pw(t,r,n),t.safeEncode=(r,n)=>xw(t,r,n),t.safeDecode=(r,n)=>kw(t,r,n),t.safeEncodeAsync=async(r,n)=>Ew(t,r,n),t.safeDecodeAsync=async(r,n)=>Tw(t,r,n),zi(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(eO(r,n))},superRefine(r,n){return this.check(tO(r,n))},overwrite(r){return this.check(Dr(r))},optional(){return ge(this)},exactOptional(){return qI(this)},nullable(){return Ow(this)},nullish(){return ge(Ow(this))},nonoptional(r){return VI(this,r)},array(){return P(this)},or(r){return ue([this,r])},and(r){return Za(this,r)},transform(r){return zw(this,Zw(r))},default(r){return ZI(this,r)},prefault(r){return WI(this,r)},catch(r){return JI(this,r)},pipe(r){return zw(this,r)},readonly(){return QI(this)},describe(r){let n=this.clone();return Nr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Nr.get(this);let n=this.clone();return Nr.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 Nr.get(t)?.description},configurable:!0}),t)),Nw=_("_ZodString",(t,e)=>{Da.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>qS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,zi(t,"_ZodString",{regex(...n){return this.check(ml(...n))},includes(...n){return this.check(vl(...n))},startsWith(...n){return this.check(_l(...n))},endsWith(...n){return this.check(Sl(...n))},min(...n){return this.check(fo(...n))},max(...n){return this.check(La(...n))},length(...n){return this.check(ja(...n))},nonempty(...n){return this.check(fo(1,...n))},lowercase(n){return this.check(gl(n))},uppercase(n){return this.check(yl(n))},trim(){return this.check(bl())},normalize(...n){return this.check(wl(...n))},toLowerCase(){return this.check(Rl())},toUpperCase(){return this.check(Cl())},slugify(){return this.check(Pl())}})}),zl=_("ZodString",(t,e)=>{Da.init(t,e),Nw.init(t,e),t.email=r=>t.check(rS(hI,r)),t.url=r=>t.check(hl(Dw,r)),t.jwt=r=>t.check(wS(TI,r)),t.emoji=r=>t.check(aS(mI,r)),t.guid=r=>t.check(pl(Mw,r)),t.uuid=r=>t.check(nS(Ha,r)),t.uuidv4=r=>t.check(oS(Ha,r)),t.uuidv6=r=>t.check(iS(Ha,r)),t.uuidv7=r=>t.check(sS(Ha,r)),t.nanoid=r=>t.check(cS(gI,r)),t.guid=r=>t.check(pl(Mw,r)),t.cuid=r=>t.check(uS(yI,r)),t.cuid2=r=>t.check(dS(vI,r)),t.ulid=r=>t.check(lS(_I,r)),t.base64=r=>t.check(vS(xI,r)),t.base64url=r=>t.check(_S(kI,r)),t.xid=r=>t.check(fS(SI,r)),t.ksuid=r=>t.check(pS(wI,r)),t.ipv4=r=>t.check(hS(bI,r)),t.ipv6=r=>t.check(mS(RI,r)),t.cidrv4=r=>t.check(gS(CI,r)),t.cidrv6=r=>t.check(yS(PI,r)),t.e164=r=>t.check(SS(EI,r)),t.datetime=r=>t.check(Al(r)),t.date=r=>t.check(Ml(r)),t.time=r=>t.check($l(r)),t.duration=r=>t.check(Il(r))});function y(t){return eS(zl,t)}var he=_("ZodStringFormat",(t,e)=>{ce.init(t,e),Nw.init(t,e)}),hI=_("ZodEmail",(t,e)=>{r_.init(t,e),he.init(t,e)});var Mw=_("ZodGUID",(t,e)=>{e_.init(t,e),he.init(t,e)});var Ha=_("ZodUUID",(t,e)=>{t_.init(t,e),he.init(t,e)});var Dw=_("ZodURL",(t,e)=>{n_.init(t,e),he.init(t,e)});function Lw(t){return hl(Dw,t)}var mI=_("ZodEmoji",(t,e)=>{o_.init(t,e),he.init(t,e)});var gI=_("ZodNanoID",(t,e)=>{i_.init(t,e),he.init(t,e)});var yI=_("ZodCUID",(t,e)=>{s_.init(t,e),he.init(t,e)});var vI=_("ZodCUID2",(t,e)=>{a_.init(t,e),he.init(t,e)});var _I=_("ZodULID",(t,e)=>{c_.init(t,e),he.init(t,e)});var SI=_("ZodXID",(t,e)=>{u_.init(t,e),he.init(t,e)});var wI=_("ZodKSUID",(t,e)=>{d_.init(t,e),he.init(t,e)});var bI=_("ZodIPv4",(t,e)=>{m_.init(t,e),he.init(t,e)});var RI=_("ZodIPv6",(t,e)=>{g_.init(t,e),he.init(t,e)});var CI=_("ZodCIDRv4",(t,e)=>{y_.init(t,e),he.init(t,e)});var PI=_("ZodCIDRv6",(t,e)=>{v_.init(t,e),he.init(t,e)});var xI=_("ZodBase64",(t,e)=>{S_.init(t,e),he.init(t,e)});var kI=_("ZodBase64URL",(t,e)=>{w_.init(t,e),he.init(t,e)});var EI=_("ZodE164",(t,e)=>{b_.init(t,e),he.init(t,e)});var TI=_("ZodJWT",(t,e)=>{R_.init(t,e),he.init(t,e)});var Ga=_("ZodNumber",(t,e)=>{cl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>HS(t,n,o,i),zi(t,"ZodNumber",{gt(n,o){return this.check(lo(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(uo(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($w(n))},safe(n){return this.check($w(n))},positive(n){return this.check(lo(0,n))},nonnegative(n){return this.check(At(0,n))},negative(n){return this.check(uo(0,n))},nonpositive(n){return this.check(cr(0,n))},multipleOf(n,o){return this.check($i(n,o))},step(n,o){return this.check($i(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 xS(Ga,t)}var AI=_("ZodNumberFormat",(t,e)=>{C_.init(t,e),Ga.init(t,e)});function $w(t){return ES(AI,t)}var Nl=_("ZodBoolean",(t,e)=>{P_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>GS(t,r,n,o)});function ie(t){return TS(Nl,t)}var jw=_("ZodBigInt",(t,e)=>{x_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>ZS(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(lo(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(uo(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(lo(BigInt(0),n)),t.negative=n=>t.check(uo(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($i(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var MI=_("ZodNull",(t,e)=>{k_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>BS(t,r,n,o)});function Fw(t){return $S(MI,t)}var $I=_("ZodAny",(t,e)=>{E_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>VS(t,r,n,o)});function Uw(){return IS($I)}var II=_("ZodUnknown",(t,e)=>{T_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>KS(t,r,n,o)});function me(){return OS(II)}var OI=_("ZodNever",(t,e)=>{A_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>WS(t,r,n,o)});function zI(t){return zS(OI,t)}var qw=_("ZodDate",(t,e)=>{M_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>JS(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 NI=_("ZodArray",(t,e)=>{$_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>tw(t,r,n,o),t.element=e.element,zi(t,"ZodArray",{min(r,n){return this.check(fo(r,n))},nonempty(r){return this.check(fo(1,r))},max(r,n){return this.check(La(r,n))},length(r,n){return this.check(ja(r,n))},unwrap(){return this.element}})});function P(t,e){return DS(NI,t,e)}var Hw=_("ZodObject",(t,e)=>{z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),zi(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:zI()})},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(Bw,this,r[0])},required(...r){return H.required(Ww,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Hw(r)}function ke(t,e){return new Hw({type:"object",shape:t,catchall:me(),...H.normalizeParams(e)})}var Gw=_("ZodUnion",(t,e)=>{ul.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o),t.options=e.options});function ue(t,e){return new Gw({type:"union",options:t,...H.normalizeParams(e)})}var DI=_("ZodDiscriminatedUnion",(t,e)=>{Gw.init(t,e),N_.init(t,e)});function Dl(t,e,r){return new DI({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var LI=_("ZodIntersection",(t,e)=>{D_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o)});function Za(t,e){return new LI({type:"intersection",left:t,right:e})}var Iw=_("ZodRecord",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Iw({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Iw({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Ol=_("ZodEnum",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>YS(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 Ol({...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 Ol({...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 Ol({type:"enum",entries:r,...H.normalizeParams(e)})}var jI=_("ZodLiteral",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>XS(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 jI({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var FI=_("ZodTransform",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new oo(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 Zw(t){return new FI({type:"transform",transform:t})}var Bw=_("ZodOptional",(t,e)=>{dl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Tl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ge(t){return new Bw({type:"optional",innerType:t})}var UI=_("ZodExactOptional",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Tl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function qI(t){return new UI({type:"optional",innerType:t})}var HI=_("ZodNullable",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Ow(t){return new HI({type:"nullable",innerType:t})}var GI=_("ZodDefault",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function ZI(t,e){return new GI({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var BI=_("ZodPrefault",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function WI(t,e){return new BI({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var Ww=_("ZodNonOptional",(t,e)=>{B_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function VI(t,e){return new Ww({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var KI=_("ZodCatch",(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,t.removeCatch=t.unwrap});function JI(t,e){return new KI({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Vw=_("ZodPipe",(t,e)=>{ll.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.in=e.in,t.out=e.out});function zw(t,e){return new Vw({type:"pipe",in:t,out:e})}var YI=_("ZodPreprocess",(t,e)=>{Vw.init(t,e),V_.init(t,e)}),XI=_("ZodReadonly",(t,e)=>{K_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function QI(t){return new XI({type:"readonly",innerType:t})}var Kw=_("ZodCustom",(t,e)=>{J_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>QS(t,r,n,o)});function Jw(t,e){return LS(Kw,t??(()=>!0),e)}function eO(t,e={}){return jS(Kw,t,e)}function tO(t,e){return FS(t,e)}function Ll(t,e){return new YI({type:"pipe",in:Zw(t),out:e})}var Xw={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 Yw;Yw||(Yw={});var Ba={};Ou(Ba,{bigint:()=>iO,boolean:()=>oO,date:()=>sO,number:()=>nO,string:()=>rO});function rO(t){return tS(zl,t)}function nO(t){return kS(Ga,t)}function oO(t){return AS(Nl,t)}function iO(t){return MS(jw,t)}function sO(t){return NS(qw,t)}Ye(Y_());var mo="2025-11-25";var Qw=[mo,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Lr="io.modelcontextprotocol/related-task",Va="2.0",Ee=Jw(t=>t!==null&&(typeof t=="object"||typeof t=="function")),eb=ue([y(),K().int()]),tb=y(),pV=ke({ttl:K().optional(),pollInterval:K().optional()}),cO=k({ttl:K().optional()}),uO=k({taskId:y()}),Fl=ke({progressToken:eb.optional(),[Lr]:uO.optional()}),dt=k({_meta:Fl.optional()}),Ni=dt.extend({task:cO.optional()}),rb=t=>Ni.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),vt=k({_meta:Fl.optional()}),_t=k({method:y(),params:vt.loose().optional()}),Te=ke({_meta:Fl.optional()}),Ka=ue([y(),K().int()]),nb=k({jsonrpc:E(Va),id:Ka,...Oe.shape}).strict(),Di=t=>nb.safeParse(t).success,ob=k({jsonrpc:E(Va),..._t.shape}).strict(),ib=t=>ob.safeParse(t).success,Ul=k({jsonrpc:E(Va),id:Ka,result:Te}).strict(),yn=t=>Ul.safeParse(t).success;var $;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})($||($={}));var ql=k({jsonrpc:E(Va),id:Ka.optional(),error:k({code:K().int(),message:y(),data:me().optional()})}).strict();var sb=t=>ql.safeParse(t).success;var jr=ue([nb,ob,Ul,ql]),hV=ue([Ul,ql]),vn=Te.strict(),dO=vt.extend({requestId:Ka.optional(),reason:y().optional()}),Ja=_t.extend({method:E("notifications/cancelled"),params:dO}),lO=k({src:y(),mimeType:y().optional(),sizes:P(y()).optional(),theme:Xe(["light","dark"]).optional()}),Li=k({icons:P(lO).optional()}),ho=k({name:y(),title:y().optional()}),ab=ho.extend({...ho.shape,...Li.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),fO=Za(k({applyDefaults:ie().optional()}),ae(y(),me())),pO=Ll(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Za(k({form:fO.optional(),url:Ee.optional()}),ae(y(),me()).optional())),hO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({sampling:ke({createMessage:Ee.optional()}).optional(),elicitation:ke({create:Ee.optional()}).optional()}).optional()}),mO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({tools:ke({call:Ee.optional()}).optional()}).optional()}),gO=k({experimental:ae(y(),Ee).optional(),sampling:k({context:Ee.optional(),tools:Ee.optional()}).optional(),elicitation:pO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:hO.optional(),extensions:ae(y(),Ee).optional()}),yO=dt.extend({protocolVersion:y(),capabilities:gO,clientInfo:ab}),vO=Oe.extend({method:E("initialize"),params:yO});var _O=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:mO.optional(),extensions:ae(y(),Ee).optional()}),Hl=Te.extend({protocolVersion:y(),capabilities:_O,serverInfo:ab,instructions:y().optional()}),cb=_t.extend({method:E("notifications/initialized"),params:vt.optional()}),ub=t=>cb.safeParse(t).success,Ya=Oe.extend({method:E("ping"),params:dt.optional()}),SO=k({progress:K(),total:ge(K()),message:ge(y())}),wO=k({...vt.shape,...SO.shape,progressToken:eb}),Xa=_t.extend({method:E("notifications/progress"),params:wO}),bO=dt.extend({cursor:tb.optional()}),ji=Oe.extend({params:bO.optional()}),Fi=Te.extend({nextCursor:tb.optional()}),RO=Xe(["working","input_required","completed","failed","cancelled"]),Ui=k({taskId:y(),status:RO,ttl:ue([K(),Fw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ge(K()),statusMessage:ge(y())}),_n=Te.extend({task:Ui}),CO=vt.merge(Ui),qi=_t.extend({method:E("notifications/tasks/status"),params:CO}),Qa=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),ec=Te.merge(Ui),tc=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),mV=Te.loose(),rc=ji.extend({method:E("tasks/list")}),nc=Fi.extend({tasks:P(Ui)}),oc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),db=Te.merge(Ui),lb=k({uri:y(),mimeType:ge(y()),_meta:ae(y(),me()).optional()}),fb=lb.extend({text:y()}),Gl=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),pb=lb.extend({blob:Gl}),Hi=Xe(["user","assistant"]),go=k({audience:P(Hi).optional(),priority:K().min(0).max(1).optional(),lastModified:Oi.datetime({offset:!0}).optional()}),hb=k({...ho.shape,...Li.shape,uri:y(),description:ge(y()),mimeType:ge(y()),size:ge(K()),annotations:go.optional(),_meta:ge(ke({}))}),PO=k({...ho.shape,...Li.shape,uriTemplate:y(),description:ge(y()),mimeType:ge(y()),annotations:go.optional(),_meta:ge(ke({}))}),xO=ji.extend({method:E("resources/list")}),Zl=Fi.extend({resources:P(hb)}),kO=ji.extend({method:E("resources/templates/list")}),Bl=Fi.extend({resourceTemplates:P(PO)}),Wl=dt.extend({uri:y()}),EO=Wl,TO=Oe.extend({method:E("resources/read"),params:EO}),Vl=Te.extend({contents:P(ue([fb,pb]))}),Kl=_t.extend({method:E("notifications/resources/list_changed"),params:vt.optional()}),AO=Wl,MO=Oe.extend({method:E("resources/subscribe"),params:AO}),$O=Wl,IO=Oe.extend({method:E("resources/unsubscribe"),params:$O}),OO=vt.extend({uri:y()}),zO=_t.extend({method:E("notifications/resources/updated"),params:OO}),NO=k({name:y(),description:ge(y()),required:ge(ie())}),DO=k({...ho.shape,...Li.shape,description:ge(y()),arguments:ge(P(NO)),_meta:ge(ke({}))}),LO=ji.extend({method:E("prompts/list")}),Jl=Fi.extend({prompts:P(DO)}),jO=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),FO=Oe.extend({method:E("prompts/get"),params:jO}),Yl=k({type:E("text"),text:y(),annotations:go.optional(),_meta:ae(y(),me()).optional()}),Xl=k({type:E("image"),data:Gl,mimeType:y(),annotations:go.optional(),_meta:ae(y(),me()).optional()}),Ql=k({type:E("audio"),data:Gl,mimeType:y(),annotations:go.optional(),_meta:ae(y(),me()).optional()}),UO=k({type:E("tool_use"),name:y(),id:y(),input:ae(y(),me()),_meta:ae(y(),me()).optional()}),qO=k({type:E("resource"),resource:ue([fb,pb]),annotations:go.optional(),_meta:ae(y(),me()).optional()}),HO=hb.extend({type:E("resource_link")}),ef=ue([Yl,Xl,Ql,HO,qO]),GO=k({role:Hi,content:ef}),tf=Te.extend({description:y().optional(),messages:P(GO)}),rf=_t.extend({method:E("notifications/prompts/list_changed"),params:vt.optional()}),ZO=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),BO=k({taskSupport:Xe(["required","optional","forbidden"]).optional()}),mb=k({...ho.shape,...Li.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:ZO.optional(),execution:BO.optional(),_meta:ae(y(),me()).optional()}),WO=ji.extend({method:E("tools/list")}),nf=Fi.extend({tools:P(mb)}),Sn=Te.extend({content:P(ef).default([]),structuredContent:ae(y(),me()).optional(),isError:ie().optional()}),gV=Sn.or(Te.extend({toolResult:me()})),VO=Ni.extend({name:y(),arguments:ae(y(),me()).optional()}),KO=Oe.extend({method:E("tools/call"),params:VO}),Gi=_t.extend({method:E("notifications/tools/list_changed"),params:vt.optional()}),gb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),yb=Xe(["debug","info","notice","warning","error","critical","alert","emergency"]),JO=dt.extend({level:yb}),YO=Oe.extend({method:E("logging/setLevel"),params:JO}),XO=vt.extend({level:yb,logger:y().optional(),data:me()}),QO=_t.extend({method:E("notifications/message"),params:XO}),ez=k({name:y().optional()}),tz=k({hints:P(ez).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),rz=k({mode:Xe(["auto","required","none"]).optional()}),nz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:P(ef).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),me()).optional()}),oz=Dl("type",[Yl,Xl,Ql]),Wa=Dl("type",[Yl,Xl,Ql,UO,nz]),iz=k({role:Hi,content:ue([Wa,P(Wa)]),_meta:ae(y(),me()).optional()}),sz=Ni.extend({messages:P(iz),modelPreferences:tz.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(mb).optional(),toolChoice:rz.optional()}),of=Oe.extend({method:E("sampling/createMessage"),params:sz}),sf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Hi,content:oz}),af=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Hi,content:ue([Wa,P(Wa)])}),az=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),cz=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()}),uz=k({type:Xe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),dz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),default:y().optional()}),lz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:P(k({const:y(),title:y()})),default:y().optional()}),fz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),enumNames:P(y()).optional(),default:y().optional()}),pz=ue([dz,lz]),hz=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()}),mz=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()}),gz=ue([hz,mz]),yz=ue([fz,pz,gz]),vz=ue([yz,az,cz,uz]),_z=Ni.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),vz),required:P(y()).optional()})}),Sz=Ni.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),wz=ue([_z,Sz]),cf=Oe.extend({method:E("elicitation/create"),params:wz}),bz=vt.extend({elicitationId:y()}),Rz=_t.extend({method:E("notifications/elicitation/complete"),params:bz}),uf=Te.extend({action:Xe(["accept","decline","cancel"]),content:Ll(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),P(y())])).optional())}),Cz=k({type:E("ref/resource"),uri:y()});var Pz=k({type:E("ref/prompt"),name:y()}),xz=dt.extend({ref:ue([Pz,Cz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),kz=Oe.extend({method:E("completion/complete"),params:xz});var df=Te.extend({completion:ke({values:P(y()).max(100),total:ge(K().int()),hasMore:ge(ie())})}),Ez=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),me()).optional()}),Tz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Az=Te.extend({roots:P(Ez)}),Mz=_t.extend({method:E("notifications/roots/list_changed"),params:vt.optional()}),yV=ue([Ya,vO,kz,YO,FO,LO,xO,kO,TO,MO,IO,KO,WO,Qa,tc,rc,oc]),vV=ue([Ja,Xa,cb,Mz,qi]),_V=ue([vn,sf,af,uf,Az,ec,nc,_n]),SV=ue([Ya,of,cf,Tz,Qa,tc,rc,oc]),wV=ue([Ja,Xa,QO,zO,Kl,Gi,rf,qi,Rz]),bV=ue([vn,Hl,df,tf,Jl,Zl,Bl,Vl,Sn,nf,ec,nc,_n]),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 jl(o.elicitations,r)}return new t(e,r,n)}},jl=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 Fr(t){return t==="completed"||t==="failed"||t==="cancelled"}var t6=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function lf(t){let r=Ua(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=qa(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function ff(t,e){let r=Mt(t,e);if(!r.success)throw r.error;return r.data}var Dz=6e4,ic=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(Ja,r=>{this._oncancel(r)}),this.setNotificationHandler(Xa,r=>{this._onprogress(r)}),this.setRequestHandler(Ya,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Qa,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(tc,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(!Fr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Fr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Lr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(rc,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(oc,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(Fr(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),yn(i)||sb(i)?this._onresponse(i):Di(i)?this._onrequest(i,s):ib(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?.[Lr]?.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=rb(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 h=p.relatedTask?.taskId??i;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),yn(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(yn(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),yn(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,_n,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},Fr(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||{},[Lr]:c}});let h=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(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",()=>{h(n?.signal?.reason)});let m=n?.timeout??Dz,g=()=>h(M.fromError($.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let w=b=>{let 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},ec,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},nc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},db,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||{},[Lr]: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||{},[Lr]: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||{},[Lr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=lf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=ff(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=lf(e);this._notificationHandlers.set(n,o=>{let i=ff(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"&&Di(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=qi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Fr(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(Fr(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=qi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Fr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function vb(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function _b(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];vb(s)&&vb(i)?r[o]={...s,...i}:r[o]=i}return r}var uP=Ws(Xp(),1),dP=Ws(cP(),1);function qF(){let t=new uP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,dP.default)(t),t}var qc=class{constructor(e){this._ajv=e??qF()}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 Hc=class{constructor(e){this._client=e}async*callToolStream(e,r=Sn,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 lP(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 fP(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 Gc(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&&Gc(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Gc(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Gc(r,e)}}function HF(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 Zc=class extends ic{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new qc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Gi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",rf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Kl,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Hc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=_b(this._capabilities,e)}setRequestHandler(e,r){let o=Ua(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=qa(o);if(typeof i!="string")throw new Error("Schema method literal must be a string");let s=i;if(s==="elicitation/create"){let a=async(c,u)=>{let d=Mt(cf,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}=HF(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 h=await Promise.resolve(r(c,u));if(l.task){let w=Mt(_n,h);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 m=Mt(uf,h);if(!m.success){let w=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid elicitation result: ${w}`)}let g=m.data,v=l.mode==="form"?l.requestedSchema:void 0;if(l.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Gc(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=Mt(of,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(_n,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 h=l.tools||l.toolChoice?af:sf,m=Mt(h,f);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid sampling result: ${g}`)}return m.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:mo,capabilities:this._capabilities,clientInfo:this._clientInfo}},Hl,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!Qw.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){lP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&fP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},vn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},df,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},vn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},tf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Jl,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Zl,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bl,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Vl,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},vn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},vn,r)}async callTool(e,r=Sn,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},nf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=gb.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 ws=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}},pP=10,GF=13,$n=32;function sh(t){}function Bc(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=sh,onError:r=sh,onRetry:n=sh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(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),m();return}if(S.indexOf(`
88
- `)===-1&&S.indexOf("\r")===-1){s.push(S),a+=S.length,m();return}s.push(S);let R=s.join("");s.length=0,a=0;let I=g(R);I!==""&&(s.push(I),a=I.length),m()}function m(){i!==void 0&&(a+d.length<=i||(p=!0,s.length=0,a=0,u=void 0,d="",l=0,f=void 0,r(new ws(`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(`
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 El(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let c=t.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},l=c.ref;if(c.ref=null,l){n(l);let p=t.seen.get(l),h=p.schema;if(h.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,d),a._zod.parent===l)for(let g in u)g==="$ref"||g==="allOf"||g in d||delete u[g];if(h.$ref&&p.def)for(let g in u)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(u[g])===JSON.stringify(p.def[g])&&delete u[g]}let f=a._zod.parent;if(f&&f!==l){n(f);let p=t.seen.get(f);if(p?.schema.$ref&&(u.$ref=p.schema.$ref,p.def))for(let h in u)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(u[h])===JSON.stringify(p.def[h])&&delete u[h]}t.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.metadataRegistry.get(e)?.id;i!==void 0&&o.id===i&&delete o.id;let s=t.external?.defs??{};for(let a of t.seen.entries()){let c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:zi(e,"input",t.processors),output:zi(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 qS=(t,e={})=>r=>{let n=xl({...r,processors:e});return Se(t,n),kl(n,t),El(n,t)},zi=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=xl({...o??{},target:i,io:e,processors:r});return Se(t,s),kl(s,t),El(s,t)};var rI={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},HS=(t,e,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),a&&(o.format=rI[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(l=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))])}},GS=(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)},ZS=(t,e,r,n)=>{r.type="boolean"},BS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")};var WS=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"};var VS=(t,e,r,n)=>{r.not={}},KS=(t,e,r,n)=>{},JS=(t,e,r,n)=>{},YS=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},XS=(t,e,r,n)=>{let o=t._zod.def,i=Pi(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},QS=(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 ew=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var tw=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var rw=(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"]})},nw=(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)},ow=(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},iw=(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 sw=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let s=i.keyType,c=s._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let d=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)}},aw=(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"}]},cw=(t,e,r,n)=>{let o=t._zod.def;Se(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},uw=(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))},dw=(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)))},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;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},fw=(t,e,r,n)=>{let o=t._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=e.io==="input"?i?o.out:o.in:o.out;Se(s,e,n);let a=e.seen.get(t);a.ref=s},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,r.readOnly=!0};var Tl=(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 Fa(t){return!!t._zod}function Mt(t,e){return Fa(t)?Ai(t,e):t.safeParse(e)}function Ua(t){if(!t)return;let e;if(Fa(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function qa(t){if(Fa(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 Ni={};Ou(Ni,{ZodISODate:()=>mw,ZodISODateTime:()=>hw,ZodISODuration:()=>yw,ZodISOTime:()=>gw,date:()=>Ml,datetime:()=>Al,duration:()=>Il,time:()=>$l});var hw=_("ZodISODateTime",(t,e)=>{f_.init(t,e),he.init(t,e)});function Al(t){return RS(hw,t)}var mw=_("ZodISODate",(t,e)=>{p_.init(t,e),he.init(t,e)});function Ml(t){return CS(mw,t)}var gw=_("ZodISOTime",(t,e)=>{h_.init(t,e),he.init(t,e)});function $l(t){return PS(gw,t)}var yw=_("ZodISODuration",(t,e)=>{m_.init(t,e),he.init(t,e)});function Il(t){return xS(yw,t)}var dI=(t,e)=>{Aa.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>tl(t,r)},flatten:{value:r=>el(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,ao,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,ao,2)}},isEmpty:{get(){return t.issues.length===0}}})};var ut=_("ZodError",dI,{Parent:Error});var _w=Ma(ut),Sw=$a(ut),ww=Ti(ut),bw=Mi(ut),Rw=Ky(ut),Cw=Jy(ut),Pw=Yy(ut),xw=Xy(ut),kw=Qy(ut),Ew=ev(ut),Tw=tv(ut),Aw=rv(ut);var Mw=new WeakMap;function Di(t,e,r){let n=Object.getPrototypeOf(t),o=Mw.get(n);if(o||(o=new Set,Mw.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:zi(t,"input"),output:zi(t,"output")}}),t.toJSONSchema=qS(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>_w(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>ww(t,r,n),t.parseAsync=async(r,n)=>Sw(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>bw(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Rw(t,r,n),t.decode=(r,n)=>Cw(t,r,n),t.encodeAsync=async(r,n)=>Pw(t,r,n),t.decodeAsync=async(r,n)=>xw(t,r,n),t.safeEncode=(r,n)=>kw(t,r,n),t.safeDecode=(r,n)=>Ew(t,r,n),t.safeEncodeAsync=async(r,n)=>Tw(t,r,n),t.safeDecodeAsync=async(r,n)=>Aw(t,r,n),Di(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(XI(r,n))},superRefine(r,n){return this.check(QI(r,n))},overwrite(r){return this.check(Dr(r))},optional(){return ge(this)},exactOptional(){return FI(this)},nullable(){return zw(this)},nullish(){return ge(zw(this))},nonoptional(r){return BI(this,r)},array(){return P(this)},or(r){return ue([this,r])},and(r){return Za(this,r)},transform(r){return Nw(this,Bw(r))},default(r){return HI(this,r)},prefault(r){return ZI(this,r)},catch(r){return VI(this,r)},pipe(r){return Nw(this,r)},readonly(){return YI(this)},describe(r){let n=this.clone();return Nr.add(n,{description:r}),n},meta(...r){if(r.length===0)return Nr.get(this);let n=this.clone();return Nr.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 Nr.get(t)?.description},configurable:!0}),t)),Dw=_("_ZodString",(t,e)=>{Da.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>HS(t,n,o,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,Di(t,"_ZodString",{regex(...n){return this.check(ml(...n))},includes(...n){return this.check(vl(...n))},startsWith(...n){return this.check(_l(...n))},endsWith(...n){return this.check(Sl(...n))},min(...n){return this.check(po(...n))},max(...n){return this.check(La(...n))},length(...n){return this.check(ja(...n))},nonempty(...n){return this.check(po(1,...n))},lowercase(n){return this.check(gl(n))},uppercase(n){return this.check(yl(n))},trim(){return this.check(bl())},normalize(...n){return this.check(wl(...n))},toLowerCase(){return this.check(Rl())},toUpperCase(){return this.check(Cl())},slugify(){return this.check(Pl())}})}),zl=_("ZodString",(t,e)=>{Da.init(t,e),Dw.init(t,e),t.email=r=>t.check(nS(fI,r)),t.url=r=>t.check(hl(Lw,r)),t.jwt=r=>t.check(bS(kI,r)),t.emoji=r=>t.check(cS(pI,r)),t.guid=r=>t.check(pl($w,r)),t.uuid=r=>t.check(oS(Ha,r)),t.uuidv4=r=>t.check(iS(Ha,r)),t.uuidv6=r=>t.check(sS(Ha,r)),t.uuidv7=r=>t.check(aS(Ha,r)),t.nanoid=r=>t.check(uS(hI,r)),t.guid=r=>t.check(pl($w,r)),t.cuid=r=>t.check(dS(mI,r)),t.cuid2=r=>t.check(lS(gI,r)),t.ulid=r=>t.check(fS(yI,r)),t.base64=r=>t.check(_S(CI,r)),t.base64url=r=>t.check(SS(PI,r)),t.xid=r=>t.check(pS(vI,r)),t.ksuid=r=>t.check(hS(_I,r)),t.ipv4=r=>t.check(mS(SI,r)),t.ipv6=r=>t.check(gS(wI,r)),t.cidrv4=r=>t.check(yS(bI,r)),t.cidrv6=r=>t.check(vS(RI,r)),t.e164=r=>t.check(wS(xI,r)),t.datetime=r=>t.check(Al(r)),t.date=r=>t.check(Ml(r)),t.time=r=>t.check($l(r)),t.duration=r=>t.check(Il(r))});function y(t){return tS(zl,t)}var he=_("ZodStringFormat",(t,e)=>{ce.init(t,e),Dw.init(t,e)}),fI=_("ZodEmail",(t,e)=>{n_.init(t,e),he.init(t,e)});var $w=_("ZodGUID",(t,e)=>{t_.init(t,e),he.init(t,e)});var Ha=_("ZodUUID",(t,e)=>{r_.init(t,e),he.init(t,e)});var Lw=_("ZodURL",(t,e)=>{o_.init(t,e),he.init(t,e)});function jw(t){return hl(Lw,t)}var pI=_("ZodEmoji",(t,e)=>{i_.init(t,e),he.init(t,e)});var hI=_("ZodNanoID",(t,e)=>{s_.init(t,e),he.init(t,e)});var mI=_("ZodCUID",(t,e)=>{a_.init(t,e),he.init(t,e)});var gI=_("ZodCUID2",(t,e)=>{c_.init(t,e),he.init(t,e)});var yI=_("ZodULID",(t,e)=>{u_.init(t,e),he.init(t,e)});var vI=_("ZodXID",(t,e)=>{d_.init(t,e),he.init(t,e)});var _I=_("ZodKSUID",(t,e)=>{l_.init(t,e),he.init(t,e)});var SI=_("ZodIPv4",(t,e)=>{g_.init(t,e),he.init(t,e)});var wI=_("ZodIPv6",(t,e)=>{y_.init(t,e),he.init(t,e)});var bI=_("ZodCIDRv4",(t,e)=>{v_.init(t,e),he.init(t,e)});var RI=_("ZodCIDRv6",(t,e)=>{__.init(t,e),he.init(t,e)});var CI=_("ZodBase64",(t,e)=>{w_.init(t,e),he.init(t,e)});var PI=_("ZodBase64URL",(t,e)=>{b_.init(t,e),he.init(t,e)});var xI=_("ZodE164",(t,e)=>{R_.init(t,e),he.init(t,e)});var kI=_("ZodJWT",(t,e)=>{C_.init(t,e),he.init(t,e)});var Ga=_("ZodNumber",(t,e)=>{cl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>GS(t,n,o,i),Di(t,"ZodNumber",{gt(n,o){return this.check(fo(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(lo(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(Iw(n))},safe(n){return this.check(Iw(n))},positive(n){return this.check(fo(0,n))},nonnegative(n){return this.check(At(0,n))},negative(n){return this.check(lo(0,n))},nonpositive(n){return this.check(cr(0,n))},multipleOf(n,o){return this.check(Oi(n,o))},step(n,o){return this.check(Oi(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 kS(Ga,t)}var EI=_("ZodNumberFormat",(t,e)=>{P_.init(t,e),Ga.init(t,e)});function Iw(t){return TS(EI,t)}var Nl=_("ZodBoolean",(t,e)=>{x_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ZS(t,r,n,o)});function ie(t){return AS(Nl,t)}var Fw=_("ZodBigInt",(t,e)=>{k_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>BS(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(fo(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(lo(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(fo(BigInt(0),n)),t.negative=n=>t.check(lo(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(Oi(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});var TI=_("ZodNull",(t,e)=>{E_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>WS(t,r,n,o)});function Uw(t){return IS(TI,t)}var AI=_("ZodAny",(t,e)=>{T_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>KS(t,r,n,o)});function qw(){return OS(AI)}var MI=_("ZodUnknown",(t,e)=>{A_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>JS(t,r,n,o)});function me(){return zS(MI)}var $I=_("ZodNever",(t,e)=>{M_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>VS(t,r,n,o)});function II(t){return NS($I,t)}var Hw=_("ZodDate",(t,e)=>{$_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>YS(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 OI=_("ZodArray",(t,e)=>{I_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>rw(t,r,n,o),t.element=e.element,Di(t,"ZodArray",{min(r,n){return this.check(po(r,n))},nonempty(r){return this.check(po(1,r))},max(r,n){return this.check(La(r,n))},length(r,n){return this.check(ja(r,n))},unwrap(){return this.element}})});function P(t,e){return LS(OI,t,e)}var Gw=_("ZodObject",(t,e)=>{N_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nw(t,r,n,o),H.defineLazy(t,"shape",()=>e.shape),Di(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:II()})},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(Ww,this,r[0])},required(...r){return H.required(Vw,this,r[0])}})});function k(t,e){let r={type:"object",shape:t??{},...H.normalizeParams(e)};return new Gw(r)}function ke(t,e){return new Gw({type:"object",shape:t,catchall:me(),...H.normalizeParams(e)})}var Zw=_("ZodUnion",(t,e)=>{ul.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ow(t,r,n,o),t.options=e.options});function ue(t,e){return new Zw({type:"union",options:t,...H.normalizeParams(e)})}var zI=_("ZodDiscriminatedUnion",(t,e)=>{Zw.init(t,e),D_.init(t,e)});function Dl(t,e,r){return new zI({type:"union",options:e,discriminator:t,...H.normalizeParams(r)})}var NI=_("ZodIntersection",(t,e)=>{L_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>iw(t,r,n,o)});function Za(t,e){return new NI({type:"intersection",left:t,right:e})}var Ow=_("ZodRecord",(t,e)=>{j_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sw(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function ae(t,e,r){return!e||!e._zod?new Ow({type:"record",keyType:y(),valueType:t,...H.normalizeParams(e)}):new Ow({type:"record",keyType:t,valueType:e,...H.normalizeParams(r)})}var Ol=_("ZodEnum",(t,e)=>{F_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,o,i)=>XS(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 Ol({...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 Ol({...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 Ol({type:"enum",entries:r,...H.normalizeParams(e)})}var DI=_("ZodLiteral",(t,e)=>{U_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>QS(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 DI({type:"literal",values:Array.isArray(t)?t:[t],...H.normalizeParams(e)})}var LI=_("ZodTransform",(t,e)=>{q_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>tw(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new io(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 Bw(t){return new LI({type:"transform",transform:t})}var Ww=_("ZodOptional",(t,e)=>{dl.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Tl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function ge(t){return new Ww({type:"optional",innerType:t})}var jI=_("ZodExactOptional",(t,e)=>{H_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Tl(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function FI(t){return new jI({type:"optional",innerType:t})}var UI=_("ZodNullable",(t,e)=>{G_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>aw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function zw(t){return new UI({type:"nullable",innerType:t})}var qI=_("ZodDefault",(t,e)=>{Z_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function HI(t,e){return new qI({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var GI=_("ZodPrefault",(t,e)=>{B_.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 ZI(t,e){return new GI({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():H.shallowClone(e)}})}var Vw=_("ZodNonOptional",(t,e)=>{W_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>cw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function BI(t,e){return new Vw({type:"nonoptional",innerType:t,...H.normalizeParams(e)})}var WI=_("ZodCatch",(t,e)=>{V_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>lw(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function VI(t,e){return new WI({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Kw=_("ZodPipe",(t,e)=>{ll.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fw(t,r,n,o),t.in=e.in,t.out=e.out});function Nw(t,e){return new Kw({type:"pipe",in:t,out:e})}var KI=_("ZodPreprocess",(t,e)=>{Kw.init(t,e),K_.init(t,e)}),JI=_("ZodReadonly",(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 YI(t){return new JI({type:"readonly",innerType:t})}var Jw=_("ZodCustom",(t,e)=>{Y_.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ew(t,r,n,o)});function Yw(t,e){return jS(Jw,t??(()=>!0),e)}function XI(t,e={}){return FS(Jw,t,e)}function QI(t,e){return US(t,e)}function Ll(t,e){return new KI({type:"pipe",in:Bw(t),out:e})}var Qw={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 Xw;Xw||(Xw={});var Ba={};Ou(Ba,{bigint:()=>nO,boolean:()=>rO,date:()=>oO,number:()=>tO,string:()=>eO});function eO(t){return rS(zl,t)}function tO(t){return ES(Ga,t)}function rO(t){return MS(Nl,t)}function nO(t){return $S(Fw,t)}function oO(t){return DS(Hw,t)}Ye(X_());var go="2025-11-25";var eb=[go,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Lr="io.modelcontextprotocol/related-task",Va="2.0",Ee=Yw(t=>t!==null&&(typeof t=="object"||typeof t=="function")),tb=ue([y(),K().int()]),rb=y(),dV=ke({ttl:K().optional(),pollInterval:K().optional()}),sO=k({ttl:K().optional()}),aO=k({taskId:y()}),Fl=ke({progressToken:tb.optional(),[Lr]:aO.optional()}),dt=k({_meta:Fl.optional()}),Li=dt.extend({task:sO.optional()}),nb=t=>Li.safeParse(t).success,Oe=k({method:y(),params:dt.loose().optional()}),vt=k({_meta:Fl.optional()}),_t=k({method:y(),params:vt.loose().optional()}),Te=ke({_meta:Fl.optional()}),Ka=ue([y(),K().int()]),ob=k({jsonrpc:E(Va),id:Ka,...Oe.shape}).strict(),ji=t=>ob.safeParse(t).success,ib=k({jsonrpc:E(Va),..._t.shape}).strict(),sb=t=>ib.safeParse(t).success,Ul=k({jsonrpc:E(Va),id:Ka,result:Te}).strict(),yn=t=>Ul.safeParse(t).success;var $;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})($||($={}));var ql=k({jsonrpc:E(Va),id:Ka.optional(),error:k({code:K().int(),message:y(),data:me().optional()})}).strict();var ab=t=>ql.safeParse(t).success;var jr=ue([ob,ib,Ul,ql]),lV=ue([Ul,ql]),vn=Te.strict(),cO=vt.extend({requestId:Ka.optional(),reason:y().optional()}),Ja=_t.extend({method:E("notifications/cancelled"),params:cO}),uO=k({src:y(),mimeType:y().optional(),sizes:P(y()).optional(),theme:Xe(["light","dark"]).optional()}),Fi=k({icons:P(uO).optional()}),mo=k({name:y(),title:y().optional()}),cb=mo.extend({...mo.shape,...Fi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),dO=Za(k({applyDefaults:ie().optional()}),ae(y(),me())),lO=Ll(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Za(k({form:dO.optional(),url:Ee.optional()}),ae(y(),me()).optional())),fO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({sampling:ke({createMessage:Ee.optional()}).optional(),elicitation:ke({create:Ee.optional()}).optional()}).optional()}),pO=ke({list:Ee.optional(),cancel:Ee.optional(),requests:ke({tools:ke({call:Ee.optional()}).optional()}).optional()}),hO=k({experimental:ae(y(),Ee).optional(),sampling:k({context:Ee.optional(),tools:Ee.optional()}).optional(),elicitation:lO.optional(),roots:k({listChanged:ie().optional()}).optional(),tasks:fO.optional(),extensions:ae(y(),Ee).optional()}),mO=dt.extend({protocolVersion:y(),capabilities:hO,clientInfo:cb}),gO=Oe.extend({method:E("initialize"),params:mO});var yO=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:pO.optional(),extensions:ae(y(),Ee).optional()}),Hl=Te.extend({protocolVersion:y(),capabilities:yO,serverInfo:cb,instructions:y().optional()}),ub=_t.extend({method:E("notifications/initialized"),params:vt.optional()}),db=t=>ub.safeParse(t).success,Ya=Oe.extend({method:E("ping"),params:dt.optional()}),vO=k({progress:K(),total:ge(K()),message:ge(y())}),_O=k({...vt.shape,...vO.shape,progressToken:tb}),Xa=_t.extend({method:E("notifications/progress"),params:_O}),SO=dt.extend({cursor:rb.optional()}),Ui=Oe.extend({params:SO.optional()}),qi=Te.extend({nextCursor:rb.optional()}),wO=Xe(["working","input_required","completed","failed","cancelled"]),Hi=k({taskId:y(),status:wO,ttl:ue([K(),Uw()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ge(K()),statusMessage:ge(y())}),_n=Te.extend({task:Hi}),bO=vt.merge(Hi),Gi=_t.extend({method:E("notifications/tasks/status"),params:bO}),Qa=Oe.extend({method:E("tasks/get"),params:dt.extend({taskId:y()})}),ec=Te.merge(Hi),tc=Oe.extend({method:E("tasks/result"),params:dt.extend({taskId:y()})}),fV=Te.loose(),rc=Ui.extend({method:E("tasks/list")}),nc=qi.extend({tasks:P(Hi)}),oc=Oe.extend({method:E("tasks/cancel"),params:dt.extend({taskId:y()})}),lb=Te.merge(Hi),fb=k({uri:y(),mimeType:ge(y()),_meta:ae(y(),me()).optional()}),pb=fb.extend({text:y()}),Gl=y().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),hb=fb.extend({blob:Gl}),Zi=Xe(["user","assistant"]),yo=k({audience:P(Zi).optional(),priority:K().min(0).max(1).optional(),lastModified:Ni.datetime({offset:!0}).optional()}),mb=k({...mo.shape,...Fi.shape,uri:y(),description:ge(y()),mimeType:ge(y()),size:ge(K()),annotations:yo.optional(),_meta:ge(ke({}))}),RO=k({...mo.shape,...Fi.shape,uriTemplate:y(),description:ge(y()),mimeType:ge(y()),annotations:yo.optional(),_meta:ge(ke({}))}),CO=Ui.extend({method:E("resources/list")}),Zl=qi.extend({resources:P(mb)}),PO=Ui.extend({method:E("resources/templates/list")}),Bl=qi.extend({resourceTemplates:P(RO)}),Wl=dt.extend({uri:y()}),xO=Wl,kO=Oe.extend({method:E("resources/read"),params:xO}),Vl=Te.extend({contents:P(ue([pb,hb]))}),Kl=_t.extend({method:E("notifications/resources/list_changed"),params:vt.optional()}),EO=Wl,TO=Oe.extend({method:E("resources/subscribe"),params:EO}),AO=Wl,MO=Oe.extend({method:E("resources/unsubscribe"),params:AO}),$O=vt.extend({uri:y()}),IO=_t.extend({method:E("notifications/resources/updated"),params:$O}),OO=k({name:y(),description:ge(y()),required:ge(ie())}),zO=k({...mo.shape,...Fi.shape,description:ge(y()),arguments:ge(P(OO)),_meta:ge(ke({}))}),NO=Ui.extend({method:E("prompts/list")}),Jl=qi.extend({prompts:P(zO)}),DO=dt.extend({name:y(),arguments:ae(y(),y()).optional()}),LO=Oe.extend({method:E("prompts/get"),params:DO}),Yl=k({type:E("text"),text:y(),annotations:yo.optional(),_meta:ae(y(),me()).optional()}),Xl=k({type:E("image"),data:Gl,mimeType:y(),annotations:yo.optional(),_meta:ae(y(),me()).optional()}),Ql=k({type:E("audio"),data:Gl,mimeType:y(),annotations:yo.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()}),FO=k({type:E("resource"),resource:ue([pb,hb]),annotations:yo.optional(),_meta:ae(y(),me()).optional()}),UO=mb.extend({type:E("resource_link")}),ef=ue([Yl,Xl,Ql,UO,FO]),qO=k({role:Zi,content:ef}),tf=Te.extend({description:y().optional(),messages:P(qO)}),rf=_t.extend({method:E("notifications/prompts/list_changed"),params:vt.optional()}),HO=k({title:y().optional(),readOnlyHint:ie().optional(),destructiveHint:ie().optional(),idempotentHint:ie().optional(),openWorldHint:ie().optional()}),GO=k({taskSupport:Xe(["required","optional","forbidden"]).optional()}),gb=k({...mo.shape,...Fi.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:HO.optional(),execution:GO.optional(),_meta:ae(y(),me()).optional()}),ZO=Ui.extend({method:E("tools/list")}),nf=qi.extend({tools:P(gb)}),Sn=Te.extend({content:P(ef).default([]),structuredContent:ae(y(),me()).optional(),isError:ie().optional()}),pV=Sn.or(Te.extend({toolResult:me()})),BO=Li.extend({name:y(),arguments:ae(y(),me()).optional()}),WO=Oe.extend({method:E("tools/call"),params:BO}),Bi=_t.extend({method:E("notifications/tools/list_changed"),params:vt.optional()}),yb=k({autoRefresh:ie().default(!0),debounceMs:K().int().nonnegative().default(300)}),vb=Xe(["debug","info","notice","warning","error","critical","alert","emergency"]),VO=dt.extend({level:vb}),KO=Oe.extend({method:E("logging/setLevel"),params:VO}),JO=vt.extend({level:vb,logger:y().optional(),data:me()}),YO=_t.extend({method:E("notifications/message"),params:JO}),XO=k({name:y().optional()}),QO=k({hints:P(XO).optional(),costPriority:K().min(0).max(1).optional(),speedPriority:K().min(0).max(1).optional(),intelligencePriority:K().min(0).max(1).optional()}),ez=k({mode:Xe(["auto","required","none"]).optional()}),tz=k({type:E("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:P(ef).default([]),structuredContent:k({}).loose().optional(),isError:ie().optional(),_meta:ae(y(),me()).optional()}),rz=Dl("type",[Yl,Xl,Ql]),Wa=Dl("type",[Yl,Xl,Ql,jO,tz]),nz=k({role:Zi,content:ue([Wa,P(Wa)]),_meta:ae(y(),me()).optional()}),oz=Li.extend({messages:P(nz),modelPreferences:QO.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(gb).optional(),toolChoice:ez.optional()}),of=Oe.extend({method:E("sampling/createMessage"),params:oz}),sf=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens"]).or(y())),role:Zi,content:rz}),af=Te.extend({model:y(),stopReason:ge(Xe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:Zi,content:ue([Wa,P(Wa)])}),iz=k({type:E("boolean"),title:y().optional(),description:y().optional(),default:ie().optional()}),sz=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()}),az=k({type:Xe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:K().optional(),maximum:K().optional(),default:K().optional()}),cz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),default:y().optional()}),uz=k({type:E("string"),title:y().optional(),description:y().optional(),oneOf:P(k({const:y(),title:y()})),default:y().optional()}),dz=k({type:E("string"),title:y().optional(),description:y().optional(),enum:P(y()),enumNames:P(y()).optional(),default:y().optional()}),lz=ue([cz,uz]),fz=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()}),pz=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()}),hz=ue([fz,pz]),mz=ue([dz,lz,hz]),gz=ue([mz,iz,sz,az]),yz=Li.extend({mode:E("form").optional(),message:y(),requestedSchema:k({type:E("object"),properties:ae(y(),gz),required:P(y()).optional()})}),vz=Li.extend({mode:E("url"),message:y(),elicitationId:y(),url:y().url()}),_z=ue([yz,vz]),cf=Oe.extend({method:E("elicitation/create"),params:_z}),Sz=vt.extend({elicitationId:y()}),wz=_t.extend({method:E("notifications/elicitation/complete"),params:Sz}),uf=Te.extend({action:Xe(["accept","decline","cancel"]),content:Ll(t=>t===null?void 0:t,ae(y(),ue([y(),K(),ie(),P(y())])).optional())}),bz=k({type:E("ref/resource"),uri:y()});var Rz=k({type:E("ref/prompt"),name:y()}),Cz=dt.extend({ref:ue([Rz,bz]),argument:k({name:y(),value:y()}),context:k({arguments:ae(y(),y()).optional()}).optional()}),Pz=Oe.extend({method:E("completion/complete"),params:Cz});var df=Te.extend({completion:ke({values:P(y()).max(100),total:ge(K().int()),hasMore:ge(ie())})}),xz=k({uri:y().startsWith("file://"),name:y().optional(),_meta:ae(y(),me()).optional()}),kz=Oe.extend({method:E("roots/list"),params:dt.optional()}),Ez=Te.extend({roots:P(xz)}),Tz=_t.extend({method:E("notifications/roots/list_changed"),params:vt.optional()}),hV=ue([Ya,gO,Pz,KO,LO,NO,CO,PO,kO,TO,MO,WO,ZO,Qa,tc,rc,oc]),mV=ue([Ja,Xa,ub,Tz,Gi]),gV=ue([vn,sf,af,uf,Ez,ec,nc,_n]),yV=ue([Ya,of,cf,kz,Qa,tc,rc,oc]),vV=ue([Ja,Xa,YO,IO,Kl,Bi,rf,Gi,wz]),_V=ue([vn,Hl,df,tf,Jl,Zl,Bl,Vl,Sn,nf,ec,nc,_n]),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 jl(o.elicitations,r)}return new t(e,r,n)}},jl=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 Fr(t){return t==="completed"||t==="failed"||t==="cancelled"}var XV=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function lf(t){let r=Ua(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=qa(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function ff(t,e){let r=Mt(t,e);if(!r.success)throw r.error;return r.data}var zz=6e4,ic=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(Ja,r=>{this._oncancel(r)}),this.setNotificationHandler(Xa,r=>{this._onprogress(r)}),this.setRequestHandler(Ya,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Qa,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(tc,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(!Fr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Fr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Lr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(rc,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(oc,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(Fr(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),yn(i)||ab(i)?this._onresponse(i):ji(i)?this._onrequest(i,s):sb(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=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?.[Lr]?.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=nb(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 h=p.relatedTask?.taskId??i;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(d,l,p)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async d=>{if(s.signal.aborted)return;let l={result:d,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)},async d=>{if(s.signal.aborted)return;let l={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:$.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId):await o?.send(l)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),yn(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(yn(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),yn(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,_n,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},Fr(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||{},[Lr]:c}});let h=w=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(w)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(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",()=>{h(n?.signal?.reason)});let m=n?.timeout??zz,g=()=>h(M.fromError($.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let w=b=>{let 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},ec,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},nc,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},lb,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||{},[Lr]: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||{},[Lr]: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||{},[Lr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=lf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=ff(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=lf(e);this._notificationHandlers.set(n,o=>{let i=ff(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&ji(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new 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=Gi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Fr(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(Fr(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=Gi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Fr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function _b(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Sb(t,e){let r={...t};for(let n in e){let o=n,i=e[o];if(i===void 0)continue;let s=r[o];_b(s)&&_b(i)?r[o]={...s,...i}:r[o]=i}return r}var dP=Ks(Xp(),1),lP=Ks(uP(),1);function FF(){let t=new dP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,lP.default)(t),t}var qc=class{constructor(e){this._ajv=e??FF()}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 Hc=class{constructor(e){this._client=e}async*callToolStream(e,r=Sn,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 fP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function pP(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 Gc(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&&Gc(i,r[o])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Gc(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Gc(r,e)}}function UF(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 Zc=class extends ic{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new qc,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Bi,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",rf,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Kl,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Hc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Sb(this._capabilities,e)}setRequestHandler(e,r){let o=Ua(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i=qa(o);if(typeof i!="string")throw new Error("Schema method literal must be a string");let s=i;if(s==="elicitation/create"){let a=async(c,u)=>{let d=Mt(cf,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}=UF(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 h=await Promise.resolve(r(c,u));if(l.task){let w=Mt(_n,h);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 m=Mt(uf,h);if(!m.success){let w=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid elicitation result: ${w}`)}let g=m.data,v=l.mode==="form"?l.requestedSchema:void 0;if(l.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Gc(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(s==="sampling/createMessage"){let a=async(c,u)=>{let d=Mt(of,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(_n,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 h=l.tools||l.toolChoice?af:sf,m=Mt(h,f);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new M($.InvalidParams,`Invalid sampling result: ${g}`)}return m.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:go,capabilities:this._capabilities,clientInfo:this._clientInfo}},Hl,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!eb.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){fP(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&pP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},vn,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},df,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},vn,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},tf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Jl,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Zl,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bl,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Vl,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},vn,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},vn,r)}async callTool(e,r=Sn,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},nf,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,o){let i=yb.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 Rs=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}},hP=10,qF=13,$n=32;function sh(t){}function Bc(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=sh,onError:r=sh,onRetry:n=sh,onComment:o,maxBufferSize:i}=t,s=[],a=0,c=!0,u,d="",l=0,f,p=!1;function h(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),m();return}if(S.indexOf(`
88
+ `)===-1&&S.indexOf("\r")===-1){s.push(S),a+=S.length,m();return}s.push(S);let R=s.join("");s.length=0,a=0;let I=g(R);I!==""&&(s.push(I),a=I.length),m()}function m(){i!==void 0&&(a+d.length<=i||(p=!0,s.length=0,a=0,u=void 0,d="",l=0,f=void 0,r(new Rs(`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(hP(S,R,ne)){let fe=S.charCodeAt(R+5)===$n?R+6:R+5,Pe=S.slice(fe,I);if(l===0&&S.charCodeAt(I+1)===pP){e({id:u,event:f,data:Pe}),u=void 0,d="",f=void 0,R=I+2,I=S.indexOf(`
90
+ `,R);continue}let ne=S.charCodeAt(R);if(mP(S,R,ne)){let fe=S.charCodeAt(R+5)===$n?R+6:R+5,Pe=S.slice(fe,I);if(l===0&&S.charCodeAt(I+1)===hP){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 mP(S,R,ne)?f=S.slice(S.charCodeAt(R+6)===$n?R+7:R+6,I)||void 0:v(S,R,I);R=I+1,I=S.indexOf(`
92
+ ${Pe}`,l++}else gP(S,R,ne)?f=S.slice(S.charCodeAt(R+6)===$n?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)===GF&&S.charCodeAt(R)===pP&&R++}return S.slice(R)}function v(S,R,I){if(R===I){b();return}let ne=S.charCodeAt(R);if(hP(S,R,ne)){let Sr=S.charCodeAt(R+5)===$n?R+6:R+5,km=S.slice(Sr,I);d=l===0?km:`${d}
95
- ${km}`,l++;return}if(mP(S,R,ne)){f=S.slice(S.charCodeAt(R+6)===$n?R+7:R+6,I)||void 0;return}if(ne===105&&S.charCodeAt(R+1)===100&&S.charCodeAt(R+2)===58){let Sr=S.slice(S.charCodeAt(R+3)===$n?R+4:R+3,I);u=Sr.includes("\0")?void 0:Sr;return}if(ne===58){if(o){let Sr=S.slice(R,I);o(Sr.slice(S.charCodeAt(R+1)===$n?2:1))}return}let fe=S.slice(R,I),Pe=fe.indexOf(":");if(Pe===-1){w(fe,"",fe);return}let tn=fe.slice(0,Pe),rn=fe.charCodeAt(Pe+1)===$n?2:1,lt=fe.slice(Pe+rn);w(tn,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 ws(`Invalid \`retry\` value: "${R}"`,{type:"invalid-retry",value:R,line:I}));break;default:r(new ws(`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:h,reset:x}}function hP(t,e,r){return r===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function mP(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 Vc=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(gP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(gP(this),r)}};function ZF(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function ah(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(ah).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${ah(t.cause)}`:t.message:`${t}`}function gP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var vP=t=>{throw TypeError(t)},mh=(t,e,r)=>e.has(t)||vP("Cannot "+r),q=(t,e,r)=>(mh(t,e,"read from private field"),r?r.call(t):e.get(t)),Ae=(t,e,r)=>e.has(t)?vP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ye=(t,e,r,n)=>(mh(t,e,"write to private field"),e.set(t,r),r),hr=(t,e,r)=>(mh(t,e,"access private method"),r),nt,In,Oo,Wc,Kc,Cs,Do,Ps,Kr,zo,Lo,No,bs,Dt,ch,uh,dh,yP,lh,fh,Rs,ph,hh,On=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,In),Ae(this,Oo),Ae(this,Wc),Ae(this,Kc),Ae(this,Cs),Ae(this,Do),Ae(this,Ps,null),Ae(this,Kr),Ae(this,zo),Ae(this,Lo,null),Ae(this,No,null),Ae(this,bs,null),Ae(this,uh,async i=>{var s;q(this,zo).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){hr(this,Dt,Rs).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ye(this,Oo,new URL(i.url)):ye(this,Oo,void 0),u!==200){hr(this,Dt,Rs).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){hr(this,Dt,Rs).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,bs))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){hr(this,Dt,Rs).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),h=!0;do{let{done:m,value:g}=await p.read();g&&q(this,zo).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,zo).reset(),hr(this,Dt,ph).call(this))}while(h)}),Ae(this,dh,i=>{ye(this,Kr,void 0),!(i.name==="AbortError"||i.type==="aborted")&&hr(this,Dt,ph).call(this,ah(i))}),Ae(this,lh,i=>{typeof i.id=="string"&&ye(this,Ps,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,Oo)?q(this,Oo).origin:q(this,In).origin,lastEventId:i.id||""});q(this,No)&&(!i.event||i.event==="message")&&q(this,No).call(this,s),this.dispatchEvent(s)}),Ae(this,fh,i=>{ye(this,Cs,i)}),Ae(this,hh,()=>{ye(this,Do,void 0),q(this,nt)===this.CONNECTING&&hr(this,Dt,ch).call(this)});try{if(e instanceof URL)ye(this,In,e);else if(typeof e=="string")ye(this,In,new URL(e,BF()));else throw new Error("Invalid URL")}catch{throw ZF("An invalid or illegal string was specified")}ye(this,zo,Bc({onEvent:q(this,lh),onRetry:q(this,fh)})),ye(this,nt,this.CONNECTING),ye(this,Cs,3e3),ye(this,Kc,(n=r?.fetch)!=null?n:globalThis.fetch),ye(this,Wc,(o=r?.withCredentials)!=null?o:!1),hr(this,Dt,ch).call(this)}get readyState(){return q(this,nt)}get url(){return q(this,In).href}get withCredentials(){return q(this,Wc)}get onerror(){return q(this,Lo)}set onerror(e){ye(this,Lo,e)}get onmessage(){return q(this,No)}set onmessage(e){ye(this,No,e)}get onopen(){return q(this,bs)}set onopen(e){ye(this,bs,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,Do)&&clearTimeout(q(this,Do)),q(this,nt)!==this.CLOSED&&(q(this,Kr)&&q(this,Kr).abort(),ye(this,nt,this.CLOSED),ye(this,Kr,void 0))}};nt=new WeakMap,In=new WeakMap,Oo=new WeakMap,Wc=new WeakMap,Kc=new WeakMap,Cs=new WeakMap,Do=new WeakMap,Ps=new WeakMap,Kr=new WeakMap,zo=new WeakMap,Lo=new WeakMap,No=new WeakMap,bs=new WeakMap,Dt=new WeakSet,ch=function(){ye(this,nt,this.CONNECTING),ye(this,Kr,new AbortController),q(this,Kc)(q(this,In),hr(this,Dt,yP).call(this)).then(q(this,uh)).catch(q(this,dh))},uh=new WeakMap,dh=new WeakMap,yP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,Ps)?{"Last-Event-ID":q(this,Ps)}:void 0},cache:"no-store",signal:(t=q(this,Kr))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},lh=new WeakMap,fh=new WeakMap,Rs=function(t,e){var r;q(this,nt)!==this.CLOSED&&ye(this,nt,this.CLOSED);let n=new Vc("error",{code:e,message:t});(r=q(this,Lo))==null||r.call(this,n),this.dispatchEvent(n)},ph=function(t,e){var r;if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.CONNECTING);let n=new Vc("error",{code:e,message:t});(r=q(this,Lo))==null||r.call(this,n),this.dispatchEvent(n),ye(this,Do,setTimeout(q(this,hh),q(this,Cs)))},hh=new WeakMap,On.CONNECTING=0,On.OPEN=1,On.CLOSED=2;function BF(){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 jo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function Jc(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...jo(e.headers),...jo(n.headers)}:e.headers};return t(r,o)}:t}var gh;gh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function WF(t){return(await gh).getRandomValues(new Uint8Array(t))}async function VF(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await WF(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function KF(t){return await VF(t)}async function JF(t){let e=await(await gh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function yh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await KF(t),r=await JF(e);return{code_verifier:e,code_challenge:r}}var Le=Lw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:Xw.custom,message:"URL must be parseable",fatal:!0}),qd}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),SP=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()}),vh=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()}),YF=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()}),wP=k({...YF.shape,...vh.pick({code_challenge_methods_supported:!0}).shape}),bP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:Ba.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),RP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),_P=Le.optional().or(E("").transform(()=>{})),XF=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:_P,scope:y().optional(),contacts:P(y()).optional(),tos_uri:_P,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:Uw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),QF=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),CP=XF.merge(QF),M3=k({error:y(),error_description:y().optional()}).strip(),$3=k({token:y(),token_type_hint:y().optional()}).strip();function PP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function xP({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}},xs=class extends be{};xs.errorCode="invalid_request";var zn=class extends be{};zn.errorCode="invalid_client";var Nn=class extends be{};Nn.errorCode="invalid_grant";var Dn=class extends be{};Dn.errorCode="unauthorized_client";var ks=class extends be{};ks.errorCode="unsupported_grant_type";var Es=class extends be{};Es.errorCode="invalid_scope";var Ts=class extends be{};Ts.errorCode="access_denied";var mr=class extends be{};mr.errorCode="server_error";var As=class extends be{};As.errorCode="temporarily_unavailable";var Ms=class extends be{};Ms.errorCode="unsupported_response_type";var $s=class extends be{};$s.errorCode="unsupported_token_type";var Is=class extends be{};Is.errorCode="invalid_token";var Os=class extends be{};Os.errorCode="method_not_allowed";var zs=class extends be{};zs.errorCode="too_many_requests";var Ln=class extends be{};Ln.errorCode="invalid_client_metadata";var Ns=class extends be{};Ns.errorCode="insufficient_scope";var Ds=class extends be{};Ds.errorCode="invalid_target";var kP={[xs.errorCode]:xs,[zn.errorCode]:zn,[Nn.errorCode]:Nn,[Dn.errorCode]:Dn,[ks.errorCode]:ks,[Es.errorCode]:Es,[Ts.errorCode]:Ts,[mr.errorCode]:mr,[As.errorCode]:As,[Ms.errorCode]:Ms,[$s.errorCode]:$s,[Is.errorCode]:Is,[Os.errorCode]:Os,[zs.errorCode]:zs,[Ln.errorCode]:Ln,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds};var Ze=class extends Error{constructor(e){super(e??"Unauthorized")}};function eU(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var _h="code",Sh="S256";function tU(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&eU(t.token_endpoint_auth_method)&&(e.length===0||e.includes(t.token_endpoint_auth_method))?t.token_endpoint_auth_method:e.length===0?r?"client_secret_basic":"none":r&&e.includes("client_secret_basic")?"client_secret_basic":r&&e.includes("client_secret_post")?"client_secret_post":e.includes("none")?"none":r?"client_secret_post":"none"}function rU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":nU(o,i,r);return;case"client_secret_post":oU(o,i,n);return;case"none":iU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function nU(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function oU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function iU(t,e){e.set("client_id",t)}async function TP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=RP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=kP[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 wh(t,e)}catch(r){if(r instanceof zn||r instanceof Dn)return await t.invalidateCredentials?.("all"),await wh(t,e);if(r instanceof Nn)return await t.invalidateCredentials?.("tokens"),await wh(t,e);throw r}}async function wh(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 MP(c,{fetchFn:i}),!a)try{a=await AP(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 fU(e,{resourceMetadataUrl:d,fetchFn:i});c=b.authorizationServerUrl,u=b.authorizationServerMetadata,a=b.resourceMetadata,await t.saveDiscoveryState?.({authorizationServerUrl:String(c),resourceMetadataUrl:d?.toString(),resourceMetadata:a,authorizationServerMetadata:u})}let l=await aU(e,t,a),f=n||a?.scopes_supported?.join(" ")||t.clientMetadata.scope,p=await Promise.resolve(t.clientInformation());if(!p){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");let b=u?.client_id_metadata_document_supported===!0,x=t.clientMetadataUrl;if(x&&!sU(x))throw new Ln(`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 yU(c,{metadata:u,clientMetadata:t.clientMetadata,scope:f,fetchFn:i});await t.saveClientInformation(R),p=R}}let h=!t.redirectUrl;if(r!==void 0||h){let b=await gU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}let m=await t.tokens();if(m?.refresh_token)try{let b=await mU(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof be)||b instanceof mr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await pU(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 sU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function aU(t,e,r){let n=PP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!xP({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 Fo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=bh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=bh(t,"scope")||void 0,a=bh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function bh(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 AP(t,e,r=fetch){let n=await dU(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 SP.parse(await n.json())}async function Rh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Rh(t,void 0,r):void 0;throw n}}function cU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function EP(t,e,r=fetch){return await Rh(t,{"MCP-Protocol-Version":e},r)}function uU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function dU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??mo,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=cU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await EP(s,i,r);if(!n?.metadataUrl&&uU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await EP(c,i,r)}return a}function lU(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 MP(t,{fetchFn:e=fetch,protocolVersion:r=mo}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=lU(t);for(let{url:i,type:s}of o){let a=await Rh(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"?vh.parse(await a.json()):wP.parse(await a.json())}}}async function fU(t,e){let r,n;try{r=await AP(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 MP(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function pU(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:i,resource:s}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(_h))throw new Error(`Incompatible auth server: does not support response type ${_h}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Sh))throw new Error(`Incompatible auth server: does not support code challenge method ${Sh}`)}else a=new URL("/authorize",t);let c=await yh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",_h),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Sh),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 hU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function $P(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=tU(n,d);rU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await TP(u);return bP.parse(await u.json())}async function mU(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 $P(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function gU(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=hU(o,u,t.redirectUrl)}let c=await t.clientInformation();return $P(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function yU(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 TP(s);return CP.parse(await s.json())}var Ls=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},Yc=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=Jc(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=jo(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 On(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}=Fo(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 Ls(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=jr.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}=Fo(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 bx=Ws(Sx(),1);import Ih from"node:process";import{PassThrough as BU}from"node:stream";var GU=10*1024*1024,Qc=class{constructor(e){this._maxBufferSize=e?.maxBufferSize??GU}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),ZU(r)}clear(){this._buffer=void 0}};function ZU(t){return jr.parse(JSON.parse(t))}function wx(t){return JSON.stringify(t)+`
98
- `}var WU=Ih.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function tu(){let t={};for(let e of WU){let r=Ih.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var eu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new Qc({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new BU)}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,bx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...tu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Ih.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=wx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var kx=Ws(xx(),1);function Ex(t){if(t)try{return kx.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var ru=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=Bc({onEvent:a=>{s.enqueue(a)},onError(a){typeof e=="function"&&e(a),(e==="terminate"||a.type==="max-buffer-size-exceeded")&&s.error(a)},onRetry:r,onComment:n,maxBufferSize:o})},transform(s){i.feed(s)}})}};var rq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Lt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},nu=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=Jc(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??rq}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=jo(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 ru({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:h}=await d.read();if(h)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let m=jr.parse(JSON.parse(p.data));yn(m)&&(c=!0,i!==void 0&&(m.id=i)),this.onmessage?.(m)}catch(m){this.onerror?.(m)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new 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:Di(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:h,scope:m}=Fo(a);if(this._resourceMetadataUrl=h,this._scope=m,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:h,scope:m,error:g}=Fo(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(m&&(this._scope=m),h&&(this._resourceMetadataUrl=h),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(),ub(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=Ex(l);if(d)if(f==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(f==="application/json"){let p=await a.json(),h=Array.isArray(p)?p.map(m=>jr.parse(m)):[jr.parse(p)];for(let m of h)this.onmessage?.(m)}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 Tx(t){return t.useShellInterpolation?process.platform==="win32"?{command:"cmd.exe",args:["/c",t.command]}:{command:"/bin/sh",args:["-c",t.command]}:{command:t.command,args:t.args}}var oq={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 Ax(t){return{...tu(),...oq,...t??{}}}function Mx(){return tu()}var zh=class t extends eu{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){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)===hP&&R++}return S.slice(R)}function v(S,R,I){if(R===I){b();return}let ne=S.charCodeAt(R);if(mP(S,R,ne)){let Sr=S.charCodeAt(R+5)===$n?R+6:R+5,Em=S.slice(Sr,I);d=l===0?Em:`${d}
95
+ ${Em}`,l++;return}if(gP(S,R,ne)){f=S.slice(S.charCodeAt(R+6)===$n?R+7:R+6,I)||void 0;return}if(ne===105&&S.charCodeAt(R+1)===100&&S.charCodeAt(R+2)===58){let Sr=S.slice(S.charCodeAt(R+3)===$n?R+4:R+3,I);u=Sr.includes("\0")?void 0:Sr;return}if(ne===58){if(o){let Sr=S.slice(R,I);o(Sr.slice(S.charCodeAt(R+1)===$n?2:1))}return}let fe=S.slice(R,I),Pe=fe.indexOf(":");if(Pe===-1){w(fe,"",fe);return}let tn=fe.slice(0,Pe),rn=fe.charCodeAt(Pe+1)===$n?2:1,lt=fe.slice(Pe+rn);w(tn,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 Rs(`Invalid \`retry\` value: "${R}"`,{type:"invalid-retry",value:R,line:I}));break;default:r(new Rs(`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:h,reset:x}}function mP(t,e,r){return r===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function gP(t,e,r){return r===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}var Vc=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(yP(this),r)}[Symbol.for("Deno.customInspect")](e,r){return e(yP(this),r)}};function HF(t){let e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function ah(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(ah).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${ah(t.cause)}`:t.message:`${t}`}function yP(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var _P=t=>{throw TypeError(t)},mh=(t,e,r)=>e.has(t)||_P("Cannot "+r),q=(t,e,r)=>(mh(t,e,"read from private field"),r?r.call(t):e.get(t)),Ae=(t,e,r)=>e.has(t)?_P("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ye=(t,e,r,n)=>(mh(t,e,"write to private field"),e.set(t,r),r),hr=(t,e,r)=>(mh(t,e,"access private method"),r),nt,In,zo,Wc,Kc,xs,Lo,ks,Kr,No,jo,Do,Cs,Dt,ch,uh,dh,vP,lh,fh,Ps,ph,hh,On=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,In),Ae(this,zo),Ae(this,Wc),Ae(this,Kc),Ae(this,xs),Ae(this,Lo),Ae(this,ks,null),Ae(this,Kr),Ae(this,No),Ae(this,jo,null),Ae(this,Do,null),Ae(this,Cs,null),Ae(this,uh,async i=>{var s;q(this,No).reset();let{body:a,redirected:c,status:u,headers:d}=i;if(u===204){hr(this,Dt,Ps).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(c?ye(this,zo,new URL(i.url)):ye(this,zo,void 0),u!==200){hr(this,Dt,Ps).call(this,`Non-200 status code (${u})`,u);return}if(!(d.get("content-type")||"").startsWith("text/event-stream")){hr(this,Dt,Ps).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,Cs))==null||s.call(this,l),this.dispatchEvent(l),typeof a!="object"||!a||!("getReader"in a)){hr(this,Dt,Ps).call(this,"Invalid response body, expected a web ReadableStream",u),this.close();return}let f=new TextDecoder,p=a.getReader(),h=!0;do{let{done:m,value:g}=await p.read();g&&q(this,No).feed(f.decode(g,{stream:!m})),m&&(h=!1,q(this,No).reset(),hr(this,Dt,ph).call(this))}while(h)}),Ae(this,dh,i=>{ye(this,Kr,void 0),!(i.name==="AbortError"||i.type==="aborted")&&hr(this,Dt,ph).call(this,ah(i))}),Ae(this,lh,i=>{typeof i.id=="string"&&ye(this,ks,i.id);let s=new MessageEvent(i.event||"message",{data:i.data,origin:q(this,zo)?q(this,zo).origin:q(this,In).origin,lastEventId:i.id||""});q(this,Do)&&(!i.event||i.event==="message")&&q(this,Do).call(this,s),this.dispatchEvent(s)}),Ae(this,fh,i=>{ye(this,xs,i)}),Ae(this,hh,()=>{ye(this,Lo,void 0),q(this,nt)===this.CONNECTING&&hr(this,Dt,ch).call(this)});try{if(e instanceof URL)ye(this,In,e);else if(typeof e=="string")ye(this,In,new URL(e,GF()));else throw new Error("Invalid URL")}catch{throw HF("An invalid or illegal string was specified")}ye(this,No,Bc({onEvent:q(this,lh),onRetry:q(this,fh)})),ye(this,nt,this.CONNECTING),ye(this,xs,3e3),ye(this,Kc,(n=r?.fetch)!=null?n:globalThis.fetch),ye(this,Wc,(o=r?.withCredentials)!=null?o:!1),hr(this,Dt,ch).call(this)}get readyState(){return q(this,nt)}get url(){return q(this,In).href}get withCredentials(){return q(this,Wc)}get onerror(){return q(this,jo)}set onerror(e){ye(this,jo,e)}get onmessage(){return q(this,Do)}set onmessage(e){ye(this,Do,e)}get onopen(){return q(this,Cs)}set onopen(e){ye(this,Cs,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,Lo)&&clearTimeout(q(this,Lo)),q(this,nt)!==this.CLOSED&&(q(this,Kr)&&q(this,Kr).abort(),ye(this,nt,this.CLOSED),ye(this,Kr,void 0))}};nt=new WeakMap,In=new WeakMap,zo=new WeakMap,Wc=new WeakMap,Kc=new WeakMap,xs=new WeakMap,Lo=new WeakMap,ks=new WeakMap,Kr=new WeakMap,No=new WeakMap,jo=new WeakMap,Do=new WeakMap,Cs=new WeakMap,Dt=new WeakSet,ch=function(){ye(this,nt,this.CONNECTING),ye(this,Kr,new AbortController),q(this,Kc)(q(this,In),hr(this,Dt,vP).call(this)).then(q(this,uh)).catch(q(this,dh))},uh=new WeakMap,dh=new WeakMap,vP=function(){var t;let e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...q(this,ks)?{"Last-Event-ID":q(this,ks)}:void 0},cache:"no-store",signal:(t=q(this,Kr))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},lh=new WeakMap,fh=new WeakMap,Ps=function(t,e){var r;q(this,nt)!==this.CLOSED&&ye(this,nt,this.CLOSED);let n=new Vc("error",{code:e,message:t});(r=q(this,jo))==null||r.call(this,n),this.dispatchEvent(n)},ph=function(t,e){var r;if(q(this,nt)===this.CLOSED)return;ye(this,nt,this.CONNECTING);let n=new Vc("error",{code:e,message:t});(r=q(this,jo))==null||r.call(this,n),this.dispatchEvent(n),ye(this,Lo,setTimeout(q(this,hh),q(this,xs)))},hh=new WeakMap,On.CONNECTING=0,On.OPEN=1,On.CLOSED=2;function GF(){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 Fo(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function Jc(t=fetch,e){return e?async(r,n)=>{let o={...e,...n,headers:n?.headers?{...Fo(e.headers),...Fo(n.headers)}:e.headers};return t(r,o)}:t}var gh;gh=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then(t=>t.webcrypto);async function ZF(t){return(await gh).getRandomValues(new Uint8Array(t))}async function BF(t){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%e.length,n="";for(;n.length<t;){let o=await ZF(t-n.length);for(let i of o)i<r&&(n+=e[i%e.length])}return n}async function WF(t){return await BF(t)}async function VF(t){let e=await(await gh).subtle.digest("SHA-256",new TextEncoder().encode(t));return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function yh(t){if(t||(t=43),t<43||t>128)throw`Expected a length between 43 and 128. Received ${t}.`;let e=await WF(t),r=await VF(e);return{code_verifier:e,code_challenge:r}}var Le=jw().superRefine((t,e)=>{if(!URL.canParse(t))return e.addIssue({code:Qw.custom,message:"URL must be parseable",fatal:!0}),qd}).refine(t=>{let e=new URL(t);return e.protocol!=="javascript:"&&e.protocol!=="data:"&&e.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),wP=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()}),vh=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()}),KF=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()}),bP=k({...KF.shape,...vh.pick({code_challenge_methods_supported:!0}).shape}),RP=k({access_token:y(),id_token:y().optional(),token_type:y(),expires_in:Ba.number().optional(),scope:y().optional(),refresh_token:y().optional()}).strip(),CP=k({error:y(),error_description:y().optional(),error_uri:y().optional()}),SP=Le.optional().or(E("").transform(()=>{})),JF=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:SP,scope:y().optional(),contacts:P(y()).optional(),tos_uri:SP,policy_uri:y().optional(),jwks_uri:Le.optional(),jwks:qw().optional(),software_id:y().optional(),software_version:y().optional(),software_statement:y().optional()}).strip(),YF=k({client_id:y(),client_secret:y().optional(),client_id_issued_at:K().optional(),client_secret_expires_at:K().optional()}).strip(),PP=JF.merge(YF),E3=k({error:y(),error_description:y().optional()}).strip(),T3=k({token:y(),token_type_hint:y().optional()}).strip();function xP(t){let e=typeof t=="string"?new URL(t):new URL(t.href);return e.hash="",e}function kP({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}},Es=class extends be{};Es.errorCode="invalid_request";var zn=class extends be{};zn.errorCode="invalid_client";var Nn=class extends be{};Nn.errorCode="invalid_grant";var Dn=class extends be{};Dn.errorCode="unauthorized_client";var Ts=class extends be{};Ts.errorCode="unsupported_grant_type";var As=class extends be{};As.errorCode="invalid_scope";var Ms=class extends be{};Ms.errorCode="access_denied";var mr=class extends be{};mr.errorCode="server_error";var $s=class extends be{};$s.errorCode="temporarily_unavailable";var Is=class extends be{};Is.errorCode="unsupported_response_type";var Os=class extends be{};Os.errorCode="unsupported_token_type";var zs=class extends be{};zs.errorCode="invalid_token";var Ns=class extends be{};Ns.errorCode="method_not_allowed";var Ds=class extends be{};Ds.errorCode="too_many_requests";var Ln=class extends be{};Ln.errorCode="invalid_client_metadata";var Ls=class extends be{};Ls.errorCode="insufficient_scope";var js=class extends be{};js.errorCode="invalid_target";var EP={[Es.errorCode]:Es,[zn.errorCode]:zn,[Nn.errorCode]:Nn,[Dn.errorCode]:Dn,[Ts.errorCode]:Ts,[As.errorCode]:As,[Ms.errorCode]:Ms,[mr.errorCode]:mr,[$s.errorCode]:$s,[Is.errorCode]:Is,[Os.errorCode]:Os,[zs.errorCode]:zs,[Ns.errorCode]:Ns,[Ds.errorCode]:Ds,[Ln.errorCode]:Ln,[Ls.errorCode]:Ls,[js.errorCode]:js};var Ze=class extends Error{constructor(e){super(e??"Unauthorized")}};function XF(t){return["client_secret_basic","client_secret_post","none"].includes(t)}var _h="code",Sh="S256";function QF(t,e){let r=t.client_secret!==void 0;return"token_endpoint_auth_method"in t&&t.token_endpoint_auth_method&&XF(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 eU(t,e,r,n){let{client_id:o,client_secret:i}=e;switch(t){case"client_secret_basic":tU(o,i,r);return;case"client_secret_post":rU(o,i,n);return;case"none":nU(o,n);return;default:throw new Error(`Unsupported client authentication method: ${t}`)}}function tU(t,e,r){if(!e)throw new Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${t}:${e}`);r.set("Authorization",`Basic ${n}`)}function rU(t,e,r){r.set("client_id",t),e&&r.set("client_secret",e)}function nU(t,e){e.set("client_id",t)}async function AP(t){let e=t instanceof Response?t.status:void 0,r=t instanceof Response?await t.text():t;try{let n=CP.parse(JSON.parse(r)),{error:o,error_description:i,error_uri:s}=n,a=EP[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 wh(t,e)}catch(r){if(r instanceof zn||r instanceof Dn)return await t.invalidateCredentials?.("all"),await wh(t,e);if(r instanceof Nn)return await t.invalidateCredentials?.("tokens"),await wh(t,e);throw r}}async function wh(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 $P(c,{fetchFn:i}),!a)try{a=await MP(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 dU(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 iU(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&&!oU(x))throw new Ln(`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 mU(c,{metadata:u,clientMetadata:t.clientMetadata,scope:f,fetchFn:i});await t.saveClientInformation(R),p=R}}let h=!t.redirectUrl;if(r!==void 0||h){let b=await hU(t,c,{metadata:u,resource:l,authorizationCode:r,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}let m=await t.tokens();if(m?.refresh_token)try{let b=await pU(c,{metadata:u,clientInformation:p,refreshToken:m.refresh_token,resource:l,addClientAuthentication:t.addClientAuthentication,fetchFn:i});return await t.saveTokens(b),"AUTHORIZED"}catch(b){if(!(!(b instanceof be)||b instanceof mr))throw b}let g=t.state?await t.state():void 0,{authorizationUrl:v,codeVerifier:w}=await lU(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 oU(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"&&e.pathname!=="/"}catch{return!1}}async function iU(t,e,r){let n=xP(t);if(e.validateResourceURL)return await e.validateResourceURL(n,r?.resource);if(r){if(!kP({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 Uo(t){let e=t.headers.get("WWW-Authenticate");if(!e)return{};let[r,n]=e.split(" ");if(r.toLowerCase()!=="bearer"||!n)return{};let o=bh(t,"resource_metadata")||void 0,i;if(o)try{i=new URL(o)}catch{}let s=bh(t,"scope")||void 0,a=bh(t,"error")||void 0;return{resourceMetadataUrl:i,scope:s,error:a}}function bh(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 MP(t,e,r=fetch){let n=await cU(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 wP.parse(await n.json())}async function Rh(t,e,r=fetch){try{return await r(t,{headers:e})}catch(n){if(n instanceof TypeError)return e?Rh(t,void 0,r):void 0;throw n}}function sU(t,e="",r={}){return e.endsWith("/")&&(e=e.slice(0,-1)),r.prependPathname?`${e}/.well-known/${t}`:`/.well-known/${t}${e}`}async function TP(t,e,r=fetch){return await Rh(t,{"MCP-Protocol-Version":e},r)}function aU(t,e){return!t||t.status>=400&&t.status<500&&e!=="/"}async function cU(t,e,r,n){let o=new URL(t),i=n?.protocolVersion??go,s;if(n?.metadataUrl)s=new URL(n.metadataUrl);else{let c=sU(e,o.pathname);s=new URL(c,n?.metadataServerUrl??o),s.search=o.search}let a=await TP(s,i,r);if(!n?.metadataUrl&&aU(a,o.pathname)){let c=new URL(`/.well-known/${e}`,o);a=await TP(c,i,r)}return a}function uU(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 $P(t,{fetchFn:e=fetch,protocolVersion:r=go}={}){let n={"MCP-Protocol-Version":r,Accept:"application/json"},o=uU(t);for(let{url:i,type:s}of o){let a=await Rh(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"?vh.parse(await a.json()):bP.parse(await a.json())}}}async function dU(t,e){let r,n;try{r=await MP(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 $P(n,{fetchFn:e?.fetchFn});return{authorizationServerUrl:n,authorizationServerMetadata:o,resourceMetadata:r}}async function lU(t,{metadata:e,clientInformation:r,redirectUrl:n,scope:o,state:i,resource:s}){let a;if(e){if(a=new URL(e.authorization_endpoint),!e.response_types_supported.includes(_h))throw new Error(`Incompatible auth server: does not support response type ${_h}`);if(e.code_challenge_methods_supported&&!e.code_challenge_methods_supported.includes(Sh))throw new Error(`Incompatible auth server: does not support code challenge method ${Sh}`)}else a=new URL("/authorize",t);let c=await yh(),u=c.code_verifier,d=c.code_challenge;return a.searchParams.set("response_type",_h),a.searchParams.set("client_id",r.client_id),a.searchParams.set("code_challenge",d),a.searchParams.set("code_challenge_method",Sh),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 fU(t,e,r){return new URLSearchParams({grant_type:"authorization_code",code:t,code_verifier:e,redirect_uri:String(r)})}async function IP(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=QF(n,d);eU(l,n,c,r)}let u=await(s??fetch)(a,{method:"POST",headers:c,body:r});if(!u.ok)throw await AP(u);return RP.parse(await u.json())}async function pU(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 IP(t,{metadata:e,tokenRequestParams:a,clientInformation:r,addClientAuthentication:i,resource:o,fetchFn:s});return{refresh_token:n,...c}}async function hU(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=fU(o,u,t.redirectUrl)}let c=await t.clientInformation();return IP(e,{metadata:r,tokenRequestParams:a,clientInformation:c??void 0,addClientAuthentication:t.addClientAuthentication,resource:n,fetchFn:i})}async function mU(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 AP(s);return PP.parse(await s.json())}var Fs=class extends Error{constructor(e,r,n){super(`SSE error: ${r}`),this.code=e,this.event=n}},Yc=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=Jc(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=Fo(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 On(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}=Uo(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 Fs(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=jr.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}=Uo(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 Rx=Ks(wx(),1);import Ih from"node:process";import{PassThrough as GU}from"node:stream";var qU=10*1024*1024,Qc=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),HU(r)}clear(){this._buffer=void 0}};function HU(t){return jr.parse(JSON.parse(t))}function bx(t){return JSON.stringify(t)+`
98
+ `}var ZU=Ih.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function tu(){let t={};for(let e of ZU){let r=Ih.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var eu=class{constructor(e){this._stderrStream=null,this._serverParams=e,this._readBuffer=new Qc({maxBufferSize:e.maxBufferSize}),(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new GU)}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,Rx.default)(this._serverParams.command,this._serverParams.args??[],{env:{...tu(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Ih.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=bx(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};var Ex=Ks(kx(),1);function Tx(t){if(t)try{return Ex.default.parse(t).type}catch{let e=(t.split(";",1)[0]??"").trim().toLowerCase();return e===""||t.slice(e.length).includes(",")?void 0:e}}var ru=class extends TransformStream{constructor({onError:e,onRetry:r,onComment:n,maxBufferSize:o}={}){let i;super({start(s){i=Bc({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 eq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},Lt=class extends Error{constructor(e,r){super(`Streamable HTTP error: ${r}`),this.code=e}},nu=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=Jc(r?.fetch,r?.requestInit),this._sessionId=r?.sessionId,this._reconnectionOptions=r?.reconnectionOptions??eq}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=Fo(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 ru({onRetry:p=>{this._serverRetryMs=p}})).getReader();for(;;){let{value:p,done:h}=await d.read();if(h)break;if(p.id&&(s=p.id,a=!0,o?.(p.id)),!!p.data&&(!p.event||p.event==="message"))try{let m=jr.parse(JSON.parse(p.data));yn(m)&&(c=!0,i!==void 0&&(m.id=i)),this.onmessage?.(m)}catch(m){this.onerror?.(m)}}(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(d){if(this.onerror?.(new Error(`SSE stream disconnected: ${d}`)),(n||a)&&!c&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:o,replayMessageId:i},0)}catch(p){this.onerror?.(new Error(`Failed to reconnect: ${p instanceof Error?p.message:String(p)}`))}}})()}async start(){if(this._abortController)throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new 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:ji(e)?e.id:void 0}).catch(p=>this.onerror?.(p));return}let i=await this._commonHeaders();i.set("content-type","application/json"),i.set("accept","application/json, text/event-stream");let s={...this._requestInit,method:"POST",headers:i,body:JSON.stringify(e),signal:this._abortController?.signal},a=await(this._fetch??fetch)(this._url,s),c=a.headers.get("mcp-session-id");if(c&&(this._sessionId=c),!a.ok){let p=await a.text().catch(()=>null);if(a.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new Lt(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:h,scope:m}=Uo(a);if(this._resourceMetadataUrl=h,this._scope=m,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:h,scope:m,error:g}=Uo(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(m&&(this._scope=m),h&&(this._resourceMetadataUrl=h),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(),db(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=Tx(l);if(d)if(f==="text/event-stream")this._handleSseStream(a.body,{onresumptiontoken:o},!1);else if(f==="application/json"){let p=await a.json(),h=Array.isArray(p)?p.map(m=>jr.parse(m)):[jr.parse(p)];for(let m of h)this.onmessage?.(m)}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 Ax(t){return t.useShellInterpolation?process.platform==="win32"?{command:"cmd.exe",args:["/c",t.command]}:{command:"/bin/sh",args:["-c",t.command]}:{command:t.command,args:t.args}}var rq={NO_UPDATE_NOTIFIER:"1",npm_config_update_notifier:"false",npm_config_loglevel:"silent",npm_config_fund:"false",npm_config_audit:"false",npm_config_yes:"true",CI:"1"};function Mx(t){return{...tu(),...rq,...t??{}}}function $x(){return tu()}var zh=class t extends eu{static MAX_CAPTURED_LINES=100;static MAX_LINE_BUFFER_CHARS=16384;static MAX_LOG_HISTORY=1e3;_captured=[];_lineBuffer="";_logHistory=[];async start(){await super.start();let e=this.stderr;e&&e.on("data",r=>this.ingestStderr(r))}ingestStderr(e){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 $x(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new zh(e)}var jn=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}},Nh=new nq;function Dh(t,e){return Nh.run(t,e)}function iq(t){Nh.getStore()?.onFailure?.(t)}function Ix({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=Nh.getStore(),u=new jn({status:a.status,transport:e,operation:c?.operation??"transport"});throw iq(u),u}}function Ox(t,e){let r=Ix({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new nu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function zx(t,e){let r=Ix({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new Yc(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Nx(){return new Zc({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Dx=Gi,Lx=Te;function Ct(t){return t instanceof jn&&t.status===401||(t instanceof Lt||t instanceof Ls)&&t.code===401}function jx(t){return t instanceof M&&t.code===$.MethodNotFound}function Lh(t){return t instanceof Error&&t.name==="ZodError"&&Array.isArray(t.issues)}var sq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Fx(t){if(t instanceof M&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return sq.some(r=>e.includes(r))}function Ux(t){return t instanceof M&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function jh(t){return t instanceof jn&&t.transport==="http"&&t.status===404||t instanceof Lt&&t.code===404}var X=aq.child({prefix:"pi-mcp"});function cq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function uq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&cq(r,o)})}var dq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),lq=/^Node\.js v\d/,fq=/^[\w$.]*error[\w$]*:/i,qx=400,pq=63e3,Hx=3,hq=/[\\/]lib[\\/]cli\.js/,mq="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.",Kx=Symbol("mcpReinitReported");function gq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,Kx,{value:!0,enumerable:!1,configurable:!0})}function yq(t){return typeof t=="object"&&t!==null&&t[Kx]===!0}function vq(t){let e=t.filter(a=>!lq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>hq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return mq;let o=r.findIndex(a=>fq.test(a)),s=(o===-1?r.slice(-Hx):r.slice(o,o+Hx)).join(" / ");return s.length>qx?`${s.slice(0,qx)}\u2026`:s}function _q(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(dq,"").split(`
101
- `).map(i=>i.trim()).filter(i=>i.length>0),o=vq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var Sq=6e5,wq=18e5,Gx=2147483647,bq=3e4,Zx=1e4,Jx=[250,1e3,2e3],Fn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},js=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},Rq=250,Bx=3,Cq=[200,500];function Pq(t){for(let e of Object.values(t))if(Ca(e))return!0;return!1}function Yx(t){let e=new Set;for(let r of t.matchAll(Si))e.add(Pa(r[0]));return[...e].sort()}function qh(t){return[...new Set(t)].sort()}function Wx(t,e){return zy(e.map(r=>t?.[r]??"missing"))}function xq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n}){return qh([...e&&t?wi(t):[],...n&&r?Yx(r):[]])}var ou="${augmentToken}";function kq(t){try{let e=new URL(t);if(e.protocol!=="https:")return!1;let{hostname:r}=e;return r==="augmentcode.com"||r.endsWith(".augmentcode.com")}catch{return!1}}function Eq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var Xx="(unknown uri)",Hh="unknown",Vx=/=+$/,Tq=/\s+/g,Aq=/[-_]/g,Mq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Un(t,e){return typeof t=="string"?t:e}function Qx(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function $q(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Iq(t){let e=t.replace(Tq,"").replace(Aq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(Vx,"");if(r.toString("base64").replace(Vx,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function ek(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function Oq(t){let e=ek(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Un(e.uri,Xx),n=Un(e.mimeType,Hh);if(typeof e.blob=="string"&&$q(n)){let i=Iq(e.blob);if(i!==void 0)return i}let o=Qx(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function zq(t){let e=Un(t.type,"unknown");if(e==="resource")return Oq(t);if(e==="audio"){let r=Un(t.mimeType,Hh),n=Qx(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Un(t.uri,Xx),n=Un(t.name,""),o=Un(t.mimeType,Hh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function Nq(t){if(t.type!=="resource")return;let e=ek(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Mq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function Dq(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=Nq(t);return e||{type:"text",text:zq(t)}}function Lq(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(Dq(n))}return e}function jq(t){return xy(t,pq)}function Fq(t,e){let r=Lq(t);if(r.length===0){let o=jq(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}}var tk=new Set(["UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","ECONNREFUSED","ECONNRESET","EPIPE","ENOTFOUND","EAI_AGAIN","ETIMEDOUT"]),Uq=new Set([502,503,504]),Fs=Jx.length+1,qq=2;function Hq(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 Gq(t){if(Ct(t)||jh(t)||t instanceof mt)return;let e=t?.cause?.code;if(typeof e=="string")return tk.has(e)?{totalAttempts:Fs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:qq}:Uq.has(r)?{totalAttempts:Fs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:Fs}:void 0}var Zq=80,Bq=10,Wq=/[^a-zA-Z0-9_.()-]/g,Vq=new Set(["Error","McpError","McpSecretResolutionError","McpTransportClosedError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function iu(t){return t.replace(Wq,"_").slice(0,Zq)||"unknown"}function Kq(t){let e=Hq(t);if(e!==void 0&&(/^\d{3}$/.test(e)||tk.has(e)))return e}function Be(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=Vq.has(e)?e:"Error",n=Kq(t);return n===void 0?r:`${r}(${n})`}function Fh(t,e,r){return t instanceof mt?new mt(iu(t.serverName),t.missingKeys.slice(0,Bq).map(iu),void 0,t.reason).message:t instanceof jn?t.message:`MCP ${r} ${e} failed (${Be(t)})`}function Uh(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:iu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var su=class extends Error{operation="transport";transport;kind;constructor(e,r){super(`MCP ${e} transport ${r}`),this.transport=e,this.kind=r}},au=class{name;_config;_hostedCredentialProvenance;_client;_stdioTransport;_status;_lastError;_tools=[];_connectPromise;_connectStartedAt;_refreshPromise;_refreshPersisting=!1;_disposing=!1;_disposed=!1;_resolvedEnv;_resolvedHeaders;_resolvedCommand;onStateChange;_lastEmittedState;_activeTransport;_reinitializingPromise;_inFlightCalls=new Set;_wedgeRecoveryOwners=new Set;_wedgePending=!1;_wedgeRequired=!1;_heartbeatTimer;_lastProbeResult;onWedged;onAuthRefreshNeeded;onAuthRefreshCleared;onToolsChanged;onToolsWithdraw;_targetAuth;constructor(e,r){this._config=e,this._targetAuth=ee().targetMaterialStore?.auth(e),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 connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._stdioTransport?.getLogHistory().map(e=>jd(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{X.warn(`MCP server "${this.name}" connect failed (${Be(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=Fh(r,"connect",this._config.type),o=this._config.type==="stdio"&&!Ct(r)?jd(_q(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=Fs,r={available:!0};for(let n=1;n<=Fs;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=Gq(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=(Jx[r-1]??0)+Math.floor(Math.random()*(Rq+1));X.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Be(e)}; retrying in ${i}ms`),await dn(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 Fn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Nx();this._client=i;let s;try{if(await Dh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Dx,()=>{X.debug(`MCP server "${this.name}" sent tools/list_changed; refreshing tools`),this._refreshTools()});let a=await this._listToolsWithAuthRetry(e);if(this._disposed)return await this._closeFailedInitialization(i,n),o;this._tools=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),X.info(`MCP server "${this.name}" connected (${this._tools.length} tool(s))`),o}catch(a){throw await this._closeFailedInitialization(i,n),s??a}}async _closeFailedInitialization(e,r){if(this._client===e){this._client=void 0,this._activeTransport===r&&(this._activeTransport=void 0);try{await e.close()}catch(n){X.debug(`MCP server "${this.name}" close after failed connect attempt (${Be(n)})`)}}}_recordConnectFailure(e,r,n=Fh(e,r,this._config.type)){if(e instanceof mt){this._status="failed";let o=ee();Yo(o,this.name,e.reason,rr(o,this.name,this._config.id))}else if(e instanceof js||e instanceof Fn)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=Fh(e,r,this._config.type);Fd(Uh(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=Tx(this._resolvedCommand?{...e,command:this._resolvedCommand}:e),o=Ax(this._resolvedEnv??e.env);return $x({command:n.command,args:n.args,env:o,cwd:e.cwd})}case"http":return this._createHttpTransport(e.url,this._resolvedHeaders??e.headers??{});case"sse":return zx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=Ox(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?Pq(r):!1,o=e.type==="stdio"&&Ca(e.command);if(!(n||o))return;let i=ee();if(!this._targetAuth&&!Oy(i)){let a=xq({source:r,sourceHasSecretRef:n,command:e.type==="stdio"?e.command:void 0,commandHasSecretRef:o});throw new mt(this.name,a)}let s=this._targetAuth?.getSecret??$y(i);n&&r&&await this._resolveMapSecretRefs(r,s,e.type==="stdio"),o&&e.type==="stdio"&&await this._resolveCommandSecretRefs(e.command,s)}async _resolveMapSecretRefs(e,r,n){let o;try{o=await Dy({configEnv:e,localEnv:n?Mx():{},getSecret:r})}catch(s){throw X.error(`MCP server "${this.name}" secret resolution failed (${Be(s)})`),new mt(this.name,wi(e),s,"transient")}let i=qh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new mt(this.name,i,void 0,Wx(o.failureReasons,i));n?this._resolvedEnv=o.resolved:this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r){let n;try{n=await Ly(e,r)}catch(i){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Be(i)})`),new mt(this.name,Yx(e),i,"transient")}let o=qh([...n.unresolvedKeys,...n.emptyKeys]);if(o.length>0)throw new mt(this.name,o,void 0,Wx(n.failureReasons,o));this._resolvedCommand=n.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(ou)))return;let o;if(kq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${ou} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${ou} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${Eq(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(ou,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=ee();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?X.error(i):X.warn(i)}_usableToken(){let e=ee();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!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&&!dd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():fi(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),nn({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;nn({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&j(f,e.state)}catch{X.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&fd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&Yo(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),X.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${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),Yo(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 pd(e.token);if(!this._ownsRefresh(e))return{kind:"transient_failure"};this._refreshPersisting=!0;let i=await e.tokenStore.persistRefresh(this.name,o,r,n);if(!this._ownsRefresh(e))return await this._restoreAfterSupersededRefresh(e,o,r,i),{kind:"transient_failure"};e.tokenStore.commit(this.name,o,r),nn({state:e.state,name:this.name,revision:i}),it(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&j(s,e.state),X.debug(`MCP server "${this.name}" token refreshed`),{kind:"refreshed"}}catch(r){return this._handleRefreshFailure(r,e)}}_isSessionExpiredError(e){return this._config.type!=="http"||this._activeTransport?.sessionId===void 0?!1:jh(e)}_reinitializeSession(){return this._reinitializingPromise===void 0&&(this._reinitializingPromise=this._doReinitializeSession().finally(()=>{this._reinitializingPromise=void 0})),this._reinitializingPromise}async _doReinitializeSession(){if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);if(this._config.type!=="http")throw new Error("Session re-initialization is only supported for Streamable HTTP servers");await this._client.close();let e=this._createHttpTransport(this._config.url,this._resolvedHeaders??this._config.headers??{});try{await this._client.connect(e)}catch(r){throw this._recordConnectFailure(r,"reinit"),r}X.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e){if(this._config.type!=="http")return e();try{return await e()}catch(r){let n=this._isSessionExpiredError(r),o=this._reinitializingPromise!==void 0;if(!(n||o))throw r;X.info(n?`MCP server "${this.name}" returned 404 (session expired); re-initializing and retrying`:`MCP server "${this.name}" call interrupted by a concurrent re-initialization; retrying once`);try{await this._reinitializeSession()}catch(i){throw X.error(`MCP server "${this.name}" session re-initialization failed (${Be(i)})`),gq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Fn}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),Dh({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 js;if(this._hostedCredentialProvenance!==void 0)throw new Fn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;X.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw Ct(h)&&this._markAuthRequired(h,s),h}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=ee();Yo(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Be(e)),X.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed(new su(this._config.type,"closed"))},e.onerror=()=>{this._handleTransportClosed(new su(this._config.type,"error"))})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},bq),this._heartbeatTimer.unref?.())}_stopHeartbeat(){this._heartbeatTimer!==void 0&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=void 0)}async probe(){let e=ee(),r=rr(e,this.name,this._config.id),n=await this._runProbe();for(let s=2;s<=Bx&&n.outcome==="transient";s++)await dn(Cq[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"?X.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&X.debug(`MCP server "${this.name}" startup verification ping remained transient after ${Bx} 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:Zx})},"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"?X.debug(i):X.warn(i),{ok:!1,outcome:n,error:o,isAuthError:n==="authFailure"}}}_classifyProbeError(e,r){return r||!this._client||this._disposed||this._reinitializingPromise!==void 0?"transient":jx(e)||Lh(e)?"alive":Ct(e)?"authFailure":Fx(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:Zx})}catch(r){if(this._reinitializingPromise||this._disposed||Lh(r))return;X.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);X.warn(`MCP server "${this.name}" failing ${n.length} in-flight tool call(s)`);return}let o=n.map(c=>({call:c,state:this._wedgeRecoveryOwnership(c)})),i=o.some(({state:c})=>c==="recoverable"),s=!1;for(let{call:c,state:u}of o)u==="recoverable"||u==="owned"&&i||(c.livenessRejected=!0,s=!0,c.reject(c.failure??e));let a=n.filter(c=>c.livenessRejected).length;X.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=e.tools??[],n=!uq(this._tools,r);if(this._tools=r,n){X.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){X.warn(`MCP server "${this.name}" onToolsChanged handler threw (${Be(o)})`)}}}catch(e){X.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Be(e)}), keeping cached tools`)}}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>Gx)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${Gx}.`);let i={timeout:this._config.timeoutMs??Sq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??wq,onprogress:d=>{X.debug(`MCP server "${this.name}" tool "${e}" progress: ${d.progress}${d.total===void 0?"":`/${d.total}`}${d.message?` - ${d.message}`:""}`)}},s,a=new Promise((d,l)=>{s={reject:l,livenessRejected:!1,sessionRecoveryOwned:!1}});a.catch(()=>{}),s&&this._inFlightCalls.add(s);let u=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??{}},Lx,i)},"tool_call",{call:s})).then(d=>(s&&this._settleInFlightCall(s,!0,void 0),d),d=>{throw s&&this._settleInFlightCall(s,!1,d),d});try{let d=await Promise.race([u,a]),l=Fq(d.content,d.structuredContent);return{isError:d.isError===!0,content:l.content,rawItemCount:l.rawItemCount}}catch(d){if(n?.aborted||d instanceof Error&&d.name==="AbortError")throw d;return this._reportAndThrowToolError(d,e)}finally{s&&!this._wedgeRecoveryOwners.has(s)&&(s.failure=void 0,this._inFlightCalls.delete(s))}}_reportAndThrowToolError(e,r){if(e instanceof Fn||e instanceof js)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=iu(r),i=Be(e),s=Ux(e)&&/[^a-zA-Z0-9_-]/.test(r)?` The tool name "${o}" contains characters that some servers do not support; letters, digits, underscores, and hyphens are portable.`:"",a=`MCP tool "${o}" failed (${i}).${s}`;throw yq(e)||Fd(Uh(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Uh(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._targetAuth&&(this._resolvedHeaders=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(X.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var rk=Yq.child({prefix:"pi-mcp"}),Xq=3,Qq=6e4;function eH(t,e){let r=Date.now(),n=r-Qq,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=Xq?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function nk(t){un(t),sa(t)}async function tH(t,e,r){if(!eH(e,t)){rk.warn(`MCP server "${t}" automatic restart rate-limited`);return}rk.warn(`MCP server "${t}" wedged; recycling transport`),await Jr(t,e,r)}function cu(t,e,r){if(rH(e)){nk(t);return}ed(t,r),Kn(e)&&nk(t)}function rH(t){return ii()||t.toolSearchLatched}function er(t,e,r){return Lu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function Gh(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 nH(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&&Hm(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 Zh(t){let{state:e,config:r,generation:n}=t;return new au(r,nH({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 Bh(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 Wh(t,e,r){return t.configDesiredRevisions.get(e)===r}function ok(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function Vh(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(Jq,u)},t.onWedged=()=>{if(!er(t,e,r))return;let a=r.currentLoad?.latestPi??n;tH(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),j(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)&&j(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{er(t,e,r)&&t.status==="success"&&cu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;td(a,t,e),a!==n&&td(n,t,e)}}async function ik(t,e,r,n){let o=setTimeout(()=>{er(t,e,r)&&j(n(),r)},Vs);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),er(t,e,r)&&j(n(),r)}}async function sk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function uu(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 oH(t){let{state:e,config:r,displaced:n,retirement:o}=t;Bh(e,n.config),ri(e,r.name),n.beginDisposal?.();try{let i=Fu(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 iH(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 sH(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 iH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&cu(c(),e,r),j(c(),e),r.status==="failed"?{status:"unavailable",config:n,error:new Error(r.lastError??`MCP server "${n.name}" failed`)}:{status:"installed",config:n,leaseRevision:s}):{status:"superseded",config:n}}function aH(t){let{state:e,config:r,configRevision:n,pi:o,owner:i,leaseRevision:s,sourceOwnership:a,activePi:c}=t,u=N(e,r.name);if(!Wh(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=Gh(e,r.name),l=Zh({state:e,config:r,generation:d});return Vh(l,d,e,o),Ys({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:sH({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 cH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!Wh(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=ei({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,h=()=>aH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await oH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Du(f.retirement),h());return f.retirement?m():h()}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 cH({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(()=>{j(s(),e)},Vs);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function uH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!ok(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Lu(e,t,o))return!1;Bh(e,i),ri(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||!ok(e,t,n))return xe({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=Gh(e,t),u=Zh({state:e,config:i,generation:c});if(Vh(u,c,e,r),!Ys({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await ik(u,c,e,d),er(u,c,e)&&u.status==="success"&&cu(d(),e,u),!0}function Jr(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 uH({name:t,state:e,pi:r,configRevision:a}))return;s=c}while(s<(e.reconnectDesiredGenerations.get(t)??s))})().finally(()=>{e.reconnects.get(t)===i&&e.reconnects.delete(t)});return e.reconnects.set(t,i),i}async function dH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;Bh(e,n.config),ri(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Fu(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 ak(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=Vn(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(m=>m.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=ei({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await dH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Du(f.retirement),N(e,t)?.revision!==f.lease.revision||!Wh(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}),j(i(),e);return}let p=Gh(e,t),h=Zh({state:e,config:a,generation:p});Vh(h,p,e,r),Ys({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await ik(h,p,e,i),er(h,p,e)&&h.status==="success"&&cu(i(),e,h))}async function Us(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>Jr(n,e,r)))}finally{e.reconnecting=!1}}var ck=Symbol.for("__pi_mcp_registry_ingress__");function du(t){return Object.defineProperty(t,ck,{value:!0}),t}function qn(t){return Object.getOwnPropertyDescriptor(t,ck)?.value===!0}function Yr(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)&&!qn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as lH}from"@hermes/logger";var fH=lH.child({prefix:"pi-mcp"}),pH=1e6,hH=1e3,mH=/^\d+$/;function uk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function Xr(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"||!mH.test(e)||typeof r!="string"||r.length===0)return;let n=Fm(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:uk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function gH(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 yH(t,e,r){if(t===void 0)return!0;let n=uk(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 vH(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 fH.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(!yH(c,r,s))return"reject";let u=gH(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 _H(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 SH(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 wH(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*hH+Math.floor(t.access_token_expires_at.nanos/pH):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 bH(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(!SH(n))return{decision:"reject"};let i=Xr(n),s=vH(r,n,i,o);if(s==="reject")return{decision:s};let a=wH(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!bH(e.get(r),a))||s==="apply"&&_H(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function lu(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 dk=RH.child({prefix:"pi-mcp"});function CH(t,e){let r=Yr({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 PH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=Xr(i);if(s===void 0)return!1;let a=on(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 lk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){dk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=CH(r,n.configId),i=o?PH(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=lu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let m=Xr(i);m&&(r.credentialRevisions.set(o.name,m),r.hostedCredentialOwnership.set(o.name,{...m,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??Jr,h=t.report??j;await p(o.name,r,f).catch(m=>{dk.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${m instanceof Error?m.name:"non-Error"}`)}),h(f,r),_e(r)}import{logger as xH}from"@hermes/logger";var fu=xH.child({prefix:"pi-mcp"}),Kh="augment:mcp-attach-result";function fk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(Kh,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){fu.warn(`${Kh} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){fu.debug(`${Kh}: 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 Ho(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 mg(r);e.mcpConnectionEpoch!==n||e.credentials!==r||(i.ok?(e.mcpCatalog=i.entries,fu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,fu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session")),Kn(e)&&un(e.currentLoad?.latestPi??t))})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as FH}from"@hermes/logger";function kH(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case si.OAUTH:return"oauth";case si.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 EH(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case sn.CLI:return"cli";case sn.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function pu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(EH).filter(r=>r!==void 0);return e.length===0?void 0:e}function hu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=kH(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=Bn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...Wn(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof kt?s.message:String(s)}}}function TH(t){let e=t.config?.auth_type;return e===si.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function AH(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 Jh(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 MH(t,e,r){if(r!==void 0&&t.added_by===r)return pu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?pu(n):[]}function $H(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=Jh(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=Jh(e,r,()=>!0),m=new Set(h.map(b=>b.id)),g=h.filter(b=>p.has(b.id)),v=h.filter(b=>!p.has(b.id)).map(b=>b.id),w=i.filter(b=>!m.has(b));return{selected:g,filteredOutIds:v,missingIds:w,retainedNames:[]}}let a=new Set(n),c=[];for(let p of e)a.has(p.id)||c.push(p.id);let u=Jh(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let m=!d.has(p.id)&&a.has(p.id)?MH(p,o,s):pu(p.enabled_products);m===void 0||m.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 IH(t){return t==null?sn.CLOUD_AGENT:void 0}function OH(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 pk(t,e,r,n){try{let o=t.type==="stdio"?Gt(t,n):Ht(t,n);return{ok:!0,server:du(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 zH(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=hu(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=pk(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=pk(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 NH(t){let e=[],r=[],n=[];for(let o of t)TH(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 DH(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=AH(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 LH(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function mu(t){let e=t.client??new ca(t.creds),{tenant:r,user:n,diagnostics:o}=await kg(e,IH(t.configIds)),i=n.mcp_configs??[],s=new Set(i.map(b=>b.id)),{selected:a,filteredOutIds:c,missingIds:u,retainedNames:d}=$H({tenantConfigs:r.mcp_configs??[],userConfigs:i,enabledSharedServerIds:n.enabled_shared_server_ids??[],serverProductPreferences:n.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId}),l=NH(a),f=l.selected;c.push(...l.droppedIds),o.push(...l.diagnostics),o.push(...OH(u));let p=[],h=new Map,m=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=zH({payload:b,userIds:s,localServerNames:t.localServerNames,seenNames:m,workspaceRoot:t.workspaceRoot});LH(x,{servers:p,retainedNames:d,diagnostics:o,nameCollisionFallbacks:h})}let v=DH(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:h}}import{logger as jH}from"@hermes/logger";var Go=jH.child({prefix:"pi-mcp"});function hk(t,e){let r=t;if(!r||typeof r!="object"||!r.id){Go.warn("Embedded MCP config is missing an id; ignoring");return}let n=hu(r,"tenant");if(!n.ok){Go.warn(`Embedded MCP config '${r.id}' is not convertible; ignoring: ${n.reason}`);return}let o=e??process.cwd();try{return du(n.server.type==="stdio"?Gt(n.server,o):Ht(n.server,o))}catch(i){Go.warn(`Embedded MCP config '${r.id}' failed expansion; ignoring: ${i instanceof Error?i.message:String(i)}`);return}}function mk(t,e){let r;try{r=JSON.parse(t)}catch(n){Go.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return hk(r,e)}function Zo(t,e){let r=t;if(typeof r=="string")try{r=JSON.parse(r)}catch(s){Go.warn(`Failed to parse embedded MCP configs: ${s instanceof Error?s.name:"non-Error thrown"}`);return}if(!Array.isArray(r)){Go.warn("Embedded MCP configs payload is not an array; ignoring");return}let n=[],o=new Map,i=!1;for(let s of r){let a=s,c=hk(s,e);if(a&&typeof a=="object"&&a.id&&a.config?.name&&o.set(a.id,{name:a.config.name,...c?{config:c}:{}}),a?.config?.disabled){i=!0;continue}c&&n.push(c)}if(!(n.length===0&&!i))return{servers:n,allConfigsById:o}}var jt=FH.child({prefix:"pi-mcp"});function yk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function vk(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=ei({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 UH(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=vk({state:e,name:r,lease:c,host:n,isDeselected:yk({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 qH(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=vk({state:e,name:r,lease:n,isDeselected:yk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function HH(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=UH({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||qH({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function _k(t,e,r,n,o){let i=[],s=new Map(e.map(l=>[l.name,l])),a=o?new Set(r):new Set,c=new Set([...a].flatMap(l=>{let f=t.registryConfigNamesById.get(l);return f===void 0?[]:[f]})),u=new Set(e.flatMap(l=>l.id===void 0?[]:[l.id]));for(let[l,f]of t.registryCredentialConfigs){let p=s.get(l);if(p===void 0&&f.id!==void 0&&n.has(f.id)&&!u.has(f.id)){s.set(l,f);continue}let h=f.id===void 0?c.has(l):a.has(f.id);p===void 0&&!h&&i.push(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 GH(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 ZH(t){let{state:e,configIds:r}=t,n=e.embeddedRegistryConfigs;if(e.embeddedRegistryConfigs=void 0,r?.length===0||Array.isArray(n)&&n.length===0)return{servers:[],allConfigsById:new Map};if(n!==void 0)return Zo(n,e.workspaceRoot??process.cwd())}async function BH(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 WH(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 VH(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 KH(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 JH(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 _k(e,r.servers,n,i,o!==void 0)}async function Sk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():oi(t,r.id)))}async function gk(t){return await Sk(t.state,t.result),t.state.registryGeneration===t.generation&&await JH(t),t.result}function YH(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=GH(n,r,i);return gk({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=>gk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})):void 0}function XH(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 QH(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 wk(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 Yh(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 eG(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){Yh({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 Sk(e,r),e.registryGeneration!==o)return;let c=wk({state:e,generation:o}),u=r.servers.filter(c);if((await Promise.all(u.map(m=>Er({state:e,config:m,pi:s})))).some(m=>!m)||e.registryGeneration!==o)return;XH({state:e,result:r,selection:n}),Yh({state:e,result:r,selection:n,slotReservations:a});let l=QH({state:e,result:{...r,servers:u}});if(l.length===0)return;let f=l.filter(m=>{let g=e.servers.get(m.name);if((g?Q(e,m.name,g):N(e,m.name))?.owner.kind==="local")return jt.info(`Registry install of "${m.name}" skipped: a local server claimed the name during discovery`),!1;let w=a.get(m.name)?.configRevision;if(w===void 0)return!0;let b=e.configDesiredRevisions.get(m.name);return b!==w?(jt.info(`Registry install of "${m.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 h=(await i(f,e,e.currentLoad?.latestPi??s,c))?.find(m=>m.status==="failed");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));await tG({state:e,pi:s,result:r,generation:o,connect:i})}async function tG(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 rG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function rG(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,wk({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 nG(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 _k(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function oG(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 iG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await eG({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),Yh({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 oG(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 nG({...t.resultArgs,error:r})}}function gu(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??mu,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)&&Wm(r,new Set(a.configIds.map(at)));let c=ZH({state:r,configIds:a.configIds}),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=BH({state:r,previousSelectedIds:d,configIds:a.configIds}),f=WH({parsedEmbedded:c,configIds:a.configIds}),p=++r.registryGeneration,h=Promise.all([HH(r,a.configIds,f),l]).then(([v])=>v);VH(r);let m=a.configIds?[...a.configIds]:void 0,g=YH({state:r,configIds:a.configIds,parsedEmbedded:c,credentials:u,localServerNames:KH(r),previousSelectedIds:d,selection:m,generation:p,discover:i});return g?iG({disposal:h,discovery:g,resultArgs:{state:r,previousSelectedIds:d,selection:m,generation:p,connect:s,pi:e}}):Promise.resolve()}import{logger as sG}from"@hermes/logger";var Qr=sG.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 cG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Pk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function uG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function bk(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&&(uG({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 xk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Rk(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!qn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function kk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function dG(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?Om({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&&(kk(e,r),We(e,r))}async function Xh(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 Qr.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),h=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 Qr.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await ni(e,a,r,s)}catch(w){h!==void 0&&e.configDesiredRevisions.get(a)===h&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let b=`Live MCP remove-server failed to detach ${a}: ${w instanceof Error?w.message:String(w)}`;throw Qr.warn(b),e.diagnostics.push({server:a,message:b}),w}Pk({state:e,configId:r,fence:i})&&(xk(e,r),dG({state:e,name:a,config:s,retirement:g})),Qr.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 Ck(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)}`;Qr.warn(i),e.diagnostics.push({server:r,message:i})}async function lG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Ck({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([ni(e,r,n,o.config)]);return Ck({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 fG(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?.(),Qr.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await lG({state:e,name:n,configId:r,server:a});if(h&&Pk({state:e,configId:r,fence:s})?xk(e,r):!h&&e.configDesiredRevisions.get(n)===l&&(u===void 0?e.configDesiredRevisions.delete(n):e.configDesiredRevisions.set(n,u),d===void 0?e.configDesiredSources.delete(n):e.configDesiredSources.set(n,d)),ve({state:e,name:n,retirement:f,result:h?{status:"retired"}:{status:"failed",error:m,transportDisposed:g}}),h&&xe({state:e,name:n,owner:c.owner,revision:c.revision})&&kk(e,n),i(p,e),!h)throw m}function yu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return Qr.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!ra({state:r,configId:s,generation:i?.attachmentGeneration}))return Qr.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>na({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??j,u=Rk(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(bk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>Xh({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=aG(r,s);if(u===void 0&&d===void 0)return a(Xh({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=cG({state:r,configId:s,liveEditGeneration:h});return a(bk({state:r,configId:s,fence:m,operation:()=>{let g=Rk(r,s);return g===void 0?Xh({state:r,configId:s,pi:e,report:c,sourceFence:m}):fG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{randomUUID as pG}from"node:crypto";import{setToolSource as hG}from"@augmentcode/auggie-v2";import{logger as mG}from"@hermes/logger";import{Type as gG}from"@sinclair/typebox";var Tk=mG.child({prefix:"pi-mcp"}),vu="attach-mcp-server",yG="augment:mcp-attach-request",vG=15e3,_G={type:"object",properties:{config_id:{type:"string",description:"Id (or name) of the MCP server to attach, as listed among the available unattached servers in find-tool's description."}},required:["config_id"]};function SG(t,e){let r=e.trim(),n=r.toLowerCase(),o=t.mcpCatalog??[],i=o.find(l=>l.id===r);if(i)return{kind:"match",entry:i};let s=o.filter(l=>l.name.toLowerCase()===n),a=s.length===1?s[0]:void 0;if(a!==void 0)return{kind:"match",entry:a};if(s.length===0)return{kind:"none"};let c=new Set(an(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 wG(t,e){let r=e.name.toLowerCase();return an(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function Qh(t,e){let r=wG(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 bG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},vG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Ek(t){let e=an(t).map(r=>`${r.name} (id: ${r.id})`);return e.length>0?`Available unattached servers: ${e.join(", ")}.`:"No unattached servers are currently available."}function RG(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.${Qh(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.${Qh(r,e)}`)}function CG(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.${Qh(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 PG(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(`${vu} requires a string "config_id" parameter. ${Ek(e)}`);let o=SG(e,n);if(o.kind==="none")return Ce(`No MCP server matching "${n}" is available to attach. ${Ek(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=RG({entry:i,state:e});if(s!==void 0)return s;if(rd(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=pG();Tk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=bG(e,a);t.events.emit(yG,{configId:i.id,requestId:a});let u=await c;return CG({entry:i,result:u,state:e})}function qs(t,e){let r={name:vu,label:vu,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:gG.Unsafe(_G),execute:(n,o)=>PG(t,e,o)};hG(vu,"mcp"),t.registerTool(r),Tr(r),Tk.debug("Registered attach-mcp-server tool")}import{createHash as xG}from"node:crypto";var kG=/^[1-9][0-9]*$/,EG=/^[a-f0-9]{64}$/,TG=new Set(["version","operation","config_id","server_name","transport","url","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 tm(t){return typeof t=="string"&&kG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function rm(t){return Re(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&tm(t.connectionVersion)}function Ak(t){if(!(!Re(t)||Object.keys(t).some(e=>!TG.has(e)))&&!(t.version!==1||t.operation!=="install"&&t.operation!=="retire"||t.transport!=="http"&&t.transport!=="sse"||t.auth_type!=="oauth"&&t.auth_type!=="static"&&t.auth_type!=="none")){for(let e of["config_id","server_name","url","vm_id","execution_principal_id"])if(typeof t[e]!="string"||t[e].length===0)return;if(!(typeof t.route_revision!="string"||!EG.test(t.route_revision)||!tm(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"||!tm(t.binding_generation))){try{let e=new URL(String(t.url));if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.hash)return}catch{return}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 Mk(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function em(t,e){return Mk(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&t.transport===e.transport&&t.url===e.url&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function AG(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])}var _u=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 rm(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&&!Mk(e,this.#n)||r.type==="stdio"||r.disabled||!r.registrySource||r.vfsSource||r.id!==e.config_id||r.name!==e.server_name||r.type!==e.transport||r.url!==e.url||r.auth==="oauth"!=(e.auth_type==="oauth")||!n&&(!o||!this.#r.has(r)||!em(e,o.material)))return!1;let i=wi(r.headers??{}),s=Object.keys(e.static_secrets??{});if(e.operation==="retire")return!!o&&em(e,o.material)&&e.binding_generation===o.material.binding_generation;if(e.auth_type==="static"?i.length===0||i.length!==s.length||s.some(c=>!i.includes(c)):i.length!==0)return!1;if(!o)return!0;let a=BigInt(e.binding_generation)-BigInt(o.material.binding_generation);return a>=0n&&(a!==0n||o.material.operation==="install"&&em(e,o.material)&&AG(e,o.material))}commit(e,r){let n=Object.freeze({...e,...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(),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 $k(t){return xG("sha256").update(t).digest("hex")}function Ik(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 MG(t,e){if(typeof t!="string"||$k(t)!==e.route_revision)return;let r=JSON.parse(t);if(!Re(r)||!Re(r.config)||r.id!==e.config_id||r.config.auth_type!=={oauth:2,static:3,none:1}[e.auth_type])return;let o=r.config;if(!(o.type!==void 0&&o.type!==e.transport||o.name!==e.server_name||o.url!==e.url||o.disabled!==void 0&&o.disabled!==!1)&&!(o.env!==void 0&&(!Re(o.env)||Object.values(o.env).some(i=>typeof i!="string")))&&!(o.timeout_ms!==void 0&&(typeof o.timeout_ms!="number"||!Number.isSafeInteger(o.timeout_ms)||o.timeout_ms<0)))return Object.freeze({id:e.config_id,name:e.server_name,type:e.transport,url:e.url,registrySource:"tenant",...o.timeout_ms?{timeoutMs:o.timeout_ms}:{},...e.auth_type==="oauth"?{auth:"oauth"}:{},...o.env?{headers:Object.freeze({...o.env})}:{}})}function Ok(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?Ik(e.configsJson):new Map;if(o){if(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;if(i.size>0){let u=Zo(e.configsJson,t.workspaceRoot);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}}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=Ak(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 h=p?MG(o?i.get(l.config_id):e.config,l):r.config(l.config_id);if(!h||!r.validate(l,h,p)||o&&Array.isArray(e.configIds)&&!e.configIds.includes(l.config_id))return;let m=t.servers.get(u),g=t.hostLeases.get(u);if(m&&!r.trusts(m.config)&&!qn(m.config)&&!r.hasTargetProvenance(m.config)||m&&(m.config.registrySource===void 0||m.config.vfsSource!==void 0||m.config.id!==l.config_id)||m&&(!g||g.host!==m)||g&&(g.owner.kind!=="registry"||g.owner.identity!==`user:${l.config_id}`))return;s.push({material:l,config:h})}if(!(o&&[...i.keys()].some(u=>r.has(u)&&!a.has(u)&&(!Array.isArray(e.configIds)||e.configIds.includes(u)))))return s}async function $G(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=Ok(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=[...Ik(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:h}of i)o.commit(p,h);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,qs(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let l=gu({pi:e,state:r,data:{configIds:u},deps:{connect:(p,h,m,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,h,m,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 j(f,r),_e(r),Ho(f,r),!0}async function IG(t){let{pi:e,state:r,data:n}=t;if(!Re(n))return!1;if(n.kind==="boot")return $G(t);let o;try{o=Ok(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;if(!i||o?.length!==1||!s)return!1;let{material:a,config:c}=i,u=s.epoch;s.commit(a,c);let d=n.kind==="add"||r.dynamicallyAddedConfigIds.has(a.config_id);return[...r.servers.values()].find(f=>f.config.id===a.config_id&&f.config.registrySource!==void 0&&(s.hasTargetProvenance(f.config)||qn(f.config)))&&await yu({pi:e,state:r,data:{configId:a.config_id}}),s.epoch!==u||a.operation!=="retire"&&(r.sessionRemovedConfigIds.delete(a.config_id),d?r.dynamicallyAddedConfigIds.add(a.config_id):r.dynamicallyAddedConfigIds.delete(a.config_id),await Ve([c],r,e,()=>s.epoch===u),s.epoch!==u)?!1:(j(e,r),!0)}function Hs(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 OG(t,e){t.registryGeneration++,Gm(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"}),j(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),j(e,t)}function zk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new _u,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(rm(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,OG(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Hs(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await IG({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"}),j(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),j(t,e))})}))}import{logger as WG}from"@hermes/logger";import{execFile as nm}from"node:child_process";import{win32 as om}from"node:path";import{logger as zG}from"@hermes/logger";var NG=5e3,DG=/^[a-z]:[\\/]/i,LG=/[<>:"|?*]/;function jG(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!DG.test(t)||!om.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||LG.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:om.join(om.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function FG(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function UG(t,e){switch(process.platform){case"darwin":return nm("open",[t],e);case"win32":{let r=jG();return r?nm(r,["-NoProfile","-NonInteractive","-EncodedCommand",FG(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return nm("xdg-open",[t],e)}}function Nk(t,e=NG){let r=zG.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=UG(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as qG}from"node:http";function Su(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Dk(t){let e=Su(t.title),r=Su(t.heading),n=Su(t.message),o=t.details?Su(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 Ix(t){let e={command:t.command,args:t.args,env:t.env,stderr:"pipe",...t.cwd?{cwd:t.cwd}:{}};return new zh(e)}var jn=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}},Nh=new tq;function Dh(t,e){return Nh.run(t,e)}function nq(t){Nh.getStore()?.onFailure?.(t)}function Ox({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=Nh.getStore(),u=new jn({status:a.status,transport:e,operation:c?.operation??"transport"});throw nq(u),u}}function zx(t,e){let r=Ox({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"http"});return new nu(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Nx(t,e){let r=Ox({getHeaders:e.getHeaders,validateUrl:e.validateUrl,transport:"sse"});return new Yc(new URL(t),{requestInit:{headers:{...e.headers}},...r?{fetch:r}:{}})}function Dx(){return new Zc({name:"hermes-mcp-client",version:"0.1.0"},{capabilities:{}})}var Lx=Bi,jx=Te;function Ct(t){return t instanceof jn&&t.status===401||(t instanceof Lt||t instanceof Fs)&&t.code===401}function Fx(t){return t instanceof M&&t.code===$.MethodNotFound}function Lh(t){return t instanceof Error&&t.name==="ZodError"&&Array.isArray(t.issues)}var oq=["ECONNRESET","ECONNREFUSED","socket hang up","EPIPE","ETIMEDOUT"];function Ux(t){if(t instanceof M&&(t.code===$.RequestTimeout||t.code===$.ConnectionClosed))return!0;let e=t instanceof Error?t.message:String(t);return oq.some(r=>e.includes(r))}function qx(t){return t instanceof M&&(t.code===$.MethodNotFound||t.code===$.InvalidRequest)}function jh(t){return t instanceof jn&&t.transport==="http"&&t.status===404||t instanceof Lt&&t.code===404}var X=iq.child({prefix:"pi-mcp"});function sq(t,e){return t.name===e.name&&(t.description??"")===(e.description??"")&&JSON.stringify(t.inputSchema??{})===JSON.stringify(e.inputSchema??{})}function aq(t,e){return t.length===e.length&&t.every((r,n)=>{let o=e[n];return o!==void 0&&sq(r,o)})}var cq=new RegExp("\x1B\\[[0-9;]*[a-zA-Z]","g"),uq=/^Node\.js v\d/,dq=/^[\w$.]*error[\w$]*:/i,Hx=400,lq=63e3,Gx=3,fq=/[\\/]lib[\\/]cli\.js/,pq="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.",Jx=Symbol("mcpReinitReported");function hq(t){typeof t=="object"&&t!==null&&Object.defineProperty(t,Jx,{value:!0,enumerable:!1,configurable:!0})}function mq(t){return typeof t=="object"&&t!==null&&t[Jx]===!0}function gq(t){let e=t.filter(a=>!uq.test(a)),r=e.length>0?e:t;if(r.length===0)return;if(r.some(a=>fq.test(a))&&r.some(a=>a.includes("MODULE_NOT_FOUND")||a.includes("Cannot find module")))return pq;let o=r.findIndex(a=>dq.test(a)),s=(o===-1?r.slice(-Gx):r.slice(o,o+Gx)).join(" / ");return s.length>Hx?`${s.slice(0,Hx)}\u2026`:s}function yq(t,e){if(!e)return t;try{let r=e.consumeStderr();if(!r.trim())return t;let n=r.replace(cq,"").split(`
101
+ `).map(i=>i.trim()).filter(i=>i.length>0),o=gq(n);return o?t?`${t}: ${o}`:o:t}catch{return t}}var vq=6e5,_q=18e5,Zx=2147483647,Sq=3e4,Bx=1e4,Yx=[250,1e3,2e3],Fn=class extends Error{constructor(){super("MCP OAuth refresh is temporarily unavailable"),this.name="RefreshUnavailableError"}},Us=class extends Error{retryable=!0;constructor(){super("MCP authentication refresh is pending in the backend; retry shortly"),this.name="BackendRefreshPendingError"}},wq=250,Wx=3,bq=[200,500];function Rq(t){for(let e of Object.values(t))if(bi(e))return!0;return!1}function qh(t){let e=new Set;for(let r of t.matchAll(wi))e.add(Pa(r[0]));return[...e].sort()}function Hh(t){return[...new Set(t)].sort()}function Vx(t,e){return Ny(e.map(r=>t?.[r]??"missing"))}function Cq({source:t,sourceHasSecretRef:e,command:r,commandHasSecretRef:n,args:o}){return Hh([...e&&t?Ri(t):[],...n&&r?qh(r):[],...o.flatMap(qh)])}var ou="${augmentToken}";function Pq(t){try{let e=new URL(t);if(e.protocol!=="https:")return!1;let{hostname:r}=e;return r==="augmentcode.com"||r.endsWith(".augmentcode.com")}catch{return!1}}function xq(t){try{let e=new URL(t);return`${e.protocol}//${e.hostname}`}catch{return"<invalid URL>"}}var Xx="(unknown uri)",Gh="unknown",Kx=/=+$/,kq=/\s+/g,Eq=/[-_]/g,Tq=new Set(["image/jpeg","image/png","image/gif","image/webp"]);function Un(t,e){return typeof t=="string"?t:e}function Qx(t){return typeof t=="string"?Buffer.from(t,"base64").length:0}function Aq(t){let e=t.toLowerCase();return e.startsWith("text/")||e==="application/json"||e==="application/xml"||e.endsWith("+json")||e.endsWith("+xml")}function Mq(t){let e=t.replace(kq,"").replace(Eq,i=>i==="-"?"+":"/"),r=Buffer.from(e,"base64"),n=e.replace(Kx,"");if(r.toString("base64").replace(Kx,"")!==n)return;let o=r.toString("utf-8");return o.length>0?o:void 0}function ek(t){return t.resource&&typeof t.resource=="object"?t.resource:void 0}function $q(t){let e=ek(t);if(!e)return"[MCP resource with no contents]";if(typeof e.text=="string")return e.text;let r=Un(e.uri,Xx),n=Un(e.mimeType,Gh);if(typeof e.blob=="string"&&Aq(n)){let i=Mq(e.blob);if(i!==void 0)return i}let o=Qx(e.blob);return`[MCP resource ${r} (${n}), ${o} bytes of binary content not shown]`}function Iq(t){let e=Un(t.type,"unknown");if(e==="resource")return $q(t);if(e==="audio"){let r=Un(t.mimeType,Gh),n=Qx(t.data);return`[MCP audio content (${r}), ${n} bytes not shown]`}if(e==="resource_link"){let r=Un(t.uri,Xx),n=Un(t.name,""),o=Un(t.mimeType,Gh);return`[MCP resource link ${n?`${n} `:""}${r} (${o})]`}return`[MCP content of unsupported type "${e}" was omitted]`}function Oq(t){if(t.type!=="resource")return;let e=ek(t);if(!e)return;let{blob:r,mimeType:n}=e;if(typeof r=="string"&&typeof n=="string"&&Tq.has(n.toLowerCase()))return{type:"image",mimeType:n,data:r}}function zq(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=Oq(t);return e||{type:"text",text:Iq(t)}}function Nq(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(zq(n))}return e}function Dq(t){return ky(t,lq)}function Lq(t,e){let r=Nq(t);if(r.length===0){let o=Dq(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}}var tk=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]),qs=Yx.length+1,Fq=2;function Uq(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)||jh(t)||t instanceof mt)return;let e=t?.cause?.code;if(typeof e=="string")return tk.has(e)?{totalAttempts:qs}:void 0;let r=t?.status??t?.code;return typeof r=="number"?r===524?{totalAttempts:Fq}:jq.has(r)?{totalAttempts:qs}:void 0:t instanceof TypeError&&t.message==="fetch failed"?{totalAttempts:qs}:void 0}var Hq=80,Gq=10,Zq=/[^a-zA-Z0-9_.()-]/g,Bq=new Set(["Error","McpError","McpSecretResolutionError","McpTransportClosedError","McpTransportFailure","MalformedRefreshResponseError","RefreshHttpError","SseError","StreamableHTTPError","TypeError","ZodError"]);function iu(t){return t.replace(Zq,"_").slice(0,Hq)||"unknown"}function Wq(t){let e=Uq(t);if(e!==void 0&&(/^\d{3}$/.test(e)||tk.has(e)))return e}function Be(t){if(!(t instanceof Error))return"unknown";let e=t.constructor.name,r=Bq.has(e)?e:"Error",n=Wq(t);return n===void 0?r:`${r}(${n})`}function Fh(t,e,r){return t instanceof mt?new mt(iu(t.serverName),t.missingKeys.slice(0,Gq).map(iu),void 0,t.reason).message:t instanceof jn?t.message:`MCP ${r} ${e} failed (${Be(t)})`}function Uh(t,e){let r=new Error(t);return Object.defineProperty(r,"name",{value:iu(e),configurable:!0}),r.stack=`${r.name}: ${t}`,r}var su=class extends Error{operation="transport";transport;kind;constructor(e,r){super(`MCP ${e} transport ${r}`),this.transport=e,this.kind=r}},au=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;constructor(e,r){this._config=e,this._targetAuth=ee().targetMaterialStore?.auth(e),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 connectStartedAt(){return this._connectStartedAt}get tools(){return this._tools}getLogHistory(){return this._stdioTransport?.getLogHistory().map(e=>jd(e))??[]}connect(){return this._disposing||this._disposed||this._status==="disabled"?Promise.resolve():this._connectPromise?this._connectPromise:(this._connectStartedAt=Date.now(),this._emitState("connecting"),this._connectPromise=this._doConnect().catch(e=>{X.warn(`MCP server "${this.name}" connect failed (${Be(e)})`)}),this._connectPromise)}async _doConnect(){let e;try{e=await this._connectWithRetries()}catch(r){if(this._disposed)return;let n=Fh(r,"connect",this._config.type),o=this._config.type==="stdio"&&!Ct(r)?jd(yq(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=qs,r={available:!0};for(let n=1;n<=qs;n++)try{let o=await this._attemptConnect(r);return n>1&&X.info(`MCP server "${this.name}" connected on attempt ${n}/${e}`),o}catch(o){if(!r.available)throw o;let i=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=(Yx[r-1]??0)+Math.floor(Math.random()*(wq+1));X.warn(`MCP server "${this.name}" connect attempt ${r}/${n} failed with transient ${Be(e)}; retrying in ${i}ms`),await dn(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 Fn:e}async _initializeFreshClient(e){let r=this._config,n=this._createTransport(),o=r.type==="stdio"?n:void 0;o&&(this._stdioTransport=o);let i=Dx();this._client=i;let s;try{if(await Dh({operation:"connect",onFailure:u=>{s=u}},()=>i.connect(n)),this._disposed)return await this._closeFailedInitialization(i,n),o;i.setNotificationHandler(Lx,()=>{X.debug(`MCP server "${this.name}" sent tools/list_changed; refreshing tools`),this._refreshTools()});let a=await this._listToolsWithAuthRetry(e);if(this._disposed)return await this._closeFailedInitialization(i,n),o;this._tools=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),X.info(`MCP server "${this.name}" connected (${this._tools.length} tool(s))`),o}catch(a){throw await this._closeFailedInitialization(i,n),s??a}}async _closeFailedInitialization(e,r){if(this._client===e){this._client=void 0,this._activeTransport===r&&(this._activeTransport=void 0);try{await e.close()}catch(n){X.debug(`MCP server "${this.name}" close after failed connect attempt (${Be(n)})`)}}}_recordConnectFailure(e,r,n=Fh(e,r,this._config.type)){if(e instanceof mt){this._status="failed";let o=ee();Xo(o,this.name,e.reason,rr(o,this.name,this._config.id))}else if(e instanceof Us||e instanceof Fn)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=Fh(e,r,this._config.type);Fd(Uh(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=Ax({...e,command:this._resolvedCommand??e.command,args:this._resolvedArgs??e.args}),o=Mx(this._resolvedEnv??e.env);return Ix({command:n.command,args:n.args,env:o,cwd:e.cwd})}case"http":return this._createHttpTransport(e.url,this._resolvedHeaders??e.headers??{});case"sse":return Nx(e.url,{headers:this._resolvedHeaders??e.headers??{},getHeaders:()=>this._buildAuthHeaders(),...this._targetAuth?{validateUrl:this._targetAuth.validateUrl}:{}});default:return e}}_createHttpTransport(e,r){let n=zx(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?Rq(r):!1,o=e.type==="stdio"&&bi(e.command),i=e.type==="stdio"?e.args:[],s=i.some(bi);if(!(n||o||s))return;let a=ee();if(!this._targetAuth&&!zy(a)){let u=Cq({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??Iy(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;try{o=await Ly({configEnv:e,localEnv:n?$x():{},getSecret:r})}catch(s){throw X.error(`MCP server "${this.name}" secret resolution failed (${Be(s)})`),new mt(this.name,Ri(e),s,"transient")}let i=Hh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new mt(this.name,i,void 0,Vx(o.failureReasons,i));n?this._resolvedEnv=o.resolved:this._resolvedHeaders=o.resolved}async _resolveCommandSecretRefs(e,r,n){let o;try{o=await jy(e,r,n)}catch(s){throw X.error(`MCP server "${this.name}" command secret resolution failed (${Be(s)})`),new mt(this.name,qh(e),s,"transient")}let i=Hh([...o.unresolvedKeys,...o.emptyKeys]);if(i.length>0)throw new mt(this.name,i,void 0,Vx(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(ou)))return;let o;if(Pq(e.url)){let s=ee().credentials?.apiKey;s?o=s:this._recordTokenDiagnostic(`${ou} in a header but no Augment credentials are available; sending the literal placeholder`,"warn")}else this._recordTokenDiagnostic(`${ou} in a header is only expanded for https augmentcode.com / *.augmentcode.com URLs; "${xq(e.url)}" does not qualify, sending the literal placeholder`,"error");if(o===void 0)return;let i={};for(let[s,a]of Object.entries(r))i[s]=a.replaceAll(ou,o);this._resolvedHeaders=i}_recordTokenDiagnostic(e,r){let n=ee();if(n.diagnostics.some(s=>s.server===this.name&&s.message===e))return;n.diagnostics.push({server:this.name,message:e});let i=`MCP server "${this.name}": ${e}`;r==="error"?X.error(i):X.warn(i)}_usableToken(){let e=ee();if(this._targetAuth||e.targetMaterialStore?.has(this.name)||this._config.id&&e.targetMaterialStore?.has(this._config.id))return;let r=e.tokens.get(this.name),n=e.preservedCredentialIdentities?.get(this.name);if(!(n&&!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&&!dd(i)||e.shouldProactivelyRefreshTokens&&(i.refreshToken?await this._refreshTokenDeduped():pi(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),nn({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;nn({state:e.state,name:this.name,revision:l});let f=e.state.currentLoad?.latestPi;f&&j(f,e.state)}catch{X.error(`Failed to restore authoritative MCP OAuth token for "${this.name}" after superseded refresh`)}}_refreshFailureCategory(e,r){return r?"auth_terminal":e instanceof Z?"cannot_persist":"refresh_transient"}_handleRefreshFailure(e,r){let n=!(e instanceof Z)&&fd(e),o=this._ownsRefresh(r);return n&&o&&r.state.tokens.markAuthRequired(this.name),o&&Xo(r.state,this.name,this._refreshFailureCategory(e,n),r.failureScope),X.warn(`MCP server "${this.name}" token refresh failed (${n?"permanent \u2014 auth required":"transient \u2014 will retry"}, ${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),Xo(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 pd(e.token);if(!this._ownsRefresh(e))return{kind:"transient_failure"};this._refreshPersisting=!0;let i=await e.tokenStore.persistRefresh(this.name,o,r,n);if(!this._ownsRefresh(e))return await this._restoreAfterSupersededRefresh(e,o,r,i),{kind:"transient_failure"};e.tokenStore.commit(this.name,o,r),nn({state:e.state,name:this.name,revision:i}),it(e.state,this.name);let s=e.state.currentLoad?.latestPi;return s&&j(s,e.state),X.debug(`MCP server "${this.name}" token refreshed`),{kind:"refreshed"}}catch(r){return this._handleRefreshFailure(r,e)}}_isSessionExpiredError(e){return this._config.type!=="http"||this._activeTransport?.sessionId===void 0?!1:jh(e)}_reinitializeSession(){return this._reinitializingPromise===void 0&&(this._reinitializingPromise=this._doReinitializeSession().finally(()=>{this._reinitializingPromise=void 0})),this._reinitializingPromise}async _doReinitializeSession(){if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);if(this._config.type!=="http")throw new Error("Session re-initialization is only supported for Streamable HTTP servers");await this._client.close();let e=this._createHttpTransport(this._config.url,this._resolvedHeaders??this._config.headers??{});try{await this._client.connect(e)}catch(r){throw this._recordConnectFailure(r,"reinit"),r}X.info(`MCP server "${this.name}" re-initialized session`)}async _withSessionRetry(e){if(this._config.type!=="http")return e();try{return await e()}catch(r){let n=this._isSessionExpiredError(r),o=this._reinitializingPromise!==void 0;if(!(n||o))throw r;X.info(n?`MCP server "${this.name}" returned 404 (session expired); re-initializing and retrying`:`MCP server "${this.name}" call interrupted by a concurrent re-initialization; retrying once`);try{await this._reinitializeSession()}catch(i){throw X.error(`MCP server "${this.name}" session re-initialization failed (${Be(i)})`),hq(r),r}return await e()}}_throwRefreshUnavailable(e,r,n){throw n&&!r?e:new Fn}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),Dh({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 Us;if(this._hostedCredentialProvenance!==void 0)throw new Fn;if(!this.hasRefreshEligibleOAuthCredential())throw this._markAuthRequired(d,s),d;if(l&&!l.available)throw this._markAuthRequired(d,s),d;X.debug(`MCP server "${this.name}" got 401, attempting token refresh + retry`);let f=i.shouldProactivelyRefreshTokens;if(l){if(await this._recoverStartupAuthentication(d,l)==="disposed")throw d}else{let p=await this._refreshTokenDeduped();if(this._disposed)throw d;if(p.kind==="transient_failure"&&this._throwRefreshUnavailable(d,f,n?.preserveAuthErrorOnRefreshUnavailable===!0),p.kind==="terminal_failure")throw this._status="auth_required",d}try{let p=await c();return this._clearHostedAuthFailure(),p}catch(p){let h=a?.failure??p;throw Ct(h)&&this._markAuthRequired(h,s),h}}}_clearHostedAuthFailure(){this._isHostedAccessTokenOnly()&&this.onAuthRefreshCleared?.()}_isHostedAccessTokenOnly(){return this._targetAuth?(this._config.type==="http"||this._config.type==="sse")&&this._config.auth==="oauth"&&this._targetAuth.credential!==void 0:this._hostedCredentialProvenance?.kind==="accepted"&&this._hostedCredentialProvenance.hostedAccessTokenOnly}_markAuthRequired(e,r){let n=ee();Xo(n,this.name,"auth_terminal",r)&&(this._status="auth_required",n.tokens.markAuthRequired(this.name),this._emitState("auth_required",Be(e)),X.warn(`MCP server "${this.name}" still 401 after refresh \u2014 auth_required`))}_wireLivenessHandlers(){let e=this._client;e&&(e.onclose=()=>{this._handleTransportClosed(new su(this._config.type,"closed"))},e.onerror=()=>{this._handleTransportClosed(new su(this._config.type,"error"))})}_startHeartbeat(){this._heartbeatTimer===void 0&&(this._heartbeatTimer=setInterval(()=>{this._sendHeartbeat()},Sq),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<=Wx&&n.outcome==="transient";s++)await dn(bq[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"?X.warn(`MCP server "${this.name}" startup verification ping was inconclusive; leaving handshake status intact: ${n.error}`):n.outcome==="transient"&&X.debug(`MCP server "${this.name}" startup verification ping remained transient after ${Wx} 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:Bx})},"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"?X.debug(i):X.warn(i),{ok:!1,outcome:n,error:o,isAuthError:n==="authFailure"}}}_classifyProbeError(e,r){return r||!this._client||this._disposed||this._reinitializingPromise!==void 0?"transient":Fx(e)||Lh(e)?"alive":Ct(e)?"authFailure":Ux(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:Bx})}catch(r){if(this._reinitializingPromise||this._disposed||Lh(r))return;X.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);X.warn(`MCP server "${this.name}" failing ${n.length} in-flight tool call(s)`);return}let o=n.map(c=>({call:c,state:this._wedgeRecoveryOwnership(c)})),i=o.some(({state:c})=>c==="recoverable"),s=!1;for(let{call:c,state:u}of o)u==="recoverable"||u==="owned"&&i||(c.livenessRejected=!0,s=!0,c.reject(c.failure??e));let a=n.filter(c=>c.livenessRejected).length;X.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=e.tools??[],n=!aq(this._tools,r);if(this._tools=r,n){X.info(`MCP server "${this.name}" tool list updated (${r.length} tool(s))`);try{this.onToolsChanged?.()}catch(o){X.warn(`MCP server "${this.name}" onToolsChanged handler threw (${Be(o)})`)}}}catch(e){X.warn(`MCP server "${this.name}" tools/list_changed refresh failed (${Be(e)}), keeping cached tools`)}}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>Zx)throw new Error(`MCP server "${this.name}" timeoutMs is too large: ${this._config.timeoutMs}, max is ${Zx}.`);let i={timeout:this._config.timeoutMs??vq,signal:n,resetTimeoutOnProgress:!0,maxTotalTimeout:this._config.timeoutMs??_q,onprogress:d=>{X.debug(`MCP server "${this.name}" tool "${e}" progress: ${d.progress}${d.total===void 0?"":`/${d.total}`}${d.message?` - ${d.message}`:""}`)}},s,a=new Promise((d,l)=>{s={reject:l,livenessRejected:!1,sessionRecoveryOwned:!1}});a.catch(()=>{}),s&&this._inFlightCalls.add(s);let u=this._withSessionRetry(()=>this._withAuthRetry(()=>{if(!this._client)throw new Error(`MCP server "${this.name}" client is gone`);return this._client.callTool({name:e,arguments:r??{}},jx,i)},"tool_call",{call:s})).then(d=>(s&&this._settleInFlightCall(s,!0,void 0),d),d=>{throw s&&this._settleInFlightCall(s,!1,d),d});try{let d=await Promise.race([u,a]),l=Lq(d.content,d.structuredContent);return{isError:d.isError===!0,content:l.content,rawItemCount:l.rawItemCount}}catch(d){if(n?.aborted||d instanceof Error&&d.name==="AbortError")throw d;return this._reportAndThrowToolError(d,e)}finally{s&&!this._wedgeRecoveryOwners.has(s)&&(s.failure=void 0,this._inFlightCalls.delete(s))}}_reportAndThrowToolError(e,r){if(e instanceof Fn||e instanceof Us)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=iu(r),i=Be(e),s=qx(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 mq(e)||Fd(Uh(a,i),{server:this.name,op:"tool_call",transport:this._config.type,tool:o}),Uh(a,i)}beginDisposal(){this._disposing||this.onToolsWithdraw?.(),this._disposing=!0,this._disposed=!0,this._targetAuth&&(this._resolvedHeaders=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(X.debug(`MCP server "${this.name}" close error: ${n instanceof Error?n.message:String(n)}`),e?.strict)throw n}}};var rk=Kq.child({prefix:"pi-mcp"}),Jq=3,Yq=6e4;function Xq(t,e){let r=Date.now(),n=r-Yq,o=(t.restartHistory.get(e)??[]).filter(i=>i>=n);return o.length>=Jq?(t.restartHistory.set(e,o),!1):(o.push(r),t.restartHistory.set(e,o),!0)}function nk(t){un(t),aa(t)}async function Qq(t,e,r){if(!Xq(e,t)){rk.warn(`MCP server "${t}" automatic restart rate-limited`);return}rk.warn(`MCP server "${t}" wedged; recycling transport`),await Jr(t,e,r)}function cu(t,e,r){if(eH(e)){nk(t);return}ed(t,r),Jn(e)&&nk(t)}function eH(t){return si()||t.toolSearchLatched}function er(t,e,r){return Lu(r,t.name,t)&&r.serverGenerations?.get(t.name)===e}function Zh(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 tH(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&&Gm(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 Bh(t){let{state:e,config:r,generation:n}=t;return new au(r,tH({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 Wh(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 Vh(t,e,r){return t.configDesiredRevisions.get(e)===r}function ok(t,e,r){return(t.configRevisions.get(e)??0)===r&&(t.configDesiredRevisions?.get(e)??r)===r}function Kh(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(Vq,u)},t.onWedged=()=>{if(!er(t,e,r))return;let a=r.currentLoad?.latestPi??n;Qq(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),j(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)&&j(r.currentLoad?.latestPi??n,r)},t.onToolsChanged=()=>{er(t,e,r)&&t.status==="success"&&cu(r.currentLoad?.latestPi??n,r,t)},t.onToolsWithdraw=()=>{let a=r.currentLoad?.latestPi??n;td(a,t,e),a!==n&&td(n,t,e)}}async function ik(t,e,r,n){let o=setTimeout(()=>{er(t,e,r)&&j(n(),r)},Js);typeof o.unref=="function"&&o.unref();try{await t.connect()}finally{clearTimeout(o),er(t,e,r)&&j(n(),r)}}async function sk(t){let e=[...t.servers.values()].filter(r=>r.status==="success");e.length!==0&&await Promise.all(e.map(r=>r.probe()))}function uu(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 rH(t){let{state:e,config:r,displaced:n,retirement:o}=t;Wh(e,n.config),ni(e,r.name),n.beginDisposal?.();try{let i=Fu(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 nH(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 oH(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 nH({state:e,server:r,owner:i,leaseRevision:s}),{status:"superseded",config:n}):(r.status==="success"&&cu(c(),e,r),j(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 iH(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(!Vh(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=Zh(e,r.name),l=Bh({state:e,config:r,generation:d});return Kh(l,d,e,o),Qs({state:e,name:r.name,owner:i,revision:s,host:l})?{connection:oH({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 sH(t){let{intent:e,state:r,pi:n,sourceOwnership:o,sourceKind:i,activePi:s}=t,{config:a,revision:c}=e;if(o?.(a)===!1||!Vh(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=ti({state:r,name:a.name,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return{status:"collision",config:a};let p=f.lease.revision,h=()=>iH({state:r,config:a,configRevision:c,pi:n,owner:l,leaseRevision:p,sourceOwnership:o,activePi:s}),m=async()=>(f.displacedHost&&f.retirement?await rH({state:r,config:a,displaced:f.displacedHost,retirement:f.retirement}):await Du(f.retirement),h());return f.retirement?m():h()}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 sH({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(()=>{j(s(),e)},Js);typeof u.unref=="function"&&u.unref();try{return await Promise.all(c)}finally{clearTimeout(u)}}async function aH({name:t,state:e,pi:r,configRevision:n}){let o=e.servers.get(t);if(!o||e.servers.get(t)!==o||!ok(e,t,n))return!1;let i=o.config,s=Q(e,t,o);if(!Lu(e,t,o))return!1;Wh(e,i),ni(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||!ok(e,t,n))return xe({state:e,name:t,owner:s.owner,revision:s.revision}),!1;let c=Zh(e,t),u=Bh({state:e,config:i,generation:c});if(Kh(u,c,e,r),!Qs({state:e,name:t,owner:s.owner,revision:s.revision,host:u}))return!1;let d=()=>e.currentLoad?.latestPi??r;return await ik(u,c,e,d),er(u,c,e)&&u.status==="success"&&cu(d(),e,u),!0}function Jr(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 aH({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 cH(t){let{state:e,name:r,existing:n,config:o,retirement:i}=t;Wh(e,n.config),ni(e,r),n.beginDisposal?.();try{let s=o!==void 0&&Fu(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 ak(t,e,r,n,o){let i=()=>e.currentLoad?.latestPi??r,{servers:s}=Kn(n,o,e.mcpConfigOverride,e.sessionMcpConfigDisabledOverrides),a=s.find(m=>m.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=ti({state:e,name:t,owner:l,expectedRevision:d?.revision,expectedHost:d?.host});if(!f)return;if(u&&await cH({state:e,name:t,existing:u,config:a,retirement:f.retirement}),f.retirement&&await Du(f.retirement),N(e,t)?.revision!==f.lease.revision||!Vh(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}),j(i(),e);return}let p=Zh(e,t),h=Bh({state:e,config:a,generation:p});Kh(h,p,e,r),Qs({state:e,name:t,owner:l,revision:f.lease.revision,host:h})&&(await ik(h,p,e,i),er(h,p,e)&&h.status==="success"&&cu(i(),e,h))}async function Hs(t,e,r){e.reconnecting=!0;try{await Promise.all(t.map(n=>Jr(n,e,r)))}finally{e.reconnecting=!1}}var ck=Symbol.for("__pi_mcp_registry_ingress__");function du(t){return Object.defineProperty(t,ck,{value:!0}),t}function qn(t){return Object.getOwnPropertyDescriptor(t,ck)?.value===!0}function Yr(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)&&!qn(a.config)&&!(c?.owner.kind==="registry"&&c.owner.identity===`user:${r}`)))return{name:s,server:a}}import{logger as uH}from"@hermes/logger";var dH=uH.child({prefix:"pi-mcp"}),lH=1e6,fH=1e3,pH=/^\d+$/;function uk(t){return t.startsWith("user:")?`private:${t.slice(5)}`:t}function Xr(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=Um(t);if(n.kind!=="invalid")return{revision:e.replace(/^0+(?=\d)/,""),domain:uk(r),...n.kind==="valid"?{ownerDomain:n.ownerDomain}:{}}}function hH(t,e,r){let n=t?.get(e),o=typeof r=="string"?t?.get(r):void 0;return n===void 0?o:o===void 0?n:Pr(o,n)>0?o:n}function mH(t,e,r){if(t===void 0)return!0;let n=uk(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 gH(t,e,r,n){let o=e.credential_revision??e.credentialRevision,i=e.credential_revision_domain??e.credentialRevisionDomain;if((o!==void 0||i!==void 0)&&r===void 0)return dH.warn(`Skipping MCP OAuth credentials for "${t}": invalid credential revision or domain`),"reject";let s=n?.expectedDomains?.get(t);if(r===void 0)return n?.requireRevision===!0||s!==void 0||n?.acceptedDomains?.has(t)===!0?"reject":"apply";let a=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(!mH(c,r,s))return"reject";let u=hH(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 yH(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 vH(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 _H(t){let e=t.access_token_expires_at?t.access_token_expires_at.seconds*fH+Math.floor(t.access_token_expires_at.nanos/lH):void 0;return{accessToken:t.access_token,refreshToken:t.refresh_token,expiresAt:e,tokenType:t.token_type,scope:t.scope,serverMetadata:{issuer:t.issuer??t.authorization_endpoint,authorization_endpoint:t.authorization_endpoint,token_endpoint:t.token_endpoint},client:{client_id:t.client_id,client_secret:t.client_secret,...t.token_endpoint_auth_method===void 0?{}:{token_endpoint_auth_method:t.token_endpoint_auth_method}}}}function SH(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(!vH(n))return{decision:"reject"};let i=Xr(n),s=gH(r,n,i,o);if(s==="reject")return{decision:s};let a=_H(n);return s==="equal"&&o?.requireEqualMaterial===!0&&(o.acceptedDomains?.get(r)!==i?.domain||!SH(e.get(r),a))||s==="apply"&&yH(e,r,a,i)?{decision:"reject"}:{decision:s,token:a,revision:i}}function lu(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 dk=wH.child({prefix:"pi-mcp"});function bH(t,e){let r=Yr({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 RH(t,e,r){let n=Object.entries(t).filter(([o,i])=>{let s=Xr(i);if(s===void 0)return!1;let a=on(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 lk(t){let{pi:e,state:r,update:n}=t;if(Object.keys(n.credentials).length!==1){dk.warn(`Targeted MCP credential update for config ${n.configId} must contain exactly one entry`);return}let o=bH(r,n.configId),i=o?RH(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=lu(r.tokens,{[o.name]:i},c());if(!l.applied.includes(o.name)&&!l.equal.includes(o.name))return;if(l.applied.includes(o.name)){let m=Xr(i);m&&(r.credentialRevisions.set(o.name,m),r.hostedCredentialOwnership.set(o.name,{...m,accessTokenOnly:i.refresh_token===void 0})),r.statusFailureCategories.delete(o.name),r.authRefreshNeededReportKeys.delete(o.name),r.tokens.clearAuthRequired(o.name)}let f=r.currentLoad?.latestPi??e,p=t.reconnect??Jr,h=t.report??j;await p(o.name,r,f).catch(m=>{dk.warn(`Targeted MCP credential restart failed for config ${n.configId}: ${m instanceof Error?m.name:"non-Error"}`)}),h(f,r),_e(r)}import{logger as CH}from"@hermes/logger";var fu=CH.child({prefix:"pi-mcp"}),Jh="augment:mcp-attach-result";function fk(t,e){e.attachResultListenerBound||(e.attachResultListenerBound=!0,t.events.on(Jh,r=>{let n=r,o=typeof n?.requestId=="string"?n.requestId:"";if(!o){fu.warn(`${Jh} payload missing requestId`);return}let i=e.attachResolvers.get(o);if(!i){fu.debug(`${Jh}: 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 Go(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 gg(r);e.mcpConnectionEpoch!==n||e.credentials!==r||(i.ok?(e.mcpCatalog=i.entries,fu.debug(`MCP catalog refreshed: ${i.entries.length} entry(s)`)):i.disable&&(e.mcpAttachDisabled=!0,e.mcpCatalog=void 0,fu.debug("MCP catalog endpoint unavailable (404); disabling attach for this session")),Jn(e)&&un(e.currentLoad?.latestPi??t))})().finally(()=>{e.catalogRefreshInFlight===o&&(e.catalogRefreshInFlight=void 0)});return e.catalogRefreshInFlight=o,o}import{logger as LH}from"@hermes/logger";function PH(t){if(t==null)return;if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case ai.OAUTH:return"oauth";case ai.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 xH(t){if(typeof t=="number"||!Number.isNaN(Number(t)))switch(Number(t)){case sn.CLI:return"cli";case sn.CLOUD_AGENT:return"cloud_agent";default:return}switch(t){case"MCP_PRODUCT_TYPE_CLI":return"cli";case"MCP_PRODUCT_TYPE_CLOUD_AGENT":return"cloud_agent";default:return}}function pu(t){if(t==null)return;if(t.length===0)return[];let e=t.map(xH).filter(r=>r!==void 0);return e.length===0?void 0:e}function hu(t,e){let r=t.config;if(!r)return{ok:!1,reason:"no config payload"};let n=PH(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=Wn(o);(i==="http"||i==="sse")&&r.env&&(o.headers=r.env);try{return{ok:!0,server:{...Vn(r.name??t.id,o),id:t.id,registrySource:e}}}catch(s){return{ok:!1,reason:s instanceof kt?s.message:String(s)}}}function kH(t){let e=t.config?.auth_type;return e===ai.OAUTH||typeof e=="string"&&(e.toLowerCase()==="oauth"||e.toLowerCase()==="mcp_auth_type_oauth")?t.has_oauth_credentials!==!0&&t.needs_reauthentication!==!0:!1}function EH(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 Yh(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 TH(t,e,r){if(r!==void 0&&t.added_by===r)return pu(t.enabled_products);let n=e[t.id]?.enabled_products;return n!==void 0?pu(n):[]}function AH(t){let{tenantConfigs:e,userConfigs:r,enabledSharedServerIds:n,serverProductPreferences:o,configIds:i,currentUserId:s}=t;if(i!=null&&i.length===0){let p=Yh(e,r,()=>!0);return{selected:[],filteredOutIds:p.map(h=>h.id),missingIds:[],retainedNames:[]}}if(i!=null){let p=new Set(i),h=Yh(e,r,()=>!0),m=new Set(h.map(b=>b.id)),g=h.filter(b=>p.has(b.id)),v=h.filter(b=>!p.has(b.id)).map(b=>b.id),w=i.filter(b=>!m.has(b));return{selected:g,filteredOutIds:v,missingIds:w,retainedNames:[]}}let a=new Set(n),c=[];for(let p of e)a.has(p.id)||c.push(p.id);let u=Yh(e,r,p=>a.has(p)),d=new Set(r.map(p=>p.id)),l=[],f=[];for(let p of u){let m=!d.has(p.id)&&a.has(p.id)?TH(p,o,s):pu(p.enabled_products);m===void 0||m.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 MH(t){return t==null?sn.CLOUD_AGENT:void 0}function $H(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 pk(t,e,r,n){try{let o=t.type==="stdio"?Gt(t,n):Ht(t,n);return{ok:!0,server:du(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 IH(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=hu(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=pk(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=pk(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 OH(t){let e=[],r=[],n=[];for(let o of t)kH(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 zH(t){let e=[],r=[],n=[],o=new Set;for(let i of t){let s=EH(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 NH(t,e){if(t.kind!=="connected"&&t.diagnostic&&e.diagnostics.push(t.diagnostic),t.kind==="connected")e.servers.push(t.server);else if(t.kind==="retained"&&(e.retainedNames.push(t.name),t.fallbackServer!==void 0)){let r=e.nameCollisionFallbacks.get(t.name)??[];r.push(t.fallbackServer),e.nameCollisionFallbacks.set(t.name,r)}}async function mu(t){let e=t.client??new ua(t.creds),{tenant:r,user:n,diagnostics:o}=await Eg(e,MH(t.configIds)),i=n.mcp_configs??[],s=new Set(i.map(b=>b.id)),{selected:a,filteredOutIds:c,missingIds:u,retainedNames:d}=AH({tenantConfigs:r.mcp_configs??[],userConfigs:i,enabledSharedServerIds:n.enabled_shared_server_ids??[],serverProductPreferences:n.server_product_preferences??{},configIds:t.configIds,currentUserId:t.currentUserId}),l=OH(a),f=l.selected;c.push(...l.droppedIds),o.push(...l.diagnostics),o.push(...$H(u));let p=[],h=new Map,m=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=IH({payload:b,userIds:s,localServerNames:t.localServerNames,seenNames:m,workspaceRoot:t.workspaceRoot});NH(x,{servers:p,retainedNames:d,diagnostics:o,nameCollisionFallbacks:h})}let v=zH(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:h}}import{logger as DH}from"@hermes/logger";var Zo=DH.child({prefix:"pi-mcp"});function hk(t,e){let r=t;if(!r||typeof r!="object"||!r.id){Zo.warn("Embedded MCP config is missing an id; ignoring");return}let n=hu(r,"tenant");if(!n.ok){Zo.warn(`Embedded MCP config '${r.id}' is not convertible; ignoring: ${n.reason}`);return}let o=e??process.cwd();try{return du(n.server.type==="stdio"?Gt(n.server,o):Ht(n.server,o))}catch(i){Zo.warn(`Embedded MCP config '${r.id}' failed expansion; ignoring: ${i instanceof Error?i.message:String(i)}`);return}}function mk(t,e){let r;try{r=JSON.parse(t)}catch(n){Zo.warn(`Failed to parse embedded MCP config: ${n instanceof Error?n.name:"non-Error thrown"}`);return}return hk(r,e)}function Bo(t,e){let r=t;if(typeof r=="string")try{r=JSON.parse(r)}catch(s){Zo.warn(`Failed to parse embedded MCP configs: ${s instanceof Error?s.name:"non-Error thrown"}`);return}if(!Array.isArray(r)){Zo.warn("Embedded MCP configs payload is not an array; ignoring");return}let n=[],o=new Map,i=!1;for(let s of r){let a=s,c=hk(s,e);if(a&&typeof a=="object"&&a.id&&a.config?.name&&o.set(a.id,{name:a.config.name,...c?{config:c}:{}}),a?.config?.disabled){i=!0;continue}c&&n.push(c)}if(!(n.length===0&&!i))return{servers:n,allConfigsById:o}}var jt=LH.child({prefix:"pi-mcp"});function yk(t){let{selectedIds:e,config:r}=t;return e!==void 0&&(r?.id===void 0||!e.has(r.id))}function vk(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=ti({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 jH(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=vk({state:e,name:r,lease:c,host:n,isDeselected:yk({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 FH(t){let{state:e,name:r,lease:n,selectedIds:o,replacementOwners:i,slotReservations:s}=t,a=vk({state:e,name:r,lease:n,isDeselected:yk({selectedIds:o,config:e.registryCredentialConfigs.get(r)}),selectionIsEmpty:o?.size===0,replacementOwners:i});a&&a!=="released"&&a!=="retiring"&&s.set(r,a)}async function UH(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=jH({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||FH({state:t,name:a,lease:c,selectedIds:n,replacementOwners:r,slotReservations:o});return await Promise.all(i),o}async function _k(t,e,r,n,o){let i=[],s=new Map(e.map(l=>[l.name,l])),a=o?new Set(r):new Set,c=new Set([...a].flatMap(l=>{let f=t.registryConfigNamesById.get(l);return f===void 0?[]:[f]})),u=new Set(e.flatMap(l=>l.id===void 0?[]:[l.id]));for(let[l,f]of t.registryCredentialConfigs){let p=s.get(l);if(p===void 0&&f.id!==void 0&&n.has(f.id)&&!u.has(f.id)){s.set(l,f);continue}let h=f.id===void 0?c.has(l):a.has(f.id);p===void 0&&!h&&i.push(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 qH(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 HH(t){let{state:e,configIds:r}=t,n=e.embeddedRegistryConfigs;if(e.embeddedRegistryConfigs=void 0,r?.length===0||Array.isArray(n)&&n.length===0)return{servers:[],allConfigsById:new Map};if(n!==void 0)return Bo(n,e.workspaceRoot??process.cwd())}async function GH(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 ZH(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 BH(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 WH(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 VH(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 _k(e,r.servers,n,i,o!==void 0)}async function Sk(t,e){await Promise.all(e.servers.map(r=>r.id===void 0?Promise.resolve():ii(t,r.id)))}async function gk(t){return await Sk(t.state,t.result),t.state.registryGeneration===t.generation&&await VH(t),t.result}function KH(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=qH(n,r,i);return gk({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=>gk({state:e,result:l,previousSelectedIds:s,selection:a,generation:c})):void 0}function JH(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 YH(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 wk(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 Xh(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 XH(t){let{state:e,result:r,selection:n,generation:o,connect:i,pi:s,slotReservations:a}=t;if(e.registryGeneration!==o){Xh({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 Sk(e,r),e.registryGeneration!==o)return;let c=wk({state:e,generation:o}),u=r.servers.filter(c);if((await Promise.all(u.map(m=>Er({state:e,config:m,pi:s})))).some(m=>!m)||e.registryGeneration!==o)return;JH({state:e,result:r,selection:n}),Xh({state:e,result:r,selection:n,slotReservations:a});let l=YH({state:e,result:{...r,servers:u}});if(l.length===0)return;let f=l.filter(m=>{let g=e.servers.get(m.name);if((g?Q(e,m.name,g):N(e,m.name))?.owner.kind==="local")return jt.info(`Registry install of "${m.name}" skipped: a local server claimed the name during discovery`),!1;let w=a.get(m.name)?.configRevision;if(w===void 0)return!0;let b=e.configDesiredRevisions.get(m.name);return b!==w?(jt.info(`Registry install of "${m.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 h=(await i(f,e,e.currentLoad?.latestPi??s,c))?.find(m=>m.status==="failed");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));await QH({state:e,pi:s,result:r,generation:o,connect:i})}async function QH(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 eG({state:e,pi:r,generation:o,connect:i,name:a,candidate:u});if(d==="abort")return;if(d==="settled")break}}async function eG(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,wk({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 tG(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 _k(e,[],o,new Set(i??[]),i!==void 0),e.selectedRegistryConfigIds=i,e.diagnostics.push({message:s,origin:"registry"}))}function rG(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 nG(t){let e;try{let r=await Promise.all([t.disposal,t.discovery]);e=r[0],await XH({...t.resultArgs,result:r[1],slotReservations:e})}catch(r){if(e??=await t.disposal.catch(()=>new Map),Xh({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 rG(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 tG({...t.resultArgs,error:r})}}function gu(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.discover??mu,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)&&Vm(r,new Set(a.configIds.map(at)));let c=HH({state:r,configIds:a.configIds}),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=GH({state:r,previousSelectedIds:d,configIds:a.configIds}),f=ZH({parsedEmbedded:c,configIds:a.configIds}),p=++r.registryGeneration,h=Promise.all([UH(r,a.configIds,f),l]).then(([v])=>v);BH(r);let m=a.configIds?[...a.configIds]:void 0,g=KH({state:r,configIds:a.configIds,parsedEmbedded:c,credentials:u,localServerNames:WH(r),previousSelectedIds:d,selection:m,generation:p,discover:i});return g?nG({disposal:h,discovery:g,resultArgs:{state:r,previousSelectedIds:d,selection:m,generation:p,connect:s,pi:e}}):Promise.resolve()}import{logger as oG}from"@hermes/logger";var Qr=oG.child({prefix:"pi-mcp"});function iG(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 sG(t){let{state:e,configId:r,liveEditGeneration:n}=t,o={liveEditGeneration:n,registryGeneration:e.registryGeneration};return e.missingHostRemovalFences.set(r,o),o}function Pk(t){let{state:e,configId:r,fence:n}=t;return e.registryGeneration===n.registryGeneration&&e.liveEditGenerations.get(r)===n.liveEditGeneration}function aG(t){let{state:e,configId:r,fence:n}=t;e.missingHostRemovalFences.get(r)===n&&e.missingHostRemovalFences.delete(r)}function bk(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&&(aG({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 xk(t,e){t.failedAddConfigIds.delete(e),t.nameCollisionAddConfigIds.delete(e),t.dynamicallyAddedConfigIds.delete(e),t.sessionRemovedConfigIds.add(e)}function Rk(t,e){for(let[r,n]of t.servers){if(t.targetMaterialStore?.has(e)&&!t.targetMaterialStore.trusts(n.config)&&!qn(n.config))continue;let o=Q(t,r,n);if(n.config.id===e&&o.owner.kind==="registry"&&o.host===n)return r}}function kk(t,e){let r=t.preservedCredentialIdentities?.get(e);r?.id&&t.expectedCredentialDomains.set(e,{kind:"domain",domain:`user:${r.id}`})}function cG(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?zm({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&&(kk(e,r),We(e,r))}async function Qh(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 Qr.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),h=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 Qr.warn(b),e.diagnostics.push({server:a,message:b}),w}try{await oi(e,a,r,s)}catch(w){h!==void 0&&e.configDesiredRevisions.get(a)===h&&(f===void 0?e.configDesiredRevisions.delete(a):e.configDesiredRevisions.set(a,f),p===void 0?e.configDesiredSources.delete(a):e.configDesiredSources.set(a,p));let b=`Live MCP remove-server failed to detach ${a}: ${w instanceof Error?w.message:String(w)}`;throw Qr.warn(b),e.diagnostics.push({server:a,message:b}),w}Pk({state:e,configId:r,fence:i})&&(xk(e,r),cG({state:e,name:a,config:s,retirement:g})),Qr.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 Ck(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)}`;Qr.warn(i),e.diagnostics.push({server:r,message:i})}async function uG(t){let{state:e,name:r,configId:n,server:o}=t,[i]=await Promise.allSettled([o.dispose({strict:!0})]);if(Ck({state:e,name:r,operation:"dispose",result:i}),i.status==="rejected")return{removed:!1,failure:i.reason,transportDisposed:!1};let[s]=await Promise.allSettled([oi(e,r,n,o.config)]);return Ck({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 dG(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?.(),Qr.info(`Live MCP remove-server: disposing ${n} (config id ${r})`);let p=e.currentLoad?.latestPi??o,{removed:h,failure:m,transportDisposed:g}=await uG({state:e,name:n,configId:r,server:a});if(h&&Pk({state:e,configId:r,fence:s})?xk(e,r):!h&&e.configDesiredRevisions.get(n)===l&&(u===void 0?e.configDesiredRevisions.delete(n):e.configDesiredRevisions.set(n,u),d===void 0?e.configDesiredSources.delete(n):e.configDesiredSources.set(n,d)),ve({state:e,name:n,retirement:f,result:h?{status:"retired"}:{status:"failed",error:m,transportDisposed:g}}),h&&xe({state:e,name:n,owner:c.owner,revision:c.revision})&&kk(e,n),i(p,e),!h)throw m}function yu(t){let{pi:e,state:r,data:n,deps:o}=t,i=n,s=i&&typeof i.configId=="string"?i.configId:"";if(!s)return Qr.warn("augment:mcp-remove-server payload missing configId"),Promise.resolve();if(!na({state:r,configId:s,generation:i?.attachmentGeneration}))return Qr.info(`Ignoring stale live MCP remove-server command for config id ${s}`),Promise.resolve();let a=g=>oa({state:r,configId:s,generation:i?.attachmentGeneration,operation:g,wasApplied:()=>!0}),c=o?.report??j,u=Rk(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(bk({state:r,configId:s,fence:g,retryPreviousFailureOnly:!0,operation:()=>Qh({state:r,configId:s,pi:e,report:c,sourceFence:g})}))}let h=iG(r,s);if(u===void 0&&d===void 0)return a(Qh({state:r,configId:s,pi:e,report:c,sourceFence:{liveEditGeneration:h,registryGeneration:r.registryGeneration}}));let m=sG({state:r,configId:s,liveEditGeneration:h});return a(bk({state:r,configId:s,fence:m,operation:()=>{let g=Rk(r,s);return g===void 0?Qh({state:r,configId:s,pi:e,report:c,sourceFence:m}):dG({state:r,configId:s,name:g,pi:e,report:c,sourceFence:m})}}))}import{randomUUID as lG}from"node:crypto";import{setToolSource as fG}from"@augmentcode/auggie-v2";import{logger as pG}from"@hermes/logger";import{Type as hG}from"@sinclair/typebox";var Tk=pG.child({prefix:"pi-mcp"}),vu="attach-mcp-server",mG="augment:mcp-attach-request",gG=15e3,yG={type:"object",properties:{config_id:{type:"string",description:"Id (or name) of the MCP server to attach, as listed among the available unattached servers in find-tool's description."}},required:["config_id"]};function vG(t,e){let r=e.trim(),n=r.toLowerCase(),o=t.mcpCatalog??[],i=o.find(l=>l.id===r);if(i)return{kind:"match",entry:i};let s=o.filter(l=>l.name.toLowerCase()===n),a=s.length===1?s[0]:void 0;if(a!==void 0)return{kind:"match",entry:a};if(s.length===0)return{kind:"none"};let c=new Set(an(t).map(l=>l.id)),u=s.filter(l=>c.has(l.id)),d=u.length===1?u[0]:void 0;return d!==void 0?{kind:"match",entry:d}:{kind:"ambiguous",candidates:s}}function _G(t,e){let r=e.name.toLowerCase();return an(t).filter(n=>n.id!==e.id&&n.name.toLowerCase()===r)}function em(t,e){let r=_G(t,e);return r.length===0?"":` A different attachable server with the same name exists: ${r.map(o=>`"${o.name}" (id: ${o.id})`).join(", ")}. If that is the intended server, retry with its exact id.`}function SG(t,e){return new Promise(r=>{let n=setTimeout(()=>{t.attachResolvers.delete(e),r(void 0)},gG);t.attachResolvers.set(e,o=>{clearTimeout(n),t.attachResolvers.delete(e),r(o)})})}function Ek(t){let e=an(t).map(r=>`${r.name} (id: ${r.id})`);return e.length>0?`Available unattached servers: ${e.join(", ")}.`:"No unattached servers are currently available."}function wG(t){let{entry:e,state:r}=t,n=[...r.servers.values()].find(o=>o.config.id===e.id);if(n?.status==="auth_required")return Ce(`MCP server "${e.name}" requires authentication. Ask the user to reconnect it from the session MCP panel before trying again.${em(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.${em(r,e)}`)}function bG(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.${em(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 RG(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(`${vu} requires a string "config_id" parameter. ${Ek(e)}`);let o=vG(e,n);if(o.kind==="none")return Ce(`No MCP server matching "${n}" is available to attach. ${Ek(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=wG({entry:i,state:e});if(s!==void 0)return s;if(rd(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=lG();Tk.info(`attach-mcp-server: requesting attach of "${i.name}" (config=${i.id} request=${a})`);let c=SG(e,a);t.events.emit(mG,{configId:i.id,requestId:a});let u=await c;return bG({entry:i,result:u,state:e})}function Gs(t,e){let r={name:vu,label:vu,description:"Attach an available MCP server to this session so its tools become usable. Only servers listed as available-but-not-attached in find-tool's description can be attached. Call this tool immediately when the user's request needs one of those servers; it attaches directly without requiring user approval.",parameters:hG.Unsafe(yG),execute:(n,o)=>RG(t,e,o)};fG(vu,"mcp"),t.registerTool(r),Tr(r),Tk.debug("Registered attach-mcp-server tool")}import{createHash as CG}from"node:crypto";var PG=/^[1-9][0-9]*$/,xG=/^[a-f0-9]{64}$/,kG=new Set(["version","operation","config_id","server_name","transport","url","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 rm(t){return typeof t=="string"&&PG.test(t)&&t.length<=19&&BigInt(t)<=9223372036854775807n}function nm(t){return Re(t)&&typeof t.vmId=="string"&&t.vmId.length>0&&t.vmId.length<=256&&t.vmId.trim()===t.vmId&&rm(t.connectionVersion)}function Ak(t){if(!(!Re(t)||Object.keys(t).some(e=>!kG.has(e)))&&!(t.version!==1||t.operation!=="install"&&t.operation!=="retire"||t.transport!=="http"&&t.transport!=="sse"||t.auth_type!=="oauth"&&t.auth_type!=="static"&&t.auth_type!=="none")){for(let e of["config_id","server_name","url","vm_id","execution_principal_id"])if(typeof t[e]!="string"||t[e].length===0)return;if(!(typeof t.route_revision!="string"||!xG.test(t.route_revision)||!rm(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"||!rm(t.binding_generation))){try{let e=new URL(String(t.url));if(!["http:","https:"].includes(e.protocol)||e.username||e.password||e.hash)return}catch{return}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 Mk(t,e){return t.execution_principal_id===e.execution_principal_id&&t.execution_principal_type===e.execution_principal_type}function tm(t,e){return Mk(t,e)&&t.config_id===e.config_id&&t.server_name===e.server_name&&t.transport===e.transport&&t.url===e.url&&t.route_revision===e.route_revision&&t.ownership===e.ownership&&t.auth_type===e.auth_type}function EG(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])}var _u=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 nm(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&&!Mk(e,this.#n)||r.type==="stdio"||r.disabled||!r.registrySource||r.vfsSource||r.id!==e.config_id||r.name!==e.server_name||r.type!==e.transport||r.url!==e.url||r.auth==="oauth"!=(e.auth_type==="oauth")||!n&&(!o||!this.#r.has(r)||!tm(e,o.material)))return!1;let i=Ri(r.headers??{}),s=Object.keys(e.static_secrets??{});if(e.operation==="retire")return!!o&&tm(e,o.material)&&e.binding_generation===o.material.binding_generation;if(e.auth_type==="static"?i.length===0||i.length!==s.length||s.some(c=>!i.includes(c)):i.length!==0)return!1;if(!o)return!0;let a=BigInt(e.binding_generation)-BigInt(o.material.binding_generation);return a>=0n&&(a!==0n||o.material.operation==="install"&&tm(e,o.material)&&EG(e,o.material))}commit(e,r){let n=Object.freeze({...e,...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(),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 $k(t){return CG("sha256").update(t).digest("hex")}function Ik(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 TG(t,e){if(typeof t!="string"||$k(t)!==e.route_revision)return;let r=JSON.parse(t);if(!Re(r)||!Re(r.config)||r.id!==e.config_id||r.config.auth_type!=={oauth:2,static:3,none:1}[e.auth_type])return;let o=r.config;if(!(o.type!==void 0&&o.type!==e.transport||o.name!==e.server_name||o.url!==e.url||o.disabled!==void 0&&o.disabled!==!1)&&!(o.env!==void 0&&(!Re(o.env)||Object.values(o.env).some(i=>typeof i!="string")))&&!(o.timeout_ms!==void 0&&(typeof o.timeout_ms!="number"||!Number.isSafeInteger(o.timeout_ms)||o.timeout_ms<0)))return Object.freeze({id:e.config_id,name:e.server_name,type:e.transport,url:e.url,registrySource:"tenant",...o.timeout_ms?{timeoutMs:o.timeout_ms}:{},...e.auth_type==="oauth"?{auth:"oauth"}:{},...o.env?{headers:Object.freeze({...o.env})}:{}})}function Ok(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?Ik(e.configsJson):new Map;if(o){if(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;if(i.size>0){let u=Bo(e.configsJson,t.workspaceRoot);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}}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=Ak(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 h=p?TG(o?i.get(l.config_id):e.config,l):r.config(l.config_id);if(!h||!r.validate(l,h,p)||o&&Array.isArray(e.configIds)&&!e.configIds.includes(l.config_id))return;let m=t.servers.get(u),g=t.hostLeases.get(u);if(m&&!r.trusts(m.config)&&!qn(m.config)&&!r.hasTargetProvenance(m.config)||m&&(m.config.registrySource===void 0||m.config.vfsSource!==void 0||m.config.id!==l.config_id)||m&&(!g||g.host!==m)||g&&(g.owner.kind!=="registry"||g.owner.identity!==`user:${l.config_id}`))return;s.push({material:l,config:h})}if(!(o&&[...i.keys()].some(u=>r.has(u)&&!a.has(u)&&(!Array.isArray(e.configIds)||e.configIds.includes(u)))))return s}async function AG(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=Ok(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=[...Ik(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:h}of i)o.commit(p,h);r.mcpAttachCloudSignaled||(r.mcpAttachCloudSignaled=!0,Gs(r.currentLoad?.latestPi??e,r)),r.embeddedRegistryConfigs=s;let l=gu({pi:e,state:r,data:{configIds:u},deps:{connect:(p,h,m,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,h,m,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 j(f,r),_e(r),Go(f,r),!0}async function MG(t){let{pi:e,state:r,data:n}=t;if(!Re(n))return!1;if(n.kind==="boot")return AG(t);let o;try{o=Ok(r,n)}catch{return!1}let i=o?.[0],s=r.targetMaterialStore;if(!i||o?.length!==1||!s)return!1;let{material:a,config:c}=i,u=s.epoch;s.commit(a,c);let d=n.kind==="add"||r.dynamicallyAddedConfigIds.has(a.config_id);return[...r.servers.values()].find(f=>f.config.id===a.config_id&&f.config.registrySource!==void 0&&(s.hasTargetProvenance(f.config)||qn(f.config)))&&await yu({pi:e,state:r,data:{configId:a.config_id}}),s.epoch!==u||a.operation!=="retire"&&(r.sessionRemovedConfigIds.delete(a.config_id),d?r.dynamicallyAddedConfigIds.add(a.config_id):r.dynamicallyAddedConfigIds.delete(a.config_id),await Ve([c],r,e,()=>s.epoch===u),s.epoch!==u)?!1:(j(e,r),!0)}function Zs(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 $G(t,e){t.registryGeneration++,Zm(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"}),j(e,t)}))}t.targetMaterialQueue=Promise.all([t.targetMaterialQueue??Promise.resolve(),...r]).then(()=>{}),j(e,t)}function zk(t,e){e.targetMaterialListenerBound||(e.targetMaterialListenerBound=!0,e.targetMaterialStore??=new _u,t.events.on("augment:mcp-target-connection",r=>{let n=e.targetMaterialStore;if(n){if(nm(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,$G(e,t)}}),t.events.on("augment:mcp-target-material",r=>{let n=e.targetMaterialStore?.epoch;Zs(e,async()=>{if(e.targetMaterialStore?.epoch!==n)return;!await MG({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"}),j(t,e))}).catch(()=>{e.targetMaterialStore?.epoch===n&&(e.diagnostics.push({origin:"registry",message:"MCP snapshot application failed"}),j(t,e))})}))}import{logger as ZG}from"@hermes/logger";import{execFile as om}from"node:child_process";import{win32 as im}from"node:path";import{logger as IG}from"@hermes/logger";var OG=5e3,zG=/^[a-z]:[\\/]/i,NG=/[<>:"|?*]/;function DG(){let t=process.env.SystemRoot??process.env.WINDIR;return!t||t!==t.trim()||!zG.test(t)||!im.isAbsolute(t)||t.slice(3).split(/[\\/]+/).some(n=>n==="."||n===".."||n.endsWith(".")||n.endsWith(" ")||NG.test(n)||[...n].some(o=>o.charCodeAt(0)<32))?null:im.join(im.normalize(t),"System32","WindowsPowerShell","v1.0","powershell.exe")}function LG(t){let e=t.replaceAll("'","''");return Buffer.from(`Start-Process -FilePath '${e}'`,"utf16le").toString("base64")}function jG(t,e){switch(process.platform){case"darwin":return om("open",[t],e);case"win32":{let r=DG();return r?om(r,["-NoProfile","-NonInteractive","-EncodedCommand",LG(t)],e):(e(new Error("Windows system root metadata is invalid")),null)}default:return om("xdg-open",[t],e)}}function Nk(t,e=OG){let r=IG.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=jG(o,c=>{i||(i=!0,clearTimeout(a),c?(r.warn("Failed to open browser",{error:c}),n(!1)):n(!0))})})}import{createServer as FG}from"node:http";function Su(t){return t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Dk(t){let e=Su(t.title),r=Su(t.heading),n=Su(t.message),o=t.details?Su(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 Lk(t){return Dk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function wu(t,e){return Dk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var HG="127.0.0.1",Uk="/callback",jk=3e3,Fk=3010,GG="Authentication successful. You can close this window.",bu={"Content-Type":"text/html; charset=utf-8"};function qk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Hk(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 im(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function ZG(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Uk){e.writeHead(404,bu),e.end(wu("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,bu),e.end(wu("Authentication did not complete.",`Error: ${s}`));let u=im(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,bu),e.end(wu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,bu),e.end(Lk(GG)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function BG(t){for(let e=jk;e<=Fk;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,HG)}))return e;throw new Error(`No free port in ${jk}-${Fk} for the OAuth callback server`)}async function Gk(){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=qG((a,c)=>{ZG(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await BG(i);return{port:s,redirectUri:`http://localhost:${s}${Uk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var sm=WG.child({prefix:"pi-mcp"}),VG=300*1e3,Wk="MCP authentication was superseded";function Zk(){return qk()?"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 Vk(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&&Kk(t.credentialRevisions.get(e),r.credentialRevision)}function Kk(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function Bk(t,e,r){if(!Vk(t,e,r))throw new Error(Wk)}async function KG(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)||!Kk(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;nn({state:t,name:e,revision:p}),j(t.currentLoad?.latestPi??s,t)}catch{sm.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function JG(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 YG(t,e,r,n){return new Promise((o,i)=>{let s=!1,a,c=()=>{a&&clearTimeout(a),e.signal.removeEventListener("abort",d),t.cancelWait()},u=m=>{s||(s=!0,c(),m())},d=()=>u(()=>i(new Error("Authentication cancelled"))),l=()=>{a&&clearTimeout(a),a=setTimeout(()=>u(()=>i(new Error("Authentication timed out"))),VG)},f=m=>{let g=m instanceof Error?m.message:String(m);u(()=>i(new Error(`Could not read the pasted authorization code (${g}). Restart sign-in and paste the full redirect URL.`)))},p=async(m,g)=>{let v=await n(m,l);if(!s){if(v){h(g);return}u(()=>i(im(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=Hk(g,r());if(v.kind==="success"){u(()=>o(new URLSearchParams({code:v.result.code,state:v.result.state})));return}let w=e.waitForManualCode();await p(v.params,w)}catch(v){f(v)}}).catch(g=>u(()=>i(g instanceof Error?g:new Error(String(g)))))};if(t.setErrorRetryHandler(m=>n(m,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(m=>{m&&u(()=>o(new URLSearchParams({code:m.code,state:m.state})))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function Jk(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 Gk(),vr(o.signal);let l=new URL(s.url),f,p;try{f=await Id(l),vr(o.signal),p=await Od(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 h=await c.tokenStore.captureAuthenticatedIdentityVersion(u);Bk(r,e,c),vr(o.signal);let m=await zd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});vr(o.signal);let g=await wa(l,m,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,tn)=>{if(w)return x&&b&&ba(Pe,b)?x.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!ba(Pe,v))return Promise.resolve(null);w=!0;let rn=v;return b=rn,tn(),sm.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),x=Nd(rn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:Zk()}),lt)),x.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(Pe=>S(Pe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Zk()}),vr(o.signal),await Nk(g.authUri.toString());let R=await YG(d,o,()=>v.state,S),I=await Dd(R,v);Bk(r,e,c);let ne=JG(I),fe=await c.tokenStore.persistAuthenticated(e,ne,u,h);if(!Vk(r,e,c))throw await KG(r,e,c,u,ne,fe,n),new Error(Wk);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),nn({state:r,name:e,revision:fe}),r.tokens.clearAuthRequired(e),it(r,e),await Us([e],r,n),j(r.currentLoad?.latestPi??n,r),_e(r),sm.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as pZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as XG,SETTINGS_TARGET_ORDER as QG,SettingsManager as eZ,scopeToSettingsTarget as tZ,settingsTargetToScope as am}from"@augmentcode/auggie-v2";var rZ=QG.map(t=>am(t)),Yk=(t,e)=>eZ.create(t,e);function Xk(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 Qk(t,e,r){let n=Yk(e,r);return rZ.filter(o=>Xk(n,o)?.[t])}function eE(t){let e=t.map(n=>({target:tZ(n),path:n,exists:!0})),r=XG({files:e});return"directTarget"in r?{scopes:t,direct:am(r.directTarget)}:{scopes:r.files.map(n=>am(n.target)),direct:null}}function nZ(t,e,r){let{servers:n}=Vn(e,r);return n.find(o=>o.name===t)?.disabled===!0}function tE(t,e,r,n,o){try{let i=Yk(n,o);if(!Xk(i,r)?.[t])return{ok:!1,error:`Server "${t}" not found in ${r} settings`};i.update(r,{path:["mcpServers",t,"disabled"],value:e})}catch(i){return{ok:!1,error:i instanceof Error?i.message:String(i)}}return{ok:!0,overridden:nZ(t,n,o)!==e}}function cm(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function rE(t,e,r){return cm(t)}function nE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as oZ}from"@hermes/logger";var dm=oZ.child({prefix:"pi-mcp"}),oE="hermes:mcp:register-server-source";function iZ(t,e){return t.type==="stdio"?Gt(t,e):Ht(t,e)}function iE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function sZ(t,e){return{...t,disabled:e}}function aZ(t){try{return t.getServers()}catch(e){return dm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function cZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function sE(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 uZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of aZ(t)){let s=e.servers.get(i.name),a=iZ(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)&&iE(s.config,u);p&&(Q(e,i.name,s),Im({state:e,name:i.name,host:s}));let h=l?.owner.kind==="vfs";if(s&&!(f||p||h)){e.pluginServerNames.delete(i.name),e.pluginServerHosts.delete(i.name),sE(e,i.name);continue}o.has(i.name)||o.set(i.name,u)}return o}async function dZ(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 aE(t,e){sE(t,e)}function lZ(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"){aE(e,a);continue}u===o.get(a)&&n.has(a)&&iE(u.config,c)||(s.set(a,We(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function fZ(t,e,r){let n=r?.connect??Ve,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(h=>h.origin!=="plugin"),o&&cZ(o,e);let s=new Set(e.pluginServerNames);e.pluginServerHosts??=new Map;for(let[h,m]of e.pluginServerHosts){let g=e.servers.get(h);(g===void 0||g===m)&&Q(e,h,m)}let a=uZ(o,e,i,s);e.configDesiredRevisions??=new Map,e.configRevisions??=new Map;let c=new Map,u=new Set;for(let[h,m]of e.hostLeases)m.owner.kind==="plugin"&&(u.add(h),m.host&&c.set(h,m.host));await dZ(a,u,e);let{reservedRevisions:d,toConnect:l}=lZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;dm.info(`Plugin MCP source: connecting ${l.length} server(s)`);let f=()=>e.currentLoad?.latestPi??t,p=h=>{let m=d.get(h.name);if(m===void 0||e.configDesiredRevisions.get(h.name)!==m)return!1;let g=N(e,h.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||aE(e,h.name),v};try{await n(l,e,f(),p,d,"plugin");for(let h of l)p(h)}catch{}finally{e.pluginServerNames=new Set([...e.hostLeases].filter(([,h])=>h.owner.kind==="plugin").map(([h])=>h)),j(f(),e),_e(e)}}function um(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>fZ(t,e,r)).catch(i=>{dm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function cE(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),um(o.currentLoad?.latestPi??i,o,e))}function uE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,um(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,um(e.currentLoad?.latestPi??t,e))})}}function hZ(t,e){let n=pZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function dE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(hZ(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:cm(e)};if(Ku(r.mcpConfigOverride).has(e))return{kind:"session"};if(br(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=Qk(e,n,o);if(s.length===0)return{kind:"blocked",message:rE(e,n,o)};let{scopes:a,direct:c}=eE(s);return{kind:"local",scopes:a,direct:c}}async function lE(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 cE({name:e,disabled:r,state:n,pi:o});return}Ku(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 fE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=tE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await ak(e,o,i,s,a),_e(o),c.overridden?{notice:nE(e)}:{}}import{DynamicBorder as zZ}from"@augmentcode/auggie-v2";import{Key as NZ,matchesKey as DZ,SearchableWindowedList as LZ,SpinnerTimer as jZ,truncateToWidth as Tu,wrapTextWithAnsi as FZ}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as mZ,scopeToSettingsTarget as gZ}from"@augmentcode/auggie-v2";import{truncateToWidth as yZ,visibleWidth as Hn,wrapTextWithAnsi as vZ}from"@earendil-works/pi-tui";var _Z=2,SZ=2,Ru={name:"Name",source:"Source",status:"Status"};function lm(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 fm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function pm(t,e){let r=e-Hn(t);return r>0?t+" ".repeat(r):t}function Cu(t){return t.reduce((e,r)=>Math.max(e,Hn(r)),0)}function Bo(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 pE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(_Z,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(SZ,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=Bo(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Hn(Ru[w]))&&(a=Bo(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>fm(g)),l=t.map(g=>lm(g)),f=Math.max(Hn(Ru.source),Cu(d)),p=Math.max(Hn(Ru.status),Cu(l.map(g=>g.label))),h=Math.max(Hn(Ru.name),Cu(t.map(g=>g.name))),m=Math.max(p,Cu(l.map(g=>g.label+(g.hint??""))));return a=Bo(u,"source",f,a),a=Bo(u,"status",p,a),a=Bo(u,"name",h,a),Bo(u,"status",m,a),u}function hE(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 Wo(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>vZ(n,r).map(o=>Hn(o)<=r?o:yZ(o,r,"")))}function wZ(t,e){return Math.max(0,t-e)}function Vo(t,e,r){return Math.max(0,Math.min(t,wZ(e,r)))}function mE(t,e,r){let n=Vo(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 gE(t,e){return String(t+1).padStart(String(e).length," ")}function hm(t){return mZ(gZ(t))}import{Key as bZ,matchesKey as RZ}from"@earendil-works/pi-tui";function Pu(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 yE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var vE=10,Gn=15;var CZ="k",PZ="j";function Ko(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 mm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===CZ?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===PZ?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:RZ(t,bZ.backspace)?{kind:"back"}:{kind:"ignore"}}function xZ(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=Ko(ot(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=Ko(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 kZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Pu(n);switch(e.kind){case"up":return{state:{...t,actionIndex:Ko(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:Ko(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 EZ(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 TZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.logLines()??[],o=Wo(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:Vo(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:Vo(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function AZ(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function xu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function MZ(t,e){let r=t.targetScopes.length;if(r===0)return{state:xu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:Ko(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:Ko(t.targetIndex+1,r)}};case"cancel":case"back":return{state:xu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:xu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:xu(t,"serverActions")}}default:return{state:t}}}function _E(t,e,r){switch(t.step){case"serverList":return xZ(t,e,r.snapshots);case"serverActions":return kZ(t,e,r);case"viewTools":return EZ(t,e,r);case"viewLogs":return TZ(t,e,r);case"pasteAuthCode":return AZ(t,e);case"selectTarget":return MZ(t,e);default:return{state:t}}}import{truncateToWidth as Ft,visibleWidth as $Z,wrapTextWithAnsi as en}from"@earendil-works/pi-tui";var gm="\u2192 ",ku=" ";function SE(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 wE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=pE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?pm(m,c.nameWidth):"",c.sourceWidth>0?pm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=_r(ku,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 h of n){let m=h.name===t.selectedServer,g=lm(h),v=_r(g.label,c.statusWidth),w=c.statusWidth-$Z(v),b=g.hint?_r(g.hint,w):"",x=i.fg(g.color,v)+(b?i.fg("muted",b):""),S=_r(m?gm:ku,c.prefixWidth);p.push(d(m?i.fg("accent",S):S,SE(_r(h.name,c.nameWidth),m,i),SE(_r(fm(h),c.sourceWidth),m,i),x))}return o.hasOverflow&&p.push(Ft(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var IZ={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 OZ(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 IZ[t]}function bE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return en(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=en(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...en(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Pu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=OZ(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ft((l?gm:ku)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function RE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return en(r.fg("muted","No tools available."),o);if(i.disabled)return en(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return en(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=hE(t.toolIndex,s,Gn),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",`${gE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function CE(t,e,r,n){let o=Math.max(1,n),s=e[ot(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return en(r.fg("muted","No logs available yet."),o);let a=Wo(s,o),c=a.length,u=mE(t.logScrollOffset,c,Gn),d=[];c>Gn&&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 PE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)]?.name??"",s=[...en(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",hm(c))):r.fg("text",hm(c));s.push(Ft((u?gm:ku)+d,o,"\u2026"))}return s}var Eu=3;function UZ(t){return t.type==="stdio"?t.command:t.url}function qZ(t){let e=t.getLogHistory();if(e.length===0){let r=t.lastError;return r?r.split(`
143
+ </html>`}function Lk(t){return Dk({title:"Authentication successful",heading:"Authentication successful",message:t,autoClose:!0})}function wu(t,e){return Dk({title:"Authentication failed",heading:"Authentication failed",message:t,details:e})}var UG="127.0.0.1",Uk="/callback",jk=3e3,Fk=3010,qG="Authentication successful. You can close this window.",bu={"Content-Type":"text/html; charset=utf-8"};function qk(t=process.env){return!!(t.SSH_CONNECTION||t.SSH_TTY)}function Hk(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 sm(t){let e=t.get("error")??"unknown_error",r=t.get("error_description");return new Error(`Authentication did not complete: ${e}${r?`: ${r}`:""}`)}function HG(t,e,r){try{let n=new URL(t.url??"","http://localhost");if(n.pathname!==Uk){e.writeHead(404,bu),e.end(wu("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,bu),e.end(wu("Authentication did not complete.",`Error: ${s}`));let u=sm(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,bu),e.end(wu("Missing code or state parameter.")),r.onError(new Error("OAuth callback missing code or state"));return}e.writeHead(200,bu),e.end(Lk(qG)),r.onSuccess({code:o,state:i})}catch{e.writeHead(500,{"Content-Type":"text/plain; charset=utf-8"}),e.end("Internal error")}}async function GG(t){for(let e=jk;e<=Fk;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,UG)}))return e;throw new Error(`No free port in ${jk}-${Fk} for the OAuth callback server`)}async function Gk(){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=FG((a,c)=>{HG(a,c,{onSuccess:u=>e?.(u),onError:u=>r?.(u),onErrorRetry:u=>o?.(u)??Promise.resolve(null)})}),s=await GG(i);return{port:s,redirectUri:`http://localhost:${s}${Uk}`,waitForCode:()=>n,cancelWait:()=>e?.(null),close:()=>i.close(),setErrorRetryHandler:a=>{o=a}}}var am=ZG.child({prefix:"pi-mcp"}),BG=300*1e3,Wk="MCP authentication was superseded";function Zk(){return qk()?"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 Vk(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&&Kk(t.credentialRevisions.get(e),r.credentialRevision)}function Kk(t,e){return t?.revision===e?.revision&&t?.domain===e?.domain}function Bk(t,e,r){if(!Vk(t,e,r))throw new Error(Wk)}async function WG(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)||!Kk(t.credentialRevisions.get(e),d)||c.reconcileCredentialIdentity?.(e,u,f)!==!0)return;nn({state:t,name:e,revision:p}),j(t.currentLoad?.latestPi??s,t)}catch{am.error(`Failed to restore authoritative MCP OAuth token for "${e}" after superseded authentication`)}}function VG(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 KG(t,e,r,n){return new Promise((o,i)=>{let s=!1,a,c=()=>{a&&clearTimeout(a),e.signal.removeEventListener("abort",d),t.cancelWait()},u=m=>{s||(s=!0,c(),m())},d=()=>u(()=>i(new Error("Authentication cancelled"))),l=()=>{a&&clearTimeout(a),a=setTimeout(()=>u(()=>i(new Error("Authentication timed out"))),BG)},f=m=>{let g=m instanceof Error?m.message:String(m);u(()=>i(new Error(`Could not read the pasted authorization code (${g}). Restart sign-in and paste the full redirect URL.`)))},p=async(m,g)=>{let v=await n(m,l);if(!s){if(v){h(g);return}u(()=>i(sm(m)))}},h=(m=e.waitForManualCode())=>{m.then(async g=>{if(!(s||!g))try{let v=Hk(g,r());if(v.kind==="success"){u(()=>o(new URLSearchParams({code:v.result.code,state:v.result.state})));return}let w=e.waitForManualCode();await p(v.params,w)}catch(v){f(v)}}).catch(g=>u(()=>i(g instanceof Error?g:new Error(String(g)))))};if(t.setErrorRetryHandler(m=>n(m,l)),l(),e.signal.aborted){u(()=>i(new Error("Authentication cancelled")));return}e.signal.addEventListener("abort",d),t.waitForCode().then(m=>{m&&u(()=>o(new URLSearchParams({code:m.code,state:m.state})))}).catch(m=>u(()=>i(m instanceof Error?m:new Error(String(m))))),h()})}async function Jk(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 Gk(),vr(o.signal);let l=new URL(s.url),f,p;try{f=await Id(l),vr(o.signal),p=await Od(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 h=await c.tokenStore.captureAuthenticatedIdentityVersion(u);Bk(r,e,c),vr(o.signal);let m=await zd({config:{},serverMetadata:p,redirectUris:[d.redirectUri]});vr(o.signal);let g=await ba(l,m,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,tn)=>{if(w)return x&&b&&Ra(Pe,b)?x.then(lt=>lt.authUri.toString()):Promise.resolve(null);if(!Ra(Pe,v))return Promise.resolve(null);w=!0;let rn=v;return b=rn,tn(),am.info(`MCP server "${e}" rejected offline_access (invalid_scope); retrying authorization without it`),x=Nd(rn).then(lt=>(v=lt,o.onAuthUrl({url:lt.authUri.toString(),instructions:Zk()}),lt)),x.then(lt=>lt.authUri.toString())};d.setErrorRetryHandler(Pe=>S(Pe,()=>{})),o.onAuthUrl({url:g.authUri.toString(),instructions:Zk()}),vr(o.signal),await Nk(g.authUri.toString());let R=await KG(d,o,()=>v.state,S),I=await Dd(R,v);Bk(r,e,c);let ne=VG(I),fe=await c.tokenStore.persistAuthenticated(e,ne,u,h);if(!Vk(r,e,c))throw await WG(r,e,c,u,ne,fe,n),new Error(Wk);c.tokenStore.commit(e,ne,u),r.preservedCredentialIdentities?.delete(e),nn({state:r,name:e,revision:fe}),r.tokens.clearAuthRequired(e),it(r,e),await Hs([e],r,n),j(r.currentLoad?.latestPi??n,r),_e(r),am.info(`MCP server "${e}" authenticated`)}finally{d?.close(),r.authenticationGeneration===a&&(r.authenticating=!1,r.authenticatingServerName=void 0)}}import{SettingsManager as lZ}from"@augmentcode/auggie-v2";import{resolveTargetFiles as JG,SETTINGS_TARGET_ORDER as YG,SettingsManager as XG,scopeToSettingsTarget as QG,settingsTargetToScope as cm}from"@augmentcode/auggie-v2";var eZ=YG.map(t=>cm(t)),Yk=(t,e)=>XG.create(t,e);function Xk(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 Qk(t,e,r){let n=Yk(e,r);return eZ.filter(o=>Xk(n,o)?.[t])}function eE(t){let e=t.map(n=>({target:QG(n),path:n,exists:!0})),r=JG({files:e});return"directTarget"in r?{scopes:t,direct:cm(r.directTarget)}:{scopes:r.files.map(n=>cm(n.target)),direct:null}}function tZ(t,e,r){let{servers:n}=Kn(e,r);return n.find(o=>o.name===t)?.disabled===!0}function tE(t,e,r,n,o){try{let i=Yk(n,o);if(!Xk(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:tZ(t,n,o)!==e}}function um(t){return`Cannot toggle "${t}": server is not in any editable settings file`}function rE(t,e,r){return um(t)}function nE(t){return`Saved toggle for "${t}", but a higher-priority settings file overrides it`}import{logger as rZ}from"@hermes/logger";var lm=rZ.child({prefix:"pi-mcp"}),oE="hermes:mcp:register-server-source";function nZ(t,e){return t.type==="stdio"?Gt(t,e):Ht(t,e)}function iE(t,e){return JSON.stringify(t)===JSON.stringify(e)}function oZ(t,e){return{...t,disabled:e}}function iZ(t){try{return t.getServers()}catch(e){return lm.warn(`plugin MCP server source getServers() threw: ${e instanceof Error?e.message:String(e)}`),[]}}function sZ(t,e){if(t.getDiagnostics)try{for(let r of t.getDiagnostics())e.diagnostics.push({message:r.message,origin:"plugin"})}catch{}}function sE(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 aZ(t,e,r,n){let o=new Map;if(!t)return o;for(let i of iZ(t)){let s=e.servers.get(i.name),a=nZ(i,r),c=e.sessionPluginDisabledOverrides.get(i.name),u=oZ(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)&&iE(s.config,u);p&&(Q(e,i.name,s),Om({state:e,name:i.name,host:s}));let h=l?.owner.kind==="vfs";if(s&&!(f||p||h)){e.pluginServerNames.delete(i.name),e.pluginServerHosts.delete(i.name),sE(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 aE(t,e){sE(t,e)}function uZ(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"){aE(e,a);continue}u===o.get(a)&&n.has(a)&&iE(u.config,c)||(s.set(a,We(e,a,"plugin")),i.push(c))}return{reservedRevisions:s,toConnect:i}}async function dZ(t,e,r){let n=r?.connect??Ve,o=e.pluginServerSource,i=e.workspaceRoot??process.cwd();e.diagnostics=e.diagnostics.filter(h=>h.origin!=="plugin"),o&&sZ(o,e);let s=new Set(e.pluginServerNames);e.pluginServerHosts??=new Map;for(let[h,m]of e.pluginServerHosts){let g=e.servers.get(h);(g===void 0||g===m)&&Q(e,h,m)}let a=aZ(o,e,i,s);e.configDesiredRevisions??=new Map,e.configRevisions??=new Map;let c=new Map,u=new Set;for(let[h,m]of e.hostLeases)m.owner.kind==="plugin"&&(u.add(h),m.host&&c.set(h,m.host));await cZ(a,u,e);let{reservedRevisions:d,toConnect:l}=uZ({state:e,desired:a,previousNames:u,previousHosts:c});if(l.length===0)return;lm.info(`Plugin MCP source: connecting ${l.length} server(s)`);let f=()=>e.currentLoad?.latestPi??t,p=h=>{let m=d.get(h.name);if(m===void 0||e.configDesiredRevisions.get(h.name)!==m)return!1;let g=N(e,h.name),v=g?.owner.kind!=="local"&&g?.owner.kind!=="registry";return v||aE(e,h.name),v};try{await n(l,e,f(),p,d,"plugin");for(let h of l)p(h)}catch{}finally{e.pluginServerNames=new Set([...e.hostLeases].filter(([,h])=>h.owner.kind==="plugin").map(([h])=>h)),j(f(),e),_e(e)}}function dm(t,e,r){e.pluginReconcileQueue??=Promise.resolve();let o=e.pluginReconcileQueue.then(()=>dZ(t,e,r)).catch(i=>{lm.warn(`Plugin MCP reconciliation failed: ${i instanceof Error?i.message:String(i)}`)});return e.pluginReconcileQueue=o,o}function cE(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),dm(o.currentLoad?.latestPi??i,o,e))}function uE(t,e){return{registerServerSource:r=>(e.pluginServerSource=r,dm(e.currentLoad?.latestPi??t,e),()=>{e.pluginServerSource===r&&(e.pluginServerSource=void 0,dm(e.currentLoad?.latestPi??t,e))})}}function fZ(t,e){let n=lZ.create(t,e).getManagedSettings().mcpServers;return new Set(Object.entries(n??{}).filter(([,o])=>o!==null).map(([o])=>o))}function dE(t){let{server:e,state:r,cwd:n,agentDir:o}=t;if(fZ(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:um(e)};if(Ku(r.mcpConfigOverride).has(e))return{kind:"session"};if(br(i,r.pluginServerHosts,r.hostLeases)!=="local")return{kind:"session"};let s=Qk(e,n,o);if(s.length===0)return{kind:"blocked",message:rE(e,n,o)};let{scopes:a,direct:c}=eE(s);return{kind:"local",scopes:a,direct:c}}async function lE(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 cE({name:e,disabled:r,state:n,pi:o});return}Ku(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 fE(t){let{server:e,disable:r,scope:n,state:o,pi:i,cwd:s,agentDir:a}=t,c=tE(e,r,n,s,a);if(!c.ok)throw new Error(c.error);return await ak(e,o,i,s,a),_e(o),c.overridden?{notice:nE(e)}:{}}import{DynamicBorder as IZ}from"@augmentcode/auggie-v2";import{Key as OZ,matchesKey as zZ,SearchableWindowedList as NZ,SpinnerTimer as DZ,truncateToWidth as Tu,wrapTextWithAnsi as LZ}from"@earendil-works/pi-tui";import{getSettingsTargetLabel as pZ,scopeToSettingsTarget as hZ}from"@augmentcode/auggie-v2";import{truncateToWidth as mZ,visibleWidth as Hn,wrapTextWithAnsi as gZ}from"@earendil-works/pi-tui";var yZ=2,vZ=2,Ru={name:"Name",source:"Source",status:"Status"};function fm(t){if(t.disabled)return{label:"Disabled",color:"muted"};switch(t.status){case"success":return{label:`${t.tools.length} tools available`,color:"success"};case"failed":return{label:"Failed",color:"error"};case"auth_required":return{label:"Auth required",color:"warning",hint:" Press Enter for options"};case"disabled":return{label:"Disabled",color:"muted"};default:return{label:"Initializing",color:"text"}}}function pm(t){return t.registrySource==="tenant"?"Shared":t.registrySource==="user"?"Private registry":t.source==="plugin"?"Plugin":t.source==="vfs"?"VFS":"User-configured"}function hm(t,e){let r=e-Hn(t);return r>0?t+" ".repeat(r):t}function Cu(t){return t.reduce((e,r)=>Math.max(e,Hn(r)),0)}function Wo(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 pE(t,e){let r=Math.max(1,Math.floor(e)),n=Math.min(yZ,r),o=r-n,i=Math.min(3,o),s=i<2?0:Math.min(vZ,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=Wo(u,g,1,a);for(let g=1;a>0;g++){let v=!1;for(let w of c)if(!(g>=Hn(Ru[w]))&&(a=Wo(u,w,g+1,a),v=!0,a===0))break;if(!v)break}let d=t.map(g=>pm(g)),l=t.map(g=>fm(g)),f=Math.max(Hn(Ru.source),Cu(d)),p=Math.max(Hn(Ru.status),Cu(l.map(g=>g.label))),h=Math.max(Hn(Ru.name),Cu(t.map(g=>g.name))),m=Math.max(p,Cu(l.map(g=>g.label+(g.hint??""))));return a=Wo(u,"source",f,a),a=Wo(u,"status",p,a),a=Wo(u,"name",h,a),Wo(u,"status",m,a),u}function hE(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 Vo(t,e){let r=Math.max(1,Math.floor(e));return t.flatMap(n=>gZ(n,r).map(o=>Hn(o)<=r?o:mZ(o,r,"")))}function _Z(t,e){return Math.max(0,t-e)}function Ko(t,e,r){return Math.max(0,Math.min(t,_Z(e,r)))}function mE(t,e,r){let n=Ko(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 gE(t,e){return String(t+1).padStart(String(e).length," ")}function mm(t){return pZ(hZ(t))}import{Key as SZ,matchesKey as wZ}from"@earendil-works/pi-tui";function Pu(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 yE(){return{step:"serverList",filterQuery:"",selectedServer:null,actionIndex:0,toolIndex:0,logScrollOffset:0,authInput:"",targetScopes:[],targetIndex:0,pendingToggle:null}}var vE=10,Gn=15;var bZ="k",RZ="j";function Jo(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 gm(t,e,r=!0){return e.matches(t,"tui.select.up")||r&&t===bZ?{kind:"up"}:e.matches(t,"tui.select.down")||r&&t===RZ?{kind:"down"}:e.matches(t,"tui.select.confirm")?{kind:"confirm"}:e.matches(t,"tui.select.cancel")?{kind:"cancel"}:wZ(t,SZ.backspace)?{kind:"back"}:{kind:"ignore"}}function CZ(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=Jo(ot(r,t.selectedServer)-1,n);return{state:{...t,selectedServer:r[o]?.name??null}}}case"down":{let o=Jo(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 PZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)];if(!n)return{state:{...t,step:"serverList"}};let o=Pu(n);switch(e.kind){case"up":return{state:{...t,actionIndex:Jo(t.actionIndex-1,o.length)}};case"down":return{state:{...t,actionIndex:Jo(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 xZ(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 kZ(t,e,r){let n=r.snapshots[ot(r.snapshots,t.selectedServer)]?.logLines()??[],o=Vo(n,r.logViewportWidth).length;switch(e.kind){case"up":return{state:{...t,logScrollOffset:Ko(t.logScrollOffset-1,o,r.windowSize)}};case"down":return{state:{...t,logScrollOffset:Ko(t.logScrollOffset+1,o,r.windowSize)}};case"cancel":case"back":return{state:{...t,step:"serverActions"}};default:return{state:t}}}function EZ(t,e){return e.kind==="cancel"||e.kind==="back"?{state:{...t,step:"serverActions",authInput:""}}:{state:t}}function xu(t,e){return{...t,step:e,targetScopes:[],targetIndex:0,pendingToggle:null}}function TZ(t,e){let r=t.targetScopes.length;if(r===0)return{state:xu(t,"serverActions")};switch(e.kind){case"up":return{state:{...t,targetIndex:Jo(t.targetIndex-1,r)}};case"down":return{state:{...t,targetIndex:Jo(t.targetIndex+1,r)}};case"cancel":case"back":return{state:xu(t,"serverActions")};case"confirm":{let n=t.targetScopes[t.targetIndex],o=t.pendingToggle;return n&&o?{state:xu({...t,actionIndex:0},"serverList"),effect:{kind:"toggleWrite",server:o.server,disable:o.disable,scope:n}}:{state:xu(t,"serverActions")}}default:return{state:t}}}function _E(t,e,r){switch(t.step){case"serverList":return CZ(t,e,r.snapshots);case"serverActions":return PZ(t,e,r);case"viewTools":return xZ(t,e,r);case"viewLogs":return kZ(t,e,r);case"pasteAuthCode":return EZ(t,e);case"selectTarget":return TZ(t,e);default:return{state:t}}}import{truncateToWidth as Ft,visibleWidth as AZ,wrapTextWithAnsi as en}from"@earendil-works/pi-tui";var ym="\u2192 ",ku=" ";function SE(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 wE(t,e,r,n,o,i,s){let a=Math.max(1,s),c=pE(r,a),u=" ".repeat(c.gapWidth),d=(h,m,g,v)=>{let w=[c.nameWidth>0?hm(m,c.nameWidth):"",c.sourceWidth>0?hm(g,c.sourceWidth):"",c.statusWidth>0?v:""].filter(b=>b.length>0);return h+w.join(u)},l=_r(ku,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 h of n){let m=h.name===t.selectedServer,g=fm(h),v=_r(g.label,c.statusWidth),w=c.statusWidth-AZ(v),b=g.hint?_r(g.hint,w):"",x=i.fg(g.color,v)+(b?i.fg("muted",b):""),S=_r(m?ym:ku,c.prefixWidth);p.push(d(m?i.fg("accent",S):S,SE(_r(h.name,c.nameWidth),m,i),SE(_r(pm(h),c.sourceWidth),m,i),x))}return o.hasOverflow&&p.push(Ft(i.fg("muted",` (${o.current}/${o.total})`),a,"\u2026")),p}var MZ={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 $Z(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 MZ[t]}function bE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return en(r.fg("muted","No MCP servers available"),o);let s=i.transport==="stdio"?"Command: ":"URL: ",a=en(r.fg("muted",s+i.connectionInfo),o);i.source==="plugin"&&a.push(...en(r.fg("muted","Source: plugin (toggles apply to this session only)"),o)),a.push("");let c=Pu(i);for(let[u,d]of c.entries()){let l=u===t.actionIndex,f=$Z(d,i),p=f.label,h=l?r.bold(r.fg("accent",p)):r.fg("text",p);a.push(Ft((l?ym:ku)+h+r.fg("muted",` - ${f.description}`),o,"\u2026"))}return a}function RE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)];if(!i)return en(r.fg("muted","No tools available."),o);if(i.disabled)return en(r.fg("muted","Server is disabled; no tools are currently available."),o);if(i.tools.length===0)return en(r.fg("muted","No tools available."),o);let s=i.tools.length,{start:a,end:c}=hE(t.toolIndex,s,Gn),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",`${gE(d,s)} `)+p+(l.disabled?r.fg("muted"," (disabled)"):""),o,"\u2026"))}return u}function CE(t,e,r,n){let o=Math.max(1,n),s=e[ot(e,t.selectedServer)]?.logLines()??[];if(s.length===0)return en(r.fg("muted","No logs available yet."),o);let a=Vo(s,o),c=a.length,u=mE(t.logScrollOffset,c,Gn),d=[];c>Gn&&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 PE(t,e,r,n){let o=Math.max(1,n),i=e[ot(e,t.selectedServer)]?.name??"",s=[...en(r.fg("muted",`Save the toggle for "${i}" to which settings file?`),o),""];for(let[a,c]of t.targetScopes.entries()){let u=a===t.targetIndex,d=u?r.bold(r.fg("accent",mm(c))):r.fg("text",mm(c));s.push(Ft((u?ym:ku)+d,o,"\u2026"))}return s}var Eu=3;function jZ(t){return t.type==="stdio"?t.command:t.url}function FZ(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 xE(t){return t.disabled?2:t.status==="auth_required"?0:1}function HZ(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:UZ(r.config),logLines:()=>qZ(r)});return e.sort((r,n)=>xE(r)-xE(n)),e}function GZ(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 ZZ(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 BZ(t,e,r,n,o){switch(t.step){case"serverActions":return bE(t,e,n,o);case"viewTools":return RE(t,e,n,o);case"viewLogs":return CE(t,e,n,o);case"selectTarget":return PE(t,e,n,o);default:return wE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function WZ(t,e,r,n,o){let i=Math.max(1,o),s=Tu(n.bold(n.fg("accent",GZ(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Eu?[...r.renderInput(i),""]:[],c=BZ(t,e,r,n,i);return[s,"",...a,...c,"",Tu(n.fg("muted",ZZ(t.step)),i,"\u2026")]}function VZ(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[Tu(s,i,"\u2026"),"",Tu(a,i,"\u2026")]}function KZ(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function JZ(t,e,r){let n=s=>s.flatMap(a=>FZ(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 YZ(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function kE(t){return t?"Disabling":"Enabling"}function EE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var ym=class{state=yE();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 zZ(r=>e.theme.fg("border",r)),this.serverList=new LZ({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:vE})}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=VZ(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=JZ({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=WZ(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>=Eu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Eu&&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=Wo(n?.logLines()??[],r).length,i=Vo(this.state.logScrollOffset,o,Gn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=_E(this.state,e,{snapshots:r,windowSize:Gn,logViewportWidth:this.currentWidth??Eu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=mm(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(mm(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,kE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(EE(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,kE(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(EE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new jZ(()=>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??=KZ(),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(DZ(e,NZ.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&&YZ(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 TE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new ym({tui:i,theme:s,keybindings:a,snapshots:()=>HZ(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var _m=["list"];function AE(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 XZ(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var QZ="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function vm(t,e){return e.length>0?[t,...e]:null}function e2(t){let e=[],r=[];for(let o of t.servers.values())(br(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[vm("MCP Server Status:",e.map(AE)),vm("Plugin MCP servers:",r.map(AE)),vm("Diagnostics:",t.diagnostics.map(XZ))];return t.servers.size===0&&n.unshift([QZ]),n.filter(o=>o!==null).map(o=>o.join(`
145
+ `)).map(r=>r.trimEnd()).filter(r=>r.length>0)}function xE(t){return t.disabled?2:t.status==="auth_required"?0:1}function UZ(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:jZ(r.config),logLines:()=>FZ(r)});return e.sort((r,n)=>xE(r)-xE(n)),e}function qZ(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 HZ(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 GZ(t,e,r,n,o){switch(t.step){case"serverActions":return bE(t,e,n,o);case"viewTools":return RE(t,e,n,o);case"viewLogs":return CE(t,e,n,o);case"selectTarget":return PE(t,e,n,o);default:return wE(t,e,r.getMatchingItems(),r.getVisibleItems(),r.getMetadata(),n,o)}}function ZZ(t,e,r,n,o){let i=Math.max(1,o),s=Tu(n.bold(n.fg("accent",qZ(t,e))),i,"\u2026"),a=t.step==="serverList"&&i>=Eu?[...r.renderInput(i),""]:[],c=GZ(t,e,r,n,i);return[s,"",...a,...c,"",Tu(n.fg("muted",HZ(t.step)),i,"\u2026")]}function BZ(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[Tu(s,i,"\u2026"),"",Tu(a,i,"\u2026")]}function WZ(){let t;return{promise:new Promise(r=>{t=r}),resolve:t}}function VZ(t,e,r){let n=s=>s.flatMap(a=>LZ(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 KZ(t){return t.length>0&&!t.startsWith("\x1B")&&t>=" "}function kE(t){return t?"Disabling":"Enabling"}function EE(t,e){return`Failed to toggle "${t}": ${e instanceof Error?e.message:String(e)}`}var vm=class{state=yE();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 IZ(r=>e.theme.fg("border",r)),this.serverList=new NZ({items:[],getIdentity:r=>r.name,getSearchText:r=>r.name,maxVisible:vE})}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=BZ(this.busy.server,this.busy.verb,this.spinner?.frame??"",this.config.theme,r);else if(this.authenticating)n=VZ({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=ZZ(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>=Eu}syncSearchFocus(){let e=this.currentWidth!==void 0&&this.currentWidth>=Eu&&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=Vo(n?.logLines()??[],r).length,i=Ko(this.state.logScrollOffset,o,Gn);i!==this.state.logScrollOffset&&(this.state={...this.state,logScrollOffset:i})}applyAction(e,r){let n=_E(this.state,e,{snapshots:r,windowSize:Gn,logViewportWidth:this.currentWidth??Eu});this.state=n.state,n.effect&&this.runEffect(n.effect)}dispatchServerList(e,r){this.syncServerList(r);let n=this.isSearchAvailable(),o=gm(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(gm(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,kE(r),async()=>{try{await this.config.toggle.applySession(e,r)}catch(o){this.config.toggle.notify(EE(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,kE(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(EE(e,o))}})}startOp(e,r,n){this.busy||this.config.isReconnecting()||(this.busy={server:e,verb:r},this.spinner=new DZ(()=>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??=WZ(),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(zZ(e,OZ.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&&KZ(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 TE(t,e,r,n,o){await t.ui.custom((i,s,a,c)=>new vm({tui:i,theme:s,keybindings:a,snapshots:()=>UZ(e),reconnect:r,toggle:n,isReconnecting:()=>e.reconnecting,authenticate:o,isAuthenticating:()=>e.authenticating,done:()=>c(void 0)}).component)}var Sm=["list"];function AE(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 JZ(t){return` ! ${t.server?`${t.server}: `:""}${t.message}`}var YZ="No MCP servers configured. Add servers under the 'mcpServers' key in ~/.augment/settings.json or your project's .augment/settings.json.";function _m(t,e){return e.length>0?[t,...e]:null}function XZ(t){let e=[],r=[];for(let o of t.servers.values())(br(o,t.pluginServerHosts,t.hostLeases)==="plugin"?r:e).push(o);let n=[_m("MCP Server Status:",e.map(AE)),_m("Plugin MCP servers:",r.map(AE)),_m("Diagnostics:",t.diagnostics.map(JZ))];return t.servers.size===0&&n.unshift([YZ]),n.filter(o=>o!==null).map(o=>o.join(`
147
147
  `)).join(`
148
148
 
149
- `)}function t2(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(_m.includes(e))return e}async function r2(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=Us([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function ME(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return _m.filter(o=>o.startsWith(n)).map(o=>({value:o,label:o}))},handler:async(r,n)=>{if(r.trim().length===0&&n.mode==="interactive"&&n.hasUI){await TE(n,e,s=>Us([s],e,t),{classify:s=>dE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>lE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>fE({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)=>Jk({serverName:s,state:e,pi:t,controller:a}));return}let i=t2(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${_m.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(e2(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await r2(n,e,t)}})}import{logger as n2}from"@hermes/logger";var $E=n2.child({prefix:"pi-mcp"}),Sm="augment:feature-flags";function o2(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 IE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(Sm,r=>{let n=o2(r);if(n===void 0){$E.warn(`${Sm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,$E.debug(`Received feature-flag snapshot via ${Sm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as i2}from"@hermes/logger";var Gs=i2.child({prefix:"pi-mcp"}),OE=300*1e3,wm=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&&(fi(o,e)||o.expiresAt>e+wm||(Gs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${wm}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Gs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Gs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function zE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{s2(t)},OE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Gs.debug(`Started background MCP OAuth refresh loop (interval ${OE}ms, buffer ${wm}ms)`)}function NE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Gs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as a2}from"@hermes/logger";var Pt=a2.child({prefix:"pi-mcp"});function c2(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 u2(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 DE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function LE(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 Zs(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 d2(t,e){return e.flatMap(r=>uu(t,r)?[r.config]:[])}function l2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function f2(t,e){let r=l2(e);if(r){if(Zs(t,r.error),r.error instanceof xt)throw r.error;return}let n=d2(t.state,e).filter(o=>o.id===t.configId);if(n.length>0&&!t.superseded()){c2(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 jE(t,e){try{f2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function p2(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 h2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await oi(t.state,t.configId),t.superseded()){tr(t);return}if(p2(t,e)){tr(t);return}try{if(!await Er({state:t.state,config:e,pi:t.activePi})){tr(t);return}}catch(r){throw Zs(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);jE(t,r??[])}catch(r){if(Zs(t,r),r instanceof xt)throw r}}async function m2(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){LE(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 oi(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 Zs(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}LE(r,e),jE(t,s??[])}function g2(t,e){if(typeof e=="string")return mk(e,t.workspaceRoot??process.cwd())}function y2(t,e,r){return t.targetMaterialStore?.has(e)===!0||r!==void 0&&t.targetMaterialStore?.has(r.name)===!0}function FE(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=g2(r,i?.embeddedConfig);if(y2(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(!ra({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=Xs({state:r,domain:at(s),forceNew:!0}),u=u2(r),d=r.currentLoad?.latestPi??e,l=r.registryGeneration;r.liveEditGenerations??=new Map;let f=(r.liveEditGenerations.get(s)??0)+1;r.liveEditGenerations.set(s,f);let p=()=>r.registryGeneration!==l||r.liveEditGenerations.get(s)!==f,h={state:r,configId:s,activePi:d,connect:o?.connect??Ve,report:o?.report??j,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>DE(r,s)},m;if(a)m=h2(h,a);else{let g=r.credentials;g?m=(o?.discover??mu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>m2(h,w)).catch(w=>{if(!(w instanceof xt)){Zs(h,w);return}throw w}):(Pt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),tr(h),m=Promise.resolve())}return na({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>DE(r,s)})}import{logger as v2}from"@hermes/logger";var Au=v2.child({prefix:"pi-mcp"}),UE=3,qE=6e4,_2=1e3,S2=8e3;function bm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??Jr,s=o?.now??Date.now,a=o?.sleep??dn,c=o?.report??j,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Au.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=Yr({state:r,target:d});if(!l||r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,h=N(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<qE?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>UE)return Au.warn(`augment:mcp-restart-server: ${f} exceeded ${UE} restarts within ${qE}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(_2*2**(v-1),S2);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||N(r,f)!==h||Yr({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Au.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)}`;Au.warn(R),r.diagnostics.push({server:f,message:R})}).then(()=>{c(w,r)})}import{logger as w2}from"@hermes/logger";var Bs=w2.child({prefix:"pi-mcp"}),b2=/^\d+$/,Rm=1,HE="AUGMENT_ACTIVE_SPACE_ID",R2="augment-mcp-access-token-";function Mu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function GE(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 $u=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??id}_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(R2)&&Object.hasOwn(process.env,HE)&&(r.active_space_id=process.env[HE]??""),r}getSecret(e){let r=Mu(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 ln(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Mu(e),s=(await this._callUpsert({name:o,value:r,scope:Rm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!b2.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),Bs.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await ln(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Mu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Rm}),Bs.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=Mu(e);try{let n=await ln(()=>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===Rm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:GE(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&&Bs.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await ln(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:GE(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof ht&&o.statusCode===404)return Bs.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return Bs.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 Cm(t){return{latestPi:t}}import{logger as C2}from"@hermes/logger";var Jo=C2.child({prefix:"pi-mcp"});async function P2(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 x2(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),Jo.warn(r.message))}function k2(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"}),Jo.warn(a);return}try{let a=Wn(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"}),Jo.warn(c);return}}function E2(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=k2({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function T2(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function ZE(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 Jo.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&&T2(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=P2(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;x2(r,s.diagnostics);let{servers:l,blockedNames:f}=E2(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(Jo.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let h=p?.find(m=>m.status==="failed"||m.status==="unavailable");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));return l.every(m=>(p??[]).some(g=>g.config===m&&uu(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)}`;Jo.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var Me=A2.child({prefix:"pi-mcp"}),JE="augment:mcp-oauth-credentials",BE="augment:mcp-header-secrets",WE="augment:mcp-header-secret-failures",Pm="augment:mcp-oauth-failures",VE="augment:credentials",M2="augment:mcp-config-ids",KE="augment:mcp-configs",$2="augment:mcp-vfs-servers",I2="augment:mcp-add-server",O2="augment:mcp-restart-server",z2="augment:mcp-remove-server";function N2(t){if(!t.secretsClient||t.tokens instanceof ui)return;let e=t.tokens;t.tokens=new ui(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),Me.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function D2(t){if(!t||typeof t!="object"){Me.warn(`${JE} 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 xm(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=Xr(n),i=Yr({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&YE({state:t,name:r,revision:o})&&!XE({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 L2(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=Yr({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){lk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!xm(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&&!xm(r,n))return;let c=H2({pi:e,state:r,credentials:n.credentials,suppressReconnect:n.suppressReconnect,requireEqualMaterial:n.restart!==void 0}),{restart:u}=n;if(!(typeof u?.serverName!="string"||typeof u.requestId!="string")){if(c.rejected.length===0&&c.applied.length+c.equal.length===1&&(c.applied.includes(u.serverName)||c.equal.includes(u.serverName))){bm({pi:e,state:r,isCurrent:()=>r.mcpConnectionEpoch===o&&i.every(({name:d,server:l,lease:f})=>r.servers.get(d)===l&&N(r,d)===f)&&xm(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 j2(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(JE,r=>{let n=D2(r);n&&L2({pi:t,state:e,payload:n})}))}function YE(t){let{state:e,name:r,revision:n}=t,o=on(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 XE(t){let{state:e,revision:r}=t,n=on(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function F2(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=Xr(s);if(yr({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(XE({state:e,revision:a})){Vm({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(YE({state:e,name:i,revision:a})){o[i]=s;continue}Bm({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function U2(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=Xr(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 q2(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"&&Jr(s,r,i).catch(()=>{}).finally(()=>{j(i,r),_e(r)})}}function H2(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=F2({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=lu(r.tokens,i,s);return U2({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(Me.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),q2({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function G2(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(BE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${BE} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);My(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(WE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${WE} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Iy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(Pm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${Pm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){Me.warn(`${Pm} entries is not an object`);return}Am(e,n.entries)}))}function Z2(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(VE,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){Me.warn(`${VE} 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 $u(e.credentials),N2(e)}),t.events.on(M2,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0,qs(e.currentLoad?.latestPi??t,e)),gu({pi:t,state:e,data:r}).then(()=>{j(e.currentLoad?.latestPi??t,e)}).catch(n=>{Me.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),j(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;_e(e),Ho(n,e)})}))}function B2(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(KE,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){Me.warn(`${KE} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Zo(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 W2(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on($2,r=>{ZE({pi:t,state:e,data:r}).then(()=>{j(e.currentLoad?.latestPi??t,e),_e(e)})}))}function V2(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(I2,r=>{let n=()=>FE({pi:t,state:e,data:r});(e.targetMaterialQueue?Hs(e,n):n()).then(()=>{j(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)}`),j(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;_e(e),Ho(o,e)})}))}function K2(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on(O2,r=>{let n=()=>bm({pi:t,state:e,data:r});(e.targetMaterialQueue?Hs(e,n):n()).then(()=>{_e(e)})}))}function J2(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(z2,r=>{let n=()=>yu({pi:t,state:e,data:r});(e.targetMaterialQueue?Hs(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),Ho(o,e)})}))}function see(t){return Ay(t)}var QE=t=>{let e=ee();e.currentLoad=Cm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{_e(e)});let r=!1;ME(t,e),zk(t,e),j2(t,e),G2(t,e),Z2(t,e),B2(t,e),W2(t,e),V2(t,e),K2(t,e),J2(t,e),IE(t,e),fk(t,e),e.mcpAttachCloudSignaled&&qs(t,e),t.on("session_start",(n,o)=>{e.currentLoad=Cm(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,zE(e),e.connectStarted)Kn(e)?(un(t),sa(t)):lg(t,e),_e(e);else{e.connectStarted=!0,ii()&&un(t);let{servers:s,diagnostics:a}=Vn(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(()=>sk(e)).catch(()=>{}).finally(()=>{j(e.currentLoad?.latestPi??t,e),_e(e)})}r||(r=!0,t.events.emit(oE,uE(t,e)))}),t.on("session_shutdown",()=>{NE(e)})};ag(QE);var aee=QE;export{aee as default,see as setMcpErrorReporter};
149
+ `)}function QZ(t){let e=t.trim().split(/\s+/)[0];if(!e)return"list";if(Sm.includes(e))return e}async function e2(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=Hs([...e.servers.keys()],e,r);t.mode!=="interactive"&&await n}function ME(t,e){t.registerCommand("mcp",{description:"List configured MCP servers and their status",getArgumentCompletions:r=>{let n=r.trim().toLowerCase();return Sm.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 TE(n,e,s=>Hs([s],e,t),{classify:s=>dE({server:s,state:e,cwd:n.cwd,agentDir:n.agentDir}),applySession:(s,a)=>lE({server:s,disable:a,state:e,pi:t}),applyLocal:(s,a,c)=>fE({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)=>Jk({serverName:s,state:e,pi:t,controller:a}));return}let i=QZ(r);if(!i){n.ui.notify(`Unknown /mcp subcommand. Available: ${Sm.join(", ")}.`,"warning");return}if(i==="list"){n.ui.notify(XZ(e),"info");return}else return i}}),t.registerCommand("restart-mcp",{description:"Restart all configured MCP servers",handler:async(r,n)=>{await e2(n,e,t)}})}import{logger as t2}from"@hermes/logger";var $E=t2.child({prefix:"pi-mcp"}),wm="augment:feature-flags";function r2(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 IE(t,e){e.featureFlagsListenerBound||(e.featureFlagsListenerBound=!0,t.events.on(wm,r=>{let n=r2(r);if(n===void 0){$E.warn(`${wm} payload missing a flags object or has a non-string errorStatus`);return}e.featureFlags=n,$E.debug(`Received feature-flag snapshot via ${wm} event`+(n.errorStatus?` (errorStatus=${n.errorStatus})`:""))}))}import{logger as n2}from"@hermes/logger";var Bs=n2.child({prefix:"pi-mcp"}),OE=300*1e3,bm=600*1e3;function o2(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&&(pi(o,e)||o.expiresAt>e+bm||(Bs.debug(`Background refresh: token for MCP server "${r.name}" expires within ${bm}ms; refreshing`),r.refreshTokenIfPossible().then(i=>{i.kind!=="refreshed"&&Bs.warn(`Background refresh for MCP server "${r.name}" did not complete (${i.kind})`)}).catch(()=>{Bs.warn(`Background refresh for MCP server "${r.name}" rejected unexpectedly`)})))}}function zE(t){if(t.backgroundRefreshIntervalId!==void 0||!t.shouldProactivelyRefreshTokens)return;let e=setInterval(()=>{o2(t)},OE);typeof e.unref=="function"&&e.unref(),t.backgroundRefreshIntervalId=e,Bs.debug(`Started background MCP OAuth refresh loop (interval ${OE}ms, buffer ${bm}ms)`)}function NE(t){t.backgroundRefreshIntervalId!==void 0&&(clearInterval(t.backgroundRefreshIntervalId),t.backgroundRefreshIntervalId=void 0,Bs.debug("Stopped background MCP OAuth refresh loop"))}import{logger as i2}from"@hermes/logger";var Pt=i2.child({prefix:"pi-mcp"});function s2(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 a2(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 DE(t,e){for(let r of t.servers.values())if(r.config.id===e)return!0;return!1}function LE(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 Ws(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=>uu(t,r)?[r.config]:[])}function u2(t){return t.find(e=>e.status==="failed"||e.status==="unavailable")}function d2(t,e){let r=u2(e);if(r){if(Ws(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()){s2(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 jE(t,e){try{d2(t,e)}finally{t.superseded()||t.report(t.state.currentLoad?.latestPi??t.activePi,t.state)}}function l2(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 f2(t,e){if(t.state.missingHostRemovals.has(t.configId)&&await ii(t.state,t.configId),t.superseded()){tr(t);return}if(l2(t,e)){tr(t);return}try{if(!await Er({state:t.state,config:e,pi:t.activePi})){tr(t);return}}catch(r){throw Ws(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);jE(t,r??[])}catch(r){if(Ws(t,r),r instanceof xt)throw r}}async function p2(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){LE(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 ii(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 Ws(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}LE(r,e),jE(t,s??[])}function h2(t,e){if(typeof e=="string")return mk(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 FE(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=h2(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(!na({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=ea({state:r,domain:at(s),forceNew:!0}),u=a2(r),d=r.currentLoad?.latestPi??e,l=r.registryGeneration;r.liveEditGenerations??=new Map;let f=(r.liveEditGenerations.get(s)??0)+1;r.liveEditGenerations.set(s,f);let p=()=>r.registryGeneration!==l||r.liveEditGenerations.get(s)!==f,h={state:r,configId:s,activePi:d,connect:o?.connect??Ve,report:o?.report??j,intentEpoch:c.epoch,superseded:p,sourceOwnership:()=>!p(),hasLiveHostForId:()=>DE(r,s)},m;if(a)m=f2(h,a);else{let g=r.credentials;g?m=(o?.discover??mu)({configIds:[s],creds:g,currentUserId:g.userId,workspaceRoot:r.workspaceRoot??process.cwd(),localServerNames:u}).then(w=>p2(h,w)).catch(w=>{if(!(w instanceof xt)){Ws(h,w);return}throw w}):(Pt.warn("augment:mcp-add-server received before credentials; cannot fetch registry config"),tr(h),m=Promise.resolve())}return oa({state:r,configId:s,generation:i?.attachmentGeneration,operation:m,wasApplied:()=>DE(r,s)})}import{logger as g2}from"@hermes/logger";var Au=g2.child({prefix:"pi-mcp"}),UE=3,qE=6e4,y2=1e3,v2=8e3;function Rm(t){let{pi:e,state:r,data:n,deps:o}=t,i=o?.reconnect??Jr,s=o?.now??Date.now,a=o?.sleep??dn,c=o?.report??j,u=n,d=u&&typeof u.serverName=="string"?u.serverName:"";if(!d)return Au.warn("augment:mcp-restart-server payload missing serverName"),Promise.resolve();let l=Yr({state:r,target:d});if(!l||r.targetMaterialStore?.has(l.name)||r.targetMaterialStore?.has(d))return Promise.resolve();let f=l.name,p=r.mcpConnectionEpoch,h=N(r,f),m=s(),g=r.mcpRestartState.get(f),v=g&&m-g.lastRestart<qE?g.count+1:1,w=r.currentLoad?.latestPi??e;if(v>UE)return Au.warn(`augment:mcp-restart-server: ${f} exceeded ${UE} restarts within ${qE}ms; rejecting`),c(w,r),Promise.resolve();r.mcpRestartState.set(f,{count:v,lastRestart:m});let b=Math.min(y2*2**(v-1),v2);return(v>1?a(b):Promise.resolve()).then(()=>{if(!(r.mcpConnectionEpoch!==p||N(r,f)!==h||Yr({state:r,target:d})?.server!==l.server||t.isCurrent&&!t.isCurrent()))return Au.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)}`;Au.warn(R),r.diagnostics.push({server:f,message:R})}).then(()=>{c(w,r)})}import{logger as _2}from"@hermes/logger";var Vs=_2.child({prefix:"pi-mcp"}),S2=/^\d+$/,Cm=1,HE="AUGMENT_ACTIVE_SPACE_ID",w2="augment-mcp-access-token-";function Mu(t){return t.replace(/[^a-zA-Z0-9_-]/g,"-")}function GE(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 $u=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??id}_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(w2)&&Object.hasOwn(process.env,HE)&&(r.active_space_id=process.env[HE]??""),r}getSecret(e){let r=Mu(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 ln(()=>this.upsertUserSecretOnce(e,r,n))}async upsertUserSecretOnce(e,r,n){let o=Mu(e),s=(await this._callUpsert({name:o,value:r,scope:Cm,...n===void 0?{}:{expected_version:n}})).secret?.version;if(typeof s!="string"||!S2.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),Vs.debug(`Upserted user secret "${o}"`),a}async deleteUserSecret(e){await ln(()=>this.deleteUserSecretOnce(e))}async deleteUserSecretOnce(e){let r=Mu(e);this.cache.delete(r),await this._callDelete({name:r,scope:Cm}),Vs.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=Mu(e);try{let n=await ln(()=>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===Cm||n.secret?.scope==="SECRET_SCOPE_PRIVATE";return{value:GE(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&&Vs.debug(`Secret "${e}" lookup failed; using cached fallback value`),n}this.cache.delete(e)}async _tryGet(e,r,n){try{let o=await ln(()=>this._callApi(e,r)),i=o.secret?.value;return i===void 0?{errored:!1}:{value:GE(i,o.secret?.tags),errored:!1}}catch(o){if(o instanceof ht&&o.statusCode===404)return Vs.debug(`Secret "${n}" not found via ${e} (404)`),{errored:!1};let i=o instanceof Error?o.message:String(o);return Vs.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 Pm(t){return{latestPi:t}}import{logger as b2}from"@hermes/logger";var Yo=b2.child({prefix:"pi-mcp"});async function R2(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 C2(t,e){for(let r of e??[])typeof r?.message=="string"&&(t.diagnostics.push({message:r.message,origin:"vfs"}),Yo.warn(r.message))}function P2(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"}),Yo.warn(a);return}try{let a=Vn(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"}),Yo.warn(c);return}}function x2(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=P2({state:t,name:s,stored:a,higherPriorityNames:r,blockedNames:i,workspaceRoot:n});c&&o.push(c)}return{servers:o,blockedNames:i}}function k2(t){for(let e of t.blockedVfsMcpNames){let r=t.hostLeases.get(e);if(!r||r.owner.kind==="vfs")return!1}return!0}function ZE(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 Yo.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&&k2(r))return Promise.resolve();let c=++r.vfsGeneration,u=new Set,d=R2(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;C2(r,s.diagnostics);let{servers:l,blockedNames:f}=x2(r,s);return u=f,l.length===0?(a!==void 0&&(r.lastSuccessfulVfsMcpSignature=a,r.blockedVfsMcpNames=f),!1):(Yo.info(`VFS MCP overlay: connecting ${l.length} server(s)`),i(l,r,r.currentLoad?.latestPi??e,()=>r.vfsGeneration===c).then(p=>{let h=p?.find(m=>m.status==="failed"||m.status==="unavailable");if(h)throw h.error instanceof Error?h.error:new Error(String(h.error));return l.every(m=>(p??[]).some(g=>g.config===m&&uu(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)}`;Yo.warn(f),r.vfsGeneration===c&&r.diagnostics.push({message:f,origin:"vfs"})})}var Me=E2.child({prefix:"pi-mcp"}),JE="augment:mcp-oauth-credentials",BE="augment:mcp-header-secrets",WE="augment:mcp-header-secret-failures",xm="augment:mcp-oauth-failures",VE="augment:credentials",T2="augment:mcp-config-ids",KE="augment:mcp-configs",A2="augment:mcp-vfs-servers",M2="augment:mcp-add-server",$2="augment:mcp-restart-server",I2="augment:mcp-remove-server";function O2(t){if(!t.secretsClient||t.tokens instanceof di)return;let e=t.tokens;t.tokens=new di(()=>t.secretsClient,()=>t.shouldProactivelyRefreshTokens,e.snapshot()),Me.debug("Installed durable BackendTokenStore (durable ops gated at runtime)")}function z2(t){if(!t||typeof t!="object"){Me.warn(`${JE} 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 km(t,e){let r=e.restart?.serverName;if(typeof r!="string")return!1;let n=e.credentials[r],o=Xr(n),i=Yr({state:t,target:r})?.server;if(i&&i.config.type!=="stdio"&&i.config.auth==="oauth"&&o&&YE({state:t,name:r,revision:o})&&!XE({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 N2(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=Yr({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){lk({pi:e,state:r,update:{configId:n.targetConfigId,credentials:n.credentials}});return}if(n.restart&&!km(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&&!km(r,n))return;let c=U2({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))){Rm({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)&&km(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 D2(t,e){e.credsListenerBound||(e.credsListenerBound=!0,t.events.on(JE,r=>{let n=z2(r);n&&N2({pi:t,state:e,payload:n})}))}function YE(t){let{state:e,name:r,revision:n}=t,o=on(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 XE(t){let{state:e,revision:r}=t,n=on(r);return e.pendingRegistryCredentialDomains.has(n)&&e.registryCredentialIntents.has(n)}function L2(t){let{state:e,credentials:r,suppressReconnect:n}=t,o={};for(let[i,s]of Object.entries(r)){let a=Xr(s);if(yr({store:e.tokens,serverName:i,proto:s,options:{requireRevision:!0}}).decision!=="reject"&&a!==void 0){if(XE({state:e,revision:a})){Km({state:e,revision:a,credential:s,suppressReconnect:n});continue}if(YE({state:e,name:i,revision:a})){o[i]=s;continue}Wm({state:e,serverName:i,revision:a,credential:s,suppressReconnect:n})}}return o}function j2(t){let{state:e,applicable:r,seeded:n}=t;for(let o of n){let i=r[o],s=Xr(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 F2(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"&&Jr(s,r,i).catch(()=>{}).finally(()=>{j(i,r),_e(r)})}}function U2(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=L2({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=lu(r.tokens,i,s);return j2({state:r,applicable:i,seeded:c.applied}),c.applied.length===0||(Me.info(`Seeded MCP OAuth token(s) for ${c.applied.length} server(s)`),F2({pi:e,state:r,seeded:c.applied,suppressReconnect:o})),c}function q2(t,e){e.headerSecretsListenerBound||(e.headerSecretsListenerBound=!0,t.events.on(BE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${BE} payload is not an object`);return}let n=r,o=typeof n.secrets=="object"&&n.secrets!==null&&!Array.isArray(n.secrets);$y(e,o?n.secrets:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(WE,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${WE} payload is not an object`);return}let n=r,o=typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries);Oy(e,o?n.entries:r,{authoritative:o&&n.authoritative===!0})}),t.events.on(xm,r=>{if(!r||typeof r!="object"||Array.isArray(r)){Me.warn(`${xm} payload is not an object`);return}let n=r;if(typeof n.entries!="object"||n.entries===null||Array.isArray(n.entries)){Me.warn(`${xm} entries is not an object`);return}Mm(e,n.entries)}))}function H2(t,e){e.configIdsListenerBound||(e.configIdsListenerBound=!0,t.events.on(VE,r=>{let n=r;if(!n||typeof n.apiKey!="string"||typeof n.apiUrl!="string"){Me.warn(`${VE} 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 $u(e.credentials),O2(e)}),t.events.on(T2,r=>{e.mcpAttachCloudSignaled||(e.mcpAttachCloudSignaled=!0,Gs(e.currentLoad?.latestPi??t,e)),gu({pi:t,state:e,data:r}).then(()=>{j(e.currentLoad?.latestPi??t,e)}).catch(n=>{Me.warn(`Registry config apply did not retire credentials durably: ${n instanceof Error?n.message:String(n)}`),j(e.currentLoad?.latestPi??t,e)}).finally(()=>{let n=e.currentLoad?.latestPi??t;_e(e),Go(n,e)})}))}function G2(t,e){e.mcpConfigsListenerBound||(e.mcpConfigsListenerBound=!0,t.events.on(KE,r=>{let o=r?.configs;if(o!==void 0&&!Array.isArray(o)){Me.warn(`${KE} payload configs is not an array`),e.embeddedRegistryConfigs=void 0;return}if(e.embeddedRegistryConfigs=o,o!==void 0){let i=Bo(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 Z2(t,e){e.vfsListenerBound||(e.vfsListenerBound=!0,t.events.on(A2,r=>{ZE({pi:t,state:e,data:r}).then(()=>{j(e.currentLoad?.latestPi??t,e),_e(e)})}))}function B2(t,e){e.addServerListenerBound||(e.addServerListenerBound=!0,t.events.on(M2,r=>{let n=()=>FE({pi:t,state:e,data:r});(e.targetMaterialQueue?Zs(e,n):n()).then(()=>{j(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)}`),j(e.currentLoad?.latestPi??t,e)}).finally(()=>{let o=e.currentLoad?.latestPi??t;_e(e),Go(o,e)})}))}function W2(t,e){e.restartServerListenerBound||(e.restartServerListenerBound=!0,t.events.on($2,r=>{let n=()=>Rm({pi:t,state:e,data:r});(e.targetMaterialQueue?Zs(e,n):n()).then(()=>{_e(e)})}))}function V2(t,e){e.removeServerListenerBound||(e.removeServerListenerBound=!0,t.events.on(I2,r=>{let n=()=>yu({pi:t,state:e,data:r});(e.targetMaterialQueue?Zs(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),Go(o,e)})}))}function nee(t){return My(t)}var QE=t=>{let e=ee();e.currentLoad=Pm(t),e.themeChangeUnsubscribe?.(),e.themeChangeUnsubscribe=t.events.on("theme_changed",()=>{_e(e)});let r=!1;ME(t,e),zk(t,e),D2(t,e),q2(t,e),H2(t,e),G2(t,e),Z2(t,e),B2(t,e),W2(t,e),V2(t,e),IE(t,e),fk(t,e),e.mcpAttachCloudSignaled&&Gs(t,e),t.on("session_start",(n,o)=>{e.currentLoad=Pm(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,zE(e),e.connectStarted)Jn(e)?(un(t),aa(t)):fg(t,e),_e(e);else{e.connectStarted=!0,si()&&un(t);let{servers:s,diagnostics:a}=Kn(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(()=>sk(e)).catch(()=>{}).finally(()=>{j(e.currentLoad?.latestPi??t,e),_e(e)})}r||(r=!0,t.events.emit(oE,uE(t,e)))}),t.on("session_shutdown",()=>{NE(e)})};cg(QE);var oee=QE;export{oee as default,nee as setMcpErrorReporter};
150
150
  /*! Bundled license information:
151
151
 
152
152
  content-type/index.js: