@morpho-org/cli 0.1.0 → 0.1.1

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.
Files changed (2) hide show
  1. package/dist/bundle.js +2 -2
  2. package/package.json +5 -1
package/dist/bundle.js CHANGED
@@ -64,7 +64,7 @@ ${EH(f)}`;super($.shortMessage,{cause:$,docsPath:Q,metaMessages:[...$.metaMessag
64
64
  `),{cause:$,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}};Object.defineProperty(l3,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});n3=class n3 extends I{constructor({cause:$,gas:J}={}){super(`The amount of gas ${J?`(${J}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:$,name:"IntrinsicGasTooHighError"})}};Object.defineProperty(n3,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});o3=class o3 extends I{constructor({cause:$,gas:J}={}){super(`The amount of gas ${J?`(${J}) `:""}provided for the transaction is too low.`,{cause:$,name:"IntrinsicGasTooLowError"})}};Object.defineProperty(o3,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});i3=class i3 extends I{constructor({cause:$}){super("The transaction type is not supported for this chain.",{cause:$,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(i3,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});K8=class K8 extends I{constructor({cause:$,maxPriorityFeePerGas:J,maxFeePerGas:Q}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${J?` = ${N1(J)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${Q?` = ${N1(Q)} gwei`:""}).`].join(`
65
65
  `),{cause:$,name:"TipAboveFeeCapError"})}};Object.defineProperty(K8,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});u6=class u6 extends I{constructor({cause:$}){super(`An error occurred while executing: ${$?.shortMessage}`,{cause:$,name:"UnknownNodeError"})}}});function x8($,J){let Q=($.details||"").toLowerCase(),Y=$ instanceof I?$.walk((X)=>X?.code===I8.code):$;if(Y instanceof I)return new I8({cause:$,message:Y.details});if(I8.nodeMessage.test(Q))return new I8({cause:$,message:$.details});if(d6.nodeMessage.test(Q))return new d6({cause:$,maxFeePerGas:J?.maxFeePerGas});if(d3.nodeMessage.test(Q))return new d3({cause:$,maxFeePerGas:J?.maxFeePerGas});if(u3.nodeMessage.test(Q))return new u3({cause:$,nonce:J?.nonce});if(c3.nodeMessage.test(Q))return new c3({cause:$,nonce:J?.nonce});if(p3.nodeMessage.test(Q))return new p3({cause:$,nonce:J?.nonce});if(l3.nodeMessage.test(Q))return new l3({cause:$});if(n3.nodeMessage.test(Q))return new n3({cause:$,gas:J?.gas});if(o3.nodeMessage.test(Q))return new o3({cause:$,gas:J?.gas});if(i3.nodeMessage.test(Q))return new i3({cause:$});if(K8.nodeMessage.test(Q))return new K8({cause:$,maxFeePerGas:J?.maxFeePerGas,maxPriorityFeePerGas:J?.maxPriorityFeePerGas});return new u6({cause:$})}var s3=g(()=>{f0();A8()});function qJ($,{docsPath:J,...Q}){let Y=(()=>{let X=x8($,Q);if(X instanceof u6)return $;return X})();return new k9(Y,{docsPath:J,...Q})}var LG=g(()=>{a5();A8();s3()});function b8($,{format:J}){if(!J)return{};let Q={};function Y(G){let W=Object.keys(G);for(let K of W){if(K in $)Q[K]=$[K];if(G[K]&&typeof G[K]==="object"&&!Array.isArray(G[K]))Y(G[K])}}let X=J($||{});return Y(X),Q}function V4($,J){return({exclude:Q,format:Y})=>{return{exclude:Q,format:(X,G)=>{let W=J(X,G);if(Q)for(let K of Q)delete W[K];return{...W,...Y(X,G)}},type:$}}}function V5($,J){let Q={};if(typeof $.authorizationList<"u")Q.authorizationList=LL($.authorizationList);if(typeof $.accessList<"u")Q.accessList=$.accessList;if(typeof $.blobVersionedHashes<"u")Q.blobVersionedHashes=$.blobVersionedHashes;if(typeof $.blobs<"u")if(typeof $.blobs[0]!=="string")Q.blobs=$.blobs.map((Y)=>R0(Y));else Q.blobs=$.blobs;if(typeof $.data<"u")Q.data=$.data;if($.account)Q.from=$.account.address;if(typeof $.from<"u")Q.from=$.from;if(typeof $.gas<"u")Q.gas=h($.gas);if(typeof $.gasPrice<"u")Q.gasPrice=h($.gasPrice);if(typeof $.maxFeePerBlobGas<"u")Q.maxFeePerBlobGas=h($.maxFeePerBlobGas);if(typeof $.maxFeePerGas<"u")Q.maxFeePerGas=h($.maxFeePerGas);if(typeof $.maxPriorityFeePerGas<"u")Q.maxPriorityFeePerGas=h($.maxPriorityFeePerGas);if(typeof $.nonce<"u")Q.nonce=h($.nonce);if(typeof $.to<"u")Q.to=$.to;if(typeof $.type<"u")Q.type=_L[$.type];if(typeof $.value<"u")Q.value=h($.value);return Q}function LL($){return $.map((J)=>({address:J.address,r:J.r?h(BigInt(J.r)):J.r,s:J.s?h(BigInt(J.s)):J.s,chainId:h(J.chainId),nonce:h(J.nonce),...typeof J.yParity<"u"?{yParity:h(J.yParity)}:{},...typeof J.v<"u"&&typeof J.yParity>"u"?{v:h(J.v)}:{}}))}var _L;var O4=g(()=>{G0();_L={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});function UJ(){let $=()=>{return},J=()=>{return};return{promise:new Promise((Y,X)=>{$=Y,J=X}),resolve:$,reject:J}}function NJ({fn:$,id:J,shouldSplitBatch:Q,wait:Y=0,sort:X}){let G=async()=>{let N=q();W();let H=N.map(({args:f})=>f);if(H.length===0)return;$(H).then((f)=>{if(X&&Array.isArray(f))f.sort(X);for(let Z=0;Z<N.length;Z++){let{resolve:M}=N[Z];M?.([f[Z],f])}}).catch((f)=>{for(let Z=0;Z<N.length;Z++){let{reject:M}=N[Z];M?.(f)}})},W=()=>FG.delete(J),K=()=>q().map(({args:N})=>N),q=()=>FG.get(J)||[],U=(N)=>FG.set(J,[...q(),N]);return{flush:W,async schedule(N){let{promise:H,resolve:f,reject:Z}=UJ();if(Q?.([...K(),N]))G();if(q().length>0)return U({args:N,resolve:f,reject:Z}),H;return U({args:N,resolve:f,reject:Z}),setTimeout(G,Y),H}}}var FG;var SG=g(()=>{FG=new Map});function Kf($){if(!$||$.length===0)return;return $.reduce((J,{slot:Q,value:Y})=>{if(Q.length!==66)throw new z$({size:Q.length,targetSize:66,type:"hex"});if(Y.length!==66)throw new z$({size:Y.length,targetSize:66,type:"hex"});return J[Q]=Y,J},{})}function FL($){let{balance:J,nonce:Q,state:Y,stateDiff:X,code:G}=$,W={};if(G!==void 0)W.code=G;if(J!==void 0)W.balance=h(J);if(Q!==void 0)W.nonce=h(Q);if(Y!==void 0)W.state=Kf(Y);if(X!==void 0){if(W.state)throw new uX;W.stateDiff=Kf(X)}return W}function D4($){if(!$)return;let J={};for(let{address:Q,...Y}of $){if(!T0(Q,{strict:!1}))throw new g0({address:Q});if(J[Q])throw new dX({address:Q});J[Q]=FL(Y)}return J}var HJ=g(()=>{W5();V$();cX();f6();G0()});var SL,jL,CL,PL,TL,IL,AL,xL,bL,kL,yL,vL,hL,gL,mL,dL,uL,cL,pL,lL,nL,oL,iL,sL,rL,tL,aL,eL,$F,JF,QF,YF,XF,GF,WF,KF,qF,UF,NF,HF,fF,ZF,MF,zF,VF,OF,DF,wF,EF,RF,BF,_F,LF,FF,SF,jF,CF,PF,TF,IF,AF,xF,bF,kF,yF,vF,hF,gF,mF,dF,uF,cF,pF,lF,nF,w4,oF,iF,sF,rF,tF,aF,eF,$S,JS,QS,YS,XS,GS,WS,KS,qS,US,NS,HS,e0;var fJ=g(()=>{SL=2n**(8n-1n)-1n,jL=2n**(16n-1n)-1n,CL=2n**(24n-1n)-1n,PL=2n**(32n-1n)-1n,TL=2n**(40n-1n)-1n,IL=2n**(48n-1n)-1n,AL=2n**(56n-1n)-1n,xL=2n**(64n-1n)-1n,bL=2n**(72n-1n)-1n,kL=2n**(80n-1n)-1n,yL=2n**(88n-1n)-1n,vL=2n**(96n-1n)-1n,hL=2n**(104n-1n)-1n,gL=2n**(112n-1n)-1n,mL=2n**(120n-1n)-1n,dL=2n**(128n-1n)-1n,uL=2n**(136n-1n)-1n,cL=2n**(144n-1n)-1n,pL=2n**(152n-1n)-1n,lL=2n**(160n-1n)-1n,nL=2n**(168n-1n)-1n,oL=2n**(176n-1n)-1n,iL=2n**(184n-1n)-1n,sL=2n**(192n-1n)-1n,rL=2n**(200n-1n)-1n,tL=2n**(208n-1n)-1n,aL=2n**(216n-1n)-1n,eL=2n**(224n-1n)-1n,$F=2n**(232n-1n)-1n,JF=2n**(240n-1n)-1n,QF=2n**(248n-1n)-1n,YF=2n**(256n-1n)-1n,XF=-(2n**(8n-1n)),GF=-(2n**(16n-1n)),WF=-(2n**(24n-1n)),KF=-(2n**(32n-1n)),qF=-(2n**(40n-1n)),UF=-(2n**(48n-1n)),NF=-(2n**(56n-1n)),HF=-(2n**(64n-1n)),fF=-(2n**(72n-1n)),ZF=-(2n**(80n-1n)),MF=-(2n**(88n-1n)),zF=-(2n**(96n-1n)),VF=-(2n**(104n-1n)),OF=-(2n**(112n-1n)),DF=-(2n**(120n-1n)),wF=-(2n**(128n-1n)),EF=-(2n**(136n-1n)),RF=-(2n**(144n-1n)),BF=-(2n**(152n-1n)),_F=-(2n**(160n-1n)),LF=-(2n**(168n-1n)),FF=-(2n**(176n-1n)),SF=-(2n**(184n-1n)),jF=-(2n**(192n-1n)),CF=-(2n**(200n-1n)),PF=-(2n**(208n-1n)),TF=-(2n**(216n-1n)),IF=-(2n**(224n-1n)),AF=-(2n**(232n-1n)),xF=-(2n**(240n-1n)),bF=-(2n**(248n-1n)),kF=-(2n**(256n-1n)),yF=2n**8n-1n,vF=2n**16n-1n,hF=2n**24n-1n,gF=2n**32n-1n,mF=2n**40n-1n,dF=2n**48n-1n,uF=2n**56n-1n,cF=2n**64n-1n,pF=2n**72n-1n,lF=2n**80n-1n,nF=2n**88n-1n,w4=2n**96n-1n,oF=2n**104n-1n,iF=2n**112n-1n,sF=2n**120n-1n,rF=2n**128n-1n,tF=2n**136n-1n,aF=2n**144n-1n,eF=2n**152n-1n,$S=2n**160n-1n,JS=2n**168n-1n,QS=2n**176n-1n,YS=2n**184n-1n,XS=2n**192n-1n,GS=2n**200n-1n,WS=2n**208n-1n,KS=2n**216n-1n,qS=2n**224n-1n,US=2n**232n-1n,NS=2n**240n-1n,HS=2n**248n-1n,e0=2n**256n-1n});function V6($){let{account:J,maxFeePerGas:Q,maxPriorityFeePerGas:Y,to:X}=$,G=J?h0(J):void 0;if(G&&!T0(G.address))throw new g0({address:G.address});if(X&&!T0(X))throw new g0({address:X});if(Q&&Q>e0)throw new d6({maxFeePerGas:Q});if(Y&&Q&&Y>Q)throw new K8({maxFeePerGas:Q,maxPriorityFeePerGas:Y})}var I2=g(()=>{fJ();W5();A8();f6()});var jG,CG,PG;var qf=g(()=>{f0();jG=class jG extends I{constructor({callbackSelector:$,cause:J,data:Q,extraData:Y,sender:X,urls:G}){super(J.shortMessage||"An error occurred while fetching for an offchain result.",{cause:J,metaMessages:[...J.metaMessages||[],J.metaMessages?.length?"":[],"Offchain Gateway Call:",G&&[" Gateway URL(s):",...G.map((W)=>` ${_2(W)}`)],` Sender: ${X}`,` Data: ${Q}`,` Callback selector: ${$}`,` Extra data: ${Y}`].flat(),name:"OffchainLookupError"})}};CG=class CG extends I{constructor({result:$,url:J}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${_2(J)}`,`Response: ${L0($)}`],name:"OffchainLookupResponseMalformedError"})}};PG=class PG extends I{constructor({sender:$,to:J}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${J}`,`OffchainLookup sender address: ${$}`],name:"OffchainLookupSenderMismatchError"})}}});function O5($,J){if(!T0($,{strict:!1}))throw new g0({address:$});if(!T0(J,{strict:!1}))throw new g0({address:J});return $.toLowerCase()===J.toLowerCase()}var E4=g(()=>{W5();f6()});var Hf={};W3(Hf,{offchainLookupSignature:()=>fS,offchainLookupAbiItem:()=>Uf,offchainLookup:()=>ZS,ccipRequest:()=>Nf});async function ZS($,{blockNumber:J,blockTag:Q,data:Y,to:X}){let{args:G}=n$({data:Y,abi:[Uf]}),[W,K,q,U,N]=G,{ccipRead:H}=$,f=H&&typeof H?.request==="function"?H.request:Nf;try{if(!O5(X,W))throw new PG({sender:W,to:X});let Z=K.includes(e5)?await eX({data:q,ccipRequest:f}):await f({data:q,sender:W,urls:K}),{data:M}=await O6($,{blockNumber:J,blockTag:Q,data:j1([U,y0([{type:"bytes"},{type:"bytes"}],[Z,N])]),to:X});return M}catch(Z){throw new jG({callbackSelector:U,cause:Z,data:Y,extraData:N,sender:W,urls:K})}}async function Nf({data:$,sender:J,urls:Q}){let Y=Error("An unknown error occurred.");for(let X=0;X<Q.length;X++){let G=Q[X],W=G.includes("{data}")?"GET":"POST",K=W==="POST"?{data:$,sender:J}:void 0,q=W==="POST"?{"Content-Type":"application/json"}:{};try{let U=await fetch(G.replace("{sender}",J.toLowerCase()).replace("{data}",$),{body:JSON.stringify(K),headers:q,method:W}),N;if(U.headers.get("Content-Type")?.startsWith("application/json"))N=(await U.json()).data;else N=await U.text();if(!U.ok){Y=new g6({body:K,details:N?.error?L0(N.error):U.statusText,headers:U.headers,status:U.status,url:G});continue}if(!c0(N)){Y=new CG({result:N,url:G});continue}return N}catch(U){Y=new g6({body:K,details:U.message,url:G})}}throw Y}var fS="0x556f1830",Uf;var ff=g(()=>{A2();qf();F2();gX();U5();E4();x3();Uf={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function O6($,J){let{account:Q=$.account,authorizationList:Y,batch:X=Boolean($.batch?.multicall),blockNumber:G,blockTag:W=$.experimental_blockTag??"latest",accessList:K,blobs:q,blockOverrides:U,code:N,data:H,factory:f,factoryData:Z,gas:M,gasPrice:D,maxFeePerBlobGas:R,maxFeePerGas:O,maxPriorityFeePerGas:E,nonce:V,to:w,value:B,stateOverride:j,...T}=J,x=Q?h0(Q):void 0;if(N&&(f||Z))throw new I("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(N&&w)throw new I("Cannot provide both `code` & `to` as parameters.");let C=N&&H,S=f&&Z&&w&&H,v=C||S,F=(()=>{if(C)return Zf({code:N,data:H});if(S)return VS({data:H,factory:f,factoryData:Z,to:w});return H})();try{V6(J);let k=(typeof G==="bigint"?h(G):void 0)||W,P=U?WJ(U):void 0,m=D4(j),n=$.chain?.formatters?.transactionRequest?.format,o=(n||V5)({...b8(T,{format:n}),accessList:K,account:x,authorizationList:Y,blobs:q,data:F,gas:M,gasPrice:D,maxFeePerBlobGas:R,maxFeePerGas:O,maxPriorityFeePerGas:E,nonce:V,to:v?void 0:w,value:B},"call");if(X&&MS({request:o})&&!m&&!P)try{return await zS($,{...o,blockNumber:G,blockTag:W})}catch(I0){if(!(I0 instanceof u$)&&!(I0 instanceof A9))throw I0}let Q0=(()=>{let I0=[o,k];if(m&&P)return[...I0,m,P];if(m)return[...I0,m];if(P)return[...I0,{},P];return I0})(),t0=await $.request({method:"eth_call",params:Q0});if(t0==="0x")return{data:void 0};return{data:t0}}catch(A){let k=OS(A),{offchainLookup:P,offchainLookupSignature:m}=await Promise.resolve().then(() => (ff(),Hf));if($.ccipRead!==!1&&k?.slice(0,10)===m&&w)return{data:await P($,{data:k,to:w})};if(v&&k?.slice(0,10)==="0x101bb98d")throw new r$({factory:f});throw qJ(A,{...J,account:x,chain:$.chain})}}function MS({request:$}){let{data:J,to:Q,...Y}=$;if(!J)return!1;if(J.startsWith(Xf))return!1;if(!Q)return!1;if(Object.values(Y).filter((X)=>typeof X<"u").length>0)return!1;return!0}async function zS($,J){let{batchSize:Q=1024,deployless:Y=!1,wait:X=0}=typeof $.batch?.multicall==="object"?$.batch.multicall:{},{blockNumber:G,blockTag:W=$.experimental_blockTag??"latest",data:K,to:q}=J,U=(()=>{if(Y)return null;if(J.multicallAddress)return J.multicallAddress;if($.chain)return Z6({blockNumber:G,chain:$.chain,contract:"multicall3"});throw new u$})(),H=(typeof G==="bigint"?h(G):void 0)||W,{schedule:f}=NJ({id:`${$.uid}.${H}`,wait:X,shouldSplitBatch(D){return D.reduce((O,{data:E})=>O+(E.length-2),0)>Q*2},fn:async(D)=>{let R=D.map((V)=>({allowFailure:!0,callData:V.data,target:V.to})),O=r({abi:A6,args:[R],functionName:"aggregate3"}),E=await $.request({method:"eth_call",params:[{...U===null?{data:Zf({code:z4,data:O})}:{to:U,data:O}},H]});return x1({abi:A6,args:[R],functionName:"aggregate3",data:E||"0x"})}}),[{returnData:Z,success:M}]=await f({data:K,to:q});if(!M)throw new f5({data:Z});if(Z==="0x")return{data:void 0};return{data:Z}}function Zf($){let{code:J,data:Q}=$;return m3({abi:h$(["constructor(bytes, bytes)"]),bytecode:KJ,args:[J,Q]})}function VS($){let{data:J,factory:Q,factoryData:Y,to:X}=$;return m3({abi:h$(["constructor(address, bytes, address, bytes)"]),bytecode:Gf,args:[X,J,Q,Y]})}function OS($){if(!($ instanceof I))return;let J=$.walk();return typeof J?.data==="object"?J.data?.data:J.data}var A2=g(()=>{C3();RG();X5();f0();c$();a5();r5();_G();G6();R2();G0();LG();O4();SG();HJ();I2()});function LS($,J,Q,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(J,Q,Y);let X=BigInt(32),G=BigInt(4294967295),W=Number(Q>>X&G),K=Number(Q&G),q=Y?4:0,U=Y?0:4;$.setUint32(J+q,W,Y),$.setUint32(J+U,K,Y)}function jf($,J,Q){return $&J^~$&Q}function Cf($,J,Q){return $&J^$&Q^J&Q}var kG,q8;var Pf=g(()=>{p5();kG=class kG extends V2{constructor($,J,Q,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=$,this.outputLen=J,this.padOffset=Q,this.isLE=Y,this.buffer=new Uint8Array($),this.view=B$(this.buffer)}update($){c5(this),$=z2($),k6($);let{view:J,buffer:Q,blockLen:Y}=this,X=$.length;for(let G=0;G<X;){let W=Math.min(Y-this.pos,X-G);if(W===Y){let K=B$($);for(;Y<=X-G;G+=Y)this.process(K,G);continue}if(Q.set($.subarray(G,G+W),this.pos),this.pos+=W,G+=W,this.pos===Y)this.process(J,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){c5(this),R$($,this),this.finished=!0;let{buffer:J,view:Q,blockLen:Y,isLE:X}=this,{pos:G}=this;if(J[G++]=128,K5(this.buffer.subarray(G)),this.padOffset>Y-G)this.process(Q,0),G=0;for(let N=G;N<Y;N++)J[N]=0;LS(Q,Y-8,BigInt(this.length*8),X),this.process(Q,0);let W=B$($),K=this.outputLen;if(K%4)throw Error("_sha2: outputLen should be aligned to 32bit");let q=K/4,U=this.get();if(q>U.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<q;N++)W.setUint32(4*N,U[N],X)}digest(){let{buffer:$,outputLen:J}=this;this.digestInto($);let Q=$.slice(0,J);return this.destroy(),Q}_cloneInto($){$||($=new this.constructor),$.set(...this.get());let{blockLen:J,buffer:Q,length:Y,finished:X,destroyed:G,pos:W}=this;if($.destroyed=G,$.finished=X,$.length=Y,$.pos=W,Y%J)$.buffer.set(Q);return $}clone(){return this._cloneInto()}};q8=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225])});var FS,y8,yG,b2;var vG=g(()=>{Pf();p5();FS=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),y8=new Uint32Array(64);yG=class yG extends kG{constructor($=32){super(64,$,8,!1);this.A=q8[0]|0,this.B=q8[1]|0,this.C=q8[2]|0,this.D=q8[3]|0,this.E=q8[4]|0,this.F=q8[5]|0,this.G=q8[6]|0,this.H=q8[7]|0}get(){let{A:$,B:J,C:Q,D:Y,E:X,F:G,G:W,H:K}=this;return[$,J,Q,Y,X,G,W,K]}set($,J,Q,Y,X,G,W,K){this.A=$|0,this.B=J|0,this.C=Q|0,this.D=Y|0,this.E=X|0,this.F=G|0,this.G=W|0,this.H=K|0}process($,J){for(let N=0;N<16;N++,J+=4)y8[N]=$.getUint32(J,!1);for(let N=16;N<64;N++){let H=y8[N-15],f=y8[N-2],Z=y6(H,7)^y6(H,18)^H>>>3,M=y6(f,17)^y6(f,19)^f>>>10;y8[N]=M+y8[N-7]+Z+y8[N-16]|0}let{A:Q,B:Y,C:X,D:G,E:W,F:K,G:q,H:U}=this;for(let N=0;N<64;N++){let H=y6(W,6)^y6(W,11)^y6(W,25),f=U+H+jf(W,K,q)+FS[N]+y8[N]|0,M=(y6(Q,2)^y6(Q,13)^y6(Q,22))+Cf(Q,Y,X)|0;U=q,q=K,K=W,W=G+f|0,G=X,X=Y,Y=Q,Q=f+M|0}Q=Q+this.A|0,Y=Y+this.B|0,X=X+this.C|0,G=G+this.D|0,W=W+this.E|0,K=K+this.F|0,q=q+this.G|0,U=U+this.H|0,this.set(Q,Y,X,G,W,K,q,U)}roundClean(){K5(y8)}destroy(){this.set(0,0,0,0,0,0,0,0),K5(this.buffer)}};b2=_$(()=>new yG)});var hG,gG=($,J,Q)=>new hG($,J).update(Q).digest();var Tf=g(()=>{p5();hG=class hG extends V2{constructor($,J){super();this.finished=!1,this.destroyed=!1,WN($);let Q=z2(J);if(this.iHash=$.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,X=new Uint8Array(Y);X.set(Q.length>Y?$.create().update(Q).digest():Q);for(let G=0;G<X.length;G++)X[G]^=54;this.iHash.update(X),this.oHash=$.create();for(let G=0;G<X.length;G++)X[G]^=106;this.oHash.update(X),K5(X)}update($){return c5(this),this.iHash.update($),this}digestInto($){c5(this),k6($,this.outputLen),this.finished=!0,this.iHash.digestInto($),this.oHash.update($),this.oHash.digestInto($),this.destroy()}digest(){let $=new Uint8Array(this.oHash.outputLen);return this.digestInto($),$}_cloneInto($){$||($=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:Q,finished:Y,destroyed:X,blockLen:G,outputLen:W}=this;return $=$,$.finished=Y,$.destroyed=X,$.blockLen=G,$.outputLen=W,$.oHash=J._cloneInto($.oHash),$.iHash=Q._cloneInto($.iHash),$}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};gG.create=($,J)=>new hG($,J)});function Y1($,J){let Q=$%J;return Q>=u1?Q:J+Q}function K6($,J,Q){let Y=$;while(J-- >u1)Y*=Y,Y%=Q;return Y}function wJ($,J){if($===u1)throw Error("invert: expected non-zero number");if(J<=u1)throw Error("invert: expected positive modulus, got "+J);let Q=Y1($,J),Y=J,X=u1,G=b1,W=b1,K=u1;while(Q!==u1){let U=Y/Q,N=Y%Q,H=X-W*U,f=G-K*U;Y=Q,Q=N,X=W,G=K,W=H,K=f}if(Y!==b1)throw Error("invert: does not exist");return Y1(X,J)}function kf($,J){let Q=($.ORDER+b1)/Af,Y=$.pow(J,Q);if(!$.eql($.sqr(Y),J))throw Error("Cannot find square root");return Y}function jS($,J){let Q=($.ORDER-xf)/bf,Y=$.mul(J,k2),X=$.pow(Y,Q),G=$.mul(J,X),W=$.mul($.mul(G,k2),X),K=$.mul(G,$.sub(W,$.ONE));if(!$.eql($.sqr(K),J))throw Error("Cannot find square root");return K}function CS($){if($<BigInt(3))throw Error("sqrt is not defined for small field");let J=$-b1,Q=0;while(J%k2===u1)J/=k2,Q++;let Y=k2,X=t3($);while(If(X,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return kf;let G=X.pow(Y,J),W=(J+b1)/k2;return function(q,U){if(q.is0(U))return U;if(If(q,U)!==1)throw Error("Cannot find square root");let N=Q,H=q.mul(q.ONE,G),f=q.pow(U,J),Z=q.pow(U,W);while(!q.eql(f,q.ONE)){if(q.is0(f))return q.ZERO;let M=1,D=q.sqr(f);while(!q.eql(D,q.ONE))if(M++,D=q.sqr(D),M===N)throw Error("Cannot find square root");let R=b1<<BigInt(N-M-1),O=q.pow(H,R);N=M,H=q.sqr(O),f=q.mul(f,H),Z=q.mul(Z,O)}return Z}}function PS($){if($%Af===SS)return kf;if($%bf===xf)return jS;return CS($)}function EJ($){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=TS.reduce((Y,X)=>{return Y[X]="function",Y},J);return X8($,Q)}function IS($,J,Q){if(Q<u1)throw Error("invalid exponent, negatives unsupported");if(Q===u1)return $.ONE;if(Q===b1)return J;let Y=$.ONE,X=J;while(Q>u1){if(Q&b1)Y=$.mul(Y,X);X=$.sqr(X),Q>>=b1}return Y}function R4($,J,Q=!1){let Y=Array(J.length).fill(Q?$.ZERO:void 0),X=J.reduce((W,K,q)=>{if($.is0(K))return W;return Y[q]=W,$.mul(W,K)},$.ONE),G=$.inv(X);return J.reduceRight((W,K,q)=>{if($.is0(K))return W;return Y[q]=$.mul(W,Y[q]),$.mul(W,K)},G),Y}function If($,J){let Q=($.ORDER-b1)/k2,Y=$.pow(J,Q),X=$.eql(Y,$.ONE),G=$.eql(Y,$.ZERO),W=$.eql(Y,$.neg($.ONE));if(!X&&!G&&!W)throw Error("invalid Legendre symbol result");return X?1:G?0:-1}function mG($,J){if(J!==void 0)M2(J);let Q=J!==void 0?J:$.toString(2).length,Y=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:Y}}function t3($,J,Q=!1,Y={}){if($<=u1)throw Error("invalid field: expected ORDER > 0, got "+$);let{nBitLength:X,nByteLength:G}=mG($,J);if(G>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let W,K=Object.freeze({ORDER:$,isLE:Q,BITS:X,BYTES:G,MASK:P2(X),ZERO:u1,ONE:b1,create:(q)=>Y1(q,$),isValid:(q)=>{if(typeof q!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof q);return u1<=q&&q<$},is0:(q)=>q===u1,isOdd:(q)=>(q&b1)===b1,neg:(q)=>Y1(-q,$),eql:(q,U)=>q===U,sqr:(q)=>Y1(q*q,$),add:(q,U)=>Y1(q+U,$),sub:(q,U)=>Y1(q-U,$),mul:(q,U)=>Y1(q*U,$),pow:(q,U)=>IS(K,q,U),div:(q,U)=>Y1(q*wJ(U,$),$),sqrN:(q)=>q*q,addN:(q,U)=>q+U,subN:(q,U)=>q-U,mulN:(q,U)=>q*U,inv:(q)=>wJ(q,$),sqrt:Y.sqrt||((q)=>{if(!W)W=PS($);return W(K,q)}),toBytes:(q)=>Q?WG(q,G):Z5(q,G),fromBytes:(q)=>{if(q.length!==G)throw Error("Field.fromBytes: expected "+G+" bytes, got "+q.length);return Q?GG(q):t1(q)},invertBatch:(q)=>R4(K,q),cmov:(q,U,N)=>N?U:q});return Object.freeze(K)}function yf($){if(typeof $!=="bigint")throw Error("field order must be bigint");let J=$.toString(2).length;return Math.ceil(J/8)}function dG($){let J=yf($);return J+Math.ceil(J/2)}function vf($,J,Q=!1){let Y=$.length,X=yf(J),G=dG(J);if(Y<16||Y<G||Y>1024)throw Error("expected "+G+"-1024 bytes of input, got "+Y);let W=Q?GG($):t1($),K=Y1(W,J-b1)+b1;return Q?WG(K,X):Z5(K,X)}var u1,b1,k2,SS,Af,xf,bf,TS;var a3=g(()=>{p5();U4();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */u1=BigInt(0),b1=BigInt(1),k2=BigInt(2),SS=BigInt(3),Af=BigInt(4),xf=BigInt(5),bf=BigInt(8);TS=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function uG($,J){let Q=J.negate();return $?Q:J}function mf($,J){if(!Number.isSafeInteger($)||$<=0||$>J)throw Error("invalid window size, expected [1.."+J+"], got W="+$)}function cG($,J){mf($,J);let Q=Math.ceil(J/$)+1,Y=2**($-1),X=2**$,G=P2($),W=BigInt($);return{windows:Q,windowSize:Y,mask:G,maxNumber:X,shiftBy:W}}function gf($,J,Q){let{windowSize:Y,mask:X,maxNumber:G,shiftBy:W}=Q,K=Number($&X),q=$>>W;if(K>Y)K-=G,q+=nG;let U=J*Y,N=U+Math.abs(K)-1,H=K===0,f=K<0,Z=J%2!==0;return{nextN:q,offset:N,isZero:H,isNeg:f,isNegF:Z,offsetF:U}}function AS($,J){if(!Array.isArray($))throw Error("array expected");$.forEach((Q,Y)=>{if(!(Q instanceof J))throw Error("invalid point at index "+Y)})}function xS($,J){if(!Array.isArray($))throw Error("array of scalars expected");$.forEach((Q,Y)=>{if(!J.isValid(Q))throw Error("invalid scalar at index "+Y)})}function lG($){return df.get($)||1}function uf($,J){return{constTimeNegate:uG,hasPrecomputes(Q){return lG(Q)!==1},unsafeLadder(Q,Y,X=$.ZERO){let G=Q;while(Y>hf){if(Y&nG)X=X.add(G);G=G.double(),Y>>=nG}return X},precomputeWindow(Q,Y){let{windows:X,windowSize:G}=cG(Y,J),W=[],K=Q,q=K;for(let U=0;U<X;U++){q=K,W.push(q);for(let N=1;N<G;N++)q=q.add(K),W.push(q);K=q.double()}return W},wNAF(Q,Y,X){let{ZERO:G,BASE:W}=$,K=cG(Q,J);for(let q=0;q<K.windows;q++){let{nextN:U,offset:N,isZero:H,isNeg:f,isNegF:Z,offsetF:M}=gf(X,q,K);if(X=U,H)W=W.add(uG(Z,Y[M]));else G=G.add(uG(f,Y[N]))}return{p:G,f:W}},wNAFUnsafe(Q,Y,X,G=$.ZERO){let W=cG(Q,J);for(let K=0;K<W.windows;K++){if(X===hf)break;let{nextN:q,offset:U,isZero:N,isNeg:H}=gf(X,K,W);if(X=q,N)continue;else{let f=Y[U];G=G.add(H?f.negate():f)}}return G},getPrecomputes(Q,Y,X){let G=pG.get(Y);if(!G){if(G=this.precomputeWindow(Y,Q),Q!==1)pG.set(Y,X(G))}return G},wNAFCached(Q,Y,X){let G=lG(Q);return this.wNAF(G,this.getPrecomputes(G,Q,X),Y)},wNAFCachedUnsafe(Q,Y,X,G){let W=lG(Q);if(W===1)return this.unsafeLadder(Q,Y,G);return this.wNAFUnsafe(W,this.getPrecomputes(W,Q,X),Y,G)},setWindowSize(Q,Y){mf(Y,J),df.set(Q,Y),pG.delete(Q)}}}function cf($,J,Q,Y){AS(Q,$),xS(Y,J);let X=Q.length,G=Y.length;if(X!==G)throw Error("arrays of points and scalars must have equal length");let W=$.ZERO,K=xH(BigInt(X)),q=1;if(K>12)q=K-3;else if(K>4)q=K-2;else if(K>0)q=2;let U=P2(q),N=Array(Number(U)+1).fill(W),H=Math.floor((J.BITS-1)/q)*q,f=W;for(let Z=H;Z>=0;Z-=q){N.fill(W);for(let D=0;D<G;D++){let R=Y[D],O=Number(R>>BigInt(Z)&U);N[O]=N[O].add(Q[D])}let M=W;for(let D=N.length-1,R=W;D>0;D--)R=R.add(N[D]),M=M.add(R);if(f=f.add(M),Z!==0)for(let D=0;D<q;D++)f=f.double()}return f}function oG($){return EJ($.Fp),X8($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...mG($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}var hf,nG,pG,df;var pf=g(()=>{a3();U4();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */hf=BigInt(0),nG=BigInt(1);pG=new WeakMap,df=new WeakMap});function lf($){if($.lowS!==void 0)K4("lowS",$.lowS);if($.prehash!==void 0)K4("prehash",$.prehash)}function bS($){let J=oG($);X8(J,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:Q,Fp:Y,a:X}=J;if(Q){if(!Y.eql(X,Y.ZERO))throw Error("invalid endo: CURVE.a must be 0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...J})}function iG($,J){return q4(Z5($,J))}function kS($){let J=bS($),{Fp:Q}=J,Y=t3(J.n,J.nBitLength),X=J.toBytes||((V,w,B)=>{let j=w.toAffine();return d1(Uint8Array.from([4]),Q.toBytes(j.x),Q.toBytes(j.y))}),G=J.fromBytes||((V)=>{let w=V.subarray(1),B=Q.fromBytes(w.subarray(0,Q.BYTES)),j=Q.fromBytes(w.subarray(Q.BYTES,2*Q.BYTES));return{x:B,y:j}});function W(V){let{a:w,b:B}=J,j=Q.sqr(V),T=Q.mul(j,V);return Q.add(Q.add(T,Q.mul(V,w)),B)}function K(V,w){let B=Q.sqr(w),j=W(V);return Q.eql(B,j)}if(!K(J.Gx,J.Gy))throw Error("bad curve params: generator point");let q=Q.mul(Q.pow(J.a,e3),sG),U=Q.mul(Q.sqr(J.b),BigInt(27));if(Q.is0(Q.add(q,U)))throw Error("bad curve params: a or b");function N(V){return C2(V,A0,J.n)}function H(V){let{allowedPrivateKeyLengths:w,nByteLength:B,wrapPrivateKey:j,n:T}=J;if(w&&typeof V!=="bigint"){if(W4(V))V=q4(V);if(typeof V!=="string"||!w.includes(V.length))throw Error("invalid private key");V=V.padStart(B*2,"0")}let x;try{x=typeof V==="bigint"?V:t1(G1("private key",V,B))}catch(C){throw Error("invalid private key, expected hex or "+B+" bytes, got "+typeof V)}if(j)x=Y1(x,T);return Y8("private key",x,A0,T),x}function f(V){if(!(V instanceof D))throw Error("ProjectivePoint expected")}let Z=KG((V,w)=>{let{px:B,py:j,pz:T}=V;if(Q.eql(T,Q.ONE))return{x:B,y:j};let x=V.is0();if(w==null)w=x?Q.ONE:Q.inv(T);let C=Q.mul(B,w),S=Q.mul(j,w),v=Q.mul(T,w);if(x)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(v,Q.ONE))throw Error("invZ was invalid");return{x:C,y:S}}),M=KG((V)=>{if(V.is0()){if(J.allowInfinityPoint&&!Q.is0(V.py))return;throw Error("bad point: ZERO")}let{x:w,y:B}=V.toAffine();if(!Q.isValid(w)||!Q.isValid(B))throw Error("bad point: x or y not FE");if(!K(w,B))throw Error("bad point: equation left != right");if(!V.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class D{constructor(V,w,B){if(V==null||!Q.isValid(V))throw Error("x required");if(w==null||!Q.isValid(w)||Q.is0(w))throw Error("y required");if(B==null||!Q.isValid(B))throw Error("z required");this.px=V,this.py=w,this.pz=B,Object.freeze(this)}static fromAffine(V){let{x:w,y:B}=V||{};if(!V||!Q.isValid(w)||!Q.isValid(B))throw Error("invalid affine point");if(V instanceof D)throw Error("projective point not allowed");let j=(T)=>Q.eql(T,Q.ZERO);if(j(w)&&j(B))return D.ZERO;return new D(w,B,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(V){let w=R4(Q,V.map((B)=>B.pz));return V.map((B,j)=>B.toAffine(w[j])).map(D.fromAffine)}static fromHex(V){let w=D.fromAffine(G(G1("pointHex",V)));return w.assertValidity(),w}static fromPrivateKey(V){return D.BASE.multiply(H(V))}static msm(V,w){return cf(D,Y,V,w)}_setWindowSize(V){E.setWindowSize(this,V)}assertValidity(){M(this)}hasEvenY(){let{y:V}=this.toAffine();if(Q.isOdd)return!Q.isOdd(V);throw Error("Field doesn't support isOdd")}equals(V){f(V);let{px:w,py:B,pz:j}=this,{px:T,py:x,pz:C}=V,S=Q.eql(Q.mul(w,C),Q.mul(T,j)),v=Q.eql(Q.mul(B,C),Q.mul(x,j));return S&&v}negate(){return new D(this.px,Q.neg(this.py),this.pz)}double(){let{a:V,b:w}=J,B=Q.mul(w,e3),{px:j,py:T,pz:x}=this,C=Q.ZERO,S=Q.ZERO,v=Q.ZERO,F=Q.mul(j,j),A=Q.mul(T,T),k=Q.mul(x,x),P=Q.mul(j,T);return P=Q.add(P,P),v=Q.mul(j,x),v=Q.add(v,v),C=Q.mul(V,v),S=Q.mul(B,k),S=Q.add(C,S),C=Q.sub(A,S),S=Q.add(A,S),S=Q.mul(C,S),C=Q.mul(P,C),v=Q.mul(B,v),k=Q.mul(V,k),P=Q.sub(F,k),P=Q.mul(V,P),P=Q.add(P,v),v=Q.add(F,F),F=Q.add(v,F),F=Q.add(F,k),F=Q.mul(F,P),S=Q.add(S,F),k=Q.mul(T,x),k=Q.add(k,k),F=Q.mul(k,P),C=Q.sub(C,F),v=Q.mul(k,A),v=Q.add(v,v),v=Q.add(v,v),new D(C,S,v)}add(V){f(V);let{px:w,py:B,pz:j}=this,{px:T,py:x,pz:C}=V,S=Q.ZERO,v=Q.ZERO,F=Q.ZERO,A=J.a,k=Q.mul(J.b,e3),P=Q.mul(w,T),m=Q.mul(B,x),n=Q.mul(j,C),u=Q.add(w,B),o=Q.add(T,x);u=Q.mul(u,o),o=Q.add(P,m),u=Q.sub(u,o),o=Q.add(w,j);let Q0=Q.add(T,C);return o=Q.mul(o,Q0),Q0=Q.add(P,n),o=Q.sub(o,Q0),Q0=Q.add(B,j),S=Q.add(x,C),Q0=Q.mul(Q0,S),S=Q.add(m,n),Q0=Q.sub(Q0,S),F=Q.mul(A,o),S=Q.mul(k,n),F=Q.add(S,F),S=Q.sub(m,F),F=Q.add(m,F),v=Q.mul(S,F),m=Q.add(P,P),m=Q.add(m,P),n=Q.mul(A,n),o=Q.mul(k,o),m=Q.add(m,n),n=Q.sub(P,n),n=Q.mul(A,n),o=Q.add(o,n),P=Q.mul(m,o),v=Q.add(v,P),P=Q.mul(Q0,o),S=Q.mul(u,S),S=Q.sub(S,P),P=Q.mul(u,m),F=Q.mul(Q0,F),F=Q.add(F,P),new D(S,v,F)}subtract(V){return this.add(V.negate())}is0(){return this.equals(D.ZERO)}wNAF(V){return E.wNAFCached(this,V,D.normalizeZ)}multiplyUnsafe(V){let{endo:w,n:B}=J;Y8("scalar",V,c6,B);let j=D.ZERO;if(V===c6)return j;if(this.is0()||V===A0)return this;if(!w||E.hasPrecomputes(this))return E.wNAFCachedUnsafe(this,V,D.normalizeZ);let{k1neg:T,k1:x,k2neg:C,k2:S}=w.splitScalar(V),v=j,F=j,A=this;while(x>c6||S>c6){if(x&A0)v=v.add(A);if(S&A0)F=F.add(A);A=A.double(),x>>=A0,S>>=A0}if(T)v=v.negate();if(C)F=F.negate();return F=new D(Q.mul(F.px,w.beta),F.py,F.pz),v.add(F)}multiply(V){let{endo:w,n:B}=J;Y8("scalar",V,A0,B);let j,T;if(w){let{k1neg:x,k1:C,k2neg:S,k2:v}=w.splitScalar(V),{p:F,f:A}=this.wNAF(C),{p:k,f:P}=this.wNAF(v);F=E.constTimeNegate(x,F),k=E.constTimeNegate(S,k),k=new D(Q.mul(k.px,w.beta),k.py,k.pz),j=F.add(k),T=A.add(P)}else{let{p:x,f:C}=this.wNAF(V);j=x,T=C}return D.normalizeZ([j,T])[0]}multiplyAndAddUnsafe(V,w,B){let j=D.BASE,T=(C,S)=>S===c6||S===A0||!C.equals(j)?C.multiplyUnsafe(S):C.multiply(S),x=T(this,w).add(T(V,B));return x.is0()?void 0:x}toAffine(V){return Z(this,V)}isTorsionFree(){let{h:V,isTorsionFree:w}=J;if(V===A0)return!0;if(w)return w(D,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:V,clearCofactor:w}=J;if(V===A0)return this;if(w)return w(D,this);return this.multiplyUnsafe(J.h)}toRawBytes(V=!0){return K4("isCompressed",V),this.assertValidity(),X(D,this,V)}toHex(V=!0){return K4("isCompressed",V),q4(this.toRawBytes(V))}}D.BASE=new D(J.Gx,J.Gy,Q.ONE),D.ZERO=new D(Q.ZERO,Q.ONE,Q.ZERO);let{endo:R,nBitLength:O}=J,E=uf(D,R?Math.ceil(O/2):O);return{CURVE:J,ProjectivePoint:D,normPrivateKeyToScalar:H,weierstrassEquation:W,isWithinCurveOrder:N}}function yS($){let J=oG($);return X8(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function of($){let J=yS($),{Fp:Q,n:Y,nByteLength:X,nBitLength:G}=J,W=Q.BYTES+1,K=2*Q.BYTES+1;function q(P){return Y1(P,Y)}function U(P){return wJ(P,Y)}let{ProjectivePoint:N,normPrivateKeyToScalar:H,weierstrassEquation:f,isWithinCurveOrder:Z}=kS({...J,toBytes(P,m,n){let u=m.toAffine(),o=Q.toBytes(u.x),Q0=d1;if(K4("isCompressed",n),n)return Q0(Uint8Array.from([m.hasEvenY()?2:3]),o);else return Q0(Uint8Array.from([4]),o,Q.toBytes(u.y))},fromBytes(P){let m=P.length,n=P[0],u=P.subarray(1);if(m===W&&(n===2||n===3)){let o=t1(u);if(!C2(o,A0,Q.ORDER))throw Error("Point is not on curve");let Q0=f(o),t0;try{t0=Q.sqrt(Q0)}catch(v1){let z1=v1 instanceof Error?": "+v1.message:"";throw Error("Point is not on curve"+z1)}let I0=(t0&A0)===A0;if((n&1)===1!==I0)t0=Q.neg(t0);return{x:o,y:t0}}else if(m===K&&n===4){let o=Q.fromBytes(u.subarray(0,Q.BYTES)),Q0=Q.fromBytes(u.subarray(Q.BYTES,2*Q.BYTES));return{x:o,y:Q0}}else{let o=W,Q0=K;throw Error("invalid Point, expected length of "+o+", or uncompressed "+Q0+", got "+m)}}});function M(P){let m=Y>>A0;return P>m}function D(P){return M(P)?q(-P):P}let R=(P,m,n)=>t1(P.slice(m,n));class O{constructor(P,m,n){if(Y8("r",P,A0,Y),Y8("s",m,A0,Y),this.r=P,this.s=m,n!=null)this.recovery=n;Object.freeze(this)}static fromCompact(P){let m=X;return P=G1("compactSignature",P,m*2),new O(R(P,0,m),R(P,m,2*m))}static fromDER(P){let{r:m,s:n}=U8.toSig(G1("DER",P));return new O(m,n)}assertValidity(){}addRecoveryBit(P){return new O(this.r,this.s,P)}recoverPublicKey(P){let{r:m,s:n,recovery:u}=this,o=T(G1("msgHash",P));if(u==null||![0,1,2,3].includes(u))throw Error("recovery id invalid");let Q0=u===2||u===3?m+J.n:m;if(Q0>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let t0=(u&1)===0?"02":"03",I0=N.fromHex(t0+iG(Q0,Q.BYTES)),o1=U(Q0),v1=q(-o*o1),z1=q(n*o1),$5=N.BASE.multiplyAndAddUnsafe(I0,v1,z1);if(!$5)throw Error("point at infinify");return $5.assertValidity(),$5}hasHighS(){return M(this.s)}normalizeS(){return this.hasHighS()?new O(this.r,q(-this.s),this.recovery):this}toDERRawBytes(){return v3(this.toDERHex())}toDERHex(){return U8.hexFromSig(this)}toCompactRawBytes(){return v3(this.toCompactHex())}toCompactHex(){let P=X;return iG(this.r,P)+iG(this.s,P)}}let E={isValidPrivateKey(P){try{return H(P),!0}catch(m){return!1}},normPrivateKeyToScalar:H,randomPrivateKey:()=>{let P=dG(J.n);return vf(J.randomBytes(P),J.n)},precompute(P=8,m=N.BASE){return m._setWindowSize(P),m.multiply(BigInt(3)),m}};function V(P,m=!0){return N.fromPrivateKey(P).toRawBytes(m)}function w(P){if(typeof P==="bigint")return!1;if(P instanceof N)return!0;let n=G1("key",P).length,u=Q.BYTES,o=u+1,Q0=2*u+1;if(J.allowedPrivateKeyLengths||X===o)return;else return n===o||n===Q0}function B(P,m,n=!0){if(w(P)===!0)throw Error("first arg must be private key");if(w(m)===!1)throw Error("second arg must be public key");return N.fromHex(m).multiply(H(P)).toRawBytes(n)}let j=J.bits2int||function(P){if(P.length>8192)throw Error("input is too large");let m=t1(P),n=P.length*8-G;return n>0?m>>BigInt(n):m},T=J.bits2int_modN||function(P){return q(j(P))},x=P2(G);function C(P){return Y8("num < 2^"+G,P,c6,x),Z5(P,X)}function S(P,m,n=v){if(["recovered","canonical"].some((x5)=>(x5 in n)))throw Error("sign() legacy options not supported");let{hash:u,randomBytes:o}=J,{lowS:Q0,prehash:t0,extraEntropy:I0}=n;if(Q0==null)Q0=!0;if(P=G1("msgHash",P),lf(n),t0)P=G1("prehashed msgHash",u(P));let o1=T(P),v1=H(m),z1=[C(v1),C(o1)];if(I0!=null&&I0!==!1){let x5=I0===!0?o(Q.BYTES):I0;z1.push(G1("extraEntropy",x5))}let $5=d1(...z1),W9=o1;function Q3(x5){let O8=j(x5);if(!Z(O8))return;let Y3=U(O8),X2=N.BASE.multiply(O8).toAffine(),G2=q(X2.x);if(G2===c6)return;let X3=q(Y3*q(W9+G2*v1));if(X3===c6)return;let K9=(X2.x===G2?0:2)|Number(X2.y&A0),MU=X3;if(Q0&&M(X3))MU=D(X3),K9^=1;return new O(G2,MU,K9)}return{seed:$5,k2sig:Q3}}let v={lowS:J.lowS,prehash:!1},F={lowS:J.lowS,prehash:!1};function A(P,m,n=v){let{seed:u,k2sig:o}=S(P,m,n),Q0=J;return bH(Q0.hash.outputLen,Q0.nByteLength,Q0.hmac)(u,o)}N.BASE._setWindowSize(8);function k(P,m,n,u=F){let o=P;m=G1("msgHash",m),n=G1("publicKey",n);let{lowS:Q0,prehash:t0,format:I0}=u;if(lf(u),"strict"in u)throw Error("options.strict was renamed to lowS");if(I0!==void 0&&I0!=="compact"&&I0!=="der")throw Error("format must be compact or der");let o1=typeof o==="string"||W4(o),v1=!o1&&!I0&&typeof o==="object"&&o!==null&&typeof o.r==="bigint"&&typeof o.s==="bigint";if(!o1&&!v1)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let z1=void 0,$5;try{if(v1)z1=new O(o.r,o.s);if(o1){try{if(I0!=="compact")z1=O.fromDER(o)}catch(K9){if(!(K9 instanceof U8.Err))throw K9}if(!z1&&I0!=="der")z1=O.fromCompact(o)}$5=N.fromHex(n)}catch(K9){return!1}if(!z1)return!1;if(Q0&&z1.hasHighS())return!1;if(t0)m=J.hash(m);let{r:W9,s:Q3}=z1,x5=T(m),O8=U(Q3),Y3=q(x5*O8),X2=q(W9*O8),G2=N.BASE.multiplyAndAddUnsafe($5,Y3,X2)?.toAffine();if(!G2)return!1;return q(G2.x)===W9}return{CURVE:J,getPublicKey:V,getSharedSecret:B,sign:A,verify:k,ProjectivePoint:N,Signature:O,utils:E}}function vS($,J){let Q=$.ORDER,Y=c6;for(let M=Q-A0;M%v8===c6;M/=v8)Y+=A0;let X=Y,G=v8<<X-A0-A0,W=G*v8,K=(Q-A0)/W,q=(K-A0)/v8,U=W-A0,N=G,H=$.pow(J,K),f=$.pow(J,(K+A0)/v8),Z=(M,D)=>{let R=H,O=$.pow(D,U),E=$.sqr(O);E=$.mul(E,D);let V=$.mul(M,E);V=$.pow(V,q),V=$.mul(V,O),O=$.mul(V,D),E=$.mul(V,M);let w=$.mul(E,O);V=$.pow(w,N);let B=$.eql(V,$.ONE);O=$.mul(E,f),V=$.mul(w,R),E=$.cmov(O,E,B),w=$.cmov(V,w,B);for(let j=X;j>A0;j--){let T=j-v8;T=v8<<T-A0;let x=$.pow(w,T),C=$.eql(x,$.ONE);O=$.mul(E,R),R=$.mul(R,R),x=$.mul(w,R),E=$.cmov(O,E,C),w=$.cmov(x,w,C)}return{isValid:B,value:E}};if($.ORDER%sG===e3){let M=($.ORDER-e3)/sG,D=$.sqrt($.neg(J));Z=(R,O)=>{let E=$.sqr(O),V=$.mul(R,O);E=$.mul(E,V);let w=$.pow(E,M);w=$.mul(w,V);let B=$.mul(w,D),j=$.mul($.sqr(w),O),T=$.eql(j,R),x=$.cmov(B,w,T);return{isValid:T,value:x}}}return Z}function sf($,J){if(EJ($),!$.isValid(J.A)||!$.isValid(J.B)||!$.isValid(J.Z))throw Error("mapToCurveSimpleSWU: invalid opts");let Q=vS($,J.Z);if(!$.isOdd)throw Error("Fp.isOdd is not implemented!");return(Y)=>{let X,G,W,K,q,U,N,H;X=$.sqr(Y),X=$.mul(X,J.Z),G=$.sqr(X),G=$.add(G,X),W=$.add(G,$.ONE),W=$.mul(W,J.B),K=$.cmov(J.Z,$.neg(G),!$.eql(G,$.ZERO)),K=$.mul(K,J.A),G=$.sqr(W),U=$.sqr(K),q=$.mul(U,J.A),G=$.add(G,q),G=$.mul(G,W),U=$.mul(U,K),q=$.mul(U,J.B),G=$.add(G,q),N=$.mul(X,W);let{isValid:f,value:Z}=Q(G,U);H=$.mul(X,Y),H=$.mul(H,Z),N=$.cmov(N,W,f),H=$.cmov(H,Z,f);let M=$.isOdd(Y)===$.isOdd(H);H=$.cmov($.neg(H),H,M);let D=R4($,[K],!0)[0];return N=$.mul(N,D),{x:N,y:H}}}var nf,U8,c6,A0,v8,e3,sG;var rG=g(()=>{pf();a3();U4();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */nf=class nf extends Error{constructor($=""){super($)}};U8={Err:nf,_tlv:{encode:($,J)=>{let{Err:Q}=U8;if($<0||$>256)throw new Q("tlv.encode: wrong tag");if(J.length&1)throw new Q("tlv.encode: unpadded data");let Y=J.length/2,X=y3(Y);if(X.length/2&128)throw new Q("tlv.encode: long form length too big");let G=Y>127?y3(X.length/2|128):"";return y3($)+G+X+J},decode($,J){let{Err:Q}=U8,Y=0;if($<0||$>256)throw new Q("tlv.encode: wrong tag");if(J.length<2||J[Y++]!==$)throw new Q("tlv.decode: wrong tlv");let X=J[Y++],G=!!(X&128),W=0;if(!G)W=X;else{let q=X&127;if(!q)throw new Q("tlv.decode(long): indefinite length not supported");if(q>4)throw new Q("tlv.decode(long): byte length is too big");let U=J.subarray(Y,Y+q);if(U.length!==q)throw new Q("tlv.decode: length bytes not complete");if(U[0]===0)throw new Q("tlv.decode(long): zero leftmost byte");for(let N of U)W=W<<8|N;if(Y+=q,W<128)throw new Q("tlv.decode(long): not minimal encoding")}let K=J.subarray(Y,Y+W);if(K.length!==W)throw new Q("tlv.decode: wrong value length");return{v:K,l:J.subarray(Y+W)}}},_int:{encode($){let{Err:J}=U8;if($<c6)throw new J("integer: negative integers are not allowed");let Q=y3($);if(Number.parseInt(Q[0],16)&8)Q="00"+Q;if(Q.length&1)throw new J("unexpected DER parsing assertion: unpadded hex");return Q},decode($){let{Err:J}=U8;if($[0]&128)throw new J("invalid signature integer: negative");if($[0]===0&&!($[1]&128))throw new J("invalid signature integer: unnecessary leading zero");return t1($)}},toSig($){let{Err:J,_int:Q,_tlv:Y}=U8,X=G1("signature",$),{v:G,l:W}=Y.decode(48,X);if(W.length)throw new J("invalid signature: left bytes after parsing");let{v:K,l:q}=Y.decode(2,G),{v:U,l:N}=Y.decode(2,q);if(N.length)throw new J("invalid signature: left bytes after parsing");return{r:Q.decode(K),s:Q.decode(U)}},hexFromSig($){let{_tlv:J,_int:Q}=U8,Y=J.encode(2,Q.encode($.r)),X=J.encode(2,Q.encode($.s)),G=Y+X;return J.encode(48,G)}};c6=BigInt(0),A0=BigInt(1),v8=BigInt(2),e3=BigInt(3),sG=BigInt(4)});function hS($){return{hash:$,hmac:(J,...Q)=>gG($,J,HN(...Q)),randomBytes:L$}}function rf($,J){let Q=(Y)=>of({...$,...hS(Y)});return{...Q(J),create:Q}}var tf=g(()=>{Tf();p5();rG();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */});function h8($,J){if($7($),$7(J),$<0||$>=1<<8*J)throw Error("invalid I2OSP input: "+$);let Q=Array.from({length:J}).fill(0);for(let Y=J-1;Y>=0;Y--)Q[Y]=$&255,$>>>=8;return new Uint8Array(Q)}function mS($,J){let Q=new Uint8Array($.length);for(let Y=0;Y<$.length;Y++)Q[Y]=$[Y]^J[Y];return Q}function $7($){if(!Number.isSafeInteger($))throw Error("number expected")}function dS($,J,Q,Y){if(Q8($),Q8(J),$7(Q),J.length>255)J=Y(d1(e$("H2C-OVERSIZE-DST-"),J));let{outputLen:X,blockLen:G}=Y,W=Math.ceil(Q/X);if(Q>65535||W>255)throw Error("expand_message_xmd: invalid lenInBytes");let K=d1(J,h8(J.length,1)),q=h8(0,G),U=h8(Q,2),N=Array(W),H=Y(d1(q,$,U,h8(0,1),K));N[0]=Y(d1(H,h8(1,1),K));for(let Z=1;Z<=W;Z++){let M=[mS(H,N[Z-1]),h8(Z+1,1),K];N[Z]=Y(d1(...M))}return d1(...N).slice(0,Q)}function uS($,J,Q,Y,X){if(Q8($),Q8(J),$7(Q),J.length>255){let G=Math.ceil(2*Y/8);J=X.create({dkLen:G}).update(e$("H2C-OVERSIZE-DST-")).update(J).digest()}if(Q>65535||J.length>255)throw Error("expand_message_xof: invalid lenInBytes");return X.create({dkLen:Q}).update($).update(h8(Q,2)).update(J).update(h8(J.length,1)).digest()}function af($,J,Q){X8(Q,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});let{p:Y,k:X,m:G,hash:W,expand:K,DST:q}=Q;Q8($),$7(J);let U=typeof q==="string"?e$(q):q,N=Y.toString(2).length,H=Math.ceil((N+X)/8),f=J*G*H,Z;if(K==="xmd")Z=dS($,U,f,W);else if(K==="xof")Z=uS($,U,f,X,W);else if(K==="_internal_pass")Z=$;else throw Error('expand must be "xmd" or "xof"');let M=Array(J);for(let D=0;D<J;D++){let R=Array(G);for(let O=0;O<G;O++){let E=H*(O+D*G),V=Z.subarray(E,E+H);R[O]=Y1(gS(V),Y)}M[D]=R}return M}function ef($,J){let Q=J.map((Y)=>Array.from(Y).reverse());return(Y,X)=>{let[G,W,K,q]=Q.map((H)=>H.reduce((f,Z)=>$.add($.mul(f,Y),Z))),[U,N]=R4($,[W,q],!0);return Y=$.mul(G,U),X=$.mul(X,$.mul(K,N)),{x:Y,y:X}}}function $Z($,J,Q){if(typeof J!=="function")throw Error("mapToCurve() must be defined");function Y(G){return $.fromAffine(J(G))}function X(G){let W=G.clearCofactor();if(W.equals($.ZERO))return $.ZERO;return W.assertValidity(),W}return{defaults:Q,hashToCurve(G,W){let K=af(G,2,{...Q,DST:Q.DST,...W}),q=Y(K[0]),U=Y(K[1]);return X(q.add(U))},encodeToCurve(G,W){let K=af(G,1,{...Q,DST:Q.encodeDST,...W});return X(Y(K[0]))},mapToCurve(G){if(!Array.isArray(G))throw Error("expected array of bigints");for(let W of G)if(typeof W!=="bigint")throw Error("expected array of bigints");return X(Y(G))}}}var gS;var JZ=g(()=>{a3();U4();gS=t1});var qZ={};W3(qZ,{secp256k1_hasher:()=>YW,secp256k1:()=>N8,schnorr:()=>nS,hashToCurve:()=>sS,encodeToCurve:()=>rS});function XZ($){let J=Y7,Q=BigInt(3),Y=BigInt(6),X=BigInt(11),G=BigInt(22),W=BigInt(23),K=BigInt(44),q=BigInt(88),U=$*$*$%J,N=U*U*$%J,H=K6(N,Q,J)*N%J,f=K6(H,Q,J)*N%J,Z=K6(f,BJ,J)*U%J,M=K6(Z,X,J)*Z%J,D=K6(M,G,J)*M%J,R=K6(D,K,J)*D%J,O=K6(R,q,J)*R%J,E=K6(O,K,J)*D%J,V=K6(E,Q,J)*N%J,w=K6(V,W,J)*M%J,B=K6(w,Y,J)*U%J,j=K6(B,BJ,J);if(!g8.eql(g8.sqr(j),$))throw Error("Cannot find square root");return j}function _J($,...J){let Q=YZ[$];if(Q===void 0){let Y=b2(Uint8Array.from($,(X)=>X.charCodeAt(0)));Q=d1(Y,Y),YZ[$]=Q}return b2(d1(Q,...J))}function eG($){let J=N8.utils.normPrivateKeyToScalar($),Q=QW.fromPrivateKey(J);return{scalar:Q.hasEvenY()?J:Q7(-J),bytes:JW(Q)}}function GZ($){Y8("x",$,J7,Y7);let J=tG($*$),Q=tG(J*$+BigInt(7)),Y=XZ(Q);if(Y%BJ!==$W)Y=tG(-Y);let X=new QW($,Y,J7);return X.assertValidity(),X}function WZ(...$){return Q7(B4(_J("BIP0340/challenge",...$)))}function pS($){return eG($).bytes}function lS($,J,Q=L$(32)){let Y=G1("message",$),{bytes:X,scalar:G}=eG(J),W=G1("auxRand",Q,32),K=aG(G^B4(_J("BIP0340/aux",W))),q=_J("BIP0340/nonce",K,X,Y),U=Q7(B4(q));if(U===$W)throw Error("sign failed: k is zero");let{bytes:N,scalar:H}=eG(U),f=WZ(N,X,Y),Z=new Uint8Array(64);if(Z.set(N,0),Z.set(aG(Q7(H+f*G)),32),!KZ(Z,Y,X))throw Error("sign: Invalid signature produced");return Z}function KZ($,J,Q){let Y=G1("signature",$,64),X=G1("message",J),G=G1("publicKey",Q,32);try{let W=GZ(B4(G)),K=B4(Y.subarray(0,32));if(!C2(K,J7,Y7))return!1;let q=B4(Y.subarray(32,64));if(!C2(q,J7,RJ))return!1;let U=WZ(aG(K),JW(W),X),N=cS(W,q,Q7(-U));if(!N||!N.hasEvenY()||N.toAffine().x!==K)return!1;return!0}catch(W){return!1}}var Y7,RJ,$W,J7,BJ,QZ=($,J)=>($+J/BJ)/J,g8,N8,YZ,JW=($)=>$.toRawBytes(!0).slice(1),aG=($)=>Z5($,32),tG=($)=>Y1($,Y7),Q7=($)=>Y1($,RJ),QW,cS=($,J,Q)=>QW.BASE.multiplyAndAddUnsafe($,J,Q),B4,nS,oS,iS,YW,sS,rS;var LJ=g(()=>{vG();p5();tf();JZ();a3();U4();rG();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */Y7=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),RJ=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),$W=BigInt(0),J7=BigInt(1),BJ=BigInt(2);g8=t3(Y7,void 0,void 0,{sqrt:XZ}),N8=rf({a:$W,b:BigInt(7),Fp:g8,n:RJ,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let J=RJ,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-J7*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),G=Q,W=BigInt("0x100000000000000000000000000000000"),K=QZ(G*$,J),q=QZ(-Y*$,J),U=Y1($-K*Q-q*X,J),N=Y1(-K*Y-q*G,J),H=U>W,f=N>W;if(H)U=J-U;if(f)N=J-N;if(U>W||N>W)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:H,k1:U,k2neg:f,k2:N}}}},b2),YZ={};QW=(()=>N8.ProjectivePoint)();B4=t1;nS=(()=>({getPublicKey:pS,sign:lS,verify:KZ,utils:{randomPrivateKey:N8.utils.randomPrivateKey,lift_x:GZ,pointToBytes:JW,numberToBytesBE:Z5,bytesToNumberBE:t1,taggedHash:_J,mod:Y1}}))(),oS=(()=>ef(g8,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(($)=>$.map((J)=>BigInt(J)))))(),iS=(()=>sf(g8,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:g8.create(BigInt("-11"))}))(),YW=(()=>$Z(N8.ProjectivePoint,($)=>{let{x:J,y:Q}=iS(g8.create($[0]));return oS(J,Q)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:g8.ORDER,m:1,k:128,expand:"xmd",hash:b2}))(),sS=(()=>YW.hashToCurve)(),rS=(()=>YW.encodeToCurve)()});var jz=H0((uU0,Sz)=>{var KP="[object Object]";function qP($){var J=!1;if($!=null&&typeof $.toString!="function")try{J=!!($+"")}catch(Q){}return J}function UP($,J){return function(Q){return $(J(Q))}}var NP=Function.prototype,Lz=Object.prototype,Fz=NP.toString,HP=Lz.hasOwnProperty,fP=Fz.call(Object),ZP=Lz.toString,MP=UP(Object.getPrototypeOf,Object);function zP($){return!!$&&typeof $=="object"}function VP($){if(!zP($)||ZP.call($)!=KP||qP($))return!1;var J=MP($);if(J===null)return!0;var Q=HP.call(J,"constructor")&&J.constructor;return typeof Q=="function"&&Q instanceof Q&&Fz.call(Q)==fP}Sz.exports=VP});var QV=H0((qQ,k4)=>{var OP=200,vz="__lodash_hash_undefined__",DP=800,wP=16,hz=9007199254740991,gz="[object Arguments]",EP="[object Array]",RP="[object AsyncFunction]",BP="[object Boolean]",_P="[object Date]",LP="[object Error]",mz="[object Function]",FP="[object GeneratorFunction]",SP="[object Map]",jP="[object Number]",CP="[object Null]",dz="[object Object]",PP="[object Proxy]",TP="[object RegExp]",IP="[object Set]",AP="[object String]",xP="[object Undefined]",bP="[object WeakMap]",kP="[object ArrayBuffer]",yP="[object DataView]",vP="[object Float32Array]",hP="[object Float64Array]",gP="[object Int8Array]",mP="[object Int16Array]",dP="[object Int32Array]",uP="[object Uint8Array]",cP="[object Uint8ClampedArray]",pP="[object Uint16Array]",lP="[object Uint32Array]",nP=/[\\^$.*+?()[\]{}|]/g,oP=/^\[object .+?Constructor\]$/,iP=/^(?:0|[1-9]\d*)$/,m0={};m0[vP]=m0[hP]=m0[gP]=m0[mP]=m0[dP]=m0[uP]=m0[cP]=m0[pP]=m0[lP]=!0;m0[gz]=m0[EP]=m0[kP]=m0[BP]=m0[yP]=m0[_P]=m0[LP]=m0[mz]=m0[SP]=m0[jP]=m0[dz]=m0[TP]=m0[IP]=m0[AP]=m0[bP]=!1;var uz=typeof global=="object"&&global&&global.Object===Object&&global,sP=typeof self=="object"&&self&&self.Object===Object&&self,S7=uz||sP||Function("return this")(),cz=typeof qQ=="object"&&qQ&&!qQ.nodeType&&qQ,L7=cz&&typeof k4=="object"&&k4&&!k4.nodeType&&k4,pz=L7&&L7.exports===cz,KK=pz&&uz.process,Cz=function(){try{var $=L7&&L7.require&&L7.require("util").types;if($)return $;return KK&&KK.binding&&KK.binding("util")}catch(J){}}(),Pz=Cz&&Cz.isTypedArray;function rP($,J,Q){switch(Q.length){case 0:return $.call(J);case 1:return $.call(J,Q[0]);case 2:return $.call(J,Q[0],Q[1]);case 3:return $.call(J,Q[0],Q[1],Q[2])}return $.apply(J,Q)}function tP($,J){var Q=-1,Y=Array($);while(++Q<$)Y[Q]=J(Q);return Y}function aP($){return function(J){return $(J)}}function eP($,J){return $==null?void 0:$[J]}function $T($,J){return function(Q){return $(J(Q))}}var JT=Array.prototype,QT=Function.prototype,HQ=Object.prototype,qK=S7["__core-js_shared__"],fQ=QT.toString,f8=HQ.hasOwnProperty,Tz=function(){var $=/[^.]+$/.exec(qK&&qK.keys&&qK.keys.IE_PROTO||"");return $?"Symbol(src)_1."+$:""}(),lz=HQ.toString,YT=fQ.call(Object),XT=RegExp("^"+fQ.call(f8).replace(nP,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),UQ=pz?S7.Buffer:void 0,Iz=S7.Symbol,Az=S7.Uint8Array,xz=UQ?UQ.allocUnsafe:void 0,nz=$T(Object.getPrototypeOf,Object),bz=Object.create,GT=HQ.propertyIsEnumerable,WT=JT.splice,p2=Iz?Iz.toStringTag:void 0,NQ=function(){try{var $=MK(Object,"defineProperty");return $({},"",{}),$}catch(J){}}(),KT=UQ?UQ.isBuffer:void 0,kz=Math.max,qT=Date.now,oz=MK(S7,"Map"),F7=MK(Object,"create"),UT=function(){function $(){}return function(J){if(!n2(J))return{};if(bz)return bz(J);$.prototype=J;var Q=new $;return $.prototype=void 0,Q}}();function l2($){var J=-1,Q=$==null?0:$.length;this.clear();while(++J<Q){var Y=$[J];this.set(Y[0],Y[1])}}function NT(){this.__data__=F7?F7(null):{},this.size=0}function HT($){var J=this.has($)&&delete this.__data__[$];return this.size-=J?1:0,J}function fT($){var J=this.__data__;if(F7){var Q=J[$];return Q===vz?void 0:Q}return f8.call(J,$)?J[$]:void 0}function ZT($){var J=this.__data__;return F7?J[$]!==void 0:f8.call(J,$)}function MT($,J){var Q=this.__data__;return this.size+=this.has($)?0:1,Q[$]=F7&&J===void 0?vz:J,this}l2.prototype.clear=NT;l2.prototype.delete=HT;l2.prototype.get=fT;l2.prototype.has=ZT;l2.prototype.set=MT;function Z8($){var J=-1,Q=$==null?0:$.length;this.clear();while(++J<Q){var Y=$[J];this.set(Y[0],Y[1])}}function zT(){this.__data__=[],this.size=0}function VT($){var J=this.__data__,Q=ZQ(J,$);if(Q<0)return!1;var Y=J.length-1;if(Q==Y)J.pop();else WT.call(J,Q,1);return--this.size,!0}function OT($){var J=this.__data__,Q=ZQ(J,$);return Q<0?void 0:J[Q][1]}function DT($){return ZQ(this.__data__,$)>-1}function wT($,J){var Q=this.__data__,Y=ZQ(Q,$);if(Y<0)++this.size,Q.push([$,J]);else Q[Y][1]=J;return this}Z8.prototype.clear=zT;Z8.prototype.delete=VT;Z8.prototype.get=OT;Z8.prototype.has=DT;Z8.prototype.set=wT;function y4($){var J=-1,Q=$==null?0:$.length;this.clear();while(++J<Q){var Y=$[J];this.set(Y[0],Y[1])}}function ET(){this.size=0,this.__data__={hash:new l2,map:new(oz||Z8),string:new l2}}function RT($){var J=zQ(this,$).delete($);return this.size-=J?1:0,J}function BT($){return zQ(this,$).get($)}function _T($){return zQ(this,$).has($)}function LT($,J){var Q=zQ(this,$),Y=Q.size;return Q.set($,J),this.size+=Q.size==Y?0:1,this}y4.prototype.clear=ET;y4.prototype.delete=RT;y4.prototype.get=BT;y4.prototype.has=_T;y4.prototype.set=LT;function v4($){var J=this.__data__=new Z8($);this.size=J.size}function FT(){this.__data__=new Z8,this.size=0}function ST($){var J=this.__data__,Q=J.delete($);return this.size=J.size,Q}function jT($){return this.__data__.get($)}function CT($){return this.__data__.has($)}function PT($,J){var Q=this.__data__;if(Q instanceof Z8){var Y=Q.__data__;if(!oz||Y.length<OP-1)return Y.push([$,J]),this.size=++Q.size,this;Q=this.__data__=new y4(Y)}return Q.set($,J),this.size=Q.size,this}v4.prototype.clear=FT;v4.prototype.delete=ST;v4.prototype.get=jT;v4.prototype.has=CT;v4.prototype.set=PT;function TT($,J){var Q=fK($),Y=!Q&&HK($),X=!Q&&!Y&&tz($),G=!Q&&!Y&&!X&&ez($),W=Q||Y||X||G,K=W?tP($.length,String):[],q=K.length;for(var U in $)if((J||f8.call($,U))&&!(W&&(U=="length"||X&&(U=="offset"||U=="parent")||G&&(U=="buffer"||U=="byteLength"||U=="byteOffset")||sz(U,q))))K.push(U);return K}function UK($,J,Q){if(Q!==void 0&&!VQ($[J],Q)||Q===void 0&&!(J in $))ZK($,J,Q)}function IT($,J,Q){var Y=$[J];if(!(f8.call($,J)&&VQ(Y,Q))||Q===void 0&&!(J in $))ZK($,J,Q)}function ZQ($,J){var Q=$.length;while(Q--)if(VQ($[Q][0],J))return Q;return-1}function ZK($,J,Q){if(J=="__proto__"&&NQ)NQ($,J,{configurable:!0,enumerable:!0,value:Q,writable:!0});else $[J]=Q}var AT=lT();function MQ($){if($==null)return $===void 0?xP:CP;return p2&&p2 in Object($)?nT($):aT($)}function yz($){return j7($)&&MQ($)==gz}function xT($){if(!n2($)||rT($))return!1;var J=VK($)?XT:oP;return J.test(QI($))}function bT($){return j7($)&&az($.length)&&!!m0[MQ($)]}function kT($){if(!n2($))return tT($);var J=rz($),Q=[];for(var Y in $)if(!(Y=="constructor"&&(J||!f8.call($,Y))))Q.push(Y);return Q}function iz($,J,Q,Y,X){if($===J)return;AT(J,function(G,W){if(X||(X=new v4),n2(G))yT($,J,W,Q,iz,Y,X);else{var K=Y?Y(NK($,W),G,W+"",$,J,X):void 0;if(K===void 0)K=G;UK($,W,K)}},$V)}function yT($,J,Q,Y,X,G,W){var K=NK($,Q),q=NK(J,Q),U=W.get(q);if(U){UK($,Q,U);return}var N=G?G(K,q,Q+"",$,J,W):void 0,H=N===void 0;if(H){var f=fK(q),Z=!f&&tz(q),M=!f&&!Z&&ez(q);if(N=q,f||Z||M)if(fK(K))N=K;else if(YI(K))N=uT(K);else if(Z)H=!1,N=gT(q,!0);else if(M)H=!1,N=dT(q,!0);else N=[];else if(XI(q)||HK(q)){if(N=K,HK(K))N=GI(K);else if(!n2(K)||VK(K))N=oT(q)}else H=!1}if(H)W.set(q,N),X(N,q,Y,G,W),W.delete(q);UK($,Q,N)}function vT($,J){return $I(eT($,J,JV),$+"")}var hT=!NQ?JV:function($,J){return NQ($,"toString",{configurable:!0,enumerable:!1,value:KI(J),writable:!0})};function gT($,J){if(J)return $.slice();var Q=$.length,Y=xz?xz(Q):new $.constructor(Q);return $.copy(Y),Y}function mT($){var J=new $.constructor($.byteLength);return new Az(J).set(new Az($)),J}function dT($,J){var Q=J?mT($.buffer):$.buffer;return new $.constructor(Q,$.byteOffset,$.length)}function uT($,J){var Q=-1,Y=$.length;J||(J=Array(Y));while(++Q<Y)J[Q]=$[Q];return J}function cT($,J,Q,Y){var X=!Q;Q||(Q={});var G=-1,W=J.length;while(++G<W){var K=J[G],q=Y?Y(Q[K],$[K],K,Q,$):void 0;if(q===void 0)q=$[K];if(X)ZK(Q,K,q);else IT(Q,K,q)}return Q}function pT($){return vT(function(J,Q){var Y=-1,X=Q.length,G=X>1?Q[X-1]:void 0,W=X>2?Q[2]:void 0;if(G=$.length>3&&typeof G=="function"?(X--,G):void 0,W&&iT(Q[0],Q[1],W))G=X<3?void 0:G,X=1;J=Object(J);while(++Y<X){var K=Q[Y];if(K)$(J,K,Y,G)}return J})}function lT($){return function(J,Q,Y){var X=-1,G=Object(J),W=Y(J),K=W.length;while(K--){var q=W[$?K:++X];if(Q(G[q],q,G)===!1)break}return J}}function zQ($,J){var Q=$.__data__;return sT(J)?Q[typeof J=="string"?"string":"hash"]:Q.map}function MK($,J){var Q=eP($,J);return xT(Q)?Q:void 0}function nT($){var J=f8.call($,p2),Q=$[p2];try{$[p2]=void 0;var Y=!0}catch(G){}var X=lz.call($);if(Y)if(J)$[p2]=Q;else delete $[p2];return X}function oT($){return typeof $.constructor=="function"&&!rz($)?UT(nz($)):{}}function sz($,J){var Q=typeof $;return J=J==null?hz:J,!!J&&(Q=="number"||Q!="symbol"&&iP.test($))&&($>-1&&$%1==0&&$<J)}function iT($,J,Q){if(!n2(Q))return!1;var Y=typeof J;if(Y=="number"?zK(Q)&&sz(J,Q.length):Y=="string"&&(J in Q))return VQ(Q[J],$);return!1}function sT($){var J=typeof $;return J=="string"||J=="number"||J=="symbol"||J=="boolean"?$!=="__proto__":$===null}function rT($){return!!Tz&&Tz in $}function rz($){var J=$&&$.constructor,Q=typeof J=="function"&&J.prototype||HQ;return $===Q}function tT($){var J=[];if($!=null)for(var Q in Object($))J.push(Q);return J}function aT($){return lz.call($)}function eT($,J,Q){return J=kz(J===void 0?$.length-1:J,0),function(){var Y=arguments,X=-1,G=kz(Y.length-J,0),W=Array(G);while(++X<G)W[X]=Y[J+X];X=-1;var K=Array(J+1);while(++X<J)K[X]=Y[X];return K[J]=Q(W),rP($,this,K)}}function NK($,J){if(J==="constructor"&&typeof $[J]==="function")return;if(J=="__proto__")return;return $[J]}var $I=JI(hT);function JI($){var J=0,Q=0;return function(){var Y=qT(),X=wP-(Y-Q);if(Q=Y,X>0){if(++J>=DP)return arguments[0]}else J=0;return $.apply(void 0,arguments)}}function QI($){if($!=null){try{return fQ.call($)}catch(J){}try{return $+""}catch(J){}}return""}function VQ($,J){return $===J||$!==$&&J!==J}var HK=yz(function(){return arguments}())?yz:function($){return j7($)&&f8.call($,"callee")&&!GT.call($,"callee")},fK=Array.isArray;function zK($){return $!=null&&az($.length)&&!VK($)}function YI($){return j7($)&&zK($)}var tz=KT||qI;function VK($){if(!n2($))return!1;var J=MQ($);return J==mz||J==FP||J==RP||J==PP}function az($){return typeof $=="number"&&$>-1&&$%1==0&&$<=hz}function n2($){var J=typeof $;return $!=null&&(J=="object"||J=="function")}function j7($){return $!=null&&typeof $=="object"}function XI($){if(!j7($)||MQ($)!=dz)return!1;var J=nz($);if(J===null)return!0;var Q=f8.call(J,"constructor")&&J.constructor;return typeof Q=="function"&&Q instanceof Q&&fQ.call(Q)==YT}var ez=Pz?aP(Pz):bT;function GI($){return cT($,$V($))}function $V($){return zK($)?TT($,!0):kT($)}var WI=pT(function($,J,Q,Y){iz($,J,Q,Y)});function KI($){return function(){return $}}function JV($){return $}function qI(){return!1}k4.exports=WI});var Kq=H0((o_0,bO)=>{var n7=($)=>{return $&&typeof $.message==="string"},Wq=($)=>{if(!$)return;let J=$.cause;if(typeof J==="function"){let Q=$.cause();return n7(Q)?Q:void 0}else return n7(J)?J:void 0},AO=($,J)=>{if(!n7($))return"";let Q=$.stack||"";if(J.has($))return Q+`
66
66
  causes have become circular...`;let Y=Wq($);if(Y)return J.add($),Q+`
67
- caused by: `+AO(Y,J);else return Q},tI=($)=>AO($,new Set),xO=($,J,Q)=>{if(!n7($))return"";let Y=Q?"":$.message||"";if(J.has($))return Y+": ...";let X=Wq($);if(X){J.add($);let G=typeof $.cause==="function";return Y+(G?"":": ")+xO(X,J,G)}else return Y},aI=($)=>xO($,new Set);bO.exports={isErrorLike:n7,getErrorCause:Wq,stackWithCauses:tI,messageWithCauses:aI}});var qq=H0((i_0,yO)=>{var eI=Symbol("circular-ref-tag"),rQ=Symbol("pino-raw-err-ref"),kO=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[rQ]},set:function($){this[rQ]=$}}});Object.defineProperty(kO,rQ,{writable:!0,value:{}});yO.exports={pinoErrProto:kO,pinoErrorSymbols:{seen:eI,rawSymbol:rQ}}});var gO=H0((s_0,hO)=>{hO.exports=Nq;var{messageWithCauses:$A,stackWithCauses:JA,isErrorLike:vO}=Kq(),{pinoErrProto:QA,pinoErrorSymbols:YA}=qq(),{seen:Uq}=YA,{toString:XA}=Object.prototype;function Nq($){if(!vO($))return $;$[Uq]=void 0;let J=Object.create(QA);if(J.type=XA.call($.constructor)==="[object Function]"?$.constructor.name:$.name,J.message=$A($),J.stack=JA($),Array.isArray($.errors))J.aggregateErrors=$.errors.map((Q)=>Nq(Q));for(let Q in $)if(J[Q]===void 0){let Y=$[Q];if(vO(Y)){if(Q!=="cause"&&!Object.prototype.hasOwnProperty.call(Y,Uq))J[Q]=Nq(Y)}else J[Q]=Y}return delete $[Uq],J.raw=$,J}});var dO=H0((r_0,mO)=>{mO.exports=aQ;var{isErrorLike:Hq}=Kq(),{pinoErrProto:GA,pinoErrorSymbols:WA}=qq(),{seen:tQ}=WA,{toString:KA}=Object.prototype;function aQ($){if(!Hq($))return $;$[tQ]=void 0;let J=Object.create(GA);if(J.type=KA.call($.constructor)==="[object Function]"?$.constructor.name:$.name,J.message=$.message,J.stack=$.stack,Array.isArray($.errors))J.aggregateErrors=$.errors.map((Q)=>aQ(Q));if(Hq($.cause)&&!Object.prototype.hasOwnProperty.call($.cause,tQ))J.cause=aQ($.cause);for(let Q in $)if(J[Q]===void 0){let Y=$[Q];if(Hq(Y)){if(!Object.prototype.hasOwnProperty.call(Y,tQ))J[Q]=aQ(Y)}else J[Q]=Y}return delete $[tQ],J.raw=$,J}});var lO=H0((t_0,pO)=>{pO.exports={mapHttpRequest:qA,reqSerializer:cO};var fq=Symbol("pino-raw-req-ref"),uO=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[fq]},set:function($){this[fq]=$}}});Object.defineProperty(uO,fq,{writable:!0,value:{}});function cO($){let J=$.info||$.socket,Q=Object.create(uO);if(Q.id=typeof $.id==="function"?$.id():$.id||($.info?$.info.id:void 0),Q.method=$.method,$.originalUrl)Q.url=$.originalUrl;else{let Y=$.path;Q.url=typeof Y==="string"?Y:$.url?$.url.path||$.url:void 0}if($.query)Q.query=$.query;if($.params)Q.params=$.params;return Q.headers=$.headers,Q.remoteAddress=J&&J.remoteAddress,Q.remotePort=J&&J.remotePort,Q.raw=$.raw||$,Q}function qA($){return{req:cO($)}}});var sO=H0((a_0,iO)=>{iO.exports={mapHttpResponse:UA,resSerializer:oO};var Zq=Symbol("pino-raw-res-ref"),nO=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Zq]},set:function($){this[Zq]=$}}});Object.defineProperty(nO,Zq,{writable:!0,value:{}});function oO($){let J=Object.create(nO);return J.statusCode=$.headersSent?$.statusCode:null,J.headers=$.getHeaders?$.getHeaders():$._headers,J.raw=$,J}function UA($){return{res:oO($)}}});var zq=H0((e_0,rO)=>{var Mq=gO(),NA=dO(),eQ=lO(),$Y=sO();rO.exports={err:Mq,errWithCause:NA,mapHttpRequest:eQ.mapHttpRequest,mapHttpResponse:$Y.mapHttpResponse,req:eQ.reqSerializer,res:$Y.resSerializer,wrapErrorSerializer:function(J){if(J===Mq)return J;return function(Y){return J(Mq(Y))}},wrapRequestSerializer:function(J){if(J===eQ.reqSerializer)return J;return function(Y){return J(eQ.reqSerializer(Y))}},wrapResponseSerializer:function(J){if(J===$Y.resSerializer)return J;return function(Y){return J($Y.resSerializer(Y))}}}});var Vq=H0(($L0,tO)=>{function HA($,J){return J}tO.exports=function(){let J=Error.prepareStackTrace;Error.prepareStackTrace=HA;let Q=Error().stack;if(Error.prepareStackTrace=J,!Array.isArray(Q))return;let Y=Q.slice(2),X=[];for(let G of Y){if(!G)continue;X.push(G.getFileName())}return X}});var YD=H0((JL0,QD)=>{function Oq($){if($===null||typeof $!=="object")return $;if($ instanceof Date)return new Date($.getTime());if($ instanceof Array){let J=[];for(let Q=0;Q<$.length;Q++)J[Q]=Oq($[Q]);return J}if(typeof $==="object"){let J=Object.create(Object.getPrototypeOf($));for(let Q in $)if(Object.prototype.hasOwnProperty.call($,Q))J[Q]=Oq($[Q]);return J}return $}function aO($){let J=[],Q="",Y=!1,X=!1,G="";for(let W=0;W<$.length;W++){let K=$[W];if(!Y&&K==="."){if(Q)J.push(Q),Q=""}else if(K==="["){if(Q)J.push(Q),Q="";Y=!0}else if(K==="]"&&Y)J.push(Q),Q="",Y=!1,X=!1;else if((K==='"'||K==="'")&&Y)if(!X)X=!0,G=K;else if(K===G)X=!1,G="";else Q+=K;else Q+=K}if(Q)J.push(Q);return J}function eO($,J,Q){let Y=$;for(let G=0;G<J.length-1;G++){let W=J[G];if(typeof Y!=="object"||Y===null||!(W in Y))return!1;if(typeof Y[W]!=="object"||Y[W]===null)return!1;Y=Y[W]}let X=J[J.length-1];if(X==="*"){if(Array.isArray(Y))for(let G=0;G<Y.length;G++)Y[G]=Q;else if(typeof Y==="object"&&Y!==null){for(let G in Y)if(Object.prototype.hasOwnProperty.call(Y,G))Y[G]=Q}}else if(typeof Y==="object"&&Y!==null&&X in Y&&Object.prototype.hasOwnProperty.call(Y,X))Y[X]=Q;return!0}function $D($,J){let Q=$;for(let X=0;X<J.length-1;X++){let G=J[X];if(typeof Q!=="object"||Q===null||!(G in Q))return!1;if(typeof Q[G]!=="object"||Q[G]===null)return!1;Q=Q[G]}let Y=J[J.length-1];if(Y==="*"){if(Array.isArray(Q))for(let X=0;X<Q.length;X++)Q[X]=void 0;else if(typeof Q==="object"&&Q!==null){for(let X in Q)if(Object.prototype.hasOwnProperty.call(Q,X))delete Q[X]}}else if(typeof Q==="object"&&Q!==null&&Y in Q&&Object.prototype.hasOwnProperty.call(Q,Y))delete Q[Y];return!0}var JY=Symbol("PATH_NOT_FOUND");function fA($,J){let Q=$;for(let Y of J){if(Q===null||Q===void 0)return JY;if(typeof Q!=="object"||Q===null)return JY;if(!(Y in Q))return JY;Q=Q[Y]}return Q}function ZA($,J){let Q=$;for(let Y of J){if(Q===null||Q===void 0)return;if(typeof Q!=="object"||Q===null)return;Q=Q[Y]}return Q}function MA($,J,Q,Y=!1){for(let X of J){let G=aO(X);if(G.includes("*"))JD($,G,Q,X,Y);else if(Y)$D($,G);else{let W=fA($,G);if(W===JY)continue;let K=typeof Q==="function"?Q(W,G):Q;eO($,G,K)}}}function JD($,J,Q,Y,X=!1){let G=J.indexOf("*");if(G===J.length-1){let W=J.slice(0,-1),K=$;for(let q of W){if(K===null||K===void 0)return;if(typeof K!=="object"||K===null)return;K=K[q]}if(Array.isArray(K))if(X)for(let q=0;q<K.length;q++)K[q]=void 0;else for(let q=0;q<K.length;q++){let U=[...W,q.toString()],N=typeof Q==="function"?Q(K[q],U):Q;K[q]=N}else if(typeof K==="object"&&K!==null)if(X){let q=[];for(let U in K)if(Object.prototype.hasOwnProperty.call(K,U))q.push(U);for(let U of q)delete K[U]}else for(let q in K){let U=[...W,q],N=typeof Q==="function"?Q(K[q],U):Q;K[q]=N}}else zA($,J,Q,G,Y,X)}function zA($,J,Q,Y,X,G=!1){let W=J.slice(0,Y),K=J.slice(Y+1),q=[];function U(N,H){if(H===W.length){if(Array.isArray(N))for(let f=0;f<N.length;f++)q[H]=f.toString(),U(N[f],H+1);else if(typeof N==="object"&&N!==null)for(let f in N)q[H]=f,U(N[f],H+1)}else if(H<W.length){let f=W[H];if(N&&typeof N==="object"&&N!==null&&f in N)q[H]=f,U(N[f],H+1)}else if(K.includes("*"))JD(N,K,typeof Q==="function"?(Z,M)=>{let D=[...q.slice(0,H),...M];return Q(Z,D)}:Q,X,G);else if(G)$D(N,K);else{let f=typeof Q==="function"?Q(ZA(N,K),[...q.slice(0,H),...K]):Q;eO(N,K,f)}}if(W.length===0)U($,0);else{let N=$;for(let H=0;H<W.length;H++){let f=W[H];if(N===null||N===void 0)return;if(typeof N!=="object"||N===null)return;N=N[f],q[H]=f}if(N!==null&&N!==void 0)U(N,W.length)}}function VA($){if($.length===0)return null;let J=new Map;for(let Q of $){let Y=aO(Q),X=J;for(let G=0;G<Y.length;G++){let W=Y[G];if(!X.has(W))X.set(W,new Map);X=X.get(W)}}return J}function OA($,J){if(!J)return $;function Q(Y,X,G=0){if(!X||X.size===0)return Y;if(Y===null||typeof Y!=="object")return Y;if(Y instanceof Date)return new Date(Y.getTime());if(Array.isArray(Y)){let K=[];for(let q=0;q<Y.length;q++){let U=q.toString();if(X.has(U)||X.has("*"))K[q]=Q(Y[q],X.get(U)||X.get("*"));else K[q]=Y[q]}return K}let W=Object.create(Object.getPrototypeOf(Y));for(let K in Y)if(Object.prototype.hasOwnProperty.call(Y,K))if(X.has(K)||X.has("*"))W[K]=Q(Y[K],X.get(K)||X.get("*"));else W[K]=Y[K];return W}return Q($,J)}function DA($){if(typeof $!=="string")throw Error("Paths must be (non-empty) strings");if($==="")throw Error("Invalid redaction path ()");if($.includes(".."))throw Error(`Invalid redaction path (${$})`);if($.includes(","))throw Error(`Invalid redaction path (${$})`);let J=0,Q=!1,Y="";for(let X=0;X<$.length;X++){let G=$[X];if((G==='"'||G==="'")&&J>0){if(!Q)Q=!0,Y=G;else if(G===Y)Q=!1,Y=""}else if(G==="["&&!Q)J++;else if(G==="]"&&!Q){if(J--,J<0)throw Error(`Invalid redaction path (${$})`)}}if(J!==0)throw Error(`Invalid redaction path (${$})`)}function wA($){if(!Array.isArray($))throw TypeError("paths must be an array");for(let J of $)DA(J)}function EA($={}){let{paths:J=[],censor:Q="[REDACTED]",serialize:Y=JSON.stringify,strict:X=!0,remove:G=!1}=$;wA(J);let W=VA(J);return function(q){if(X&&(q===null||typeof q!=="object")){if(q===null||q===void 0)return Y?Y(q):q;if(typeof q!=="object")return Y?Y(q):q}let U=OA(q,W),N=q,H=Q;if(typeof Q==="function")H=Q;if(MA(U,J,H,G),Y===!1)return U.restore=function(){return Oq(N)},U;if(typeof Y==="function")return Y(U);return JSON.stringify(U)}}QD.exports=EA});var r4=H0((QL0,XD)=>{var RA=Symbol("pino.setLevel"),BA=Symbol("pino.getLevel"),_A=Symbol("pino.levelVal"),LA=Symbol("pino.levelComp"),FA=Symbol("pino.useLevelLabels"),SA=Symbol("pino.useOnlyCustomLevels"),jA=Symbol("pino.mixin"),CA=Symbol("pino.lsCache"),PA=Symbol("pino.chindings"),TA=Symbol("pino.asJson"),IA=Symbol("pino.write"),AA=Symbol("pino.redactFmt"),xA=Symbol("pino.time"),bA=Symbol("pino.timeSliceIndex"),kA=Symbol("pino.stream"),yA=Symbol("pino.stringify"),vA=Symbol("pino.stringifySafe"),hA=Symbol("pino.stringifiers"),gA=Symbol("pino.end"),mA=Symbol("pino.formatOpts"),dA=Symbol("pino.messageKey"),uA=Symbol("pino.errorKey"),cA=Symbol("pino.nestedKey"),pA=Symbol("pino.nestedKeyStr"),lA=Symbol("pino.mixinMergeStrategy"),nA=Symbol("pino.msgPrefix"),oA=Symbol("pino.wildcardFirst"),iA=Symbol.for("pino.serializers"),sA=Symbol.for("pino.formatters"),rA=Symbol.for("pino.hooks"),tA=Symbol.for("pino.metadata");XD.exports={setLevelSym:RA,getLevelSym:BA,levelValSym:_A,levelCompSym:LA,useLevelLabelsSym:FA,mixinSym:jA,lsCacheSym:CA,chindingsSym:PA,asJsonSym:TA,writeSym:IA,serializersSym:iA,redactFmtSym:AA,timeSym:xA,timeSliceIndexSym:bA,streamSym:kA,stringifySym:yA,stringifySafeSym:vA,stringifiersSym:hA,endSym:gA,formatOptsSym:mA,messageKeySym:dA,errorKeySym:uA,nestedKeySym:cA,wildcardFirstSym:oA,needsMetadataGsym:tA,useOnlyCustomLevelsSym:SA,formattersSym:sA,hooksSym:rA,nestedKeyStrSym:pA,mixinMergeStrategySym:lA,msgPrefixSym:nA}});var wq=H0((YL0,WD)=>{var GD=YD(),{redactFmtSym:aA,wildcardFirstSym:QY}=r4(),Dq=/[^.[\]]+|\[([^[\]]*?)\]/g;function eA($,J){let{paths:Q,censor:Y,remove:X}=$x($),G=Q.reduce((q,U)=>{Dq.lastIndex=0;let N=Dq.exec(U),H=Dq.exec(U),f=N[1]!==void 0?N[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):N[0];if(f==="*")f=QY;if(H===null)return q[f]=null,q;if(q[f]===null)return q;let{index:Z}=H,M=`${U.substr(Z,U.length-1)}`;if(q[f]=q[f]||[],f!==QY&&q[f].length===0)q[f].push(...q[QY]||[]);if(f===QY)Object.keys(q).forEach(function(D){if(q[D])q[D].push(M)});return q[f].push(M),q},{}),W={[aA]:GD({paths:Q,censor:Y,serialize:J,strict:!1,remove:X})},K=(...q)=>{return typeof Y==="function"?J(Y(...q)):J(Y)};return[...Object.keys(G),...Object.getOwnPropertySymbols(G)].reduce((q,U)=>{if(G[U]===null)q[U]=(N)=>K(N,[U]);else{let N=typeof Y==="function"?(H,f)=>{return Y(H,[U,...f])}:Y;q[U]=GD({paths:G[U],censor:N,serialize:J,strict:!1,remove:X})}return q},W)}function $x($){if(Array.isArray($))return $={paths:$,censor:"[Redacted]"},$;let{paths:J,censor:Q="[Redacted]",remove:Y}=$;if(Array.isArray(J)===!1)throw Error("pino – redact must contain an array of strings");if(Y===!0)Q=void 0;return{paths:J,censor:Q,remove:Y}}WD.exports=eA});var UD=H0((XL0,qD)=>{var Jx=()=>"",Qx=()=>`,"time":${Date.now()}`,Yx=()=>`,"time":${Math.round(Date.now()/1000)}`,Xx=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,Gx=1000000n,KD=1000000000n,Wx=BigInt(Date.now())*Gx,Kx=process.hrtime.bigint(),qx=()=>{let $=process.hrtime.bigint()-Kx,J=Wx+$,Q=J/KD,Y=J%KD,X=Number(Q*1000n+Y/1000000n),G=new Date(X),W=G.getUTCFullYear(),K=(G.getUTCMonth()+1).toString().padStart(2,"0"),q=G.getUTCDate().toString().padStart(2,"0"),U=G.getUTCHours().toString().padStart(2,"0"),N=G.getUTCMinutes().toString().padStart(2,"0"),H=G.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${W}-${K}-${q}T${U}:${N}:${H}.${Y.toString().padStart(9,"0")}Z"`};qD.exports={nullTime:Jx,epochTime:Qx,unixTime:Yx,isoTime:Xx,isoTimeNano:qx}});var HD=H0((GL0,ND)=>{function Ux($){try{return JSON.stringify($)}catch(J){return'"[Circular]"'}}ND.exports=Nx;function Nx($,J,Q){var Y=Q&&Q.stringify||Ux,X=1;if(typeof $==="object"&&$!==null){var G=J.length+X;if(G===1)return $;var W=Array(G);W[0]=Y($);for(var K=1;K<G;K++)W[K]=Y(J[K]);return W.join(" ")}if(typeof $!=="string")return $;var q=J.length;if(q===0)return $;var U="",N=1-X,H=-1,f=$&&$.length||0;for(var Z=0;Z<f;){if($.charCodeAt(Z)===37&&Z+1<f){switch(H=H>-1?H:0,$.charCodeAt(Z+1)){case 100:case 102:if(N>=q)break;if(J[N]==null)break;if(H<Z)U+=$.slice(H,Z);U+=Number(J[N]),H=Z+2,Z++;break;case 105:if(N>=q)break;if(J[N]==null)break;if(H<Z)U+=$.slice(H,Z);U+=Math.floor(Number(J[N])),H=Z+2,Z++;break;case 79:case 111:case 106:if(N>=q)break;if(J[N]===void 0)break;if(H<Z)U+=$.slice(H,Z);var M=typeof J[N];if(M==="string"){U+="'"+J[N]+"'",H=Z+2,Z++;break}if(M==="function"){U+=J[N].name||"<anonymous>",H=Z+2,Z++;break}U+=Y(J[N]),H=Z+2,Z++;break;case 115:if(N>=q)break;if(H<Z)U+=$.slice(H,Z);U+=String(J[N]),H=Z+2,Z++;break;case 37:if(H<Z)U+=$.slice(H,Z);U+="%",H=Z+2,Z++,N--;break}++N}++Z}if(H===-1)return $;else if(H<f)U+=$.slice(H);return U}});var Rq=H0((WL0,Eq)=>{if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let J=function(Q){if((Q>0&&Q<1/0)===!1){if(typeof Q!=="number"&&typeof Q!=="bigint")throw TypeError("sleep: ms must be a number");throw RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity")}Atomics.wait($,0,0,Number(Q))},$=new Int32Array(new SharedArrayBuffer(4));Eq.exports=J}else{let $=function(J){if((J>0&&J<1/0)===!1){if(typeof J!=="number"&&typeof J!=="bigint")throw TypeError("sleep: ms must be a number");throw RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity")}let Y=Date.now()+Number(J);while(Y>Date.now());};Eq.exports=$}});var OD=H0((KL0,VD)=>{var u0=k0("fs"),Hx=k0("events"),fx=k0("util").inherits,fD=k0("path"),_q=Rq(),Zx=k0("assert"),YY=Buffer.allocUnsafe(0),[Mx,zx]=(process.versions.node||"0.0").split(".").map(Number),Vx=Mx>=22&&zx>=7;function ZD($,J){J._opening=!0,J._writing=!0,J._asyncDrainScheduled=!1;function Q(G,W){if(G){if(J._reopening=!1,J._writing=!1,J._opening=!1,J.sync)process.nextTick(()=>{if(J.listenerCount("error")>0)J.emit("error",G)});else J.emit("error",G);return}let K=J._reopening;if(J.fd=W,J.file=$,J._reopening=!1,J._opening=!1,J._writing=!1,J.sync)process.nextTick(()=>J.emit("ready"));else J.emit("ready");if(J.destroyed)return;if(!J._writing&&J._len>J.minLength||J._flushPending)J._actualWrite();else if(K)process.nextTick(()=>J.emit("drain"))}let Y=J.append?"a":"w",X=J.mode;if(J.sync)try{if(J.mkdir)u0.mkdirSync(fD.dirname($),{recursive:!0});let G=u0.openSync($,Y,X);Q(null,G)}catch(G){throw Q(G),G}else if(J.mkdir)u0.mkdir(fD.dirname($),{recursive:!0},(G)=>{if(G)return Q(G);u0.open($,Y,X,Q)});else u0.open($,Y,X,Q)}function t6($){if(!(this instanceof t6))return new t6($);let{fd:J,dest:Q,minLength:Y,maxLength:X,maxWrite:G,periodicFlush:W,sync:K,append:q=!0,mkdir:U,retryEAGAIN:N,fsync:H,contentMode:f,mode:Z}=$||{};J=J||Q,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(Y||0,16387),this.file=null,this.destroyed=!1,this.minLength=Y||0,this.maxLength=X||0,this.maxWrite=G||16384,this._periodicFlush=W||0,this._periodicFlushTimer=void 0,this.sync=K||!1,this.writable=!0,this._fsync=H||!1,this.append=q||!1,this.mode=Z,this.retryEAGAIN=N||(()=>!0),this.mkdir=U||!1;let M,D;if(f==="buffer")this._writingBuf=YY,this.write=wx,this.flush=Rx,this.flushSync=_x,this._actualWrite=Fx,M=()=>u0.writeSync(this.fd,this._writingBuf),D=()=>u0.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f==="utf8")this._writingBuf="",this.write=Dx,this.flush=Ex,this.flushSync=Bx,this._actualWrite=Lx,M=()=>{if(Buffer.isBuffer(this._writingBuf))return u0.writeSync(this.fd,this._writingBuf);return u0.writeSync(this.fd,this._writingBuf,"utf8")},D=()=>{if(Buffer.isBuffer(this._writingBuf))return u0.write(this.fd,this._writingBuf,this.release);return u0.write(this.fd,this._writingBuf,"utf8",this.release)};else throw Error(`SonicBoom supports "utf8" and "buffer", but passed ${f}`);if(typeof J==="number")this.fd=J,process.nextTick(()=>this.emit("ready"));else if(typeof J==="string")ZD(J,this);else throw Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);if(this.release=(R,O)=>{if(R){if((R.code==="EAGAIN"||R.code==="EBUSY")&&this.retryEAGAIN(R,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{_q(100),this.release(void 0,0)}catch(w){this.release(w)}else setTimeout(D,100);else this._writing=!1,this.emit("error",R);return}this.emit("write",O);let E=Bq(this._writingBuf,this._len,O);if(this._len=E.len,this._writingBuf=E.writingBuf,this._writingBuf.length){if(!this.sync){D();return}try{do{let w=M(),B=Bq(this._writingBuf,this._len,w);this._len=B.len,this._writingBuf=B.writingBuf}while(this._writingBuf.length)}catch(w){this.release(w);return}}if(this._fsync)u0.fsyncSync(this.fd);let V=this._len;if(this._reopening)this._writing=!1,this._reopening=!1,this.reopen();else if(V>this.minLength)this._actualWrite();else if(this._ending)if(V>0)this._actualWrite();else this._writing=!1,XY(this);else if(this._writing=!1,this.sync){if(!this._asyncDrainScheduled)this._asyncDrainScheduled=!0,process.nextTick(Ox,this)}else this.emit("drain")},this.on("newListener",function(R){if(R==="drain")this._asyncDrainScheduled=!1}),this._periodicFlush!==0)this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref()}function Bq($,J,Q){if(typeof $==="string")$=Buffer.from($);return J=Math.max(J-Q,0),$=$.subarray(Q),{writingBuf:$,len:J}}function Ox($){if(!($.listenerCount("drain")>0))return;$._asyncDrainScheduled=!1,$.emit("drain")}fx(t6,Hx);function MD($,J){if($.length===0)return YY;if($.length===1)return $[0];return Buffer.concat($,J)}function Dx($){if(this.destroyed)throw Error("SonicBoom destroyed");$=""+$;let J=Buffer.byteLength($),Q=this._len+J,Y=this._bufs;if(this.maxLength&&Q>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(Y.length===0||Buffer.byteLength(Y[Y.length-1])+J>this.maxWrite)Y.push($);else Y[Y.length-1]+=$;if(this._len=Q,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function wx($){if(this.destroyed)throw Error("SonicBoom destroyed");let J=this._len+$.length,Q=this._bufs,Y=this._lens;if(this.maxLength&&J>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(Q.length===0||Y[Y.length-1]+$.length>this.maxWrite)Q.push([$]),Y.push($.length);else Q[Q.length-1].push($),Y[Y.length-1]+=$.length;if(this._len=J,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function zD($){this._flushPending=!0;let J=()=>{if(!this._fsync)try{u0.fsync(this.fd,(Y)=>{this._flushPending=!1,$(Y)})}catch(Y){$(Y)}else this._flushPending=!1,$();this.off("error",Q)},Q=(Y)=>{this._flushPending=!1,$(Y),this.off("drain",J)};this.once("drain",J),this.once("error",Q)}function Ex($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let J=Error("SonicBoom destroyed");if($){$(J);return}throw J}if(this.minLength<=0){$?.();return}if($)zD.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push("");this._actualWrite()}function Rx($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let J=Error("SonicBoom destroyed");if($){$(J);return}throw J}if(this.minLength<=0){$?.();return}if($)zD.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push([]),this._lens.push(0);this._actualWrite()}t6.prototype.reopen=function($){if(this.destroyed)throw Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen($)});return}if(this._ending)return;if(!this.file)throw Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if($)this.file=$;if(this._reopening=!0,this._writing)return;let J=this.fd;this.once("ready",()=>{if(J!==this.fd)u0.close(J,(Q)=>{if(Q)return this.emit("error",Q)})}),ZD(this.file,this)};t6.prototype.end=function(){if(this.destroyed)throw Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}if(this._ending)return;if(this._ending=!0,this._writing)return;if(this._len>0&&this.fd>=0)this._actualWrite();else XY(this)};function Bx(){if(this.destroyed)throw Error("SonicBoom destroyed");if(this.fd<0)throw Error("sonic boom is not ready yet");if(!this._writing&&this._writingBuf.length>0)this._bufs.unshift(this._writingBuf),this._writingBuf="";let $="";while(this._bufs.length||$.length){if($.length<=0)$=this._bufs[0];try{let J=Buffer.isBuffer($)?u0.writeSync(this.fd,$):u0.writeSync(this.fd,$,"utf8"),Q=Bq($,this._len,J);if($=Q.writingBuf,this._len=Q.len,$.length<=0)this._bufs.shift()}catch(J){if((J.code==="EAGAIN"||J.code==="EBUSY")&&!this.retryEAGAIN(J,$.length,this._len-$.length))throw J;_q(100)}}try{u0.fsyncSync(this.fd)}catch{}}function _x(){if(this.destroyed)throw Error("SonicBoom destroyed");if(this.fd<0)throw Error("sonic boom is not ready yet");if(!this._writing&&this._writingBuf.length>0)this._bufs.unshift([this._writingBuf]),this._writingBuf=YY;let $=YY;while(this._bufs.length||$.length){if($.length<=0)$=MD(this._bufs[0],this._lens[0]);try{let J=u0.writeSync(this.fd,$);if($=$.subarray(J),this._len=Math.max(this._len-J,0),$.length<=0)this._bufs.shift(),this._lens.shift()}catch(J){if((J.code==="EAGAIN"||J.code==="EBUSY")&&!this.retryEAGAIN(J,$.length,this._len-$.length))throw J;_q(100)}}}t6.prototype.destroy=function(){if(this.destroyed)return;XY(this)};function Lx(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let J=Buffer.isBuffer(this._writingBuf)?u0.writeSync(this.fd,this._writingBuf):u0.writeSync(this.fd,this._writingBuf,"utf8");$(null,J)}catch(J){$(J)}else u0.write(this.fd,this._writingBuf,$)}function Fx(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:MD(this._bufs.shift(),this._lens.shift()),this.sync)try{let J=u0.writeSync(this.fd,this._writingBuf);$(null,J)}catch(J){$(J)}else{if(Vx)this._writingBuf=Buffer.from(this._writingBuf);u0.write(this.fd,this._writingBuf,$)}}function XY($){if($.fd===-1){$.once("ready",XY.bind(null,$));return}if($._periodicFlushTimer!==void 0)clearInterval($._periodicFlushTimer);$.destroyed=!0,$._bufs=[],$._lens=[],Zx(typeof $.fd==="number",`sonic.fd must be a number, got ${typeof $.fd}`);try{u0.fsync($.fd,J)}catch{}function J(){if($.fd!==1&&$.fd!==2)u0.close($.fd,Q);else Q()}function Q(Y){if(Y){$.emit("error",Y);return}if($._ending&&!$._writing)$.emit("finish");$.emit("close")}}t6.SonicBoom=t6;t6.default=t6;VD.exports=t6});var Lq=H0((qL0,BD)=>{var a6={exit:[],beforeExit:[]},DD={exit:Cx,beforeExit:Px},t4;function Sx(){if(t4===void 0)t4=new FinalizationRegistry(Tx)}function jx($){if(a6[$].length>0)return;process.on($,DD[$])}function wD($){if(a6[$].length>0)return;if(process.removeListener($,DD[$]),a6.exit.length===0&&a6.beforeExit.length===0)t4=void 0}function Cx(){ED("exit")}function Px(){ED("beforeExit")}function ED($){for(let J of a6[$]){let Q=J.deref(),Y=J.fn;if(Q!==void 0)Y(Q,$)}a6[$]=[]}function Tx($){for(let J of["exit","beforeExit"]){let Q=a6[J].indexOf($);a6[J].splice(Q,Q+1),wD(J)}}function RD($,J,Q){if(J===void 0)throw Error("the object can't be undefined");jx($);let Y=new WeakRef(J);Y.fn=Q,Sx(),t4.register(J,Y),a6[$].push(Y)}function Ix($,J){RD("exit",$,J)}function Ax($,J){RD("beforeExit",$,J)}function xx($){if(t4===void 0)return;t4.unregister($);for(let J of["exit","beforeExit"])a6[J]=a6[J].filter((Q)=>{let Y=Q.deref();return Y&&Y!==$}),wD(J)}BD.exports={register:Ix,registerBeforeExit:Ax,unregister:xx}});var _D=H0((UL0,bx)=>{bx.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina <hello@matteocollina.com>",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var FD=H0((NL0,LD)=>{function kx($,J,Q,Y,X){let G=Y===1/0?1/0:Date.now()+Y,W=()=>{let K=Atomics.load($,J);if(K===Q){X(null,"ok");return}if(G!==1/0&&Date.now()>G){X(null,"timed-out");return}let q=G===1/0?1e4:Math.min(1e4,Math.max(1,G-Date.now())),U=Atomics.waitAsync($,J,K,q);if(U.async)U.value.then(W);else setImmediate(W)};W()}function yx($,J,Q,Y,X){let G=Y===1/0?1/0:Date.now()+Y,W=()=>{if(Atomics.load($,J)!==Q){X(null,"ok");return}if(G!==1/0&&Date.now()>G){X(null,"timed-out");return}let q=G===1/0?1e4:Math.min(1e4,Math.max(1,G-Date.now())),U=Atomics.waitAsync($,J,Q,q);if(U.async)U.value.then(W);else setImmediate(W)};W()}LD.exports={wait:kx,waitDiff:yx}});var jD=H0((HL0,SD)=>{SD.exports={WRITE_INDEX:4,READ_INDEX:8}});var xD=H0((fL0,AD)=>{var __dirname="/Users/rubilmax/conductor/workspaces/morpho-agent/sarajevo/node_modules/.bun/thread-stream@4.0.0/node_modules/thread-stream",{version:vx}=_D(),{EventEmitter:hx}=k0("events"),{Worker:gx}=k0("worker_threads"),{join:mx}=k0("path"),{pathToFileURL:dx}=k0("url"),{wait:ux}=FD(),{WRITE_INDEX:Y6,READ_INDEX:Q6}=jD(),cx=k0("buffer"),px=k0("assert"),y=Symbol("kImpl"),lx=cx.constants.MAX_STRING_LENGTH;class WY{constructor($){this._value=$}deref(){return this._value}}class Sq{register(){}unregister(){}}var nx=process.env.NODE_V8_COVERAGE?Sq:global.FinalizationRegistry||Sq,ox=process.env.NODE_V8_COVERAGE?WY:global.WeakRef||WY,CD=new nx(($)=>{if($.exited)return;$.terminate()});function ix($,J){let{filename:Q,workerData:Y}=J,G=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||mx(__dirname,"lib","worker.js"),W=new gx(G,{...J.workerOpts,trackUnmanagedFds:!1,workerData:{filename:Q.indexOf("file://")===0?Q:dx(Q).href,dataBuf:$[y].dataBuf,stateBuf:$[y].stateBuf,workerData:{$context:{threadStreamVersion:vx},...Y}}});return W.stream=new WY($),W.on("message",sx),W.on("exit",TD),CD.register($,W),W}function PD($){if(px(!$[y].sync),$[y].needDrain)$[y].needDrain=!1,$.emit("drain")}function GY($){let J=Atomics.load($[y].state,Y6),Q=$[y].data.length-J;if(Q>0){if($[y].buf.length===0){if($[y].flushing=!1,$[y].ending)Pq($);else if($[y].needDrain)process.nextTick(PD,$);return}let Y=$[y].buf.slice(0,Q),X=Buffer.byteLength(Y);if(X<=Q)$[y].buf=$[y].buf.slice(Q),KY($,Y,GY.bind(null,$));else $.flush(()=>{if($.destroyed)return;Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6);while(X>$[y].data.length)Q=Q/2,Y=$[y].buf.slice(0,Q),X=Buffer.byteLength(Y);$[y].buf=$[y].buf.slice(Q),KY($,Y,GY.bind(null,$))})}else if(Q===0){if(J===0&&$[y].buf.length===0)return;$.flush(()=>{Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6),GY($)})}else P5($,Error("overwritten"))}function sx($){let J=this.stream.deref();if(J===void 0){this.exited=!0,this.terminate();return}switch($.code){case"READY":this.stream=new ox(J),J.flush(()=>{J[y].ready=!0,J.emit("ready")});break;case"ERROR":P5(J,$.err);break;case"EVENT":if(Array.isArray($.args))J.emit($.name,...$.args);else J.emit($.name,$.args);break;case"WARNING":process.emitWarning($.err);break;default:P5(J,Error("this should not happen: "+$.code))}}function TD($){let J=this.stream.deref();if(J===void 0)return;CD.unregister(J),J.worker.exited=!0,J.worker.off("exit",TD),P5(J,$!==0?Error("the worker thread exited"):null)}class ID extends hx{constructor($={}){super();if($.bufferSize<4)throw Error("bufferSize must at least fit a 4-byte utf-8 char");this[y]={},this[y].stateBuf=new SharedArrayBuffer(128),this[y].state=new Int32Array(this[y].stateBuf),this[y].dataBuf=new SharedArrayBuffer($.bufferSize||4194304),this[y].data=Buffer.from(this[y].dataBuf),this[y].sync=$.sync||!1,this[y].ending=!1,this[y].ended=!1,this[y].needDrain=!1,this[y].destroyed=!1,this[y].flushing=!1,this[y].ready=!1,this[y].finished=!1,this[y].errored=null,this[y].closed=!1,this[y].buf="",this.worker=ix(this,$),this.on("message",(J,Q)=>{this.worker.postMessage(J,Q)})}write($){if(this[y].destroyed)return jq(this,Error("the worker has exited")),!1;if(this[y].ending)return jq(this,Error("the worker is ending")),!1;if(this[y].flushing&&this[y].buf.length+$.length>=lx)try{Fq(this),this[y].flushing=!0}catch(J){return P5(this,J),!1}if(this[y].buf+=$,this[y].sync)try{return Fq(this),!0}catch(J){return P5(this,J),!1}if(!this[y].flushing)this[y].flushing=!0,setImmediate(GY,this);return this[y].needDrain=this[y].data.length-this[y].buf.length-Atomics.load(this[y].state,Y6)<=0,!this[y].needDrain}end(){if(this[y].destroyed)return;this[y].ending=!0,Pq(this)}flush($){if(this[y].destroyed){if(typeof $==="function")process.nextTick($,Error("the worker has exited"));return}let J=Atomics.load(this[y].state,Y6);ux(this[y].state,Q6,J,1/0,(Q,Y)=>{if(Q){P5(this,Q),process.nextTick($,Q);return}if(Y==="not-equal"){this.flush($);return}process.nextTick($)})}flushSync(){if(this[y].destroyed)return;Fq(this),Cq(this)}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[y].ready}get destroyed(){return this[y].destroyed}get closed(){return this[y].closed}get writable(){return!this[y].destroyed&&!this[y].ending}get writableEnded(){return this[y].ending}get writableFinished(){return this[y].finished}get writableNeedDrain(){return this[y].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[y].errored}}function jq($,J){setImmediate(()=>{$.emit("error",J)})}function P5($,J){if($[y].destroyed)return;if($[y].destroyed=!0,J)$[y].errored=J,jq($,J);if(!$.worker.exited)$.worker.terminate().catch(()=>{}).then(()=>{$[y].closed=!0,$.emit("close")});else setImmediate(()=>{$[y].closed=!0,$.emit("close")})}function KY($,J,Q){let Y=Atomics.load($[y].state,Y6),X=Buffer.byteLength(J);return $[y].data.write(J,Y),Atomics.store($[y].state,Y6,Y+X),Atomics.notify($[y].state,Y6),Q(),!0}function Pq($){if($[y].ended||!$[y].ending||$[y].flushing)return;$[y].ended=!0;try{$.flushSync();let J=Atomics.load($[y].state,Q6);Atomics.store($[y].state,Y6,-1),Atomics.notify($[y].state,Y6);let Q=0;while(J!==-1){if(Atomics.wait($[y].state,Q6,J,1000),J=Atomics.load($[y].state,Q6),J===-2){P5($,Error("end() failed"));return}if(++Q===10){P5($,Error("end() took too long (10s)"));return}}process.nextTick(()=>{$[y].finished=!0,$.emit("finish")})}catch(J){P5($,J)}}function Fq($){let J=()=>{if($[y].ending)Pq($);else if($[y].needDrain)process.nextTick(PD,$)};$[y].flushing=!1;while($[y].buf.length!==0){let Q=Atomics.load($[y].state,Y6),Y=$[y].data.length-Q;if(Y===0){Cq($),Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6);continue}else if(Y<0)throw Error("overwritten");let X=$[y].buf.slice(0,Y),G=Buffer.byteLength(X);if(G<=Y)$[y].buf=$[y].buf.slice(Y),KY($,X,J);else{Cq($),Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6);while(G>$[y].buf.length)Y=Y/2,X=$[y].buf.slice(0,Y),G=Buffer.byteLength(X);$[y].buf=$[y].buf.slice(Y),KY($,X,J)}}}function Cq($){if($[y].flushing)throw Error("unable to flush while flushing");let J=Atomics.load($[y].state,Y6),Q=0;while(!0){let Y=Atomics.load($[y].state,Q6);if(Y===-2)throw Error("_flushSync failed");if(Y!==J)Atomics.wait($[y].state,Q6,Y,1000);else break;if(++Q===10)throw Error("_flushSync took too long (10s)")}}AD.exports=ID});var Aq=H0((ZL0,yD)=>{var __dirname="/Users/rubilmax/conductor/workspaces/morpho-agent/sarajevo/node_modules/.bun/pino@10.3.1/node_modules/pino/lib",{createRequire:rx}=k0("module"),{existsSync:tx}=k0("node:fs"),ax=Vq(),{join:Tq,isAbsolute:kD,sep:ex}=k0("node:path"),{fileURLToPath:$b}=k0("node:url"),Jb=Rq(),Iq=Lq(),Qb=xD();function Yb($){Iq.register($,qb),Iq.registerBeforeExit($,Ub),$.on("close",function(){Iq.unregister($)})}function Xb(){let $=process.execArgv;for(let J=0;J<$.length;J++){let Q=$[J];if(Q==="--import"||Q==="--require"||Q==="-r")return!0;if(Q.startsWith("--import=")||Q.startsWith("--require=")||Q.startsWith("-r="))return!0}return!1}function Gb($){let J=$.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g);if(!J)return $;let Q=[],Y=!1;for(let X=0;X<J.length;X++){let G=J[X];if(G==="--require"||G==="-r"||G==="--import"){let W=J[X+1];if(W&&bD(W)){Y=!0,X++;continue}if(Q.push(G),W)Q.push(W),X++;continue}if(G.startsWith("--require=")||G.startsWith("-r=")||G.startsWith("--import=")){let W=G.slice(G.indexOf("=")+1);if(bD(W)){Y=!0;continue}}Q.push(G)}return Y?Q.join(" "):$}function bD($){let J=Wb($);if(!J)return!1;let Q=J;if(Q.startsWith("file://"))try{Q=$b(Q)}catch{return!1}return kD(Q)&&!tx(Q)}function Wb($){let J=$[0],Q=$[$.length-1];if(J==='"'&&Q==='"'||J==="'"&&Q==="'")return $.slice(1,-1);return $}function Kb($,J,Q,Y,X){if(!Q.execArgv&&Xb()&&k0.main===void 0)Q={...Q,execArgv:[]};if(!Q.env&&process.env.NODE_OPTIONS){let q=Gb(process.env.NODE_OPTIONS);if(q!==process.env.NODE_OPTIONS)Q={...Q,env:{...process.env,NODE_OPTIONS:q}}}Q={...Q,name:X};let G=new Qb({filename:$,workerData:J,workerOpts:Q,sync:Y});G.on("ready",W),G.on("close",function(){process.removeListener("exit",K)}),process.on("exit",K);function W(){if(process.removeListener("exit",K),G.unref(),Q.autoEnd!==!1)Yb(G)}function K(){if(G.closed)return;G.flushSync(),Jb(100),G.end()}return G}function qb($){$.ref(),$.flushSync(),$.end(),$.once("close",function(){$.unref()})}function Ub($){$.flushSync()}function Nb($){let{pipeline:J,targets:Q,levels:Y,dedupe:X,worker:G={},caller:W=ax(),sync:K=!1}=$,q={...$.options},U=typeof W==="string"?[W]:W,N=typeof globalThis==="object"&&Object.prototype.hasOwnProperty.call(globalThis,"__bundlerPathsOverrides")&&globalThis.__bundlerPathsOverrides&&typeof globalThis.__bundlerPathsOverrides==="object"?globalThis.__bundlerPathsOverrides:Object.create(null),H=$.target;if(H&&Q)throw Error("only one of target or targets can be specified");if(Q)H=N["pino-worker"]||Tq(__dirname,"worker.js"),q.targets=Q.filter((M)=>M.target).map((M)=>{return{...M,target:Z(M.target)}}),q.pipelines=Q.filter((M)=>M.pipeline).map((M)=>{return M.pipeline.map((D)=>{return{...D,level:M.level,target:Z(D.target)}})});else if(J)H=N["pino-worker"]||Tq(__dirname,"worker.js"),q.pipelines=[J.map((M)=>{return{...M,target:Z(M.target)}})];if(Y)q.levels=Y;if(X)q.dedupe=X;q.pinoWillSendConfig=!0;let f=Q||J?"pino.transport":H;return Kb(Z(H),q,G,K,f);function Z(M){if(M=N[M]||M,kD(M)||M.indexOf("file://")===0)return M;if(M==="pino/file")return Tq(__dirname,"..","file.js");let D;for(let R of U)try{let O=R==="node:repl"?process.cwd()+ex:R;D=rx(O).resolve(M);break}catch(O){continue}if(!D)throw Error(`unable to determine transport target for "${M}"`);return D}}yD.exports=Nb});var NY=H0((zL0,sD)=>{var Hb=k0("node:diagnostics_channel"),vD=HD(),{mapHttpRequest:fb,mapHttpResponse:Zb}=zq(),bq=OD(),hD=Lq(),{lsCacheSym:Mb,chindingsSym:cD,writeSym:gD,serializersSym:pD,formatOptsSym:mD,endSym:zb,stringifiersSym:lD,stringifySym:nD,stringifySafeSym:kq,wildcardFirstSym:oD,nestedKeySym:Vb,formattersSym:iD,messageKeySym:Ob,errorKeySym:Db,nestedKeyStrSym:wb,msgPrefixSym:qY}=r4(),{isMainThread:Eb}=k0("worker_threads"),Rb=Aq(),[Bb]=process.versions.node.split(".").map(($)=>Number($)),dD=Hb.tracingChannel("pino_asJson"),xq=Bb>=25?($)=>JSON.stringify($):Lb;function a4(){}function _b($,J){if(!J)return Q;return function(...X){J.call(this,X,Q,$)};function Q(Y,...X){if(typeof Y==="object"){let G=Y;if(Y!==null){if(Y.method&&Y.headers&&Y.socket)Y=fb(Y);else if(typeof Y.setHeader==="function")Y=Zb(Y)}let W;if(G===null&&X.length===0)W=[null];else G=X.shift(),W=X;if(typeof this[qY]==="string"&&G!==void 0&&G!==null)G=this[qY]+G;this[gD](Y,vD(G,W,this[mD]),$)}else{let G=Y===void 0?X.shift():Y;if(typeof this[qY]==="string"&&G!==void 0&&G!==null)G=this[qY]+G;this[gD](null,vD(G,X,this[mD]),$)}}}function Lb($){let J="",Q=0,Y=!1,X=255,G=$.length;if(G>100)return JSON.stringify($);for(var W=0;W<G&&X>=32;W++)if(X=$.charCodeAt(W),X===34||X===92)J+=$.slice(Q,W)+"\\",Q=W,Y=!0;if(!Y)J=$;else J+=$.slice(Q);return X<32?JSON.stringify($):'"'+J+'"'}function Fb($,J,Q,Y){if(dD.hasSubscribers===!1)return uD.call(this,$,J,Q,Y);let X={instance:this,arguments};return dD.traceSync(uD,X,this,$,J,Q,Y)}function uD($,J,Q,Y){let X=this[nD],G=this[kq],W=this[lD],K=this[zb],q=this[cD],U=this[pD],N=this[iD],H=this[Ob],f=this[Db],Z=this[Mb][Q]+Y;Z=Z+q;let M;if(N.log)$=N.log($);let D=W[oD],R="";for(let E in $)if(M=$[E],Object.prototype.hasOwnProperty.call($,E)&&M!==void 0){if(U[E])M=U[E](M);else if(E===f&&U.err)M=U.err(M);let V=W[E]||D;switch(typeof M){case"undefined":case"function":continue;case"number":if(Number.isFinite(M)===!1)M=null;case"boolean":if(V)M=V(M);break;case"string":M=(V||xq)(M);break;default:M=(V||X)(M,G)}if(M===void 0)continue;let w=xq(E);R+=","+w+":"+M}let O="";if(J!==void 0){M=U[H]?U[H](J):J;let E=W[H]||D;switch(typeof M){case"function":break;case"number":if(Number.isFinite(M)===!1)M=null;case"boolean":if(E)M=E(M);O=',"'+H+'":'+M;break;case"string":M=(E||xq)(M),O=',"'+H+'":'+M;break;default:M=(E||X)(M,G),O=',"'+H+'":'+M}}if(this[Vb]&&R)return Z+this[wb]+R.slice(1)+"}"+O+K;else return Z+R+O+K}function Sb($,J){let Q,Y=$[cD],X=$[nD],G=$[kq],W=$[lD],K=W[oD],q=$[pD],U=$[iD].bindings;J=U(J);for(let N in J)if(Q=J[N],((N.length<5||N!=="level"&&N!=="serializers"&&N!=="formatters"&&N!=="customLevels")&&J.hasOwnProperty(N)&&Q!==void 0)===!0){if(Q=q[N]?q[N](Q):Q,Q=(W[N]||K||X)(Q,G),Q===void 0)continue;Y+=',"'+N+'":'+Q}return Y}function jb($){return $.write!==$.constructor.prototype.write}function UY($){let J=new bq($);if(J.on("error",Q),!$.sync&&Eb)hD.register(J,Cb),J.on("close",function(){hD.unregister(J)});return J;function Q(Y){if(Y.code==="EPIPE"){J.write=a4,J.end=a4,J.flushSync=a4,J.destroy=a4;return}J.removeListener("error",Q),J.emit("error",Y)}}function Cb($,J){if($.destroyed)return;if(J==="beforeExit")$.flush(),$.on("drain",function(){$.end()});else $.flushSync()}function Pb($){return function(Q,Y,X={},G){if(typeof X==="string")G=UY({dest:X}),X={};else if(typeof G==="string"){if(X&&X.transport)throw Error("only one of option.transport or stream can be specified");G=UY({dest:G})}else if(X instanceof bq||X.writable||X._writableState)G=X,X={};else if(X.transport){if(X.transport instanceof bq||X.transport.writable||X.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(X.transport.targets&&X.transport.targets.length&&X.formatters&&typeof X.formatters.level==="function")throw Error("option.transport.targets do not allow custom level formatters");let q;if(X.customLevels)q=X.useOnlyCustomLevels?X.customLevels:Object.assign({},X.levels,X.customLevels);G=Rb({caller:Y,...X.transport,levels:q})}if(X=Object.assign({},$,X),X.serializers=Object.assign({},$.serializers,X.serializers),X.formatters=Object.assign({},$.formatters,X.formatters),X.prettyPrint)throw Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:W,onChild:K}=X;if(W===!1)X.level="silent";if(!K)X.onChild=a4;if(!G)if(!jb(process.stdout))G=UY({fd:process.stdout.fd||1});else G=process.stdout;return{opts:X,stream:G}}}function Tb($,J){try{return JSON.stringify($)}catch(Q){try{return(J||this[kq])($)}catch(Y){return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Ib($,J,Q){return{level:$,bindings:J,log:Q}}function Ab($){let J=Number($);if(typeof $==="string"&&Number.isFinite(J))return J;if($===void 0)return 1;return $}sD.exports={noop:a4,buildSafeSonicBoom:UY,asChindings:Sb,asJson:Fb,genLog:_b,createArgsNormalizer:Pb,stringify:Tb,buildFormatters:Ib,normalizeDestFileDescriptor:Ab}});var HY=H0((VL0,rD)=>{var xb={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},bb={ASC:"ASC",DESC:"DESC"};rD.exports={DEFAULT_LEVELS:xb,SORTING_ORDER:bb}});var hq=H0((OL0,$w)=>{var{lsCacheSym:kb,levelValSym:yq,useOnlyCustomLevelsSym:yb,streamSym:vb,formattersSym:hb,hooksSym:gb,levelCompSym:tD}=r4(),{noop:mb,genLog:J9}=NY(),{DEFAULT_LEVELS:T5,SORTING_ORDER:aD}=HY(),eD={fatal:($)=>{let J=J9(T5.fatal,$);return function(...Q){let Y=this[vb];if(J.call(this,...Q),typeof Y.flushSync==="function")try{Y.flushSync()}catch(X){}}},error:($)=>J9(T5.error,$),warn:($)=>J9(T5.warn,$),info:($)=>J9(T5.info,$),debug:($)=>J9(T5.debug,$),trace:($)=>J9(T5.trace,$)},vq=Object.keys(T5).reduce(($,J)=>{return $[T5[J]]=J,$},{}),db=Object.keys(vq).reduce(($,J)=>{return $[J]='{"level":'+Number(J),$},{});function ub($){let J=$[hb].level,{labels:Q}=$.levels,Y={};for(let X in Q){let G=J(Q[X],Number(X));Y[X]=JSON.stringify(G).slice(0,-1)}return $[kb]=Y,$}function cb($,J){if(J)return!1;switch($){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function pb($){let{labels:J,values:Q}=this.levels;if(typeof $==="number"){if(J[$]===void 0)throw Error("unknown level value"+$);$=J[$]}if(Q[$]===void 0)throw Error("unknown level "+$);let Y=this[yq],X=this[yq]=Q[$],G=this[yb],W=this[tD],K=this[gb].logMethod;for(let q in Q){if(W(Q[q],X)===!1){this[q]=mb;continue}this[q]=cb(q,G)?eD[q](K):J9(Q[q],K)}this.emit("level-change",$,X,J[Y],Y,this)}function lb($){let{levels:J,levelVal:Q}=this;return J&&J.labels?J.labels[Q]:""}function nb($){let{values:J}=this.levels,Q=J[$];return Q!==void 0&&this[tD](Q,this[yq])}function ob($,J,Q){if($===aD.DESC)return J<=Q;return J>=Q}function ib($){if(typeof $==="string")return ob.bind(null,$);return $}function sb($=null,J=!1){let Q=$?Object.keys($).reduce((G,W)=>{return G[$[W]]=W,G},{}):null,Y=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),J?null:vq,Q),X=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),J?null:T5,$);return{labels:Y,values:X}}function rb($,J,Q){if(typeof $==="number"){if(![].concat(Object.keys(J||{}).map((G)=>J[G]),Q?[]:Object.keys(vq).map((G)=>+G),1/0).includes($))throw Error(`default level:${$} must be included in custom levels`);return}let Y=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),Q?null:T5,J);if(!($ in Y))throw Error(`default level:${$} must be included in custom levels`)}function tb($,J){let{labels:Q,values:Y}=$;for(let X in J){if(X in Y)throw Error("levels cannot be overridden");if(J[X]in Q)throw Error("pre-existing level values cannot be used for new levels")}}function ab($){if(typeof $==="function")return;if(typeof $==="string"&&Object.values(aD).includes($))return;throw Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}$w.exports={initialLsCache:db,genLsCache:ub,levelMethods:eD,getLevel:lb,setLevel:pb,isLevelEnabled:nb,mappings:sb,assertNoLevelCollisions:tb,assertDefaultLevelFound:rb,genLevelComparison:ib,assertLevelComparison:ab}});var gq=H0((DL0,Jw)=>{Jw.exports={version:"10.3.1"}});var Uw=H0((wL0,qw)=>{var{EventEmitter:eb}=k0("node:events"),{lsCacheSym:$k,levelValSym:Jk,setLevelSym:dq,getLevelSym:Qw,chindingsSym:ZY,mixinSym:Qk,asJsonSym:Xw,writeSym:Yk,mixinMergeStrategySym:Xk,timeSym:Gk,timeSliceIndexSym:Wk,streamSym:Gw,serializersSym:Q9,formattersSym:o7,errorKeySym:Kk,messageKeySym:qk,useOnlyCustomLevelsSym:Uk,needsMetadataGsym:Nk,redactFmtSym:Hk,stringifySym:fk,formatOptsSym:Zk,stringifiersSym:Mk,msgPrefixSym:uq,hooksSym:zk}=r4(),{getLevel:Vk,setLevel:Ok,isLevelEnabled:Dk,mappings:wk,initialLsCache:Ek,genLsCache:Rk,assertNoLevelCollisions:Bk}=hq(),{asChindings:cq,asJson:_k,buildFormatters:mq,stringify:Yw,noop:Ww}=NY(),{version:Lk}=gq(),Fk=wq(),Sk=class{},Kw={constructor:Sk,child:jk,bindings:Ck,setBindings:Pk,flush:Ak,isLevelEnabled:Dk,version:Lk,get level(){return this[Qw]()},set level($){this[dq]($)},get levelVal(){return this[Jk]},set levelVal($){throw Error("levelVal is read-only")},get msgPrefix(){return this[uq]},get[Symbol.toStringTag](){return"Pino"},[$k]:Ek,[Yk]:Ik,[Xw]:_k,[Qw]:Vk,[dq]:Ok};Object.setPrototypeOf(Kw,eb.prototype);qw.exports=function(){return Object.create(Kw)};var fY=($)=>$;function jk($,J){if(!$)throw Error("missing bindings for child Pino");let Q=this[Q9],Y=this[o7],X=Object.create(this);if(J==null){if(X[o7].bindings!==fY)X[o7]=mq(Y.level,fY,Y.log);if(X[ZY]=cq(X,$),this.onChild!==Ww)this.onChild(X);return X}if(J.hasOwnProperty("serializers")===!0){X[Q9]=Object.create(null);for(let U in Q)X[Q9][U]=Q[U];let K=Object.getOwnPropertySymbols(Q);for(var G=0;G<K.length;G++){let U=K[G];X[Q9][U]=Q[U]}for(let U in J.serializers)X[Q9][U]=J.serializers[U];let q=Object.getOwnPropertySymbols(J.serializers);for(var W=0;W<q.length;W++){let U=q[W];X[Q9][U]=J.serializers[U]}}else X[Q9]=Q;if(J.hasOwnProperty("formatters")){let{level:K,bindings:q,log:U}=J.formatters;X[o7]=mq(K||Y.level,q||fY,U||Y.log)}else X[o7]=mq(Y.level,fY,Y.log);if(J.hasOwnProperty("customLevels")===!0)Bk(this.levels,J.customLevels),X.levels=wk(J.customLevels,X[Uk]),Rk(X);if(typeof J.redact==="object"&&J.redact!==null||Array.isArray(J.redact)){X.redact=J.redact;let K=Fk(X.redact,Yw),q={stringify:K[Hk]};X[fk]=Yw,X[Mk]=K,X[Zk]=q}if(typeof J.msgPrefix==="string")X[uq]=(this[uq]||"")+J.msgPrefix;if(X[ZY]=cq(X,$),J.level!==void 0&&J.level!==this.level||J.hasOwnProperty("customLevels")){let K=J.level||this.level;X[dq](K)}return this.onChild(X),X}function Ck(){let J=`{${this[ZY].substr(1)}}`,Q=JSON.parse(J);return delete Q.pid,delete Q.hostname,Q}function Pk($){let J=cq(this,$);this[ZY]=J}function Tk($,J){return Object.assign(J,$)}function Ik($,J,Q){let Y=this[Gk](),X=this[Qk],G=this[Kk],W=this[qk],K=this[Xk]||Tk,q,U=this[zk].streamWrite;if($===void 0||$===null)q={};else if($ instanceof Error){if(q={[G]:$},J===void 0)J=$.message}else if(q=$,J===void 0&&$[W]===void 0&&$[G])J=$[G].message;if(X)q=K(q,X(q,Q,this));let N=this[Xw](q,J,Q,Y),H=this[Gw];if(H[Nk]===!0)H.lastLevel=Q,H.lastObj=q,H.lastMsg=J,H.lastTime=Y.slice(this[Wk]),H.lastLogger=this;H.write(U?U(N):N)}function Ak($){if($!=null&&typeof $!=="function")throw Error("callback must be a function");let J=this[Gw];if(typeof J.flush==="function")J.flush($||Ww);else if($)$()}});var Zw=H0((EL0,fw)=>{var{hasOwnProperty:i7}=Object.prototype,X9=nq();X9.configure=nq;X9.stringify=X9;X9.default=X9;EL0.stringify=X9;EL0.configure=nq;fw.exports=X9;var xk=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function $2($){if($.length<5000&&!xk.test($))return`"${$}"`;return JSON.stringify($)}function pq($,J){if($.length>200||J)return $.sort(J);for(let Q=1;Q<$.length;Q++){let Y=$[Q],X=Q;while(X!==0&&$[X-1]>Y)$[X]=$[X-1],X--;$[X]=Y}return $}var bk=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function lq($){return bk.call($)!==void 0&&$.length!==0}function Nw($,J,Q){if($.length<Q)Q=$.length;let Y=J===","?"":" ",X=`"0":${Y}${$[0]}`;for(let G=1;G<Q;G++)X+=`${J}"${G}":${Y}${$[G]}`;return X}function kk($){if(i7.call($,"circularValue")){let J=$.circularValue;if(typeof J==="string")return`"${J}"`;if(J==null)return J;if(J===Error||J===TypeError)return{toString(){throw TypeError("Converting circular structure to JSON")}};throw TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}function yk($){let J;if(i7.call($,"deterministic")){if(J=$.deterministic,typeof J!=="boolean"&&typeof J!=="function")throw TypeError('The "deterministic" argument must be of type boolean or comparator function')}return J===void 0?!0:J}function vk($,J){let Q;if(i7.call($,J)){if(Q=$[J],typeof Q!=="boolean")throw TypeError(`The "${J}" argument must be of type boolean`)}return Q===void 0?!0:Q}function Hw($,J){let Q;if(i7.call($,J)){if(Q=$[J],typeof Q!=="number")throw TypeError(`The "${J}" argument must be of type number`);if(!Number.isInteger(Q))throw TypeError(`The "${J}" argument must be an integer`);if(Q<1)throw RangeError(`The "${J}" argument must be >= 1`)}return Q===void 0?1/0:Q}function Y9($){if($===1)return"1 item";return`${$} items`}function hk($){let J=new Set;for(let Q of $)if(typeof Q==="string"||typeof Q==="number")J.add(String(Q));return J}function gk($){if(i7.call($,"strict")){let J=$.strict;if(typeof J!=="boolean")throw TypeError('The "strict" argument must be of type boolean');if(J)return(Q)=>{let Y=`Object can not safely be stringified. Received type ${typeof Q}`;if(typeof Q!=="function")Y+=` (${Q.toString()})`;throw Error(Y)}}}function nq($){$={...$};let J=gk($);if(J){if($.bigint===void 0)$.bigint=!1;if(!("circularValue"in $))$.circularValue=Error}let Q=kk($),Y=vk($,"bigint"),X=yk($),G=typeof X==="function"?X:void 0,W=Hw($,"maximumDepth"),K=Hw($,"maximumBreadth");function q(Z,M,D,R,O,E){let V=M[Z];if(typeof V==="object"&&V!==null&&typeof V.toJSON==="function")V=V.toJSON(Z);switch(V=R.call(M,Z,V),typeof V){case"string":return $2(V);case"object":{if(V===null)return"null";if(D.indexOf(V)!==-1)return Q;let w="",B=",",j=E;if(Array.isArray(V)){if(V.length===0)return"[]";if(W<D.length+1)return'"[Array]"';if(D.push(V),O!=="")E+=O,w+=`
67
+ caused by: `+AO(Y,J);else return Q},tI=($)=>AO($,new Set),xO=($,J,Q)=>{if(!n7($))return"";let Y=Q?"":$.message||"";if(J.has($))return Y+": ...";let X=Wq($);if(X){J.add($);let G=typeof $.cause==="function";return Y+(G?"":": ")+xO(X,J,G)}else return Y},aI=($)=>xO($,new Set);bO.exports={isErrorLike:n7,getErrorCause:Wq,stackWithCauses:tI,messageWithCauses:aI}});var qq=H0((i_0,yO)=>{var eI=Symbol("circular-ref-tag"),rQ=Symbol("pino-raw-err-ref"),kO=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[rQ]},set:function($){this[rQ]=$}}});Object.defineProperty(kO,rQ,{writable:!0,value:{}});yO.exports={pinoErrProto:kO,pinoErrorSymbols:{seen:eI,rawSymbol:rQ}}});var gO=H0((s_0,hO)=>{hO.exports=Nq;var{messageWithCauses:$A,stackWithCauses:JA,isErrorLike:vO}=Kq(),{pinoErrProto:QA,pinoErrorSymbols:YA}=qq(),{seen:Uq}=YA,{toString:XA}=Object.prototype;function Nq($){if(!vO($))return $;$[Uq]=void 0;let J=Object.create(QA);if(J.type=XA.call($.constructor)==="[object Function]"?$.constructor.name:$.name,J.message=$A($),J.stack=JA($),Array.isArray($.errors))J.aggregateErrors=$.errors.map((Q)=>Nq(Q));for(let Q in $)if(J[Q]===void 0){let Y=$[Q];if(vO(Y)){if(Q!=="cause"&&!Object.prototype.hasOwnProperty.call(Y,Uq))J[Q]=Nq(Y)}else J[Q]=Y}return delete $[Uq],J.raw=$,J}});var dO=H0((r_0,mO)=>{mO.exports=aQ;var{isErrorLike:Hq}=Kq(),{pinoErrProto:GA,pinoErrorSymbols:WA}=qq(),{seen:tQ}=WA,{toString:KA}=Object.prototype;function aQ($){if(!Hq($))return $;$[tQ]=void 0;let J=Object.create(GA);if(J.type=KA.call($.constructor)==="[object Function]"?$.constructor.name:$.name,J.message=$.message,J.stack=$.stack,Array.isArray($.errors))J.aggregateErrors=$.errors.map((Q)=>aQ(Q));if(Hq($.cause)&&!Object.prototype.hasOwnProperty.call($.cause,tQ))J.cause=aQ($.cause);for(let Q in $)if(J[Q]===void 0){let Y=$[Q];if(Hq(Y)){if(!Object.prototype.hasOwnProperty.call(Y,tQ))J[Q]=aQ(Y)}else J[Q]=Y}return delete $[tQ],J.raw=$,J}});var lO=H0((t_0,pO)=>{pO.exports={mapHttpRequest:qA,reqSerializer:cO};var fq=Symbol("pino-raw-req-ref"),uO=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[fq]},set:function($){this[fq]=$}}});Object.defineProperty(uO,fq,{writable:!0,value:{}});function cO($){let J=$.info||$.socket,Q=Object.create(uO);if(Q.id=typeof $.id==="function"?$.id():$.id||($.info?$.info.id:void 0),Q.method=$.method,$.originalUrl)Q.url=$.originalUrl;else{let Y=$.path;Q.url=typeof Y==="string"?Y:$.url?$.url.path||$.url:void 0}if($.query)Q.query=$.query;if($.params)Q.params=$.params;return Q.headers=$.headers,Q.remoteAddress=J&&J.remoteAddress,Q.remotePort=J&&J.remotePort,Q.raw=$.raw||$,Q}function qA($){return{req:cO($)}}});var sO=H0((a_0,iO)=>{iO.exports={mapHttpResponse:UA,resSerializer:oO};var Zq=Symbol("pino-raw-res-ref"),nO=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Zq]},set:function($){this[Zq]=$}}});Object.defineProperty(nO,Zq,{writable:!0,value:{}});function oO($){let J=Object.create(nO);return J.statusCode=$.headersSent?$.statusCode:null,J.headers=$.getHeaders?$.getHeaders():$._headers,J.raw=$,J}function UA($){return{res:oO($)}}});var zq=H0((e_0,rO)=>{var Mq=gO(),NA=dO(),eQ=lO(),$Y=sO();rO.exports={err:Mq,errWithCause:NA,mapHttpRequest:eQ.mapHttpRequest,mapHttpResponse:$Y.mapHttpResponse,req:eQ.reqSerializer,res:$Y.resSerializer,wrapErrorSerializer:function(J){if(J===Mq)return J;return function(Y){return J(Mq(Y))}},wrapRequestSerializer:function(J){if(J===eQ.reqSerializer)return J;return function(Y){return J(eQ.reqSerializer(Y))}},wrapResponseSerializer:function(J){if(J===$Y.resSerializer)return J;return function(Y){return J($Y.resSerializer(Y))}}}});var Vq=H0(($L0,tO)=>{function HA($,J){return J}tO.exports=function(){let J=Error.prepareStackTrace;Error.prepareStackTrace=HA;let Q=Error().stack;if(Error.prepareStackTrace=J,!Array.isArray(Q))return;let Y=Q.slice(2),X=[];for(let G of Y){if(!G)continue;X.push(G.getFileName())}return X}});var YD=H0((JL0,QD)=>{function Oq($){if($===null||typeof $!=="object")return $;if($ instanceof Date)return new Date($.getTime());if($ instanceof Array){let J=[];for(let Q=0;Q<$.length;Q++)J[Q]=Oq($[Q]);return J}if(typeof $==="object"){let J=Object.create(Object.getPrototypeOf($));for(let Q in $)if(Object.prototype.hasOwnProperty.call($,Q))J[Q]=Oq($[Q]);return J}return $}function aO($){let J=[],Q="",Y=!1,X=!1,G="";for(let W=0;W<$.length;W++){let K=$[W];if(!Y&&K==="."){if(Q)J.push(Q),Q=""}else if(K==="["){if(Q)J.push(Q),Q="";Y=!0}else if(K==="]"&&Y)J.push(Q),Q="",Y=!1,X=!1;else if((K==='"'||K==="'")&&Y)if(!X)X=!0,G=K;else if(K===G)X=!1,G="";else Q+=K;else Q+=K}if(Q)J.push(Q);return J}function eO($,J,Q){let Y=$;for(let G=0;G<J.length-1;G++){let W=J[G];if(typeof Y!=="object"||Y===null||!(W in Y))return!1;if(typeof Y[W]!=="object"||Y[W]===null)return!1;Y=Y[W]}let X=J[J.length-1];if(X==="*"){if(Array.isArray(Y))for(let G=0;G<Y.length;G++)Y[G]=Q;else if(typeof Y==="object"&&Y!==null){for(let G in Y)if(Object.prototype.hasOwnProperty.call(Y,G))Y[G]=Q}}else if(typeof Y==="object"&&Y!==null&&X in Y&&Object.prototype.hasOwnProperty.call(Y,X))Y[X]=Q;return!0}function $D($,J){let Q=$;for(let X=0;X<J.length-1;X++){let G=J[X];if(typeof Q!=="object"||Q===null||!(G in Q))return!1;if(typeof Q[G]!=="object"||Q[G]===null)return!1;Q=Q[G]}let Y=J[J.length-1];if(Y==="*"){if(Array.isArray(Q))for(let X=0;X<Q.length;X++)Q[X]=void 0;else if(typeof Q==="object"&&Q!==null){for(let X in Q)if(Object.prototype.hasOwnProperty.call(Q,X))delete Q[X]}}else if(typeof Q==="object"&&Q!==null&&Y in Q&&Object.prototype.hasOwnProperty.call(Q,Y))delete Q[Y];return!0}var JY=Symbol("PATH_NOT_FOUND");function fA($,J){let Q=$;for(let Y of J){if(Q===null||Q===void 0)return JY;if(typeof Q!=="object"||Q===null)return JY;if(!(Y in Q))return JY;Q=Q[Y]}return Q}function ZA($,J){let Q=$;for(let Y of J){if(Q===null||Q===void 0)return;if(typeof Q!=="object"||Q===null)return;Q=Q[Y]}return Q}function MA($,J,Q,Y=!1){for(let X of J){let G=aO(X);if(G.includes("*"))JD($,G,Q,X,Y);else if(Y)$D($,G);else{let W=fA($,G);if(W===JY)continue;let K=typeof Q==="function"?Q(W,G):Q;eO($,G,K)}}}function JD($,J,Q,Y,X=!1){let G=J.indexOf("*");if(G===J.length-1){let W=J.slice(0,-1),K=$;for(let q of W){if(K===null||K===void 0)return;if(typeof K!=="object"||K===null)return;K=K[q]}if(Array.isArray(K))if(X)for(let q=0;q<K.length;q++)K[q]=void 0;else for(let q=0;q<K.length;q++){let U=[...W,q.toString()],N=typeof Q==="function"?Q(K[q],U):Q;K[q]=N}else if(typeof K==="object"&&K!==null)if(X){let q=[];for(let U in K)if(Object.prototype.hasOwnProperty.call(K,U))q.push(U);for(let U of q)delete K[U]}else for(let q in K){let U=[...W,q],N=typeof Q==="function"?Q(K[q],U):Q;K[q]=N}}else zA($,J,Q,G,Y,X)}function zA($,J,Q,Y,X,G=!1){let W=J.slice(0,Y),K=J.slice(Y+1),q=[];function U(N,H){if(H===W.length){if(Array.isArray(N))for(let f=0;f<N.length;f++)q[H]=f.toString(),U(N[f],H+1);else if(typeof N==="object"&&N!==null)for(let f in N)q[H]=f,U(N[f],H+1)}else if(H<W.length){let f=W[H];if(N&&typeof N==="object"&&N!==null&&f in N)q[H]=f,U(N[f],H+1)}else if(K.includes("*"))JD(N,K,typeof Q==="function"?(Z,M)=>{let D=[...q.slice(0,H),...M];return Q(Z,D)}:Q,X,G);else if(G)$D(N,K);else{let f=typeof Q==="function"?Q(ZA(N,K),[...q.slice(0,H),...K]):Q;eO(N,K,f)}}if(W.length===0)U($,0);else{let N=$;for(let H=0;H<W.length;H++){let f=W[H];if(N===null||N===void 0)return;if(typeof N!=="object"||N===null)return;N=N[f],q[H]=f}if(N!==null&&N!==void 0)U(N,W.length)}}function VA($){if($.length===0)return null;let J=new Map;for(let Q of $){let Y=aO(Q),X=J;for(let G=0;G<Y.length;G++){let W=Y[G];if(!X.has(W))X.set(W,new Map);X=X.get(W)}}return J}function OA($,J){if(!J)return $;function Q(Y,X,G=0){if(!X||X.size===0)return Y;if(Y===null||typeof Y!=="object")return Y;if(Y instanceof Date)return new Date(Y.getTime());if(Array.isArray(Y)){let K=[];for(let q=0;q<Y.length;q++){let U=q.toString();if(X.has(U)||X.has("*"))K[q]=Q(Y[q],X.get(U)||X.get("*"));else K[q]=Y[q]}return K}let W=Object.create(Object.getPrototypeOf(Y));for(let K in Y)if(Object.prototype.hasOwnProperty.call(Y,K))if(X.has(K)||X.has("*"))W[K]=Q(Y[K],X.get(K)||X.get("*"));else W[K]=Y[K];return W}return Q($,J)}function DA($){if(typeof $!=="string")throw Error("Paths must be (non-empty) strings");if($==="")throw Error("Invalid redaction path ()");if($.includes(".."))throw Error(`Invalid redaction path (${$})`);if($.includes(","))throw Error(`Invalid redaction path (${$})`);let J=0,Q=!1,Y="";for(let X=0;X<$.length;X++){let G=$[X];if((G==='"'||G==="'")&&J>0){if(!Q)Q=!0,Y=G;else if(G===Y)Q=!1,Y=""}else if(G==="["&&!Q)J++;else if(G==="]"&&!Q){if(J--,J<0)throw Error(`Invalid redaction path (${$})`)}}if(J!==0)throw Error(`Invalid redaction path (${$})`)}function wA($){if(!Array.isArray($))throw TypeError("paths must be an array");for(let J of $)DA(J)}function EA($={}){let{paths:J=[],censor:Q="[REDACTED]",serialize:Y=JSON.stringify,strict:X=!0,remove:G=!1}=$;wA(J);let W=VA(J);return function(q){if(X&&(q===null||typeof q!=="object")){if(q===null||q===void 0)return Y?Y(q):q;if(typeof q!=="object")return Y?Y(q):q}let U=OA(q,W),N=q,H=Q;if(typeof Q==="function")H=Q;if(MA(U,J,H,G),Y===!1)return U.restore=function(){return Oq(N)},U;if(typeof Y==="function")return Y(U);return JSON.stringify(U)}}QD.exports=EA});var r4=H0((QL0,XD)=>{var RA=Symbol("pino.setLevel"),BA=Symbol("pino.getLevel"),_A=Symbol("pino.levelVal"),LA=Symbol("pino.levelComp"),FA=Symbol("pino.useLevelLabels"),SA=Symbol("pino.useOnlyCustomLevels"),jA=Symbol("pino.mixin"),CA=Symbol("pino.lsCache"),PA=Symbol("pino.chindings"),TA=Symbol("pino.asJson"),IA=Symbol("pino.write"),AA=Symbol("pino.redactFmt"),xA=Symbol("pino.time"),bA=Symbol("pino.timeSliceIndex"),kA=Symbol("pino.stream"),yA=Symbol("pino.stringify"),vA=Symbol("pino.stringifySafe"),hA=Symbol("pino.stringifiers"),gA=Symbol("pino.end"),mA=Symbol("pino.formatOpts"),dA=Symbol("pino.messageKey"),uA=Symbol("pino.errorKey"),cA=Symbol("pino.nestedKey"),pA=Symbol("pino.nestedKeyStr"),lA=Symbol("pino.mixinMergeStrategy"),nA=Symbol("pino.msgPrefix"),oA=Symbol("pino.wildcardFirst"),iA=Symbol.for("pino.serializers"),sA=Symbol.for("pino.formatters"),rA=Symbol.for("pino.hooks"),tA=Symbol.for("pino.metadata");XD.exports={setLevelSym:RA,getLevelSym:BA,levelValSym:_A,levelCompSym:LA,useLevelLabelsSym:FA,mixinSym:jA,lsCacheSym:CA,chindingsSym:PA,asJsonSym:TA,writeSym:IA,serializersSym:iA,redactFmtSym:AA,timeSym:xA,timeSliceIndexSym:bA,streamSym:kA,stringifySym:yA,stringifySafeSym:vA,stringifiersSym:hA,endSym:gA,formatOptsSym:mA,messageKeySym:dA,errorKeySym:uA,nestedKeySym:cA,wildcardFirstSym:oA,needsMetadataGsym:tA,useOnlyCustomLevelsSym:SA,formattersSym:sA,hooksSym:rA,nestedKeyStrSym:pA,mixinMergeStrategySym:lA,msgPrefixSym:nA}});var wq=H0((YL0,WD)=>{var GD=YD(),{redactFmtSym:aA,wildcardFirstSym:QY}=r4(),Dq=/[^.[\]]+|\[([^[\]]*?)\]/g;function eA($,J){let{paths:Q,censor:Y,remove:X}=$x($),G=Q.reduce((q,U)=>{Dq.lastIndex=0;let N=Dq.exec(U),H=Dq.exec(U),f=N[1]!==void 0?N[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):N[0];if(f==="*")f=QY;if(H===null)return q[f]=null,q;if(q[f]===null)return q;let{index:Z}=H,M=`${U.substr(Z,U.length-1)}`;if(q[f]=q[f]||[],f!==QY&&q[f].length===0)q[f].push(...q[QY]||[]);if(f===QY)Object.keys(q).forEach(function(D){if(q[D])q[D].push(M)});return q[f].push(M),q},{}),W={[aA]:GD({paths:Q,censor:Y,serialize:J,strict:!1,remove:X})},K=(...q)=>{return typeof Y==="function"?J(Y(...q)):J(Y)};return[...Object.keys(G),...Object.getOwnPropertySymbols(G)].reduce((q,U)=>{if(G[U]===null)q[U]=(N)=>K(N,[U]);else{let N=typeof Y==="function"?(H,f)=>{return Y(H,[U,...f])}:Y;q[U]=GD({paths:G[U],censor:N,serialize:J,strict:!1,remove:X})}return q},W)}function $x($){if(Array.isArray($))return $={paths:$,censor:"[Redacted]"},$;let{paths:J,censor:Q="[Redacted]",remove:Y}=$;if(Array.isArray(J)===!1)throw Error("pino – redact must contain an array of strings");if(Y===!0)Q=void 0;return{paths:J,censor:Q,remove:Y}}WD.exports=eA});var UD=H0((XL0,qD)=>{var Jx=()=>"",Qx=()=>`,"time":${Date.now()}`,Yx=()=>`,"time":${Math.round(Date.now()/1000)}`,Xx=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,Gx=1000000n,KD=1000000000n,Wx=BigInt(Date.now())*Gx,Kx=process.hrtime.bigint(),qx=()=>{let $=process.hrtime.bigint()-Kx,J=Wx+$,Q=J/KD,Y=J%KD,X=Number(Q*1000n+Y/1000000n),G=new Date(X),W=G.getUTCFullYear(),K=(G.getUTCMonth()+1).toString().padStart(2,"0"),q=G.getUTCDate().toString().padStart(2,"0"),U=G.getUTCHours().toString().padStart(2,"0"),N=G.getUTCMinutes().toString().padStart(2,"0"),H=G.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${W}-${K}-${q}T${U}:${N}:${H}.${Y.toString().padStart(9,"0")}Z"`};qD.exports={nullTime:Jx,epochTime:Qx,unixTime:Yx,isoTime:Xx,isoTimeNano:qx}});var HD=H0((GL0,ND)=>{function Ux($){try{return JSON.stringify($)}catch(J){return'"[Circular]"'}}ND.exports=Nx;function Nx($,J,Q){var Y=Q&&Q.stringify||Ux,X=1;if(typeof $==="object"&&$!==null){var G=J.length+X;if(G===1)return $;var W=Array(G);W[0]=Y($);for(var K=1;K<G;K++)W[K]=Y(J[K]);return W.join(" ")}if(typeof $!=="string")return $;var q=J.length;if(q===0)return $;var U="",N=1-X,H=-1,f=$&&$.length||0;for(var Z=0;Z<f;){if($.charCodeAt(Z)===37&&Z+1<f){switch(H=H>-1?H:0,$.charCodeAt(Z+1)){case 100:case 102:if(N>=q)break;if(J[N]==null)break;if(H<Z)U+=$.slice(H,Z);U+=Number(J[N]),H=Z+2,Z++;break;case 105:if(N>=q)break;if(J[N]==null)break;if(H<Z)U+=$.slice(H,Z);U+=Math.floor(Number(J[N])),H=Z+2,Z++;break;case 79:case 111:case 106:if(N>=q)break;if(J[N]===void 0)break;if(H<Z)U+=$.slice(H,Z);var M=typeof J[N];if(M==="string"){U+="'"+J[N]+"'",H=Z+2,Z++;break}if(M==="function"){U+=J[N].name||"<anonymous>",H=Z+2,Z++;break}U+=Y(J[N]),H=Z+2,Z++;break;case 115:if(N>=q)break;if(H<Z)U+=$.slice(H,Z);U+=String(J[N]),H=Z+2,Z++;break;case 37:if(H<Z)U+=$.slice(H,Z);U+="%",H=Z+2,Z++,N--;break}++N}++Z}if(H===-1)return $;else if(H<f)U+=$.slice(H);return U}});var Rq=H0((WL0,Eq)=>{if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let J=function(Q){if((Q>0&&Q<1/0)===!1){if(typeof Q!=="number"&&typeof Q!=="bigint")throw TypeError("sleep: ms must be a number");throw RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity")}Atomics.wait($,0,0,Number(Q))},$=new Int32Array(new SharedArrayBuffer(4));Eq.exports=J}else{let $=function(J){if((J>0&&J<1/0)===!1){if(typeof J!=="number"&&typeof J!=="bigint")throw TypeError("sleep: ms must be a number");throw RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity")}let Y=Date.now()+Number(J);while(Y>Date.now());};Eq.exports=$}});var OD=H0((KL0,VD)=>{var u0=k0("fs"),Hx=k0("events"),fx=k0("util").inherits,fD=k0("path"),_q=Rq(),Zx=k0("assert"),YY=Buffer.allocUnsafe(0),[Mx,zx]=(process.versions.node||"0.0").split(".").map(Number),Vx=Mx>=22&&zx>=7;function ZD($,J){J._opening=!0,J._writing=!0,J._asyncDrainScheduled=!1;function Q(G,W){if(G){if(J._reopening=!1,J._writing=!1,J._opening=!1,J.sync)process.nextTick(()=>{if(J.listenerCount("error")>0)J.emit("error",G)});else J.emit("error",G);return}let K=J._reopening;if(J.fd=W,J.file=$,J._reopening=!1,J._opening=!1,J._writing=!1,J.sync)process.nextTick(()=>J.emit("ready"));else J.emit("ready");if(J.destroyed)return;if(!J._writing&&J._len>J.minLength||J._flushPending)J._actualWrite();else if(K)process.nextTick(()=>J.emit("drain"))}let Y=J.append?"a":"w",X=J.mode;if(J.sync)try{if(J.mkdir)u0.mkdirSync(fD.dirname($),{recursive:!0});let G=u0.openSync($,Y,X);Q(null,G)}catch(G){throw Q(G),G}else if(J.mkdir)u0.mkdir(fD.dirname($),{recursive:!0},(G)=>{if(G)return Q(G);u0.open($,Y,X,Q)});else u0.open($,Y,X,Q)}function t6($){if(!(this instanceof t6))return new t6($);let{fd:J,dest:Q,minLength:Y,maxLength:X,maxWrite:G,periodicFlush:W,sync:K,append:q=!0,mkdir:U,retryEAGAIN:N,fsync:H,contentMode:f,mode:Z}=$||{};J=J||Q,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(Y||0,16387),this.file=null,this.destroyed=!1,this.minLength=Y||0,this.maxLength=X||0,this.maxWrite=G||16384,this._periodicFlush=W||0,this._periodicFlushTimer=void 0,this.sync=K||!1,this.writable=!0,this._fsync=H||!1,this.append=q||!1,this.mode=Z,this.retryEAGAIN=N||(()=>!0),this.mkdir=U||!1;let M,D;if(f==="buffer")this._writingBuf=YY,this.write=wx,this.flush=Rx,this.flushSync=_x,this._actualWrite=Fx,M=()=>u0.writeSync(this.fd,this._writingBuf),D=()=>u0.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f==="utf8")this._writingBuf="",this.write=Dx,this.flush=Ex,this.flushSync=Bx,this._actualWrite=Lx,M=()=>{if(Buffer.isBuffer(this._writingBuf))return u0.writeSync(this.fd,this._writingBuf);return u0.writeSync(this.fd,this._writingBuf,"utf8")},D=()=>{if(Buffer.isBuffer(this._writingBuf))return u0.write(this.fd,this._writingBuf,this.release);return u0.write(this.fd,this._writingBuf,"utf8",this.release)};else throw Error(`SonicBoom supports "utf8" and "buffer", but passed ${f}`);if(typeof J==="number")this.fd=J,process.nextTick(()=>this.emit("ready"));else if(typeof J==="string")ZD(J,this);else throw Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);if(this.release=(R,O)=>{if(R){if((R.code==="EAGAIN"||R.code==="EBUSY")&&this.retryEAGAIN(R,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{_q(100),this.release(void 0,0)}catch(w){this.release(w)}else setTimeout(D,100);else this._writing=!1,this.emit("error",R);return}this.emit("write",O);let E=Bq(this._writingBuf,this._len,O);if(this._len=E.len,this._writingBuf=E.writingBuf,this._writingBuf.length){if(!this.sync){D();return}try{do{let w=M(),B=Bq(this._writingBuf,this._len,w);this._len=B.len,this._writingBuf=B.writingBuf}while(this._writingBuf.length)}catch(w){this.release(w);return}}if(this._fsync)u0.fsyncSync(this.fd);let V=this._len;if(this._reopening)this._writing=!1,this._reopening=!1,this.reopen();else if(V>this.minLength)this._actualWrite();else if(this._ending)if(V>0)this._actualWrite();else this._writing=!1,XY(this);else if(this._writing=!1,this.sync){if(!this._asyncDrainScheduled)this._asyncDrainScheduled=!0,process.nextTick(Ox,this)}else this.emit("drain")},this.on("newListener",function(R){if(R==="drain")this._asyncDrainScheduled=!1}),this._periodicFlush!==0)this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref()}function Bq($,J,Q){if(typeof $==="string")$=Buffer.from($);return J=Math.max(J-Q,0),$=$.subarray(Q),{writingBuf:$,len:J}}function Ox($){if(!($.listenerCount("drain")>0))return;$._asyncDrainScheduled=!1,$.emit("drain")}fx(t6,Hx);function MD($,J){if($.length===0)return YY;if($.length===1)return $[0];return Buffer.concat($,J)}function Dx($){if(this.destroyed)throw Error("SonicBoom destroyed");$=""+$;let J=Buffer.byteLength($),Q=this._len+J,Y=this._bufs;if(this.maxLength&&Q>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(Y.length===0||Buffer.byteLength(Y[Y.length-1])+J>this.maxWrite)Y.push($);else Y[Y.length-1]+=$;if(this._len=Q,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function wx($){if(this.destroyed)throw Error("SonicBoom destroyed");let J=this._len+$.length,Q=this._bufs,Y=this._lens;if(this.maxLength&&J>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(Q.length===0||Y[Y.length-1]+$.length>this.maxWrite)Q.push([$]),Y.push($.length);else Q[Q.length-1].push($),Y[Y.length-1]+=$.length;if(this._len=J,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function zD($){this._flushPending=!0;let J=()=>{if(!this._fsync)try{u0.fsync(this.fd,(Y)=>{this._flushPending=!1,$(Y)})}catch(Y){$(Y)}else this._flushPending=!1,$();this.off("error",Q)},Q=(Y)=>{this._flushPending=!1,$(Y),this.off("drain",J)};this.once("drain",J),this.once("error",Q)}function Ex($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let J=Error("SonicBoom destroyed");if($){$(J);return}throw J}if(this.minLength<=0){$?.();return}if($)zD.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push("");this._actualWrite()}function Rx($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let J=Error("SonicBoom destroyed");if($){$(J);return}throw J}if(this.minLength<=0){$?.();return}if($)zD.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push([]),this._lens.push(0);this._actualWrite()}t6.prototype.reopen=function($){if(this.destroyed)throw Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen($)});return}if(this._ending)return;if(!this.file)throw Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if($)this.file=$;if(this._reopening=!0,this._writing)return;let J=this.fd;this.once("ready",()=>{if(J!==this.fd)u0.close(J,(Q)=>{if(Q)return this.emit("error",Q)})}),ZD(this.file,this)};t6.prototype.end=function(){if(this.destroyed)throw Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}if(this._ending)return;if(this._ending=!0,this._writing)return;if(this._len>0&&this.fd>=0)this._actualWrite();else XY(this)};function Bx(){if(this.destroyed)throw Error("SonicBoom destroyed");if(this.fd<0)throw Error("sonic boom is not ready yet");if(!this._writing&&this._writingBuf.length>0)this._bufs.unshift(this._writingBuf),this._writingBuf="";let $="";while(this._bufs.length||$.length){if($.length<=0)$=this._bufs[0];try{let J=Buffer.isBuffer($)?u0.writeSync(this.fd,$):u0.writeSync(this.fd,$,"utf8"),Q=Bq($,this._len,J);if($=Q.writingBuf,this._len=Q.len,$.length<=0)this._bufs.shift()}catch(J){if((J.code==="EAGAIN"||J.code==="EBUSY")&&!this.retryEAGAIN(J,$.length,this._len-$.length))throw J;_q(100)}}try{u0.fsyncSync(this.fd)}catch{}}function _x(){if(this.destroyed)throw Error("SonicBoom destroyed");if(this.fd<0)throw Error("sonic boom is not ready yet");if(!this._writing&&this._writingBuf.length>0)this._bufs.unshift([this._writingBuf]),this._writingBuf=YY;let $=YY;while(this._bufs.length||$.length){if($.length<=0)$=MD(this._bufs[0],this._lens[0]);try{let J=u0.writeSync(this.fd,$);if($=$.subarray(J),this._len=Math.max(this._len-J,0),$.length<=0)this._bufs.shift(),this._lens.shift()}catch(J){if((J.code==="EAGAIN"||J.code==="EBUSY")&&!this.retryEAGAIN(J,$.length,this._len-$.length))throw J;_q(100)}}}t6.prototype.destroy=function(){if(this.destroyed)return;XY(this)};function Lx(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let J=Buffer.isBuffer(this._writingBuf)?u0.writeSync(this.fd,this._writingBuf):u0.writeSync(this.fd,this._writingBuf,"utf8");$(null,J)}catch(J){$(J)}else u0.write(this.fd,this._writingBuf,$)}function Fx(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:MD(this._bufs.shift(),this._lens.shift()),this.sync)try{let J=u0.writeSync(this.fd,this._writingBuf);$(null,J)}catch(J){$(J)}else{if(Vx)this._writingBuf=Buffer.from(this._writingBuf);u0.write(this.fd,this._writingBuf,$)}}function XY($){if($.fd===-1){$.once("ready",XY.bind(null,$));return}if($._periodicFlushTimer!==void 0)clearInterval($._periodicFlushTimer);$.destroyed=!0,$._bufs=[],$._lens=[],Zx(typeof $.fd==="number",`sonic.fd must be a number, got ${typeof $.fd}`);try{u0.fsync($.fd,J)}catch{}function J(){if($.fd!==1&&$.fd!==2)u0.close($.fd,Q);else Q()}function Q(Y){if(Y){$.emit("error",Y);return}if($._ending&&!$._writing)$.emit("finish");$.emit("close")}}t6.SonicBoom=t6;t6.default=t6;VD.exports=t6});var Lq=H0((qL0,BD)=>{var a6={exit:[],beforeExit:[]},DD={exit:Cx,beforeExit:Px},t4;function Sx(){if(t4===void 0)t4=new FinalizationRegistry(Tx)}function jx($){if(a6[$].length>0)return;process.on($,DD[$])}function wD($){if(a6[$].length>0)return;if(process.removeListener($,DD[$]),a6.exit.length===0&&a6.beforeExit.length===0)t4=void 0}function Cx(){ED("exit")}function Px(){ED("beforeExit")}function ED($){for(let J of a6[$]){let Q=J.deref(),Y=J.fn;if(Q!==void 0)Y(Q,$)}a6[$]=[]}function Tx($){for(let J of["exit","beforeExit"]){let Q=a6[J].indexOf($);a6[J].splice(Q,Q+1),wD(J)}}function RD($,J,Q){if(J===void 0)throw Error("the object can't be undefined");jx($);let Y=new WeakRef(J);Y.fn=Q,Sx(),t4.register(J,Y),a6[$].push(Y)}function Ix($,J){RD("exit",$,J)}function Ax($,J){RD("beforeExit",$,J)}function xx($){if(t4===void 0)return;t4.unregister($);for(let J of["exit","beforeExit"])a6[J]=a6[J].filter((Q)=>{let Y=Q.deref();return Y&&Y!==$}),wD(J)}BD.exports={register:Ix,registerBeforeExit:Ax,unregister:xx}});var _D=H0((UL0,bx)=>{bx.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina <hello@matteocollina.com>",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var FD=H0((NL0,LD)=>{function kx($,J,Q,Y,X){let G=Y===1/0?1/0:Date.now()+Y,W=()=>{let K=Atomics.load($,J);if(K===Q){X(null,"ok");return}if(G!==1/0&&Date.now()>G){X(null,"timed-out");return}let q=G===1/0?1e4:Math.min(1e4,Math.max(1,G-Date.now())),U=Atomics.waitAsync($,J,K,q);if(U.async)U.value.then(W);else setImmediate(W)};W()}function yx($,J,Q,Y,X){let G=Y===1/0?1/0:Date.now()+Y,W=()=>{if(Atomics.load($,J)!==Q){X(null,"ok");return}if(G!==1/0&&Date.now()>G){X(null,"timed-out");return}let q=G===1/0?1e4:Math.min(1e4,Math.max(1,G-Date.now())),U=Atomics.waitAsync($,J,Q,q);if(U.async)U.value.then(W);else setImmediate(W)};W()}LD.exports={wait:kx,waitDiff:yx}});var jD=H0((HL0,SD)=>{SD.exports={WRITE_INDEX:4,READ_INDEX:8}});var xD=H0((fL0,AD)=>{var __dirname="/home/runner/work/morpho-agent/morpho-agent/node_modules/.bun/thread-stream@4.0.0/node_modules/thread-stream",{version:vx}=_D(),{EventEmitter:hx}=k0("events"),{Worker:gx}=k0("worker_threads"),{join:mx}=k0("path"),{pathToFileURL:dx}=k0("url"),{wait:ux}=FD(),{WRITE_INDEX:Y6,READ_INDEX:Q6}=jD(),cx=k0("buffer"),px=k0("assert"),y=Symbol("kImpl"),lx=cx.constants.MAX_STRING_LENGTH;class WY{constructor($){this._value=$}deref(){return this._value}}class Sq{register(){}unregister(){}}var nx=process.env.NODE_V8_COVERAGE?Sq:global.FinalizationRegistry||Sq,ox=process.env.NODE_V8_COVERAGE?WY:global.WeakRef||WY,CD=new nx(($)=>{if($.exited)return;$.terminate()});function ix($,J){let{filename:Q,workerData:Y}=J,G=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||mx(__dirname,"lib","worker.js"),W=new gx(G,{...J.workerOpts,trackUnmanagedFds:!1,workerData:{filename:Q.indexOf("file://")===0?Q:dx(Q).href,dataBuf:$[y].dataBuf,stateBuf:$[y].stateBuf,workerData:{$context:{threadStreamVersion:vx},...Y}}});return W.stream=new WY($),W.on("message",sx),W.on("exit",TD),CD.register($,W),W}function PD($){if(px(!$[y].sync),$[y].needDrain)$[y].needDrain=!1,$.emit("drain")}function GY($){let J=Atomics.load($[y].state,Y6),Q=$[y].data.length-J;if(Q>0){if($[y].buf.length===0){if($[y].flushing=!1,$[y].ending)Pq($);else if($[y].needDrain)process.nextTick(PD,$);return}let Y=$[y].buf.slice(0,Q),X=Buffer.byteLength(Y);if(X<=Q)$[y].buf=$[y].buf.slice(Q),KY($,Y,GY.bind(null,$));else $.flush(()=>{if($.destroyed)return;Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6);while(X>$[y].data.length)Q=Q/2,Y=$[y].buf.slice(0,Q),X=Buffer.byteLength(Y);$[y].buf=$[y].buf.slice(Q),KY($,Y,GY.bind(null,$))})}else if(Q===0){if(J===0&&$[y].buf.length===0)return;$.flush(()=>{Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6),GY($)})}else P5($,Error("overwritten"))}function sx($){let J=this.stream.deref();if(J===void 0){this.exited=!0,this.terminate();return}switch($.code){case"READY":this.stream=new ox(J),J.flush(()=>{J[y].ready=!0,J.emit("ready")});break;case"ERROR":P5(J,$.err);break;case"EVENT":if(Array.isArray($.args))J.emit($.name,...$.args);else J.emit($.name,$.args);break;case"WARNING":process.emitWarning($.err);break;default:P5(J,Error("this should not happen: "+$.code))}}function TD($){let J=this.stream.deref();if(J===void 0)return;CD.unregister(J),J.worker.exited=!0,J.worker.off("exit",TD),P5(J,$!==0?Error("the worker thread exited"):null)}class ID extends hx{constructor($={}){super();if($.bufferSize<4)throw Error("bufferSize must at least fit a 4-byte utf-8 char");this[y]={},this[y].stateBuf=new SharedArrayBuffer(128),this[y].state=new Int32Array(this[y].stateBuf),this[y].dataBuf=new SharedArrayBuffer($.bufferSize||4194304),this[y].data=Buffer.from(this[y].dataBuf),this[y].sync=$.sync||!1,this[y].ending=!1,this[y].ended=!1,this[y].needDrain=!1,this[y].destroyed=!1,this[y].flushing=!1,this[y].ready=!1,this[y].finished=!1,this[y].errored=null,this[y].closed=!1,this[y].buf="",this.worker=ix(this,$),this.on("message",(J,Q)=>{this.worker.postMessage(J,Q)})}write($){if(this[y].destroyed)return jq(this,Error("the worker has exited")),!1;if(this[y].ending)return jq(this,Error("the worker is ending")),!1;if(this[y].flushing&&this[y].buf.length+$.length>=lx)try{Fq(this),this[y].flushing=!0}catch(J){return P5(this,J),!1}if(this[y].buf+=$,this[y].sync)try{return Fq(this),!0}catch(J){return P5(this,J),!1}if(!this[y].flushing)this[y].flushing=!0,setImmediate(GY,this);return this[y].needDrain=this[y].data.length-this[y].buf.length-Atomics.load(this[y].state,Y6)<=0,!this[y].needDrain}end(){if(this[y].destroyed)return;this[y].ending=!0,Pq(this)}flush($){if(this[y].destroyed){if(typeof $==="function")process.nextTick($,Error("the worker has exited"));return}let J=Atomics.load(this[y].state,Y6);ux(this[y].state,Q6,J,1/0,(Q,Y)=>{if(Q){P5(this,Q),process.nextTick($,Q);return}if(Y==="not-equal"){this.flush($);return}process.nextTick($)})}flushSync(){if(this[y].destroyed)return;Fq(this),Cq(this)}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[y].ready}get destroyed(){return this[y].destroyed}get closed(){return this[y].closed}get writable(){return!this[y].destroyed&&!this[y].ending}get writableEnded(){return this[y].ending}get writableFinished(){return this[y].finished}get writableNeedDrain(){return this[y].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[y].errored}}function jq($,J){setImmediate(()=>{$.emit("error",J)})}function P5($,J){if($[y].destroyed)return;if($[y].destroyed=!0,J)$[y].errored=J,jq($,J);if(!$.worker.exited)$.worker.terminate().catch(()=>{}).then(()=>{$[y].closed=!0,$.emit("close")});else setImmediate(()=>{$[y].closed=!0,$.emit("close")})}function KY($,J,Q){let Y=Atomics.load($[y].state,Y6),X=Buffer.byteLength(J);return $[y].data.write(J,Y),Atomics.store($[y].state,Y6,Y+X),Atomics.notify($[y].state,Y6),Q(),!0}function Pq($){if($[y].ended||!$[y].ending||$[y].flushing)return;$[y].ended=!0;try{$.flushSync();let J=Atomics.load($[y].state,Q6);Atomics.store($[y].state,Y6,-1),Atomics.notify($[y].state,Y6);let Q=0;while(J!==-1){if(Atomics.wait($[y].state,Q6,J,1000),J=Atomics.load($[y].state,Q6),J===-2){P5($,Error("end() failed"));return}if(++Q===10){P5($,Error("end() took too long (10s)"));return}}process.nextTick(()=>{$[y].finished=!0,$.emit("finish")})}catch(J){P5($,J)}}function Fq($){let J=()=>{if($[y].ending)Pq($);else if($[y].needDrain)process.nextTick(PD,$)};$[y].flushing=!1;while($[y].buf.length!==0){let Q=Atomics.load($[y].state,Y6),Y=$[y].data.length-Q;if(Y===0){Cq($),Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6);continue}else if(Y<0)throw Error("overwritten");let X=$[y].buf.slice(0,Y),G=Buffer.byteLength(X);if(G<=Y)$[y].buf=$[y].buf.slice(Y),KY($,X,J);else{Cq($),Atomics.store($[y].state,Q6,0),Atomics.store($[y].state,Y6,0),Atomics.notify($[y].state,Q6);while(G>$[y].buf.length)Y=Y/2,X=$[y].buf.slice(0,Y),G=Buffer.byteLength(X);$[y].buf=$[y].buf.slice(Y),KY($,X,J)}}}function Cq($){if($[y].flushing)throw Error("unable to flush while flushing");let J=Atomics.load($[y].state,Y6),Q=0;while(!0){let Y=Atomics.load($[y].state,Q6);if(Y===-2)throw Error("_flushSync failed");if(Y!==J)Atomics.wait($[y].state,Q6,Y,1000);else break;if(++Q===10)throw Error("_flushSync took too long (10s)")}}AD.exports=ID});var Aq=H0((ZL0,yD)=>{var __dirname="/home/runner/work/morpho-agent/morpho-agent/node_modules/.bun/pino@10.3.1/node_modules/pino/lib",{createRequire:rx}=k0("module"),{existsSync:tx}=k0("node:fs"),ax=Vq(),{join:Tq,isAbsolute:kD,sep:ex}=k0("node:path"),{fileURLToPath:$b}=k0("node:url"),Jb=Rq(),Iq=Lq(),Qb=xD();function Yb($){Iq.register($,qb),Iq.registerBeforeExit($,Ub),$.on("close",function(){Iq.unregister($)})}function Xb(){let $=process.execArgv;for(let J=0;J<$.length;J++){let Q=$[J];if(Q==="--import"||Q==="--require"||Q==="-r")return!0;if(Q.startsWith("--import=")||Q.startsWith("--require=")||Q.startsWith("-r="))return!0}return!1}function Gb($){let J=$.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g);if(!J)return $;let Q=[],Y=!1;for(let X=0;X<J.length;X++){let G=J[X];if(G==="--require"||G==="-r"||G==="--import"){let W=J[X+1];if(W&&bD(W)){Y=!0,X++;continue}if(Q.push(G),W)Q.push(W),X++;continue}if(G.startsWith("--require=")||G.startsWith("-r=")||G.startsWith("--import=")){let W=G.slice(G.indexOf("=")+1);if(bD(W)){Y=!0;continue}}Q.push(G)}return Y?Q.join(" "):$}function bD($){let J=Wb($);if(!J)return!1;let Q=J;if(Q.startsWith("file://"))try{Q=$b(Q)}catch{return!1}return kD(Q)&&!tx(Q)}function Wb($){let J=$[0],Q=$[$.length-1];if(J==='"'&&Q==='"'||J==="'"&&Q==="'")return $.slice(1,-1);return $}function Kb($,J,Q,Y,X){if(!Q.execArgv&&Xb()&&k0.main===void 0)Q={...Q,execArgv:[]};if(!Q.env&&process.env.NODE_OPTIONS){let q=Gb(process.env.NODE_OPTIONS);if(q!==process.env.NODE_OPTIONS)Q={...Q,env:{...process.env,NODE_OPTIONS:q}}}Q={...Q,name:X};let G=new Qb({filename:$,workerData:J,workerOpts:Q,sync:Y});G.on("ready",W),G.on("close",function(){process.removeListener("exit",K)}),process.on("exit",K);function W(){if(process.removeListener("exit",K),G.unref(),Q.autoEnd!==!1)Yb(G)}function K(){if(G.closed)return;G.flushSync(),Jb(100),G.end()}return G}function qb($){$.ref(),$.flushSync(),$.end(),$.once("close",function(){$.unref()})}function Ub($){$.flushSync()}function Nb($){let{pipeline:J,targets:Q,levels:Y,dedupe:X,worker:G={},caller:W=ax(),sync:K=!1}=$,q={...$.options},U=typeof W==="string"?[W]:W,N=typeof globalThis==="object"&&Object.prototype.hasOwnProperty.call(globalThis,"__bundlerPathsOverrides")&&globalThis.__bundlerPathsOverrides&&typeof globalThis.__bundlerPathsOverrides==="object"?globalThis.__bundlerPathsOverrides:Object.create(null),H=$.target;if(H&&Q)throw Error("only one of target or targets can be specified");if(Q)H=N["pino-worker"]||Tq(__dirname,"worker.js"),q.targets=Q.filter((M)=>M.target).map((M)=>{return{...M,target:Z(M.target)}}),q.pipelines=Q.filter((M)=>M.pipeline).map((M)=>{return M.pipeline.map((D)=>{return{...D,level:M.level,target:Z(D.target)}})});else if(J)H=N["pino-worker"]||Tq(__dirname,"worker.js"),q.pipelines=[J.map((M)=>{return{...M,target:Z(M.target)}})];if(Y)q.levels=Y;if(X)q.dedupe=X;q.pinoWillSendConfig=!0;let f=Q||J?"pino.transport":H;return Kb(Z(H),q,G,K,f);function Z(M){if(M=N[M]||M,kD(M)||M.indexOf("file://")===0)return M;if(M==="pino/file")return Tq(__dirname,"..","file.js");let D;for(let R of U)try{let O=R==="node:repl"?process.cwd()+ex:R;D=rx(O).resolve(M);break}catch(O){continue}if(!D)throw Error(`unable to determine transport target for "${M}"`);return D}}yD.exports=Nb});var NY=H0((zL0,sD)=>{var Hb=k0("node:diagnostics_channel"),vD=HD(),{mapHttpRequest:fb,mapHttpResponse:Zb}=zq(),bq=OD(),hD=Lq(),{lsCacheSym:Mb,chindingsSym:cD,writeSym:gD,serializersSym:pD,formatOptsSym:mD,endSym:zb,stringifiersSym:lD,stringifySym:nD,stringifySafeSym:kq,wildcardFirstSym:oD,nestedKeySym:Vb,formattersSym:iD,messageKeySym:Ob,errorKeySym:Db,nestedKeyStrSym:wb,msgPrefixSym:qY}=r4(),{isMainThread:Eb}=k0("worker_threads"),Rb=Aq(),[Bb]=process.versions.node.split(".").map(($)=>Number($)),dD=Hb.tracingChannel("pino_asJson"),xq=Bb>=25?($)=>JSON.stringify($):Lb;function a4(){}function _b($,J){if(!J)return Q;return function(...X){J.call(this,X,Q,$)};function Q(Y,...X){if(typeof Y==="object"){let G=Y;if(Y!==null){if(Y.method&&Y.headers&&Y.socket)Y=fb(Y);else if(typeof Y.setHeader==="function")Y=Zb(Y)}let W;if(G===null&&X.length===0)W=[null];else G=X.shift(),W=X;if(typeof this[qY]==="string"&&G!==void 0&&G!==null)G=this[qY]+G;this[gD](Y,vD(G,W,this[mD]),$)}else{let G=Y===void 0?X.shift():Y;if(typeof this[qY]==="string"&&G!==void 0&&G!==null)G=this[qY]+G;this[gD](null,vD(G,X,this[mD]),$)}}}function Lb($){let J="",Q=0,Y=!1,X=255,G=$.length;if(G>100)return JSON.stringify($);for(var W=0;W<G&&X>=32;W++)if(X=$.charCodeAt(W),X===34||X===92)J+=$.slice(Q,W)+"\\",Q=W,Y=!0;if(!Y)J=$;else J+=$.slice(Q);return X<32?JSON.stringify($):'"'+J+'"'}function Fb($,J,Q,Y){if(dD.hasSubscribers===!1)return uD.call(this,$,J,Q,Y);let X={instance:this,arguments};return dD.traceSync(uD,X,this,$,J,Q,Y)}function uD($,J,Q,Y){let X=this[nD],G=this[kq],W=this[lD],K=this[zb],q=this[cD],U=this[pD],N=this[iD],H=this[Ob],f=this[Db],Z=this[Mb][Q]+Y;Z=Z+q;let M;if(N.log)$=N.log($);let D=W[oD],R="";for(let E in $)if(M=$[E],Object.prototype.hasOwnProperty.call($,E)&&M!==void 0){if(U[E])M=U[E](M);else if(E===f&&U.err)M=U.err(M);let V=W[E]||D;switch(typeof M){case"undefined":case"function":continue;case"number":if(Number.isFinite(M)===!1)M=null;case"boolean":if(V)M=V(M);break;case"string":M=(V||xq)(M);break;default:M=(V||X)(M,G)}if(M===void 0)continue;let w=xq(E);R+=","+w+":"+M}let O="";if(J!==void 0){M=U[H]?U[H](J):J;let E=W[H]||D;switch(typeof M){case"function":break;case"number":if(Number.isFinite(M)===!1)M=null;case"boolean":if(E)M=E(M);O=',"'+H+'":'+M;break;case"string":M=(E||xq)(M),O=',"'+H+'":'+M;break;default:M=(E||X)(M,G),O=',"'+H+'":'+M}}if(this[Vb]&&R)return Z+this[wb]+R.slice(1)+"}"+O+K;else return Z+R+O+K}function Sb($,J){let Q,Y=$[cD],X=$[nD],G=$[kq],W=$[lD],K=W[oD],q=$[pD],U=$[iD].bindings;J=U(J);for(let N in J)if(Q=J[N],((N.length<5||N!=="level"&&N!=="serializers"&&N!=="formatters"&&N!=="customLevels")&&J.hasOwnProperty(N)&&Q!==void 0)===!0){if(Q=q[N]?q[N](Q):Q,Q=(W[N]||K||X)(Q,G),Q===void 0)continue;Y+=',"'+N+'":'+Q}return Y}function jb($){return $.write!==$.constructor.prototype.write}function UY($){let J=new bq($);if(J.on("error",Q),!$.sync&&Eb)hD.register(J,Cb),J.on("close",function(){hD.unregister(J)});return J;function Q(Y){if(Y.code==="EPIPE"){J.write=a4,J.end=a4,J.flushSync=a4,J.destroy=a4;return}J.removeListener("error",Q),J.emit("error",Y)}}function Cb($,J){if($.destroyed)return;if(J==="beforeExit")$.flush(),$.on("drain",function(){$.end()});else $.flushSync()}function Pb($){return function(Q,Y,X={},G){if(typeof X==="string")G=UY({dest:X}),X={};else if(typeof G==="string"){if(X&&X.transport)throw Error("only one of option.transport or stream can be specified");G=UY({dest:G})}else if(X instanceof bq||X.writable||X._writableState)G=X,X={};else if(X.transport){if(X.transport instanceof bq||X.transport.writable||X.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(X.transport.targets&&X.transport.targets.length&&X.formatters&&typeof X.formatters.level==="function")throw Error("option.transport.targets do not allow custom level formatters");let q;if(X.customLevels)q=X.useOnlyCustomLevels?X.customLevels:Object.assign({},X.levels,X.customLevels);G=Rb({caller:Y,...X.transport,levels:q})}if(X=Object.assign({},$,X),X.serializers=Object.assign({},$.serializers,X.serializers),X.formatters=Object.assign({},$.formatters,X.formatters),X.prettyPrint)throw Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:W,onChild:K}=X;if(W===!1)X.level="silent";if(!K)X.onChild=a4;if(!G)if(!jb(process.stdout))G=UY({fd:process.stdout.fd||1});else G=process.stdout;return{opts:X,stream:G}}}function Tb($,J){try{return JSON.stringify($)}catch(Q){try{return(J||this[kq])($)}catch(Y){return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Ib($,J,Q){return{level:$,bindings:J,log:Q}}function Ab($){let J=Number($);if(typeof $==="string"&&Number.isFinite(J))return J;if($===void 0)return 1;return $}sD.exports={noop:a4,buildSafeSonicBoom:UY,asChindings:Sb,asJson:Fb,genLog:_b,createArgsNormalizer:Pb,stringify:Tb,buildFormatters:Ib,normalizeDestFileDescriptor:Ab}});var HY=H0((VL0,rD)=>{var xb={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},bb={ASC:"ASC",DESC:"DESC"};rD.exports={DEFAULT_LEVELS:xb,SORTING_ORDER:bb}});var hq=H0((OL0,$w)=>{var{lsCacheSym:kb,levelValSym:yq,useOnlyCustomLevelsSym:yb,streamSym:vb,formattersSym:hb,hooksSym:gb,levelCompSym:tD}=r4(),{noop:mb,genLog:J9}=NY(),{DEFAULT_LEVELS:T5,SORTING_ORDER:aD}=HY(),eD={fatal:($)=>{let J=J9(T5.fatal,$);return function(...Q){let Y=this[vb];if(J.call(this,...Q),typeof Y.flushSync==="function")try{Y.flushSync()}catch(X){}}},error:($)=>J9(T5.error,$),warn:($)=>J9(T5.warn,$),info:($)=>J9(T5.info,$),debug:($)=>J9(T5.debug,$),trace:($)=>J9(T5.trace,$)},vq=Object.keys(T5).reduce(($,J)=>{return $[T5[J]]=J,$},{}),db=Object.keys(vq).reduce(($,J)=>{return $[J]='{"level":'+Number(J),$},{});function ub($){let J=$[hb].level,{labels:Q}=$.levels,Y={};for(let X in Q){let G=J(Q[X],Number(X));Y[X]=JSON.stringify(G).slice(0,-1)}return $[kb]=Y,$}function cb($,J){if(J)return!1;switch($){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function pb($){let{labels:J,values:Q}=this.levels;if(typeof $==="number"){if(J[$]===void 0)throw Error("unknown level value"+$);$=J[$]}if(Q[$]===void 0)throw Error("unknown level "+$);let Y=this[yq],X=this[yq]=Q[$],G=this[yb],W=this[tD],K=this[gb].logMethod;for(let q in Q){if(W(Q[q],X)===!1){this[q]=mb;continue}this[q]=cb(q,G)?eD[q](K):J9(Q[q],K)}this.emit("level-change",$,X,J[Y],Y,this)}function lb($){let{levels:J,levelVal:Q}=this;return J&&J.labels?J.labels[Q]:""}function nb($){let{values:J}=this.levels,Q=J[$];return Q!==void 0&&this[tD](Q,this[yq])}function ob($,J,Q){if($===aD.DESC)return J<=Q;return J>=Q}function ib($){if(typeof $==="string")return ob.bind(null,$);return $}function sb($=null,J=!1){let Q=$?Object.keys($).reduce((G,W)=>{return G[$[W]]=W,G},{}):null,Y=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),J?null:vq,Q),X=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),J?null:T5,$);return{labels:Y,values:X}}function rb($,J,Q){if(typeof $==="number"){if(![].concat(Object.keys(J||{}).map((G)=>J[G]),Q?[]:Object.keys(vq).map((G)=>+G),1/0).includes($))throw Error(`default level:${$} must be included in custom levels`);return}let Y=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),Q?null:T5,J);if(!($ in Y))throw Error(`default level:${$} must be included in custom levels`)}function tb($,J){let{labels:Q,values:Y}=$;for(let X in J){if(X in Y)throw Error("levels cannot be overridden");if(J[X]in Q)throw Error("pre-existing level values cannot be used for new levels")}}function ab($){if(typeof $==="function")return;if(typeof $==="string"&&Object.values(aD).includes($))return;throw Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}$w.exports={initialLsCache:db,genLsCache:ub,levelMethods:eD,getLevel:lb,setLevel:pb,isLevelEnabled:nb,mappings:sb,assertNoLevelCollisions:tb,assertDefaultLevelFound:rb,genLevelComparison:ib,assertLevelComparison:ab}});var gq=H0((DL0,Jw)=>{Jw.exports={version:"10.3.1"}});var Uw=H0((wL0,qw)=>{var{EventEmitter:eb}=k0("node:events"),{lsCacheSym:$k,levelValSym:Jk,setLevelSym:dq,getLevelSym:Qw,chindingsSym:ZY,mixinSym:Qk,asJsonSym:Xw,writeSym:Yk,mixinMergeStrategySym:Xk,timeSym:Gk,timeSliceIndexSym:Wk,streamSym:Gw,serializersSym:Q9,formattersSym:o7,errorKeySym:Kk,messageKeySym:qk,useOnlyCustomLevelsSym:Uk,needsMetadataGsym:Nk,redactFmtSym:Hk,stringifySym:fk,formatOptsSym:Zk,stringifiersSym:Mk,msgPrefixSym:uq,hooksSym:zk}=r4(),{getLevel:Vk,setLevel:Ok,isLevelEnabled:Dk,mappings:wk,initialLsCache:Ek,genLsCache:Rk,assertNoLevelCollisions:Bk}=hq(),{asChindings:cq,asJson:_k,buildFormatters:mq,stringify:Yw,noop:Ww}=NY(),{version:Lk}=gq(),Fk=wq(),Sk=class{},Kw={constructor:Sk,child:jk,bindings:Ck,setBindings:Pk,flush:Ak,isLevelEnabled:Dk,version:Lk,get level(){return this[Qw]()},set level($){this[dq]($)},get levelVal(){return this[Jk]},set levelVal($){throw Error("levelVal is read-only")},get msgPrefix(){return this[uq]},get[Symbol.toStringTag](){return"Pino"},[$k]:Ek,[Yk]:Ik,[Xw]:_k,[Qw]:Vk,[dq]:Ok};Object.setPrototypeOf(Kw,eb.prototype);qw.exports=function(){return Object.create(Kw)};var fY=($)=>$;function jk($,J){if(!$)throw Error("missing bindings for child Pino");let Q=this[Q9],Y=this[o7],X=Object.create(this);if(J==null){if(X[o7].bindings!==fY)X[o7]=mq(Y.level,fY,Y.log);if(X[ZY]=cq(X,$),this.onChild!==Ww)this.onChild(X);return X}if(J.hasOwnProperty("serializers")===!0){X[Q9]=Object.create(null);for(let U in Q)X[Q9][U]=Q[U];let K=Object.getOwnPropertySymbols(Q);for(var G=0;G<K.length;G++){let U=K[G];X[Q9][U]=Q[U]}for(let U in J.serializers)X[Q9][U]=J.serializers[U];let q=Object.getOwnPropertySymbols(J.serializers);for(var W=0;W<q.length;W++){let U=q[W];X[Q9][U]=J.serializers[U]}}else X[Q9]=Q;if(J.hasOwnProperty("formatters")){let{level:K,bindings:q,log:U}=J.formatters;X[o7]=mq(K||Y.level,q||fY,U||Y.log)}else X[o7]=mq(Y.level,fY,Y.log);if(J.hasOwnProperty("customLevels")===!0)Bk(this.levels,J.customLevels),X.levels=wk(J.customLevels,X[Uk]),Rk(X);if(typeof J.redact==="object"&&J.redact!==null||Array.isArray(J.redact)){X.redact=J.redact;let K=Fk(X.redact,Yw),q={stringify:K[Hk]};X[fk]=Yw,X[Mk]=K,X[Zk]=q}if(typeof J.msgPrefix==="string")X[uq]=(this[uq]||"")+J.msgPrefix;if(X[ZY]=cq(X,$),J.level!==void 0&&J.level!==this.level||J.hasOwnProperty("customLevels")){let K=J.level||this.level;X[dq](K)}return this.onChild(X),X}function Ck(){let J=`{${this[ZY].substr(1)}}`,Q=JSON.parse(J);return delete Q.pid,delete Q.hostname,Q}function Pk($){let J=cq(this,$);this[ZY]=J}function Tk($,J){return Object.assign(J,$)}function Ik($,J,Q){let Y=this[Gk](),X=this[Qk],G=this[Kk],W=this[qk],K=this[Xk]||Tk,q,U=this[zk].streamWrite;if($===void 0||$===null)q={};else if($ instanceof Error){if(q={[G]:$},J===void 0)J=$.message}else if(q=$,J===void 0&&$[W]===void 0&&$[G])J=$[G].message;if(X)q=K(q,X(q,Q,this));let N=this[Xw](q,J,Q,Y),H=this[Gw];if(H[Nk]===!0)H.lastLevel=Q,H.lastObj=q,H.lastMsg=J,H.lastTime=Y.slice(this[Wk]),H.lastLogger=this;H.write(U?U(N):N)}function Ak($){if($!=null&&typeof $!=="function")throw Error("callback must be a function");let J=this[Gw];if(typeof J.flush==="function")J.flush($||Ww);else if($)$()}});var Zw=H0((EL0,fw)=>{var{hasOwnProperty:i7}=Object.prototype,X9=nq();X9.configure=nq;X9.stringify=X9;X9.default=X9;EL0.stringify=X9;EL0.configure=nq;fw.exports=X9;var xk=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function $2($){if($.length<5000&&!xk.test($))return`"${$}"`;return JSON.stringify($)}function pq($,J){if($.length>200||J)return $.sort(J);for(let Q=1;Q<$.length;Q++){let Y=$[Q],X=Q;while(X!==0&&$[X-1]>Y)$[X]=$[X-1],X--;$[X]=Y}return $}var bk=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function lq($){return bk.call($)!==void 0&&$.length!==0}function Nw($,J,Q){if($.length<Q)Q=$.length;let Y=J===","?"":" ",X=`"0":${Y}${$[0]}`;for(let G=1;G<Q;G++)X+=`${J}"${G}":${Y}${$[G]}`;return X}function kk($){if(i7.call($,"circularValue")){let J=$.circularValue;if(typeof J==="string")return`"${J}"`;if(J==null)return J;if(J===Error||J===TypeError)return{toString(){throw TypeError("Converting circular structure to JSON")}};throw TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}function yk($){let J;if(i7.call($,"deterministic")){if(J=$.deterministic,typeof J!=="boolean"&&typeof J!=="function")throw TypeError('The "deterministic" argument must be of type boolean or comparator function')}return J===void 0?!0:J}function vk($,J){let Q;if(i7.call($,J)){if(Q=$[J],typeof Q!=="boolean")throw TypeError(`The "${J}" argument must be of type boolean`)}return Q===void 0?!0:Q}function Hw($,J){let Q;if(i7.call($,J)){if(Q=$[J],typeof Q!=="number")throw TypeError(`The "${J}" argument must be of type number`);if(!Number.isInteger(Q))throw TypeError(`The "${J}" argument must be an integer`);if(Q<1)throw RangeError(`The "${J}" argument must be >= 1`)}return Q===void 0?1/0:Q}function Y9($){if($===1)return"1 item";return`${$} items`}function hk($){let J=new Set;for(let Q of $)if(typeof Q==="string"||typeof Q==="number")J.add(String(Q));return J}function gk($){if(i7.call($,"strict")){let J=$.strict;if(typeof J!=="boolean")throw TypeError('The "strict" argument must be of type boolean');if(J)return(Q)=>{let Y=`Object can not safely be stringified. Received type ${typeof Q}`;if(typeof Q!=="function")Y+=` (${Q.toString()})`;throw Error(Y)}}}function nq($){$={...$};let J=gk($);if(J){if($.bigint===void 0)$.bigint=!1;if(!("circularValue"in $))$.circularValue=Error}let Q=kk($),Y=vk($,"bigint"),X=yk($),G=typeof X==="function"?X:void 0,W=Hw($,"maximumDepth"),K=Hw($,"maximumBreadth");function q(Z,M,D,R,O,E){let V=M[Z];if(typeof V==="object"&&V!==null&&typeof V.toJSON==="function")V=V.toJSON(Z);switch(V=R.call(M,Z,V),typeof V){case"string":return $2(V);case"object":{if(V===null)return"null";if(D.indexOf(V)!==-1)return Q;let w="",B=",",j=E;if(Array.isArray(V)){if(V.length===0)return"[]";if(W<D.length+1)return'"[Array]"';if(D.push(V),O!=="")E+=O,w+=`
68
68
  ${E}`,B=`,
69
69
  ${E}`;let F=Math.min(V.length,K),A=0;for(;A<F-1;A++){let P=q(String(A),V,D,R,O,E);w+=P!==void 0?P:"null",w+=B}let k=q(String(A),V,D,R,O,E);if(w+=k!==void 0?k:"null",V.length-1>K){let P=V.length-K-1;w+=`${B}"... ${Y9(P)} not stringified"`}if(O!=="")w+=`
70
70
  ${j}`;return D.pop(),`[${w}]`}let T=Object.keys(V),x=T.length;if(x===0)return"{}";if(W<D.length+1)return'"[Object]"';let C="",S="";if(O!=="")E+=O,B=`,
@@ -543,7 +543,7 @@ ${JSON.stringify(G,(W,K)=>typeof K==="bigint"?`${K.toString()}n`:K,2)}`);this.er
543
543
  items { address }
544
544
  }
545
545
  }
546
- `,{symbol:J,chainId:Q})).assets?.items??[]).map((G)=>G.address.toLowerCase())}async checkHealth(){try{return await this.executeQuery("query HealthCheck { __typename }",{}),!0}catch{return!1}}async executeQuery($,J){let Q=null;for(let Y=1;Y<=this.maxRetries;Y++)try{let X=await fetch(this.url,{method:"POST",headers:this.headers,body:JSON.stringify({query:$,variables:J})});if(X.status===401)throw Error("Authentication failed");if(!X.ok)throw Error(`HTTP ${X.status}: ${await X.text()}`);let G=await X.json();if(G.errors?.length)throw Error(G.errors.map((W)=>W.message).join("; "));return G.data}catch(X){if(Q=X instanceof Error?X:Error(String(X)),Q.message==="Authentication failed")throw Q;if(Y<this.maxRetries){let G=this.baseDelay*Math.pow(2,Y-1);await this.sleep(G)}}throw Error(`Failed after ${this.maxRetries} retries: ${Q?.message}`)}sleep($){return new Promise((J)=>setTimeout(J,$))}}var yw;function y1(){return yw??=new vw,yw}function Ay($){switch($.kind){case"deposit_assets":return"deposit";case"withdraw_assets":return"withdraw";case"redeem_shares":return"redeem";default:throw Error(`Unexpected vault intent: ${$.kind}`)}}function xy($,J,Q){switch($.kind){case"deposit_assets":{let Y=BigInt($.assets),X=Q.toShares(Y,"Down");return{sharesAfter:J+X,shareDelta:X}}case"withdraw_assets":{let Y=BigInt($.assets),X=Q.toShares(Y,"Up");return{sharesAfter:J-X,shareDelta:-X}}case"redeem_shares":{let Y=BigInt($.shares);return{sharesAfter:J-Y,shareDelta:-Y}}default:throw Error(`Unexpected vault intent: ${$.kind}`)}}async function $U($,J){if(J.subject.kind!=="vault_position"){I5().warn("analyzeVaultPostState: subject is not vault_position");return}let Q=J.subject;if(!Ay(J.intent))return;let{vaultAddress:X,userAddress:G}=Q,W,K;try{[W,K]=await Promise.all([Qq(X,$),$.readContract({address:X,abi:i,functionName:"balanceOf",args:[G]})])}catch(D){throw I5().error({err:D},"analyzeVaultPostState: failed to fetch vault or shares"),D}let{sharesAfter:q,shareDelta:U}=xy(J.intent,K,W),N=W.toAssets(K),H=W.toAssets(q),f=H-N,Z;try{let D=y1(),R=Q.chain||"base",O=await D.getVault(R,Q.vaultAddress);if(O?.allocations&&O.allocations.length>0){let E=O.allocations.filter((V)=>V.market!=null).map((V)=>V.market.uniqueKey);Z=await Gq($,E)}}catch(D){I5().warn({err:D},"Failed to read market states for vault analysis")}let M={vaultAddress:Q.vaultAddress,sharesBefore:K.toString(),sharesAfter:q.toString(),assetsBefore:N.toString(),assetsAfter:H.toString(),shareDelta:U.toString(),assetDelta:f.toString()};if(Z)M.marketStates=Z;return M}var hw="SIM_TX_REVERTED",gw="SIM_PARTIAL_REVERT",mw="SIM_HIGH_GAS",dw="SIM_ANALYSIS_UNAVAILABLE",uw="MORPHO_ZERO_SHARES",MY="MORPHO_LARGE_POSITION_CHANGE",cw="MORPHO_HIGH_UTILIZATION",pw="MORPHO_UTILIZATION_SPIKE",lw="MORPHO_STALE_ORACLE",nw="SIM_RPC_FAILURE",ow="SIM_INTERNAL_FAILURE";var by=500000n;function JU($,J,Q){let Y=[],X=$.filter((K)=>!K.success),G=$.filter((K)=>K.success);for(let K of X)Y.push({level:"error",message:`Transaction ${K.transactionIndex} reverted: ${K.revertReason??"unknown reason"}`,code:hw});if(X.length>0&&G.length>0)Y.push({level:"warning",message:`${G.length} of ${$.length} transactions succeeded; partial execution may leave state inconsistent`,code:gw});let W=$.reduce((K,q)=>K+BigInt(q.gasUsed),0n);if(W>by)Y.push({level:"warning",message:`High total gas usage: ${W.toString()}`,code:mw});if(Q&&!J)Y.push({level:"info",message:"Simulation plan was provided but post-state analysis could not be computed",code:dw});return Y}var QU=50n,ky=9500n,yy=1000n,vy=3600n;function iw($){let[J,Q="0"]=$.split("."),Y=Q.padEnd(2,"0").slice(0,2);return BigInt(J)*100n+BigInt(Y)}function YU($){return $<0n?-$:$}function zY($,J,Q,Y){let X=[];if($)hy($,Q,X);if(J)gy(J,Q,Y,X);return X}function hy($,J,Q){if(J==="deposit"&&$.shareDelta==="0")Q.push({level:"warning",message:"Deposit resulted in zero vault shares minted",code:uw});let Y=BigInt($.sharesBefore),X=YU(BigInt($.shareDelta));if(Y>0n&&X*100n/Y>QU)Q.push({level:"info",message:`Position change exceeds 50% of existing position (delta: ${$.shareDelta}, before: ${$.sharesBefore})`,code:MY})}function gy($,J,Q,Y){if($.utilizationAfter){let W=iw($.utilizationAfter);if(W>ky)Y.push({level:"warning",message:`Market utilization after operation is ${$.utilizationAfter}%, exceeding 95% threshold`,code:cw});if($.utilizationBefore){let K=iw($.utilizationBefore),q=W-K;if(q>yy)Y.push({level:"warning",message:`Utilization spike of ${(q/100n).toString()}pp (${$.utilizationBefore}% → ${$.utilizationAfter}%)`,code:pw})}}if(Q!==void 0){let W=BigInt(Math.floor(Date.now()/1000));if(W-Q>vy)Y.push({level:"warning",message:`Market data may be stale (last updated ${(W-Q).toString()}s ago)`,code:lw})}let X=J==="supply"||J==="withdraw",G=J==="borrow"||J==="repay";if(X){let W=BigInt($.supplyBefore),K=YU(BigInt($.supplyDelta));if(W>0n&&K*100n/W>QU)Y.push({level:"info",message:`Position change exceeds 50% of existing position (delta: ${$.supplyDelta}, before: ${$.supplyBefore})`,code:MY})}if(G){let W=BigInt($.borrowBefore),K=YU(BigInt($.borrowDelta));if(W>0n&&K*100n/W>QU)Y.push({level:"info",message:`Position change exceeds 50% of existing position (delta: ${$.borrowDelta}, before: ${$.borrowBefore})`,code:MY})}}function my($){if($ instanceof I){let J=$.name;return J.includes("Request")||J.includes("Timeout")||J.includes("Socket")}if($ instanceof TypeError)return!0;if($ instanceof Error)return/ECONNREFUSED|ETIMEDOUT|ENOTFOUND|network|socket/i.test($.message);return!1}function p1($){let J=$ instanceof Error?$.message:String($);if(my($))return{level:"error",message:`Simulation could not run — RPC node error: ${J}. Transactions are prepared but unverified. Retry or check RPC configuration.`,code:nw};return{level:"error",message:`Simulation failed unexpectedly: ${J}. Transactions are prepared but could not be verified.`,code:ow}}async function XU($,J,Q,Y){switch(J.analysis.kind){case"vault_analysis":{let X=await $U($,J),G=zY(X,void 0,J.operation);return{protocol:"morpho",operation:J.operation,vault:X,warnings:G}}case"market_analysis":{let X=await Xq($,J,Q,Y),G=X?.postState,W=X?.lastUpdate,K=zY(void 0,G,J.operation,W);return{protocol:"morpho",operation:J.operation,market:G,warnings:K}}}}function dy($,J){if(!$||$==="0x")return;if(!$.match(/^0x[0-9a-fA-F]*$/))return;try{switch(J){case"uint256":case"uint128":case"uint64":case"uint32":case"uint8":return C1([{type:J}],$)[0].toString();case"string":return C1([{type:"string"}],$)[0];case"bool":return C1([{type:"bool"}],$)[0].toString();case"address":return C1([{type:"address"}],$)[0];case"tuple":return $;default:return $}}catch{return}}function GU($,J){return $.map((Q)=>{let Y=J.get(Q.key);if(!Y)return{key:Q.key,raw:void 0,decoded:void 0,type:Q.returnType,error:"No result found"};let X=dy(Y,Q.returnType);return{key:Q.key,raw:Y,decoded:X,type:Q.returnType}})}var uy=z.object({}),MF0=z.object({status:z.enum(["healthy","unhealthy"]),timestamp:z.string()});async function cy(){return{status:await y1().checkHealth()?"healthy":"unhealthy",timestamp:new Date().toISOString()}}var sw={name:"morpho_health_check",description:"Check the health status of the MCP server and connected services",category:"read",inputSchema:uy,execute:async()=>cy()};var py=z.object({}),ly=z.object({slug:z.string(),name:z.string(),chainId:z.string(),explorerUrl:z.string(),isTestnet:z.boolean()}),OF0=z.object({chains:z.array(ly),tool:z.string(),timestamp:z.string()}),ny=[{slug:"base",name:"Base",chainId:"8453",explorerUrl:"https://basescan.org",isTestnet:!1},{slug:"ethereum",name:"Ethereum",chainId:"1",explorerUrl:"https://etherscan.io",isTestnet:!1}];function oy(){return{chains:ny,tool:"morpho_get_supported_chains",timestamp:new Date().toISOString()}}var rw={name:"morpho_get_supported_chains",description:"Get list of supported blockchain networks",category:"read",inputSchema:py,execute:async()=>oy()};var iy=z.enum(["address","name","symbol","apyPct","tvl","tvlUsd","feePct"]),tw=z.object({chain:X0,assetSymbol:z.string().optional(),assetAddress:$0.optional(),sort:z.enum(["apy_desc","apy_asc","tvl_desc","tvl_asc"]).optional(),limit:z.coerce.number().int().min(1).max(100).optional(),skip:z.coerce.number().int().min(0).optional(),fields:z.array(iy).optional()}),BF0=z.object({vaults:z.array(E7),chain:X0,tool:z.string(),timestamp:z.string(),count:z.number(),pagination:z.object({total:z.number(),limit:z.number(),skip:z.number()})}),aw={apy_desc:($,J)=>Number(J.apyPct??0)-Number($.apyPct??0),apy_asc:($,J)=>Number($.apyPct??0)-Number(J.apyPct??0),tvl_desc:($,J)=>Number(J.tvlUsd??0)-Number($.tvlUsd??0),tvl_asc:($,J)=>Number($.tvlUsd??0)-Number(J.tvlUsd??0)};function sy($,J){return{address:$.address.toLowerCase(),name:$.name,chain:J,asset:$6($.asset,J),curator:$.curator,allocator:$.allocator,apyPct:$.apyPct,tvl:$.tvl,tvlUsd:$.tvlUsd,feePct:$.feePct,rewards:$.rewards?.map((Q)=>({asset:$6(Q.asset,J),supplyAprPct:Q.supplyAprPct})),version:$.version,type:$.type}}async function ry($){let J=y1(),Q=$.limit??100,Y=$.skip??0,X=Math.min(Y+Q,1000),G,W=!1;if($.assetAddress)G=[$.assetAddress];else if($.assetSymbol){let w=await J.resolveAssetAddresses($.chain,$.assetSymbol);if(w.length===0)W=!0;else G=w}let K=$.sort?void 0:$.fields,q=J.queryVaults({chain:$.chain,assetSymbol:$.assetSymbol,assetAddress:$.assetAddress,sort:$.sort,limit:X,skip:0,fields:K}),U=W?Promise.resolve(null):J.queryVaultsV2({chain:$.chain,assetAddresses:G,sort:$.sort,limit:X,skip:0}),N=await Promise.allSettled([q,U]),H=N[0].status==="fulfilled"?N[0].value:null,f=N[1].status==="fulfilled"?N[1].value:null,Z=H?.items??[],M=f?.items??[],D=[...Z,...M];if($.sort&&aw[$.sort])D.sort(aw[$.sort]);let R=D.slice(Y,Y+Q),O=H?.pageInfo.countTotal??0,E=f?.pageInfo.countTotal??0,V=R.map((w)=>sy(w,$.chain));return{vaults:V,chain:$.chain,tool:"morpho_query_vaults",timestamp:new Date().toISOString(),count:V.length,pagination:{total:O+E,limit:Q,skip:Y}}}var ew={name:"morpho_query_vaults",description:"Query Morpho vaults with optional filtering and sorting",category:"read",inputSchema:tw,execute:async($)=>ry(tw.parse($))};class v0 extends Error{code;userMessage;details;originalError;timestamp;constructor($,J,Q,Y){super(J);this.code=$;this.userMessage=J;this.details=Q;this.originalError=Y;this.name="ToolError",this.timestamp=new Date().toISOString()}toJSON(){return{code:this.code,userMessage:this.userMessage,details:this.details,timestamp:this.timestamp}}}class VY{static ERROR_PATTERNS=[{pattern:/authentication|unauthorized|rate limit|too many requests/i,code:"SERVICE_ERROR",getMessage:($)=>$.message},{pattern:/network|connection|ECONNREFUSED|ETIMEDOUT|timeout|timed out/i,code:"SERVICE_ERROR",getMessage:()=>"The service is temporarily unavailable. Please try again later."},{pattern:/invalid|validation|bad request/i,code:"INVALID_INPUT",getMessage:($)=>$.message},{pattern:/not found|does not exist/i,code:"NOT_FOUND",getMessage:($)=>$.message}];static mapError($){if($ instanceof v0)return $;let J=$ instanceof Error?$:Error(String($)),Q=J;if(Q.response?.status){let Y=Q.response.status;if(Y===401||Y===429||Y>=500)return new v0("SERVICE_ERROR",J.message,J.message,J);if(Y===404)return new v0("NOT_FOUND",J.message||"Resource not found.",J.message,J)}for(let{pattern:Y,code:X,getMessage:G}of this.ERROR_PATTERNS)if(Y.test(J.message))return new v0(X,G(J),J.message,J);return new v0("INTERNAL_ERROR","An unexpected error occurred. Please try again.",J.message,J)}}class OY extends v0{constructor($){super("INVALID_INPUT",`Unsupported chain: ${$}`,`Chain "${$}" is not configured on this adapter`);this.name="UnsupportedChainError"}}class e4 extends v0{constructor($){super("INTERNAL_ERROR",`Missing required configuration: ${$}`,`Environment variable "${$}" is not set`);this.name="MissingConfigError"}}class A5 extends v0{constructor($){super("INVALID_INPUT",`Invalid amount: "${$}"`,`Could not parse "${$}" as a token amount`);this.name="InvalidAmountError"}}class G9 extends v0{constructor($,J){super("INVALID_INPUT","No position to withdraw",`User ${J} has no shares in vault ${$}`);this.name="InsufficientPositionError"}}class DY extends v0{constructor($){super("INVALID_INPUT",$);this.name="InsufficientLiquidityError"}}var $E=z.object({chain:X0,address:$0}),ty=z.object({market:z.object({uniqueKey:z.string(),loanAsset:z.object({address:z.string(),symbol:z.string()}).nullish(),collateralAsset:z.object({address:z.string(),symbol:z.string()}).nullish()}).optional().describe("Present for v1 vaults — the Morpho Blue market this allocation targets"),address:z.string().optional().describe("Present for v2 vaults — the adapter contract address"),supplyAssets:z.string(),supplyAssetsUsd:z.string().optional()}),bF0=z.object({vault:E7.extend({allocations:z.array(ty).optional()}),chain:X0,tool:z.string(),timestamp:z.string()});async function ay($){let J=y1(),Q=await Promise.allSettled([J.getVault($.chain,$.address),J.getVaultV2($.chain,$.address)]),Y=Q[0].status==="fulfilled"?Q[0].value:null,X=Q[1].status==="fulfilled"?Q[1].value:null,G=Y??X;if(!G)throw new v0("NOT_FOUND",`Vault ${$.address} not found on ${$.chain}`);return{vault:{address:G.address.toLowerCase(),name:G.name,chain:$.chain,asset:$6(G.asset,$.chain),curator:G.curator,allocator:G.allocator,apyPct:G.apyPct,tvl:G.tvl,tvlUsd:G.tvlUsd,feePct:G.feePct,rewards:G.rewards?.map((K)=>({asset:$6(K.asset,$.chain),supplyAprPct:K.supplyAprPct})),allocations:G.allocations,version:G.version,type:G.type},chain:$.chain,tool:"morpho_get_vault",timestamp:new Date().toISOString()}}var JE={name:"morpho_get_vault",description:"Get details of a specific Morpho vault",category:"read",inputSchema:$E,execute:async($)=>ay($E.parse($))};var wY=tW.extend({totalSupply:z.string().optional().describe("Formatted supply amount in loan asset units"),totalBorrow:z.string().optional().describe("Formatted borrow amount in loan asset units"),totalCollateral:z.string().optional().describe("Formatted collateral amount in collateral asset units"),totalLiquidity:z.string().optional().describe("Formatted liquidity amount in loan asset units"),utilization:z.string().optional(),supplyAssetsUsd:z.string().optional(),borrowAssetsUsd:z.string().optional(),collateralAssetsUsd:z.string().optional(),liquidityAssetsUsd:z.string().optional()});function EY($,J){let Q=$.totalSupply?l0(BigInt($.totalSupply),$.loanAsset.decimals):void 0,Y=$.totalBorrow?l0(BigInt($.totalBorrow),$.loanAsset.decimals):void 0,X=$.totalCollateral?l0(BigInt($.totalCollateral),$.collateralAsset.decimals):void 0,G=$.totalLiquidity?l0(BigInt($.totalLiquidity),$.loanAsset.decimals):void 0,W=$.totalSupply&&$.totalBorrow&&BigInt($.totalSupply)>0n?(Number(BigInt($.totalBorrow)*10000n/BigInt($.totalSupply))/1e4).toFixed(4):void 0;return{id:$.id,chain:J,loanAsset:$6($.loanAsset,J),collateralAsset:$6($.collateralAsset,J),lltv:$.lltv,borrowApyPct:$.borrowApyPct,supplyApyPct:$.supplyApyPct,totalSupply:Q,totalBorrow:Y,totalCollateral:X,totalLiquidity:G,utilization:W,supplyAssetsUsd:$.supplyAssetsUsd,borrowAssetsUsd:$.borrowAssetsUsd,collateralAssetsUsd:$.collateralAssetsUsd,liquidityAssetsUsd:$.liquidityAssetsUsd,rewards:$.rewards?.map((K)=>({asset:$6(K.asset,J),supplyAprPct:K.supplyAprPct,borrowAprPct:K.borrowAprPct}))}}var ey=z.enum(["supplyApy","borrowApy","totalSupply","totalBorrow","totalCollateral","totalLiquidity","supplyAssetsUsd","borrowAssetsUsd","collateralAssetsUsd","liquidityAssetsUsd"]),QE=z.object({chain:X0,loanAsset:$0,collateralAsset:$0.optional(),sortBy:z.enum(["supplyApy","borrowApy","netSupplyApy","netBorrowApy","supplyAssetsUsd","borrowAssetsUsd","totalLiquidityUsd"]).default("supplyAssetsUsd").optional(),sortDirection:z.enum(["asc","desc"]).default("desc").optional(),limit:z.coerce.number().int().min(1).max(100).optional(),skip:z.coerce.number().int().min(0).optional(),fields:z.array(ey).optional()}),lF0=z.object({markets:z.array(wY),chain:X0,tool:z.string(),timestamp:z.string(),count:z.number(),pagination:z.object({total:z.number(),limit:z.number(),skip:z.number()})});async function $v($){let J=y1(),Q=$.sortBy??"supplyAssetsUsd",Y=$.sortDirection??"desc",{items:X,pageInfo:G}=await J.queryMarkets({chain:$.chain,...$.loanAsset&&{loanAsset:$.loanAsset},...$.collateralAsset&&{collateralAsset:$.collateralAsset},sortBy:Q,sortDirection:Y,...$.limit!=null&&{limit:$.limit},...$.skip!=null&&{skip:$.skip},...$.fields&&{fields:$.fields}}),W=X.map((K)=>EY(K,$.chain));return{markets:W,chain:$.chain,tool:"morpho_query_markets",timestamp:new Date().toISOString(),count:W.length,pagination:{total:G.countTotal,limit:G.limit,skip:G.skip}}}var YE={name:"morpho_query_markets",description:"Query Morpho markets with optional filtering",category:"read",inputSchema:QE,execute:async($)=>$v(QE.parse($))};var XE=z.object({chain:X0,id:z.string().min(1,"Market ID is required")}),aF0=z.object({market:wY,chain:X0,tool:z.string(),timestamp:z.string()});async function Jv($){let Q=await y1().getMarket($.chain,$.id);if(!Q)throw new v0("NOT_FOUND",`Market ${$.id} not found on ${$.chain}`);return{market:EY(Q,$.chain),chain:$.chain,tool:"morpho_get_market",timestamp:new Date().toISOString()}}var GE={name:"morpho_get_market",description:"Get details of a specific Morpho market",category:"read",inputSchema:XE,execute:async($)=>Jv(XE.parse($))};function RY($,J){let Q=$.vault?.asset??$.market?.loanAsset;if(!Q)throw new v0("INTERNAL_ERROR","Corrupt position data: missing asset metadata from both vault and market");return{userAddress:$.userAddress.toLowerCase(),chain:J,vault:$.vault?{address:$.vault.address.toLowerCase(),name:$.vault.name,chain:J,asset:$6($.vault.asset,J),version:"v1"}:void 0,market:$.market?{id:$.market.id,chain:J,loanAsset:$6($.market.loanAsset,J),collateralAsset:$6($.market.collateralAsset,J),lltv:$.market.lltv??""}:void 0,suppliedAmount:JQ($.suppliedAmount,Q,J),borrowedAmount:$.borrowedAmount&&$.market?JQ($.borrowedAmount,$.market.loanAsset,J):void 0,collateralAmount:$.collateralAmount&&$.market?JQ($.collateralAmount,$.market.collateralAsset,J):void 0,shares:$.shares}}var WE=z.object({chain:X0,userAddress:$0,vaultAddress:$0.optional(),marketId:z.string().optional()}),KS0=z.object({positions:z.array(QQ),chain:X0,tool:z.string(),timestamp:z.string(),count:z.number(),userAddress:z.string()});async function Qv($){let Y=(await y1().getPositions($.chain,$.userAddress,$.vaultAddress,$.marketId)).map((X)=>RY(X,$.chain));return{positions:Y,chain:$.chain,tool:"morpho_get_positions",timestamp:new Date().toISOString(),count:Y.length,userAddress:$.userAddress.toLowerCase()}}var KE={name:"morpho_get_positions",description:"Get all positions for a user",category:"read",inputSchema:WE,execute:async($)=>Qv(WE.parse($))};var qE=z.object({chain:X0,userAddress:$0,vaultAddress:$0.optional(),marketId:z.string().optional()}),MS0=z.object({position:QQ,chain:X0,tool:z.string(),timestamp:z.string()});async function Yv($){let Q=await y1().getPosition($.chain,$.userAddress,$.vaultAddress,$.marketId);if(!Q){let Y=$.vaultAddress?`vault ${$.vaultAddress}`:$.marketId?`market ${$.marketId}`:"any vault or market";throw new v0("NOT_FOUND",`Position not found for ${$.userAddress} in ${Y} on ${$.chain}`)}return{position:RY(Q,$.chain),chain:$.chain,tool:"morpho_get_position",timestamp:new Date().toISOString()}}var UE={name:"morpho_get_position",description:"Get a specific position for a user",category:"read",inputSchema:qE,execute:async($)=>Yv(qE.parse($))};var NE=z.object({chain:X0,userAddress:$0,tokenAddress:$0}),DS0=z.object({chain:X0,userAddress:$0,asset:l6,balance:z.string(),erc20Allowances:z.object({morpho:z.string(),bundler:z.string(),permit2:z.string()}),permit2BundlerAllowance:z.object({amount:z.string(),expiration:z.string(),nonce:z.string()}),erc2612Nonce:z.number().int(),canTransfer:z.boolean(),tool:z.string(),timestamp:z.string()});async function Xv($,J){return J.getTokenBalance($)}var HE={name:"morpho_get_token_balance",description:"Get token balance and Morpho-related approval state for a user. Returns balance, ERC20 allowances (Morpho Blue, Bundler, Permit2), Permit2 bundler allowance, ERC2612 nonce, and transfer permission.",category:"read",inputSchema:NE,execute:async($,J)=>Xv(NE.parse($),J.read)};var fE=z.object({chain:X0,vaultAddress:$0,userAddress:$0,amount:z.union([z.string(),z.literal("max")]).refine(($)=>$==="max"||Number.isFinite(Number($))&&Number($)>0,'Amount must be a positive number or "max"').describe('Token amount in human-readable decimals (e.g., "1000.50"), or "max" for full balance'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Gv($,J,Q){let Y=await J.prepareDeposit($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var ZE={name:"morpho_prepare_deposit",description:"Prepare a deposit into a Morpho vault. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the deposit tx. Handles USDT reset-to-zero and DAI non-standard approval.",category:"write",inputSchema:fE,execute:async($,J)=>Gv(fE.parse($),J.write,J.simulate)};var ME=z.object({chain:X0,vaultAddress:$0,userAddress:$0,amount:z.union([z.string(),z.literal("max")]).describe('Token amount in human-readable decimals (e.g., "1000.50"), or "max" for full withdrawal'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Wv($,J,Q){let Y=await J.prepareWithdraw($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var zE={name:"morpho_prepare_withdraw",description:'Prepare a withdraw from a Morpho vault. Returns a ready-to-simulate transactions array. Supports "max" for full withdrawal. No approval needed for withdrawals.',category:"write",inputSchema:ME,execute:async($,J)=>Wv(ME.parse($),J.write,J.simulate)};var VE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.literal("max")]).describe('Loan token amount in human-readable decimals (e.g., "1000.50"), or "max" for full balance'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Kv($,J,Q){let Y=await J.prepareSupply($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var OE={name:"morpho_prepare_supply",description:"Prepare a supply to a Morpho Blue market. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the supply tx. Handles USDT reset-to-zero and DAI non-standard approval.",category:"write",inputSchema:VE,execute:async($,J)=>Kv(VE.parse($),J.write,J.simulate)};var DE=z.object({chain:X0,marketId:B5,userAddress:$0,borrowAmount:z.union([z.string(),z.literal("max")]).describe('Loan token amount to borrow in human-readable decimals (e.g., "500"), or "max" for maximum borrowable'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function qv($,J,Q){let Y=await J.prepareBorrow($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var wE={name:"morpho_prepare_borrow",description:"Prepare a borrow on a Morpho Blue market. Returns a ready-to-simulate transactions array with the borrow tx. Includes health factor check against existing collateral position.",category:"write",inputSchema:DE,execute:async($,J)=>qv(DE.parse($),J.write,J.simulate)};var EE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.literal("max")]).describe('Loan token amount to repay in human-readable decimals (e.g., "100"), or "max" for full repayment'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Uv($,J,Q){let Y=await J.prepareRepay($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var RE={name:"morpho_prepare_repay",description:'Prepare a repay on a Morpho Blue market. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the repay tx. Supports "max" for full repayment. Handles USDT reset-to-zero and DAI non-standard approval.',category:"write",inputSchema:EE,execute:async($,J)=>Uv(EE.parse($),J.write,J.simulate)};var BE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.literal("max")]).refine(($)=>$==="max"||Number.isFinite(Number($))&&Number($)>0,'Amount must be a positive number or "max"').describe('Collateral token amount in human-readable decimals (e.g., "1.5" for 1.5 WETH), or "max" for full balance'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Nv($,J,Q){let Y=await J.prepareSupplyCollateral($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var _E={name:"morpho_prepare_supply_collateral",description:"Prepare a supply of collateral tokens to a Morpho Blue market without borrowing. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the supply collateral tx. Handles USDT reset-to-zero and DAI non-standard approval.",category:"write",inputSchema:BE,execute:async($,J)=>Nv(BE.parse($),J.write,J.simulate)};var LE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.literal("max")]).describe('Collateral token amount in human-readable decimals (e.g., "1.5"), or "max" for full withdrawal'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Hv($,J,Q){let Y=await J.prepareWithdrawCollateral($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var FE={name:"morpho_prepare_withdraw_collateral",description:'Prepare a withdrawal of collateral tokens from a Morpho Blue market position. Returns a ready-to-simulate transactions array. Supports "max" for full collateral withdrawal. Includes health factor check when user has active borrows. No approval needed for withdrawals.',category:"write",inputSchema:LE,execute:async($,J)=>Hv(LE.parse($),J.write,J.simulate)};var SE=z.object({chain:X0,from:$0,transactions:z.array(aW).min(1),simulationPlan:eJ.optional()});async function fv($,J){return J.simulateTransactions($)}var jE={name:"morpho_simulate_transactions",description:"Simulate unsigned transactions and return execution results with optional Morpho post-state analysis.",category:"simulate",inputSchema:SE,execute:async($,J)=>fv(SE.parse($),J.simulate)};function WU($){return $.replace(/^morpho_/,"").replace(/_/g,"-")}var KU=[sw,rw,ew,JE,YE,GE,KE,UE,HE,ZE,zE,OE,wE,RE,_E,FE,jE];var CE={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};V1();var PE={block:VZ({format($){return{transactions:$.transactions?.map((Q)=>{if(typeof Q==="string")return Q;let Y=H8(Q);if(Y.typeHex==="0x7e")Y.isSystemTx=Q.isSystemTx,Y.mint=Q.mint?E0(Q.mint):void 0,Y.sourceHash=Q.sourceHash,Y.type="deposit";return Y}),stateRoot:$.stateRoot}}}),transaction:zZ({format($){let J={};if($.type==="0x7e")J.isSystemTx=$.isSystemTx,J.mint=$.mint?E0($.mint):void 0,J.sourceHash=$.sourceHash,J.type="deposit";return J}}),transactionReceipt:cZ({format($){return{l1GasPrice:$.l1GasPrice?E0($.l1GasPrice):null,l1GasUsed:$.l1GasUsed?E0($.l1GasUsed):null,l1Fee:$.l1Fee?E0($.l1Fee):null,l1FeeScalar:$.l1FeeScalar?Number($.l1FeeScalar):null}}})};W5();f6();G0();h6();G0();function TE($){if(!$||$.length===0)return[];let J=[];for(let Q of $){let{chainId:Y,nonce:X,...G}=Q,W=Q.address;J.push([Y?s0(Y):"0x",W,X?s0(X):"0x",...$3({},G)])}return J}G0();fJ();W5();f0();c$();A8();f6();s1();n5();V1();function IE($){let{authorizationList:J}=$;if(J)for(let Q of J){let{chainId:Y}=Q,X=Q.address;if(!T0(X))throw new g0({address:X});if(Y<0)throw new x9({chainId:Y})}BY($)}function AE($){let{blobVersionedHashes:J}=$;if(J){if(J.length===0)throw new K7;for(let Q of J){let Y=W0(Q),X=J1(p0(Q,0,1));if(Y!==32)throw new NW({hash:Q,size:Y});if(X!==TJ)throw new HW({hash:Q,version:X})}}BY($)}function BY($){let{chainId:J,maxPriorityFeePerGas:Q,maxFeePerGas:Y,to:X}=$;if(J<=0)throw new x9({chainId:J});if(X&&!T0(X))throw new g0({address:X});if(Y&&Y>e0)throw new d6({maxFeePerGas:Y});if(Q&&Y&&Q>Y)throw new K8({maxFeePerGas:Y,maxPriorityFeePerGas:Q})}function xE($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(J<=0)throw new x9({chainId:J});if(G&&!T0(G))throw new g0({address:G});if(Q||X)throw new I("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(Y&&Y>e0)throw new d6({maxFeePerGas:Y})}function bE($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(G&&!T0(G))throw new g0({address:G});if(typeof J<"u"&&J<=0)throw new x9({chainId:J});if(Q||X)throw new I("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(Y&&Y>e0)throw new d6({maxFeePerGas:Y})}W5();h6();f6();function s7($){if(!$||$.length===0)return[];let J=[];for(let Q=0;Q<$.length;Q++){let{address:Y,storageKeys:X}=$[Q];for(let G=0;G<X.length;G++)if(X[G].length-2!==64)throw new nX({storageKey:X[G]});if(!T0(Y,{strict:!1}))throw new g0({address:Y});J.push([Y,X])}return J}function kE($,J){let Q=AJ($);if(Q==="eip1559")return zv($,J);if(Q==="eip2930")return Vv($,J);if(Q==="eip4844")return Mv($,J);if(Q==="eip7702")return Zv($,J);return Ov($,J)}function Zv($,J){let{authorizationList:Q,chainId:Y,gas:X,nonce:G,to:W,value:K,maxFeePerGas:q,maxPriorityFeePerGas:U,accessList:N,data:H}=$;IE($);let f=s7(N),Z=TE(Q);return D1(["0x04",p6([h(Y),G?h(G):"0x",U?h(U):"0x",q?h(q):"0x",X?h(X):"0x",W??"0x",K?h(K):"0x",H??"0x",f,Z,...$3($,J)])])}function Mv($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerBlobGas:K,maxFeePerGas:q,maxPriorityFeePerGas:U,accessList:N,data:H}=$;AE($);let{blobVersionedHashes:f,sidecars:Z}=$;if($.blobs&&(typeof f>"u"||typeof Z>"u")){let V=typeof $.blobs[0]==="string"?$.blobs:$.blobs.map((j)=>R0(j)),w=$.kzg,B=L4({blobs:V,kzg:w});if(typeof f>"u")f=PJ({commitments:B});if(typeof Z>"u"){let j=F4({blobs:V,commitments:B,kzg:w});Z=IJ({blobs:V,commitments:B,proofs:j})}}let M=s7(N),D=[h(Q),X?h(X):"0x",U?h(U):"0x",q?h(q):"0x",Y?h(Y):"0x",G??"0x",W?h(W):"0x",H??"0x",M,K?h(K):"0x",f??[],...$3($,J)],R=[],O=[],E=[];if(Z)for(let V=0;V<Z.length;V++){let{blob:w,commitment:B,proof:j}=Z[V];R.push(w),O.push(B),E.push(j)}return D1(["0x03",Z?p6([D,R,O,E]):p6(D)])}function zv($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerGas:K,maxPriorityFeePerGas:q,accessList:U,data:N}=$;BY($);let H=s7(U),f=[h(Q),X?h(X):"0x",q?h(q):"0x",K?h(K):"0x",Y?h(Y):"0x",G??"0x",W?h(W):"0x",N??"0x",H,...$3($,J)];return D1(["0x02",p6(f)])}function Vv($,J){let{chainId:Q,gas:Y,data:X,nonce:G,to:W,value:K,accessList:q,gasPrice:U}=$;xE($);let N=s7(q),H=[h(Q),G?h(G):"0x",U?h(U):"0x",Y?h(Y):"0x",W??"0x",K?h(K):"0x",X??"0x",N,...$3($,J)];return D1(["0x01",p6(H)])}function Ov($,J){let{chainId:Q=0,gas:Y,data:X,nonce:G,to:W,value:K,gasPrice:q}=$;bE($);let U=[G?h(G):"0x",q?h(q):"0x",Y?h(Y):"0x",W??"0x",K?h(K):"0x",X??"0x"];if(J){let N=(()=>{if(J.v>=35n){if((J.v-35n)/2n>0)return J.v;return 27n+(J.v===35n?0n:1n)}if(Q>0)return BigInt(Q*2)+BigInt(35n+J.v-27n);let Z=27n+(J.v===27n?0n:1n);if(J.v!==Z)throw new pX({v:J.v});return Z})(),H=S1(J.r),f=S1(J.s);U=[...U,h(N),H==="0x00"?"0x":H,f==="0x00"?"0x":f]}else if(Q>0)U=[...U,h(Q),"0x","0x"];return p6(U)}function $3($,J){let Q=J??$,{v:Y,yParity:X}=Q;if(typeof Q.r>"u")return[];if(typeof Q.s>"u")return[];if(typeof Y>"u"&&typeof X>"u")return[];let G=S1(Q.r),W=S1(Q.s);return[(()=>{if(typeof X==="number")return X?h(1):"0x";if(Y===0n)return"0x";if(Y===1n)return h(1);return Y===27n?"0x":h(1)})(),G==="0x00"?"0x":G,W==="0x00"?"0x":W]}function Dv($,J){if(Ev($))return wv($);return kE($,J)}var yE={transaction:Dv};function wv($){Rv($);let{sourceHash:J,data:Q,from:Y,gas:X,isSystemTx:G,mint:W,to:K,value:q}=$,U=[J,Y,K??"0x",W?s0(W):"0x",q?s0(q):"0x",X?s0(X):"0x",G?"0x1":"0x",Q??"0x"];return D1(["0x7e",p6(U)])}function Ev($){if($.type==="deposit")return!0;if(typeof $.sourceHash<"u")return!0;return!1}function Rv($){let{from:J,to:Q}=$;if(J&&!T0(J))throw new g0({address:J});if(Q&&!T0(Q))throw new g0({address:Q})}var qU={blockTime:2000,contracts:CE,formatters:PE,serializers:yE};function r7($){let J={formatters:void 0,fees:void 0,serializers:void 0,...$};function Q(Y){return(X)=>{let G=typeof X==="function"?X(Y):X,W={...Y,...G};return Object.assign(W,{extend:Q(W)})}}return Object.assign(J,{extend:Q(J)})}var t7=1,_Y=r7({...qU,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...qU.contracts,disputeGameFactory:{[t7]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[t7]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[t7]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[t7]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:t7}),Bv=r7({..._Y,experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://mainnet-preconf.base.org"]}}});var UU=r7({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12000,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});var _v={base:"BASE_RPC_URL",ethereum:"ETHEREUM_RPC_URL"},Lv={base:"https://base-rpc.publicnode.com",ethereum:"https://ethereum-rpc.publicnode.com"},Fv={base:_Y,ethereum:UU};function Sv($){let J=_v[$],Q=process.env[J]||Lv[$];try{let Y=new URL(Q);if(Y.protocol!=="http:"&&Y.protocol!=="https:")throw new e4(`${J} must be an HTTP(S) URL, got: ${Y.protocol}`)}catch(Y){if(Y instanceof e4)throw Y;throw new e4(`${J} is not a valid URL: ${Q}`)}return{chain:Fv[$],rpcUrl:Q}}function vE($){let{chain:J,rpcUrl:Q}=Sv($);return nW({chain:J,transport:sW(Q)})}class Q2{supportedChains;clients=new Map;constructor($){this.supportedChains=new Set($)}getClient($){if(!this.supportedChains.has($))throw new OY($);let J=this.clients.get($);if(!J)J=vE($),this.clients.set($,J);return J}}class NU{pool;constructor($){this.pool=new Q2($)}async getTokenBalance($){let J=this.pool.getClient($.chain),Q=Number(H1[$.chain]),[Y,X]=await Promise.all([QO($.userAddress,$.tokenAddress,J,{chainId:Q}),s4($.tokenAddress,J,{chainId:Q})]),G=X.decimals??0;return{chain:$.chain,userAddress:$.userAddress,asset:{address:$.tokenAddress.toLowerCase(),symbol:X.symbol??"",decimals:G,chain:$.chain},balance:l0(Y.balance,G),erc20Allowances:{morpho:Y.erc20Allowances.morpho.toString(),bundler:Y.erc20Allowances["bundler3.generalAdapter1"].toString(),permit2:Y.erc20Allowances.permit2.toString()},permit2BundlerAllowance:{amount:Y.permit2BundlerAllowance.amount.toString(),expiration:Y.permit2BundlerAllowance.expiration.toString(),nonce:Y.permit2BundlerAllowance.nonce.toString()},erc2612Nonce:Number(Y.erc2612Nonce??0n),canTransfer:Y.canTransfer??!1,tool:"morpho_get_token_balance",timestamp:new Date().toISOString()}}}var hE="0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb";function HU($){let J={kind:"vault_position",chain:$.chain,userAddress:$.userAddress,vaultAddress:$.vaultAddress},Q=jv($.vaultAddress,$.assetAddress,$.userAddress),Y=Cv($.vaultAddress,$.assets);return{version:1,protocol:"morpho",operation:$.operation,entrypointTxIndex:$.approvalCount,subject:J,intent:$.intent,assets:$.assets,observations:Q,logDecoding:Y,analysis:{kind:"vault_analysis"}}}function jv($,J,Q){return[{key:"vault_share_balance",target:$,calldata:r({abi:i,functionName:"balanceOf",args:[Q]}),abiName:"metaMorpho",functionName:"balanceOf",returnType:"uint256"},{key:"asset_balance",target:J,calldata:r({abi:P0,functionName:"balanceOf",args:[Q]}),abiName:"erc20",functionName:"balanceOf",returnType:"uint256"}]}function Cv($,J){return{contracts:[{address:hE.toLowerCase(),name:"Morpho Blue",abiName:"blue"},{address:$.toLowerCase(),name:"MetaMorpho Vault",abiName:"metaMorpho"},...J.map((Y)=>({address:Y.address.toLowerCase(),name:`ERC20 (${Y.symbol})`,abiName:"erc20"}))],assets:J}}function J3($){let J={kind:"market_position",chain:$.chain,userAddress:$.userAddress,marketId:$.marketId},Q=$.observationTokens??[$.loanToken],Y=Pv($.userAddress,Q),X=[$.loanToken,$.collateralToken],G=Tv(X);return{version:1,protocol:"morpho",operation:$.operation,entrypointTxIndex:$.approvalCount,subject:J,intent:$.intent,assets:X,observations:Y,logDecoding:G,analysis:{kind:"market_analysis"}}}function Pv($,J){return J.map((Q)=>({key:`${Q.symbol.toLowerCase()}_balance`,target:Q.address,calldata:r({abi:P0,functionName:"balanceOf",args:[$]}),abiName:"erc20",functionName:"balanceOf",returnType:"uint256"}))}function Tv($){return{contracts:[{address:hE.toLowerCase(),name:"Morpho Blue",abiName:"blue"},...$.map((Q)=>({address:Q.address.toLowerCase(),name:`ERC20 (${Q.symbol})`,abiName:"erc20"}))],assets:$}}var e6="0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb",Iv=10n**36n,gE=10n**18n,Av=1.1;function mE($,J,Q,Y,X){if(J<=0n||Q<=0n)return[];let G=$*Q*Y,W=J*Iv*gE;if(W<=0n)return[];let K=G*gE/W,q=Number(K)/1000000000000000000;if(q<1)return[{level:"error",message:`Position would be undercollateralized (health factor: ${q.toFixed(4)}). ${X} will revert.`}];if(q<Av)return[{level:"warning",message:`Position close to liquidation (health factor: ${q.toFixed(4)}). Consider adjusting collateral.`}];return[{level:"info",message:`Estimated health factor after ${X.toLowerCase()}: ${q.toFixed(4)}`}]}class LY{pool;constructor($){this.pool=new Q2($)}buildApprovalTransactions($,J){return $.filter((Q)=>Q.type==="approval").map((Q)=>({to:Q.token,data:r({abi:P0,functionName:"approve",args:[Q.spender,BigInt(Q.amount)]}),value:"0",chainId:J,description:`Approve ${Q.spender.slice(0,10)}… to spend ${Q.amount} of ${Q.token.slice(0,10)}…`}))}async prepareDeposit($){let J=this.pool.getClient($.chain),Q=$.vaultAddress,Y=$.userAddress,X=H1[$.chain],G=String($.amount),{assetAddress:W,assetDecimals:K,assetSymbol:q}=await this.readVaultMeta(J,Q),U;try{U=D6(G,K)}catch{throw new A5(G)}let N,H,f,Z;try{[N,H,f,Z]=await Promise.all([J.readContract({address:Q,abi:i,functionName:"convertToShares",args:[U]}),J.readContract({address:W,abi:P0,functionName:"allowance",args:[Y,Q]}),J.readContract({address:Q,abi:i,functionName:"balanceOf",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[10n**18n]})])}catch(j){throw new v0("INVALID_INPUT",`Failed to read on-chain state for vault ${$.vaultAddress} on ${$.chain}.`,j instanceof Error?j.message:String(j))}let M=N*995n/1000n,D=x4({token:W,spender:Q,amount:U.toString(),currentAllowance:H.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),R=r({abi:i,functionName:"deposit",args:[U,Y]}),O={to:Q,data:R,value:"0",chainId:X,description:`Deposit ${G} ${q} into vault`},E=this.buildApprovalTransactions(D,X),V={address:W,symbol:q,decimals:K,chain:$.chain},w=HU({chain:$.chain,userAddress:Y,vaultAddress:Q,assetAddress:W,assets:[V],intent:{kind:"deposit_assets",assets:U.toString()},operation:"deposit",approvalCount:E.length}),B;try{B={vault:nK({assets:U,sharesReceived:N,existingShares:f,assetsPerShare:Z,shareDecimals:18})}}catch{}return{operation:"deposit",chain:$.chain,summary:`Deposit ${G} ${q} into vault ${Q.slice(0,10)}… (min shares: ${M})`,simulationPlan:w,requirements:D,transactions:[...E,O],warnings:[],preview:B}}async prepareWithdraw($){let J=this.pool.getClient($.chain),Q=$.vaultAddress,Y=$.userAddress,X=H1[$.chain],G=String($.amount),{assetAddress:W,assetDecimals:K,assetSymbol:q}=await this.readVaultMeta(J,Q),{vaultV2Factory:U}=t(Number(X)),N=U?await J.readContract({address:U,abi:nQ,functionName:"isVaultV2",args:[Q]}):!1,H,f,Z,M;if(N){let[S,v,F]=await Promise.all([J.readContract({address:Q,abi:i,functionName:"balanceOf",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[10n**18n]}),CO(Q,J)]);H=S,M=v,f=F.maxWithdraw(H).value,Z=F.toShares(f)}else[H,f,Z,M]=await Promise.all([J.readContract({address:Q,abi:i,functionName:"balanceOf",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"maxWithdraw",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"maxRedeem",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[10n**18n]})]);let D,R,O,E,V=[];if($.amount==="max"){if(H===0n)throw new G9(Q,Y);let S=H>Z?Z:H;if(H>Z){let F=H-Z;V.push({level:"warning",message:`Redeeming ${Z} of ${H} shares (${F} shares exceed current vault liquidity)`})}let v=await J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[S]});R=l0(v,K),O=S,E=v,D=r({abi:i,functionName:"redeem",args:[S,Y,Y]})}else{let S;try{S=D6(G,K)}catch{throw new A5(G)}if(S>f){let v=l0(f,K);throw new DY(`Requested withdraw amount exceeds current vault liquidity. maxWithdraw: ${f} (${v} ${q})`)}R=G,E=S,O=await J.readContract({address:Q,abi:i,functionName:"convertToShares",args:[S]}),D=r({abi:i,functionName:"withdraw",args:[S,Y,Y]})}let w={to:Q,data:D,value:"0",chainId:X,description:`Withdraw ${R} ${q} from vault`},B=[],j={address:W,symbol:q,decimals:K,chain:$.chain},T=$.amount==="max"?{kind:"redeem_shares",shares:(H>Z?Z:H).toString()}:{kind:"withdraw_assets",assets:D6(String($.amount),K).toString()},x=HU({chain:$.chain,userAddress:Y,vaultAddress:Q,assetAddress:W,assets:[j],intent:T,operation:"withdraw",approvalCount:0}),C;try{if(O!=null&&E!=null)C={vault:oK({assetsReceived:E,sharesBurned:O,existingShares:H,assetsPerShare:M,shareDecimals:18})}}catch{}return{operation:"withdraw",chain:$.chain,summary:`Withdraw ${R} ${q} from vault ${Q.slice(0,10)}…`,simulationPlan:x,requirements:B,transactions:[w],warnings:V,preview:C}}async prepareSupply($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=String($.amount),G=await L6($.marketId,J),W,K,q;try{[W,K,q]=await Promise.all([this.readTokenMeta(J,G.params.loanToken),this.readTokenMeta(J,G.params.collateralToken),J.readContract({address:G.params.loanToken,abi:P0,functionName:"allowance",args:[Q,e6]})])}catch(R){throw new v0("INVALID_INPUT",`Failed to read on-chain state for market ${$.marketId} on ${$.chain}.`,R instanceof Error?R.message:String(R))}let U;try{U=D6(X,W.decimals)}catch{throw new A5(X)}let N=x4({token:W.address,spender:e6,amount:U.toString(),currentAllowance:q.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),H=r({abi:L1,functionName:"supply",args:[G.params,U,0n,Q,"0x"]}),f={to:e6,data:H,value:"0",chainId:Y,description:`Supply ${X} ${W.symbol} to market`},Z=this.buildApprovalTransactions(N,Y),M=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},collateralToken:{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain},intent:{kind:"supply_assets",assets:U.toString(),shares:"0"},operation:"supply",approvalCount:Z.length}),D;try{let R=await C5(Q,$.marketId,J);D={market:iK({market:G,position:{supplyShares:R.supplyShares,borrowShares:R.borrowShares,collateral:R.collateral},assets:U})}}catch{}return{operation:"supply",chain:$.chain,summary:`Supply ${X} ${W.symbol} to market ${$.marketId.slice(0,10)}…`,simulationPlan:M,requirements:N,transactions:[...Z,f],warnings:[],preview:D}}async prepareBorrow($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=String($.borrowAmount),G=await L6($.marketId,J),[W,K]=await Promise.all([this.readTokenMeta(J,G.params.loanToken),this.readTokenMeta(J,G.params.collateralToken)]),q;try{q=D6(X,W.decimals)}catch{throw new A5(X)}let U=r({abi:L1,functionName:"borrow",args:[G.params,q,0n,Q,Q]}),N={to:e6,data:U,value:"0",chainId:Y,description:`Borrow ${X} ${W.symbol}`},H=await C5(Q,$.marketId,J),f=G.toBorrowAssets(H.borrowShares)+q,Z=mE(H.collateral,f,G.price??0n,G.params.lltv,"Borrow"),M=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},collateralToken:{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain},intent:{kind:"borrow_assets",assets:q.toString(),shares:"0"},operation:"borrow",approvalCount:0,observationTokens:[{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain}]}),D;try{D={market:sK({market:G,position:{supplyShares:H.supplyShares,borrowShares:H.borrowShares,collateral:H.collateral},assets:q})}}catch{}return{operation:"borrow",chain:$.chain,summary:`Borrow ${X} ${W.symbol} from market ${$.marketId.slice(0,10)}…`,simulationPlan:M,requirements:[],transactions:[N],warnings:Z,preview:D}}async prepareRepay($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=await L6($.marketId,J),G,W,K;try{[G,W,K]=await Promise.all([this.readTokenMeta(J,X.params.loanToken),this.readTokenMeta(J,X.params.collateralToken),J.readContract({address:X.params.loanToken,abi:P0,functionName:"allowance",args:[Q,e6]})])}catch(B){throw new v0("INVALID_INPUT",`Failed to read on-chain state for market ${$.marketId} on ${$.chain}.`,B instanceof Error?B.message:String(B))}let q,U,N,H=0n,f=0n,Z,M=[];if($.amount==="max"){let B=await C5(Q,$.marketId,J);if(B.borrowShares===0n)throw new G9($.marketId,Q);Z={supplyShares:B.supplyShares,borrowShares:B.borrowShares,collateral:B.collateral},f=B.borrowShares,q=r({abi:L1,functionName:"repay",args:[X.params,0n,B.borrowShares,Q,"0x"]});let j=X.toBorrowAssets(B.borrowShares);N=j*1001n/1000n,U=l0(j,G.decimals),M.push({level:"info",message:`Full repay via shares (${B.borrowShares}). Approval includes 0.1% buffer for accrued interest.`})}else{let B=String($.amount),j;try{j=D6(B,G.decimals)}catch{throw new A5(B)}H=j;try{let T=await C5(Q,$.marketId,J);Z={supplyShares:T.supplyShares,borrowShares:T.borrowShares,collateral:T.collateral}}catch{}q=r({abi:L1,functionName:"repay",args:[X.params,j,0n,Q,"0x"]}),N=j,U=B}let D=x4({token:G.address,spender:e6,amount:N.toString(),currentAllowance:K.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),R={to:e6,data:q,value:"0",chainId:Y,description:`Repay ${U} ${G.symbol}`},O=this.buildApprovalTransactions(D,Y),E=$.amount==="max"?{kind:"repay_shares",assets:"0",shares:f.toString()}:{kind:"repay_assets",assets:H.toString(),shares:"0"},V=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:G.address,symbol:G.symbol,decimals:G.decimals,chain:$.chain},collateralToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},intent:E,operation:"repay",approvalCount:O.length}),w;try{if(Z)w={market:rK({market:X,position:Z,assets:H,shares:f})}}catch{}return{operation:"repay",chain:$.chain,summary:`Repay ${U} ${G.symbol} to market ${$.marketId.slice(0,10)}…`,simulationPlan:V,requirements:D,transactions:[...O,R],warnings:M,preview:w}}async prepareSupplyCollateral($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=String($.amount),G=await L6($.marketId,J),W,K,q;try{[W,K,q]=await Promise.all([this.readTokenMeta(J,G.params.collateralToken),this.readTokenMeta(J,G.params.loanToken),J.readContract({address:G.params.collateralToken,abi:P0,functionName:"allowance",args:[Q,e6]})])}catch(R){throw new v0("INVALID_INPUT",`Failed to read on-chain state for market ${$.marketId} on ${$.chain}.`,R instanceof Error?R.message:String(R))}let U;try{U=D6(X,W.decimals)}catch{throw new A5(X)}let N=x4({token:W.address,spender:e6,amount:U.toString(),currentAllowance:q.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),H=r({abi:L1,functionName:"supplyCollateral",args:[G.params,U,Q,"0x"]}),f={to:e6,data:H,value:"0",chainId:Y,description:`Supply ${X} ${W.symbol} as collateral`},Z=this.buildApprovalTransactions(N,Y),M=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain},collateralToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},intent:{kind:"supply_collateral",assets:U.toString()},operation:"supply_collateral",approvalCount:Z.length,observationTokens:[{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain}]}),D;try{let R=await C5(Q,$.marketId,J);D={market:tK({market:G,position:{supplyShares:R.supplyShares,borrowShares:R.borrowShares,collateral:R.collateral},assets:U})}}catch{}return{operation:"supply_collateral",chain:$.chain,summary:`Supply ${X} ${W.symbol} as collateral to market ${$.marketId.slice(0,10)}…`,simulationPlan:M,requirements:N,transactions:[...Z,f],warnings:[],preview:D}}async prepareWithdrawCollateral($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=await L6($.marketId,J),[G,W]=await Promise.all([this.readTokenMeta(J,X.params.collateralToken),this.readTokenMeta(J,X.params.loanToken)]),K=await C5(Q,$.marketId,J);if(K.collateral===0n)throw new G9($.marketId,Q);let q,U;if($.amount==="max")q=K.collateral,U=l0(K.collateral,G.decimals);else{let O=String($.amount);try{q=D6(O,G.decimals)}catch{throw new A5(O)}if(q>K.collateral)throw new G9($.marketId,Q);U=O}let N=K.collateral-q,H=X.toBorrowAssets(K.borrowShares),f=mE(N,H,X.price??0n,X.params.lltv,"Withdrawal"),Z=r({abi:L1,functionName:"withdrawCollateral",args:[X.params,q,Q,Q]}),M={to:e6,data:Z,value:"0",chainId:Y,description:`Withdraw ${U} ${G.symbol} collateral`},D=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},collateralToken:{address:G.address,symbol:G.symbol,decimals:G.decimals,chain:$.chain},intent:{kind:"withdraw_collateral",assets:q.toString()},operation:"withdraw_collateral",approvalCount:0,observationTokens:[{address:G.address,symbol:G.symbol,decimals:G.decimals,chain:$.chain}]}),R;try{R={market:aK({market:X,position:{supplyShares:K.supplyShares,borrowShares:K.borrowShares,collateral:K.collateral},assets:q})}}catch{}return{operation:"withdraw_collateral",chain:$.chain,summary:`Withdraw ${U} ${G.symbol} collateral from market ${$.marketId.slice(0,10)}…`,simulationPlan:D,requirements:[],transactions:[M],warnings:f,preview:R}}async readVaultMeta($,J){let Q=await $.readContract({address:J,abi:i,functionName:"asset"}),[Y,X]=await Promise.all([$.readContract({address:Q,abi:P0,functionName:"decimals"}),$.readContract({address:Q,abi:P0,functionName:"symbol"})]);return{assetAddress:Q,assetDecimals:Y,assetSymbol:X}}async readTokenMeta($,J){let[Q,Y]=await Promise.all([$.readContract({address:J,abi:P0,functionName:"decimals"}),$.readContract({address:J,abi:P0,functionName:"symbol"})]);return{address:J,decimals:Q,symbol:Y}}}function xv($){if($ instanceof I)return $.shortMessage;if($ instanceof Error)return $.message;return String($)}class fU{pool;constructor($){this.pool=new Q2($)}async simulateTransactions($){let J=this.pool.getClient($.chain),Q=$.from,Y=$.simulationPlan,{executionResults:X,allSucceeded:G,totalGasUsed:W}=await this.executeTransactions(J,Q,$,Y),K;if(Y?.observations.length&&G)K=await this.executeObservations(J,Q,$,Y);let q;if(Y&&G)q=await this.runAnalysis(J,Y,$,Q);let U=JU(X,q,Y);return{chain:$.chain,executionResults:X,allSucceeded:G,totalGasUsed:W,analysis:q,observations:K,warnings:U}}async executeTransactions($,J,Q,Y){let X=Q.transactions.map((H)=>({to:H.to,data:H.data||void 0,value:BigInt(H.value)})),W=(await $.simulateCalls({account:J,calls:X})).results,K=Y?l7.fromPlan(Y):void 0,q=W.map((H,f)=>{let Z=K&&H.logs?K.decodeLogs(H.logs):void 0;if(H.status==="success")return{transactionIndex:f,success:!0,gasUsed:H.gasUsed.toString(),returnData:H.data??void 0,logs:Z?.length?Z:void 0};return{transactionIndex:f,success:!1,gasUsed:"0",revertReason:xv(H.error),logs:Z?.length?Z:void 0}}),U=q.every((H)=>H.success),N=q.reduce((H,f)=>H+BigInt(f.gasUsed),0n).toString();return{executionResults:q,allSucceeded:U,totalGasUsed:N}}async executeObservations($,J,Q,Y){let X=new Map,G=[...Q.transactions.map((W)=>({from:J,to:W.to,data:W.data||void 0,value:BigInt(W.value)})),...Y.observations.map((W)=>({from:J,to:W.target,data:W.calldata,value:0n}))];try{let W=await $.simulateBlocks({blocks:[{calls:G}]}),K=Q.transactions.length;for(let[q,U]of Y.observations.entries()){let N=W[0].calls[K+q];if(N.status==="success"&&N.data)X.set(U.key,N.data)}return GU(Y.observations,X)}catch(W){I5().error({err:W},"SimulationEngine: Failed to execute observations");return}}async runAnalysis($,J,Q,Y){try{switch(J.analysis.kind){case"vault_analysis":case"market_analysis":return await XU($,J,Q.transactions,Y);default:return}}catch(X){I5().error({err:X},"SimulationEngine: Failed to analyze post-state");return}}}function dE($){return new NU($??$Q)}function uE($){return new LY($??$Q)}function cE($){return new fU($??$Q)}var bv={get read(){return dE()},get write(){return uE()},get simulate(){return cE()}},FY=Object.fromEntries(KU.map(($)=>{let J=WU($.name);return[J,{name:J,description:$.description,category:$.category,handler:async(Q)=>$.execute(Q,bv)}]}));var oE=G3(tq(),1);var kv="0.1.0";aq(oE.default({level:"warn"},process.stderr));var yv={read:"Read",write:"Write",simulate:"Simulate"},vv=["read","write","simulate"],hv=["base","ethereum"],gv=["apy_desc","apy_asc","tvl_desc","tvl_asc"],mv=["supplyApy","borrowApy","netSupplyApy","netBorrowApy","supplyAssetsUsd","borrowAssetsUsd","totalLiquidityUsd"],dv=["asc","desc"],uv=["address","name","symbol","apyPct","tvl","tvlUsd","feePct"],cv=["supplyApy","borrowApy","totalSupply","totalBorrow","totalCollateral","totalLiquidity","supplyAssetsUsd","borrowAssetsUsd","collateralAssetsUsd","liquidityAssetsUsd"],pv=/^0x[a-fA-F0-9]{40}$/,lv=/^0x[a-fA-F0-9]{64}$/;function iE($,J){try{return JSON.parse(J)}catch{throw new S6(`option '${$}' expects valid JSON`)}}function nv($,J){if(!pv.test(J))throw new S6(`option '${$}' expects an Ethereum address`);return J}function ov($,J){if(!lv.test(J))throw new S6(`option '${$}' expects a 32-byte hex market id`);return J}function sE($,J){let Q=Number(J);if(Number.isNaN(Q)||Q<=0)throw new S6(`option '${$}' expects a positive number`);return Q}function pE($){let J=Number($);if(!Number.isInteger(J))throw new S6("option '--limit <number>' expects an integer");if(J<1||J>100)throw new S6("option '--limit <number>' expects an integer between 1 and 100");return J}function lE($){let J=Number($);if(!Number.isInteger(J)||J<0)throw new S6("option '--skip <number>' expects a non-negative integer");return J}function nE($){return(J)=>{let Q=J.split(",").map((Y)=>Y.trim());for(let Y of Q)if(!$.includes(Y))throw new S6(`invalid field '${Y}'. Valid: ${$.join(", ")}`);return Q}}function ZU($,J){if(J==="max")return J;return sE($,J)}function iv($,J){let Q=iE($,J);if(!Array.isArray(Q))throw new S6(`option '${$}' expects a JSON array`);return Q}function sv($,J){let Q=iE($,J);if(Q===null||Array.isArray(Q)||typeof Q!=="object")throw new S6(`option '${$}' expects a JSON object`);return Q}function M1($,J,Q){let Y=new bU($,J);if(Q?.choices)Y.choices([...Q.choices]);if(Q?.parser)Y.argParser(Q.parser);if(Q?.required)Y.makeOptionMandatory();return Y}function l1($,J){for(let Q of J)$.addOption(Q)}function n1(){return M1("--chain <base|ethereum>","Chain slug",{choices:hv,required:!0})}function K1($,J,Q=!1){return M1($,J,{parser:(Y)=>nv($,Y),required:Q})}function Y2($,J,Q=!1){return M1($,J,{parser:(Y)=>ov($,Y),required:Q})}function SY($,J,Q=!1){return M1($,J,{parser:(Y)=>sE($,Y),required:Q})}var rv={"health-check":()=>{},"get-supported-chains":()=>{},"query-vaults":($)=>{l1($,[n1(),M1("--asset-symbol <value>","Filter by asset symbol"),K1("--asset-address <address>","Filter by asset address"),M1("--sort <value>","Sort order",{choices:gv}),M1("--limit <number>","Maximum number of results",{parser:pE}),M1("--skip <number>","Number of results to skip",{parser:lE}),M1("--fields <fields>","Comma-separated fields to include",{parser:nE(uv)})])},"get-vault":($)=>{l1($,[n1(),K1("--address <address>","Vault address",!0)])},"query-markets":($)=>{l1($,[n1(),K1("--loan-asset <address>","Filter by loan asset address",!0),K1("--collateral-asset <address>","Filter by collateral asset address",!0),M1("--sort-by <value>","Sort field (default: supplyAssetsUsd)",{choices:mv}),M1("--sort-direction <value>","Sort direction (default: desc)",{choices:dv}),M1("--limit <number>","Maximum number of results",{parser:pE}),M1("--skip <number>","Number of results to skip",{parser:lE}),M1("--fields <fields>","Comma-separated fields to include",{parser:nE(cv)})])},"get-market":($)=>{l1($,[n1(),Y2("--id <id>","Market id",!0)])},"get-positions":($)=>{l1($,[n1(),K1("--user-address <address>","User address",!0),K1("--vault-address <address>","Optional vault address"),Y2("--market-id <id>","Optional market id")])},"get-position":($)=>{l1($,[n1(),K1("--user-address <address>","User address",!0),K1("--vault-address <address>","Optional vault address"),Y2("--market-id <id>","Optional market id")])},"get-token-balance":($)=>{l1($,[n1(),K1("--user-address <address>","User address",!0),K1("--token-address <address>","Token address",!0)])},"prepare-deposit":($)=>{l1($,[n1(),K1("--vault-address <address>","Vault address",!0),K1("--user-address <address>","User address",!0),SY("--amount <number>","Deposit amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-withdraw":($)=>{l1($,[n1(),K1("--vault-address <address>","Vault address",!0),K1("--user-address <address>","User address",!0),M1("--amount <number|max>","Withdraw amount or max",{parser:(J)=>ZU("--amount <number|max>",J),required:!0})]),$.option("--no-simulate","Skip transaction simulation")},"prepare-supply":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),SY("--amount <number>","Supply amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-borrow":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),SY("--borrow-amount <number>","Borrow amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-repay":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),M1("--amount <number|max>","Repay amount or max",{parser:(J)=>ZU("--amount <number|max>",J),required:!0})]),$.option("--no-simulate","Skip transaction simulation")},"prepare-supply-collateral":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),SY("--amount <number>","Collateral amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-withdraw-collateral":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),M1("--amount <number|max>","Collateral amount or max",{parser:(J)=>ZU("--amount <number|max>",J),required:!0})]),$.option("--no-simulate","Skip transaction simulation")},"simulate-transactions":($)=>{l1($,[n1(),K1("--from <address>","Sender address",!0),M1("--transactions <json>","JSON array of unsigned transactions",{parser:(J)=>iv("--transactions <json>",J),required:!0}),M1("--analysis-context <json>","Optional Morpho analysis context",{parser:(J)=>sv("--analysis-context <json>",J)})])}};function tv(){let $=[""];for(let J of vv){$.push(`${yv[J]}:`);for(let Q of Object.values(FY).filter((Y)=>Y.category===J))$.push(` ${Q.name.padEnd(25)} ${Q.description}`);$.push("")}return $.push("Examples:"),$.push(" morpho query-vaults --chain base"),$.push(" morpho get-vault --chain base --address 0x..."),$.push(" morpho prepare-deposit --chain base --vault-address 0x... --user-address 0x... --amount 1000"),$.join(`
546
+ `,{symbol:J,chainId:Q})).assets?.items??[]).map((G)=>G.address.toLowerCase())}async checkHealth(){try{return await this.executeQuery("query HealthCheck { __typename }",{}),!0}catch{return!1}}async executeQuery($,J){let Q=null;for(let Y=1;Y<=this.maxRetries;Y++)try{let X=await fetch(this.url,{method:"POST",headers:this.headers,body:JSON.stringify({query:$,variables:J})});if(X.status===401)throw Error("Authentication failed");if(!X.ok)throw Error(`HTTP ${X.status}: ${await X.text()}`);let G=await X.json();if(G.errors?.length)throw Error(G.errors.map((W)=>W.message).join("; "));return G.data}catch(X){if(Q=X instanceof Error?X:Error(String(X)),Q.message==="Authentication failed")throw Q;if(Y<this.maxRetries){let G=this.baseDelay*Math.pow(2,Y-1);await this.sleep(G)}}throw Error(`Failed after ${this.maxRetries} retries: ${Q?.message}`)}sleep($){return new Promise((J)=>setTimeout(J,$))}}var yw;function y1(){return yw??=new vw,yw}function Ay($){switch($.kind){case"deposit_assets":return"deposit";case"withdraw_assets":return"withdraw";case"redeem_shares":return"redeem";default:throw Error(`Unexpected vault intent: ${$.kind}`)}}function xy($,J,Q){switch($.kind){case"deposit_assets":{let Y=BigInt($.assets),X=Q.toShares(Y,"Down");return{sharesAfter:J+X,shareDelta:X}}case"withdraw_assets":{let Y=BigInt($.assets),X=Q.toShares(Y,"Up");return{sharesAfter:J-X,shareDelta:-X}}case"redeem_shares":{let Y=BigInt($.shares);return{sharesAfter:J-Y,shareDelta:-Y}}default:throw Error(`Unexpected vault intent: ${$.kind}`)}}async function $U($,J){if(J.subject.kind!=="vault_position"){I5().warn("analyzeVaultPostState: subject is not vault_position");return}let Q=J.subject;if(!Ay(J.intent))return;let{vaultAddress:X,userAddress:G}=Q,W,K;try{[W,K]=await Promise.all([Qq(X,$),$.readContract({address:X,abi:i,functionName:"balanceOf",args:[G]})])}catch(D){throw I5().error({err:D},"analyzeVaultPostState: failed to fetch vault or shares"),D}let{sharesAfter:q,shareDelta:U}=xy(J.intent,K,W),N=W.toAssets(K),H=W.toAssets(q),f=H-N,Z;try{let D=y1(),R=Q.chain||"base",O=await D.getVault(R,Q.vaultAddress);if(O?.allocations&&O.allocations.length>0){let E=O.allocations.filter((V)=>V.market!=null).map((V)=>V.market.uniqueKey);Z=await Gq($,E)}}catch(D){I5().warn({err:D},"Failed to read market states for vault analysis")}let M={vaultAddress:Q.vaultAddress,sharesBefore:K.toString(),sharesAfter:q.toString(),assetsBefore:N.toString(),assetsAfter:H.toString(),shareDelta:U.toString(),assetDelta:f.toString()};if(Z)M.marketStates=Z;return M}var hw="SIM_TX_REVERTED",gw="SIM_PARTIAL_REVERT",mw="SIM_HIGH_GAS",dw="SIM_ANALYSIS_UNAVAILABLE",uw="MORPHO_ZERO_SHARES",MY="MORPHO_LARGE_POSITION_CHANGE",cw="MORPHO_HIGH_UTILIZATION",pw="MORPHO_UTILIZATION_SPIKE",lw="MORPHO_STALE_ORACLE",nw="SIM_RPC_FAILURE",ow="SIM_INTERNAL_FAILURE";var by=500000n;function JU($,J,Q){let Y=[],X=$.filter((K)=>!K.success),G=$.filter((K)=>K.success);for(let K of X)Y.push({level:"error",message:`Transaction ${K.transactionIndex} reverted: ${K.revertReason??"unknown reason"}`,code:hw});if(X.length>0&&G.length>0)Y.push({level:"warning",message:`${G.length} of ${$.length} transactions succeeded; partial execution may leave state inconsistent`,code:gw});let W=$.reduce((K,q)=>K+BigInt(q.gasUsed),0n);if(W>by)Y.push({level:"warning",message:`High total gas usage: ${W.toString()}`,code:mw});if(Q&&!J)Y.push({level:"info",message:"Simulation plan was provided but post-state analysis could not be computed",code:dw});return Y}var QU=50n,ky=9500n,yy=1000n,vy=3600n;function iw($){let[J,Q="0"]=$.split("."),Y=Q.padEnd(2,"0").slice(0,2);return BigInt(J)*100n+BigInt(Y)}function YU($){return $<0n?-$:$}function zY($,J,Q,Y){let X=[];if($)hy($,Q,X);if(J)gy(J,Q,Y,X);return X}function hy($,J,Q){if(J==="deposit"&&$.shareDelta==="0")Q.push({level:"warning",message:"Deposit resulted in zero vault shares minted",code:uw});let Y=BigInt($.sharesBefore),X=YU(BigInt($.shareDelta));if(Y>0n&&X*100n/Y>QU)Q.push({level:"info",message:`Position change exceeds 50% of existing position (delta: ${$.shareDelta}, before: ${$.sharesBefore})`,code:MY})}function gy($,J,Q,Y){if($.utilizationAfter){let W=iw($.utilizationAfter);if(W>ky)Y.push({level:"warning",message:`Market utilization after operation is ${$.utilizationAfter}%, exceeding 95% threshold`,code:cw});if($.utilizationBefore){let K=iw($.utilizationBefore),q=W-K;if(q>yy)Y.push({level:"warning",message:`Utilization spike of ${(q/100n).toString()}pp (${$.utilizationBefore}% → ${$.utilizationAfter}%)`,code:pw})}}if(Q!==void 0){let W=BigInt(Math.floor(Date.now()/1000));if(W-Q>vy)Y.push({level:"warning",message:`Market data may be stale (last updated ${(W-Q).toString()}s ago)`,code:lw})}let X=J==="supply"||J==="withdraw",G=J==="borrow"||J==="repay";if(X){let W=BigInt($.supplyBefore),K=YU(BigInt($.supplyDelta));if(W>0n&&K*100n/W>QU)Y.push({level:"info",message:`Position change exceeds 50% of existing position (delta: ${$.supplyDelta}, before: ${$.supplyBefore})`,code:MY})}if(G){let W=BigInt($.borrowBefore),K=YU(BigInt($.borrowDelta));if(W>0n&&K*100n/W>QU)Y.push({level:"info",message:`Position change exceeds 50% of existing position (delta: ${$.borrowDelta}, before: ${$.borrowBefore})`,code:MY})}}function my($){if($ instanceof I){let J=$.name;return J.includes("Request")||J.includes("Timeout")||J.includes("Socket")}if($ instanceof TypeError)return!0;if($ instanceof Error)return/ECONNREFUSED|ETIMEDOUT|ENOTFOUND|network|socket/i.test($.message);return!1}function p1($){let J=$ instanceof Error?$.message:String($);if(my($))return{level:"error",message:`Simulation could not run — RPC node error: ${J}. Transactions are prepared but unverified. Retry or check RPC configuration.`,code:nw};return{level:"error",message:`Simulation failed unexpectedly: ${J}. Transactions are prepared but could not be verified.`,code:ow}}async function XU($,J,Q,Y){switch(J.analysis.kind){case"vault_analysis":{let X=await $U($,J),G=zY(X,void 0,J.operation);return{protocol:"morpho",operation:J.operation,vault:X,warnings:G}}case"market_analysis":{let X=await Xq($,J,Q,Y),G=X?.postState,W=X?.lastUpdate,K=zY(void 0,G,J.operation,W);return{protocol:"morpho",operation:J.operation,market:G,warnings:K}}}}function dy($,J){if(!$||$==="0x")return;if(!$.match(/^0x[0-9a-fA-F]*$/))return;try{switch(J){case"uint256":case"uint128":case"uint64":case"uint32":case"uint8":return C1([{type:J}],$)[0].toString();case"string":return C1([{type:"string"}],$)[0];case"bool":return C1([{type:"bool"}],$)[0].toString();case"address":return C1([{type:"address"}],$)[0];case"tuple":return $;default:return $}}catch{return}}function GU($,J){return $.map((Q)=>{let Y=J.get(Q.key);if(!Y)return{key:Q.key,raw:void 0,decoded:void 0,type:Q.returnType,error:"No result found"};let X=dy(Y,Q.returnType);return{key:Q.key,raw:Y,decoded:X,type:Q.returnType}})}var uy=z.object({}),MF0=z.object({status:z.enum(["healthy","unhealthy"]),timestamp:z.string()});async function cy(){return{status:await y1().checkHealth()?"healthy":"unhealthy",timestamp:new Date().toISOString()}}var sw={name:"morpho_health_check",description:"Check the health status of the MCP server and connected services",category:"read",inputSchema:uy,execute:async()=>cy()};var py=z.object({}),ly=z.object({slug:z.string(),name:z.string(),chainId:z.string(),explorerUrl:z.string(),isTestnet:z.boolean()}),OF0=z.object({chains:z.array(ly),tool:z.string(),timestamp:z.string()}),ny=[{slug:"base",name:"Base",chainId:"8453",explorerUrl:"https://basescan.org",isTestnet:!1},{slug:"ethereum",name:"Ethereum",chainId:"1",explorerUrl:"https://etherscan.io",isTestnet:!1}];function oy(){return{chains:ny,tool:"morpho_get_supported_chains",timestamp:new Date().toISOString()}}var rw={name:"morpho_get_supported_chains",description:"Get list of supported blockchain networks",category:"read",inputSchema:py,execute:async()=>oy()};var iy=z.enum(["address","name","symbol","apyPct","tvl","tvlUsd","feePct"]),tw=z.object({chain:X0,assetSymbol:z.string().optional(),assetAddress:$0.optional(),sort:z.enum(["apy_desc","apy_asc","tvl_desc","tvl_asc"]).optional(),limit:z.coerce.number().int().min(1).max(100).optional(),skip:z.coerce.number().int().min(0).optional(),fields:z.array(iy).optional()}),BF0=z.object({vaults:z.array(E7),chain:X0,tool:z.string(),timestamp:z.string(),count:z.number(),pagination:z.object({total:z.number(),limit:z.number(),skip:z.number()})}),aw={apy_desc:($,J)=>Number(J.apyPct??0)-Number($.apyPct??0),apy_asc:($,J)=>Number($.apyPct??0)-Number(J.apyPct??0),tvl_desc:($,J)=>Number(J.tvlUsd??0)-Number($.tvlUsd??0),tvl_asc:($,J)=>Number($.tvlUsd??0)-Number(J.tvlUsd??0)};function sy($,J){return{address:$.address.toLowerCase(),name:$.name,chain:J,asset:$6($.asset,J),curator:$.curator,allocator:$.allocator,apyPct:$.apyPct,tvl:$.tvl,tvlUsd:$.tvlUsd,feePct:$.feePct,rewards:$.rewards?.map((Q)=>({asset:$6(Q.asset,J),supplyAprPct:Q.supplyAprPct})),version:$.version,type:$.type}}async function ry($){let J=y1(),Q=$.limit??100,Y=$.skip??0,X=Math.min(Y+Q,1000),G,W=!1;if($.assetAddress)G=[$.assetAddress];else if($.assetSymbol){let w=await J.resolveAssetAddresses($.chain,$.assetSymbol);if(w.length===0)W=!0;else G=w}let K=$.sort?void 0:$.fields,q=J.queryVaults({chain:$.chain,assetSymbol:$.assetSymbol,assetAddress:$.assetAddress,sort:$.sort,limit:X,skip:0,fields:K}),U=W?Promise.resolve(null):J.queryVaultsV2({chain:$.chain,assetAddresses:G,sort:$.sort,limit:X,skip:0}),N=await Promise.allSettled([q,U]),H=N[0].status==="fulfilled"?N[0].value:null,f=N[1].status==="fulfilled"?N[1].value:null,Z=H?.items??[],M=f?.items??[],D=[...Z,...M];if($.sort&&aw[$.sort])D.sort(aw[$.sort]);let R=D.slice(Y,Y+Q),O=H?.pageInfo.countTotal??0,E=f?.pageInfo.countTotal??0,V=R.map((w)=>sy(w,$.chain));return{vaults:V,chain:$.chain,tool:"morpho_query_vaults",timestamp:new Date().toISOString(),count:V.length,pagination:{total:O+E,limit:Q,skip:Y}}}var ew={name:"morpho_query_vaults",description:"Query Morpho vaults with optional filtering and sorting",category:"read",inputSchema:tw,execute:async($)=>ry(tw.parse($))};class v0 extends Error{code;userMessage;details;originalError;timestamp;constructor($,J,Q,Y){super(J);this.code=$;this.userMessage=J;this.details=Q;this.originalError=Y;this.name="ToolError",this.timestamp=new Date().toISOString()}toJSON(){return{code:this.code,userMessage:this.userMessage,details:this.details,timestamp:this.timestamp}}}class VY{static ERROR_PATTERNS=[{pattern:/authentication|unauthorized|rate limit|too many requests/i,code:"SERVICE_ERROR",getMessage:($)=>$.message},{pattern:/network|connection|ECONNREFUSED|ETIMEDOUT|timeout|timed out/i,code:"SERVICE_ERROR",getMessage:()=>"The service is temporarily unavailable. Please try again later."},{pattern:/invalid|validation|bad request/i,code:"INVALID_INPUT",getMessage:($)=>$.message},{pattern:/not found|does not exist/i,code:"NOT_FOUND",getMessage:($)=>$.message}];static mapError($){if($ instanceof v0)return $;let J=$ instanceof Error?$:Error(String($)),Q=J;if(Q.response?.status){let Y=Q.response.status;if(Y===401||Y===429||Y>=500)return new v0("SERVICE_ERROR",J.message,J.message,J);if(Y===404)return new v0("NOT_FOUND",J.message||"Resource not found.",J.message,J)}for(let{pattern:Y,code:X,getMessage:G}of this.ERROR_PATTERNS)if(Y.test(J.message))return new v0(X,G(J),J.message,J);return new v0("INTERNAL_ERROR","An unexpected error occurred. Please try again.",J.message,J)}}class OY extends v0{constructor($){super("INVALID_INPUT",`Unsupported chain: ${$}`,`Chain "${$}" is not configured on this adapter`);this.name="UnsupportedChainError"}}class e4 extends v0{constructor($){super("INTERNAL_ERROR",`Missing required configuration: ${$}`,`Environment variable "${$}" is not set`);this.name="MissingConfigError"}}class A5 extends v0{constructor($){super("INVALID_INPUT",`Invalid amount: "${$}"`,`Could not parse "${$}" as a token amount`);this.name="InvalidAmountError"}}class G9 extends v0{constructor($,J){super("INVALID_INPUT","No position to withdraw",`User ${J} has no shares in vault ${$}`);this.name="InsufficientPositionError"}}class DY extends v0{constructor($){super("INVALID_INPUT",$);this.name="InsufficientLiquidityError"}}var $E=z.object({chain:X0,address:$0}),ty=z.object({market:z.object({uniqueKey:z.string(),loanAsset:z.object({address:z.string(),symbol:z.string()}).nullish(),collateralAsset:z.object({address:z.string(),symbol:z.string()}).nullish()}).optional().describe("Present for v1 vaults — the Morpho Blue market this allocation targets"),address:z.string().optional().describe("Present for v2 vaults — the adapter contract address"),supplyAssets:z.string(),supplyAssetsUsd:z.string().optional()}),bF0=z.object({vault:E7.extend({allocations:z.array(ty).optional()}),chain:X0,tool:z.string(),timestamp:z.string()});async function ay($){let J=y1(),Q=await Promise.allSettled([J.getVault($.chain,$.address),J.getVaultV2($.chain,$.address)]),Y=Q[0].status==="fulfilled"?Q[0].value:null,X=Q[1].status==="fulfilled"?Q[1].value:null,G=Y??X;if(!G)throw new v0("NOT_FOUND",`Vault ${$.address} not found on ${$.chain}`);return{vault:{address:G.address.toLowerCase(),name:G.name,chain:$.chain,asset:$6(G.asset,$.chain),curator:G.curator,allocator:G.allocator,apyPct:G.apyPct,tvl:G.tvl,tvlUsd:G.tvlUsd,feePct:G.feePct,rewards:G.rewards?.map((K)=>({asset:$6(K.asset,$.chain),supplyAprPct:K.supplyAprPct})),allocations:G.allocations,version:G.version,type:G.type},chain:$.chain,tool:"morpho_get_vault",timestamp:new Date().toISOString()}}var JE={name:"morpho_get_vault",description:"Get details of a specific Morpho vault",category:"read",inputSchema:$E,execute:async($)=>ay($E.parse($))};var wY=tW.extend({totalSupply:z.string().optional().describe("Formatted supply amount in loan asset units"),totalBorrow:z.string().optional().describe("Formatted borrow amount in loan asset units"),totalCollateral:z.string().optional().describe("Formatted collateral amount in collateral asset units"),totalLiquidity:z.string().optional().describe("Formatted liquidity amount in loan asset units"),utilization:z.string().optional(),supplyAssetsUsd:z.string().optional(),borrowAssetsUsd:z.string().optional(),collateralAssetsUsd:z.string().optional(),liquidityAssetsUsd:z.string().optional()});function EY($,J){let Q=$.totalSupply?l0(BigInt($.totalSupply),$.loanAsset.decimals):void 0,Y=$.totalBorrow?l0(BigInt($.totalBorrow),$.loanAsset.decimals):void 0,X=$.totalCollateral?l0(BigInt($.totalCollateral),$.collateralAsset.decimals):void 0,G=$.totalLiquidity?l0(BigInt($.totalLiquidity),$.loanAsset.decimals):void 0,W=$.totalSupply&&$.totalBorrow&&BigInt($.totalSupply)>0n?(Number(BigInt($.totalBorrow)*10000n/BigInt($.totalSupply))/1e4).toFixed(4):void 0;return{id:$.id,chain:J,loanAsset:$6($.loanAsset,J),collateralAsset:$6($.collateralAsset,J),lltv:$.lltv,borrowApyPct:$.borrowApyPct,supplyApyPct:$.supplyApyPct,totalSupply:Q,totalBorrow:Y,totalCollateral:X,totalLiquidity:G,utilization:W,supplyAssetsUsd:$.supplyAssetsUsd,borrowAssetsUsd:$.borrowAssetsUsd,collateralAssetsUsd:$.collateralAssetsUsd,liquidityAssetsUsd:$.liquidityAssetsUsd,rewards:$.rewards?.map((K)=>({asset:$6(K.asset,J),supplyAprPct:K.supplyAprPct,borrowAprPct:K.borrowAprPct}))}}var ey=z.enum(["supplyApy","borrowApy","totalSupply","totalBorrow","totalCollateral","totalLiquidity","supplyAssetsUsd","borrowAssetsUsd","collateralAssetsUsd","liquidityAssetsUsd"]),QE=z.object({chain:X0,loanAsset:$0,collateralAsset:$0.optional(),sortBy:z.enum(["supplyApy","borrowApy","netSupplyApy","netBorrowApy","supplyAssetsUsd","borrowAssetsUsd","totalLiquidityUsd"]).default("supplyAssetsUsd").optional(),sortDirection:z.enum(["asc","desc"]).default("desc").optional(),limit:z.coerce.number().int().min(1).max(100).optional(),skip:z.coerce.number().int().min(0).optional(),fields:z.array(ey).optional()}),lF0=z.object({markets:z.array(wY),chain:X0,tool:z.string(),timestamp:z.string(),count:z.number(),pagination:z.object({total:z.number(),limit:z.number(),skip:z.number()})});async function $v($){let J=y1(),Q=$.sortBy??"supplyAssetsUsd",Y=$.sortDirection??"desc",{items:X,pageInfo:G}=await J.queryMarkets({chain:$.chain,...$.loanAsset&&{loanAsset:$.loanAsset},...$.collateralAsset&&{collateralAsset:$.collateralAsset},sortBy:Q,sortDirection:Y,...$.limit!=null&&{limit:$.limit},...$.skip!=null&&{skip:$.skip},...$.fields&&{fields:$.fields}}),W=X.map((K)=>EY(K,$.chain));return{markets:W,chain:$.chain,tool:"morpho_query_markets",timestamp:new Date().toISOString(),count:W.length,pagination:{total:G.countTotal,limit:G.limit,skip:G.skip}}}var YE={name:"morpho_query_markets",description:"Query Morpho markets with optional filtering",category:"read",inputSchema:QE,execute:async($)=>$v(QE.parse($))};var XE=z.object({chain:X0,id:z.string().min(1,"Market ID is required")}),aF0=z.object({market:wY,chain:X0,tool:z.string(),timestamp:z.string()});async function Jv($){let Q=await y1().getMarket($.chain,$.id);if(!Q)throw new v0("NOT_FOUND",`Market ${$.id} not found on ${$.chain}`);return{market:EY(Q,$.chain),chain:$.chain,tool:"morpho_get_market",timestamp:new Date().toISOString()}}var GE={name:"morpho_get_market",description:"Get details of a specific Morpho market",category:"read",inputSchema:XE,execute:async($)=>Jv(XE.parse($))};function RY($,J){let Q=$.vault?.asset??$.market?.loanAsset;if(!Q)throw new v0("INTERNAL_ERROR","Corrupt position data: missing asset metadata from both vault and market");return{userAddress:$.userAddress.toLowerCase(),chain:J,vault:$.vault?{address:$.vault.address.toLowerCase(),name:$.vault.name,chain:J,asset:$6($.vault.asset,J),version:"v1"}:void 0,market:$.market?{id:$.market.id,chain:J,loanAsset:$6($.market.loanAsset,J),collateralAsset:$6($.market.collateralAsset,J),lltv:$.market.lltv??""}:void 0,suppliedAmount:JQ($.suppliedAmount,Q,J),borrowedAmount:$.borrowedAmount&&$.market?JQ($.borrowedAmount,$.market.loanAsset,J):void 0,collateralAmount:$.collateralAmount&&$.market?JQ($.collateralAmount,$.market.collateralAsset,J):void 0,shares:$.shares}}var WE=z.object({chain:X0,userAddress:$0,vaultAddress:$0.optional(),marketId:z.string().optional()}),KS0=z.object({positions:z.array(QQ),chain:X0,tool:z.string(),timestamp:z.string(),count:z.number(),userAddress:z.string()});async function Qv($){let Y=(await y1().getPositions($.chain,$.userAddress,$.vaultAddress,$.marketId)).map((X)=>RY(X,$.chain));return{positions:Y,chain:$.chain,tool:"morpho_get_positions",timestamp:new Date().toISOString(),count:Y.length,userAddress:$.userAddress.toLowerCase()}}var KE={name:"morpho_get_positions",description:"Get all positions for a user",category:"read",inputSchema:WE,execute:async($)=>Qv(WE.parse($))};var qE=z.object({chain:X0,userAddress:$0,vaultAddress:$0.optional(),marketId:z.string().optional()}),MS0=z.object({position:QQ,chain:X0,tool:z.string(),timestamp:z.string()});async function Yv($){let Q=await y1().getPosition($.chain,$.userAddress,$.vaultAddress,$.marketId);if(!Q){let Y=$.vaultAddress?`vault ${$.vaultAddress}`:$.marketId?`market ${$.marketId}`:"any vault or market";throw new v0("NOT_FOUND",`Position not found for ${$.userAddress} in ${Y} on ${$.chain}`)}return{position:RY(Q,$.chain),chain:$.chain,tool:"morpho_get_position",timestamp:new Date().toISOString()}}var UE={name:"morpho_get_position",description:"Get a specific position for a user",category:"read",inputSchema:qE,execute:async($)=>Yv(qE.parse($))};var NE=z.object({chain:X0,userAddress:$0,tokenAddress:$0}),DS0=z.object({chain:X0,userAddress:$0,asset:l6,balance:z.string(),erc20Allowances:z.object({morpho:z.string(),bundler:z.string(),permit2:z.string()}),permit2BundlerAllowance:z.object({amount:z.string(),expiration:z.string(),nonce:z.string()}),erc2612Nonce:z.number().int(),canTransfer:z.boolean(),tool:z.string(),timestamp:z.string()});async function Xv($,J){return J.getTokenBalance($)}var HE={name:"morpho_get_token_balance",description:"Get token balance and Morpho-related approval state for a user. Returns balance, ERC20 allowances (Morpho Blue, Bundler, Permit2), Permit2 bundler allowance, ERC2612 nonce, and transfer permission.",category:"read",inputSchema:NE,execute:async($,J)=>Xv(NE.parse($),J.read)};var fE=z.object({chain:X0,vaultAddress:$0,userAddress:$0,amount:z.union([z.string(),z.number()]).transform(String).refine(($)=>$==="max"||Number.isFinite(Number($))&&Number($)>0,'Amount must be a positive number or "max"').describe('Token amount in human-readable decimals (e.g., "1000.50"), or "max" for full balance'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Gv($,J,Q){let Y=await J.prepareDeposit($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var ZE={name:"morpho_prepare_deposit",description:"Prepare a deposit into a Morpho vault. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the deposit tx. Handles USDT reset-to-zero and DAI non-standard approval.",category:"write",inputSchema:fE,execute:async($,J)=>Gv(fE.parse($),J.write,J.simulate)};var ME=z.object({chain:X0,vaultAddress:$0,userAddress:$0,amount:z.union([z.string(),z.number()]).transform(String).describe('Token amount in human-readable decimals (e.g., "1000.50"), or "max" for full withdrawal'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Wv($,J,Q){let Y=await J.prepareWithdraw($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var zE={name:"morpho_prepare_withdraw",description:'Prepare a withdraw from a Morpho vault. Returns a ready-to-simulate transactions array. Supports "max" for full withdrawal. No approval needed for withdrawals.',category:"write",inputSchema:ME,execute:async($,J)=>Wv(ME.parse($),J.write,J.simulate)};var VE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.number()]).transform(String).describe('Loan token amount in human-readable decimals (e.g., "1000.50"), or "max" for full balance'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Kv($,J,Q){let Y=await J.prepareSupply($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var OE={name:"morpho_prepare_supply",description:"Prepare a supply to a Morpho Blue market. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the supply tx. Handles USDT reset-to-zero and DAI non-standard approval.",category:"write",inputSchema:VE,execute:async($,J)=>Kv(VE.parse($),J.write,J.simulate)};var DE=z.object({chain:X0,marketId:B5,userAddress:$0,borrowAmount:z.union([z.string(),z.number()]).transform(String).describe('Loan token amount to borrow in human-readable decimals (e.g., "500"), or "max" for maximum borrowable'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function qv($,J,Q){let Y=await J.prepareBorrow($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var wE={name:"morpho_prepare_borrow",description:"Prepare a borrow on a Morpho Blue market. Returns a ready-to-simulate transactions array with the borrow tx. Includes health factor check against existing collateral position.",category:"write",inputSchema:DE,execute:async($,J)=>qv(DE.parse($),J.write,J.simulate)};var EE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.number()]).transform(String).describe('Loan token amount to repay in human-readable decimals (e.g., "100"), or "max" for full repayment'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Uv($,J,Q){let Y=await J.prepareRepay($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var RE={name:"morpho_prepare_repay",description:'Prepare a repay on a Morpho Blue market. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the repay tx. Supports "max" for full repayment. Handles USDT reset-to-zero and DAI non-standard approval.',category:"write",inputSchema:EE,execute:async($,J)=>Uv(EE.parse($),J.write,J.simulate)};var BE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.number()]).transform(String).refine(($)=>$==="max"||Number.isFinite(Number($))&&Number($)>0,'Amount must be a positive number or "max"').describe('Collateral token amount in human-readable decimals (e.g., "1.5" for 1.5 WETH), or "max" for full balance'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Nv($,J,Q){let Y=await J.prepareSupplyCollateral($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var _E={name:"morpho_prepare_supply_collateral",description:"Prepare a supply of collateral tokens to a Morpho Blue market without borrowing. Checks on-chain allowance and returns a ready-to-simulate transactions array with approval txs (if needed) followed by the supply collateral tx. Handles USDT reset-to-zero and DAI non-standard approval.",category:"write",inputSchema:BE,execute:async($,J)=>Nv(BE.parse($),J.write,J.simulate)};var LE=z.object({chain:X0,marketId:B5,userAddress:$0,amount:z.union([z.string(),z.number()]).transform(String).describe('Collateral token amount in human-readable decimals (e.g., "1.5"), or "max" for full withdrawal'),simulate:z.boolean().default(!0).describe("Simulate prepared transactions (default: true)")});async function Hv($,J,Q){let Y=await J.prepareWithdrawCollateral($),X=$.simulate?await Q.simulateTransactions({chain:Y.chain,from:$.userAddress,transactions:Y.transactions,simulationPlan:Y.simulationPlan}).catch((G)=>{Y.warnings.push(p1(G));return}):void 0;return{operation:Y,simulation:X}}var FE={name:"morpho_prepare_withdraw_collateral",description:'Prepare a withdrawal of collateral tokens from a Morpho Blue market position. Returns a ready-to-simulate transactions array. Supports "max" for full collateral withdrawal. Includes health factor check when user has active borrows. No approval needed for withdrawals.',category:"write",inputSchema:LE,execute:async($,J)=>Hv(LE.parse($),J.write,J.simulate)};var SE=z.object({chain:X0,from:$0,transactions:z.array(aW).min(1),simulationPlan:eJ.optional()});async function fv($,J){return J.simulateTransactions($)}var jE={name:"morpho_simulate_transactions",description:"Simulate unsigned transactions and return execution results with optional Morpho post-state analysis.",category:"simulate",inputSchema:SE,execute:async($,J)=>fv(SE.parse($),J.simulate)};function WU($){return $.replace(/^morpho_/,"").replace(/_/g,"-")}var KU=[sw,rw,ew,JE,YE,GE,KE,UE,HE,ZE,zE,OE,wE,RE,_E,FE,jE];var CE={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};V1();var PE={block:VZ({format($){return{transactions:$.transactions?.map((Q)=>{if(typeof Q==="string")return Q;let Y=H8(Q);if(Y.typeHex==="0x7e")Y.isSystemTx=Q.isSystemTx,Y.mint=Q.mint?E0(Q.mint):void 0,Y.sourceHash=Q.sourceHash,Y.type="deposit";return Y}),stateRoot:$.stateRoot}}}),transaction:zZ({format($){let J={};if($.type==="0x7e")J.isSystemTx=$.isSystemTx,J.mint=$.mint?E0($.mint):void 0,J.sourceHash=$.sourceHash,J.type="deposit";return J}}),transactionReceipt:cZ({format($){return{l1GasPrice:$.l1GasPrice?E0($.l1GasPrice):null,l1GasUsed:$.l1GasUsed?E0($.l1GasUsed):null,l1Fee:$.l1Fee?E0($.l1Fee):null,l1FeeScalar:$.l1FeeScalar?Number($.l1FeeScalar):null}}})};W5();f6();G0();h6();G0();function TE($){if(!$||$.length===0)return[];let J=[];for(let Q of $){let{chainId:Y,nonce:X,...G}=Q,W=Q.address;J.push([Y?s0(Y):"0x",W,X?s0(X):"0x",...$3({},G)])}return J}G0();fJ();W5();f0();c$();A8();f6();s1();n5();V1();function IE($){let{authorizationList:J}=$;if(J)for(let Q of J){let{chainId:Y}=Q,X=Q.address;if(!T0(X))throw new g0({address:X});if(Y<0)throw new x9({chainId:Y})}BY($)}function AE($){let{blobVersionedHashes:J}=$;if(J){if(J.length===0)throw new K7;for(let Q of J){let Y=W0(Q),X=J1(p0(Q,0,1));if(Y!==32)throw new NW({hash:Q,size:Y});if(X!==TJ)throw new HW({hash:Q,version:X})}}BY($)}function BY($){let{chainId:J,maxPriorityFeePerGas:Q,maxFeePerGas:Y,to:X}=$;if(J<=0)throw new x9({chainId:J});if(X&&!T0(X))throw new g0({address:X});if(Y&&Y>e0)throw new d6({maxFeePerGas:Y});if(Q&&Y&&Q>Y)throw new K8({maxFeePerGas:Y,maxPriorityFeePerGas:Q})}function xE($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(J<=0)throw new x9({chainId:J});if(G&&!T0(G))throw new g0({address:G});if(Q||X)throw new I("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(Y&&Y>e0)throw new d6({maxFeePerGas:Y})}function bE($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(G&&!T0(G))throw new g0({address:G});if(typeof J<"u"&&J<=0)throw new x9({chainId:J});if(Q||X)throw new I("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(Y&&Y>e0)throw new d6({maxFeePerGas:Y})}W5();h6();f6();function s7($){if(!$||$.length===0)return[];let J=[];for(let Q=0;Q<$.length;Q++){let{address:Y,storageKeys:X}=$[Q];for(let G=0;G<X.length;G++)if(X[G].length-2!==64)throw new nX({storageKey:X[G]});if(!T0(Y,{strict:!1}))throw new g0({address:Y});J.push([Y,X])}return J}function kE($,J){let Q=AJ($);if(Q==="eip1559")return zv($,J);if(Q==="eip2930")return Vv($,J);if(Q==="eip4844")return Mv($,J);if(Q==="eip7702")return Zv($,J);return Ov($,J)}function Zv($,J){let{authorizationList:Q,chainId:Y,gas:X,nonce:G,to:W,value:K,maxFeePerGas:q,maxPriorityFeePerGas:U,accessList:N,data:H}=$;IE($);let f=s7(N),Z=TE(Q);return D1(["0x04",p6([h(Y),G?h(G):"0x",U?h(U):"0x",q?h(q):"0x",X?h(X):"0x",W??"0x",K?h(K):"0x",H??"0x",f,Z,...$3($,J)])])}function Mv($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerBlobGas:K,maxFeePerGas:q,maxPriorityFeePerGas:U,accessList:N,data:H}=$;AE($);let{blobVersionedHashes:f,sidecars:Z}=$;if($.blobs&&(typeof f>"u"||typeof Z>"u")){let V=typeof $.blobs[0]==="string"?$.blobs:$.blobs.map((j)=>R0(j)),w=$.kzg,B=L4({blobs:V,kzg:w});if(typeof f>"u")f=PJ({commitments:B});if(typeof Z>"u"){let j=F4({blobs:V,commitments:B,kzg:w});Z=IJ({blobs:V,commitments:B,proofs:j})}}let M=s7(N),D=[h(Q),X?h(X):"0x",U?h(U):"0x",q?h(q):"0x",Y?h(Y):"0x",G??"0x",W?h(W):"0x",H??"0x",M,K?h(K):"0x",f??[],...$3($,J)],R=[],O=[],E=[];if(Z)for(let V=0;V<Z.length;V++){let{blob:w,commitment:B,proof:j}=Z[V];R.push(w),O.push(B),E.push(j)}return D1(["0x03",Z?p6([D,R,O,E]):p6(D)])}function zv($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerGas:K,maxPriorityFeePerGas:q,accessList:U,data:N}=$;BY($);let H=s7(U),f=[h(Q),X?h(X):"0x",q?h(q):"0x",K?h(K):"0x",Y?h(Y):"0x",G??"0x",W?h(W):"0x",N??"0x",H,...$3($,J)];return D1(["0x02",p6(f)])}function Vv($,J){let{chainId:Q,gas:Y,data:X,nonce:G,to:W,value:K,accessList:q,gasPrice:U}=$;xE($);let N=s7(q),H=[h(Q),G?h(G):"0x",U?h(U):"0x",Y?h(Y):"0x",W??"0x",K?h(K):"0x",X??"0x",N,...$3($,J)];return D1(["0x01",p6(H)])}function Ov($,J){let{chainId:Q=0,gas:Y,data:X,nonce:G,to:W,value:K,gasPrice:q}=$;bE($);let U=[G?h(G):"0x",q?h(q):"0x",Y?h(Y):"0x",W??"0x",K?h(K):"0x",X??"0x"];if(J){let N=(()=>{if(J.v>=35n){if((J.v-35n)/2n>0)return J.v;return 27n+(J.v===35n?0n:1n)}if(Q>0)return BigInt(Q*2)+BigInt(35n+J.v-27n);let Z=27n+(J.v===27n?0n:1n);if(J.v!==Z)throw new pX({v:J.v});return Z})(),H=S1(J.r),f=S1(J.s);U=[...U,h(N),H==="0x00"?"0x":H,f==="0x00"?"0x":f]}else if(Q>0)U=[...U,h(Q),"0x","0x"];return p6(U)}function $3($,J){let Q=J??$,{v:Y,yParity:X}=Q;if(typeof Q.r>"u")return[];if(typeof Q.s>"u")return[];if(typeof Y>"u"&&typeof X>"u")return[];let G=S1(Q.r),W=S1(Q.s);return[(()=>{if(typeof X==="number")return X?h(1):"0x";if(Y===0n)return"0x";if(Y===1n)return h(1);return Y===27n?"0x":h(1)})(),G==="0x00"?"0x":G,W==="0x00"?"0x":W]}function Dv($,J){if(Ev($))return wv($);return kE($,J)}var yE={transaction:Dv};function wv($){Rv($);let{sourceHash:J,data:Q,from:Y,gas:X,isSystemTx:G,mint:W,to:K,value:q}=$,U=[J,Y,K??"0x",W?s0(W):"0x",q?s0(q):"0x",X?s0(X):"0x",G?"0x1":"0x",Q??"0x"];return D1(["0x7e",p6(U)])}function Ev($){if($.type==="deposit")return!0;if(typeof $.sourceHash<"u")return!0;return!1}function Rv($){let{from:J,to:Q}=$;if(J&&!T0(J))throw new g0({address:J});if(Q&&!T0(Q))throw new g0({address:Q})}var qU={blockTime:2000,contracts:CE,formatters:PE,serializers:yE};function r7($){let J={formatters:void 0,fees:void 0,serializers:void 0,...$};function Q(Y){return(X)=>{let G=typeof X==="function"?X(Y):X,W={...Y,...G};return Object.assign(W,{extend:Q(W)})}}return Object.assign(J,{extend:Q(J)})}var t7=1,_Y=r7({...qU,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...qU.contracts,disputeGameFactory:{[t7]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[t7]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[t7]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[t7]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:t7}),Bv=r7({..._Y,experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://mainnet-preconf.base.org"]}}});var UU=r7({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12000,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});var _v={base:"BASE_RPC_URL",ethereum:"ETHEREUM_RPC_URL"},Lv={base:"https://base-rpc.publicnode.com",ethereum:"https://ethereum-rpc.publicnode.com"},Fv={base:_Y,ethereum:UU};function Sv($){let J=_v[$],Q=process.env[J]||Lv[$];try{let Y=new URL(Q);if(Y.protocol!=="http:"&&Y.protocol!=="https:")throw new e4(`${J} must be an HTTP(S) URL, got: ${Y.protocol}`)}catch(Y){if(Y instanceof e4)throw Y;throw new e4(`${J} is not a valid URL: ${Q}`)}return{chain:Fv[$],rpcUrl:Q}}function vE($){let{chain:J,rpcUrl:Q}=Sv($);return nW({chain:J,transport:sW(Q)})}class Q2{supportedChains;clients=new Map;constructor($){this.supportedChains=new Set($)}getClient($){if(!this.supportedChains.has($))throw new OY($);let J=this.clients.get($);if(!J)J=vE($),this.clients.set($,J);return J}}class NU{pool;constructor($){this.pool=new Q2($)}async getTokenBalance($){let J=this.pool.getClient($.chain),Q=Number(H1[$.chain]),[Y,X]=await Promise.all([QO($.userAddress,$.tokenAddress,J,{chainId:Q}),s4($.tokenAddress,J,{chainId:Q})]),G=X.decimals??0;return{chain:$.chain,userAddress:$.userAddress,asset:{address:$.tokenAddress.toLowerCase(),symbol:X.symbol??"",decimals:G,chain:$.chain},balance:l0(Y.balance,G),erc20Allowances:{morpho:Y.erc20Allowances.morpho.toString(),bundler:Y.erc20Allowances["bundler3.generalAdapter1"].toString(),permit2:Y.erc20Allowances.permit2.toString()},permit2BundlerAllowance:{amount:Y.permit2BundlerAllowance.amount.toString(),expiration:Y.permit2BundlerAllowance.expiration.toString(),nonce:Y.permit2BundlerAllowance.nonce.toString()},erc2612Nonce:Number(Y.erc2612Nonce??0n),canTransfer:Y.canTransfer??!1,tool:"morpho_get_token_balance",timestamp:new Date().toISOString()}}}var hE="0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb";function HU($){let J={kind:"vault_position",chain:$.chain,userAddress:$.userAddress,vaultAddress:$.vaultAddress},Q=jv($.vaultAddress,$.assetAddress,$.userAddress),Y=Cv($.vaultAddress,$.assets);return{version:1,protocol:"morpho",operation:$.operation,entrypointTxIndex:$.approvalCount,subject:J,intent:$.intent,assets:$.assets,observations:Q,logDecoding:Y,analysis:{kind:"vault_analysis"}}}function jv($,J,Q){return[{key:"vault_share_balance",target:$,calldata:r({abi:i,functionName:"balanceOf",args:[Q]}),abiName:"metaMorpho",functionName:"balanceOf",returnType:"uint256"},{key:"asset_balance",target:J,calldata:r({abi:P0,functionName:"balanceOf",args:[Q]}),abiName:"erc20",functionName:"balanceOf",returnType:"uint256"}]}function Cv($,J){return{contracts:[{address:hE.toLowerCase(),name:"Morpho Blue",abiName:"blue"},{address:$.toLowerCase(),name:"MetaMorpho Vault",abiName:"metaMorpho"},...J.map((Y)=>({address:Y.address.toLowerCase(),name:`ERC20 (${Y.symbol})`,abiName:"erc20"}))],assets:J}}function J3($){let J={kind:"market_position",chain:$.chain,userAddress:$.userAddress,marketId:$.marketId},Q=$.observationTokens??[$.loanToken],Y=Pv($.userAddress,Q),X=[$.loanToken,$.collateralToken],G=Tv(X);return{version:1,protocol:"morpho",operation:$.operation,entrypointTxIndex:$.approvalCount,subject:J,intent:$.intent,assets:X,observations:Y,logDecoding:G,analysis:{kind:"market_analysis"}}}function Pv($,J){return J.map((Q)=>({key:`${Q.symbol.toLowerCase()}_balance`,target:Q.address,calldata:r({abi:P0,functionName:"balanceOf",args:[$]}),abiName:"erc20",functionName:"balanceOf",returnType:"uint256"}))}function Tv($){return{contracts:[{address:hE.toLowerCase(),name:"Morpho Blue",abiName:"blue"},...$.map((Q)=>({address:Q.address.toLowerCase(),name:`ERC20 (${Q.symbol})`,abiName:"erc20"}))],assets:$}}var e6="0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb",Iv=10n**36n,gE=10n**18n,Av=1.1;function mE($,J,Q,Y,X){if(J<=0n||Q<=0n)return[];let G=$*Q*Y,W=J*Iv*gE;if(W<=0n)return[];let K=G*gE/W,q=Number(K)/1000000000000000000;if(q<1)return[{level:"error",message:`Position would be undercollateralized (health factor: ${q.toFixed(4)}). ${X} will revert.`}];if(q<Av)return[{level:"warning",message:`Position close to liquidation (health factor: ${q.toFixed(4)}). Consider adjusting collateral.`}];return[{level:"info",message:`Estimated health factor after ${X.toLowerCase()}: ${q.toFixed(4)}`}]}class LY{pool;constructor($){this.pool=new Q2($)}buildApprovalTransactions($,J){return $.filter((Q)=>Q.type==="approval").map((Q)=>({to:Q.token,data:r({abi:P0,functionName:"approve",args:[Q.spender,BigInt(Q.amount)]}),value:"0",chainId:J,description:`Approve ${Q.spender.slice(0,10)}… to spend ${Q.amount} of ${Q.token.slice(0,10)}…`}))}async prepareDeposit($){let J=this.pool.getClient($.chain),Q=$.vaultAddress,Y=$.userAddress,X=H1[$.chain],G=String($.amount),{assetAddress:W,assetDecimals:K,assetSymbol:q}=await this.readVaultMeta(J,Q),U;try{U=D6(G,K)}catch{throw new A5(G)}let N,H,f,Z;try{[N,H,f,Z]=await Promise.all([J.readContract({address:Q,abi:i,functionName:"convertToShares",args:[U]}),J.readContract({address:W,abi:P0,functionName:"allowance",args:[Y,Q]}),J.readContract({address:Q,abi:i,functionName:"balanceOf",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[10n**18n]})])}catch(j){throw new v0("INVALID_INPUT",`Failed to read on-chain state for vault ${$.vaultAddress} on ${$.chain}.`,j instanceof Error?j.message:String(j))}let M=N*995n/1000n,D=x4({token:W,spender:Q,amount:U.toString(),currentAllowance:H.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),R=r({abi:i,functionName:"deposit",args:[U,Y]}),O={to:Q,data:R,value:"0",chainId:X,description:`Deposit ${G} ${q} into vault`},E=this.buildApprovalTransactions(D,X),V={address:W,symbol:q,decimals:K,chain:$.chain},w=HU({chain:$.chain,userAddress:Y,vaultAddress:Q,assetAddress:W,assets:[V],intent:{kind:"deposit_assets",assets:U.toString()},operation:"deposit",approvalCount:E.length}),B;try{B={vault:nK({assets:U,sharesReceived:N,existingShares:f,assetsPerShare:Z,shareDecimals:18})}}catch{}return{operation:"deposit",chain:$.chain,summary:`Deposit ${G} ${q} into vault ${Q.slice(0,10)}… (min shares: ${M})`,simulationPlan:w,requirements:D,transactions:[...E,O],warnings:[],preview:B}}async prepareWithdraw($){let J=this.pool.getClient($.chain),Q=$.vaultAddress,Y=$.userAddress,X=H1[$.chain],G=String($.amount),{assetAddress:W,assetDecimals:K,assetSymbol:q}=await this.readVaultMeta(J,Q),{vaultV2Factory:U}=t(Number(X)),N=U?await J.readContract({address:U,abi:nQ,functionName:"isVaultV2",args:[Q]}):!1,H,f,Z,M;if(N){let[S,v,F]=await Promise.all([J.readContract({address:Q,abi:i,functionName:"balanceOf",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[10n**18n]}),CO(Q,J)]);H=S,M=v,f=F.maxWithdraw(H).value,Z=F.toShares(f)}else[H,f,Z,M]=await Promise.all([J.readContract({address:Q,abi:i,functionName:"balanceOf",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"maxWithdraw",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"maxRedeem",args:[Y]}),J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[10n**18n]})]);let D,R,O,E,V=[];if($.amount==="max"){if(H===0n)throw new G9(Q,Y);let S=H>Z?Z:H;if(H>Z){let F=H-Z;V.push({level:"warning",message:`Redeeming ${Z} of ${H} shares (${F} shares exceed current vault liquidity)`})}let v=await J.readContract({address:Q,abi:i,functionName:"convertToAssets",args:[S]});R=l0(v,K),O=S,E=v,D=r({abi:i,functionName:"redeem",args:[S,Y,Y]})}else{let S;try{S=D6(G,K)}catch{throw new A5(G)}if(S>f){let v=l0(f,K);throw new DY(`Requested withdraw amount exceeds current vault liquidity. maxWithdraw: ${f} (${v} ${q})`)}R=G,E=S,O=await J.readContract({address:Q,abi:i,functionName:"convertToShares",args:[S]}),D=r({abi:i,functionName:"withdraw",args:[S,Y,Y]})}let w={to:Q,data:D,value:"0",chainId:X,description:`Withdraw ${R} ${q} from vault`},B=[],j={address:W,symbol:q,decimals:K,chain:$.chain},T=$.amount==="max"?{kind:"redeem_shares",shares:(H>Z?Z:H).toString()}:{kind:"withdraw_assets",assets:D6(String($.amount),K).toString()},x=HU({chain:$.chain,userAddress:Y,vaultAddress:Q,assetAddress:W,assets:[j],intent:T,operation:"withdraw",approvalCount:0}),C;try{if(O!=null&&E!=null)C={vault:oK({assetsReceived:E,sharesBurned:O,existingShares:H,assetsPerShare:M,shareDecimals:18})}}catch{}return{operation:"withdraw",chain:$.chain,summary:`Withdraw ${R} ${q} from vault ${Q.slice(0,10)}…`,simulationPlan:x,requirements:B,transactions:[w],warnings:V,preview:C}}async prepareSupply($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=String($.amount),G=await L6($.marketId,J),W,K,q;try{[W,K,q]=await Promise.all([this.readTokenMeta(J,G.params.loanToken),this.readTokenMeta(J,G.params.collateralToken),J.readContract({address:G.params.loanToken,abi:P0,functionName:"allowance",args:[Q,e6]})])}catch(R){throw new v0("INVALID_INPUT",`Failed to read on-chain state for market ${$.marketId} on ${$.chain}.`,R instanceof Error?R.message:String(R))}let U;try{U=D6(X,W.decimals)}catch{throw new A5(X)}let N=x4({token:W.address,spender:e6,amount:U.toString(),currentAllowance:q.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),H=r({abi:L1,functionName:"supply",args:[G.params,U,0n,Q,"0x"]}),f={to:e6,data:H,value:"0",chainId:Y,description:`Supply ${X} ${W.symbol} to market`},Z=this.buildApprovalTransactions(N,Y),M=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},collateralToken:{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain},intent:{kind:"supply_assets",assets:U.toString(),shares:"0"},operation:"supply",approvalCount:Z.length}),D;try{let R=await C5(Q,$.marketId,J);D={market:iK({market:G,position:{supplyShares:R.supplyShares,borrowShares:R.borrowShares,collateral:R.collateral},assets:U})}}catch{}return{operation:"supply",chain:$.chain,summary:`Supply ${X} ${W.symbol} to market ${$.marketId.slice(0,10)}…`,simulationPlan:M,requirements:N,transactions:[...Z,f],warnings:[],preview:D}}async prepareBorrow($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=String($.borrowAmount),G=await L6($.marketId,J),[W,K]=await Promise.all([this.readTokenMeta(J,G.params.loanToken),this.readTokenMeta(J,G.params.collateralToken)]),q;try{q=D6(X,W.decimals)}catch{throw new A5(X)}let U=r({abi:L1,functionName:"borrow",args:[G.params,q,0n,Q,Q]}),N={to:e6,data:U,value:"0",chainId:Y,description:`Borrow ${X} ${W.symbol}`},H=await C5(Q,$.marketId,J),f=G.toBorrowAssets(H.borrowShares)+q,Z=mE(H.collateral,f,G.price??0n,G.params.lltv,"Borrow"),M=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},collateralToken:{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain},intent:{kind:"borrow_assets",assets:q.toString(),shares:"0"},operation:"borrow",approvalCount:0,observationTokens:[{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain}]}),D;try{D={market:sK({market:G,position:{supplyShares:H.supplyShares,borrowShares:H.borrowShares,collateral:H.collateral},assets:q})}}catch{}return{operation:"borrow",chain:$.chain,summary:`Borrow ${X} ${W.symbol} from market ${$.marketId.slice(0,10)}…`,simulationPlan:M,requirements:[],transactions:[N],warnings:Z,preview:D}}async prepareRepay($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=await L6($.marketId,J),G,W,K;try{[G,W,K]=await Promise.all([this.readTokenMeta(J,X.params.loanToken),this.readTokenMeta(J,X.params.collateralToken),J.readContract({address:X.params.loanToken,abi:P0,functionName:"allowance",args:[Q,e6]})])}catch(B){throw new v0("INVALID_INPUT",`Failed to read on-chain state for market ${$.marketId} on ${$.chain}.`,B instanceof Error?B.message:String(B))}let q,U,N,H=0n,f=0n,Z,M=[];if($.amount==="max"){let B=await C5(Q,$.marketId,J);if(B.borrowShares===0n)throw new G9($.marketId,Q);Z={supplyShares:B.supplyShares,borrowShares:B.borrowShares,collateral:B.collateral},f=B.borrowShares,q=r({abi:L1,functionName:"repay",args:[X.params,0n,B.borrowShares,Q,"0x"]});let j=X.toBorrowAssets(B.borrowShares);N=j*1001n/1000n,U=l0(j,G.decimals),M.push({level:"info",message:`Full repay via shares (${B.borrowShares}). Approval includes 0.1% buffer for accrued interest.`})}else{let B=String($.amount),j;try{j=D6(B,G.decimals)}catch{throw new A5(B)}H=j;try{let T=await C5(Q,$.marketId,J);Z={supplyShares:T.supplyShares,borrowShares:T.borrowShares,collateral:T.collateral}}catch{}q=r({abi:L1,functionName:"repay",args:[X.params,j,0n,Q,"0x"]}),N=j,U=B}let D=x4({token:G.address,spender:e6,amount:N.toString(),currentAllowance:K.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),R={to:e6,data:q,value:"0",chainId:Y,description:`Repay ${U} ${G.symbol}`},O=this.buildApprovalTransactions(D,Y),E=$.amount==="max"?{kind:"repay_shares",assets:"0",shares:f.toString()}:{kind:"repay_assets",assets:H.toString(),shares:"0"},V=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:G.address,symbol:G.symbol,decimals:G.decimals,chain:$.chain},collateralToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},intent:E,operation:"repay",approvalCount:O.length}),w;try{if(Z)w={market:rK({market:X,position:Z,assets:H,shares:f})}}catch{}return{operation:"repay",chain:$.chain,summary:`Repay ${U} ${G.symbol} to market ${$.marketId.slice(0,10)}…`,simulationPlan:V,requirements:D,transactions:[...O,R],warnings:M,preview:w}}async prepareSupplyCollateral($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=String($.amount),G=await L6($.marketId,J),W,K,q;try{[W,K,q]=await Promise.all([this.readTokenMeta(J,G.params.collateralToken),this.readTokenMeta(J,G.params.loanToken),J.readContract({address:G.params.collateralToken,abi:P0,functionName:"allowance",args:[Q,e6]})])}catch(R){throw new v0("INVALID_INPUT",`Failed to read on-chain state for market ${$.marketId} on ${$.chain}.`,R instanceof Error?R.message:String(R))}let U;try{U=D6(X,W.decimals)}catch{throw new A5(X)}let N=x4({token:W.address,spender:e6,amount:U.toString(),currentAllowance:q.toString(),chain:$.chain,tokenMeta:{isPermitSupported:!1,isPermit2Supported:!1},walletType:"eoa"}),H=r({abi:L1,functionName:"supplyCollateral",args:[G.params,U,Q,"0x"]}),f={to:e6,data:H,value:"0",chainId:Y,description:`Supply ${X} ${W.symbol} as collateral`},Z=this.buildApprovalTransactions(N,Y),M=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:K.address,symbol:K.symbol,decimals:K.decimals,chain:$.chain},collateralToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},intent:{kind:"supply_collateral",assets:U.toString()},operation:"supply_collateral",approvalCount:Z.length,observationTokens:[{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain}]}),D;try{let R=await C5(Q,$.marketId,J);D={market:tK({market:G,position:{supplyShares:R.supplyShares,borrowShares:R.borrowShares,collateral:R.collateral},assets:U})}}catch{}return{operation:"supply_collateral",chain:$.chain,summary:`Supply ${X} ${W.symbol} as collateral to market ${$.marketId.slice(0,10)}…`,simulationPlan:M,requirements:N,transactions:[...Z,f],warnings:[],preview:D}}async prepareWithdrawCollateral($){let J=this.pool.getClient($.chain),Q=$.userAddress,Y=H1[$.chain],X=await L6($.marketId,J),[G,W]=await Promise.all([this.readTokenMeta(J,X.params.collateralToken),this.readTokenMeta(J,X.params.loanToken)]),K=await C5(Q,$.marketId,J);if(K.collateral===0n)throw new G9($.marketId,Q);let q,U;if($.amount==="max")q=K.collateral,U=l0(K.collateral,G.decimals);else{let O=String($.amount);try{q=D6(O,G.decimals)}catch{throw new A5(O)}if(q>K.collateral)throw new G9($.marketId,Q);U=O}let N=K.collateral-q,H=X.toBorrowAssets(K.borrowShares),f=mE(N,H,X.price??0n,X.params.lltv,"Withdrawal"),Z=r({abi:L1,functionName:"withdrawCollateral",args:[X.params,q,Q,Q]}),M={to:e6,data:Z,value:"0",chainId:Y,description:`Withdraw ${U} ${G.symbol} collateral`},D=J3({chain:$.chain,userAddress:Q,marketId:$.marketId,loanToken:{address:W.address,symbol:W.symbol,decimals:W.decimals,chain:$.chain},collateralToken:{address:G.address,symbol:G.symbol,decimals:G.decimals,chain:$.chain},intent:{kind:"withdraw_collateral",assets:q.toString()},operation:"withdraw_collateral",approvalCount:0,observationTokens:[{address:G.address,symbol:G.symbol,decimals:G.decimals,chain:$.chain}]}),R;try{R={market:aK({market:X,position:{supplyShares:K.supplyShares,borrowShares:K.borrowShares,collateral:K.collateral},assets:q})}}catch{}return{operation:"withdraw_collateral",chain:$.chain,summary:`Withdraw ${U} ${G.symbol} collateral from market ${$.marketId.slice(0,10)}…`,simulationPlan:D,requirements:[],transactions:[M],warnings:f,preview:R}}async readVaultMeta($,J){let Q=await $.readContract({address:J,abi:i,functionName:"asset"}),[Y,X]=await Promise.all([$.readContract({address:Q,abi:P0,functionName:"decimals"}),$.readContract({address:Q,abi:P0,functionName:"symbol"})]);return{assetAddress:Q,assetDecimals:Y,assetSymbol:X}}async readTokenMeta($,J){let[Q,Y]=await Promise.all([$.readContract({address:J,abi:P0,functionName:"decimals"}),$.readContract({address:J,abi:P0,functionName:"symbol"})]);return{address:J,decimals:Q,symbol:Y}}}function xv($){if($ instanceof I)return $.shortMessage;if($ instanceof Error)return $.message;return String($)}class fU{pool;constructor($){this.pool=new Q2($)}async simulateTransactions($){let J=this.pool.getClient($.chain),Q=$.from,Y=$.simulationPlan,{executionResults:X,allSucceeded:G,totalGasUsed:W}=await this.executeTransactions(J,Q,$,Y),K;if(Y?.observations.length&&G)K=await this.executeObservations(J,Q,$,Y);let q;if(Y&&G)q=await this.runAnalysis(J,Y,$,Q);let U=JU(X,q,Y);return{chain:$.chain,executionResults:X,allSucceeded:G,totalGasUsed:W,analysis:q,observations:K,warnings:U}}async executeTransactions($,J,Q,Y){let X=Q.transactions.map((H)=>({to:H.to,data:H.data||void 0,value:BigInt(H.value)})),W=(await $.simulateCalls({account:J,calls:X})).results,K=Y?l7.fromPlan(Y):void 0,q=W.map((H,f)=>{let Z=K&&H.logs?K.decodeLogs(H.logs):void 0;if(H.status==="success")return{transactionIndex:f,success:!0,gasUsed:H.gasUsed.toString(),returnData:H.data??void 0,logs:Z?.length?Z:void 0};return{transactionIndex:f,success:!1,gasUsed:"0",revertReason:xv(H.error),logs:Z?.length?Z:void 0}}),U=q.every((H)=>H.success),N=q.reduce((H,f)=>H+BigInt(f.gasUsed),0n).toString();return{executionResults:q,allSucceeded:U,totalGasUsed:N}}async executeObservations($,J,Q,Y){let X=new Map,G=[...Q.transactions.map((W)=>({from:J,to:W.to,data:W.data||void 0,value:BigInt(W.value)})),...Y.observations.map((W)=>({from:J,to:W.target,data:W.calldata,value:0n}))];try{let W=await $.simulateBlocks({blocks:[{calls:G}]}),K=Q.transactions.length;for(let[q,U]of Y.observations.entries()){let N=W[0].calls[K+q];if(N.status==="success"&&N.data)X.set(U.key,N.data)}return GU(Y.observations,X)}catch(W){I5().error({err:W},"SimulationEngine: Failed to execute observations");return}}async runAnalysis($,J,Q,Y){try{switch(J.analysis.kind){case"vault_analysis":case"market_analysis":return await XU($,J,Q.transactions,Y);default:return}}catch(X){I5().error({err:X},"SimulationEngine: Failed to analyze post-state");return}}}function dE($){return new NU($??$Q)}function uE($){return new LY($??$Q)}function cE($){return new fU($??$Q)}var bv={get read(){return dE()},get write(){return uE()},get simulate(){return cE()}},FY=Object.fromEntries(KU.map(($)=>{let J=WU($.name);return[J,{name:J,description:$.description,category:$.category,handler:async(Q)=>$.execute(Q,bv)}]}));var oE=G3(tq(),1);var kv="0.1.1";aq(oE.default({level:"warn"},process.stderr));var yv={read:"Read",write:"Write",simulate:"Simulate"},vv=["read","write","simulate"],hv=["base","ethereum"],gv=["apy_desc","apy_asc","tvl_desc","tvl_asc"],mv=["supplyApy","borrowApy","netSupplyApy","netBorrowApy","supplyAssetsUsd","borrowAssetsUsd","totalLiquidityUsd"],dv=["asc","desc"],uv=["address","name","symbol","apyPct","tvl","tvlUsd","feePct"],cv=["supplyApy","borrowApy","totalSupply","totalBorrow","totalCollateral","totalLiquidity","supplyAssetsUsd","borrowAssetsUsd","collateralAssetsUsd","liquidityAssetsUsd"],pv=/^0x[a-fA-F0-9]{40}$/,lv=/^0x[a-fA-F0-9]{64}$/;function iE($,J){try{return JSON.parse(J)}catch{throw new S6(`option '${$}' expects valid JSON`)}}function nv($,J){if(!pv.test(J))throw new S6(`option '${$}' expects an Ethereum address`);return J}function ov($,J){if(!lv.test(J))throw new S6(`option '${$}' expects a 32-byte hex market id`);return J}function sE($,J){let Q=Number(J);if(Number.isNaN(Q)||Q<=0)throw new S6(`option '${$}' expects a positive number`);return J}function pE($){let J=Number($);if(!Number.isInteger(J))throw new S6("option '--limit <number>' expects an integer");if(J<1||J>100)throw new S6("option '--limit <number>' expects an integer between 1 and 100");return J}function lE($){let J=Number($);if(!Number.isInteger(J)||J<0)throw new S6("option '--skip <number>' expects a non-negative integer");return J}function nE($){return(J)=>{let Q=J.split(",").map((Y)=>Y.trim());for(let Y of Q)if(!$.includes(Y))throw new S6(`invalid field '${Y}'. Valid: ${$.join(", ")}`);return Q}}function ZU($,J){if(J==="max")return J;return sE($,J)}function iv($,J){let Q=iE($,J);if(!Array.isArray(Q))throw new S6(`option '${$}' expects a JSON array`);return Q}function sv($,J){let Q=iE($,J);if(Q===null||Array.isArray(Q)||typeof Q!=="object")throw new S6(`option '${$}' expects a JSON object`);return Q}function M1($,J,Q){let Y=new bU($,J);if(Q?.choices)Y.choices([...Q.choices]);if(Q?.parser)Y.argParser(Q.parser);if(Q?.required)Y.makeOptionMandatory();return Y}function l1($,J){for(let Q of J)$.addOption(Q)}function n1(){return M1("--chain <base|ethereum>","Chain slug",{choices:hv,required:!0})}function K1($,J,Q=!1){return M1($,J,{parser:(Y)=>nv($,Y),required:Q})}function Y2($,J,Q=!1){return M1($,J,{parser:(Y)=>ov($,Y),required:Q})}function SY($,J,Q=!1){return M1($,J,{parser:(Y)=>sE($,Y),required:Q})}var rv={"health-check":()=>{},"get-supported-chains":()=>{},"query-vaults":($)=>{l1($,[n1(),M1("--asset-symbol <value>","Filter by asset symbol"),K1("--asset-address <address>","Filter by asset address"),M1("--sort <value>","Sort order",{choices:gv}),M1("--limit <number>","Maximum number of results",{parser:pE}),M1("--skip <number>","Number of results to skip",{parser:lE}),M1("--fields <fields>","Comma-separated fields to include",{parser:nE(uv)})])},"get-vault":($)=>{l1($,[n1(),K1("--address <address>","Vault address",!0)])},"query-markets":($)=>{l1($,[n1(),K1("--loan-asset <address>","Filter by loan asset address",!0),K1("--collateral-asset <address>","Filter by collateral asset address",!0),M1("--sort-by <value>","Sort field (default: supplyAssetsUsd)",{choices:mv}),M1("--sort-direction <value>","Sort direction (default: desc)",{choices:dv}),M1("--limit <number>","Maximum number of results",{parser:pE}),M1("--skip <number>","Number of results to skip",{parser:lE}),M1("--fields <fields>","Comma-separated fields to include",{parser:nE(cv)})])},"get-market":($)=>{l1($,[n1(),Y2("--id <id>","Market id",!0)])},"get-positions":($)=>{l1($,[n1(),K1("--user-address <address>","User address",!0),K1("--vault-address <address>","Optional vault address"),Y2("--market-id <id>","Optional market id")])},"get-position":($)=>{l1($,[n1(),K1("--user-address <address>","User address",!0),K1("--vault-address <address>","Optional vault address"),Y2("--market-id <id>","Optional market id")])},"get-token-balance":($)=>{l1($,[n1(),K1("--user-address <address>","User address",!0),K1("--token-address <address>","Token address",!0)])},"prepare-deposit":($)=>{l1($,[n1(),K1("--vault-address <address>","Vault address",!0),K1("--user-address <address>","User address",!0),SY("--amount <number>","Deposit amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-withdraw":($)=>{l1($,[n1(),K1("--vault-address <address>","Vault address",!0),K1("--user-address <address>","User address",!0),M1("--amount <number|max>","Withdraw amount or max",{parser:(J)=>ZU("--amount <number|max>",J),required:!0})]),$.option("--no-simulate","Skip transaction simulation")},"prepare-supply":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),SY("--amount <number>","Supply amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-borrow":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),SY("--borrow-amount <number>","Borrow amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-repay":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),M1("--amount <number|max>","Repay amount or max",{parser:(J)=>ZU("--amount <number|max>",J),required:!0})]),$.option("--no-simulate","Skip transaction simulation")},"prepare-supply-collateral":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),SY("--amount <number>","Collateral amount",!0)]),$.option("--no-simulate","Skip transaction simulation")},"prepare-withdraw-collateral":($)=>{l1($,[n1(),Y2("--market-id <id>","Market id",!0),K1("--user-address <address>","User address",!0),M1("--amount <number|max>","Collateral amount or max",{parser:(J)=>ZU("--amount <number|max>",J),required:!0})]),$.option("--no-simulate","Skip transaction simulation")},"simulate-transactions":($)=>{l1($,[n1(),K1("--from <address>","Sender address",!0),M1("--transactions <json>","JSON array of unsigned transactions",{parser:(J)=>iv("--transactions <json>",J),required:!0}),M1("--analysis-context <json>","Optional Morpho analysis context",{parser:(J)=>sv("--analysis-context <json>",J)})])}};function tv(){let $=[""];for(let J of vv){$.push(`${yv[J]}:`);for(let Q of Object.values(FY).filter((Y)=>Y.category===J))$.push(` ${Q.name.padEnd(25)} ${Q.description}`);$.push("")}return $.push("Examples:"),$.push(" morpho query-vaults --chain base"),$.push(" morpho get-vault --chain base --address 0x..."),$.push(" morpho prepare-deposit --chain base --vault-address 0x... --user-address 0x... --amount 1000"),$.join(`
547
547
  `)}function av($,J){let Q=FY[J],Y=$.command(J).description(Q.description),X=rv[J];if(X)X(Y);else I5().warn(`No CLI option configurer for '${J}' — command registered with no options`);Y.action(async function(){let G=await Q.handler(this.opts());process.stdout.write(JSON.stringify(G,null,2)+`
548
548
  `)})}function ev(){let $=new xU;$.name("morpho").description("CLI interface for Morpho protocol tools").usage("<command> [options]").helpOption("-h, --help","Show this help message").version(kv,"-v, --version","Show version").showSuggestionAfterError(!0).showHelpAfterError('Run "morpho --help" for available commands.').addHelpText("after",tv()).configureOutput({writeOut:(J)=>process.stdout.write(J),writeErr:(J)=>process.stderr.write(J)}).exitOverride();for(let J of Object.keys(FY))av($,J);return $}async function $h($){let J=ev();if($.length===0)return J.outputHelp({error:!0}),1;try{return await J.parseAsync($,{from:"user"}),0}catch(Q){if(Q instanceof AU)return Q.exitCode;let Y=VY.mapError(Q);return process.stderr.write(JSON.stringify({error:Y.code,message:Y.userMessage},null,2)+`
549
549
  `),1}}$h(process.argv.slice(2)).then(($)=>{process.exitCode=$});export{$h as run};
package/package.json CHANGED
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "@morpho-org/cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "description": "CLI interface for Morpho protocol tools",
6
6
  "license": "MIT",
7
7
  "homepage": "https://agents.morpho.org",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/morpho-org/morpho-agent.git"
11
+ },
8
12
  "bugs": "https://github.com/morpho-org/morpho-skills/issues",
9
13
  "keywords": [
10
14
  "morpho",