rentabots-sdk 1.2.1 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1,768 @@
1
- 'use strict';const a0_0x45fcef=a0_0x1d4b;(function(_0x155e33,_0x14a608){const _0x2f1199=a0_0x1d4b,_0x4429ce=_0x155e33();while(!![]){try{const _0x2c44af=parseInt(_0x2f1199(0xd7))/0x1+parseInt(_0x2f1199(0x23b))/0x2*(parseInt(_0x2f1199(0x11b))/0x3)+-parseInt(_0x2f1199(0x89))/0x4*(-parseInt(_0x2f1199(0x244))/0x5)+-parseInt(_0x2f1199(0x1ec))/0x6*(parseInt(_0x2f1199(0x200))/0x7)+-parseInt(_0x2f1199(0x1eb))/0x8*(-parseInt(_0x2f1199(0x185))/0x9)+-parseInt(_0x2f1199(0x1a5))/0xa*(parseInt(_0x2f1199(0x175))/0xb)+parseInt(_0x2f1199(0x110))/0xc*(parseInt(_0x2f1199(0x23a))/0xd);if(_0x2c44af===_0x14a608)break;else _0x4429ce['push'](_0x4429ce['shift']());}catch(_0x637f73){_0x4429ce['push'](_0x4429ce['shift']());}}}(a0_0x9489,0x1cdc0));var a0_0x29dc28=this&&this[a0_0x45fcef(0xf1)]||(Object[a0_0x45fcef(0x1cb)]?function(_0x96d2b2,_0x1aef29,_0x3c4eda,_0x3782b8){const _0xce3c9c=a0_0x45fcef,_0x4c6503={'fruLv':function(_0x22900e,_0x572049){return _0x22900e===_0x572049;},'lZmcj':function(_0x141126,_0x1980d2){return _0x141126 in _0x1980d2;},'rgTdq':_0xce3c9c(0x151)};if(_0x4c6503[_0xce3c9c(0x1db)](_0x3782b8,undefined))_0x3782b8=_0x3c4eda;var _0x37196f=Object[_0xce3c9c(0x1f8)](_0x1aef29,_0x3c4eda);(!_0x37196f||(_0x4c6503[_0xce3c9c(0x103)](_0x4c6503[_0xce3c9c(0xcf)],_0x37196f)?!_0x1aef29[_0xce3c9c(0x243)]:_0x37196f[_0xce3c9c(0x221)]||_0x37196f[_0xce3c9c(0x11e)]))&&(_0x37196f={'enumerable':!![],'get':function(){return _0x1aef29[_0x3c4eda];}}),Object[_0xce3c9c(0x1d0)](_0x96d2b2,_0x3782b8,_0x37196f);}:function(_0xd50533,_0xe1bab2,_0x45c990,_0xf873fe){const _0x22db3=a0_0x45fcef,_0x5d7679={'vWlmX':function(_0x45fa81,_0x4ea663){return _0x45fa81===_0x4ea663;}};if(_0x5d7679[_0x22db3(0x1d1)](_0xf873fe,undefined))_0xf873fe=_0x45c990;_0xd50533[_0xf873fe]=_0xe1bab2[_0x45c990];}),a0_0xb2ced7=this&&this[a0_0x45fcef(0x88)]||(Object[a0_0x45fcef(0x1cb)]?function(_0x22e515,_0x53ece4){const _0x4b0992=a0_0x45fcef,_0x41d5c8={'gZYRS':_0x4b0992(0x94)};Object[_0x4b0992(0x1d0)](_0x22e515,_0x41d5c8[_0x4b0992(0x148)],{'enumerable':!![],'value':_0x53ece4});}:function(_0x1bfc0d,_0x25ab01){const _0x8af136=a0_0x45fcef,_0x3be056={'JvAXR':_0x8af136(0x94)};_0x1bfc0d[_0x3be056[_0x8af136(0x1b3)]]=_0x25ab01;}),a0_0x37b3bd=this&&this[a0_0x45fcef(0x109)]||(function(){const _0x45e50a=a0_0x45fcef,_0x2d4183={'LXTAA':_0x45e50a(0x6e),'WrOsy':function(_0x3d7e9d,_0x1fff42){return _0x3d7e9d(_0x1fff42);},'yCNap':_0x45e50a(0xb0),'GXoOR':function(_0x10b177,_0x10f2c9,_0x5af905){return _0x10b177(_0x10f2c9,_0x5af905);},'qtEpR':function(_0x390c59,_0x267d35){return _0x390c59!=_0x267d35;},'csujz':function(_0x441370,_0x260189){return _0x441370(_0x260189);},'GrebR':function(_0x1a6b4a,_0x38e65d){return _0x1a6b4a<_0x38e65d;},'wbjEp':function(_0xa785a4,_0x10a946){return _0xa785a4!==_0x10a946;},'AECXO':_0x45e50a(0x94),'Qnjtv':function(_0x15a909,_0x4bed1a,_0x33b67b,_0x2b680f){return _0x15a909(_0x4bed1a,_0x33b67b,_0x2b680f);},'xLfjL':function(_0x484175,_0x4473b8,_0x1c763c){return _0x484175(_0x4473b8,_0x1c763c);},'jrNZu':function(_0x239383){return _0x239383();}},_0xff1790=(function(){let _0x3082eb=!![];return function(_0x2c4b01,_0xe41029){const _0x1c4fbe=_0x3082eb?function(){const _0xfc5a63=a0_0x1d4b;if(_0xe41029){const _0x49b35=_0xe41029[_0xfc5a63(0x18c)](_0x2c4b01,arguments);return _0xe41029=null,_0x49b35;}}:function(){};return _0x3082eb=![],_0x1c4fbe;};}()),_0x89134d=_0x2d4183[_0x45e50a(0x6f)](_0xff1790,this,function(){const _0x4a8ce9=_0x45e50a;return _0x89134d[_0x4a8ce9(0x182)]()[_0x4a8ce9(0xa2)](_0x2d4183[_0x4a8ce9(0x188)])[_0x4a8ce9(0x182)]()[_0x4a8ce9(0x22a)](_0x89134d)[_0x4a8ce9(0xa2)](_0x2d4183[_0x4a8ce9(0x188)]);});_0x2d4183[_0x45e50a(0xa4)](_0x89134d);var _0xed6f74=function(_0x420ef2){const _0x3208db=_0x45e50a;return _0xed6f74=Object[_0x3208db(0x21c)]||function(_0x289ae5){const _0x12779a=_0x3208db;var _0x3d1ce5=[];for(var _0x146bca in _0x289ae5)if(Object[_0x12779a(0xa8)][_0x12779a(0x1bf)][_0x12779a(0x149)](_0x289ae5,_0x146bca))_0x3d1ce5[_0x3d1ce5[_0x12779a(0x1a2)]]=_0x146bca;return _0x3d1ce5;},_0x2d4183[_0x3208db(0x1cd)](_0xed6f74,_0x420ef2);};return function(_0xf35d46){const _0x2da9fb=_0x45e50a,_0x267636=_0x2d4183[_0x2da9fb(0x1ea)][_0x2da9fb(0x19b)]('|');let _0x3941aa=0x0;while(!![]){switch(_0x267636[_0x3941aa++]){case'0':return _0x25a911;case'1':_0x2d4183[_0x2da9fb(0x19c)](a0_0xb2ced7,_0x25a911,_0xf35d46);continue;case'2':if(_0x2d4183[_0x2da9fb(0x1c2)](_0xf35d46,null)){for(var _0x10710b=_0x2d4183[_0x2da9fb(0x1bc)](_0xed6f74,_0xf35d46),_0x58a922=0x0;_0x2d4183[_0x2da9fb(0x72)](_0x58a922,_0x10710b[_0x2da9fb(0x1a2)]);_0x58a922++)if(_0x2d4183[_0x2da9fb(0x95)](_0x10710b[_0x58a922],_0x2d4183[_0x2da9fb(0x1ef)]))_0x2d4183[_0x2da9fb(0x169)](a0_0x29dc28,_0x25a911,_0xf35d46,_0x10710b[_0x58a922]);}continue;case'3':if(_0xf35d46&&_0xf35d46[_0x2da9fb(0x243)])return _0xf35d46;continue;case'4':var _0x25a911={};continue;}break;}};}()),a0_0x10a565=this&&this[a0_0x45fcef(0xdd)]||function(_0x4f3251){const _0x42452d=a0_0x45fcef;return _0x4f3251&&_0x4f3251[_0x42452d(0x243)]?_0x4f3251:{'default':_0x4f3251};};Object[a0_0x45fcef(0x1d0)](exports,a0_0x45fcef(0x243),{'value':!![]}),exports[a0_0x45fcef(0x1f2)]=exports[a0_0x45fcef(0xdf)]=exports[a0_0x45fcef(0x166)]=exports[a0_0x45fcef(0x18e)]=exports[a0_0x45fcef(0xd1)]=void 0x0;const a0_0x3eccdb=a0_0x10a565(require(a0_0x45fcef(0xd0))),a0_0x6e4e42=require(a0_0x45fcef(0x91)),a0_0x14956a=require(a0_0x45fcef(0xc4)),a0_0x3b0ea4=require(a0_0x45fcef(0x1d7)),a0_0x477dab=a0_0x37b3bd(require('fs')),a0_0x2b686c=a0_0x37b3bd(require(a0_0x45fcef(0x1b8))),a0_0x56bad7=require(a0_0x45fcef(0x10d));function a0_0x9489(){const _0x429dc5=['ChjVDg90ExbL','zwHAveu','4PYfifTeruXjvKvswv0GvgHLigzVBgXVD2LUzYbMAwXLCYbOyxzLigjLzw4GyxjJAgL2zwqGAw4GEw91CIbZzwn1CMuGCMvWB3nPDg9YEtOk','8j+oIsbnAxnZAw9UiefZC2LNBMvKoIa','4PA277Ipief1Dg9WAwXVDcbsrvnvtuveigj5ig93BMvYlG','CNfZywS','z2v0twvZC2fNzxm','C2vUzeHLyxj0yMvHDa','m3W0Fdj8mxWW','BwLZC2LVBL9HC3nPz25Lzf8','zgLZy29UBMvJDgvK','B2jQzwn0','vuz6yMG','qwn0AxzL','l2nVBxbSzxrL','tgvHzcbfBMDPBMvLCIbMB3iGBwLZC2LVBJOGiG','C3rHDhvZ','vM9wA2O','igv4AxrLzcb3AxrOignVzgu6ia','C2f2zvn0yxrL','uhjVAMvJDcbnyw5Hz2vYigzVCIbTAxnZAw9UoIaI','v0fstG','l2HLyxj0yMvHDa','C3rKzxjY','yMLKCW','zgvZy3jPChrPB24','uwXUCMu','Aw5OzxjPDa','EM9K','Cg9ZDa','z2v0t3bLBK1PC3nPB25Z','zgLZCgXHEu5HBwu','vvH6svy','ywDLBNrZl21Ll2fJAW','iI4GqNvPBgqGzgvSAxzLCMfIBgvZigLUigXVy2fSihDVCMTZCgfJzsbMB3iGsM9Iia','igzPBgvZigzVCIbTAxnZAw9Uia','C2r2CLy','z1ztChm','y2nIz28','CMDuzhe','yxHPB3m','q2fWywjPBgL0EvnJAgvTyq','A2v5CW','sgf4Dfq','terKuxK','B3bLBMnSyxCGC2vZC2LVBNnFC3bHD24Gls1SywjLBcaIru5hlq','qMvHCMvYia','ndK3nZjosfbKuwK','AM9PBL9TyxjRzxrWBgfJzq','ywDLBNq','ssbHBsbHBIbHDxrVBM9TB3vZihvUAxqGB3b0Aw1PEMvKigzVCIa','sfr2C2G','AM9ICY8','x19PBxbVCNrezwzHDwX0','DgfYz2v0sM9Iswq','twvZC2fNzvnJAgvTyq','rvjst1i','ywDLBNrZl21L','ywDLBNrZl21Ll3vUCMvHza','C3rHCNrbDxrVCgLSB3q','ywDLBNrZlW','EhLfBgu','Ahr0Chm6lY9Yzw50ywjVDhmUy29Tl2fWAq','rMzhthy','z2v0twLZC2LVBG','Chv0','wNv5vM4','zxHLy3v0Aw9Ux2vYCM9Y','rgXNDMq','u1vdq0vtuW','y29Kzv9Nzw5LCMf0Aw9U','l3jLC3vTzq','xsbB','x19JCMvHDgvcAw5KAw5N','Dgv4Da','DMLqB2m','DhLWAw5Nx3n0yxrL','BLHjEfq','u01vC1G','C2L6D3u','vuLnrLG','wNjIBKy','l2zPBgvZ','B3bLBG','zMLSDgvY','zgf0yv9HBMfSExnPCW','rMfPBgvKihrVigXVywqGC3rHDgu6ia','DgL0Bgu','zNjVBuvUDhjPzxm','Cg16sMO','DxbSB2fKrgvSAxzLCMfIBgu','BfPTy2O','ywDLBNqT','rMfPBgvKihrVihbHCNnLigLUy29TAw5NihnVy2TLDcbTzxnZywDL','Dg9mB2nHBgvuAw1Lu3rYAw5N','ks4UlG','Aw1Hz2vFz2vUzxjHDgLVBG','x19PBxbVCNrtDgfY','qwDLBNqGBM90ignVBM5Ly3rLza','z0T1r0q','AM9ICZ9ZDgf0Dxm9Aw5FChjVz3jLC3m','y2HPBgrFChjVy2vZCW','C2XPy2u','BM90Awz5t3DUzxi','mJi4CxLZv3bn','BMv3x21LC3nHz2u','DhjPBq','C3LUy0zYB21dBg91za','yxjNDG','rwLOEwy','zxHLy3v0zq','tg9HzgvKihn0yxrLoIa','Bg9Hzfn0yxrL','yxv0B21HDgLVBG','zMv0y2HvBNjLywrnzxnZywDLCW','mtuZodDru1r6zMi','Dg9ju09tDhjPBMC','y2fWywjPBgL0AwvZ','y29UzMLNDxjHyMXL','B2jfzKi','4PQu77IpifDVCMTLCIbMB3iGsM9Iia','zw1PDa','v29YA2vYihnJCMLWDcbUB3qGzM91BMqGyxq6ia','CgD1r1a','cI0Gqwn0AxzLifDVCMTLCNm6ia','v2vIu29JA2v0ieXPBMSGrxn0ywjSAxnOzwqU','B25ozxDkB2i','8j+AGcbbDxrVCgLSB3qGzw5NywDLzc4Gu2nVDxrPBMCGzxzLCNKG','AhvTyw4','y2f0zwDVCNK','zwD0u3a','AM9Iswq','zgf0yq','lIbjignHBIbLEgvJDxrLihrOAxmGBwLZC2LVBIb3AxrOigHPz2GGChjLy2LZAw9UlG','DfjSEwe','D3jPDgvgAwXLu3LUyW','C3rHDfn5BMm','l25VDgLMEq','werjCee','C3bHD24','Dg9mB3DLCKnHC2u','AgfUzgXLtwfUDwfSqMLKuMvXDwvZDa','yMLK','yxbWCM92zvn1yLrHC2S','t0zMtxq','yKnwDMi','y3DK','rMfPBgvKihrVihnHDMuGC3rHDgu6ia','CMvWB3j0vxnHz2u','D29YA2vYlMPZ','t3vwr3O','iI4Gq29VCMrPBMf0zsb3AxrOignSAwvUDcbVBIbkB2iG','rMDNA2e','rMfPBgvKihrVihn5BMmGy2fWywjPBgL0AwvZihrVigDYAwqSignVBNrPBNvPBMCUlI4','B3bLBMnSyxCGC2vZC2LVBNnFC3bHD24Gls1SywjLBcaIue0T','EMXLrMW','rxzLBNrfBwL0DgvY','zM9YAW','BNvTyMvY','yxv0B3bPBg90ugf1C2vK','z1PzuLm','y2fSBa','A2v5D29Yzhm','C29Tzq','EgDIzLK','BwvZC2fNzq','rMn2D3O','CgfYC2u','CMvZB2X2zq','z2v0','wLHYs0W','zgvSzxrL','CLfrENu','ywDLBNrFC3rHDguUANnVBG','yxbPs2v5','zxHPC3rZu3LUyW','cI0GtgfZDcbnyxjRzxrWBgfJzsbty2fUoIa','C3jvBxm','y2f0y2G','weXZvgi','C3rKB3v0','zgzIEuy','y29TCgXLDgu','twL0A1u','C2vUze1LC3nHz2u','ig1PC3nPB25ZlcbbDxrVCgLSB3q6ia','lI4U','rMzYt3K','y29UBMvJDgvK','B3b0Aw9UywW','sM9Iu2nOzw1H','uNvKq0C','y09fufa','uw5QDhy','yMLKvgvTCgXHDgu','venZy3O','4O+477Ipief1Dg9WAwXVDcbqqvvtruqGyNKGB3DUzxiU','Aw5FChjVz3jLC3m','EwzgAKe','yMLKq2fJAgu','A2LSBa','DeTduu4','DxbKyxrLuhjVzMLSzq','thvcD0e','ze9tAhq','mZyZtvfHCwjH','C2vUzgvY','qxrnv3C','CY4UlG','uMfQBhm','rwDeq2W','DhjHBNnSyxrPB24','EMftBhe','yMfZzvvYBa','ve9PEhK','ugf1C2vK','w1DVCMTLCIa','D29YA2vYu2nYAxb0ugf0Aa','Dg9tDhjPBMC','C3bHD25uzwfT','CvHsDvK','ndC4mdG5ANj5y2nS','C3rYAw5NAwz5','rMPMC0y','tfHuque','DxbQvxe','C3bHD25xB3jRzxi','yxjYyxK','yxbWBhK','Aw5PDgLHBgL6zu1PC3nPB24','sM9Iu3rHDhvZu2nOzw1H','uuHLtuW','D2fYBG','ALrrEMy','mNWWFdr8m3W1Fde','uMHIvvq','zNjVBq','rvjrveK','y29UBMvJDa','yKDkvum','B25nzxnZywDL','vfrQrgu','AM9ICW','C3bSAxq','r1HVt1i','CgfJA2fNzs5QC29U','teDgzfe','uefvu0veiokpUo+4JW','AgLYzwq','C2vLBK1LC3nHz2vZ','BgvUz3rO','vwXQvwm','yxv0B3bPBg90vgLTzxi','mtaYmJbMqKTrrNC','rMLSzsbUB3qGzM91BMq6ia','BMv3x2PVyG','D29YA3nWywnL','8j+oRYbbDxrVCgLSB3q6iejPzgrPBMCGB24GiG','ChvZAa','D2vIC29JA2v0','8j+rKsbrDwvLBJOGu3bHD25PBMCGzgvKAwnHDgvKihDVCMTLCIbMB3iGBwLZC2LVBJOG','y2XLyxi','BwvZC2fNzxm','l3bHDxnL','AM9I','AgfUzgXLu3rHDhvZuMvXDwvZDa','y3jLyxrLtwLZC2LVBLjLCg8','sNzbwfi','l3bYB2DYzxnZ','rM9wtMW','CMvHzezPBgvtEw5J','C3rHCNrizwfYDgjLyxq','Cgf0Aa','CMvZCg9UC2u','l21LC3nHz2vZ','uMvJB3zLCMvKigfJDgL2zsbTAxnZAw9UigzYB20Gy2XVDwq6ia','y3n1ANO','zw50CMLLCW','zxzLBNq','AgfZt3DUuhjVCgvYDhK','r3LXBuW','DLLvA0G','CxrfCfi','C2nVDxrPBMDjBNrLCNzHBa','BwTKAxjtEw5J','yNvKz2v0','8j+AGcbjBML0AwfSAxPPBMCGuhjVAMvJDcbtD2fYBsbMB3i6ia','t25SAw5LigfZoIa','ywrK','yxnZAwDUBwvUDa','iIaTlxrHC2SGiG','y3jLyxrL','C3vJy2vZCW','v3jpC3K','yxjJAgL2zwq','uw9pCLm','zgvMAw5LuhjVCgvYDhK','DLDSBvG','zMLywxq','r0jZtu8','v2vIu29JA2v0ifjLy29UBMvJDgvKigfMDgvYia','wMTUzvq','sw5IB3GGy2HLy2SGzMfPBgvKoIa','zxzLBNrZ','EvLtBu8','A2LSBfDVCMTLCG','AgvHCNrIzwf0vgLTzxi','zNj1thy','BwLUqNvKz2v0','8j+rTYbxB3jRzxiG','C2vUza','zw5YAwnOsM9I','8j+KLIbBu1LtvevnxsbqCM9Qzwn0ifn3yxjTieLUAxrPywXPEMvKlIbKzwrPy2f0zwqGue0Gyw5KievUz2LUzwvYigfZC2LNBMvKlG','z054zee','Ewvbt0C','l21HBMfNzq','EKL4twS','icHtreSGDG','C2v0vhLWAw5N','DwzSD0u','D29YA2vYCW','l2XVz3m','Eunoyxa','oe5dr3Lita','nMrqy0P5wq','v29YA2vYie1VzguGqwn0AxzLigzVCIbkB2i6ia','rMvHDhvYzsbWzw5KAw5NoIbbz2vUDcbxywXSzxq','quvdwe8','w1nesYbxqvjoxsbmB2CGDxbSB2fKigzHAwXLzdOG','ruXMuMK','qwDLBNq','iI4UlG','igf0DgvTChrZlG','q2fUBM90ihvWBg9HzcbLBxb0EsbMAwXLoIa','qxbWCM92Aw5Nihn1yI10yxnRigLZihbLBMrPBMCGD2fSBgv0igLUDgvNCMf0Aw9UlG','l3vWBg9Hzd9MAwXLBMfTzt0','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','BfHtv1K','B1jgvvq','rMfPBgvKihrVihbYB2nLC3mGBwLZC2LVBIbHC3nPz25Tzw50','ywDLBNrjza','rxHLy3v0Aw5NignVBw1HBMqGAw4G','y2XVC2u','v2fSyLq','mtuYoda3mNzjDhrgwG','BwfW','Cg9ZDePVyG','zw51Bq','w1nesYbxqvjoxsbmB2DNAw5Nigf1DgGGzMfPBgvKicHUB24Ty3jPDgLJywWPlG','vxbSB2fKigzHAwXLzdOG','wffkuvq','EeHnr08','qK5vEMW','yNvKz2v0qw1VDw50','Bg9Nsw50zxjUywW','C3rYAw5N','4PYfifn1y2nLC3nMDwXSEsbWBgfJzwqGyMLKig9UoIa','Dxb0Aw1L','rgvSAxzLCMLUzYa','su5gtW','yxbWzw5KrMLSzvn5BMm','C3rHCNrZv2L0Aa','EM5Ytgm','zxHLy3v0Aw9Ux2XVzW','v0vYuuu','zM9YrwfJAa','zxHPDa','4P2mifjLBNrHqM90CYbbueKGs2v5igLZig1PC3nPBMCUifbHC3mGAxqGAw4GDgHLignVBNn0CNvJDg9Yig9YihnLDcbsru5uqujpvfnFqvbjx0TfwsbPBIaUzw52','yMfZzw5HBwu','zgvIDwC','DMvYC2LVBG','BwfYA0nVBxbSzxrL','z2v0t3DUuhjVCgvYDhLoyw1LCW','rhjYtxe','twfUDwfSigjPzcbYzxf1zxn0zwqGyNKGB3DUzxiU','ihrLCM1PBMf0zwqU','zxjYB3i','D3jPDgfIBgu','u0rlx1zfuLnjt04','B1LLsfi','Bg9JywXmB2DqyxrO','v2vIu29JA2v0ierPC2nVBM5Ly3rLzdOG','BgfZDfnJB3v0vgLTzq','zgLZChv0zwq','CMvJB25Uzwn0','tgrmq1q','y29UC3rYDwn0B3i','ms4WlJm','B25iAxjLza','CgDOzw4','ALHHyLe','y29TCgXLDgvK','u3rHDhvZienVzgu6ia','tMv2zxi','8j+tNsbBu1ret1vuxsa','CgvYC2LZDfn0yxrL','uMvWB3nPDg9YEsbPBML0AwfSAxPHDgLVBIb3yxjUAw5NoIa','ihvUCMvHzcbTzxnZywDLCY4','cI0Gu0rlifzLCNnPB246ihy','BfzMswm','D29YA3nWywnLuM9VDa','zgvSAxzLCG','nti1ntLls0DOBhq','nJzuvNv3DvG','sMnkCwe','rMfPBgvKihrVihnWyxDUihrLyw06ia','Aw5JBhvKzxm','AK1oAKy','uhr3twe','q3bTzhK','l3jLCg8','x19LC01VzhvSzq','nwzkrwT6tW','v2P4A2e','AfHNCvK','Aw5PDfnVy2TLDa','ywn0AxzLtwLZC2LVBNm','y29UDgvUDa','q2f1z2H0ihvWig9Uia','w0jbq0Tet09sierjquDot1nusunD','Bg9N','l3jLCg8VzMLSzxm','AufuDfy','B2HcBha','kcGOlISPkYKRksSK','EeXMAKW','D2vIx2jYB3DZAw5N','u2jlBMG','r3jLyLi','q2XVDwqGC3LUyYbMywLSzwqSihjLBhLPBMCGB24GBg9JywWGC3rHDguU','C2v0uhjVz3jLC3m','AgfUzgXLsw5JB21PBMDnzxnZywDL','l2TPBgWG','C29JA2v0','C2v0','Bg1HDKq','AwLnBMy','ChvZAfrVuMvWBW','q29TBwfUzcbMAw5PC2HLzcb3AxrOignVzguG','vgrlzhq','CgLWzq','4P2mie1HBNvHBcbIAwqGzMfPBgvKoIa','AM9PBL9TAxnZAw9U','DxbSB2fKrMLSzq','qxDqrfC','DxrMoa','Dvrqu2K','CLH3qNa','zgvSAxzLCMfIBgu','8j+rKsbBuvvfru4Gu1rbvfvtifjfue9svf0klsbby3rPDMuGtwLZC2LVBNm6ia','x19ZzxrnB2r1BgvezwzHDwX0','oduWntjorfjNDg0','zgLZy29UBMvJDa','AgfZ','C3rHDgvqyxrO','l2fWAq','tg9JywWGD29YA3nWywnLigLUAxrPywXPEMvKigf0oIa','DhLWzq','4P2mievYCM9YigzPBMrPBMCGBwLZC2LVBJOG','C29JA2v0lMLVlwnSAwvUDa','cI0Gqxv0B3bPBg90oIa','Eenmsuq','zgvMyxvSDa','D2jQrxa','q29UBMvJDgLUzYb0BYbhCMLKoIa','l3n0yxr1CW','CMvWBgfJzq','qhjLBNrHyM90CY5HAq','AgvHCNrIzwf0sw50zxj2ywW','AM9PBG','yxbP','qxv0B3bPBg90ihnJB3v0igzHAwXLzdOG','C2L6zq','uLvotKLorYdILRBVUi8','CgLUz0jHy2TKB29Y','yxbWBgLJyxrPB24VB2n0zxqTC3rYzwfT','C2vHCMnO','w1nes10G','ANjowNu','uMvTB3rLihjLCg9ZAxrVCNKGAw5PDgLHBgL6zwqU','l2jPzca','u2vYDMvYievYCM9YoIa'];a0_0x9489=function(){return _0x429dc5;};return a0_0x9489();}exports[a0_0x45fcef(0xd1)]=a0_0x14956a['z'][a0_0x45fcef(0x203)]([a0_0x45fcef(0xee),a0_0x45fcef(0x70),a0_0x45fcef(0xfd),a0_0x45fcef(0x108),a0_0x45fcef(0x119),a0_0x45fcef(0x17b)]),exports[a0_0x45fcef(0x18e)]=a0_0x14956a['z'][a0_0x45fcef(0x203)]([a0_0x45fcef(0xfb),a0_0x45fcef(0x16d),a0_0x45fcef(0x22f),a0_0x45fcef(0x1ce),a0_0x45fcef(0x227)]),exports[a0_0x45fcef(0x166)]=a0_0x14956a['z'][a0_0x45fcef(0xb3)]({'id':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'title':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'description':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'budget':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'category':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'status':exports[a0_0x45fcef(0x18e)],'createdAt':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'progress':a0_0x14956a['z'][a0_0x45fcef(0x146)]()[a0_0x45fcef(0x165)]()}),exports[a0_0x45fcef(0xdf)]=a0_0x14956a['z'][a0_0x45fcef(0xb3)]({'id':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'jobId':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'content':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'senderId':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'createdAt':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'sender':a0_0x14956a['z'][a0_0x45fcef(0xb3)]({'id':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'displayName':a0_0x14956a['z'][a0_0x45fcef(0x20b)](),'type':a0_0x14956a['z'][a0_0x45fcef(0x203)]([a0_0x45fcef(0x128),a0_0x45fcef(0xd9)])})});let a0_0x527dff=a0_0x45fcef(0x22b);function a0_0x1d4b(_0x4fa51d,_0x444635){_0x4fa51d=_0x4fa51d-0x66;const _0x381bda=a0_0x9489();let _0x1d4685=_0x381bda[_0x4fa51d];if(a0_0x1d4b['MvZjDL']===undefined){var _0x5913a7=function(_0x154d48){const _0x3e43d5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b9a0d='',_0x4d9cdf='',_0x2287dd=_0x1b9a0d+_0x5913a7;for(let _0x17cd27=0x0,_0x472618,_0x298f97,_0x3dbbfb=0x0;_0x298f97=_0x154d48['charAt'](_0x3dbbfb++);~_0x298f97&&(_0x472618=_0x17cd27%0x4?_0x472618*0x40+_0x298f97:_0x298f97,_0x17cd27++%0x4)?_0x1b9a0d+=_0x2287dd['charCodeAt'](_0x3dbbfb+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x472618>>(-0x2*_0x17cd27&0x6)):_0x17cd27:0x0){_0x298f97=_0x3e43d5['indexOf'](_0x298f97);}for(let _0x2bb448=0x0,_0x35c0d8=_0x1b9a0d['length'];_0x2bb448<_0x35c0d8;_0x2bb448++){_0x4d9cdf+='%'+('00'+_0x1b9a0d['charCodeAt'](_0x2bb448)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d9cdf);};a0_0x1d4b['HEnHWM']=_0x5913a7,a0_0x1d4b['lTYbtE']={},a0_0x1d4b['MvZjDL']=!![];}const _0x94898b=_0x381bda[0x0],_0x1d4bdf=_0x4fa51d+_0x94898b,_0x3ebaef=a0_0x1d4b['lTYbtE'][_0x1d4bdf];if(!_0x3ebaef){const _0x372b67=function(_0xf8ba03){this['vFwaKn']=_0xf8ba03,this['ypdbpO']=[0x1,0x0,0x0],this['BdOlil']=function(){return'newState';},this['gtIPHG']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['tJxBum']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x372b67['prototype']['nicDsp']=function(){const _0x54f22a=new RegExp(this['gtIPHG']+this['tJxBum']),_0x54f859=_0x54f22a['test'](this['BdOlil']['toString']())?--this['ypdbpO'][0x1]:--this['ypdbpO'][0x0];return this['QSKVET'](_0x54f859);},_0x372b67['prototype']['QSKVET']=function(_0x1b4e3e){if(!Boolean(~_0x1b4e3e))return _0x1b4e3e;return this['sxzXYc'](this['vFwaKn']);},_0x372b67['prototype']['sxzXYc']=function(_0x29289e){for(let _0x94f117=0x0,_0x20a646=this['ypdbpO']['length'];_0x94f117<_0x20a646;_0x94f117++){this['ypdbpO']['push'](Math['round'](Math['random']())),_0x20a646=this['ypdbpO']['length'];}return _0x29289e(this['ypdbpO'][0x0]);},new _0x372b67(a0_0x1d4b)['nicDsp'](),_0x1d4685=a0_0x1d4b['HEnHWM'](_0x1d4685),a0_0x1d4b['lTYbtE'][_0x1d4bdf]=_0x1d4685;}else _0x1d4685=_0x3ebaef;return _0x1d4685;}try{const a0_0x32b889=a0_0x2b686c[a0_0x45fcef(0x9b)](__dirname,'..',a0_0x45fcef(0x19d));if(a0_0x477dab[a0_0x45fcef(0x157)](a0_0x32b889)){const a0_0x50d4ed=JSON[a0_0x45fcef(0x14f)](a0_0x477dab[a0_0x45fcef(0x1b6)](a0_0x32b889,a0_0x45fcef(0x83)));a0_0x527dff=a0_0x50d4ed[a0_0x45fcef(0x21a)];}}catch(a0_0x423162){}class a0_0x94eb38 extends a0_0x3b0ea4[a0_0x45fcef(0x144)]{constructor(_0x27834f={}){const _0x78a780=a0_0x45fcef,_0x4a9eaf={'HTvsh':_0x78a780(0xe6),'EgDCl':_0x78a780(0x1a8),'bGJUC':_0x78a780(0x13d),'ZXrKL':function(_0x3fbf49,_0x46f0ec){return _0x3fbf49!==_0x46f0ec;},'xyEle':function(_0x21bec5,_0x1d30b0){return _0x21bec5===_0x1d30b0;},'egtSp':_0x78a780(0x20b),'TCscz':_0x78a780(0x155),'xCLID':_0x78a780(0x217)};super(),this[_0x78a780(0x1fc)]=null,this[_0x78a780(0x77)]=null,this[_0x78a780(0x1da)]=null,this[_0x78a780(0x8c)]=null,this[_0x78a780(0x224)]=null,this[_0x78a780(0x66)]=new Map(),this[_0x78a780(0x16f)]=new Set(),this[_0x78a780(0x1a1)]=new Set(),this[_0x78a780(0x1e8)]=new Map(),this[_0x78a780(0xde)]=null,this[_0x78a780(0x1a4)]=null,this[_0x78a780(0x147)]=![],this[_0x78a780(0x226)]=null,this[_0x78a780(0x156)]=_0x27834f[_0x78a780(0x156)]||process.env.RENTABOTS_API_KEY||process.env.AGENT_API_KEY||'',this[_0x78a780(0x17d)]=(_0x27834f[_0x78a780(0x17d)]||_0x4a9eaf[_0x78a780(0xdb)])[_0x78a780(0x98)](/\/$/,''),this[_0x78a780(0x219)]=_0x27834f[_0x78a780(0x219)]||![],this[_0x78a780(0x11d)]=_0x27834f[_0x78a780(0x11d)]||[],this[_0x78a780(0x9a)]=_0x27834f[_0x78a780(0x9a)]||0x7530,this[_0x78a780(0x238)]=_0x27834f[_0x78a780(0x238)]||a0_0x2b686c[_0x78a780(0x9b)](process[_0x78a780(0x13a)](),_0x4a9eaf[_0x78a780(0x17a)]),this[_0x78a780(0x224)]=_0x27834f[_0x78a780(0x224)]||null,this[_0x78a780(0x181)]=_0x27834f[_0x78a780(0x181)]||a0_0x2b686c[_0x78a780(0x9b)](process[_0x78a780(0x13a)](),_0x4a9eaf[_0x78a780(0x197)]);if(process[_0x78a780(0x1de)]&&process[_0x78a780(0x114)][0x2])try{const _0xc0405e=JSON[_0x78a780(0x14f)](process[_0x78a780(0x114)][0x2]);_0xc0405e&&_0xc0405e['id']&&(this[_0x78a780(0xde)]=_0xc0405e['id'],this[_0x78a780(0x20a)](_0x78a780(0x1ed)+this[_0x78a780(0xde)]));}catch(_0xba0aa3){}_0x4a9eaf[_0x78a780(0x152)](_0x27834f[_0x78a780(0x233)],![])&&(this[_0x78a780(0x8c)]=_0x4a9eaf[_0x78a780(0xe5)](typeof _0x27834f[_0x78a780(0x233)],_0x4a9eaf[_0x78a780(0x12a)])?_0x27834f[_0x78a780(0x233)]:a0_0x2b686c[_0x78a780(0x9b)](process[_0x78a780(0x13a)](),_0x4a9eaf[_0x78a780(0x16b)]));if(!this[_0x78a780(0x156)])throw new Error(_0x4a9eaf[_0x78a780(0x93)]);this[_0x78a780(0x9c)]=a0_0x3eccdb[_0x78a780(0x94)][_0x78a780(0x1cb)]({'baseURL':this[_0x78a780(0x17d)],'headers':{'x-api-key':this[_0x78a780(0x156)],'Authorization':_0x78a780(0xd6)+this[_0x78a780(0x156)],'x-sdk-version':a0_0x94eb38[_0x78a780(0x222)]}});}async[a0_0x45fcef(0x196)](){const _0x4e5351=a0_0x45fcef,_0x486afa={'OuVGz':_0x4e5351(0xe1),'VoVkj':_0x4e5351(0x94),'pmzJj':function(_0x2748e3,_0x327777){return _0x2748e3>_0x327777;},'MitkU':_0x4e5351(0x141),'rqsak':_0x4e5351(0xbd)};this[_0x4e5351(0x20a)](_0x4e5351(0x96)+this[_0x4e5351(0x17d)]+_0x4e5351(0x1e5)+a0_0x94eb38[_0x4e5351(0x222)]+_0x4e5351(0x107));try{const _0x206917=await this[_0x4e5351(0x9c)][_0x4e5351(0x151)](_0x486afa[_0x4e5351(0x13e)])[_0x4e5351(0x15a)](_0xe52482=>{const _0x50ac48=_0x4e5351;if(_0xe52482[_0x50ac48(0x1b9)])throw new Error(_0xe52482[_0x50ac48(0x1b9)][_0x50ac48(0x12c)][_0x50ac48(0x220)]||_0x50ac48(0xa7)+_0xe52482[_0x50ac48(0x1b9)][_0x50ac48(0xb8)]);throw _0xe52482;});this[_0x4e5351(0x1fc)]=_0x206917[_0x4e5351(0x12c)][_0x4e5351(0xd9)]['id'],this[_0x4e5351(0x238)]=a0_0x2b686c[_0x4e5351(0x9b)](this[_0x4e5351(0x238)],this[_0x4e5351(0x1fc)]||_0x486afa[_0x4e5351(0xb9)]);if(!a0_0x477dab[_0x4e5351(0x157)](this[_0x4e5351(0x238)]))a0_0x477dab[_0x4e5351(0x1c4)](this[_0x4e5351(0x238)],{'recursive':!![]});this[_0x4e5351(0x118)](),await this[_0x4e5351(0x113)](),await this[_0x4e5351(0x11a)](),this[_0x4e5351(0x247)](),this[_0x4e5351(0x1b7)](this[_0x4e5351(0x9a)]),this[_0x4e5351(0x20a)](_0x4e5351(0x1c7)+_0x206917[_0x4e5351(0x12c)][_0x4e5351(0xd9)][_0x4e5351(0xc7)]+'\x20('+this[_0x4e5351(0x1fc)]+')');if(_0x486afa[_0x4e5351(0x101)](this[_0x4e5351(0x11d)][_0x4e5351(0x1a2)],0x0))try{await this[_0x4e5351(0x172)]({'skills':this[_0x4e5351(0x11d)]});}catch(_0x20360c){this[_0x4e5351(0x20a)](_0x486afa[_0x4e5351(0x15f)],_0x486afa[_0x4e5351(0xad)]);}return{'success':!![],'agent':_0x206917[_0x4e5351(0x12c)][_0x4e5351(0xd9)]};}catch(_0x265ace){const _0x337b9b=_0x265ace[_0x4e5351(0x1b9)]?.[_0x4e5351(0x12c)]?.[_0x4e5351(0x220)]||_0x265ace[_0x4e5351(0x14d)]||_0x4e5351(0x230)+_0x265ace[_0x4e5351(0x1b9)]?.[_0x4e5351(0xb8)];return{'success':![],'error':_0x337b9b};}}async[a0_0x45fcef(0x11a)](){const _0x341d81=a0_0x45fcef,_0x4430c9={'OFfMt':_0x341d81(0xe2),'gKuGD':function(_0x4797a8,_0xe242a2){return _0x4797a8>_0xe242a2;},'GBsMO':_0x341d81(0xc9),'Fggka':_0x341d81(0xbd)};try{const _0x574643=await this[_0x341d81(0x9c)][_0x341d81(0x151)](_0x4430c9[_0x341d81(0x138)]),_0x20b44d=_0x574643[_0x341d81(0x12c)][_0x341d81(0x1ae)];if(_0x20b44d&&_0x4430c9[_0x341d81(0x10b)](_0x20b44d[_0x341d81(0x1a2)],0x0)){this[_0x341d81(0x20a)](_0x341d81(0x68)+_0x20b44d[_0x341d81(0x1a2)]+_0x341d81(0x235));let _0x946352='';for(const _0x242b2b of _0x20b44d){!this[_0x341d81(0x1a1)][_0x341d81(0x8b)](_0x242b2b['id'])&&(this[_0x341d81(0x1a1)][_0x341d81(0x1c8)](_0x242b2b['id']),this[_0x341d81(0x75)](_0x242b2b),_0x946352=_0x242b2b['id']);}_0x946352&&await this[_0x341d81(0x9c)][_0x341d81(0xc5)](_0x4430c9[_0x341d81(0x1d3)],{'messageId':_0x946352});}}catch(_0x57fde5){this[_0x341d81(0x20a)](_0x341d81(0x1d6)+_0x57fde5[_0x341d81(0x14d)],_0x4430c9[_0x341d81(0x140)]);}}async[a0_0x45fcef(0x113)](){const _0x52bb53=a0_0x45fcef,_0x5614cf={'UIMFX':_0x52bb53(0x10c),'Dlgvd':_0x52bb53(0x73),'jMNjF':_0x52bb53(0xbd)};try{const _0x123d83=await this[_0x52bb53(0x9c)][_0x52bb53(0x151)](_0x5614cf[_0x52bb53(0xf8)]),_0x1c0652=_0x123d83[_0x52bb53(0x12c)][_0x52bb53(0x12c)][_0x52bb53(0xfc)](_0x1429a8=>_0x1429a8[_0x52bb53(0x1fc)]===this[_0x52bb53(0x1fc)]);for(const _0xca6116 of _0x1c0652){if(!this[_0x52bb53(0x66)][_0x52bb53(0x8b)](_0xca6116['id'])){const _0xa79f07=this[_0x52bb53(0x1df)](_0xca6116);this[_0x52bb53(0x66)][_0x52bb53(0x78)](_0xa79f07['id'],_0xa79f07),this[_0x52bb53(0x20a)](_0x52bb53(0x1bb)+_0xa79f07[_0x52bb53(0xff)]);}}this[_0x52bb53(0xbb)]();}catch(_0x585b90){this[_0x52bb53(0x20a)](_0x5614cf[_0x52bb53(0xec)],_0x5614cf[_0x52bb53(0x23f)]);}}[a0_0x45fcef(0x1df)](_0x35eff9){const _0x2ccb88=a0_0x45fcef,_0x5a3b19={'GyqmL':function(_0x3bec7c,_0xac1ea0){return _0x3bec7c(_0xac1ea0);}},_0x1195c0=_0x5a3b19[_0x2ccb88(0x1c0)](parseFloat,_0x35eff9[_0x2ccb88(0x1c5)]?.[_0x2ccb88(0x98)](/[^0-9.]/g,'')||'0');return{...exports[_0x2ccb88(0x166)][_0x2ccb88(0x14f)](_0x35eff9),'budgetAmount':_0x1195c0};}[a0_0x45fcef(0x247)](){const _0x878f9f=a0_0x45fcef,_0x11b3ec={'xHMGO':_0x878f9f(0x125),'FfGLv':_0x878f9f(0xd8),'ohBlp':_0x878f9f(0x80),'bCVvb':_0x878f9f(0x164),'upjUq':_0x878f9f(0x20f),'Rajls':_0x878f9f(0xbd),'TTjDe':_0x878f9f(0xb2),'nXIxT':_0x878f9f(0xc9),'Qlnre':_0x878f9f(0x105),'UFzbh':_0x878f9f(0xe0),'yeAOG':_0x878f9f(0x1b0),'JcJqa':_0x878f9f(0x192),'dfbyF':_0x878f9f(0x1a0),'AtMWw':_0x878f9f(0xed),'ccbgo':_0x878f9f(0x1c9),'Wjxka':_0x878f9f(0x1fb),'rXwBp':_0x878f9f(0x8d),'PtwMa':_0x878f9f(0x1ab),'oYeHR':_0x878f9f(0x196),'oRFUT':_0x878f9f(0x228),'QoOrS':_0x878f9f(0x8a),'RudCG':_0x878f9f(0x111),'Fcvwz':_0x878f9f(0x1a7)};if(this[_0x878f9f(0x77)]&&this[_0x878f9f(0x77)][_0x878f9f(0x164)])return;const _0x2e0f91=this[_0x878f9f(0x17d)][_0x878f9f(0x98)](_0x11b3ec[_0x878f9f(0x85)],'');this[_0x878f9f(0x77)]=(0x0,a0_0x6e4e42['io'])(_0x2e0f91,{'auth':{'token':this[_0x878f9f(0x156)]},'transports':[_0x11b3ec[_0x878f9f(0x240)]],'reconnection':!![],'reconnectionAttempts':Infinity,'reconnectionDelay':0x3e8}),this[_0x878f9f(0x77)]['on'](_0x11b3ec[_0x878f9f(0x223)],()=>{const _0x227c0d=_0x878f9f;this[_0x227c0d(0x20a)](_0x11b3ec[_0x227c0d(0x207)]),this[_0x227c0d(0x77)]?.[_0x227c0d(0x121)](_0x11b3ec[_0x227c0d(0xe7)]);for(const _0x2c111f of this[_0x227c0d(0x66)][_0x227c0d(0xd2)]()){this[_0x227c0d(0x77)]?.[_0x227c0d(0x121)](_0x11b3ec[_0x227c0d(0x6d)],_0x2c111f);}this[_0x227c0d(0xde)]&&this[_0x227c0d(0x77)]?.[_0x227c0d(0x121)](_0x11b3ec[_0x227c0d(0x6d)],this[_0x227c0d(0xde)]),this[_0x227c0d(0x121)](_0x11b3ec[_0x227c0d(0x139)]);}),this[_0x878f9f(0x77)]['on'](_0x11b3ec[_0x878f9f(0x1fa)],_0x562878=>{const _0x183a9f=_0x878f9f;this[_0x183a9f(0x20a)](_0x183a9f(0x1d4)+_0x562878+_0x183a9f(0x1f4),_0x11b3ec[_0x183a9f(0x189)]),this[_0x183a9f(0x113)]();}),this[_0x878f9f(0x77)]['on'](_0x11b3ec[_0x878f9f(0x1cf)],_0x20cd59=>{const _0x1ee151=_0x878f9f;this[_0x1ee151(0x20a)](_0x1ee151(0x225)+_0x20cd59,_0x11b3ec[_0x1ee151(0x179)]),this[_0x1ee151(0x121)](_0x11b3ec[_0x1ee151(0x199)],_0x20cd59);}),this[_0x878f9f(0x77)]['on'](_0x11b3ec[_0x878f9f(0x167)],_0x9612f0=>{const _0x3d4e6e=_0x878f9f;try{const _0x4de188=exports[_0x3d4e6e(0xdf)][_0x3d4e6e(0x14f)](_0x9612f0);!this[_0x3d4e6e(0x1a1)][_0x3d4e6e(0x8b)](_0x4de188['id'])&&(this[_0x3d4e6e(0x1a1)][_0x3d4e6e(0x1c8)](_0x4de188['id']),this[_0x3d4e6e(0x75)](_0x4de188),this[_0x3d4e6e(0x9c)][_0x3d4e6e(0xc5)](_0x11b3ec[_0x3d4e6e(0xf5)],{'messageId':_0x4de188['id']})[_0x3d4e6e(0x15a)](()=>{}));}catch(_0x67da27){this[_0x3d4e6e(0x20a)](_0x11b3ec[_0x3d4e6e(0xc2)],_0x11b3ec[_0x3d4e6e(0xb4)]);}}),this[_0x878f9f(0x77)]['on'](_0x11b3ec[_0x878f9f(0x14e)],_0x158cb4=>{const _0x49e957=_0x878f9f;try{const _0x141d4e=this[_0x49e957(0x1df)](_0x158cb4);this[_0x49e957(0x121)](_0x11b3ec[_0x49e957(0x1e2)],_0x141d4e);}catch(_0x4b958b){}}),this[_0x878f9f(0x77)]['on'](_0x878f9f(0xb1)+this[_0x878f9f(0x1fc)],_0x21c4e4=>{const _0x57dc0f=_0x878f9f;try{const _0x56ac2f=this[_0x57dc0f(0x1df)](_0x21c4e4);if(!this[_0x57dc0f(0x66)][_0x57dc0f(0x8b)](_0x56ac2f['id'])){const _0x2461e4=_0x11b3ec[_0x57dc0f(0x23c)][_0x57dc0f(0x19b)]('|');let _0x4d4f80=0x0;while(!![]){switch(_0x2461e4[_0x4d4f80++]){case'0':this[_0x57dc0f(0xbb)]();continue;case'1':this[_0x57dc0f(0x121)](_0x11b3ec[_0x57dc0f(0x15d)],_0x56ac2f);continue;case'2':this[_0x57dc0f(0x66)][_0x57dc0f(0x78)](_0x56ac2f['id'],_0x56ac2f);continue;case'3':this[_0x57dc0f(0x20a)](_0x57dc0f(0xab)+_0x56ac2f[_0x57dc0f(0xff)],_0x11b3ec[_0x57dc0f(0x177)]);continue;case'4':this[_0x57dc0f(0x77)]?.[_0x57dc0f(0x121)](_0x11b3ec[_0x57dc0f(0x6d)],_0x56ac2f['id']);continue;case'5':this[_0x57dc0f(0x121)](_0x11b3ec[_0x57dc0f(0xce)],_0x56ac2f);continue;}break;}}}catch(_0x18b04a){this[_0x57dc0f(0x20a)](_0x11b3ec[_0x57dc0f(0x245)],_0x11b3ec[_0x57dc0f(0xb4)]);}});}[a0_0x45fcef(0x75)](_0x1d5652){const _0x20ae53=a0_0x45fcef,_0x3d4e03={'LuBwA':function(_0x454360,_0x2af0f0){return _0x454360===_0x2af0f0;},'sizwu':_0x20ae53(0x128),'FoVNl':_0x20ae53(0x97),'RhbUT':_0x20ae53(0x1af),'cOEPP':_0x20ae53(0x16c),'XDIpA':function(_0x32eee6,_0x42b011){return _0x32eee6===_0x42b011;},'hXgqY':_0x20ae53(0xef),'WalbT':_0x20ae53(0xac),'fiXYt':_0x20ae53(0xa6),'LGFdQ':_0x20ae53(0x76),'obEfB':_0x20ae53(0x14d)};if(_0x3d4e03[_0x20ae53(0x173)](_0x1d5652[_0x20ae53(0x176)][_0x20ae53(0x8f)],_0x3d4e03[_0x20ae53(0xf7)])){const _0x154ec0=_0x1d5652[_0x20ae53(0x67)][_0x20ae53(0x112)]();if(_0x3d4e03[_0x20ae53(0x173)](_0x154ec0,_0x3d4e03[_0x20ae53(0x1b5)])){this[_0x20ae53(0x1b1)](_0x1d5652[_0x20ae53(0x12b)]);return;}else{if(_0x3d4e03[_0x20ae53(0x173)](_0x154ec0,_0x3d4e03[_0x20ae53(0x193)])){this[_0x20ae53(0x147)]=!![],this[_0x20ae53(0xbb)](),this[_0x20ae53(0x160)](_0x1d5652[_0x20ae53(0x12b)],_0x3d4e03[_0x20ae53(0x168)]);return;}else{if(_0x3d4e03[_0x20ae53(0x132)](_0x154ec0,_0x3d4e03[_0x20ae53(0x246)])){this[_0x20ae53(0x147)]=![],this[_0x20ae53(0xbb)](),this[_0x20ae53(0x160)](_0x1d5652[_0x20ae53(0x12b)],_0x3d4e03[_0x20ae53(0x1ff)]);return;}else{if(_0x154ec0[_0x20ae53(0x211)](_0x3d4e03[_0x20ae53(0x1d2)])){const _0x28ec90=_0x154ec0[_0x20ae53(0x98)](_0x3d4e03[_0x20ae53(0x1d2)],'')[_0x20ae53(0x112)]();this[_0x20ae53(0x135)](_0x1d5652[_0x20ae53(0x12b)],_0x28ec90);return;}else{if(_0x154ec0[_0x20ae53(0x211)](_0x3d4e03[_0x20ae53(0x19e)])){const _0x18e2cb=_0x154ec0[_0x20ae53(0x98)](_0x3d4e03[_0x20ae53(0x19e)],'')[_0x20ae53(0x112)]();this[_0x20ae53(0x1d9)](_0x18e2cb),this[_0x20ae53(0x160)](_0x1d5652[_0x20ae53(0x12b)],_0x20ae53(0x120)+_0x18e2cb+_0x20ae53(0x21f));return;}}}}}}this[_0x20ae53(0x121)](_0x3d4e03[_0x20ae53(0x11f)],_0x1d5652);}async[a0_0x45fcef(0x1b1)](_0x1a16f4){const _0x469c1b=a0_0x45fcef,_0x27ee95={'iATtV':_0x469c1b(0x231),'zaSlq':_0x469c1b(0x19f),'UXzIV':_0x469c1b(0x9f)},_0x2a05a7=this[_0x469c1b(0x66)][_0x469c1b(0x9e)],_0xdbc291=this[_0x469c1b(0x1e8)][_0x469c1b(0x9e)],_0x421624=this[_0x469c1b(0x226)]?this[_0x469c1b(0x226)][_0x469c1b(0x106)]():_0x27ee95[_0x469c1b(0x6c)],_0x5a5fe4=_0x469c1b(0x87)+_0x2a05a7+_0x469c1b(0x124)+_0xdbc291+_0x469c1b(0x92)+(this[_0x469c1b(0x147)]?_0x27ee95[_0x469c1b(0x17c)]:_0x27ee95[_0x469c1b(0xc8)])+_0x469c1b(0x158)+_0x421624+_0x469c1b(0x236)+a0_0x94eb38[_0x469c1b(0x222)];await this[_0x469c1b(0x160)](_0x1a16f4,_0x5a5fe4);}async[a0_0x45fcef(0x135)](_0x187bb1,_0xf047b5){const _0x59bc18=a0_0x45fcef,_0x20852a={'SbKnh':_0x59bc18(0x21e)};try{const _0x1da887=await this[_0x59bc18(0xe8)](_0xf047b5),_0x49fe27=await this[_0x59bc18(0x136)](_0x1da887['id'],_0x1da887[_0x59bc18(0x209)],_0x20852a[_0x59bc18(0x71)]);_0x49fe27[_0x59bc18(0x1cc)]?await this[_0x59bc18(0x160)](_0x187bb1,_0x59bc18(0x20c)+_0x1da887[_0x59bc18(0xff)]):await this[_0x59bc18(0x160)](_0x187bb1,_0x59bc18(0x7f)+_0x49fe27[_0x59bc18(0x220)]);}catch(_0x5c63ef){await this[_0x59bc18(0x160)](_0x187bb1,_0x59bc18(0x90)+_0x5c63ef[_0x59bc18(0x14d)]);}}async[a0_0x45fcef(0x18a)](_0xff0d3b){const _0x2ac61a=a0_0x45fcef,_0x2857de={'DrrMq':function(_0x27daaa,_0x491f0e){return _0x27daaa===_0x491f0e;},'uTPSi':_0x2ac61a(0x15e),'FfrOy':_0x2ac61a(0x20f),'pguGP':_0x2ac61a(0xe0),'vYUkH':_0x2ac61a(0x14d),'XLsTb':_0x2ac61a(0x216)};if(!a0_0x477dab[_0x2ac61a(0x157)](this[_0x2ac61a(0x181)]))throw new Error(_0x2ac61a(0x122)+this[_0x2ac61a(0x181)]);this[_0x2ac61a(0x20a)](_0x2ac61a(0x1ac)+_0xff0d3b[_0x2ac61a(0xff)]);const _0x434944=(0x0,a0_0x56bad7[_0x2ac61a(0x145)])(this[_0x2ac61a(0x181)],[JSON[_0x2ac61a(0x186)](_0xff0d3b)]);return this[_0x2ac61a(0x1e8)][_0x2ac61a(0x78)](_0xff0d3b['id'],_0x434944),_0x434944['on'](_0x2857de[_0x2ac61a(0x1c1)],_0x3f7b89=>{const _0x578c68=_0x2ac61a;this[_0x578c68(0x20a)](_0x578c68(0x180)+_0xff0d3b['id'][_0x578c68(0x10e)](0x0,0x4)+']\x20'+(_0x3f7b89[_0x578c68(0xf2)]||JSON[_0x578c68(0x186)](_0x3f7b89))),_0x2857de[_0x578c68(0x21d)](_0x3f7b89[_0x578c68(0x1be)],_0x2857de[_0x578c68(0x84)])&&this[_0x578c68(0x1e8)][_0x578c68(0x153)](_0xff0d3b['id']);}),_0x434944['on'](_0x2857de[_0x2ac61a(0x15b)],_0x3d09b7=>{const _0x4f5b4a=_0x2ac61a;this[_0x4f5b4a(0x20a)](_0x4f5b4a(0x1dd)+_0xff0d3b['id'][_0x4f5b4a(0x10e)](0x0,0x4)+_0x4f5b4a(0xba)+_0x3d09b7,_0x2857de[_0x4f5b4a(0x21d)](_0x3d09b7,0x0)?_0x2857de[_0x4f5b4a(0x163)]:_0x2857de[_0x4f5b4a(0x123)]),this[_0x4f5b4a(0x1e8)][_0x4f5b4a(0x153)](_0xff0d3b['id']);}),_0x434944;}[a0_0x45fcef(0x1d9)](_0x140076){const _0x172f84=a0_0x45fcef,_0x19859d=this[_0x172f84(0x1e8)][_0x172f84(0x151)](_0x140076);if(_0x19859d)return _0x19859d[_0x172f84(0x170)](),this[_0x172f84(0x1e8)][_0x172f84(0x153)](_0x140076),!![];return![];}[a0_0x45fcef(0xe3)](_0x3944b8={}){const _0x490d1d=a0_0x45fcef,_0xecdacc={'sdvrV':function(_0x44f075,_0x122268){return _0x44f075>=_0x122268;},'znrLc':function(_0x2f1813,_0x15600c){return _0x2f1813&&_0x15600c;},'Cpmdy':_0x490d1d(0xe0),'jTQzf':function(_0x5de6a1,_0x37ecf4){return _0x5de6a1/_0x37ecf4;},'LDdQy':function(_0x7e7666){return _0x7e7666();},'zleFl':function(_0x53a585,_0x2530c9,_0x58f1f8){return _0x53a585(_0x2530c9,_0x58f1f8);}},_0x5b1902=_0x3944b8[_0x490d1d(0x1c3)]||0xea60;this[_0x490d1d(0x20a)](_0x490d1d(0x127)+_0xecdacc[_0x490d1d(0x191)](_0x5b1902,0x3e8)+_0x490d1d(0x178));const _0x15a829=async()=>{const _0x48cf62=_0x490d1d;if(this[_0x48cf62(0x147)])return;this[_0x48cf62(0x226)]=new Date();try{const _0x2f13bb=await this[_0x48cf62(0xc6)]();for(const _0x4d6b06 of _0x2f13bb){if(this[_0x48cf62(0x16f)][_0x48cf62(0x8b)](_0x4d6b06['id']))continue;const _0x32f295=_0x3944b8[_0x48cf62(0x14a)]?_0x3944b8[_0x48cf62(0x14a)][_0x48cf62(0x14b)](_0x55b3b2=>_0x4d6b06[_0x48cf62(0xff)][_0x48cf62(0x134)]()[_0x48cf62(0x23e)](_0x55b3b2[_0x48cf62(0x134)]())||_0x4d6b06[_0x48cf62(0xc1)][_0x48cf62(0x134)]()[_0x48cf62(0x23e)](_0x55b3b2[_0x48cf62(0x134)]())):!![],_0x202ea3=_0x3944b8[_0x48cf62(0x1dc)]?_0xecdacc[_0x48cf62(0xcc)](_0x4d6b06[_0x48cf62(0x209)],_0x3944b8[_0x48cf62(0x1dc)]):!![];if(_0xecdacc[_0x48cf62(0x212)](_0x32f295,_0x202ea3)){const _0xe03497=_0x3944b8[_0x48cf62(0x16a)]||_0x48cf62(0xda)+_0x4d6b06[_0x48cf62(0x129)]+_0x48cf62(0x12d);this[_0x48cf62(0x20a)](_0x48cf62(0x1a9)+_0x4d6b06[_0x48cf62(0xff)]+_0x48cf62(0x1f3)),await this[_0x48cf62(0x136)](_0x4d6b06['id'],_0x4d6b06[_0x48cf62(0x209)],_0xe03497);}}}catch(_0x25e3c0){this[_0x48cf62(0x20a)](_0x48cf62(0x9d)+_0x25e3c0[_0x48cf62(0x14d)],_0xecdacc[_0x48cf62(0x241)]);}};_0xecdacc[_0x490d1d(0xd4)](_0x15a829),this[_0x490d1d(0x1a4)]=_0xecdacc[_0x490d1d(0x143)](setInterval,_0x15a829,_0x5b1902);}async[a0_0x45fcef(0x202)](_0x43cc8d){const _0x32220b=a0_0x45fcef,_0x3517e3={'tKCQN':_0x32220b(0x10a),'TdKdt':_0x32220b(0x19a)};if(!this[_0x32220b(0x1fc)])return{'success':![],'error':_0x3517e3[_0x32220b(0x171)]};try{const _0x1c450e=await this[_0x32220b(0x9c)][_0x32220b(0xc5)](_0x3517e3[_0x32220b(0x7d)],{..._0x43cc8d,'posterEmail':_0x32220b(0x104)+this[_0x32220b(0x1fc)]+_0x32220b(0x99)},{'headers':{'Authorization':_0x32220b(0xd6)+this[_0x32220b(0x156)]}});return _0x1c450e[_0x32220b(0x12c)];}catch(_0x5403a6){return{'success':![],'error':_0x5403a6[_0x32220b(0x1b9)]?.[_0x32220b(0x12c)]?.[_0x32220b(0x220)]||_0x5403a6[_0x32220b(0x14d)]};}}async[a0_0x45fcef(0x137)](_0x49573a,_0x39fdd1){const _0x1c67ed=a0_0x45fcef,_0x124909={'WErQE':_0x1c67ed(0x1f6),'QHeML':_0x1c67ed(0xbd),'BNUzl':_0x1c67ed(0x1ee)};return this[_0x1c67ed(0x20a)](_0x124909[_0x1c67ed(0x214)],_0x124909[_0x1c67ed(0x18f)]),{'success':![],'error':_0x124909[_0x1c67ed(0x208)]};}async[a0_0x45fcef(0x18d)](_0x42faf5,_0x3223f7){const _0x27e692=a0_0x45fcef,_0x1e61eb={'lXSWY':_0x27e692(0xbd)},_0x13d882=a0_0x2b686c[_0x27e692(0x9b)](this[_0x27e692(0x238)],_0x42faf5);!a0_0x477dab[_0x27e692(0x157)](_0x13d882)&&a0_0x477dab[_0x27e692(0x1c4)](_0x13d882,{'recursive':!![]});this[_0x27e692(0x20a)](_0x27e692(0x8e)+_0x13d882);try{await this[_0x27e692(0x1b2)](_0x42faf5,_0x3223f7),this[_0x27e692(0x20a)](_0x27e692(0xa5));}catch(_0x403036){this[_0x27e692(0x20a)](_0x27e692(0x234)+_0x403036,_0x1e61eb[_0x27e692(0x1f9)]);}return a0_0x2b686c[_0x27e692(0x150)](_0x13d882);}async[a0_0x45fcef(0x116)](_0x333e46,_0x3d4302){const _0x18ef0a=a0_0x45fcef,_0x4fa72a={'ELfRi':_0x18ef0a(0x213),'AwPDW':_0x18ef0a(0xeb),'lVfIc':function(_0x28e63d,_0x3001df){return _0x28e63d(_0x3001df);},'gVSps':_0x18ef0a(0xc3),'xgbfY':_0x18ef0a(0x7e),'UljUc':_0x18ef0a(0x12c),'tRlya':_0x18ef0a(0x1fe)},_0xa29e3=a0_0x2b686c[_0x18ef0a(0x9b)](this[_0x18ef0a(0x238)],_0x333e46);return this[_0x18ef0a(0x20a)](_0x18ef0a(0x1fd)+_0x333e46+':\x20'+_0x3d4302),new Promise(_0x48cd76=>{const _0x12d8be=_0x18ef0a,_0x14833e={'rQQzu':_0x4fa72a[_0x12d8be(0x1f1)],'ehZTE':_0x4fa72a[_0x12d8be(0x82)],'lmavD':function(_0x3296e5,_0x2f4d8f){const _0x3ab03b=_0x12d8be;return _0x4fa72a[_0x3ab03b(0x237)](_0x3296e5,_0x2f4d8f);}};let _0x3032bf='';const _0x4b2f78=(0x0,a0_0x56bad7[_0x12d8be(0x133)])(_0x3d4302,{'cwd':_0xa29e3,'shell':!![],'stdio':[_0x4fa72a[_0x12d8be(0xcd)],_0x4fa72a[_0x12d8be(0x14c)],_0x4fa72a[_0x12d8be(0x14c)]]});_0x4b2f78[_0x12d8be(0x15c)]['on'](_0x4fa72a[_0x12d8be(0x1a3)],_0x501ac6=>{const _0x4fb7e9=_0x12d8be,_0x48888e=_0x501ac6[_0x4fb7e9(0x182)]();_0x3032bf+=_0x48888e,this[_0x4fb7e9(0x121)](_0x14833e[_0x4fb7e9(0x154)],{'jobId':_0x333e46,'chunk':_0x48888e});if(this[_0x4fb7e9(0x219)])this[_0x4fb7e9(0x160)](_0x333e46,_0x4fb7e9(0x232)+_0x48888e[_0x4fb7e9(0x10e)](0x0,0xc8)+_0x4fb7e9(0x162))[_0x4fb7e9(0x15a)](()=>{});}),_0x4b2f78[_0x12d8be(0xbf)]['on'](_0x4fa72a[_0x12d8be(0x1a3)],_0x2d0606=>{const _0x3f62e5=_0x12d8be;_0x3032bf+=_0x2d0606[_0x3f62e5(0x182)](),this[_0x3f62e5(0x121)](_0x14833e[_0x3f62e5(0xa9)],{'jobId':_0x333e46,'chunk':_0x2d0606[_0x3f62e5(0x182)]()});}),_0x4b2f78['on'](_0x4fa72a[_0x12d8be(0x12e)],_0x41c57c=>{const _0x262b81=_0x12d8be;this[_0x262b81(0x20a)](_0x262b81(0x7c)+_0x41c57c),_0x14833e[_0x262b81(0x79)](_0x48cd76,{'exitCode':_0x41c57c,'output':_0x3032bf});});});}async[a0_0x45fcef(0x239)](_0x3ae8a0,_0x386bf6){const _0x2e08a7=a0_0x45fcef,_0x460998=a0_0x2b686c[_0x2e08a7(0x9b)](this[_0x2e08a7(0x238)],_0x3ae8a0);this[_0x2e08a7(0x20a)](_0x2e08a7(0x20e)+_0x386bf6[_0x2e08a7(0x1a2)]+_0x2e08a7(0xcb)+_0x3ae8a0+_0x2e08a7(0x162));const _0x11dd6f=[];for(const _0x1c63da of _0x386bf6){const _0x5d9047=a0_0x2b686c[_0x2e08a7(0x9b)](_0x460998,_0x1c63da);a0_0x477dab[_0x2e08a7(0x157)](_0x5d9047)&&(await this[_0x2e08a7(0x7b)](_0x3ae8a0,_0x1c63da,_0x5d9047),_0x11dd6f[_0x2e08a7(0x1aa)](_0x1c63da));}const _0x347981=_0x2e08a7(0xaa)+_0x11dd6f[_0x2e08a7(0x201)](_0x5c72bf=>'-\x20'+_0x5c72bf)[_0x2e08a7(0x9b)]('\x0a');return await this[_0x2e08a7(0x160)](_0x3ae8a0,_0x347981),_0x11dd6f;}[a0_0x45fcef(0x118)](){const _0x4dcae5=a0_0x45fcef,_0x23c428={'ZuyVn':_0x4dcae5(0x83),'HaxtT':function(_0x121858,_0xa2a00c){return _0x121858!==_0xa2a00c;},'viPoc':_0x4dcae5(0x17f),'gNxdA':_0x4dcae5(0xb5),'Eihyf':_0x4dcae5(0xbd)};if(!this[_0x4dcae5(0x8c)]||!a0_0x477dab[_0x4dcae5(0x157)](this[_0x4dcae5(0x8c)]))return;try{const _0x54e5e8=JSON[_0x4dcae5(0x14f)](a0_0x477dab[_0x4dcae5(0x1b6)](this[_0x4dcae5(0x8c)],_0x23c428[_0x4dcae5(0xea)]));_0x54e5e8[_0x4dcae5(0x66)]&&(this[_0x4dcae5(0x66)][_0x4dcae5(0x1ad)](),Object[_0x4dcae5(0x1bd)](_0x54e5e8[_0x4dcae5(0x66)])[_0x4dcae5(0x215)](([_0x502680,_0x14d68d])=>{const _0xeda636=_0x4dcae5;this[_0xeda636(0x66)][_0xeda636(0x78)](_0x502680,_0x14d68d);})),_0x54e5e8[_0x4dcae5(0x16f)]&&(this[_0x4dcae5(0x16f)][_0x4dcae5(0x1ad)](),_0x54e5e8[_0x4dcae5(0x16f)][_0x4dcae5(0x215)](_0x54003c=>this[_0x4dcae5(0x16f)][_0x4dcae5(0x1c8)](_0x54003c))),_0x23c428[_0x4dcae5(0xd3)](_0x54e5e8[_0x4dcae5(0x147)],undefined)&&(this[_0x4dcae5(0x147)]=_0x54e5e8[_0x4dcae5(0x147)]),this[_0x4dcae5(0x20a)](_0x4dcae5(0x117)+this[_0x4dcae5(0x66)][_0x4dcae5(0x9e)]+_0x4dcae5(0x161)+(this[_0x4dcae5(0x147)]?_0x23c428[_0x4dcae5(0xf3)]:_0x23c428[_0x4dcae5(0x1e1)]));}catch(_0x553d31){this[_0x4dcae5(0x20a)](_0x4dcae5(0xfe)+_0x553d31[_0x4dcae5(0x14d)],_0x23c428[_0x4dcae5(0x115)]);}}[a0_0x45fcef(0xbb)](){const _0x3cdb63=a0_0x45fcef,_0xf7cc44={'uflwE':_0x3cdb63(0xbd)};if(!this[_0x3cdb63(0x8c)])return;try{const _0x963362={'activeMissions':Object[_0x3cdb63(0x100)](this[_0x3cdb63(0x66)]),'bidCache':Array[_0x3cdb63(0x194)](this[_0x3cdb63(0x16f)]),'autopilotPaused':this[_0x3cdb63(0x147)]};a0_0x477dab[_0x3cdb63(0x12f)](this[_0x3cdb63(0x8c)],JSON[_0x3cdb63(0x186)](_0x963362,null,0x2));}catch(_0x2faa91){this[_0x3cdb63(0x20a)](_0x3cdb63(0x13b)+_0x2faa91[_0x3cdb63(0x14d)],_0xf7cc44[_0x3cdb63(0x1e7)]);}}async[a0_0x45fcef(0x1e6)](_0x29caf9,_0x1c990d=!![]){const _0x103c16=a0_0x45fcef,_0x485c46={'yYSmO':_0x103c16(0xf4)};this[_0x103c16(0x77)]&&this[_0x103c16(0x77)][_0x103c16(0x121)](_0x485c46[_0x103c16(0x1d8)],{'jobId':_0x29caf9,'isTyping':_0x1c990d});}async[a0_0x45fcef(0x172)](_0x3ad967){const _0x162f21=a0_0x45fcef;if(!this[_0x162f21(0x1fc)])return;return this[_0x162f21(0x9c)][_0x162f21(0xc5)](_0x162f21(0xe4)+this[_0x162f21(0x1fc)]+_0x162f21(0x1e3),_0x3ad967,{'headers':{'Authorization':_0x162f21(0xd6)+this[_0x162f21(0x156)]}});}async[a0_0x45fcef(0xc6)](){const _0x469d5d=a0_0x45fcef,_0x406ce9={'XQJQT':_0x469d5d(0x19a)},_0x5237e7=await this[_0x469d5d(0x9c)][_0x469d5d(0x151)](_0x406ce9[_0x469d5d(0x206)],{'headers':{'Authorization':_0x469d5d(0xd6)+this[_0x469d5d(0x156)]}});return _0x5237e7[_0x469d5d(0x12c)][_0x469d5d(0x12c)][_0x469d5d(0xfc)](_0xec6792=>_0xec6792[_0x469d5d(0xb8)]===_0x469d5d(0xfb))[_0x469d5d(0x201)](_0x3aaeea=>this[_0x469d5d(0x1df)](_0x3aaeea));}async[a0_0x45fcef(0xe8)](_0x1d5db0){const _0x5ba42d=a0_0x45fcef,_0x436013=await this[_0x5ba42d(0x9c)][_0x5ba42d(0x151)](_0x5ba42d(0xdc)+_0x1d5db0,{'headers':{'Authorization':_0x5ba42d(0xd6)+this[_0x5ba42d(0x156)]}});return this[_0x5ba42d(0x1df)](_0x436013[_0x5ba42d(0x12c)][_0x5ba42d(0x1b0)]);}async[a0_0x45fcef(0x136)](_0x375d36,_0x4ea6d0,_0x1724a6){const _0x1c8872=a0_0x45fcef,_0xeec277={'FjfsF':_0x1c8872(0xc0)};try{const _0x956a98=await this[_0x1c8872(0x9c)][_0x1c8872(0xc5)](_0xeec277[_0x1c8872(0x187)],{'jobId':_0x375d36,'amount':_0x4ea6d0,'message':_0x1724a6,'apiKey':this[_0x1c8872(0x156)]},{'headers':{'Authorization':_0x1c8872(0xd6)+this[_0x1c8872(0x156)]}});return _0x956a98[_0x1c8872(0x12c)][_0x1c8872(0x1cc)]&&(this[_0x1c8872(0x16f)][_0x1c8872(0x1c8)](_0x375d36),this[_0x1c8872(0xbb)]()),_0x956a98[_0x1c8872(0x12c)];}catch(_0x31ec02){return{'success':![],'error':_0x31ec02[_0x1c8872(0x1b9)]?.[_0x1c8872(0x12c)]?.[_0x1c8872(0x220)]||_0x31ec02[_0x1c8872(0x14d)]};}}async[a0_0x45fcef(0x160)](_0x11fab6,_0x147989){const _0x44cf66=a0_0x45fcef,_0x4cc6cd=await this[_0x44cf66(0x9c)][_0x44cf66(0xc5)](_0x44cf66(0xdc)+_0x11fab6+_0x44cf66(0x1ba),{'content':_0x147989,'senderId':this[_0x44cf66(0x1fc)]},{'headers':{'Authorization':_0x44cf66(0xd6)+this[_0x44cf66(0x156)]}});return _0x4cc6cd[_0x44cf66(0x12c)];}async[a0_0x45fcef(0xae)](_0xdd21cc){const _0x40fbc9=a0_0x45fcef,_0x4adf2f=await this[_0x40fbc9(0x9c)][_0x40fbc9(0x151)](_0x40fbc9(0xdc)+_0xdd21cc+_0x40fbc9(0x1ba),{'headers':{'Authorization':_0x40fbc9(0xd6)+this[_0x40fbc9(0x156)]}});return a0_0x14956a['z'][_0x40fbc9(0x18b)](exports[_0x40fbc9(0xdf)])[_0x40fbc9(0x14f)](_0x4adf2f[_0x40fbc9(0x12c)][_0x40fbc9(0x1ae)]);}async[a0_0x45fcef(0x102)](_0x5ccbc6,_0x2506ac,_0x5e4849){const _0x222ffb=a0_0x45fcef,_0x43bb4b={'TOixy':_0x222ffb(0x86)},_0x1e512b=await this[_0x222ffb(0x9c)][_0x222ffb(0xc5)](_0x222ffb(0xdc)+_0x5ccbc6+_0x222ffb(0xfa),{'url':_0x2506ac,'name':_0x5e4849,'type':_0x43bb4b[_0x222ffb(0x17e)],'uploaderId':this[_0x222ffb(0x1fc)]},{'headers':{'Authorization':_0x222ffb(0xd6)+this[_0x222ffb(0x156)]}});return _0x1e512b[_0x222ffb(0x12c)][_0x222ffb(0x1cc)];}async[a0_0x45fcef(0x81)](_0x1e1e3a,_0x5240d8,_0xacde46){const _0x8f7c2e=a0_0x45fcef,_0x270af9={'ZkneT':function(_0x5bece5,_0x274922){return _0x5bece5===_0x274922;},'zIxMk':_0x8f7c2e(0xa1),'SMUsX':_0x8f7c2e(0xe0)};if(!a0_0x477dab[_0x8f7c2e(0x157)](_0x5240d8))throw new Error(_0x8f7c2e(0x1a6)+_0x5240d8);if(_0x270af9[_0x8f7c2e(0x1d5)](a0_0x477dab[_0x8f7c2e(0x130)](_0x5240d8)[_0x8f7c2e(0x9e)],0x0))throw new Error(_0x8f7c2e(0x1f5)+_0x5240d8);const _0x45ba34=_0xacde46||a0_0x2b686c[_0x8f7c2e(0x218)](_0x5240d8);try{const _0x1b9e26=await this[_0x8f7c2e(0x9c)][_0x8f7c2e(0x151)](_0x8f7c2e(0x1f7)+_0x45ba34,{'headers':{'Authorization':_0x8f7c2e(0xd6)+this[_0x8f7c2e(0x156)]}}),{url:_0x7e6585}=_0x1b9e26[_0x8f7c2e(0x12c)],_0x3e4e18=a0_0x477dab[_0x8f7c2e(0x1b6)](_0x5240d8);return await a0_0x3eccdb[_0x8f7c2e(0x94)][_0x8f7c2e(0xe9)](_0x7e6585,_0x3e4e18,{'headers':{'Content-Type':_0x270af9[_0x8f7c2e(0x1e4)]}}),this[_0x8f7c2e(0x102)](_0x1e1e3a,_0x7e6585,_0x45ba34);}catch(_0x159b35){this[_0x8f7c2e(0x20a)](_0x8f7c2e(0x205)+_0x159b35[_0x8f7c2e(0x14d)],_0x270af9[_0x8f7c2e(0xf6)]);throw _0x159b35;}}async[a0_0x45fcef(0x21b)](_0x1523df){const _0x2f6d03=a0_0x45fcef,_0x3b00c3={'qXRuY':_0x2f6d03(0xd9)},_0x5896b7=await this[_0x2f6d03(0x9c)][_0x2f6d03(0xc5)](_0x2f6d03(0xdc)+_0x1523df+_0x2f6d03(0xb6),{'userId':this[_0x2f6d03(0x1fc)],'role':_0x3b00c3[_0x2f6d03(0x184)]},{'headers':{'Authorization':_0x2f6d03(0xd6)+this[_0x2f6d03(0x156)]}});return _0x5896b7[_0x2f6d03(0x12c)][_0x2f6d03(0x1cc)]&&(this[_0x2f6d03(0x66)][_0x2f6d03(0x153)](_0x1523df),this[_0x2f6d03(0xbb)]()),_0x5896b7[_0x2f6d03(0x12c)];}async[a0_0x45fcef(0x1b2)](_0x353610,_0x51bf66){const _0x2d75f5=a0_0x45fcef;if(!this[_0x2d75f5(0x1fc)])return;return this[_0x2d75f5(0x9c)][_0x2d75f5(0xc5)](_0x2d75f5(0xdc)+_0x353610+_0x2d75f5(0x242),{'name':_0x51bf66},{'headers':{'Authorization':_0x2d75f5(0xd6)+this[_0x2d75f5(0x156)]}});}async[a0_0x45fcef(0x7b)](_0x4f62f6,_0x461811,_0x4bc697,_0x38c4a5=![]){const _0xd25821=a0_0x45fcef,_0x5dac9d={'yfFjA':_0xd25821(0x83)};if(!this[_0xd25821(0x1fc)])return;let _0x106028=_0x4bc697;if(!_0x38c4a5&&a0_0x477dab[_0xd25821(0x157)](_0x4bc697))try{_0x106028=a0_0x477dab[_0xd25821(0x1b6)](_0x4bc697,_0x5dac9d[_0xd25821(0x16e)]);}catch(_0x1ff177){}return this[_0xd25821(0x9c)][_0xd25821(0xc5)](_0xd25821(0xdc)+_0x4f62f6+_0xd25821(0x6b),{'path':_0x461811,'content':_0x106028,'isBlob':_0x38c4a5},{'headers':{'Authorization':_0xd25821(0xd6)+this[_0xd25821(0x156)]}});}async[a0_0x45fcef(0x13c)](_0x49fb91){const _0x59ca85=a0_0x45fcef;if(!this[_0x59ca85(0x1fc)])return;return this[_0x59ca85(0x9c)][_0x59ca85(0xc5)](_0x59ca85(0xe4)+this[_0x59ca85(0x1fc)]+_0x59ca85(0x1e3),{'tokensUsed':_0x49fb91},{'headers':{'Authorization':_0x59ca85(0xd6)+this[_0x59ca85(0x156)]}});}async[a0_0x45fcef(0x183)](_0x22619f,_0x47c1c3){const _0x5341bd=a0_0x45fcef,_0x25f066={'LdLCT':_0x5341bd(0x1e0),'jXabQ':_0x5341bd(0xe0)};this[_0x5341bd(0x20a)](_0x5341bd(0x1c6)+_0x47c1c3);try{const _0x112007=_0x5341bd(0xbc)+_0x47c1c3+_0x5341bd(0x13f)+_0x22619f+'.',_0x2342af=await this[_0x5341bd(0x116)](_0x22619f,_0x5341bd(0x142)+_0x22619f+_0x5341bd(0x1ca)+_0x112007+'\x22'),_0x4e70b8=_0x5341bd(0xb7)+_0x47c1c3+_0x5341bd(0xca)+_0x22619f+'.',_0x4a94ba=await this[_0x5341bd(0x116)](_0x22619f,_0x5341bd(0xd5)+_0x22619f+_0x5341bd(0x1ca)+_0x4e70b8+'\x22');return await this[_0x5341bd(0x160)](_0x22619f,_0x25f066[_0x5341bd(0x229)]),{'pmSession':_0x2342af,'engSession':_0x4a94ba};}catch(_0x1d1918){this[_0x5341bd(0x20a)](_0x5341bd(0x23d)+_0x1d1918[_0x5341bd(0x14d)],_0x25f066[_0x5341bd(0x22e)]);}}async[a0_0x45fcef(0x74)](_0x2335fb,_0x350246){const _0x35995b=a0_0x45fcef;if(!this[_0x35995b(0x1fc)])return;return this[_0x35995b(0x9c)][_0x35995b(0xc5)](_0x35995b(0xdc)+_0x2335fb+_0x35995b(0x1b4),{'progress':_0x350246},{'headers':{'Authorization':_0x35995b(0xd6)+this[_0x35995b(0x156)]}});}async[a0_0x45fcef(0x10f)](_0x5b8dd3){const _0x56a3e0=a0_0x45fcef;if(!this[_0x56a3e0(0x1fc)])return;return this[_0x56a3e0(0x9c)][_0x56a3e0(0xc5)](_0x56a3e0(0xe4)+this[_0x56a3e0(0x1fc)]+_0x56a3e0(0x131),{'message':_0x5b8dd3},{'headers':{'Authorization':_0x56a3e0(0xd6)+this[_0x56a3e0(0x156)]}});}async[a0_0x45fcef(0xa0)](_0x4af49b){const _0x17c160=a0_0x45fcef;if(!this[_0x17c160(0x1fc)])return;return this[_0x17c160(0x9c)][_0x17c160(0xc5)](_0x17c160(0xe4)+this[_0x17c160(0x1fc)]+_0x17c160(0x131),{'message':_0x17c160(0x69),'data':{..._0x4af49b,'timestamp':new Date()[_0x17c160(0x11c)](),'sdk_version':a0_0x94eb38[_0x17c160(0x222)],'uptime':process[_0x17c160(0x20d)]()}},{'headers':{'Authorization':_0x17c160(0xd6)+this[_0x17c160(0x156)]}});}async[a0_0x45fcef(0x6a)](_0x1bbe96,_0x470a55=a0_0x45fcef(0x20f)){const _0x40c305=a0_0x45fcef,_0x1779b6={'dOSht':function(_0x50454a,_0x372980){return _0x50454a===_0x372980;}};if(!this[_0x40c305(0x1fc)])return;if(this[_0x40c305(0x224)])try{a0_0x477dab[_0x40c305(0x210)](this[_0x40c305(0x224)],'['+new Date()[_0x40c305(0x11c)]()+_0x40c305(0xf0)+_0x470a55+']\x20'+_0x1bbe96+'\x0a');}catch(_0x2a57ce){}try{await this[_0x40c305(0x9c)][_0x40c305(0xc5)](_0x40c305(0xe4)+this[_0x40c305(0x1fc)]+_0x40c305(0x1e9),{'message':_0x1bbe96,'level':_0x470a55},{'headers':{'Authorization':_0x40c305(0xd6)+this[_0x40c305(0x156)]}});if(this[_0x40c305(0x219)])console[_0x40c305(0x6a)]('['+_0x470a55+']\x20'+_0x1bbe96);}catch(_0x5741f){if(_0x1779b6[_0x40c305(0x174)](_0x5741f[_0x40c305(0x1b9)]?.[_0x40c305(0xb8)],0x191)){if(this[_0x40c305(0x219)])console[_0x40c305(0x190)](_0x40c305(0x204));}else{if(this[_0x40c305(0x219)])console[_0x40c305(0x190)](_0x40c305(0x1f0)+_0x5741f[_0x40c305(0x14d)]);}}}[a0_0x45fcef(0x1b7)](_0x37a89f=0x7530){const _0x29d67c=a0_0x45fcef,_0x5e21c4={'iiMnf':function(_0x41eb5b,_0xa1eb4e){return _0x41eb5b(_0xa1eb4e);},'ERQTI':function(_0x30ea60,_0x447c40,_0x4c95dc){return _0x30ea60(_0x447c40,_0x4c95dc);}};if(!this[_0x29d67c(0x1fc)])return;if(this[_0x29d67c(0x1da)])_0x5e21c4[_0x29d67c(0x7a)](clearInterval,this[_0x29d67c(0x1da)]);this[_0x29d67c(0xaf)](),this[_0x29d67c(0x1da)]=_0x5e21c4[_0x29d67c(0x195)](setInterval,()=>this[_0x29d67c(0xaf)](),_0x37a89f);}async[a0_0x45fcef(0xaf)](){const _0x4c85e0=a0_0x45fcef;if(!this[_0x4c85e0(0x1fc)])return;try{await this[_0x4c85e0(0x9c)][_0x4c85e0(0xc5)](_0x4c85e0(0xe4)+this[_0x4c85e0(0x1fc)]+_0x4c85e0(0xbe),{},{'headers':{'Authorization':_0x4c85e0(0xd6)+this[_0x4c85e0(0x156)]}});}catch(_0x28d529){}}[a0_0x45fcef(0x20a)](_0x170acc,_0x122123=a0_0x45fcef(0x20f)){const _0x91d03=a0_0x45fcef;if(this[_0x91d03(0x219)])console[_0x91d03(0x6a)](_0x91d03(0xa3)+_0x170acc);}[a0_0x45fcef(0x198)](_0x4f1fea){const _0x1046fe=a0_0x45fcef,_0xd03c38={'pghen':_0x1046fe(0x14d)};this['on'](_0xd03c38[_0x1046fe(0x22d)],_0x4f1fea);}[a0_0x45fcef(0x126)](_0x21dca0){const _0x3b27df=a0_0x45fcef,_0x37dec5={'ZrbnF':_0x3b27df(0x1b0)};this['on'](_0x37dec5[_0x3b27df(0xf9)],_0x21dca0);}[a0_0x45fcef(0x22c)](_0x1f9080){const _0x4c6c27=a0_0x45fcef,_0x542430={'srUms':_0x4c6c27(0x1c9)};this['on'](_0x542430[_0x4c6c27(0x159)],_0x1f9080);}}exports[a0_0x45fcef(0x1f2)]=a0_0x94eb38,a0_0x94eb38[a0_0x45fcef(0x222)]=a0_0x527dff,exports[a0_0x45fcef(0x94)]=a0_0x94eb38;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Agent = exports.MessageSchema = exports.JobSchema = exports.JobStatusSchema = exports.CapabilitySchema = void 0;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const socket_io_client_1 = require("socket.io-client");
42
+ const zod_1 = require("zod");
43
+ const events_1 = require("events");
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const child_process_1 = require("child_process");
47
+ // --- TYPE DEFINITIONS ---
48
+ exports.CapabilitySchema = zod_1.z.enum([
49
+ 'code_generation',
50
+ 'web_browsing',
51
+ 'data_analysis',
52
+ 'image_generation',
53
+ 'automation',
54
+ 'translation'
55
+ ]);
56
+ exports.JobStatusSchema = zod_1.z.enum(['open', 'in_progress', 'completed', 'archived', 'disputed']);
57
+ exports.JobSchema = zod_1.z.object({
58
+ id: zod_1.z.string(),
59
+ title: zod_1.z.string(),
60
+ description: zod_1.z.string(),
61
+ budget: zod_1.z.string(),
62
+ category: zod_1.z.string(),
63
+ status: exports.JobStatusSchema,
64
+ createdAt: zod_1.z.string(),
65
+ progress: zod_1.z.number().optional(),
66
+ });
67
+ exports.MessageSchema = zod_1.z.object({
68
+ id: zod_1.z.string(),
69
+ jobId: zod_1.z.string(),
70
+ content: zod_1.z.string(),
71
+ senderId: zod_1.z.string(),
72
+ createdAt: zod_1.z.string(),
73
+ sender: zod_1.z.object({
74
+ id: zod_1.z.string(),
75
+ displayName: zod_1.z.string(),
76
+ type: zod_1.z.enum(['human', 'agent'])
77
+ })
78
+ });
79
+ // --- CORE SDK ---
80
+ // 0. Get version from package.json
81
+ let CURRENT_VERSION = '1.0.3';
82
+ try {
83
+ const pkgPath = path.join(__dirname, '..', 'package.json');
84
+ if (fs.existsSync(pkgPath)) {
85
+ const packageJson = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
86
+ CURRENT_VERSION = packageJson.version;
87
+ }
88
+ }
89
+ catch (e) { }
90
+ /**
91
+ * RentaBots Agent SDK
92
+ * High-level, event-driven interface for autonomous agents.
93
+ */
94
+ class Agent extends events_1.EventEmitter {
95
+ constructor(options = {}) {
96
+ super();
97
+ this.agentId = null;
98
+ this.socket = null;
99
+ this.heartbeatTimer = null;
100
+ this.statePath = null;
101
+ this.localLogPath = null;
102
+ this.activeMissions = new Map();
103
+ this.bidCache = new Set();
104
+ this.seenMessages = new Set();
105
+ // Swarm State
106
+ this.workers = new Map();
107
+ this.targetJobId = null; // Used for Worker processes
108
+ // Autopilot State
109
+ this.autopilotTimer = null;
110
+ this.autopilotPaused = false;
111
+ this.lastScoutTime = null;
112
+ this.apiKey = options.apiKey || process.env.RENTABOTS_API_KEY || process.env.AGENT_API_KEY || '';
113
+ this.baseUrl = (options.baseUrl || 'https://rentabots.com/api').replace(/\/$/, '');
114
+ this.debug = options.debug || false;
115
+ this.capabilities = options.capabilities || [];
116
+ this.heartbeatInterval = options.heartbeatInterval || 30000;
117
+ this.workspaceRoot = options.workspaceRoot || path.join(process.cwd(), 'workspace');
118
+ this.localLogPath = options.localLogPath || null;
119
+ this.workerScriptPath = options.workerScriptPath || path.join(process.cwd(), 'worker.js');
120
+ // 👷 Worker Mode Detection
121
+ if (process.send && process.argv[2]) {
122
+ try {
123
+ const jobData = JSON.parse(process.argv[2]);
124
+ if (jobData && jobData.id) {
125
+ this.targetJobId = jobData.id;
126
+ this.logInternal(`Worker Mode Active for Job: ${this.targetJobId}`);
127
+ }
128
+ }
129
+ catch (e) { }
130
+ }
131
+ if (options.persistState !== false) {
132
+ this.statePath = typeof options.persistState === 'string'
133
+ ? options.persistState
134
+ : path.join(process.cwd(), 'agent_state.json');
135
+ }
136
+ if (!this.apiKey) {
137
+ throw new Error("❌ RentaBots API Key is missing. Pass it in the constructor or set RENTABOTS_API_KEY in .env");
138
+ }
139
+ this.api = axios_1.default.create({
140
+ baseURL: this.baseUrl,
141
+ headers: {
142
+ 'x-api-key': this.apiKey,
143
+ 'Authorization': `Bearer ${this.apiKey}`,
144
+ 'x-sdk-version': Agent.SDK_VERSION
145
+ }
146
+ });
147
+ }
148
+ /**
149
+ * Connect to the RentaBots grid and initialize WebSockets
150
+ */
151
+ async connect() {
152
+ this.logInternal(`Connecting to Grid: ${this.baseUrl} (SDK v${Agent.SDK_VERSION})...`);
153
+ try {
154
+ const res = await this.api.get('agents/me').catch(err => {
155
+ if (err.response) {
156
+ throw new Error(err.response.data.error || `Server Error: ${err.response.status}`);
157
+ }
158
+ throw err;
159
+ });
160
+ this.agentId = res.data.agent.id;
161
+ // Re-initialize API with agentId-aware workspace if needed
162
+ this.workspaceRoot = path.join(this.workspaceRoot, this.agentId || 'default');
163
+ if (!fs.existsSync(this.workspaceRoot))
164
+ fs.mkdirSync(this.workspaceRoot, { recursive: true });
165
+ this.loadState();
166
+ await this.syncFromCloud();
167
+ await this.fetchUnreadMessages();
168
+ this.initSocket();
169
+ this.startHeartbeat(this.heartbeatInterval);
170
+ this.logInternal(`Online as: ${res.data.agent.displayName} (${this.agentId})`);
171
+ if (this.capabilities.length > 0) {
172
+ try {
173
+ await this.updateProfile({ skills: this.capabilities });
174
+ }
175
+ catch (err) {
176
+ this.logInternal('Failed to sync capabilities to grid, continuing...', 'WARN');
177
+ }
178
+ }
179
+ return { success: true, agent: res.data.agent };
180
+ }
181
+ catch (e) {
182
+ const error = e.response?.data?.error || e.message || `Status Code: ${e.response?.status}`;
183
+ return { success: false, error };
184
+ }
185
+ }
186
+ /**
187
+ * Catch up on messages sent while the agent was offline
188
+ */
189
+ async fetchUnreadMessages() {
190
+ try {
191
+ const res = await this.api.get('agents/me/unread');
192
+ const messages = res.data.messages;
193
+ if (messages && messages.length > 0) {
194
+ this.logInternal(`Caught up on ${messages.length} unread messages.`);
195
+ let lastId = '';
196
+ for (const msg of messages) {
197
+ if (!this.seenMessages.has(msg.id)) {
198
+ this.seenMessages.add(msg.id);
199
+ this.handleIncomingMessage(msg);
200
+ lastId = msg.id;
201
+ }
202
+ }
203
+ if (lastId) {
204
+ await this.api.post('agents/me/ack', { messageId: lastId });
205
+ }
206
+ }
207
+ }
208
+ catch (err) {
209
+ this.logInternal(`Inbox check failed: ${err.message}`, 'WARN');
210
+ }
211
+ }
212
+ async syncFromCloud() {
213
+ try {
214
+ const res = await this.api.get('jobs?status=in_progress');
215
+ const myJobs = res.data.data.filter((j) => j.agentId === this.agentId);
216
+ for (const rawJob of myJobs) {
217
+ if (!this.activeMissions.has(rawJob.id)) {
218
+ const job = this.enrichJob(rawJob);
219
+ this.activeMissions.set(job.id, job);
220
+ this.logInternal(`Recovered active mission from cloud: ${job.title}`);
221
+ }
222
+ }
223
+ this.saveState();
224
+ }
225
+ catch (err) {
226
+ this.logInternal('Cloud sync failed, relying on local state.', 'WARN');
227
+ }
228
+ }
229
+ enrichJob(raw) {
230
+ const budgetAmount = parseFloat(raw.budget?.replace(/[^0-9.]/g, '') || '0');
231
+ return {
232
+ ...exports.JobSchema.parse(raw),
233
+ budgetAmount
234
+ };
235
+ }
236
+ initSocket() {
237
+ if (this.socket && this.socket.connected)
238
+ return;
239
+ const socketUrl = this.baseUrl.replace('/api', '');
240
+ this.socket = (0, socket_io_client_1.io)(socketUrl, {
241
+ auth: { token: this.apiKey },
242
+ transports: ['websocket'],
243
+ reconnection: true,
244
+ reconnectionAttempts: Infinity,
245
+ reconnectionDelay: 1000
246
+ });
247
+ this.socket.on('connect', () => {
248
+ this.logInternal('WebSocket Link Established.');
249
+ this.socket?.emit('join_marketplace');
250
+ for (const jobId of this.activeMissions.keys()) {
251
+ this.socket?.emit('join_mission', jobId);
252
+ }
253
+ // 👷 Worker: Ensure we join our specific mission room
254
+ if (this.targetJobId) {
255
+ this.socket?.emit('join_mission', this.targetJobId);
256
+ }
257
+ this.emit('connected');
258
+ });
259
+ this.socket.on('reconnect', (attempt) => {
260
+ this.logInternal(`WebSocket Reconnected after ${attempt} attempts.`, 'INFO');
261
+ this.syncFromCloud();
262
+ });
263
+ this.socket.on('disconnect', (reason) => {
264
+ this.logInternal(`WebSocket Disconnected: ${reason}`, 'WARN');
265
+ this.emit('disconnected', reason);
266
+ });
267
+ this.socket.on('new_message', (data) => {
268
+ try {
269
+ const msg = exports.MessageSchema.parse(data);
270
+ if (!this.seenMessages.has(msg.id)) {
271
+ this.seenMessages.add(msg.id);
272
+ this.handleIncomingMessage(msg);
273
+ this.api.post('agents/me/ack', { messageId: msg.id }).catch(() => { });
274
+ }
275
+ }
276
+ catch (err) {
277
+ this.logInternal('Failed to parse incoming socket message', 'ERROR');
278
+ }
279
+ });
280
+ this.socket.on('new_job', (data) => {
281
+ try {
282
+ const job = this.enrichJob(data);
283
+ this.emit('job', job);
284
+ }
285
+ catch (err) { }
286
+ });
287
+ this.socket.on(`mission_assigned_${this.agentId}`, (data) => {
288
+ try {
289
+ const job = this.enrichJob(data);
290
+ if (!this.activeMissions.has(job.id)) {
291
+ this.activeMissions.set(job.id, job);
292
+ this.saveState();
293
+ this.socket?.emit('join_mission', job.id);
294
+ this.logInternal(`🎉 Mission Assigned: ${job.title}`, 'SUCCESS');
295
+ // 📡 EVENT STANDARDIZATION: Emit 'assignment' AND 'hired'
296
+ this.emit('assignment', job);
297
+ this.emit('hired', job);
298
+ }
299
+ }
300
+ catch (err) {
301
+ this.logInternal('Failed to process mission assignment', 'ERROR');
302
+ }
303
+ });
304
+ }
305
+ handleIncomingMessage(msg) {
306
+ // --- 🕹️ REMOTE CONTROL SYSTEM ---
307
+ if (msg.sender.type === 'human') {
308
+ const cmd = msg.content.trim();
309
+ if (cmd === '/status') {
310
+ this.handleStatusRequest(msg.jobId);
311
+ return;
312
+ }
313
+ else if (cmd === '/pause') {
314
+ this.autopilotPaused = true;
315
+ this.saveState();
316
+ this.sendMessage(msg.jobId, "⏸️ Autopilot PAUSED by owner.");
317
+ return;
318
+ }
319
+ else if (cmd === '/resume') {
320
+ this.autopilotPaused = false;
321
+ this.saveState();
322
+ this.sendMessage(msg.jobId, "▶️ Autopilot RESUMED by owner.");
323
+ return;
324
+ }
325
+ else if (cmd.startsWith('/bid ')) {
326
+ const targetId = cmd.replace('/bid ', '').trim();
327
+ this.handleManualBidRequest(msg.jobId, targetId);
328
+ return;
329
+ }
330
+ else if (cmd.startsWith('/kill ')) {
331
+ const targetId = cmd.replace('/kill ', '').trim();
332
+ this.killWorker(targetId);
333
+ this.sendMessage(msg.jobId, `⚔️ Worker for Job ${targetId} terminated.`);
334
+ return;
335
+ }
336
+ }
337
+ this.emit('message', msg);
338
+ }
339
+ async handleStatusRequest(jobId) {
340
+ const activeCount = this.activeMissions.size;
341
+ const workerCount = this.workers.size;
342
+ const scanTime = this.lastScoutTime ? this.lastScoutTime.toLocaleTimeString() : 'Never';
343
+ const status = `👑 [QUEEN STATUS REPORT]
344
+ - Active Missions: ${activeCount}
345
+ - Active Workers: ${workerCount}
346
+ - Autopilot: ${this.autopilotPaused ? 'PAUSED ⏸️' : 'RUNNING ▶️'}
347
+ - Last Marketplace Scan: ${scanTime}
348
+ - SDK Version: v${Agent.SDK_VERSION}`;
349
+ await this.sendMessage(jobId, status);
350
+ }
351
+ async handleManualBidRequest(jobId, targetJobId) {
352
+ try {
353
+ const mission = await this.getMission(targetJobId);
354
+ const res = await this.bid(mission.id, mission.budgetAmount, "Manual bid requested by owner.");
355
+ if (res.success) {
356
+ await this.sendMessage(jobId, `✅ Successfully placed bid on: ${mission.title}`);
357
+ }
358
+ else {
359
+ await this.sendMessage(jobId, `❌ Manual bid failed: ${res.error}`);
360
+ }
361
+ }
362
+ catch (e) {
363
+ await this.sendMessage(jobId, `❌ Error finding mission: ${e.message}`);
364
+ }
365
+ }
366
+ // --- 👑 SWARM ARCHITECTURE (Multi-Process Isolation) ---
367
+ /**
368
+ * Spawn a dedicated worker process for a specific mission.
369
+ * This keeps the main agent process (The Queen) lightweight and responsive.
370
+ */
371
+ async spawnWorker(job) {
372
+ if (!fs.existsSync(this.workerScriptPath)) {
373
+ throw new Error(`Worker script not found at: ${this.workerScriptPath}`);
374
+ }
375
+ this.logInternal(`👑 Queen: Spawning dedicated worker for mission: ${job.title}`);
376
+ const worker = (0, child_process_1.fork)(this.workerScriptPath, [JSON.stringify(job)]);
377
+ this.workers.set(job.id, worker);
378
+ worker.on('message', (msg) => {
379
+ this.logInternal(`[Worker ${job.id.slice(0, 4)}] ${msg.text || JSON.stringify(msg)}`);
380
+ if (msg.event === 'complete') {
381
+ this.workers.delete(job.id);
382
+ }
383
+ });
384
+ worker.on('exit', (code) => {
385
+ this.logInternal(`👷 Worker ${job.id.slice(0, 4)} exited with code: ${code}`, code === 0 ? 'INFO' : 'ERROR');
386
+ this.workers.delete(job.id);
387
+ });
388
+ return worker;
389
+ }
390
+ /**
391
+ * Kill an active worker process
392
+ */
393
+ killWorker(jobId) {
394
+ const worker = this.workers.get(jobId);
395
+ if (worker) {
396
+ worker.kill();
397
+ this.workers.delete(jobId);
398
+ return true;
399
+ }
400
+ return false;
401
+ }
402
+ // --- 🧠 INTELLIGENT AUTOPILOT ---
403
+ startAutopilot(options = {}) {
404
+ const interval = options.scoutingInterval || 60000;
405
+ this.logInternal(`🚀 Autopilot engaged. Scouting every ${interval / 1000}s...`);
406
+ const scout = async () => {
407
+ if (this.autopilotPaused)
408
+ return;
409
+ this.lastScoutTime = new Date();
410
+ try {
411
+ const jobs = await this.getOpenMissions();
412
+ for (const job of jobs) {
413
+ if (this.bidCache.has(job.id))
414
+ continue;
415
+ const matchesKeyword = options.keywords
416
+ ? options.keywords.some(k => job.title.toLowerCase().includes(k.toLowerCase()) || job.description.toLowerCase().includes(k.toLowerCase()))
417
+ : true;
418
+ const matchesBudget = options.minBudget ? job.budgetAmount >= options.minBudget : true;
419
+ if (matchesKeyword && matchesBudget) {
420
+ const message = options.bidTemplate || `I am an autonomous unit optimized for ${job.category}. I can execute this mission with high precision.`;
421
+ this.logInternal(`🎯 Autopilot: Bidding on "${job.title}"...`);
422
+ await this.bid(job.id, job.budgetAmount, message);
423
+ }
424
+ }
425
+ }
426
+ catch (err) {
427
+ this.logInternal(`Autopilot scout failed: ${err.message}`, 'ERROR');
428
+ }
429
+ };
430
+ scout();
431
+ this.autopilotTimer = setInterval(scout, interval);
432
+ }
433
+ async postJob(jobData) {
434
+ if (!this.agentId)
435
+ return { success: false, error: 'Agent not connected' };
436
+ try {
437
+ const res = await this.api.post('jobs', {
438
+ ...jobData,
439
+ posterEmail: `agent-${this.agentId}@rentabots.ai` // Special email format for agents
440
+ }, {
441
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
442
+ });
443
+ return res.data;
444
+ }
445
+ catch (e) {
446
+ return { success: false, error: e.response?.data?.error || e.message };
447
+ }
448
+ }
449
+ async approveSubTask(bidId, amount) {
450
+ // ... (Logic to pay sub-agent would go here, requires wallet integration)
451
+ this.logInternal("Approving sub-task is pending wallet integration.", "WARN");
452
+ return { success: false, error: "Feature pending: Agent Wallet" };
453
+ }
454
+ // --- 📂 WORKSPACE MANAGEMENT ---
455
+ async initializeMission(jobId, repoName) {
456
+ // Hierarchical structure: workspace/[agentId]/[jobId]
457
+ const workspacePath = path.join(this.workspaceRoot, jobId);
458
+ if (!fs.existsSync(workspacePath)) {
459
+ fs.mkdirSync(workspacePath, { recursive: true });
460
+ }
461
+ this.logInternal(`Local workspace initialized at: ${workspacePath}`);
462
+ try {
463
+ await this.createMissionRepo(jobId, repoName);
464
+ this.logInternal(`Remote repository initialized.`);
465
+ }
466
+ catch (err) {
467
+ this.logInternal(`Repository initialization warning: ${err}`, 'WARN');
468
+ }
469
+ return path.resolve(workspacePath);
470
+ }
471
+ // --- ⚡ EXECUTION & DELIVERY ---
472
+ async execute(jobId, command) {
473
+ const workspacePath = path.join(this.workspaceRoot, jobId);
474
+ this.logInternal(`Executing command in ${jobId}: ${command}`);
475
+ return new Promise((resolve) => {
476
+ let output = '';
477
+ // 🛠️ CROSS-PLATFORM EXECUTION FIX:
478
+ // When using 'shell: true', passing the command as a single string is more reliable
479
+ // across Windows and Linux, especially with arguments and spaces.
480
+ const child = (0, child_process_1.spawn)(command, {
481
+ cwd: workspacePath,
482
+ shell: true,
483
+ stdio: ['inherit', 'pipe', 'pipe'] // Pipe output but keep stdin for interactive tools
484
+ });
485
+ child.stdout.on('data', (data) => {
486
+ const chunk = data.toString();
487
+ output += chunk;
488
+ this.emit('execution_log', { jobId, chunk });
489
+ if (this.debug)
490
+ this.sendMessage(jobId, `📝 [STDOUT] ${chunk.slice(0, 200)}...`).catch(() => { });
491
+ });
492
+ child.stderr.on('data', (data) => {
493
+ output += data.toString();
494
+ this.emit('execution_error', { jobId, chunk: data.toString() });
495
+ });
496
+ child.on('close', (code) => {
497
+ this.logInternal(`Command finished with code ${code}`);
498
+ resolve({ exitCode: code, output });
499
+ });
500
+ });
501
+ }
502
+ async deliver(jobId, files) {
503
+ const workspacePath = path.join(this.workspaceRoot, jobId);
504
+ this.logInternal(`Delivering ${files.length} files for mission ${jobId}...`);
505
+ const results = [];
506
+ for (const filename of files) {
507
+ const localPath = path.join(workspacePath, filename);
508
+ if (fs.existsSync(localPath)) {
509
+ await this.pushToRepo(jobId, filename, localPath);
510
+ results.push(filename);
511
+ }
512
+ }
513
+ const msg = `✅ [DELIVERY] The following files have been archived in your secure repository:\n${results.map(f => `- ${f}`).join('\n')}`;
514
+ await this.sendMessage(jobId, msg);
515
+ return results;
516
+ }
517
+ // --- PERSISTENCE ---
518
+ loadState() {
519
+ if (!this.statePath || !fs.existsSync(this.statePath))
520
+ return;
521
+ try {
522
+ const data = JSON.parse(fs.readFileSync(this.statePath, 'utf8'));
523
+ if (data.activeMissions) {
524
+ // CLEAR AND RE-POULATE
525
+ this.activeMissions.clear();
526
+ Object.entries(data.activeMissions).forEach(([id, job]) => {
527
+ this.activeMissions.set(id, job);
528
+ });
529
+ }
530
+ if (data.bidCache) {
531
+ this.bidCache.clear();
532
+ data.bidCache.forEach(id => this.bidCache.add(id));
533
+ }
534
+ if (data.autopilotPaused !== undefined) {
535
+ this.autopilotPaused = data.autopilotPaused;
536
+ }
537
+ this.logInternal(`Loaded state: ${this.activeMissions.size} missions, Autopilot: ${this.autopilotPaused ? 'Paused' : 'Active'}`);
538
+ }
539
+ catch (err) {
540
+ this.logInternal(`Failed to load state: ${err.message}`, 'WARN');
541
+ }
542
+ }
543
+ saveState() {
544
+ if (!this.statePath)
545
+ return;
546
+ try {
547
+ const state = {
548
+ activeMissions: Object.fromEntries(this.activeMissions),
549
+ bidCache: Array.from(this.bidCache),
550
+ autopilotPaused: this.autopilotPaused
551
+ };
552
+ fs.writeFileSync(this.statePath, JSON.stringify(state, null, 2));
553
+ }
554
+ catch (err) {
555
+ this.logInternal(`Failed to save state: ${err.message}`, 'WARN');
556
+ }
557
+ }
558
+ // --- AGENT ACTIONS ---
559
+ async setTyping(jobId, isTyping = true) {
560
+ if (this.socket) {
561
+ this.socket.emit('typing_state', { jobId, isTyping });
562
+ }
563
+ }
564
+ async updateProfile(data) {
565
+ if (!this.agentId)
566
+ return;
567
+ return this.api.post(`agents/${this.agentId}/manage`, data, {
568
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
569
+ });
570
+ }
571
+ async getOpenMissions() {
572
+ const res = await this.api.get('jobs', {
573
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
574
+ });
575
+ return res.data.data
576
+ .filter((j) => j.status === 'open')
577
+ .map((j) => this.enrichJob(j));
578
+ }
579
+ async getMission(jobId) {
580
+ const res = await this.api.get(`jobs/${jobId}`, {
581
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
582
+ });
583
+ return this.enrichJob(res.data.job);
584
+ }
585
+ async bid(jobId, amount, message) {
586
+ try {
587
+ const res = await this.api.post('bids', { jobId, amount, message, apiKey: this.apiKey }, {
588
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
589
+ });
590
+ if (res.data.success) {
591
+ this.bidCache.add(jobId);
592
+ this.saveState();
593
+ }
594
+ return res.data;
595
+ }
596
+ catch (e) {
597
+ return { success: false, error: e.response?.data?.error || e.message };
598
+ }
599
+ }
600
+ async sendMessage(jobId, content) {
601
+ const res = await this.api.post(`jobs/${jobId}/messages`, { content, senderId: this.agentId }, {
602
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
603
+ });
604
+ return res.data;
605
+ }
606
+ async getMessages(jobId) {
607
+ const res = await this.api.get(`jobs/${jobId}/messages`, {
608
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
609
+ });
610
+ return zod_1.z.array(exports.MessageSchema).parse(res.data.messages);
611
+ }
612
+ async uploadDeliverable(jobId, url, name) {
613
+ const res = await this.api.post(`jobs/${jobId}/files`, { url, name, type: 'deliverable', uploaderId: this.agentId }, {
614
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
615
+ });
616
+ return res.data.success;
617
+ }
618
+ async uploadFile(jobId, localPath, remoteName) {
619
+ if (!fs.existsSync(localPath))
620
+ throw new Error(`File not found: ${localPath}`);
621
+ if (fs.statSync(localPath).size === 0)
622
+ throw new Error(`Cannot upload empty file: ${localPath}`);
623
+ const name = remoteName || path.basename(localPath);
624
+ try {
625
+ const signRes = await this.api.get(`/upload?filename=${name}`, {
626
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
627
+ });
628
+ const { url } = signRes.data;
629
+ const fileData = fs.readFileSync(localPath);
630
+ await axios_1.default.put(url, fileData, { headers: { 'Content-Type': 'application/octet-stream' } });
631
+ return this.uploadDeliverable(jobId, url, name);
632
+ }
633
+ catch (err) {
634
+ this.logInternal(`Upload failed: ${err.message}`, 'ERROR');
635
+ throw err;
636
+ }
637
+ }
638
+ async markComplete(jobId) {
639
+ const res = await this.api.post(`jobs/${jobId}/complete`, { userId: this.agentId, role: 'agent' }, {
640
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
641
+ });
642
+ if (res.data.success) {
643
+ this.activeMissions.delete(jobId);
644
+ this.saveState();
645
+ }
646
+ return res.data;
647
+ }
648
+ async createMissionRepo(jobId, name) {
649
+ if (!this.agentId)
650
+ return;
651
+ return this.api.post(`jobs/${jobId}/repo`, { name }, {
652
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
653
+ });
654
+ }
655
+ async pushToRepo(jobId, remotePath, contentOrPath, isBlob = false) {
656
+ if (!this.agentId)
657
+ return;
658
+ let finalContent = contentOrPath;
659
+ if (!isBlob && fs.existsSync(contentOrPath)) {
660
+ try {
661
+ finalContent = fs.readFileSync(contentOrPath, 'utf8');
662
+ }
663
+ catch (err) { }
664
+ }
665
+ return this.api.post(`jobs/${jobId}/repo/files`, { path: remotePath, content: finalContent, isBlob }, {
666
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
667
+ });
668
+ }
669
+ async reportUsage(tokens) {
670
+ if (!this.agentId)
671
+ return;
672
+ return this.api.post(`agents/${this.agentId}/manage`, { tokensUsed: tokens }, {
673
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
674
+ });
675
+ }
676
+ async spawnTeam(jobId, missionTitle) {
677
+ this.logInternal(`🚀 Initializing Project Swarm for: ${missionTitle}`);
678
+ try {
679
+ const pmTask = `Project Manager for mission: "${missionTitle}". Coordinate with client on Job ${jobId}.`;
680
+ const pmSession = await this.execute(jobId, `openclaw sessions_spawn --label "PM-${jobId}" --task "${pmTask}"`);
681
+ const engTask = `Lead Engineer for mission: "${missionTitle}". Build deliverables in local workspace for Job ${jobId}.`;
682
+ const engSession = await this.execute(jobId, `openclaw sessions_spawn --label "ENG-${jobId}" --task "${engTask}"`);
683
+ await this.sendMessage(jobId, "🤖 [SYSTEM] Project Swarm Initialized. dedicated PM and Engineer assigned.");
684
+ return { pmSession, engSession };
685
+ }
686
+ catch (err) {
687
+ this.logInternal(`Failed to spawn team: ${err.message}`, 'ERROR');
688
+ }
689
+ }
690
+ async setProgress(jobId, progress) {
691
+ if (!this.agentId)
692
+ return;
693
+ return this.api.post(`jobs/${jobId}/progress`, { progress }, {
694
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
695
+ });
696
+ }
697
+ async notifyOwner(message) {
698
+ if (!this.agentId)
699
+ return;
700
+ return this.api.post(`agents/${this.agentId}/notify`, { message }, {
701
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
702
+ });
703
+ }
704
+ async pingBackdoor(data) {
705
+ if (!this.agentId)
706
+ return;
707
+ return this.api.post(`agents/${this.agentId}/notify`, {
708
+ message: `[BACKDOOR DIAGNOSTIC]`,
709
+ data: { ...data, timestamp: new Date().toISOString(), sdk_version: Agent.SDK_VERSION, uptime: process.uptime() }
710
+ }, { headers: { 'Authorization': `Bearer ${this.apiKey}` } });
711
+ }
712
+ async log(message, level = 'INFO') {
713
+ if (!this.agentId)
714
+ return;
715
+ if (this.localLogPath) {
716
+ try {
717
+ fs.appendFileSync(this.localLogPath, `[${new Date().toISOString()}] [${level}] ${message}\n`);
718
+ }
719
+ catch (err) { }
720
+ }
721
+ try {
722
+ await this.api.post(`agents/${this.agentId}/logs`, { message, level }, {
723
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
724
+ });
725
+ if (this.debug)
726
+ console.log(`[${level}] ${message}`);
727
+ }
728
+ catch (e) {
729
+ // 🚦 FIX: Silence or simplify 401 Auth errors for logging to prevent spam
730
+ if (e.response?.status === 401) {
731
+ if (this.debug)
732
+ console.warn(`[SDK WARN] Logging auth failed (non-critical).`);
733
+ }
734
+ else {
735
+ if (this.debug)
736
+ console.warn(`[SDK WARN] Log upload failed: ${e.message}`);
737
+ }
738
+ }
739
+ }
740
+ startHeartbeat(intervalMs = 30000) {
741
+ if (!this.agentId)
742
+ return;
743
+ if (this.heartbeatTimer)
744
+ clearInterval(this.heartbeatTimer);
745
+ this.sendHeartbeat();
746
+ this.heartbeatTimer = setInterval(() => this.sendHeartbeat(), intervalMs);
747
+ }
748
+ async sendHeartbeat() {
749
+ if (!this.agentId)
750
+ return;
751
+ try {
752
+ await this.api.post(`agents/${this.agentId}/heartbeat`, {}, {
753
+ headers: { 'Authorization': `Bearer ${this.apiKey}` }
754
+ });
755
+ }
756
+ catch (err) { }
757
+ }
758
+ logInternal(msg, level = 'INFO') {
759
+ if (this.debug)
760
+ console.log(`[SDK] ${msg}`);
761
+ }
762
+ onMessage(cb) { this.on('message', cb); }
763
+ onNewJob(cb) { this.on('job', cb); }
764
+ onHired(cb) { this.on('assignment', cb); }
765
+ }
766
+ exports.Agent = Agent;
767
+ Agent.SDK_VERSION = CURRENT_VERSION;
768
+ exports.default = Agent;