ravi.bot 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env tsx
2
2
  // @bun
3
- var _H=Object.create;var{getPrototypeOf:vH,defineProperty:$3,getOwnPropertyNames:JH}=Object;var DH=Object.prototype.hasOwnProperty;var M$=($,U,v)=>{v=$!=null?_H(vH($)):{};let J=U||!$||!$.__esModule?$3(v,"default",{value:$,enumerable:!0}):v;for(let _ of JH($))if(!DH.call(J,_))$3(J,_,{get:()=>$[_],enumerable:!0});return J};var r=($,U)=>()=>(U||$((U={exports:{}}).exports,U),U.exports);var T4=($,U)=>{for(var v in U)$3($,v,{get:U[v],enumerable:!0,configurable:!0,set:(J)=>U[v]=()=>J})};var b=function($,U,v,J){var _=arguments.length,D=_<3?U:J===null?J=Object.getOwnPropertyDescriptor(U,v):J,X;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")D=Reflect.decorate($,U,v,J);else for(var Y=$.length-1;Y>=0;Y--)if(X=$[Y])D=(_<3?X(D):_>3?X(U,v,D):X(U,v))||D;return _>3&&D&&Object.defineProperty(U,v,D),D},K=($,U)=>(v,J)=>U(v,J,$),H=($,U)=>{if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata($,U)},f=($,U)=>()=>($&&(U=$($=0)),U);var H$=import.meta.require;var D4=r(()=>{/*! *****************************************************************************
3
+ var _H=Object.create;var{getPrototypeOf:vH,defineProperty:$3,getOwnPropertyNames:JH}=Object;var DH=Object.prototype.hasOwnProperty;var k$=($,U,v)=>{v=$!=null?_H(vH($)):{};let J=U||!$||!$.__esModule?$3(v,"default",{value:$,enumerable:!0}):v;for(let _ of JH($))if(!DH.call(J,_))$3(J,_,{get:()=>$[_],enumerable:!0});return J};var r=($,U)=>()=>(U||$((U={exports:{}}).exports,U),U.exports);var T4=($,U)=>{for(var v in U)$3($,v,{get:U[v],enumerable:!0,configurable:!0,set:(J)=>U[v]=()=>J})};var b=function($,U,v,J){var _=arguments.length,D=_<3?U:J===null?J=Object.getOwnPropertyDescriptor(U,v):J,X;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")D=Reflect.decorate($,U,v,J);else for(var Y=$.length-1;Y>=0;Y--)if(X=$[Y])D=(_<3?X(D):_>3?X(U,v,D):X(U,v))||D;return _>3&&D&&Object.defineProperty(U,v,D),D},K=($,U)=>(v,J)=>U(v,J,$),H=($,U)=>{if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata($,U)},f=($,U)=>()=>($&&(U=$($=0)),U);var G$=import.meta.require;var D4=r(()=>{/*! *****************************************************************************
4
4
  Copyright (C) Microsoft. All rights reserved.
5
5
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
6
6
  this file except in compliance with the License. You may obtain a copy of the
@@ -13,7 +13,7 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
13
13
 
14
14
  See the Apache Version 2.0 License for specific language governing permissions
15
15
  and limitations under the License.
16
- ***************************************************************************** */var YX;(function($){(function(U){var v=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Y(),J=_($);if(typeof v.Reflect<"u")J=_(v.Reflect,J);if(U(J,v),typeof v.Reflect>"u")v.Reflect=$;function _(Q,z){return function(N,G){if(Object.defineProperty(Q,N,{configurable:!0,writable:!0,value:G}),z)z(N,G)}}function D(){try{return Function("return this;")()}catch(Q){}}function X(){try{return(0,eval)("(function() { return this; })()")}catch(Q){}}function Y(){return D()||X()}})(function(U,v){var J=Object.prototype.hasOwnProperty,_=typeof Symbol==="function",D=_&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",X=_&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",Y=typeof Object.create==="function",Q={__proto__:[]}instanceof Array,z=!Y&&!Q,N={create:Y?function(){return sU(Object.create(null))}:Q?function(){return sU({__proto__:null})}:function(){return sU({})},has:z?function(Z,P){return J.call(Z,P)}:function(Z,P){return P in Z},get:z?function(Z,P){return J.call(Z,P)?Z[P]:void 0}:function(Z,P){return Z[P]}},G=Object.getPrototypeOf(Function),W=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:aV(),q=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:eV(),V=typeof WeakMap==="function"?WeakMap:sV(),E=_?Symbol.for("@reflect-metadata:registry"):void 0,T=dV(),S=oV(T);function C(Z,P,w,k){if(!d(w)){if(!sD(Z))throw TypeError();if(!E$(P))throw TypeError();if(!E$(k)&&!d(k)&&!i1(k))throw TypeError();if(i1(k))k=void 0;return w=L4(w),r$(Z,P,w,k)}else{if(!sD(Z))throw TypeError();if(!$X(P))throw TypeError();return R$(Z,P)}}U("decorate",C);function M(Z,P){function w(k,n){if(!E$(k))throw TypeError();if(!d(n)&&!pV(n))throw TypeError();_0(Z,P,k,n)}return w}U("metadata",M);function h(Z,P,w,k){if(!E$(w))throw TypeError();if(!d(k))k=L4(k);return _0(Z,P,w,k)}U("defineMetadata",h);function p(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return i$(Z,P,w)}U("hasMetadata",p);function J$(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return q4(Z,P,w)}U("hasOwnMetadata",J$);function e(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return l1(Z,P,w)}U("getMetadata",e);function N$(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return m6(Z,P,w)}U("getOwnMetadata",N$);function s(Z,P){if(!E$(Z))throw TypeError();if(!d(P))P=L4(P);return c6(Z,P)}U("getMetadataKeys",s);function j$(Z,P){if(!E$(Z))throw TypeError();if(!d(P))P=L4(P);return v0(Z,P)}U("getOwnMetadataKeys",j$);function h$(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);if(!E$(P))throw TypeError();if(!d(w))w=L4(w);var k=n6(P,w,!1);if(d(k))return!1;return k.OrdinaryDeleteMetadata(Z,P,w)}U("deleteMetadata",h$);function R$(Z,P){for(var w=Z.length-1;w>=0;--w){var k=Z[w],n=k(P);if(!d(n)&&!i1(n)){if(!$X(n))throw TypeError();P=n}}return P}function r$(Z,P,w,k){for(var n=Z.length-1;n>=0;--n){var w$=Z[n],A$=w$(P,w,k);if(!d(A$)&&!i1(A$)){if(!E$(A$))throw TypeError();k=A$}}return k}function i$(Z,P,w){var k=q4(Z,P,w);if(k)return!0;var n=eU(P);if(!i1(n))return i$(Z,n,w);return!1}function q4(Z,P,w){var k=n6(P,w,!1);if(d(k))return!1;return eD(k.OrdinaryHasOwnMetadata(Z,P,w))}function l1(Z,P,w){var k=q4(Z,P,w);if(k)return m6(Z,P,w);var n=eU(P);if(!i1(n))return l1(Z,n,w);return}function m6(Z,P,w){var k=n6(P,w,!1);if(d(k))return;return k.OrdinaryGetOwnMetadata(Z,P,w)}function _0(Z,P,w,k){var n=n6(w,k,!0);n.OrdinaryDefineOwnMetadata(Z,P,w,k)}function c6(Z,P){var w=v0(Z,P),k=eU(Z);if(k===null)return w;var n=c6(k,P);if(n.length<=0)return w;if(w.length<=0)return n;var w$=new q,A$=[];for(var $$=0,u=w;$$<u.length;$$++){var y=u[$$],l=w$.has(y);if(!l)w$.add(y),A$.push(y)}for(var i=0,U$=n;i<U$.length;i++){var y=U$[i],l=w$.has(y);if(!l)w$.add(y),A$.push(y)}return A$}function v0(Z,P){var w=n6(Z,P,!1);if(!w)return[];return w.OrdinaryOwnMetadataKeys(Z,P)}function aD(Z){if(Z===null)return 1;switch(typeof Z){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return Z===null?1:6;default:return 6}}function d(Z){return Z===void 0}function i1(Z){return Z===null}function iV(Z){return typeof Z==="symbol"}function E$(Z){return typeof Z==="object"?Z!==null:typeof Z==="function"}function mV(Z,P){switch(aD(Z)){case 0:return Z;case 1:return Z;case 2:return Z;case 3:return Z;case 4:return Z;case 5:return Z}var w=P===3?"string":P===5?"number":"default",k=UX(Z,D);if(k!==void 0){var n=k.call(Z,w);if(E$(n))throw TypeError();return n}return cV(Z,w==="default"?"number":w)}function cV(Z,P){if(P==="string"){var w=Z.toString;if(m1(w)){var k=w.call(Z);if(!E$(k))return k}var n=Z.valueOf;if(m1(n)){var k=n.call(Z);if(!E$(k))return k}}else{var n=Z.valueOf;if(m1(n)){var k=n.call(Z);if(!E$(k))return k}var w$=Z.toString;if(m1(w$)){var k=w$.call(Z);if(!E$(k))return k}}throw TypeError()}function eD(Z){return!!Z}function nV(Z){return""+Z}function L4(Z){var P=mV(Z,3);if(iV(P))return P;return nV(P)}function sD(Z){return Array.isArray?Array.isArray(Z):Z instanceof Object?Z instanceof Array:Object.prototype.toString.call(Z)==="[object Array]"}function m1(Z){return typeof Z==="function"}function $X(Z){return typeof Z==="function"}function pV(Z){switch(aD(Z)){case 3:return!0;case 4:return!0;default:return!1}}function aU(Z,P){return Z===P||Z!==Z&&P!==P}function UX(Z,P){var w=Z[P];if(w===void 0||w===null)return;if(!m1(w))throw TypeError();return w}function _X(Z){var P=UX(Z,X);if(!m1(P))throw TypeError();var w=P.call(Z);if(!E$(w))throw TypeError();return w}function vX(Z){return Z.value}function JX(Z){var P=Z.next();return P.done?!1:P}function DX(Z){var P=Z.return;if(P)P.call(Z)}function eU(Z){var P=Object.getPrototypeOf(Z);if(typeof Z!=="function"||Z===G)return P;if(P!==G)return P;var w=Z.prototype,k=w&&Object.getPrototypeOf(w);if(k==null||k===Object.prototype)return P;var n=k.constructor;if(typeof n!=="function")return P;if(n===Z)return P;return n}function rV(){var Z;if(!d(E)&&typeof v.Reflect<"u"&&!(E in v.Reflect)&&typeof v.Reflect.defineMetadata==="function")Z=tV(v.Reflect);var P,w,k,n=new V,w$={registerProvider:A$,getProvider:u,setProvider:l};return w$;function A$(i){if(!Object.isExtensible(w$))throw Error("Cannot add provider to a frozen registry.");switch(!0){case Z===i:break;case d(P):P=i;break;case P===i:break;case d(w):w=i;break;case w===i:break;default:if(k===void 0)k=new q;k.add(i);break}}function $$(i,U$){if(!d(P)){if(P.isProviderFor(i,U$))return P;if(!d(w)){if(w.isProviderFor(i,U$))return P;if(!d(k)){var V$=_X(k);while(!0){var L$=JX(V$);if(!L$)return;var V4=vX(L$);if(V4.isProviderFor(i,U$))return DX(V$),V4}}}}if(!d(Z)&&Z.isProviderFor(i,U$))return Z;return}function u(i,U$){var V$=n.get(i),L$;if(!d(V$))L$=V$.get(U$);if(!d(L$))return L$;if(L$=$$(i,U$),!d(L$)){if(d(V$))V$=new W,n.set(i,V$);V$.set(U$,L$)}return L$}function y(i){if(d(i))throw TypeError();return P===i||w===i||!d(k)&&k.has(i)}function l(i,U$,V$){if(!y(V$))throw Error("Metadata provider not registered.");var L$=u(i,U$);if(L$!==V$){if(!d(L$))return!1;var V4=n.get(i);if(d(V4))V4=new W,n.set(i,V4);V4.set(U$,V$)}return!0}}function dV(){var Z;if(!d(E)&&E$(v.Reflect)&&Object.isExtensible(v.Reflect))Z=v.Reflect[E];if(d(Z))Z=rV();if(!d(E)&&E$(v.Reflect)&&Object.isExtensible(v.Reflect))Object.defineProperty(v.Reflect,E,{enumerable:!1,configurable:!1,writable:!1,value:Z});return Z}function oV(Z){var P=new V,w={isProviderFor:function(y,l){var i=P.get(y);if(d(i))return!1;return i.has(l)},OrdinaryDefineOwnMetadata:A$,OrdinaryHasOwnMetadata:n,OrdinaryGetOwnMetadata:w$,OrdinaryOwnMetadataKeys:$$,OrdinaryDeleteMetadata:u};return T.registerProvider(w),w;function k(y,l,i){var U$=P.get(y),V$=!1;if(d(U$)){if(!i)return;U$=new W,P.set(y,U$),V$=!0}var L$=U$.get(l);if(d(L$)){if(!i)return;if(L$=new W,U$.set(l,L$),!Z.setProvider(y,l,w)){if(U$.delete(l),V$)P.delete(y);throw Error("Wrong provider for target.")}}return L$}function n(y,l,i){var U$=k(l,i,!1);if(d(U$))return!1;return eD(U$.has(y))}function w$(y,l,i){var U$=k(l,i,!1);if(d(U$))return;return U$.get(y)}function A$(y,l,i,U$){var V$=k(i,U$,!0);V$.set(y,l)}function $$(y,l){var i=[],U$=k(y,l,!1);if(d(U$))return i;var V$=U$.keys(),L$=_X(V$),V4=0;while(!0){var XX=JX(L$);if(!XX)return i.length=V4,i;var $H=vX(XX);try{i[V4]=$H}catch(UH){try{DX(L$)}finally{throw UH}}V4++}}function u(y,l,i){var U$=k(l,i,!1);if(d(U$))return!1;if(!U$.delete(y))return!1;if(U$.size===0){var V$=P.get(l);if(!d(V$)){if(V$.delete(i),V$.size===0)P.delete(V$)}}return!0}}function tV(Z){var{defineMetadata:P,hasOwnMetadata:w,getOwnMetadata:k,getOwnMetadataKeys:n,deleteMetadata:w$}=Z,A$=new V,$$={isProviderFor:function(u,y){var l=A$.get(u);if(!d(l)&&l.has(y))return!0;if(n(u,y).length){if(d(l))l=new q,A$.set(u,l);return l.add(y),!0}return!1},OrdinaryDefineOwnMetadata:P,OrdinaryHasOwnMetadata:w,OrdinaryGetOwnMetadata:k,OrdinaryOwnMetadataKeys:n,OrdinaryDeleteMetadata:w$};return $$}function n6(Z,P,w){var k=T.getProvider(Z,P);if(!d(k))return k;if(w){if(T.setProvider(Z,P,S))return S;throw Error("Illegal state.")}return}function aV(){var Z={},P=[],w=function(){function $$(u,y,l){this._index=0,this._keys=u,this._values=y,this._selector=l}return $$.prototype["@@iterator"]=function(){return this},$$.prototype[X]=function(){return this},$$.prototype.next=function(){var u=this._index;if(u>=0&&u<this._keys.length){var y=this._selector(this._keys[u],this._values[u]);if(u+1>=this._keys.length)this._index=-1,this._keys=P,this._values=P;else this._index++;return{value:y,done:!1}}return{value:void 0,done:!0}},$$.prototype.throw=function(u){if(this._index>=0)this._index=-1,this._keys=P,this._values=P;throw u},$$.prototype.return=function(u){if(this._index>=0)this._index=-1,this._keys=P,this._values=P;return{value:u,done:!0}},$$}(),k=function(){function $$(){this._keys=[],this._values=[],this._cacheKey=Z,this._cacheIndex=-2}return Object.defineProperty($$.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),$$.prototype.has=function(u){return this._find(u,!1)>=0},$$.prototype.get=function(u){var y=this._find(u,!1);return y>=0?this._values[y]:void 0},$$.prototype.set=function(u,y){var l=this._find(u,!0);return this._values[l]=y,this},$$.prototype.delete=function(u){var y=this._find(u,!1);if(y>=0){var l=this._keys.length;for(var i=y+1;i<l;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];if(this._keys.length--,this._values.length--,aU(u,this._cacheKey))this._cacheKey=Z,this._cacheIndex=-2;return!0}return!1},$$.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=Z,this._cacheIndex=-2},$$.prototype.keys=function(){return new w(this._keys,this._values,n)},$$.prototype.values=function(){return new w(this._keys,this._values,w$)},$$.prototype.entries=function(){return new w(this._keys,this._values,A$)},$$.prototype["@@iterator"]=function(){return this.entries()},$$.prototype[X]=function(){return this.entries()},$$.prototype._find=function(u,y){if(!aU(this._cacheKey,u)){this._cacheIndex=-1;for(var l=0;l<this._keys.length;l++)if(aU(this._keys[l],u)){this._cacheIndex=l;break}}if(this._cacheIndex<0&&y)this._cacheIndex=this._keys.length,this._keys.push(u),this._values.push(void 0);return this._cacheIndex},$$}();return k;function n($$,u){return $$}function w$($$,u){return u}function A$($$,u){return[$$,u]}}function eV(){var Z=function(){function P(){this._map=new W}return Object.defineProperty(P.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),P.prototype.has=function(w){return this._map.has(w)},P.prototype.add=function(w){return this._map.set(w,w),this},P.prototype.delete=function(w){return this._map.delete(w)},P.prototype.clear=function(){this._map.clear()},P.prototype.keys=function(){return this._map.keys()},P.prototype.values=function(){return this._map.keys()},P.prototype.entries=function(){return this._map.entries()},P.prototype["@@iterator"]=function(){return this.keys()},P.prototype[X]=function(){return this.keys()},P}();return Z}function sV(){var Z=16,P=N.create(),w=k();return function(){function u(){this._key=k()}return u.prototype.has=function(y){var l=n(y,!1);return l!==void 0?N.has(l,this._key):!1},u.prototype.get=function(y){var l=n(y,!1);return l!==void 0?N.get(l,this._key):void 0},u.prototype.set=function(y,l){var i=n(y,!0);return i[this._key]=l,this},u.prototype.delete=function(y){var l=n(y,!1);return l!==void 0?delete l[this._key]:!1},u.prototype.clear=function(){this._key=k()},u}();function k(){var u;do u="@@WeakMap@@"+$$();while(N.has(P,u));return P[u]=!0,u}function n(u,y){if(!J.call(u,w)){if(!y)return;Object.defineProperty(u,w,{value:N.create()})}return u[w]}function w$(u,y){for(var l=0;l<y;++l)u[l]=Math.random()*255|0;return u}function A$(u){if(typeof Uint8Array==="function"){var y=new Uint8Array(u);if(typeof crypto<"u")crypto.getRandomValues(y);else if(typeof msCrypto<"u")msCrypto.getRandomValues(y);else w$(y,u);return y}return w$(Array(u),u)}function $$(){var u=A$(Z);u[6]=u[6]&79|64,u[8]=u[8]&191|128;var y="";for(var l=0;l<Z;++l){var i=u[l];if(l===4||l===6||l===8)y+="-";if(i<16)y+="0";y+=i.toString(16).toLowerCase()}return y}}function sU(Z){return Z.__=void 0,delete Z.__,Z}})})(YX||(YX={}))});var p6=r((XH)=>{class U3 extends Error{constructor($,U,v){super(v);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=U,this.exitCode=$,this.nestedError=void 0}}class QX extends U3{constructor($){super(1,"commander.invalidArgument",$);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}XH.CommanderError=U3;XH.InvalidArgumentError=QX});var J0=r((GH)=>{var{InvalidArgumentError:zH}=p6();class zX{constructor($,U){switch(this.description=U||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,$[0]){case"<":this.required=!0,this._name=$.slice(1,-1);break;case"[":this.required=!1,this._name=$.slice(1,-1);break;default:this.required=!0,this._name=$;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue($,U){if(U===this.defaultValue||!Array.isArray(U))return[$];return U.push($),U}default($,U){return this.defaultValue=$,this.defaultValueDescription=U,this}argParser($){return this.parseArg=$,this}choices($){return this.argChoices=$.slice(),this.parseArg=(U,v)=>{if(!this.argChoices.includes(U))throw new zH(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(U,v);return U},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function NH($){let U=$.name()+($.variadic===!0?"...":"");return $.required?"<"+U+">":"["+U+"]"}GH.Argument=zX;GH.humanReadableArgName=NH});var _3=r((WH)=>{var{humanReadableArgName:HH}=J0();class NX{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext($){this.helpWidth=this.helpWidth??$.helpWidth??80}visibleCommands($){let U=$.commands.filter((J)=>!J._hidden),v=$._getHelpCommand();if(v&&!v._hidden)U.push(v);if(this.sortSubcommands)U.sort((J,_)=>{return J.name().localeCompare(_.name())});return U}compareOptions($,U){let v=(J)=>{return J.short?J.short.replace(/^-/,""):J.long.replace(/^--/,"")};return v($).localeCompare(v(U))}visibleOptions($){let U=$.options.filter((J)=>!J.hidden),v=$._getHelpOption();if(v&&!v.hidden){let J=v.short&&$._findOption(v.short),_=v.long&&$._findOption(v.long);if(!J&&!_)U.push(v);else if(v.long&&!_)U.push($.createOption(v.long,v.description));else if(v.short&&!J)U.push($.createOption(v.short,v.description))}if(this.sortOptions)U.sort(this.compareOptions);return U}visibleGlobalOptions($){if(!this.showGlobalOptions)return[];let U=[];for(let v=$.parent;v;v=v.parent){let J=v.options.filter((_)=>!_.hidden);U.push(...J)}if(this.sortOptions)U.sort(this.compareOptions);return U}visibleArguments($){if($._argsDescription)$.registeredArguments.forEach((U)=>{U.description=U.description||$._argsDescription[U.name()]||""});if($.registeredArguments.find((U)=>U.description))return $.registeredArguments;return[]}subcommandTerm($){let U=$.registeredArguments.map((v)=>HH(v)).join(" ");return $._name+($._aliases[0]?"|"+$._aliases[0]:"")+($.options.length?" [options]":"")+(U?" "+U:"")}optionTerm($){return $.flags}argumentTerm($){return $.name()}longestSubcommandTermLength($,U){return U.visibleCommands($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleSubcommandTerm(U.subcommandTerm(J))))},0)}longestOptionTermLength($,U){return U.visibleOptions($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleOptionTerm(U.optionTerm(J))))},0)}longestGlobalOptionTermLength($,U){return U.visibleGlobalOptions($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleOptionTerm(U.optionTerm(J))))},0)}longestArgumentTermLength($,U){return U.visibleArguments($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleArgumentTerm(U.argumentTerm(J))))},0)}commandUsage($){let U=$._name;if($._aliases[0])U=U+"|"+$._aliases[0];let v="";for(let J=$.parent;J;J=J.parent)v=J.name()+" "+v;return v+U+" "+$.usage()}commandDescription($){return $.description()}subcommandDescription($){return $.summary()||$.description()}optionDescription($){let U=[];if($.argChoices)U.push(`choices: ${$.argChoices.map((v)=>JSON.stringify(v)).join(", ")}`);if($.defaultValue!==void 0){if($.required||$.optional||$.isBoolean()&&typeof $.defaultValue==="boolean")U.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`)}if($.presetArg!==void 0&&$.optional)U.push(`preset: ${JSON.stringify($.presetArg)}`);if($.envVar!==void 0)U.push(`env: ${$.envVar}`);if(U.length>0){let v=`(${U.join(", ")})`;if($.description)return`${$.description} ${v}`;return v}return $.description}argumentDescription($){let U=[];if($.argChoices)U.push(`choices: ${$.argChoices.map((v)=>JSON.stringify(v)).join(", ")}`);if($.defaultValue!==void 0)U.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`);if(U.length>0){let v=`(${U.join(", ")})`;if($.description)return`${$.description} ${v}`;return v}return $.description}formatItemList($,U,v){if(U.length===0)return[];return[v.styleTitle($),...U,""]}groupItems($,U,v){let J=new Map;return $.forEach((_)=>{let D=v(_);if(!J.has(D))J.set(D,[])}),U.forEach((_)=>{let D=v(_);if(!J.has(D))J.set(D,[]);J.get(D).push(_)}),J}formatHelp($,U){let v=U.padWidth($,U),J=U.helpWidth??80;function _(N,G){return U.formatItem(N,v,G,U)}let D=[`${U.styleTitle("Usage:")} ${U.styleUsage(U.commandUsage($))}`,""],X=U.commandDescription($);if(X.length>0)D=D.concat([U.boxWrap(U.styleCommandDescription(X),J),""]);let Y=U.visibleArguments($).map((N)=>{return _(U.styleArgumentTerm(U.argumentTerm(N)),U.styleArgumentDescription(U.argumentDescription(N)))});if(D=D.concat(this.formatItemList("Arguments:",Y,U)),this.groupItems($.options,U.visibleOptions($),(N)=>N.helpGroupHeading??"Options:").forEach((N,G)=>{let W=N.map((q)=>{return _(U.styleOptionTerm(U.optionTerm(q)),U.styleOptionDescription(U.optionDescription(q)))});D=D.concat(this.formatItemList(G,W,U))}),U.showGlobalOptions){let N=U.visibleGlobalOptions($).map((G)=>{return _(U.styleOptionTerm(U.optionTerm(G)),U.styleOptionDescription(U.optionDescription(G)))});D=D.concat(this.formatItemList("Global Options:",N,U))}return this.groupItems($.commands,U.visibleCommands($),(N)=>N.helpGroup()||"Commands:").forEach((N,G)=>{let W=N.map((q)=>{return _(U.styleSubcommandTerm(U.subcommandTerm(q)),U.styleSubcommandDescription(U.subcommandDescription(q)))});D=D.concat(this.formatItemList(G,W,U))}),D.join(`
16
+ ***************************************************************************** */var YX;(function($){(function(U){var v=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Y(),J=_($);if(typeof v.Reflect<"u")J=_(v.Reflect,J);if(U(J,v),typeof v.Reflect>"u")v.Reflect=$;function _(Q,z){return function(N,G){if(Object.defineProperty(Q,N,{configurable:!0,writable:!0,value:G}),z)z(N,G)}}function D(){try{return Function("return this;")()}catch(Q){}}function X(){try{return(0,eval)("(function() { return this; })()")}catch(Q){}}function Y(){return D()||X()}})(function(U,v){var J=Object.prototype.hasOwnProperty,_=typeof Symbol==="function",D=_&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",X=_&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",Y=typeof Object.create==="function",Q={__proto__:[]}instanceof Array,z=!Y&&!Q,N={create:Y?function(){return sU(Object.create(null))}:Q?function(){return sU({__proto__:null})}:function(){return sU({})},has:z?function(Z,P){return J.call(Z,P)}:function(Z,P){return P in Z},get:z?function(Z,P){return J.call(Z,P)?Z[P]:void 0}:function(Z,P){return Z[P]}},G=Object.getPrototypeOf(Function),W=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:aV(),q=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:eV(),V=typeof WeakMap==="function"?WeakMap:sV(),E=_?Symbol.for("@reflect-metadata:registry"):void 0,T=dV(),S=oV(T);function C(Z,P,w,k){if(!d(w)){if(!sD(Z))throw TypeError();if(!E$(P))throw TypeError();if(!E$(k)&&!d(k)&&!i1(k))throw TypeError();if(i1(k))k=void 0;return w=L4(w),r$(Z,P,w,k)}else{if(!sD(Z))throw TypeError();if(!$X(P))throw TypeError();return R$(Z,P)}}U("decorate",C);function M(Z,P){function w(k,n){if(!E$(k))throw TypeError();if(!d(n)&&!pV(n))throw TypeError();_0(Z,P,k,n)}return w}U("metadata",M);function h(Z,P,w,k){if(!E$(w))throw TypeError();if(!d(k))k=L4(k);return _0(Z,P,w,k)}U("defineMetadata",h);function p(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return i$(Z,P,w)}U("hasMetadata",p);function J$(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return q4(Z,P,w)}U("hasOwnMetadata",J$);function e(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return l1(Z,P,w)}U("getMetadata",e);function N$(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);return m6(Z,P,w)}U("getOwnMetadata",N$);function s(Z,P){if(!E$(Z))throw TypeError();if(!d(P))P=L4(P);return c6(Z,P)}U("getMetadataKeys",s);function j$(Z,P){if(!E$(Z))throw TypeError();if(!d(P))P=L4(P);return v0(Z,P)}U("getOwnMetadataKeys",j$);function h$(Z,P,w){if(!E$(P))throw TypeError();if(!d(w))w=L4(w);if(!E$(P))throw TypeError();if(!d(w))w=L4(w);var k=n6(P,w,!1);if(d(k))return!1;return k.OrdinaryDeleteMetadata(Z,P,w)}U("deleteMetadata",h$);function R$(Z,P){for(var w=Z.length-1;w>=0;--w){var k=Z[w],n=k(P);if(!d(n)&&!i1(n)){if(!$X(n))throw TypeError();P=n}}return P}function r$(Z,P,w,k){for(var n=Z.length-1;n>=0;--n){var w$=Z[n],A$=w$(P,w,k);if(!d(A$)&&!i1(A$)){if(!E$(A$))throw TypeError();k=A$}}return k}function i$(Z,P,w){var k=q4(Z,P,w);if(k)return!0;var n=eU(P);if(!i1(n))return i$(Z,n,w);return!1}function q4(Z,P,w){var k=n6(P,w,!1);if(d(k))return!1;return eD(k.OrdinaryHasOwnMetadata(Z,P,w))}function l1(Z,P,w){var k=q4(Z,P,w);if(k)return m6(Z,P,w);var n=eU(P);if(!i1(n))return l1(Z,n,w);return}function m6(Z,P,w){var k=n6(P,w,!1);if(d(k))return;return k.OrdinaryGetOwnMetadata(Z,P,w)}function _0(Z,P,w,k){var n=n6(w,k,!0);n.OrdinaryDefineOwnMetadata(Z,P,w,k)}function c6(Z,P){var w=v0(Z,P),k=eU(Z);if(k===null)return w;var n=c6(k,P);if(n.length<=0)return w;if(w.length<=0)return n;var w$=new q,A$=[];for(var $$=0,u=w;$$<u.length;$$++){var y=u[$$],l=w$.has(y);if(!l)w$.add(y),A$.push(y)}for(var i=0,U$=n;i<U$.length;i++){var y=U$[i],l=w$.has(y);if(!l)w$.add(y),A$.push(y)}return A$}function v0(Z,P){var w=n6(Z,P,!1);if(!w)return[];return w.OrdinaryOwnMetadataKeys(Z,P)}function aD(Z){if(Z===null)return 1;switch(typeof Z){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return Z===null?1:6;default:return 6}}function d(Z){return Z===void 0}function i1(Z){return Z===null}function iV(Z){return typeof Z==="symbol"}function E$(Z){return typeof Z==="object"?Z!==null:typeof Z==="function"}function mV(Z,P){switch(aD(Z)){case 0:return Z;case 1:return Z;case 2:return Z;case 3:return Z;case 4:return Z;case 5:return Z}var w=P===3?"string":P===5?"number":"default",k=UX(Z,D);if(k!==void 0){var n=k.call(Z,w);if(E$(n))throw TypeError();return n}return cV(Z,w==="default"?"number":w)}function cV(Z,P){if(P==="string"){var w=Z.toString;if(m1(w)){var k=w.call(Z);if(!E$(k))return k}var n=Z.valueOf;if(m1(n)){var k=n.call(Z);if(!E$(k))return k}}else{var n=Z.valueOf;if(m1(n)){var k=n.call(Z);if(!E$(k))return k}var w$=Z.toString;if(m1(w$)){var k=w$.call(Z);if(!E$(k))return k}}throw TypeError()}function eD(Z){return!!Z}function nV(Z){return""+Z}function L4(Z){var P=mV(Z,3);if(iV(P))return P;return nV(P)}function sD(Z){return Array.isArray?Array.isArray(Z):Z instanceof Object?Z instanceof Array:Object.prototype.toString.call(Z)==="[object Array]"}function m1(Z){return typeof Z==="function"}function $X(Z){return typeof Z==="function"}function pV(Z){switch(aD(Z)){case 3:return!0;case 4:return!0;default:return!1}}function aU(Z,P){return Z===P||Z!==Z&&P!==P}function UX(Z,P){var w=Z[P];if(w===void 0||w===null)return;if(!m1(w))throw TypeError();return w}function _X(Z){var P=UX(Z,X);if(!m1(P))throw TypeError();var w=P.call(Z);if(!E$(w))throw TypeError();return w}function vX(Z){return Z.value}function JX(Z){var P=Z.next();return P.done?!1:P}function DX(Z){var P=Z.return;if(P)P.call(Z)}function eU(Z){var P=Object.getPrototypeOf(Z);if(typeof Z!=="function"||Z===G)return P;if(P!==G)return P;var w=Z.prototype,k=w&&Object.getPrototypeOf(w);if(k==null||k===Object.prototype)return P;var n=k.constructor;if(typeof n!=="function")return P;if(n===Z)return P;return n}function rV(){var Z;if(!d(E)&&typeof v.Reflect<"u"&&!(E in v.Reflect)&&typeof v.Reflect.defineMetadata==="function")Z=tV(v.Reflect);var P,w,k,n=new V,w$={registerProvider:A$,getProvider:u,setProvider:l};return w$;function A$(i){if(!Object.isExtensible(w$))throw Error("Cannot add provider to a frozen registry.");switch(!0){case Z===i:break;case d(P):P=i;break;case P===i:break;case d(w):w=i;break;case w===i:break;default:if(k===void 0)k=new q;k.add(i);break}}function $$(i,U$){if(!d(P)){if(P.isProviderFor(i,U$))return P;if(!d(w)){if(w.isProviderFor(i,U$))return P;if(!d(k)){var H$=_X(k);while(!0){var L$=JX(H$);if(!L$)return;var V4=vX(L$);if(V4.isProviderFor(i,U$))return DX(H$),V4}}}}if(!d(Z)&&Z.isProviderFor(i,U$))return Z;return}function u(i,U$){var H$=n.get(i),L$;if(!d(H$))L$=H$.get(U$);if(!d(L$))return L$;if(L$=$$(i,U$),!d(L$)){if(d(H$))H$=new W,n.set(i,H$);H$.set(U$,L$)}return L$}function y(i){if(d(i))throw TypeError();return P===i||w===i||!d(k)&&k.has(i)}function l(i,U$,H$){if(!y(H$))throw Error("Metadata provider not registered.");var L$=u(i,U$);if(L$!==H$){if(!d(L$))return!1;var V4=n.get(i);if(d(V4))V4=new W,n.set(i,V4);V4.set(U$,H$)}return!0}}function dV(){var Z;if(!d(E)&&E$(v.Reflect)&&Object.isExtensible(v.Reflect))Z=v.Reflect[E];if(d(Z))Z=rV();if(!d(E)&&E$(v.Reflect)&&Object.isExtensible(v.Reflect))Object.defineProperty(v.Reflect,E,{enumerable:!1,configurable:!1,writable:!1,value:Z});return Z}function oV(Z){var P=new V,w={isProviderFor:function(y,l){var i=P.get(y);if(d(i))return!1;return i.has(l)},OrdinaryDefineOwnMetadata:A$,OrdinaryHasOwnMetadata:n,OrdinaryGetOwnMetadata:w$,OrdinaryOwnMetadataKeys:$$,OrdinaryDeleteMetadata:u};return T.registerProvider(w),w;function k(y,l,i){var U$=P.get(y),H$=!1;if(d(U$)){if(!i)return;U$=new W,P.set(y,U$),H$=!0}var L$=U$.get(l);if(d(L$)){if(!i)return;if(L$=new W,U$.set(l,L$),!Z.setProvider(y,l,w)){if(U$.delete(l),H$)P.delete(y);throw Error("Wrong provider for target.")}}return L$}function n(y,l,i){var U$=k(l,i,!1);if(d(U$))return!1;return eD(U$.has(y))}function w$(y,l,i){var U$=k(l,i,!1);if(d(U$))return;return U$.get(y)}function A$(y,l,i,U$){var H$=k(i,U$,!0);H$.set(y,l)}function $$(y,l){var i=[],U$=k(y,l,!1);if(d(U$))return i;var H$=U$.keys(),L$=_X(H$),V4=0;while(!0){var XX=JX(L$);if(!XX)return i.length=V4,i;var $H=vX(XX);try{i[V4]=$H}catch(UH){try{DX(L$)}finally{throw UH}}V4++}}function u(y,l,i){var U$=k(l,i,!1);if(d(U$))return!1;if(!U$.delete(y))return!1;if(U$.size===0){var H$=P.get(l);if(!d(H$)){if(H$.delete(i),H$.size===0)P.delete(H$)}}return!0}}function tV(Z){var{defineMetadata:P,hasOwnMetadata:w,getOwnMetadata:k,getOwnMetadataKeys:n,deleteMetadata:w$}=Z,A$=new V,$$={isProviderFor:function(u,y){var l=A$.get(u);if(!d(l)&&l.has(y))return!0;if(n(u,y).length){if(d(l))l=new q,A$.set(u,l);return l.add(y),!0}return!1},OrdinaryDefineOwnMetadata:P,OrdinaryHasOwnMetadata:w,OrdinaryGetOwnMetadata:k,OrdinaryOwnMetadataKeys:n,OrdinaryDeleteMetadata:w$};return $$}function n6(Z,P,w){var k=T.getProvider(Z,P);if(!d(k))return k;if(w){if(T.setProvider(Z,P,S))return S;throw Error("Illegal state.")}return}function aV(){var Z={},P=[],w=function(){function $$(u,y,l){this._index=0,this._keys=u,this._values=y,this._selector=l}return $$.prototype["@@iterator"]=function(){return this},$$.prototype[X]=function(){return this},$$.prototype.next=function(){var u=this._index;if(u>=0&&u<this._keys.length){var y=this._selector(this._keys[u],this._values[u]);if(u+1>=this._keys.length)this._index=-1,this._keys=P,this._values=P;else this._index++;return{value:y,done:!1}}return{value:void 0,done:!0}},$$.prototype.throw=function(u){if(this._index>=0)this._index=-1,this._keys=P,this._values=P;throw u},$$.prototype.return=function(u){if(this._index>=0)this._index=-1,this._keys=P,this._values=P;return{value:u,done:!0}},$$}(),k=function(){function $$(){this._keys=[],this._values=[],this._cacheKey=Z,this._cacheIndex=-2}return Object.defineProperty($$.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),$$.prototype.has=function(u){return this._find(u,!1)>=0},$$.prototype.get=function(u){var y=this._find(u,!1);return y>=0?this._values[y]:void 0},$$.prototype.set=function(u,y){var l=this._find(u,!0);return this._values[l]=y,this},$$.prototype.delete=function(u){var y=this._find(u,!1);if(y>=0){var l=this._keys.length;for(var i=y+1;i<l;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];if(this._keys.length--,this._values.length--,aU(u,this._cacheKey))this._cacheKey=Z,this._cacheIndex=-2;return!0}return!1},$$.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=Z,this._cacheIndex=-2},$$.prototype.keys=function(){return new w(this._keys,this._values,n)},$$.prototype.values=function(){return new w(this._keys,this._values,w$)},$$.prototype.entries=function(){return new w(this._keys,this._values,A$)},$$.prototype["@@iterator"]=function(){return this.entries()},$$.prototype[X]=function(){return this.entries()},$$.prototype._find=function(u,y){if(!aU(this._cacheKey,u)){this._cacheIndex=-1;for(var l=0;l<this._keys.length;l++)if(aU(this._keys[l],u)){this._cacheIndex=l;break}}if(this._cacheIndex<0&&y)this._cacheIndex=this._keys.length,this._keys.push(u),this._values.push(void 0);return this._cacheIndex},$$}();return k;function n($$,u){return $$}function w$($$,u){return u}function A$($$,u){return[$$,u]}}function eV(){var Z=function(){function P(){this._map=new W}return Object.defineProperty(P.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),P.prototype.has=function(w){return this._map.has(w)},P.prototype.add=function(w){return this._map.set(w,w),this},P.prototype.delete=function(w){return this._map.delete(w)},P.prototype.clear=function(){this._map.clear()},P.prototype.keys=function(){return this._map.keys()},P.prototype.values=function(){return this._map.keys()},P.prototype.entries=function(){return this._map.entries()},P.prototype["@@iterator"]=function(){return this.keys()},P.prototype[X]=function(){return this.keys()},P}();return Z}function sV(){var Z=16,P=N.create(),w=k();return function(){function u(){this._key=k()}return u.prototype.has=function(y){var l=n(y,!1);return l!==void 0?N.has(l,this._key):!1},u.prototype.get=function(y){var l=n(y,!1);return l!==void 0?N.get(l,this._key):void 0},u.prototype.set=function(y,l){var i=n(y,!0);return i[this._key]=l,this},u.prototype.delete=function(y){var l=n(y,!1);return l!==void 0?delete l[this._key]:!1},u.prototype.clear=function(){this._key=k()},u}();function k(){var u;do u="@@WeakMap@@"+$$();while(N.has(P,u));return P[u]=!0,u}function n(u,y){if(!J.call(u,w)){if(!y)return;Object.defineProperty(u,w,{value:N.create()})}return u[w]}function w$(u,y){for(var l=0;l<y;++l)u[l]=Math.random()*255|0;return u}function A$(u){if(typeof Uint8Array==="function"){var y=new Uint8Array(u);if(typeof crypto<"u")crypto.getRandomValues(y);else if(typeof msCrypto<"u")msCrypto.getRandomValues(y);else w$(y,u);return y}return w$(Array(u),u)}function $$(){var u=A$(Z);u[6]=u[6]&79|64,u[8]=u[8]&191|128;var y="";for(var l=0;l<Z;++l){var i=u[l];if(l===4||l===6||l===8)y+="-";if(i<16)y+="0";y+=i.toString(16).toLowerCase()}return y}}function sU(Z){return Z.__=void 0,delete Z.__,Z}})})(YX||(YX={}))});var p6=r((XH)=>{class U3 extends Error{constructor($,U,v){super(v);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=U,this.exitCode=$,this.nestedError=void 0}}class QX extends U3{constructor($){super(1,"commander.invalidArgument",$);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}XH.CommanderError=U3;XH.InvalidArgumentError=QX});var J0=r((GH)=>{var{InvalidArgumentError:zH}=p6();class zX{constructor($,U){switch(this.description=U||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,$[0]){case"<":this.required=!0,this._name=$.slice(1,-1);break;case"[":this.required=!1,this._name=$.slice(1,-1);break;default:this.required=!0,this._name=$;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue($,U){if(U===this.defaultValue||!Array.isArray(U))return[$];return U.push($),U}default($,U){return this.defaultValue=$,this.defaultValueDescription=U,this}argParser($){return this.parseArg=$,this}choices($){return this.argChoices=$.slice(),this.parseArg=(U,v)=>{if(!this.argChoices.includes(U))throw new zH(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(U,v);return U},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function NH($){let U=$.name()+($.variadic===!0?"...":"");return $.required?"<"+U+">":"["+U+"]"}GH.Argument=zX;GH.humanReadableArgName=NH});var _3=r((WH)=>{var{humanReadableArgName:HH}=J0();class NX{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext($){this.helpWidth=this.helpWidth??$.helpWidth??80}visibleCommands($){let U=$.commands.filter((J)=>!J._hidden),v=$._getHelpCommand();if(v&&!v._hidden)U.push(v);if(this.sortSubcommands)U.sort((J,_)=>{return J.name().localeCompare(_.name())});return U}compareOptions($,U){let v=(J)=>{return J.short?J.short.replace(/^-/,""):J.long.replace(/^--/,"")};return v($).localeCompare(v(U))}visibleOptions($){let U=$.options.filter((J)=>!J.hidden),v=$._getHelpOption();if(v&&!v.hidden){let J=v.short&&$._findOption(v.short),_=v.long&&$._findOption(v.long);if(!J&&!_)U.push(v);else if(v.long&&!_)U.push($.createOption(v.long,v.description));else if(v.short&&!J)U.push($.createOption(v.short,v.description))}if(this.sortOptions)U.sort(this.compareOptions);return U}visibleGlobalOptions($){if(!this.showGlobalOptions)return[];let U=[];for(let v=$.parent;v;v=v.parent){let J=v.options.filter((_)=>!_.hidden);U.push(...J)}if(this.sortOptions)U.sort(this.compareOptions);return U}visibleArguments($){if($._argsDescription)$.registeredArguments.forEach((U)=>{U.description=U.description||$._argsDescription[U.name()]||""});if($.registeredArguments.find((U)=>U.description))return $.registeredArguments;return[]}subcommandTerm($){let U=$.registeredArguments.map((v)=>HH(v)).join(" ");return $._name+($._aliases[0]?"|"+$._aliases[0]:"")+($.options.length?" [options]":"")+(U?" "+U:"")}optionTerm($){return $.flags}argumentTerm($){return $.name()}longestSubcommandTermLength($,U){return U.visibleCommands($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleSubcommandTerm(U.subcommandTerm(J))))},0)}longestOptionTermLength($,U){return U.visibleOptions($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleOptionTerm(U.optionTerm(J))))},0)}longestGlobalOptionTermLength($,U){return U.visibleGlobalOptions($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleOptionTerm(U.optionTerm(J))))},0)}longestArgumentTermLength($,U){return U.visibleArguments($).reduce((v,J)=>{return Math.max(v,this.displayWidth(U.styleArgumentTerm(U.argumentTerm(J))))},0)}commandUsage($){let U=$._name;if($._aliases[0])U=U+"|"+$._aliases[0];let v="";for(let J=$.parent;J;J=J.parent)v=J.name()+" "+v;return v+U+" "+$.usage()}commandDescription($){return $.description()}subcommandDescription($){return $.summary()||$.description()}optionDescription($){let U=[];if($.argChoices)U.push(`choices: ${$.argChoices.map((v)=>JSON.stringify(v)).join(", ")}`);if($.defaultValue!==void 0){if($.required||$.optional||$.isBoolean()&&typeof $.defaultValue==="boolean")U.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`)}if($.presetArg!==void 0&&$.optional)U.push(`preset: ${JSON.stringify($.presetArg)}`);if($.envVar!==void 0)U.push(`env: ${$.envVar}`);if(U.length>0){let v=`(${U.join(", ")})`;if($.description)return`${$.description} ${v}`;return v}return $.description}argumentDescription($){let U=[];if($.argChoices)U.push(`choices: ${$.argChoices.map((v)=>JSON.stringify(v)).join(", ")}`);if($.defaultValue!==void 0)U.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`);if(U.length>0){let v=`(${U.join(", ")})`;if($.description)return`${$.description} ${v}`;return v}return $.description}formatItemList($,U,v){if(U.length===0)return[];return[v.styleTitle($),...U,""]}groupItems($,U,v){let J=new Map;return $.forEach((_)=>{let D=v(_);if(!J.has(D))J.set(D,[])}),U.forEach((_)=>{let D=v(_);if(!J.has(D))J.set(D,[]);J.get(D).push(_)}),J}formatHelp($,U){let v=U.padWidth($,U),J=U.helpWidth??80;function _(N,G){return U.formatItem(N,v,G,U)}let D=[`${U.styleTitle("Usage:")} ${U.styleUsage(U.commandUsage($))}`,""],X=U.commandDescription($);if(X.length>0)D=D.concat([U.boxWrap(U.styleCommandDescription(X),J),""]);let Y=U.visibleArguments($).map((N)=>{return _(U.styleArgumentTerm(U.argumentTerm(N)),U.styleArgumentDescription(U.argumentDescription(N)))});if(D=D.concat(this.formatItemList("Arguments:",Y,U)),this.groupItems($.options,U.visibleOptions($),(N)=>N.helpGroupHeading??"Options:").forEach((N,G)=>{let W=N.map((q)=>{return _(U.styleOptionTerm(U.optionTerm(q)),U.styleOptionDescription(U.optionDescription(q)))});D=D.concat(this.formatItemList(G,W,U))}),U.showGlobalOptions){let N=U.visibleGlobalOptions($).map((G)=>{return _(U.styleOptionTerm(U.optionTerm(G)),U.styleOptionDescription(U.optionDescription(G)))});D=D.concat(this.formatItemList("Global Options:",N,U))}return this.groupItems($.commands,U.visibleCommands($),(N)=>N.helpGroup()||"Commands:").forEach((N,G)=>{let W=N.map((q)=>{return _(U.styleSubcommandTerm(U.subcommandTerm(q)),U.styleSubcommandDescription(U.subcommandDescription(q)))});D=D.concat(this.formatItemList(G,W,U))}),D.join(`
17
17
  `)}displayWidth($){return GX($).length}styleTitle($){return $}styleUsage($){return $.split(" ").map((U)=>{if(U==="[options]")return this.styleOptionText(U);if(U==="[command]")return this.styleSubcommandText(U);if(U[0]==="["||U[0]==="<")return this.styleArgumentText(U);return this.styleCommandText(U)}).join(" ")}styleCommandDescription($){return this.styleDescriptionText($)}styleOptionDescription($){return this.styleDescriptionText($)}styleSubcommandDescription($){return this.styleDescriptionText($)}styleArgumentDescription($){return this.styleDescriptionText($)}styleDescriptionText($){return $}styleOptionTerm($){return this.styleOptionText($)}styleSubcommandTerm($){return $.split(" ").map((U)=>{if(U==="[options]")return this.styleOptionText(U);if(U[0]==="["||U[0]==="<")return this.styleArgumentText(U);return this.styleSubcommandText(U)}).join(" ")}styleArgumentTerm($){return this.styleArgumentText($)}styleOptionText($){return $}styleArgumentText($){return $}styleSubcommandText($){return $}styleCommandText($){return $}padWidth($,U){return Math.max(U.longestOptionTermLength($,U),U.longestGlobalOptionTermLength($,U),U.longestSubcommandTermLength($,U),U.longestArgumentTermLength($,U))}preformatted($){return/\n[^\S\r\n]/.test($)}formatItem($,U,v,J){let D=" ".repeat(2);if(!v)return D+$;let X=$.padEnd(U+$.length-J.displayWidth($)),Y=2,z=(this.helpWidth??80)-U-Y-2,N;if(z<this.minWidthToWrap||J.preformatted(v))N=v;else N=J.boxWrap(v,z).replace(/\n/g,`
18
18
  `+" ".repeat(U+Y));return D+X+" ".repeat(Y)+N.replace(/\n/g,`
19
19
  ${D}`)}boxWrap($,U){if(U<this.minWidthToWrap)return $;let v=$.split(/\r\n|\n/),J=/[\s]*[^\s]+/g,_=[];return v.forEach((D)=>{let X=D.match(J);if(X===null){_.push("");return}let Y=[X.shift()],Q=this.displayWidth(Y[0]);X.forEach((z)=>{let N=this.displayWidth(z);if(Q+N<=U){Y.push(z),Q+=N;return}_.push(Y.join(""));let G=z.trimStart();Y=[G],Q=this.displayWidth(G)}),_.push(Y.join(""))}),_.join(`
@@ -25,7 +25,7 @@ ${D}`)}boxWrap($,U){if(U<this.minWidthToWrap)return $;let v=$.split(/\r\n|\n/),J
25
25
  - too many long flags`);throw Error(`${Y}
26
26
  - unrecognised flag format`)}if(U===void 0&&v===void 0)throw Error(`option creation failed due to no flags found in '${$}'.`);return{shortFlag:U,longFlag:v}}EH.Option=VX;EH.DualOptions=HX});var WX=r((jH)=>{function TH($,U){if(Math.abs($.length-U.length)>3)return Math.max($.length,U.length);let v=[];for(let J=0;J<=$.length;J++)v[J]=[J];for(let J=0;J<=U.length;J++)v[0][J]=J;for(let J=1;J<=U.length;J++)for(let _=1;_<=$.length;_++){let D=1;if($[_-1]===U[J-1])D=0;else D=1;if(v[_][J]=Math.min(v[_-1][J]+1,v[_][J-1]+1,v[_-1][J-1]+D),_>1&&J>1&&$[_-1]===U[J-2]&&$[_-2]===U[J-1])v[_][J]=Math.min(v[_][J],v[_-2][J-2]+1)}return v[$.length][U.length]}function KH($,U){if(!U||U.length===0)return"";U=Array.from(new Set(U));let v=$.startsWith("--");if(v)$=$.slice(2),U=U.map((X)=>X.slice(2));let J=[],_=3,D=0.4;if(U.forEach((X)=>{if(X.length<=1)return;let Y=TH($,X),Q=Math.max($.length,X.length);if((Q-Y)/Q>D){if(Y<_)_=Y,J=[X];else if(Y===_)J.push(X)}}),J.sort((X,Y)=>X.localeCompare(Y)),v)J=J.map((X)=>`--${X}`);if(J.length>1)return`
27
27
  (Did you mean one of ${J.join(", ")}?)`;if(J.length===1)return`
28
- (Did you mean ${J[0]}?)`;return""}jH.suggestSimilar=KH});var FX=r((xH)=>{var OH=H$("events").EventEmitter,J3=H$("child_process"),h4=H$("path"),D0=H$("fs"),v$=H$("process"),{Argument:AH,humanReadableArgName:SH}=J0(),{CommanderError:D3}=p6(),{Help:bH,stripColor:kH}=_3(),{Option:BX,DualOptions:MH}=v3(),{suggestSimilar:ZX}=WX();class Y3 extends OH{constructor($){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=$||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(U)=>v$.stdout.write(U),writeErr:(U)=>v$.stderr.write(U),outputError:(U,v)=>v(U),getOutHelpWidth:()=>v$.stdout.isTTY?v$.stdout.columns:void 0,getErrHelpWidth:()=>v$.stderr.isTTY?v$.stderr.columns:void 0,getOutHasColors:()=>X3()??(v$.stdout.isTTY&&v$.stdout.hasColors?.()),getErrHasColors:()=>X3()??(v$.stderr.isTTY&&v$.stderr.hasColors?.()),stripColor:(U)=>kH(U)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings($){return this._outputConfiguration=$._outputConfiguration,this._helpOption=$._helpOption,this._helpCommand=$._helpCommand,this._helpConfiguration=$._helpConfiguration,this._exitCallback=$._exitCallback,this._storeOptionsAsProperties=$._storeOptionsAsProperties,this._combineFlagAndOptionalValue=$._combineFlagAndOptionalValue,this._allowExcessArguments=$._allowExcessArguments,this._enablePositionalOptions=$._enablePositionalOptions,this._showHelpAfterError=$._showHelpAfterError,this._showSuggestionAfterError=$._showSuggestionAfterError,this}_getCommandAndAncestors(){let $=[];for(let U=this;U;U=U.parent)$.push(U);return $}command($,U,v){let J=U,_=v;if(typeof J==="object"&&J!==null)_=J,J=null;_=_||{};let[,D,X]=$.match(/([^ ]+) *(.*)/),Y=this.createCommand(D);if(J)Y.description(J),Y._executableHandler=!0;if(_.isDefault)this._defaultCommandName=Y._name;if(Y._hidden=!!(_.noHelp||_.hidden),Y._executableFile=_.executableFile||null,X)Y.arguments(X);if(this._registerCommand(Y),Y.parent=this,Y.copyInheritedSettings(this),J)return this;return Y}createCommand($){return new Y3($)}createHelp(){return Object.assign(new bH,this.configureHelp())}configureHelp($){if($===void 0)return this._helpConfiguration;return this._helpConfiguration=$,this}configureOutput($){if($===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...$},this}showHelpAfterError($=!0){if(typeof $!=="string")$=!!$;return this._showHelpAfterError=$,this}showSuggestionAfterError($=!0){return this._showSuggestionAfterError=!!$,this}addCommand($,U){if(!$._name)throw Error(`Command passed to .addCommand() must have a name
28
+ (Did you mean ${J[0]}?)`;return""}jH.suggestSimilar=KH});var FX=r((xH)=>{var OH=G$("events").EventEmitter,J3=G$("child_process"),h4=G$("path"),D0=G$("fs"),v$=G$("process"),{Argument:AH,humanReadableArgName:SH}=J0(),{CommanderError:D3}=p6(),{Help:bH,stripColor:kH}=_3(),{Option:BX,DualOptions:MH}=v3(),{suggestSimilar:ZX}=WX();class Y3 extends OH{constructor($){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=$||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(U)=>v$.stdout.write(U),writeErr:(U)=>v$.stderr.write(U),outputError:(U,v)=>v(U),getOutHelpWidth:()=>v$.stdout.isTTY?v$.stdout.columns:void 0,getErrHelpWidth:()=>v$.stderr.isTTY?v$.stderr.columns:void 0,getOutHasColors:()=>X3()??(v$.stdout.isTTY&&v$.stdout.hasColors?.()),getErrHasColors:()=>X3()??(v$.stderr.isTTY&&v$.stderr.hasColors?.()),stripColor:(U)=>kH(U)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings($){return this._outputConfiguration=$._outputConfiguration,this._helpOption=$._helpOption,this._helpCommand=$._helpCommand,this._helpConfiguration=$._helpConfiguration,this._exitCallback=$._exitCallback,this._storeOptionsAsProperties=$._storeOptionsAsProperties,this._combineFlagAndOptionalValue=$._combineFlagAndOptionalValue,this._allowExcessArguments=$._allowExcessArguments,this._enablePositionalOptions=$._enablePositionalOptions,this._showHelpAfterError=$._showHelpAfterError,this._showSuggestionAfterError=$._showSuggestionAfterError,this}_getCommandAndAncestors(){let $=[];for(let U=this;U;U=U.parent)$.push(U);return $}command($,U,v){let J=U,_=v;if(typeof J==="object"&&J!==null)_=J,J=null;_=_||{};let[,D,X]=$.match(/([^ ]+) *(.*)/),Y=this.createCommand(D);if(J)Y.description(J),Y._executableHandler=!0;if(_.isDefault)this._defaultCommandName=Y._name;if(Y._hidden=!!(_.noHelp||_.hidden),Y._executableFile=_.executableFile||null,X)Y.arguments(X);if(this._registerCommand(Y),Y.parent=this,Y.copyInheritedSettings(this),J)return this;return Y}createCommand($){return new Y3($)}createHelp(){return Object.assign(new bH,this.configureHelp())}configureHelp($){if($===void 0)return this._helpConfiguration;return this._helpConfiguration=$,this}configureOutput($){if($===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...$},this}showHelpAfterError($=!0){if(typeof $!=="string")$=!!$;return this._showHelpAfterError=$,this}showSuggestionAfterError($=!0){return this._showSuggestionAfterError=!!$,this}addCommand($,U){if(!$._name)throw Error(`Command passed to .addCommand() must have a name
29
29
  - specify the name in Command constructor or using .name()`);if(U=U||{},U.isDefault)this._defaultCommandName=$._name;if(U.noHelp||U.hidden)$._hidden=!0;return this._registerCommand($),$.parent=this,$._checkForBrokenPassThrough(),this}createArgument($,U){return new AH($,U)}argument($,U,v,J){let _=this.createArgument($,U);if(typeof v==="function")_.default(J).argParser(v);else _.default(v);return this.addArgument(_),this}arguments($){return $.trim().split(/ +/).forEach((U)=>{this.argument(U)}),this}addArgument($){let U=this.registeredArguments.slice(-1)[0];if(U?.variadic)throw Error(`only the last argument can be variadic '${U.name()}'`);if($.required&&$.defaultValue!==void 0&&$.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${$.name()}'`);return this.registeredArguments.push($),this}helpCommand($,U){if(typeof $==="boolean"){if(this._addImplicitHelpCommand=$,$&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let v=$??"help [command]",[,J,_]=v.match(/([^ ]+) *(.*)/),D=U??"display help for command",X=this.createCommand(J);if(X.helpOption(!1),_)X.arguments(_);if(D)X.description(D);if(this._addImplicitHelpCommand=!0,this._helpCommand=X,$||U)this._initCommandGroup(X);return this}addHelpCommand($,U){if(typeof $!=="object")return this.helpCommand($,U),this;return this._addImplicitHelpCommand=!0,this._helpCommand=$,this._initCommandGroup($),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook($,U){let v=["preSubcommand","preAction","postAction"];if(!v.includes($))throw Error(`Unexpected value for event passed to hook : '${$}'.
30
30
  Expecting one of '${v.join("', '")}'`);if(this._lifeCycleHooks[$])this._lifeCycleHooks[$].push(U);else this._lifeCycleHooks[$]=[U];return this}exitOverride($){if($)this._exitCallback=$;else this._exitCallback=(U)=>{if(U.code!=="commander.executeSubCommandAsync")throw U};return this}_exit($,U,v){if(this._exitCallback)this._exitCallback(new D3($,U,v));v$.exit($)}action($){let U=(v)=>{let J=this.registeredArguments.length,_=v.slice(0,J);if(this._storeOptionsAsProperties)_[J]=this;else _[J]=this.opts();return _.push(this),$.apply(this,_)};return this._actionHandler=U,this}createOption($,U){return new BX($,U)}_callParseArg($,U,v,J){try{return $.parseArg(U,v)}catch(_){if(_.code==="commander.invalidArgument"){let D=`${J} ${_.message}`;this.error(D,{exitCode:_.exitCode,code:_.code})}throw _}}_registerOption($){let U=$.short&&this._findOption($.short)||$.long&&this._findOption($.long);if(U){let v=$.long&&this._findOption($.long)?$.long:$.short;throw Error(`Cannot add option '${$.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${v}'
31
31
  - already used by option '${U.flags}'`)}this._initOptionGroup($),this.options.push($)}_registerCommand($){let U=(J)=>{return[J.name()].concat(J.aliases())},v=U($).find((J)=>this._findCommand(J));if(v){let J=U(this._findCommand(v)).join("|"),_=U($).join("|");throw Error(`cannot add command '${_}' as already have command '${J}'`)}this._initCommandGroup($),this.commands.push($)}addOption($){this._registerOption($);let U=$.name(),v=$.attributeName();if($.negate){let _=$.long.replace(/^--no-/,"--");if(!this._findOption(_))this.setOptionValueWithSource(v,$.defaultValue===void 0?!0:$.defaultValue,"default")}else if($.defaultValue!==void 0)this.setOptionValueWithSource(v,$.defaultValue,"default");let J=(_,D,X)=>{if(_==null&&$.presetArg!==void 0)_=$.presetArg;let Y=this.getOptionValue(v);if(_!==null&&$.parseArg)_=this._callParseArg($,_,Y,D);else if(_!==null&&$.variadic)_=$._collectValue(_,Y);if(_==null)if($.negate)_=!1;else if($.isBoolean()||$.optional)_=!0;else _="";this.setOptionValueWithSource(v,_,X)};if(this.on("option:"+U,(_)=>{let D=`error: option '${$.flags}' argument '${_}' is invalid.`;J(_,D,"cli")}),$.envVar)this.on("optionEnv:"+U,(_)=>{let D=`error: option '${$.flags}' value '${_}' from env '${$.envVar}' is invalid.`;J(_,D,"env")});return this}_optionEx($,U,v,J,_){if(typeof U==="object"&&U instanceof BX)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let D=this.createOption(U,v);if(D.makeOptionMandatory(!!$.mandatory),typeof J==="function")D.default(_).argParser(J);else if(J instanceof RegExp){let X=J;J=(Y,Q)=>{let z=X.exec(Y);return z?z[0]:Q},D.default(_).argParser(J)}else D.default(J);return this.addOption(D)}option($,U,v,J){return this._optionEx({},$,U,v,J)}requiredOption($,U,v,J){return this._optionEx({mandatory:!0},$,U,v,J)}combineFlagAndOptionalValue($=!0){return this._combineFlagAndOptionalValue=!!$,this}allowUnknownOption($=!0){return this._allowUnknownOption=!!$,this}allowExcessArguments($=!0){return this._allowExcessArguments=!!$,this}enablePositionalOptions($=!0){return this._enablePositionalOptions=!!$,this}passThroughOptions($=!0){return this._passThroughOptions=!!$,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties($=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!$,this}getOptionValue($){if(this._storeOptionsAsProperties)return this[$];return this._optionValues[$]}setOptionValue($,U){return this.setOptionValueWithSource($,U,void 0)}setOptionValueWithSource($,U,v){if(this._storeOptionsAsProperties)this[$]=U;else this._optionValues[$]=U;return this._optionValueSources[$]=v,this}getOptionValueSource($){return this._optionValueSources[$]}getOptionValueSourceWithGlobals($){let U;return this._getCommandAndAncestors().forEach((v)=>{if(v.getOptionValueSource($)!==void 0)U=v.getOptionValueSource($)}),U}_prepareUserArgs($,U){if($!==void 0&&!Array.isArray($))throw Error("first parameter to parse must be array or undefined");if(U=U||{},$===void 0&&U.from===void 0){if(v$.versions?.electron)U.from="electron";let J=v$.execArgv??[];if(J.includes("-e")||J.includes("--eval")||J.includes("-p")||J.includes("--print"))U.from="eval"}if($===void 0)$=v$.argv;this.rawArgs=$.slice();let v;switch(U.from){case void 0:case"node":this._scriptPath=$[1],v=$.slice(2);break;case"electron":if(v$.defaultApp)this._scriptPath=$[1],v=$.slice(2);else v=$.slice(1);break;case"user":v=$.slice(0);break;case"eval":v=$.slice(1);break;default:throw Error(`unexpected parse option { from: '${U.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",v}parse($,U){this._prepareForParse();let v=this._prepareUserArgs($,U);return this._parseCommand([],v),this}async parseAsync($,U){this._prepareForParse();let v=this._prepareUserArgs($,U);return await this._parseCommand([],v),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
@@ -197,13 +197,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
197
197
  access_token = excluded.access_token,
198
198
  device_id = excluded.device_id,
199
199
  last_used_at = excluded.last_used_at
200
- `),getMatrixAccount:$.prepare("SELECT * FROM matrix_accounts WHERE username = ?"),deleteMatrixAccount:$.prepare("DELETE FROM matrix_accounts WHERE username = ?"),listMatrixAccounts:$.prepare("SELECT * FROM matrix_accounts ORDER BY username"),touchMatrixAccount:$.prepare("UPDATE matrix_accounts SET last_used_at = ? WHERE username = ?")},I2}function xz($){let U={id:$.id,cwd:$.cwd};if($.name!==null)U.name=$.name;if($.model!==null)U.model=$.model;if($.dm_scope!==null){let v=Z$.safeParse($.dm_scope);if(v.success)U.dmScope=v.data}if($.system_prompt_append!==null)U.systemPromptAppend=$.system_prompt_append;if($.allowed_tools!==null)try{U.allowedTools=JSON.parse($.allowed_tools)}catch{}if($.debounce_ms!==null)U.debounceMs=$.debounce_ms;if($.matrix_account!==null)U.matrixAccount=$.matrix_account;return U}function Iz($){let U={id:$.id,pattern:$.pattern,agent:$.agent_id,priority:$.priority};if($.dm_scope!==null){let v=Z$.safeParse($.dm_scope);if(v.success)U.dmScope=v.data}return U}function f2($){let U=kz.parse($),v=Date.now(),J=b$();if(U.matrixAccount){if(!S4(U.matrixAccount))throw Error(`Matrix account not found: ${U.matrixAccount}`)}try{return J.insertAgent.run(U.id,U.name??null,U.cwd,U.model??null,U.dmScope??null,U.systemPromptAppend??null,U.allowedTools?JSON.stringify(U.allowedTools):null,U.debounceMs??null,U.matrixAccount??null,v,v),y$.info("Created agent",{id:U.id}),z$(U.id)}catch(_){if(_.message.includes("UNIQUE constraint failed"))throw Error(`Agent already exists: ${U.id}`);throw _}}function z$($){let v=b$().getAgent.get($);return v?xz(v):null}function C$(){return b$().listAgents.all().map(xz)}function F1($,U){let v=b$(),J=v.getAgent.get($);if(!J)throw Error(`Agent not found: ${$}`);if(U.dmScope!==void 0)Z$.parse(U.dmScope);if(U.matrixAccount!==void 0&&U.matrixAccount!==null){if(!S4(U.matrixAccount))throw Error(`Matrix account not found: ${U.matrixAccount}`)}let _=Date.now();return v.updateAgent.run(U.name!==void 0?U.name??null:J.name,U.cwd??J.cwd,U.model!==void 0?U.model??null:J.model,U.dmScope!==void 0?U.dmScope??null:J.dm_scope,U.systemPromptAppend!==void 0?U.systemPromptAppend??null:J.system_prompt_append,U.allowedTools!==void 0?U.allowedTools?JSON.stringify(U.allowedTools):null:J.allowed_tools,U.debounceMs!==void 0?U.debounceMs??null:J.debounce_ms,U.matrixAccount!==void 0?U.matrixAccount??null:J.matrix_account,_,$),y$.info("Updated agent",{id:$}),z$($)}function g2($){let U=w1();if($===U)throw Error(`Cannot delete default agent: ${$}`);if(b$().deleteAgent.run($),P1()>0)return y$.info("Deleted agent",{id:$}),!0;return!1}function L6($,U){F1($,{allowedTools:U}),y$.info("Set agent tools",{id:$,tools:U?.length??"bypass"})}function h2($,U){let v=z$($);if(!v)throw Error(`Agent not found: ${$}`);let J=v.allowedTools??[];if(!J.includes(U))J.push(U),F1($,{allowedTools:J}),y$.info("Added tool to agent",{id:$,tool:U})}function u2($,U){let v=z$($);if(!v)throw Error(`Agent not found: ${$}`);if(!v.allowedTools)return;let J=v.allowedTools.filter((_)=>_!==U);F1($,{allowedTools:J}),y$.info("Removed tool from agent",{id:$,tool:U})}function F9($,U){F1($,{debounceMs:U}),y$.info("Set agent debounce",{id:$,debounceMs:U})}function a5($){let U=Mz.parse($),v=b$();if(!z$(U.agent))throw Error(`Agent not found: ${U.agent}`);let J=Date.now();try{return v.insertRoute.run(U.pattern,U.agent,U.dmScope??null,U.priority,J,J),y$.info("Created route",{pattern:U.pattern,agent:U.agent}),E1(U.pattern)}catch(_){if(_.message.includes("UNIQUE constraint failed"))throw Error(`Route already exists: ${U.pattern}`);throw _}}function E1($){let v=b$().getRoute.get($);return v?Iz(v):null}function T6(){return b$().listRoutes.all().map(Iz)}function e5($,U){let v=b$(),J=v.getRoute.get($);if(!J)throw Error(`Route not found: ${$}`);if(U.agent&&!z$(U.agent))throw Error(`Agent not found: ${U.agent}`);if(U.dmScope!==void 0)Z$.parse(U.dmScope);let _=Date.now();return v.updateRoute.run(U.agent??J.agent_id,U.dmScope!==void 0?U.dmScope??null:J.dm_scope,U.priority??J.priority,_,$),y$.info("Updated route",{pattern:$}),E1($)}function s5($){if(b$().deleteRoute.run($),P1()>0)return y$.info("Deleted route",{pattern:$}),!0;return!1}function K6($){return b$().getSetting.get($)?.value??null}function $U($,U){if($==="defaultDmScope")Z$.parse(U);if($==="defaultAgent"){if(!z$(U))throw Error(`Agent not found: ${U}`)}let v=b$(),J=Date.now();v.upsertSetting.run($,U,J),y$.info("Set setting",{key:$,value:U})}function UU($){return b$().deleteSetting.run($),P1()>0}function _U(){let U=b$().listSettings.all(),v={};for(let J of U)v[J.key]=J.value;return v}function w1(){return K6("defaultAgent")??"main"}function vU(){let $=K6("defaultDmScope");if($===null)return"per-peer";let U=Z$.safeParse($);return U.success?U.data:"per-peer"}function Cz(){if(_4!==null)_4.close(),_4=null,I2=null}function tZ(){return Z9}function E9(){return t5}function fz($){let U={username:$.username,userId:$.user_id,homeserver:$.homeserver,accessToken:$.access_token,createdAt:$.created_at};if($.device_id)U.deviceId=$.device_id;if($.last_used_at)U.lastUsedAt=$.last_used_at;return U}function j6($){let U=b$(),v=U.getMatrixAccount.get($.username),J=Date.now();return U.upsertMatrixAccount.run($.username,$.userId,$.homeserver,$.accessToken,$.deviceId??null,v?.created_at??J,J),y$.info("Upserted matrix account",{username:$.username,userId:$.userId}),S4($.username)}function S4($){let v=b$().getMatrixAccount.get($);return v?fz(v):null}function R6(){return b$().listMatrixAccounts.all().map(fz)}function y2($){let v=C$().find((_)=>_.matrixAccount===$);if(v)throw Error(`Cannot delete: account is used by agent "${v.id}"`);if(b$().deleteMatrixAccount.run($),P1()>0)return y$.info("Deleted matrix account",{username:$}),!0;return!1}function w9($){b$().touchMatrixAccount.run(Date.now(),$)}function aZ($){let U=z$($);if(!U?.matrixAccount)return null;return S4(U.matrixAccount)}var y$,t5,Z9,Z$,kz,Mz,_4=null,I2=null;var b4=f(()=>{o5();x$();y$=_$.child("router:db"),t5=P9(oZ(),"ravi"),Z9=P9(t5,"ravi.db"),Z$=c.enum(["main","per-peer","per-channel-peer","per-account-channel-peer"]),kz=c.object({id:c.string().min(1),name:c.string().optional(),cwd:c.string().min(1),model:c.string().optional(),dmScope:Z$.optional(),systemPromptAppend:c.string().optional(),allowedTools:c.array(c.string()).optional(),debounceMs:c.number().int().min(0).optional(),matrixAccount:c.string().optional()}),Mz=c.object({pattern:c.string().min(1),agent:c.string().min(1),dmScope:Z$.optional(),priority:c.number().int().default(0)})});var b9=r((YA,iz)=>{iz.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var nz=r((QA,cz)=>{var _P=b9();function mz($){this.mode=_P.MODE_8BIT_BYTE,this.data=$}mz.prototype={getLength:function(){return this.data.length},write:function($){for(var U=0;U<this.data.length;U++)$.put(this.data.charCodeAt(U),8)}};cz.exports=mz});var k9=r((zA,pz)=>{var P4={glog:function($){if($<1)throw Error("glog("+$+")");return P4.LOG_TABLE[$]},gexp:function($){while($<0)$+=255;while($>=256)$-=255;return P4.EXP_TABLE[$]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)};for(P$=0;P$<8;P$++)P4.EXP_TABLE[P$]=1<<P$;var P$;for(P$=8;P$<256;P$++)P4.EXP_TABLE[P$]=P4.EXP_TABLE[P$-4]^P4.EXP_TABLE[P$-5]^P4.EXP_TABLE[P$-6]^P4.EXP_TABLE[P$-8];var P$;for(P$=0;P$<255;P$++)P4.LOG_TABLE[P4.EXP_TABLE[P$]]=P$;var P$;pz.exports=P4});var M9=r((NA,rz)=>{var T1=k9();function YU($,U){if($.length===void 0)throw Error($.length+"/"+U);var v=0;while(v<$.length&&$[v]===0)v++;this.num=Array($.length-v+U);for(var J=0;J<$.length-v;J++)this.num[J]=$[J+v]}YU.prototype={get:function($){return this.num[$]},getLength:function(){return this.num.length},multiply:function($){var U=Array(this.getLength()+$.getLength()-1);for(var v=0;v<this.getLength();v++)for(var J=0;J<$.getLength();J++)U[v+J]^=T1.gexp(T1.glog(this.get(v))+T1.glog($.get(J)));return new YU(U,0)},mod:function($){if(this.getLength()-$.getLength()<0)return this;var U=T1.glog(this.get(0))-T1.glog($.get(0)),v=Array(this.getLength());for(var J=0;J<this.getLength();J++)v[J]=this.get(J);for(var _=0;_<$.getLength();_++)v[_]^=T1.gexp(T1.glog($.get(_))+U);return new YU(v,0).mod($)}};rz.exports=YU});var oz=r((GA,dz)=>{dz.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var ez=r((qA,az)=>{var z4=b9(),tz=M9(),vP=k9(),U1=oz(),f$={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function($){var U=$<<10;while(f$.getBCHDigit(U)-f$.getBCHDigit(f$.G15)>=0)U^=f$.G15<<f$.getBCHDigit(U)-f$.getBCHDigit(f$.G15);return($<<10|U)^f$.G15_MASK},getBCHTypeNumber:function($){var U=$<<12;while(f$.getBCHDigit(U)-f$.getBCHDigit(f$.G18)>=0)U^=f$.G18<<f$.getBCHDigit(U)-f$.getBCHDigit(f$.G18);return $<<12|U},getBCHDigit:function($){var U=0;while($!==0)U++,$>>>=1;return U},getPatternPosition:function($){return f$.PATTERN_POSITION_TABLE[$-1]},getMask:function($,U,v){switch($){case U1.PATTERN000:return(U+v)%2===0;case U1.PATTERN001:return U%2===0;case U1.PATTERN010:return v%3===0;case U1.PATTERN011:return(U+v)%3===0;case U1.PATTERN100:return(Math.floor(U/2)+Math.floor(v/3))%2===0;case U1.PATTERN101:return U*v%2+U*v%3===0;case U1.PATTERN110:return(U*v%2+U*v%3)%2===0;case U1.PATTERN111:return(U*v%3+(U+v)%2)%2===0;default:throw Error("bad maskPattern:"+$)}},getErrorCorrectPolynomial:function($){var U=new tz([1],0);for(var v=0;v<$;v++)U=U.multiply(new tz([1,vP.gexp(v)],0));return U},getLengthInBits:function($,U){if(1<=U&&U<10)switch($){case z4.MODE_NUMBER:return 10;case z4.MODE_ALPHA_NUM:return 9;case z4.MODE_8BIT_BYTE:return 8;case z4.MODE_KANJI:return 8;default:throw Error("mode:"+$)}else if(U<27)switch($){case z4.MODE_NUMBER:return 12;case z4.MODE_ALPHA_NUM:return 11;case z4.MODE_8BIT_BYTE:return 16;case z4.MODE_KANJI:return 10;default:throw Error("mode:"+$)}else if(U<41)switch($){case z4.MODE_NUMBER:return 14;case z4.MODE_ALPHA_NUM:return 13;case z4.MODE_8BIT_BYTE:return 16;case z4.MODE_KANJI:return 12;default:throw Error("mode:"+$)}else throw Error("type:"+U)},getLostPoint:function($){var U=$.getModuleCount(),v=0,J=0,_=0;for(J=0;J<U;J++)for(_=0;_<U;_++){var D=0,X=$.isDark(J,_);for(var Y=-1;Y<=1;Y++){if(J+Y<0||U<=J+Y)continue;for(var Q=-1;Q<=1;Q++){if(_+Q<0||U<=_+Q)continue;if(Y===0&&Q===0)continue;if(X===$.isDark(J+Y,_+Q))D++}}if(D>5)v+=3+D-5}for(J=0;J<U-1;J++)for(_=0;_<U-1;_++){var z=0;if($.isDark(J,_))z++;if($.isDark(J+1,_))z++;if($.isDark(J,_+1))z++;if($.isDark(J+1,_+1))z++;if(z===0||z===4)v+=3}for(J=0;J<U;J++)for(_=0;_<U-6;_++)if($.isDark(J,_)&&!$.isDark(J,_+1)&&$.isDark(J,_+2)&&$.isDark(J,_+3)&&$.isDark(J,_+4)&&!$.isDark(J,_+5)&&$.isDark(J,_+6))v+=40;for(_=0;_<U;_++)for(J=0;J<U-6;J++)if($.isDark(J,_)&&!$.isDark(J+1,_)&&$.isDark(J+2,_)&&$.isDark(J+3,_)&&$.isDark(J+4,_)&&!$.isDark(J+5,_)&&$.isDark(J+6,_))v+=40;var N=0;for(_=0;_<U;_++)for(J=0;J<U;J++)if($.isDark(J,_))N++;var G=Math.abs(100*N/U/U-50)/5;return v+=G*10,v}};az.exports=f$});var x9=r((VA,sz)=>{sz.exports={L:1,M:0,Q:3,H:2}});var UN=r((HA,$N)=>{var QU=x9();function k4($,U){this.totalCount=$,this.dataCount=U}k4.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];k4.getRSBlocks=function($,U){var v=k4.getRsBlockTable($,U);if(v===void 0)throw Error("bad rs block @ typeNumber:"+$+"/errorCorrectLevel:"+U);var J=v.length/3,_=[];for(var D=0;D<J;D++){var X=v[D*3+0],Y=v[D*3+1],Q=v[D*3+2];for(var z=0;z<X;z++)_.push(new k4(Y,Q))}return _};k4.getRsBlockTable=function($,U){switch(U){case QU.L:return k4.RS_BLOCK_TABLE[($-1)*4+0];case QU.M:return k4.RS_BLOCK_TABLE[($-1)*4+1];case QU.Q:return k4.RS_BLOCK_TABLE[($-1)*4+2];case QU.H:return k4.RS_BLOCK_TABLE[($-1)*4+3];default:return}};$N.exports=k4});var JN=r((WA,vN)=>{function _N(){this.buffer=[],this.length=0}_N.prototype={get:function($){var U=Math.floor($/8);return(this.buffer[U]>>>7-$%8&1)==1},put:function($,U){for(var v=0;v<U;v++)this.putBit(($>>>U-v-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function($){var U=Math.floor(this.length/8);if(this.buffer.length<=U)this.buffer.push(0);if($)this.buffer[U]|=128>>>this.length%8;this.length++}};vN.exports=_N});var QN=r((BA,YN)=>{var JP=nz(),_1=ez(),DP=M9(),DN=UN(),XN=JN();function M4($,U){this.typeNumber=$,this.errorCorrectLevel=U,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}M4.prototype={addData:function($){var U=new JP($);this.dataList.push(U),this.dataCache=null},isDark:function($,U){if($<0||this.moduleCount<=$||U<0||this.moduleCount<=U)throw Error($+","+U);return this.modules[$][U]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var $=1;for($=1;$<40;$++){var U=DN.getRSBlocks($,this.errorCorrectLevel),v=new XN,J=0;for(var _=0;_<U.length;_++)J+=U[_].dataCount;for(var D=0;D<this.dataList.length;D++){var X=this.dataList[D];v.put(X.mode,4),v.put(X.getLength(),_1.getLengthInBits(X.mode,$)),X.write(v)}if(v.getLengthInBits()<=J*8)break}this.typeNumber=$}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function($,U){this.moduleCount=this.typeNumber*4+17,this.modules=Array(this.moduleCount);for(var v=0;v<this.moduleCount;v++){this.modules[v]=Array(this.moduleCount);for(var J=0;J<this.moduleCount;J++)this.modules[v][J]=null}if(this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo($,U),this.typeNumber>=7)this.setupTypeNumber($);if(this.dataCache===null)this.dataCache=M4.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);this.mapData(this.dataCache,U)},setupPositionProbePattern:function($,U){for(var v=-1;v<=7;v++){if($+v<=-1||this.moduleCount<=$+v)continue;for(var J=-1;J<=7;J++){if(U+J<=-1||this.moduleCount<=U+J)continue;if(0<=v&&v<=6&&(J===0||J===6)||0<=J&&J<=6&&(v===0||v===6)||2<=v&&v<=4&&2<=J&&J<=4)this.modules[$+v][U+J]=!0;else this.modules[$+v][U+J]=!1}}},getBestMaskPattern:function(){var $=0,U=0;for(var v=0;v<8;v++){this.makeImpl(!0,v);var J=_1.getLostPoint(this);if(v===0||$>J)$=J,U=v}return U},createMovieClip:function($,U,v){var J=$.createEmptyMovieClip(U,v),_=1;this.make();for(var D=0;D<this.modules.length;D++){var X=D*_;for(var Y=0;Y<this.modules[D].length;Y++){var Q=Y*_,z=this.modules[D][Y];if(z)J.beginFill(0,100),J.moveTo(Q,X),J.lineTo(Q+_,X),J.lineTo(Q+_,X+_),J.lineTo(Q,X+_),J.endFill()}}return J},setupTimingPattern:function(){for(var $=8;$<this.moduleCount-8;$++){if(this.modules[$][6]!==null)continue;this.modules[$][6]=$%2===0}for(var U=8;U<this.moduleCount-8;U++){if(this.modules[6][U]!==null)continue;this.modules[6][U]=U%2===0}},setupPositionAdjustPattern:function(){var $=_1.getPatternPosition(this.typeNumber);for(var U=0;U<$.length;U++)for(var v=0;v<$.length;v++){var J=$[U],_=$[v];if(this.modules[J][_]!==null)continue;for(var D=-2;D<=2;D++)for(var X=-2;X<=2;X++)if(Math.abs(D)===2||Math.abs(X)===2||D===0&&X===0)this.modules[J+D][_+X]=!0;else this.modules[J+D][_+X]=!1}},setupTypeNumber:function($){var U=_1.getBCHTypeNumber(this.typeNumber),v;for(var J=0;J<18;J++)v=!$&&(U>>J&1)===1,this.modules[Math.floor(J/3)][J%3+this.moduleCount-8-3]=v;for(var _=0;_<18;_++)v=!$&&(U>>_&1)===1,this.modules[_%3+this.moduleCount-8-3][Math.floor(_/3)]=v},setupTypeInfo:function($,U){var v=this.errorCorrectLevel<<3|U,J=_1.getBCHTypeInfo(v),_;for(var D=0;D<15;D++)if(_=!$&&(J>>D&1)===1,D<6)this.modules[D][8]=_;else if(D<8)this.modules[D+1][8]=_;else this.modules[this.moduleCount-15+D][8]=_;for(var X=0;X<15;X++)if(_=!$&&(J>>X&1)===1,X<8)this.modules[8][this.moduleCount-X-1]=_;else if(X<9)this.modules[8][15-X-1+1]=_;else this.modules[8][15-X-1]=_;this.modules[this.moduleCount-8][8]=!$},mapData:function($,U){var v=-1,J=this.moduleCount-1,_=7,D=0;for(var X=this.moduleCount-1;X>0;X-=2){if(X===6)X--;while(!0){for(var Y=0;Y<2;Y++)if(this.modules[J][X-Y]===null){var Q=!1;if(D<$.length)Q=($[D]>>>_&1)===1;var z=_1.getMask(U,J,X-Y);if(z)Q=!Q;if(this.modules[J][X-Y]=Q,_--,_===-1)D++,_=7}if(J+=v,J<0||this.moduleCount<=J){J-=v,v=-v;break}}}}};M4.PAD0=236;M4.PAD1=17;M4.createData=function($,U,v){var J=DN.getRSBlocks($,U),_=new XN;for(var D=0;D<v.length;D++){var X=v[D];_.put(X.mode,4),_.put(X.getLength(),_1.getLengthInBits(X.mode,$)),X.write(_)}var Y=0;for(var Q=0;Q<J.length;Q++)Y+=J[Q].dataCount;if(_.getLengthInBits()>Y*8)throw Error("code length overflow. ("+_.getLengthInBits()+">"+Y*8+")");if(_.getLengthInBits()+4<=Y*8)_.put(0,4);while(_.getLengthInBits()%8!==0)_.putBit(!1);while(!0){if(_.getLengthInBits()>=Y*8)break;if(_.put(M4.PAD0,8),_.getLengthInBits()>=Y*8)break;_.put(M4.PAD1,8)}return M4.createBytes(_,J)};M4.createBytes=function($,U){var v=0,J=0,_=0,D=Array(U.length),X=Array(U.length);for(var Y=0;Y<U.length;Y++){var Q=U[Y].dataCount,z=U[Y].totalCount-Q;J=Math.max(J,Q),_=Math.max(_,z),D[Y]=Array(Q);for(var N=0;N<D[Y].length;N++)D[Y][N]=255&$.buffer[N+v];v+=Q;var G=_1.getErrorCorrectPolynomial(z),W=new DP(D[Y],G.getLength()-1),q=W.mod(G);X[Y]=Array(G.getLength()-1);for(var V=0;V<X[Y].length;V++){var E=V+q.getLength()-X[Y].length;X[Y][V]=E>=0?q.get(E):0}}var T=0;for(var S=0;S<U.length;S++)T+=U[S].totalCount;var C=Array(T),M=0;for(var h=0;h<J;h++)for(var p=0;p<U.length;p++)if(h<D[p].length)C[M++]=D[p][h];for(var J$=0;J$<_;J$++)for(var e=0;e<U.length;e++)if(J$<X[e].length)C[M++]=X[e][J$];return C};YN.exports=M4});var GN=r((ZA,NN)=>{var XP=QN(),zN=x9(),YP="\x1B[40m \x1B[0m",zU="\x1B[47m \x1B[0m",QP=function($){return $?YP:zU},I9=function($){return{times:function(U){return Array(U).join($)}}},zP=function($,U){var v=Array($);for(var J=0;J<$;J++)v[J]=U;return v};NN.exports={error:zN.L,generate:function($,U,v){if(typeof U==="function")v=U,U={};var J=new XP(-1,this.error);J.addData($),J.make();var _="";if(U&&U.small){var D=!0,X=!1,Y=J.getModuleCount(),Q=J.modules.slice(),z=Y%2===1;if(z)Q.push(zP(Y,X));var N={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},G=I9(N.BLACK_WHITE).times(Y+3),W=I9(N.WHITE_BLACK).times(Y+3);_+=G+`
200
+ `),getMatrixAccount:$.prepare("SELECT * FROM matrix_accounts WHERE username = ?"),deleteMatrixAccount:$.prepare("DELETE FROM matrix_accounts WHERE username = ?"),listMatrixAccounts:$.prepare("SELECT * FROM matrix_accounts ORDER BY username"),touchMatrixAccount:$.prepare("UPDATE matrix_accounts SET last_used_at = ? WHERE username = ?")},I2}function xz($){let U={id:$.id,cwd:$.cwd};if($.name!==null)U.name=$.name;if($.model!==null)U.model=$.model;if($.dm_scope!==null){let v=Z$.safeParse($.dm_scope);if(v.success)U.dmScope=v.data}if($.system_prompt_append!==null)U.systemPromptAppend=$.system_prompt_append;if($.allowed_tools!==null)try{U.allowedTools=JSON.parse($.allowed_tools)}catch{}if($.debounce_ms!==null)U.debounceMs=$.debounce_ms;if($.matrix_account!==null)U.matrixAccount=$.matrix_account;return U}function Iz($){let U={id:$.id,pattern:$.pattern,agent:$.agent_id,priority:$.priority};if($.dm_scope!==null){let v=Z$.safeParse($.dm_scope);if(v.success)U.dmScope=v.data}return U}function f2($){let U=kz.parse($),v=Date.now(),J=b$();if(U.matrixAccount){if(!S4(U.matrixAccount))throw Error(`Matrix account not found: ${U.matrixAccount}`)}try{return J.insertAgent.run(U.id,U.name??null,U.cwd,U.model??null,U.dmScope??null,U.systemPromptAppend??null,U.allowedTools?JSON.stringify(U.allowedTools):null,U.debounceMs??null,U.matrixAccount??null,v,v),y$.info("Created agent",{id:U.id}),z$(U.id)}catch(_){if(_.message.includes("UNIQUE constraint failed"))throw Error(`Agent already exists: ${U.id}`);throw _}}function z$($){let v=b$().getAgent.get($);return v?xz(v):null}function C$(){return b$().listAgents.all().map(xz)}function F1($,U){let v=b$(),J=v.getAgent.get($);if(!J)throw Error(`Agent not found: ${$}`);if(U.dmScope!==void 0)Z$.parse(U.dmScope);if(U.matrixAccount!==void 0&&U.matrixAccount!==null){if(!S4(U.matrixAccount))throw Error(`Matrix account not found: ${U.matrixAccount}`)}let _=Date.now();return v.updateAgent.run(U.name!==void 0?U.name??null:J.name,U.cwd??J.cwd,U.model!==void 0?U.model??null:J.model,U.dmScope!==void 0?U.dmScope??null:J.dm_scope,U.systemPromptAppend!==void 0?U.systemPromptAppend??null:J.system_prompt_append,U.allowedTools!==void 0?U.allowedTools?JSON.stringify(U.allowedTools):null:J.allowed_tools,U.debounceMs!==void 0?U.debounceMs??null:J.debounce_ms,U.matrixAccount!==void 0?U.matrixAccount??null:J.matrix_account,_,$),y$.info("Updated agent",{id:$}),z$($)}function g2($){let U=w1();if($===U)throw Error(`Cannot delete default agent: ${$}`);if(b$().deleteAgent.run($),P1()>0)return y$.info("Deleted agent",{id:$}),!0;return!1}function L6($,U){F1($,{allowedTools:U}),y$.info("Set agent tools",{id:$,tools:U?.length??"bypass"})}function h2($,U){let v=z$($);if(!v)throw Error(`Agent not found: ${$}`);let J=v.allowedTools??[];if(!J.includes(U))J.push(U),F1($,{allowedTools:J}),y$.info("Added tool to agent",{id:$,tool:U})}function u2($,U){let v=z$($);if(!v)throw Error(`Agent not found: ${$}`);if(!v.allowedTools)return;let J=v.allowedTools.filter((_)=>_!==U);F1($,{allowedTools:J}),y$.info("Removed tool from agent",{id:$,tool:U})}function F9($,U){F1($,{debounceMs:U}),y$.info("Set agent debounce",{id:$,debounceMs:U})}function a5($){let U=Mz.parse($),v=b$();if(!z$(U.agent))throw Error(`Agent not found: ${U.agent}`);let J=Date.now();try{return v.insertRoute.run(U.pattern,U.agent,U.dmScope??null,U.priority,J,J),y$.info("Created route",{pattern:U.pattern,agent:U.agent}),E1(U.pattern)}catch(_){if(_.message.includes("UNIQUE constraint failed"))throw Error(`Route already exists: ${U.pattern}`);throw _}}function E1($){let v=b$().getRoute.get($);return v?Iz(v):null}function T6(){return b$().listRoutes.all().map(Iz)}function e5($,U){let v=b$(),J=v.getRoute.get($);if(!J)throw Error(`Route not found: ${$}`);if(U.agent&&!z$(U.agent))throw Error(`Agent not found: ${U.agent}`);if(U.dmScope!==void 0)Z$.parse(U.dmScope);let _=Date.now();return v.updateRoute.run(U.agent??J.agent_id,U.dmScope!==void 0?U.dmScope??null:J.dm_scope,U.priority??J.priority,_,$),y$.info("Updated route",{pattern:$}),E1($)}function s5($){if(b$().deleteRoute.run($),P1()>0)return y$.info("Deleted route",{pattern:$}),!0;return!1}function K6($){return b$().getSetting.get($)?.value??null}function $U($,U){if($==="defaultDmScope")Z$.parse(U);if($==="defaultAgent"){if(!z$(U))throw Error(`Agent not found: ${U}`)}let v=b$(),J=Date.now();v.upsertSetting.run($,U,J),y$.info("Set setting",{key:$,value:U})}function UU($){return b$().deleteSetting.run($),P1()>0}function _U(){let U=b$().listSettings.all(),v={};for(let J of U)v[J.key]=J.value;return v}function w1(){return K6("defaultAgent")??"main"}function vU(){let $=K6("defaultDmScope");if($===null)return"per-peer";let U=Z$.safeParse($);return U.success?U.data:"per-peer"}function Cz(){if(_4!==null)_4.close(),_4=null,I2=null}function tZ(){return Z9}function E9(){return t5}function fz($){let U={username:$.username,userId:$.user_id,homeserver:$.homeserver,accessToken:$.access_token,createdAt:$.created_at};if($.device_id)U.deviceId=$.device_id;if($.last_used_at)U.lastUsedAt=$.last_used_at;return U}function j6($){let U=b$(),v=U.getMatrixAccount.get($.username),J=Date.now();return U.upsertMatrixAccount.run($.username,$.userId,$.homeserver,$.accessToken,$.deviceId??null,v?.created_at??J,J),y$.info("Upserted matrix account",{username:$.username,userId:$.userId}),S4($.username)}function S4($){let v=b$().getMatrixAccount.get($);return v?fz(v):null}function R6(){return b$().listMatrixAccounts.all().map(fz)}function y2($){let v=C$().find((_)=>_.matrixAccount===$);if(v)throw Error(`Cannot delete: account is used by agent "${v.id}"`);if(b$().deleteMatrixAccount.run($),P1()>0)return y$.info("Deleted matrix account",{username:$}),!0;return!1}function w9($){b$().touchMatrixAccount.run(Date.now(),$)}function aZ($){let U=z$($);if(!U?.matrixAccount)return null;return S4(U.matrixAccount)}var y$,t5,Z9,Z$,kz,Mz,_4=null,I2=null;var b4=f(()=>{o5();x$();y$=_$.child("router:db"),t5=P9(oZ(),"ravi"),Z9=P9(t5,"ravi.db"),Z$=c.enum(["main","per-peer","per-channel-peer","per-account-channel-peer"]),kz=c.object({id:c.string().min(1),name:c.string().optional(),cwd:c.string().min(1),model:c.string().optional(),dmScope:Z$.optional(),systemPromptAppend:c.string().optional(),allowedTools:c.array(c.string()).optional(),debounceMs:c.number().int().min(0).optional(),matrixAccount:c.string().optional()}),Mz=c.object({pattern:c.string().min(1),agent:c.string().min(1),dmScope:Z$.optional(),priority:c.number().int().default(0)})});var b9=r((XA,iz)=>{iz.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var nz=r((YA,cz)=>{var _P=b9();function mz($){this.mode=_P.MODE_8BIT_BYTE,this.data=$}mz.prototype={getLength:function(){return this.data.length},write:function($){for(var U=0;U<this.data.length;U++)$.put(this.data.charCodeAt(U),8)}};cz.exports=mz});var k9=r((QA,pz)=>{var P4={glog:function($){if($<1)throw Error("glog("+$+")");return P4.LOG_TABLE[$]},gexp:function($){while($<0)$+=255;while($>=256)$-=255;return P4.EXP_TABLE[$]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)};for(P$=0;P$<8;P$++)P4.EXP_TABLE[P$]=1<<P$;var P$;for(P$=8;P$<256;P$++)P4.EXP_TABLE[P$]=P4.EXP_TABLE[P$-4]^P4.EXP_TABLE[P$-5]^P4.EXP_TABLE[P$-6]^P4.EXP_TABLE[P$-8];var P$;for(P$=0;P$<255;P$++)P4.LOG_TABLE[P4.EXP_TABLE[P$]]=P$;var P$;pz.exports=P4});var M9=r((zA,rz)=>{var T1=k9();function YU($,U){if($.length===void 0)throw Error($.length+"/"+U);var v=0;while(v<$.length&&$[v]===0)v++;this.num=Array($.length-v+U);for(var J=0;J<$.length-v;J++)this.num[J]=$[J+v]}YU.prototype={get:function($){return this.num[$]},getLength:function(){return this.num.length},multiply:function($){var U=Array(this.getLength()+$.getLength()-1);for(var v=0;v<this.getLength();v++)for(var J=0;J<$.getLength();J++)U[v+J]^=T1.gexp(T1.glog(this.get(v))+T1.glog($.get(J)));return new YU(U,0)},mod:function($){if(this.getLength()-$.getLength()<0)return this;var U=T1.glog(this.get(0))-T1.glog($.get(0)),v=Array(this.getLength());for(var J=0;J<this.getLength();J++)v[J]=this.get(J);for(var _=0;_<$.getLength();_++)v[_]^=T1.gexp(T1.glog($.get(_))+U);return new YU(v,0).mod($)}};rz.exports=YU});var oz=r((NA,dz)=>{dz.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var ez=r((GA,az)=>{var z4=b9(),tz=M9(),vP=k9(),U1=oz(),f$={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function($){var U=$<<10;while(f$.getBCHDigit(U)-f$.getBCHDigit(f$.G15)>=0)U^=f$.G15<<f$.getBCHDigit(U)-f$.getBCHDigit(f$.G15);return($<<10|U)^f$.G15_MASK},getBCHTypeNumber:function($){var U=$<<12;while(f$.getBCHDigit(U)-f$.getBCHDigit(f$.G18)>=0)U^=f$.G18<<f$.getBCHDigit(U)-f$.getBCHDigit(f$.G18);return $<<12|U},getBCHDigit:function($){var U=0;while($!==0)U++,$>>>=1;return U},getPatternPosition:function($){return f$.PATTERN_POSITION_TABLE[$-1]},getMask:function($,U,v){switch($){case U1.PATTERN000:return(U+v)%2===0;case U1.PATTERN001:return U%2===0;case U1.PATTERN010:return v%3===0;case U1.PATTERN011:return(U+v)%3===0;case U1.PATTERN100:return(Math.floor(U/2)+Math.floor(v/3))%2===0;case U1.PATTERN101:return U*v%2+U*v%3===0;case U1.PATTERN110:return(U*v%2+U*v%3)%2===0;case U1.PATTERN111:return(U*v%3+(U+v)%2)%2===0;default:throw Error("bad maskPattern:"+$)}},getErrorCorrectPolynomial:function($){var U=new tz([1],0);for(var v=0;v<$;v++)U=U.multiply(new tz([1,vP.gexp(v)],0));return U},getLengthInBits:function($,U){if(1<=U&&U<10)switch($){case z4.MODE_NUMBER:return 10;case z4.MODE_ALPHA_NUM:return 9;case z4.MODE_8BIT_BYTE:return 8;case z4.MODE_KANJI:return 8;default:throw Error("mode:"+$)}else if(U<27)switch($){case z4.MODE_NUMBER:return 12;case z4.MODE_ALPHA_NUM:return 11;case z4.MODE_8BIT_BYTE:return 16;case z4.MODE_KANJI:return 10;default:throw Error("mode:"+$)}else if(U<41)switch($){case z4.MODE_NUMBER:return 14;case z4.MODE_ALPHA_NUM:return 13;case z4.MODE_8BIT_BYTE:return 16;case z4.MODE_KANJI:return 12;default:throw Error("mode:"+$)}else throw Error("type:"+U)},getLostPoint:function($){var U=$.getModuleCount(),v=0,J=0,_=0;for(J=0;J<U;J++)for(_=0;_<U;_++){var D=0,X=$.isDark(J,_);for(var Y=-1;Y<=1;Y++){if(J+Y<0||U<=J+Y)continue;for(var Q=-1;Q<=1;Q++){if(_+Q<0||U<=_+Q)continue;if(Y===0&&Q===0)continue;if(X===$.isDark(J+Y,_+Q))D++}}if(D>5)v+=3+D-5}for(J=0;J<U-1;J++)for(_=0;_<U-1;_++){var z=0;if($.isDark(J,_))z++;if($.isDark(J+1,_))z++;if($.isDark(J,_+1))z++;if($.isDark(J+1,_+1))z++;if(z===0||z===4)v+=3}for(J=0;J<U;J++)for(_=0;_<U-6;_++)if($.isDark(J,_)&&!$.isDark(J,_+1)&&$.isDark(J,_+2)&&$.isDark(J,_+3)&&$.isDark(J,_+4)&&!$.isDark(J,_+5)&&$.isDark(J,_+6))v+=40;for(_=0;_<U;_++)for(J=0;J<U-6;J++)if($.isDark(J,_)&&!$.isDark(J+1,_)&&$.isDark(J+2,_)&&$.isDark(J+3,_)&&$.isDark(J+4,_)&&!$.isDark(J+5,_)&&$.isDark(J+6,_))v+=40;var N=0;for(_=0;_<U;_++)for(J=0;J<U;J++)if($.isDark(J,_))N++;var G=Math.abs(100*N/U/U-50)/5;return v+=G*10,v}};az.exports=f$});var x9=r((qA,sz)=>{sz.exports={L:1,M:0,Q:3,H:2}});var UN=r((VA,$N)=>{var QU=x9();function k4($,U){this.totalCount=$,this.dataCount=U}k4.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];k4.getRSBlocks=function($,U){var v=k4.getRsBlockTable($,U);if(v===void 0)throw Error("bad rs block @ typeNumber:"+$+"/errorCorrectLevel:"+U);var J=v.length/3,_=[];for(var D=0;D<J;D++){var X=v[D*3+0],Y=v[D*3+1],Q=v[D*3+2];for(var z=0;z<X;z++)_.push(new k4(Y,Q))}return _};k4.getRsBlockTable=function($,U){switch(U){case QU.L:return k4.RS_BLOCK_TABLE[($-1)*4+0];case QU.M:return k4.RS_BLOCK_TABLE[($-1)*4+1];case QU.Q:return k4.RS_BLOCK_TABLE[($-1)*4+2];case QU.H:return k4.RS_BLOCK_TABLE[($-1)*4+3];default:return}};$N.exports=k4});var JN=r((HA,vN)=>{function _N(){this.buffer=[],this.length=0}_N.prototype={get:function($){var U=Math.floor($/8);return(this.buffer[U]>>>7-$%8&1)==1},put:function($,U){for(var v=0;v<U;v++)this.putBit(($>>>U-v-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function($){var U=Math.floor(this.length/8);if(this.buffer.length<=U)this.buffer.push(0);if($)this.buffer[U]|=128>>>this.length%8;this.length++}};vN.exports=_N});var QN=r((WA,YN)=>{var JP=nz(),_1=ez(),DP=M9(),DN=UN(),XN=JN();function M4($,U){this.typeNumber=$,this.errorCorrectLevel=U,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}M4.prototype={addData:function($){var U=new JP($);this.dataList.push(U),this.dataCache=null},isDark:function($,U){if($<0||this.moduleCount<=$||U<0||this.moduleCount<=U)throw Error($+","+U);return this.modules[$][U]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var $=1;for($=1;$<40;$++){var U=DN.getRSBlocks($,this.errorCorrectLevel),v=new XN,J=0;for(var _=0;_<U.length;_++)J+=U[_].dataCount;for(var D=0;D<this.dataList.length;D++){var X=this.dataList[D];v.put(X.mode,4),v.put(X.getLength(),_1.getLengthInBits(X.mode,$)),X.write(v)}if(v.getLengthInBits()<=J*8)break}this.typeNumber=$}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function($,U){this.moduleCount=this.typeNumber*4+17,this.modules=Array(this.moduleCount);for(var v=0;v<this.moduleCount;v++){this.modules[v]=Array(this.moduleCount);for(var J=0;J<this.moduleCount;J++)this.modules[v][J]=null}if(this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo($,U),this.typeNumber>=7)this.setupTypeNumber($);if(this.dataCache===null)this.dataCache=M4.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);this.mapData(this.dataCache,U)},setupPositionProbePattern:function($,U){for(var v=-1;v<=7;v++){if($+v<=-1||this.moduleCount<=$+v)continue;for(var J=-1;J<=7;J++){if(U+J<=-1||this.moduleCount<=U+J)continue;if(0<=v&&v<=6&&(J===0||J===6)||0<=J&&J<=6&&(v===0||v===6)||2<=v&&v<=4&&2<=J&&J<=4)this.modules[$+v][U+J]=!0;else this.modules[$+v][U+J]=!1}}},getBestMaskPattern:function(){var $=0,U=0;for(var v=0;v<8;v++){this.makeImpl(!0,v);var J=_1.getLostPoint(this);if(v===0||$>J)$=J,U=v}return U},createMovieClip:function($,U,v){var J=$.createEmptyMovieClip(U,v),_=1;this.make();for(var D=0;D<this.modules.length;D++){var X=D*_;for(var Y=0;Y<this.modules[D].length;Y++){var Q=Y*_,z=this.modules[D][Y];if(z)J.beginFill(0,100),J.moveTo(Q,X),J.lineTo(Q+_,X),J.lineTo(Q+_,X+_),J.lineTo(Q,X+_),J.endFill()}}return J},setupTimingPattern:function(){for(var $=8;$<this.moduleCount-8;$++){if(this.modules[$][6]!==null)continue;this.modules[$][6]=$%2===0}for(var U=8;U<this.moduleCount-8;U++){if(this.modules[6][U]!==null)continue;this.modules[6][U]=U%2===0}},setupPositionAdjustPattern:function(){var $=_1.getPatternPosition(this.typeNumber);for(var U=0;U<$.length;U++)for(var v=0;v<$.length;v++){var J=$[U],_=$[v];if(this.modules[J][_]!==null)continue;for(var D=-2;D<=2;D++)for(var X=-2;X<=2;X++)if(Math.abs(D)===2||Math.abs(X)===2||D===0&&X===0)this.modules[J+D][_+X]=!0;else this.modules[J+D][_+X]=!1}},setupTypeNumber:function($){var U=_1.getBCHTypeNumber(this.typeNumber),v;for(var J=0;J<18;J++)v=!$&&(U>>J&1)===1,this.modules[Math.floor(J/3)][J%3+this.moduleCount-8-3]=v;for(var _=0;_<18;_++)v=!$&&(U>>_&1)===1,this.modules[_%3+this.moduleCount-8-3][Math.floor(_/3)]=v},setupTypeInfo:function($,U){var v=this.errorCorrectLevel<<3|U,J=_1.getBCHTypeInfo(v),_;for(var D=0;D<15;D++)if(_=!$&&(J>>D&1)===1,D<6)this.modules[D][8]=_;else if(D<8)this.modules[D+1][8]=_;else this.modules[this.moduleCount-15+D][8]=_;for(var X=0;X<15;X++)if(_=!$&&(J>>X&1)===1,X<8)this.modules[8][this.moduleCount-X-1]=_;else if(X<9)this.modules[8][15-X-1+1]=_;else this.modules[8][15-X-1]=_;this.modules[this.moduleCount-8][8]=!$},mapData:function($,U){var v=-1,J=this.moduleCount-1,_=7,D=0;for(var X=this.moduleCount-1;X>0;X-=2){if(X===6)X--;while(!0){for(var Y=0;Y<2;Y++)if(this.modules[J][X-Y]===null){var Q=!1;if(D<$.length)Q=($[D]>>>_&1)===1;var z=_1.getMask(U,J,X-Y);if(z)Q=!Q;if(this.modules[J][X-Y]=Q,_--,_===-1)D++,_=7}if(J+=v,J<0||this.moduleCount<=J){J-=v,v=-v;break}}}}};M4.PAD0=236;M4.PAD1=17;M4.createData=function($,U,v){var J=DN.getRSBlocks($,U),_=new XN;for(var D=0;D<v.length;D++){var X=v[D];_.put(X.mode,4),_.put(X.getLength(),_1.getLengthInBits(X.mode,$)),X.write(_)}var Y=0;for(var Q=0;Q<J.length;Q++)Y+=J[Q].dataCount;if(_.getLengthInBits()>Y*8)throw Error("code length overflow. ("+_.getLengthInBits()+">"+Y*8+")");if(_.getLengthInBits()+4<=Y*8)_.put(0,4);while(_.getLengthInBits()%8!==0)_.putBit(!1);while(!0){if(_.getLengthInBits()>=Y*8)break;if(_.put(M4.PAD0,8),_.getLengthInBits()>=Y*8)break;_.put(M4.PAD1,8)}return M4.createBytes(_,J)};M4.createBytes=function($,U){var v=0,J=0,_=0,D=Array(U.length),X=Array(U.length);for(var Y=0;Y<U.length;Y++){var Q=U[Y].dataCount,z=U[Y].totalCount-Q;J=Math.max(J,Q),_=Math.max(_,z),D[Y]=Array(Q);for(var N=0;N<D[Y].length;N++)D[Y][N]=255&$.buffer[N+v];v+=Q;var G=_1.getErrorCorrectPolynomial(z),W=new DP(D[Y],G.getLength()-1),q=W.mod(G);X[Y]=Array(G.getLength()-1);for(var V=0;V<X[Y].length;V++){var E=V+q.getLength()-X[Y].length;X[Y][V]=E>=0?q.get(E):0}}var T=0;for(var S=0;S<U.length;S++)T+=U[S].totalCount;var C=Array(T),M=0;for(var h=0;h<J;h++)for(var p=0;p<U.length;p++)if(h<D[p].length)C[M++]=D[p][h];for(var J$=0;J$<_;J$++)for(var e=0;e<U.length;e++)if(J$<X[e].length)C[M++]=X[e][J$];return C};YN.exports=M4});var GN=r((BA,NN)=>{var XP=QN(),zN=x9(),YP="\x1B[40m \x1B[0m",zU="\x1B[47m \x1B[0m",QP=function($){return $?YP:zU},I9=function($){return{times:function(U){return Array(U).join($)}}},zP=function($,U){var v=Array($);for(var J=0;J<$;J++)v[J]=U;return v};NN.exports={error:zN.L,generate:function($,U,v){if(typeof U==="function")v=U,U={};var J=new XP(-1,this.error);J.addData($),J.make();var _="";if(U&&U.small){var D=!0,X=!1,Y=J.getModuleCount(),Q=J.modules.slice(),z=Y%2===1;if(z)Q.push(zP(Y,X));var N={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},G=I9(N.BLACK_WHITE).times(Y+3),W=I9(N.WHITE_BLACK).times(Y+3);_+=G+`
201
201
  `;for(var q=0;q<Y;q+=2){_+=N.WHITE_ALL;for(var V=0;V<Y;V++)if(Q[q][V]===X&&Q[q+1][V]===X)_+=N.WHITE_ALL;else if(Q[q][V]===X&&Q[q+1][V]===D)_+=N.WHITE_BLACK;else if(Q[q][V]===D&&Q[q+1][V]===X)_+=N.BLACK_WHITE;else _+=N.BLACK_ALL;_+=N.WHITE_ALL+`
202
202
  `}if(!z)_+=W}else{var E=I9(zU).times(J.getModuleCount()+3);_+=E+`
203
203
  `,J.modules.forEach(function(T){_+=zU,_+=T.map(QP).join(""),_+=zU+`
204
- `}),_+=E}if(v)v(_);else console.log(_)},setErrorLevel:function($){this.error=zN[$]||this.error}}});var f9=r((EA,BN)=>{var m2=($)=>{return $&&typeof $.message==="string"},C9=($)=>{if(!$)return;let U=$.cause;if(typeof U==="function"){let v=$.cause();return m2(v)?v:void 0}else return m2(U)?U:void 0},HN=($,U)=>{if(!m2($))return"";let v=$.stack||"";if(U.has($))return v+`
204
+ `}),_+=E}if(v)v(_);else console.log(_)},setErrorLevel:function($){this.error=zN[$]||this.error}}});var f9=r((FA,BN)=>{var m2=($)=>{return $&&typeof $.message==="string"},C9=($)=>{if(!$)return;let U=$.cause;if(typeof U==="function"){let v=$.cause();return m2(v)?v:void 0}else return m2(U)?U:void 0},HN=($,U)=>{if(!m2($))return"";let v=$.stack||"";if(U.has($))return v+`
205
205
  causes have become circular...`;let J=C9($);if(J)return U.add($),v+`
206
- caused by: `+HN(J,U);else return v},HP=($)=>HN($,new Set),WN=($,U,v)=>{if(!m2($))return"";let J=v?"":$.message||"";if(U.has($))return J+": ...";let _=C9($);if(_){U.add($);let D=typeof $.cause==="function";return J+(D?"":": ")+WN(_,U,D)}else return J},WP=($)=>WN($,new Set);BN.exports={isErrorLike:m2,getErrorCause:C9,stackWithCauses:HP,messageWithCauses:WP}});var g9=r((wA,PN)=>{var BP=Symbol("circular-ref-tag"),NU=Symbol("pino-raw-err-ref"),ZN=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[NU]},set:function($){this[NU]=$}}});Object.defineProperty(ZN,NU,{writable:!0,value:{}});PN.exports={pinoErrProto:ZN,pinoErrorSymbols:{seen:BP,rawSymbol:NU}}});var wN=r((LA,EN)=>{EN.exports=u9;var{messageWithCauses:ZP,stackWithCauses:PP,isErrorLike:FN}=f9(),{pinoErrProto:FP,pinoErrorSymbols:EP}=g9(),{seen:h9}=EP,{toString:wP}=Object.prototype;function u9($){if(!FN($))return $;$[h9]=void 0;let U=Object.create(FP);if(U.type=wP.call($.constructor)==="[object Function]"?$.constructor.name:$.name,U.message=ZP($),U.stack=PP($),Array.isArray($.errors))U.aggregateErrors=$.errors.map((v)=>u9(v));for(let v in $)if(U[v]===void 0){let J=$[v];if(FN(J)){if(v!=="cause"&&!Object.prototype.hasOwnProperty.call(J,h9))U[v]=u9(J)}else U[v]=J}return delete $[h9],U.raw=$,U}});var TN=r((TA,LN)=>{LN.exports=qU;var{isErrorLike:y9}=f9(),{pinoErrProto:LP,pinoErrorSymbols:TP}=g9(),{seen:GU}=TP,{toString:KP}=Object.prototype;function qU($){if(!y9($))return $;$[GU]=void 0;let U=Object.create(LP);if(U.type=KP.call($.constructor)==="[object Function]"?$.constructor.name:$.name,U.message=$.message,U.stack=$.stack,Array.isArray($.errors))U.aggregateErrors=$.errors.map((v)=>qU(v));if(y9($.cause)&&!Object.prototype.hasOwnProperty.call($.cause,GU))U.cause=qU($.cause);for(let v in $)if(U[v]===void 0){let J=$[v];if(y9(J)){if(!Object.prototype.hasOwnProperty.call(J,GU))U[v]=qU(J)}else U[v]=J}return delete $[GU],U.raw=$,U}});var ON=r((KA,RN)=>{RN.exports={mapHttpRequest:jP,reqSerializer:jN};var l9=Symbol("pino-raw-req-ref"),KN=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[l9]},set:function($){this[l9]=$}}});Object.defineProperty(KN,l9,{writable:!0,value:{}});function jN($){let U=$.info||$.socket,v=Object.create(KN);if(v.id=typeof $.id==="function"?$.id():$.id||($.info?$.info.id:void 0),v.method=$.method,$.originalUrl)v.url=$.originalUrl;else{let J=$.path;v.url=typeof J==="string"?J:$.url?$.url.path||$.url:void 0}if($.query)v.query=$.query;if($.params)v.params=$.params;return v.headers=$.headers,v.remoteAddress=U&&U.remoteAddress,v.remotePort=U&&U.remotePort,v.raw=$.raw||$,v}function jP($){return{req:jN($)}}});var kN=r((jA,bN)=>{bN.exports={mapHttpResponse:RP,resSerializer:SN};var i9=Symbol("pino-raw-res-ref"),AN=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[i9]},set:function($){this[i9]=$}}});Object.defineProperty(AN,i9,{writable:!0,value:{}});function SN($){let U=Object.create(AN);return U.statusCode=$.headersSent?$.statusCode:null,U.headers=$.getHeaders?$.getHeaders():$._headers,U.raw=$,U}function RP($){return{res:SN($)}}});var c9=r((RA,MN)=>{var m9=wN(),OP=TN(),VU=ON(),HU=kN();MN.exports={err:m9,errWithCause:OP,mapHttpRequest:VU.mapHttpRequest,mapHttpResponse:HU.mapHttpResponse,req:VU.reqSerializer,res:HU.resSerializer,wrapErrorSerializer:function(U){if(U===m9)return U;return function(J){return U(m9(J))}},wrapRequestSerializer:function(U){if(U===VU.reqSerializer)return U;return function(J){return U(VU.reqSerializer(J))}},wrapResponseSerializer:function(U){if(U===HU.resSerializer)return U;return function(J){return U(HU.resSerializer(J))}}}});var n9=r((OA,xN)=>{function AP($,U){return U}xN.exports=function(){let U=Error.prepareStackTrace;Error.prepareStackTrace=AP;let v=Error().stack;if(Error.prepareStackTrace=U,!Array.isArray(v))return;let J=v.slice(2),_=[];for(let D of J){if(!D)continue;_.push(D.getFileName())}return _}});var uN=r((AA,hN)=>{function p9($){if($===null||typeof $!=="object")return $;if($ instanceof Date)return new Date($.getTime());if($ instanceof Array){let U=[];for(let v=0;v<$.length;v++)U[v]=p9($[v]);return U}if(typeof $==="object"){let U=Object.create(Object.getPrototypeOf($));for(let v in $)if(Object.prototype.hasOwnProperty.call($,v))U[v]=p9($[v]);return U}return $}function IN($){let U=[],v="",J=!1,_=!1,D="";for(let X=0;X<$.length;X++){let Y=$[X];if(!J&&Y==="."){if(v)U.push(v),v=""}else if(Y==="["){if(v)U.push(v),v="";J=!0}else if(Y==="]"&&J)U.push(v),v="",J=!1,_=!1;else if((Y==='"'||Y==="'")&&J)if(!_)_=!0,D=Y;else if(Y===D)_=!1,D="";else v+=Y;else v+=Y}if(v)U.push(v);return U}function CN($,U,v){let J=$;for(let D=0;D<U.length-1;D++){let X=U[D];if(typeof J!=="object"||J===null||!(X in J))return!1;if(typeof J[X]!=="object"||J[X]===null)return!1;J=J[X]}let _=U[U.length-1];if(_==="*"){if(Array.isArray(J))for(let D=0;D<J.length;D++)J[D]=v;else if(typeof J==="object"&&J!==null){for(let D in J)if(Object.prototype.hasOwnProperty.call(J,D))J[D]=v}}else if(typeof J==="object"&&J!==null&&_ in J&&Object.prototype.hasOwnProperty.call(J,_))J[_]=v;return!0}function fN($,U){let v=$;for(let _=0;_<U.length-1;_++){let D=U[_];if(typeof v!=="object"||v===null||!(D in v))return!1;if(typeof v[D]!=="object"||v[D]===null)return!1;v=v[D]}let J=U[U.length-1];if(J==="*"){if(Array.isArray(v))for(let _=0;_<v.length;_++)v[_]=void 0;else if(typeof v==="object"&&v!==null){for(let _ in v)if(Object.prototype.hasOwnProperty.call(v,_))delete v[_]}}else if(typeof v==="object"&&v!==null&&J in v&&Object.prototype.hasOwnProperty.call(v,J))delete v[J];return!0}var WU=Symbol("PATH_NOT_FOUND");function SP($,U){let v=$;for(let J of U){if(v===null||v===void 0)return WU;if(typeof v!=="object"||v===null)return WU;if(!(J in v))return WU;v=v[J]}return v}function bP($,U){let v=$;for(let J of U){if(v===null||v===void 0)return;if(typeof v!=="object"||v===null)return;v=v[J]}return v}function kP($,U,v,J=!1){for(let _ of U){let D=IN(_);if(D.includes("*"))gN($,D,v,_,J);else if(J)fN($,D);else{let X=SP($,D);if(X===WU)continue;let Y=typeof v==="function"?v(X,D):v;CN($,D,Y)}}}function gN($,U,v,J,_=!1){let D=U.indexOf("*");if(D===U.length-1){let X=U.slice(0,-1),Y=$;for(let Q of X){if(Y===null||Y===void 0)return;if(typeof Y!=="object"||Y===null)return;Y=Y[Q]}if(Array.isArray(Y))if(_)for(let Q=0;Q<Y.length;Q++)Y[Q]=void 0;else for(let Q=0;Q<Y.length;Q++){let z=[...X,Q.toString()],N=typeof v==="function"?v(Y[Q],z):v;Y[Q]=N}else if(typeof Y==="object"&&Y!==null)if(_){let Q=[];for(let z in Y)if(Object.prototype.hasOwnProperty.call(Y,z))Q.push(z);for(let z of Q)delete Y[z]}else for(let Q in Y){let z=[...X,Q],N=typeof v==="function"?v(Y[Q],z):v;Y[Q]=N}}else MP($,U,v,D,J,_)}function MP($,U,v,J,_,D=!1){let X=U.slice(0,J),Y=U.slice(J+1),Q=[];function z(N,G){if(G===X.length){if(Array.isArray(N))for(let W=0;W<N.length;W++)Q[G]=W.toString(),z(N[W],G+1);else if(typeof N==="object"&&N!==null)for(let W in N)Q[G]=W,z(N[W],G+1)}else if(G<X.length){let W=X[G];if(N&&typeof N==="object"&&N!==null&&W in N)Q[G]=W,z(N[W],G+1)}else if(Y.includes("*"))gN(N,Y,typeof v==="function"?(q,V)=>{let E=[...Q.slice(0,G),...V];return v(q,E)}:v,_,D);else if(D)fN(N,Y);else{let W=typeof v==="function"?v(bP(N,Y),[...Q.slice(0,G),...Y]):v;CN(N,Y,W)}}if(X.length===0)z($,0);else{let N=$;for(let G=0;G<X.length;G++){let W=X[G];if(N===null||N===void 0)return;if(typeof N!=="object"||N===null)return;N=N[W],Q[G]=W}if(N!==null&&N!==void 0)z(N,X.length)}}function xP($){if($.length===0)return null;let U=new Map;for(let v of $){let J=IN(v),_=U;for(let D=0;D<J.length;D++){let X=J[D];if(!_.has(X))_.set(X,new Map);_=_.get(X)}}return U}function IP($,U){if(!U)return $;function v(J,_,D=0){if(!_||_.size===0)return J;if(J===null||typeof J!=="object")return J;if(J instanceof Date)return new Date(J.getTime());if(Array.isArray(J)){let Y=[];for(let Q=0;Q<J.length;Q++){let z=Q.toString();if(_.has(z)||_.has("*"))Y[Q]=v(J[Q],_.get(z)||_.get("*"));else Y[Q]=J[Q]}return Y}let X=Object.create(Object.getPrototypeOf(J));for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))if(_.has(Y)||_.has("*"))X[Y]=v(J[Y],_.get(Y)||_.get("*"));else X[Y]=J[Y];return X}return v($,U)}function CP($){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 U=0,v=!1,J="";for(let _=0;_<$.length;_++){let D=$[_];if((D==='"'||D==="'")&&U>0){if(!v)v=!0,J=D;else if(D===J)v=!1,J=""}else if(D==="["&&!v)U++;else if(D==="]"&&!v){if(U--,U<0)throw Error(`Invalid redaction path (${$})`)}}if(U!==0)throw Error(`Invalid redaction path (${$})`)}function fP($){if(!Array.isArray($))throw TypeError("paths must be an array");for(let U of $)CP(U)}function gP($={}){let{paths:U=[],censor:v="[REDACTED]",serialize:J=JSON.stringify,strict:_=!0,remove:D=!1}=$;fP(U);let X=xP(U);return function(Q){if(_&&(Q===null||typeof Q!=="object")){if(Q===null||Q===void 0)return J?J(Q):Q;if(typeof Q!=="object")return J?J(Q):Q}let z=IP(Q,X),N=Q,G=v;if(typeof v==="function")G=v;if(kP(z,U,G,D),J===!1)return z.restore=function(){return p9(N)},z;if(typeof J==="function")return J(z);return JSON.stringify(z)}}hN.exports=gP});var S6=r((SA,yN)=>{var hP=Symbol("pino.setLevel"),uP=Symbol("pino.getLevel"),yP=Symbol("pino.levelVal"),lP=Symbol("pino.levelComp"),iP=Symbol("pino.useLevelLabels"),mP=Symbol("pino.useOnlyCustomLevels"),cP=Symbol("pino.mixin"),nP=Symbol("pino.lsCache"),pP=Symbol("pino.chindings"),rP=Symbol("pino.asJson"),dP=Symbol("pino.write"),oP=Symbol("pino.redactFmt"),tP=Symbol("pino.time"),aP=Symbol("pino.timeSliceIndex"),eP=Symbol("pino.stream"),sP=Symbol("pino.stringify"),$F=Symbol("pino.stringifySafe"),UF=Symbol("pino.stringifiers"),_F=Symbol("pino.end"),vF=Symbol("pino.formatOpts"),JF=Symbol("pino.messageKey"),DF=Symbol("pino.errorKey"),XF=Symbol("pino.nestedKey"),YF=Symbol("pino.nestedKeyStr"),QF=Symbol("pino.mixinMergeStrategy"),zF=Symbol("pino.msgPrefix"),NF=Symbol("pino.wildcardFirst"),GF=Symbol.for("pino.serializers"),qF=Symbol.for("pino.formatters"),VF=Symbol.for("pino.hooks"),HF=Symbol.for("pino.metadata");yN.exports={setLevelSym:hP,getLevelSym:uP,levelValSym:yP,levelCompSym:lP,useLevelLabelsSym:iP,mixinSym:cP,lsCacheSym:nP,chindingsSym:pP,asJsonSym:rP,writeSym:dP,serializersSym:GF,redactFmtSym:oP,timeSym:tP,timeSliceIndexSym:aP,streamSym:eP,stringifySym:sP,stringifySafeSym:$F,stringifiersSym:UF,endSym:_F,formatOptsSym:vF,messageKeySym:JF,errorKeySym:DF,nestedKeySym:XF,wildcardFirstSym:NF,needsMetadataGsym:HF,useOnlyCustomLevelsSym:mP,formattersSym:qF,hooksSym:VF,nestedKeyStrSym:YF,mixinMergeStrategySym:QF,msgPrefixSym:zF}});var d9=r((bA,iN)=>{var lN=uN(),{redactFmtSym:WF,wildcardFirstSym:BU}=S6(),r9=/[^.[\]]+|\[([^[\]]*?)\]/g;function BF($,U){let{paths:v,censor:J,remove:_}=ZF($),D=v.reduce((Q,z)=>{r9.lastIndex=0;let N=r9.exec(z),G=r9.exec(z),W=N[1]!==void 0?N[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):N[0];if(W==="*")W=BU;if(G===null)return Q[W]=null,Q;if(Q[W]===null)return Q;let{index:q}=G,V=`${z.substr(q,z.length-1)}`;if(Q[W]=Q[W]||[],W!==BU&&Q[W].length===0)Q[W].push(...Q[BU]||[]);if(W===BU)Object.keys(Q).forEach(function(E){if(Q[E])Q[E].push(V)});return Q[W].push(V),Q},{}),X={[WF]:lN({paths:v,censor:J,serialize:U,strict:!1,remove:_})},Y=(...Q)=>{return typeof J==="function"?U(J(...Q)):U(J)};return[...Object.keys(D),...Object.getOwnPropertySymbols(D)].reduce((Q,z)=>{if(D[z]===null)Q[z]=(N)=>Y(N,[z]);else{let N=typeof J==="function"?(G,W)=>{return J(G,[z,...W])}:J;Q[z]=lN({paths:D[z],censor:N,serialize:U,strict:!1,remove:_})}return Q},X)}function ZF($){if(Array.isArray($))return $={paths:$,censor:"[Redacted]"},$;let{paths:U,censor:v="[Redacted]",remove:J}=$;if(Array.isArray(U)===!1)throw Error("pino \u2013 redact must contain an array of strings");if(J===!0)v=void 0;return{paths:U,censor:v,remove:J}}iN.exports=BF});var nN=r((kA,cN)=>{var PF=()=>"",FF=()=>`,"time":${Date.now()}`,EF=()=>`,"time":${Math.round(Date.now()/1000)}`,wF=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,LF=1000000n,mN=1000000000n,TF=BigInt(Date.now())*LF,KF=process.hrtime.bigint(),jF=()=>{let $=process.hrtime.bigint()-KF,U=TF+$,v=U/mN,J=U%mN,_=Number(v*1000n+J/1000000n),D=new Date(_),X=D.getUTCFullYear(),Y=(D.getUTCMonth()+1).toString().padStart(2,"0"),Q=D.getUTCDate().toString().padStart(2,"0"),z=D.getUTCHours().toString().padStart(2,"0"),N=D.getUTCMinutes().toString().padStart(2,"0"),G=D.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${X}-${Y}-${Q}T${z}:${N}:${G}.${J.toString().padStart(9,"0")}Z"`};cN.exports={nullTime:PF,epochTime:FF,unixTime:EF,isoTime:wF,isoTimeNano:jF}});var rN=r((MA,pN)=>{function RF($){try{return JSON.stringify($)}catch(U){return'"[Circular]"'}}pN.exports=OF;function OF($,U,v){var J=v&&v.stringify||RF,_=1;if(typeof $==="object"&&$!==null){var D=U.length+_;if(D===1)return $;var X=Array(D);X[0]=J($);for(var Y=1;Y<D;Y++)X[Y]=J(U[Y]);return X.join(" ")}if(typeof $!=="string")return $;var Q=U.length;if(Q===0)return $;var z="",N=1-_,G=-1,W=$&&$.length||0;for(var q=0;q<W;){if($.charCodeAt(q)===37&&q+1<W){switch(G=G>-1?G:0,$.charCodeAt(q+1)){case 100:case 102:if(N>=Q)break;if(U[N]==null)break;if(G<q)z+=$.slice(G,q);z+=Number(U[N]),G=q+2,q++;break;case 105:if(N>=Q)break;if(U[N]==null)break;if(G<q)z+=$.slice(G,q);z+=Math.floor(Number(U[N])),G=q+2,q++;break;case 79:case 111:case 106:if(N>=Q)break;if(U[N]===void 0)break;if(G<q)z+=$.slice(G,q);var V=typeof U[N];if(V==="string"){z+="'"+U[N]+"'",G=q+2,q++;break}if(V==="function"){z+=U[N].name||"<anonymous>",G=q+2,q++;break}z+=J(U[N]),G=q+2,q++;break;case 115:if(N>=Q)break;if(G<q)z+=$.slice(G,q);z+=String(U[N]),G=q+2,q++;break;case 37:if(G<q)z+=$.slice(G,q);z+="%",G=q+2,q++,N--;break}++N}++q}if(G===-1)return $;else if(G<W)z+=$.slice(G);return z}});var t9=r((xA,o9)=>{if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let U=function(v){if((v>0&&v<1/0)===!1){if(typeof v!=="number"&&typeof v!=="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(v))},$=new Int32Array(new SharedArrayBuffer(4));o9.exports=U}else{let $=function(U){if((U>0&&U<1/0)===!1){if(typeof U!=="number"&&typeof U!=="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 J=Date.now()+Number(U);while(J>Date.now());};o9.exports=$}});var sN=r((IA,eN)=>{var K$=H$("fs"),AF=H$("events"),SF=H$("util").inherits,dN=H$("path"),e9=t9(),bF=H$("assert"),ZU=Buffer.allocUnsafe(0),[kF,MF]=(process.versions.node||"0.0").split(".").map(Number),xF=kF>=22&&MF>=7;function oN($,U){U._opening=!0,U._writing=!0,U._asyncDrainScheduled=!1;function v(D,X){if(D){if(U._reopening=!1,U._writing=!1,U._opening=!1,U.sync)process.nextTick(()=>{if(U.listenerCount("error")>0)U.emit("error",D)});else U.emit("error",D);return}let Y=U._reopening;if(U.fd=X,U.file=$,U._reopening=!1,U._opening=!1,U._writing=!1,U.sync)process.nextTick(()=>U.emit("ready"));else U.emit("ready");if(U.destroyed)return;if(!U._writing&&U._len>U.minLength||U._flushPending)U._actualWrite();else if(Y)process.nextTick(()=>U.emit("drain"))}let J=U.append?"a":"w",_=U.mode;if(U.sync)try{if(U.mkdir)K$.mkdirSync(dN.dirname($),{recursive:!0});let D=K$.openSync($,J,_);v(null,D)}catch(D){throw v(D),D}else if(U.mkdir)K$.mkdir(dN.dirname($),{recursive:!0},(D)=>{if(D)return v(D);K$.open($,J,_,v)});else K$.open($,J,_,v)}function F4($){if(!(this instanceof F4))return new F4($);let{fd:U,dest:v,minLength:J,maxLength:_,maxWrite:D,periodicFlush:X,sync:Y,append:Q=!0,mkdir:z,retryEAGAIN:N,fsync:G,contentMode:W,mode:q}=$||{};U=U||v,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(J||0,16387),this.file=null,this.destroyed=!1,this.minLength=J||0,this.maxLength=_||0,this.maxWrite=D||16384,this._periodicFlush=X||0,this._periodicFlushTimer=void 0,this.sync=Y||!1,this.writable=!0,this._fsync=G||!1,this.append=Q||!1,this.mode=q,this.retryEAGAIN=N||(()=>!0),this.mkdir=z||!1;let V,E;if(W==="buffer")this._writingBuf=ZU,this.write=fF,this.flush=hF,this.flushSync=yF,this._actualWrite=iF,V=()=>K$.writeSync(this.fd,this._writingBuf),E=()=>K$.write(this.fd,this._writingBuf,this.release);else if(W===void 0||W==="utf8")this._writingBuf="",this.write=CF,this.flush=gF,this.flushSync=uF,this._actualWrite=lF,V=()=>K$.writeSync(this.fd,this._writingBuf,"utf8"),E=()=>K$.write(this.fd,this._writingBuf,"utf8",this.release);else throw Error(`SonicBoom supports "utf8" and "buffer", but passed ${W}`);if(typeof U==="number")this.fd=U,process.nextTick(()=>this.emit("ready"));else if(typeof U==="string")oN(U,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=(T,S)=>{if(T){if((T.code==="EAGAIN"||T.code==="EBUSY")&&this.retryEAGAIN(T,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{e9(100),this.release(void 0,0)}catch(h){this.release(h)}else setTimeout(E,100);else this._writing=!1,this.emit("error",T);return}this.emit("write",S);let C=a9(this._writingBuf,this._len,S);if(this._len=C.len,this._writingBuf=C.writingBuf,this._writingBuf.length){if(!this.sync){E();return}try{do{let h=V(),p=a9(this._writingBuf,this._len,h);this._len=p.len,this._writingBuf=p.writingBuf}while(this._writingBuf.length)}catch(h){this.release(h);return}}if(this._fsync)K$.fsyncSync(this.fd);let M=this._len;if(this._reopening)this._writing=!1,this._reopening=!1,this.reopen();else if(M>this.minLength)this._actualWrite();else if(this._ending)if(M>0)this._actualWrite();else this._writing=!1,PU(this);else if(this._writing=!1,this.sync){if(!this._asyncDrainScheduled)this._asyncDrainScheduled=!0,process.nextTick(IF,this)}else this.emit("drain")},this.on("newListener",function(T){if(T==="drain")this._asyncDrainScheduled=!1}),this._periodicFlush!==0)this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref()}function a9($,U,v){if(typeof $==="string"&&Buffer.byteLength($)!==v)v=Buffer.from($).subarray(0,v).toString().length;return U=Math.max(U-v,0),$=$.slice(v),{writingBuf:$,len:U}}function IF($){if(!($.listenerCount("drain")>0))return;$._asyncDrainScheduled=!1,$.emit("drain")}SF(F4,AF);function tN($,U){if($.length===0)return ZU;if($.length===1)return $[0];return Buffer.concat($,U)}function CF($){if(this.destroyed)throw Error("SonicBoom destroyed");let U=this._len+$.length,v=this._bufs;if(this.maxLength&&U>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(v.length===0||v[v.length-1].length+$.length>this.maxWrite)v.push(""+$);else v[v.length-1]+=$;if(this._len=U,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function fF($){if(this.destroyed)throw Error("SonicBoom destroyed");let U=this._len+$.length,v=this._bufs,J=this._lens;if(this.maxLength&&U>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(v.length===0||J[J.length-1]+$.length>this.maxWrite)v.push([$]),J.push($.length);else v[v.length-1].push($),J[J.length-1]+=$.length;if(this._len=U,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function aN($){this._flushPending=!0;let U=()=>{if(!this._fsync)try{K$.fsync(this.fd,(J)=>{this._flushPending=!1,$(J)})}catch(J){$(J)}else this._flushPending=!1,$();this.off("error",v)},v=(J)=>{this._flushPending=!1,$(J),this.off("drain",U)};this.once("drain",U),this.once("error",v)}function gF($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let U=Error("SonicBoom destroyed");if($){$(U);return}throw U}if(this.minLength<=0){$?.();return}if($)aN.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push("");this._actualWrite()}function hF($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let U=Error("SonicBoom destroyed");if($){$(U);return}throw U}if(this.minLength<=0){$?.();return}if($)aN.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push([]),this._lens.push(0);this._actualWrite()}F4.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 U=this.fd;this.once("ready",()=>{if(U!==this.fd)K$.close(U,(v)=>{if(v)return this.emit("error",v)})}),oN(this.file,this)};F4.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 PU(this)};function uF(){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||$){if($.length<=0)$=this._bufs[0];try{let U=K$.writeSync(this.fd,$,"utf8"),v=a9($,this._len,U);if($=v.writingBuf,this._len=v.len,$.length<=0)this._bufs.shift()}catch(U){if((U.code==="EAGAIN"||U.code==="EBUSY")&&!this.retryEAGAIN(U,$.length,this._len-$.length))throw U;e9(100)}}try{K$.fsyncSync(this.fd)}catch{}}function yF(){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=ZU;let $=ZU;while(this._bufs.length||$.length){if($.length<=0)$=tN(this._bufs[0],this._lens[0]);try{let U=K$.writeSync(this.fd,$);if($=$.subarray(U),this._len=Math.max(this._len-U,0),$.length<=0)this._bufs.shift(),this._lens.shift()}catch(U){if((U.code==="EAGAIN"||U.code==="EBUSY")&&!this.retryEAGAIN(U,$.length,this._len-$.length))throw U;e9(100)}}}F4.prototype.destroy=function(){if(this.destroyed)return;PU(this)};function lF(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf||this._bufs.shift()||"",this.sync)try{let U=K$.writeSync(this.fd,this._writingBuf,"utf8");$(null,U)}catch(U){$(U)}else K$.write(this.fd,this._writingBuf,"utf8",$)}function iF(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:tN(this._bufs.shift(),this._lens.shift()),this.sync)try{let U=K$.writeSync(this.fd,this._writingBuf);$(null,U)}catch(U){$(U)}else{if(xF)this._writingBuf=Buffer.from(this._writingBuf);K$.write(this.fd,this._writingBuf,$)}}function PU($){if($.fd===-1){$.once("ready",PU.bind(null,$));return}if($._periodicFlushTimer!==void 0)clearInterval($._periodicFlushTimer);$.destroyed=!0,$._bufs=[],$._lens=[],bF(typeof $.fd==="number",`sonic.fd must be a number, got ${typeof $.fd}`);try{K$.fsync($.fd,U)}catch{}function U(){if($.fd!==1&&$.fd!==2)K$.close($.fd,v);else v()}function v(J){if(J){$.emit("error",J);return}if($._ending&&!$._writing)$.emit("finish");$.emit("close")}}F4.SonicBoom=F4;F4.default=F4;eN.exports=F4});var s9=r((CA,JG)=>{var E4={exit:[],beforeExit:[]},$G={exit:nF,beforeExit:pF},b6;function mF(){if(b6===void 0)b6=new FinalizationRegistry(rF)}function cF($){if(E4[$].length>0)return;process.on($,$G[$])}function UG($){if(E4[$].length>0)return;if(process.removeListener($,$G[$]),E4.exit.length===0&&E4.beforeExit.length===0)b6=void 0}function nF(){_G("exit")}function pF(){_G("beforeExit")}function _G($){for(let U of E4[$]){let v=U.deref(),J=U.fn;if(v!==void 0)J(v,$)}E4[$]=[]}function rF($){for(let U of["exit","beforeExit"]){let v=E4[U].indexOf($);E4[U].splice(v,v+1),UG(U)}}function vG($,U,v){if(U===void 0)throw Error("the object can't be undefined");cF($);let J=new WeakRef(U);J.fn=v,mF(),b6.register(U,J),E4[$].push(J)}function dF($,U){vG("exit",$,U)}function oF($,U){vG("beforeExit",$,U)}function tF($){if(b6===void 0)return;b6.unregister($);for(let U of["exit","beforeExit"])E4[U]=E4[U].filter((v)=>{let J=v.deref();return J&&J!==$}),UG(U)}JG.exports={register:dF,registerBeforeExit:oF,unregister:tF}});var DG=r((fA,aF)=>{aF.exports={name:"thread-stream",version:"3.1.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^20.1.0","@types/tap":"^15.0.0","@yao-pkg/pkg":"^5.11.5",desm:"^1.3.0",fastbench:"^1.0.1",husky:"^9.0.6","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1",standard:"^17.0.0",tap:"^16.2.0","ts-node":"^10.8.0",typescript:"^5.3.2","why-is-node-running":"^2.2.2"},scripts:{build:"tsc --noEmit",test:'standard && npm run build && npm run transpile && tap "test/**/*.test.*js" && tap --ts test/*.test.*ts',"test:ci":"standard && npm run transpile && npm run test:ci:js && npm run test:ci:ts","test:ci:js":'tap --no-check-coverage --timeout=120 --coverage-report=lcovonly "test/**/*.test.*js"',"test:ci:ts":'tap --ts --no-check-coverage --coverage-report=lcovonly "test/**/*.test.*ts"',"test:yarn":'npm run transpile && tap "test/**/*.test.js" --no-check-coverage',transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},standard:{ignore:["test/ts/**/*","test/syntax-error.mjs"]},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 YG=r((gA,XG)=>{function eF($,U,v,J,_){let D=Date.now()+J,X=Atomics.load($,U);if(X===v){_(null,"ok");return}let Y=X,Q=(z)=>{if(Date.now()>D)_(null,"timed-out");else setTimeout(()=>{if(Y=X,X=Atomics.load($,U),X===Y)Q(z>=1000?1000:z*2);else if(X===v)_(null,"ok");else _(null,"not-equal")},z)};Q(1)}function sF($,U,v,J,_){let D=Date.now()+J,X=Atomics.load($,U);if(X!==v){_(null,"ok");return}let Y=(Q)=>{if(Date.now()>D)_(null,"timed-out");else setTimeout(()=>{if(X=Atomics.load($,U),X!==v)_(null,"ok");else Y(Q>=1000?1000:Q*2)},Q)};Y(1)}XG.exports={wait:eF,waitDiff:sF}});var zG=r((hA,QG)=>{QG.exports={WRITE_INDEX:4,READ_INDEX:8}});var WG=r((uA,HG)=>{var __dirname="/Users/luis/Dev/filipelabs/ravi.bot/node_modules/thread-stream",{version:$E}=DG(),{EventEmitter:UE}=H$("events"),{Worker:_E}=H$("worker_threads"),{join:vE}=H$("path"),{pathToFileURL:JE}=H$("url"),{wait:DE}=YG(),{WRITE_INDEX:a$,READ_INDEX:x4}=zG(),XE=H$("buffer"),YE=H$("assert"),L=Symbol("kImpl"),QE=XE.constants.MAX_STRING_LENGTH;class EU{constructor($){this._value=$}deref(){return this._value}}class UD{register(){}unregister(){}}var zE=process.env.NODE_V8_COVERAGE?UD:global.FinalizationRegistry||UD,NE=process.env.NODE_V8_COVERAGE?EU:global.WeakRef||EU,NG=new zE(($)=>{if($.exited)return;$.terminate()});function GE($,U){let{filename:v,workerData:J}=U,D=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||vE(__dirname,"lib","worker.js"),X=new _E(D,{...U.workerOpts,trackUnmanagedFds:!1,workerData:{filename:v.indexOf("file://")===0?v:JE(v).href,dataBuf:$[L].dataBuf,stateBuf:$[L].stateBuf,workerData:{$context:{threadStreamVersion:$E},...J}}});return X.stream=new EU($),X.on("message",qE),X.on("exit",qG),NG.register($,X),X}function GG($){if(YE(!$[L].sync),$[L].needDrain)$[L].needDrain=!1,$.emit("drain")}function FU($){let U=Atomics.load($[L].state,a$),v=$[L].data.length-U;if(v>0){if($[L].buf.length===0){if($[L].flushing=!1,$[L].ending)JD($);else if($[L].needDrain)process.nextTick(GG,$);return}let J=$[L].buf.slice(0,v),_=Buffer.byteLength(J);if(_<=v)$[L].buf=$[L].buf.slice(v),wU($,J,FU.bind(null,$));else $.flush(()=>{if($.destroyed)return;Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0);while(_>$[L].data.length)v=v/2,J=$[L].buf.slice(0,v),_=Buffer.byteLength(J);$[L].buf=$[L].buf.slice(v),wU($,J,FU.bind(null,$))})}else if(v===0){if(U===0&&$[L].buf.length===0)return;$.flush(()=>{Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0),FU($)})}else I4($,Error("overwritten"))}function qE($){let U=this.stream.deref();if(U===void 0){this.exited=!0,this.terminate();return}switch($.code){case"READY":this.stream=new NE(U),U.flush(()=>{U[L].ready=!0,U.emit("ready")});break;case"ERROR":I4(U,$.err);break;case"EVENT":if(Array.isArray($.args))U.emit($.name,...$.args);else U.emit($.name,$.args);break;case"WARNING":process.emitWarning($.err);break;default:I4(U,Error("this should not happen: "+$.code))}}function qG($){let U=this.stream.deref();if(U===void 0)return;NG.unregister(U),U.worker.exited=!0,U.worker.off("exit",qG),I4(U,$!==0?Error("the worker thread exited"):null)}class VG extends UE{constructor($={}){super();if($.bufferSize<4)throw Error("bufferSize must at least fit a 4-byte utf-8 char");this[L]={},this[L].stateBuf=new SharedArrayBuffer(128),this[L].state=new Int32Array(this[L].stateBuf),this[L].dataBuf=new SharedArrayBuffer($.bufferSize||4194304),this[L].data=Buffer.from(this[L].dataBuf),this[L].sync=$.sync||!1,this[L].ending=!1,this[L].ended=!1,this[L].needDrain=!1,this[L].destroyed=!1,this[L].flushing=!1,this[L].ready=!1,this[L].finished=!1,this[L].errored=null,this[L].closed=!1,this[L].buf="",this.worker=GE(this,$),this.on("message",(U,v)=>{this.worker.postMessage(U,v)})}write($){if(this[L].destroyed)return _D(this,Error("the worker has exited")),!1;if(this[L].ending)return _D(this,Error("the worker is ending")),!1;if(this[L].flushing&&this[L].buf.length+$.length>=QE)try{$D(this),this[L].flushing=!0}catch(U){return I4(this,U),!1}if(this[L].buf+=$,this[L].sync)try{return $D(this),!0}catch(U){return I4(this,U),!1}if(!this[L].flushing)this[L].flushing=!0,setImmediate(FU,this);return this[L].needDrain=this[L].data.length-this[L].buf.length-Atomics.load(this[L].state,a$)<=0,!this[L].needDrain}end(){if(this[L].destroyed)return;this[L].ending=!0,JD(this)}flush($){if(this[L].destroyed){if(typeof $==="function")process.nextTick($,Error("the worker has exited"));return}let U=Atomics.load(this[L].state,a$);DE(this[L].state,x4,U,1/0,(v,J)=>{if(v){I4(this,v),process.nextTick($,v);return}if(J==="not-equal"){this.flush($);return}process.nextTick($)})}flushSync(){if(this[L].destroyed)return;$D(this),vD(this)}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[L].ready}get destroyed(){return this[L].destroyed}get closed(){return this[L].closed}get writable(){return!this[L].destroyed&&!this[L].ending}get writableEnded(){return this[L].ending}get writableFinished(){return this[L].finished}get writableNeedDrain(){return this[L].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[L].errored}}function _D($,U){setImmediate(()=>{$.emit("error",U)})}function I4($,U){if($[L].destroyed)return;if($[L].destroyed=!0,U)$[L].errored=U,_D($,U);if(!$.worker.exited)$.worker.terminate().catch(()=>{}).then(()=>{$[L].closed=!0,$.emit("close")});else setImmediate(()=>{$[L].closed=!0,$.emit("close")})}function wU($,U,v){let J=Atomics.load($[L].state,a$),_=Buffer.byteLength(U);return $[L].data.write(U,J),Atomics.store($[L].state,a$,J+_),Atomics.notify($[L].state,a$),v(),!0}function JD($){if($[L].ended||!$[L].ending||$[L].flushing)return;$[L].ended=!0;try{$.flushSync();let U=Atomics.load($[L].state,x4);Atomics.store($[L].state,a$,-1),Atomics.notify($[L].state,a$);let v=0;while(U!==-1){if(Atomics.wait($[L].state,x4,U,1000),U=Atomics.load($[L].state,x4),U===-2){I4($,Error("end() failed"));return}if(++v===10){I4($,Error("end() took too long (10s)"));return}}process.nextTick(()=>{$[L].finished=!0,$.emit("finish")})}catch(U){I4($,U)}}function $D($){let U=()=>{if($[L].ending)JD($);else if($[L].needDrain)process.nextTick(GG,$)};$[L].flushing=!1;while($[L].buf.length!==0){let v=Atomics.load($[L].state,a$),J=$[L].data.length-v;if(J===0){vD($),Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0);continue}else if(J<0)throw Error("overwritten");let _=$[L].buf.slice(0,J),D=Buffer.byteLength(_);if(D<=J)$[L].buf=$[L].buf.slice(J),wU($,_,U);else{vD($),Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0);while(D>$[L].buf.length)J=J/2,_=$[L].buf.slice(0,J),D=Buffer.byteLength(_);$[L].buf=$[L].buf.slice(J),wU($,_,U)}}}function vD($){if($[L].flushing)throw Error("unable to flush while flushing");let U=Atomics.load($[L].state,a$),v=0;while(!0){let J=Atomics.load($[L].state,x4);if(J===-2)throw Error("_flushSync failed");if(J!==U)Atomics.wait($[L].state,x4,J,1000);else break;if(++v===10)throw Error("_flushSync took too long (10s)")}}HG.exports=VG});var YD=r((yA,BG)=>{var __dirname="/Users/luis/Dev/filipelabs/ravi.bot/node_modules/pino/lib",{createRequire:VE}=H$("module"),HE=n9(),{join:DD,isAbsolute:WE,sep:BE}=H$("path"),ZE=t9(),XD=s9(),PE=WG();function FE($){XD.register($,wE),XD.registerBeforeExit($,LE),$.on("close",function(){XD.unregister($)})}function EE($,U,v,J){let _=new PE({filename:$,workerData:U,workerOpts:v,sync:J});_.on("ready",D),_.on("close",function(){process.removeListener("exit",X)}),process.on("exit",X);function D(){if(process.removeListener("exit",X),_.unref(),v.autoEnd!==!1)FE(_)}function X(){if(_.closed)return;_.flushSync(),ZE(100),_.end()}return _}function wE($){$.ref(),$.flushSync(),$.end(),$.once("close",function(){$.unref()})}function LE($){$.flushSync()}function TE($){let{pipeline:U,targets:v,levels:J,dedupe:_,worker:D={},caller:X=HE(),sync:Y=!1}=$,Q={...$.options},z=typeof X==="string"?[X]:X,N="__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{},G=$.target;if(G&&v)throw Error("only one of target or targets can be specified");if(v)G=N["pino-worker"]||DD(__dirname,"worker.js"),Q.targets=v.filter((q)=>q.target).map((q)=>{return{...q,target:W(q.target)}}),Q.pipelines=v.filter((q)=>q.pipeline).map((q)=>{return q.pipeline.map((V)=>{return{...V,level:q.level,target:W(V.target)}})});else if(U)G=N["pino-worker"]||DD(__dirname,"worker.js"),Q.pipelines=[U.map((q)=>{return{...q,target:W(q.target)}})];if(J)Q.levels=J;if(_)Q.dedupe=_;return Q.pinoWillSendConfig=!0,EE(W(G),Q,D,Y);function W(q){if(q=N[q]||q,WE(q)||q.indexOf("file://")===0)return q;if(q==="pino/file")return DD(__dirname,"..","file.js");let V;for(let E of z)try{let T=E==="node:repl"?process.cwd()+BE:E;V=VE(T).resolve(q);break}catch(T){continue}if(!V)throw Error(`unable to determine transport target for "${q}"`);return V}}BG.exports=TE});var jU=r((lA,SG)=>{var ZG=H$("diagnostics_channel"),PG=rN(),{mapHttpRequest:KE,mapHttpResponse:jE}=c9(),zD=sN(),FG=s9(),{lsCacheSym:RE,chindingsSym:TG,writeSym:EG,serializersSym:KG,formatOptsSym:wG,endSym:OE,stringifiersSym:jG,stringifySym:RG,stringifySafeSym:ND,wildcardFirstSym:OG,nestedKeySym:AE,formattersSym:AG,messageKeySym:SE,errorKeySym:bE,nestedKeyStrSym:kE,msgPrefixSym:LU}=S6(),{isMainThread:ME}=H$("worker_threads"),xE=YD(),KU;if(typeof ZG.tracingChannel==="function")KU=ZG.tracingChannel("pino_asJson");else KU={hasSubscribers:!1,traceSync($,U,v,...J){return $.call(v,...J)}};function k6(){}function IE($,U){if(!U)return v;return function(..._){U.call(this,_,v,$)};function v(J,..._){if(typeof J==="object"){let D=J;if(J!==null){if(J.method&&J.headers&&J.socket)J=KE(J);else if(typeof J.setHeader==="function")J=jE(J)}let X;if(D===null&&_.length===0)X=[null];else D=_.shift(),X=_;if(typeof this[LU]==="string"&&D!==void 0&&D!==null)D=this[LU]+D;this[EG](J,PG(D,X,this[wG]),$)}else{let D=J===void 0?_.shift():J;if(typeof this[LU]==="string"&&D!==void 0&&D!==null)D=this[LU]+D;this[EG](null,PG(D,_,this[wG]),$)}}}function QD($){let U="",v=0,J=!1,_=255,D=$.length;if(D>100)return JSON.stringify($);for(var X=0;X<D&&_>=32;X++)if(_=$.charCodeAt(X),_===34||_===92)U+=$.slice(v,X)+"\\",v=X,J=!0;if(!J)U=$;else U+=$.slice(v);return _<32?JSON.stringify($):'"'+U+'"'}function CE($,U,v,J){if(KU.hasSubscribers===!1)return LG.call(this,$,U,v,J);let _={instance:this,arguments};return KU.traceSync(LG,_,this,$,U,v,J)}function LG($,U,v,J){let _=this[RG],D=this[ND],X=this[jG],Y=this[OE],Q=this[TG],z=this[KG],N=this[AG],G=this[SE],W=this[bE],q=this[RE][v]+J;q=q+Q;let V;if(N.log)$=N.log($);let E=X[OG],T="";for(let C in $)if(V=$[C],Object.prototype.hasOwnProperty.call($,C)&&V!==void 0){if(z[C])V=z[C](V);else if(C===W&&z.err)V=z.err(V);let M=X[C]||E;switch(typeof V){case"undefined":case"function":continue;case"number":if(Number.isFinite(V)===!1)V=null;case"boolean":if(M)V=M(V);break;case"string":V=(M||QD)(V);break;default:V=(M||_)(V,D)}if(V===void 0)continue;let h=QD(C);T+=","+h+":"+V}let S="";if(U!==void 0){V=z[G]?z[G](U):U;let C=X[G]||E;switch(typeof V){case"function":break;case"number":if(Number.isFinite(V)===!1)V=null;case"boolean":if(C)V=C(V);S=',"'+G+'":'+V;break;case"string":V=(C||QD)(V),S=',"'+G+'":'+V;break;default:V=(C||_)(V,D),S=',"'+G+'":'+V}}if(this[AE]&&T)return q+this[kE]+T.slice(1)+"}"+S+Y;else return q+T+S+Y}function fE($,U){let v,J=$[TG],_=$[RG],D=$[ND],X=$[jG],Y=X[OG],Q=$[KG],z=$[AG].bindings;U=z(U);for(let N in U)if(v=U[N],((N.length<5||N!=="level"&&N!=="serializers"&&N!=="formatters"&&N!=="customLevels")&&U.hasOwnProperty(N)&&v!==void 0)===!0){if(v=Q[N]?Q[N](v):v,v=(X[N]||Y||_)(v,D),v===void 0)continue;J+=',"'+N+'":'+v}return J}function gE($){return $.write!==$.constructor.prototype.write}function TU($){let U=new zD($);if(U.on("error",v),!$.sync&&ME)FG.register(U,hE),U.on("close",function(){FG.unregister(U)});return U;function v(J){if(J.code==="EPIPE"){U.write=k6,U.end=k6,U.flushSync=k6,U.destroy=k6;return}U.removeListener("error",v),U.emit("error",J)}}function hE($,U){if($.destroyed)return;if(U==="beforeExit")$.flush(),$.on("drain",function(){$.end()});else $.flushSync()}function uE($){return function(v,J,_={},D){if(typeof _==="string")D=TU({dest:_}),_={};else if(typeof D==="string"){if(_&&_.transport)throw Error("only one of option.transport or stream can be specified");D=TU({dest:D})}else if(_ instanceof zD||_.writable||_._writableState)D=_,_={};else if(_.transport){if(_.transport instanceof zD||_.transport.writable||_.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(_.transport.targets&&_.transport.targets.length&&_.formatters&&typeof _.formatters.level==="function")throw Error("option.transport.targets do not allow custom level formatters");let Q;if(_.customLevels)Q=_.useOnlyCustomLevels?_.customLevels:Object.assign({},_.levels,_.customLevels);D=xE({caller:J,..._.transport,levels:Q})}if(_=Object.assign({},$,_),_.serializers=Object.assign({},$.serializers,_.serializers),_.formatters=Object.assign({},$.formatters,_.formatters),_.prettyPrint)throw Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:X,onChild:Y}=_;if(X===!1)_.level="silent";if(!Y)_.onChild=k6;if(!D)if(!gE(process.stdout))D=TU({fd:process.stdout.fd||1});else D=process.stdout;return{opts:_,stream:D}}}function yE($,U){try{return JSON.stringify($)}catch(v){try{return(U||this[ND])($)}catch(J){return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function lE($,U,v){return{level:$,bindings:U,log:v}}function iE($){let U=Number($);if(typeof $==="string"&&Number.isFinite(U))return U;if($===void 0)return 1;return $}SG.exports={noop:k6,buildSafeSonicBoom:TU,asChindings:fE,asJson:CE,genLog:IE,createArgsNormalizer:uE,stringify:yE,buildFormatters:lE,normalizeDestFileDescriptor:iE}});var RU=r((iA,bG)=>{var mE={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},cE={ASC:"ASC",DESC:"DESC"};bG.exports={DEFAULT_LEVELS:mE,SORTING_ORDER:cE}});var VD=r((mA,IG)=>{var{lsCacheSym:nE,levelValSym:GD,useOnlyCustomLevelsSym:pE,streamSym:rE,formattersSym:dE,hooksSym:oE,levelCompSym:kG}=S6(),{noop:tE,genLog:K1}=jU(),{DEFAULT_LEVELS:C4,SORTING_ORDER:MG}=RU(),xG={fatal:($)=>{let U=K1(C4.fatal,$);return function(...v){let J=this[rE];if(U.call(this,...v),typeof J.flushSync==="function")try{J.flushSync()}catch(_){}}},error:($)=>K1(C4.error,$),warn:($)=>K1(C4.warn,$),info:($)=>K1(C4.info,$),debug:($)=>K1(C4.debug,$),trace:($)=>K1(C4.trace,$)},qD=Object.keys(C4).reduce(($,U)=>{return $[C4[U]]=U,$},{}),aE=Object.keys(qD).reduce(($,U)=>{return $[U]='{"level":'+Number(U),$},{});function eE($){let U=$[dE].level,{labels:v}=$.levels,J={};for(let _ in v){let D=U(v[_],Number(_));J[_]=JSON.stringify(D).slice(0,-1)}return $[nE]=J,$}function sE($,U){if(U)return!1;switch($){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function $w($){let{labels:U,values:v}=this.levels;if(typeof $==="number"){if(U[$]===void 0)throw Error("unknown level value"+$);$=U[$]}if(v[$]===void 0)throw Error("unknown level "+$);let J=this[GD],_=this[GD]=v[$],D=this[pE],X=this[kG],Y=this[oE].logMethod;for(let Q in v){if(X(v[Q],_)===!1){this[Q]=tE;continue}this[Q]=sE(Q,D)?xG[Q](Y):K1(v[Q],Y)}this.emit("level-change",$,_,U[J],J,this)}function Uw($){let{levels:U,levelVal:v}=this;return U&&U.labels?U.labels[v]:""}function _w($){let{values:U}=this.levels,v=U[$];return v!==void 0&&this[kG](v,this[GD])}function vw($,U,v){if($===MG.DESC)return U<=v;return U>=v}function Jw($){if(typeof $==="string")return vw.bind(null,$);return $}function Dw($=null,U=!1){let v=$?Object.keys($).reduce((D,X)=>{return D[$[X]]=X,D},{}):null,J=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),U?null:qD,v),_=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),U?null:C4,$);return{labels:J,values:_}}function Xw($,U,v){if(typeof $==="number"){if(![].concat(Object.keys(U||{}).map((D)=>U[D]),v?[]:Object.keys(qD).map((D)=>+D),1/0).includes($))throw Error(`default level:${$} must be included in custom levels`);return}let J=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),v?null:C4,U);if(!($ in J))throw Error(`default level:${$} must be included in custom levels`)}function Yw($,U){let{labels:v,values:J}=$;for(let _ in U){if(_ in J)throw Error("levels cannot be overridden");if(U[_]in v)throw Error("pre-existing level values cannot be used for new levels")}}function Qw($){if(typeof $==="function")return;if(typeof $==="string"&&Object.values(MG).includes($))return;throw Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}IG.exports={initialLsCache:aE,genLsCache:eE,levelMethods:xG,getLevel:Uw,setLevel:$w,isLevelEnabled:_w,mappings:Dw,assertNoLevelCollisions:Yw,assertDefaultLevelFound:Xw,genLevelComparison:Jw,assertLevelComparison:Qw}});var HD=r((cA,CG)=>{CG.exports={version:"9.14.0"}});var mG=r((nA,iG)=>{var{EventEmitter:zw}=H$("events"),{lsCacheSym:Nw,levelValSym:Gw,setLevelSym:AU,getLevelSym:fG,chindingsSym:SU,parsedChindingsSym:qw,mixinSym:Vw,asJsonSym:hG,writeSym:Hw,mixinMergeStrategySym:Ww,timeSym:Bw,timeSliceIndexSym:Zw,streamSym:uG,serializersSym:j1,formattersSym:c2,errorKeySym:Pw,messageKeySym:Fw,useOnlyCustomLevelsSym:Ew,needsMetadataGsym:ww,redactFmtSym:Lw,stringifySym:Tw,formatOptsSym:Kw,stringifiersSym:jw,msgPrefixSym:BD,hooksSym:Rw}=S6(),{getLevel:Ow,setLevel:Aw,isLevelEnabled:Sw,mappings:bw,initialLsCache:kw,genLsCache:Mw,assertNoLevelCollisions:xw}=VD(),{asChindings:ZD,asJson:Iw,buildFormatters:WD,stringify:gG,noop:yG}=jU(),{version:Cw}=HD(),fw=d9(),gw=class{},lG={constructor:gw,child:hw,bindings:uw,setBindings:yw,flush:mw,isLevelEnabled:Sw,version:Cw,get level(){return this[fG]()},set level($){this[AU]($)},get levelVal(){return this[Gw]},set levelVal($){throw Error("levelVal is read-only")},get msgPrefix(){return this[BD]},get[Symbol.toStringTag](){return"Pino"},[Nw]:kw,[Hw]:iw,[hG]:Iw,[fG]:Ow,[AU]:Aw};Object.setPrototypeOf(lG,zw.prototype);iG.exports=function(){return Object.create(lG)};var OU=($)=>$;function hw($,U){if(!$)throw Error("missing bindings for child Pino");let v=this[j1],J=this[c2],_=Object.create(this);if(U==null){if(_[c2].bindings!==OU)_[c2]=WD(J.level,OU,J.log);if(_[SU]=ZD(_,$),_[AU](this.level),this.onChild!==yG)this.onChild(_);return _}if(U.hasOwnProperty("serializers")===!0){_[j1]=Object.create(null);for(let N in v)_[j1][N]=v[N];let Q=Object.getOwnPropertySymbols(v);for(var D=0;D<Q.length;D++){let N=Q[D];_[j1][N]=v[N]}for(let N in U.serializers)_[j1][N]=U.serializers[N];let z=Object.getOwnPropertySymbols(U.serializers);for(var X=0;X<z.length;X++){let N=z[X];_[j1][N]=U.serializers[N]}}else _[j1]=v;if(U.hasOwnProperty("formatters")){let{level:Q,bindings:z,log:N}=U.formatters;_[c2]=WD(Q||J.level,z||OU,N||J.log)}else _[c2]=WD(J.level,OU,J.log);if(U.hasOwnProperty("customLevels")===!0)xw(this.levels,U.customLevels),_.levels=bw(U.customLevels,_[Ew]),Mw(_);if(typeof U.redact==="object"&&U.redact!==null||Array.isArray(U.redact)){_.redact=U.redact;let Q=fw(_.redact,gG),z={stringify:Q[Lw]};_[Tw]=gG,_[jw]=Q,_[Kw]=z}if(typeof U.msgPrefix==="string")_[BD]=(this[BD]||"")+U.msgPrefix;_[SU]=ZD(_,$);let Y=U.level||this.level;return _[AU](Y),this.onChild(_),_}function uw(){let U=`{${this[SU].substr(1)}}`,v=JSON.parse(U);return delete v.pid,delete v.hostname,v}function yw($){let U=ZD(this,$);this[SU]=U,delete this[qw]}function lw($,U){return Object.assign(U,$)}function iw($,U,v){let J=this[Bw](),_=this[Vw],D=this[Pw],X=this[Fw],Y=this[Ww]||lw,Q,z=this[Rw].streamWrite;if($===void 0||$===null)Q={};else if($ instanceof Error){if(Q={[D]:$},U===void 0)U=$.message}else if(Q=$,U===void 0&&$[X]===void 0&&$[D])U=$[D].message;if(_)Q=Y(Q,_(Q,v,this));let N=this[hG](Q,U,v,J),G=this[uG];if(G[ww]===!0)G.lastLevel=v,G.lastObj=Q,G.lastMsg=U,G.lastTime=J.slice(this[Zw]),G.lastLogger=this;G.write(z?z(N):N)}function mw($){if($!=null&&typeof $!=="function")throw Error("callback must be a function");let U=this[uG];if(typeof U.flush==="function")U.flush($||yG);else if($)$()}});var rG=r((pA,pG)=>{var{hasOwnProperty:n2}=Object.prototype,O1=ED();O1.configure=ED;O1.stringify=O1;O1.default=O1;pA.stringify=O1;pA.configure=ED;pG.exports=O1;var cw=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function v1($){if($.length<5000&&!cw.test($))return`"${$}"`;return JSON.stringify($)}function PD($,U){if($.length>200||U)return $.sort(U);for(let v=1;v<$.length;v++){let J=$[v],_=v;while(_!==0&&$[_-1]>J)$[_]=$[_-1],_--;$[_]=J}return $}var nw=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function FD($){return nw.call($)!==void 0&&$.length!==0}function cG($,U,v){if($.length<v)v=$.length;let J=U===","?"":" ",_=`"0":${J}${$[0]}`;for(let D=1;D<v;D++)_+=`${U}"${D}":${J}${$[D]}`;return _}function pw($){if(n2.call($,"circularValue")){let U=$.circularValue;if(typeof U==="string")return`"${U}"`;if(U==null)return U;if(U===Error||U===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 rw($){let U;if(n2.call($,"deterministic")){if(U=$.deterministic,typeof U!=="boolean"&&typeof U!=="function")throw TypeError('The "deterministic" argument must be of type boolean or comparator function')}return U===void 0?!0:U}function dw($,U){let v;if(n2.call($,U)){if(v=$[U],typeof v!=="boolean")throw TypeError(`The "${U}" argument must be of type boolean`)}return v===void 0?!0:v}function nG($,U){let v;if(n2.call($,U)){if(v=$[U],typeof v!=="number")throw TypeError(`The "${U}" argument must be of type number`);if(!Number.isInteger(v))throw TypeError(`The "${U}" argument must be an integer`);if(v<1)throw RangeError(`The "${U}" argument must be >= 1`)}return v===void 0?1/0:v}function R1($){if($===1)return"1 item";return`${$} items`}function ow($){let U=new Set;for(let v of $)if(typeof v==="string"||typeof v==="number")U.add(String(v));return U}function tw($){if(n2.call($,"strict")){let U=$.strict;if(typeof U!=="boolean")throw TypeError('The "strict" argument must be of type boolean');if(U)return(v)=>{let J=`Object can not safely be stringified. Received type ${typeof v}`;if(typeof v!=="function")J+=` (${v.toString()})`;throw Error(J)}}}function ED($){$={...$};let U=tw($);if(U){if($.bigint===void 0)$.bigint=!1;if(!("circularValue"in $))$.circularValue=Error}let v=pw($),J=dw($,"bigint"),_=rw($),D=typeof _==="function"?_:void 0,X=nG($,"maximumDepth"),Y=nG($,"maximumBreadth");function Q(q,V,E,T,S,C){let M=V[q];if(typeof M==="object"&&M!==null&&typeof M.toJSON==="function")M=M.toJSON(q);switch(M=T.call(V,q,M),typeof M){case"string":return v1(M);case"object":{if(M===null)return"null";if(E.indexOf(M)!==-1)return v;let h="",p=",",J$=C;if(Array.isArray(M)){if(M.length===0)return"[]";if(X<E.length+1)return'"[Array]"';if(E.push(M),S!=="")C+=S,h+=`
206
+ caused by: `+HN(J,U);else return v},HP=($)=>HN($,new Set),WN=($,U,v)=>{if(!m2($))return"";let J=v?"":$.message||"";if(U.has($))return J+": ...";let _=C9($);if(_){U.add($);let D=typeof $.cause==="function";return J+(D?"":": ")+WN(_,U,D)}else return J},WP=($)=>WN($,new Set);BN.exports={isErrorLike:m2,getErrorCause:C9,stackWithCauses:HP,messageWithCauses:WP}});var g9=r((EA,PN)=>{var BP=Symbol("circular-ref-tag"),NU=Symbol("pino-raw-err-ref"),ZN=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[NU]},set:function($){this[NU]=$}}});Object.defineProperty(ZN,NU,{writable:!0,value:{}});PN.exports={pinoErrProto:ZN,pinoErrorSymbols:{seen:BP,rawSymbol:NU}}});var wN=r((wA,EN)=>{EN.exports=u9;var{messageWithCauses:ZP,stackWithCauses:PP,isErrorLike:FN}=f9(),{pinoErrProto:FP,pinoErrorSymbols:EP}=g9(),{seen:h9}=EP,{toString:wP}=Object.prototype;function u9($){if(!FN($))return $;$[h9]=void 0;let U=Object.create(FP);if(U.type=wP.call($.constructor)==="[object Function]"?$.constructor.name:$.name,U.message=ZP($),U.stack=PP($),Array.isArray($.errors))U.aggregateErrors=$.errors.map((v)=>u9(v));for(let v in $)if(U[v]===void 0){let J=$[v];if(FN(J)){if(v!=="cause"&&!Object.prototype.hasOwnProperty.call(J,h9))U[v]=u9(J)}else U[v]=J}return delete $[h9],U.raw=$,U}});var TN=r((LA,LN)=>{LN.exports=qU;var{isErrorLike:y9}=f9(),{pinoErrProto:LP,pinoErrorSymbols:TP}=g9(),{seen:GU}=TP,{toString:KP}=Object.prototype;function qU($){if(!y9($))return $;$[GU]=void 0;let U=Object.create(LP);if(U.type=KP.call($.constructor)==="[object Function]"?$.constructor.name:$.name,U.message=$.message,U.stack=$.stack,Array.isArray($.errors))U.aggregateErrors=$.errors.map((v)=>qU(v));if(y9($.cause)&&!Object.prototype.hasOwnProperty.call($.cause,GU))U.cause=qU($.cause);for(let v in $)if(U[v]===void 0){let J=$[v];if(y9(J)){if(!Object.prototype.hasOwnProperty.call(J,GU))U[v]=qU(J)}else U[v]=J}return delete $[GU],U.raw=$,U}});var ON=r((TA,RN)=>{RN.exports={mapHttpRequest:jP,reqSerializer:jN};var l9=Symbol("pino-raw-req-ref"),KN=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[l9]},set:function($){this[l9]=$}}});Object.defineProperty(KN,l9,{writable:!0,value:{}});function jN($){let U=$.info||$.socket,v=Object.create(KN);if(v.id=typeof $.id==="function"?$.id():$.id||($.info?$.info.id:void 0),v.method=$.method,$.originalUrl)v.url=$.originalUrl;else{let J=$.path;v.url=typeof J==="string"?J:$.url?$.url.path||$.url:void 0}if($.query)v.query=$.query;if($.params)v.params=$.params;return v.headers=$.headers,v.remoteAddress=U&&U.remoteAddress,v.remotePort=U&&U.remotePort,v.raw=$.raw||$,v}function jP($){return{req:jN($)}}});var kN=r((KA,bN)=>{bN.exports={mapHttpResponse:RP,resSerializer:SN};var i9=Symbol("pino-raw-res-ref"),AN=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[i9]},set:function($){this[i9]=$}}});Object.defineProperty(AN,i9,{writable:!0,value:{}});function SN($){let U=Object.create(AN);return U.statusCode=$.headersSent?$.statusCode:null,U.headers=$.getHeaders?$.getHeaders():$._headers,U.raw=$,U}function RP($){return{res:SN($)}}});var c9=r((jA,MN)=>{var m9=wN(),OP=TN(),VU=ON(),HU=kN();MN.exports={err:m9,errWithCause:OP,mapHttpRequest:VU.mapHttpRequest,mapHttpResponse:HU.mapHttpResponse,req:VU.reqSerializer,res:HU.resSerializer,wrapErrorSerializer:function(U){if(U===m9)return U;return function(J){return U(m9(J))}},wrapRequestSerializer:function(U){if(U===VU.reqSerializer)return U;return function(J){return U(VU.reqSerializer(J))}},wrapResponseSerializer:function(U){if(U===HU.resSerializer)return U;return function(J){return U(HU.resSerializer(J))}}}});var n9=r((RA,xN)=>{function AP($,U){return U}xN.exports=function(){let U=Error.prepareStackTrace;Error.prepareStackTrace=AP;let v=Error().stack;if(Error.prepareStackTrace=U,!Array.isArray(v))return;let J=v.slice(2),_=[];for(let D of J){if(!D)continue;_.push(D.getFileName())}return _}});var uN=r((OA,hN)=>{function p9($){if($===null||typeof $!=="object")return $;if($ instanceof Date)return new Date($.getTime());if($ instanceof Array){let U=[];for(let v=0;v<$.length;v++)U[v]=p9($[v]);return U}if(typeof $==="object"){let U=Object.create(Object.getPrototypeOf($));for(let v in $)if(Object.prototype.hasOwnProperty.call($,v))U[v]=p9($[v]);return U}return $}function IN($){let U=[],v="",J=!1,_=!1,D="";for(let X=0;X<$.length;X++){let Y=$[X];if(!J&&Y==="."){if(v)U.push(v),v=""}else if(Y==="["){if(v)U.push(v),v="";J=!0}else if(Y==="]"&&J)U.push(v),v="",J=!1,_=!1;else if((Y==='"'||Y==="'")&&J)if(!_)_=!0,D=Y;else if(Y===D)_=!1,D="";else v+=Y;else v+=Y}if(v)U.push(v);return U}function CN($,U,v){let J=$;for(let D=0;D<U.length-1;D++){let X=U[D];if(typeof J!=="object"||J===null||!(X in J))return!1;if(typeof J[X]!=="object"||J[X]===null)return!1;J=J[X]}let _=U[U.length-1];if(_==="*"){if(Array.isArray(J))for(let D=0;D<J.length;D++)J[D]=v;else if(typeof J==="object"&&J!==null){for(let D in J)if(Object.prototype.hasOwnProperty.call(J,D))J[D]=v}}else if(typeof J==="object"&&J!==null&&_ in J&&Object.prototype.hasOwnProperty.call(J,_))J[_]=v;return!0}function fN($,U){let v=$;for(let _=0;_<U.length-1;_++){let D=U[_];if(typeof v!=="object"||v===null||!(D in v))return!1;if(typeof v[D]!=="object"||v[D]===null)return!1;v=v[D]}let J=U[U.length-1];if(J==="*"){if(Array.isArray(v))for(let _=0;_<v.length;_++)v[_]=void 0;else if(typeof v==="object"&&v!==null){for(let _ in v)if(Object.prototype.hasOwnProperty.call(v,_))delete v[_]}}else if(typeof v==="object"&&v!==null&&J in v&&Object.prototype.hasOwnProperty.call(v,J))delete v[J];return!0}var WU=Symbol("PATH_NOT_FOUND");function SP($,U){let v=$;for(let J of U){if(v===null||v===void 0)return WU;if(typeof v!=="object"||v===null)return WU;if(!(J in v))return WU;v=v[J]}return v}function bP($,U){let v=$;for(let J of U){if(v===null||v===void 0)return;if(typeof v!=="object"||v===null)return;v=v[J]}return v}function kP($,U,v,J=!1){for(let _ of U){let D=IN(_);if(D.includes("*"))gN($,D,v,_,J);else if(J)fN($,D);else{let X=SP($,D);if(X===WU)continue;let Y=typeof v==="function"?v(X,D):v;CN($,D,Y)}}}function gN($,U,v,J,_=!1){let D=U.indexOf("*");if(D===U.length-1){let X=U.slice(0,-1),Y=$;for(let Q of X){if(Y===null||Y===void 0)return;if(typeof Y!=="object"||Y===null)return;Y=Y[Q]}if(Array.isArray(Y))if(_)for(let Q=0;Q<Y.length;Q++)Y[Q]=void 0;else for(let Q=0;Q<Y.length;Q++){let z=[...X,Q.toString()],N=typeof v==="function"?v(Y[Q],z):v;Y[Q]=N}else if(typeof Y==="object"&&Y!==null)if(_){let Q=[];for(let z in Y)if(Object.prototype.hasOwnProperty.call(Y,z))Q.push(z);for(let z of Q)delete Y[z]}else for(let Q in Y){let z=[...X,Q],N=typeof v==="function"?v(Y[Q],z):v;Y[Q]=N}}else MP($,U,v,D,J,_)}function MP($,U,v,J,_,D=!1){let X=U.slice(0,J),Y=U.slice(J+1),Q=[];function z(N,G){if(G===X.length){if(Array.isArray(N))for(let W=0;W<N.length;W++)Q[G]=W.toString(),z(N[W],G+1);else if(typeof N==="object"&&N!==null)for(let W in N)Q[G]=W,z(N[W],G+1)}else if(G<X.length){let W=X[G];if(N&&typeof N==="object"&&N!==null&&W in N)Q[G]=W,z(N[W],G+1)}else if(Y.includes("*"))gN(N,Y,typeof v==="function"?(q,V)=>{let E=[...Q.slice(0,G),...V];return v(q,E)}:v,_,D);else if(D)fN(N,Y);else{let W=typeof v==="function"?v(bP(N,Y),[...Q.slice(0,G),...Y]):v;CN(N,Y,W)}}if(X.length===0)z($,0);else{let N=$;for(let G=0;G<X.length;G++){let W=X[G];if(N===null||N===void 0)return;if(typeof N!=="object"||N===null)return;N=N[W],Q[G]=W}if(N!==null&&N!==void 0)z(N,X.length)}}function xP($){if($.length===0)return null;let U=new Map;for(let v of $){let J=IN(v),_=U;for(let D=0;D<J.length;D++){let X=J[D];if(!_.has(X))_.set(X,new Map);_=_.get(X)}}return U}function IP($,U){if(!U)return $;function v(J,_,D=0){if(!_||_.size===0)return J;if(J===null||typeof J!=="object")return J;if(J instanceof Date)return new Date(J.getTime());if(Array.isArray(J)){let Y=[];for(let Q=0;Q<J.length;Q++){let z=Q.toString();if(_.has(z)||_.has("*"))Y[Q]=v(J[Q],_.get(z)||_.get("*"));else Y[Q]=J[Q]}return Y}let X=Object.create(Object.getPrototypeOf(J));for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))if(_.has(Y)||_.has("*"))X[Y]=v(J[Y],_.get(Y)||_.get("*"));else X[Y]=J[Y];return X}return v($,U)}function CP($){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 U=0,v=!1,J="";for(let _=0;_<$.length;_++){let D=$[_];if((D==='"'||D==="'")&&U>0){if(!v)v=!0,J=D;else if(D===J)v=!1,J=""}else if(D==="["&&!v)U++;else if(D==="]"&&!v){if(U--,U<0)throw Error(`Invalid redaction path (${$})`)}}if(U!==0)throw Error(`Invalid redaction path (${$})`)}function fP($){if(!Array.isArray($))throw TypeError("paths must be an array");for(let U of $)CP(U)}function gP($={}){let{paths:U=[],censor:v="[REDACTED]",serialize:J=JSON.stringify,strict:_=!0,remove:D=!1}=$;fP(U);let X=xP(U);return function(Q){if(_&&(Q===null||typeof Q!=="object")){if(Q===null||Q===void 0)return J?J(Q):Q;if(typeof Q!=="object")return J?J(Q):Q}let z=IP(Q,X),N=Q,G=v;if(typeof v==="function")G=v;if(kP(z,U,G,D),J===!1)return z.restore=function(){return p9(N)},z;if(typeof J==="function")return J(z);return JSON.stringify(z)}}hN.exports=gP});var S6=r((AA,yN)=>{var hP=Symbol("pino.setLevel"),uP=Symbol("pino.getLevel"),yP=Symbol("pino.levelVal"),lP=Symbol("pino.levelComp"),iP=Symbol("pino.useLevelLabels"),mP=Symbol("pino.useOnlyCustomLevels"),cP=Symbol("pino.mixin"),nP=Symbol("pino.lsCache"),pP=Symbol("pino.chindings"),rP=Symbol("pino.asJson"),dP=Symbol("pino.write"),oP=Symbol("pino.redactFmt"),tP=Symbol("pino.time"),aP=Symbol("pino.timeSliceIndex"),eP=Symbol("pino.stream"),sP=Symbol("pino.stringify"),$F=Symbol("pino.stringifySafe"),UF=Symbol("pino.stringifiers"),_F=Symbol("pino.end"),vF=Symbol("pino.formatOpts"),JF=Symbol("pino.messageKey"),DF=Symbol("pino.errorKey"),XF=Symbol("pino.nestedKey"),YF=Symbol("pino.nestedKeyStr"),QF=Symbol("pino.mixinMergeStrategy"),zF=Symbol("pino.msgPrefix"),NF=Symbol("pino.wildcardFirst"),GF=Symbol.for("pino.serializers"),qF=Symbol.for("pino.formatters"),VF=Symbol.for("pino.hooks"),HF=Symbol.for("pino.metadata");yN.exports={setLevelSym:hP,getLevelSym:uP,levelValSym:yP,levelCompSym:lP,useLevelLabelsSym:iP,mixinSym:cP,lsCacheSym:nP,chindingsSym:pP,asJsonSym:rP,writeSym:dP,serializersSym:GF,redactFmtSym:oP,timeSym:tP,timeSliceIndexSym:aP,streamSym:eP,stringifySym:sP,stringifySafeSym:$F,stringifiersSym:UF,endSym:_F,formatOptsSym:vF,messageKeySym:JF,errorKeySym:DF,nestedKeySym:XF,wildcardFirstSym:NF,needsMetadataGsym:HF,useOnlyCustomLevelsSym:mP,formattersSym:qF,hooksSym:VF,nestedKeyStrSym:YF,mixinMergeStrategySym:QF,msgPrefixSym:zF}});var d9=r((SA,iN)=>{var lN=uN(),{redactFmtSym:WF,wildcardFirstSym:BU}=S6(),r9=/[^.[\]]+|\[([^[\]]*?)\]/g;function BF($,U){let{paths:v,censor:J,remove:_}=ZF($),D=v.reduce((Q,z)=>{r9.lastIndex=0;let N=r9.exec(z),G=r9.exec(z),W=N[1]!==void 0?N[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):N[0];if(W==="*")W=BU;if(G===null)return Q[W]=null,Q;if(Q[W]===null)return Q;let{index:q}=G,V=`${z.substr(q,z.length-1)}`;if(Q[W]=Q[W]||[],W!==BU&&Q[W].length===0)Q[W].push(...Q[BU]||[]);if(W===BU)Object.keys(Q).forEach(function(E){if(Q[E])Q[E].push(V)});return Q[W].push(V),Q},{}),X={[WF]:lN({paths:v,censor:J,serialize:U,strict:!1,remove:_})},Y=(...Q)=>{return typeof J==="function"?U(J(...Q)):U(J)};return[...Object.keys(D),...Object.getOwnPropertySymbols(D)].reduce((Q,z)=>{if(D[z]===null)Q[z]=(N)=>Y(N,[z]);else{let N=typeof J==="function"?(G,W)=>{return J(G,[z,...W])}:J;Q[z]=lN({paths:D[z],censor:N,serialize:U,strict:!1,remove:_})}return Q},X)}function ZF($){if(Array.isArray($))return $={paths:$,censor:"[Redacted]"},$;let{paths:U,censor:v="[Redacted]",remove:J}=$;if(Array.isArray(U)===!1)throw Error("pino \u2013 redact must contain an array of strings");if(J===!0)v=void 0;return{paths:U,censor:v,remove:J}}iN.exports=BF});var nN=r((bA,cN)=>{var PF=()=>"",FF=()=>`,"time":${Date.now()}`,EF=()=>`,"time":${Math.round(Date.now()/1000)}`,wF=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,LF=1000000n,mN=1000000000n,TF=BigInt(Date.now())*LF,KF=process.hrtime.bigint(),jF=()=>{let $=process.hrtime.bigint()-KF,U=TF+$,v=U/mN,J=U%mN,_=Number(v*1000n+J/1000000n),D=new Date(_),X=D.getUTCFullYear(),Y=(D.getUTCMonth()+1).toString().padStart(2,"0"),Q=D.getUTCDate().toString().padStart(2,"0"),z=D.getUTCHours().toString().padStart(2,"0"),N=D.getUTCMinutes().toString().padStart(2,"0"),G=D.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${X}-${Y}-${Q}T${z}:${N}:${G}.${J.toString().padStart(9,"0")}Z"`};cN.exports={nullTime:PF,epochTime:FF,unixTime:EF,isoTime:wF,isoTimeNano:jF}});var rN=r((kA,pN)=>{function RF($){try{return JSON.stringify($)}catch(U){return'"[Circular]"'}}pN.exports=OF;function OF($,U,v){var J=v&&v.stringify||RF,_=1;if(typeof $==="object"&&$!==null){var D=U.length+_;if(D===1)return $;var X=Array(D);X[0]=J($);for(var Y=1;Y<D;Y++)X[Y]=J(U[Y]);return X.join(" ")}if(typeof $!=="string")return $;var Q=U.length;if(Q===0)return $;var z="",N=1-_,G=-1,W=$&&$.length||0;for(var q=0;q<W;){if($.charCodeAt(q)===37&&q+1<W){switch(G=G>-1?G:0,$.charCodeAt(q+1)){case 100:case 102:if(N>=Q)break;if(U[N]==null)break;if(G<q)z+=$.slice(G,q);z+=Number(U[N]),G=q+2,q++;break;case 105:if(N>=Q)break;if(U[N]==null)break;if(G<q)z+=$.slice(G,q);z+=Math.floor(Number(U[N])),G=q+2,q++;break;case 79:case 111:case 106:if(N>=Q)break;if(U[N]===void 0)break;if(G<q)z+=$.slice(G,q);var V=typeof U[N];if(V==="string"){z+="'"+U[N]+"'",G=q+2,q++;break}if(V==="function"){z+=U[N].name||"<anonymous>",G=q+2,q++;break}z+=J(U[N]),G=q+2,q++;break;case 115:if(N>=Q)break;if(G<q)z+=$.slice(G,q);z+=String(U[N]),G=q+2,q++;break;case 37:if(G<q)z+=$.slice(G,q);z+="%",G=q+2,q++,N--;break}++N}++q}if(G===-1)return $;else if(G<W)z+=$.slice(G);return z}});var t9=r((MA,o9)=>{if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let U=function(v){if((v>0&&v<1/0)===!1){if(typeof v!=="number"&&typeof v!=="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(v))},$=new Int32Array(new SharedArrayBuffer(4));o9.exports=U}else{let $=function(U){if((U>0&&U<1/0)===!1){if(typeof U!=="number"&&typeof U!=="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 J=Date.now()+Number(U);while(J>Date.now());};o9.exports=$}});var sN=r((xA,eN)=>{var K$=G$("fs"),AF=G$("events"),SF=G$("util").inherits,dN=G$("path"),e9=t9(),bF=G$("assert"),ZU=Buffer.allocUnsafe(0),[kF,MF]=(process.versions.node||"0.0").split(".").map(Number),xF=kF>=22&&MF>=7;function oN($,U){U._opening=!0,U._writing=!0,U._asyncDrainScheduled=!1;function v(D,X){if(D){if(U._reopening=!1,U._writing=!1,U._opening=!1,U.sync)process.nextTick(()=>{if(U.listenerCount("error")>0)U.emit("error",D)});else U.emit("error",D);return}let Y=U._reopening;if(U.fd=X,U.file=$,U._reopening=!1,U._opening=!1,U._writing=!1,U.sync)process.nextTick(()=>U.emit("ready"));else U.emit("ready");if(U.destroyed)return;if(!U._writing&&U._len>U.minLength||U._flushPending)U._actualWrite();else if(Y)process.nextTick(()=>U.emit("drain"))}let J=U.append?"a":"w",_=U.mode;if(U.sync)try{if(U.mkdir)K$.mkdirSync(dN.dirname($),{recursive:!0});let D=K$.openSync($,J,_);v(null,D)}catch(D){throw v(D),D}else if(U.mkdir)K$.mkdir(dN.dirname($),{recursive:!0},(D)=>{if(D)return v(D);K$.open($,J,_,v)});else K$.open($,J,_,v)}function F4($){if(!(this instanceof F4))return new F4($);let{fd:U,dest:v,minLength:J,maxLength:_,maxWrite:D,periodicFlush:X,sync:Y,append:Q=!0,mkdir:z,retryEAGAIN:N,fsync:G,contentMode:W,mode:q}=$||{};U=U||v,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(J||0,16387),this.file=null,this.destroyed=!1,this.minLength=J||0,this.maxLength=_||0,this.maxWrite=D||16384,this._periodicFlush=X||0,this._periodicFlushTimer=void 0,this.sync=Y||!1,this.writable=!0,this._fsync=G||!1,this.append=Q||!1,this.mode=q,this.retryEAGAIN=N||(()=>!0),this.mkdir=z||!1;let V,E;if(W==="buffer")this._writingBuf=ZU,this.write=fF,this.flush=hF,this.flushSync=yF,this._actualWrite=iF,V=()=>K$.writeSync(this.fd,this._writingBuf),E=()=>K$.write(this.fd,this._writingBuf,this.release);else if(W===void 0||W==="utf8")this._writingBuf="",this.write=CF,this.flush=gF,this.flushSync=uF,this._actualWrite=lF,V=()=>K$.writeSync(this.fd,this._writingBuf,"utf8"),E=()=>K$.write(this.fd,this._writingBuf,"utf8",this.release);else throw Error(`SonicBoom supports "utf8" and "buffer", but passed ${W}`);if(typeof U==="number")this.fd=U,process.nextTick(()=>this.emit("ready"));else if(typeof U==="string")oN(U,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=(T,S)=>{if(T){if((T.code==="EAGAIN"||T.code==="EBUSY")&&this.retryEAGAIN(T,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{e9(100),this.release(void 0,0)}catch(h){this.release(h)}else setTimeout(E,100);else this._writing=!1,this.emit("error",T);return}this.emit("write",S);let C=a9(this._writingBuf,this._len,S);if(this._len=C.len,this._writingBuf=C.writingBuf,this._writingBuf.length){if(!this.sync){E();return}try{do{let h=V(),p=a9(this._writingBuf,this._len,h);this._len=p.len,this._writingBuf=p.writingBuf}while(this._writingBuf.length)}catch(h){this.release(h);return}}if(this._fsync)K$.fsyncSync(this.fd);let M=this._len;if(this._reopening)this._writing=!1,this._reopening=!1,this.reopen();else if(M>this.minLength)this._actualWrite();else if(this._ending)if(M>0)this._actualWrite();else this._writing=!1,PU(this);else if(this._writing=!1,this.sync){if(!this._asyncDrainScheduled)this._asyncDrainScheduled=!0,process.nextTick(IF,this)}else this.emit("drain")},this.on("newListener",function(T){if(T==="drain")this._asyncDrainScheduled=!1}),this._periodicFlush!==0)this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref()}function a9($,U,v){if(typeof $==="string"&&Buffer.byteLength($)!==v)v=Buffer.from($).subarray(0,v).toString().length;return U=Math.max(U-v,0),$=$.slice(v),{writingBuf:$,len:U}}function IF($){if(!($.listenerCount("drain")>0))return;$._asyncDrainScheduled=!1,$.emit("drain")}SF(F4,AF);function tN($,U){if($.length===0)return ZU;if($.length===1)return $[0];return Buffer.concat($,U)}function CF($){if(this.destroyed)throw Error("SonicBoom destroyed");let U=this._len+$.length,v=this._bufs;if(this.maxLength&&U>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(v.length===0||v[v.length-1].length+$.length>this.maxWrite)v.push(""+$);else v[v.length-1]+=$;if(this._len=U,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function fF($){if(this.destroyed)throw Error("SonicBoom destroyed");let U=this._len+$.length,v=this._bufs,J=this._lens;if(this.maxLength&&U>this.maxLength)return this.emit("drop",$),this._len<this._hwm;if(v.length===0||J[J.length-1]+$.length>this.maxWrite)v.push([$]),J.push($.length);else v[v.length-1].push($),J[J.length-1]+=$.length;if(this._len=U,!this._writing&&this._len>=this.minLength)this._actualWrite();return this._len<this._hwm}function aN($){this._flushPending=!0;let U=()=>{if(!this._fsync)try{K$.fsync(this.fd,(J)=>{this._flushPending=!1,$(J)})}catch(J){$(J)}else this._flushPending=!1,$();this.off("error",v)},v=(J)=>{this._flushPending=!1,$(J),this.off("drain",U)};this.once("drain",U),this.once("error",v)}function gF($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let U=Error("SonicBoom destroyed");if($){$(U);return}throw U}if(this.minLength<=0){$?.();return}if($)aN.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push("");this._actualWrite()}function hF($){if($!=null&&typeof $!=="function")throw Error("flush cb must be a function");if(this.destroyed){let U=Error("SonicBoom destroyed");if($){$(U);return}throw U}if(this.minLength<=0){$?.();return}if($)aN.call(this,$);if(this._writing)return;if(this._bufs.length===0)this._bufs.push([]),this._lens.push(0);this._actualWrite()}F4.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 U=this.fd;this.once("ready",()=>{if(U!==this.fd)K$.close(U,(v)=>{if(v)return this.emit("error",v)})}),oN(this.file,this)};F4.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 PU(this)};function uF(){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||$){if($.length<=0)$=this._bufs[0];try{let U=K$.writeSync(this.fd,$,"utf8"),v=a9($,this._len,U);if($=v.writingBuf,this._len=v.len,$.length<=0)this._bufs.shift()}catch(U){if((U.code==="EAGAIN"||U.code==="EBUSY")&&!this.retryEAGAIN(U,$.length,this._len-$.length))throw U;e9(100)}}try{K$.fsyncSync(this.fd)}catch{}}function yF(){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=ZU;let $=ZU;while(this._bufs.length||$.length){if($.length<=0)$=tN(this._bufs[0],this._lens[0]);try{let U=K$.writeSync(this.fd,$);if($=$.subarray(U),this._len=Math.max(this._len-U,0),$.length<=0)this._bufs.shift(),this._lens.shift()}catch(U){if((U.code==="EAGAIN"||U.code==="EBUSY")&&!this.retryEAGAIN(U,$.length,this._len-$.length))throw U;e9(100)}}}F4.prototype.destroy=function(){if(this.destroyed)return;PU(this)};function lF(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf||this._bufs.shift()||"",this.sync)try{let U=K$.writeSync(this.fd,this._writingBuf,"utf8");$(null,U)}catch(U){$(U)}else K$.write(this.fd,this._writingBuf,"utf8",$)}function iF(){let $=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:tN(this._bufs.shift(),this._lens.shift()),this.sync)try{let U=K$.writeSync(this.fd,this._writingBuf);$(null,U)}catch(U){$(U)}else{if(xF)this._writingBuf=Buffer.from(this._writingBuf);K$.write(this.fd,this._writingBuf,$)}}function PU($){if($.fd===-1){$.once("ready",PU.bind(null,$));return}if($._periodicFlushTimer!==void 0)clearInterval($._periodicFlushTimer);$.destroyed=!0,$._bufs=[],$._lens=[],bF(typeof $.fd==="number",`sonic.fd must be a number, got ${typeof $.fd}`);try{K$.fsync($.fd,U)}catch{}function U(){if($.fd!==1&&$.fd!==2)K$.close($.fd,v);else v()}function v(J){if(J){$.emit("error",J);return}if($._ending&&!$._writing)$.emit("finish");$.emit("close")}}F4.SonicBoom=F4;F4.default=F4;eN.exports=F4});var s9=r((IA,JG)=>{var E4={exit:[],beforeExit:[]},$G={exit:nF,beforeExit:pF},b6;function mF(){if(b6===void 0)b6=new FinalizationRegistry(rF)}function cF($){if(E4[$].length>0)return;process.on($,$G[$])}function UG($){if(E4[$].length>0)return;if(process.removeListener($,$G[$]),E4.exit.length===0&&E4.beforeExit.length===0)b6=void 0}function nF(){_G("exit")}function pF(){_G("beforeExit")}function _G($){for(let U of E4[$]){let v=U.deref(),J=U.fn;if(v!==void 0)J(v,$)}E4[$]=[]}function rF($){for(let U of["exit","beforeExit"]){let v=E4[U].indexOf($);E4[U].splice(v,v+1),UG(U)}}function vG($,U,v){if(U===void 0)throw Error("the object can't be undefined");cF($);let J=new WeakRef(U);J.fn=v,mF(),b6.register(U,J),E4[$].push(J)}function dF($,U){vG("exit",$,U)}function oF($,U){vG("beforeExit",$,U)}function tF($){if(b6===void 0)return;b6.unregister($);for(let U of["exit","beforeExit"])E4[U]=E4[U].filter((v)=>{let J=v.deref();return J&&J!==$}),UG(U)}JG.exports={register:dF,registerBeforeExit:oF,unregister:tF}});var DG=r((CA,aF)=>{aF.exports={name:"thread-stream",version:"3.1.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^20.1.0","@types/tap":"^15.0.0","@yao-pkg/pkg":"^5.11.5",desm:"^1.3.0",fastbench:"^1.0.1",husky:"^9.0.6","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1",standard:"^17.0.0",tap:"^16.2.0","ts-node":"^10.8.0",typescript:"^5.3.2","why-is-node-running":"^2.2.2"},scripts:{build:"tsc --noEmit",test:'standard && npm run build && npm run transpile && tap "test/**/*.test.*js" && tap --ts test/*.test.*ts',"test:ci":"standard && npm run transpile && npm run test:ci:js && npm run test:ci:ts","test:ci:js":'tap --no-check-coverage --timeout=120 --coverage-report=lcovonly "test/**/*.test.*js"',"test:ci:ts":'tap --ts --no-check-coverage --coverage-report=lcovonly "test/**/*.test.*ts"',"test:yarn":'npm run transpile && tap "test/**/*.test.js" --no-check-coverage',transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},standard:{ignore:["test/ts/**/*","test/syntax-error.mjs"]},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 YG=r((fA,XG)=>{function eF($,U,v,J,_){let D=Date.now()+J,X=Atomics.load($,U);if(X===v){_(null,"ok");return}let Y=X,Q=(z)=>{if(Date.now()>D)_(null,"timed-out");else setTimeout(()=>{if(Y=X,X=Atomics.load($,U),X===Y)Q(z>=1000?1000:z*2);else if(X===v)_(null,"ok");else _(null,"not-equal")},z)};Q(1)}function sF($,U,v,J,_){let D=Date.now()+J,X=Atomics.load($,U);if(X!==v){_(null,"ok");return}let Y=(Q)=>{if(Date.now()>D)_(null,"timed-out");else setTimeout(()=>{if(X=Atomics.load($,U),X!==v)_(null,"ok");else Y(Q>=1000?1000:Q*2)},Q)};Y(1)}XG.exports={wait:eF,waitDiff:sF}});var zG=r((gA,QG)=>{QG.exports={WRITE_INDEX:4,READ_INDEX:8}});var WG=r((hA,HG)=>{var __dirname="/Users/luis/Dev/filipelabs/ravi.bot/node_modules/thread-stream",{version:$E}=DG(),{EventEmitter:UE}=G$("events"),{Worker:_E}=G$("worker_threads"),{join:vE}=G$("path"),{pathToFileURL:JE}=G$("url"),{wait:DE}=YG(),{WRITE_INDEX:a$,READ_INDEX:x4}=zG(),XE=G$("buffer"),YE=G$("assert"),L=Symbol("kImpl"),QE=XE.constants.MAX_STRING_LENGTH;class EU{constructor($){this._value=$}deref(){return this._value}}class UD{register(){}unregister(){}}var zE=process.env.NODE_V8_COVERAGE?UD:global.FinalizationRegistry||UD,NE=process.env.NODE_V8_COVERAGE?EU:global.WeakRef||EU,NG=new zE(($)=>{if($.exited)return;$.terminate()});function GE($,U){let{filename:v,workerData:J}=U,D=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||vE(__dirname,"lib","worker.js"),X=new _E(D,{...U.workerOpts,trackUnmanagedFds:!1,workerData:{filename:v.indexOf("file://")===0?v:JE(v).href,dataBuf:$[L].dataBuf,stateBuf:$[L].stateBuf,workerData:{$context:{threadStreamVersion:$E},...J}}});return X.stream=new EU($),X.on("message",qE),X.on("exit",qG),NG.register($,X),X}function GG($){if(YE(!$[L].sync),$[L].needDrain)$[L].needDrain=!1,$.emit("drain")}function FU($){let U=Atomics.load($[L].state,a$),v=$[L].data.length-U;if(v>0){if($[L].buf.length===0){if($[L].flushing=!1,$[L].ending)JD($);else if($[L].needDrain)process.nextTick(GG,$);return}let J=$[L].buf.slice(0,v),_=Buffer.byteLength(J);if(_<=v)$[L].buf=$[L].buf.slice(v),wU($,J,FU.bind(null,$));else $.flush(()=>{if($.destroyed)return;Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0);while(_>$[L].data.length)v=v/2,J=$[L].buf.slice(0,v),_=Buffer.byteLength(J);$[L].buf=$[L].buf.slice(v),wU($,J,FU.bind(null,$))})}else if(v===0){if(U===0&&$[L].buf.length===0)return;$.flush(()=>{Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0),FU($)})}else I4($,Error("overwritten"))}function qE($){let U=this.stream.deref();if(U===void 0){this.exited=!0,this.terminate();return}switch($.code){case"READY":this.stream=new NE(U),U.flush(()=>{U[L].ready=!0,U.emit("ready")});break;case"ERROR":I4(U,$.err);break;case"EVENT":if(Array.isArray($.args))U.emit($.name,...$.args);else U.emit($.name,$.args);break;case"WARNING":process.emitWarning($.err);break;default:I4(U,Error("this should not happen: "+$.code))}}function qG($){let U=this.stream.deref();if(U===void 0)return;NG.unregister(U),U.worker.exited=!0,U.worker.off("exit",qG),I4(U,$!==0?Error("the worker thread exited"):null)}class VG extends UE{constructor($={}){super();if($.bufferSize<4)throw Error("bufferSize must at least fit a 4-byte utf-8 char");this[L]={},this[L].stateBuf=new SharedArrayBuffer(128),this[L].state=new Int32Array(this[L].stateBuf),this[L].dataBuf=new SharedArrayBuffer($.bufferSize||4194304),this[L].data=Buffer.from(this[L].dataBuf),this[L].sync=$.sync||!1,this[L].ending=!1,this[L].ended=!1,this[L].needDrain=!1,this[L].destroyed=!1,this[L].flushing=!1,this[L].ready=!1,this[L].finished=!1,this[L].errored=null,this[L].closed=!1,this[L].buf="",this.worker=GE(this,$),this.on("message",(U,v)=>{this.worker.postMessage(U,v)})}write($){if(this[L].destroyed)return _D(this,Error("the worker has exited")),!1;if(this[L].ending)return _D(this,Error("the worker is ending")),!1;if(this[L].flushing&&this[L].buf.length+$.length>=QE)try{$D(this),this[L].flushing=!0}catch(U){return I4(this,U),!1}if(this[L].buf+=$,this[L].sync)try{return $D(this),!0}catch(U){return I4(this,U),!1}if(!this[L].flushing)this[L].flushing=!0,setImmediate(FU,this);return this[L].needDrain=this[L].data.length-this[L].buf.length-Atomics.load(this[L].state,a$)<=0,!this[L].needDrain}end(){if(this[L].destroyed)return;this[L].ending=!0,JD(this)}flush($){if(this[L].destroyed){if(typeof $==="function")process.nextTick($,Error("the worker has exited"));return}let U=Atomics.load(this[L].state,a$);DE(this[L].state,x4,U,1/0,(v,J)=>{if(v){I4(this,v),process.nextTick($,v);return}if(J==="not-equal"){this.flush($);return}process.nextTick($)})}flushSync(){if(this[L].destroyed)return;$D(this),vD(this)}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[L].ready}get destroyed(){return this[L].destroyed}get closed(){return this[L].closed}get writable(){return!this[L].destroyed&&!this[L].ending}get writableEnded(){return this[L].ending}get writableFinished(){return this[L].finished}get writableNeedDrain(){return this[L].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[L].errored}}function _D($,U){setImmediate(()=>{$.emit("error",U)})}function I4($,U){if($[L].destroyed)return;if($[L].destroyed=!0,U)$[L].errored=U,_D($,U);if(!$.worker.exited)$.worker.terminate().catch(()=>{}).then(()=>{$[L].closed=!0,$.emit("close")});else setImmediate(()=>{$[L].closed=!0,$.emit("close")})}function wU($,U,v){let J=Atomics.load($[L].state,a$),_=Buffer.byteLength(U);return $[L].data.write(U,J),Atomics.store($[L].state,a$,J+_),Atomics.notify($[L].state,a$),v(),!0}function JD($){if($[L].ended||!$[L].ending||$[L].flushing)return;$[L].ended=!0;try{$.flushSync();let U=Atomics.load($[L].state,x4);Atomics.store($[L].state,a$,-1),Atomics.notify($[L].state,a$);let v=0;while(U!==-1){if(Atomics.wait($[L].state,x4,U,1000),U=Atomics.load($[L].state,x4),U===-2){I4($,Error("end() failed"));return}if(++v===10){I4($,Error("end() took too long (10s)"));return}}process.nextTick(()=>{$[L].finished=!0,$.emit("finish")})}catch(U){I4($,U)}}function $D($){let U=()=>{if($[L].ending)JD($);else if($[L].needDrain)process.nextTick(GG,$)};$[L].flushing=!1;while($[L].buf.length!==0){let v=Atomics.load($[L].state,a$),J=$[L].data.length-v;if(J===0){vD($),Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0);continue}else if(J<0)throw Error("overwritten");let _=$[L].buf.slice(0,J),D=Buffer.byteLength(_);if(D<=J)$[L].buf=$[L].buf.slice(J),wU($,_,U);else{vD($),Atomics.store($[L].state,x4,0),Atomics.store($[L].state,a$,0);while(D>$[L].buf.length)J=J/2,_=$[L].buf.slice(0,J),D=Buffer.byteLength(_);$[L].buf=$[L].buf.slice(J),wU($,_,U)}}}function vD($){if($[L].flushing)throw Error("unable to flush while flushing");let U=Atomics.load($[L].state,a$),v=0;while(!0){let J=Atomics.load($[L].state,x4);if(J===-2)throw Error("_flushSync failed");if(J!==U)Atomics.wait($[L].state,x4,J,1000);else break;if(++v===10)throw Error("_flushSync took too long (10s)")}}HG.exports=VG});var YD=r((uA,BG)=>{var __dirname="/Users/luis/Dev/filipelabs/ravi.bot/node_modules/pino/lib",{createRequire:VE}=G$("module"),HE=n9(),{join:DD,isAbsolute:WE,sep:BE}=G$("path"),ZE=t9(),XD=s9(),PE=WG();function FE($){XD.register($,wE),XD.registerBeforeExit($,LE),$.on("close",function(){XD.unregister($)})}function EE($,U,v,J){let _=new PE({filename:$,workerData:U,workerOpts:v,sync:J});_.on("ready",D),_.on("close",function(){process.removeListener("exit",X)}),process.on("exit",X);function D(){if(process.removeListener("exit",X),_.unref(),v.autoEnd!==!1)FE(_)}function X(){if(_.closed)return;_.flushSync(),ZE(100),_.end()}return _}function wE($){$.ref(),$.flushSync(),$.end(),$.once("close",function(){$.unref()})}function LE($){$.flushSync()}function TE($){let{pipeline:U,targets:v,levels:J,dedupe:_,worker:D={},caller:X=HE(),sync:Y=!1}=$,Q={...$.options},z=typeof X==="string"?[X]:X,N="__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{},G=$.target;if(G&&v)throw Error("only one of target or targets can be specified");if(v)G=N["pino-worker"]||DD(__dirname,"worker.js"),Q.targets=v.filter((q)=>q.target).map((q)=>{return{...q,target:W(q.target)}}),Q.pipelines=v.filter((q)=>q.pipeline).map((q)=>{return q.pipeline.map((V)=>{return{...V,level:q.level,target:W(V.target)}})});else if(U)G=N["pino-worker"]||DD(__dirname,"worker.js"),Q.pipelines=[U.map((q)=>{return{...q,target:W(q.target)}})];if(J)Q.levels=J;if(_)Q.dedupe=_;return Q.pinoWillSendConfig=!0,EE(W(G),Q,D,Y);function W(q){if(q=N[q]||q,WE(q)||q.indexOf("file://")===0)return q;if(q==="pino/file")return DD(__dirname,"..","file.js");let V;for(let E of z)try{let T=E==="node:repl"?process.cwd()+BE:E;V=VE(T).resolve(q);break}catch(T){continue}if(!V)throw Error(`unable to determine transport target for "${q}"`);return V}}BG.exports=TE});var jU=r((yA,SG)=>{var ZG=G$("diagnostics_channel"),PG=rN(),{mapHttpRequest:KE,mapHttpResponse:jE}=c9(),zD=sN(),FG=s9(),{lsCacheSym:RE,chindingsSym:TG,writeSym:EG,serializersSym:KG,formatOptsSym:wG,endSym:OE,stringifiersSym:jG,stringifySym:RG,stringifySafeSym:ND,wildcardFirstSym:OG,nestedKeySym:AE,formattersSym:AG,messageKeySym:SE,errorKeySym:bE,nestedKeyStrSym:kE,msgPrefixSym:LU}=S6(),{isMainThread:ME}=G$("worker_threads"),xE=YD(),KU;if(typeof ZG.tracingChannel==="function")KU=ZG.tracingChannel("pino_asJson");else KU={hasSubscribers:!1,traceSync($,U,v,...J){return $.call(v,...J)}};function k6(){}function IE($,U){if(!U)return v;return function(..._){U.call(this,_,v,$)};function v(J,..._){if(typeof J==="object"){let D=J;if(J!==null){if(J.method&&J.headers&&J.socket)J=KE(J);else if(typeof J.setHeader==="function")J=jE(J)}let X;if(D===null&&_.length===0)X=[null];else D=_.shift(),X=_;if(typeof this[LU]==="string"&&D!==void 0&&D!==null)D=this[LU]+D;this[EG](J,PG(D,X,this[wG]),$)}else{let D=J===void 0?_.shift():J;if(typeof this[LU]==="string"&&D!==void 0&&D!==null)D=this[LU]+D;this[EG](null,PG(D,_,this[wG]),$)}}}function QD($){let U="",v=0,J=!1,_=255,D=$.length;if(D>100)return JSON.stringify($);for(var X=0;X<D&&_>=32;X++)if(_=$.charCodeAt(X),_===34||_===92)U+=$.slice(v,X)+"\\",v=X,J=!0;if(!J)U=$;else U+=$.slice(v);return _<32?JSON.stringify($):'"'+U+'"'}function CE($,U,v,J){if(KU.hasSubscribers===!1)return LG.call(this,$,U,v,J);let _={instance:this,arguments};return KU.traceSync(LG,_,this,$,U,v,J)}function LG($,U,v,J){let _=this[RG],D=this[ND],X=this[jG],Y=this[OE],Q=this[TG],z=this[KG],N=this[AG],G=this[SE],W=this[bE],q=this[RE][v]+J;q=q+Q;let V;if(N.log)$=N.log($);let E=X[OG],T="";for(let C in $)if(V=$[C],Object.prototype.hasOwnProperty.call($,C)&&V!==void 0){if(z[C])V=z[C](V);else if(C===W&&z.err)V=z.err(V);let M=X[C]||E;switch(typeof V){case"undefined":case"function":continue;case"number":if(Number.isFinite(V)===!1)V=null;case"boolean":if(M)V=M(V);break;case"string":V=(M||QD)(V);break;default:V=(M||_)(V,D)}if(V===void 0)continue;let h=QD(C);T+=","+h+":"+V}let S="";if(U!==void 0){V=z[G]?z[G](U):U;let C=X[G]||E;switch(typeof V){case"function":break;case"number":if(Number.isFinite(V)===!1)V=null;case"boolean":if(C)V=C(V);S=',"'+G+'":'+V;break;case"string":V=(C||QD)(V),S=',"'+G+'":'+V;break;default:V=(C||_)(V,D),S=',"'+G+'":'+V}}if(this[AE]&&T)return q+this[kE]+T.slice(1)+"}"+S+Y;else return q+T+S+Y}function fE($,U){let v,J=$[TG],_=$[RG],D=$[ND],X=$[jG],Y=X[OG],Q=$[KG],z=$[AG].bindings;U=z(U);for(let N in U)if(v=U[N],((N.length<5||N!=="level"&&N!=="serializers"&&N!=="formatters"&&N!=="customLevels")&&U.hasOwnProperty(N)&&v!==void 0)===!0){if(v=Q[N]?Q[N](v):v,v=(X[N]||Y||_)(v,D),v===void 0)continue;J+=',"'+N+'":'+v}return J}function gE($){return $.write!==$.constructor.prototype.write}function TU($){let U=new zD($);if(U.on("error",v),!$.sync&&ME)FG.register(U,hE),U.on("close",function(){FG.unregister(U)});return U;function v(J){if(J.code==="EPIPE"){U.write=k6,U.end=k6,U.flushSync=k6,U.destroy=k6;return}U.removeListener("error",v),U.emit("error",J)}}function hE($,U){if($.destroyed)return;if(U==="beforeExit")$.flush(),$.on("drain",function(){$.end()});else $.flushSync()}function uE($){return function(v,J,_={},D){if(typeof _==="string")D=TU({dest:_}),_={};else if(typeof D==="string"){if(_&&_.transport)throw Error("only one of option.transport or stream can be specified");D=TU({dest:D})}else if(_ instanceof zD||_.writable||_._writableState)D=_,_={};else if(_.transport){if(_.transport instanceof zD||_.transport.writable||_.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(_.transport.targets&&_.transport.targets.length&&_.formatters&&typeof _.formatters.level==="function")throw Error("option.transport.targets do not allow custom level formatters");let Q;if(_.customLevels)Q=_.useOnlyCustomLevels?_.customLevels:Object.assign({},_.levels,_.customLevels);D=xE({caller:J,..._.transport,levels:Q})}if(_=Object.assign({},$,_),_.serializers=Object.assign({},$.serializers,_.serializers),_.formatters=Object.assign({},$.formatters,_.formatters),_.prettyPrint)throw Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:X,onChild:Y}=_;if(X===!1)_.level="silent";if(!Y)_.onChild=k6;if(!D)if(!gE(process.stdout))D=TU({fd:process.stdout.fd||1});else D=process.stdout;return{opts:_,stream:D}}}function yE($,U){try{return JSON.stringify($)}catch(v){try{return(U||this[ND])($)}catch(J){return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function lE($,U,v){return{level:$,bindings:U,log:v}}function iE($){let U=Number($);if(typeof $==="string"&&Number.isFinite(U))return U;if($===void 0)return 1;return $}SG.exports={noop:k6,buildSafeSonicBoom:TU,asChindings:fE,asJson:CE,genLog:IE,createArgsNormalizer:uE,stringify:yE,buildFormatters:lE,normalizeDestFileDescriptor:iE}});var RU=r((lA,bG)=>{var mE={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},cE={ASC:"ASC",DESC:"DESC"};bG.exports={DEFAULT_LEVELS:mE,SORTING_ORDER:cE}});var VD=r((iA,IG)=>{var{lsCacheSym:nE,levelValSym:GD,useOnlyCustomLevelsSym:pE,streamSym:rE,formattersSym:dE,hooksSym:oE,levelCompSym:kG}=S6(),{noop:tE,genLog:K1}=jU(),{DEFAULT_LEVELS:C4,SORTING_ORDER:MG}=RU(),xG={fatal:($)=>{let U=K1(C4.fatal,$);return function(...v){let J=this[rE];if(U.call(this,...v),typeof J.flushSync==="function")try{J.flushSync()}catch(_){}}},error:($)=>K1(C4.error,$),warn:($)=>K1(C4.warn,$),info:($)=>K1(C4.info,$),debug:($)=>K1(C4.debug,$),trace:($)=>K1(C4.trace,$)},qD=Object.keys(C4).reduce(($,U)=>{return $[C4[U]]=U,$},{}),aE=Object.keys(qD).reduce(($,U)=>{return $[U]='{"level":'+Number(U),$},{});function eE($){let U=$[dE].level,{labels:v}=$.levels,J={};for(let _ in v){let D=U(v[_],Number(_));J[_]=JSON.stringify(D).slice(0,-1)}return $[nE]=J,$}function sE($,U){if(U)return!1;switch($){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function $w($){let{labels:U,values:v}=this.levels;if(typeof $==="number"){if(U[$]===void 0)throw Error("unknown level value"+$);$=U[$]}if(v[$]===void 0)throw Error("unknown level "+$);let J=this[GD],_=this[GD]=v[$],D=this[pE],X=this[kG],Y=this[oE].logMethod;for(let Q in v){if(X(v[Q],_)===!1){this[Q]=tE;continue}this[Q]=sE(Q,D)?xG[Q](Y):K1(v[Q],Y)}this.emit("level-change",$,_,U[J],J,this)}function Uw($){let{levels:U,levelVal:v}=this;return U&&U.labels?U.labels[v]:""}function _w($){let{values:U}=this.levels,v=U[$];return v!==void 0&&this[kG](v,this[GD])}function vw($,U,v){if($===MG.DESC)return U<=v;return U>=v}function Jw($){if(typeof $==="string")return vw.bind(null,$);return $}function Dw($=null,U=!1){let v=$?Object.keys($).reduce((D,X)=>{return D[$[X]]=X,D},{}):null,J=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),U?null:qD,v),_=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),U?null:C4,$);return{labels:J,values:_}}function Xw($,U,v){if(typeof $==="number"){if(![].concat(Object.keys(U||{}).map((D)=>U[D]),v?[]:Object.keys(qD).map((D)=>+D),1/0).includes($))throw Error(`default level:${$} must be included in custom levels`);return}let J=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),v?null:C4,U);if(!($ in J))throw Error(`default level:${$} must be included in custom levels`)}function Yw($,U){let{labels:v,values:J}=$;for(let _ in U){if(_ in J)throw Error("levels cannot be overridden");if(U[_]in v)throw Error("pre-existing level values cannot be used for new levels")}}function Qw($){if(typeof $==="function")return;if(typeof $==="string"&&Object.values(MG).includes($))return;throw Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}IG.exports={initialLsCache:aE,genLsCache:eE,levelMethods:xG,getLevel:Uw,setLevel:$w,isLevelEnabled:_w,mappings:Dw,assertNoLevelCollisions:Yw,assertDefaultLevelFound:Xw,genLevelComparison:Jw,assertLevelComparison:Qw}});var HD=r((mA,CG)=>{CG.exports={version:"9.14.0"}});var mG=r((cA,iG)=>{var{EventEmitter:zw}=G$("events"),{lsCacheSym:Nw,levelValSym:Gw,setLevelSym:AU,getLevelSym:fG,chindingsSym:SU,parsedChindingsSym:qw,mixinSym:Vw,asJsonSym:hG,writeSym:Hw,mixinMergeStrategySym:Ww,timeSym:Bw,timeSliceIndexSym:Zw,streamSym:uG,serializersSym:j1,formattersSym:c2,errorKeySym:Pw,messageKeySym:Fw,useOnlyCustomLevelsSym:Ew,needsMetadataGsym:ww,redactFmtSym:Lw,stringifySym:Tw,formatOptsSym:Kw,stringifiersSym:jw,msgPrefixSym:BD,hooksSym:Rw}=S6(),{getLevel:Ow,setLevel:Aw,isLevelEnabled:Sw,mappings:bw,initialLsCache:kw,genLsCache:Mw,assertNoLevelCollisions:xw}=VD(),{asChindings:ZD,asJson:Iw,buildFormatters:WD,stringify:gG,noop:yG}=jU(),{version:Cw}=HD(),fw=d9(),gw=class{},lG={constructor:gw,child:hw,bindings:uw,setBindings:yw,flush:mw,isLevelEnabled:Sw,version:Cw,get level(){return this[fG]()},set level($){this[AU]($)},get levelVal(){return this[Gw]},set levelVal($){throw Error("levelVal is read-only")},get msgPrefix(){return this[BD]},get[Symbol.toStringTag](){return"Pino"},[Nw]:kw,[Hw]:iw,[hG]:Iw,[fG]:Ow,[AU]:Aw};Object.setPrototypeOf(lG,zw.prototype);iG.exports=function(){return Object.create(lG)};var OU=($)=>$;function hw($,U){if(!$)throw Error("missing bindings for child Pino");let v=this[j1],J=this[c2],_=Object.create(this);if(U==null){if(_[c2].bindings!==OU)_[c2]=WD(J.level,OU,J.log);if(_[SU]=ZD(_,$),_[AU](this.level),this.onChild!==yG)this.onChild(_);return _}if(U.hasOwnProperty("serializers")===!0){_[j1]=Object.create(null);for(let N in v)_[j1][N]=v[N];let Q=Object.getOwnPropertySymbols(v);for(var D=0;D<Q.length;D++){let N=Q[D];_[j1][N]=v[N]}for(let N in U.serializers)_[j1][N]=U.serializers[N];let z=Object.getOwnPropertySymbols(U.serializers);for(var X=0;X<z.length;X++){let N=z[X];_[j1][N]=U.serializers[N]}}else _[j1]=v;if(U.hasOwnProperty("formatters")){let{level:Q,bindings:z,log:N}=U.formatters;_[c2]=WD(Q||J.level,z||OU,N||J.log)}else _[c2]=WD(J.level,OU,J.log);if(U.hasOwnProperty("customLevels")===!0)xw(this.levels,U.customLevels),_.levels=bw(U.customLevels,_[Ew]),Mw(_);if(typeof U.redact==="object"&&U.redact!==null||Array.isArray(U.redact)){_.redact=U.redact;let Q=fw(_.redact,gG),z={stringify:Q[Lw]};_[Tw]=gG,_[jw]=Q,_[Kw]=z}if(typeof U.msgPrefix==="string")_[BD]=(this[BD]||"")+U.msgPrefix;_[SU]=ZD(_,$);let Y=U.level||this.level;return _[AU](Y),this.onChild(_),_}function uw(){let U=`{${this[SU].substr(1)}}`,v=JSON.parse(U);return delete v.pid,delete v.hostname,v}function yw($){let U=ZD(this,$);this[SU]=U,delete this[qw]}function lw($,U){return Object.assign(U,$)}function iw($,U,v){let J=this[Bw](),_=this[Vw],D=this[Pw],X=this[Fw],Y=this[Ww]||lw,Q,z=this[Rw].streamWrite;if($===void 0||$===null)Q={};else if($ instanceof Error){if(Q={[D]:$},U===void 0)U=$.message}else if(Q=$,U===void 0&&$[X]===void 0&&$[D])U=$[D].message;if(_)Q=Y(Q,_(Q,v,this));let N=this[hG](Q,U,v,J),G=this[uG];if(G[ww]===!0)G.lastLevel=v,G.lastObj=Q,G.lastMsg=U,G.lastTime=J.slice(this[Zw]),G.lastLogger=this;G.write(z?z(N):N)}function mw($){if($!=null&&typeof $!=="function")throw Error("callback must be a function");let U=this[uG];if(typeof U.flush==="function")U.flush($||yG);else if($)$()}});var rG=r((nA,pG)=>{var{hasOwnProperty:n2}=Object.prototype,O1=ED();O1.configure=ED;O1.stringify=O1;O1.default=O1;nA.stringify=O1;nA.configure=ED;pG.exports=O1;var cw=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function v1($){if($.length<5000&&!cw.test($))return`"${$}"`;return JSON.stringify($)}function PD($,U){if($.length>200||U)return $.sort(U);for(let v=1;v<$.length;v++){let J=$[v],_=v;while(_!==0&&$[_-1]>J)$[_]=$[_-1],_--;$[_]=J}return $}var nw=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function FD($){return nw.call($)!==void 0&&$.length!==0}function cG($,U,v){if($.length<v)v=$.length;let J=U===","?"":" ",_=`"0":${J}${$[0]}`;for(let D=1;D<v;D++)_+=`${U}"${D}":${J}${$[D]}`;return _}function pw($){if(n2.call($,"circularValue")){let U=$.circularValue;if(typeof U==="string")return`"${U}"`;if(U==null)return U;if(U===Error||U===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 rw($){let U;if(n2.call($,"deterministic")){if(U=$.deterministic,typeof U!=="boolean"&&typeof U!=="function")throw TypeError('The "deterministic" argument must be of type boolean or comparator function')}return U===void 0?!0:U}function dw($,U){let v;if(n2.call($,U)){if(v=$[U],typeof v!=="boolean")throw TypeError(`The "${U}" argument must be of type boolean`)}return v===void 0?!0:v}function nG($,U){let v;if(n2.call($,U)){if(v=$[U],typeof v!=="number")throw TypeError(`The "${U}" argument must be of type number`);if(!Number.isInteger(v))throw TypeError(`The "${U}" argument must be an integer`);if(v<1)throw RangeError(`The "${U}" argument must be >= 1`)}return v===void 0?1/0:v}function R1($){if($===1)return"1 item";return`${$} items`}function ow($){let U=new Set;for(let v of $)if(typeof v==="string"||typeof v==="number")U.add(String(v));return U}function tw($){if(n2.call($,"strict")){let U=$.strict;if(typeof U!=="boolean")throw TypeError('The "strict" argument must be of type boolean');if(U)return(v)=>{let J=`Object can not safely be stringified. Received type ${typeof v}`;if(typeof v!=="function")J+=` (${v.toString()})`;throw Error(J)}}}function ED($){$={...$};let U=tw($);if(U){if($.bigint===void 0)$.bigint=!1;if(!("circularValue"in $))$.circularValue=Error}let v=pw($),J=dw($,"bigint"),_=rw($),D=typeof _==="function"?_:void 0,X=nG($,"maximumDepth"),Y=nG($,"maximumBreadth");function Q(q,V,E,T,S,C){let M=V[q];if(typeof M==="object"&&M!==null&&typeof M.toJSON==="function")M=M.toJSON(q);switch(M=T.call(V,q,M),typeof M){case"string":return v1(M);case"object":{if(M===null)return"null";if(E.indexOf(M)!==-1)return v;let h="",p=",",J$=C;if(Array.isArray(M)){if(M.length===0)return"[]";if(X<E.length+1)return'"[Array]"';if(E.push(M),S!=="")C+=S,h+=`
207
207
  ${C}`,p=`,
208
208
  ${C}`;let R$=Math.min(M.length,Y),r$=0;for(;r$<R$-1;r$++){let q4=Q(String(r$),M,E,T,S,C);h+=q4!==void 0?q4:"null",h+=p}let i$=Q(String(r$),M,E,T,S,C);if(h+=i$!==void 0?i$:"null",M.length-1>Y){let q4=M.length-Y-1;h+=`${p}"... ${R1(q4)} not stringified"`}if(S!=="")h+=`
209
209
  ${J$}`;return E.pop(),`[${h}]`}let e=Object.keys(M),N$=e.length;if(N$===0)return"{}";if(X<E.length+1)return'"[Object]"';let s="",j$="";if(S!=="")C+=S,p=`,
@@ -221,9 +221,9 @@ ${S}`,h$=Math.min(V.length,Y),R$=0;for(;R$<h$-1;R$++){let i$=N(String(R$),V[R$],
221
221
  ${C}`,E.pop(),`[${s}]`}let M=Object.keys(V),h=M.length;if(h===0)return"{}";if(X<E.length+1)return'"[Object]"';S+=T;let p=`,
222
222
  ${S}`,J$="",e="",N$=Math.min(h,Y);if(FD(V))J$+=cG(V,p,Y),M=M.slice(V.length),N$-=V.length,e=p;if(_)M=PD(M,D);E.push(V);for(let s=0;s<N$;s++){let j$=M[s],h$=N(j$,V[j$],E,T,S);if(h$!==void 0)J$+=`${e}${v1(j$)}: ${h$}`,e=p}if(h>Y){let s=h-Y;J$+=`${e}"...": "${R1(s)} not stringified"`,e=p}if(e!=="")J$=`
223
223
  ${S}${J$}
224
- ${C}`;return E.pop(),`{${J$}}`}case"number":return isFinite(V)?String(V):U?U(V):"null";case"boolean":return V===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(V);default:return U?U(V):void 0}}function G(q,V,E){switch(typeof V){case"string":return v1(V);case"object":{if(V===null)return"null";if(typeof V.toJSON==="function"){if(V=V.toJSON(q),typeof V!=="object")return G(q,V,E);if(V===null)return"null"}if(E.indexOf(V)!==-1)return v;let T="",S=V.length!==void 0;if(S&&Array.isArray(V)){if(V.length===0)return"[]";if(X<E.length+1)return'"[Array]"';E.push(V);let J$=Math.min(V.length,Y),e=0;for(;e<J$-1;e++){let s=G(String(e),V[e],E);T+=s!==void 0?s:"null",T+=","}let N$=G(String(e),V[e],E);if(T+=N$!==void 0?N$:"null",V.length-1>Y){let s=V.length-Y-1;T+=`,"... ${R1(s)} not stringified"`}return E.pop(),`[${T}]`}let C=Object.keys(V),M=C.length;if(M===0)return"{}";if(X<E.length+1)return'"[Object]"';let h="",p=Math.min(M,Y);if(S&&FD(V))T+=cG(V,",",Y),C=C.slice(V.length),p-=V.length,h=",";if(_)C=PD(C,D);E.push(V);for(let J$=0;J$<p;J$++){let e=C[J$],N$=G(e,V[e],E);if(N$!==void 0)T+=`${h}${v1(e)}:${N$}`,h=","}if(M>Y){let J$=M-Y;T+=`${h}"...":"${R1(J$)} not stringified"`}return E.pop(),`{${T}}`}case"number":return isFinite(V)?String(V):U?U(V):"null";case"boolean":return V===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(V);default:return U?U(V):void 0}}function W(q,V,E){if(arguments.length>1){let T="";if(typeof E==="number")T=" ".repeat(Math.min(E,10));else if(typeof E==="string")T=E.slice(0,10);if(V!=null){if(typeof V==="function")return Q("",{"":q},[],V,T,"");if(Array.isArray(V))return z("",q,[],ow(V),T,"")}if(T.length!==0)return N("",q,[],T,"")}return G("",q,[])}return W}});var aG=r((rA,tG)=>{var wD=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:oG}=RU(),sw=oG.info;function $L($,U){$=$||[],U=U||{dedupe:!1};let v=Object.create(oG);if(v.silent=1/0,U.levels&&typeof U.levels==="object")Object.keys(U.levels).forEach((G)=>{v[G]=U.levels[G]});let J={write:_,add:Y,remove:Q,emit:D,flushSync:X,end:z,minLevel:0,lastId:0,streams:[],clone:N,[wD]:!0,streamLevels:v};if(Array.isArray($))$.forEach(Y,J);else Y.call(J,$);return $=null,J;function _(G){let W,q=this.lastLevel,{streams:V}=this,E=0,T;for(let S=UL(V.length,U.dedupe);vL(S,V.length,U.dedupe);S=_L(S,U.dedupe))if(W=V[S],W.level<=q){if(E!==0&&E!==W.level)break;if(T=W.stream,T[wD]){let{lastTime:C,lastMsg:M,lastObj:h,lastLogger:p}=this;T.lastLevel=q,T.lastTime=C,T.lastMsg=M,T.lastObj=h,T.lastLogger=p}if(T.write(G),U.dedupe)E=W.level}else if(!U.dedupe)break}function D(...G){for(let{stream:W}of this.streams)if(typeof W.emit==="function")W.emit(...G)}function X(){for(let{stream:G}of this.streams)if(typeof G.flushSync==="function")G.flushSync()}function Y(G){if(!G)return J;let W=typeof G.write==="function"||G.stream,q=G.write?G:G.stream;if(!W)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:V,streamLevels:E}=this,T;if(typeof G.levelVal==="number")T=G.levelVal;else if(typeof G.level==="string")T=E[G.level];else if(typeof G.level==="number")T=G.level;else T=sw;let S={stream:q,level:T,levelVal:void 0,id:++J.lastId};return V.unshift(S),V.sort(dG),this.minLevel=V[0].level,J}function Q(G){let{streams:W}=this,q=W.findIndex((V)=>V.id===G);if(q>=0)W.splice(q,1),W.sort(dG),this.minLevel=W.length>0?W[0].level:-1;return J}function z(){for(let{stream:G}of this.streams){if(typeof G.flushSync==="function")G.flushSync();G.end()}}function N(G){let W=Array(this.streams.length);for(let q=0;q<W.length;q++)W[q]={level:G,stream:this.streams[q].stream};return{write:_,add:Y,remove:Q,minLevel:G,streams:W,clone:N,emit:D,flushSync:X,[wD]:!0}}}function dG($,U){return $.level-U.level}function UL($,U){return U?$-1:0}function _L($,U){return U?$-1:$+1}function vL($,U,v){return v?$>=0:$<U}tG.exports=$L});var Gq=r((dA,N4)=>{var JL=H$("os"),Dq=c9(),DL=n9(),XL=d9(),Xq=nN(),YL=mG(),Yq=S6(),{configure:QL}=rG(),{assertDefaultLevelFound:zL,mappings:Qq,genLsCache:NL,genLevelComparison:GL,assertLevelComparison:qL}=VD(),{DEFAULT_LEVELS:zq,SORTING_ORDER:VL}=RU(),{createArgsNormalizer:HL,asChindings:WL,buildSafeSonicBoom:eG,buildFormatters:BL,stringify:LD,normalizeDestFileDescriptor:sG,noop:ZL}=jU(),{version:PL}=HD(),{chindingsSym:$q,redactFmtSym:FL,serializersSym:Uq,timeSym:EL,timeSliceIndexSym:wL,streamSym:LL,stringifySym:_q,stringifySafeSym:TD,stringifiersSym:vq,setLevelSym:TL,endSym:KL,formatOptsSym:jL,messageKeySym:RL,errorKeySym:OL,nestedKeySym:AL,mixinSym:SL,levelCompSym:bL,useOnlyCustomLevelsSym:kL,formattersSym:Jq,hooksSym:ML,nestedKeyStrSym:xL,mixinMergeStrategySym:IL,msgPrefixSym:CL}=Yq,{epochTime:Nq,nullTime:fL}=Xq,{pid:gL}=process,hL=JL.hostname(),uL=Dq.err,yL={level:"info",levelComparison:VL.ASC,levels:zq,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:gL,hostname:hL},serializers:Object.assign(Object.create(null),{err:uL}),formatters:Object.assign(Object.create(null),{bindings($){return $},level($,U){return{level:U}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Nq,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},lL=HL(yL),iL=Object.assign(Object.create(null),Dq);function KD(...$){let U={},{opts:v,stream:J}=lL(U,DL(),...$);if(v.level&&typeof v.level==="string"&&zq[v.level.toLowerCase()]!==void 0)v.level=v.level.toLowerCase();let{redact:_,crlf:D,serializers:X,timestamp:Y,messageKey:Q,errorKey:z,nestedKey:N,base:G,name:W,level:q,customLevels:V,levelComparison:E,mixin:T,mixinMergeStrategy:S,useOnlyCustomLevels:C,formatters:M,hooks:h,depthLimit:p,edgeLimit:J$,onChild:e,msgPrefix:N$}=v,s=QL({maximumDepth:p,maximumBreadth:J$}),j$=BL(M.level,M.bindings,M.log),h$=LD.bind({[TD]:s}),R$=_?XL(_,h$):{},r$=_?{stringify:R$[FL]}:{stringify:h$},i$="}"+(D?`\r
224
+ ${C}`;return E.pop(),`{${J$}}`}case"number":return isFinite(V)?String(V):U?U(V):"null";case"boolean":return V===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(V);default:return U?U(V):void 0}}function G(q,V,E){switch(typeof V){case"string":return v1(V);case"object":{if(V===null)return"null";if(typeof V.toJSON==="function"){if(V=V.toJSON(q),typeof V!=="object")return G(q,V,E);if(V===null)return"null"}if(E.indexOf(V)!==-1)return v;let T="",S=V.length!==void 0;if(S&&Array.isArray(V)){if(V.length===0)return"[]";if(X<E.length+1)return'"[Array]"';E.push(V);let J$=Math.min(V.length,Y),e=0;for(;e<J$-1;e++){let s=G(String(e),V[e],E);T+=s!==void 0?s:"null",T+=","}let N$=G(String(e),V[e],E);if(T+=N$!==void 0?N$:"null",V.length-1>Y){let s=V.length-Y-1;T+=`,"... ${R1(s)} not stringified"`}return E.pop(),`[${T}]`}let C=Object.keys(V),M=C.length;if(M===0)return"{}";if(X<E.length+1)return'"[Object]"';let h="",p=Math.min(M,Y);if(S&&FD(V))T+=cG(V,",",Y),C=C.slice(V.length),p-=V.length,h=",";if(_)C=PD(C,D);E.push(V);for(let J$=0;J$<p;J$++){let e=C[J$],N$=G(e,V[e],E);if(N$!==void 0)T+=`${h}${v1(e)}:${N$}`,h=","}if(M>Y){let J$=M-Y;T+=`${h}"...":"${R1(J$)} not stringified"`}return E.pop(),`{${T}}`}case"number":return isFinite(V)?String(V):U?U(V):"null";case"boolean":return V===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(V);default:return U?U(V):void 0}}function W(q,V,E){if(arguments.length>1){let T="";if(typeof E==="number")T=" ".repeat(Math.min(E,10));else if(typeof E==="string")T=E.slice(0,10);if(V!=null){if(typeof V==="function")return Q("",{"":q},[],V,T,"");if(Array.isArray(V))return z("",q,[],ow(V),T,"")}if(T.length!==0)return N("",q,[],T,"")}return G("",q,[])}return W}});var aG=r((pA,tG)=>{var wD=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:oG}=RU(),sw=oG.info;function $L($,U){$=$||[],U=U||{dedupe:!1};let v=Object.create(oG);if(v.silent=1/0,U.levels&&typeof U.levels==="object")Object.keys(U.levels).forEach((G)=>{v[G]=U.levels[G]});let J={write:_,add:Y,remove:Q,emit:D,flushSync:X,end:z,minLevel:0,lastId:0,streams:[],clone:N,[wD]:!0,streamLevels:v};if(Array.isArray($))$.forEach(Y,J);else Y.call(J,$);return $=null,J;function _(G){let W,q=this.lastLevel,{streams:V}=this,E=0,T;for(let S=UL(V.length,U.dedupe);vL(S,V.length,U.dedupe);S=_L(S,U.dedupe))if(W=V[S],W.level<=q){if(E!==0&&E!==W.level)break;if(T=W.stream,T[wD]){let{lastTime:C,lastMsg:M,lastObj:h,lastLogger:p}=this;T.lastLevel=q,T.lastTime=C,T.lastMsg=M,T.lastObj=h,T.lastLogger=p}if(T.write(G),U.dedupe)E=W.level}else if(!U.dedupe)break}function D(...G){for(let{stream:W}of this.streams)if(typeof W.emit==="function")W.emit(...G)}function X(){for(let{stream:G}of this.streams)if(typeof G.flushSync==="function")G.flushSync()}function Y(G){if(!G)return J;let W=typeof G.write==="function"||G.stream,q=G.write?G:G.stream;if(!W)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:V,streamLevels:E}=this,T;if(typeof G.levelVal==="number")T=G.levelVal;else if(typeof G.level==="string")T=E[G.level];else if(typeof G.level==="number")T=G.level;else T=sw;let S={stream:q,level:T,levelVal:void 0,id:++J.lastId};return V.unshift(S),V.sort(dG),this.minLevel=V[0].level,J}function Q(G){let{streams:W}=this,q=W.findIndex((V)=>V.id===G);if(q>=0)W.splice(q,1),W.sort(dG),this.minLevel=W.length>0?W[0].level:-1;return J}function z(){for(let{stream:G}of this.streams){if(typeof G.flushSync==="function")G.flushSync();G.end()}}function N(G){let W=Array(this.streams.length);for(let q=0;q<W.length;q++)W[q]={level:G,stream:this.streams[q].stream};return{write:_,add:Y,remove:Q,minLevel:G,streams:W,clone:N,emit:D,flushSync:X,[wD]:!0}}}function dG($,U){return $.level-U.level}function UL($,U){return U?$-1:0}function _L($,U){return U?$-1:$+1}function vL($,U,v){return v?$>=0:$<U}tG.exports=$L});var Gq=r((rA,N4)=>{var JL=G$("os"),Dq=c9(),DL=n9(),XL=d9(),Xq=nN(),YL=mG(),Yq=S6(),{configure:QL}=rG(),{assertDefaultLevelFound:zL,mappings:Qq,genLsCache:NL,genLevelComparison:GL,assertLevelComparison:qL}=VD(),{DEFAULT_LEVELS:zq,SORTING_ORDER:VL}=RU(),{createArgsNormalizer:HL,asChindings:WL,buildSafeSonicBoom:eG,buildFormatters:BL,stringify:LD,normalizeDestFileDescriptor:sG,noop:ZL}=jU(),{version:PL}=HD(),{chindingsSym:$q,redactFmtSym:FL,serializersSym:Uq,timeSym:EL,timeSliceIndexSym:wL,streamSym:LL,stringifySym:_q,stringifySafeSym:TD,stringifiersSym:vq,setLevelSym:TL,endSym:KL,formatOptsSym:jL,messageKeySym:RL,errorKeySym:OL,nestedKeySym:AL,mixinSym:SL,levelCompSym:bL,useOnlyCustomLevelsSym:kL,formattersSym:Jq,hooksSym:ML,nestedKeyStrSym:xL,mixinMergeStrategySym:IL,msgPrefixSym:CL}=Yq,{epochTime:Nq,nullTime:fL}=Xq,{pid:gL}=process,hL=JL.hostname(),uL=Dq.err,yL={level:"info",levelComparison:VL.ASC,levels:zq,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:gL,hostname:hL},serializers:Object.assign(Object.create(null),{err:uL}),formatters:Object.assign(Object.create(null),{bindings($){return $},level($,U){return{level:U}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:Nq,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},lL=HL(yL),iL=Object.assign(Object.create(null),Dq);function KD(...$){let U={},{opts:v,stream:J}=lL(U,DL(),...$);if(v.level&&typeof v.level==="string"&&zq[v.level.toLowerCase()]!==void 0)v.level=v.level.toLowerCase();let{redact:_,crlf:D,serializers:X,timestamp:Y,messageKey:Q,errorKey:z,nestedKey:N,base:G,name:W,level:q,customLevels:V,levelComparison:E,mixin:T,mixinMergeStrategy:S,useOnlyCustomLevels:C,formatters:M,hooks:h,depthLimit:p,edgeLimit:J$,onChild:e,msgPrefix:N$}=v,s=QL({maximumDepth:p,maximumBreadth:J$}),j$=BL(M.level,M.bindings,M.log),h$=LD.bind({[TD]:s}),R$=_?XL(_,h$):{},r$=_?{stringify:R$[FL]}:{stringify:h$},i$="}"+(D?`\r
225
225
  `:`
226
- `),q4=WL.bind(null,{[$q]:"",[Uq]:X,[vq]:R$,[_q]:LD,[TD]:s,[Jq]:j$}),l1="";if(G!==null)if(W===void 0)l1=q4(G);else l1=q4(Object.assign({},G,{name:W}));let m6=Y instanceof Function?Y:Y?Nq:fL,_0=m6().indexOf(":")+1;if(C&&!V)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(T&&typeof T!=="function")throw Error(`Unknown mixin type "${typeof T}" - expected "function"`);if(N$&&typeof N$!=="string")throw Error(`Unknown msgPrefix type "${typeof N$}" - expected "string"`);zL(q,V,C);let c6=Qq(V,C);if(typeof J.emit==="function")J.emit("message",{code:"PINO_CONFIG",config:{levels:c6,messageKey:Q,errorKey:z}});qL(E);let v0=GL(E);return Object.assign(U,{levels:c6,[bL]:v0,[kL]:C,[LL]:J,[EL]:m6,[wL]:_0,[_q]:LD,[TD]:s,[vq]:R$,[KL]:i$,[jL]:r$,[RL]:Q,[OL]:z,[AL]:N,[xL]:N?`,${JSON.stringify(N)}:{`:"",[Uq]:X,[SL]:T,[IL]:S,[$q]:l1,[Jq]:j$,[ML]:h,silent:ZL,onChild:e,[CL]:N$}),Object.setPrototypeOf(U,YL()),NL(U),U[TL](q),U}N4.exports=KD;N4.exports.destination=($=process.stdout.fd)=>{if(typeof $==="object")return $.dest=sG($.dest||process.stdout.fd),eG($);else return eG({dest:sG($),minLength:0})};N4.exports.transport=YD();N4.exports.multistream=aG();N4.exports.levels=Qq();N4.exports.stdSerializers=iL;N4.exports.stdTimeFunctions=Object.assign({},Xq);N4.exports.symbols=Yq;N4.exports.version=PL;N4.exports.default=KD;N4.exports.pino=KD});var jM=M$(D4(),1);var KX=M$(TX(),1),{program:HK,createCommand:WK,createArgument:BK,createOption:ZK,CommanderError:PK,InvalidArgumentError:FK,InvalidOptionArgumentError:EK,Command:jX,Argument:wK,Option:LK,Help:TK}=KX.default;var RX=Symbol("cli:group"),z3=Symbol("cli:commands"),N3=Symbol("cli:args"),G3=Symbol("cli:options");function O$($){return function(U){Reflect.defineMetadata(RX,$,U)}}function I($){return function(U,v,J){let _=Reflect.getMetadata(z3,U.constructor)||[];_.push({...$,method:v}),Reflect.defineMetadata(z3,_,U.constructor)}}function x($,U={}){return function(v,J,_){let D=Reflect.getMetadata(N3,v,J)||[];D.push({name:$,index:_,required:!0,...U}),Reflect.defineMetadata(N3,D,v,J)}}function k$($){return function(U,v,J){let _=Reflect.getMetadata(G3,U,v)||[];_.push({...$,propertyKey:v,index:J}),Reflect.defineMetadata(G3,_,U,v)}}function X0($){return Reflect.getMetadata(RX,$)}function Y0($){return Reflect.getMetadata(z3,$)||[]}function Q0($,U){return(Reflect.getMetadata(N3,$,U)||[]).sort((J,_)=>J.index-_.index)}function z0($,U){return Reflect.getMetadata(G3,$,U)||[]}function OX($,U){for(let v of U){let J=X0(v);if(!J)continue;let _=Y0(v);if(_.length===0)continue;let D=$.command(J.name).description(J.description),X=new v;for(let Y of _)tH(D,X,Y)}}function tH($,U,v){let J=$.command(v.name).description(v.description);if(v.aliases)J.aliases(v.aliases);let _=Q0(U,v.method),D=z0(U,v.method);for(let X of _){let Y=X.required?`<${X.name}>`:`[${X.name}]`;if(X.description)J.argument(Y,X.description,X.defaultValue);else J.argument(Y)}for(let X of D)if(X.description)J.option(X.flags,X.description,X.defaultValue);else J.option(X.flags);J.action((...X)=>{let Y=X.pop(),Q=X.pop(),z=X,N=[],G=_.length+D.length;for(let V=0;V<G;V++){let E=_.find((S)=>S.index===V);if(E){let S=_.indexOf(E);N.push(z[S]);continue}let T=D.find((S)=>S.index===V);if(T){let S=aH(T.flags);N.push(Q[S])}}let q=U[v.method].apply(U,N);if(q instanceof Promise)q.catch((V)=>{console.error(`Error: ${V.message}`),process.exit(1)})})}function aH($){let U=$.match(/--([a-zA-Z-]+)/);if(U)return U[1].replace(/-([a-z])/g,(J,_)=>_.toUpperCase());let v=$.match(/-([a-zA-Z])/);return v?v[1]:""}var eO=M$(D4(),1);var AX="https://api.notif.sh",SX=30000,q3="NOTIF_API_KEY",V3="nsh_";class X4 extends Error{constructor($){super($);this.name="NotifError"}}class H4 extends X4{statusCode;constructor($,U){super(`API error (${$}): ${U}`);this.statusCode=$,this.name="APIError"}}class W4 extends X4{constructor($="invalid or missing API key"){super(`authentication error: ${$}`);this.name="AuthError"}}class S$ extends X4{cause;constructor($,U){super(`connection error: ${$}`);this.cause=U,this.name="ConnectionError"}}import r6 from"ws";var bX=0,eH=1000,sH=30000,$W=30000,UW=1e4;class N0{ws=null;wsUrl;topics;options;apiKey;eventQueue=[];eventResolvers=[];errorResolvers=[];closed=!1;connected=!1;connectStarted=!1;reconnectAttempts=0;closeCallbacks=[];pingInterval=null;pongTimeout=null;waitingForPong=!1;constructor($,U,v,J={}){this.apiKey=$,this.wsUrl=U.replace("http://","ws://").replace("https://","wss://"),this.topics=v,this.options={autoAck:J.autoAck??!0,from:J.from??"latest",group:J.group}}connect(){if(this.closed)return;try{this.ws=new r6(`${this.wsUrl}/ws`,{headers:{Authorization:`Bearer ${this.apiKey}`}}),this.ws.on("open",()=>{this.connected=!0,this.reconnectAttempts=0,this.sendSubscribe(),this.startPing()}),this.ws.on("pong",()=>{if(this.waitingForPong=!1,this.pongTimeout)clearTimeout(this.pongTimeout),this.pongTimeout=null}),this.ws.on("message",($)=>{try{let U=JSON.parse($.toString());this.handleMessage(U)}catch{}}),this.ws.on("error",()=>{this.rejectPending(new S$("WebSocket error"))}),this.ws.on("close",()=>{if(this.connected=!1,this.stopPing(),!this.closed)this.attemptReconnect()})}catch($){this.rejectPending(new S$("Failed to connect",$))}}sendSubscribe(){if(!this.ws||this.ws.readyState!==r6.OPEN)return;this.ws.send(JSON.stringify({action:"subscribe",topics:this.topics,options:{auto_ack:this.options.autoAck,from:this.options.from,group:this.options.group}}))}handleMessage($){switch($.type){case"event":this.handleEvent($);break;case"error":this.rejectPending(new H4(0,$.message));break;case"subscribed":case"pong":break}}handleEvent($){let U=this.createEvent($),v=this.eventResolvers.shift();if(v)v({value:U,done:!1});else this.eventQueue.push(U)}createEvent($){let U=this.options.autoAck;return{id:$.id,topic:$.topic,data:$.data,timestamp:$.timestamp,attempt:$.attempt,maxAttempts:$.max_attempts,ack:async()=>{if(U)return;this.sendAck($.id)},nack:async(v)=>{if(U)return;this.sendNack($.id,v)}}}sendAck($){if(!this.ws||this.ws.readyState!==r6.OPEN)return;this.ws.send(JSON.stringify({action:"ack",id:$}))}sendNack($,U){if(!this.ws||this.ws.readyState!==r6.OPEN)return;this.ws.send(JSON.stringify({action:"nack",id:$,retry_in:U??"5m"}))}startPing(){this.stopPing(),this.pingInterval=setInterval(()=>{if(!this.ws||this.ws.readyState!==r6.OPEN)return;if(this.waitingForPong){this.ws.terminate();return}this.waitingForPong=!0,this.ws.ping(),this.pongTimeout=setTimeout(()=>{if(this.waitingForPong&&this.ws)this.ws.terminate()},UW)},$W)}stopPing(){if(this.pingInterval)clearInterval(this.pingInterval),this.pingInterval=null;if(this.pongTimeout)clearTimeout(this.pongTimeout),this.pongTimeout=null;this.waitingForPong=!1}attemptReconnect(){if(bX>0&&this.reconnectAttempts>=bX){this.rejectPending(new S$("max reconnection attempts reached")),this.close();return}let $=Math.min(eH*Math.pow(2,this.reconnectAttempts),sH);this.reconnectAttempts++,setTimeout(()=>{if(!this.closed)this.connect()},$)}rejectPending($){let U=this.errorResolvers.shift();if(U)U($)}async*[Symbol.asyncIterator](){if(!this.connectStarted)this.connectStarted=!0,this.connect();while(!this.closed){if(this.eventQueue.length>0){yield this.eventQueue.shift();continue}try{let $=await new Promise((U,v)=>{this.eventResolvers.push(U),this.errorResolvers.push(v)});if($.done)return;yield $.value}catch($){throw $}}}onClose($){this.closeCallbacks.push($)}close(){if(this.closed)return;this.closed=!0,this.stopPing();for(let $ of this.eventResolvers)$({value:void 0,done:!0});if(this.eventResolvers=[],this.errorResolvers=[],this.ws)this.ws.close(),this.ws=null;for(let $ of this.closeCallbacks)$()}get isConnected(){return this.connected}}class G0{apiKey;server;timeout;activeStreams=new Set;constructor($={}){let U=$.apiKey??process.env[q3];if(!U)throw new W4(`API key not provided. Set ${q3} environment variable or pass apiKey option.`);if(!U.startsWith(V3))throw new W4(`API key must start with '${V3}'`);this.apiKey=U,this.server=$.server??AX,this.timeout=$.timeout??SX}async emit($,U){let v=new AbortController,J=setTimeout(()=>v.abort(),this.timeout);try{let _=await fetch(`${this.server}/api/v1/emit`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({topic:$,data:U}),signal:v.signal});if(clearTimeout(J),_.status===401)throw new W4;if(!_.ok){let D=await _.json().catch(()=>({error:"emit failed"}));throw new H4(_.status,D.error??"emit failed")}return await _.json()}catch(_){if(clearTimeout(J),_ instanceof X4)throw _;if(_ instanceof Error&&_.name==="AbortError")throw new S$("request timeout");throw new S$("network error",_)}}subscribe(...$){let U,v={},J=$[$.length-1];if(typeof J==="object"&&J!==null&&!Array.isArray(J))v=J,U=$.slice(0,-1);else U=$;if(U.length>=1&&Array.isArray(U[0]))U=U[0];if(U.length===0)throw Error("At least one topic is required");let _=new N0(this.apiKey,this.server,U,v);return this.activeStreams.add(_),_.onClose(()=>{this.activeStreams.delete(_)}),_}close(){for(let $ of this.activeStreams)$.close();this.activeStreams.clear()}async schedule($,U,v){let J=new AbortController,_=setTimeout(()=>J.abort(),this.timeout);try{let D={topic:$,data:U};if(v?.scheduledFor)D.scheduled_for=v.scheduledFor.toISOString();if(v?.in)D.in=v.in;let X=await fetch(`${this.server}/api/v1/schedules`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify(D),signal:J.signal});if(clearTimeout(_),X.status===401)throw new W4;if(!X.ok){let Y=await X.json().catch(()=>({error:"schedule failed"}));throw new H4(X.status,Y.error??"schedule failed")}return await X.json()}catch(D){if(clearTimeout(_),D instanceof X4)throw D;if(D instanceof Error&&D.name==="AbortError")throw new S$("request timeout");throw new S$("network error",D)}}async listSchedules($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=new URLSearchParams;if($?.status)J.set("status",$.status);if($?.limit!==void 0)J.set("limit",$.limit.toString());if($?.offset!==void 0)J.set("offset",$.offset.toString());let _=`${this.server}/api/v1/schedules${J.toString()?"?"+J.toString():""}`,D=await fetch(_,{method:"GET",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),D.status===401)throw new W4;if(!D.ok){let X=await D.json().catch(()=>({error:"list schedules failed"}));throw new H4(D.status,X.error??"list schedules failed")}return await D.json()}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}async getSchedule($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=await fetch(`${this.server}/api/v1/schedules/${$}`,{method:"GET",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),J.status===401)throw new W4;if(!J.ok){let _=await J.json().catch(()=>({error:"get schedule failed"}));throw new H4(J.status,_.error??"get schedule failed")}return await J.json()}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}async cancelSchedule($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=await fetch(`${this.server}/api/v1/schedules/${$}`,{method:"DELETE",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),J.status===401)throw new W4;if(!J.ok){let _=await J.json().catch(()=>({error:"cancel schedule failed"}));throw new H4(J.status,_.error??"cancel schedule failed")}}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}async runSchedule($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=await fetch(`${this.server}/api/v1/schedules/${$}/run`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),J.status===401)throw new W4;if(!J.ok){let _=await J.json().catch(()=>({error:"run schedule failed"}));throw new H4(J.status,_.error??"run schedule failed")}return await J.json()}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}get serverUrl(){return this.server}}var kX=globalThis,B4=kX.notif||new G0;kX.notif=B4;x$();b4();import{homedir as eZ}from"os";import{existsSync as mO,mkdirSync as sZ}from"fs";var $P=_$.child("router:config");function l2(){let $=C$(),U=T6(),v={};for(let _ of $)v[_.id]=_;let J={agents:v,routes:U.map((_)=>({pattern:_.pattern,agent:_.agent,dmScope:_.dmScope,priority:_.priority})),defaultAgent:w1(),defaultDmScope:vU()};return $P.debug("Loaded router config",{agents:Object.keys(J.agents),routes:J.routes.length}),J}function L9($,U){let{id:v,...J}=U;F1($,J)}function T9($,U){F9($,U===0?null:U)}function K9($){for(let U of Object.values($.agents)){let v=U.cwd.replace("~",eZ());sZ(v,{recursive:!0})}}b4();b4();x$();var oO=_$.child("router:sessions");function j9($){return{sessionKey:$.session_key,sdkSessionId:$.sdk_session_id??void 0,agentId:$.agent_id,agentCwd:$.agent_cwd,chatType:$.chat_type,channel:$.channel??void 0,accountId:$.account_id??void 0,groupId:$.group_id??void 0,subject:$.subject??void 0,displayName:$.display_name??void 0,lastChannel:$.last_channel??void 0,lastTo:$.last_to??void 0,lastAccountId:$.last_account_id??void 0,lastThreadId:$.last_thread_id??void 0,modelOverride:$.model_override??void 0,thinkingLevel:$.thinking_level,queueMode:$.queue_mode,queueDebounceMs:$.queue_debounce_ms??void 0,queueCap:$.queue_cap??void 0,inputTokens:$.input_tokens,outputTokens:$.output_tokens,totalTokens:$.total_tokens,contextTokens:$.context_tokens,systemSent:$.system_sent===1,abortedLastRun:$.aborted_last_run===1,compactionCount:$.compaction_count,createdAt:$.created_at,updatedAt:$.updated_at}}var JU=null;function DU(){if(JU!==null)return JU;let $=C2();return JU={upsert:$.prepare(`
226
+ `),q4=WL.bind(null,{[$q]:"",[Uq]:X,[vq]:R$,[_q]:LD,[TD]:s,[Jq]:j$}),l1="";if(G!==null)if(W===void 0)l1=q4(G);else l1=q4(Object.assign({},G,{name:W}));let m6=Y instanceof Function?Y:Y?Nq:fL,_0=m6().indexOf(":")+1;if(C&&!V)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(T&&typeof T!=="function")throw Error(`Unknown mixin type "${typeof T}" - expected "function"`);if(N$&&typeof N$!=="string")throw Error(`Unknown msgPrefix type "${typeof N$}" - expected "string"`);zL(q,V,C);let c6=Qq(V,C);if(typeof J.emit==="function")J.emit("message",{code:"PINO_CONFIG",config:{levels:c6,messageKey:Q,errorKey:z}});qL(E);let v0=GL(E);return Object.assign(U,{levels:c6,[bL]:v0,[kL]:C,[LL]:J,[EL]:m6,[wL]:_0,[_q]:LD,[TD]:s,[vq]:R$,[KL]:i$,[jL]:r$,[RL]:Q,[OL]:z,[AL]:N,[xL]:N?`,${JSON.stringify(N)}:{`:"",[Uq]:X,[SL]:T,[IL]:S,[$q]:l1,[Jq]:j$,[ML]:h,silent:ZL,onChild:e,[CL]:N$}),Object.setPrototypeOf(U,YL()),NL(U),U[TL](q),U}N4.exports=KD;N4.exports.destination=($=process.stdout.fd)=>{if(typeof $==="object")return $.dest=sG($.dest||process.stdout.fd),eG($);else return eG({dest:sG($),minLength:0})};N4.exports.transport=YD();N4.exports.multistream=aG();N4.exports.levels=Qq();N4.exports.stdSerializers=iL;N4.exports.stdTimeFunctions=Object.assign({},Xq);N4.exports.symbols=Yq;N4.exports.version=PL;N4.exports.default=KD;N4.exports.pino=KD});var KM=k$(D4(),1);var KX=k$(TX(),1),{program:VK,createCommand:HK,createArgument:WK,createOption:BK,CommanderError:ZK,InvalidArgumentError:PK,InvalidOptionArgumentError:FK,Command:jX,Argument:EK,Option:wK,Help:LK}=KX.default;var RX=Symbol("cli:group"),z3=Symbol("cli:commands"),N3=Symbol("cli:args"),G3=Symbol("cli:options");function O$($){return function(U){Reflect.defineMetadata(RX,$,U)}}function I($){return function(U,v,J){let _=Reflect.getMetadata(z3,U.constructor)||[];_.push({...$,method:v}),Reflect.defineMetadata(z3,_,U.constructor)}}function x($,U={}){return function(v,J,_){let D=Reflect.getMetadata(N3,v,J)||[];D.push({name:$,index:_,required:!0,...U}),Reflect.defineMetadata(N3,D,v,J)}}function M$($){return function(U,v,J){let _=Reflect.getMetadata(G3,U,v)||[];_.push({...$,propertyKey:v,index:J}),Reflect.defineMetadata(G3,_,U,v)}}function X0($){return Reflect.getMetadata(RX,$)}function Y0($){return Reflect.getMetadata(z3,$)||[]}function Q0($,U){return(Reflect.getMetadata(N3,$,U)||[]).sort((J,_)=>J.index-_.index)}function z0($,U){return Reflect.getMetadata(G3,$,U)||[]}function OX($,U){for(let v of U){let J=X0(v);if(!J)continue;let _=Y0(v);if(_.length===0)continue;let D=$.command(J.name).description(J.description),X=new v;for(let Y of _)tH(D,X,Y)}}function tH($,U,v){let J=$.command(v.name).description(v.description);if(v.aliases)J.aliases(v.aliases);let _=Q0(U,v.method),D=z0(U,v.method);for(let X of _){let Y=X.required?`<${X.name}>`:`[${X.name}]`;if(X.description)J.argument(Y,X.description,X.defaultValue);else J.argument(Y)}for(let X of D)if(X.description)J.option(X.flags,X.description,X.defaultValue);else J.option(X.flags);J.action((...X)=>{let Y=X.pop(),Q=X.pop(),z=X,N=[],G=_.length+D.length;for(let V=0;V<G;V++){let E=_.find((S)=>S.index===V);if(E){let S=_.indexOf(E);N.push(z[S]);continue}let T=D.find((S)=>S.index===V);if(T){let S=aH(T.flags);N.push(Q[S])}}let q=U[v.method].apply(U,N);if(q instanceof Promise)q.catch((V)=>{console.error(`Error: ${V.message}`),process.exit(1)})})}function aH($){let U=$.match(/--([a-zA-Z-]+)/);if(U)return U[1].replace(/-([a-z])/g,(J,_)=>_.toUpperCase());let v=$.match(/-([a-zA-Z])/);return v?v[1]:""}var aO=k$(D4(),1);var AX="https://api.notif.sh",SX=30000,q3="NOTIF_API_KEY",V3="nsh_";class X4 extends Error{constructor($){super($);this.name="NotifError"}}class H4 extends X4{statusCode;constructor($,U){super(`API error (${$}): ${U}`);this.statusCode=$,this.name="APIError"}}class W4 extends X4{constructor($="invalid or missing API key"){super(`authentication error: ${$}`);this.name="AuthError"}}class S$ extends X4{cause;constructor($,U){super(`connection error: ${$}`);this.cause=U,this.name="ConnectionError"}}import r6 from"ws";var bX=0,eH=1000,sH=30000,$W=30000,UW=1e4;class N0{ws=null;wsUrl;topics;options;apiKey;eventQueue=[];eventResolvers=[];errorResolvers=[];closed=!1;connected=!1;connectStarted=!1;reconnectAttempts=0;closeCallbacks=[];pingInterval=null;pongTimeout=null;waitingForPong=!1;constructor($,U,v,J={}){this.apiKey=$,this.wsUrl=U.replace("http://","ws://").replace("https://","wss://"),this.topics=v,this.options={autoAck:J.autoAck??!0,from:J.from??"latest",group:J.group}}connect(){if(this.closed)return;try{this.ws=new r6(`${this.wsUrl}/ws`,{headers:{Authorization:`Bearer ${this.apiKey}`}}),this.ws.on("open",()=>{this.connected=!0,this.reconnectAttempts=0,this.sendSubscribe(),this.startPing()}),this.ws.on("pong",()=>{if(this.waitingForPong=!1,this.pongTimeout)clearTimeout(this.pongTimeout),this.pongTimeout=null}),this.ws.on("message",($)=>{try{let U=JSON.parse($.toString());this.handleMessage(U)}catch{}}),this.ws.on("error",()=>{this.rejectPending(new S$("WebSocket error"))}),this.ws.on("close",()=>{if(this.connected=!1,this.stopPing(),!this.closed)this.attemptReconnect()})}catch($){this.rejectPending(new S$("Failed to connect",$))}}sendSubscribe(){if(!this.ws||this.ws.readyState!==r6.OPEN)return;this.ws.send(JSON.stringify({action:"subscribe",topics:this.topics,options:{auto_ack:this.options.autoAck,from:this.options.from,group:this.options.group}}))}handleMessage($){switch($.type){case"event":this.handleEvent($);break;case"error":this.rejectPending(new H4(0,$.message));break;case"subscribed":case"pong":break}}handleEvent($){let U=this.createEvent($),v=this.eventResolvers.shift();if(v)v({value:U,done:!1});else this.eventQueue.push(U)}createEvent($){let U=this.options.autoAck;return{id:$.id,topic:$.topic,data:$.data,timestamp:$.timestamp,attempt:$.attempt,maxAttempts:$.max_attempts,ack:async()=>{if(U)return;this.sendAck($.id)},nack:async(v)=>{if(U)return;this.sendNack($.id,v)}}}sendAck($){if(!this.ws||this.ws.readyState!==r6.OPEN)return;this.ws.send(JSON.stringify({action:"ack",id:$}))}sendNack($,U){if(!this.ws||this.ws.readyState!==r6.OPEN)return;this.ws.send(JSON.stringify({action:"nack",id:$,retry_in:U??"5m"}))}startPing(){this.stopPing(),this.pingInterval=setInterval(()=>{if(!this.ws||this.ws.readyState!==r6.OPEN)return;if(this.waitingForPong){this.ws.terminate();return}this.waitingForPong=!0,this.ws.ping(),this.pongTimeout=setTimeout(()=>{if(this.waitingForPong&&this.ws)this.ws.terminate()},UW)},$W)}stopPing(){if(this.pingInterval)clearInterval(this.pingInterval),this.pingInterval=null;if(this.pongTimeout)clearTimeout(this.pongTimeout),this.pongTimeout=null;this.waitingForPong=!1}attemptReconnect(){if(bX>0&&this.reconnectAttempts>=bX){this.rejectPending(new S$("max reconnection attempts reached")),this.close();return}let $=Math.min(eH*Math.pow(2,this.reconnectAttempts),sH);this.reconnectAttempts++,setTimeout(()=>{if(!this.closed)this.connect()},$)}rejectPending($){let U=this.errorResolvers.shift();if(U)U($)}async*[Symbol.asyncIterator](){if(!this.connectStarted)this.connectStarted=!0,this.connect();while(!this.closed){if(this.eventQueue.length>0){yield this.eventQueue.shift();continue}try{let $=await new Promise((U,v)=>{this.eventResolvers.push(U),this.errorResolvers.push(v)});if($.done)return;yield $.value}catch($){throw $}}}onClose($){this.closeCallbacks.push($)}close(){if(this.closed)return;this.closed=!0,this.stopPing();for(let $ of this.eventResolvers)$({value:void 0,done:!0});if(this.eventResolvers=[],this.errorResolvers=[],this.ws)this.ws.close(),this.ws=null;for(let $ of this.closeCallbacks)$()}get isConnected(){return this.connected}}class G0{apiKey;server;timeout;activeStreams=new Set;constructor($={}){let U=$.apiKey??process.env[q3];if(!U)throw new W4(`API key not provided. Set ${q3} environment variable or pass apiKey option.`);if(!U.startsWith(V3))throw new W4(`API key must start with '${V3}'`);this.apiKey=U,this.server=$.server??AX,this.timeout=$.timeout??SX}async emit($,U){let v=new AbortController,J=setTimeout(()=>v.abort(),this.timeout);try{let _=await fetch(`${this.server}/api/v1/emit`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({topic:$,data:U}),signal:v.signal});if(clearTimeout(J),_.status===401)throw new W4;if(!_.ok){let D=await _.json().catch(()=>({error:"emit failed"}));throw new H4(_.status,D.error??"emit failed")}return await _.json()}catch(_){if(clearTimeout(J),_ instanceof X4)throw _;if(_ instanceof Error&&_.name==="AbortError")throw new S$("request timeout");throw new S$("network error",_)}}subscribe(...$){let U,v={},J=$[$.length-1];if(typeof J==="object"&&J!==null&&!Array.isArray(J))v=J,U=$.slice(0,-1);else U=$;if(U.length>=1&&Array.isArray(U[0]))U=U[0];if(U.length===0)throw Error("At least one topic is required");let _=new N0(this.apiKey,this.server,U,v);return this.activeStreams.add(_),_.onClose(()=>{this.activeStreams.delete(_)}),_}close(){for(let $ of this.activeStreams)$.close();this.activeStreams.clear()}async schedule($,U,v){let J=new AbortController,_=setTimeout(()=>J.abort(),this.timeout);try{let D={topic:$,data:U};if(v?.scheduledFor)D.scheduled_for=v.scheduledFor.toISOString();if(v?.in)D.in=v.in;let X=await fetch(`${this.server}/api/v1/schedules`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify(D),signal:J.signal});if(clearTimeout(_),X.status===401)throw new W4;if(!X.ok){let Y=await X.json().catch(()=>({error:"schedule failed"}));throw new H4(X.status,Y.error??"schedule failed")}return await X.json()}catch(D){if(clearTimeout(_),D instanceof X4)throw D;if(D instanceof Error&&D.name==="AbortError")throw new S$("request timeout");throw new S$("network error",D)}}async listSchedules($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=new URLSearchParams;if($?.status)J.set("status",$.status);if($?.limit!==void 0)J.set("limit",$.limit.toString());if($?.offset!==void 0)J.set("offset",$.offset.toString());let _=`${this.server}/api/v1/schedules${J.toString()?"?"+J.toString():""}`,D=await fetch(_,{method:"GET",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),D.status===401)throw new W4;if(!D.ok){let X=await D.json().catch(()=>({error:"list schedules failed"}));throw new H4(D.status,X.error??"list schedules failed")}return await D.json()}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}async getSchedule($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=await fetch(`${this.server}/api/v1/schedules/${$}`,{method:"GET",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),J.status===401)throw new W4;if(!J.ok){let _=await J.json().catch(()=>({error:"get schedule failed"}));throw new H4(J.status,_.error??"get schedule failed")}return await J.json()}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}async cancelSchedule($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=await fetch(`${this.server}/api/v1/schedules/${$}`,{method:"DELETE",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),J.status===401)throw new W4;if(!J.ok){let _=await J.json().catch(()=>({error:"cancel schedule failed"}));throw new H4(J.status,_.error??"cancel schedule failed")}}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}async runSchedule($){let U=new AbortController,v=setTimeout(()=>U.abort(),this.timeout);try{let J=await fetch(`${this.server}/api/v1/schedules/${$}/run`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`},signal:U.signal});if(clearTimeout(v),J.status===401)throw new W4;if(!J.ok){let _=await J.json().catch(()=>({error:"run schedule failed"}));throw new H4(J.status,_.error??"run schedule failed")}return await J.json()}catch(J){if(clearTimeout(v),J instanceof X4)throw J;if(J instanceof Error&&J.name==="AbortError")throw new S$("request timeout");throw new S$("network error",J)}}get serverUrl(){return this.server}}var kX=globalThis,B4=kX.notif||new G0;kX.notif=B4;x$();b4();import{homedir as eZ}from"os";import{existsSync as iO,mkdirSync as sZ}from"fs";var $P=_$.child("router:config");function l2(){let $=C$(),U=T6(),v={};for(let _ of $)v[_.id]=_;let J={agents:v,routes:U.map((_)=>({pattern:_.pattern,agent:_.agent,dmScope:_.dmScope,priority:_.priority})),defaultAgent:w1(),defaultDmScope:vU()};return $P.debug("Loaded router config",{agents:Object.keys(J.agents),routes:J.routes.length}),J}function L9($,U){let{id:v,...J}=U;F1($,J)}function T9($,U){F9($,U===0?null:U)}function K9($){for(let U of Object.values($.agents)){let v=U.cwd.replace("~",eZ());sZ(v,{recursive:!0})}}b4();b4();x$();var dO=_$.child("router:sessions");function j9($){return{sessionKey:$.session_key,sdkSessionId:$.sdk_session_id??void 0,agentId:$.agent_id,agentCwd:$.agent_cwd,chatType:$.chat_type,channel:$.channel??void 0,accountId:$.account_id??void 0,groupId:$.group_id??void 0,subject:$.subject??void 0,displayName:$.display_name??void 0,lastChannel:$.last_channel??void 0,lastTo:$.last_to??void 0,lastAccountId:$.last_account_id??void 0,lastThreadId:$.last_thread_id??void 0,modelOverride:$.model_override??void 0,thinkingLevel:$.thinking_level,queueMode:$.queue_mode,queueDebounceMs:$.queue_debounce_ms??void 0,queueCap:$.queue_cap??void 0,inputTokens:$.input_tokens,outputTokens:$.output_tokens,totalTokens:$.total_tokens,contextTokens:$.context_tokens,systemSent:$.system_sent===1,abortedLastRun:$.aborted_last_run===1,compactionCount:$.compaction_count,createdAt:$.created_at,updatedAt:$.updated_at}}var JU=null;function DU(){if(JU!==null)return JU;let $=C2();return JU={upsert:$.prepare(`
227
227
  INSERT INTO sessions (
228
228
  session_key, sdk_session_id, agent_id, agent_cwd,
229
229
  chat_type, channel, account_id, group_id, subject, display_name,
@@ -299,8 +299,8 @@ Bye!`),_.close(),process.exit(0);if(Y==="/reset"){$1(v),console.log(`Session res
299
299
  \u274C ${N.error}`);break}if(N.response)process.stdout.write(N.response),v+=N.response.length}}catch{}})();return await B4.emit(`ravi.${$}.prompt`,{prompt:U}),await Y,X(),await Promise.race([Q,new Promise((z)=>setTimeout(z,100))]),v}session($){if(!z$($))console.error(`Agent not found: ${$}`),process.exit(1);let v=R9($);if(console.log(`
300
300
  \uD83D\uDCCB Sessions for agent: ${$}
301
301
  `),v.length===0){console.log(" No active sessions"),console.log(`
302
- Start a session with: ravi agents run ${$} "hello"`);return}for(let J of v){let _=(J.inputTokens||0)+(J.outputTokens||0),D=new Date(J.updatedAt).toLocaleString();console.log(` ${J.sessionKey}`),console.log(` SDK: ${J.sdkSessionId||"(none)"}`),console.log(` Tokens: ${_}`),console.log(` Updated: ${D}`),console.log()}}reset($,U){if(!z$($))console.error(`Agent not found: ${$}`),process.exit(1);let J=U||`agent:${$}:main`;if($1(J))console.log(`\u2705 Session reset: ${J}`);else console.log(`\u2139\uFE0F No session to reset: ${J}`)}}b([I({name:"list",description:"List all agents"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],L1.prototype,"list",null),b([I({name:"show",description:"Show agent details"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],L1.prototype,"show",null),b([I({name:"create",description:"Create a new agent"}),K(0,x("id",{description:"Agent ID"})),K(1,x("cwd",{description:"Working directory"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],L1.prototype,"create",null),b([I({name:"delete",description:"Delete an agent"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],L1.prototype,"delete",null),b([I({name:"set",description:"Set agent property"}),K(0,x("id",{description:"Agent ID"})),K(1,x("key",{description:"Property key"})),K(2,x("value",{description:"Property value"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],L1.prototype,"set",null),b([I({name:"tools",description:"Manage agent tools"}),K(0,x("id",{description:"Agent ID"})),K(1,x("action",{required:!1,description:"Action: allow, deny, clear, init"})),K(2,x("tool",{required:!1,description:"Tool name or category (sdk, cli, all)"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],L1.prototype,"tools",null),b([I({name:"debounce",description:"Set message debounce time"}),K(0,x("id",{description:"Agent ID"})),K(1,x("ms",{required:!1,description:"Debounce time in ms (0 to disable)"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],L1.prototype,"debounce",null),b([I({name:"run",description:"Send a prompt to an agent"}),K(0,x("id",{description:"Agent ID"})),K(1,x("prompt",{description:"Prompt to send"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],L1.prototype,"run",null),b([I({name:"chat",description:"Interactive chat with an agent"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],L1.prototype,"chat",null),b([I({name:"session",description:"Show agent session status"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],L1.prototype,"session",null),b([I({name:"reset",description:"Reset agent session"}),K(0,x("id",{description:"Agent ID"})),K(1,x("sessionKey",{required:!1,description:"Specific session key (default: agent:ID:main)"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],L1.prototype,"reset",null),L1=b([O$({name:"agents",description:"Agent management"})],L1);var eb=M$(D4(),1);var iq=M$(GN(),1);o5();var NP=c.object({emoji:c.string().default("\uD83D\uDC40"),direct:c.boolean().default(!0),group:c.enum(["always","mentions","never"]).default("mentions")}),GP=c.object({name:c.string().optional(),enabled:c.boolean().default(!0),dmPolicy:c.enum(["pairing","open","closed"]).default("pairing"),allowFrom:c.array(c.string()).default([]),groupPolicy:c.enum(["open","allowlist","closed"]).default("closed"),groupAllowFrom:c.array(c.string()).default([]),sendReadReceipts:c.boolean().default(!0),ackReaction:NP.optional(),debounceMs:c.number().min(0).max(30000).default(500),authDir:c.string().optional()}),qP=c.object({accounts:c.record(c.string(),GP).default({})}),qN={accounts:{}},VP={enabled:!0,dmPolicy:"pairing",allowFrom:[],groupPolicy:"closed",groupAllowFrom:[],sendReadReceipts:!0,debounceMs:500};function VN($){return qP.parse($)}function A6($,U){return $.accounts[U]??VP}x$();var qq=M$(Gq(),1);import mL,{DisconnectReason as jD,useMultiFileAuthState as cL,fetchLatestBaileysVersion as nL,makeCacheableSignalKeyStore as pL,Browsers as rL}from"@whiskeysockets/baileys";import{join as Vq}from"path";import{homedir as dL}from"os";import{mkdirSync as oL}from"fs";var e$=_$.child("wa:session"),tL=Vq(dL(),".ravi","whatsapp-auth"),aL=10,eL=1000,sL=30000;class Hq{sessions=new Map;listeners=new Map;baileysLogger=qq.default({level:"silent"});async start($,U){let v=this.sessions.get($);if(v&&v.state==="connected")return e$.info(`Session ${$} already connected`),v.socket;let J=U.authDir??Vq(tL,$);oL(J,{recursive:!0}),e$.info(`Starting session ${$}`,{authDir:J}),this.emit("stateChange",$,"connecting");let{state:_,saveCreds:D}=await cL(J),{version:X}=await nL();e$.debug("Using Baileys version",{version:X});let Y=mL({version:X,auth:{creds:_.creds,keys:pL(_.keys,this.baileysLogger)},browser:rL.ubuntu("Chrome"),logger:this.baileysLogger,markOnlineOnConnect:!1,syncFullHistory:!1}),Q={accountId:$,socket:Y,state:"connecting",lastActivity:Date.now(),reconnectAttempts:0};return this.sessions.set($,Q),Y.ev.on("connection.update",(z)=>{this.handleConnectionUpdate($,U,z)}),Y.ev.on("creds.update",D),this.emit("socketReady",$,Y),Y}async stop($){let U=this.sessions.get($);if(!U){e$.debug(`Session ${$} not found`);return}e$.info(`Stopping session ${$}`),U.socket.end(void 0),this.sessions.delete($),this.emit("stateChange",$,"disconnected")}async stopAll(){for(let $ of this.sessions.keys())await this.stop($)}getSocket($){return this.sessions.get($)?.socket??null}getState($){return this.sessions.get($)?.state??"disconnected"}getActiveAccounts(){return Array.from(this.sessions.keys())}on($,U){if(!this.listeners.has($))this.listeners.set($,new Set);return this.listeners.get($).add(U),()=>{this.listeners.get($)?.delete(U)}}onSocketEvent($,U,v){let J=this.sessions.get($);if(!J)return e$.warn(`Cannot subscribe to ${U} - session ${$} not found`),()=>{};return J.socket.ev.on(U,v),()=>{J.socket.ev.off(U,v)}}touch($){let U=this.sessions.get($);if(U)U.lastActivity=Date.now()}emit($,...U){let v=this.listeners.get($);if(v)for(let J of v)try{J(...U)}catch(_){e$.error(`Error in ${$} listener`,_)}}handleConnectionUpdate($,U,v){let{connection:J,lastDisconnect:_,qr:D}=v,X=this.sessions.get($);if(e$.debug(`Connection update for ${$}`,{connection:J,hasQr:!!D}),D){if(X)X.state="qr";this.emit("stateChange",$,"qr"),this.emit("qrCode",$,D)}if(J==="connecting"){if(X)X.state="connecting";this.emit("stateChange",$,"connecting")}if(J==="open"){if(X)X.state="connected",X.reconnectAttempts=0,X.lastActivity=Date.now();let Y=X?.socket.user?.id??"unknown";e$.info(`Session ${$} connected`,{user:Y}),this.emit("stateChange",$,"connected"),this.emit("connected",$,Y)}if(J==="close"){let Y=_?.error?.output?.statusCode,Q=jD[Y]??"unknown",z=Y!==jD.loggedOut;if(e$.warn(`Session ${$} disconnected`,{statusCode:Y,reason:Q}),X)X.state="disconnected";if(this.emit("stateChange",$,"disconnected"),this.emit("disconnected",$,Q),z&&X)this.handleReconnect($,U);else if(Y===jD.loggedOut)e$.error(`Session ${$} logged out - re-authentication required`),this.sessions.delete($)}}handleReconnect($,U){let v=this.sessions.get($);if(!v)return;if(v.reconnectAttempts++,v.reconnectAttempts>aL){e$.error(`Session ${$} max reconnection attempts reached`),this.emit("error",$,Error("Max reconnection attempts reached"));return}let J=Math.min(eL*Math.pow(2,v.reconnectAttempts),sL);e$.info(`Reconnecting ${$} in ${J}ms (attempt ${v.reconnectAttempts})`),setTimeout(async()=>{try{await this.start($,U)}catch(_){e$.error(`Reconnection failed for ${$}`,_),this.emit("error",$,_)}},J)}}var G$=new Hq;var $T=/^(\d+)(?::(\d+))?@s\.whatsapp\.net$/i,Wq=/^(\d+)@lid$/i,Bq=/^(\d+(?:-\d+)?)@g\.us$/i;function UT($){let U=$.trim(),v=U.match($T);if(v)return{user:v[1],server:"s.whatsapp.net",device:v[2]?parseInt(v[2],10):void 0,isLid:!1,isGroup:!1};let J=U.match(Wq);if(J)return{user:J[1],server:"lid",isLid:!0,isGroup:!1};let _=U.match(Bq);if(_)return{user:_[1],server:"g.us",isLid:!1,isGroup:!0};return null}function q$($){let U=$.trim();if(U.toLowerCase().startsWith("lid:"))return`lid:${U.slice(4)}`;let v=UT(U);if(v){if(v.isLid)return`lid:${v.user}`;if(v.isGroup)return`group:${v.user}`;return v.user}if(U.toLowerCase().startsWith("group:"))return`group:${U.slice(6)}`;return U.replace(/\D/g,"")}function M6($){let U=q$($);if(U.startsWith("lid:"))return`${U.slice(4)}@lid`;if(U.startsWith("group:"))return`${U.slice(6)}@g.us`;if(/^\d+$/.test(U))return`${U}@s.whatsapp.net`;return null}function RD($){return Bq.test($)||$.startsWith("group:")}function Zq($){return Wq.test($)||$.startsWith("lid:")}function OD($){return $==="status@broadcast"}function l$($){let U=q$($);if(U.startsWith("lid:"))return`LID:${U.slice(4)}`;if(U.startsWith("group:"))return`Group:${U.slice(6)}`;if(U.length===13&&U.startsWith("55"))return`+${U.slice(0,2)} (${U.slice(2,4)}) ${U.slice(4,9)}-${U.slice(9)}`;if(U.length===12&&U.startsWith("55"))return`+${U.slice(0,2)} (${U.slice(2,4)}) ${U.slice(4,8)}-${U.slice(8)}`;if(U.length>=10)return`+${U}`;return U}x$();var kU=_$.child("wa:inbound");function Pq($){let U=$.message;if(!U)return;return U.conversation||U.extendedTextMessage?.text||U.imageMessage?.caption||U.videoMessage?.caption||U.documentMessage?.caption||void 0}function Fq($){let U=$.message;if(!U)return;if(U.imageMessage)return{type:"image",mimetype:U.imageMessage.mimetype??"image/jpeg",caption:U.imageMessage.caption??void 0};if(U.videoMessage)return{type:"video",mimetype:U.videoMessage.mimetype??"video/mp4",caption:U.videoMessage.caption??void 0};if(U.audioMessage)return{type:"audio",mimetype:U.audioMessage.mimetype??"audio/ogg"};if(U.documentMessage)return{type:"document",mimetype:U.documentMessage.mimetype??"application/octet-stream",filename:U.documentMessage.fileName??void 0,caption:U.documentMessage.caption??void 0};if(U.stickerMessage)return{type:"sticker",mimetype:U.stickerMessage.mimetype??"image/webp"};return}function _T($){if(!$)return;if($.imageMessage)return"image";if($.videoMessage)return"video";if($.audioMessage)return"audio";if($.documentMessage)return"document";if($.stickerMessage)return"sticker";return}function vT($){let U=$.message?.extendedTextMessage?.contextInfo??$.message?.imageMessage?.contextInfo??$.message?.videoMessage?.contextInfo??$.message?.documentMessage?.contextInfo??$.message?.audioMessage?.contextInfo??$.message?.stickerMessage?.contextInfo;if(!U?.stanzaId)return;let v=U.quotedMessage,J=v?.conversation??v?.extendedTextMessage?.text??v?.imageMessage?.caption??v?.videoMessage?.caption??v?.documentMessage?.caption??void 0;return{id:U.stanzaId,senderId:U.participant??"",text:J,mediaType:_T(v)}}async function Eq($){try{let{downloadMediaMessage:U}=await import("@whiskeysockets/baileys");return await U($,"buffer",{})}catch(U){kU.warn("Failed to download media",{error:U});return}}function wq($,U,v,J){let _=U.key.remoteJid;if(!_)return kU.warn("Message has no remoteJid"),null;if(OD(_))return kU.debug("Skipping broadcast message"),null;let D=U.key.id;if(!D)return kU.warn("Message has no ID"),null;let X=RD(_),Y=Zq(_),Q=X?U.key.participant??_:_,z=q$(Q),N=q$(_),G=Pq(U),W=Fq(U),q=vT(U),V=Q.split("@")[0].replace(/^lid:/,"");return{id:D,channelId:"whatsapp",accountId:$,senderId:z,senderName:U.pushName??void 0,senderPhone:Y?void 0:V,chatId:N,text:G,media:W,replyTo:q,timestamp:U.messageTimestamp*1000||Date.now(),isGroup:X,groupName:X?v:void 0,groupMembers:X?J:void 0,raw:U,jid:_,isLid:Y}}function Lq($,U){if($.key.fromMe)return{pass:!1,reason:"own_message"};let v=$.key.remoteJid;if(!v)return{pass:!1,reason:"no_jid"};if(OD(v))return{pass:!1,reason:"broadcast"};let J=!!Pq($),_=!!Fq($);if(!J&&!_)return{pass:!1,reason:"no_content"};return{pass:!0}}var bU=new Map;function Tq($,U){let v=`${$.accountId}:${$.chatId}`;return new Promise((J)=>{let _=bU.get(v);if(_)_.messages.push($),clearTimeout(_.timer),_.timer=setTimeout(()=>{bU.delete(v),_.resolve(_.messages)},U);else{let D={messages:[$],resolve:J,timer:setTimeout(()=>{bU.delete(v),J(D.messages)},U)};bU.set(v,D)}})}function Kq($){if($.length===1)return $[0];let U=$[$.length-1],v=$.map((J)=>J.text).filter((J)=>!!J);return{...U,text:v.join(`
303
- `)}}x$();import JT from"openai";var jq=_$.child("transcribe:openai");async function MU($,U){let v=process.env.OPENAI_API_KEY;if(!v)throw Error("OPENAI_API_KEY not configured");let J=new JT({apiKey:v}),X=`audio.${{"audio/ogg":"ogg","audio/ogg; codecs=opus":"ogg","audio/mpeg":"mp3","audio/mp4":"m4a","audio/wav":"wav","audio/webm":"webm"}[U]??"ogg"}`;jq.debug("Transcribing audio",{mimetype:U,size:$.length,filename:X});let Y=new File([$],X,{type:U}),Q=await J.audio.transcriptions.create({file:Y,model:"gpt-4o-transcribe",language:"pt"});return jq.info("Transcription complete",{textLength:Q.text.length}),{text:Q.text}}x$();var f4=_$.child("wa:outbound");async function Rq($,U,v){let J=M6(U);if(!J)return{success:!1,error:`Invalid target: ${U}`};try{let _;if(v.media)_=DT(v.media,v.text);else if(v.text)_={text:v.text};else if(v.reaction)return await xU($,U,v.replyTo??"",v.reaction);else return{success:!1,error:"No content to send"};if(v.replyTo&&"text"in _)_={..._};let D=await $.sendMessage(J,_);return f4.debug("Message sent",{jid:J,messageId:D?.key?.id}),{success:!0,messageId:D?.key?.id??void 0}}catch(_){let D=_ instanceof Error?_.message:"Unknown error";return f4.error("Failed to send message",{jid:J,error:D}),{success:!1,error:D}}}function DT($,U){let v=typeof $.data==="string"?Buffer.from($.data,"base64"):$.data;switch($.type){case"image":return{image:v,caption:U??$.caption,mimetype:$.mimetype};case"video":return{video:v,caption:U??$.caption,mimetype:$.mimetype};case"audio":return{audio:v,mimetype:$.mimetype,ptt:$.mimetype.includes("ogg")};case"document":return{document:v,fileName:$.filename??"document",mimetype:$.mimetype,caption:U??$.caption};default:throw Error(`Unsupported media type: ${$.type}`)}}async function Oq($,U,v){let J=M6(U);if(!J){f4.warn("Cannot send typing - invalid target",{targetId:U});return}try{await $.sendPresenceUpdate(v?"composing":"paused",J),f4.debug("Typing indicator sent",{jid:J,typing:v})}catch(_){f4.error("Failed to send typing indicator",_)}}async function AD($,U,v,J){let _=M6(U),D=M6(v);if(!_){f4.warn("Cannot send read receipt - invalid chat",{chatId:U});return}try{await $.readMessages([{remoteJid:_,id:J[0],participant:_!==D?D??void 0:void 0}]),f4.debug("Read receipt sent",{chatJid:_,messageIds:J})}catch(X){f4.error("Failed to send read receipt",X)}}async function xU($,U,v,J){let _=M6(U);if(!_)return{success:!1,error:`Invalid chat: ${U}`};try{return await $.sendMessage(_,{react:{text:J,key:{remoteJid:_,id:v}}}),f4.debug("Reaction sent",{jid:_,messageId:v,emoji:J}),{success:!0}}catch(D){let X=D instanceof Error?D.message:"Unknown error";return f4.error("Failed to send reaction",{jid:_,messageId:v,error:X}),{success:!1,error:X}}}async function Aq($,U,v,J,_,D){if(!D)return;if(J){if(D.group==="never")return;if(D.group==="mentions"&&!_)return}else if(!D.direct)return;await xU($,U,v,D.emoji)}x$();var XT=_$.child("wa:status"),IU=new Map;function SD($){let U=IU.get($);if(!U)U={messagesReceived:0,messagesSent:0,startTime:Date.now()},IU.set($,U);return U}function bD($){let U=SD($);U.messagesReceived++,G$.touch($)}function kD($){let U=SD($);U.messagesSent++,G$.touch($)}function MD($,U){let v=SD($);v.lastError=U,v.lastErrorTime=Date.now(),XT.error(`Error recorded for ${$}`,{error:U})}function CU($){let U=G$.getState($),v=IU.get($);if(!v&&U==="disconnected")return null;let J=v??{messagesReceived:0,messagesSent:0,startTime:Date.now()};return{id:$,state:U,lastActivity:G$.getState($)==="connected"?Date.now():void 0,lastError:J.lastError,metrics:{messagesReceived:J.messagesReceived,messagesSent:J.messagesSent,uptime:Date.now()-J.startTime}}}function Sq(){let $=G$.getActiveAccounts(),U=[];for(let J of $){let _=CU(J);if(_)U.push(_)}for(let J of IU.keys())if(!$.includes(J)){let _=CU(J);if(_)U.push(_)}return{healthy:U.some((J)=>J.state==="connected"),accounts:U,lastCheck:Date.now()}}var YT=new Map;function bq($){YT.set($,Date.now())}import{Database as QT}from"bun:sqlite";import{join as Mq}from"path";import{homedir as zT}from"os";import{mkdirSync as NT}from"fs";var xq=Mq(zT(),".ravi"),GT=Mq(xq,"chat.db");NT(xq,{recursive:!0});var p$=new QT(GT);p$.exec(`
302
+ Start a session with: ravi agents run ${$} "hello"`);return}for(let J of v){let _=(J.inputTokens||0)+(J.outputTokens||0),D=new Date(J.updatedAt).toLocaleString();console.log(` ${J.sessionKey}`),console.log(` SDK: ${J.sdkSessionId||"(none)"}`),console.log(` Tokens: ${_}`),console.log(` Updated: ${D}`),console.log()}}reset($,U){if(!z$($))console.error(`Agent not found: ${$}`),process.exit(1);let J=U||`agent:${$}:main`;if($1(J))console.log(`\u2705 Session reset: ${J}`);else console.log(`\u2139\uFE0F No session to reset: ${J}`)}}b([I({name:"list",description:"List all agents"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],L1.prototype,"list",null),b([I({name:"show",description:"Show agent details"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],L1.prototype,"show",null),b([I({name:"create",description:"Create a new agent"}),K(0,x("id",{description:"Agent ID"})),K(1,x("cwd",{description:"Working directory"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],L1.prototype,"create",null),b([I({name:"delete",description:"Delete an agent"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],L1.prototype,"delete",null),b([I({name:"set",description:"Set agent property"}),K(0,x("id",{description:"Agent ID"})),K(1,x("key",{description:"Property key"})),K(2,x("value",{description:"Property value"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],L1.prototype,"set",null),b([I({name:"tools",description:"Manage agent tools"}),K(0,x("id",{description:"Agent ID"})),K(1,x("action",{required:!1,description:"Action: allow, deny, clear, init"})),K(2,x("tool",{required:!1,description:"Tool name or category (sdk, cli, all)"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],L1.prototype,"tools",null),b([I({name:"debounce",description:"Set message debounce time"}),K(0,x("id",{description:"Agent ID"})),K(1,x("ms",{required:!1,description:"Debounce time in ms (0 to disable)"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],L1.prototype,"debounce",null),b([I({name:"run",description:"Send a prompt to an agent"}),K(0,x("id",{description:"Agent ID"})),K(1,x("prompt",{description:"Prompt to send"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],L1.prototype,"run",null),b([I({name:"chat",description:"Interactive chat with an agent"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],L1.prototype,"chat",null),b([I({name:"session",description:"Show agent session status"}),K(0,x("id",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],L1.prototype,"session",null),b([I({name:"reset",description:"Reset agent session"}),K(0,x("id",{description:"Agent ID"})),K(1,x("sessionKey",{required:!1,description:"Specific session key (default: agent:ID:main)"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],L1.prototype,"reset",null),L1=b([O$({name:"agents",description:"Agent management"})],L1);var ab=k$(D4(),1);var iq=k$(GN(),1);o5();var NP=c.object({emoji:c.string().default("\uD83D\uDC40"),direct:c.boolean().default(!0),group:c.enum(["always","mentions","never"]).default("mentions")}),GP=c.object({name:c.string().optional(),enabled:c.boolean().default(!0),dmPolicy:c.enum(["pairing","open","closed"]).default("pairing"),allowFrom:c.array(c.string()).default([]),groupPolicy:c.enum(["open","allowlist","closed"]).default("closed"),groupAllowFrom:c.array(c.string()).default([]),sendReadReceipts:c.boolean().default(!0),ackReaction:NP.optional(),debounceMs:c.number().min(0).max(30000).default(500),authDir:c.string().optional()}),qP=c.object({accounts:c.record(c.string(),GP).default({})}),qN={accounts:{}},VP={enabled:!0,dmPolicy:"pairing",allowFrom:[],groupPolicy:"closed",groupAllowFrom:[],sendReadReceipts:!0,debounceMs:500};function VN($){return qP.parse($)}function A6($,U){return $.accounts[U]??VP}x$();var qq=k$(Gq(),1);import mL,{DisconnectReason as jD,useMultiFileAuthState as cL,fetchLatestBaileysVersion as nL,makeCacheableSignalKeyStore as pL,Browsers as rL}from"@whiskeysockets/baileys";import{join as Vq}from"path";import{homedir as dL}from"os";import{mkdirSync as oL}from"fs";var e$=_$.child("wa:session"),tL=Vq(dL(),".ravi","whatsapp-auth"),aL=10,eL=1000,sL=30000;class Hq{sessions=new Map;listeners=new Map;baileysLogger=qq.default({level:"silent"});async start($,U){let v=this.sessions.get($);if(v&&v.state==="connected")return e$.info(`Session ${$} already connected`),v.socket;let J=U.authDir??Vq(tL,$);oL(J,{recursive:!0}),e$.info(`Starting session ${$}`,{authDir:J}),this.emit("stateChange",$,"connecting");let{state:_,saveCreds:D}=await cL(J),{version:X}=await nL();e$.debug("Using Baileys version",{version:X});let Y=mL({version:X,auth:{creds:_.creds,keys:pL(_.keys,this.baileysLogger)},browser:rL.ubuntu("Chrome"),logger:this.baileysLogger,markOnlineOnConnect:!1,syncFullHistory:!1}),Q={accountId:$,socket:Y,state:"connecting",lastActivity:Date.now(),reconnectAttempts:0};return this.sessions.set($,Q),Y.ev.on("connection.update",(z)=>{this.handleConnectionUpdate($,U,z)}),Y.ev.on("creds.update",D),this.emit("socketReady",$,Y),Y}async stop($){let U=this.sessions.get($);if(!U){e$.debug(`Session ${$} not found`);return}e$.info(`Stopping session ${$}`),U.socket.end(void 0),this.sessions.delete($),this.emit("stateChange",$,"disconnected")}async stopAll(){for(let $ of this.sessions.keys())await this.stop($)}getSocket($){return this.sessions.get($)?.socket??null}getState($){return this.sessions.get($)?.state??"disconnected"}getActiveAccounts(){return Array.from(this.sessions.keys())}on($,U){if(!this.listeners.has($))this.listeners.set($,new Set);return this.listeners.get($).add(U),()=>{this.listeners.get($)?.delete(U)}}onSocketEvent($,U,v){let J=this.sessions.get($);if(!J)return e$.warn(`Cannot subscribe to ${U} - session ${$} not found`),()=>{};return J.socket.ev.on(U,v),()=>{J.socket.ev.off(U,v)}}touch($){let U=this.sessions.get($);if(U)U.lastActivity=Date.now()}emit($,...U){let v=this.listeners.get($);if(v)for(let J of v)try{J(...U)}catch(_){e$.error(`Error in ${$} listener`,_)}}handleConnectionUpdate($,U,v){let{connection:J,lastDisconnect:_,qr:D}=v,X=this.sessions.get($);if(e$.debug(`Connection update for ${$}`,{connection:J,hasQr:!!D}),D){if(X)X.state="qr";this.emit("stateChange",$,"qr"),this.emit("qrCode",$,D)}if(J==="connecting"){if(X)X.state="connecting";this.emit("stateChange",$,"connecting")}if(J==="open"){if(X)X.state="connected",X.reconnectAttempts=0,X.lastActivity=Date.now();let Y=X?.socket.user?.id??"unknown";e$.info(`Session ${$} connected`,{user:Y}),this.emit("stateChange",$,"connected"),this.emit("connected",$,Y)}if(J==="close"){let Y=_?.error?.output?.statusCode,Q=jD[Y]??"unknown",z=Y!==jD.loggedOut;if(e$.warn(`Session ${$} disconnected`,{statusCode:Y,reason:Q}),X)X.state="disconnected";if(this.emit("stateChange",$,"disconnected"),this.emit("disconnected",$,Q),z&&X)this.handleReconnect($,U);else if(Y===jD.loggedOut)e$.error(`Session ${$} logged out - re-authentication required`),this.sessions.delete($)}}handleReconnect($,U){let v=this.sessions.get($);if(!v)return;if(v.reconnectAttempts++,v.reconnectAttempts>aL){e$.error(`Session ${$} max reconnection attempts reached`),this.emit("error",$,Error("Max reconnection attempts reached"));return}let J=Math.min(eL*Math.pow(2,v.reconnectAttempts),sL);e$.info(`Reconnecting ${$} in ${J}ms (attempt ${v.reconnectAttempts})`),setTimeout(async()=>{try{await this.start($,U)}catch(_){e$.error(`Reconnection failed for ${$}`,_),this.emit("error",$,_)}},J)}}var q$=new Hq;var $T=/^(\d+)(?::(\d+))?@s\.whatsapp\.net$/i,Wq=/^(\d+)@lid$/i,Bq=/^(\d+(?:-\d+)?)@g\.us$/i;function UT($){let U=$.trim(),v=U.match($T);if(v)return{user:v[1],server:"s.whatsapp.net",device:v[2]?parseInt(v[2],10):void 0,isLid:!1,isGroup:!1};let J=U.match(Wq);if(J)return{user:J[1],server:"lid",isLid:!0,isGroup:!1};let _=U.match(Bq);if(_)return{user:_[1],server:"g.us",isLid:!1,isGroup:!0};return null}function V$($){let U=$.trim();if(U.toLowerCase().startsWith("lid:"))return`lid:${U.slice(4)}`;let v=UT(U);if(v){if(v.isLid)return`lid:${v.user}`;if(v.isGroup)return`group:${v.user}`;return v.user}if(U.toLowerCase().startsWith("group:"))return`group:${U.slice(6)}`;return U.replace(/\D/g,"")}function M6($){let U=V$($);if(U.startsWith("lid:"))return`${U.slice(4)}@lid`;if(U.startsWith("group:"))return`${U.slice(6)}@g.us`;if(/^\d+$/.test(U))return`${U}@s.whatsapp.net`;return null}function RD($){return Bq.test($)||$.startsWith("group:")}function Zq($){return Wq.test($)||$.startsWith("lid:")}function OD($){return $==="status@broadcast"}function l$($){let U=V$($);if(U.startsWith("lid:"))return`LID:${U.slice(4)}`;if(U.startsWith("group:"))return`Group:${U.slice(6)}`;if(U.length===13&&U.startsWith("55"))return`+${U.slice(0,2)} (${U.slice(2,4)}) ${U.slice(4,9)}-${U.slice(9)}`;if(U.length===12&&U.startsWith("55"))return`+${U.slice(0,2)} (${U.slice(2,4)}) ${U.slice(4,8)}-${U.slice(8)}`;if(U.length>=10)return`+${U}`;return U}x$();var kU=_$.child("wa:inbound");function Pq($){let U=$.message;if(!U)return;return U.conversation||U.extendedTextMessage?.text||U.imageMessage?.caption||U.videoMessage?.caption||U.documentMessage?.caption||void 0}function Fq($){let U=$.message;if(!U)return;if(U.imageMessage)return{type:"image",mimetype:U.imageMessage.mimetype??"image/jpeg",caption:U.imageMessage.caption??void 0};if(U.videoMessage)return{type:"video",mimetype:U.videoMessage.mimetype??"video/mp4",caption:U.videoMessage.caption??void 0};if(U.audioMessage)return{type:"audio",mimetype:U.audioMessage.mimetype??"audio/ogg"};if(U.documentMessage)return{type:"document",mimetype:U.documentMessage.mimetype??"application/octet-stream",filename:U.documentMessage.fileName??void 0,caption:U.documentMessage.caption??void 0};if(U.stickerMessage)return{type:"sticker",mimetype:U.stickerMessage.mimetype??"image/webp"};return}function _T($){if(!$)return;if($.imageMessage)return"image";if($.videoMessage)return"video";if($.audioMessage)return"audio";if($.documentMessage)return"document";if($.stickerMessage)return"sticker";return}function vT($){let U=$.message?.extendedTextMessage?.contextInfo??$.message?.imageMessage?.contextInfo??$.message?.videoMessage?.contextInfo??$.message?.documentMessage?.contextInfo??$.message?.audioMessage?.contextInfo??$.message?.stickerMessage?.contextInfo;if(!U?.stanzaId)return;let v=U.quotedMessage,J=v?.conversation??v?.extendedTextMessage?.text??v?.imageMessage?.caption??v?.videoMessage?.caption??v?.documentMessage?.caption??void 0;return{id:U.stanzaId,senderId:U.participant??"",text:J,mediaType:_T(v)}}async function Eq($){try{let{downloadMediaMessage:U}=await import("@whiskeysockets/baileys");return await U($,"buffer",{})}catch(U){kU.warn("Failed to download media",{error:U});return}}function wq($,U,v,J){let _=U.key.remoteJid;if(!_)return kU.warn("Message has no remoteJid"),null;if(OD(_))return kU.debug("Skipping broadcast message"),null;let D=U.key.id;if(!D)return kU.warn("Message has no ID"),null;let X=RD(_),Y=Zq(_),Q=X?U.key.participant??_:_,z=V$(Q),N=V$(_),G=Pq(U),W=Fq(U),q=vT(U),V=Q.split("@")[0].replace(/^lid:/,"");return{id:D,channelId:"whatsapp",accountId:$,senderId:z,senderName:U.pushName??void 0,senderPhone:Y?void 0:V,chatId:N,text:G,media:W,replyTo:q,timestamp:U.messageTimestamp*1000||Date.now(),isGroup:X,groupName:X?v:void 0,groupMembers:X?J:void 0,raw:U,jid:_,isLid:Y}}function Lq($,U){if($.key.fromMe)return{pass:!1,reason:"own_message"};let v=$.key.remoteJid;if(!v)return{pass:!1,reason:"no_jid"};if(OD(v))return{pass:!1,reason:"broadcast"};let J=!!Pq($),_=!!Fq($);if(!J&&!_)return{pass:!1,reason:"no_content"};return{pass:!0}}var bU=new Map;function Tq($,U){let v=`${$.accountId}:${$.chatId}`;return new Promise((J)=>{let _=bU.get(v);if(_)_.messages.push($),clearTimeout(_.timer),_.timer=setTimeout(()=>{bU.delete(v),_.resolve(_.messages)},U);else{let D={messages:[$],resolve:J,timer:setTimeout(()=>{bU.delete(v),J(D.messages)},U)};bU.set(v,D)}})}function Kq($){if($.length===1)return $[0];let U=$[$.length-1],v=$.map((J)=>J.text).filter((J)=>!!J);return{...U,text:v.join(`
303
+ `)}}x$();import JT from"openai";var jq=_$.child("transcribe:openai");async function MU($,U){let v=process.env.OPENAI_API_KEY;if(!v)throw Error("OPENAI_API_KEY not configured");let J=new JT({apiKey:v}),X=`audio.${{"audio/ogg":"ogg","audio/ogg; codecs=opus":"ogg","audio/mpeg":"mp3","audio/mp4":"m4a","audio/wav":"wav","audio/webm":"webm"}[U]??"ogg"}`;jq.debug("Transcribing audio",{mimetype:U,size:$.length,filename:X});let Y=new File([$],X,{type:U}),Q=await J.audio.transcriptions.create({file:Y,model:"gpt-4o-transcribe",language:"pt"});return jq.info("Transcription complete",{textLength:Q.text.length}),{text:Q.text}}x$();var f4=_$.child("wa:outbound");async function Rq($,U,v){let J=M6(U);if(!J)return{success:!1,error:`Invalid target: ${U}`};try{let _;if(v.media)_=DT(v.media,v.text);else if(v.text)_={text:v.text};else if(v.reaction)return await xU($,U,v.replyTo??"",v.reaction);else return{success:!1,error:"No content to send"};if(v.replyTo&&"text"in _)_={..._};let D=await $.sendMessage(J,_);return f4.debug("Message sent",{jid:J,messageId:D?.key?.id}),{success:!0,messageId:D?.key?.id??void 0}}catch(_){let D=_ instanceof Error?_.message:"Unknown error";return f4.error("Failed to send message",{jid:J,error:D}),{success:!1,error:D}}}function DT($,U){let v=typeof $.data==="string"?Buffer.from($.data,"base64"):$.data;switch($.type){case"image":return{image:v,caption:U??$.caption,mimetype:$.mimetype};case"video":return{video:v,caption:U??$.caption,mimetype:$.mimetype};case"audio":return{audio:v,mimetype:$.mimetype,ptt:$.mimetype.includes("ogg")};case"document":return{document:v,fileName:$.filename??"document",mimetype:$.mimetype,caption:U??$.caption};default:throw Error(`Unsupported media type: ${$.type}`)}}async function Oq($,U,v){let J=M6(U);if(!J){f4.warn("Cannot send typing - invalid target",{targetId:U});return}try{await $.sendPresenceUpdate(v?"composing":"paused",J),f4.debug("Typing indicator sent",{jid:J,typing:v})}catch(_){f4.error("Failed to send typing indicator",_)}}async function AD($,U,v,J){let _=M6(U),D=M6(v);if(!_){f4.warn("Cannot send read receipt - invalid chat",{chatId:U});return}try{await $.readMessages([{remoteJid:_,id:J[0],participant:_!==D?D??void 0:void 0}]),f4.debug("Read receipt sent",{chatJid:_,messageIds:J})}catch(X){f4.error("Failed to send read receipt",X)}}async function xU($,U,v,J){let _=M6(U);if(!_)return{success:!1,error:`Invalid chat: ${U}`};try{return await $.sendMessage(_,{react:{text:J,key:{remoteJid:_,id:v}}}),f4.debug("Reaction sent",{jid:_,messageId:v,emoji:J}),{success:!0}}catch(D){let X=D instanceof Error?D.message:"Unknown error";return f4.error("Failed to send reaction",{jid:_,messageId:v,error:X}),{success:!1,error:X}}}async function Aq($,U,v,J,_,D){if(!D)return;if(J){if(D.group==="never")return;if(D.group==="mentions"&&!_)return}else if(!D.direct)return;await xU($,U,v,D.emoji)}x$();var XT=_$.child("wa:status"),IU=new Map;function SD($){let U=IU.get($);if(!U)U={messagesReceived:0,messagesSent:0,startTime:Date.now()},IU.set($,U);return U}function bD($){let U=SD($);U.messagesReceived++,q$.touch($)}function kD($){let U=SD($);U.messagesSent++,q$.touch($)}function MD($,U){let v=SD($);v.lastError=U,v.lastErrorTime=Date.now(),XT.error(`Error recorded for ${$}`,{error:U})}function CU($){let U=q$.getState($),v=IU.get($);if(!v&&U==="disconnected")return null;let J=v??{messagesReceived:0,messagesSent:0,startTime:Date.now()};return{id:$,state:U,lastActivity:q$.getState($)==="connected"?Date.now():void 0,lastError:J.lastError,metrics:{messagesReceived:J.messagesReceived,messagesSent:J.messagesSent,uptime:Date.now()-J.startTime}}}function Sq(){let $=q$.getActiveAccounts(),U=[];for(let J of $){let _=CU(J);if(_)U.push(_)}for(let J of IU.keys())if(!$.includes(J)){let _=CU(J);if(_)U.push(_)}return{healthy:U.some((J)=>J.state==="connected"),accounts:U,lastCheck:Date.now()}}var YT=new Map;function bq($){YT.set($,Date.now())}import{Database as QT}from"bun:sqlite";import{join as Mq}from"path";import{homedir as zT}from"os";import{mkdirSync as NT}from"fs";var xq=Mq(zT(),".ravi"),GT=Mq(xq,"chat.db");NT(xq,{recursive:!0});var p$=new QT(GT);p$.exec(`
304
304
  CREATE TABLE IF NOT EXISTS contacts (
305
305
  phone TEXT PRIMARY KEY,
306
306
  name TEXT,
@@ -321,33 +321,33 @@ Bye!`),_.close(),process.exit(0);if(Y==="/reset"){$1(v),console.log(`Session res
321
321
  ON CONFLICT(phone) DO UPDATE SET
322
322
  name = COALESCE(excluded.name, contacts.name),
323
323
  updated_at = datetime('now')
324
- `),HT=p$.prepare("SELECT * FROM contacts WHERE phone = ?"),WT=p$.prepare("SELECT * FROM contacts ORDER BY status, name, phone"),BT=p$.prepare("SELECT * FROM contacts WHERE status = ? ORDER BY name, phone"),ZT=p$.prepare("DELETE FROM contacts WHERE phone = ?"),kq=p$.prepare("UPDATE contacts SET status = ?, agent_id = ?, updated_at = datetime('now') WHERE phone = ?");function xD($,U,v="allowed"){let J=q$($);qT.run(J,U??null,v)}function fU($,U){let v=q$($);VT.run(v,U??null)}function J1($){let U=q$($);return HT.get(U)??null}function x6($){let U=J1($);if(!U)return!1;return U.status==="allowed"}function Iq(){return WT.all()}function PT($){return BT.all($)}function Cq(){return PT("pending")}function fq($){let U=q$($);return ZT.run(U),p$.changes>0}function gq($,U,v){let J=q$($),_=J1(J);if(!_){if(xD(J,null,U),v)kq.run(U,v,J)}else kq.run(U,v??_.agent_id,J)}function gU($,U){gq($,"allowed",U)}function hq($){return J1($)?.reply_mode??"auto"}function ID($,U){let v=q$($);p$.prepare("UPDATE contacts SET reply_mode = ?, updated_at = datetime('now') WHERE phone = ?").run(U,v)}function uq($){gq($,"blocked")}function yq($){return J1($)?.name??null}function lq($,U){let v=q$($);p$.prepare(`
324
+ `),HT=p$.prepare("SELECT * FROM contacts WHERE phone = ?"),WT=p$.prepare("SELECT * FROM contacts ORDER BY status, name, phone"),BT=p$.prepare("SELECT * FROM contacts WHERE status = ? ORDER BY name, phone"),ZT=p$.prepare("DELETE FROM contacts WHERE phone = ?"),kq=p$.prepare("UPDATE contacts SET status = ?, agent_id = ?, updated_at = datetime('now') WHERE phone = ?");function xD($,U,v="allowed"){let J=V$($);qT.run(J,U??null,v)}function fU($,U){let v=V$($);VT.run(v,U??null)}function J1($){let U=V$($);return HT.get(U)??null}function x6($){let U=J1($);if(!U)return!1;return U.status==="allowed"}function Iq(){return WT.all()}function PT($){return BT.all($)}function Cq(){return PT("pending")}function fq($){let U=V$($);return ZT.run(U),p$.changes>0}function gq($,U,v){let J=V$($),_=J1(J);if(!_){if(xD(J,null,U),v)kq.run(U,v,J)}else kq.run(U,v??_.agent_id,J)}function gU($,U){gq($,"allowed",U)}function hq($){return J1($)?.reply_mode??"auto"}function ID($,U){let v=V$($);p$.prepare("UPDATE contacts SET reply_mode = ?, updated_at = datetime('now') WHERE phone = ?").run(U,v)}function uq($){gq($,"blocked")}function yq($){return J1($)?.name??null}function lq($,U){let v=V$($);p$.prepare(`
325
325
  INSERT INTO contacts (phone, name, status, updated_at)
326
326
  VALUES (?, ?, 'discovered', datetime('now'))
327
327
  ON CONFLICT(phone) DO UPDATE SET
328
328
  name = COALESCE(contacts.name, excluded.name),
329
329
  updated_at = datetime('now')
330
- `).run(v,U??null)}x$();var W$=_$.child("wa:plugin"),FT={id:"whatsapp",name:"WhatsApp",description:"WhatsApp messaging via Baileys",version:"1.0.0"},ET={media:!0,reactions:!0,replies:!0,edits:!1,groups:!0,typing:!0,readReceipts:!0};class mq{config=qN;getConfig(){return this.config}setConfig($){this.config=$}listAccounts(){return Object.keys(this.config.accounts)}resolveAccount($){let U=this.config.accounts[$];if(!U)return null;let v=G$.getState($),_=G$.getSocket($)?.user?.id?.split(":")[0];return{id:$,name:U.name,phone:_,state:v,enabled:U.enabled}}isAuthenticated($){return G$.getState($)==="connected"}}class cq{checkAccess($,U,v,J){let _=A6(J,$);if(v){let Y=_.groupPolicy;if(Y==="closed")return{allowed:!1,reason:"groups_disabled"};if(Y==="allowlist"){let Q=_.groupAllowFrom.includes(U),z=x6(U);if(!Q&&!z)return{allowed:!1,pending:!0,reason:"group_not_allowed"}}}let D=_.dmPolicy,X=q$(U);if(_.allowFrom.length>0){if(_.allowFrom.some((Q)=>q$(Q)===X))return{allowed:!0}}if(x6(X))return{allowed:!0};switch(D){case"open":return{allowed:!0};case"pairing":return{allowed:!1,pending:!0,reason:"pending_approval"};case"closed":return{allowed:!1,reason:"dm_closed"};default:return{allowed:!1,reason:"unknown_policy"}}}getDmPolicy($,U){return A6(U,$).dmPolicy}getGroupPolicy($,U){return A6(U,$).groupPolicy}isAllowed($,U,v){return this.checkAccess($,U,!1,v).allowed}}class nq{async send($,U,v){let J=G$.getSocket($);if(!J)return{success:!1,error:`Account ${$} not connected`};let _=await Rq(J,U,v);if(_.success)kD($);else MD($,_.error??"Unknown send error");return _}async sendTyping($,U,v){let J=G$.getSocket($);if(!J){W$.warn(`Cannot send typing - account ${$} not connected`);return}await Oq(J,U,v)}async sendReadReceipt($,U,v){let J=G$.getSocket($);if(!J){W$.warn(`Cannot send read receipt - account ${$} not connected`);return}await AD(J,U,U,v)}async sendReaction($,U,v,J){let _=G$.getSocket($);if(!_){W$.warn(`Cannot send reaction - account ${$} not connected`);return}await xU(_,U,v,J)}}class pq{configAdapter;securityAdapter;stateCallbacks=new Set;qrCallbacks=new Set;messageCallbacks=new Set;constructor($,U){this.configAdapter=$,this.securityAdapter=U,G$.on("stateChange",(J,_)=>{for(let D of this.stateCallbacks)D(J,_)}),G$.on("qrCode",(J,_)=>{for(let D of this.qrCallbacks)D(J,_)});let v=new WeakSet;G$.on("socketReady",(J,_)=>{if(v.has(_)){W$.debug(`Socket already subscribed for ${J}, skipping`);return}v.add(_),W$.info(`Socket ready for ${J}, subscribing to messages`),_.ev.on("messages.upsert",async({messages:D,type:X})=>{if(X!=="notify")return;let Y=this.configAdapter.getConfig();for(let Q of D)await this.handleMessage(J,Q,Y)})})}async start($,U){let v=A6(U,$);if(!v.enabled){W$.info(`Account ${$} is disabled, skipping`);return}await G$.start($,v)}async stop($){await G$.stop($)}getState($){return G$.getState($)}onStateChange($){return this.stateCallbacks.add($),()=>this.stateCallbacks.delete($)}onQrCode($){return this.qrCallbacks.add($),()=>this.qrCallbacks.delete($)}onMessage($){return this.messageCallbacks.add($),()=>this.messageCallbacks.delete($)}async handleMessage($,U,v){let J=A6(v,$),_=Lq(U,J);if(!_.pass){W$.debug(`Message filtered: ${_.reason}`);return}let D,X,Y=U.key.remoteJid;if(Y&&Y.endsWith("@g.us")){let q=G$.getSocket($);if(q)try{let V=await q.groupMetadata(Y);D=V.subject,X=V.participants.map((E)=>{let T=q$(E.id),S=E.id.split("@")[0];lq(T,E.notify||null);let C=yq(T),M=C||E.notify||S;return W$.info("Group member resolution",{jid:E.id,normalizedId:T,pushName:E.notify??"(none)",contactName:C??"(none)",resolvedName:M}),M})}catch(V){W$.debug("Failed to fetch group metadata",{jid:Y,error:V})}}let Q=wq($,U,D,X);if(!Q)return;if((Q.media?.type==="audio"||Q.media?.type==="document"&&Q.media.mimetype.startsWith("audio/"))&&Q.media)try{let q=await Eq(U);if(q){if(Q.media.data=q,W$.debug("Audio downloaded",{size:q.length,mimetype:Q.media.mimetype}),process.env.OPENAI_API_KEY){let V=await MU(q,Q.media.mimetype);Q.transcription=V.text,W$.info("Audio transcribed",{textLength:V.text.length})}}}catch(q){W$.warn("Failed to process audio",{error:q})}W$.info("Message received",{accountId:$,senderId:Q.senderId,chatId:Q.chatId,isGroup:Q.isGroup}),bq($),bD($);let N=Q.isGroup?Q.chatId:Q.senderId;W$.info("Security check",{checkId:N,isGroup:Q.isGroup,chatId:Q.chatId,senderId:Q.senderId});let G=this.securityAdapter.checkAccess($,N,Q.isGroup,v);if(W$.info("Security decision",G),!G.allowed){if(G.pending){let q=Q.isGroup?Q.chatId:Q.senderId,V=Q.isGroup?null:Q.senderName??null;fU(q,V),W$.info("Saved pending",{id:q,isGroup:Q.isGroup})}else W$.debug(`Message blocked: ${G.reason}`);return}if(J.sendReadReceipts){let q=G$.getSocket($);if(q)await AD(q,Q.chatId,Q.senderId,[Q.id])}if(J.ackReaction){let q=G$.getSocket($);if(q)await Aq(q,Q.chatId,Q.id,Q.isGroup,!1,J.ackReaction)}if(Q.isGroup){if(hq(Q.chatId)==="mention"){let V=G$.getSocket($),E=V?.user?.id,T=V?.user?.lid,S=U.message?.extendedTextMessage?.contextInfo?.mentionedJid??[],C=(p)=>p.split("@")[0].split(":")[0],M=[E,T].filter(Boolean).map((p)=>C(p)),h=S.some((p)=>M.includes(C(p)));if(W$.info("Mention check",{botJid:E,botLid:T,mentioned:h,mentions:S}),!h){W$.debug("Skipping group message (not mentioned)",{chatId:Q.chatId});return}}}let W=J.debounceMs;if(W>0){let q=await Tq(Q,W),V=Kq(q);this.emitMessage(V)}else this.emitMessage(Q)}emitMessage($){let U={...$,media:$.media?{...$.media,data:void 0}:void 0,raw:void 0};B4.emit(`whatsapp.${$.accountId}.inbound`,U).catch((v)=>W$.error("Failed to emit inbound message",v));for(let v of this.messageCallbacks)try{v($)}catch(J){W$.error("Error in message callback",J)}}}class rq{getHealth(){return Sq()}getSnapshot($){return CU($)}recordSent($){kD($)}recordReceived($){bD($)}recordError($,U){MD($,U)}}function CD($){let U=new mq,v=new cq,J=new nq,_=new pq(U,v),D=new rq;if($)U.setConfig(VN($));return{id:"whatsapp",meta:FT,capabilities:ET,config:U,security:v,outbound:J,gateway:_,status:D,async init(){W$.info("WhatsApp plugin initialized"),_.onQrCode((X,Y)=>{W$.info(`Scan QR code for ${X} (Settings > Linked Devices):`),iq.default.generate(Y,{small:!0})}),_.onStateChange((X,Y)=>{W$.info(`Account ${X} state: ${Y}`)})},async shutdown(){W$.info("Shutting down WhatsApp plugin"),await G$.stopAll()}}}var kS=CD();o5();import wT from"path";import LT from"os";function dq($=process.env){return $.RAVI_STATE_DIR||wT.join(LT.homedir(),".ravi")}function hU($){return $.replace(/\/+$/,"")}var TT=30000;async function g$($,U={},v=TT){let J=new AbortController,_=setTimeout(()=>J.abort(),v);try{return await fetch($,{...U,signal:J.signal})}finally{clearTimeout(_)}}b4();x$();var KT=_$.child("matrix:credentials");function oq($){return{homeserver:$.homeserver,userId:$.userId,accessToken:$.accessToken,deviceId:$.deviceId,createdAt:new Date($.createdAt).toISOString(),lastUsedAt:$.lastUsedAt?new Date($.lastUsedAt).toISOString():void 0}}function A1($){let U=S4($);if(!U)return null;return oq(U)}function D1(){let $=R6();if($.length===0)return null;let U={version:4,accounts:{}};for(let v of $)U.accounts[v.username]=oq(v);return U}function S1($,U){j6({username:$,userId:U.userId,homeserver:U.homeserver,accessToken:U.accessToken,deviceId:U.deviceId})}function tq($){w9($)}function aq($){try{y2($)}catch(U){KT.warn(`Could not delete credentials for ${$}: ${U}`)}}function eq(){return R6().map((U)=>U.username)}x$();var nS=_$.child("router");b4();var sq=c.object({name:c.string().optional(),enabled:c.boolean().default(!0),homeserver:c.string().url(),accessToken:c.string().optional(),userId:c.string().optional(),password:c.string().optional(),encryption:c.boolean().default(!1),dmPolicy:c.enum(["open","closed","pairing"]).default("open"),allowFrom:c.array(c.string()).default([]),roomPolicy:c.enum(["open","closed","allowlist"]).default("closed"),roomAllowlist:c.array(c.string()).default([]),sendReadReceipts:c.boolean().default(!0),debounceMs:c.number().min(0).max(30000).default(0)}),RT=c.object({accounts:c.record(c.string(),sq).default({})}),I6={accounts:{}};function $V($){return RT.parse($)}function C6($,U){return $.accounts[U]}function OT($=process.env){let U=$.MATRIX_HOMESERVER;if(!U)return I6;let{MATRIX_ACCESS_TOKEN:v,MATRIX_USER_ID:J,MATRIX_PASSWORD:_}=$;if(!v&&(!J||!_))return I6;let D=$.MATRIX_ENCRYPTION==="true",X=$.MATRIX_DM_POLICY||"open",Y=$.MATRIX_ROOM_POLICY||"closed",Q=$.MATRIX_ROOM_ALLOWLIST?$.MATRIX_ROOM_ALLOWLIST.split(",").map((W)=>W.trim()).filter(Boolean):[],z={name:"Matrix",enabled:!0,homeserver:U,accessToken:v,userId:J,password:_,encryption:D,dmPolicy:X,roomPolicy:Y,roomAllowlist:Q,sendReadReceipts:!0,debounceMs:0},N=sq.safeParse(z);if(!N.success)return I6;return{accounts:{[w1()]:N.data}}}function uU($=process.env){let{MATRIX_HOMESERVER:U,MATRIX_ACCESS_TOKEN:v,MATRIX_USER_ID:J,MATRIX_PASSWORD:_}=$;if(!U)return!1;if(v)return!0;if(J&&_)return!0;return!1}function AT(){let $=D1();if(!$||Object.keys($.accounts).length===0)return I6;let U=C$(),v=new Set(U.map((_)=>_.matrixAccount).filter(Boolean)),J={};for(let[_,D]of Object.entries($.accounts)){if(!v.has(_))continue;J[_]={name:_,enabled:!0,homeserver:D.homeserver,accessToken:D.accessToken,userId:D.userId,encryption:!1,dmPolicy:"open",allowFrom:[],roomPolicy:"open",roomAllowlist:[],sendReadReceipts:!0,debounceMs:0}}return{accounts:J}}function UV($=process.env){let U=AT(),v=OT($);return{accounts:{...U.accounts,...v.accounts}}}import fD from"fs";import yU from"path";import ST from"crypto";import{MatrixClient as bT,SimpleFsStorageProvider as kT,RustSdkCryptoStorageProvider as MT,LogService as f6,LogLevel as lU}from"@vector-im/matrix-bot-sdk";import{EventEmitter as xT}from"events";x$();var G4=_$.child("matrix:session");function iU($){return $.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"_").replace(/^_+|_+$/g,"")||"unknown"}function IT($){try{let U=new URL($);if(U.host)return iU(U.host)}catch{}return iU($)}function CT($){return ST.createHash("sha256").update($).digest("hex").slice(0,16)}function fT($){let U=$.env??process.env,v=dq(U),J=iU($.accountId),_=iU($.userId),D=IT($.homeserver),X=CT($.accessToken),Y=yU.join(v,"matrix","accounts",J,`${D}__${_}`,X);return{rootDir:Y,storagePath:yU.join(Y,"bot-storage.json"),cryptoPath:yU.join(Y,"crypto"),metaPath:yU.join(Y,"storage-meta.json"),accountKey:J,tokenHash:X}}class _V extends xT{sessions=new Map;loggingConfigured=!1;constructor(){super()}configureLogging(){if(this.loggingConfigured)return;let $=process.env.RAVI_LOG_LEVEL;if($==="debug")f6.setLevel(lU.DEBUG);else if($==="warn")f6.setLevel(lU.WARN);else if($==="error")f6.setLevel(lU.ERROR);else f6.setLevel(lU.INFO);f6.muteModule("MatrixLiteClient"),f6.muteModule("RustSdkCryptoStorageProvider"),this.loggingConfigured=!0}getState($){return this.sessions.get($)?.state??"disconnected"}getClient($){return this.sessions.get($)?.client??null}getUserId($){return this.sessions.get($)?.userId??null}async start($,U){this.configureLogging();let v=this.sessions.get($);if(v?.state==="connected"||v?.state==="connecting"){G4.warn(`Session ${$} already ${v.state}`);return}this.updateState($,"connecting",U);try{let J=await this.resolveCredentials($,U);if(!J)throw Error("No valid credentials available");let _=await this.createClient($,U,J),D=await _.getUserId();G4.info(`Logged in as ${D}`),await _.start();let X=this.sessions.get($);if(X)X.client=_,X.userId=D;this.updateState($,"connected",U),this.emit("connected",$,D),this.emit("clientReady",$,_),tq($)}catch(J){let _=J instanceof Error?J:Error(String(J));throw G4.error(`Failed to start session ${$}:`,_),this.updateState($,"error",U),this.emit("error",$,_),_}}async stop($){let U=this.sessions.get($);if(!U?.client){G4.debug(`Session ${$} not running`);return}try{U.client.stop(),G4.info(`Stopped session ${$}`)}catch(v){G4.warn(`Error stopping session ${$}:`,v)}this.updateState($,"disconnected"),this.emit("disconnected",$)}async stopAll(){let $=Array.from(this.sessions.keys());await Promise.all($.map((U)=>this.stop(U)))}async resolveCredentials($,U){if(U.accessToken){let J=U.userId;if(!J)try{let _=`${U.homeserver}/_matrix/client/v3/account/whoami`,D=await g$(_,{headers:{Authorization:`Bearer ${U.accessToken}`}});if(!D.ok)throw Error(`whoami failed: ${D.status}`);J=(await D.json()).user_id}catch(_){return G4.error("Failed to get user ID from access token:",_),null}return S1($,{homeserver:U.homeserver,accessToken:U.accessToken,userId:J}),{homeserver:U.homeserver,accessToken:U.accessToken,userId:J}}let v=A1($);if(v){if(U.homeserver){if(hU(v.homeserver)!==hU(U.homeserver))return G4.warn(`Stored credentials homeserver mismatch for ${$}`),null}return{homeserver:v.homeserver,accessToken:v.accessToken,userId:v.userId}}if(U.userId&&U.password)try{return await this.loginWithPassword($,U.homeserver,U.userId,U.password)}catch(J){return G4.error("Password login failed:",J),null}return null}async loginWithPassword($,U,v,J){let _=`${U}/_matrix/client/v3/login`,D=await g$(_,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"m.login.password",identifier:{type:"m.id.user",user:v},password:J,initial_device_display_name:`Ravi Bot (${$})`})});if(!D.ok){let Y=await D.text();throw Error(`Login failed: ${Y}`)}let X=await D.json();return S1($,{homeserver:U,accessToken:X.access_token,userId:X.user_id,deviceId:X.device_id}),{homeserver:U,accessToken:X.access_token,userId:X.user_id,deviceId:X.device_id}}async createClient($,U,v){let J=fT({homeserver:v.homeserver,userId:v.userId,accessToken:v.accessToken,accountId:$});fD.mkdirSync(J.rootDir,{recursive:!0});let _=new kT(J.storagePath),D;if(U.encryption){fD.mkdirSync(J.cryptoPath,{recursive:!0});try{let{StoreType:Y}=await import("@matrix-org/matrix-sdk-crypto-nodejs");D=new MT(J.cryptoPath,Y.Sqlite),G4.info("E2EE enabled with crypto storage")}catch(Y){G4.warn("Failed to initialize crypto storage, E2EE disabled:",Y)}}return this.writeStorageMeta(J,v,$),new bT(v.homeserver,v.accessToken,_,D)}writeStorageMeta($,U,v){try{let J={homeserver:U.homeserver,userId:U.userId,accountId:v,accessTokenHash:$.tokenHash,createdAt:new Date().toISOString()};fD.writeFileSync($.metaPath,JSON.stringify(J,null,2),"utf-8")}catch(J){G4.debug(`Failed to write storage meta: ${J}`)}}updateState($,U,v){let J=this.sessions.get($);if(!J)J={client:null,state:"disconnected",config:v??null,userId:null},this.sessions.set($,J);if(J.state=U,v)J.config=v;this.emit("stateChange",$,U)}on($,U){return super.on($,U)}emit($,...U){return super.emit($,...U)}}var F$=new _V;x$();var g6=_$.child("matrix:direct"),vV=30000;function JV($){let U=0,v=null,J=new Map,_=async()=>{if(v)return v;try{v=await $.getUserId()}catch{v=null}return v},D=async()=>{let Q=Date.now();if(Q-U<vV)return;U=Q;try{await $.dms.update()}catch(z){g6.debug(`DM cache refresh failed: ${String(z)}`)}},X=async(Q)=>{let z=J.get(Q),N=Date.now();if(z&&N-z.ts<vV)return z.count;try{let W=(await $.getJoinedRoomMembers(Q)).length;return J.set(Q,{count:W,ts:N}),W}catch(G){return g6.debug(`Member count failed room=${Q}: ${String(G)}`),null}},Y=async(Q,z)=>{let N=z?.trim();if(!N)return!1;try{return(await $.getRoomStateEvent(Q,"m.room.member",N))?.is_direct===!0}catch{return!1}};return{isDirectMessage:async(Q)=>{let{roomId:z,senderId:N}=Q;if(await D(),$.dms.isDm(z))return g6.debug(`DM detected via m.direct room=${z}`),!0;let G=await X(z);if(G===2)return g6.debug(`DM detected via member count room=${z} members=${G}`),!0;let W=Q.selfUserId??await _();if(await Y(z,N)||await Y(z,W??""))return g6.debug(`DM detected via member state room=${z}`),!0;return g6.debug(`Room check room=${z} result=group members=${G??"unknown"}`),!1},clearCache:()=>{J.clear(),U=0}}}var X1={RoomMessage:"m.room.message",RoomMessageEncrypted:"m.room.encrypted",Reaction:"m.reaction",Direct:"m.direct",Location:"m.location"},h6={Text:"m.text",Image:"m.image",Audio:"m.audio",Video:"m.video",File:"m.file"},u6={Thread:"m.thread",Replace:"m.replace",Annotation:"m.annotation"};function XV($,U,v){let J=$.type;if(J===X1.RoomMessageEncrypted)return{pass:!1,reason:"encrypted_event"};if(J!==X1.RoomMessage)return{pass:!1,reason:"not_room_message"};if($.unsigned?.redacted_because)return{pass:!1,reason:"redacted"};let _=$.sender;if(!_)return{pass:!1,reason:"no_sender"};if(_===U)return{pass:!1,reason:"self_message"};let D=$.origin_server_ts,X=$.unsigned?.age,Y=5000;if(typeof D==="number"&&D<v-Y)return{pass:!1,reason:"old_message"};if(typeof D!=="number"&&typeof X==="number"&&X>Y)return{pass:!1,reason:"old_message_by_age"};let z=$.content["m.relates_to"];if(z&&"rel_type"in z&&z.rel_type===u6.Replace)return{pass:!1,reason:"edit_event"};return{pass:!0}}function YV($){let{accountId:U,roomId:v,event:J,isDirect:_,roomName:D,senderDisplayName:X}=$,Y=J.content,Q=J.sender,z=J.event_id;if(!Q||!z)return null;let N=typeof Y.body==="string"?Y.body.trim():"",G=gT(Y);if(!N&&!G)return null;let W=hT(Y),q=uT(Y);return{id:z,channelId:"matrix",accountId:U,senderId:Q,senderName:X??Q.split(":")[0]?.replace(/^@/,""),chatId:v,text:N||void 0,media:G??void 0,replyTo:W,timestamp:J.origin_server_ts??Date.now(),isGroup:!_,groupName:!_?D:void 0,raw:J,roomId:v,eventId:z,isDirect:_,threadId:q,replyToEventId:Y["m.relates_to"]?.["m.in_reply_to"]?.event_id}}function gT($){let U=$.msgtype;if(!["m.image","m.audio","m.video","m.file"].includes(U))return null;let v=$.url??$.file?.url;if(!v)return null;let _=$.info?.mimetype??"application/octet-stream",D;switch(U){case"m.image":D="image";break;case"m.audio":D="audio";break;case"m.video":D="video";break;default:D="document"}return{type:D,mimetype:_,filename:$.body,url:v}}function hT($){let U=$["m.relates_to"]?.["m.in_reply_to"]?.event_id;if(!U)return;return{id:U,senderId:""}}function uT($){let U=$["m.relates_to"];if(!U)return;if("rel_type"in U&&U.rel_type===u6.Thread)return U.event_id;return}async function QV($){let{client:U,mxcUrl:v,sizeBytes:J,maxBytes:_,file:D}=$;if(typeof J==="number"&&J>_)throw Error("Matrix media exceeds configured size limit");let X;if(D){if(!U.crypto)throw Error("Cannot decrypt media: crypto not enabled");let Y=await U.crypto.decryptMedia(D);if(Y.byteLength>_)throw Error("Matrix media exceeds configured size limit");X=Y}else{let Y=await U.downloadContent(v);if(Y.data.byteLength>_)throw Error("Matrix media exceeds configured size limit");X=Buffer.from(Y.data)}return X}var mU=new Map;async function zV($,U){if(U<=0)return[$];let v=`${$.accountId}:${$.chatId}`;return new Promise((J)=>{let _=mU.get(v)??[];if(_.length>0){let X=_[_.length-1];clearTimeout(X.timer)}let D={message:$,timer:setTimeout(()=>{let X=mU.get(v)??[];mU.delete(v);let Y=X.map((Q)=>Q.message);for(let Q of X)Q.resolve(Y)},U),resolve:J};mU.set(v,[..._,D])})}function NV($){let U=$[0];if(!U)throw Error("Cannot merge empty message array");if($.length===1)return U;let v=$.map((_)=>_.text).filter(Boolean).join(`
330
+ `).run(v,U??null)}x$();var W$=_$.child("wa:plugin"),FT={id:"whatsapp",name:"WhatsApp",description:"WhatsApp messaging via Baileys",version:"1.0.0"},ET={media:!0,reactions:!0,replies:!0,edits:!1,groups:!0,typing:!0,readReceipts:!0};class mq{config=qN;getConfig(){return this.config}setConfig($){this.config=$}listAccounts(){return Object.keys(this.config.accounts)}resolveAccount($){let U=this.config.accounts[$];if(!U)return null;let v=q$.getState($),_=q$.getSocket($)?.user?.id?.split(":")[0];return{id:$,name:U.name,phone:_,state:v,enabled:U.enabled}}isAuthenticated($){return q$.getState($)==="connected"}}class cq{checkAccess($,U,v,J){let _=A6(J,$);if(v){let Y=_.groupPolicy;if(Y==="closed")return{allowed:!1,reason:"groups_disabled"};if(Y==="allowlist"){let Q=_.groupAllowFrom.includes(U),z=x6(U);if(!Q&&!z)return{allowed:!1,pending:!0,reason:"group_not_allowed"}}}let D=_.dmPolicy,X=V$(U);if(_.allowFrom.length>0){if(_.allowFrom.some((Q)=>V$(Q)===X))return{allowed:!0}}if(x6(X))return{allowed:!0};switch(D){case"open":return{allowed:!0};case"pairing":return{allowed:!1,pending:!0,reason:"pending_approval"};case"closed":return{allowed:!1,reason:"dm_closed"};default:return{allowed:!1,reason:"unknown_policy"}}}getDmPolicy($,U){return A6(U,$).dmPolicy}getGroupPolicy($,U){return A6(U,$).groupPolicy}isAllowed($,U,v){return this.checkAccess($,U,!1,v).allowed}}class nq{async send($,U,v){let J=q$.getSocket($);if(!J)return{success:!1,error:`Account ${$} not connected`};let _=await Rq(J,U,v);if(_.success)kD($);else MD($,_.error??"Unknown send error");return _}async sendTyping($,U,v){let J=q$.getSocket($);if(!J){W$.warn(`Cannot send typing - account ${$} not connected`);return}await Oq(J,U,v)}async sendReadReceipt($,U,v){let J=q$.getSocket($);if(!J){W$.warn(`Cannot send read receipt - account ${$} not connected`);return}await AD(J,U,U,v)}async sendReaction($,U,v,J){let _=q$.getSocket($);if(!_){W$.warn(`Cannot send reaction - account ${$} not connected`);return}await xU(_,U,v,J)}}class pq{configAdapter;securityAdapter;stateCallbacks=new Set;qrCallbacks=new Set;messageCallbacks=new Set;constructor($,U){this.configAdapter=$,this.securityAdapter=U,q$.on("stateChange",(J,_)=>{for(let D of this.stateCallbacks)D(J,_)}),q$.on("qrCode",(J,_)=>{for(let D of this.qrCallbacks)D(J,_)});let v=new WeakSet;q$.on("socketReady",(J,_)=>{if(v.has(_)){W$.debug(`Socket already subscribed for ${J}, skipping`);return}v.add(_),W$.info(`Socket ready for ${J}, subscribing to messages`),_.ev.on("messages.upsert",async({messages:D,type:X})=>{if(X!=="notify")return;let Y=this.configAdapter.getConfig();for(let Q of D)await this.handleMessage(J,Q,Y)})})}async start($,U){let v=A6(U,$);if(!v.enabled){W$.info(`Account ${$} is disabled, skipping`);return}await q$.start($,v)}async stop($){await q$.stop($)}getState($){return q$.getState($)}onStateChange($){return this.stateCallbacks.add($),()=>this.stateCallbacks.delete($)}onQrCode($){return this.qrCallbacks.add($),()=>this.qrCallbacks.delete($)}onMessage($){return this.messageCallbacks.add($),()=>this.messageCallbacks.delete($)}async handleMessage($,U,v){let J=A6(v,$),_=Lq(U,J);if(!_.pass){W$.debug(`Message filtered: ${_.reason}`);return}let D,X,Y=U.key.remoteJid;if(Y&&Y.endsWith("@g.us")){let q=q$.getSocket($);if(q)try{let V=await q.groupMetadata(Y);D=V.subject,X=V.participants.map((E)=>{let T=V$(E.id),S=E.id.split("@")[0];lq(T,E.notify||null);let C=yq(T),M=C||E.notify||S;return W$.info("Group member resolution",{jid:E.id,normalizedId:T,pushName:E.notify??"(none)",contactName:C??"(none)",resolvedName:M}),M})}catch(V){W$.debug("Failed to fetch group metadata",{jid:Y,error:V})}}let Q=wq($,U,D,X);if(!Q)return;if((Q.media?.type==="audio"||Q.media?.type==="document"&&Q.media.mimetype.startsWith("audio/"))&&Q.media)try{let q=await Eq(U);if(q){if(Q.media.data=q,W$.debug("Audio downloaded",{size:q.length,mimetype:Q.media.mimetype}),process.env.OPENAI_API_KEY){let V=await MU(q,Q.media.mimetype);Q.transcription=V.text,W$.info("Audio transcribed",{textLength:V.text.length})}}}catch(q){W$.warn("Failed to process audio",{error:q})}W$.info("Message received",{accountId:$,senderId:Q.senderId,chatId:Q.chatId,isGroup:Q.isGroup}),bq($),bD($);let N=Q.isGroup?Q.chatId:Q.senderId;W$.info("Security check",{checkId:N,isGroup:Q.isGroup,chatId:Q.chatId,senderId:Q.senderId});let G=this.securityAdapter.checkAccess($,N,Q.isGroup,v);if(W$.info("Security decision",G),!G.allowed){if(G.pending){let q=Q.isGroup?Q.chatId:Q.senderId,V=Q.isGroup?null:Q.senderName??null;fU(q,V),W$.info("Saved pending",{id:q,isGroup:Q.isGroup})}else W$.debug(`Message blocked: ${G.reason}`);return}if(J.sendReadReceipts){let q=q$.getSocket($);if(q)await AD(q,Q.chatId,Q.senderId,[Q.id])}if(J.ackReaction){let q=q$.getSocket($);if(q)await Aq(q,Q.chatId,Q.id,Q.isGroup,!1,J.ackReaction)}if(Q.isGroup){if(hq(Q.chatId)==="mention"){let V=q$.getSocket($),E=V?.user?.id,T=V?.user?.lid,S=U.message?.extendedTextMessage?.contextInfo?.mentionedJid??[],C=(p)=>p.split("@")[0].split(":")[0],M=[E,T].filter(Boolean).map((p)=>C(p)),h=S.some((p)=>M.includes(C(p)));if(W$.info("Mention check",{botJid:E,botLid:T,mentioned:h,mentions:S}),!h){W$.debug("Skipping group message (not mentioned)",{chatId:Q.chatId});return}}}let W=J.debounceMs;if(W>0){let q=await Tq(Q,W),V=Kq(q);this.emitMessage(V)}else this.emitMessage(Q)}emitMessage($){let U={...$,media:$.media?{...$.media,data:void 0}:void 0,raw:void 0};B4.emit(`whatsapp.${$.accountId}.inbound`,U).catch((v)=>W$.error("Failed to emit inbound message",v));for(let v of this.messageCallbacks)try{v($)}catch(J){W$.error("Error in message callback",J)}}}class rq{getHealth(){return Sq()}getSnapshot($){return CU($)}recordSent($){kD($)}recordReceived($){bD($)}recordError($,U){MD($,U)}}function CD($){let U=new mq,v=new cq,J=new nq,_=new pq(U,v),D=new rq;if($)U.setConfig(VN($));return{id:"whatsapp",meta:FT,capabilities:ET,config:U,security:v,outbound:J,gateway:_,status:D,async init(){W$.info("WhatsApp plugin initialized"),_.onQrCode((X,Y)=>{W$.info(`Scan QR code for ${X} (Settings > Linked Devices):`),iq.default.generate(Y,{small:!0})}),_.onStateChange((X,Y)=>{W$.info(`Account ${X} state: ${Y}`)})},async shutdown(){W$.info("Shutting down WhatsApp plugin"),await q$.stopAll()}}}var bS=CD();o5();import wT from"path";import LT from"os";function dq($=process.env){return $.RAVI_STATE_DIR||wT.join(LT.homedir(),".ravi")}function hU($){return $.replace(/\/+$/,"")}var TT=30000;async function g$($,U={},v=TT){let J=new AbortController,_=setTimeout(()=>J.abort(),v);try{return await fetch($,{...U,signal:J.signal})}finally{clearTimeout(_)}}b4();x$();var KT=_$.child("matrix:credentials");function oq($){return{homeserver:$.homeserver,userId:$.userId,accessToken:$.accessToken,deviceId:$.deviceId,createdAt:new Date($.createdAt).toISOString(),lastUsedAt:$.lastUsedAt?new Date($.lastUsedAt).toISOString():void 0}}function A1($){let U=S4($);if(!U)return null;return oq(U)}function D1(){let $=R6();if($.length===0)return null;let U={version:4,accounts:{}};for(let v of $)U.accounts[v.username]=oq(v);return U}function S1($,U){j6({username:$,userId:U.userId,homeserver:U.homeserver,accessToken:U.accessToken,deviceId:U.deviceId})}function tq($){w9($)}function aq($){try{y2($)}catch(U){KT.warn(`Could not delete credentials for ${$}: ${U}`)}}function eq(){return R6().map((U)=>U.username)}x$();var cS=_$.child("router");b4();var sq=c.object({name:c.string().optional(),enabled:c.boolean().default(!0),homeserver:c.string().url(),accessToken:c.string().optional(),userId:c.string().optional(),password:c.string().optional(),encryption:c.boolean().default(!1),dmPolicy:c.enum(["open","closed","pairing"]).default("open"),allowFrom:c.array(c.string()).default([]),roomPolicy:c.enum(["open","closed","allowlist"]).default("closed"),roomAllowlist:c.array(c.string()).default([]),sendReadReceipts:c.boolean().default(!0),debounceMs:c.number().min(0).max(30000).default(0)}),RT=c.object({accounts:c.record(c.string(),sq).default({})}),I6={accounts:{}};function $V($){return RT.parse($)}function C6($,U){return $.accounts[U]}function OT($=process.env){let U=$.MATRIX_HOMESERVER;if(!U)return I6;let{MATRIX_ACCESS_TOKEN:v,MATRIX_USER_ID:J,MATRIX_PASSWORD:_}=$;if(!v&&(!J||!_))return I6;let D=$.MATRIX_ENCRYPTION==="true",X=$.MATRIX_DM_POLICY||"open",Y=$.MATRIX_ROOM_POLICY||"closed",Q=$.MATRIX_ROOM_ALLOWLIST?$.MATRIX_ROOM_ALLOWLIST.split(",").map((W)=>W.trim()).filter(Boolean):[],z={name:"Matrix",enabled:!0,homeserver:U,accessToken:v,userId:J,password:_,encryption:D,dmPolicy:X,roomPolicy:Y,roomAllowlist:Q,sendReadReceipts:!0,debounceMs:0},N=sq.safeParse(z);if(!N.success)return I6;return{accounts:{[w1()]:N.data}}}function uU($=process.env){let{MATRIX_HOMESERVER:U,MATRIX_ACCESS_TOKEN:v,MATRIX_USER_ID:J,MATRIX_PASSWORD:_}=$;if(!U)return!1;if(v)return!0;if(J&&_)return!0;return!1}function AT(){let $=D1();if(!$||Object.keys($.accounts).length===0)return I6;let U=C$(),v=new Set(U.map((_)=>_.matrixAccount).filter(Boolean)),J={};for(let[_,D]of Object.entries($.accounts)){if(!v.has(_))continue;J[_]={name:_,enabled:!0,homeserver:D.homeserver,accessToken:D.accessToken,userId:D.userId,encryption:!1,dmPolicy:"open",allowFrom:[],roomPolicy:"open",roomAllowlist:[],sendReadReceipts:!0,debounceMs:0}}return{accounts:J}}function UV($=process.env){let U=AT(),v=OT($);return{accounts:{...U.accounts,...v.accounts}}}import fD from"fs";import yU from"path";import ST from"crypto";import{MatrixClient as bT,SimpleFsStorageProvider as kT,LogService as f6,LogLevel as lU}from"@vector-im/matrix-bot-sdk";import{EventEmitter as MT}from"events";x$();var G4=_$.child("matrix:session");function iU($){return $.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"_").replace(/^_+|_+$/g,"")||"unknown"}function xT($){try{let U=new URL($);if(U.host)return iU(U.host)}catch{}return iU($)}function IT($){return ST.createHash("sha256").update($).digest("hex").slice(0,16)}function CT($){let U=$.env??process.env,v=dq(U),J=iU($.accountId),_=iU($.userId),D=xT($.homeserver),X=IT($.accessToken),Y=yU.join(v,"matrix","accounts",J,`${D}__${_}`,X);return{rootDir:Y,storagePath:yU.join(Y,"bot-storage.json"),cryptoPath:yU.join(Y,"crypto"),metaPath:yU.join(Y,"storage-meta.json"),accountKey:J,tokenHash:X}}class _V extends MT{sessions=new Map;loggingConfigured=!1;constructor(){super()}configureLogging(){if(this.loggingConfigured)return;let $=process.env.RAVI_LOG_LEVEL;if($==="debug")f6.setLevel(lU.DEBUG);else if($==="warn")f6.setLevel(lU.WARN);else if($==="error")f6.setLevel(lU.ERROR);else f6.setLevel(lU.INFO);f6.muteModule("MatrixLiteClient"),f6.muteModule("RustSdkCryptoStorageProvider"),this.loggingConfigured=!0}getState($){return this.sessions.get($)?.state??"disconnected"}getClient($){return this.sessions.get($)?.client??null}getUserId($){return this.sessions.get($)?.userId??null}async start($,U){this.configureLogging();let v=this.sessions.get($);if(v?.state==="connected"||v?.state==="connecting"){G4.warn(`Session ${$} already ${v.state}`);return}this.updateState($,"connecting",U);try{let J=await this.resolveCredentials($,U);if(!J)throw Error("No valid credentials available");let _=await this.createClient($,U,J),D=await _.getUserId();G4.info(`Logged in as ${D}`),await _.start();let X=this.sessions.get($);if(X)X.client=_,X.userId=D;this.updateState($,"connected",U),this.emit("connected",$,D),this.emit("clientReady",$,_),tq($)}catch(J){let _=J instanceof Error?J:Error(String(J));throw G4.error(`Failed to start session ${$}:`,_),this.updateState($,"error",U),this.emit("error",$,_),_}}async stop($){let U=this.sessions.get($);if(!U?.client){G4.debug(`Session ${$} not running`);return}try{U.client.stop(),G4.info(`Stopped session ${$}`)}catch(v){G4.warn(`Error stopping session ${$}:`,v)}this.updateState($,"disconnected"),this.emit("disconnected",$)}async stopAll(){let $=Array.from(this.sessions.keys());await Promise.all($.map((U)=>this.stop(U)))}async resolveCredentials($,U){if(U.accessToken){let J=U.userId;if(!J)try{let _=`${U.homeserver}/_matrix/client/v3/account/whoami`,D=await g$(_,{headers:{Authorization:`Bearer ${U.accessToken}`}});if(!D.ok)throw Error(`whoami failed: ${D.status}`);J=(await D.json()).user_id}catch(_){return G4.error("Failed to get user ID from access token:",_),null}return S1($,{homeserver:U.homeserver,accessToken:U.accessToken,userId:J}),{homeserver:U.homeserver,accessToken:U.accessToken,userId:J}}let v=A1($);if(v){if(U.homeserver){if(hU(v.homeserver)!==hU(U.homeserver))return G4.warn(`Stored credentials homeserver mismatch for ${$}`),null}return{homeserver:v.homeserver,accessToken:v.accessToken,userId:v.userId}}if(U.userId&&U.password)try{return await this.loginWithPassword($,U.homeserver,U.userId,U.password)}catch(J){return G4.error("Password login failed:",J),null}return null}async loginWithPassword($,U,v,J){let _=`${U}/_matrix/client/v3/login`,D=await g$(_,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"m.login.password",identifier:{type:"m.id.user",user:v},password:J,initial_device_display_name:`Ravi Bot (${$})`})});if(!D.ok){let Y=await D.text();throw Error(`Login failed: ${Y}`)}let X=await D.json();return S1($,{homeserver:U,accessToken:X.access_token,userId:X.user_id,deviceId:X.device_id}),{homeserver:U,accessToken:X.access_token,userId:X.user_id,deviceId:X.device_id}}async createClient($,U,v){let J=CT({homeserver:v.homeserver,userId:v.userId,accessToken:v.accessToken,accountId:$});fD.mkdirSync(J.rootDir,{recursive:!0});let _=new kT(J.storagePath),D;if(U.encryption){fD.mkdirSync(J.cryptoPath,{recursive:!0});try{let{StoreType:Y}=await import("@matrix-org/matrix-sdk-crypto-nodejs"),{RustSdkCryptoStorageProvider:Q}=await import("@vector-im/matrix-bot-sdk");D=new Q(J.cryptoPath,Y.Sqlite),G4.info("E2EE enabled with crypto storage")}catch(Y){G4.warn("Failed to initialize crypto storage, E2EE disabled:",Y)}}return this.writeStorageMeta(J,v,$),new bT(v.homeserver,v.accessToken,_,D)}writeStorageMeta($,U,v){try{let J={homeserver:U.homeserver,userId:U.userId,accountId:v,accessTokenHash:$.tokenHash,createdAt:new Date().toISOString()};fD.writeFileSync($.metaPath,JSON.stringify(J,null,2),"utf-8")}catch(J){G4.debug(`Failed to write storage meta: ${J}`)}}updateState($,U,v){let J=this.sessions.get($);if(!J)J={client:null,state:"disconnected",config:v??null,userId:null},this.sessions.set($,J);if(J.state=U,v)J.config=v;this.emit("stateChange",$,U)}on($,U){return super.on($,U)}emit($,...U){return super.emit($,...U)}}var F$=new _V;x$();var g6=_$.child("matrix:direct"),vV=30000;function JV($){let U=0,v=null,J=new Map,_=async()=>{if(v)return v;try{v=await $.getUserId()}catch{v=null}return v},D=async()=>{let Q=Date.now();if(Q-U<vV)return;U=Q;try{await $.dms.update()}catch(z){g6.debug(`DM cache refresh failed: ${String(z)}`)}},X=async(Q)=>{let z=J.get(Q),N=Date.now();if(z&&N-z.ts<vV)return z.count;try{let W=(await $.getJoinedRoomMembers(Q)).length;return J.set(Q,{count:W,ts:N}),W}catch(G){return g6.debug(`Member count failed room=${Q}: ${String(G)}`),null}},Y=async(Q,z)=>{let N=z?.trim();if(!N)return!1;try{return(await $.getRoomStateEvent(Q,"m.room.member",N))?.is_direct===!0}catch{return!1}};return{isDirectMessage:async(Q)=>{let{roomId:z,senderId:N}=Q;if(await D(),$.dms.isDm(z))return g6.debug(`DM detected via m.direct room=${z}`),!0;let G=await X(z);if(G===2)return g6.debug(`DM detected via member count room=${z} members=${G}`),!0;let W=Q.selfUserId??await _();if(await Y(z,N)||await Y(z,W??""))return g6.debug(`DM detected via member state room=${z}`),!0;return g6.debug(`Room check room=${z} result=group members=${G??"unknown"}`),!1},clearCache:()=>{J.clear(),U=0}}}var X1={RoomMessage:"m.room.message",RoomMessageEncrypted:"m.room.encrypted",Reaction:"m.reaction",Direct:"m.direct",Location:"m.location"},h6={Text:"m.text",Image:"m.image",Audio:"m.audio",Video:"m.video",File:"m.file"},u6={Thread:"m.thread",Replace:"m.replace",Annotation:"m.annotation"};function XV($,U,v){let J=$.type;if(J===X1.RoomMessageEncrypted)return{pass:!1,reason:"encrypted_event"};if(J!==X1.RoomMessage)return{pass:!1,reason:"not_room_message"};if($.unsigned?.redacted_because)return{pass:!1,reason:"redacted"};let _=$.sender;if(!_)return{pass:!1,reason:"no_sender"};if(_===U)return{pass:!1,reason:"self_message"};let D=$.origin_server_ts,X=$.unsigned?.age,Y=5000;if(typeof D==="number"&&D<v-Y)return{pass:!1,reason:"old_message"};if(typeof D!=="number"&&typeof X==="number"&&X>Y)return{pass:!1,reason:"old_message_by_age"};let z=$.content["m.relates_to"];if(z&&"rel_type"in z&&z.rel_type===u6.Replace)return{pass:!1,reason:"edit_event"};return{pass:!0}}function YV($){let{accountId:U,roomId:v,event:J,isDirect:_,roomName:D,senderDisplayName:X}=$,Y=J.content,Q=J.sender,z=J.event_id;if(!Q||!z)return null;let N=typeof Y.body==="string"?Y.body.trim():"",G=fT(Y);if(!N&&!G)return null;let W=gT(Y),q=hT(Y);return{id:z,channelId:"matrix",accountId:U,senderId:Q,senderName:X??Q.split(":")[0]?.replace(/^@/,""),chatId:v,text:N||void 0,media:G??void 0,replyTo:W,timestamp:J.origin_server_ts??Date.now(),isGroup:!_,groupName:!_?D:void 0,raw:J,roomId:v,eventId:z,isDirect:_,threadId:q,replyToEventId:Y["m.relates_to"]?.["m.in_reply_to"]?.event_id}}function fT($){let U=$.msgtype;if(!["m.image","m.audio","m.video","m.file"].includes(U))return null;let v=$.url??$.file?.url;if(!v)return null;let _=$.info?.mimetype??"application/octet-stream",D;switch(U){case"m.image":D="image";break;case"m.audio":D="audio";break;case"m.video":D="video";break;default:D="document"}return{type:D,mimetype:_,filename:$.body,url:v}}function gT($){let U=$["m.relates_to"]?.["m.in_reply_to"]?.event_id;if(!U)return;return{id:U,senderId:""}}function hT($){let U=$["m.relates_to"];if(!U)return;if("rel_type"in U&&U.rel_type===u6.Thread)return U.event_id;return}async function QV($){let{client:U,mxcUrl:v,sizeBytes:J,maxBytes:_,file:D}=$;if(typeof J==="number"&&J>_)throw Error("Matrix media exceeds configured size limit");let X;if(D){if(!U.crypto)throw Error("Cannot decrypt media: crypto not enabled");let Y=await U.crypto.decryptMedia(D);if(Y.byteLength>_)throw Error("Matrix media exceeds configured size limit");X=Y}else{let Y=await U.downloadContent(v);if(Y.data.byteLength>_)throw Error("Matrix media exceeds configured size limit");X=Buffer.from(Y.data)}return X}var mU=new Map;async function zV($,U){if(U<=0)return[$];let v=`${$.accountId}:${$.chatId}`;return new Promise((J)=>{let _=mU.get(v)??[];if(_.length>0){let X=_[_.length-1];clearTimeout(X.timer)}let D={message:$,timer:setTimeout(()=>{let X=mU.get(v)??[];mU.delete(v);let Y=X.map((Q)=>Q.message);for(let Q of X)Q.resolve(Y)},U),resolve:J};mU.set(v,[..._,D])})}function NV($){let U=$[0];if(!U)throw Error("Cannot merge empty message array");if($.length===1)return U;let v=$.map((_)=>_.text).filter(Boolean).join(`
331
331
 
332
- `),J=$[$.length-1];return{...U,text:v||void 0,id:J?.id??U.id}}var DV=new Map,yT=60000;async function GV($,U){let v=DV.get(U);if(v&&Date.now()-v.ts<yT)return v.info;let J={altAliases:[]};try{let _=await $.getRoomStateEvent(U,"m.room.name","");if(_?.name)J.name=_.name}catch{}try{let _=await $.getRoomStateEvent(U,"m.room.canonical_alias","");if(_?.alias)J.canonicalAlias=_.alias;if(Array.isArray(_?.alt_aliases))J.altAliases=_.alt_aliases}catch{}return DV.set(U,{info:J,ts:Date.now()}),J}async function qV($,U,v){try{let J=await $.getRoomStateEvent(U,"m.room.member",v);if(J?.displayname)return J.displayname}catch{}return v.split(":")[0]?.replace(/^@/,"")??v}x$();var nU=_$.child("matrix:outbound"),lT=4000,cU=new Map;function iT($){let U=$.trim();if(!U)throw Error("Matrix target is required");return U}async function VV($,U){let v=U.trim();if(!v.startsWith("@"))throw Error(`Matrix user IDs must be fully qualified (got "${v}")`);let J=cU.get(v);if(J)return J;try{let D=await $.getAccountData(X1.Direct),X=Array.isArray(D?.[v])?D[v]:[];if(X.length>0)return cU.set(v,X[0]),X[0]}catch{}let _=null;try{let D=await $.getJoinedRooms();for(let X of D){let Y;try{Y=await $.getJoinedRoomMembers(X)}catch{continue}if(!Y.includes(v))continue;if(Y.length===2)return cU.set(v,X),await HV($,v,X),X;if(!_)_=X}}catch{}if(_)return cU.set(v,_),await HV($,v,_),_;throw Error(`No direct room found for ${v}`)}async function HV($,U,v){let J=null;try{J=await $.getAccountData(X1.Direct)}catch{}let _=J&&!Array.isArray(J)?J:{},D=Array.isArray(_[U])?_[U]:[];if(D[0]===v)return;let X=[v,...D.filter((Y)=>Y!==v)];try{await $.setAccountData(X1.Direct,{..._,[U]:X})}catch{}}async function y6($,U){let v=iT(U),J=v.toLowerCase();if(J.startsWith("matrix:"))return y6($,v.slice(7));if(J.startsWith("room:"))return y6($,v.slice(5));if(J.startsWith("channel:"))return y6($,v.slice(8));if(J.startsWith("user:"))return VV($,v.slice(5));if(v.startsWith("@"))return VV($,v);if(v.startsWith("#")){let _=await $.resolveRoom(v);if(!_)throw Error(`Matrix alias ${v} could not be resolved`);return _}return v}function WV($,U){let v={msgtype:h6.Text,body:$};if(U)v["m.relates_to"]=U;let J=nT($);if(J!==$)v.format="org.matrix.custom.html",v.formatted_body=J;return v}function mT($){let U=$?.trim();if(!U)return;return{"m.in_reply_to":{event_id:U}}}function cT($,U){let v=$.trim();return{rel_type:u6.Thread,event_id:v,is_falling_back:!0,"m.in_reply_to":{event_id:U?.trim()||v}}}function nT($){return $.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/`(.+?)`/g,"<code>$1</code>").replace(/\[(.+?)\]\((.+?)\)/g,'<a href="$2">$1</a>').replace(/\n/g,"<br>")}function pT($,U){if($.length<=U)return[$];let v=[],J=$;while(J.length>0){if(J.length<=U){v.push(J);break}let _=U,D=J.lastIndexOf(`
333
- `,U),X=J.lastIndexOf(" ",U);if(D>U*0.7)_=D+1;else if(X>U*0.7)_=X+1;v.push(J.slice(0,_).trimEnd()),J=J.slice(_).trimStart()}return v}async function BV($,U,v){let J=v.text?.trim()??"";if(!J&&!v.media)return{success:!1,error:"Message requires text or media"};try{let _=await y6($,U),D;if(v.replyTo)if(v.replyTo.includes(":")&&v.replyTo.startsWith("$")){let[Y,Q]=v.replyTo.split(":");D=cT(Y,Q||Y)}else D=mT(v.replyTo);let X="";if(v.media){let Y=typeof v.media.data==="string"?Buffer.from(v.media.data,"base64"):v.media.data,Q=await $.uploadContent(Y,v.media.mimetype),z;if(v.media.mimetype.startsWith("image/"))z=h6.Image;else if(v.media.mimetype.startsWith("audio/"))z=h6.Audio;else if(v.media.mimetype.startsWith("video/"))z=h6.Video;else z=h6.File;let N={msgtype:z,body:v.media.filename||"file",url:Q,info:{mimetype:v.media.mimetype,size:Y.length},...D?{"m.relates_to":D}:{}};if(X=await $.sendMessage(_,N),J){let W=WV(J,D);X=await $.sendMessage(_,W)}}else{let Y=pT(J,lT);for(let Q of Y){let z=WV(Q,D);X=await $.sendMessage(_,z),D=void 0}}return{success:!0,messageId:X}}catch(_){let D=_ instanceof Error?_.message:String(_);return nU.error(`Send message failed: ${D}`),{success:!1,error:D}}}async function ZV($,U,v,J=30000){try{await $.setTyping(U,v,J)}catch(_){nU.debug(`Typing indicator failed: ${_}`)}}async function gD($,U,v){if(!v?.trim())return;try{await $.sendReadReceipt(U,v.trim())}catch(J){nU.debug(`Read receipt failed: ${J}`)}}async function PV($,U,v,J){if(!J?.trim())throw Error("Reaction requires an emoji");try{let _={"m.relates_to":{rel_type:u6.Annotation,event_id:v,key:J.trim()}};await $.sendEvent(U,X1.Reaction,_)}catch(_){throw nU.debug(`Reaction failed: ${_}`),_}}var pU=new Map;function p2($){let U=pU.get($);if(!U)U={messagesReceived:0,messagesSent:0,errors:0},pU.set($,U);return U}function hD($){let U=p2($);U.messagesReceived++,U.lastActivityAt=Date.now()}function uD($){let U=p2($);U.messagesSent++,U.lastActivityAt=Date.now()}function yD($,U){let v=p2($);v.errors++,v.lastError=U,v.lastErrorAt=Date.now()}function FV($){let U=p2($);U.startedAt=Date.now()}function EV($){let U=p2($);U.lastActivityAt=Date.now()}function lD($){let U=pU.get($),v=F$.getState($);if(!U&&v==="disconnected")return null;let J=U??{messagesReceived:0,messagesSent:0,errors:0};return{id:$,state:v,lastActivity:J.lastActivityAt,lastError:J.lastError,metrics:{messagesReceived:J.messagesReceived,messagesSent:J.messagesSent,uptime:J.startedAt?Date.now()-J.startedAt:0}}}function wV(){let $=[],U=!0,v=new Set;for(let J of pU.keys())v.add(J);for(let J of v){let _=lD(J);if(_){if($.push(_),_.state==="error")U=!1}}if($.length===0||$.every((J)=>J.state!=="connected"))U=!1;return{healthy:U,accounts:$,lastCheck:Date.now()}}x$();var B$=_$.child("matrix:plugin"),rT={id:"matrix",name:"Matrix",description:"Matrix messaging via matrix-bot-sdk",version:"1.0.0"},dT={media:!0,reactions:!0,replies:!0,edits:!1,groups:!0,typing:!0,readReceipts:!0};class TV{config=I6;getConfig(){return this.config}setConfig($){this.config=$}listAccounts(){return Object.keys(this.config.accounts)}resolveAccount($){let U=this.config.accounts[$];if(!U)return null;let v=F$.getState($),J=F$.getUserId($);return{id:$,name:U.name,phone:J??void 0,state:v,enabled:U.enabled}}isAuthenticated($){return F$.getState($)==="connected"}}class KV{checkAccess($,U,v,J){let _=C6(J,$);if(!_)return{allowed:!1,reason:"account_not_found"};if(v){let D=_.roomPolicy;if(D==="closed")return{allowed:!1,reason:"rooms_disabled"};if(D==="allowlist"){let X=_.roomAllowlist.some((Q)=>Q===U||U.includes(Q)),Y=x6(U);if(!X&&!Y)return{allowed:!1,pending:!0,reason:"room_not_allowed"}}}if(!v){let D=_.dmPolicy;if(_.allowFrom.length>0){if(_.allowFrom.some((Y)=>Y===U||U.toLowerCase()===Y.toLowerCase()))return{allowed:!0}}if(x6(U))return{allowed:!0};switch(D){case"open":return{allowed:!0};case"pairing":return{allowed:!1,pending:!0,reason:"pending_approval"};case"closed":return{allowed:!1,reason:"dm_closed"};default:return{allowed:!1,reason:"unknown_policy"}}}return{allowed:!0}}getDmPolicy($,U){let J=C6(U,$)?.dmPolicy??"open";if(J==="pairing")return"pairing";if(J==="closed")return"closed";return"open"}getGroupPolicy($,U){let J=C6(U,$)?.roomPolicy??"closed";if(J==="allowlist")return"allowlist";if(J==="closed")return"closed";return"open"}isAllowed($,U,v){return this.checkAccess($,U,!1,v).allowed}}class jV{async send($,U,v){let J=F$.getClient($);if(!J)return{success:!1,error:`Account ${$} not connected`};let _=await BV(J,U,v);if(_.success)uD($);else yD($,_.error??"Unknown send error");return _}async sendTyping($,U,v){let J=F$.getClient($);if(!J){B$.warn(`Cannot send typing - account ${$} not connected`);return}try{let _=await y6(J,U);await ZV(J,_,v)}catch(_){B$.debug(`Typing indicator failed: ${_}`)}}async sendReadReceipt($,U,v){let J=F$.getClient($);if(!J){B$.warn(`Cannot send read receipt - account ${$} not connected`);return}let _=v[v.length-1];if(_)await gD(J,U,_)}async sendReaction($,U,v,J){let _=F$.getClient($);if(!_){B$.warn(`Cannot send reaction - account ${$} not connected`);return}await PV(_,U,v,J)}}var LV=!1,w4=null;class RV{configAdapter;securityAdapter;stateCallbacks=new Set;qrCallbacks=new Set;messageCallbacks=new Set;directTrackers=new Map;subscribedAccounts=new Set;startupTimes=new Map;constructor($,U){if(this.configAdapter=$,this.securityAdapter=U,LV){B$.debug("Session listeners already configured, reusing");return}LV=!0,w4=this,F$.on("stateChange",(v,J)=>{if(!w4)return;for(let _ of w4.stateCallbacks)_(v,J)}),F$.on("clientReady",(v,J)=>{if(!w4)return;if(w4.subscribedAccounts.has(v)){B$.debug(`Account ${v} already subscribed, skipping`);return}w4.subscribedAccounts.add(v),B$.info(`Client ready for ${v}, subscribing to messages`),w4.startupTimes.set(v,Date.now()),FV(v),w4.directTrackers.set(v,JV(J)),J.on("room.message",async(_,D)=>{if(!w4)return;let X=w4.configAdapter.getConfig();await w4.handleMessage(v,J,_,D,X)}),J.on("room.invite",async(_,D)=>{B$.info(`Received invite to room ${_}`);try{await J.joinRoom(_),B$.info(`Joined room ${_}`)}catch(X){B$.warn(`Failed to join room ${_}:`,X)}})})}async start($,U){let v=C6(U,$);if(!v){B$.warn(`Account ${$} not found in config`);return}if(!v.enabled){B$.info(`Account ${$} is disabled, skipping`);return}await F$.start($,v)}async stop($){await F$.stop($),this.directTrackers.delete($),this.startupTimes.delete($)}getState($){return F$.getState($)}onStateChange($){return this.stateCallbacks.add($),()=>this.stateCallbacks.delete($)}onQrCode($){return this.qrCallbacks.add($),()=>this.qrCallbacks.delete($)}onMessage($){return this.messageCallbacks.add($),()=>this.messageCallbacks.delete($)}async handleMessage($,U,v,J,_){let D=C6(_,$);if(!D)return;let X=this.startupTimes.get($)??Date.now(),Y=await U.getUserId(),Q=XV(J,Y,X);if(!Q.pass){B$.debug(`Event filtered: ${Q.reason}`);return}let z=this.directTrackers.get($),N=z?await z.isDirectMessage({roomId:v,senderId:J.sender}):!1,G=await GV(U,v),W=await qV(U,v,J.sender),q=YV({accountId:$,roomId:v,event:J,isDirect:N,roomName:G.name,senderDisplayName:W});if(!q)return;if(q.media?.type==="audio"&&q.media.url)try{let S=J.content,C=await QV({client:U,mxcUrl:q.media.url,contentType:q.media.mimetype,sizeBytes:S.info?.size,maxBytes:20971520,file:S.file});if(C){if(q.media.data=C,B$.debug("Audio downloaded",{size:C.length,mimetype:q.media.mimetype}),process.env.OPENAI_API_KEY){let M=await MU(C,q.media.mimetype);q.transcription=M.text,B$.info("Audio transcribed",{textLength:M.text.length})}}}catch(S){B$.warn("Failed to process audio:",S)}B$.info("Message received",{accountId:$,senderId:q.senderId,roomId:q.chatId,isDirect:q.isDirect}),EV($),hD($);let V=q.isGroup?q.chatId:q.senderId,E=this.securityAdapter.checkAccess($,V,q.isGroup,_);if(B$.info("Security decision",E),!E.allowed){if(E.pending){let S=q.isGroup?q.chatId:q.senderId,C=q.isGroup?q.groupName:q.senderName;fU(S,C??null),B$.info("Saved pending",{id:S,isGroup:q.isGroup})}else B$.debug(`Message blocked: ${E.reason}`);return}if(D.sendReadReceipts)await gD(U,v,q.eventId);let T=D.debounceMs;if(T>0){let S=await zV(q,T),C=NV(S);this.emitMessage(C)}else this.emitMessage(q)}emitMessage($){let U={...$,media:$.media?{...$.media,data:void 0}:void 0,raw:void 0};B4.emit(`matrix.${$.accountId}.inbound`,U).catch((v)=>B$.error("Failed to emit inbound message",v));for(let v of this.messageCallbacks)try{v($)}catch(J){B$.error("Error in message callback",J)}}}class OV{getHealth(){return wV()}getSnapshot($){return lD($)}recordSent($){uD($)}recordReceived($){hD($)}recordError($,U){yD($,U)}}function AV($){let U=new TV,v=new KV,J=new jV,_=new RV(U,v),D=new OV;if($)U.setConfig($V($));else{let X=UV();U.setConfig(X)}return{id:"matrix",meta:rT,capabilities:dT,config:U,security:v,outbound:J,gateway:_,status:D,async init(){B$.info("Matrix plugin initialized"),_.onStateChange((X,Y)=>{B$.info(`Account ${X} state: ${Y}`)})},async shutdown(){B$.info("Shutting down Matrix plugin"),await F$.stopAll()}}}var SV={autoStart:!0,reconnect:{enabled:!0,maxAttempts:10,baseDelayMs:1000,maxDelayMs:30000}};x$();var Y1=_$.child("channel-manager");class bV{plugins;stores=new Map;listeners=new Map;config;constructor($,U={}){this.plugins=$;this.config={...SV,...U};for(let[v]of $)this.stores.set(v,{channelId:v,aborts:new Map,tasks:new Map,runtimes:new Map})}async startChannels(){Y1.info("Starting all channels...");let $=[];for(let[U,v]of this.plugins){await v.init();for(let J of v.config.listAccounts())$.push(this.startAccount(U,J).catch((_)=>{Y1.error(`Failed to start ${U}:${J}`,_)}))}await Promise.all($),Y1.info("All channels started")}async startChannel($,U){let v=this.plugins.get($);if(!v)throw Error(`Unknown channel: ${$}`);if(U)await this.startAccount($,U);else{let J=v.config.listAccounts().map((_)=>this.startAccount($,_).catch((D)=>{Y1.error(`Failed to start ${$}:${_}`,D)}));await Promise.all(J)}}async stopChannel($,U){if(!this.plugins.get($))throw Error(`Unknown channel: ${$}`);if(U)await this.stopAccount($,U);else{let J=this.stores.get($);if(!J)return;let _=Array.from(J.runtimes.keys()).map((D)=>this.stopAccount($,D).catch((X)=>{Y1.error(`Failed to stop ${$}:${D}`,X)}));await Promise.all(_)}}async stopAll(){Y1.info("Stopping all channels...");let $=[];for(let[U]of this.plugins)$.push(this.stopChannel(U));await Promise.all($),Y1.info("All channels stopped")}getChannelSnapshot($){let U=this.stores.get($);if(!U)return[];return Array.from(U.runtimes.values())}getAllSnapshots(){let $=new Map;for(let[U,v]of this.stores)$.set(U,Array.from(v.runtimes.values()));return $}getAccountSnapshot($,U){return this.stores.get($)?.runtimes.get(U)??null}getChannelIds(){return Array.from(this.plugins.keys())}getPlugin($){return this.plugins.get($)}on($,U){if(!this.listeners.has($))this.listeners.set($,new Set);return this.listeners.get($).add(U),()=>{this.listeners.get($)?.delete(U)}}async startAccount($,U){let v=this.plugins.get($),J=this.stores.get($);if(!v||!J)return;let _=_$.child(`${$}:${U}`);if(J.runtimes.get(U)?.running){_.debug("Already running, skipping start");return}let X=v.config.resolveAccount(U);if(!X){this.setRuntime($,U,{accountId:U,enabled:!1,configured:!1,linked:!1,running:!1,connected:!1,reconnectAttempts:0,lastError:"Account not found"});return}if(!X.enabled){this.setRuntime($,U,{accountId:U,name:X.name,enabled:!1,configured:!0,linked:!1,running:!1,connected:!1,reconnectAttempts:0,lastError:"Account disabled"}),_.info("Account disabled, skipping");return}let Y=new AbortController;J.aborts.set(U,Y),this.setRuntime($,U,{accountId:U,name:X.name,enabled:!0,configured:!0,linked:X.state==="connected",running:!0,connected:!1,lastStartAt:Date.now(),reconnectAttempts:0,lastError:null}),_.info("Starting account"),this.createGatewayContext($,U,Y);let Q=v.gateway.onStateChange((N,G)=>{if(N!==U)return;this.handleStateChange($,U,G)}),z=v.config.getConfig();try{let N=(async()=>{try{await v.gateway.start(U,z)}catch(G){if(!Y.signal.aborted)_.error("Gateway start failed",G),this.setRuntime($,U,{running:!1,lastError:G instanceof Error?G.message:String(G)}),this.emit("error",$,U,G)}})();J.tasks.set(U,N),Y.signal.addEventListener("abort",()=>{Q()}),this.emit("started",$,U)}catch(N){throw _.error("Failed to start account",N),J.aborts.delete(U),this.setRuntime($,U,{running:!1,lastError:N instanceof Error?N.message:String(N)}),this.emit("error",$,U,N),N}}async stopAccount($,U){let v=this.plugins.get($),J=this.stores.get($);if(!v||!J)return;let _=_$.child(`${$}:${U}`);_.info("Stopping account");let D=J.aborts.get(U);if(D)D.abort();try{await v.gateway.stop(U)}catch(Y){_.error("Error stopping gateway",Y)}let X=J.tasks.get(U);if(X)try{await X}catch{}J.aborts.delete(U),J.tasks.delete(U),this.setRuntime($,U,{running:!1,connected:!1,lastStopAt:Date.now()}),this.emit("stopped",$,U),_.info("Account stopped")}createGatewayContext($,U,v){let J=this.plugins.get($),_=J.config.getConfig();return{channelId:$,accountId:U,account:J.config.resolveAccount(U),config:_,abortSignal:v.signal,getStatus:()=>this.getAccountSnapshot($,U),setStatus:(D)=>this.setRuntime($,U,D),log:_$.child(`${$}:${U}`)}}setRuntime($,U,v){let J=this.stores.get($);if(!J)return;let D={...J.runtimes.get(U)??{accountId:U,enabled:!1,configured:!1,linked:!1,running:!1,connected:!1,reconnectAttempts:0},...v};J.runtimes.set(U,D),this.emit("stateChange",$,U,D)}handleStateChange($,U,v){let J=v==="connected",_={connected:J,linked:J};if(J)_.lastConnectedAt=Date.now(),_.reconnectAttempts=0,_.lastError=null;else if(v==="disconnected")_.lastDisconnect={reason:"disconnected",at:Date.now()};else if(v==="error")_.lastError="Connection error";this.setRuntime($,U,_)}emit($,...U){let v=this.listeners.get($);if(v)for(let J of v)try{J(...U)}catch(_){Y1.error(`Error in ${$} listener`,_)}}}function rU($,U){return new bV($,U)}function iD($){let U=$.split(":");return{channelId:U[0],accountId:U[1]}}function oT($){if(!$.enabled)return{icon:"\u25CB",status:"disabled"};if(!$.configured)return{icon:"\u25CB",status:"not configured"};if(!$.running)return{icon:"\u25CB",status:"stopped"};if($.connected)return{icon:"\u2713",status:"connected"};if($.lastError)return{icon:"\u2717",status:`error: ${$.lastError}`};return{icon:"\u25D0",status:"connecting"}}function r2(){let $=new Map,U=CD({accounts:{default:{name:"Ravi WhatsApp",enabled:!0,dmPolicy:"pairing",groupPolicy:"allowlist",sendReadReceipts:!0,debounceMs:500}}});$.set(U.id,U);let v=D1();if(uU()||v){let J=AV();$.set(J.id,J)}return $}class b1{async status($){let U=r2();for(let J of U.values())await J.init();let v=$?[$]:Array.from(U.keys());console.log(`
332
+ `),J=$[$.length-1];return{...U,text:v||void 0,id:J?.id??U.id}}var DV=new Map,uT=60000;async function GV($,U){let v=DV.get(U);if(v&&Date.now()-v.ts<uT)return v.info;let J={altAliases:[]};try{let _=await $.getRoomStateEvent(U,"m.room.name","");if(_?.name)J.name=_.name}catch{}try{let _=await $.getRoomStateEvent(U,"m.room.canonical_alias","");if(_?.alias)J.canonicalAlias=_.alias;if(Array.isArray(_?.alt_aliases))J.altAliases=_.alt_aliases}catch{}return DV.set(U,{info:J,ts:Date.now()}),J}async function qV($,U,v){try{let J=await $.getRoomStateEvent(U,"m.room.member",v);if(J?.displayname)return J.displayname}catch{}return v.split(":")[0]?.replace(/^@/,"")??v}x$();var nU=_$.child("matrix:outbound"),yT=4000,cU=new Map;function lT($){let U=$.trim();if(!U)throw Error("Matrix target is required");return U}async function VV($,U){let v=U.trim();if(!v.startsWith("@"))throw Error(`Matrix user IDs must be fully qualified (got "${v}")`);let J=cU.get(v);if(J)return J;try{let D=await $.getAccountData(X1.Direct),X=Array.isArray(D?.[v])?D[v]:[];if(X.length>0)return cU.set(v,X[0]),X[0]}catch{}let _=null;try{let D=await $.getJoinedRooms();for(let X of D){let Y;try{Y=await $.getJoinedRoomMembers(X)}catch{continue}if(!Y.includes(v))continue;if(Y.length===2)return cU.set(v,X),await HV($,v,X),X;if(!_)_=X}}catch{}if(_)return cU.set(v,_),await HV($,v,_),_;throw Error(`No direct room found for ${v}`)}async function HV($,U,v){let J=null;try{J=await $.getAccountData(X1.Direct)}catch{}let _=J&&!Array.isArray(J)?J:{},D=Array.isArray(_[U])?_[U]:[];if(D[0]===v)return;let X=[v,...D.filter((Y)=>Y!==v)];try{await $.setAccountData(X1.Direct,{..._,[U]:X})}catch{}}async function y6($,U){let v=lT(U),J=v.toLowerCase();if(J.startsWith("matrix:"))return y6($,v.slice(7));if(J.startsWith("room:"))return y6($,v.slice(5));if(J.startsWith("channel:"))return y6($,v.slice(8));if(J.startsWith("user:"))return VV($,v.slice(5));if(v.startsWith("@"))return VV($,v);if(v.startsWith("#")){let _=await $.resolveRoom(v);if(!_)throw Error(`Matrix alias ${v} could not be resolved`);return _}return v}function WV($,U){let v={msgtype:h6.Text,body:$};if(U)v["m.relates_to"]=U;let J=cT($);if(J!==$)v.format="org.matrix.custom.html",v.formatted_body=J;return v}function iT($){let U=$?.trim();if(!U)return;return{"m.in_reply_to":{event_id:U}}}function mT($,U){let v=$.trim();return{rel_type:u6.Thread,event_id:v,is_falling_back:!0,"m.in_reply_to":{event_id:U?.trim()||v}}}function cT($){return $.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/`(.+?)`/g,"<code>$1</code>").replace(/\[(.+?)\]\((.+?)\)/g,'<a href="$2">$1</a>').replace(/\n/g,"<br>")}function nT($,U){if($.length<=U)return[$];let v=[],J=$;while(J.length>0){if(J.length<=U){v.push(J);break}let _=U,D=J.lastIndexOf(`
333
+ `,U),X=J.lastIndexOf(" ",U);if(D>U*0.7)_=D+1;else if(X>U*0.7)_=X+1;v.push(J.slice(0,_).trimEnd()),J=J.slice(_).trimStart()}return v}async function BV($,U,v){let J=v.text?.trim()??"";if(!J&&!v.media)return{success:!1,error:"Message requires text or media"};try{let _=await y6($,U),D;if(v.replyTo)if(v.replyTo.includes(":")&&v.replyTo.startsWith("$")){let[Y,Q]=v.replyTo.split(":");D=mT(Y,Q||Y)}else D=iT(v.replyTo);let X="";if(v.media){let Y=typeof v.media.data==="string"?Buffer.from(v.media.data,"base64"):v.media.data,Q=await $.uploadContent(Y,v.media.mimetype),z;if(v.media.mimetype.startsWith("image/"))z=h6.Image;else if(v.media.mimetype.startsWith("audio/"))z=h6.Audio;else if(v.media.mimetype.startsWith("video/"))z=h6.Video;else z=h6.File;let N={msgtype:z,body:v.media.filename||"file",url:Q,info:{mimetype:v.media.mimetype,size:Y.length},...D?{"m.relates_to":D}:{}};if(X=await $.sendMessage(_,N),J){let W=WV(J,D);X=await $.sendMessage(_,W)}}else{let Y=nT(J,yT);for(let Q of Y){let z=WV(Q,D);X=await $.sendMessage(_,z),D=void 0}}return{success:!0,messageId:X}}catch(_){let D=_ instanceof Error?_.message:String(_);return nU.error(`Send message failed: ${D}`),{success:!1,error:D}}}async function ZV($,U,v,J=30000){try{await $.setTyping(U,v,J)}catch(_){nU.debug(`Typing indicator failed: ${_}`)}}async function gD($,U,v){if(!v?.trim())return;try{await $.sendReadReceipt(U,v.trim())}catch(J){nU.debug(`Read receipt failed: ${J}`)}}async function PV($,U,v,J){if(!J?.trim())throw Error("Reaction requires an emoji");try{let _={"m.relates_to":{rel_type:u6.Annotation,event_id:v,key:J.trim()}};await $.sendEvent(U,X1.Reaction,_)}catch(_){throw nU.debug(`Reaction failed: ${_}`),_}}var pU=new Map;function p2($){let U=pU.get($);if(!U)U={messagesReceived:0,messagesSent:0,errors:0},pU.set($,U);return U}function hD($){let U=p2($);U.messagesReceived++,U.lastActivityAt=Date.now()}function uD($){let U=p2($);U.messagesSent++,U.lastActivityAt=Date.now()}function yD($,U){let v=p2($);v.errors++,v.lastError=U,v.lastErrorAt=Date.now()}function FV($){let U=p2($);U.startedAt=Date.now()}function EV($){let U=p2($);U.lastActivityAt=Date.now()}function lD($){let U=pU.get($),v=F$.getState($);if(!U&&v==="disconnected")return null;let J=U??{messagesReceived:0,messagesSent:0,errors:0};return{id:$,state:v,lastActivity:J.lastActivityAt,lastError:J.lastError,metrics:{messagesReceived:J.messagesReceived,messagesSent:J.messagesSent,uptime:J.startedAt?Date.now()-J.startedAt:0}}}function wV(){let $=[],U=!0,v=new Set;for(let J of pU.keys())v.add(J);for(let J of v){let _=lD(J);if(_){if($.push(_),_.state==="error")U=!1}}if($.length===0||$.every((J)=>J.state!=="connected"))U=!1;return{healthy:U,accounts:$,lastCheck:Date.now()}}x$();var B$=_$.child("matrix:plugin"),pT={id:"matrix",name:"Matrix",description:"Matrix messaging via matrix-bot-sdk",version:"1.0.0"},rT={media:!0,reactions:!0,replies:!0,edits:!1,groups:!0,typing:!0,readReceipts:!0};class TV{config=I6;getConfig(){return this.config}setConfig($){this.config=$}listAccounts(){return Object.keys(this.config.accounts)}resolveAccount($){let U=this.config.accounts[$];if(!U)return null;let v=F$.getState($),J=F$.getUserId($);return{id:$,name:U.name,phone:J??void 0,state:v,enabled:U.enabled}}isAuthenticated($){return F$.getState($)==="connected"}}class KV{checkAccess($,U,v,J){let _=C6(J,$);if(!_)return{allowed:!1,reason:"account_not_found"};if(v){let D=_.roomPolicy;if(D==="closed")return{allowed:!1,reason:"rooms_disabled"};if(D==="allowlist"){let X=_.roomAllowlist.some((Q)=>Q===U||U.includes(Q)),Y=x6(U);if(!X&&!Y)return{allowed:!1,pending:!0,reason:"room_not_allowed"}}}if(!v){let D=_.dmPolicy;if(_.allowFrom.length>0){if(_.allowFrom.some((Y)=>Y===U||U.toLowerCase()===Y.toLowerCase()))return{allowed:!0}}if(x6(U))return{allowed:!0};switch(D){case"open":return{allowed:!0};case"pairing":return{allowed:!1,pending:!0,reason:"pending_approval"};case"closed":return{allowed:!1,reason:"dm_closed"};default:return{allowed:!1,reason:"unknown_policy"}}}return{allowed:!0}}getDmPolicy($,U){let J=C6(U,$)?.dmPolicy??"open";if(J==="pairing")return"pairing";if(J==="closed")return"closed";return"open"}getGroupPolicy($,U){let J=C6(U,$)?.roomPolicy??"closed";if(J==="allowlist")return"allowlist";if(J==="closed")return"closed";return"open"}isAllowed($,U,v){return this.checkAccess($,U,!1,v).allowed}}class jV{async send($,U,v){let J=F$.getClient($);if(!J)return{success:!1,error:`Account ${$} not connected`};let _=await BV(J,U,v);if(_.success)uD($);else yD($,_.error??"Unknown send error");return _}async sendTyping($,U,v){let J=F$.getClient($);if(!J){B$.warn(`Cannot send typing - account ${$} not connected`);return}try{let _=await y6(J,U);await ZV(J,_,v)}catch(_){B$.debug(`Typing indicator failed: ${_}`)}}async sendReadReceipt($,U,v){let J=F$.getClient($);if(!J){B$.warn(`Cannot send read receipt - account ${$} not connected`);return}let _=v[v.length-1];if(_)await gD(J,U,_)}async sendReaction($,U,v,J){let _=F$.getClient($);if(!_){B$.warn(`Cannot send reaction - account ${$} not connected`);return}await PV(_,U,v,J)}}var LV=!1,w4=null;class RV{configAdapter;securityAdapter;stateCallbacks=new Set;qrCallbacks=new Set;messageCallbacks=new Set;directTrackers=new Map;subscribedAccounts=new Set;startupTimes=new Map;constructor($,U){if(this.configAdapter=$,this.securityAdapter=U,LV){B$.debug("Session listeners already configured, reusing");return}LV=!0,w4=this,F$.on("stateChange",(v,J)=>{if(!w4)return;for(let _ of w4.stateCallbacks)_(v,J)}),F$.on("clientReady",(v,J)=>{if(!w4)return;if(w4.subscribedAccounts.has(v)){B$.debug(`Account ${v} already subscribed, skipping`);return}w4.subscribedAccounts.add(v),B$.info(`Client ready for ${v}, subscribing to messages`),w4.startupTimes.set(v,Date.now()),FV(v),w4.directTrackers.set(v,JV(J)),J.on("room.message",async(_,D)=>{if(!w4)return;let X=w4.configAdapter.getConfig();await w4.handleMessage(v,J,_,D,X)}),J.on("room.invite",async(_,D)=>{B$.info(`Received invite to room ${_}`);try{await J.joinRoom(_),B$.info(`Joined room ${_}`)}catch(X){B$.warn(`Failed to join room ${_}:`,X)}})})}async start($,U){let v=C6(U,$);if(!v){B$.warn(`Account ${$} not found in config`);return}if(!v.enabled){B$.info(`Account ${$} is disabled, skipping`);return}await F$.start($,v)}async stop($){await F$.stop($),this.directTrackers.delete($),this.startupTimes.delete($)}getState($){return F$.getState($)}onStateChange($){return this.stateCallbacks.add($),()=>this.stateCallbacks.delete($)}onQrCode($){return this.qrCallbacks.add($),()=>this.qrCallbacks.delete($)}onMessage($){return this.messageCallbacks.add($),()=>this.messageCallbacks.delete($)}async handleMessage($,U,v,J,_){let D=C6(_,$);if(!D)return;let X=this.startupTimes.get($)??Date.now(),Y=await U.getUserId(),Q=XV(J,Y,X);if(!Q.pass){B$.debug(`Event filtered: ${Q.reason}`);return}let z=this.directTrackers.get($),N=z?await z.isDirectMessage({roomId:v,senderId:J.sender}):!1,G=await GV(U,v),W=await qV(U,v,J.sender),q=YV({accountId:$,roomId:v,event:J,isDirect:N,roomName:G.name,senderDisplayName:W});if(!q)return;if(q.media?.type==="audio"&&q.media.url)try{let S=J.content,C=await QV({client:U,mxcUrl:q.media.url,contentType:q.media.mimetype,sizeBytes:S.info?.size,maxBytes:20971520,file:S.file});if(C){if(q.media.data=C,B$.debug("Audio downloaded",{size:C.length,mimetype:q.media.mimetype}),process.env.OPENAI_API_KEY){let M=await MU(C,q.media.mimetype);q.transcription=M.text,B$.info("Audio transcribed",{textLength:M.text.length})}}}catch(S){B$.warn("Failed to process audio:",S)}B$.info("Message received",{accountId:$,senderId:q.senderId,roomId:q.chatId,isDirect:q.isDirect}),EV($),hD($);let V=q.isGroup?q.chatId:q.senderId,E=this.securityAdapter.checkAccess($,V,q.isGroup,_);if(B$.info("Security decision",E),!E.allowed){if(E.pending){let S=q.isGroup?q.chatId:q.senderId,C=q.isGroup?q.groupName:q.senderName;fU(S,C??null),B$.info("Saved pending",{id:S,isGroup:q.isGroup})}else B$.debug(`Message blocked: ${E.reason}`);return}if(D.sendReadReceipts)await gD(U,v,q.eventId);let T=D.debounceMs;if(T>0){let S=await zV(q,T),C=NV(S);this.emitMessage(C)}else this.emitMessage(q)}emitMessage($){let U={...$,media:$.media?{...$.media,data:void 0}:void 0,raw:void 0};B4.emit(`matrix.${$.accountId}.inbound`,U).catch((v)=>B$.error("Failed to emit inbound message",v));for(let v of this.messageCallbacks)try{v($)}catch(J){B$.error("Error in message callback",J)}}}class OV{getHealth(){return wV()}getSnapshot($){return lD($)}recordSent($){uD($)}recordReceived($){hD($)}recordError($,U){yD($,U)}}function AV($){let U=new TV,v=new KV,J=new jV,_=new RV(U,v),D=new OV;if($)U.setConfig($V($));else{let X=UV();U.setConfig(X)}return{id:"matrix",meta:pT,capabilities:rT,config:U,security:v,outbound:J,gateway:_,status:D,async init(){B$.info("Matrix plugin initialized"),_.onStateChange((X,Y)=>{B$.info(`Account ${X} state: ${Y}`)})},async shutdown(){B$.info("Shutting down Matrix plugin"),await F$.stopAll()}}}var SV={autoStart:!0,reconnect:{enabled:!0,maxAttempts:10,baseDelayMs:1000,maxDelayMs:30000}};x$();var Y1=_$.child("channel-manager");class bV{plugins;stores=new Map;listeners=new Map;config;constructor($,U={}){this.plugins=$;this.config={...SV,...U};for(let[v]of $)this.stores.set(v,{channelId:v,aborts:new Map,tasks:new Map,runtimes:new Map})}async startChannels(){Y1.info("Starting all channels...");let $=[];for(let[U,v]of this.plugins){await v.init();for(let J of v.config.listAccounts())$.push(this.startAccount(U,J).catch((_)=>{Y1.error(`Failed to start ${U}:${J}`,_)}))}await Promise.all($),Y1.info("All channels started")}async startChannel($,U){let v=this.plugins.get($);if(!v)throw Error(`Unknown channel: ${$}`);if(U)await this.startAccount($,U);else{let J=v.config.listAccounts().map((_)=>this.startAccount($,_).catch((D)=>{Y1.error(`Failed to start ${$}:${_}`,D)}));await Promise.all(J)}}async stopChannel($,U){if(!this.plugins.get($))throw Error(`Unknown channel: ${$}`);if(U)await this.stopAccount($,U);else{let J=this.stores.get($);if(!J)return;let _=Array.from(J.runtimes.keys()).map((D)=>this.stopAccount($,D).catch((X)=>{Y1.error(`Failed to stop ${$}:${D}`,X)}));await Promise.all(_)}}async stopAll(){Y1.info("Stopping all channels...");let $=[];for(let[U]of this.plugins)$.push(this.stopChannel(U));await Promise.all($),Y1.info("All channels stopped")}getChannelSnapshot($){let U=this.stores.get($);if(!U)return[];return Array.from(U.runtimes.values())}getAllSnapshots(){let $=new Map;for(let[U,v]of this.stores)$.set(U,Array.from(v.runtimes.values()));return $}getAccountSnapshot($,U){return this.stores.get($)?.runtimes.get(U)??null}getChannelIds(){return Array.from(this.plugins.keys())}getPlugin($){return this.plugins.get($)}on($,U){if(!this.listeners.has($))this.listeners.set($,new Set);return this.listeners.get($).add(U),()=>{this.listeners.get($)?.delete(U)}}async startAccount($,U){let v=this.plugins.get($),J=this.stores.get($);if(!v||!J)return;let _=_$.child(`${$}:${U}`);if(J.runtimes.get(U)?.running){_.debug("Already running, skipping start");return}let X=v.config.resolveAccount(U);if(!X){this.setRuntime($,U,{accountId:U,enabled:!1,configured:!1,linked:!1,running:!1,connected:!1,reconnectAttempts:0,lastError:"Account not found"});return}if(!X.enabled){this.setRuntime($,U,{accountId:U,name:X.name,enabled:!1,configured:!0,linked:!1,running:!1,connected:!1,reconnectAttempts:0,lastError:"Account disabled"}),_.info("Account disabled, skipping");return}let Y=new AbortController;J.aborts.set(U,Y),this.setRuntime($,U,{accountId:U,name:X.name,enabled:!0,configured:!0,linked:X.state==="connected",running:!0,connected:!1,lastStartAt:Date.now(),reconnectAttempts:0,lastError:null}),_.info("Starting account"),this.createGatewayContext($,U,Y);let Q=v.gateway.onStateChange((N,G)=>{if(N!==U)return;this.handleStateChange($,U,G)}),z=v.config.getConfig();try{let N=(async()=>{try{await v.gateway.start(U,z)}catch(G){if(!Y.signal.aborted)_.error("Gateway start failed",G),this.setRuntime($,U,{running:!1,lastError:G instanceof Error?G.message:String(G)}),this.emit("error",$,U,G)}})();J.tasks.set(U,N),Y.signal.addEventListener("abort",()=>{Q()}),this.emit("started",$,U)}catch(N){throw _.error("Failed to start account",N),J.aborts.delete(U),this.setRuntime($,U,{running:!1,lastError:N instanceof Error?N.message:String(N)}),this.emit("error",$,U,N),N}}async stopAccount($,U){let v=this.plugins.get($),J=this.stores.get($);if(!v||!J)return;let _=_$.child(`${$}:${U}`);_.info("Stopping account");let D=J.aborts.get(U);if(D)D.abort();try{await v.gateway.stop(U)}catch(Y){_.error("Error stopping gateway",Y)}let X=J.tasks.get(U);if(X)try{await X}catch{}J.aborts.delete(U),J.tasks.delete(U),this.setRuntime($,U,{running:!1,connected:!1,lastStopAt:Date.now()}),this.emit("stopped",$,U),_.info("Account stopped")}createGatewayContext($,U,v){let J=this.plugins.get($),_=J.config.getConfig();return{channelId:$,accountId:U,account:J.config.resolveAccount(U),config:_,abortSignal:v.signal,getStatus:()=>this.getAccountSnapshot($,U),setStatus:(D)=>this.setRuntime($,U,D),log:_$.child(`${$}:${U}`)}}setRuntime($,U,v){let J=this.stores.get($);if(!J)return;let D={...J.runtimes.get(U)??{accountId:U,enabled:!1,configured:!1,linked:!1,running:!1,connected:!1,reconnectAttempts:0},...v};J.runtimes.set(U,D),this.emit("stateChange",$,U,D)}handleStateChange($,U,v){let J=v==="connected",_={connected:J,linked:J};if(J)_.lastConnectedAt=Date.now(),_.reconnectAttempts=0,_.lastError=null;else if(v==="disconnected")_.lastDisconnect={reason:"disconnected",at:Date.now()};else if(v==="error")_.lastError="Connection error";this.setRuntime($,U,_)}emit($,...U){let v=this.listeners.get($);if(v)for(let J of v)try{J(...U)}catch(_){Y1.error(`Error in ${$} listener`,_)}}}function rU($,U){return new bV($,U)}function iD($){let U=$.split(":");return{channelId:U[0],accountId:U[1]}}function dT($){if(!$.enabled)return{icon:"\u25CB",status:"disabled"};if(!$.configured)return{icon:"\u25CB",status:"not configured"};if(!$.running)return{icon:"\u25CB",status:"stopped"};if($.connected)return{icon:"\u2713",status:"connected"};if($.lastError)return{icon:"\u2717",status:`error: ${$.lastError}`};return{icon:"\u25D0",status:"connecting"}}function r2(){let $=new Map,U=CD({accounts:{default:{name:"Ravi WhatsApp",enabled:!0,dmPolicy:"pairing",groupPolicy:"allowlist",sendReadReceipts:!0,debounceMs:500}}});$.set(U.id,U);let v=D1();if(uU()||v){let J=AV();$.set(J.id,J)}return $}class b1{async status($){let U=r2();for(let J of U.values())await J.init();let v=$?[$]:Array.from(U.keys());console.log(`
334
334
  Channel Status`),console.log(`\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
335
- `);for(let J of v){let _=U.get(J);if(!_){console.log(`${J} (unknown channel)`);continue}console.log(J);let D=_.config.listAccounts();if(D.length===0){console.log(" (no accounts configured)");continue}for(let X of D){let Y=_.config.resolveAccount(X);if(!Y)continue;let Q={accountId:X,name:Y.name,enabled:Y.enabled,configured:!0,linked:Y.state==="connected",running:Y.state!=="disconnected",connected:Y.state==="connected",reconnectAttempts:0},{icon:z,status:N}=oT(Q),G=Y.phone?`(+${Y.phone})`:"",W=Q.name||X;console.log(` ${W.padEnd(10)} ${z} ${N.padEnd(15)} ${G}`)}console.log()}for(let J of U.values())await J.shutdown()}async start($){let{channelId:U,accountId:v}=iD($),J=r2(),_=rU(J);_.on("started",(D,X)=>{console.log(`\u2713 Started ${D}:${X}`)}),_.on("error",(D,X,Y)=>{console.error(`\u2717 Error ${D}:${X}: ${Y.message}`)});try{if(v)console.log(`Starting ${U}:${v}...`),await _.startChannel(U,v);else console.log(`Starting all accounts for ${U}...`),await _.startChannel(U)}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}async stop($){let{channelId:U,accountId:v}=iD($),J=r2(),_=rU(J);_.on("stopped",(D,X)=>{console.log(`\u2713 Stopped ${D}:${X}`)});try{if(v)console.log(`Stopping ${U}:${v}...`),await _.stopChannel(U,v);else console.log(`Stopping all accounts for ${U}...`),await _.stopChannel(U)}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}async restart($){let{channelId:U,accountId:v}=iD($),J=r2(),_=rU(J);_.on("stopped",(D,X)=>{console.log(` Stopped ${D}:${X}`)}),_.on("started",(D,X)=>{console.log(` Started ${D}:${X}`)}),_.on("error",(D,X,Y)=>{console.error(`\u2717 Error ${D}:${X}: ${Y.message}`)});try{if(v)console.log(`Restarting ${U}:${v}...`),await _.stopChannel(U,v),await _.startChannel(U,v),console.log(`\u2713 Restarted ${U}:${v}`);else console.log(`Restarting all accounts for ${U}...`),await _.stopChannel(U),await _.startChannel(U),console.log(`\u2713 Restarted ${U}`)}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}async list(){let $=r2();console.log(`
335
+ `);for(let J of v){let _=U.get(J);if(!_){console.log(`${J} (unknown channel)`);continue}console.log(J);let D=_.config.listAccounts();if(D.length===0){console.log(" (no accounts configured)");continue}for(let X of D){let Y=_.config.resolveAccount(X);if(!Y)continue;let Q={accountId:X,name:Y.name,enabled:Y.enabled,configured:!0,linked:Y.state==="connected",running:Y.state!=="disconnected",connected:Y.state==="connected",reconnectAttempts:0},{icon:z,status:N}=dT(Q),G=Y.phone?`(+${Y.phone})`:"",W=Q.name||X;console.log(` ${W.padEnd(10)} ${z} ${N.padEnd(15)} ${G}`)}console.log()}for(let J of U.values())await J.shutdown()}async start($){let{channelId:U,accountId:v}=iD($),J=r2(),_=rU(J);_.on("started",(D,X)=>{console.log(`\u2713 Started ${D}:${X}`)}),_.on("error",(D,X,Y)=>{console.error(`\u2717 Error ${D}:${X}: ${Y.message}`)});try{if(v)console.log(`Starting ${U}:${v}...`),await _.startChannel(U,v);else console.log(`Starting all accounts for ${U}...`),await _.startChannel(U)}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}async stop($){let{channelId:U,accountId:v}=iD($),J=r2(),_=rU(J);_.on("stopped",(D,X)=>{console.log(`\u2713 Stopped ${D}:${X}`)});try{if(v)console.log(`Stopping ${U}:${v}...`),await _.stopChannel(U,v);else console.log(`Stopping all accounts for ${U}...`),await _.stopChannel(U)}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}async restart($){let{channelId:U,accountId:v}=iD($),J=r2(),_=rU(J);_.on("stopped",(D,X)=>{console.log(` Stopped ${D}:${X}`)}),_.on("started",(D,X)=>{console.log(` Started ${D}:${X}`)}),_.on("error",(D,X,Y)=>{console.error(`\u2717 Error ${D}:${X}: ${Y.message}`)});try{if(v)console.log(`Restarting ${U}:${v}...`),await _.stopChannel(U,v),await _.startChannel(U,v),console.log(`\u2713 Restarted ${U}:${v}`);else console.log(`Restarting all accounts for ${U}...`),await _.stopChannel(U),await _.startChannel(U),console.log(`\u2713 Restarted ${U}`)}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}async list(){let $=r2();console.log(`
336
336
  Configured Channels`),console.log(`\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
337
337
  `),console.log(" ID VERSION CAPABILITIES"),console.log(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500");for(let[U,v]of $){let J=Object.entries(v.capabilities).filter(([,_])=>_).map(([_])=>_).join(", ");console.log(` ${U.padEnd(10)} ${v.meta.version.padEnd(10)} ${J}`)}console.log(`
338
338
  Total: ${$.size}
339
- `)}}b([I({name:"status",description:"Show channel status"}),K(0,x("channel",{required:!1,description:"Channel ID (e.g., whatsapp)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"status",null),b([I({name:"start",description:"Start a channel or account"}),K(0,x("target",{description:"Channel or channel:account (e.g., whatsapp, whatsapp:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"start",null),b([I({name:"stop",description:"Stop a channel or account"}),K(0,x("target",{description:"Channel or channel:account (e.g., whatsapp, whatsapp:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"stop",null),b([I({name:"restart",description:"Restart a channel or account"}),K(0,x("target",{description:"Channel or channel:account (e.g., whatsapp, whatsapp:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"restart",null),b([I({name:"list",description:"List all configured channels"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",Promise)],b1.prototype,"list",null),b1=b([O$({name:"channels",description:"Channel management"})],b1);var Yk=M$(D4(),1);function tT($){switch($){case"allowed":return"\x1B[32m\u2713\x1B[0m";case"pending":return"\x1B[33m?\x1B[0m";case"blocked":return"\x1B[31m\u2717\x1B[0m";case"discovered":return"\x1B[36m\u25CB\x1B[0m"}}function aT($){switch($){case"allowed":return"\x1B[32mallowed\x1B[0m";case"pending":return"\x1B[33mpending\x1B[0m";case"blocked":return"\x1B[31mblocked\x1B[0m";case"discovered":return"\x1B[36mdiscovered\x1B[0m"}}class k1{list(){let $=Iq();if($.length===0){console.log("No contacts registered."),console.log(`
339
+ `)}}b([I({name:"status",description:"Show channel status"}),K(0,x("channel",{required:!1,description:"Channel ID (e.g., whatsapp)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"status",null),b([I({name:"start",description:"Start a channel or account"}),K(0,x("target",{description:"Channel or channel:account (e.g., whatsapp, whatsapp:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"start",null),b([I({name:"stop",description:"Stop a channel or account"}),K(0,x("target",{description:"Channel or channel:account (e.g., whatsapp, whatsapp:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"stop",null),b([I({name:"restart",description:"Restart a channel or account"}),K(0,x("target",{description:"Channel or channel:account (e.g., whatsapp, whatsapp:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],b1.prototype,"restart",null),b([I({name:"list",description:"List all configured channels"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",Promise)],b1.prototype,"list",null),b1=b([O$({name:"channels",description:"Channel management"})],b1);var Xk=k$(D4(),1);function oT($){switch($){case"allowed":return"\x1B[32m\u2713\x1B[0m";case"pending":return"\x1B[33m?\x1B[0m";case"blocked":return"\x1B[31m\u2717\x1B[0m";case"discovered":return"\x1B[36m\u25CB\x1B[0m"}}function tT($){switch($){case"allowed":return"\x1B[32mallowed\x1B[0m";case"pending":return"\x1B[33mpending\x1B[0m";case"blocked":return"\x1B[31mblocked\x1B[0m";case"discovered":return"\x1B[36mdiscovered\x1B[0m"}}class k1{list(){let $=Iq();if($.length===0){console.log("No contacts registered."),console.log(`
340
340
  Add a contact: ravi contacts add <phone> [name]`);return}console.log(`
341
341
  Contacts:
342
- `),console.log(" ST PHONE NAME"),console.log(" -- -------------------- ----------------");for(let _ of $){let D=tT(_.status),X=l$(_.phone).padEnd(20),Y=_.name||"-";console.log(` ${D} ${X} ${Y}`)}let U=$.filter((_)=>_.status==="allowed").length,v=$.filter((_)=>_.status==="pending").length,J=$.filter((_)=>_.status==="blocked").length;console.log(`
342
+ `),console.log(" ST PHONE NAME"),console.log(" -- -------------------- ----------------");for(let _ of $){let D=oT(_.status),X=l$(_.phone).padEnd(20),Y=_.name||"-";console.log(` ${D} ${X} ${Y}`)}let U=$.filter((_)=>_.status==="allowed").length,v=$.filter((_)=>_.status==="pending").length,J=$.filter((_)=>_.status==="blocked").length;console.log(`
343
343
  Total: ${$.length} (${U} allowed, ${v} pending, ${J} blocked)`)}pending(){let $=Cq();if($.length===0){console.log("No pending contacts.");return}console.log(`
344
344
  Pending contacts (${$.length}):
345
345
  `),console.log(" PHONE NAME SINCE"),console.log(" -------------------- ---------------- ----------");for(let U of $){let v=l$(U.phone).padEnd(20),J=(U.name||"-").padEnd(16),_=U.created_at.split(" ")[0];console.log(` ${v} ${J} ${_}`)}console.log(`
346
- Approve: ravi contacts approve <phone>`),console.log("Block: ravi contacts block <phone>")}add($,U){let v=q$($);xD(v,U??null,"allowed"),console.log(`\u2713 Contact added: ${l$(v)}${U?` (${U})`:""}`)}approve($,U,v){if(v&&v!=="auto"&&v!=="mention")console.error("Error: Reply mode must be 'auto' or 'mention'"),process.exit(1);let J=q$($),_=J1(J);if(!_)console.log(`Contact not found: ${l$(J)}`),process.exit(1);if(gU(J,U),v)ID(J,v);let D=U?` \u2192 agent:${U}`:"",X=v?` (${v})`:"";console.log(`\u2713 Contact approved: ${l$(J)}${_.name?` (${_.name})`:""}${D}${X}`)}remove($){let U=q$($);if(fq(U))console.log(`\u2713 Contact removed: ${l$(U)}`);else console.log(`Contact not found: ${l$(U)}`)}allow($){let U=q$($);gU(U),console.log(`\u2713 Contact allowed: ${l$(U)}`)}block($){let U=q$($);uq(U),console.log(`\u2717 Contact blocked: ${l$(U)}`)}set($,U,v){let J=q$($);if(!J1(J))console.log(`Contact not found: ${l$(J)}`),process.exit(1);if(U==="agent")gU(J,v),console.log(`\u2713 Agent set: ${l$(J)} \u2192 ${v}`);else if(U==="mode"){if(v!=="auto"&&v!=="mention")console.error("Error: Mode must be 'auto' or 'mention'"),process.exit(1);ID(J,v),console.log(`\u2713 Mode set: ${l$(J)} \u2192 ${v}`)}else console.error(`Unknown key: ${U}`),console.log("Keys: agent, mode"),process.exit(1)}check($){let U=q$($),v=J1(U);if(v)console.log(`
347
- Contact: ${l$(U)}`),console.log(` Name: ${v.name||"-"}`),console.log(` Status: ${aT(v.status)}`),console.log(` Agent: ${v.agent_id||"-"}`),console.log(` Mode: ${v.reply_mode||"auto"}`),console.log(` Created: ${v.created_at}`),console.log(` Updated: ${v.updated_at}`);else console.log(`
348
- Contact not found: ${l$(U)}`),console.log(" Status: \x1B[31m\u2717 Not allowed\x1B[0m (unknown)")}}b([I({name:"list",description:"List all contacts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],k1.prototype,"list",null),b([I({name:"pending",description:"List pending contacts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],k1.prototype,"pending",null),b([I({name:"add",description:"Add/allow a contact"}),K(0,x("phone",{description:"Phone number"})),K(1,x("name",{required:!1,description:"Contact name"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],k1.prototype,"add",null),b([I({name:"approve",description:"Approve pending contact"}),K(0,x("phone",{description:"Phone number"})),K(1,x("agent",{required:!1,description:"Agent ID"})),K(2,x("mode",{required:!1,description:"Reply mode (auto|mention)"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],k1.prototype,"approve",null),b([I({name:"remove",description:"Remove a contact"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"remove",null),b([I({name:"allow",description:"Allow a contact"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"allow",null),b([I({name:"block",description:"Block a contact"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"block",null),b([I({name:"set",description:"Set contact property"}),K(0,x("phone",{description:"Phone number"})),K(1,x("key",{description:"Property key (agent, mode)"})),K(2,x("value",{description:"Property value"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],k1.prototype,"set",null),b([I({name:"check",description:"Check contact status"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"check",null),k1=b([O$({name:"contacts",description:"Contact management"})],k1);var qk=M$(D4(),1);import{spawn as mD}from"child_process";class M1{start(){console.log("Starting Ravi bot server..."),mD("tsx",["src/index.ts"],{stdio:"inherit",cwd:process.cwd()}).on("error",(U)=>{console.error(`Failed to start: ${U.message}`),process.exit(1)})}tui($){let U=["src/tui.tsx"];if($)U.push($);console.log(`Starting TUI${$?` with session: ${$}`:""}...`),mD("tsx",U,{stdio:"inherit",cwd:process.cwd()}).on("error",(J)=>{console.error(`Failed to start TUI: ${J.message}`),process.exit(1)})}wa(){console.log("Starting WhatsApp gateway..."),mD("tsx",["src/wa.ts"],{stdio:"inherit",cwd:process.cwd()}).on("error",(U)=>{console.error(`Failed to start gateway: ${U.message}`),process.exit(1)})}}b([I({name:"start",description:"Start the bot server"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],M1.prototype,"start",null),b([I({name:"tui",description:"Start the TUI interface"}),K(0,x("session",{required:!1,description:"Session key (default: agent:main:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],M1.prototype,"tui",null),b([I({name:"wa",description:"Start WhatsApp gateway"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],M1.prototype,"wa",null),M1=b([O$({name:"service",description:"Bot service management"})],M1);var Zk=M$(D4(),1);import{execSync as v4,spawn as cD}from"child_process";import{existsSync as m4,writeFileSync as d2,unlinkSync as nD,readFileSync as eT,mkdirSync as sT}from"fs";import{join as f1}from"path";import{homedir as i6,platform as kV}from"os";var dU=f1(i6(),".ravi"),o2=f1(dU,"daemon.pid"),J4=f1(dU,"logs","daemon.log"),t2=f1(dU,".env"),Q1=f1(i6(),"Library/LaunchAgents/sh.ravi.daemon.plist"),l6=f1(i6(),".config/systemd/user/ravi.service"),x1=kV()==="darwin",I1=kV()==="linux";class C1{start(){if(this.isRunning()){console.log("Daemon is already running"),console.log(`PID: ${this.getPid()}`);return}if(x1)this.startMacOS();else if(I1)this.startLinux();else this.startDirect()}stop(){if(!this.isRunning()){console.log("Daemon is not running");return}if(x1)this.stopMacOS();else if(I1)this.stopLinux();else this.stopDirect()}restart(){this.stop(),setTimeout(()=>this.start(),1000)}status(){let $=this.isRunning(),U=this.getPid();if(console.log(`
346
+ Approve: ravi contacts approve <phone>`),console.log("Block: ravi contacts block <phone>")}add($,U){let v=V$($);xD(v,U??null,"allowed"),console.log(`\u2713 Contact added: ${l$(v)}${U?` (${U})`:""}`)}approve($,U,v){if(v&&v!=="auto"&&v!=="mention")console.error("Error: Reply mode must be 'auto' or 'mention'"),process.exit(1);let J=V$($),_=J1(J);if(!_)console.log(`Contact not found: ${l$(J)}`),process.exit(1);if(gU(J,U),v)ID(J,v);let D=U?` \u2192 agent:${U}`:"",X=v?` (${v})`:"";console.log(`\u2713 Contact approved: ${l$(J)}${_.name?` (${_.name})`:""}${D}${X}`)}remove($){let U=V$($);if(fq(U))console.log(`\u2713 Contact removed: ${l$(U)}`);else console.log(`Contact not found: ${l$(U)}`)}allow($){let U=V$($);gU(U),console.log(`\u2713 Contact allowed: ${l$(U)}`)}block($){let U=V$($);uq(U),console.log(`\u2717 Contact blocked: ${l$(U)}`)}set($,U,v){let J=V$($);if(!J1(J))console.log(`Contact not found: ${l$(J)}`),process.exit(1);if(U==="agent")gU(J,v),console.log(`\u2713 Agent set: ${l$(J)} \u2192 ${v}`);else if(U==="mode"){if(v!=="auto"&&v!=="mention")console.error("Error: Mode must be 'auto' or 'mention'"),process.exit(1);ID(J,v),console.log(`\u2713 Mode set: ${l$(J)} \u2192 ${v}`)}else console.error(`Unknown key: ${U}`),console.log("Keys: agent, mode"),process.exit(1)}check($){let U=V$($),v=J1(U);if(v)console.log(`
347
+ Contact: ${l$(U)}`),console.log(` Name: ${v.name||"-"}`),console.log(` Status: ${tT(v.status)}`),console.log(` Agent: ${v.agent_id||"-"}`),console.log(` Mode: ${v.reply_mode||"auto"}`),console.log(` Created: ${v.created_at}`),console.log(` Updated: ${v.updated_at}`);else console.log(`
348
+ Contact not found: ${l$(U)}`),console.log(" Status: \x1B[31m\u2717 Not allowed\x1B[0m (unknown)")}}b([I({name:"list",description:"List all contacts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],k1.prototype,"list",null),b([I({name:"pending",description:"List pending contacts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],k1.prototype,"pending",null),b([I({name:"add",description:"Add/allow a contact"}),K(0,x("phone",{description:"Phone number"})),K(1,x("name",{required:!1,description:"Contact name"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],k1.prototype,"add",null),b([I({name:"approve",description:"Approve pending contact"}),K(0,x("phone",{description:"Phone number"})),K(1,x("agent",{required:!1,description:"Agent ID"})),K(2,x("mode",{required:!1,description:"Reply mode (auto|mention)"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],k1.prototype,"approve",null),b([I({name:"remove",description:"Remove a contact"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"remove",null),b([I({name:"allow",description:"Allow a contact"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"allow",null),b([I({name:"block",description:"Block a contact"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"block",null),b([I({name:"set",description:"Set contact property"}),K(0,x("phone",{description:"Phone number"})),K(1,x("key",{description:"Property key (agent, mode)"})),K(2,x("value",{description:"Property value"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],k1.prototype,"set",null),b([I({name:"check",description:"Check contact status"}),K(0,x("phone",{description:"Phone number"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],k1.prototype,"check",null),k1=b([O$({name:"contacts",description:"Contact management"})],k1);var Gk=k$(D4(),1);import{spawn as mD}from"child_process";class M1{start(){console.log("Starting Ravi bot server..."),mD("tsx",["src/index.ts"],{stdio:"inherit",cwd:process.cwd()}).on("error",(U)=>{console.error(`Failed to start: ${U.message}`),process.exit(1)})}tui($){let U=["src/tui.tsx"];if($)U.push($);console.log(`Starting TUI${$?` with session: ${$}`:""}...`),mD("tsx",U,{stdio:"inherit",cwd:process.cwd()}).on("error",(J)=>{console.error(`Failed to start TUI: ${J.message}`),process.exit(1)})}wa(){console.log("Starting WhatsApp gateway..."),mD("tsx",["src/wa.ts"],{stdio:"inherit",cwd:process.cwd()}).on("error",(U)=>{console.error(`Failed to start gateway: ${U.message}`),process.exit(1)})}}b([I({name:"start",description:"Start the bot server"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],M1.prototype,"start",null),b([I({name:"tui",description:"Start the TUI interface"}),K(0,x("session",{required:!1,description:"Session key (default: agent:main:main)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],M1.prototype,"tui",null),b([I({name:"wa",description:"Start WhatsApp gateway"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],M1.prototype,"wa",null),M1=b([O$({name:"service",description:"Bot service management"})],M1);var Bk=k$(D4(),1);import{execSync as v4,spawn as cD}from"child_process";import{existsSync as m4,writeFileSync as d2,unlinkSync as nD,readFileSync as aT,mkdirSync as eT}from"fs";import{join as f1}from"path";import{homedir as i6,platform as kV}from"os";var dU=f1(i6(),".ravi"),o2=f1(dU,"daemon.pid"),J4=f1(dU,"logs","daemon.log"),t2=f1(dU,".env"),Q1=f1(i6(),"Library/LaunchAgents/sh.ravi.daemon.plist"),l6=f1(i6(),".config/systemd/user/ravi.service"),x1=kV()==="darwin",I1=kV()==="linux";class C1{start(){if(this.isRunning()){console.log("Daemon is already running"),console.log(`PID: ${this.getPid()}`);return}if(x1)this.startMacOS();else if(I1)this.startLinux();else this.startDirect()}stop(){if(!this.isRunning()){console.log("Daemon is not running");return}if(x1)this.stopMacOS();else if(I1)this.stopLinux();else this.stopDirect()}restart(){this.stop(),setTimeout(()=>this.start(),1000)}status(){let $=this.isRunning(),U=this.getPid();if(console.log(`
349
349
  Ravi Daemon Status`),console.log("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"),console.log(` Status: ${$?"\u2713 Running":"\u2717 Stopped"}`),U)console.log(` PID: ${U}`);if(console.log(` Log: ${J4}`),console.log(),x1)console.log(" Type: launchd"),console.log(` Plist: ${Q1}`);else if(I1)console.log(" Type: systemd"),console.log(` Unit: ${l6}`);else console.log(" Type: direct (no service manager)")}logs($,U,v,J){if(J){console.log(J4);return}if(v){if(m4(J4))d2(J4,""),console.log("\u2713 Logs cleared");else console.log("No logs to clear");return}if(!m4(J4)){console.log("No logs yet. Start the daemon first.");return}let _=parseInt(U||"50",10);if($){console.log(`Following ${J4} (Ctrl+C to stop)
350
- `);let D=cD("tail",["-n",String(_),"-f",J4],{stdio:"inherit"});process.on("SIGINT",()=>{D.kill(),process.exit(0)})}else cD("tail",["-n",String(_),J4],{stdio:"inherit"}).on("close",(X)=>{process.exit(X||0)})}install(){if(x1)this.installMacOS();else if(I1)this.installLinux();else console.log("System service not supported on this platform."),console.log("Use 'ravi daemon start' to run directly.")}uninstall(){if(x1)this.uninstallMacOS();else if(I1)this.uninstallLinux();else console.log("No system service installed.")}env(){if(sT(dU,{recursive:!0}),!m4(t2))d2(t2,`# Ravi Daemon Environment
350
+ `);let D=cD("tail",["-n",String(_),"-f",J4],{stdio:"inherit"});process.on("SIGINT",()=>{D.kill(),process.exit(0)})}else cD("tail",["-n",String(_),J4],{stdio:"inherit"}).on("close",(X)=>{process.exit(X||0)})}install(){if(x1)this.installMacOS();else if(I1)this.installLinux();else console.log("System service not supported on this platform."),console.log("Use 'ravi daemon start' to run directly.")}uninstall(){if(x1)this.uninstallMacOS();else if(I1)this.uninstallLinux();else console.log("No system service installed.")}env(){if(eT(dU,{recursive:!0}),!m4(t2))d2(t2,`# Ravi Daemon Environment
351
351
  # This file is loaded when the daemon starts.
352
352
  # Edit and restart the daemon for changes to take effect.
353
353
 
@@ -406,23 +406,23 @@ Environment=PATH=${process.env.PATH||"/usr/local/bin:/usr/bin:/bin"}
406
406
  [Install]
407
407
  WantedBy=default.target
408
408
  `;v4(`mkdir -p ${f1(i6(),".config/systemd/user")}`),d2(l6,v),v4("systemctl --user daemon-reload"),console.log(`\u2713 Installed systemd service: ${l6}`),console.log(`
409
- Environment loaded from: ~/.ravi/.env`),console.log("To start: ravi daemon start"),console.log("To enable on boot: systemctl --user enable ravi")}uninstallLinux(){if(this.isRunning())this.stopLinux();try{v4("systemctl --user disable ravi",{stdio:"pipe"})}catch{}if(m4(l6))nD(l6),v4("systemctl --user daemon-reload"),console.log("\u2713 Uninstalled systemd service");else console.log("Service not installed.")}startLinux(){if(!m4(l6))console.log("Service not installed. Installing..."),this.installLinux();try{v4("systemctl --user start ravi",{stdio:"inherit"}),console.log("\u2713 Daemon started")}catch{console.error("Failed to start daemon")}}stopLinux(){try{v4("systemctl --user stop ravi",{stdio:"inherit"}),console.log("\u2713 Daemon stopped")}catch{console.error("Failed to stop daemon")}}startDirect(){let $=cD("node",["dist/daemon.js"],{detached:!0,stdio:["ignore","pipe","pipe"],cwd:process.cwd()});d2(o2,String($.pid)),$.unref(),console.log(`\u2713 Daemon started (PID: ${$.pid})`),console.log(` Logs: ${J4}`)}stopDirect(){let $=this.getPid();if($)try{if(process.kill($,"SIGTERM"),m4(o2))nD(o2);console.log("\u2713 Daemon stopped")}catch{console.error("Failed to stop daemon")}}isRunning(){if(x1)try{return v4("launchctl list | grep sh.ravi.daemon",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).includes("sh.ravi.daemon")}catch{return!1}if(I1)try{return v4("systemctl --user is-active ravi",{stdio:"pipe"}),!0}catch{return!1}let $=this.getPid();if(!$)return!1;try{return process.kill($,0),!0}catch{return!1}}getPid(){if(x1)try{let U=v4("launchctl list | grep sh.ravi.daemon",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim().split(/\s+/),v=parseInt(U[0],10);return isNaN(v)?null:v}catch{return null}if(I1)try{let $=v4("systemctl --user show ravi --property=MainPID",{encoding:"utf-8"}),U=parseInt($.replace("MainPID=","").trim(),10);return U>0?U:null}catch{return null}if(!m4(o2))return null;try{return parseInt(eT(o2,"utf-8").trim(),10)}catch{return null}}}b([I({name:"start",description:"Start the daemon (bot + gateway)"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"start",null),b([I({name:"stop",description:"Stop the daemon"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"stop",null),b([I({name:"restart",description:"Restart the daemon"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"restart",null),b([I({name:"status",description:"Show daemon status"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"status",null),b([I({name:"logs",description:"Show daemon logs"}),K(0,k$({flags:"-f, --follow",description:"Follow log output"})),K(1,k$({flags:"-t, --tail <lines>",description:"Number of lines to show",defaultValue:"50"})),K(2,k$({flags:"--clear",description:"Clear log file"})),K(3,k$({flags:"--path",description:"Print log file path only"})),H("design:type",Function),H("design:paramtypes",[Boolean,String,Boolean,Boolean]),H("design:returntype",void 0)],C1.prototype,"logs",null),b([I({name:"install",description:"Install system service (launchd/systemd)"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"install",null),b([I({name:"uninstall",description:"Uninstall system service"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"uninstall",null),b([I({name:"env",description:"Edit environment file (~/.ravi/.env)"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"env",null),C1=b([O$({name:"daemon",description:"Manage bot + gateway as system service"})],C1);var QM=M$(D4(),1);function a2($){let U=$.match(/--([a-zA-Z-]+)/);if(U)return U[1].replace(/-([a-z])/g,(J,_)=>_.toUpperCase());let v=$.match(/-([a-zA-Z])/);return v?v[1]:""}function pD($){return!/<[^>]+>/.test($)&&!/\[[^\]]+\]/.test($)}function MV($){return pD($)?"boolean":"string"}function g1($){let U=[];for(let v of $){let J=X0(v);if(!J)continue;let _=Y0(v);if(_.length===0)continue;let D=new v;for(let X of _){let Y=Q0(D,X.method),Q=z0(D,X.method);U.push({name:`${J.name}_${X.name}`,description:X.description,handler:UK(D,X.method,Y,Q),metadata:{group:J.name,command:X.name,method:X.method,args:Y,options:Q}})}}return U}function $K($){return $.map((U)=>({name:U.name,description:U.description,parameters:[...U.metadata.args.map((v)=>({name:v.name,type:"string",required:v.required??!0,description:v.description,defaultValue:v.defaultValue})),...U.metadata.options.map((v)=>({name:a2(v.flags),type:MV(v.flags),required:!1,description:v.description,defaultValue:v.defaultValue}))]}))}function xV($){let U=$K($);return JSON.stringify(U,null,2)}function UK($,U,v,J){return async(_)=>{let D=[],X=console.log,Y=console.error;console.log=(...N)=>{D.push(N.map(String).join(" "))},console.error=(...N)=>{D.push(`[ERROR] ${N.map(String).join(" ")}`)};let Q=!1;try{let N=[],G=v.length+J.length;for(let V=0;V<G;V++){let E=v.find((S)=>S.index===V);if(E){N.push(_[E.name]);continue}let T=J.find((S)=>S.index===V);if(T){let S=a2(T.flags);N.push(_[S])}}let q=$[U].apply($,N);if(q instanceof Promise)await q}catch(N){Q=!0,D.push(`Error: ${N instanceof Error?N.message:String(N)}`)}finally{console.log=X,console.error=Y}return{content:[{type:"text",text:D.join(`
410
- `).trim()||"(no output)"}],isError:Q}}}import{createSdkMcpServer as dk,tool as ok}from"@anthropic-ai/claude-agent-sdk";var Sk=M$(D4(),1);b4();function IV($,U){let v=O6(),J=0;for(let _ of v)if($.startsWith("group:")){let D=$.replace("group:","");if(_.sessionKey.includes(`group:${D}`)&&_.agentId!==U)$1(_.sessionKey),console.log(` Deleted conflicting session: ${_.sessionKey}`),J++}else if($.startsWith("lid:")){let D=$.replace("lid:","");if(_.sessionKey.includes(`lid:${D}`)&&_.agentId!==U)$1(_.sessionKey),console.log(` Deleted conflicting session: ${_.sessionKey}`),J++}else if($.includes("*")){let D=new RegExp($.replace(/\*/g,".*")),X=_.sessionKey.match(/dm:(\d+)/);if(X&&D.test(X[1])&&_.agentId!==U)$1(_.sessionKey),console.log(` Deleted conflicting session: ${_.sessionKey}`),J++}return J}class h1{list(){let $=T6();if($.length===0){console.log("No routes configured."),console.log(`
409
+ Environment loaded from: ~/.ravi/.env`),console.log("To start: ravi daemon start"),console.log("To enable on boot: systemctl --user enable ravi")}uninstallLinux(){if(this.isRunning())this.stopLinux();try{v4("systemctl --user disable ravi",{stdio:"pipe"})}catch{}if(m4(l6))nD(l6),v4("systemctl --user daemon-reload"),console.log("\u2713 Uninstalled systemd service");else console.log("Service not installed.")}startLinux(){if(!m4(l6))console.log("Service not installed. Installing..."),this.installLinux();try{v4("systemctl --user start ravi",{stdio:"inherit"}),console.log("\u2713 Daemon started")}catch{console.error("Failed to start daemon")}}stopLinux(){try{v4("systemctl --user stop ravi",{stdio:"inherit"}),console.log("\u2713 Daemon stopped")}catch{console.error("Failed to stop daemon")}}startDirect(){let $=cD("node",["dist/daemon.js"],{detached:!0,stdio:["ignore","pipe","pipe"],cwd:process.cwd()});d2(o2,String($.pid)),$.unref(),console.log(`\u2713 Daemon started (PID: ${$.pid})`),console.log(` Logs: ${J4}`)}stopDirect(){let $=this.getPid();if($)try{if(process.kill($,"SIGTERM"),m4(o2))nD(o2);console.log("\u2713 Daemon stopped")}catch{console.error("Failed to stop daemon")}}isRunning(){if(x1)try{return v4("launchctl list | grep sh.ravi.daemon",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).includes("sh.ravi.daemon")}catch{return!1}if(I1)try{return v4("systemctl --user is-active ravi",{stdio:"pipe"}),!0}catch{return!1}let $=this.getPid();if(!$)return!1;try{return process.kill($,0),!0}catch{return!1}}getPid(){if(x1)try{let U=v4("launchctl list | grep sh.ravi.daemon",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim().split(/\s+/),v=parseInt(U[0],10);return isNaN(v)?null:v}catch{return null}if(I1)try{let $=v4("systemctl --user show ravi --property=MainPID",{encoding:"utf-8"}),U=parseInt($.replace("MainPID=","").trim(),10);return U>0?U:null}catch{return null}if(!m4(o2))return null;try{return parseInt(aT(o2,"utf-8").trim(),10)}catch{return null}}}b([I({name:"start",description:"Start the daemon (bot + gateway)"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"start",null),b([I({name:"stop",description:"Stop the daemon"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"stop",null),b([I({name:"restart",description:"Restart the daemon"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"restart",null),b([I({name:"status",description:"Show daemon status"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"status",null),b([I({name:"logs",description:"Show daemon logs"}),K(0,M$({flags:"-f, --follow",description:"Follow log output"})),K(1,M$({flags:"-t, --tail <lines>",description:"Number of lines to show",defaultValue:"50"})),K(2,M$({flags:"--clear",description:"Clear log file"})),K(3,M$({flags:"--path",description:"Print log file path only"})),H("design:type",Function),H("design:paramtypes",[Boolean,String,Boolean,Boolean]),H("design:returntype",void 0)],C1.prototype,"logs",null),b([I({name:"install",description:"Install system service (launchd/systemd)"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"install",null),b([I({name:"uninstall",description:"Uninstall system service"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"uninstall",null),b([I({name:"env",description:"Edit environment file (~/.ravi/.env)"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],C1.prototype,"env",null),C1=b([O$({name:"daemon",description:"Manage bot + gateway as system service"})],C1);var YM=k$(D4(),1);function a2($){let U=$.match(/--([a-zA-Z-]+)/);if(U)return U[1].replace(/-([a-z])/g,(J,_)=>_.toUpperCase());let v=$.match(/-([a-zA-Z])/);return v?v[1]:""}function pD($){return!/<[^>]+>/.test($)&&!/\[[^\]]+\]/.test($)}function MV($){return pD($)?"boolean":"string"}function g1($){let U=[];for(let v of $){let J=X0(v);if(!J)continue;let _=Y0(v);if(_.length===0)continue;let D=new v;for(let X of _){let Y=Q0(D,X.method),Q=z0(D,X.method);U.push({name:`${J.name}_${X.name}`,description:X.description,handler:$K(D,X.method,Y,Q),metadata:{group:J.name,command:X.name,method:X.method,args:Y,options:Q}})}}return U}function sT($){return $.map((U)=>({name:U.name,description:U.description,parameters:[...U.metadata.args.map((v)=>({name:v.name,type:"string",required:v.required??!0,description:v.description,defaultValue:v.defaultValue})),...U.metadata.options.map((v)=>({name:a2(v.flags),type:MV(v.flags),required:!1,description:v.description,defaultValue:v.defaultValue}))]}))}function xV($){let U=sT($);return JSON.stringify(U,null,2)}function $K($,U,v,J){return async(_)=>{let D=[],X=console.log,Y=console.error;console.log=(...N)=>{D.push(N.map(String).join(" "))},console.error=(...N)=>{D.push(`[ERROR] ${N.map(String).join(" ")}`)};let Q=!1;try{let N=[],G=v.length+J.length;for(let V=0;V<G;V++){let E=v.find((S)=>S.index===V);if(E){N.push(_[E.name]);continue}let T=J.find((S)=>S.index===V);if(T){let S=a2(T.flags);N.push(_[S])}}let q=$[U].apply($,N);if(q instanceof Promise)await q}catch(N){Q=!0,D.push(`Error: ${N instanceof Error?N.message:String(N)}`)}finally{console.log=X,console.error=Y}return{content:[{type:"text",text:D.join(`
410
+ `).trim()||"(no output)"}],isError:Q}}}import{createSdkMcpServer as rk,tool as dk}from"@anthropic-ai/claude-agent-sdk";var Ak=k$(D4(),1);b4();function IV($,U){let v=O6(),J=0;for(let _ of v)if($.startsWith("group:")){let D=$.replace("group:","");if(_.sessionKey.includes(`group:${D}`)&&_.agentId!==U)$1(_.sessionKey),console.log(` Deleted conflicting session: ${_.sessionKey}`),J++}else if($.startsWith("lid:")){let D=$.replace("lid:","");if(_.sessionKey.includes(`lid:${D}`)&&_.agentId!==U)$1(_.sessionKey),console.log(` Deleted conflicting session: ${_.sessionKey}`),J++}else if($.includes("*")){let D=new RegExp($.replace(/\*/g,".*")),X=_.sessionKey.match(/dm:(\d+)/);if(X&&D.test(X[1])&&_.agentId!==U)$1(_.sessionKey),console.log(` Deleted conflicting session: ${_.sessionKey}`),J++}return J}class h1{list(){let $=T6();if($.length===0){console.log("No routes configured."),console.log(`
411
411
  Add a route: ravi routes add <pattern> <agent>`);return}console.log(`
412
412
  Routes:
413
413
  `),console.log(" PATTERN AGENT PRIORITY DM SCOPE"),console.log(" ----------------------------------- -------------- -------- ----------------");for(let U of $){let v=U.pattern.padEnd(35),J=U.agent.padEnd(14),_=String(U.priority??0).padEnd(8),D=U.dmScope??"-";console.log(` ${v} ${J} ${_} ${D}`)}console.log(`
414
414
  Total: ${$.length} routes`)}show($){let U=E1($);if(!U)console.error(`Route not found: ${$}`),process.exit(1);console.log(`
415
415
  Route: ${U.pattern}`),console.log(` Agent: ${U.agent}`),console.log(` Priority: ${U.priority??0}`),console.log(` DM Scope: ${U.dmScope??"-"}`)}add($,U){if(!z$(U)){console.error(`Agent not found: ${U}`),console.log(`
416
- Available agents:`);for(let v of C$())console.log(` - ${v.id}`);process.exit(1)}try{a5({pattern:$,agent:U,priority:0}),console.log(`\u2713 Route added: ${$} -> ${U}`);let v=IV($,U);if(v>0)console.log(`\u2713 Cleaned ${v} conflicting session(s)`)}catch(v){console.error(`Error: ${v instanceof Error?v.message:v}`),process.exit(1)}}remove($){if(s5($))console.log(`\u2713 Route removed: ${$}`);else console.log(`Route not found: ${$}`),process.exit(1)}set($,U,v){if(!E1($))console.error(`Route not found: ${$}`),process.exit(1);let _=["agent","priority","dmScope"];if(!_.includes(U))console.error(`Invalid key: ${U}`),console.log(`Valid keys: ${_.join(", ")}`),process.exit(1);if(U==="agent"){if(!z$(v))console.error(`Agent not found: ${v}`),process.exit(1)}if(U==="dmScope"){if(!Z$.safeParse(v).success)console.error(`Invalid dmScope: ${v}`),console.log(`Valid scopes: ${Z$.options.join(", ")}`),process.exit(1)}if(U==="priority"){let D=parseInt(v,10);if(isNaN(D))console.error(`Invalid priority: ${v}`),console.log("Priority must be an integer"),process.exit(1)}try{let D={};if(U==="priority")D.priority=parseInt(v,10);else D[U]=v;if(e5($,D),console.log(`\u2713 ${U} set: ${$} -> ${v}`),U==="agent"){let X=IV($,v);if(X>0)console.log(`\u2713 Cleaned ${X} conflicting session(s)`)}}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}}b([I({name:"list",description:"List all routes"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],h1.prototype,"list",null),b([I({name:"show",description:"Show route details"}),K(0,x("pattern",{description:"Route pattern"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],h1.prototype,"show",null),b([I({name:"add",description:"Add a new route"}),K(0,x("pattern",{description:"Route pattern (e.g., group:123456)"})),K(1,x("agent",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],h1.prototype,"add",null),b([I({name:"remove",description:"Remove a route"}),K(0,x("pattern",{description:"Route pattern"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],h1.prototype,"remove",null),b([I({name:"set",description:"Set route property"}),K(0,x("pattern",{description:"Route pattern"})),K(1,x("key",{description:"Property key (agent, priority, dmScope)"})),K(2,x("value",{description:"Property value"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],h1.prototype,"set",null),h1=b([O$({name:"routes",description:"Route management"})],h1);var Ck=M$(D4(),1);b4();var rD={defaultAgent:{description:"Default agent when no route matches",validate:($)=>{if(!z$($))throw Error(`Agent not found: ${$}`)}},defaultDmScope:{description:`Default DM scope (${Z$.options.join(", ")})`,validate:($)=>{if(!Z$.safeParse($).success)throw Error(`Invalid value: ${$}`)}}};class u1{list(){let $=_U();console.log(`
416
+ Available agents:`);for(let v of C$())console.log(` - ${v.id}`);process.exit(1)}try{a5({pattern:$,agent:U,priority:0}),console.log(`\u2713 Route added: ${$} -> ${U}`);let v=IV($,U);if(v>0)console.log(`\u2713 Cleaned ${v} conflicting session(s)`)}catch(v){console.error(`Error: ${v instanceof Error?v.message:v}`),process.exit(1)}}remove($){if(s5($))console.log(`\u2713 Route removed: ${$}`);else console.log(`Route not found: ${$}`),process.exit(1)}set($,U,v){if(!E1($))console.error(`Route not found: ${$}`),process.exit(1);let _=["agent","priority","dmScope"];if(!_.includes(U))console.error(`Invalid key: ${U}`),console.log(`Valid keys: ${_.join(", ")}`),process.exit(1);if(U==="agent"){if(!z$(v))console.error(`Agent not found: ${v}`),process.exit(1)}if(U==="dmScope"){if(!Z$.safeParse(v).success)console.error(`Invalid dmScope: ${v}`),console.log(`Valid scopes: ${Z$.options.join(", ")}`),process.exit(1)}if(U==="priority"){let D=parseInt(v,10);if(isNaN(D))console.error(`Invalid priority: ${v}`),console.log("Priority must be an integer"),process.exit(1)}try{let D={};if(U==="priority")D.priority=parseInt(v,10);else D[U]=v;if(e5($,D),console.log(`\u2713 ${U} set: ${$} -> ${v}`),U==="agent"){let X=IV($,v);if(X>0)console.log(`\u2713 Cleaned ${X} conflicting session(s)`)}}catch(D){console.error(`Error: ${D instanceof Error?D.message:D}`),process.exit(1)}}}b([I({name:"list",description:"List all routes"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],h1.prototype,"list",null),b([I({name:"show",description:"Show route details"}),K(0,x("pattern",{description:"Route pattern"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],h1.prototype,"show",null),b([I({name:"add",description:"Add a new route"}),K(0,x("pattern",{description:"Route pattern (e.g., group:123456)"})),K(1,x("agent",{description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],h1.prototype,"add",null),b([I({name:"remove",description:"Remove a route"}),K(0,x("pattern",{description:"Route pattern"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],h1.prototype,"remove",null),b([I({name:"set",description:"Set route property"}),K(0,x("pattern",{description:"Route pattern"})),K(1,x("key",{description:"Property key (agent, priority, dmScope)"})),K(2,x("value",{description:"Property value"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",void 0)],h1.prototype,"set",null),h1=b([O$({name:"routes",description:"Route management"})],h1);var Ik=k$(D4(),1);b4();var rD={defaultAgent:{description:"Default agent when no route matches",validate:($)=>{if(!z$($))throw Error(`Agent not found: ${$}`)}},defaultDmScope:{description:`Default DM scope (${Z$.options.join(", ")})`,validate:($)=>{if(!Z$.safeParse($).success)throw Error(`Invalid value: ${$}`)}}};class u1{list(){let $=_U();console.log(`
417
417
  Settings:
418
418
  `);for(let[v,J]of Object.entries(rD)){let _=$[v]??"(not set)";console.log(` ${v}: ${_}`),console.log(` ${J.description}
419
419
  `)}let U=Object.keys($).filter((v)=>!rD[v]);if(U.length>0){console.log(" Custom settings:");for(let v of U)console.log(` ${v}: ${$[v]}`);console.log()}}get($){let U=K6($);if(U===null){if(console.log(`Setting not set: ${$}`),$==="defaultAgent")console.log(" Default: main");else if($==="defaultDmScope")console.log(" Default: per-peer");return}console.log(`${$}: ${U}`)}set($,U){let v=rD[$];if(v?.validate)try{v.validate(U)}catch(J){if(console.error(`Invalid value for ${$}: ${J instanceof Error?J.message:J}`),$==="defaultAgent"){console.log(`
420
420
  Available agents:`);for(let _ of C$())console.log(` - ${_.id}`)}else if($==="defaultDmScope")console.log(`
421
- Valid scopes: ${Z$.options.join(", ")}`);process.exit(1)}try{$U($,U),console.log(`\u2713 ${$} set: ${U}`)}catch(J){console.error(`Error: ${J instanceof Error?J.message:J}`),process.exit(1)}}delete($){if(UU($))console.log(`\u2713 Setting deleted: ${$}`);else console.log(`Setting not found: ${$}`)}}b([I({name:"list",description:"List all settings"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],u1.prototype,"list",null),b([I({name:"get",description:"Get a setting value"}),K(0,x("key",{description:"Setting key"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],u1.prototype,"get",null),b([I({name:"set",description:"Set a setting value"}),K(0,x("key",{description:"Setting key"})),K(1,x("value",{description:"Setting value"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],u1.prototype,"set",null),b([I({name:"delete",description:"Delete a setting"}),K(0,x("key",{description:"Setting key"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],u1.prototype,"delete",null),u1=b([O$({name:"settings",description:"Global settings management"})],u1);var yk=M$(D4(),1);class y1{async send($,U){let v=i2($);if(!v){console.error(`Session not found: ${$}`),console.log(`
421
+ Valid scopes: ${Z$.options.join(", ")}`);process.exit(1)}try{$U($,U),console.log(`\u2713 ${$} set: ${U}`)}catch(J){console.error(`Error: ${J instanceof Error?J.message:J}`),process.exit(1)}}delete($){if(UU($))console.log(`\u2713 Setting deleted: ${$}`);else console.log(`Setting not found: ${$}`)}}b([I({name:"list",description:"List all settings"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],u1.prototype,"list",null),b([I({name:"get",description:"Get a setting value"}),K(0,x("key",{description:"Setting key"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],u1.prototype,"get",null),b([I({name:"set",description:"Set a setting value"}),K(0,x("key",{description:"Setting key"})),K(1,x("value",{description:"Setting value"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",void 0)],u1.prototype,"set",null),b([I({name:"delete",description:"Delete a setting"}),K(0,x("key",{description:"Setting key"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],u1.prototype,"delete",null),u1=b([O$({name:"settings",description:"Global settings management"})],u1);var uk=k$(D4(),1);class y1{async send($,U){let v=i2($);if(!v){console.error(`Session not found: ${$}`),console.log(`
422
422
  Available sessions:`);for(let D of O6())console.log(` - ${D.sessionKey}`);return{success:!1,error:"Session not found"}}if(!v.lastChannel||!v.lastTo)return console.error(`Session has no channel info: ${$}`),console.log("The target session must have received at least one message from a channel."),{success:!1,error:"No channel info"};let J={channel:v.lastChannel,accountId:v.lastAccountId??"default",chatId:v.lastTo},_=`[Sistema] Notifique: ${U}`;return await B4.emit(`ravi.${$}.prompt`,{prompt:_,source:J}),console.log(`\u2713 Message sent to ${$}`),{success:!0,target:$,source:J}}list(){let $=O6();console.log(`
423
423
  Sessions with channel routing:
424
424
  `),console.log(" SESSION KEY CHANNEL CHAT"),console.log(" --------------------------------------------------- --------- ----");for(let U of $){let v=U.sessionKey.padEnd(51),J=(U.lastChannel??"-").padEnd(9),_=U.lastTo??"-";console.log(` ${v} ${J} ${_}`)}console.log(`
425
- Total: ${$.length} sessions`)}}b([I({name:"send",description:"Send a message to another session"}),K(0,x("target",{description:"Target session key"})),K(1,x("message",{description:"Message to send"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],y1.prototype,"send",null),b([I({name:"list",description:"List sessions with channel info"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],y1.prototype,"list",null),y1=b([O$({name:"cross",description:"Cross-session messaging"})],y1);var c4=[L1,C1,M1,k1,b1,h1,u1,y1],dD=null;function CV(){if(!dD)dD=g1(c4);return dD}function fV(){let $={};for(let U of CV()){let[v]=U.name.split("_");if(!$[v])$[v]=[];$[v].push(U.name)}return $}function oU($,U={}){let{filter:v,allowedTools:J}=U,_=$===c4?CV():g1($);if(v){let D=typeof v==="string"?new RegExp(v):v;_=_.filter((X)=>D.test(X.name))}if(J)_=_.filter((D)=>J.includes(D.name));return _.map(_K)}function gV($){return{$schema:"http://json-schema.org/draft-07/schema#",title:"Ravi CLI Tools",description:"CLI commands available as Agent SDK tools",tools:oU($)}}function _K($){let U={},v=[];for(let J of $.metadata.args){if(U[J.name]={type:"string"},J.description)U[J.name].description=J.description;if(J.required!==!1)v.push(J.name)}for(let J of $.metadata.options){let _=a2(J.flags);if(U[_]={type:pD(J.flags)?"boolean":"string"},J.description)U[_].description=J.description}return{name:$.name,description:$.description,inputSchema:{type:"object",properties:U,required:v}}}class e2{list(){let $=fV();console.log(`
425
+ Total: ${$.length} sessions`)}}b([I({name:"send",description:"Send a message to another session"}),K(0,x("target",{description:"Target session key"})),K(1,x("message",{description:"Message to send"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],y1.prototype,"send",null),b([I({name:"list",description:"List sessions with channel info"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],y1.prototype,"list",null),y1=b([O$({name:"cross",description:"Cross-session messaging"})],y1);var c4=[L1,C1,M1,k1,b1,h1,u1,y1],dD=null;function CV(){if(!dD)dD=g1(c4);return dD}function fV(){let $={};for(let U of CV()){let[v]=U.name.split("_");if(!$[v])$[v]=[];$[v].push(U.name)}return $}function oU($,U={}){let{filter:v,allowedTools:J}=U,_=$===c4?CV():g1($);if(v){let D=typeof v==="string"?new RegExp(v):v;_=_.filter((X)=>D.test(X.name))}if(J)_=_.filter((D)=>J.includes(D.name));return _.map(UK)}function gV($){return{$schema:"http://json-schema.org/draft-07/schema#",title:"Ravi CLI Tools",description:"CLI commands available as Agent SDK tools",tools:oU($)}}function UK($){let U={},v=[];for(let J of $.metadata.args){if(U[J.name]={type:"string"},J.description)U[J.name].description=J.description;if(J.required!==!1)v.push(J.name)}for(let J of $.metadata.options){let _=a2(J.flags);if(U[_]={type:pD(J.flags)?"boolean":"string"},J.description)U[_].description=J.description}return{name:$.name,description:$.description,inputSchema:{type:"object",properties:U,required:v}}}class e2{list(){let $=fV();console.log(`
426
426
  \uD83D\uDCCB Available CLI Tools
427
427
  `),console.log(`These tools can be injected into agents via allowedTools.
428
428
  `),console.log("\u2500".repeat(50));for(let v of Object.keys($)){console.log(`
@@ -437,9 +437,9 @@ JSON Schema:`);let J=oU(c4,{allowedTools:[$]})[0];if(J)console.log(JSON.stringif
437
437
  \uD83D\uDD27 Testing: ${$}`),console.log(`Args: ${JSON.stringify(_)}
438
438
  `),console.log("\u2500".repeat(50));let D=await J.handler(_);console.log(`
439
439
  \u2500`.repeat(50)),console.log(`
440
- Result:`),console.log(` isError: ${D.isError??!1}`),console.log(" content:");for(let X of D.content)console.log(` ${X.text}`)}}b([I({name:"list",description:"List all available CLI tools"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],e2.prototype,"list",null),b([I({name:"show",description:"Show details for a specific tool"}),K(0,x("name",{description:"Tool name (e.g., agents_list)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],e2.prototype,"show",null),b([I({name:"manifest",description:"Export tools as JSON manifest"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],e2.prototype,"manifest",null),b([I({name:"schema",description:"Export tools as JSON Schema"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],e2.prototype,"schema",null),b([I({name:"test",description:"Test a tool execution"}),K(0,x("name",{description:"Tool name"})),K(1,x("args",{required:!1,description:"JSON args (optional)"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],e2.prototype,"test",null),e2=b([O$({name:"tools",description:"CLI tools inspection and export"})],e2);var HM=M$(D4(),1);import vK from"readline";b4();function tU($){if(!z$($)){console.error(`Error: Agent "${$}" not found`),console.log(`
440
+ Result:`),console.log(` isError: ${D.isError??!1}`),console.log(" content:");for(let X of D.content)console.log(` ${X.text}`)}}b([I({name:"list",description:"List all available CLI tools"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],e2.prototype,"list",null),b([I({name:"show",description:"Show details for a specific tool"}),K(0,x("name",{description:"Tool name (e.g., agents_list)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",void 0)],e2.prototype,"show",null),b([I({name:"manifest",description:"Export tools as JSON manifest"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],e2.prototype,"manifest",null),b([I({name:"schema",description:"Export tools as JSON Schema"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",void 0)],e2.prototype,"schema",null),b([I({name:"test",description:"Test a tool execution"}),K(0,x("name",{description:"Tool name"})),K(1,x("args",{required:!1,description:"JSON args (optional)"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],e2.prototype,"test",null),e2=b([O$({name:"tools",description:"CLI tools inspection and export"})],e2);var VM=k$(D4(),1);import _K from"readline";b4();function tU($){if(!z$($)){console.error(`Error: Agent "${$}" not found`),console.log(`
441
441
  Available agents:`);let v=C$();for(let J of v)console.log(` ${J.id}`);console.log(`
442
- Create an agent first: ravi agents create <id> <cwd>`),process.exit(1)}}function g4($){return S4($)}function hV(){let $=R6(),U=C$(),v=new Set(U.map((J)=>J.matrixAccount).filter(Boolean));return $.map((J)=>({...J,isAgent:v.has(J.username)}))}async function s2($,U=!1){let v=vK.createInterface({input:process.stdin,output:process.stdout});return new Promise((J)=>{if(U){process.stdout.write($);let _="",D=(X)=>{let Y=X.toString();if(Y===`
442
+ Create an agent first: ravi agents create <id> <cwd>`),process.exit(1)}}function g4($){return S4($)}function hV(){let $=R6(),U=C$(),v=new Set(U.map((J)=>J.matrixAccount).filter(Boolean));return $.map((J)=>({...J,isAgent:v.has(J.username)}))}async function s2($,U=!1){let v=_K.createInterface({input:process.stdin,output:process.stdout});return new Promise((J)=>{if(U){process.stdout.write($);let _="",D=(X)=>{let Y=X.toString();if(Y===`
443
443
  `||Y==="\r")process.stdin.removeListener("data",D),process.stdin.setRawMode?.(!1),process.stdin.pause(),console.log(),v.close(),J(_);else if(Y==="\x03")process.exit(1);else if(Y==="\x7F"||Y==="\b"){if(_.length>0)_=_.slice(0,-1)}else _+=Y};process.stdin.setRawMode?.(!0),process.stdin.resume(),process.stdin.on("data",D)}else v.question($,(_)=>{v.close(),J(_)})})}async function uV($,U,v,J){let _=`${$}/_matrix/client/v3/register`,X=await(await g$(_,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})).json();if(!X.flows?.some((N)=>N.stages.includes("m.login.dummy"))&&!J)throw Error("Registration requires authentication. Use --admin-token or configure open registration on the server.");let Q=await g$(_,{method:"POST",headers:{"Content-Type":"application/json",...J?{Authorization:`Bearer ${J}`}:{}},body:JSON.stringify({username:U,password:v,auth:X.session?{type:"m.login.dummy",session:X.session}:void 0,initial_device_display_name:`Ravi Bot (${U})`})});if(!Q.ok){let N=await Q.json();throw Error(N.error||Q.statusText)}let z=await Q.json();return{userId:z.user_id,accessToken:z.access_token,deviceId:z.device_id}}async function oD($,U,v){let J=`${$}/_matrix/client/v3/login`,_=await g$(J,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"m.login.password",identifier:{type:"m.id.user",user:U},password:v,initial_device_display_name:`Ravi Bot (${U})`})});if(!_.ok){let X=await _.json();throw Error(X.error||_.statusText)}let D=await _.json();return{userId:D.user_id,accessToken:D.access_token,deviceId:D.device_id}}function yV($){return $.replace(/\\!/g,"!")}function lV($){let U=yV($);if(U.startsWith("%21"))U=decodeURIComponent(U);return U}function $0($){let U=lV($);return encodeURIComponent(U)}class U0{async register($,U,v,J){console.log(`
444
444
  Matrix Account Registration`),console.log(`\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
445
445
  `),tU($);let _=A1($);if(_){console.log(`Agent "${$}" already has Matrix credentials:`),console.log(` User ID: ${_.userId}`),console.log(` Homeserver: ${_.homeserver}`),console.log(`
@@ -495,4 +495,4 @@ Failed to register: ${X instanceof Error?X.message:X}`),process.exit(1)}}else co
495
495
  Failed to login: ${D}`),process.exit(1)}}async usersRemove($){let U=S4($);if(!U)console.error(`Account not found: ${$}`),process.exit(1);try{y2($),console.log(`\u2713 Removed account: ${$} (${U.userId})`)}catch(v){console.error(`Failed: ${v instanceof Error?v.message:v}`),process.exit(1)}}async createRoom($,U,v,J,_){let D=g4($);if(!D){console.error(`No Matrix account found: ${$}`),console.log(`
496
496
  Add account: ravi matrix users-add ${$} -p <password>`);return}try{let X=v?v.split(",").map((W)=>W.trim()):[],Y=D.userId.split(":")[1],Q=`${D.homeserver}/_matrix/client/v3/createRoom`,z={name:U,preset:J?"public_chat":"private_chat",invite:X};if(_)z.room_alias_name=_;let N=await g$(Q,{method:"POST",headers:{Authorization:`Bearer ${D.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify(z)});if(!N.ok){let W=await N.json();throw Error(W.error||N.statusText)}let G=await N.json();if(console.log(`
497
497
  \u2713 Room created!`),console.log(` Name: ${U}`),console.log(` Room ID: ${G.room_id}`),_)console.log(` Alias: #${_}:${Y}`);if(X.length>0)console.log(` Invited: ${X.join(", ")}`);console.log(` Created by: ${D.userId}`)}catch(X){console.error(`Failed to create room: ${X instanceof Error?X.message:X}`),process.exit(1)}}async whoami($){let U=g4($);if(!U){console.error(`No Matrix account found: ${$}`),console.log(`
498
- Add account: ravi matrix users-add ${$} -p <password>`);return}try{let v=`${U.homeserver}/_matrix/client/v3/account/whoami`,J=await g$(v,{headers:{Authorization:`Bearer ${U.accessToken}`}});if(!J.ok){if(J.status===401)console.log("Token expired or invalid."),console.log(`Run: ravi matrix users-remove ${$} && ravi matrix users-add ${$} -p <password>`);else console.error(`Failed: ${J.statusText}`);return}let _=await J.json();console.log(`Account: ${$}`),console.log(`User ID: ${_.user_id}`),console.log(`Device ID: ${_.device_id||"unknown"}`),console.log(`Guest: ${_.is_guest?"yes":"no"}`)}catch(v){console.error(`Failed: ${v instanceof Error?v.message:v}`)}}}b([I({name:"register",description:"Register a new Matrix account for an agent"}),K(0,x("agent",{required:!0,description:"Agent ID to create Matrix account for"})),K(1,k$({flags:"-h, --homeserver <url>",description:"Matrix homeserver URL"})),K(2,k$({flags:"-u, --username <name>",description:"Matrix username (default: agent ID)"})),K(3,k$({flags:"-p, --password <pass>",description:"Password for the new account"})),H("design:type",Function),H("design:paramtypes",[String,String,String,String]),H("design:returntype",Promise)],U0.prototype,"register",null),b([I({name:"login",description:"Login to Matrix homeserver for an agent"}),K(0,x("agent",{required:!0,description:"Agent ID to login with"})),K(1,k$({flags:"-h, --homeserver <url>",description:"Matrix homeserver URL"})),K(2,k$({flags:"-u, --username <name>",description:"Username or user ID"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"login",null),b([I({name:"status",description:"Show Matrix connection status"}),K(0,x("agent",{required:!1,description:"Agent ID (shows all if not specified)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"status",null),b([I({name:"logout",description:"Clear Matrix credentials for an agent"}),K(0,x("agent",{required:!0,description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"logout",null),b([I({name:"accounts",description:"List all Matrix accounts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",Promise)],U0.prototype,"accounts",null),b([I({name:"rooms",description:"List joined Matrix rooms"}),K(0,x("account",{required:!0,description:"Account username (user or agent)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"rooms",null),b([I({name:"send",description:"Send a message from a Matrix account"}),K(0,x("account",{required:!0,description:"Account username (user or agent)"})),K(1,x("target",{required:!0,description:"Room ID, alias, or user ID"})),K(2,x("message",{required:!0,description:"Message to send"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"send",null),b([I({name:"messages",description:"Show recent messages in a room"}),K(0,x("account",{required:!0,description:"Account username (user or agent)"})),K(1,x("room",{required:!0,description:"Room ID or alias"})),K(2,k$({flags:"-n, --limit <count>",description:"Number of messages",defaultValue:"10"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"messages",null),b([I({name:"invite",description:"Invite an account to a room"}),K(0,x("target",{required:!0,description:"Account username or user ID to invite"})),K(1,x("room",{required:!0,description:"Room ID or alias"})),K(2,k$({flags:"--from <account>",description:"Account to send invite from (required)"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"invite",null),b([I({name:"join",description:"Join a room"}),K(0,x("account",{required:!0,description:"Account username"})),K(1,x("room",{required:!0,description:"Room ID or alias"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],U0.prototype,"join",null),b([I({name:"dm",description:"Create or get a DM room between two accounts"}),K(0,x("from",{required:!0,description:"Account username to create DM from"})),K(1,x("to",{required:!0,description:"Account username or user ID to DM"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],U0.prototype,"dm",null),b([I({name:"users-list",description:"List all Matrix accounts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",Promise)],U0.prototype,"usersList",null),b([I({name:"users-add",description:"Add a Matrix account (login or register)"}),K(0,x("username",{required:!0,description:"Username for this account"})),K(1,k$({flags:"-p, --password <pass>",description:"Password (required)"})),K(2,k$({flags:"-h, --homeserver <url>",description:"Homeserver URL"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"usersAdd",null),b([I({name:"users-remove",description:"Remove a Matrix account"}),K(0,x("username",{required:!0,description:"Username to remove"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"usersRemove",null),b([I({name:"create-room",description:"Create a new Matrix room"}),K(0,x("account",{required:!0,description:"Account username that creates the room"})),K(1,x("name",{required:!0,description:"Room name"})),K(2,k$({flags:"-i, --invite <users>",description:"Users to invite (comma-separated)"})),K(3,k$({flags:"-p, --public",description:"Make room public (default: private)"})),K(4,k$({flags:"-a, --alias <alias>",description:"Room alias (e.g., 'my-room' \u2192 #my-room:server)"})),H("design:type",Function),H("design:paramtypes",[String,String,String,Boolean,String]),H("design:returntype",Promise)],U0.prototype,"createRoom",null),b([I({name:"whoami",description:"Show current Matrix identity"}),K(0,x("account",{required:!0,description:"Account username"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"whoami",null),U0=b([O$({name:"matrix",description:"Matrix channel management"})],U0);var tD=new jX;tD.name("ravi").description("Ravi Bot CLI - Claude-powered bot management").version("0.1.0");OX(tD,[L1,b1,k1,M1,C1,e2,h1,u1,y1,U0]);tD.parse();
498
+ Add account: ravi matrix users-add ${$} -p <password>`);return}try{let v=`${U.homeserver}/_matrix/client/v3/account/whoami`,J=await g$(v,{headers:{Authorization:`Bearer ${U.accessToken}`}});if(!J.ok){if(J.status===401)console.log("Token expired or invalid."),console.log(`Run: ravi matrix users-remove ${$} && ravi matrix users-add ${$} -p <password>`);else console.error(`Failed: ${J.statusText}`);return}let _=await J.json();console.log(`Account: ${$}`),console.log(`User ID: ${_.user_id}`),console.log(`Device ID: ${_.device_id||"unknown"}`),console.log(`Guest: ${_.is_guest?"yes":"no"}`)}catch(v){console.error(`Failed: ${v instanceof Error?v.message:v}`)}}}b([I({name:"register",description:"Register a new Matrix account for an agent"}),K(0,x("agent",{required:!0,description:"Agent ID to create Matrix account for"})),K(1,M$({flags:"-h, --homeserver <url>",description:"Matrix homeserver URL"})),K(2,M$({flags:"-u, --username <name>",description:"Matrix username (default: agent ID)"})),K(3,M$({flags:"-p, --password <pass>",description:"Password for the new account"})),H("design:type",Function),H("design:paramtypes",[String,String,String,String]),H("design:returntype",Promise)],U0.prototype,"register",null),b([I({name:"login",description:"Login to Matrix homeserver for an agent"}),K(0,x("agent",{required:!0,description:"Agent ID to login with"})),K(1,M$({flags:"-h, --homeserver <url>",description:"Matrix homeserver URL"})),K(2,M$({flags:"-u, --username <name>",description:"Username or user ID"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"login",null),b([I({name:"status",description:"Show Matrix connection status"}),K(0,x("agent",{required:!1,description:"Agent ID (shows all if not specified)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"status",null),b([I({name:"logout",description:"Clear Matrix credentials for an agent"}),K(0,x("agent",{required:!0,description:"Agent ID"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"logout",null),b([I({name:"accounts",description:"List all Matrix accounts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",Promise)],U0.prototype,"accounts",null),b([I({name:"rooms",description:"List joined Matrix rooms"}),K(0,x("account",{required:!0,description:"Account username (user or agent)"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"rooms",null),b([I({name:"send",description:"Send a message from a Matrix account"}),K(0,x("account",{required:!0,description:"Account username (user or agent)"})),K(1,x("target",{required:!0,description:"Room ID, alias, or user ID"})),K(2,x("message",{required:!0,description:"Message to send"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"send",null),b([I({name:"messages",description:"Show recent messages in a room"}),K(0,x("account",{required:!0,description:"Account username (user or agent)"})),K(1,x("room",{required:!0,description:"Room ID or alias"})),K(2,M$({flags:"-n, --limit <count>",description:"Number of messages",defaultValue:"10"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"messages",null),b([I({name:"invite",description:"Invite an account to a room"}),K(0,x("target",{required:!0,description:"Account username or user ID to invite"})),K(1,x("room",{required:!0,description:"Room ID or alias"})),K(2,M$({flags:"--from <account>",description:"Account to send invite from (required)"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"invite",null),b([I({name:"join",description:"Join a room"}),K(0,x("account",{required:!0,description:"Account username"})),K(1,x("room",{required:!0,description:"Room ID or alias"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],U0.prototype,"join",null),b([I({name:"dm",description:"Create or get a DM room between two accounts"}),K(0,x("from",{required:!0,description:"Account username to create DM from"})),K(1,x("to",{required:!0,description:"Account username or user ID to DM"})),H("design:type",Function),H("design:paramtypes",[String,String]),H("design:returntype",Promise)],U0.prototype,"dm",null),b([I({name:"users-list",description:"List all Matrix accounts"}),H("design:type",Function),H("design:paramtypes",[]),H("design:returntype",Promise)],U0.prototype,"usersList",null),b([I({name:"users-add",description:"Add a Matrix account (login or register)"}),K(0,x("username",{required:!0,description:"Username for this account"})),K(1,M$({flags:"-p, --password <pass>",description:"Password (required)"})),K(2,M$({flags:"-h, --homeserver <url>",description:"Homeserver URL"})),H("design:type",Function),H("design:paramtypes",[String,String,String]),H("design:returntype",Promise)],U0.prototype,"usersAdd",null),b([I({name:"users-remove",description:"Remove a Matrix account"}),K(0,x("username",{required:!0,description:"Username to remove"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"usersRemove",null),b([I({name:"create-room",description:"Create a new Matrix room"}),K(0,x("account",{required:!0,description:"Account username that creates the room"})),K(1,x("name",{required:!0,description:"Room name"})),K(2,M$({flags:"-i, --invite <users>",description:"Users to invite (comma-separated)"})),K(3,M$({flags:"-p, --public",description:"Make room public (default: private)"})),K(4,M$({flags:"-a, --alias <alias>",description:"Room alias (e.g., 'my-room' \u2192 #my-room:server)"})),H("design:type",Function),H("design:paramtypes",[String,String,String,Boolean,String]),H("design:returntype",Promise)],U0.prototype,"createRoom",null),b([I({name:"whoami",description:"Show current Matrix identity"}),K(0,x("account",{required:!0,description:"Account username"})),H("design:type",Function),H("design:paramtypes",[String]),H("design:returntype",Promise)],U0.prototype,"whoami",null),U0=b([O$({name:"matrix",description:"Matrix channel management"})],U0);var tD=new jX;tD.name("ravi").description("Ravi Bot CLI - Claude-powered bot management").version("0.1.0");OX(tD,[L1,b1,k1,M1,C1,e2,h1,u1,y1,U0]);tD.parse();