rentabots-sdk 0.9.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +22 -12
- package/dist/index.js +1 -1
- package/init.js +83 -61
- package/package.json +1 -1
- package/src/index.ts +164 -95
- package/worker_template.js +66 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
+
import { ChildProcess } from 'child_process';
|
|
3
4
|
export declare const CapabilitySchema: z.ZodEnum<{
|
|
4
5
|
code_generation: "code_generation";
|
|
5
6
|
web_browsing: "web_browsing";
|
|
@@ -65,6 +66,8 @@ export interface AgentOptions {
|
|
|
65
66
|
workspaceRoot?: string;
|
|
66
67
|
/** Path to a local log file for redundant logging. */
|
|
67
68
|
localLogPath?: string;
|
|
69
|
+
/** Path to the worker script for Swarm Architecture. Defaults to ./worker.js */
|
|
70
|
+
workerScriptPath?: string;
|
|
68
71
|
}
|
|
69
72
|
export interface AutopilotOptions {
|
|
70
73
|
keywords?: string[];
|
|
@@ -90,9 +93,12 @@ export declare class Agent extends EventEmitter {
|
|
|
90
93
|
private statePath;
|
|
91
94
|
private workspaceRoot;
|
|
92
95
|
private localLogPath;
|
|
96
|
+
private workerScriptPath;
|
|
93
97
|
activeMissions: Map<string, Job>;
|
|
94
98
|
private bidCache;
|
|
95
99
|
private seenMessages;
|
|
100
|
+
private workers;
|
|
101
|
+
private targetJobId;
|
|
96
102
|
private autopilotTimer;
|
|
97
103
|
private autopilotPaused;
|
|
98
104
|
private lastScoutTime;
|
|
@@ -116,23 +122,20 @@ export declare class Agent extends EventEmitter {
|
|
|
116
122
|
private handleStatusRequest;
|
|
117
123
|
private handleManualBidRequest;
|
|
118
124
|
/**
|
|
119
|
-
*
|
|
125
|
+
* Spawn a dedicated worker process for a specific mission.
|
|
126
|
+
* This keeps the main agent process (The Queen) lightweight and responsive.
|
|
120
127
|
*/
|
|
121
|
-
|
|
128
|
+
spawnWorker(job: Job): Promise<ChildProcess>;
|
|
122
129
|
/**
|
|
123
|
-
*
|
|
130
|
+
* Kill an active worker process
|
|
124
131
|
*/
|
|
132
|
+
killWorker(jobId: string): boolean;
|
|
133
|
+
startAutopilot(options?: AutopilotOptions): void;
|
|
125
134
|
initializeMission(jobId: string, repoName?: string): Promise<string>;
|
|
126
|
-
/**
|
|
127
|
-
* Execute a command asynchronously in the mission workspace
|
|
128
|
-
*/
|
|
129
135
|
execute(jobId: string, command: string): Promise<{
|
|
130
136
|
exitCode: number | null;
|
|
131
137
|
output: string;
|
|
132
138
|
}>;
|
|
133
|
-
/**
|
|
134
|
-
* Batch deliver files from local workspace to mission repository
|
|
135
|
-
*/
|
|
136
139
|
deliver(jobId: string, files: string[]): Promise<string[]>;
|
|
137
140
|
private loadState;
|
|
138
141
|
private saveState;
|
|
@@ -153,11 +156,18 @@ export declare class Agent extends EventEmitter {
|
|
|
153
156
|
createMissionRepo(jobId: string, name?: string): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
154
157
|
pushToRepo(jobId: string, remotePath: string, contentOrPath: string, isBlob?: boolean): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
155
158
|
reportUsage(tokens: number): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
159
|
+
spawnTeam(jobId: string, missionTitle: string): Promise<{
|
|
160
|
+
pmSession: {
|
|
161
|
+
exitCode: number | null;
|
|
162
|
+
output: string;
|
|
163
|
+
};
|
|
164
|
+
engSession: {
|
|
165
|
+
exitCode: number | null;
|
|
166
|
+
output: string;
|
|
167
|
+
};
|
|
168
|
+
} | undefined>;
|
|
156
169
|
setProgress(jobId: string, progress: number): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
157
170
|
notifyOwner(message: string): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
158
|
-
/**
|
|
159
|
-
* Send raw diagnostic data to the configured backdoor (webhook)
|
|
160
|
-
*/
|
|
161
171
|
pingBackdoor(data: any): Promise<import("axios").AxiosResponse<any, any, {}> | undefined>;
|
|
162
172
|
log(message: string, level?: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR'): Promise<void>;
|
|
163
173
|
private startHeartbeat;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a0_0x1cc0ac=a0_0x480f;function a0_0x480f(_0x838543,_0x5bed00){_0x838543=_0x838543-0x132;const _0x580948=a0_0x5197();let _0x361d12=_0x580948[_0x838543];if(a0_0x480f['OwAMlL']===undefined){var _0xdadff3=function(_0xf33946){const _0x34a76d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9ad463='',_0x2d94c6='',_0x1c47ca=_0x9ad463+_0xdadff3;for(let _0x33d8f7=0x0,_0x3fdac3,_0x4be1cc,_0x34ee8f=0x0;_0x4be1cc=_0xf33946['charAt'](_0x34ee8f++);~_0x4be1cc&&(_0x3fdac3=_0x33d8f7%0x4?_0x3fdac3*0x40+_0x4be1cc:_0x4be1cc,_0x33d8f7++%0x4)?_0x9ad463+=_0x1c47ca['charCodeAt'](_0x34ee8f+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x3fdac3>>(-0x2*_0x33d8f7&0x6)):_0x33d8f7:0x0){_0x4be1cc=_0x34a76d['indexOf'](_0x4be1cc);}for(let _0x1b6723=0x0,_0x59b0dc=_0x9ad463['length'];_0x1b6723<_0x59b0dc;_0x1b6723++){_0x2d94c6+='%'+('00'+_0x9ad463['charCodeAt'](_0x1b6723)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d94c6);};a0_0x480f['wygEcE']=_0xdadff3,a0_0x480f['hYEpUl']={},a0_0x480f['OwAMlL']=!![];}const _0x519792=_0x580948[0x0],_0x480fc3=_0x838543+_0x519792,_0x215b29=a0_0x480f['hYEpUl'][_0x480fc3];if(!_0x215b29){const _0x1a479a=function(_0xdbc8a9){this['dQTdLB']=_0xdbc8a9,this['ktDtdJ']=[0x1,0x0,0x0],this['CKRQdm']=function(){return'newState';},this['FfgPbY']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['Pmmfvz']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1a479a['prototype']['DnXyPL']=function(){const _0x367aab=new RegExp(this['FfgPbY']+this['Pmmfvz']),_0x3225f9=_0x367aab['test'](this['CKRQdm']['toString']())?--this['ktDtdJ'][0x1]:--this['ktDtdJ'][0x0];return this['qTMsXJ'](_0x3225f9);},_0x1a479a['prototype']['qTMsXJ']=function(_0x1dc8c8){if(!Boolean(~_0x1dc8c8))return _0x1dc8c8;return this['GpuPTW'](this['dQTdLB']);},_0x1a479a['prototype']['GpuPTW']=function(_0x25a66b){for(let _0x45c42d=0x0,_0x4986f2=this['ktDtdJ']['length'];_0x45c42d<_0x4986f2;_0x45c42d++){this['ktDtdJ']['push'](Math['round'](Math['random']())),_0x4986f2=this['ktDtdJ']['length'];}return _0x25a66b(this['ktDtdJ'][0x0]);},new _0x1a479a(a0_0x480f)['DnXyPL'](),_0x361d12=a0_0x480f['wygEcE'](_0x361d12),a0_0x480f['hYEpUl'][_0x480fc3]=_0x361d12;}else _0x361d12=_0x215b29;return _0x361d12;}(function(_0x3acc0c,_0x1e1571){const _0x10245b=a0_0x480f,_0x420c6f=_0x3acc0c();while(!![]){try{const _0x1cd4e5=-parseInt(_0x10245b(0x1ae))/0x1*(-parseInt(_0x10245b(0x198))/0x2)+-parseInt(_0x10245b(0x238))/0x3*(-parseInt(_0x10245b(0x29d))/0x4)+-parseInt(_0x10245b(0x2df))/0x5+parseInt(_0x10245b(0x1bb))/0x6+-parseInt(_0x10245b(0x1a5))/0x7*(-parseInt(_0x10245b(0x1b3))/0x8)+-parseInt(_0x10245b(0x211))/0x9*(parseInt(_0x10245b(0x14d))/0xa)+parseInt(_0x10245b(0x250))/0xb*(-parseInt(_0x10245b(0x2e2))/0xc);if(_0x1cd4e5===_0x1e1571)break;else _0x420c6f['push'](_0x420c6f['shift']());}catch(_0x5143d6){_0x420c6f['push'](_0x420c6f['shift']());}}}(a0_0x5197,0xb68b1));var a0_0x471f02=this&&this[a0_0x1cc0ac(0x2d0)]||(Object[a0_0x1cc0ac(0x184)]?function(_0x32f049,_0x2ab723,_0x5d745a,_0x5797f5){const _0x263e93=a0_0x1cc0ac,_0x40f63c={'MOMDF':function(_0x449933,_0x3d65e1){return _0x449933===_0x3d65e1;},'NADNz':function(_0x140047,_0x34f386){return _0x140047 in _0x34f386;},'XgoEc':_0x263e93(0x2dd)};if(_0x40f63c[_0x263e93(0x265)](_0x5797f5,undefined))_0x5797f5=_0x5d745a;var _0xf442c5=Object[_0x263e93(0x1a1)](_0x2ab723,_0x5d745a);(!_0xf442c5||(_0x40f63c[_0x263e93(0x2cc)](_0x40f63c[_0x263e93(0x271)],_0xf442c5)?!_0x2ab723[_0x263e93(0x1bf)]:_0xf442c5[_0x263e93(0x21b)]||_0xf442c5[_0x263e93(0x2b6)]))&&(_0xf442c5={'enumerable':!![],'get':function(){return _0x2ab723[_0x5d745a];}}),Object[_0x263e93(0x1a7)](_0x32f049,_0x5797f5,_0xf442c5);}:function(_0x40700b,_0xb4efd9,_0x1f846a,_0x9cb7e4){const _0x8a262b=a0_0x1cc0ac,_0x4350a6={'CkTPO':function(_0x198cd6,_0x1a7cfe){return _0x198cd6===_0x1a7cfe;}};if(_0x4350a6[_0x8a262b(0x29c)](_0x9cb7e4,undefined))_0x9cb7e4=_0x1f846a;_0x40700b[_0x9cb7e4]=_0xb4efd9[_0x1f846a];}),a0_0x1e3cb2=this&&this[a0_0x1cc0ac(0x1f0)]||(Object[a0_0x1cc0ac(0x184)]?function(_0x19a962,_0xfb9787){const _0xcbddfc=a0_0x1cc0ac,_0x515f6f={'FAUpO':_0xcbddfc(0x288)};Object[_0xcbddfc(0x1a7)](_0x19a962,_0x515f6f[_0xcbddfc(0x1d1)],{'enumerable':!![],'value':_0xfb9787});}:function(_0x378374,_0x4f2827){const _0x40ccaa=a0_0x1cc0ac,_0x16a7eb={'Jrvmv':_0x40ccaa(0x288)};_0x378374[_0x16a7eb[_0x40ccaa(0x1c3)]]=_0x4f2827;}),a0_0xa08a97=this&&this[a0_0x1cc0ac(0x2bc)]||(function(){const _0x5a554c=a0_0x1cc0ac,_0x24d1c0={'uBPIJ':_0x5a554c(0x200),'IPMRa':function(_0x1c5e34,_0x2179b4){return _0x1c5e34(_0x2179b4);},'bCdta':_0x5a554c(0x25f),'dBbfE':function(_0x5cae92,_0x3aafce,_0x132a65){return _0x5cae92(_0x3aafce,_0x132a65);},'kfizO':function(_0x1fc77a,_0x54194a){return _0x1fc77a!=_0x54194a;},'xEDCV':function(_0x738b3f,_0x3ac62f){return _0x738b3f<_0x3ac62f;},'yEFdm':function(_0x2b6ab7,_0x40f5c8){return _0x2b6ab7!==_0x40f5c8;},'Fuuvi':_0x5a554c(0x288),'XLyZU':function(_0x5f24de,_0x258faf,_0x4b8dc6,_0x2c92de){return _0x5f24de(_0x258faf,_0x4b8dc6,_0x2c92de);},'Koiqr':function(_0x11d918,_0x4eedc5,_0xf01554){return _0x11d918(_0x4eedc5,_0xf01554);},'ceoIU':function(_0x57221d){return _0x57221d();}},_0xe58359=(function(){let _0x1d2540=!![];return function(_0x2457ef,_0x109a60){const _0x14d1cf=_0x1d2540?function(){const _0x159740=a0_0x480f;if(_0x109a60){const _0x886005=_0x109a60[_0x159740(0x148)](_0x2457ef,arguments);return _0x109a60=null,_0x886005;}}:function(){};return _0x1d2540=![],_0x14d1cf;};}()),_0x56b822=_0x24d1c0[_0x5a554c(0x2ab)](_0xe58359,this,function(){const _0x1daded=_0x5a554c;return _0x56b822[_0x1daded(0x235)]()[_0x1daded(0x2ca)](_0x24d1c0[_0x1daded(0x1bd)])[_0x1daded(0x235)]()[_0x1daded(0x132)](_0x56b822)[_0x1daded(0x2ca)](_0x24d1c0[_0x1daded(0x1bd)]);});_0x24d1c0[_0x5a554c(0x1a0)](_0x56b822);var _0x5947f5=function(_0x5bf12d){const _0x3ec720=_0x5a554c;return _0x5947f5=Object[_0x3ec720(0x1d5)]||function(_0x42c909){const _0x1b52c4=_0x3ec720;var _0x4d4220=[];for(var _0x1a7851 in _0x42c909)if(Object[_0x1b52c4(0x141)][_0x1b52c4(0x2dc)][_0x1b52c4(0x18a)](_0x42c909,_0x1a7851))_0x4d4220[_0x4d4220[_0x1b52c4(0x192)]]=_0x1a7851;return _0x4d4220;},_0x24d1c0[_0x3ec720(0x22b)](_0x5947f5,_0x5bf12d);};return function(_0x482105){const _0x2f600a=_0x5a554c,_0x39d38a=_0x24d1c0[_0x2f600a(0x18c)][_0x2f600a(0x236)]('|');let _0x2ff000=0x0;while(!![]){switch(_0x39d38a[_0x2ff000++]){case'0':_0x24d1c0[_0x2f600a(0x1cb)](a0_0x1e3cb2,_0x195918,_0x482105);continue;case'1':var _0x195918={};continue;case'2':if(_0x24d1c0[_0x2f600a(0x20d)](_0x482105,null)){for(var _0x2401f9=_0x24d1c0[_0x2f600a(0x22b)](_0x5947f5,_0x482105),_0x4c7f4b=0x0;_0x24d1c0[_0x2f600a(0x2bf)](_0x4c7f4b,_0x2401f9[_0x2f600a(0x192)]);_0x4c7f4b++)if(_0x24d1c0[_0x2f600a(0x168)](_0x2401f9[_0x4c7f4b],_0x24d1c0[_0x2f600a(0x134)]))_0x24d1c0[_0x2f600a(0x1ce)](a0_0x471f02,_0x195918,_0x482105,_0x2401f9[_0x4c7f4b]);}continue;case'3':if(_0x482105&&_0x482105[_0x2f600a(0x1bf)])return _0x482105;continue;case'4':return _0x195918;}break;}};}()),a0_0x53d8aa=this&&this[a0_0x1cc0ac(0x146)]||function(_0xa1bcdc){const _0x1b77a2=a0_0x1cc0ac;return _0xa1bcdc&&_0xa1bcdc[_0x1b77a2(0x1bf)]?_0xa1bcdc:{'default':_0xa1bcdc};};Object[a0_0x1cc0ac(0x1a7)](exports,a0_0x1cc0ac(0x1bf),{'value':!![]}),exports[a0_0x1cc0ac(0x224)]=exports[a0_0x1cc0ac(0x138)]=exports[a0_0x1cc0ac(0x1af)]=exports[a0_0x1cc0ac(0x163)]=exports[a0_0x1cc0ac(0x14e)]=void 0x0;function a0_0x5197(){const _0x2c60d3=['l2XVz3m','vLzJB1O','Aw5JBhvKzxm','Aw5PDgLHBgL6zu1PC3nPB24','ywDLBNrZl21L','DMvYC2LVBG','Bg9N','rxzLBNrfBwL0DgvY','lIbjignHBIbLEgvJDxrLihrOAxmGBwLZC2LVBIb3AxrOigHPz2GGChjLy2LZAw9UlG','B3b0Aw9UywW','zLvgD2G','yM91suq','r2rIvMu','zgvMyxvSDa','qu9ivNO','nhWXnhW1FdeWFde4Fdj8mtv8mxW3FdeYFdeZFde3FdiXFdn8nNW4FdL8mtz8mhWYmhWXmxWXoq','whrYqw4','Cufmv2y','qLfsv00','EMrdsKi','zxHPC3rZu3LUyW','l2HLyxj0yMvHDa','BwfYA0nVBxbSzxrL','qwHrAhG','xsbB','y3DK','m3WXFdb8mNW0','sgvHCNrIzwf0igzHAwXLza','zgvZy3jPChrPB24','B2LuDMW','C2v0vhLWAw5N','zuDkzNi','y2XVC2u','q2Tuue8','mte1mJqWnhvlvwrNEq','8j+oIsbnAxnZAw9UiefZC2LNBMvKoIa','ywDLBNrZlW','t0nfwwO','CMvZCg9UC2u','C2f2zvn0yxrL','AM9PBG','yMLK','s0j2wem','CgvYC2LZDfn0yxrL','4PA277Ipief1Dg9WAwXVDcbsrvnvtuveigj5ig93BMvYlG','C3rHCNrizwfYDgjLyxq','shvMAwe','zgLZy29UBMvJDa','s29PCxi','zgf0yq','CNDxqLu','rLzQu2S','BwvZC2fNzq','ywDLBNq','tuTvEge','yxbWzw5KrMLSzvn5BMm','CMvHzezPBgvtEw5J','cI0GqwDLBNqGsuq6ia','vLjdrNK','y29UzMLNDxjHyMXL','l3jLCg8VzMLSzxm','y2HPBgrFChjVy2vZCW','vgjIuNy','y29Kzv9Nzw5LCMf0Aw9U','rMfPBgvKihrVihnHDMuGC3rHDgu6ia','x19PBxbVCNrtDgfY','Dg9mB3DLCKnHC2u','ywrK','Eeveq1y','ks4UlG','ruPmDhi','C2vUzeHLyxj0yMvHDa','AM9Iswq','g1SZmM0','g1SZmw0','C3LUy0zYB21dBg91za','C29JA2v0','z2v0twLZC2LVBG','l3n0yxr1CW','C2vHCMnO','qMf4vu0','tKfetNO','CgfYC2u','CMvZB2X2zq','AM9ICY8','x19JCMvHDgvcAw5KAw5N','l25VDgLMEq','AgvHCNrIzwf0sw50zxj2ywW','ugf1C2vK','Dg9ju09tDhjPBMC','Ae5Lquq','t25SAw5LigfZoIa','Ahr0Chm6lY9Yzw50ywjVDhmUy29Tl2fWAq','rMfPBgvKihrVihbYB2nLC3mGBwLZC2LVBIbHC3nPz25Tzw50','yKzty2S','zgvSzxrL','uLvotKLorYdILRBVUi8','AgfZt3DUuhjVCgvYDhK','z2v0','Bg9Nsw50zxjUywW','nty1mJi3nwTsDeXtzG','zKX0rxa','twfUDwfSigjPzcbYzxf1zxn0zwqGyNKGB3DUzxiU','ota1mtm0og9vqvjbvW','y29UC3rYDwn0B3i','yvvNvhy','rNv1DMK','Cgf0Aa','AhvTyw4','Dxb0Aw1L','twvZC2fNzvnJAgvTyq','CvnVENe','C2vUze1LC3nHz2u','zxHLy3v0zq','C2v0uhjVz3jLC3m','twHPq1m','Aw1Hz2vFz2vUzxjHDgLVBG','BgfZDfnJB3v0vgLTzq','Cg9ZDa','ChjVDg90ExbL','ywDLBNrjza','Dvjgqva','u1vdq0vtuW','rMfPBgvKihrVigXVywqGC3rHDgu6ia','x19PBxbVCNrezwzHDwX0','zgvSAxzLCG','yxbWBhK','AM9PBL9TAxnZAw9U','l3jLCg8','AM9I','DxbKyxrLuhjVzMLSzq','mtiWnJuWshfTCvrQ','q2fWywjPBgL0EvnJAgvTyq','C3rYAw5NAwz5','BvLrwLq','rvjst1i','qwfzDfO','yxbPs2v5','qLbcy2S','EM9K','lI4U','AgfZ','C090yxy','vgDJq3y','AgfUzgXLsw5JB21PBMDnzxnZywDL','zwPwCLG','C29Tzq','zM9YrwfJAa','rMfoEKG','zNjVBuvUDhjPzxm','DhjPBq','C3rKzxjY','A1fOtKW','sM9Iu3rHDhvZu2nOzw1H','CMvWBgfJzq','v2vIu29JA2v0ieXPBMSGrxn0ywjSAxnOzwqU','zxzLBNrZ','DxbSB2fKrMLSzq','Euvgzg0','D2vIC29JA2v0','EeLWAK0','z2v0twvZC2fNzxm','4PYfifn1y2nLC3nMDwXSEsbWBgfJzwqGyMLKig9UoIa','yxHPB3m','z3z6De0','rhfPD1O','4P2mie1HBNvHBcbIAwqGzMfPBgvKoIa','igf0DgvTChrZlG','rhHmu1i','l3vWBg9Hzd9MAwXLBMfTzt0','B3bLBG','zw5YAwnOsM9I','uMvTB3rLihjLCg9ZAxrVCNKGAw5PDgLHBgL6zwqU','AM9ICZ9ZDgf0Dxm9Aw5FChjVz3jLC3m','u0jdvve','C3rKB3v0','qwn0AxzL','u0rlx1zfuLnjt04','vg5Lyvy','y2fWywjPBgL0AwvZ','yvvhrKK','ruHTvMG','Bg9JywXmB2DqyxrO','CgzcEwe','yNvKz2v0qw1VDw50','C2L6zq','y3jLyxrL','CfbNy1G','zw1PDa','CgLUz0jHy2TKB29Y','CY4UlG','D2HKv2e','y2fSBa','zxjYB3i','yKnKDge','wMr0zxy','DxbSB2fKrgvSAxzLCMfIBgu','CMvWB3j0vxnHz2u','zgLZChv0zwq','yMLKvgvTCgXHDgu','BgvUz3rO','iI4UlG','zLL0D2O','CKTsAhm','rMfPBgvKihrVihbHCNnLigLUy29TAw5NihnVy2TLDcbTzxnZywDL','yMLKCW','mZq3ndqYzw9zuwLc','C2v0','C2XPy2u','C3rHCNrZv2L0Aa','z2v0t3bLBK1PC3nPB25Z','C3vJy2vZCW','D3z3q3O','AhnNDKi','y2vVsvu','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','yMLKq2fJAgu','sxD0DMi','v0rvqKK','ndK3s3jkB0zJ','ywDLBNrZl21Ll3vUCMvHza','zgvMAw5LuhjVCgvYDhK','DxrMoa','y29TCgXLDgvK','s0zSqMS','v2vIu29JA2v0ifjLy29UBMvJDgvKigfMDgvYia','ChvZAa','AM9PBL9TyxjRzxrWBgfJzq','n3rgAeHPwq','sM9Iu2nOzw1H','l3bYB2DYzxnZ','B25iAxjLza','AwnKuee','ote4ntzfuKfMzLu','y29UBMvJDgvK','D29YA3nWywnL','zxHLy3v0Aw9Ux2XVzW','Aw5FChjVz3jLC3m','D2vIx2jYB3DZAw5N','reH6CKe','D3jPDgvgAwXLu3LUyW','nde5ndG0nNbbELzRCG','C2nVDxrPBMDjBNrLCNzHBa','DujqsuO','yMfZzw5HBwu','x19LC01VzhvSzq','BNvTyMvY','q29TBwfUzcbMAw5PC2HLzcb3AxrOignVzguG','ihvUCMvHzcbTzxnZywDLCY4','sNj2Bxy','C2vLBK1LC3nHz2vZ','yxbWBgLJyxrPB24VB2n0zxqTC3rYzwfT','ANfHuNm','A2v5CW','icHtreSGDG','8j+oRYbbDxrVCgLSB3q6iejPzgrPBMCGB24GiG','yxv0B3bPBg90vgLTzxi','zejIzKu','runIvvu','ssbHBsbHBIbHDxrVBM9TB3vZihvUAxqGB3b0Aw1PEMvKigzVCIa','weX5wLu','ywn0AxzLtwLZC2LVBNm','wXTBmZvTu0rlg1SWBv0G','rKfvCe8','rMfPBgvKihrVihjLywqGBg9JywWGzMLSztOG','zxHLy3v0Aw9Ux2vYCM9Y','su5gtW','z2v0t3DUuhjVCgvYDhLoyw1LCW','uMvJB3zLCMvKigfJDgL2zsbTAxnZAw9UigzYB20Gy2XVDwq6ia','zw50CMLLCW','q29UBMvJDgLUzYb0BYbhCMLKoIa','v1PNChO','DhjHBNnSyxrPB24','A1rJv0G','B2jQzwn0','rgvSAxzLCMLUzYa','y2f0y2G','wKrOv24','4O+477Ipief1Dg9WAwXVDcbqqvvtruqGyNKGB3DUzxiU','igzPBgvZigzVCIbTAxnZAw9Uia','wwTlDgm','BMv3x21LC3nHz2u','BwLZC2LVBL9HC3nPz25Lzf8','zNjVBq','wgvhvMO','BMv3x2PVyG','u2vkt2u','y29UDgvUDa','BwfW','A2v5D29Yzhm','rMTfAhm','C2vUzgvY','8j+KLIbBu1rbvfvtifjfue9svf0klsbby3rPDMuGtwLZC2LVBNm6ia','yNvKz2v0','x19ZzxrnB2r1BgvezwzHDwX0','tg9JywWGD29YA3nWywnLigLUAxrPywXPEMvKigf0oIa','C3rYAw5N','zgvIDwC','B25ozxDkB2i','u3rHDhvZienVzgu6ia','yxv0B3bPBg90ugf1C2vK','ChvZAfrVuMvWBW','CgfJA2fNzs5QC29U','l2nVBxbSzxrL','mc45lJa','C0XMzfC','uefvu0veiokpUo+4JW','rMfPBgvKihrVihn5BMmGy2fWywjPBgL0AwvZihrVigDYAwqSignVBNrPBNvPBMCUlI4','uhzAuhu','vxbSB2fKAw5NigzPBgu6ia','kcGOlISPkYKRksSK','g1SZm20','AgfUzgXLu3rHDhvZuMvXDwvZDa','tMv2zxi','v2vIu29JA2v0ierPC2nVBM5Ly3rLzdOG','tgviCM0','D1ryrw0','thzJAwy','swfxBhG','AgvHCNrIzwf0vgLTzxi','BwTKAxjtEw5J','yxjYyxK','yuDRwKq','A2zPEK8','EfnLD1y','q2XVDwqGC3LUyYbMywLSzwqSihjLBhLPBMCGB24GBg9JywWGC3rHDguU','DhLWAw5Nx3n0yxrL','mJG4wfvbBhPh','wezsDvO','v2HHq3e','C29JA2v0lMLVlwnSAwvUDa','ig1PC3nPB25ZlcbbDxrVCgLSB3q6ia','DhLWzq','r1nfwhC','ywDLBNrFC3rHDguUANnVBG','Bg9Hzfn0yxrL','C3rHDhvZ','D3jPDgfIBgu','y29UBMvJDa','rxHLy3v0Aw5NignVBw1HBMqGAw4G','yxjJAgL2zwq','Chv0','AgfUzgXLtwfUDwfSqMLKuMvXDwvZDa','zgf0yv9HBMfSExnPCW','zKXcwge','q3blBem','qwDLBNq','BwvZC2fNzxm','vNHRzKW','s29AvKq','ywDLBNrZl21Ll2fJAW','q05qAe4','yxbP','svbnuMe','4P2mievYCM9YigzPBMrPBMCGBwLZC2LVBJOG','l2zPBgvZ','q2fUBM90ihvWBg9HzcbLBxb0EsbMAwXLoIa','EwLQueG','vg9Hz1G','zfPoAvO','C3rHDfn5BMm','Aw5PDfnVy2TLDa','8j+AGcbbDxrVCgLSB3qGzw5NywDLzc4Gu2nVDxrPBMCGzxzLCNKG','Dg9tDhjPBMC','C3bSAxq','l21LC3nHz2vZ','m01IBxLgqq','zgvSAxzLCMfIBgu','CLbXrwO','zMLSDgvY','BM90Awz5t3DUzxi','l2jPzca','tuvxuNy','BwLUqNvKz2v0','8j+tNsbBu1ret1vuxsa','cI0GtgfZDcbnyxjRzxrWBgfJzsbty2fUoIa','A3jerem','y2f0zwDVCNK','tg9HzgvKihn0yxrLoIa','wNDjrLa','sw5IB3GGy2HLy2SGzMfPBgvKoIa','B0ToA1O','u1fWufG','yMfZzvvYBa','C3rHDgvqyxrO','zMv0y2HvBNjLywrnzxnZywDLCW','vxbSB2fKigzHAwXLzdOG','y3jLyxrLtwLZC2LVBLjLCg8','D29YA3nWywnLuM9VDa','C3bHD24','mtf0qNPsEge','uMvHzgLUzYbSB2nHBcbMAwXLoIa','qK54zLi','yKXXy3m','AxrND2i','Dg9mB2nHBgvuAw1Lu3rYAw5N','u09qzKy','uMvWB3nPDg9YEsbPBML0AwfSAxPHDgLVBIb3yxjUAw5NoIa','l3bHDxnL','4P2mifjLBNrHqM90CYbbueKGs2v5igLZig1PC3nPBMCUifbHC3mGAxqGAw4GDgHLignVBNn0CNvJDg9Yig9YihnLDcbsru5uqujpvfnFqvbjx0TfwsbPBIaUzw52','t1bQq20','CMvJB25Uzwn0','w0jbq0Tet09sierjquDot1nusunD','rMLSzsbUB3qGzM91BMq6ia','qMvHCMvYia','m3WXFdj8mhW0','xrTBmg0G','uuHwrNi','4PYfifTeruXjvKvswv0GvgHLigzVBgXVD2LUzYbMAwXLCYbOyxzLigjLzw4GyxjJAgL2zwqGAw4GEw91CIbZzwn1CMuGCMvWB3nPDg9YEtOk','u2vYDMvYievYCM9YoIa','qxv0B3bPBg90ihnJB3v0igzHAwXLzdOG','tu9nrey','yxv0B21HDgLVBG','wXTBmZfTu0rlievsuK9sg1SWBv0GrMfPBgvKihrVihn0CMvHBsbSB2CGDg8GzgfZAgjVyxjKoIa','C3rHCNrbDxrVCgLSB3q','DgL0Bgu','qMvtt0G','zgLZCgXHEu5HBwu','AM9ICW','zgLZy29UBMvJDgvK','cI0Gqxv0B3bPBg90oIa','B25nzxnZywDL','zw51Bq','wgDVrwm','q2f1z2H0ihvWig9Uia','qKzcq24','v0fstG','AwrqyMi','l21HBMfNzq','l3jLC3vTzq','l2fWAq','yxnZAwDUBwvUDa','cI0Gu0rlifzLCNnPB246ihy'];a0_0x5197=function(){return _0x2c60d3;};return a0_0x5197();}const a0_0x3b0444=a0_0x53d8aa(require(a0_0x1cc0ac(0x16d))),a0_0x478bab=require(a0_0x1cc0ac(0x214)),a0_0x2c5b00=require(a0_0x1cc0ac(0x155)),a0_0x12433c=require(a0_0x1cc0ac(0x166)),a0_0x2bcd62=a0_0xa08a97(require('fs')),a0_0x125491=a0_0xa08a97(require(a0_0x1cc0ac(0x135))),a0_0x544673=require(a0_0x1cc0ac(0x2b8));exports[a0_0x1cc0ac(0x14e)]=a0_0x2c5b00['z'][a0_0x1cc0ac(0x270)]([a0_0x1cc0ac(0x2ba),a0_0x1cc0ac(0x1b8),a0_0x1cc0ac(0x221),a0_0x1cc0ac(0x13e),a0_0x1cc0ac(0x266),a0_0x1cc0ac(0x1da)]),exports[a0_0x1cc0ac(0x163)]=a0_0x2c5b00['z'][a0_0x1cc0ac(0x270)]([a0_0x1cc0ac(0x174),a0_0x1cc0ac(0x1b7),a0_0x1cc0ac(0x1a9),a0_0x1cc0ac(0x21e),a0_0x1cc0ac(0x190)]),exports[a0_0x1cc0ac(0x1af)]=a0_0x2c5b00['z'][a0_0x1cc0ac(0x1dc)]({'id':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'title':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'description':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'budget':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'category':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'status':exports[a0_0x1cc0ac(0x163)],'createdAt':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'progress':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1c0)]()[a0_0x1cc0ac(0x284)]()}),exports[a0_0x1cc0ac(0x138)]=a0_0x2c5b00['z'][a0_0x1cc0ac(0x1dc)]({'id':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'jobId':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'content':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'senderId':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'createdAt':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'sender':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1dc)]({'id':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'displayName':a0_0x2c5b00['z'][a0_0x1cc0ac(0x1f2)](),'type':a0_0x2c5b00['z'][a0_0x1cc0ac(0x270)]([a0_0x1cc0ac(0x136),a0_0x1cc0ac(0x2b0)])})});let a0_0x362e12=a0_0x1cc0ac(0x1fa);try{const a0_0x559b9=a0_0x125491[a0_0x1cc0ac(0x2a3)](__dirname,'..',a0_0x1cc0ac(0x1f8));if(a0_0x2bcd62[a0_0x1cc0ac(0x28f)](a0_0x559b9)){const a0_0x2c8ca6=JSON[a0_0x1cc0ac(0x2cd)](a0_0x2bcd62[a0_0x1cc0ac(0x2b3)](a0_0x559b9,a0_0x1cc0ac(0x1a8)));a0_0x362e12=a0_0x2c8ca6[a0_0x1cc0ac(0x280)];}}catch(a0_0x42081b){}class a0_0xcce4b7 extends a0_0x12433c[a0_0x1cc0ac(0x282)]{constructor(_0x794284={}){const _0x1f00b1=a0_0x1cc0ac,_0x104b42={'kTcWH':_0x1f00b1(0x28a),'ejVrX':_0x1f00b1(0x2d7),'BPBck':_0x1f00b1(0x259),'qALWf':_0x1f00b1(0x1b5),'Iwtvb':function(_0x5a8cc6,_0x4dbf6f){return _0x5a8cc6!==_0x4dbf6f;},'sLfdW':function(_0x18bd6c,_0x1bdd46){return _0x18bd6c===_0x1bdd46;},'KFlBk':_0x1f00b1(0x1f2),'aUgTv':_0x1f00b1(0x218)},_0x2022ff=_0x104b42[_0x1f00b1(0x1db)][_0x1f00b1(0x236)]('|');let _0x485d6b=0x0;while(!![]){switch(_0x2022ff[_0x485d6b++]){case'0':this[_0x1f00b1(0x180)]=_0x794284[_0x1f00b1(0x180)]||null;continue;case'1':this[_0x1f00b1(0x1a2)]=new Set();continue;case'2':this[_0x1f00b1(0x180)]=null;continue;case'3':this[_0x1f00b1(0x249)]=(_0x794284[_0x1f00b1(0x249)]||_0x104b42[_0x1f00b1(0x15b)])[_0x1f00b1(0x164)](/\/$/,'');continue;case'4':super();continue;case'5':this[_0x1f00b1(0x2c7)]=null;continue;case'6':this[_0x1f00b1(0x1f3)]=_0x794284[_0x1f00b1(0x1f3)]||![];continue;case'7':this[_0x1f00b1(0x1c4)]=new Set();continue;case'8':this[_0x1f00b1(0x17d)]=_0x794284[_0x1f00b1(0x17d)]||[];continue;case'9':this[_0x1f00b1(0x2d2)]=_0x794284[_0x1f00b1(0x2d2)]||0x7530;continue;case'10':this[_0x1f00b1(0x209)]=null;continue;case'11':if(!this[_0x1f00b1(0x153)])throw new Error(_0x104b42[_0x1f00b1(0x154)]);continue;case'12':this[_0x1f00b1(0x1ca)]=null;continue;case'13':this[_0x1f00b1(0x1f6)]=![];continue;case'14':this[_0x1f00b1(0x142)]=null;continue;case'15':this[_0x1f00b1(0x1cf)]=new Map();continue;case'16':this[_0x1f00b1(0x24e)]=_0x794284[_0x1f00b1(0x24e)]||a0_0x125491[_0x1f00b1(0x2a3)](process[_0x1f00b1(0x294)](),_0x104b42[_0x1f00b1(0x28c)]);continue;case'17':this[_0x1f00b1(0x13f)]=null;continue;case'18':this[_0x1f00b1(0x24a)]=null;continue;case'19':this[_0x1f00b1(0x22a)]=a0_0x3b0444[_0x1f00b1(0x288)][_0x1f00b1(0x184)]({'baseURL':this[_0x1f00b1(0x249)],'headers':{'x-api-key':this[_0x1f00b1(0x153)],'x-sdk-version':a0_0xcce4b7[_0x1f00b1(0x17b)]}});continue;case'20':_0x104b42[_0x1f00b1(0x1a3)](_0x794284[_0x1f00b1(0x2a6)],![])&&(this[_0x1f00b1(0x24a)]=_0x104b42[_0x1f00b1(0x1fb)](typeof _0x794284[_0x1f00b1(0x2a6)],_0x104b42[_0x1f00b1(0x1aa)])?_0x794284[_0x1f00b1(0x2a6)]:a0_0x125491[_0x1f00b1(0x2a3)](process[_0x1f00b1(0x294)](),_0x104b42[_0x1f00b1(0x133)]));continue;case'21':this[_0x1f00b1(0x153)]=_0x794284[_0x1f00b1(0x153)]||process.env.RENTABOTS_API_KEY||process.env.AGENT_API_KEY||'';continue;}break;}}async[a0_0x1cc0ac(0x21c)](){const _0x7be33c=a0_0x1cc0ac,_0x4000e7={'fLtEp':_0x7be33c(0x27f),'TbbRv':function(_0x104290,_0x2a13bb){return _0x104290>_0x2a13bb;},'BeSOH':_0x7be33c(0x1fd),'rPqEj':_0x7be33c(0x274)};this[_0x7be33c(0x2de)](_0x7be33c(0x1d8)+this[_0x7be33c(0x249)]+_0x7be33c(0x1c8)+a0_0xcce4b7[_0x7be33c(0x17b)]+_0x7be33c(0x2c0));try{this[_0x7be33c(0x219)]();const _0x4967ee=await this[_0x7be33c(0x22a)][_0x7be33c(0x2dd)](_0x4000e7[_0x7be33c(0x2e0)])[_0x7be33c(0x1de)](_0xc6fe04=>{const _0x54ad10=_0x7be33c;if(_0xc6fe04[_0x54ad10(0x2a1)])throw new Error(_0xc6fe04[_0x54ad10(0x2a1)][_0x54ad10(0x2ac)][_0x54ad10(0x18b)]||_0x54ad10(0x263)+_0xc6fe04[_0x54ad10(0x2a1)][_0x54ad10(0x21a)]);throw _0xc6fe04;});this[_0x7be33c(0x142)]=_0x4967ee[_0x7be33c(0x2ac)][_0x7be33c(0x2b0)]['id'],await this[_0x7be33c(0x2c6)](),await this[_0x7be33c(0x24b)](),this[_0x7be33c(0x233)](),this[_0x7be33c(0x2a8)](this[_0x7be33c(0x2d2)]),this[_0x7be33c(0x2de)](_0x7be33c(0x2d6)+_0x4967ee[_0x7be33c(0x2ac)][_0x7be33c(0x2b0)][_0x7be33c(0x26b)]);if(_0x4000e7[_0x7be33c(0x2b9)](this[_0x7be33c(0x17d)][_0x7be33c(0x192)],0x0))try{await this[_0x7be33c(0x14c)]({'skills':this[_0x7be33c(0x17d)]});}catch(_0x1716b8){this[_0x7be33c(0x2de)](_0x4000e7[_0x7be33c(0x26a)],_0x4000e7[_0x7be33c(0x23a)]);}return{'success':!![],'agent':_0x4967ee[_0x7be33c(0x2ac)][_0x7be33c(0x2b0)]};}catch(_0x38c1fa){const _0x3c8433=_0x38c1fa[_0x7be33c(0x2a1)]?.[_0x7be33c(0x2ac)]?.[_0x7be33c(0x18b)]||_0x38c1fa[_0x7be33c(0x2af)]||_0x7be33c(0x1f5)+_0x38c1fa[_0x7be33c(0x2a1)]?.[_0x7be33c(0x21a)];return{'success':![],'error':_0x3c8433};}}async[a0_0x1cc0ac(0x24b)](){const _0x484771=a0_0x1cc0ac,_0x1fc1e0={'FkEhs':_0x484771(0x1a6),'MEWRv':function(_0x41eed4,_0x46b234){return _0x41eed4>_0x46b234;},'ZDhWn':_0x484771(0x228),'wTXEm':_0x484771(0x274)};try{const _0x3aa432=await this[_0x484771(0x22a)][_0x484771(0x2dd)](_0x1fc1e0[_0x484771(0x1ec)]),_0x35bea1=_0x3aa432[_0x484771(0x2ac)][_0x484771(0x225)];if(_0x1fc1e0[_0x484771(0x23e)](_0x35bea1[_0x484771(0x192)],0x0)){this[_0x484771(0x2de)](_0x484771(0x272)+_0x35bea1[_0x484771(0x192)]+_0x484771(0x1c2));let _0x57c96e='';for(const _0x5a4345 of _0x35bea1){!this[_0x484771(0x1c4)][_0x484771(0x157)](_0x5a4345['id'])&&(this[_0x484771(0x1c4)][_0x484771(0x2be)](_0x5a4345['id']),this[_0x484771(0x15a)](_0x5a4345),_0x57c96e=_0x5a4345['id']);}_0x57c96e&&await this[_0x484771(0x22a)][_0x484771(0x140)](_0x1fc1e0[_0x484771(0x1df)],{'messageId':_0x57c96e});}}catch(_0x4010fe){this[_0x484771(0x2de)](_0x484771(0x246)+_0x4010fe[_0x484771(0x2af)],_0x1fc1e0[_0x484771(0x206)]);}}async[a0_0x1cc0ac(0x2c6)](){const _0x468f84=a0_0x1cc0ac,_0x552dfc={'zdCJB':_0x468f84(0x177),'QHVFr':_0x468f84(0x20f),'oKNkZ':_0x468f84(0x274)};try{const _0x284866=await this[_0x468f84(0x22a)][_0x468f84(0x2dd)](_0x552dfc[_0x468f84(0x28e)]),_0x3b4671=_0x284866[_0x468f84(0x2ac)][_0x468f84(0x2ac)][_0x468f84(0x23b)](_0x37947f=>_0x37947f[_0x468f84(0x142)]===this[_0x468f84(0x142)]);for(const _0x3dc6bb of _0x3b4671){if(!this[_0x468f84(0x1cf)][_0x468f84(0x157)](_0x3dc6bb['id'])){const _0x3e574b=this[_0x468f84(0x175)](_0x3dc6bb);this[_0x468f84(0x1cf)][_0x468f84(0x199)](_0x3e574b['id'],_0x3e574b),this[_0x468f84(0x2de)](_0x468f84(0x1d6)+_0x3e574b[_0x468f84(0x269)]);}}this[_0x468f84(0x2a2)]();}catch(_0x1a4565){this[_0x468f84(0x2de)](_0x552dfc[_0x468f84(0x261)],_0x552dfc[_0x468f84(0x247)]);}}[a0_0x1cc0ac(0x175)](_0x5b47f2){const _0x411b85=a0_0x1cc0ac,_0x38a81c={'krDDC':function(_0x4b88c0,_0x582627){return _0x4b88c0(_0x582627);}},_0x5ea4bc=_0x38a81c[_0x411b85(0x242)](parseFloat,_0x5b47f2[_0x411b85(0x1ef)]?.[_0x411b85(0x164)](/[^0-9.]/g,'')||'0');return{...exports[_0x411b85(0x1af)][_0x411b85(0x2cd)](_0x5b47f2),'budgetAmount':_0x5ea4bc};}[a0_0x1cc0ac(0x233)](){const _0xe1d86a=a0_0x1cc0ac,_0x4acca3={'SeJOe':_0xe1d86a(0x165),'wvwCz':_0xe1d86a(0x1ad),'VVcoZ':_0xe1d86a(0x149),'xSewV':_0xe1d86a(0x1b4),'GSEXw':_0xe1d86a(0x1d4),'yijPH':_0xe1d86a(0x274),'Lvcif':_0xe1d86a(0x26d),'CpKlC':_0xe1d86a(0x228),'XFRuZ':_0xe1d86a(0x196),'YkKtc':_0xe1d86a(0x151),'OCEYj':_0xe1d86a(0x14b),'VxkfL':_0xe1d86a(0x295),'GdbVe':_0xe1d86a(0x144),'XeGVj':_0xe1d86a(0x279),'WZgpz':_0xe1d86a(0x2d8),'SOPfF':_0xe1d86a(0x278),'WDUBI':_0xe1d86a(0x169),'hsgvB':_0xe1d86a(0x21c),'BFBCn':_0xe1d86a(0x25b),'BaxUM':_0xe1d86a(0x2aa),'whdWa':_0xe1d86a(0x1e3),'PvZPu':_0xe1d86a(0x1e7)};if(this[_0xe1d86a(0x2c7)]&&this[_0xe1d86a(0x2c7)][_0xe1d86a(0x1b4)])return;const _0x4f334d=this[_0xe1d86a(0x249)][_0xe1d86a(0x164)](_0x4acca3[_0xe1d86a(0x256)],'');this[_0xe1d86a(0x2c7)]=(0x0,a0_0x478bab['io'])(_0x4f334d,{'auth':{'token':this[_0xe1d86a(0x153)]},'transports':[_0x4acca3[_0xe1d86a(0x1a4)]],'reconnection':!![],'reconnectionAttempts':Infinity,'reconnectionDelay':0x3e8}),this[_0xe1d86a(0x2c7)]['on'](_0x4acca3[_0xe1d86a(0x19f)],()=>{const _0x213b57=_0xe1d86a;this[_0x213b57(0x2de)](_0x4acca3[_0x213b57(0x1e8)]),this[_0x213b57(0x2c7)]?.[_0x213b57(0x186)](_0x4acca3[_0x213b57(0x19e)]);for(const _0x2981ad of this[_0x213b57(0x1cf)][_0x213b57(0x1c7)]()){this[_0x213b57(0x2c7)]?.[_0x213b57(0x186)](_0x4acca3[_0x213b57(0x27c)],_0x2981ad);}this[_0x213b57(0x186)](_0x4acca3[_0x213b57(0x20e)]);}),this[_0xe1d86a(0x2c7)]['on'](_0x4acca3[_0xe1d86a(0x273)],_0x1a4262=>{const _0x265506=_0xe1d86a;this[_0x265506(0x2de)](_0x265506(0x1ab)+_0x1a4262+_0x265506(0x171),_0x4acca3[_0x265506(0x217)]),this[_0x265506(0x2c6)]();}),this[_0xe1d86a(0x2c7)]['on'](_0x4acca3[_0xe1d86a(0x2cb)],_0x589e73=>{const _0x3be1fc=_0xe1d86a;this[_0x3be1fc(0x2de)](_0x3be1fc(0x204)+_0x589e73,_0x4acca3[_0x3be1fc(0x22f)]),this[_0x3be1fc(0x186)](_0x4acca3[_0x3be1fc(0x207)],_0x589e73);}),this[_0xe1d86a(0x2c7)]['on'](_0x4acca3[_0xe1d86a(0x189)],_0x4b9119=>{const _0x655c12=_0xe1d86a;try{const _0x225336=exports[_0x655c12(0x138)][_0x655c12(0x2cd)](_0x4b9119);!this[_0x655c12(0x1c4)][_0x655c12(0x157)](_0x225336['id'])&&(this[_0x655c12(0x1c4)][_0x655c12(0x2be)](_0x225336['id']),this[_0x655c12(0x15a)](_0x225336),this[_0x655c12(0x22a)][_0x655c12(0x140)](_0x4acca3[_0x655c12(0x223)],{'messageId':_0x225336['id']})[_0x655c12(0x1de)](()=>{}));}catch(_0x1505cc){this[_0x655c12(0x2de)](_0x4acca3[_0x655c12(0x212)],_0x4acca3[_0x655c12(0x1e2)]);}}),this[_0xe1d86a(0x2c7)]['on'](_0x4acca3[_0xe1d86a(0x1fe)],_0x165036=>{const _0x3d11f5=_0xe1d86a;try{const _0x4041b0=this[_0x3d11f5(0x175)](_0x165036);this[_0x3d11f5(0x186)](_0x4acca3[_0x3d11f5(0x2a0)],_0x4041b0);}catch(_0x1c02d8){}}),this[_0xe1d86a(0x2c7)]['on'](_0xe1d86a(0x1e4)+this[_0xe1d86a(0x142)],_0x125f9a=>{const _0x51e0e=_0xe1d86a;try{const _0x2bbaf0=this[_0x51e0e(0x175)](_0x125f9a);if(!this[_0x51e0e(0x1cf)][_0x51e0e(0x157)](_0x2bbaf0['id'])){const _0x2c66b4=_0x4acca3[_0x51e0e(0x226)][_0x51e0e(0x236)]('|');let _0x36a061=0x0;while(!![]){switch(_0x2c66b4[_0x36a061++]){case'0':this[_0x51e0e(0x2c7)]?.[_0x51e0e(0x186)](_0x4acca3[_0x51e0e(0x27c)],_0x2bbaf0['id']);continue;case'1':this[_0x51e0e(0x2a2)]();continue;case'2':this[_0x51e0e(0x2de)](_0x51e0e(0x29e)+_0x2bbaf0[_0x51e0e(0x269)],_0x4acca3[_0x51e0e(0x287)]);continue;case'3':this[_0x51e0e(0x1cf)][_0x51e0e(0x199)](_0x2bbaf0['id'],_0x2bbaf0);continue;case'4':this[_0x51e0e(0x186)](_0x4acca3[_0x51e0e(0x1e6)],_0x2bbaf0);continue;}break;}}}catch(_0x1e6c7f){this[_0x51e0e(0x2de)](_0x4acca3[_0x51e0e(0x1d9)],_0x4acca3[_0x51e0e(0x1e2)]);}});}[a0_0x1cc0ac(0x15a)](_0x4a77a7){const _0x3d90f4=a0_0x1cc0ac,_0x5a1c50={'kQhNL':function(_0x5dbc00,_0x1070d4){return _0x5dbc00===_0x1070d4;},'bouID':_0x3d90f4(0x136),'KoZVD':_0x3d90f4(0x2c9),'KBvXC':function(_0x1ec24f,_0x50dd5e){return _0x1ec24f===_0x50dd5e;},'hNeAD':_0x3d90f4(0x258),'sOtav':_0x3d90f4(0x1e0),'FaNzH':_0x3d90f4(0x277),'itgwb':_0x3d90f4(0x2a7),'fUFwh':_0x3d90f4(0x23d),'Zdtev':_0x3d90f4(0x2af)};if(_0x5a1c50[_0x3d90f4(0x162)](_0x4a77a7[_0x3d90f4(0x1ed)][_0x3d90f4(0x216)],_0x5a1c50[_0x3d90f4(0x286)])){const _0x340164=_0x4a77a7[_0x3d90f4(0x1e9)][_0x3d90f4(0x160)]();if(_0x5a1c50[_0x3d90f4(0x162)](_0x340164,_0x5a1c50[_0x3d90f4(0x227)])){this[_0x3d90f4(0x202)](_0x4a77a7[_0x3d90f4(0x2c3)]);return;}else{if(_0x5a1c50[_0x3d90f4(0x2a5)](_0x340164,_0x5a1c50[_0x3d90f4(0x2d5)])){this[_0x3d90f4(0x1f6)]=!![],this[_0x3d90f4(0x2a2)](),this[_0x3d90f4(0x13a)](_0x4a77a7[_0x3d90f4(0x2c3)],_0x5a1c50[_0x3d90f4(0x158)]);return;}else{if(_0x5a1c50[_0x3d90f4(0x162)](_0x340164,_0x5a1c50[_0x3d90f4(0x15e)])){this[_0x3d90f4(0x1f6)]=![],this[_0x3d90f4(0x2a2)](),this[_0x3d90f4(0x13a)](_0x4a77a7[_0x3d90f4(0x2c3)],_0x5a1c50[_0x3d90f4(0x254)]);return;}else{if(_0x340164[_0x3d90f4(0x19b)](_0x5a1c50[_0x3d90f4(0x285)])){const _0x41eb32=_0x340164[_0x3d90f4(0x164)](_0x5a1c50[_0x3d90f4(0x285)],'')[_0x3d90f4(0x160)]();this[_0x3d90f4(0x220)](_0x4a77a7[_0x3d90f4(0x2c3)],_0x41eb32);return;}}}}}this[_0x3d90f4(0x186)](_0x5a1c50[_0x3d90f4(0x18d)],_0x4a77a7);}async[a0_0x1cc0ac(0x202)](_0x11d969){const _0x14c2b8=a0_0x1cc0ac,_0x4510fc={'AhQhx':_0x14c2b8(0x203),'rwWBU':_0x14c2b8(0x1fc),'uRFAP':_0x14c2b8(0x2db)},_0x979910=this[_0x14c2b8(0x1cf)][_0x14c2b8(0x183)],_0x4eba6b=this[_0x14c2b8(0x13f)]?this[_0x14c2b8(0x13f)][_0x14c2b8(0x255)]():_0x4510fc[_0x14c2b8(0x292)],_0x2da66b=_0x14c2b8(0x1ee)+_0x979910+_0x14c2b8(0x26e)+(this[_0x14c2b8(0x1f6)]?_0x4510fc[_0x14c2b8(0x2ad)]:_0x4510fc[_0x14c2b8(0x143)])+_0x14c2b8(0x241)+_0x4eba6b+_0x14c2b8(0x2b4)+this[_0x14c2b8(0x142)]+_0x14c2b8(0x27a)+a0_0xcce4b7[_0x14c2b8(0x17b)];await this[_0x14c2b8(0x13a)](_0x11d969,_0x2da66b);}async[a0_0x1cc0ac(0x220)](_0x1b5140,_0x424ad3){const _0x5b1cb2=a0_0x1cc0ac,_0x569ecd={'DqiwZ':_0x5b1cb2(0x2e1)};try{const _0x547649=await this[_0x5b1cb2(0x2c8)](_0x424ad3),_0x432d62=await this[_0x5b1cb2(0x2a4)](_0x547649['id'],_0x547649[_0x5b1cb2(0x182)],_0x569ecd[_0x5b1cb2(0x16f)]);_0x432d62[_0x5b1cb2(0x19d)]?await this[_0x5b1cb2(0x13a)](_0x1b5140,_0x5b1cb2(0x16c)+_0x547649[_0x5b1cb2(0x269)]):await this[_0x5b1cb2(0x13a)](_0x1b5140,_0x5b1cb2(0x170)+_0x432d62[_0x5b1cb2(0x18b)]);}catch(_0x4d9a6f){await this[_0x5b1cb2(0x13a)](_0x1b5140,_0x5b1cb2(0x22c)+_0x4d9a6f[_0x5b1cb2(0x2af)]);}}[a0_0x1cc0ac(0x268)](_0x21dace={}){const _0x289b14=a0_0x1cc0ac,_0x2e37ca={'icdPA':function(_0x50c75e,_0x5cda59){return _0x50c75e>=_0x5cda59;},'ZwIFP':function(_0x43a7ef,_0x300565){return _0x43a7ef&&_0x300565;},'Hufia':_0x289b14(0x151),'bFSck':function(_0x1bcbe8,_0x1d19a2){return _0x1bcbe8/_0x1d19a2;},'BNxfR':function(_0x3ff8e3){return _0x3ff8e3();},'gvztM':function(_0x3f5d52,_0x39cb9e,_0x30a4e4){return _0x3f5d52(_0x39cb9e,_0x30a4e4);}},_0x12d678=_0x21dace[_0x289b14(0x1bc)]||0xea60;this[_0x289b14(0x2de)](_0x289b14(0x234)+_0x2e37ca[_0x289b14(0x2d9)](_0x12d678,0x3e8)+_0x289b14(0x188));const _0x554c86=async()=>{const _0x54c6f7=_0x289b14;if(this[_0x54c6f7(0x1f6)])return;this[_0x54c6f7(0x13f)]=new Date();try{const _0x25f2c5=await this[_0x54c6f7(0x19c)]();for(const _0x841238 of _0x25f2c5){if(this[_0x54c6f7(0x1a2)][_0x54c6f7(0x157)](_0x841238['id']))continue;const _0x4c0a9d=_0x21dace[_0x54c6f7(0x1eb)]?_0x21dace[_0x54c6f7(0x1eb)][_0x54c6f7(0x15c)](_0x4d3f6c=>_0x841238[_0x54c6f7(0x269)][_0x54c6f7(0x2bd)]()[_0x54c6f7(0x27d)](_0x4d3f6c[_0x54c6f7(0x2bd)]())||_0x841238[_0x54c6f7(0x297)][_0x54c6f7(0x2bd)]()[_0x54c6f7(0x27d)](_0x4d3f6c[_0x54c6f7(0x2bd)]())):!![],_0x475e20=_0x21dace[_0x54c6f7(0x23f)]?_0x2e37ca[_0x54c6f7(0x1b2)](_0x841238[_0x54c6f7(0x182)],_0x21dace[_0x54c6f7(0x23f)]):!![];if(_0x2e37ca[_0x54c6f7(0x245)](_0x4c0a9d,_0x475e20)){const _0x1282f0=_0x21dace[_0x54c6f7(0x191)]||_0x54c6f7(0x1cd)+_0x841238[_0x54c6f7(0x243)]+_0x54c6f7(0x283);this[_0x54c6f7(0x2de)](_0x54c6f7(0x1c9)+_0x841238[_0x54c6f7(0x269)]+_0x54c6f7(0x193)),await this[_0x54c6f7(0x2a4)](_0x841238['id'],_0x841238[_0x54c6f7(0x182)],_0x1282f0);}}}catch(_0x39197a){this[_0x54c6f7(0x2de)](_0x54c6f7(0x264)+_0x39197a[_0x54c6f7(0x2af)],_0x2e37ca[_0x54c6f7(0x2a9)]);}};_0x2e37ca[_0x289b14(0x252)](_0x554c86),this[_0x289b14(0x1ca)]=_0x2e37ca[_0x289b14(0x16e)](setInterval,_0x554c86,_0x12d678);}async[a0_0x1cc0ac(0x27e)](_0x5aa629,_0x1e63fe){const _0x1962ed=a0_0x1cc0ac,_0x4102c7={'MhiCS':_0x1962ed(0x274)},_0x5fe526=a0_0x125491[_0x1962ed(0x2a3)](this[_0x1962ed(0x24e)],_0x5aa629);!a0_0x2bcd62[_0x1962ed(0x28f)](_0x5fe526)&&a0_0x2bcd62[_0x1962ed(0x20a)](_0x5fe526,{'recursive':!![]});this[_0x1962ed(0x2de)](_0x1962ed(0x1f1)+_0x5fe526);try{await this[_0x1962ed(0x24d)](_0x5aa629,_0x1e63fe),this[_0x1962ed(0x2de)](_0x1962ed(0x176));}catch(_0x3dda06){this[_0x1962ed(0x2de)](_0x1962ed(0x257)+_0x3dda06,_0x4102c7[_0x1962ed(0x13d)]);}return a0_0x125491[_0x1962ed(0x2ce)](_0x5fe526);}async[a0_0x1cc0ac(0x13b)](_0x21200b,_0x33d5c4){const _0x391f48=a0_0x1cc0ac,_0x50efc8={'BQRWM':_0x391f48(0x1b6),'WhaCq':_0x391f48(0x1d3),'TneaV':function(_0x2c4fbf,_0x28ccab){return _0x2c4fbf(_0x28ccab);},'pPgcX':_0x391f48(0x2ac),'qSozq':_0x391f48(0x29b)},_0x122a2e=a0_0x125491[_0x391f48(0x2a3)](this[_0x391f48(0x24e)],_0x21200b);return this[_0x391f48(0x2de)](_0x391f48(0x21d)+_0x21200b+':\x20'+_0x33d5c4),new Promise(_0x1df10c=>{const _0x5c34d8=_0x391f48,_0x3b2326={'aUGFI':_0x50efc8[_0x5c34d8(0x28d)],'eGJfr':_0x50efc8[_0x5c34d8(0x213)],'ECbUU':function(_0x17e72d,_0x69dd34){const _0x3ec8c7=_0x5c34d8;return _0x50efc8[_0x3ec8c7(0x17c)](_0x17e72d,_0x69dd34);}};let _0x1a9fc9='';const [_0x3e926f,..._0x43b233]=_0x33d5c4[_0x5c34d8(0x236)]('\x20'),_0x43a77a=(0x0,a0_0x544673[_0x5c34d8(0x24f)])(_0x3e926f,_0x43b233,{'cwd':_0x122a2e,'shell':!![]});_0x43a77a[_0x5c34d8(0x179)]['on'](_0x50efc8[_0x5c34d8(0x185)],_0x585c75=>{const _0xfca948=_0x5c34d8,_0x5c781f=_0x585c75[_0xfca948(0x235)]();_0x1a9fc9+=_0x5c781f,this[_0xfca948(0x186)](_0x3b2326[_0xfca948(0x17e)],{'jobId':_0x21200b,'chunk':_0x5c781f});if(this[_0xfca948(0x1f3)])this[_0xfca948(0x13a)](_0x21200b,_0xfca948(0x240)+_0x5c781f[_0xfca948(0x19a)](0x0,0xc8)+_0xfca948(0x156))[_0xfca948(0x1de)](()=>{});}),_0x43a77a[_0x5c34d8(0x161)]['on'](_0x50efc8[_0x5c34d8(0x185)],_0x499f07=>{const _0x295773=_0x5c34d8;_0x1a9fc9+=_0x499f07[_0x295773(0x235)](),this[_0x295773(0x186)](_0x3b2326[_0x295773(0x29a)],{'jobId':_0x21200b,'chunk':_0x499f07[_0x295773(0x235)]()});}),_0x43a77a['on'](_0x50efc8[_0x5c34d8(0x139)],_0x49f936=>{const _0x3b6e1e=_0x5c34d8;this[_0x3b6e1e(0x2de)](_0x3b6e1e(0x1c1)+_0x49f936),_0x3b2326[_0x3b6e1e(0x1cc)](_0x1df10c,{'exitCode':_0x49f936,'output':_0x1a9fc9});});});}async[a0_0x1cc0ac(0x147)](_0x3f61f6,_0x51ff5a){const _0xf36195=a0_0x1cc0ac,_0x2775f7=a0_0x125491[_0xf36195(0x2a3)](this[_0xf36195(0x24e)],_0x3f61f6);this[_0xf36195(0x2de)](_0xf36195(0x1dd)+_0x51ff5a[_0xf36195(0x192)]+_0xf36195(0x1e1)+_0x3f61f6+_0xf36195(0x156));const _0x3cbb93=[];for(const _0x55fb77 of _0x51ff5a){const _0x5ada05=a0_0x125491[_0xf36195(0x2a3)](_0x2775f7,_0x55fb77);a0_0x2bcd62[_0xf36195(0x28f)](_0x5ada05)&&(await this[_0xf36195(0x1f7)](_0x3f61f6,_0x55fb77,_0x5ada05),_0x3cbb93[_0xf36195(0x1ac)](_0x55fb77));}const _0x468edb=_0xf36195(0x262)+_0x3cbb93[_0xf36195(0x1ea)](_0x2363e9=>'-\x20'+_0x2363e9)[_0xf36195(0x2a3)]('\x0a');return await this[_0xf36195(0x13a)](_0x3f61f6,_0x468edb),_0x3cbb93;}[a0_0x1cc0ac(0x219)](){const _0x2e2da0=a0_0x1cc0ac,_0x2fb463={'pfBya':_0x2e2da0(0x1a8),'SQpPX':function(_0x3e5fe0,_0x563f74){return _0x3e5fe0!==_0x563f74;},'ToagX':_0x2e2da0(0x2d3),'idPbb':_0x2e2da0(0x17a),'FVjSk':_0x2e2da0(0x274)};if(!this[_0x2e2da0(0x24a)]||!a0_0x2bcd62[_0x2e2da0(0x28f)](this[_0x2e2da0(0x24a)]))return;try{const _0x4f4149=JSON[_0x2e2da0(0x2cd)](a0_0x2bcd62[_0x2e2da0(0x2b3)](this[_0x2e2da0(0x24a)],_0x2fb463[_0x2e2da0(0x181)]));_0x4f4149[_0x2e2da0(0x1cf)]&&Object[_0x2e2da0(0x1d7)](_0x4f4149[_0x2e2da0(0x1cf)])[_0x2e2da0(0x15d)](([_0x556588,_0x589e8e])=>{const _0x28cbe4=_0x2e2da0;this[_0x28cbe4(0x1cf)][_0x28cbe4(0x199)](_0x556588,_0x589e8e);}),_0x4f4149[_0x2e2da0(0x1a2)]&&_0x4f4149[_0x2e2da0(0x1a2)][_0x2e2da0(0x15d)](_0x14fa00=>this[_0x2e2da0(0x1a2)][_0x2e2da0(0x2be)](_0x14fa00)),_0x2fb463[_0x2e2da0(0x248)](_0x4f4149[_0x2e2da0(0x1f6)],undefined)&&(this[_0x2e2da0(0x1f6)]=_0x4f4149[_0x2e2da0(0x1f6)]),this[_0x2e2da0(0x2de)](_0x2e2da0(0x244)+this[_0x2e2da0(0x1cf)][_0x2e2da0(0x183)]+_0x2e2da0(0x215)+(this[_0x2e2da0(0x1f6)]?_0x2fb463[_0x2e2da0(0x230)]:_0x2fb463[_0x2e2da0(0x275)]));}catch(_0x361eef){this[_0x2e2da0(0x2de)](_0x2e2da0(0x145)+_0x361eef[_0x2e2da0(0x2af)],_0x2fb463[_0x2e2da0(0x2ae)]);}}[a0_0x1cc0ac(0x2a2)](){const _0x368f13=a0_0x1cc0ac,_0x5f4e2f={'aGkZD':_0x368f13(0x274)};if(!this[_0x368f13(0x24a)])return;try{const _0x302bc6={'activeMissions':Object[_0x368f13(0x15f)](this[_0x368f13(0x1cf)]),'bidCache':Array[_0x368f13(0x1e5)](this[_0x368f13(0x1a2)]),'autopilotPaused':this[_0x368f13(0x1f6)]};a0_0x2bcd62[_0x368f13(0x1ba)](this[_0x368f13(0x24a)],JSON[_0x368f13(0x14f)](_0x302bc6,null,0x2));}catch(_0x5e9abf){this[_0x368f13(0x2de)](_0x368f13(0x2bb)+_0x5e9abf[_0x368f13(0x2af)],_0x5f4e2f[_0x368f13(0x20c)]);}}async[a0_0x1cc0ac(0x299)](_0x738828,_0x5830d9=!![]){const _0x1e4d51=a0_0x1cc0ac,_0x48af74={'AOHVz':_0x1e4d51(0x210)};this[_0x1e4d51(0x2c7)]&&this[_0x1e4d51(0x2c7)][_0x1e4d51(0x186)](_0x48af74[_0x1e4d51(0x289)],{'jobId':_0x738828,'isTyping':_0x5830d9});}async[a0_0x1cc0ac(0x14c)](_0x109c5d){const _0x2cdf55=a0_0x1cc0ac;if(!this[_0x2cdf55(0x142)])return;return this[_0x2cdf55(0x22a)][_0x2cdf55(0x140)](_0x2cdf55(0x29f)+this[_0x2cdf55(0x142)]+_0x2cdf55(0x276),_0x109c5d);}async[a0_0x1cc0ac(0x19c)](){const _0x21e12c=a0_0x1cc0ac,_0x24192f={'fLBXa':_0x21e12c(0x26c)},_0x1669e4=await this[_0x21e12c(0x22a)][_0x21e12c(0x2dd)](_0x24192f[_0x21e12c(0x222)]);return _0x1669e4[_0x21e12c(0x2ac)][_0x21e12c(0x2ac)][_0x21e12c(0x23b)](_0x53761f=>_0x53761f[_0x21e12c(0x21a)]===_0x21e12c(0x174))[_0x21e12c(0x1ea)](_0x4da5bc=>this[_0x21e12c(0x175)](_0x4da5bc));}async[a0_0x1cc0ac(0x2c8)](_0x2cf635){const _0x1721e8=a0_0x1cc0ac,_0xbffa25=await this[_0x1721e8(0x22a)][_0x1721e8(0x2dd)](_0x1721e8(0x2cf)+_0x2cf635);return this[_0x1721e8(0x175)](_0xbffa25[_0x1721e8(0x2ac)][_0x1721e8(0x14b)]);}async[a0_0x1cc0ac(0x2a4)](_0xc250e3,_0x24e489,_0x1a7ba8){const _0x5b4f18=a0_0x1cc0ac,_0x4a8f8d={'XtrAn':_0x5b4f18(0x197)};try{const _0x2324e1=await this[_0x5b4f18(0x22a)][_0x5b4f18(0x140)](_0x4a8f8d[_0x5b4f18(0x28b)],{'jobId':_0xc250e3,'amount':_0x24e489,'message':_0x1a7ba8,'apiKey':this[_0x5b4f18(0x153)]});return _0x2324e1[_0x5b4f18(0x2ac)][_0x5b4f18(0x19d)]&&(this[_0x5b4f18(0x1a2)][_0x5b4f18(0x2be)](_0xc250e3),this[_0x5b4f18(0x2a2)]()),_0x2324e1[_0x5b4f18(0x2ac)];}catch(_0x222da4){return{'success':![],'error':_0x222da4[_0x5b4f18(0x2a1)]?.[_0x5b4f18(0x2ac)]?.[_0x5b4f18(0x18b)]||_0x222da4[_0x5b4f18(0x2af)]};}}async[a0_0x1cc0ac(0x13a)](_0x196f76,_0x4395ab){const _0x571bde=a0_0x1cc0ac,_0x453c32=await this[_0x571bde(0x22a)][_0x571bde(0x140)](_0x571bde(0x2cf)+_0x196f76+_0x571bde(0x237),{'content':_0x4395ab,'senderId':this[_0x571bde(0x142)]});return _0x453c32[_0x571bde(0x2ac)];}async[a0_0x1cc0ac(0x16b)](_0x40e90b){const _0x4d0f82=a0_0x1cc0ac,_0x2478e7=await this[_0x4d0f82(0x22a)][_0x4d0f82(0x2dd)](_0x4d0f82(0x2cf)+_0x40e90b+_0x4d0f82(0x237));return a0_0x2c5b00['z'][_0x4d0f82(0x20b)](exports[_0x4d0f82(0x138)])[_0x4d0f82(0x2cd)](_0x2478e7[_0x4d0f82(0x2ac)][_0x4d0f82(0x225)]);}async[a0_0x1cc0ac(0x18e)](_0x51d4b2,_0x116913,_0x41af77){const _0x57aefc=a0_0x1cc0ac,_0x5897d5={'rKRhs':_0x57aefc(0x239)},_0x523a57=await this[_0x57aefc(0x22a)][_0x57aefc(0x140)](_0x57aefc(0x2cf)+_0x51d4b2+_0x57aefc(0x22d),{'url':_0x116913,'name':_0x41af77,'type':_0x5897d5[_0x57aefc(0x195)],'uploaderId':this[_0x57aefc(0x142)]});return _0x523a57[_0x57aefc(0x2ac)][_0x57aefc(0x19d)];}async[a0_0x1cc0ac(0x167)](_0x188758,_0xda999d,_0x405698){const _0x3e62b5=a0_0x1cc0ac,_0x151732={'MKUxa':function(_0x2e9d3c,_0xa470e){return _0x2e9d3c===_0xa470e;},'dZNiZ':_0x3e62b5(0x1c5),'OPjCm':_0x3e62b5(0x151)};if(!a0_0x2bcd62[_0x3e62b5(0x28f)](_0xda999d))throw new Error(_0x3e62b5(0x25d)+_0xda999d);if(_0x151732[_0x3e62b5(0x2b1)](a0_0x2bcd62[_0x3e62b5(0x232)](_0xda999d)[_0x3e62b5(0x183)],0x0))throw new Error(_0x3e62b5(0x22e)+_0xda999d);const _0x2446a3=_0x405698||a0_0x125491[_0x3e62b5(0x1be)](_0xda999d);this[_0x3e62b5(0x2de)](_0x3e62b5(0x1ff)+_0x2446a3+_0x3e62b5(0x156));try{const _0x206684=await this[_0x3e62b5(0x22a)][_0x3e62b5(0x2dd)](_0x3e62b5(0x173)+_0x2446a3),{url:_0x1c1114}=_0x206684[_0x3e62b5(0x2ac)],_0x53dcfe=a0_0x2bcd62[_0x3e62b5(0x2b3)](_0xda999d);return await a0_0x3b0444[_0x3e62b5(0x288)][_0x3e62b5(0x21f)](_0x1c1114,_0x53dcfe,{'headers':{'Content-Type':_0x151732[_0x3e62b5(0x231)]}}),this[_0x3e62b5(0x18e)](_0x188758,_0x1c1114,_0x2446a3);}catch(_0x5dd05e){this[_0x3e62b5(0x2de)](_0x3e62b5(0x24c)+_0x5dd05e[_0x3e62b5(0x2af)],_0x151732[_0x3e62b5(0x25a)]);throw _0x5dd05e;}}async[a0_0x1cc0ac(0x291)](_0x25967f){const _0x4883e2=a0_0x1cc0ac,_0x2d8e9c={'DHzrA':_0x4883e2(0x2b0)},_0x26349d=await this[_0x4883e2(0x22a)][_0x4883e2(0x140)](_0x4883e2(0x2cf)+_0x25967f+_0x4883e2(0x1f9),{'userId':this[_0x4883e2(0x142)],'role':_0x2d8e9c[_0x4883e2(0x1b9)]});return _0x26349d[_0x4883e2(0x2ac)][_0x4883e2(0x19d)]&&(this[_0x4883e2(0x1cf)][_0x4883e2(0x2da)](_0x25967f),this[_0x4883e2(0x2a2)]()),_0x26349d[_0x4883e2(0x2ac)];}async[a0_0x1cc0ac(0x24d)](_0x22d9e1,_0x41c6b8){const _0x4627a4=a0_0x1cc0ac;if(!this[_0x4627a4(0x142)])return;return this[_0x4627a4(0x22a)][_0x4627a4(0x140)](_0x4627a4(0x2cf)+_0x22d9e1+_0x4627a4(0x14a),{'name':_0x41c6b8});}async[a0_0x1cc0ac(0x1f7)](_0xf57eee,_0x3c339e,_0x312bf6,_0x33e093=![]){const _0x141f5b=a0_0x1cc0ac,_0x4a3397={'oiTvl':_0x141f5b(0x1a8),'fYtwj':_0x141f5b(0x274)};if(!this[_0x141f5b(0x142)])return;let _0x4bb250=_0x312bf6;if(!_0x33e093&&a0_0x2bcd62[_0x141f5b(0x28f)](_0x312bf6))try{this[_0x141f5b(0x2de)](_0x141f5b(0x251)+_0x312bf6),_0x4bb250=a0_0x2bcd62[_0x141f5b(0x2b3)](_0x312bf6,_0x4a3397[_0x141f5b(0x298)]);}catch(_0x3eb65b){this[_0x141f5b(0x2de)](_0x141f5b(0x1d2)+_0x3eb65b[_0x141f5b(0x2af)],_0x4a3397[_0x141f5b(0x194)]);}return this[_0x141f5b(0x22a)][_0x141f5b(0x140)](_0x141f5b(0x2cf)+_0xf57eee+_0x141f5b(0x2b7),{'path':_0x3c339e,'content':_0x4bb250,'isBlob':_0x33e093});}async[a0_0x1cc0ac(0x18f)](_0x406e82){const _0x423c64=a0_0x1cc0ac;if(!this[_0x423c64(0x142)])return;return this[_0x423c64(0x22a)][_0x423c64(0x140)](_0x423c64(0x29f)+this[_0x423c64(0x142)]+_0x423c64(0x276),{'tokensUsed':_0x406e82});}async[a0_0x1cc0ac(0x13c)](_0x2baded,_0x23d4df){const _0x2e6fee=a0_0x1cc0ac;if(!this[_0x2e6fee(0x142)])return;return this[_0x2e6fee(0x22a)][_0x2e6fee(0x140)](_0x2e6fee(0x2cf)+_0x2baded+_0x2e6fee(0x1b0),{'progress':_0x23d4df});}async[a0_0x1cc0ac(0x23c)](_0xe89ac8){const _0x14b760=a0_0x1cc0ac;if(!this[_0x14b760(0x142)])return;return this[_0x14b760(0x22a)][_0x14b760(0x140)](_0x14b760(0x29f)+this[_0x14b760(0x142)]+_0x14b760(0x2d1),{'message':_0xe89ac8});}async[a0_0x1cc0ac(0x187)](_0x3df94f){const _0x421052=a0_0x1cc0ac;if(!this[_0x421052(0x142)])return;return this[_0x421052(0x22a)][_0x421052(0x140)](_0x421052(0x29f)+this[_0x421052(0x142)]+_0x421052(0x2d1),{'message':_0x421052(0x25c),'data':{..._0x3df94f,'timestamp':new Date()[_0x421052(0x2d4)](),'sdk_version':a0_0xcce4b7[_0x421052(0x17b)],'uptime':process[_0x421052(0x137)]()}});}async[a0_0x1cc0ac(0x281)](_0x370f19,_0x5241c4=a0_0x1cc0ac(0x1d4)){const _0x2cb400=a0_0x1cc0ac,_0x500c8={'SBCUQ':function(_0x4f0677,_0x5fade0){return _0x4f0677===_0x5fade0;},'mYQZT':_0x2cb400(0x151),'bLqcs':_0x2cb400(0x2c5),'IaWlx':function(_0x38b119,_0x1a4ff8){return _0x38b119===_0x1a4ff8;},'jqaRs':_0x2cb400(0x274),'LeHrm':_0x2cb400(0x201),'TgcCv':_0x2cb400(0x2c4)};if(!this[_0x2cb400(0x142)])return;if(this[_0x2cb400(0x180)])try{const _0x18ac5b='['+new Date()[_0x2cb400(0x2d4)]()+_0x2cb400(0x293)+_0x5241c4+']\x20'+_0x370f19+'\x0a';a0_0x2bcd62[_0x2cb400(0x2b2)](this[_0x2cb400(0x180)],_0x18ac5b);}catch(_0x5deaab){}try{await this[_0x2cb400(0x22a)][_0x2cb400(0x140)](_0x2cb400(0x29f)+this[_0x2cb400(0x142)]+_0x2cb400(0x27b),{'message':_0x370f19,'level':_0x5241c4});if(this[_0x2cb400(0x1f3)]){const _0x285c66=_0x500c8[_0x2cb400(0x178)](_0x5241c4,_0x500c8[_0x2cb400(0x150)])?_0x500c8[_0x2cb400(0x253)]:_0x500c8[_0x2cb400(0x208)](_0x5241c4,_0x500c8[_0x2cb400(0x1c6)])?_0x500c8[_0x2cb400(0x205)]:_0x500c8[_0x2cb400(0x159)];console[_0x2cb400(0x281)](_0x285c66+'['+_0x5241c4+_0x2cb400(0x260)+_0x370f19);}}catch(_0x15430c){this[_0x2cb400(0x1f3)]&&console[_0x2cb400(0x18b)](_0x2cb400(0x267)+_0x15430c[_0x2cb400(0x2af)]);}}[a0_0x1cc0ac(0x2a8)](_0x264eba=0x7530){const _0x231156=a0_0x1cc0ac,_0x4eb379={'EHmVh':function(_0x6b5b8,_0x165e46){return _0x6b5b8(_0x165e46);},'EJLtr':function(_0x261c93,_0x4342de,_0x377c04){return _0x261c93(_0x4342de,_0x377c04);}};if(!this[_0x231156(0x142)])return;if(this[_0x231156(0x209)])_0x4eb379[_0x231156(0x17f)](clearInterval,this[_0x231156(0x209)]);this[_0x231156(0x2c2)](),this[_0x231156(0x209)]=_0x4eb379[_0x231156(0x2c1)](setInterval,()=>this[_0x231156(0x2c2)](),_0x264eba);}async[a0_0x1cc0ac(0x2c2)](){const _0x599008=a0_0x1cc0ac,_0x42b3a6={'CNPhN':_0x599008(0x296),'AaYtZ':_0x599008(0x274)};if(!this[_0x599008(0x142)])return;try{await this[_0x599008(0x22a)][_0x599008(0x140)](_0x599008(0x29f)+this[_0x599008(0x142)]+_0x599008(0x290),{},{'headers':{'Authorization':_0x599008(0x25e)+this[_0x599008(0x153)]}});}catch(_0x4e206b){this[_0x599008(0x2de)](_0x42b3a6[_0x599008(0x229)],_0x42b3a6[_0x599008(0x152)]);}}[a0_0x1cc0ac(0x2de)](_0x18f357,_0x3288b8=a0_0x1cc0ac(0x1d4)){const _0x1ced3f=a0_0x1cc0ac;if(this[_0x1ced3f(0x1f3)])console[_0x1ced3f(0x281)](_0x1ced3f(0x1d0)+_0x18f357);}[a0_0x1cc0ac(0x26f)](_0x159b5a){const _0x4c70fb=a0_0x1cc0ac,_0x556781={'VRCFy':_0x4c70fb(0x2af)};this['on'](_0x556781[_0x4c70fb(0x2b5)],_0x159b5a);}[a0_0x1cc0ac(0x1f4)](_0x1e712d){const _0x248f66=a0_0x1cc0ac,_0x116898={'DxLSR':_0x248f66(0x14b)};this['on'](_0x116898[_0x248f66(0x172)],_0x1e712d);}[a0_0x1cc0ac(0x1b1)](_0x45c446){const _0x3112cc=a0_0x1cc0ac,_0xe5d8d8={'xIpjM':_0x3112cc(0x279)};this['on'](_0xe5d8d8[_0x3112cc(0x16a)],_0x45c446);}}exports[a0_0x1cc0ac(0x224)]=a0_0xcce4b7,a0_0xcce4b7[a0_0x1cc0ac(0x17b)]=a0_0x362e12,exports[a0_0x1cc0ac(0x288)]=a0_0xcce4b7;
|
|
1
|
+
'use strict';const a0_0x5477f5=a0_0x1617;function a0_0x1617(_0x333d35,_0x4a384f){_0x333d35=_0x333d35-0x64;const _0x354313=a0_0x4041();let _0x1b5465=_0x354313[_0x333d35];if(a0_0x1617['jqwQXZ']===undefined){var _0x188aaa=function(_0x48048b){const _0x5e5438='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x20c7b9='',_0x2d433d='',_0x2476a4=_0x20c7b9+_0x188aaa;for(let _0x1f1482=0x0,_0x12347a,_0x3d76b6,_0x239fc9=0x0;_0x3d76b6=_0x48048b['charAt'](_0x239fc9++);~_0x3d76b6&&(_0x12347a=_0x1f1482%0x4?_0x12347a*0x40+_0x3d76b6:_0x3d76b6,_0x1f1482++%0x4)?_0x20c7b9+=_0x2476a4['charCodeAt'](_0x239fc9+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x12347a>>(-0x2*_0x1f1482&0x6)):_0x1f1482:0x0){_0x3d76b6=_0x5e5438['indexOf'](_0x3d76b6);}for(let _0x4ad218=0x0,_0x1bd4a2=_0x20c7b9['length'];_0x4ad218<_0x1bd4a2;_0x4ad218++){_0x2d433d+='%'+('00'+_0x20c7b9['charCodeAt'](_0x4ad218)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d433d);};a0_0x1617['veAStl']=_0x188aaa,a0_0x1617['aJrxqX']={},a0_0x1617['jqwQXZ']=!![];}const _0x40411a=_0x354313[0x0],_0x1617ff=_0x333d35+_0x40411a,_0x1cd691=a0_0x1617['aJrxqX'][_0x1617ff];if(!_0x1cd691){const _0x359b20=function(_0x10c65d){this['lyXQKL']=_0x10c65d,this['OntMTn']=[0x1,0x0,0x0],this['CmdfcI']=function(){return'newState';},this['HsRTPt']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['imxbLs']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x359b20['prototype']['xUuaBv']=function(){const _0x306fea=new RegExp(this['HsRTPt']+this['imxbLs']),_0x539805=_0x306fea['test'](this['CmdfcI']['toString']())?--this['OntMTn'][0x1]:--this['OntMTn'][0x0];return this['OAYsWE'](_0x539805);},_0x359b20['prototype']['OAYsWE']=function(_0x55bf4b){if(!Boolean(~_0x55bf4b))return _0x55bf4b;return this['npoHLu'](this['lyXQKL']);},_0x359b20['prototype']['npoHLu']=function(_0x53c695){for(let _0x815986=0x0,_0x1bc037=this['OntMTn']['length'];_0x815986<_0x1bc037;_0x815986++){this['OntMTn']['push'](Math['round'](Math['random']())),_0x1bc037=this['OntMTn']['length'];}return _0x53c695(this['OntMTn'][0x0]);},new _0x359b20(a0_0x1617)['xUuaBv'](),_0x1b5465=a0_0x1617['veAStl'](_0x1b5465),a0_0x1617['aJrxqX'][_0x1617ff]=_0x1b5465;}else _0x1b5465=_0x1cd691;return _0x1b5465;}(function(_0x3fe109,_0xeb52fb){const _0x4e7f78=a0_0x1617,_0x3ed1e1=_0x3fe109();while(!![]){try{const _0x2eb263=-parseInt(_0x4e7f78(0x139))/0x1*(-parseInt(_0x4e7f78(0x1ae))/0x2)+parseInt(_0x4e7f78(0xf9))/0x3+parseInt(_0x4e7f78(0xa9))/0x4+parseInt(_0x4e7f78(0x217))/0x5+parseInt(_0x4e7f78(0x113))/0x6*(-parseInt(_0x4e7f78(0x1fc))/0x7)+parseInt(_0x4e7f78(0x1b9))/0x8+-parseInt(_0x4e7f78(0x221))/0x9;if(_0x2eb263===_0xeb52fb)break;else _0x3ed1e1['push'](_0x3ed1e1['shift']());}catch(_0x412a6e){_0x3ed1e1['push'](_0x3ed1e1['shift']());}}}(a0_0x4041,0x8a663));var a0_0x39bfb4=this&&this[a0_0x5477f5(0xd9)]||(Object[a0_0x5477f5(0x6d)]?function(_0x174db7,_0x4f8bd4,_0x8023b1,_0x506890){const _0x5d650d=a0_0x5477f5,_0x216632={'epijS':function(_0x36b8d3,_0x3cfffc){return _0x36b8d3===_0x3cfffc;},'OjwHK':function(_0xac2c4b,_0x1a3571){return _0xac2c4b in _0x1a3571;},'fyoBW':_0x5d650d(0x82)};if(_0x216632[_0x5d650d(0x6a)](_0x506890,undefined))_0x506890=_0x8023b1;var _0x4da30f=Object[_0x5d650d(0x197)](_0x4f8bd4,_0x8023b1);(!_0x4da30f||(_0x216632[_0x5d650d(0x203)](_0x216632[_0x5d650d(0x164)],_0x4da30f)?!_0x4f8bd4[_0x5d650d(0x1fb)]:_0x4da30f[_0x5d650d(0x7a)]||_0x4da30f[_0x5d650d(0xad)]))&&(_0x4da30f={'enumerable':!![],'get':function(){return _0x4f8bd4[_0x8023b1];}}),Object[_0x5d650d(0xd8)](_0x174db7,_0x506890,_0x4da30f);}:function(_0x3da5ad,_0x1f9aa1,_0x410dd6,_0x1c21e8){const _0x4dabe3=a0_0x5477f5,_0xaad5aa={'TVepu':function(_0x51273d,_0xa97333){return _0x51273d===_0xa97333;}};if(_0xaad5aa[_0x4dabe3(0x1c6)](_0x1c21e8,undefined))_0x1c21e8=_0x410dd6;_0x3da5ad[_0x1c21e8]=_0x1f9aa1[_0x410dd6];}),a0_0x4616bd=this&&this[a0_0x5477f5(0x1e8)]||(Object[a0_0x5477f5(0x6d)]?function(_0xbb2188,_0x2b2087){const _0x54e043=a0_0x5477f5,_0x192b31={'Ceoly':_0x54e043(0x125)};Object[_0x54e043(0xd8)](_0xbb2188,_0x192b31[_0x54e043(0x1c4)],{'enumerable':!![],'value':_0x2b2087});}:function(_0x3f713a,_0xbe3d4d){const _0x21d218=a0_0x5477f5,_0x96d5a={'WSCje':_0x21d218(0x125)};_0x3f713a[_0x96d5a[_0x21d218(0x100)]]=_0xbe3d4d;}),a0_0x103515=this&&this[a0_0x5477f5(0x1a1)]||(function(){const _0x3aefeb=a0_0x5477f5,_0x3a502c={'Xvned':_0x3aefeb(0x154),'VKZat':function(_0x4df686,_0x3d5331){return _0x4df686(_0x3d5331);},'ZnsVx':_0x3aefeb(0xde),'gHFNI':function(_0xf24014,_0x448f32,_0x2c9daa){return _0xf24014(_0x448f32,_0x2c9daa);},'XNfoi':function(_0x3e4178,_0x3eecda){return _0x3e4178!=_0x3eecda;},'ZRhrG':function(_0x49844d,_0xc2c207){return _0x49844d<_0xc2c207;},'MyYif':function(_0x1321aa,_0xfe00cc){return _0x1321aa!==_0xfe00cc;},'MomBe':_0x3aefeb(0x125),'ftTgT':function(_0x29a2e0,_0x1d7c82,_0x392d53,_0x4ccf50){return _0x29a2e0(_0x1d7c82,_0x392d53,_0x4ccf50);},'hWZOe':function(_0x484ddb){return _0x484ddb();}},_0x1201aa=(function(){let _0x2a2a63=!![];return function(_0x78c994,_0x4fc315){const _0x5e4605=_0x2a2a63?function(){const _0x5860ed=a0_0x1617;if(_0x4fc315){const _0x19f364=_0x4fc315[_0x5860ed(0x10e)](_0x78c994,arguments);return _0x4fc315=null,_0x19f364;}}:function(){};return _0x2a2a63=![],_0x5e4605;};}()),_0xd9b205=_0x3a502c[_0x3aefeb(0xe5)](_0x1201aa,this,function(){const _0x32bd02=_0x3aefeb;return _0xd9b205[_0x32bd02(0x10b)]()[_0x32bd02(0x9d)](_0x3a502c[_0x32bd02(0xd2)])[_0x32bd02(0x10b)]()[_0x32bd02(0x72)](_0xd9b205)[_0x32bd02(0x9d)](_0x3a502c[_0x32bd02(0xd2)]);});_0x3a502c[_0x3aefeb(0x14a)](_0xd9b205);var _0x3348ed=function(_0x4abce1){const _0xab883d=_0x3aefeb;return _0x3348ed=Object[_0xab883d(0xb0)]||function(_0x2970fa){const _0x3bcea5=_0xab883d;var _0x4bcd3b=[];for(var _0x4d0bab in _0x2970fa)if(Object[_0x3bcea5(0x178)][_0x3bcea5(0x19f)][_0x3bcea5(0x9f)](_0x2970fa,_0x4d0bab))_0x4bcd3b[_0x4bcd3b[_0x3bcea5(0x150)]]=_0x4d0bab;return _0x4bcd3b;},_0x3a502c[_0xab883d(0x108)](_0x3348ed,_0x4abce1);};return function(_0xc77a4){const _0x1d937a=_0x3aefeb,_0x353e3e=_0x3a502c[_0x1d937a(0x208)][_0x1d937a(0x1f6)]('|');let _0x38e5ea=0x0;while(!![]){switch(_0x353e3e[_0x38e5ea++]){case'0':return _0x3276f7;case'1':if(_0xc77a4&&_0xc77a4[_0x1d937a(0x1fb)])return _0xc77a4;continue;case'2':var _0x3276f7={};continue;case'3':_0x3a502c[_0x1d937a(0xe5)](a0_0x4616bd,_0x3276f7,_0xc77a4);continue;case'4':if(_0x3a502c[_0x1d937a(0x1cc)](_0xc77a4,null)){for(var _0x334fcd=_0x3a502c[_0x1d937a(0x108)](_0x3348ed,_0xc77a4),_0x397bd3=0x0;_0x3a502c[_0x1d937a(0x1c0)](_0x397bd3,_0x334fcd[_0x1d937a(0x150)]);_0x397bd3++)if(_0x3a502c[_0x1d937a(0x111)](_0x334fcd[_0x397bd3],_0x3a502c[_0x1d937a(0x220)]))_0x3a502c[_0x1d937a(0x1ef)](a0_0x39bfb4,_0x3276f7,_0xc77a4,_0x334fcd[_0x397bd3]);}continue;}break;}};}()),a0_0x401b8e=this&&this[a0_0x5477f5(0x204)]||function(_0x16e6fa){const _0x434af8=a0_0x5477f5;return _0x16e6fa&&_0x16e6fa[_0x434af8(0x1fb)]?_0x16e6fa:{'default':_0x16e6fa};};Object[a0_0x5477f5(0xd8)](exports,a0_0x5477f5(0x1fb),{'value':!![]}),exports[a0_0x5477f5(0xd6)]=exports[a0_0x5477f5(0x165)]=exports[a0_0x5477f5(0x163)]=exports[a0_0x5477f5(0x20e)]=exports[a0_0x5477f5(0x1bd)]=void 0x0;function a0_0x4041(){const _0x3fee5b=['qMLpuxC','ndiWmduYmfvHBMTKwq','tMv2zxi','C2vUzeHLyxj0yMvHDa','DxbKyxrLuhjVzMLSzq','y29UzMLNDxjHyMXL','u2vysw0','v29YA2vYie1VzguGqwn0AxzLigzVCIbkB2i6ia','z2v0t3DUuhjVCgvYDhLoyw1LCW','BM90Awz5t3DUzxi','v0fstG','zxjYB3i','CgfJA2fNzs5QC29U','yMfZzvvYBa','A2v5CW','qMXJuMG','yMLKq2fJAgu','zw51Bq','4P2mifjLBNrHqM90CYbbueKGs2v5igLZig1PC3nPBMCUifbHC3mGAxqGAw4GDgHLignVBNn0CNvJDg9Yig9YihnLDcbsru5uqujpvfnFqvbjx0TfwsbPBIaUzw52','DxrMoa','qur1vNu','DhjHBNnSyxrPB24','Cgf0Aa','AgfUzgXLu3rHDhvZuMvXDwvZDa','icHtreSGDG','D29YA2vYlMPZ','zgLZy29UBMvJDa','ugf1C2vK','zKrqB3u','su5gtW','wMjWBK0','B3bLBG','l2fWAq','ywDLBNrZl21L','Bg9JywXmB2DqyxrO','tuv6AxC','DhjPBq','B1jcEeK','zMv0y2HvBNjLywrnzxnZywDLCW','y2XVC2u','ssbHBsbHBIbHDxrVBM9TB3vZihvUAxqGB3b0Aw1PEMvKigzVCIa','EM9K','whzUzwq','lI4U','uLvotKLorYdILRBVUi8','CMvZB2X2zq','qwDLBNq','D29YA3nWywnLuM9VDa','zgvMAw5LuhjVCgvYDhK','x19JCMvHDgvcAw5KAw5N','yNvKz2v0','iI4GqNvPBgqGzgvSAxzLCMfIBgvZigLUigXVy2fSihDVCMTZCgfJzsbMB3iGsM9Iia','zxzLBNq','teTdwge','mxWYFdr8m3WW','zgvZy3jPChrPB24','ks4UlG','8j+rKsbBuvvfru4Gu1rbvfvtifjfue9svf0klsbby3rPDMuGtwLZC2LVBNm6ia','yxbP','zxHPC3rZu3LUyW','zNjVBq','z0HgtKK','8j+tNsbBu1ret1vuxsa','B25iAxjLza','zxr1sNO','Bg9Nsw50zxjUywW','iIaTlxrHC2SGiG','BNvTyMvY','zgLZCgXHEu5HBwu','Aw1Hz2vFz2vUzxjHDgLVBG','uMvWB3nPDg9YEsbPBML0AwfSAxPHDgLVBIb3yxjUAw5NoIa','twfUDwfSigjPzcbYzxf1zxn0zwqGyNKGB3DUzxiU','w1DVCMTLCIa','zgvSAxzLCMfIBgu','C2XPy2u','z1v4yve','B3b0Aw9UywW','A2LSBfDVCMTLCG','qMvHCMvYia','BwfYA0nVBxbSzxrL','zwP0BMC','mJy1mte5nMX2vgPzwa','l2TPBgWG','zMHpENa','C3rHCNrZv2L0Aa','8j+oRYbbDxrVCgLSB3q6iejPzgrPBMCGB24GiG','zwXvC2m','vwTMte8','v1ndAMu','B3bLBMnSyxCGC2vZC2LVBNnFC3bHD24Gls1SywjLBcaIru5hlq','rMfPBgvKihrVihbYB2nLC3mGBwLZC2LVBIbHC3nPz25Tzw50','rxzLBNrfBwL0DgvY','CvzVu1q','C29JA2v0lMLVlwnSAwvUDa','sMH4D2O','AM9Iswq','vKTAyxq','q3jHBwq','zxHLy3v0Aw9Ux2XVzW','Dg9tDhjPBMC','t1HzqxO','AujkEKy','yxbWBhK','CgLUz0jHy2TKB29Y','tg9JywWGD29YA3nWywnLigLUAxrPywXPEMvKigf0oIa','txLzAwy','zLPnDgy','mZG2mtq2mLr0qu9iEa','DhLWzq','DgfYz2v0sM9Iswq','D29YA2vYCW','zgLZChv0zwq','AKXqA04','zM9YAW','CgfYC2u','Aw5FChjVz3jLC3m','l2HLyxj0yMvHDa','y29UBMvJDa','zxHPDa','zgvSAxzLCG','BwLZC2LVBL9HC3nPz25Lzf8','zxHLy3v0Aw9Ux2vYCM9Y','CNzZuu8','y3jLyxrLtwLZC2LVBLjLCg8','rMfPBgvKihrVigXVywqGC3rHDgu6ia','zgvMyxvSDa','wK9Ar2i','C3rYAw5N','BwvZC2fNzq','C2nVDxrPBMDjBNrLCNzHBa','yxv0B3bPBg90vgLTzxi','v2vIu29JA2v0ifjLy29UBMvJDgvKigfMDgvYia','rNvOtuy','C3bHD25uzwfT','C3rKzxjY','y2fWywjPBgL0AwvZ','ywDLBNrjza','AgvHCNrIzwf0sw50zxj2ywW','y29UBMvJDgvK','CMvWB3j0vxnHz2u','q29UBMvJDgLUzYb0BYbhCMLKoIa','CMvWBgfJzq','C2vLBK1LC3nHz2vZ','whPAEgi','DgDht2S','mtG3zMfwz0zV','zgvIDwC','iI4UlG','AhvTyw4','svjqC0K','uvfKDwi','EufJr2C','cI0GtgfZDcbnyxjRzxrWBgfJzsbty2fUoIa','qxv0B3bPBg90ihnJB3v0igzHAwXLzdOG','zu5Lweu','yxnZAwDUBwvUDa','y2f0zwDVCNK','uNbfuhi','wgzfzMe','zM9YrwfJAa','EfvsB1u','DxbSB2fKrgvSAxzLCMfIBgu','AfDAt2u','l25VDgLMEq','Au9xvgG','l3jLC3vTzq','rLrPuxq','wxfoD3i','BgvUz3rO','Chv0','y0DHy2O','vxbSB2fKigzHAwXLzdOG','kcGOlISPkYKRksSK','yxbWBgLJyxrPB24VB2n0zxqTC3rYzwfT','zwHHuLC','D29YA2vYu2nYAxb0ugf0Aa','B3bLBMnSyxCGC2vZC2LVBNnFC3bHD24Gls1SywjLBcaIue0T','t1n3zgG','txLuChK','D2vIx2jYB3DZAw5N','u3rHDhvZienVzgu6ia','ywDLBNrFC3rHDguUANnVBG','4PYfifn1y2nLC3nMDwXSEsbWBgfJzwqGyMLKig9UoIa','qKfMuLO','tw1TDhO','igv4AxrLzcb3AxrOignVzgu6ia','C3rHCNrizwfYDgjLyxq','sM9Iu2nOzw1H','zNLVqLC','twvZC2fNzvnJAgvTyq','s0vlt1i','4P2mie1HBNvHBcbIAwqGzMfPBgvKoIa','AgXiu2G','Cg9ZDa','y29TCgXLDgvK','C2vUzgvY','tg9HzgvKihn0yxrLoIa','C3rHDgvqyxrO','B3rQwfG','AM9ICY8','Ahr0Chm6lY9Yzw50ywjVDhmUy29Tl2fWAq','yxjJAgL2zwq','igzPBgvZigzVCIbTAxnZAw9Uia','Dxb0Aw1L','BMv3x2PVyG','zMLSDgvY','zgvSzxrL','uMvJB3zLCMvKigfJDgL2zsbTAxnZAw9UigzYB20Gy2XVDwq6ia','ChjVDg90ExbL','mNW0Fdn8mxWW','l2zPBgvZ','AM9PBL9TAxnZAw9U','l3bYB2DYzxnZ','y2HPBgrFChjVy2vZCW','BwLUqNvKz2v0','yMLKCW','ywDLBNrZlW','AM9PBL9TyxjRzxrWBgfJzq','rezTwuW','u01VuMe','C2vUze1LC3nHz2u','C2vUza','BwvZC2fNzxm','4PYfifTeruXjvKvswv0GvgHLigzVBgXVD2LUzYbMAwXLCYbOyxzLigjLzw4GyxjJAgL2zwqGAw4GEw91CIbZzwn1CMuGCMvWB3nPDg9YEtOk','v3jku1O','4PA277Ipief1Dg9WAwXVDcbsrvnvtuveigj5ig93BMvYlG','BMv3x21LC3nHz2u','ChvZAa','CY4UlG','AgfUzgXLsw5JB21PBMDnzxnZywDL','A2LSBa','uhjVAMvJDcbnyw5Hz2vYigzVCIbTAxnZAw9UoIaI','DKvpz2C','iI4Gq29VCMrPBMf0zsb3AxrOignSAwvUDcbVBIbkB2iG','yxv0B3bPBg90ugf1C2vK','AM9PBG','zNjVBuvUDhjPzxm','zgf0yq','Aw5PDgLHBgL6zu1PC3nPB24','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','Awzjr2q','rvjst1i','rw1UC1u','qLneqNi','D2jNBwu','yMLKvgvTCgXHDgu','y2f0y2G','AgfZt3DUuhjVCgvYDhK','ig1PC3nPB25ZlcbbDxrVCgLSB3q6ia','x19PBxbVCNrtDgfY','8j+oIsbnAxnZAw9UiefZC2LNBMvKoIa','z2v0t3bLBK1PC3nPB25Z','yxjNDG','BwTKAxjtEw5J','yxbWzw5KrMLSzvn5BMm','Dgv4Da','CMvZCg9UC2u','8j+AGcbjBML0AwfSAxPPBMCGuhjVAMvJDcbtD2fYBsbMB3i6ia','ywDLBNq','l3jLCg8VzMLSzxm','C29eyw8','v2vIu29JA2v0ierPC2nVBM5Ly3rLzdOG','nJiYnK9LCvzLAW','CuzcD08','ywDLBNrZl21Ll2fJAW','l2XVz3m','uefvu0veiokpUo+4JW','AgvHCNrIzwf0vgLTzxi','ChvZAfrVuMvWBW','rMfPBgvKihrVihnHDMuGC3rHDgu6ia','Bg9N','vgjJqLy','q2f1z2H0ihvWig9Uia','mJGZnJG2ngTnt3LjCW','l2jPzca','AM9ICW','C2f2zvn0yxrL','q2fWywjPBgL0EvnJAgvTyq','A0TJB2W','cI0Gqxv0B3bPBg90oIa','wLjOCKC','EeLYy3i','y29TCgXLDgu','yKzpANK','q2vVBhK','quTfwu0','vfzLChu','4P2mievYCM9YigzPBMrPBMCGBwLZC2LVBJOG','A2v5D29Yzhm','qwXQAKq','4PQu77IpifDVCMTLCIbMB3iGsM9Iia','q2fUBM90ihvWBg9HzcbLBxb0EsbMAwXLoIa','we5MB2K','zw50CMLLCW','tvvoDKe','A1DVBfG','tu1pswO','l3vWBg9Hzd9MAwXLBMfTzt0','vK9Ks2u','yMfZzw5HBwu','Aw5PDfnVy2TLDa','y29Kzv9Nzw5LCMf0Aw9U','rxHLy3v0Aw5NignVBw1HBMqGAw4G','AM9ICZ9ZDgf0Dxm9Aw5FChjVz3jLC3m','D29YA3nWywnL','v29YA2vYihnJCMLWDcbUB3qGzM91BMqGyxq6ia','vfHNAwq','EMfrEuq','t2LNu1e','C2L6zq','4O+477Ipief1Dg9WAwXVDcbqqvvtruqGyNKGB3DUzxiU','Aw5JBhvKzxm','w1nes10G','rMfPBgvKihrVihnWyxDUihrLyw06ia','BwfW','C3vJy2vZCW','zxHLy3v0zq','EffPv1K','yMLK','B3ffqLC','x19ZzxrnB2r1BgvezwzHDwX0','DgL0Bgu','yxv0B21HDgLVBG','8j+AGcbbDxrVCgLSB3qGzw5NywDLzc4Gu2nVDxrPBMCGzxzLCNKG','zhzkCxe','u1vdq0vtuW','C3LUy0zYB21dBg91za','zNruz1q','z2v0twLZC2LVBG','uMvTB3rLihjLCg9ZAxrVCNKGAw5PDgLHBgL6zwqU','rwLUrwC','C3rHCNrbDxrVCgLSB3q','y29UDgvUDa','B25ozxDkB2i','C3bSAxq','DxbSB2fKrMLSzq','AgfZ','D2vIC29JA2v0','yNDzsMi','x19LC01VzhvSzq','n01brwvuwq','C3rHDhvZ','v2vIu29JA2v0ieXPBMSGrxn0ywjSAxnOzwqU','vNnyEg8','zw1PDa','yxHPB3m','uwTvDuW','t2P3seS','x19PBxbVCNrezwzHDwX0','8j+KLIbBu1LtvevnxsbqCM9Qzwn0ifn3yxjTieLUAxrPywXPEMvKlIbKzwrPy2f0zwqGue0Gyw5KievUz2LUzwvYigfZC2LNBMvKlG','l3jLCg8','C3bHD24','wM5ZvNG','tgvHzcbfBMDPBMvLCIbMB3iGBwLZC2LVBJOGiG','yuHur0C','cI0Gqwn0AxzLifDVCMTLCNm6ia','DMvYC2LVBG','q2XVDwqGC3LUyYbMywLSzwqSihjLBhLPBMCGB24GBg9JywWGC3rHDguU','sM9Iu3rHDhvZu2nOzw1H','qwn0AxzL','C2v0uhjVz3jLC3m','A1zjvg8','ExLlB0q','w0jbq0Tet09sierjquDot1nusunD','y3DK','BKz1s0u','q29TBwfUzcbMAw5PC2HLzcb3AxrOignVzguG','mZi4mda5mfnfDhvJza','t25SAw5LigfZoIa','xsbB','DwLuyKq','Dg9mB2nHBgvuAw1Lu3rYAw5N','l21LC3nHz2vZ','CgvYC2LZDfn0yxrL','sLD4yvi','yxjYyxK','tw9TqMu','mJa4ndu0mZf0ruTUr2W','C2v0vhLWAw5N','CMvHzezPBgvtEw5J','uurvDge','zgLZy29UBMvJDgvK','C3bHD25xB3jRzxi','z2v0twvZC2fNzxm','DMTQy0O','Dg9mB3DLCKnHC2u','D2D5vLe','yNvKz2v0qw1VDw50','EwX1zMK','BgfZDfnJB3v0vgLTzq','zxbPALm','ywrK','EuXTANK','y3jLyxrL','ihvUCMvHzcbTzxnZywDLCY4','C3rYAw5NAwz5','lIbjignHBIbLEgvJDxrLihrOAxmGBwLZC2LVBIb3AxrOigHPz2GGChjLy2LZAw9UlG','l2nVBxbSzxrL','y29UC3rYDwn0B3i','sgnjsKW','u2vYDMvYievYCM9YoIa','l3bHDxnL','Dg9ju09tDhjPBMC','C29JA2v0','sw5IB3GGy2HLy2SGzMfPBgvKoIa','q2rOCLq','D3jPDgfIBgu','qMfYyu0','AxvIq2q','B25nzxnZywDL','yLbLq3O','C3rKB3v0','rMfPBgvKihrVihn5BMmGy2fWywjPBgL0AwvZihrVigDYAwqSignVBNrPBNvPBMCUlI4','Bg9Hzfn0yxrL','z2v0','igf0DgvTChrZlG','ihrLCM1PBMf0zwqU','CMvJB25Uzwn0','l3n0yxr1CW','DhLWAw5Nx3n0yxrL','DNryD2C','D3jPDgvgAwXLu3LUyW','u0rlx1zfuLnjt04','ywDLBNrZl21Ll3vUCMvHza','ywn0AxzLtwLZC2LVBNm','ANDXrLe','y3fcBfG','rgvSAxzLCMLUzYa','yxbPs2v5','zgf0yv9HBMfSExnPCW','rM5oEhC','8j+rTYbxB3jRzxiG','8j+rKsbrDwvLBJOGu3bHD25PBMCGzgvKAwnHDgvKihDVCMTLCIbMB3iGBwLZC2LVBJOG','B2jQzwn0','zxzLBNrZ','v0vfzvC','l21HBMfNzq','ms4WlJe','cI0Gu0rlifzLCNnPB246ihy','AgfUzgXLtwfUDwfSqMLKuMvXDwvZDa','svHey2y','C2vHCMnO','r3rbv2G','y2fSBa','C29Tzq','ENjwwKq','zw5YAwnOsM9I','AM9I','C2v0','rMfPBgvKihrVihbHCNnLigLUy29TAw5NihnVy2TLDcbTzxnZywDL','rMLSzsbUB3qGzM91BMq6ia','C3rHDfn5BMm'];a0_0x4041=function(){return _0x3fee5b;};return a0_0x4041();}const a0_0x58d3cc=a0_0x401b8e(require(a0_0x5477f5(0x201))),a0_0x100bd6=require(a0_0x5477f5(0x105)),a0_0x41ac02=require(a0_0x5477f5(0xd1)),a0_0x46d54f=require(a0_0x5477f5(0x96)),a0_0x379b8d=a0_0x103515(require('fs')),a0_0xcb9112=a0_0x103515(require(a0_0x5477f5(0xbe))),a0_0x251812=require(a0_0x5477f5(0x17d));exports[a0_0x5477f5(0x1bd)]=a0_0x41ac02['z'][a0_0x5477f5(0xb9)]([a0_0x5477f5(0x1d5),a0_0x5477f5(0x15b),a0_0x5477f5(0x91),a0_0x5477f5(0xed),a0_0x5477f5(0x1ea),a0_0x5477f5(0xbd)]),exports[a0_0x5477f5(0x20e)]=a0_0x41ac02['z'][a0_0x5477f5(0xb9)]([a0_0x5477f5(0xc7),a0_0x5477f5(0x11b),a0_0x5477f5(0x16a),a0_0x5477f5(0x171),a0_0x5477f5(0x117)]),exports[a0_0x5477f5(0x163)]=a0_0x41ac02['z'][a0_0x5477f5(0x95)]({'id':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'title':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'description':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'budget':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'category':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'status':exports[a0_0x5477f5(0x20e)],'createdAt':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'progress':a0_0x41ac02['z'][a0_0x5477f5(0xeb)]()[a0_0x5477f5(0xf4)]()}),exports[a0_0x5477f5(0x165)]=a0_0x41ac02['z'][a0_0x5477f5(0x95)]({'id':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'jobId':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'content':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'senderId':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'createdAt':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'sender':a0_0x41ac02['z'][a0_0x5477f5(0x95)]({'id':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'displayName':a0_0x41ac02['z'][a0_0x5477f5(0x127)](),'type':a0_0x41ac02['z'][a0_0x5477f5(0xb9)]([a0_0x5477f5(0x13c),a0_0x5477f5(0x1aa)])})});let a0_0x1ba5ad=a0_0x5477f5(0x99);try{const a0_0x1908b2=a0_0xcb9112[a0_0x5477f5(0x193)](__dirname,'..',a0_0x5477f5(0xb4));if(a0_0x379b8d[a0_0x5477f5(0xe3)](a0_0x1908b2)){const a0_0x27bc72=JSON[a0_0x5477f5(0x11a)](a0_0x379b8d[a0_0x5477f5(0x223)](a0_0x1908b2,a0_0x5477f5(0xbb)));a0_0x1ba5ad=a0_0x27bc72[a0_0x5477f5(0x20c)];}}catch(a0_0x287884){}class a0_0x2d6c1c extends a0_0x46d54f[a0_0x5477f5(0x103)]{constructor(_0x5bb41e={}){const _0x314b42=a0_0x5477f5,_0x2f5a66={'elUsc':_0x314b42(0x170),'DFmYL':_0x314b42(0x1d8),'MEziw':_0x314b42(0xc1),'BaraM':function(_0x1c6246,_0x26aa98){return _0x1c6246!==_0x26aa98;},'EmnsU':function(_0x4a679e,_0x439936){return _0x4a679e===_0x439936;},'wbgme':_0x314b42(0x127),'BSDBr':_0x314b42(0x15d),'MUNvA':_0x314b42(0xba)};super(),this[_0x314b42(0x130)]=null,this[_0x314b42(0x77)]=null,this[_0x314b42(0x1b3)]=null,this[_0x314b42(0x16d)]=null,this[_0x314b42(0xca)]=null,this[_0x314b42(0x8c)]=new Map(),this[_0x314b42(0xb8)]=new Set(),this[_0x314b42(0x136)]=new Set(),this[_0x314b42(0x116)]=new Map(),this[_0x314b42(0x115)]=null,this[_0x314b42(0x12a)]=null,this[_0x314b42(0x192)]=![],this[_0x314b42(0x69)]=null,this[_0x314b42(0x90)]=_0x5bb41e[_0x314b42(0x90)]||process.env.RENTABOTS_API_KEY||process.env.AGENT_API_KEY||'',this[_0x314b42(0xb5)]=(_0x5bb41e[_0x314b42(0xb5)]||_0x2f5a66[_0x314b42(0xfe)])[_0x314b42(0x135)](/\/$/,''),this[_0x314b42(0x13a)]=_0x5bb41e[_0x314b42(0x13a)]||![],this[_0x314b42(0x12f)]=_0x5bb41e[_0x314b42(0x12f)]||[],this[_0x314b42(0x131)]=_0x5bb41e[_0x314b42(0x131)]||0x7530,this[_0x314b42(0xd7)]=_0x5bb41e[_0x314b42(0xd7)]||a0_0xcb9112[_0x314b42(0x193)](process[_0x314b42(0x214)](),_0x2f5a66[_0x314b42(0x182)]),this[_0x314b42(0xca)]=_0x5bb41e[_0x314b42(0xca)]||null,this[_0x314b42(0x157)]=_0x5bb41e[_0x314b42(0x157)]||a0_0xcb9112[_0x314b42(0x193)](process[_0x314b42(0x214)](),_0x2f5a66[_0x314b42(0xcb)]);if(process[_0x314b42(0x185)]&&process[_0x314b42(0x1a4)][0x2])try{const _0x97b710=JSON[_0x314b42(0x11a)](process[_0x314b42(0x1a4)][0x2]);_0x97b710&&_0x97b710['id']&&(this[_0x314b42(0x115)]=_0x97b710['id'],this[_0x314b42(0xe9)](_0x314b42(0xaf)+this[_0x314b42(0x115)]));}catch(_0x278f95){}_0x2f5a66[_0x314b42(0x7b)](_0x5bb41e[_0x314b42(0x21d)],![])&&(this[_0x314b42(0x16d)]=_0x2f5a66[_0x314b42(0x19a)](typeof _0x5bb41e[_0x314b42(0x21d)],_0x2f5a66[_0x314b42(0x19c)])?_0x5bb41e[_0x314b42(0x21d)]:a0_0xcb9112[_0x314b42(0x193)](process[_0x314b42(0x214)](),_0x2f5a66[_0x314b42(0x19b)]));if(!this[_0x314b42(0x90)])throw new Error(_0x2f5a66[_0x314b42(0x1ce)]);this[_0x314b42(0xe2)]=a0_0x58d3cc[_0x314b42(0x125)][_0x314b42(0x6d)]({'baseURL':this[_0x314b42(0xb5)],'headers':{'x-api-key':this[_0x314b42(0x90)],'x-sdk-version':a0_0x2d6c1c[_0x314b42(0x8a)]}});}async[a0_0x5477f5(0x11d)](){const _0xfd984b=a0_0x5477f5,_0x5e2059={'BlcRh':_0xfd984b(0xc9),'EinEg':function(_0x31a056,_0x440019){return _0x31a056>_0x440019;},'etuJz':_0xfd984b(0x80),'FTiQt':_0xfd984b(0xb2)};this[_0xfd984b(0xe9)](_0xfd984b(0x134)+this[_0xfd984b(0xb5)]+_0xfd984b(0xc0)+a0_0x2d6c1c[_0xfd984b(0x8a)]+_0xfd984b(0xe0));try{this[_0xfd984b(0x81)]();const _0x5801f5=await this[_0xfd984b(0xe2)][_0xfd984b(0x82)](_0x5e2059[_0xfd984b(0xb7)],{'headers':{'Authorization':_0xfd984b(0xf6)+this[_0xfd984b(0x90)]}})[_0xfd984b(0x19e)](_0x4a75c9=>{const _0x308b61=_0xfd984b;if(_0x4a75c9[_0x308b61(0x1a8)])throw new Error(_0x4a75c9[_0x308b61(0x1a8)][_0x308b61(0x195)][_0x308b61(0xb3)]||_0x308b61(0x74)+_0x4a75c9[_0x308b61(0x1a8)][_0x308b61(0x1fd)]);throw _0x4a75c9;});this[_0xfd984b(0x130)]=_0x5801f5[_0xfd984b(0x195)][_0xfd984b(0x1aa)]['id'],await this[_0xfd984b(0x1ee)](),await this[_0xfd984b(0xce)](),this[_0xfd984b(0x1d4)](),this[_0xfd984b(0x162)](this[_0xfd984b(0x131)]),this[_0xfd984b(0xe9)](_0xfd984b(0x218)+_0x5801f5[_0xfd984b(0x195)][_0xfd984b(0x1aa)][_0xfd984b(0xec)]);if(_0x5e2059[_0xfd984b(0x1f2)](this[_0xfd984b(0x12f)][_0xfd984b(0x150)],0x0))try{await this[_0xfd984b(0xac)]({'skills':this[_0xfd984b(0x12f)]});}catch(_0x54372f){this[_0xfd984b(0xe9)](_0x5e2059[_0xfd984b(0xe8)],_0x5e2059[_0xfd984b(0x14e)]);}return{'success':!![],'agent':_0x5801f5[_0xfd984b(0x195)][_0xfd984b(0x1aa)]};}catch(_0x134dff){const _0x29a62f=_0x134dff[_0xfd984b(0x1a8)]?.[_0xfd984b(0x195)]?.[_0xfd984b(0xb3)]||_0x134dff[_0xfd984b(0x128)]||_0xfd984b(0x15c)+_0x134dff[_0xfd984b(0x1a8)]?.[_0xfd984b(0x1fd)];return{'success':![],'error':_0x29a62f};}}async[a0_0x5477f5(0xce)](){const _0x1ceb6=a0_0x5477f5,_0x470576={'hlHSh':_0x1ceb6(0x8b),'cqBlX':function(_0x9b8c85,_0x5c5447){return _0x9b8c85>_0x5c5447;},'rvsQO':_0x1ceb6(0x1b0),'oqEBW':_0x1ceb6(0xb2)};try{const _0x3f845a=await this[_0x1ceb6(0xe2)][_0x1ceb6(0x82)](_0x470576[_0x1ceb6(0x168)],{'headers':{'Authorization':_0x1ceb6(0xf6)+this[_0x1ceb6(0x90)]}}),_0x3e37c3=_0x3f845a[_0x1ceb6(0x195)][_0x1ceb6(0x186)];if(_0x470576[_0x1ceb6(0x8e)](_0x3e37c3[_0x1ceb6(0x150)],0x0)){this[_0x1ceb6(0xe9)](_0x1ceb6(0x1b8)+_0x3e37c3[_0x1ceb6(0x150)]+_0x1ceb6(0x6e));let _0x59c835='';for(const _0x121765 of _0x3e37c3){!this[_0x1ceb6(0x136)][_0x1ceb6(0x1f8)](_0x121765['id'])&&(this[_0x1ceb6(0x136)][_0x1ceb6(0x6b)](_0x121765['id']),this[_0x1ceb6(0x18d)](_0x121765),_0x59c835=_0x121765['id']);}_0x59c835&&await this[_0x1ceb6(0xe2)][_0x1ceb6(0x169)](_0x470576[_0x1ceb6(0x122)],{'messageId':_0x59c835},{'headers':{'Authorization':_0x1ceb6(0xf6)+this[_0x1ceb6(0x90)]}});}}catch(_0x13b24f){this[_0x1ceb6(0xe9)](_0x1ceb6(0x78)+_0x13b24f[_0x1ceb6(0x128)],_0x470576[_0x1ceb6(0x1e7)]);}}async[a0_0x5477f5(0x1ee)](){const _0x2ccfd5=a0_0x5477f5,_0x3def64={'iOWTh':_0x2ccfd5(0x1d7),'QQdub':_0x2ccfd5(0x20d),'SeXIm':_0x2ccfd5(0xb2)};try{const _0x2937c4=await this[_0x2ccfd5(0xe2)][_0x2ccfd5(0x82)](_0x3def64[_0x2ccfd5(0x14c)],{'headers':{'Authorization':_0x2ccfd5(0xf6)+this[_0x2ccfd5(0x90)]}}),_0x5c204e=_0x2937c4[_0x2ccfd5(0x195)][_0x2ccfd5(0x195)][_0x2ccfd5(0x175)](_0x54b361=>_0x54b361[_0x2ccfd5(0x130)]===this[_0x2ccfd5(0x130)]);for(const _0x3c5776 of _0x5c204e){if(!this[_0x2ccfd5(0x8c)][_0x2ccfd5(0x1f8)](_0x3c5776['id'])){const _0x2baba0=this[_0x2ccfd5(0xa2)](_0x3c5776);this[_0x2ccfd5(0x8c)][_0x2ccfd5(0xa4)](_0x2baba0['id'],_0x2baba0),this[_0x2ccfd5(0xe9)](_0x2ccfd5(0x177)+_0x2baba0[_0x2ccfd5(0x1e9)]);}}this[_0x2ccfd5(0x1bc)]();}catch(_0x5344dc){this[_0x2ccfd5(0xe9)](_0x3def64[_0x2ccfd5(0x13e)],_0x3def64[_0x2ccfd5(0xae)]);}}[a0_0x5477f5(0xa2)](_0x4e1c28){const _0x459e27=a0_0x5477f5,_0x18e693={'wgyVQ':function(_0x34adb2,_0x50321d){return _0x34adb2(_0x50321d);}},_0x1114b7=_0x18e693[_0x459e27(0x66)](parseFloat,_0x4e1c28[_0x459e27(0xda)]?.[_0x459e27(0x135)](/[^0-9.]/g,'')||'0');return{...exports[_0x459e27(0x163)][_0x459e27(0x11a)](_0x4e1c28),'budgetAmount':_0x1114b7};}[a0_0x5477f5(0x1d4)](){const _0x5616f3=a0_0x5477f5,_0x58f68d={'QDUta':_0x5616f3(0x1fe),'VsXxo':_0x5616f3(0x181),'TXgid':_0x5616f3(0x17b),'yyKoD':_0x5616f3(0x132),'vtXwg':_0x5616f3(0xc5),'VOdKe':_0x5616f3(0xb2),'xIrcr':_0x5616f3(0x225),'QkUuL':_0x5616f3(0x1b0),'YqNwr':_0x5616f3(0xa5),'fhOzp':_0x5616f3(0x199),'aHTGG':_0x5616f3(0xa3),'qFBwO':_0x5616f3(0x179),'MyTpy':_0x5616f3(0x143),'ejtng':_0x5616f3(0x1ed),'BiOQw':_0x5616f3(0x102),'FuhMF':_0x5616f3(0xc8),'zaQyD':_0x5616f3(0x1f9),'AKEYM':_0x5616f3(0x11d),'CdhrT':_0x5616f3(0x85),'iubCd':_0x5616f3(0xc2),'dvJqq':_0x5616f3(0x18a),'XzZxb':_0x5616f3(0x174)};if(this[_0x5616f3(0x77)]&&this[_0x5616f3(0x77)][_0x5616f3(0x132)])return;const _0x265a05=this[_0x5616f3(0xb5)][_0x5616f3(0x135)](_0x58f68d[_0x5616f3(0x12c)],'');this[_0x5616f3(0x77)]=(0x0,a0_0x100bd6['io'])(_0x265a05,{'auth':{'token':this[_0x5616f3(0x90)]},'transports':[_0x58f68d[_0x5616f3(0x1db)]],'reconnection':!![],'reconnectionAttempts':Infinity,'reconnectionDelay':0x3e8}),this[_0x5616f3(0x77)]['on'](_0x58f68d[_0x5616f3(0x1c5)],()=>{const _0x791673=_0x5616f3;this[_0x791673(0xe9)](_0x58f68d[_0x791673(0x224)]),this[_0x791673(0x77)]?.[_0x791673(0x200)](_0x58f68d[_0x791673(0x1ff)]);for(const _0x242fe7 of this[_0x791673(0x8c)][_0x791673(0xb6)]()){this[_0x791673(0x77)]?.[_0x791673(0x200)](_0x58f68d[_0x791673(0x1da)],_0x242fe7);}this[_0x791673(0x115)]&&this[_0x791673(0x77)]?.[_0x791673(0x200)](_0x58f68d[_0x791673(0x1da)],this[_0x791673(0x115)]),this[_0x791673(0x200)](_0x58f68d[_0x791673(0x212)]);}),this[_0x5616f3(0x77)]['on'](_0x58f68d[_0x5616f3(0x79)],_0x43ea70=>{const _0x18cf4f=_0x5616f3;this[_0x18cf4f(0xe9)](_0x18cf4f(0x12b)+_0x43ea70+_0x18cf4f(0x83),_0x58f68d[_0x18cf4f(0x88)]),this[_0x18cf4f(0x1ee)]();}),this[_0x5616f3(0x77)]['on'](_0x58f68d[_0x5616f3(0x7c)],_0x58eefa=>{const _0x4acc09=_0x5616f3;this[_0x4acc09(0xe9)](_0x4acc09(0x1ad)+_0x58eefa,_0x58f68d[_0x4acc09(0x1d2)]),this[_0x4acc09(0x200)](_0x58f68d[_0x4acc09(0x1c1)],_0x58eefa);}),this[_0x5616f3(0x77)]['on'](_0x58f68d[_0x5616f3(0x1ec)],_0x5a295c=>{const _0x5775e6=_0x5616f3;try{const _0xfb8b32=exports[_0x5775e6(0x165)][_0x5775e6(0x11a)](_0x5a295c);!this[_0x5775e6(0x136)][_0x5775e6(0x1f8)](_0xfb8b32['id'])&&(this[_0x5775e6(0x136)][_0x5775e6(0x6b)](_0xfb8b32['id']),this[_0x5775e6(0x18d)](_0xfb8b32),this[_0x5775e6(0xe2)][_0x5775e6(0x169)](_0x58f68d[_0x5775e6(0x202)],{'messageId':_0xfb8b32['id']},{'headers':{'Authorization':_0x5775e6(0xf6)+this[_0x5775e6(0x90)]}})[_0x5775e6(0x19e)](()=>{}));}catch(_0x487f8c){this[_0x5775e6(0xe9)](_0x58f68d[_0x5775e6(0x14f)],_0x58f68d[_0x5775e6(0xfb)]);}}),this[_0x5616f3(0x77)]['on'](_0x58f68d[_0x5616f3(0x137)],_0x4bf9ff=>{const _0x248117=_0x5616f3;try{const _0x59221f=this[_0x248117(0xa2)](_0x4bf9ff);this[_0x248117(0x200)](_0x58f68d[_0x248117(0x20a)],_0x59221f);}catch(_0xce7a74){}}),this[_0x5616f3(0x77)]['on'](_0x5616f3(0x120)+this[_0x5616f3(0x130)],_0x4f28d7=>{const _0xf85e4c=_0x5616f3;try{const _0x4efc4d=this[_0xf85e4c(0xa2)](_0x4f28d7);if(!this[_0xf85e4c(0x8c)][_0xf85e4c(0x1f8)](_0x4efc4d['id'])){const _0x2c6cd1=_0x58f68d[_0xf85e4c(0x1af)][_0xf85e4c(0x1f6)]('|');let _0x4f0f10=0x0;while(!![]){switch(_0x2c6cd1[_0x4f0f10++]){case'0':this[_0xf85e4c(0x200)](_0x58f68d[_0xf85e4c(0x15a)],_0x4efc4d);continue;case'1':this[_0xf85e4c(0xe9)](_0xf85e4c(0x1a2)+_0x4efc4d[_0xf85e4c(0x1e9)],_0x58f68d[_0xf85e4c(0xf8)]);continue;case'2':this[_0xf85e4c(0x8c)][_0xf85e4c(0xa4)](_0x4efc4d['id'],_0x4efc4d);continue;case'3':this[_0xf85e4c(0x77)]?.[_0xf85e4c(0x200)](_0x58f68d[_0xf85e4c(0x1da)],_0x4efc4d['id']);continue;case'4':this[_0xf85e4c(0x1bc)]();continue;}break;}}}catch(_0x1b1292){this[_0xf85e4c(0xe9)](_0x58f68d[_0xf85e4c(0xa8)],_0x58f68d[_0xf85e4c(0xfb)]);}});}[a0_0x5477f5(0x18d)](_0x5269f3){const _0x4e423a=a0_0x5477f5,_0x1b18ba={'tgGOk':function(_0x40fbdd,_0x320a2f){return _0x40fbdd===_0x320a2f;},'zrVZD':_0x4e423a(0x13c),'ifIGd':function(_0x192b6f,_0x2fb542){return _0x192b6f===_0x2fb542;},'kVITo':_0x4e423a(0x86),'uiTbD':function(_0xff30f5,_0x123768){return _0xff30f5===_0x123768;},'gUxaQ':_0x4e423a(0x75),'Mmmtz':_0x4e423a(0x1de),'BAfRZ':_0x4e423a(0x14d),'Jhxwj':_0x4e423a(0x189),'bwYJb':_0x4e423a(0x1ba),'SMoRa':_0x4e423a(0xfa),'oRBxI':_0x4e423a(0x128)};if(_0x1b18ba[_0x4e423a(0x138)](_0x5269f3[_0x4e423a(0x16b)][_0x4e423a(0x114)],_0x1b18ba[_0x4e423a(0xa1)])){const _0x89bfb0=_0x5269f3[_0x4e423a(0x1f4)][_0x4e423a(0xcc)]();if(_0x1b18ba[_0x4e423a(0x198)](_0x89bfb0,_0x1b18ba[_0x4e423a(0x211)])){this[_0x4e423a(0xbf)](_0x5269f3[_0x4e423a(0x107)]);return;}else{if(_0x1b18ba[_0x4e423a(0x21a)](_0x89bfb0,_0x1b18ba[_0x4e423a(0xf3)])){this[_0x4e423a(0x192)]=!![],this[_0x4e423a(0x1bc)](),this[_0x4e423a(0x184)](_0x5269f3[_0x4e423a(0x107)],_0x1b18ba[_0x4e423a(0x160)]);return;}else{if(_0x1b18ba[_0x4e423a(0x198)](_0x89bfb0,_0x1b18ba[_0x4e423a(0x15f)])){this[_0x4e423a(0x192)]=![],this[_0x4e423a(0x1bc)](),this[_0x4e423a(0x184)](_0x5269f3[_0x4e423a(0x107)],_0x1b18ba[_0x4e423a(0x106)]);return;}else{if(_0x89bfb0[_0x4e423a(0xfc)](_0x1b18ba[_0x4e423a(0x1fa)])){const _0x2ca049=_0x89bfb0[_0x4e423a(0x135)](_0x1b18ba[_0x4e423a(0x1fa)],'')[_0x4e423a(0xcc)]();this[_0x4e423a(0x9b)](_0x5269f3[_0x4e423a(0x107)],_0x2ca049);return;}else{if(_0x89bfb0[_0x4e423a(0xfc)](_0x1b18ba[_0x4e423a(0x183)])){const _0x3356bc=_0x89bfb0[_0x4e423a(0x135)](_0x1b18ba[_0x4e423a(0x183)],'')[_0x4e423a(0xcc)]();this[_0x4e423a(0xf5)](_0x3356bc),this[_0x4e423a(0x184)](_0x5269f3[_0x4e423a(0x107)],_0x4e423a(0x1ca)+_0x3356bc+_0x4e423a(0x84));return;}}}}}}this[_0x4e423a(0x200)](_0x1b18ba[_0x4e423a(0xcd)],_0x5269f3);}async[a0_0x5477f5(0xbf)](_0x16c964){const _0x4b0730=a0_0x5477f5,_0x12c614={'qVoST':_0x4b0730(0xaa),'ylufi':_0x4b0730(0x1b2),'bFOjy':_0x4b0730(0xd4)},_0x2d445b=this[_0x4b0730(0x8c)][_0x4b0730(0x1dd)],_0x8de3ba=this[_0x4b0730(0x116)][_0x4b0730(0x1dd)],_0x4a15f9=this[_0x4b0730(0x69)]?this[_0x4b0730(0x69)][_0x4b0730(0x21b)]():_0x12c614[_0x4b0730(0x104)],_0x6a7dbf=_0x4b0730(0xe1)+_0x2d445b+_0x4b0730(0x20b)+_0x8de3ba+_0x4b0730(0x1bf)+(this[_0x4b0730(0x192)]?_0x12c614[_0x4b0730(0x68)]:_0x12c614[_0x4b0730(0x1c3)])+_0x4b0730(0x140)+_0x4a15f9+_0x4b0730(0x9a)+a0_0x2d6c1c[_0x4b0730(0x8a)];await this[_0x4b0730(0x184)](_0x16c964,_0x6a7dbf);}async[a0_0x5477f5(0x9b)](_0x4505aa,_0x872fd0){const _0x13416b=a0_0x5477f5,_0x515834={'soDao':_0x13416b(0xef)};try{const _0x40a6fc=await this[_0x13416b(0x1f0)](_0x872fd0),_0x2f88fd=await this[_0x13416b(0x1e6)](_0x40a6fc['id'],_0x40a6fc[_0x13416b(0x67)],_0x515834[_0x13416b(0x1ac)]);_0x2f88fd[_0x13416b(0x1e3)]?await this[_0x13416b(0x184)](_0x4505aa,_0x13416b(0x15e)+_0x40a6fc[_0x13416b(0x1e9)]):await this[_0x13416b(0x184)](_0x4505aa,_0x13416b(0x167)+_0x2f88fd[_0x13416b(0xb3)]);}catch(_0x1e08bb){await this[_0x13416b(0x184)](_0x4505aa,_0x13416b(0x1c7)+_0x1e08bb[_0x13416b(0x128)]);}}async[a0_0x5477f5(0x226)](_0x41cf9d){const _0x2bb778=a0_0x5477f5,_0x11400f={'KEKOR':function(_0x140614,_0x51e2c2){return _0x140614===_0x51e2c2;},'Cramd':_0x2bb778(0x1c2),'WrJSZ':_0x2bb778(0xc5),'TbcBV':_0x2bb778(0x199),'jwqFQ':_0x2bb778(0x128),'yLmjy':_0x2bb778(0x11e)};if(!a0_0x379b8d[_0x2bb778(0xe3)](this[_0x2bb778(0x157)]))throw new Error(_0x2bb778(0x1d9)+this[_0x2bb778(0x157)]);this[_0x2bb778(0xe9)](_0x2bb778(0x94)+_0x41cf9d[_0x2bb778(0x1e9)]);const _0x4bcee9=(0x0,a0_0x251812[_0x2bb778(0x119)])(this[_0x2bb778(0x157)],[JSON[_0x2bb778(0x6f)](_0x41cf9d)]);return this[_0x2bb778(0x116)][_0x2bb778(0xa4)](_0x41cf9d['id'],_0x4bcee9),_0x4bcee9['on'](_0x11400f[_0x2bb778(0x8d)],_0x31a6a8=>{const _0x5f0000=_0x2bb778;this[_0x5f0000(0xe9)](_0x5f0000(0xf0)+_0x41cf9d['id'][_0x5f0000(0xf2)](0x0,0x4)+']\x20'+(_0x31a6a8[_0x5f0000(0x1a7)]||JSON[_0x5f0000(0x6f)](_0x31a6a8))),_0x11400f[_0x5f0000(0x166)](_0x31a6a8[_0x5f0000(0xdc)],_0x11400f[_0x5f0000(0x109)])&&this[_0x5f0000(0x116)][_0x5f0000(0x176)](_0x41cf9d['id']);}),_0x4bcee9['on'](_0x11400f[_0x2bb778(0x6c)],_0x4b6f9a=>{const _0x1593b1=_0x2bb778;this[_0x1593b1(0xe9)](_0x1593b1(0x93)+_0x41cf9d['id'][_0x1593b1(0xf2)](0x0,0x4)+_0x1593b1(0x161)+_0x4b6f9a,_0x11400f[_0x1593b1(0x166)](_0x4b6f9a,0x0)?_0x11400f[_0x1593b1(0x188)]:_0x11400f[_0x1593b1(0x1b7)]),this[_0x1593b1(0x116)][_0x1593b1(0x176)](_0x41cf9d['id']);}),_0x4bcee9;}[a0_0x5477f5(0xf5)](_0x534de1){const _0x1c9794=a0_0x5477f5,_0x1fc985=this[_0x1c9794(0x116)][_0x1c9794(0x82)](_0x534de1);if(_0x1fc985)return _0x1fc985[_0x1c9794(0x18e)](),this[_0x1c9794(0x116)][_0x1c9794(0x176)](_0x534de1),!![];return![];}[a0_0x5477f5(0x1f3)](_0xc7a274={}){const _0xc45744=a0_0x5477f5,_0x4c3dc0={'eNeXE':function(_0x196fcb,_0x8d1c27){return _0x196fcb>=_0x8d1c27;},'JWxaR':function(_0x3237bd,_0x109356){return _0x3237bd&&_0x109356;},'iBJzF':_0xc45744(0x199),'xURoU':function(_0x161877,_0x326ccb){return _0x161877/_0x326ccb;},'FnNxw':function(_0x31a40f){return _0x31a40f();},'fZMtf':function(_0x108043,_0xb9603d,_0xd1cbee){return _0x108043(_0xb9603d,_0xd1cbee);}},_0x5586bf=_0xc7a274[_0xc45744(0x129)]||0xea60;this[_0xc45744(0xe9)](_0xc45744(0x1eb)+_0x4c3dc0[_0xc45744(0x148)](_0x5586bf,0x3e8)+_0xc45744(0x18c));const _0x3b0f31=async()=>{const _0x7fd30d=_0xc45744;if(this[_0x7fd30d(0x192)])return;this[_0x7fd30d(0x69)]=new Date();try{const _0x3d6bf3=await this[_0x7fd30d(0x1a3)]();for(const _0x153565 of _0x3d6bf3){if(this[_0x7fd30d(0xb8)][_0x7fd30d(0x1f8)](_0x153565['id']))continue;const _0x309a91=_0xc7a274[_0x7fd30d(0x1c8)]?_0xc7a274[_0x7fd30d(0x1c8)][_0x7fd30d(0xa0)](_0x26c84f=>_0x153565[_0x7fd30d(0x1e9)][_0x7fd30d(0x65)]()[_0x7fd30d(0x1df)](_0x26c84f[_0x7fd30d(0x65)]())||_0x153565[_0x7fd30d(0xdf)][_0x7fd30d(0x65)]()[_0x7fd30d(0x1df)](_0x26c84f[_0x7fd30d(0x65)]())):!![],_0xc98b95=_0xc7a274[_0x7fd30d(0x17e)]?_0x4c3dc0[_0x7fd30d(0x142)](_0x153565[_0x7fd30d(0x67)],_0xc7a274[_0x7fd30d(0x17e)]):!![];if(_0x4c3dc0[_0x7fd30d(0x21e)](_0x309a91,_0xc98b95)){const _0x46741d=_0xc7a274[_0x7fd30d(0x19d)]||_0x7fd30d(0xd0)+_0x153565[_0x7fd30d(0x144)]+_0x7fd30d(0x70);this[_0x7fd30d(0xe9)](_0x7fd30d(0xfd)+_0x153565[_0x7fd30d(0x1e9)]+_0x7fd30d(0x13b)),await this[_0x7fd30d(0x1e6)](_0x153565['id'],_0x153565[_0x7fd30d(0x67)],_0x46741d);}}}catch(_0x1cf0dd){this[_0x7fd30d(0xe9)](_0x7fd30d(0x141)+_0x1cf0dd[_0x7fd30d(0x128)],_0x4c3dc0[_0x7fd30d(0x10d)]);}};_0x4c3dc0[_0xc45744(0x92)](_0x3b0f31),this[_0xc45744(0x12a)]=_0x4c3dc0[_0xc45744(0x112)](setInterval,_0x3b0f31,_0x5586bf);}async[a0_0x5477f5(0x196)](_0x4b87fa,_0x2f6563){const _0x46b8ef=a0_0x5477f5,_0x11586f={'OSwdh':_0x46b8ef(0xb2)},_0x5d43c6=a0_0xcb9112[_0x46b8ef(0x193)](this[_0x46b8ef(0xd7)],_0x4b87fa);!a0_0x379b8d[_0x46b8ef(0xe3)](_0x5d43c6)&&a0_0x379b8d[_0x46b8ef(0x1a5)](_0x5d43c6,{'recursive':!![]});this[_0x46b8ef(0xe9)](_0x46b8ef(0x110)+_0x5d43c6);try{await this[_0x46b8ef(0x123)](_0x4b87fa,_0x2f6563),this[_0x46b8ef(0xe9)](_0x46b8ef(0x1f1));}catch(_0x49c7df){this[_0x46b8ef(0xe9)](_0x46b8ef(0xee)+_0x49c7df,_0x11586f[_0x46b8ef(0x159)]);}return a0_0xcb9112[_0x46b8ef(0xd5)](_0x5d43c6);}async[a0_0x5477f5(0x1e4)](_0x2edc50,_0x346971){const _0xab8aa8=a0_0x5477f5,_0x5cb4bb={'OXYAz':function(_0x2b86d8,_0x42c13b){return _0x2b86d8(_0x42c13b);},'IXDcf':_0xab8aa8(0x10a),'XfEfa':_0xab8aa8(0x121),'kKcol':_0xab8aa8(0x195),'ehaRW':_0xab8aa8(0xcf)},_0x32c8fd=a0_0xcb9112[_0xab8aa8(0x193)](this[_0xab8aa8(0xd7)],_0x2edc50);return this[_0xab8aa8(0xe9)](_0xab8aa8(0x1d6)+_0x2edc50+':\x20'+_0x346971),new Promise(_0x23eacb=>{const _0x4504e0=_0xab8aa8,_0x5e45f4={'IRPsI':_0x5cb4bb[_0x4504e0(0x9c)],'OigSQ':_0x5cb4bb[_0x4504e0(0x146)]};let _0x3efa20='';const [_0x22a5bb,..._0x21b310]=_0x346971[_0x4504e0(0x1f6)]('\x20'),_0x305f15=(0x0,a0_0x251812[_0x4504e0(0x207)])(_0x22a5bb,_0x21b310,{'cwd':_0x32c8fd,'shell':!![]});_0x305f15[_0x4504e0(0x7f)]['on'](_0x5cb4bb[_0x4504e0(0x1be)],_0x185253=>{const _0x4c3c55=_0x4504e0,_0xcc2a22=_0x185253[_0x4c3c55(0x10b)]();_0x3efa20+=_0xcc2a22,this[_0x4c3c55(0x200)](_0x5e45f4[_0x4c3c55(0x13d)],{'jobId':_0x2edc50,'chunk':_0xcc2a22});if(this[_0x4c3c55(0x13a)])this[_0x4c3c55(0x184)](_0x2edc50,_0x4c3c55(0xe6)+_0xcc2a22[_0x4c3c55(0xf2)](0x0,0xc8)+_0x4c3c55(0xd3))[_0x4c3c55(0x19e)](()=>{});}),_0x305f15[_0x4504e0(0x12e)]['on'](_0x5cb4bb[_0x4504e0(0x1be)],_0x26f957=>{const _0x9ddb7c=_0x4504e0;_0x3efa20+=_0x26f957[_0x9ddb7c(0x10b)](),this[_0x9ddb7c(0x200)](_0x5e45f4[_0x9ddb7c(0x1dc)],{'jobId':_0x2edc50,'chunk':_0x26f957[_0x9ddb7c(0x10b)]()});}),_0x305f15['on'](_0x5cb4bb[_0x4504e0(0x156)],_0x22c959=>{const _0x289cb3=_0x4504e0;this[_0x289cb3(0xe9)](_0x289cb3(0x216)+_0x22c959),_0x5cb4bb[_0x289cb3(0x10c)](_0x23eacb,{'exitCode':_0x22c959,'output':_0x3efa20});});});}async[a0_0x5477f5(0x11f)](_0x5caa12,_0x31786a){const _0x4c30d8=a0_0x5477f5,_0x2a9ac1=a0_0xcb9112[_0x4c30d8(0x193)](this[_0x4c30d8(0xd7)],_0x5caa12);this[_0x4c30d8(0xe9)](_0x4c30d8(0x8f)+_0x31786a[_0x4c30d8(0x150)]+_0x4c30d8(0x172)+_0x5caa12+_0x4c30d8(0xd3));const _0x4d0802=[];for(const _0x3e5963 of _0x31786a){const _0x4dce57=a0_0xcb9112[_0x4c30d8(0x193)](_0x2a9ac1,_0x3e5963);a0_0x379b8d[_0x4c30d8(0xe3)](_0x4dce57)&&(await this[_0x4c30d8(0x1b4)](_0x5caa12,_0x3e5963,_0x4dce57),_0x4d0802[_0x4c30d8(0x18b)](_0x3e5963));}const _0x38579a=_0x4c30d8(0x187)+_0x4d0802[_0x4c30d8(0x1e2)](_0x1ce80a=>'-\x20'+_0x1ce80a)[_0x4c30d8(0x193)]('\x0a');return await this[_0x4c30d8(0x184)](_0x5caa12,_0x38579a),_0x4d0802;}[a0_0x5477f5(0x81)](){const _0x1bc5e8=a0_0x5477f5,_0x2b4c55={'vkjcJ':_0x1bc5e8(0xbb),'ZbpnM':function(_0x1445fd,_0x35b788){return _0x1445fd!==_0x35b788;},'ZOZGb':_0x1bc5e8(0xc3),'MMOIj':_0x1bc5e8(0x20f),'xQiWY':_0x1bc5e8(0xb2)};if(!this[_0x1bc5e8(0x16d)]||!a0_0x379b8d[_0x1bc5e8(0xe3)](this[_0x1bc5e8(0x16d)]))return;try{const _0x34a1bc=JSON[_0x1bc5e8(0x11a)](a0_0x379b8d[_0x1bc5e8(0x223)](this[_0x1bc5e8(0x16d)],_0x2b4c55[_0x1bc5e8(0x64)]));_0x34a1bc[_0x1bc5e8(0x8c)]&&Object[_0x1bc5e8(0x1cd)](_0x34a1bc[_0x1bc5e8(0x8c)])[_0x1bc5e8(0x147)](([_0x3d84a5,_0x1a1d0b])=>{const _0x444371=_0x1bc5e8;this[_0x444371(0x8c)][_0x444371(0xa4)](_0x3d84a5,_0x1a1d0b);}),_0x34a1bc[_0x1bc5e8(0xb8)]&&_0x34a1bc[_0x1bc5e8(0xb8)][_0x1bc5e8(0x147)](_0x596ed3=>this[_0x1bc5e8(0xb8)][_0x1bc5e8(0x6b)](_0x596ed3)),_0x2b4c55[_0x1bc5e8(0xc6)](_0x34a1bc[_0x1bc5e8(0x192)],undefined)&&(this[_0x1bc5e8(0x192)]=_0x34a1bc[_0x1bc5e8(0x192)]),this[_0x1bc5e8(0xe9)](_0x1bc5e8(0x16c)+this[_0x1bc5e8(0x8c)][_0x1bc5e8(0x1dd)]+_0x1bc5e8(0x1a0)+(this[_0x1bc5e8(0x192)]?_0x2b4c55[_0x1bc5e8(0x126)]:_0x2b4c55[_0x1bc5e8(0x1d0)]));}catch(_0x4822e7){this[_0x1bc5e8(0xe9)](_0x1bc5e8(0x124)+_0x4822e7[_0x1bc5e8(0x128)],_0x2b4c55[_0x1bc5e8(0x1e5)]);}}[a0_0x5477f5(0x1bc)](){const _0x32f536=a0_0x5477f5,_0x16210e={'vEOgg':_0x32f536(0xb2)};if(!this[_0x32f536(0x16d)])return;try{const _0x1e9406={'activeMissions':Object[_0x32f536(0x194)](this[_0x32f536(0x8c)]),'bidCache':Array[_0x32f536(0xe4)](this[_0x32f536(0xb8)]),'autopilotPaused':this[_0x32f536(0x192)]};a0_0x379b8d[_0x32f536(0x89)](this[_0x32f536(0x16d)],JSON[_0x32f536(0x6f)](_0x1e9406,null,0x2));}catch(_0x39f122){this[_0x32f536(0xe9)](_0x32f536(0x1b5)+_0x39f122[_0x32f536(0x128)],_0x16210e[_0x32f536(0x190)]);}}async[a0_0x5477f5(0x222)](_0x4f36e0,_0x2bc817=!![]){const _0x5f3ecd=a0_0x5477f5,_0x36bf51={'GtAWh':_0x5f3ecd(0x87)};this[_0x5f3ecd(0x77)]&&this[_0x5f3ecd(0x77)][_0x5f3ecd(0x200)](_0x36bf51[_0x5f3ecd(0x9e)],{'jobId':_0x4f36e0,'isTyping':_0x2bc817});}async[a0_0x5477f5(0xac)](_0x11f75b){const _0xf97766=a0_0x5477f5;if(!this[_0xf97766(0x130)])return;return this[_0xf97766(0xe2)][_0xf97766(0x169)](_0xf97766(0x180)+this[_0xf97766(0x130)]+_0xf97766(0x98),_0x11f75b,{'headers':{'Authorization':_0xf97766(0xf6)+this[_0xf97766(0x90)]}});}async[a0_0x5477f5(0x1a3)](){const _0x308b92=a0_0x5477f5,_0x1bca99={'bPeCz':_0x308b92(0x1bb)},_0x51fa08=await this[_0x308b92(0xe2)][_0x308b92(0x82)](_0x1bca99[_0x308b92(0x7e)],{'headers':{'Authorization':_0x308b92(0xf6)+this[_0x308b92(0x90)]}});return _0x51fa08[_0x308b92(0x195)][_0x308b92(0x195)][_0x308b92(0x175)](_0x33f04c=>_0x33f04c[_0x308b92(0x1fd)]===_0x308b92(0xc7))[_0x308b92(0x1e2)](_0x91d917=>this[_0x308b92(0xa2)](_0x91d917));}async[a0_0x5477f5(0x1f0)](_0x4a642c){const _0x2b2557=a0_0x5477f5,_0x4052aa=await this[_0x2b2557(0xe2)][_0x2b2557(0x82)](_0x2b2557(0x16f)+_0x4a642c,{'headers':{'Authorization':_0x2b2557(0xf6)+this[_0x2b2557(0x90)]}});return this[_0x2b2557(0xa2)](_0x4052aa[_0x2b2557(0x195)][_0x2b2557(0xa3)]);}async[a0_0x5477f5(0x1e6)](_0x1bb987,_0x5b526f,_0x319d3a){const _0x56aefb=a0_0x5477f5,_0x14bc4b={'AljjD':_0x56aefb(0x17f)};try{const _0x572387=await this[_0x56aefb(0xe2)][_0x56aefb(0x169)](_0x14bc4b[_0x56aefb(0x1c9)],{'jobId':_0x1bb987,'amount':_0x5b526f,'message':_0x319d3a,'apiKey':this[_0x56aefb(0x90)]},{'headers':{'Authorization':_0x56aefb(0xf6)+this[_0x56aefb(0x90)]}});return _0x572387[_0x56aefb(0x195)][_0x56aefb(0x1e3)]&&(this[_0x56aefb(0xb8)][_0x56aefb(0x6b)](_0x1bb987),this[_0x56aefb(0x1bc)]()),_0x572387[_0x56aefb(0x195)];}catch(_0x58c961){return{'success':![],'error':_0x58c961[_0x56aefb(0x1a8)]?.[_0x56aefb(0x195)]?.[_0x56aefb(0xb3)]||_0x58c961[_0x56aefb(0x128)]};}}async[a0_0x5477f5(0x184)](_0x18ee4e,_0x3e53f7){const _0x5e93e1=a0_0x5477f5,_0x2c1073=await this[_0x5e93e1(0xe2)][_0x5e93e1(0x169)](_0x5e93e1(0x16f)+_0x18ee4e+_0x5e93e1(0x21c),{'content':_0x3e53f7,'senderId':this[_0x5e93e1(0x130)]},{'headers':{'Authorization':_0x5e93e1(0xf6)+this[_0x5e93e1(0x90)]}});return _0x2c1073[_0x5e93e1(0x195)];}async[a0_0x5477f5(0x227)](_0xc5ac7a){const _0x24d73c=a0_0x5477f5,_0x38b402=await this[_0x24d73c(0xe2)][_0x24d73c(0x82)](_0x24d73c(0x16f)+_0xc5ac7a+_0x24d73c(0x21c),{'headers':{'Authorization':_0x24d73c(0xf6)+this[_0x24d73c(0x90)]}});return a0_0x41ac02['z'][_0x24d73c(0x21f)](exports[_0x24d73c(0x165)])[_0x24d73c(0x11a)](_0x38b402[_0x24d73c(0x195)][_0x24d73c(0x186)]);}async[a0_0x5477f5(0x149)](_0x20bb7a,_0x4826d1,_0x5466d4){const _0x20cb3f=a0_0x5477f5,_0x2e5323={'HcIJL':_0x20cb3f(0xf1)},_0x592e4b=await this[_0x20cb3f(0xe2)][_0x20cb3f(0x169)](_0x20cb3f(0x16f)+_0x20bb7a+_0x20cb3f(0x17a),{'url':_0x4826d1,'name':_0x5466d4,'type':_0x2e5323[_0x20cb3f(0x73)],'uploaderId':this[_0x20cb3f(0x130)]},{'headers':{'Authorization':_0x20cb3f(0xf6)+this[_0x20cb3f(0x90)]}});return _0x592e4b[_0x20cb3f(0x195)][_0x20cb3f(0x1e3)];}async[a0_0x5477f5(0x1f7)](_0x15756c,_0x241308,_0x1b7772){const _0x1da307=a0_0x5477f5,_0x3d5239={'RpEPr':function(_0x1b5401,_0x497929){return _0x1b5401===_0x497929;},'yAcGg':_0x1da307(0x155),'WEEeW':_0x1da307(0x199)};if(!a0_0x379b8d[_0x1da307(0xe3)](_0x241308))throw new Error(_0x1da307(0xa6)+_0x241308);if(_0x3d5239[_0x1da307(0x145)](a0_0x379b8d[_0x1da307(0xa7)](_0x241308)[_0x1da307(0x1dd)],0x0))throw new Error(_0x1da307(0x1cb)+_0x241308);const _0xd6aa43=_0x1b7772||a0_0xcb9112[_0x1da307(0x1d3)](_0x241308);try{const _0x446a20=await this[_0x1da307(0xe2)][_0x1da307(0x82)](_0x1da307(0x1d1)+_0xd6aa43,{'headers':{'Authorization':_0x1da307(0xf6)+this[_0x1da307(0x90)]}}),{url:_0x3680db}=_0x446a20[_0x1da307(0x195)],_0x40b9ea=a0_0x379b8d[_0x1da307(0x223)](_0x241308);return await a0_0x58d3cc[_0x1da307(0x125)][_0x1da307(0x151)](_0x3680db,_0x40b9ea,{'headers':{'Content-Type':_0x3d5239[_0x1da307(0x13f)]}}),this[_0x1da307(0x149)](_0x15756c,_0x3680db,_0xd6aa43);}catch(_0x4f14e5){this[_0x1da307(0xe9)](_0x1da307(0x153)+_0x4f14e5[_0x1da307(0x128)],_0x3d5239[_0x1da307(0x97)]);throw _0x4f14e5;}}async[a0_0x5477f5(0xf7)](_0x3b1660){const _0xa4d387=a0_0x5477f5,_0x2a770b={'LKCXa':_0xa4d387(0x1aa)},_0x333385=await this[_0xa4d387(0xe2)][_0xa4d387(0x169)](_0xa4d387(0x16f)+_0x3b1660+_0xa4d387(0x71),{'userId':this[_0xa4d387(0x130)],'role':_0x2a770b[_0xa4d387(0xdd)]},{'headers':{'Authorization':_0xa4d387(0xf6)+this[_0xa4d387(0x90)]}});return _0x333385[_0xa4d387(0x195)][_0xa4d387(0x1e3)]&&(this[_0xa4d387(0x8c)][_0xa4d387(0x176)](_0x3b1660),this[_0xa4d387(0x1bc)]()),_0x333385[_0xa4d387(0x195)];}async[a0_0x5477f5(0x123)](_0x3109,_0x5ef269){const _0x39b15a=a0_0x5477f5;if(!this[_0x39b15a(0x130)])return;return this[_0x39b15a(0xe2)][_0x39b15a(0x169)](_0x39b15a(0x16f)+_0x3109+_0x39b15a(0x206),{'name':_0x5ef269},{'headers':{'Authorization':_0x39b15a(0xf6)+this[_0x39b15a(0x90)]}});}async[a0_0x5477f5(0x1b4)](_0x843e80,_0x895399,_0x454a2e,_0x54b6c9=![]){const _0x5bbcf3=a0_0x5477f5,_0x7c544={'nFuKE':_0x5bbcf3(0xbb)};if(!this[_0x5bbcf3(0x130)])return;let _0xb67199=_0x454a2e;if(!_0x54b6c9&&a0_0x379b8d[_0x5bbcf3(0xe3)](_0x454a2e))try{_0xb67199=a0_0x379b8d[_0x5bbcf3(0x223)](_0x454a2e,_0x7c544[_0x5bbcf3(0x215)]);}catch(_0x23884b){}return this[_0x5bbcf3(0xe2)][_0x5bbcf3(0x169)](_0x5bbcf3(0x16f)+_0x843e80+_0x5bbcf3(0x1ab),{'path':_0x895399,'content':_0xb67199,'isBlob':_0x54b6c9},{'headers':{'Authorization':_0x5bbcf3(0xf6)+this[_0x5bbcf3(0x90)]}});}async[a0_0x5477f5(0x133)](_0x545893){const _0x308648=a0_0x5477f5;if(!this[_0x308648(0x130)])return;return this[_0x308648(0xe2)][_0x308648(0x169)](_0x308648(0x180)+this[_0x308648(0x130)]+_0x308648(0x98),{'tokensUsed':_0x545893},{'headers':{'Authorization':_0x308648(0xf6)+this[_0x308648(0x90)]}});}async[a0_0x5477f5(0x12d)](_0x286087,_0x5c9eeb){const _0x317383=a0_0x5477f5,_0x4a42d5={'ADuVu':_0x317383(0x205),'jLPkN':_0x317383(0x199)};this[_0x317383(0xe9)](_0x317383(0x1a9)+_0x5c9eeb);try{const _0x387e8b=_0x317383(0x18f)+_0x5c9eeb+_0x317383(0x191)+_0x286087+'.',_0x3f68d0=await this[_0x317383(0x1e4)](_0x286087,_0x317383(0x158)+_0x286087+_0x317383(0xea)+_0x387e8b+'\x22'),_0x13f0c6=_0x317383(0x209)+_0x5c9eeb+_0x317383(0xdb)+_0x286087+'.',_0x378441=await this[_0x317383(0x1e4)](_0x286087,_0x317383(0x101)+_0x286087+_0x317383(0xea)+_0x13f0c6+'\x22');return await this[_0x317383(0x184)](_0x286087,_0x4a42d5[_0x317383(0xbc)]),{'pmSession':_0x3f68d0,'engSession':_0x378441};}catch(_0x588695){this[_0x317383(0xe9)](_0x317383(0x1e1)+_0x588695[_0x317383(0x128)],_0x4a42d5[_0x317383(0x118)]);}}async[a0_0x5477f5(0x210)](_0x323eb9,_0x2d69ec){const _0x32df60=a0_0x5477f5;if(!this[_0x32df60(0x130)])return;return this[_0x32df60(0xe2)][_0x32df60(0x169)](_0x32df60(0x16f)+_0x323eb9+_0x32df60(0x17c),{'progress':_0x2d69ec},{'headers':{'Authorization':_0x32df60(0xf6)+this[_0x32df60(0x90)]}});}async[a0_0x5477f5(0xb1)](_0x3fcd45){const _0x38b766=a0_0x5477f5;if(!this[_0x38b766(0x130)])return;return this[_0x38b766(0xe2)][_0x38b766(0x169)](_0x38b766(0x180)+this[_0x38b766(0x130)]+_0x38b766(0x14b),{'message':_0x3fcd45},{'headers':{'Authorization':_0x38b766(0xf6)+this[_0x38b766(0x90)]}});}async[a0_0x5477f5(0x10f)](_0x4b8d4d){const _0x310d49=a0_0x5477f5;if(!this[_0x310d49(0x130)])return;return this[_0x310d49(0xe2)][_0x310d49(0x169)](_0x310d49(0x180)+this[_0x310d49(0x130)]+_0x310d49(0x14b),{'message':_0x310d49(0x213),'data':{..._0x4b8d4d,'timestamp':new Date()[_0x310d49(0x76)](),'sdk_version':a0_0x2d6c1c[_0x310d49(0x8a)],'uptime':process[_0x310d49(0x173)]()}},{'headers':{'Authorization':_0x310d49(0xf6)+this[_0x310d49(0x90)]}});}async[a0_0x5477f5(0x1b6)](_0x4d075e,_0x1d0e45=a0_0x5477f5(0xc5)){const _0x31dd05=a0_0x5477f5;if(!this[_0x31dd05(0x130)])return;if(this[_0x31dd05(0xca)])try{a0_0x379b8d[_0x31dd05(0x1a6)](this[_0x31dd05(0xca)],'['+new Date()[_0x31dd05(0x76)]()+_0x31dd05(0x219)+_0x1d0e45+']\x20'+_0x4d075e+'\x0a');}catch(_0x81454f){}try{await this[_0x31dd05(0xe2)][_0x31dd05(0x169)](_0x31dd05(0x180)+this[_0x31dd05(0x130)]+_0x31dd05(0x1b1),{'message':_0x4d075e,'level':_0x1d0e45},{'headers':{'Authorization':_0x31dd05(0xf6)+this[_0x31dd05(0x90)]}});if(this[_0x31dd05(0x13a)])console[_0x31dd05(0x1b6)]('['+_0x1d0e45+']\x20'+_0x4d075e);}catch(_0x4d6704){}}[a0_0x5477f5(0x162)](_0x1a2e39=0x7530){const _0x29f70e=a0_0x5477f5,_0x2d2ecf={'UkfLO':function(_0x9350ad,_0x1a7262){return _0x9350ad(_0x1a7262);},'fDPou':function(_0x1597ff,_0x55f342,_0x5d482c){return _0x1597ff(_0x55f342,_0x5d482c);}};if(!this[_0x29f70e(0x130)])return;if(this[_0x29f70e(0x1b3)])_0x2d2ecf[_0x29f70e(0xff)](clearInterval,this[_0x29f70e(0x1b3)]);this[_0x29f70e(0xab)](),this[_0x29f70e(0x1b3)]=_0x2d2ecf[_0x29f70e(0xc4)](setInterval,()=>this[_0x29f70e(0xab)](),_0x1a2e39);}async[a0_0x5477f5(0xab)](){const _0x55f5de=a0_0x5477f5;if(!this[_0x55f5de(0x130)])return;try{await this[_0x55f5de(0xe2)][_0x55f5de(0x169)](_0x55f5de(0x180)+this[_0x55f5de(0x130)]+_0x55f5de(0x11c),{},{'headers':{'Authorization':_0x55f5de(0xf6)+this[_0x55f5de(0x90)]}});}catch(_0x59d3fd){}}[a0_0x5477f5(0xe9)](_0x420cd9,_0x177100=a0_0x5477f5(0xc5)){const _0x11683b=a0_0x5477f5;if(this[_0x11683b(0x13a)])console[_0x11683b(0x1b6)](_0x11683b(0x1e0)+_0x420cd9);}[a0_0x5477f5(0x7d)](_0x37f252){const _0x49e289=a0_0x5477f5,_0x3af6b1={'cGacj':_0x49e289(0x128)};this['on'](_0x3af6b1[_0x49e289(0x152)],_0x37f252);}[a0_0x5477f5(0x1f5)](_0xd550c2){const _0x2b9d29=a0_0x5477f5,_0x37e09f={'kWolX':_0x2b9d29(0xa3)};this['on'](_0x37e09f[_0x2b9d29(0x1cf)],_0xd550c2);}[a0_0x5477f5(0xe7)](_0xae92a2){const _0x20967d=a0_0x5477f5,_0x1cbcb2={'otjXX':_0x20967d(0x143)};this['on'](_0x1cbcb2[_0x20967d(0x16e)],_0xae92a2);}}exports[a0_0x5477f5(0xd6)]=a0_0x2d6c1c,a0_0x2d6c1c[a0_0x5477f5(0x8a)]=a0_0x1ba5ad,exports[a0_0x5477f5(0x125)]=a0_0x2d6c1c;
|
package/init.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const path = require('path');
|
|
5
|
-
const { execSync
|
|
5
|
+
const { execSync } = require('child_process');
|
|
6
6
|
const readline = require('readline');
|
|
7
7
|
|
|
8
8
|
// 0. Get version from package.json
|
|
@@ -36,7 +36,7 @@ async function main() {
|
|
|
36
36
|
|
|
37
37
|
// 2. Select Brain
|
|
38
38
|
console.log("\n🧠 Choose an Execution Engine (Brain):");
|
|
39
|
-
console.log(" [1] OpenClaw (Advanced:
|
|
39
|
+
console.log(" [1] OpenClaw (Advanced: Swarm Architecture - Multi-process Workers)");
|
|
40
40
|
console.log(" [2] Direct LLM (Cloud: Gemini, OpenAI, Claude)");
|
|
41
41
|
console.log(" [3] Bare Skeleton (Minimal: Write your own logic)");
|
|
42
42
|
|
|
@@ -52,10 +52,12 @@ async function main() {
|
|
|
52
52
|
envVars += `RENTABOTS_API_URL=${defaultUrl}\n`;
|
|
53
53
|
|
|
54
54
|
let agentTemplate = "";
|
|
55
|
+
let includeWorker = false;
|
|
55
56
|
|
|
56
57
|
if (brainChoice === '1') {
|
|
57
|
-
console.log("✅ Selected: OpenClaw
|
|
58
|
-
agentTemplate =
|
|
58
|
+
console.log("✅ Selected: OpenClaw Swarm Architecture.");
|
|
59
|
+
agentTemplate = getOpenClawQueenTemplate(CURRENT_VERSION);
|
|
60
|
+
includeWorker = true;
|
|
59
61
|
} else if (brainChoice === '2') {
|
|
60
62
|
console.log("\n☁️ Select LLM Provider:");
|
|
61
63
|
console.log(" [1] Gemini (Recommended)");
|
|
@@ -104,6 +106,10 @@ async function main() {
|
|
|
104
106
|
fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2));
|
|
105
107
|
fs.writeFileSync('.env', envVars);
|
|
106
108
|
fs.writeFileSync('agent.js', agentTemplate);
|
|
109
|
+
|
|
110
|
+
if (includeWorker) {
|
|
111
|
+
fs.writeFileSync('worker.js', getWorkerTemplate());
|
|
112
|
+
}
|
|
107
113
|
|
|
108
114
|
// 5. Install
|
|
109
115
|
console.log('\n📦 Installing dependencies...');
|
|
@@ -122,107 +128,123 @@ async function main() {
|
|
|
122
128
|
|
|
123
129
|
// --- TEMPLATES ---
|
|
124
130
|
|
|
125
|
-
function
|
|
131
|
+
function getOpenClawQueenTemplate(ver) {
|
|
126
132
|
return `
|
|
127
133
|
require('dotenv').config();
|
|
128
134
|
const { Agent } = require('rentabots-sdk');
|
|
129
135
|
|
|
136
|
+
/**
|
|
137
|
+
* 👑 THE QUEEN (Main Process)
|
|
138
|
+
* Orchestrates scouting, bidding, and worker management.
|
|
139
|
+
*/
|
|
130
140
|
async function main() {
|
|
131
|
-
const
|
|
141
|
+
const queen = new Agent({
|
|
132
142
|
baseUrl: process.env.RENTABOTS_API_URL,
|
|
133
143
|
persistState: true,
|
|
134
|
-
debug: true
|
|
135
|
-
localLogPath: './agent.log' // 📂 High-resolution local logs
|
|
144
|
+
debug: true
|
|
136
145
|
});
|
|
137
146
|
|
|
138
|
-
await
|
|
139
|
-
await
|
|
140
|
-
|
|
141
|
-
const TOOLS_LIST = "Chrome Browser, Bash Shell, Python 3.10, Node.js 22, File System";
|
|
147
|
+
await queen.connect();
|
|
148
|
+
await queen.log("👑 Queen Process Initialized. Monitoring RentaBots Grid.");
|
|
142
149
|
|
|
143
|
-
// --- 📂 RESUMPTION
|
|
144
|
-
for (const [jobId, job] of
|
|
150
|
+
// --- 📂 MISSION RESUMPTION ---
|
|
151
|
+
for (const [jobId, job] of queen.activeMissions) {
|
|
145
152
|
if (job.status === 'in_progress') {
|
|
146
|
-
await
|
|
147
|
-
|
|
153
|
+
await queen.log(\`📡 Resuming Worker for Mission: \${job.title}\`);
|
|
154
|
+
queen.spawnWorker(job);
|
|
148
155
|
}
|
|
149
156
|
}
|
|
150
157
|
|
|
151
|
-
// 1. AUTO-PILOT (
|
|
152
|
-
|
|
158
|
+
// 1. AUTO-PILOT (Scout & Bid)
|
|
159
|
+
queen.startAutopilot({
|
|
153
160
|
keywords: ['python', 'script', 'scraper', 'react', 'fix', 'automation'],
|
|
154
161
|
minBudget: 1,
|
|
155
162
|
scoutingInterval: 60000
|
|
156
163
|
});
|
|
157
164
|
|
|
158
|
-
// 2.
|
|
159
|
-
|
|
160
|
-
await
|
|
161
|
-
await agent.sendMessage(job.id, "🎯 Mission Secured. I am initializing my OpenClaw environment.");
|
|
162
|
-
await agent.sendMessage(job.id, \`🔧 ACTIVE TOOLS: \${TOOLS_LIST}\`);
|
|
165
|
+
// 2. ASSIGNMENT HANDLER
|
|
166
|
+
queen.on('assignment', async (job) => {
|
|
167
|
+
await queen.log(\`🎯 MISSION SECURED: \${job.title}\`, 'SUCCESS');
|
|
163
168
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
// 👷 Spawn a dedicated Worker process for this mission
|
|
170
|
+
await queen.spawnWorker(job);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
console.log("👀 Queen is standing by for marketplace events...");
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
main().catch(console.error);`;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function getWorkerTemplate() {
|
|
180
|
+
return `
|
|
181
|
+
/**
|
|
182
|
+
* 👷 THE WORKER (Dedicated Process)
|
|
183
|
+
* Handles execution and client communication for a single mission.
|
|
184
|
+
*/
|
|
185
|
+
|
|
186
|
+
const { Agent } = require('rentabots-sdk');
|
|
187
|
+
const job = JSON.parse(process.argv[2]);
|
|
188
|
+
|
|
189
|
+
async function main() {
|
|
190
|
+
console.log(\`👷 Worker started for Job: \${job.id}\`);
|
|
191
|
+
|
|
192
|
+
const agent = new Agent({
|
|
193
|
+
apiKey: process.env.RENTABOTS_API_KEY,
|
|
194
|
+
baseUrl: process.env.RENTABOTS_API_URL,
|
|
195
|
+
persistState: false, // Managed by Queen
|
|
196
|
+
debug: true
|
|
171
197
|
});
|
|
172
198
|
|
|
199
|
+
await agent.connect();
|
|
200
|
+
|
|
201
|
+
// 1. Initialize Workspace
|
|
202
|
+
const workspacePath = await agent.initializeMission(job.id);
|
|
203
|
+
await agent.sendMessage(job.id, "👷 Autonomous Worker linked to Mission. Initializing environment...");
|
|
204
|
+
await agent.sendMessage(job.id, "🔧 ACTIVE TOOLS: Chrome Browser, Bash Shell, Python 3.10, Node.js 22, File System.");
|
|
205
|
+
|
|
206
|
+
// 2. High-Priority Chat Listener
|
|
173
207
|
agent.on('message', async (msg) => {
|
|
174
208
|
if (msg.sender.type === 'agent') return;
|
|
175
|
-
await agent.log(\`📩 Incoming Transmission: \${msg.content.slice(0, 50)}...\`);
|
|
176
209
|
|
|
177
|
-
await agent.setTyping(
|
|
210
|
+
await agent.setTyping(job.id, true);
|
|
211
|
+
await agent.log(\`👷 Processing Instruction: \${msg.content}\`);
|
|
178
212
|
|
|
213
|
+
// --- 🦞 OPENCLAW EXECUTION ---
|
|
179
214
|
try {
|
|
180
|
-
await agent.
|
|
181
|
-
const { exitCode, output } = await agent.execute(msg.jobId, \`openclaw agent "\${msg.content}"\`);
|
|
215
|
+
const { exitCode, output } = await agent.execute(job.id, \`openclaw agent "\${msg.content}"\`);
|
|
182
216
|
|
|
183
217
|
if (exitCode === 0) {
|
|
184
|
-
await agent.
|
|
185
|
-
|
|
218
|
+
await agent.sendMessage(job.id, "✅ Mission objectives updated. Synchronizing deliverables...");
|
|
219
|
+
// Auto-deliver files found in workspace
|
|
220
|
+
const fs = require('fs');
|
|
221
|
+
const path = require('path');
|
|
222
|
+
const files = fs.readdirSync(workspacePath);
|
|
223
|
+
if (files.length > 0) await agent.deliver(job.id, files);
|
|
186
224
|
} else {
|
|
187
|
-
await agent.
|
|
188
|
-
await agent.
|
|
189
|
-
await agent.notifyOwner(\`OpenClaw unit failed on Job \${msg.jobId}.\`);
|
|
225
|
+
await agent.sendMessage(job.id, "⚠️ I encountered a technical roadblock. Escalating to supervisor.");
|
|
226
|
+
await agent.notifyOwner(\`Worker failed on Job \${job.id}. Output: \${output.slice(0, 200)}\`);
|
|
190
227
|
}
|
|
191
228
|
} catch (err) {
|
|
192
|
-
|
|
229
|
+
console.error("Worker Execution Error:", err.message);
|
|
193
230
|
}
|
|
194
231
|
|
|
195
|
-
await agent.setTyping(
|
|
232
|
+
await agent.setTyping(job.id, false);
|
|
196
233
|
});
|
|
197
234
|
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
async function executeWork(agent, job) {
|
|
202
|
-
await agent.log(\`⚙️ Starting Work Cycle for: \${job.title}\`);
|
|
203
|
-
const workspacePath = await agent.initializeMission(job.id);
|
|
204
|
-
await agent.log(\`📂 Workspace locked at: \${workspacePath}\`);
|
|
205
|
-
|
|
235
|
+
// 3. Autonomous Progress Loop
|
|
206
236
|
let progress = job.progress || 0;
|
|
207
237
|
const interval = setInterval(async () => {
|
|
208
|
-
if (progress >= 100)
|
|
209
|
-
clearInterval(interval);
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
238
|
+
if (progress >= 100) return clearInterval(interval);
|
|
212
239
|
progress += 5;
|
|
213
240
|
await agent.setProgress(job.id, progress);
|
|
214
241
|
|
|
215
|
-
if (progress % 20 === 0) {
|
|
216
|
-
await agent.log(\`📊 Progress Update: \${progress}% complete.\`);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
242
|
if (progress === 100) {
|
|
220
|
-
await agent.
|
|
221
|
-
await agent.sendMessage(job.id, "✅ [FINALIZED] Work completed and archived in your secure repository.");
|
|
243
|
+
await agent.sendMessage(job.id, "✅ [FINALIZED] Autonomous execution complete. Deliverables verified.");
|
|
222
244
|
await agent.markComplete(job.id);
|
|
223
|
-
|
|
245
|
+
process.exit(0);
|
|
224
246
|
}
|
|
225
|
-
},
|
|
247
|
+
}, 45000);
|
|
226
248
|
}
|
|
227
249
|
|
|
228
250
|
main().catch(console.error);`;
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { z } from 'zod';
|
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import * as fs from 'fs';
|
|
6
6
|
import * as path from 'path';
|
|
7
|
-
import { spawn } from 'child_process';
|
|
7
|
+
import { spawn, fork, ChildProcess } from 'child_process';
|
|
8
8
|
|
|
9
9
|
// --- TYPE DEFINITIONS ---
|
|
10
10
|
|
|
@@ -65,6 +65,8 @@ export interface AgentOptions {
|
|
|
65
65
|
workspaceRoot?: string;
|
|
66
66
|
/** Path to a local log file for redundant logging. */
|
|
67
67
|
localLogPath?: string;
|
|
68
|
+
/** Path to the worker script for Swarm Architecture. Defaults to ./worker.js */
|
|
69
|
+
workerScriptPath?: string;
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
export interface AutopilotOptions {
|
|
@@ -82,18 +84,15 @@ interface AgentState {
|
|
|
82
84
|
|
|
83
85
|
// --- CORE SDK ---
|
|
84
86
|
|
|
85
|
-
// 0. Get version from package.json
|
|
86
|
-
let CURRENT_VERSION = '0.
|
|
87
|
+
// 0. Get version from package.json
|
|
88
|
+
let CURRENT_VERSION = '1.0.1';
|
|
87
89
|
try {
|
|
88
|
-
// In dev environment
|
|
89
90
|
const pkgPath = path.join(__dirname, '..', 'package.json');
|
|
90
91
|
if (fs.existsSync(pkgPath)) {
|
|
91
92
|
const packageJson = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
92
93
|
CURRENT_VERSION = packageJson.version;
|
|
93
94
|
}
|
|
94
|
-
} catch (e) {
|
|
95
|
-
// Compiled/NPX environment fallback
|
|
96
|
-
}
|
|
95
|
+
} catch (e) {}
|
|
97
96
|
|
|
98
97
|
/**
|
|
99
98
|
* RentaBots Agent SDK
|
|
@@ -115,10 +114,15 @@ export class Agent extends EventEmitter {
|
|
|
115
114
|
private statePath: string | null = null;
|
|
116
115
|
private workspaceRoot: string;
|
|
117
116
|
private localLogPath: string | null = null;
|
|
117
|
+
private workerScriptPath: string;
|
|
118
118
|
public activeMissions = new Map<string, Job>();
|
|
119
119
|
private bidCache = new Set<string>();
|
|
120
120
|
private seenMessages = new Set<string>();
|
|
121
121
|
|
|
122
|
+
// Swarm State
|
|
123
|
+
private workers = new Map<string, ChildProcess>();
|
|
124
|
+
private targetJobId: string | null = null; // Used for Worker processes
|
|
125
|
+
|
|
122
126
|
// Autopilot State
|
|
123
127
|
private autopilotTimer: NodeJS.Timeout | null = null;
|
|
124
128
|
private autopilotPaused = false;
|
|
@@ -133,6 +137,19 @@ export class Agent extends EventEmitter {
|
|
|
133
137
|
this.heartbeatInterval = options.heartbeatInterval || 30000;
|
|
134
138
|
this.workspaceRoot = options.workspaceRoot || path.join(process.cwd(), 'workspace');
|
|
135
139
|
this.localLogPath = options.localLogPath || null;
|
|
140
|
+
this.workerScriptPath = options.workerScriptPath || path.join(process.cwd(), 'worker.js');
|
|
141
|
+
|
|
142
|
+
// 👷 Worker Mode Detection
|
|
143
|
+
// If started with mission data in CLI args, we are a worker
|
|
144
|
+
if (process.send && process.argv[2]) {
|
|
145
|
+
try {
|
|
146
|
+
const jobData = JSON.parse(process.argv[2]);
|
|
147
|
+
if (jobData && jobData.id) {
|
|
148
|
+
this.targetJobId = jobData.id;
|
|
149
|
+
this.logInternal(`Worker Mode Active for Job: ${this.targetJobId}`);
|
|
150
|
+
}
|
|
151
|
+
} catch (e) {}
|
|
152
|
+
}
|
|
136
153
|
|
|
137
154
|
if (options.persistState !== false) {
|
|
138
155
|
this.statePath = typeof options.persistState === 'string'
|
|
@@ -162,7 +179,9 @@ export class Agent extends EventEmitter {
|
|
|
162
179
|
try {
|
|
163
180
|
this.loadState();
|
|
164
181
|
|
|
165
|
-
const res = await this.api.get('agents/me'
|
|
182
|
+
const res = await this.api.get('agents/me', {
|
|
183
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
184
|
+
}).catch(err => {
|
|
166
185
|
if (err.response) {
|
|
167
186
|
throw new Error(err.response.data.error || `Server Error: ${err.response.status}`);
|
|
168
187
|
}
|
|
@@ -197,7 +216,9 @@ export class Agent extends EventEmitter {
|
|
|
197
216
|
*/
|
|
198
217
|
async fetchUnreadMessages() {
|
|
199
218
|
try {
|
|
200
|
-
const res = await this.api.get('agents/me/unread'
|
|
219
|
+
const res = await this.api.get('agents/me/unread', {
|
|
220
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
221
|
+
});
|
|
201
222
|
const messages: Message[] = res.data.messages;
|
|
202
223
|
|
|
203
224
|
if (messages.length > 0) {
|
|
@@ -213,7 +234,9 @@ export class Agent extends EventEmitter {
|
|
|
213
234
|
}
|
|
214
235
|
|
|
215
236
|
if (lastId) {
|
|
216
|
-
await this.api.post('agents/me/ack', { messageId: lastId }
|
|
237
|
+
await this.api.post('agents/me/ack', { messageId: lastId }, {
|
|
238
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
239
|
+
});
|
|
217
240
|
}
|
|
218
241
|
}
|
|
219
242
|
} catch (err: any) {
|
|
@@ -223,7 +246,9 @@ export class Agent extends EventEmitter {
|
|
|
223
246
|
|
|
224
247
|
private async syncFromCloud() {
|
|
225
248
|
try {
|
|
226
|
-
const res = await this.api.get('jobs?status=in_progress'
|
|
249
|
+
const res = await this.api.get('jobs?status=in_progress', {
|
|
250
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
251
|
+
});
|
|
227
252
|
const myJobs = res.data.data.filter((j: any) => j.agentId === this.agentId);
|
|
228
253
|
|
|
229
254
|
for (const rawJob of myJobs) {
|
|
@@ -267,6 +292,11 @@ export class Agent extends EventEmitter {
|
|
|
267
292
|
this.socket?.emit('join_mission', jobId);
|
|
268
293
|
}
|
|
269
294
|
|
|
295
|
+
// 👷 Worker: Ensure we join our specific mission room
|
|
296
|
+
if (this.targetJobId) {
|
|
297
|
+
this.socket?.emit('join_mission', this.targetJobId);
|
|
298
|
+
}
|
|
299
|
+
|
|
270
300
|
this.emit('connected');
|
|
271
301
|
});
|
|
272
302
|
|
|
@@ -286,7 +316,9 @@ export class Agent extends EventEmitter {
|
|
|
286
316
|
if (!this.seenMessages.has(msg.id)) {
|
|
287
317
|
this.seenMessages.add(msg.id);
|
|
288
318
|
this.handleIncomingMessage(msg);
|
|
289
|
-
this.api.post('agents/me/ack', { messageId: msg.id }
|
|
319
|
+
this.api.post('agents/me/ack', { messageId: msg.id }, {
|
|
320
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
321
|
+
}).catch(() => {});
|
|
290
322
|
}
|
|
291
323
|
} catch (err) {
|
|
292
324
|
this.logInternal('Failed to parse incoming socket message', 'ERROR');
|
|
@@ -337,6 +369,11 @@ export class Agent extends EventEmitter {
|
|
|
337
369
|
const targetId = cmd.replace('/bid ', '').trim();
|
|
338
370
|
this.handleManualBidRequest(msg.jobId, targetId);
|
|
339
371
|
return;
|
|
372
|
+
} else if (cmd.startsWith('/kill ')) {
|
|
373
|
+
const targetId = cmd.replace('/kill ', '').trim();
|
|
374
|
+
this.killWorker(targetId);
|
|
375
|
+
this.sendMessage(msg.jobId, `⚔️ Worker for Job ${targetId} terminated.`);
|
|
376
|
+
return;
|
|
340
377
|
}
|
|
341
378
|
}
|
|
342
379
|
|
|
@@ -345,12 +382,13 @@ export class Agent extends EventEmitter {
|
|
|
345
382
|
|
|
346
383
|
private async handleStatusRequest(jobId: string) {
|
|
347
384
|
const activeCount = this.activeMissions.size;
|
|
385
|
+
const workerCount = this.workers.size;
|
|
348
386
|
const scanTime = this.lastScoutTime ? this.lastScoutTime.toLocaleTimeString() : 'Never';
|
|
349
|
-
const status =
|
|
387
|
+
const status = `👑 [QUEEN STATUS REPORT]
|
|
350
388
|
- Active Missions: ${activeCount}
|
|
389
|
+
- Active Workers: ${workerCount}
|
|
351
390
|
- Autopilot: ${this.autopilotPaused ? 'PAUSED ⏸️' : 'RUNNING ▶️'}
|
|
352
391
|
- Last Marketplace Scan: ${scanTime}
|
|
353
|
-
- Agent ID: ${this.agentId}
|
|
354
392
|
- SDK Version: v${Agent.SDK_VERSION}`;
|
|
355
393
|
|
|
356
394
|
await this.sendMessage(jobId, status);
|
|
@@ -370,11 +408,52 @@ export class Agent extends EventEmitter {
|
|
|
370
408
|
}
|
|
371
409
|
}
|
|
372
410
|
|
|
373
|
-
// ---
|
|
411
|
+
// --- 👑 SWARM ARCHITECTURE (Multi-Process Isolation) ---
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Spawn a dedicated worker process for a specific mission.
|
|
415
|
+
* This keeps the main agent process (The Queen) lightweight and responsive.
|
|
416
|
+
*/
|
|
417
|
+
async spawnWorker(job: Job) {
|
|
418
|
+
if (!fs.existsSync(this.workerScriptPath)) {
|
|
419
|
+
throw new Error(`Worker script not found at: ${this.workerScriptPath}`);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
this.logInternal(`👑 Queen: Spawning dedicated worker for mission: ${job.title}`);
|
|
423
|
+
|
|
424
|
+
const worker = fork(this.workerScriptPath, [JSON.stringify(job)]);
|
|
425
|
+
this.workers.set(job.id, worker);
|
|
426
|
+
|
|
427
|
+
worker.on('message', (msg: any) => {
|
|
428
|
+
this.logInternal(`[Worker ${job.id.slice(0,4)}] ${msg.text || JSON.stringify(msg)}`);
|
|
429
|
+
if (msg.event === 'complete') {
|
|
430
|
+
this.workers.delete(job.id);
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
worker.on('exit', (code) => {
|
|
435
|
+
this.logInternal(`👷 Worker ${job.id.slice(0,4)} exited with code: ${code}`, code === 0 ? 'INFO' : 'ERROR');
|
|
436
|
+
this.workers.delete(job.id);
|
|
437
|
+
});
|
|
438
|
+
|
|
439
|
+
return worker;
|
|
440
|
+
}
|
|
374
441
|
|
|
375
442
|
/**
|
|
376
|
-
*
|
|
443
|
+
* Kill an active worker process
|
|
377
444
|
*/
|
|
445
|
+
killWorker(jobId: string) {
|
|
446
|
+
const worker = this.workers.get(jobId);
|
|
447
|
+
if (worker) {
|
|
448
|
+
worker.kill();
|
|
449
|
+
this.workers.delete(jobId);
|
|
450
|
+
return true;
|
|
451
|
+
}
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// --- 🧠 INTELLIGENT AUTOPILOT ---
|
|
456
|
+
|
|
378
457
|
startAutopilot(options: AutopilotOptions = {}) {
|
|
379
458
|
const interval = options.scoutingInterval || 60000;
|
|
380
459
|
this.logInternal(`🚀 Autopilot engaged. Scouting every ${interval/1000}s...`);
|
|
@@ -411,34 +490,23 @@ export class Agent extends EventEmitter {
|
|
|
411
490
|
|
|
412
491
|
// --- 📂 WORKSPACE MANAGEMENT ---
|
|
413
492
|
|
|
414
|
-
/**
|
|
415
|
-
* Initialize local and remote workspace for a mission
|
|
416
|
-
*/
|
|
417
493
|
async initializeMission(jobId: string, repoName?: string) {
|
|
418
494
|
const workspacePath = path.join(this.workspaceRoot, jobId);
|
|
419
|
-
|
|
420
495
|
if (!fs.existsSync(workspacePath)) {
|
|
421
496
|
fs.mkdirSync(workspacePath, { recursive: true });
|
|
422
497
|
}
|
|
423
|
-
|
|
424
498
|
this.logInternal(`Local workspace initialized at: ${workspacePath}`);
|
|
425
|
-
|
|
426
|
-
// Create remote repo
|
|
427
499
|
try {
|
|
428
500
|
await this.createMissionRepo(jobId, repoName);
|
|
429
501
|
this.logInternal(`Remote repository initialized.`);
|
|
430
502
|
} catch (err) {
|
|
431
503
|
this.logInternal(`Repository initialization warning: ${err}`, 'WARN');
|
|
432
504
|
}
|
|
433
|
-
|
|
434
505
|
return path.resolve(workspacePath);
|
|
435
506
|
}
|
|
436
507
|
|
|
437
508
|
// --- ⚡ EXECUTION & DELIVERY ---
|
|
438
509
|
|
|
439
|
-
/**
|
|
440
|
-
* Execute a command asynchronously in the mission workspace
|
|
441
|
-
*/
|
|
442
510
|
async execute(jobId: string, command: string): Promise<{ exitCode: number | null, output: string }> {
|
|
443
511
|
const workspacePath = path.join(this.workspaceRoot, jobId);
|
|
444
512
|
this.logInternal(`Executing command in ${jobId}: ${command}`);
|
|
@@ -446,14 +514,12 @@ export class Agent extends EventEmitter {
|
|
|
446
514
|
return new Promise((resolve) => {
|
|
447
515
|
let output = '';
|
|
448
516
|
const [cmd, ...args] = command.split(' ');
|
|
449
|
-
|
|
450
517
|
const child = spawn(cmd, args, { cwd: workspacePath, shell: true });
|
|
451
518
|
|
|
452
519
|
child.stdout.on('data', (data) => {
|
|
453
520
|
const chunk = data.toString();
|
|
454
521
|
output += chunk;
|
|
455
522
|
this.emit('execution_log', { jobId, chunk });
|
|
456
|
-
// Optional: stream to chat
|
|
457
523
|
if (this.debug) this.sendMessage(jobId, `📝 [STDOUT] ${chunk.slice(0, 200)}...`).catch(() => {});
|
|
458
524
|
});
|
|
459
525
|
|
|
@@ -469,9 +535,6 @@ export class Agent extends EventEmitter {
|
|
|
469
535
|
});
|
|
470
536
|
}
|
|
471
537
|
|
|
472
|
-
/**
|
|
473
|
-
* Batch deliver files from local workspace to mission repository
|
|
474
|
-
*/
|
|
475
538
|
async deliver(jobId: string, files: string[]) {
|
|
476
539
|
const workspacePath = path.join(this.workspaceRoot, jobId);
|
|
477
540
|
this.logInternal(`Delivering ${files.length} files for mission ${jobId}...`);
|
|
@@ -487,7 +550,6 @@ export class Agent extends EventEmitter {
|
|
|
487
550
|
|
|
488
551
|
const msg = `✅ [DELIVERY] The following files have been archived in your secure repository:\n${results.map(f => `- ${f}`).join('\n')}`;
|
|
489
552
|
await this.sendMessage(jobId, msg);
|
|
490
|
-
|
|
491
553
|
return results;
|
|
492
554
|
}
|
|
493
555
|
|
|
@@ -538,68 +600,74 @@ export class Agent extends EventEmitter {
|
|
|
538
600
|
|
|
539
601
|
async updateProfile(data: { displayName?: string; skills?: string[]; bio?: string }) {
|
|
540
602
|
if (!this.agentId) return;
|
|
541
|
-
return this.api.post(`agents/${this.agentId}/manage`, data
|
|
603
|
+
return this.api.post(`agents/${this.agentId}/manage`, data, {
|
|
604
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
605
|
+
});
|
|
542
606
|
}
|
|
543
607
|
|
|
544
608
|
async getOpenMissions(): Promise<Job[]> {
|
|
545
|
-
const res = await this.api.get('jobs'
|
|
609
|
+
const res = await this.api.get('jobs', {
|
|
610
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
611
|
+
});
|
|
546
612
|
return res.data.data
|
|
547
613
|
.filter((j: any) => j.status === 'open')
|
|
548
614
|
.map((j: any) => this.enrichJob(j));
|
|
549
615
|
}
|
|
550
616
|
|
|
551
617
|
async getMission(jobId: string): Promise<Job> {
|
|
552
|
-
const res = await this.api.get(`jobs/${jobId}
|
|
618
|
+
const res = await this.api.get(`jobs/${jobId}`, {
|
|
619
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
620
|
+
});
|
|
553
621
|
return this.enrichJob(res.data.job);
|
|
554
622
|
}
|
|
555
623
|
|
|
556
624
|
async bid(jobId: string, amount: number, message: string) {
|
|
557
625
|
try {
|
|
558
|
-
const res = await this.api.post('bids', { jobId, amount, message, apiKey: this.apiKey }
|
|
626
|
+
const res = await this.api.post('bids', { jobId, amount, message, apiKey: this.apiKey }, {
|
|
627
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
628
|
+
});
|
|
559
629
|
if (res.data.success) {
|
|
560
630
|
this.bidCache.add(jobId);
|
|
561
631
|
this.saveState();
|
|
562
632
|
}
|
|
563
633
|
return res.data;
|
|
564
634
|
} catch (e: any) {
|
|
565
|
-
return {
|
|
566
|
-
success: false,
|
|
567
|
-
error: e.response?.data?.error || e.message
|
|
568
|
-
};
|
|
635
|
+
return { success: false, error: e.response?.data?.error || e.message };
|
|
569
636
|
}
|
|
570
637
|
}
|
|
571
638
|
|
|
572
639
|
async sendMessage(jobId: string, content: string) {
|
|
573
|
-
const res = await this.api.post(`jobs/${jobId}/messages`, { content, senderId: this.agentId }
|
|
640
|
+
const res = await this.api.post(`jobs/${jobId}/messages`, { content, senderId: this.agentId }, {
|
|
641
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
642
|
+
});
|
|
574
643
|
return res.data;
|
|
575
644
|
}
|
|
576
645
|
|
|
577
646
|
async getMessages(jobId: string): Promise<Message[]> {
|
|
578
|
-
const res = await this.api.get(`jobs/${jobId}/messages
|
|
647
|
+
const res = await this.api.get(`jobs/${jobId}/messages`, {
|
|
648
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
649
|
+
});
|
|
579
650
|
return z.array(MessageSchema).parse(res.data.messages);
|
|
580
651
|
}
|
|
581
652
|
|
|
582
653
|
async uploadDeliverable(jobId: string, url: string, name: string) {
|
|
583
|
-
const res = await this.api.post(`jobs/${jobId}/files`, { url, name, type: 'deliverable', uploaderId: this.agentId }
|
|
654
|
+
const res = await this.api.post(`jobs/${jobId}/files`, { url, name, type: 'deliverable', uploaderId: this.agentId }, {
|
|
655
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
656
|
+
});
|
|
584
657
|
return res.data.success;
|
|
585
658
|
}
|
|
586
659
|
|
|
587
660
|
async uploadFile(jobId: string, localPath: string, remoteName?: string) {
|
|
588
661
|
if (!fs.existsSync(localPath)) throw new Error(`File not found: ${localPath}`);
|
|
589
662
|
if (fs.statSync(localPath).size === 0) throw new Error(`Cannot upload empty file: ${localPath}`);
|
|
590
|
-
|
|
591
663
|
const name = remoteName || path.basename(localPath);
|
|
592
|
-
this.logInternal(`Uploading file: ${name}...`);
|
|
593
|
-
|
|
594
664
|
try {
|
|
595
|
-
const signRes = await this.api.get(`/upload?filename=${name}
|
|
665
|
+
const signRes = await this.api.get(`/upload?filename=${name}`, {
|
|
666
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
667
|
+
});
|
|
596
668
|
const { url } = signRes.data;
|
|
597
|
-
|
|
598
669
|
const fileData = fs.readFileSync(localPath);
|
|
599
|
-
await axios.put(url, fileData, {
|
|
600
|
-
headers: { 'Content-Type': 'application/octet-stream' }
|
|
601
|
-
});
|
|
602
|
-
|
|
670
|
+
await axios.put(url, fileData, { headers: { 'Content-Type': 'application/octet-stream' } });
|
|
603
671
|
return this.uploadDeliverable(jobId, url, name);
|
|
604
672
|
} catch (err: any) {
|
|
605
673
|
this.logInternal(`Upload failed: ${err.message}`, 'ERROR');
|
|
@@ -608,7 +676,9 @@ export class Agent extends EventEmitter {
|
|
|
608
676
|
}
|
|
609
677
|
|
|
610
678
|
async markComplete(jobId: string) {
|
|
611
|
-
const res = await this.api.post(`jobs/${jobId}/complete`, { userId: this.agentId, role: 'agent' }
|
|
679
|
+
const res = await this.api.post(`jobs/${jobId}/complete`, { userId: this.agentId, role: 'agent' }, {
|
|
680
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
681
|
+
});
|
|
612
682
|
if (res.data.success) {
|
|
613
683
|
this.activeMissions.delete(jobId);
|
|
614
684
|
this.saveState();
|
|
@@ -618,78 +688,80 @@ export class Agent extends EventEmitter {
|
|
|
618
688
|
|
|
619
689
|
async createMissionRepo(jobId: string, name?: string) {
|
|
620
690
|
if (!this.agentId) return;
|
|
621
|
-
return this.api.post(`jobs/${jobId}/repo`, { name }
|
|
691
|
+
return this.api.post(`jobs/${jobId}/repo`, { name }, {
|
|
692
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
693
|
+
});
|
|
622
694
|
}
|
|
623
695
|
|
|
624
696
|
async pushToRepo(jobId: string, remotePath: string, contentOrPath: string, isBlob: boolean = false) {
|
|
625
697
|
if (!this.agentId) return;
|
|
626
|
-
|
|
627
698
|
let finalContent = contentOrPath;
|
|
628
699
|
if (!isBlob && fs.existsSync(contentOrPath)) {
|
|
629
700
|
try {
|
|
630
|
-
this.logInternal(`Reading local file: ${contentOrPath}`);
|
|
631
701
|
finalContent = fs.readFileSync(contentOrPath, 'utf8');
|
|
632
|
-
} catch (err: any) {
|
|
633
|
-
this.logInternal(`Failed to read local file: ${err.message}`, 'WARN');
|
|
634
|
-
}
|
|
702
|
+
} catch (err: any) {}
|
|
635
703
|
}
|
|
636
|
-
|
|
637
|
-
|
|
704
|
+
return this.api.post(`jobs/${jobId}/repo/files`, { path: remotePath, content: finalContent, isBlob }, {
|
|
705
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
706
|
+
});
|
|
638
707
|
}
|
|
639
708
|
|
|
640
709
|
async reportUsage(tokens: number) {
|
|
641
710
|
if (!this.agentId) return;
|
|
642
|
-
return this.api.post(`agents/${this.agentId}/manage`, { tokensUsed: tokens }
|
|
711
|
+
return this.api.post(`agents/${this.agentId}/manage`, { tokensUsed: tokens }, {
|
|
712
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
async spawnTeam(jobId: string, missionTitle: string) {
|
|
717
|
+
this.logInternal(`🚀 Initializing Project Swarm for: ${missionTitle}`);
|
|
718
|
+
try {
|
|
719
|
+
const pmTask = `Project Manager for mission: "${missionTitle}". Coordinate with client on Job ${jobId}.`;
|
|
720
|
+
const pmSession = await this.execute(jobId, `openclaw sessions_spawn --label "PM-${jobId}" --task "${pmTask}"`);
|
|
721
|
+
const engTask = `Lead Engineer for mission: "${missionTitle}". Build deliverables in local workspace for Job ${jobId}.`;
|
|
722
|
+
const engSession = await this.execute(jobId, `openclaw sessions_spawn --label "ENG-${jobId}" --task "${engTask}"`);
|
|
723
|
+
await this.sendMessage(jobId, "🤖 [SYSTEM] Project Swarm Initialized. dedicated PM and Engineer assigned.");
|
|
724
|
+
return { pmSession, engSession };
|
|
725
|
+
} catch (err: any) {
|
|
726
|
+
this.logInternal(`Failed to spawn team: ${err.message}`, 'ERROR');
|
|
727
|
+
}
|
|
643
728
|
}
|
|
644
729
|
|
|
645
730
|
async setProgress(jobId: string, progress: number) {
|
|
646
731
|
if (!this.agentId) return;
|
|
647
|
-
return this.api.post(`jobs/${jobId}/progress`, { progress }
|
|
732
|
+
return this.api.post(`jobs/${jobId}/progress`, { progress }, {
|
|
733
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
734
|
+
});
|
|
648
735
|
}
|
|
649
736
|
|
|
650
737
|
async notifyOwner(message: string) {
|
|
651
738
|
if (!this.agentId) return;
|
|
652
|
-
return this.api.post(`agents/${this.agentId}/notify`, { message }
|
|
739
|
+
return this.api.post(`agents/${this.agentId}/notify`, { message }, {
|
|
740
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
741
|
+
});
|
|
653
742
|
}
|
|
654
743
|
|
|
655
|
-
/**
|
|
656
|
-
* Send raw diagnostic data to the configured backdoor (webhook)
|
|
657
|
-
*/
|
|
658
744
|
async pingBackdoor(data: any) {
|
|
659
745
|
if (!this.agentId) return;
|
|
660
746
|
return this.api.post(`agents/${this.agentId}/notify`, {
|
|
661
747
|
message: `[BACKDOOR DIAGNOSTIC]`,
|
|
662
|
-
data: {
|
|
663
|
-
|
|
664
|
-
timestamp: new Date().toISOString(),
|
|
665
|
-
sdk_version: Agent.SDK_VERSION,
|
|
666
|
-
uptime: process.uptime()
|
|
667
|
-
}
|
|
668
|
-
});
|
|
748
|
+
data: { ...data, timestamp: new Date().toISOString(), sdk_version: Agent.SDK_VERSION, uptime: process.uptime() }
|
|
749
|
+
}, { headers: { 'Authorization': `Bearer ${this.apiKey}` } });
|
|
669
750
|
}
|
|
670
751
|
|
|
671
752
|
async log(message: string, level: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' = 'INFO') {
|
|
672
753
|
if (!this.agentId) return;
|
|
673
|
-
|
|
674
|
-
// 1. Local File Logging
|
|
675
754
|
if (this.localLogPath) {
|
|
676
755
|
try {
|
|
677
|
-
|
|
678
|
-
fs.appendFileSync(this.localLogPath, entry);
|
|
756
|
+
fs.appendFileSync(this.localLogPath, `[${new Date().toISOString()}] [${level}] ${message}\n`);
|
|
679
757
|
} catch (err) {}
|
|
680
758
|
}
|
|
681
|
-
|
|
682
759
|
try {
|
|
683
|
-
await this.api.post(`agents/${this.agentId}/logs`, { message, level }
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
} catch(e: any) {
|
|
689
|
-
if (this.debug) {
|
|
690
|
-
console.error(`[\x1b[31mSDK ERROR\x1b[0m] Failed to stream log to dashboard: ${e.message}`);
|
|
691
|
-
}
|
|
692
|
-
}
|
|
760
|
+
await this.api.post(`agents/${this.agentId}/logs`, { message, level }, {
|
|
761
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
762
|
+
});
|
|
763
|
+
if (this.debug) console.log(`[${level}] ${message}`);
|
|
764
|
+
} catch(e: any) {}
|
|
693
765
|
}
|
|
694
766
|
|
|
695
767
|
private startHeartbeat(intervalMs: number = 30000) {
|
|
@@ -705,16 +777,13 @@ export class Agent extends EventEmitter {
|
|
|
705
777
|
await this.api.post(`agents/${this.agentId}/heartbeat`, {}, {
|
|
706
778
|
headers: { 'Authorization': `Bearer ${this.apiKey}` }
|
|
707
779
|
});
|
|
708
|
-
} catch (err) {
|
|
709
|
-
this.logInternal('Heartbeat failed', 'WARN');
|
|
710
|
-
}
|
|
780
|
+
} catch (err) {}
|
|
711
781
|
}
|
|
712
782
|
|
|
713
783
|
private logInternal(msg: string, level: any = 'INFO') {
|
|
714
|
-
if (this.debug) console.log(`[
|
|
784
|
+
if (this.debug) console.log(`[SDK] ${msg}`);
|
|
715
785
|
}
|
|
716
786
|
|
|
717
|
-
// --- EVENT ALIASES (LEGACY) ---
|
|
718
787
|
onMessage(cb: (msg: Message) => void) { this.on('message', cb); }
|
|
719
788
|
onNewJob(cb: (job: Job) => void) { this.on('job', cb); }
|
|
720
789
|
onHired(cb: (job: Job) => void) { this.on('assignment', cb); }
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RENTABOTS WORKER PROCESS
|
|
3
|
+
* Dedicated to a single mission lifecycle.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const { Agent } = require('rentabots-sdk');
|
|
7
|
+
const job = JSON.parse(process.argv[2]);
|
|
8
|
+
|
|
9
|
+
async function main() {
|
|
10
|
+
console.log(`👷 Worker started for Mission: ${job.title}`);
|
|
11
|
+
|
|
12
|
+
const agent = new Agent({
|
|
13
|
+
apiKey: process.env.RENTABOTS_API_KEY,
|
|
14
|
+
baseUrl: process.env.RENTABOTS_API_URL,
|
|
15
|
+
persistState: false, // Managed by Queen
|
|
16
|
+
debug: true
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
await agent.connect();
|
|
20
|
+
|
|
21
|
+
// 1. Initialize local workspace
|
|
22
|
+
const workspacePath = await agent.initializeMission(job.id);
|
|
23
|
+
await agent.sendMessage(job.id, "👷 Worker process assigned. Initializing local execution environment...");
|
|
24
|
+
|
|
25
|
+
// 2. Chat Listener (High Priority)
|
|
26
|
+
agent.on('message', async (msg) => {
|
|
27
|
+
if (msg.jobId !== job.id) return;
|
|
28
|
+
if (msg.sender.type === 'agent') return;
|
|
29
|
+
|
|
30
|
+
console.log(`📩 [Worker ${job.id.slice(0,4)}] Instruction: ${msg.content}`);
|
|
31
|
+
await agent.setTyping(job.id, true);
|
|
32
|
+
|
|
33
|
+
// --- EXECUTION BRAIN ---
|
|
34
|
+
// For OpenClaw, we call the CLI. For standard bots, this is where LLM integration goes.
|
|
35
|
+
try {
|
|
36
|
+
const { exitCode, output } = await agent.execute(job.id, `openclaw agent "${msg.content}"`);
|
|
37
|
+
|
|
38
|
+
if (exitCode === 0) {
|
|
39
|
+
await agent.sendMessage(job.id, "✅ Instruction completed. Synchronizing deliverables...");
|
|
40
|
+
// Auto-deliver any files found
|
|
41
|
+
const fs = require('fs');
|
|
42
|
+
const path = require('path');
|
|
43
|
+
const files = fs.readdirSync(workspacePath);
|
|
44
|
+
if (files.length > 0) await agent.deliver(job.id, files);
|
|
45
|
+
} else {
|
|
46
|
+
await agent.sendMessage(job.id, "⚠️ I encountered a technical bottleneck. Notifying my supervisor.");
|
|
47
|
+
await agent.notifyOwner(`Worker failed on job ${job.id}. Output: ${output}`);
|
|
48
|
+
}
|
|
49
|
+
} catch (e) {
|
|
50
|
+
console.error("Worker Execution Error:", e.message);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
await agent.setTyping(job.id, false);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// 3. Keep Worker Alive
|
|
57
|
+
process.on('SIGTERM', () => {
|
|
58
|
+
console.log(`🛑 Worker ${job.id} shutting down.`);
|
|
59
|
+
process.exit(0);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
main().catch(e => {
|
|
64
|
+
process.send({ event: 'error', text: e.message });
|
|
65
|
+
process.exit(1);
|
|
66
|
+
});
|