@wujie-shell/core 0.1.4 → 1.0.0
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/assets/wujie-logo.mjs +258 -0
- package/dist/bin/wujie-shell.mjs +1 -1
- package/dist/src/bundled-agent-skills.mjs +1 -1
- package/dist/src/bundled-agents.mjs +1 -1
- package/dist/src/config-controller.mjs +1 -1
- package/dist/src/electron/main.mjs +1 -1
- package/dist/src/electron/preload.mjs +1 -1
- package/dist/src/gateway-controller.mjs +1 -1
- package/dist/src/gateway-ws.mjs +1 -1
- package/dist/src/index.mjs +1 -1
- package/dist/src/logging.mjs +1 -1
- package/dist/src/plugin-sync.mjs +1 -1
- package/dist/src/runtime-logger.mjs +1 -1
- package/dist/src/runtime.mjs +1 -1
- package/dist/src/utils.mjs +1 -1
- package/package.json +3 -3
package/dist/src/gateway-ws.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x5bf23f=_0x22e2;(function(_0x44b7b0,_0x3f9ea9){const _0x443659=_0x22e2,_0x3b8f31=_0x44b7b0();while(!![]){try{const _0x1ec948=-parseInt(_0x443659(0x13f))/0x1*(-parseInt(_0x443659(0x196))/0x2)+parseInt(_0x443659(0x1bd))/0x3*(-parseInt(_0x443659(0x1c0))/0x4)+-parseInt(_0x443659(0x1dd))/0x5*(parseInt(_0x443659(0x15c))/0x6)+parseInt(_0x443659(0x19f))/0x7+-parseInt(_0x443659(0x18c))/0x8*(-parseInt(_0x443659(0x1c7))/0x9)+-parseInt(_0x443659(0x192))/0xa*(-parseInt(_0x443659(0x161))/0xb)+-parseInt(_0x443659(0x19c))/0xc*(-parseInt(_0x443659(0x16a))/0xd);if(_0x1ec948===_0x3f9ea9)break;else _0x3b8f31['push'](_0x3b8f31['shift']());}catch(_0x545651){_0x3b8f31['push'](_0x3b8f31['shift']());}}}(_0x2ed8,0x81279));import{Buffer}from'node:buffer';import{createHash,createPrivateKey,createPublicKey,generateKeyPairSync,randomUUID,sign}from'node:crypto';import{chmodSync,existsSync,mkdirSync,readFileSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import _0x1fb79a from'ws';const ED25519_SPKI_PREFIX=Buffer['from'](_0x5bf23f(0x1aa)+_0x5bf23f(0x1db)+_0x5bf23f(0x18f),'hex'),BASE64_PADDING_REGEX=/=+$/g,UPPERCASE_ASCII_REGEX=/[A-Z]/g;function isRecord(_0x1fe7ec){const _0x33a861=_0x5bf23f;return Boolean(_0x1fe7ec)&&typeof _0x1fe7ec===_0x33a861(0x17d)&&!Array[_0x33a861(0x151)](_0x1fe7ec);}function formatUnknownError(_0x2b1090){if(_0x2b1090 instanceof Error)return _0x2b1090['message'];return String(_0x2b1090??'');}function isLocalGatewayConnRefused(_0x48a4b0){const _0x28c07b=_0x5bf23f,_0x45d76d=formatUnknownError(_0x48a4b0);return/\bECONNREFUSED\b/i['test'](_0x45d76d)&&/127\.0\.0\.1:\d+/[_0x28c07b(0x159)](_0x45d76d);}function base64UrlEncode(_0x3c96c6){const _0xc20a7f=_0x5bf23f;return _0x3c96c6[_0xc20a7f(0x1ca)](_0xc20a7f(0x13c))[_0xc20a7f(0x149)+'ll']('+','-')[_0xc20a7f(0x149)+'ll']('/','_')[_0xc20a7f(0x1b4)](BASE64_PADDING_REGEX,'');}function derivePublicKeyRaw(_0x35eedb){const _0x1b3bc6=_0x5bf23f,_0x127759=createPublicKey(_0x35eedb)[_0x1b3bc6(0x1ac)]({'type':_0x1b3bc6(0x1a4),'format':_0x1b3bc6(0x195)}),_0x33ad0b=Buffer[_0x1b3bc6(0x1ab)](_0x127759)?_0x127759:Buffer[_0x1b3bc6(0x1dc)](_0x127759),_0x582afa=_0x33ad0b[_0x1b3bc6(0x199)]===ED25519_SPKI_PREFIX[_0x1b3bc6(0x199)]+0x20&&_0x33ad0b['subarray'](0x0,ED25519_SPKI_PREFIX[_0x1b3bc6(0x199)])[_0x1b3bc6(0x15d)](ED25519_SPKI_PREFIX);return _0x582afa?_0x33ad0b[_0x1b3bc6(0x177)](ED25519_SPKI_PREFIX[_0x1b3bc6(0x199)]):_0x33ad0b;}function fingerprintPublicKey(_0x218409){const _0x534f2=_0x5bf23f;return createHash(_0x534f2(0x171))[_0x534f2(0x1a3)](derivePublicKeyRaw(_0x218409))[_0x534f2(0x1f0)](_0x534f2(0x1da));}function publicKeyRawBase64UrlFromPem(_0x2e74ee){return base64UrlEncode(derivePublicKeyRaw(_0x2e74ee));}function _0x22e2(_0x5d3b8f,_0x11e862){_0x5d3b8f=_0x5d3b8f-0x131;const _0x2ed815=_0x2ed8();let _0x22e298=_0x2ed815[_0x5d3b8f];return _0x22e298;}function signDevicePayload(_0x17a41e,_0x55dc99){const _0x120013=_0x5bf23f,_0x17bf43=createPrivateKey(_0x17a41e);return base64UrlEncode(sign(null,Buffer[_0x120013(0x1dc)](_0x55dc99,_0x120013(0x156)),_0x17bf43));}function normalizeDeviceMetadataForAuth(_0x1cc05a){const _0x4bc3d5=_0x5bf23f,_0x77c333=typeof _0x1cc05a===_0x4bc3d5(0x17e)?_0x1cc05a['trim']():'';if(!_0x77c333)return'';return _0x77c333[_0x4bc3d5(0x1b4)](UPPERCASE_ASCII_REGEX,_0x275c52=>String[_0x4bc3d5(0x1cf)+_0x4bc3d5(0x153)](_0x275c52['charCode'+'At'](0x0)+0x20));}function buildDeviceAuthPayloadV3(_0x510e84){const _0x510c29=_0x5bf23f;return['v3',_0x510e84[_0x510c29(0x141)],_0x510e84[_0x510c29(0x1ba)],_0x510e84[_0x510c29(0x1df)+'de'],_0x510e84[_0x510c29(0x186)],_0x510e84[_0x510c29(0x1eb)][_0x510c29(0x1c8)](','),String(_0x510e84[_0x510c29(0x174)+'Ms']),_0x510e84[_0x510c29(0x1a2)]??'',_0x510e84[_0x510c29(0x14c)],normalizeDeviceMetadataForAuth(_0x510e84[_0x510c29(0x1b3)]),normalizeDeviceMetadataForAuth(_0x510e84['deviceFa'+_0x510c29(0x1e1)])]['join']('|');}function writeIdentityFile(_0x5924ad,_0x4d95bf,_0x73ce4a){mkdirSync(dirname(_0x5924ad),{'recursive':!![]}),writeFileSync(_0x5924ad,JSON['stringif'+'y']({'version':0x1,..._0x4d95bf,'createdAtMs':_0x73ce4a},null,0x2)+'\x0a',{'mode':0x180});try{chmodSync(_0x5924ad,0x180);}catch{}}function generateDeviceIdentity(){const _0x267e31=_0x5bf23f,{publicKey:_0x422e40,privateKey:_0x5ab3b3}=generateKeyPairSync('ed25519'),_0x4be4cd=_0x422e40['export']({'type':'spki','format':'pem'})['toString'](),_0x4a6af2=_0x5ab3b3['export']({'type':_0x267e31(0x13d),'format':_0x267e31(0x163)})[_0x267e31(0x1ca)]();return{'deviceId':fingerprintPublicKey(_0x4be4cd),'publicKeyPem':_0x4be4cd,'privateKeyPem':_0x4a6af2};}function loadOrCreateDeviceIdentity(_0x4fc109){const _0x2230e5=_0x5bf23f;if(existsSync(_0x4fc109))try{const _0x255ea8=JSON[_0x2230e5(0x1cc)](readFileSync(_0x4fc109,_0x2230e5(0x156))),_0x5f50e6=typeof _0x255ea8?.[_0x2230e5(0x16d)+_0x2230e5(0x1d3)]===_0x2230e5(0x17e)?_0x255ea8[_0x2230e5(0x16d)+_0x2230e5(0x1d3)]:'',_0x21be11=typeof _0x255ea8?.[_0x2230e5(0x140)+_0x2230e5(0x1b9)]==='string'?_0x255ea8[_0x2230e5(0x140)+_0x2230e5(0x1b9)]:'';if(_0x5f50e6&&_0x21be11){const _0x436f64={'deviceId':fingerprintPublicKey(_0x5f50e6),'publicKeyPem':_0x5f50e6,'privateKeyPem':_0x21be11};return _0x255ea8?.[_0x2230e5(0x141)]!==_0x436f64['deviceId']&&writeIdentityFile(_0x4fc109,_0x436f64,Date[_0x2230e5(0x136)]()),_0x436f64;}}catch{}const _0x2197ef=generateDeviceIdentity();return writeIdentityFile(_0x4fc109,_0x2197ef,Date[_0x2230e5(0x136)]()),_0x2197ef;}function _0x2ed8(){const _0x48e353=['3309467jPvayr','connectC','WS\x20is\x20no','token','update','spki','lReady','connect','yCheck','ell/','sendConn','302a3005','isBuffer','export','WS\x20disco','lListene','connecte','nectChal','Options','way\x20设备身份','platform','replace','timeoutM','splayNam','connectS','resolve','eyPem','clientId','code=','g\x20nonce','3RccNlK','WS\x20hands','adyWaite','3500188MRAFsM','ct\x20faile','clientDe','rejectPe','WS\x20clien','onAgentE','nnected','81783tMftHH','join','\x20yet','toString','failed\x20t','parse','is\x20not\x20l','pending','fromChar','WS\x20conne','min','handleMe','yPem','ers','t\x20restar','wujie-sh','Timer','once','queueCon','hex','06032b65','from','676600NOVfSL','vent','clientMo','trim','mily','delete','tBackoff','status','ent','unavaila','accepted','t\x20connec','ect','method','scopes','d\x20(','hallenge','o\x20load\x20g','rejectRe','digest','viceFami','failed:\x20','clientVe','handleDi','Path','restart','stringif','identity','agent','now','request\x20','.approva','url','tTimer','t\x20stoppe','base64','pkcs8','lengeTim','2670rlloyZ','privateK','deviceId','readyWai','ateway\x20i','config','operator','t:\x20','connectN','hake\x20mis','replaceA','entity','get','nonce','timeout','connect.','ured','device\x20i','isArray','error','Code','.admin','shouldRe','utf8','event','payload','test','equest','.pairing','24KEHjzs','equals','ters','e\x20timeou','DateTime','77dfQuhE','clearTim','pem','resolveR','expectFi','skipRead','onChatEv','waitUnti','request','2322814iMKalR','nected','challeng','publicKe','res','send','istening','sha256','ction\x20ti','.read','signedAt','e\x20missin','ting','subarray','hake\x20tim','message','removeAl','timed\x20ou','sconnect','object','string','ed\x20out','eout','connect\x20','WS\x20error','rsion','readySta','reconnec','role','close','gateway\x20','type','ateway\x20r','nal','608BuPWVd','dentity','sing\x20non','70032100','push','onDiscon','346890EmOnWJ','chat','stop','der','270sLZQly','Format','nding','length','filter','failed','12sMuIRu','OPEN','ted'];_0x2ed8=function(){return _0x48e353;};return _0x2ed8();}export class ClawGatewayWsClient{['ws']=null;[_0x5bf23f(0x144)]=null;[_0x5bf23f(0x1ce)]=new Map();[_0x5bf23f(0x142)+_0x5bf23f(0x15e)]=[];['shouldRe'+_0x5bf23f(0x1a6)]=![];[_0x5bf23f(0x185)+_0x5bf23f(0x13a)]=null;[_0x5bf23f(0x1a0)+_0x5bf23f(0x1ed)+_0x5bf23f(0x1d7)]=null;[_0x5bf23f(0x147)+'once']=null;[_0x5bf23f(0x1b7)+_0x5bf23f(0x1e5)]=![];['connecte'+'d']=![];[_0x5bf23f(0x185)+_0x5bf23f(0x1e3)+'Ms']=0x320;['deviceId'+'entity']=null;['configur'+'e'](_0x40744d){const _0x3234c9=_0x5bf23f;if(!_0x40744d){this[_0x3234c9(0x194)]();return;}const _0xe1eed7=this[_0x3234c9(0x144)];this['config']=_0x40744d,this['shouldRe'+_0x3234c9(0x1a6)]=!![];try{this[_0x3234c9(0x141)+_0x3234c9(0x14a)]=loadOrCreateDeviceIdentity(_0x40744d[_0x3234c9(0x134)+_0x3234c9(0x131)]);}catch(_0x3469bd){const _0x21adaf=_0x3469bd instanceof Error?_0x3469bd[_0x3234c9(0x179)]:'初始化\x20gate'+_0x3234c9(0x1b2)+'失败';this[_0x3234c9(0x194)](),_0x40744d[_0x3234c9(0x191)+'nected'](_0x21adaf);return;}const _0x11940f=!_0xe1eed7||_0xe1eed7[_0x3234c9(0x139)]!==_0x40744d[_0x3234c9(0x139)]||_0xe1eed7[_0x3234c9(0x1a2)]!==_0x40744d['token']||_0xe1eed7['clientId']!==_0x40744d[_0x3234c9(0x1ba)]||_0xe1eed7[_0x3234c9(0x1df)+'de']!==_0x40744d[_0x3234c9(0x1df)+'de']||_0xe1eed7[_0x3234c9(0x1f3)+_0x3234c9(0x183)]!==_0x40744d[_0x3234c9(0x1f3)+'rsion']||_0xe1eed7[_0x3234c9(0x134)+_0x3234c9(0x131)]!==_0x40744d[_0x3234c9(0x134)+_0x3234c9(0x131)];if(_0x11940f){this[_0x3234c9(0x132)]();return;}if(!this['ws'])this[_0x3234c9(0x1a6)]();}[_0x5bf23f(0x194)](){const _0x56a214=_0x5bf23f;this[_0x56a214(0x155)+'connect']=![],this['connecte'+'d']=![],this[_0x56a214(0x147)+'once']=null,this['connectS'+_0x56a214(0x1e5)]=![],this[_0x56a214(0x162)+_0x56a214(0x1d4)](),this['rejectPe'+_0x56a214(0x198)](new Error(_0x56a214(0x188)+_0x56a214(0x1c4)+_0x56a214(0x13b)+'d')),this[_0x56a214(0x1ef)+_0x56a214(0x1bf)+'rs'](new Error(_0x56a214(0x188)+'WS\x20clien'+_0x56a214(0x13b)+'d'));if(this['ws']){try{this['ws']['close']();}catch{}this['ws']=null;}this[_0x56a214(0x141)+_0x56a214(0x14a)]=null,this[_0x56a214(0x144)]=null;}async['request'](_0x11dfcd,_0x24ede0={},_0x195d45={}){const _0x1b8bfa=_0x5bf23f;if(!_0x195d45[_0x1b8bfa(0x166)+_0x1b8bfa(0x1a7)])await this[_0x1b8bfa(0x168)+_0x1b8bfa(0x1a5)]();const _0x450b8e=this['ws'];if(!_0x450b8e||_0x450b8e[_0x1b8bfa(0x184)+'te']!==_0x1fb79a[_0x1b8bfa(0x19d)])throw new Error(_0x1b8bfa(0x188)+_0x1b8bfa(0x1a1)+_0x1b8bfa(0x1e8)+_0x1b8bfa(0x19e));const _0x19d598=randomUUID(),_0x1f60f2=_0x195d45[_0x1b8bfa(0x1b5)+'s']??0x7530;return await new Promise((_0x479729,_0x49dba4)=>{const _0x51e7ec=_0x1b8bfa,_0x1f380f=setTimeout(()=>{const _0x4f3798=_0x22e2;this[_0x4f3798(0x1ce)][_0x4f3798(0x1e2)](_0x19d598),_0x49dba4(new Error(_0x4f3798(0x188)+_0x4f3798(0x137)+_0x4f3798(0x17b)+_0x4f3798(0x146)+_0x11dfcd));},_0x1f60f2);this[_0x51e7ec(0x1ce)]['set'](_0x19d598,{'method':_0x11dfcd,'resolve':_0x371844=>{clearTimeout(_0x1f380f),_0x479729(_0x371844);},'reject':_0x44b2a4=>{clearTimeout(_0x1f380f),_0x49dba4(_0x44b2a4);},'expectFinal':_0x195d45[_0x51e7ec(0x165)+_0x51e7ec(0x18b)]===!![],'timeout':_0x1f380f});try{_0x450b8e[_0x51e7ec(0x16f)](JSON[_0x51e7ec(0x133)+'y']({'type':'req','id':_0x19d598,'method':_0x11dfcd,'params':_0x24ede0}));}catch(_0x17fb21){this[_0x51e7ec(0x1ce)][_0x51e7ec(0x1e2)](_0x19d598),clearTimeout(_0x1f380f),_0x49dba4(_0x17fb21 instanceof Error?_0x17fb21:new Error(_0x51e7ec(0x1cb)+'o\x20send\x20g'+_0x51e7ec(0x18a)+_0x51e7ec(0x15a)));}});}[_0x5bf23f(0x132)](){const _0x508a6c=_0x5bf23f;this[_0x508a6c(0x1af)+'d']=![],this[_0x508a6c(0x147)+'once']=null,this['connectS'+_0x508a6c(0x1e5)]=![],this['clearTim'+'ers'](),this[_0x508a6c(0x1c3)+_0x508a6c(0x198)](new Error('gateway\x20'+_0x508a6c(0x1c4)+_0x508a6c(0x1d5)+_0x508a6c(0x176))),this['rejectRe'+_0x508a6c(0x1bf)+'rs'](new Error(_0x508a6c(0x188)+_0x508a6c(0x1c4)+'t\x20restar'+_0x508a6c(0x176)));if(this['ws']){try{this['ws']['terminat'+'e']();}catch{}this['ws']=null;}this[_0x508a6c(0x1a6)]();}[_0x5bf23f(0x1a6)](){const _0x33bd7d=_0x5bf23f;if(!this['config']||this['ws'])return;const _0x487927=new _0x1fb79a(this[_0x33bd7d(0x144)][_0x33bd7d(0x139)]);this['ws']=_0x487927,_0x487927['on']('open',()=>this[_0x33bd7d(0x1d9)+_0x33bd7d(0x1b0)+_0x33bd7d(0x13e)+_0x33bd7d(0x180)]()),_0x487927['on']('message',_0x28c4d1=>this[_0x33bd7d(0x1d2)+'ssage'](_0x28c4d1[_0x33bd7d(0x1ca)]())),_0x487927['on'](_0x33bd7d(0x187),(_0x1c9d2a,_0x3ffc9b)=>{const _0x369a9a=_0x33bd7d;if(this[_0x369a9a(0x1af)+'d']){const _0x21848c=_0x3ffc9b[_0x369a9a(0x1ca)]()||_0x369a9a(0x1bb)+_0x1c9d2a;this['handleDi'+_0x369a9a(0x17c)](_0x369a9a(0x188)+'WS\x20close'+_0x369a9a(0x1ec)+_0x21848c+')');}else this['handleDi'+_0x369a9a(0x17c)]('');}),_0x487927['on'](_0x33bd7d(0x152),_0x151f17=>{const _0x4e9567=_0x33bd7d;if(isLocalGatewayConnRefused(_0x151f17)){this[_0x4e9567(0x1f4)+'sconnect']('gateway\x20'+_0x4e9567(0x1cd)+_0x4e9567(0x170)+_0x4e9567(0x1c9));return;}const _0xe2454b=formatUnknownError(_0x151f17);this['handleDi'+_0x4e9567(0x17c)](_0xe2454b?_0x4e9567(0x188)+_0x4e9567(0x182)+':\x20'+_0xe2454b:'gateway\x20'+_0x4e9567(0x182));});}['queueCon'+_0x5bf23f(0x1b0)+_0x5bf23f(0x13e)+'eout'](){const _0x5e9d66=_0x5bf23f;this[_0x5e9d66(0x147)+_0x5e9d66(0x1d8)]=null,this['connectS'+_0x5e9d66(0x1e5)]=![];if(this[_0x5e9d66(0x1a0)+'hallenge'+_0x5e9d66(0x1d7)])clearTimeout(this[_0x5e9d66(0x1a0)+_0x5e9d66(0x1ed)+_0x5e9d66(0x1d7)]);this['connectC'+_0x5e9d66(0x1ed)+_0x5e9d66(0x1d7)]=setTimeout(()=>{const _0x45ef04=_0x5e9d66;if(this[_0x45ef04(0x1b7)+_0x45ef04(0x1e5)]||!this['ws']||this['ws'][_0x45ef04(0x184)+'te']!==_0x1fb79a[_0x45ef04(0x19d)])return;this[_0x45ef04(0x1f4)+_0x45ef04(0x17c)](_0x45ef04(0x188)+'WS\x20hands'+_0x45ef04(0x178)+_0x45ef04(0x17f)),this['ws']?.[_0x45ef04(0x187)](0x3f0,_0x45ef04(0x181)+_0x45ef04(0x16c)+_0x45ef04(0x15f)+'t');},0x7d0);}async[_0x5bf23f(0x1a9)+_0x5bf23f(0x1e9)](){const _0x1274e6=_0x5bf23f,_0x101bf9=this[_0x1274e6(0x144)];if(!_0x101bf9||this['connectS'+_0x1274e6(0x1e5)])return;const _0x4b09b6=this[_0x1274e6(0x147)+'once']?.[_0x1274e6(0x1e0)]()??'';if(!_0x4b09b6){this[_0x1274e6(0x1f4)+_0x1274e6(0x17c)](_0x1274e6(0x188)+_0x1274e6(0x1be)+_0x1274e6(0x148)+_0x1274e6(0x18e)+'ce'),this['ws']?.[_0x1274e6(0x187)](0x3f0,'connect\x20'+_0x1274e6(0x16c)+_0x1274e6(0x175)+_0x1274e6(0x1bc));return;}this['connectS'+_0x1274e6(0x1e5)]=!![];this[_0x1274e6(0x1a0)+_0x1274e6(0x1ed)+'Timer']&&(clearTimeout(this[_0x1274e6(0x1a0)+_0x1274e6(0x1ed)+_0x1274e6(0x1d7)]),this[_0x1274e6(0x1a0)+_0x1274e6(0x1ed)+_0x1274e6(0x1d7)]=null);if(!this[_0x1274e6(0x141)+_0x1274e6(0x14a)])try{this[_0x1274e6(0x141)+_0x1274e6(0x14a)]=loadOrCreateDeviceIdentity(_0x101bf9[_0x1274e6(0x134)+_0x1274e6(0x131)]);}catch(_0x164e0e){this[_0x1274e6(0x1f4)+_0x1274e6(0x17c)](_0x164e0e instanceof Error?_0x164e0e[_0x1274e6(0x179)]:_0x1274e6(0x1cb)+_0x1274e6(0x1ee)+_0x1274e6(0x143)+_0x1274e6(0x18d)),this['ws']?.[_0x1274e6(0x187)](0x3f0,_0x1274e6(0x150)+'dentity\x20'+_0x1274e6(0x1e6)+'ble');return;}const _0x865a94=_0x1274e6(0x145),_0x136b85=['operator'+_0x1274e6(0x173),_0x1274e6(0x145)+'.write',_0x1274e6(0x145)+_0x1274e6(0x154),_0x1274e6(0x145)+_0x1274e6(0x138)+'ls',_0x1274e6(0x145)+_0x1274e6(0x15b)],_0x1b75a3=_0x101bf9[_0x1274e6(0x1a2)][_0x1274e6(0x1e0)](),_0x578992=Date[_0x1274e6(0x136)](),_0xe58444=buildDeviceAuthPayloadV3({'deviceId':this['deviceId'+_0x1274e6(0x14a)][_0x1274e6(0x141)],'clientId':_0x101bf9[_0x1274e6(0x1ba)],'clientMode':_0x101bf9[_0x1274e6(0x1df)+'de'],'role':_0x865a94,'scopes':_0x136b85,'signedAtMs':_0x578992,'token':_0x1b75a3||null,'nonce':_0x4b09b6,'platform':process['platform'],'deviceFamily':_0x101bf9[_0x1274e6(0x1c2)+_0x1274e6(0x1f1)+'ly']}),_0x2f0df4={'minProtocol':0x4,'maxProtocol':0x4,'client':{'id':_0x101bf9['clientId'],'displayName':_0x101bf9['clientDi'+_0x1274e6(0x1b6)+'e'],'version':_0x101bf9[_0x1274e6(0x1f3)+'rsion'],'platform':process[_0x1274e6(0x1b3)],'deviceFamily':_0x101bf9[_0x1274e6(0x1c2)+_0x1274e6(0x1f1)+'ly'],'mode':_0x101bf9['clientMo'+'de']},'caps':[],'role':_0x865a94,'scopes':_0x136b85,'auth':_0x1b75a3?{'token':_0x1b75a3}:undefined,'device':{'id':this[_0x1274e6(0x141)+_0x1274e6(0x14a)]['deviceId'],'publicKey':publicKeyRawBase64UrlFromPem(this['deviceId'+_0x1274e6(0x14a)]['publicKe'+'yPem']),'signature':signDevicePayload(this[_0x1274e6(0x141)+_0x1274e6(0x14a)]['privateK'+_0x1274e6(0x1b9)],_0xe58444),'signedAt':_0x578992,'nonce':_0x4b09b6},'locale':Intl[_0x1274e6(0x160)+_0x1274e6(0x197)]()['resolved'+_0x1274e6(0x1b1)]()['locale'],'userAgent':_0x1274e6(0x1d6)+_0x1274e6(0x1a8)+_0x101bf9[_0x1274e6(0x1f3)+_0x1274e6(0x183)]};try{await this[_0x1274e6(0x169)](_0x1274e6(0x1a6),_0x2f0df4,{'timeoutMs':0x2710,'skipReadyCheck':!![]}),this[_0x1274e6(0x1af)+'d']=!![],this[_0x1274e6(0x185)+_0x1274e6(0x1e3)+'Ms']=0x320,this[_0x1274e6(0x164)+'eadyWait'+_0x1274e6(0x1d4)](),this['config']?.['onConnec'+_0x1274e6(0x19e)]?.();}catch(_0x10e282){this[_0x1274e6(0x1f4)+_0x1274e6(0x17c)](_0x10e282 instanceof Error?_0x10e282['message']:_0x1274e6(0x188)+_0x1274e6(0x1d0)+_0x1274e6(0x1c1)+'d'),this['ws']?.[_0x1274e6(0x187)](0x3f0,_0x1274e6(0x181)+_0x1274e6(0x19b));}}[_0x5bf23f(0x1d2)+'ssage'](_0x3be32f){const _0x1ba5c5=_0x5bf23f;let _0x5b8ac8;try{_0x5b8ac8=JSON[_0x1ba5c5(0x1cc)](_0x3be32f);}catch{return;}if(!isRecord(_0x5b8ac8)||typeof _0x5b8ac8[_0x1ba5c5(0x189)]!==_0x1ba5c5(0x17e))return;if(_0x5b8ac8[_0x1ba5c5(0x189)]===_0x1ba5c5(0x157)){const _0x2facc6=typeof _0x5b8ac8['event']===_0x1ba5c5(0x17e)?_0x5b8ac8['event']:'';if(!_0x2facc6)return;const _0x379439=isRecord(_0x5b8ac8[_0x1ba5c5(0x158)])?_0x5b8ac8[_0x1ba5c5(0x158)]:{};if(_0x2facc6===_0x1ba5c5(0x14e)+_0x1ba5c5(0x16c)+'e'){const _0x1acb9a=typeof _0x379439[_0x1ba5c5(0x14c)]===_0x1ba5c5(0x17e)?_0x379439[_0x1ba5c5(0x14c)][_0x1ba5c5(0x1e0)]():'';if(!_0x1acb9a){this['handleDi'+_0x1ba5c5(0x17c)](_0x1ba5c5(0x188)+_0x1ba5c5(0x1be)+_0x1ba5c5(0x148)+'sing\x20non'+'ce'),this['ws']?.['close'](0x3f0,_0x1ba5c5(0x181)+'challeng'+_0x1ba5c5(0x175)+'g\x20nonce');return;}this[_0x1ba5c5(0x147)+_0x1ba5c5(0x1d8)]=_0x1acb9a,void this['sendConn'+_0x1ba5c5(0x1e9)]();return;}if(_0x2facc6===_0x1ba5c5(0x193))this[_0x1ba5c5(0x144)]?.[_0x1ba5c5(0x167)+_0x1ba5c5(0x1e5)]?.(_0x379439);if(_0x2facc6===_0x1ba5c5(0x135))this[_0x1ba5c5(0x144)]?.[_0x1ba5c5(0x1c5)+_0x1ba5c5(0x1de)]?.(_0x379439);return;}if(_0x5b8ac8['type']!==_0x1ba5c5(0x16e))return;const _0x660931=typeof _0x5b8ac8['id']===_0x1ba5c5(0x17e)?_0x5b8ac8['id']:'';if(!_0x660931)return;const _0xcb7364=this[_0x1ba5c5(0x1ce)][_0x1ba5c5(0x14b)](_0x660931);if(!_0xcb7364)return;const _0x203df7=isRecord(_0x5b8ac8[_0x1ba5c5(0x158)])?_0x5b8ac8['payload']:{},_0x4719f8=typeof _0x203df7[_0x1ba5c5(0x1e4)]===_0x1ba5c5(0x17e)?_0x203df7[_0x1ba5c5(0x1e4)]:'';if(_0xcb7364[_0x1ba5c5(0x165)+_0x1ba5c5(0x18b)]&&_0x4719f8===_0x1ba5c5(0x1e7))return;this['pending'][_0x1ba5c5(0x1e2)](_0x660931);_0xcb7364[_0x1ba5c5(0x14d)]&&(clearTimeout(_0xcb7364[_0x1ba5c5(0x14d)]),_0xcb7364[_0x1ba5c5(0x14d)]=null);if(_0x5b8ac8['ok']===!![]){_0xcb7364[_0x1ba5c5(0x1b8)](_0x5b8ac8['payload']);return;}const _0x30803b=isRecord(_0x5b8ac8[_0x1ba5c5(0x152)])?_0x5b8ac8[_0x1ba5c5(0x152)]:{},_0x5e0b08=typeof _0x30803b['message']===_0x1ba5c5(0x17e)?_0x30803b[_0x1ba5c5(0x179)]:_0x1ba5c5(0x188)+_0x1ba5c5(0x137)+_0x1ba5c5(0x1f2)+_0xcb7364[_0x1ba5c5(0x1ea)];_0xcb7364['reject'](new Error(_0x5e0b08));}[_0x5bf23f(0x168)+_0x5bf23f(0x1a5)](_0x4238a8=0x2ee0){const _0x5dd5fc=_0x5bf23f;if(this[_0x5dd5fc(0x1af)+'d'])return Promise[_0x5dd5fc(0x1b8)]();if(!this[_0x5dd5fc(0x144)])return Promise['reject'](new Error(_0x5dd5fc(0x188)+_0x5dd5fc(0x1a1)+'t\x20config'+_0x5dd5fc(0x14f)));if(!this['ws'])this[_0x5dd5fc(0x1a6)]();return new Promise((_0x3acdd1,_0x5b6d84)=>{const _0x139589=_0x5dd5fc,_0x27500e=setTimeout(()=>{const _0x35216e=_0x22e2;this['readyWai'+_0x35216e(0x15e)]=this['readyWai'+_0x35216e(0x15e)][_0x35216e(0x19a)](_0x488b32=>_0x488b32[_0x35216e(0x1b8)]!==_0x3acdd1),_0x5b6d84(new Error(_0x35216e(0x188)+_0x35216e(0x1d0)+_0x35216e(0x172)+'med\x20out'));},_0x4238a8);this[_0x139589(0x142)+_0x139589(0x15e)][_0x139589(0x190)]({'resolve':_0x3acdd1,'reject':_0x5b6d84,'timeout':_0x27500e});});}[_0x5bf23f(0x164)+'eadyWait'+_0x5bf23f(0x1d4)](){const _0xa2521=_0x5bf23f,_0x5da11e=[...this['readyWai'+'ters']];this[_0xa2521(0x142)+_0xa2521(0x15e)]=[];for(const _0x421458 of _0x5da11e){clearTimeout(_0x421458[_0xa2521(0x14d)]),_0x421458[_0xa2521(0x1b8)]();}}[_0x5bf23f(0x1ef)+_0x5bf23f(0x1bf)+'rs'](_0x432d6a){const _0x47522e=_0x5bf23f,_0x28d1ff=[...this['readyWai'+_0x47522e(0x15e)]];this[_0x47522e(0x142)+_0x47522e(0x15e)]=[];for(const _0x258f63 of _0x28d1ff){clearTimeout(_0x258f63[_0x47522e(0x14d)]),_0x258f63['reject'](_0x432d6a);}}[_0x5bf23f(0x1c3)+_0x5bf23f(0x198)](_0x392cbb){const _0x325579=_0x5bf23f;for(const [_0x36d79f,_0xe233a9]of this[_0x325579(0x1ce)]['entries']()){this[_0x325579(0x1ce)][_0x325579(0x1e2)](_0x36d79f),_0xe233a9[_0x325579(0x14d)]&&(clearTimeout(_0xe233a9[_0x325579(0x14d)]),_0xe233a9[_0x325579(0x14d)]=null),_0xe233a9['reject'](_0x392cbb);}}[_0x5bf23f(0x1f4)+_0x5bf23f(0x17c)](_0x2a17da){const _0x3fc5d4=_0x5bf23f;this['ws']&&(this['ws'][_0x3fc5d4(0x17a)+_0x3fc5d4(0x1ae)+'rs'](),this['ws']=null);this[_0x3fc5d4(0x1af)+'d']=![],this['connectN'+_0x3fc5d4(0x1d8)]=null,this[_0x3fc5d4(0x1b7)+_0x3fc5d4(0x1e5)]=![],this[_0x3fc5d4(0x1c3)+_0x3fc5d4(0x198)](new Error(_0x2a17da||_0x3fc5d4(0x188)+_0x3fc5d4(0x1ad)+'nnected')),this['rejectRe'+'adyWaite'+'rs'](new Error(_0x2a17da||_0x3fc5d4(0x188)+_0x3fc5d4(0x1ad)+_0x3fc5d4(0x1c6))),this[_0x3fc5d4(0x162)+_0x3fc5d4(0x1d4)]();if(_0x2a17da)this['config']?.[_0x3fc5d4(0x191)+_0x3fc5d4(0x16b)]?.(_0x2a17da);if(!this[_0x3fc5d4(0x155)+_0x3fc5d4(0x1a6)]||!this[_0x3fc5d4(0x144)])return;const _0xc27d13=this[_0x3fc5d4(0x185)+'tBackoff'+'Ms'];this[_0x3fc5d4(0x185)+_0x3fc5d4(0x1e3)+'Ms']=Math[_0x3fc5d4(0x1d1)](this['reconnec'+'tBackoff'+'Ms']*0x2,0x3a98),this[_0x3fc5d4(0x185)+'tTimer']=setTimeout(()=>{const _0x4fccad=_0x3fc5d4;this['reconnec'+_0x4fccad(0x13a)]=null,this['connect']();},_0xc27d13);}[_0x5bf23f(0x162)+_0x5bf23f(0x1d4)](){const _0x27fd67=_0x5bf23f;this['reconnec'+_0x27fd67(0x13a)]&&(clearTimeout(this[_0x27fd67(0x185)+_0x27fd67(0x13a)]),this[_0x27fd67(0x185)+_0x27fd67(0x13a)]=null),this['connectC'+_0x27fd67(0x1ed)+'Timer']&&(clearTimeout(this[_0x27fd67(0x1a0)+_0x27fd67(0x1ed)+_0x27fd67(0x1d7)]),this[_0x27fd67(0x1a0)+_0x27fd67(0x1ed)+'Timer']=null);}}
|
|
1
|
+
const _0xc1f966=_0x1944;(function(_0x2bb854,_0x5e1c15){const _0x2cd25d=_0x1944,_0x29aae9=_0x2bb854();while(!![]){try{const _0x4d5502=parseInt(_0x2cd25d(0x17b))/0x1+parseInt(_0x2cd25d(0x170))/0x2*(parseInt(_0x2cd25d(0x110))/0x3)+parseInt(_0x2cd25d(0x137))/0x4+-parseInt(_0x2cd25d(0xf5))/0x5+-parseInt(_0x2cd25d(0x17f))/0x6*(parseInt(_0x2cd25d(0xfa))/0x7)+-parseInt(_0x2cd25d(0x188))/0x8+parseInt(_0x2cd25d(0x16a))/0x9;if(_0x4d5502===_0x5e1c15)break;else _0x29aae9['push'](_0x29aae9['shift']());}catch(_0x478bc8){_0x29aae9['push'](_0x29aae9['shift']());}}}(_0x4876,0xe13ef));import{Buffer}from'node:buffer';import{createHash,createPrivateKey,createPublicKey,generateKeyPairSync,randomUUID,sign}from'node:crypto';import{chmodSync,existsSync,mkdirSync,readFileSync,writeFileSync}from'node:fs';import{dirname}from'node:path';import _0x9c6169 from'ws';const ED25519_SPKI_PREFIX=Buffer[_0xc1f966(0x178)]('302a3005'+_0xc1f966(0x17d)+_0xc1f966(0x14f),_0xc1f966(0x132)),BASE64_PADDING_REGEX=/=+$/g,UPPERCASE_ASCII_REGEX=/[A-Z]/g;function isRecord(_0x547ad7){const _0x5b443f=_0xc1f966;return Boolean(_0x547ad7)&&typeof _0x547ad7===_0x5b443f(0x181)&&!Array['isArray'](_0x547ad7);}function formatUnknownError(_0x250f62){const _0x571053=_0xc1f966;if(_0x250f62 instanceof Error)return _0x250f62[_0x571053(0xe5)];return String(_0x250f62??'');}function isLocalGatewayConnRefused(_0x5164f8){const _0x380ae0=_0xc1f966,_0x3e9519=formatUnknownError(_0x5164f8);return/\bECONNREFUSED\b/i['test'](_0x3e9519)&&/127\.0\.0\.1:\d+/[_0x380ae0(0x12a)](_0x3e9519);}function base64UrlEncode(_0xc8182d){const _0x12da53=_0xc1f966;return _0xc8182d['toString']('base64')[_0x12da53(0x13d)+'ll']('+','-')[_0x12da53(0x13d)+'ll']('/','_')[_0x12da53(0x18e)](BASE64_PADDING_REGEX,'');}function derivePublicKeyRaw(_0x15009f){const _0x503f63=_0xc1f966,_0x1aa4ef=createPublicKey(_0x15009f)['export']({'type':_0x503f63(0x193),'format':_0x503f63(0xef)}),_0x404b8e=Buffer['isBuffer'](_0x1aa4ef)?_0x1aa4ef:Buffer[_0x503f63(0x178)](_0x1aa4ef),_0x137037=_0x404b8e[_0x503f63(0x121)]===ED25519_SPKI_PREFIX[_0x503f63(0x121)]+0x20&&_0x404b8e['subarray'](0x0,ED25519_SPKI_PREFIX[_0x503f63(0x121)])['equals'](ED25519_SPKI_PREFIX);return _0x137037?_0x404b8e['subarray'](ED25519_SPKI_PREFIX[_0x503f63(0x121)]):_0x404b8e;}function fingerprintPublicKey(_0x5a5427){const _0x594ca=_0xc1f966;return createHash('sha256')[_0x594ca(0x11a)](derivePublicKeyRaw(_0x5a5427))[_0x594ca(0xfd)]('hex');}function publicKeyRawBase64UrlFromPem(_0x52d615){return base64UrlEncode(derivePublicKeyRaw(_0x52d615));}function _0x1944(_0x500315,_0xbf187e){_0x500315=_0x500315-0xda;const _0x4876d3=_0x4876();let _0x19447b=_0x4876d3[_0x500315];return _0x19447b;}function signDevicePayload(_0x23e1ae,_0x5c9756){const _0x5a7513=_0xc1f966,_0xf9673e=createPrivateKey(_0x23e1ae);return base64UrlEncode(sign(null,Buffer[_0x5a7513(0x178)](_0x5c9756,_0x5a7513(0x103)),_0xf9673e));}function normalizeDeviceMetadataForAuth(_0x1f6c27){const _0x5291a0=_0xc1f966,_0xbe1e7c=typeof _0x1f6c27===_0x5291a0(0x10d)?_0x1f6c27[_0x5291a0(0xf7)]():'';if(!_0xbe1e7c)return'';return _0xbe1e7c['replace'](UPPERCASE_ASCII_REGEX,_0x196f8c=>String[_0x5291a0(0xde)+_0x5291a0(0x16c)](_0x196f8c[_0x5291a0(0x152)+'At'](0x0)+0x20));}function buildDeviceAuthPayloadV3(_0x412b03){const _0x5df333=_0xc1f966;return['v3',_0x412b03[_0x5df333(0x194)],_0x412b03[_0x5df333(0xe1)],_0x412b03['clientMo'+'de'],_0x412b03[_0x5df333(0x101)],_0x412b03['scopes'][_0x5df333(0xf2)](','),String(_0x412b03[_0x5df333(0x15c)+'Ms']),_0x412b03[_0x5df333(0x195)]??'',_0x412b03[_0x5df333(0xe3)],normalizeDeviceMetadataForAuth(_0x412b03['platform']),normalizeDeviceMetadataForAuth(_0x412b03[_0x5df333(0x171)+'mily'])]['join']('|');}function _0x4876(){const _0x37b96d=['connect.','4095640DeaQbO','ers','reconnec','ction\x20ti','lengeTim','once','replace','privateK','expectFi','failed\x20t','eyPem','spki','deviceId','token','failed','DateTime','tTimer','stringif','eadyWait','fromChar','gateway\x20','handleDi','clientId','t\x20stoppe','nonce','is\x20not\x20l','message','WS\x20hands','config','rsion','agent','nected','connecte','shouldRe','d\x20(','status','der','now','ted','join','resolveR','ting','8078970NbSavr','wujie-sh','trim','viceFami','rejectRe','77SNOTsk','removeAl','WS\x20conne','digest','Timer','ell/','nectChal','role','chat','utf8','publicKe','.approva','dentity','hallenge','request\x20','onDiscon','req','timeout','t\x20connec','string','\x20yet','resolved','2301WPAXNW','hake\x20mis','pending','eout','ct\x20faile','push','res','e\x20timeou','sing\x20non','WS\x20close','update','yPem','clearTim','WS\x20error','resolve','.read','clientDi','length','adyWaite','tBackoff','sconnect','readyWai','ble','timed\x20ou','connect','payload','test','g\x20nonce','operator','queueCon','device\x20i','o\x20send\x20g','sendConn','challeng','hex','rejectPe','request','ed25519','open','6593732QSBdXi','WS\x20disco','connect\x20','restart','nding','pkcs8','replaceA','vent','ssage','istening','lReady','type','parse','ed\x20out','ured','初始化\x20gate','onConnec','ters','hake\x20tim','.admin','.write','error','identity','nnected','70032100','t\x20restar','connectS','charCode','dentity\x20','accepted','event','clientVe','platform','ent','Options','url','t\x20config','signedAt','entries','waitUnti','splayNam','failed:\x20','close','WS\x20is\x20no','.pairing','ect','med\x20out','Format','t:\x20','toString','handleMe','21369024NssGZI','way\x20设备身份','Code','onChatEv','skipRead','Path','106XeoNaN','deviceFa','lListene','clientMo','e\x20missin','delete','locale','method','from','entity','pem','480725CRiHuG','configur','06032b65','nal','814794nvSHus','connectN','object','connectC','reject','export','WS\x20clien','stop'];_0x4876=function(){return _0x37b96d;};return _0x4876();}function writeIdentityFile(_0x331109,_0x4fdd99,_0x58d3b2){const _0x537162=_0xc1f966;mkdirSync(dirname(_0x331109),{'recursive':!![]}),writeFileSync(_0x331109,JSON[_0x537162(0xdc)+'y']({'version':0x1,..._0x4fdd99,'createdAtMs':_0x58d3b2},null,0x2)+'\x0a',{'mode':0x180});try{chmodSync(_0x331109,0x180);}catch{}}function generateDeviceIdentity(){const _0x4b29c3=_0xc1f966,{publicKey:_0x296542,privateKey:_0x13566c}=generateKeyPairSync(_0x4b29c3(0x135)),_0x4d4de5=_0x296542[_0x4b29c3(0x184)]({'type':_0x4b29c3(0x193),'format':'pem'})[_0x4b29c3(0x168)](),_0x16e0b0=_0x13566c[_0x4b29c3(0x184)]({'type':_0x4b29c3(0x13c),'format':_0x4b29c3(0x17a)})[_0x4b29c3(0x168)]();return{'deviceId':fingerprintPublicKey(_0x4d4de5),'publicKeyPem':_0x4d4de5,'privateKeyPem':_0x16e0b0};}function loadOrCreateDeviceIdentity(_0x594ad6){const _0x11a65d=_0xc1f966;if(existsSync(_0x594ad6))try{const _0x1cb133=JSON['parse'](readFileSync(_0x594ad6,_0x11a65d(0x103))),_0xdc176a=typeof _0x1cb133?.[_0x11a65d(0x104)+_0x11a65d(0x11b)]===_0x11a65d(0x10d)?_0x1cb133['publicKe'+_0x11a65d(0x11b)]:'',_0x1e0162=typeof _0x1cb133?.[_0x11a65d(0x18f)+_0x11a65d(0x192)]===_0x11a65d(0x10d)?_0x1cb133['privateK'+'eyPem']:'';if(_0xdc176a&&_0x1e0162){const _0x2efbc7={'deviceId':fingerprintPublicKey(_0xdc176a),'publicKeyPem':_0xdc176a,'privateKeyPem':_0x1e0162};return _0x1cb133?.[_0x11a65d(0x194)]!==_0x2efbc7[_0x11a65d(0x194)]&&writeIdentityFile(_0x594ad6,_0x2efbc7,Date['now']()),_0x2efbc7;}}catch{}const _0x3f8504=generateDeviceIdentity();return writeIdentityFile(_0x594ad6,_0x3f8504,Date['now']()),_0x3f8504;}export class ClawGatewayWsClient{['ws']=null;[_0xc1f966(0xe7)]=null;[_0xc1f966(0x112)]=new Map();[_0xc1f966(0x125)+_0xc1f966(0x148)]=[];[_0xc1f966(0xec)+_0xc1f966(0x128)]=![];[_0xc1f966(0x18a)+'tTimer']=null;[_0xc1f966(0x182)+_0xc1f966(0x107)+'Timer']=null;['connectN'+'once']=null;[_0xc1f966(0x151)+'ent']=![];[_0xc1f966(0xeb)+'d']=![];[_0xc1f966(0x18a)+_0xc1f966(0x123)+'Ms']=0x320;[_0xc1f966(0x194)+_0xc1f966(0x179)]=null;[_0xc1f966(0x17c)+'e'](_0x20a0bb){const _0x21edfc=_0xc1f966;if(!_0x20a0bb){this['stop']();return;}const _0x7a2898=this[_0x21edfc(0xe7)];this[_0x21edfc(0xe7)]=_0x20a0bb,this[_0x21edfc(0xec)+_0x21edfc(0x128)]=!![];try{this[_0x21edfc(0x194)+_0x21edfc(0x179)]=loadOrCreateDeviceIdentity(_0x20a0bb[_0x21edfc(0x14d)+_0x21edfc(0x16f)]);}catch(_0x17cf74){const _0x5af287=_0x17cf74 instanceof Error?_0x17cf74[_0x21edfc(0xe5)]:_0x21edfc(0x146)+_0x21edfc(0x16b)+'失败';this[_0x21edfc(0x186)](),_0x20a0bb[_0x21edfc(0x109)+_0x21edfc(0xea)](_0x5af287);return;}const _0x171870=!_0x7a2898||_0x7a2898[_0x21edfc(0x15a)]!==_0x20a0bb[_0x21edfc(0x15a)]||_0x7a2898[_0x21edfc(0x195)]!==_0x20a0bb[_0x21edfc(0x195)]||_0x7a2898[_0x21edfc(0xe1)]!==_0x20a0bb[_0x21edfc(0xe1)]||_0x7a2898['clientMo'+'de']!==_0x20a0bb[_0x21edfc(0x173)+'de']||_0x7a2898['clientVe'+'rsion']!==_0x20a0bb[_0x21edfc(0x156)+'rsion']||_0x7a2898['identity'+_0x21edfc(0x16f)]!==_0x20a0bb['identity'+_0x21edfc(0x16f)];if(_0x171870){this['restart']();return;}if(!this['ws'])this[_0x21edfc(0x128)]();}[_0xc1f966(0x186)](){const _0x2f1d5c=_0xc1f966;this[_0x2f1d5c(0xec)+_0x2f1d5c(0x128)]=![],this[_0x2f1d5c(0xeb)+'d']=![],this['connectN'+_0x2f1d5c(0x18d)]=null,this['connectS'+_0x2f1d5c(0x158)]=![],this[_0x2f1d5c(0x11c)+'ers'](),this[_0x2f1d5c(0x133)+_0x2f1d5c(0x13b)](new Error(_0x2f1d5c(0xdf)+_0x2f1d5c(0x185)+'t\x20stoppe'+'d')),this[_0x2f1d5c(0xf9)+_0x2f1d5c(0x122)+'rs'](new Error('gateway\x20'+_0x2f1d5c(0x185)+_0x2f1d5c(0xe2)+'d'));if(this['ws']){try{this['ws'][_0x2f1d5c(0x161)]();}catch{}this['ws']=null;}this[_0x2f1d5c(0x194)+_0x2f1d5c(0x179)]=null,this[_0x2f1d5c(0xe7)]=null;}async[_0xc1f966(0x134)](_0x48f5c6,_0x459847={},_0xc4e0a3={}){const _0x649665=_0xc1f966;if(!_0xc4e0a3[_0x649665(0x16e)+'yCheck'])await this[_0x649665(0x15e)+_0x649665(0x141)]();const _0x5d6cf7=this['ws'];if(!_0x5d6cf7||_0x5d6cf7['readySta'+'te']!==_0x9c6169['OPEN'])throw new Error(_0x649665(0xdf)+_0x649665(0x162)+_0x649665(0x10c)+_0x649665(0xf1));const _0x5b4c1d=randomUUID(),_0x5287ce=_0xc4e0a3['timeoutM'+'s']??0x7530;return await new Promise((_0x51433b,_0x5ac7f5)=>{const _0x513afc=_0x649665,_0x38f7a6=setTimeout(()=>{const _0xb0d4d4=_0x1944;this[_0xb0d4d4(0x112)][_0xb0d4d4(0x175)](_0x5b4c1d),_0x5ac7f5(new Error('gateway\x20'+'request\x20'+_0xb0d4d4(0x127)+_0xb0d4d4(0x167)+_0x48f5c6));},_0x5287ce);this[_0x513afc(0x112)]['set'](_0x5b4c1d,{'method':_0x48f5c6,'resolve':_0x4f233a=>{clearTimeout(_0x38f7a6),_0x51433b(_0x4f233a);},'reject':_0x3ec12c=>{clearTimeout(_0x38f7a6),_0x5ac7f5(_0x3ec12c);},'expectFinal':_0xc4e0a3[_0x513afc(0x190)+_0x513afc(0x17e)]===!![],'timeout':_0x38f7a6});try{_0x5d6cf7['send'](JSON[_0x513afc(0xdc)+'y']({'type':_0x513afc(0x10a),'id':_0x5b4c1d,'method':_0x48f5c6,'params':_0x459847}));}catch(_0x38ad24){this[_0x513afc(0x112)]['delete'](_0x5b4c1d),clearTimeout(_0x38f7a6),_0x5ac7f5(_0x38ad24 instanceof Error?_0x38ad24:new Error(_0x513afc(0x191)+_0x513afc(0x12f)+'ateway\x20r'+'equest'));}});}[_0xc1f966(0x13a)](){const _0x37e002=_0xc1f966;this[_0x37e002(0xeb)+'d']=![],this[_0x37e002(0x180)+'once']=null,this[_0x37e002(0x151)+_0x37e002(0x158)]=![],this['clearTim'+_0x37e002(0x189)](),this[_0x37e002(0x133)+_0x37e002(0x13b)](new Error(_0x37e002(0xdf)+_0x37e002(0x185)+_0x37e002(0x150)+_0x37e002(0xf4))),this['rejectRe'+'adyWaite'+'rs'](new Error(_0x37e002(0xdf)+_0x37e002(0x185)+_0x37e002(0x150)+'ting'));if(this['ws']){try{this['ws']['terminat'+'e']();}catch{}this['ws']=null;}this['connect']();}[_0xc1f966(0x128)](){const _0x43277e=_0xc1f966;if(!this['config']||this['ws'])return;const _0x3b2747=new _0x9c6169(this[_0x43277e(0xe7)]['url']);this['ws']=_0x3b2747,_0x3b2747['on'](_0x43277e(0x136),()=>this[_0x43277e(0x12d)+'nectChal'+_0x43277e(0x18c)+_0x43277e(0x113)]()),_0x3b2747['on']('message',_0x29e932=>this[_0x43277e(0x169)+_0x43277e(0x13f)](_0x29e932['toString']())),_0x3b2747['on'](_0x43277e(0x161),(_0x56d589,_0x3c5127)=>{const _0x5e92ab=_0x43277e;if(this['connecte'+'d']){const _0x43c554=_0x3c5127[_0x5e92ab(0x168)]()||'code='+_0x56d589;this['handleDi'+'sconnect'](_0x5e92ab(0xdf)+_0x5e92ab(0x119)+_0x5e92ab(0xed)+_0x43c554+')');}else this['handleDi'+_0x5e92ab(0x124)]('');}),_0x3b2747['on'](_0x43277e(0x14c),_0x40bee4=>{const _0x275d79=_0x43277e;if(isLocalGatewayConnRefused(_0x40bee4)){this[_0x275d79(0xe0)+'sconnect'](_0x275d79(0xdf)+_0x275d79(0xe4)+_0x275d79(0x140)+_0x275d79(0x10e));return;}const _0x18dbef=formatUnknownError(_0x40bee4);this['handleDi'+_0x275d79(0x124)](_0x18dbef?'gateway\x20'+'WS\x20error'+':\x20'+_0x18dbef:'gateway\x20'+_0x275d79(0x11d));});}[_0xc1f966(0x12d)+_0xc1f966(0x100)+_0xc1f966(0x18c)+'eout'](){const _0xf460bf=_0xc1f966;this['connectN'+_0xf460bf(0x18d)]=null,this[_0xf460bf(0x151)+_0xf460bf(0x158)]=![];if(this[_0xf460bf(0x182)+_0xf460bf(0x107)+_0xf460bf(0xfe)])clearTimeout(this['connectC'+_0xf460bf(0x107)+'Timer']);this[_0xf460bf(0x182)+'hallenge'+_0xf460bf(0xfe)]=setTimeout(()=>{const _0x3f732c=_0xf460bf;if(this[_0x3f732c(0x151)+_0x3f732c(0x158)]||!this['ws']||this['ws']['readySta'+'te']!==_0x9c6169['OPEN'])return;this[_0x3f732c(0xe0)+'sconnect'](_0x3f732c(0xdf)+_0x3f732c(0xe6)+_0x3f732c(0x149)+_0x3f732c(0x144)),this['ws']?.['close'](0x3f0,'connect\x20'+_0x3f732c(0x131)+_0x3f732c(0x117)+'t');},0x7d0);}async[_0xc1f966(0x130)+_0xc1f966(0x164)](){const _0x240a90=_0xc1f966,_0xfc1650=this['config'];if(!_0xfc1650||this[_0x240a90(0x151)+_0x240a90(0x158)])return;const _0x3feb1c=this['connectN'+_0x240a90(0x18d)]?.[_0x240a90(0xf7)]()??'';if(!_0x3feb1c){this[_0x240a90(0xe0)+_0x240a90(0x124)]('gateway\x20'+_0x240a90(0xe6)+'hake\x20mis'+_0x240a90(0x118)+'ce'),this['ws']?.[_0x240a90(0x161)](0x3f0,_0x240a90(0x139)+'challeng'+_0x240a90(0x174)+_0x240a90(0x12b));return;}this[_0x240a90(0x151)+_0x240a90(0x158)]=!![];this[_0x240a90(0x182)+'hallenge'+_0x240a90(0xfe)]&&(clearTimeout(this[_0x240a90(0x182)+_0x240a90(0x107)+_0x240a90(0xfe)]),this[_0x240a90(0x182)+_0x240a90(0x107)+'Timer']=null);if(!this[_0x240a90(0x194)+'entity'])try{this[_0x240a90(0x194)+_0x240a90(0x179)]=loadOrCreateDeviceIdentity(_0xfc1650['identity'+'Path']);}catch(_0x1e4608){this['handleDi'+'sconnect'](_0x1e4608 instanceof Error?_0x1e4608['message']:_0x240a90(0x191)+'o\x20load\x20g'+'ateway\x20i'+_0x240a90(0x106)),this['ws']?.['close'](0x3f0,_0x240a90(0x12e)+_0x240a90(0x153)+'unavaila'+_0x240a90(0x126));return;}const _0x1a1890=_0x240a90(0x12c),_0x2ad788=['operator'+_0x240a90(0x11f),_0x240a90(0x12c)+_0x240a90(0x14b),_0x240a90(0x12c)+_0x240a90(0x14a),_0x240a90(0x12c)+_0x240a90(0x105)+'ls',_0x240a90(0x12c)+_0x240a90(0x163)],_0x249314=_0xfc1650[_0x240a90(0x195)]['trim'](),_0x21c9eb=Date[_0x240a90(0xf0)](),_0x5f53da=buildDeviceAuthPayloadV3({'deviceId':this[_0x240a90(0x194)+'entity']['deviceId'],'clientId':_0xfc1650[_0x240a90(0xe1)],'clientMode':_0xfc1650[_0x240a90(0x173)+'de'],'role':_0x1a1890,'scopes':_0x2ad788,'signedAtMs':_0x21c9eb,'token':_0x249314||null,'nonce':_0x3feb1c,'platform':process['platform'],'deviceFamily':_0xfc1650['clientDe'+_0x240a90(0xf8)+'ly']}),_0x1bf2b1={'minProtocol':0x4,'maxProtocol':0x4,'client':{'id':_0xfc1650[_0x240a90(0xe1)],'displayName':_0xfc1650[_0x240a90(0x120)+_0x240a90(0x15f)+'e'],'version':_0xfc1650['clientVe'+'rsion'],'platform':process[_0x240a90(0x157)],'deviceFamily':_0xfc1650['clientDe'+_0x240a90(0xf8)+'ly'],'mode':_0xfc1650[_0x240a90(0x173)+'de']},'caps':[],'role':_0x1a1890,'scopes':_0x2ad788,'auth':_0x249314?{'token':_0x249314}:undefined,'device':{'id':this[_0x240a90(0x194)+_0x240a90(0x179)]['deviceId'],'publicKey':publicKeyRawBase64UrlFromPem(this[_0x240a90(0x194)+_0x240a90(0x179)][_0x240a90(0x104)+_0x240a90(0x11b)]),'signature':signDevicePayload(this[_0x240a90(0x194)+'entity'][_0x240a90(0x18f)+_0x240a90(0x192)],_0x5f53da),'signedAt':_0x21c9eb,'nonce':_0x3feb1c},'locale':Intl[_0x240a90(0xda)+_0x240a90(0x166)]()[_0x240a90(0x10f)+_0x240a90(0x159)]()[_0x240a90(0x176)],'userAgent':_0x240a90(0xf6)+_0x240a90(0xff)+_0xfc1650[_0x240a90(0x156)+_0x240a90(0xe8)]};try{await this[_0x240a90(0x134)](_0x240a90(0x128),_0x1bf2b1,{'timeoutMs':0x2710,'skipReadyCheck':!![]}),this[_0x240a90(0xeb)+'d']=!![],this['reconnec'+'tBackoff'+'Ms']=0x320,this[_0x240a90(0xf3)+_0x240a90(0xdd)+_0x240a90(0x189)](),this[_0x240a90(0xe7)]?.[_0x240a90(0x147)+'ted']?.();}catch(_0xeec697){this[_0x240a90(0xe0)+_0x240a90(0x124)](_0xeec697 instanceof Error?_0xeec697['message']:_0x240a90(0xdf)+_0x240a90(0xfc)+_0x240a90(0x114)+'d'),this['ws']?.[_0x240a90(0x161)](0x3f0,'connect\x20'+_0x240a90(0x196));}}[_0xc1f966(0x169)+_0xc1f966(0x13f)](_0x2c88ed){const _0x530697=_0xc1f966;let _0x19f4b9;try{_0x19f4b9=JSON[_0x530697(0x143)](_0x2c88ed);}catch{return;}if(!isRecord(_0x19f4b9)||typeof _0x19f4b9[_0x530697(0x142)]!==_0x530697(0x10d))return;if(_0x19f4b9['type']===_0x530697(0x155)){const _0x1a059f=typeof _0x19f4b9[_0x530697(0x155)]===_0x530697(0x10d)?_0x19f4b9[_0x530697(0x155)]:'';if(!_0x1a059f)return;const _0xd3657=isRecord(_0x19f4b9[_0x530697(0x129)])?_0x19f4b9['payload']:{};if(_0x1a059f===_0x530697(0x187)+_0x530697(0x131)+'e'){const _0xde651f=typeof _0xd3657['nonce']===_0x530697(0x10d)?_0xd3657['nonce'][_0x530697(0xf7)]():'';if(!_0xde651f){this[_0x530697(0xe0)+_0x530697(0x124)](_0x530697(0xdf)+_0x530697(0xe6)+_0x530697(0x111)+'sing\x20non'+'ce'),this['ws']?.['close'](0x3f0,_0x530697(0x139)+_0x530697(0x131)+'e\x20missin'+_0x530697(0x12b));return;}this[_0x530697(0x180)+_0x530697(0x18d)]=_0xde651f,void this['sendConn'+_0x530697(0x164)]();return;}if(_0x1a059f===_0x530697(0x102))this[_0x530697(0xe7)]?.[_0x530697(0x16d)+_0x530697(0x158)]?.(_0xd3657);if(_0x1a059f===_0x530697(0xe9))this[_0x530697(0xe7)]?.['onAgentE'+_0x530697(0x13e)]?.(_0xd3657);return;}if(_0x19f4b9[_0x530697(0x142)]!==_0x530697(0x116))return;const _0x45daeb=typeof _0x19f4b9['id']===_0x530697(0x10d)?_0x19f4b9['id']:'';if(!_0x45daeb)return;const _0x366b39=this[_0x530697(0x112)]['get'](_0x45daeb);if(!_0x366b39)return;const _0x1ab7da=isRecord(_0x19f4b9[_0x530697(0x129)])?_0x19f4b9[_0x530697(0x129)]:{},_0x2f570e=typeof _0x1ab7da[_0x530697(0xee)]===_0x530697(0x10d)?_0x1ab7da[_0x530697(0xee)]:'';if(_0x366b39[_0x530697(0x190)+'nal']&&_0x2f570e===_0x530697(0x154))return;this['pending']['delete'](_0x45daeb);_0x366b39[_0x530697(0x10b)]&&(clearTimeout(_0x366b39[_0x530697(0x10b)]),_0x366b39[_0x530697(0x10b)]=null);if(_0x19f4b9['ok']===!![]){_0x366b39[_0x530697(0x11e)](_0x19f4b9[_0x530697(0x129)]);return;}const _0x5b5a0b=isRecord(_0x19f4b9[_0x530697(0x14c)])?_0x19f4b9[_0x530697(0x14c)]:{},_0x1910e2=typeof _0x5b5a0b[_0x530697(0xe5)]===_0x530697(0x10d)?_0x5b5a0b[_0x530697(0xe5)]:_0x530697(0xdf)+_0x530697(0x108)+_0x530697(0x160)+_0x366b39[_0x530697(0x177)];_0x366b39[_0x530697(0x183)](new Error(_0x1910e2));}[_0xc1f966(0x15e)+'lReady'](_0x5dfc9c=0x2ee0){const _0x386766=_0xc1f966;if(this[_0x386766(0xeb)+'d'])return Promise[_0x386766(0x11e)]();if(!this[_0x386766(0xe7)])return Promise[_0x386766(0x183)](new Error(_0x386766(0xdf)+_0x386766(0x162)+_0x386766(0x15b)+_0x386766(0x145)));if(!this['ws'])this['connect']();return new Promise((_0x393ba,_0x4a4b6c)=>{const _0x5a395f=_0x386766,_0x237050=setTimeout(()=>{const _0x5bf346=_0x1944;this[_0x5bf346(0x125)+'ters']=this['readyWai'+_0x5bf346(0x148)]['filter'](_0x5705fb=>_0x5705fb[_0x5bf346(0x11e)]!==_0x393ba),_0x4a4b6c(new Error(_0x5bf346(0xdf)+_0x5bf346(0xfc)+_0x5bf346(0x18b)+_0x5bf346(0x165)));},_0x5dfc9c);this['readyWai'+_0x5a395f(0x148)][_0x5a395f(0x115)]({'resolve':_0x393ba,'reject':_0x4a4b6c,'timeout':_0x237050});});}[_0xc1f966(0xf3)+_0xc1f966(0xdd)+_0xc1f966(0x189)](){const _0x120965=_0xc1f966,_0x12c45b=[...this[_0x120965(0x125)+_0x120965(0x148)]];this[_0x120965(0x125)+_0x120965(0x148)]=[];for(const _0x4f6cef of _0x12c45b){clearTimeout(_0x4f6cef['timeout']),_0x4f6cef[_0x120965(0x11e)]();}}[_0xc1f966(0xf9)+_0xc1f966(0x122)+'rs'](_0x59514e){const _0x42aeaa=_0xc1f966,_0x3e4e90=[...this['readyWai'+_0x42aeaa(0x148)]];this[_0x42aeaa(0x125)+'ters']=[];for(const _0x16983b of _0x3e4e90){clearTimeout(_0x16983b[_0x42aeaa(0x10b)]),_0x16983b[_0x42aeaa(0x183)](_0x59514e);}}[_0xc1f966(0x133)+_0xc1f966(0x13b)](_0x44d3bc){const _0x329853=_0xc1f966;for(const [_0x4b9012,_0x23435f]of this['pending'][_0x329853(0x15d)]()){this['pending']['delete'](_0x4b9012),_0x23435f[_0x329853(0x10b)]&&(clearTimeout(_0x23435f[_0x329853(0x10b)]),_0x23435f[_0x329853(0x10b)]=null),_0x23435f[_0x329853(0x183)](_0x44d3bc);}}[_0xc1f966(0xe0)+_0xc1f966(0x124)](_0x26e5db){const _0x16099e=_0xc1f966;this['ws']&&(this['ws'][_0x16099e(0xfb)+_0x16099e(0x172)+'rs'](),this['ws']=null);this[_0x16099e(0xeb)+'d']=![],this[_0x16099e(0x180)+_0x16099e(0x18d)]=null,this[_0x16099e(0x151)+_0x16099e(0x158)]=![],this['rejectPe'+_0x16099e(0x13b)](new Error(_0x26e5db||_0x16099e(0xdf)+'WS\x20disco'+_0x16099e(0x14e))),this[_0x16099e(0xf9)+_0x16099e(0x122)+'rs'](new Error(_0x26e5db||_0x16099e(0xdf)+_0x16099e(0x138)+_0x16099e(0x14e))),this[_0x16099e(0x11c)+'ers']();if(_0x26e5db)this[_0x16099e(0xe7)]?.[_0x16099e(0x109)+'nected']?.(_0x26e5db);if(!this[_0x16099e(0xec)+_0x16099e(0x128)]||!this[_0x16099e(0xe7)])return;const _0x5be199=this[_0x16099e(0x18a)+_0x16099e(0x123)+'Ms'];this[_0x16099e(0x18a)+_0x16099e(0x123)+'Ms']=Math['min'](this['reconnec'+_0x16099e(0x123)+'Ms']*0x2,0x3a98),this['reconnec'+_0x16099e(0xdb)]=setTimeout(()=>{const _0x49859a=_0x16099e;this[_0x49859a(0x18a)+_0x49859a(0xdb)]=null,this[_0x49859a(0x128)]();},_0x5be199);}[_0xc1f966(0x11c)+_0xc1f966(0x189)](){const _0xf8e7f5=_0xc1f966;this['reconnec'+_0xf8e7f5(0xdb)]&&(clearTimeout(this[_0xf8e7f5(0x18a)+'tTimer']),this[_0xf8e7f5(0x18a)+_0xf8e7f5(0xdb)]=null),this[_0xf8e7f5(0x182)+_0xf8e7f5(0x107)+'Timer']&&(clearTimeout(this[_0xf8e7f5(0x182)+_0xf8e7f5(0x107)+'Timer']),this[_0xf8e7f5(0x182)+_0xf8e7f5(0x107)+_0xf8e7f5(0xfe)]=null);}}
|
package/dist/src/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x5063(_0x50dedd,_0x3eafaa){_0x50dedd=_0x50dedd-0x193;var _0x393e4b=_0x393e();var _0x5063df=_0x393e4b[_0x50dedd];return _0x5063df;}(function(_0x3659b5,_0x2f90fc){var _0x36271c=_0x5063,_0x4836a5=_0x3659b5();while(!![]){try{var _0x130196=-parseInt(_0x36271c(0x194))/0x1+-parseInt(_0x36271c(0x199))/0x2+parseInt(_0x36271c(0x195))/0x3+-parseInt(_0x36271c(0x198))/0x4+parseInt(_0x36271c(0x193))/0x5+-parseInt(_0x36271c(0x197))/0x6*(parseInt(_0x36271c(0x19a))/0x7)+parseInt(_0x36271c(0x196))/0x8;if(_0x130196===_0x2f90fc)break;else _0x4836a5['push'](_0x4836a5['shift']());}catch(_0x1d8716){_0x4836a5['push'](_0x4836a5['shift']());}}}(_0x393e,0x87bb1));export{ensureOpenClawDoctorFixed,loadRuntimeInfo,prepareRuntime,runClawOnce,spawnClaw}from'./runtime.mjs';function _0x393e(){var _0x52c30c=['1547976pvFeak','329346EvAiYi','7bLpRgF','711825WPEnor','448220VmzSAd','515409WnGLEt','13955224BFSpKK','3016386CnRygs'];_0x393e=function(){return _0x52c30c;};return _0x393e();}export{createConfigController}from'./config-controller.mjs';export{createGatewayController}from'./gateway-controller.mjs';
|
package/dist/src/logging.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x487b37,_0x2b0fbc){const _0x517bdf=_0x8ea6,_0x59bba3=_0x487b37();while(!![]){try{const _0x1b9c57=-parseInt(_0x517bdf(0x218))/0x1+-parseInt(_0x517bdf(0x21e))/0x2*(parseInt(_0x517bdf(0x1e4))/0x3)+-parseInt(_0x517bdf(0x1ed))/0x4+-parseInt(_0x517bdf(0x225))/0x5+-parseInt(_0x517bdf(0x215))/0x6+parseInt(_0x517bdf(0x21d))/0x7*(parseInt(_0x517bdf(0x1f0))/0x8)+parseInt(_0x517bdf(0x1fe))/0x9*(parseInt(_0x517bdf(0x1f2))/0xa);if(_0x1b9c57===_0x2b0fbc)break;else _0x59bba3['push'](_0x59bba3['shift']());}catch(_0x318359){_0x59bba3['push'](_0x59bba3['shift']());}}}(_0x3cc5,0x33246));import{createHash}from'node:crypto';import{spawn}from'node:child_process';import{existsSync}from'node:fs';import{cp,mkdir,rm}from'node:fs/promises';import{homedir,tmpdir}from'node:os';import{basename,dirname,isAbsolute,join,relative,resolve}from'node:path';import{createFileLogger,redactLogValue}from'@wujie-shell/logger';const LOG_MAX_BYTES=0x2*0x400*0x400,LOG_KEEP_COUNT=0x5,loggers=new Map(),CONTENT_PREVIEW_LENGTH=0xf0;export function createShellLogger(_0x40a649,_0x2e845e,_0x1fcc81=_0x2e845e){const _0x5272b4=_0x8ea6,_0x1bcb96=_0x40a649?.[_0x5272b4(0x1fa)];if(!_0x1bcb96||!_0x2e845e)return null;const _0x1250b9=join(_0x1bcb96,_0x2e845e,_0x2e845e+'.log'),_0x380029=_0x1250b9+':'+_0x1fcc81;return!loggers[_0x5272b4(0x1ff)](_0x380029)&&loggers[_0x5272b4(0x1f1)](_0x380029,createFileLogger({'filePath':_0x1250b9,'context':_0x1fcc81,'maxBytes':LOG_MAX_BYTES,'keepCount':LOG_KEEP_COUNT})),loggers[_0x5272b4(0x210)](_0x380029);}export function toHomePath(_0x59d3a3){const _0x57c8ea=_0x8ea6,_0x20bce5=typeof _0x59d3a3===_0x57c8ea(0x1fc)?_0x59d3a3:'';if(!_0x20bce5)return'';const _0x45970d=homedir(),_0x3b4752=isAbsolute(_0x20bce5)?_0x20bce5:resolve(_0x20bce5),_0x4784b5=relative(_0x45970d,_0x3b4752);if(!_0x4784b5||!_0x4784b5[_0x57c8ea(0x20d)+'th']('..')&&!isAbsolute(_0x4784b5))return _0x4784b5?'~/'+_0x4784b5:'~';return _0x3b4752;}export function hashText(_0x144af0){const _0x669b71=_0x8ea6;return createHash(_0x669b71(0x227))['update'](String(_0x144af0))[_0x669b71(0x1eb)](_0x669b71(0x200))[_0x669b71(0x20f)](0x0,0x10);}export function truncateText(_0x3fb54a,_0x3057d0=CONTENT_PREVIEW_LENGTH){const _0x3484d=_0x8ea6,_0x21cb57=String(_0x3fb54a??'')[_0x3484d(0x1e8)](/\s+/g,'\x20')[_0x3484d(0x1e7)]();if(_0x21cb57[_0x3484d(0x203)]<=_0x3057d0)return _0x21cb57;return _0x21cb57[_0x3484d(0x20f)](0x0,_0x3057d0)+_0x3484d(0x1e5);}export function summarizeText(_0x166011,_0x4a7c0f=CONTENT_PREVIEW_LENGTH){const _0x5e3283=_0x8ea6,_0x3a07b5=String(_0x166011??'');return{'length':_0x3a07b5[_0x5e3283(0x203)],'hash':hashText(_0x3a07b5),'preview':truncateText(_0x3a07b5,_0x4a7c0f),'truncated':_0x3a07b5[_0x5e3283(0x203)]>_0x4a7c0f};}function _0x8ea6(_0x55c769,_0xbbe571){_0x55c769=_0x55c769-0x1e2;const _0x3cc5a5=_0x3cc5();let _0x8ea61f=_0x3cc5a5[_0x55c769];return _0x8ea61f;}export function summarizeError(_0x5c1d3c){const _0x5e2722=_0x8ea6;if(_0x5c1d3c instanceof Error)return{'name':_0x5c1d3c[_0x5e2722(0x219)],'message':_0x5c1d3c['message'],'stack':_0x5c1d3c[_0x5e2722(0x21c)]};return{'message':String(_0x5c1d3c)};}function summarizePathValue(_0x45b8db){const _0x41cd89=_0x8ea6;if(typeof _0x45b8db!==_0x41cd89(0x1fc))return _0x45b8db;if(_0x45b8db['includes']('/')||_0x45b8db[_0x41cd89(0x1f6)]('\x5c'))return toHomePath(_0x45b8db);return _0x45b8db;}export function summarizePayload(_0x529c4e,_0x1032d8={}){const _0x5cdefb=_0x8ea6,_0x1dd56d=_0x1032d8[_0x5cdefb(0x214)]??0x4,_0x53d7b0=new WeakSet();function _0x5c10c0(_0x163e45,_0x7173c9,_0x59d4d8=''){const _0x393d73=_0x5cdefb;if(_0x163e45==null)return _0x163e45;if(typeof _0x163e45===_0x393d73(0x1fc)){if(/message|content|prompt|text|body/i[_0x393d73(0x1ea)](_0x59d4d8))return summarizeText(_0x163e45,_0x1032d8[_0x393d73(0x1ec)+'iewLengt'+'h']);return summarizePathValue(_0x163e45);}if(typeof _0x163e45!=='object')return _0x163e45;if(_0x163e45 instanceof Error)return summarizeError(_0x163e45);if(_0x53d7b0[_0x393d73(0x1ff)](_0x163e45))return _0x393d73(0x205)+'r]';if(_0x7173c9>=_0x1dd56d)return'['+(Array['isArray'](_0x163e45)?_0x393d73(0x1fb):'Object')+']';_0x53d7b0['add'](_0x163e45);if(Array[_0x393d73(0x202)](_0x163e45))return{'type':_0x393d73(0x1f8),'length':_0x163e45['length'],'items':_0x163e45[_0x393d73(0x20f)](0x0,0x5)[_0x393d73(0x1e3)](_0x181922=>_0x5c10c0(_0x181922,_0x7173c9+0x1,_0x59d4d8)),'truncated':_0x163e45[_0x393d73(0x203)]>0x5};const _0x328435={};for(const [_0x4aafae,_0x4bb90c]of Object[_0x393d73(0x1e6)](_0x163e45)){_0x328435[_0x4aafae]=_0x5c10c0(_0x4bb90c,_0x7173c9+0x1,_0x4aafae);}return redactLogValue(_0x328435);}return _0x5c10c0(_0x529c4e,0x0);}function _0x3cc5(){const _0x3839b1=['trim','replace','error','test','digest','textPrev','334840kDnCuL','\x20-Force','$Progres','9288XtEjjM','set','10YFJcOz','base64','nce=\x27Sil','ignore','includes','filter','array','-NoProfi','logsDir','Array','string','\x20-Destin','13109958Hucdys','has','hex','ationPat','isArray','length','data','[Circula','.zip','stderr','pid','win32','powershe','\x20failed\x20','close','startsWi','catch','slice','get','toISOStr','logs\x20dir','sPrefere','maxDepth','2140680vKGPfF','env','-Encoded','145153hEzclV','name','utf16le','Command','stack','763kFPDBq','32LcMDPY','stringif','now','ll.exe','ectory\x20n','wujie-sh','ot\x20found','1944930OEyAfo','join','sha256','pipe','map','74832CrxsUZ','...','entries'];_0x3cc5=function(){return _0x3839b1;};return _0x3cc5();}export function summarizeFilePaths(_0x192f3f=[]){const _0x5505a7=_0x8ea6;return(Array[_0x5505a7(0x202)](_0x192f3f)?_0x192f3f:[])[_0x5505a7(0x1e3)](_0x55266a=>String(_0x55266a||'')[_0x5505a7(0x1e7)]())[_0x5505a7(0x1f7)](Boolean)['map'](_0x1a553e=>({'path':toHomePath(_0x1a553e),'name':basename(_0x1a553e)}));}function run(_0x212ef6,_0x5ef83f,_0x55f030={}){return new Promise((_0x5dd101,_0x149796)=>{const _0x2a2c0a=_0x8ea6,_0x3e22d9=spawn(_0x212ef6,_0x5ef83f,{'cwd':_0x55f030['cwd'],'env':{...process.env,..._0x55f030[_0x2a2c0a(0x216)]??{}},'stdio':[_0x2a2c0a(0x1f5),_0x2a2c0a(0x1e2),_0x2a2c0a(0x1e2)]});let _0x3dd83f='';_0x3e22d9[_0x2a2c0a(0x207)]?.['on'](_0x2a2c0a(0x204),_0x2dba19=>{_0x3dd83f+=_0x2dba19['toString']();}),_0x3e22d9['on'](_0x2a2c0a(0x1e9),_0x149796),_0x3e22d9['on'](_0x2a2c0a(0x20c),_0x39e339=>{const _0x4dd8bf=_0x2a2c0a;if(_0x39e339===0x0){_0x5dd101();return;}_0x149796(new Error(_0x212ef6+(_0x4dd8bf(0x20b)+'with\x20cod'+'e=')+_0x39e339+':\x20'+_0x3dd83f));});});}export async function exportLogsArchive({logsDir:_0x2f62b3,targetDir:_0x5d61a4,appVersion:appVersion='dev'}){const _0x407608=_0x8ea6;if(!_0x2f62b3||!existsSync(_0x2f62b3))throw new Error(_0x407608(0x212)+_0x407608(0x222)+_0x407608(0x224)+':\x20'+(_0x2f62b3||''));const _0x247401=String(appVersion||'dev')[_0x407608(0x1e8)](/[^A-Za-z0-9._-]/g,'_'),_0x22254c=new Date()[_0x407608(0x211)+'ing']()[_0x407608(0x1e8)](/[-:]/g,'')[_0x407608(0x1e8)](/\..+$/,''),_0x4ffdca=_0x5d61a4||tmpdir();await mkdir(_0x4ffdca,{'recursive':!![]});const _0x393d3b=join(_0x4ffdca,_0x407608(0x223)+'ell-logs'+'-'+_0x22254c+'-'+_0x247401+_0x407608(0x206));if(process['platform']===_0x407608(0x209)){const _0xa0fa1f=join(tmpdir(),_0x407608(0x223)+'ell-logs'+'-'+process[_0x407608(0x208)]+'-'+Date[_0x407608(0x220)]());await rm(_0xa0fa1f,{'recursive':!![],'force':!![]}),await cp(_0x2f62b3,_0xa0fa1f,{'recursive':!![],'force':!![]});try{const _0x56721e=[_0x407608(0x1ef)+_0x407608(0x213)+_0x407608(0x1f4)+'entlyCon'+'tinue\x27;','Compress'+'-Archive'+'\x20-Path\x20'+JSON['stringif'+'y'](join(_0xa0fa1f,'*'))+(_0x407608(0x1fd)+_0x407608(0x201)+'h\x20')+JSON[_0x407608(0x21f)+'y'](_0x393d3b)+_0x407608(0x1ee)][_0x407608(0x226)]('\x20'),_0x8a7121=Buffer['from'](_0x56721e,_0x407608(0x21a))['toString'](_0x407608(0x1f3));await run(_0x407608(0x20a)+_0x407608(0x221),[_0x407608(0x1f9)+'le',_0x407608(0x217)+_0x407608(0x21b),_0x8a7121]);}finally{await rm(_0xa0fa1f,{'recursive':!![],'force':!![]})[_0x407608(0x20e)](()=>{});}}else await run('zip',['-r',_0x393d3b,'.'],{'cwd':_0x2f62b3});return{'ok':!![],'path':_0x393d3b};}
|
package/dist/src/plugin-sync.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x8eadfc,_0x117a5d){const _0x37ea7d=_0x3662,_0x28d1cf=_0x8eadfc();while(!![]){try{const _0x11e7be=-parseInt(_0x37ea7d(0x1ce))/0x1*(-parseInt(_0x37ea7d(0x1bf))/0x2)+parseInt(_0x37ea7d(0x1c8))/0x3+-parseInt(_0x37ea7d(0x1c6))/0x4*(parseInt(_0x37ea7d(0x1cf))/0x5)+-parseInt(_0x37ea7d(0x1c4))/0x6*(-parseInt(_0x37ea7d(0x1c3))/0x7)+-parseInt(_0x37ea7d(0x1c7))/0x8+-parseInt(_0x37ea7d(0x1c9))/0x9*(parseInt(_0x37ea7d(0x1bc))/0xa)+parseInt(_0x37ea7d(0x1c2))/0xb;if(_0x11e7be===_0x117a5d)break;else _0x28d1cf['push'](_0x28d1cf['shift']());}catch(_0x126d49){_0x28d1cf['push'](_0x28d1cf['shift']());}}}(_0xa5cd,0xf3dd7));import{asRecord,asStringArray,dedupeStrings,getTrimmedString}from'./utils.mjs';function _0x3662(_0x568aa3,_0x2b1b7a){_0x568aa3=_0x568aa3-0x1bb;const _0xa5cde6=_0xa5cd();let _0x366215=_0xa5cde6[_0x568aa3];return _0x366215;}function _0xa5cd(){const _0x114d9c=['7813UmRwdg','7664505dMYatL','enabled','tPluginI','108310TPqcpf','installs','disabled','124LzQEKx','local','length','42957376GuRvlw','4529BuzSEv','7386HKnsuK','entries','4tCnjKU','13633376wErpPe','1666122WjRmjt','1251TadjyY','has','pluginId','allow','source'];_0xa5cd=function(){return _0x114d9c;};return _0xa5cd();}export function syncRuntimeManifestPlugins(_0x3ac46f,_0x339e23,_0x29dfbf={}){const _0x189da5=_0x3662,_0x4c011f=new Set(_0x29dfbf[_0x189da5(0x1be)+'ByDefaul'+_0x189da5(0x1bb)+'ds']??[]),_0x54425c={...asRecord(_0x3ac46f)},_0x23c995={...asRecord(_0x54425c[_0x189da5(0x1c5)])},_0x2d802d={...asRecord(_0x54425c[_0x189da5(0x1bd)])};let _0x5f3dae=asStringArray(_0x54425c['allow']),_0x322e65=![];for(const _0x5ab370 of _0x339e23??[]){const _0x6a71a5=getTrimmedString(_0x5ab370[_0x189da5(0x1cb)]);if(!_0x6a71a5)continue;!(_0x6a71a5 in _0x23c995)&&(_0x23c995[_0x6a71a5]={'enabled':!_0x4c011f[_0x189da5(0x1ca)](_0x6a71a5)},_0x322e65=!![]);if(asRecord(_0x23c995[_0x6a71a5])[_0x189da5(0x1d0)]!==![]){const _0x25f428=dedupeStrings([..._0x5f3dae,_0x6a71a5]);_0x25f428[_0x189da5(0x1c1)]!==_0x5f3dae[_0x189da5(0x1c1)]&&(_0x5f3dae=_0x25f428,_0x322e65=!![]);}getTrimmedString(_0x5ab370[_0x189da5(0x1cd)])===_0x189da5(0x1c0)&&_0x6a71a5 in _0x2d802d&&(delete _0x2d802d[_0x6a71a5],_0x322e65=!![]);}_0x54425c[_0x189da5(0x1c5)]=_0x23c995,_0x54425c[_0x189da5(0x1cc)]=_0x5f3dae;if(Object['keys'](_0x2d802d)[_0x189da5(0x1c1)]>0x0)_0x54425c[_0x189da5(0x1bd)]=_0x2d802d;else delete _0x54425c[_0x189da5(0x1bd)];return{'plugins':_0x54425c,'changed':_0x322e65};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function _0x1939(){const _0x2af7dc=['dAt','projectR','dataDir','logsDir','isArray','4581832EnYonR','openclaw','length','runtime','oot','pluginSp','6MTMZyp','23628708RCPErQ','set','productN','35574UIZaCs','Version','ame','workflow','logsDirN','ecs','dataDirN','ginPaths','resolved','logger','2855388aCnsse','generate','ath','has','wujiecla','532930WZnbwy','14DYUrFb','10CuBZva','ion','plugins','get','agents','1359134Lfgbah','6272588rxcPqR','skillsDi'];_0x1939=function(){return _0x2af7dc;};return _0x1939();}(function(_0x43a240,_0x1f0f54){const _0x2bbf7b=_0x1ebf,_0x4b5f42=_0x43a240();while(!![]){try{const _0x38f185=-parseInt(_0x2bbf7b(0x18d))/0x1+-parseInt(_0x2bbf7b(0x187))/0x2*(-parseInt(_0x2bbf7b(0x177))/0x3)+parseInt(_0x2bbf7b(0x181))/0x4+parseInt(_0x2bbf7b(0x186))/0x5+-parseInt(_0x2bbf7b(0x173))/0x6*(parseInt(_0x2bbf7b(0x18e))/0x7)+-parseInt(_0x2bbf7b(0x195))/0x8+parseInt(_0x2bbf7b(0x174))/0x9*(parseInt(_0x2bbf7b(0x188))/0xa);if(_0x38f185===_0x1f0f54)break;else _0x4b5f42['push'](_0x4b5f42['shift']());}catch(_0x5b9acf){_0x4b5f42['push'](_0x4b5f42['shift']());}}}(_0x1939,0xab1e8));function _0x1ebf(_0x2d902d,_0x5954c8){_0x2d902d=_0x2d902d-0x173;const _0x19395b=_0x1939();let _0x1ebfd6=_0x19395b[_0x2d902d];return _0x1ebfd6;}import{join}from'node:path';import{createFileLogger}from'@wujie-shell/logger';const RUNTIME_LOG_MAX_BYTES=0x2*0x400*0x400,RUNTIME_LOG_KEEP_COUNT=0x5,runtimeLoggers=new Map();export function createRuntimeLogger(_0x148361,_0x36e03='runtime'){const _0x565f4d=_0x1ebf,_0x3b4167=_0x148361?.['logsDir'];if(!_0x3b4167)return null;const _0x39420b=join(_0x3b4167,_0x565f4d(0x198),'runtime.'+'log'),_0x1e5821=_0x39420b+':'+_0x36e03;return!runtimeLoggers[_0x565f4d(0x184)](_0x1e5821)&&runtimeLoggers[_0x565f4d(0x175)](_0x1e5821,createFileLogger({'filePath':_0x39420b,'context':_0x36e03,'maxBytes':RUNTIME_LOG_MAX_BYTES,'keepCount':RUNTIME_LOG_KEEP_COUNT})),runtimeLoggers[_0x565f4d(0x18b)](_0x1e5821);}export function summarizeShellConfig(_0xdb1f1f){const _0x349498=_0x1ebf;return{'appId':_0xdb1f1f['appId'],'productName':_0xdb1f1f[_0x349498(0x176)+'ame'],'projectRoot':_0xdb1f1f[_0x349498(0x191)+_0x349498(0x199)],'dataDir':_0xdb1f1f[_0x349498(0x192)],'dataDirName':_0xdb1f1f[_0x349498(0x17d)+_0x349498(0x179)],'logsDirName':_0xdb1f1f[_0x349498(0x180)]?.[_0x349498(0x17b)+_0x349498(0x179)],'logsDir':_0xdb1f1f['logger']?.[_0x349498(0x193)],'openclawVersion':_0xdb1f1f[_0x349498(0x196)]?.[_0x349498(0x196)+'Version'],'nodeVersion':_0xdb1f1f[_0x349498(0x196)]?.['nodeVers'+_0x349498(0x189)],'pluginSpecCount':_0xdb1f1f[_0x349498(0x196)]?.['pluginSp'+_0x349498(0x17c)]?.[_0x349498(0x197)]??0x0,'localPluginCount':_0xdb1f1f[_0x349498(0x196)]?.[_0x349498(0x17f)+'LocalPlu'+_0x349498(0x17e)]?.['length']??0x0,'agentsDir':_0xdb1f1f[_0x349498(0x196)]?.['agentsDi'+'r'],'skillsDir':_0xdb1f1f[_0x349498(0x196)]?.[_0x349498(0x18f)+'r'],'workflowsDir':_0xdb1f1f[_0x349498(0x196)]?.[_0x349498(0x17a)+'sDir']};}export function summarizeRuntimeManifest(_0x249310){const _0x302203=_0x1ebf;return{'generatedAt':_0x249310?.[_0x302203(0x182)+_0x302203(0x190)],'openclawVersion':_0x249310?.['openclaw'+_0x302203(0x178)],'nodeVersion':_0x249310?.['nodeVers'+_0x302203(0x189)],'pluginCount':Array[_0x302203(0x194)](_0x249310?.[_0x302203(0x18a)])?_0x249310[_0x302203(0x18a)][_0x302203(0x197)]:0x0,'pluginSpecCount':Array[_0x302203(0x194)](_0x249310?.['pluginSp'+_0x302203(0x17c)])?_0x249310[_0x302203(0x19a)+'ecs'][_0x302203(0x197)]:0x0,'agentsInstallPath':_0x249310?.[_0x302203(0x18c)]?.['installP'+'ath'],'skillsInstallPath':_0x249310?.['skills']?.['installP'+_0x302203(0x183)],'wujieclawBin':_0x249310?.[_0x302203(0x185)+'wBin'],'product':_0x249310?.['product']};}
|
package/dist/src/runtime.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x406343=_0x481c;(function(_0x4fb4b9,_0x4e1dc3){const _0x32833e=_0x481c,_0x50a984=_0x4fb4b9();while(!![]){try{const _0x205749=parseInt(_0x32833e(0x23a))/0x1*(parseInt(_0x32833e(0x2a9))/0x2)+parseInt(_0x32833e(0x218))/0x3+parseInt(_0x32833e(0x1d1))/0x4+-parseInt(_0x32833e(0x28c))/0x5*(-parseInt(_0x32833e(0x193))/0x6)+parseInt(_0x32833e(0x1f3))/0x7+-parseInt(_0x32833e(0x26e))/0x8+-parseInt(_0x32833e(0x20e))/0x9;if(_0x205749===_0x4e1dc3)break;else _0x50a984['push'](_0x50a984['shift']());}catch(_0x46b776){_0x50a984['push'](_0x50a984['shift']());}}}(_0x2e9d,0x7c690));import{existsSync}from'node:fs';import{createWriteStream}from'node:fs';import{chmod,cp,mkdir,rename,rm,symlink,writeFile}from'node:fs/promises';import{delimiter,dirname,join,relative,resolve}from'node:path';import{fileURLToPath}from'node:url';import{spawn}from'node:child_process';import{get}from'node:https';import{pipeline}from'node:stream/promises';import{getConfigPaths}from'@wujie-shell/config';function _0x2e9d(){const _0x42a536=['node/lib','Configur','arch','Claw','E_DIR=','root','NCLAW_ST','registry','stdout','\x20return\x20','missing\x20','\x20started','%~dp0\x22','red\x20Node','SCRIPT_D','1902328HmnBPM','ing','dist','\x20resolve','LAW_STAT','\x20depende','npm\x20inst','octor\x20--','null','\x20version','download','alid\x20pay','nodeVers','unzip','.cache','ATE_DIR%','OME=','wujie-lo','pluginSp','join','replaceA','NCLAW_CO','PT_DIR%','PT_DIR/w','FILE%\x5c','export\x20O','ignore',',\x20shell.','\x20configu','timeoutM','5weCnEZ','eady\x20cur','utable','ie-shell','node','ut\x20after','wujiecla','eted','agentSco','skillsDi','go.mjs','with\x20cod','fix\x20mark','m-cli.js','\x20timed\x20o','sion.','set\x20\x22SCR','Version\x20','.json','local','npm','now','\x20did\x20not','indexOf','ecs','plugins\x20','nning\x20op','spec','w-extrac','1531038CQJJsx','rebuilt\x20','m/bin/np','lib','\x20\x20\x22$SCRI','ncies','stderr','with\x20the','agentsDi','config=','ady\x20curr','tar','/node_mo','pluginId','npmCli','prepare\x20','cwd','w.json}\x22','CRIPT_DI','nodejs.o','fix\x20comp','win32','t\x20\x22OPENC','close','ed\x20OpenC','log','\x20-z\x20\x22$WU','rg/dist/','isArray','-peer-de','if\x20[\x20-t\x20','product\x20','nodeExec','label','LocalPlu','has','push','@echo\x20of','runtime-','4787490QHgPKe','dAt','[wujie-s','Claw\x20ver','plugins','--omit=d','ent','d\x20to\x20','fix','ENCLAW_H','idated','rg/','sion\x20val','ing\x20\x22','location','npm\x20root','\x22\x20so\x20the','arm64','ginPaths','Spec','\x20paths','plugin\x20s','st=','red\x20Open','\x20-g','\x20create\x20','HOME=\x22${','ion\x20mism','base\x20alr','startsWi','error','object','name','tarball:','win','resolved','-doctor.','pid','Version','%USERPRO','enclaw\x20d','\x20\x22$0\x22)\x22\x20','-extract','split','ATH=\x22${O','slice','unknown','openclaw','zip','syncOnly','dataDirN','every','toString','.tools','d:\x20','\x20is\x20miss','stalling','OGO\x22\x20];\x20','wnloadin','\x20product','utf8','node_mod','204916hkwqNW','ynced','NCLAW_HO','er\x20writt','info','agents','productN','https://','ogger','flush','skills\x20s','bin','ath','\x20prepare','\x20runtime','\x20doctor\x20','if\x20\x22%OPE','CONFIG_P','pipe','statusCo','local:','ME%\x22==\x22\x22','SIGTERM','runtimeL','runtimeR','json','/opencla','PT_DIR/','-xJf','ced','IR=$(CDP','synced','eer','/node','5606839bDSjsF','extract\x20','ATH:-','\x20not\x20fou','then','href','nd\x20after','npm\x20pack','dataDir','base\x20bui','\x22%SCRIPT','tar.xz','toISOStr','OpenClaw','>/dev/nu','node-v','\x20returne','hell:run','\x20package','load:\x20','projectR','extensio','installP','\x20install','\x20validat','jie-shel','atch:\x20ma','18004014GLuhrN','failed','l\x20prepar','configPa','skills','doctor','kill','tall\x20the','ame','.npmjs.o','996543lJOyMB','H%\x22==\x22\x22\x20','runtime\x20','PENCLAW_','.opencla','sion\x20mis','npm-cach','STATE_DI','\x5copencla','w.json\x22','product','ld\x20start','platform','fix\x20star','agents\x20s','manifest','replace','JSON:\x20','--omit=p','filename','s/wujie-','set\x20\x22OPE','rname\x20--','ules','\x20signal=','\x22\x20%*','node\x20ver','\x22\x20\x22$SCRI','trim','length','node/bin','wBin','path:\x20','not\x20foun','1tCRYVA','match','JIE_NO_L','data','version','ion','ld\x20compl',';\x20run\x20wu','source','d\x20an\x20inv',':\x20manife','--no-aud','pack','add','generate','dules/np','x64','\x20failed\x20','oot','Run\x20\x22wuj','NFIG_PAT','map','\x20complet','filter','versions','package','cal\x20runt','env','ujie-log','string','headers','appId','--legacy','Bin','WorkingD','--fix','_modules'];_0x2e9d=function(){return _0x42a536;};return _0x2e9d();}import{copyDirFresh,getPackageMetadata,readJson,readPluginManifest,toRuntimeRelative,writeJson}from'./utils.mjs';import{createRuntimeLogger,summarizeRuntimeManifest,summarizeShellConfig}from'./runtime-logger.mjs';const RUNTIME_DIR='.tmp/run'+'time',MANIFEST_NAME=_0x406343(0x192)+_0x406343(0x227)+_0x406343(0x29e),NPM_INSTALL_TIMEOUT_MS=0xf*0x3c*0x3e8;export function resolveRuntimeRoot(_0x4cce0e){if(process.env.WUJIE_SHELL_RUNTIME_ROOT)return resolve(process.env.WUJIE_SHELL_RUNTIME_ROOT);return resolve(_0x4cce0e,RUNTIME_DIR);}export function resolveManifestPath(_0x42fc87){return join(_0x42fc87,MANIFEST_NAME);}export async function prepareRuntime(_0x5e07c1,{syncOnly:syncOnly=![]}={}){const _0x3e299a=_0x406343,_0x3cc1a1=resolveRuntimeRoot(_0x5e07c1['projectR'+_0x3e299a(0x24c)]),_0x2327ee=createRuntimeLogger(getConfigPaths(_0x5e07c1),'runtime'),_0xa925e=Date[_0x3e299a(0x2a1)]();_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x2b8)+_0x3e299a(0x21a)+'started',{'syncOnly':syncOnly,'runtimeRoot':_0x3cc1a1,'shellConfig':summarizeShellConfig(_0x5e07c1)});try{const _0xc5d0d3=await ensureRuntimeBase(_0x5e07c1,_0x3cc1a1,{'runtimeLogger':_0x2327ee,'syncOnly':syncOnly});_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x21a)+'manifest'+'\x20loaded',{'manifestPath':resolveManifestPath(_0x3cc1a1),'manifest':summarizeRuntimeManifest(_0xc5d0d3)}),validateRuntimeNodeVersion(_0xc5d0d3,_0x5e07c1),_0x2327ee?.[_0x3e299a(0x1d5)]('runtime\x20'+_0x3e299a(0x232)+_0x3e299a(0x19f)+_0x3e299a(0x19d),{'nodeVersion':_0xc5d0d3[_0x3e299a(0x27a)+_0x3e299a(0x23f)]});if(syncOnly)validateRuntimeOpenClawVersion(_0xc5d0d3,_0x5e07c1),_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x21a)+_0x3e299a(0x1c2)+_0x3e299a(0x277)+_0x3e299a(0x20b)+'ed',{'openclawVersion':_0xc5d0d3['openclaw'+'Version']});else{if(_0xc5d0d3[_0x3e299a(0x1c2)+'Version']!==_0x5e07c1[_0x3e299a(0x1c2)][_0x3e299a(0x1c2)+_0x3e299a(0x1b9)]){const _0x17a6ac=await loadRuntimeInfo(_0x5e07c1['projectR'+'oot']);_0x2327ee?.['info'](_0x3e299a(0x1c2)+_0x3e299a(0x205)+_0x3e299a(0x20a)+_0x3e299a(0x26a),{'fromVersion':_0xc5d0d3['openclaw'+_0x3e299a(0x1b9)]||_0x3e299a(0x1c1),'toVersion':_0x5e07c1[_0x3e299a(0x1c2)]['openclaw'+_0x3e299a(0x1b9)]}),await installOpenClawPackage(_0x17a6ac,_0x5e07c1[_0x3e299a(0x1c2)][_0x3e299a(0x1c2)+_0x3e299a(0x1b9)]),_0xc5d0d3[_0x3e299a(0x1c2)+_0x3e299a(0x1b9)]=_0x5e07c1[_0x3e299a(0x1c2)][_0x3e299a(0x1c2)+_0x3e299a(0x1b9)],_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x1c2)+'\x20package'+_0x3e299a(0x20a)+_0x3e299a(0x250)+'ed',{'openclawVersion':_0xc5d0d3[_0x3e299a(0x1c2)+_0x3e299a(0x1b9)]});}}_0xc5d0d3[_0x3e299a(0x248)+_0x3e299a(0x194)]=new Date()['toISOStr'+_0x3e299a(0x26f)](),_0xc5d0d3[_0x3e299a(0x27a)+_0x3e299a(0x23f)]=_0x5e07c1[_0x3e299a(0x1c2)]['nodeVers'+_0x3e299a(0x23f)],_0xc5d0d3[_0x3e299a(0x222)]={'appId':_0x5e07c1[_0x3e299a(0x259)],'productName':_0x5e07c1[_0x3e299a(0x1d7)+_0x3e299a(0x216)],'dataDirName':_0x5e07c1[_0x3e299a(0x1c5)+_0x3e299a(0x216)]};const _0x245b48=Array[_0x3e299a(0x188)](_0xc5d0d3[_0x3e299a(0x197)])?_0xc5d0d3[_0x3e299a(0x197)][_0x3e299a(0x235)]:0x0;return await syncManifestPluginScope(_0x5e07c1,_0x3cc1a1,_0xc5d0d3),_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x21a)+_0x3e299a(0x1a8)+'cope\x20syn'+_0x3e299a(0x1ee),{'beforePluginCount':_0x245b48,'afterPluginCount':Array[_0x3e299a(0x188)](_0xc5d0d3[_0x3e299a(0x197)])?_0xc5d0d3[_0x3e299a(0x197)]['length']:0x0,'pluginSpecCount':Array[_0x3e299a(0x188)](_0xc5d0d3[_0x3e299a(0x280)+_0x3e299a(0x2a4)])?_0xc5d0d3[_0x3e299a(0x280)+_0x3e299a(0x2a4)][_0x3e299a(0x235)]:0x0}),await syncProductPlugins(_0x5e07c1,_0x3cc1a1,_0xc5d0d3),_0x2327ee?.[_0x3e299a(0x1d5)]('product\x20'+_0x3e299a(0x2a5)+'synced',{'localPluginCount':_0x5e07c1[_0x3e299a(0x1c2)]['resolved'+'LocalPlu'+_0x3e299a(0x1a5)][_0x3e299a(0x235)],'pluginCount':Array[_0x3e299a(0x188)](_0xc5d0d3[_0x3e299a(0x197)])?_0xc5d0d3[_0x3e299a(0x197)][_0x3e299a(0x235)]:0x0}),await syncProductAgents(_0x5e07c1,_0x3cc1a1,_0xc5d0d3),_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x18b)+_0x3e299a(0x226)+'ynced',{'source':_0x5e07c1['openclaw'][_0x3e299a(0x2b1)+'r'],'installPath':_0xc5d0d3[_0x3e299a(0x1d6)]?.[_0x3e299a(0x209)+'ath']}),await syncProductSkills(_0x5e07c1,_0x3cc1a1,_0xc5d0d3),_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x18b)+_0x3e299a(0x1db)+_0x3e299a(0x1d2),{'source':_0x5e07c1[_0x3e299a(0x1c2)][_0x3e299a(0x295)+'r'],'installPath':_0xc5d0d3[_0x3e299a(0x212)]?.[_0x3e299a(0x209)+'ath']}),await syncRuntimeWrapper(_0x5e07c1,_0x3cc1a1,_0xc5d0d3),_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x21a)+'wrapper\x20'+_0x3e299a(0x1f0),{'wujieclawBin':_0xc5d0d3[_0x3e299a(0x292)+_0x3e299a(0x237)]}),await writeJson(resolveManifestPath(_0x3cc1a1),_0xc5d0d3),_0x2327ee?.[_0x3e299a(0x1d5)](_0x3e299a(0x21a)+_0x3e299a(0x227)+'\x20written',{'manifestPath':resolveManifestPath(_0x3cc1a1),'manifest':summarizeRuntimeManifest(_0xc5d0d3),'durationMs':Date['now']()-_0xa925e}),await _0x2327ee?.['flush'](),_0xc5d0d3;}catch(_0x4c01db){_0x2327ee?.[_0x3e299a(0x1b1)](_0x3e299a(0x2b8)+_0x3e299a(0x21a)+_0x3e299a(0x20f),{'syncOnly':syncOnly,'runtimeRoot':_0x3cc1a1,'durationMs':Date[_0x3e299a(0x2a1)]()-_0xa925e,'error':_0x4c01db}),await _0x2327ee?.[_0x3e299a(0x1da)]();throw _0x4c01db;}}function _0x481c(_0x956dfd,_0x512305){_0x956dfd=_0x956dfd-0x17e;const _0x2e9d75=_0x2e9d();let _0x481c1e=_0x2e9d75[_0x956dfd];return _0x481c1e;}async function syncRuntimeWrapper(_0xcebaba,_0x253ba9,_0x4746b1){const _0x1c8bbd=_0x406343,_0x8a2b9=join(_0x253ba9,'bin','wujiecla'+'w'),_0x36ca7a=join(_0x253ba9,'bin',_0x1c8bbd(0x292)+'w.cmd'),_0x2dd18b=normalizeRuntimeRelativePath(relative(dirname(_0x8a2b9),resolve(_0x253ba9,_0x4746b1['nodeExec'+_0x1c8bbd(0x28e)]))),_0x17a929=normalizeRuntimeRelativePath(relative(dirname(_0x8a2b9),resolve(_0x253ba9,_0x4746b1[_0x1c8bbd(0x1c2)+'Bin']))),_0x3767a8='$HOME/'+_0xcebaba[_0x1c8bbd(0x1c5)+'ame'],_0x51b0ef=_0x1c8bbd(0x1ba)+_0x1c8bbd(0x286)+_0xcebaba['dataDirN'+'ame'];await mkdir(dirname(_0x8a2b9),{'recursive':!![]});const _0x1e3873=fileURLToPath(new URL('../asset'+_0x1c8bbd(0x22c)+'logo.mjs',import.meta.url)),_0x51a596=join(_0x253ba9,_0x1c8bbd(0x1dc),_0x1c8bbd(0x27f)+_0x1c8bbd(0x296));await cp(_0x1e3873,_0x51a596),await writeFile(_0x8a2b9,['#!/bin/s'+'h',_0x1c8bbd(0x287)+_0x1c8bbd(0x21b)+_0x1c8bbd(0x1ad)+'OPENCLAW'+'_HOME:-'+_0x3767a8+'}\x22',_0x1c8bbd(0x287)+_0x1c8bbd(0x21b)+_0x1c8bbd(0x21f)+'R=\x22${OPE'+_0x1c8bbd(0x265)+'ATE_DIR:'+'-'+_0x3767a8+'}\x22',_0x1c8bbd(0x287)+_0x1c8bbd(0x21b)+_0x1c8bbd(0x1e2)+_0x1c8bbd(0x1bf)+_0x1c8bbd(0x21b)+'CONFIG_P'+_0x1c8bbd(0x1f5)+_0x3767a8+('/opencla'+_0x1c8bbd(0x2ba)),_0x1c8bbd(0x26d)+_0x1c8bbd(0x1ef)+'ATH=\x20cd\x20'+'--\x20\x22$(di'+_0x1c8bbd(0x22e)+_0x1c8bbd(0x1bc)+'&&\x20pwd)',_0x1c8bbd(0x18a)+'1\x20]\x20&&\x20['+_0x1c8bbd(0x186)+_0x1c8bbd(0x23c)+_0x1c8bbd(0x1cc)+_0x1c8bbd(0x1f7),_0x1c8bbd(0x2ad)+_0x1c8bbd(0x1ec)+_0x2dd18b+('\x22\x20\x22$SCRI'+_0x1c8bbd(0x285)+_0x1c8bbd(0x256)+'o.mjs\x22\x202'+_0x1c8bbd(0x201)+'ll\x20||\x20tr'+'ue'),'fi','exec\x20\x22$S'+_0x1c8bbd(0x17e)+'R/'+_0x2dd18b+(_0x1c8bbd(0x233)+_0x1c8bbd(0x1ec))+_0x17a929+'\x22\x20\x22$@\x22','']['join']('\x0a'),_0x1c8bbd(0x1cf)),await chmod(_0x8a2b9,0x1ed),await writeFile(_0x36ca7a,[_0x1c8bbd(0x191)+'f',_0x1c8bbd(0x1e1)+_0x1c8bbd(0x1d3)+_0x1c8bbd(0x1e6)+'\x20set\x20\x22OP'+_0x1c8bbd(0x19c)+_0x1c8bbd(0x27e)+_0x51b0ef+'\x22',_0x1c8bbd(0x1e1)+_0x1c8bbd(0x265)+_0x1c8bbd(0x27d)+'\x22==\x22\x22\x20se'+_0x1c8bbd(0x182)+_0x1c8bbd(0x272)+_0x1c8bbd(0x263)+_0x51b0ef+'\x22',_0x1c8bbd(0x1e1)+_0x1c8bbd(0x283)+'NFIG_PAT'+_0x1c8bbd(0x219)+_0x1c8bbd(0x22d)+_0x1c8bbd(0x283)+_0x1c8bbd(0x24e)+'H='+_0x51b0ef+(_0x1c8bbd(0x220)+_0x1c8bbd(0x221)),_0x1c8bbd(0x29c)+'IPT_DIR='+_0x1c8bbd(0x26b),_0x1c8bbd(0x1fd)+'_DIR%'+toWindowsPath(_0x2dd18b)+('\x22\x20\x22%SCRI'+_0x1c8bbd(0x284))+toWindowsPath(_0x17a929)+_0x1c8bbd(0x231),''][_0x1c8bbd(0x281)]('\x0d\x0a'),'utf8'),_0x4746b1['wujiecla'+_0x1c8bbd(0x237)]=toRuntimeRelative(_0x253ba9,process['platform']===_0x1c8bbd(0x181)?_0x36ca7a:_0x8a2b9);}function normalizeRuntimeRelativePath(_0x4218f4){const _0x15c660=_0x406343;return _0x4218f4[_0x15c660(0x282)+'ll']('\x5c','/');}function toWindowsPath(_0x487bd2){const _0x15833a=_0x406343;return _0x487bd2[_0x15833a(0x282)+'ll']('/','\x5c');}function validateRuntimeNodeVersion(_0x3ae81a,_0x51729d){const _0xa9167f=_0x406343;if(_0x3ae81a['nodeVers'+_0xa9167f(0x23f)]===_0x51729d[_0xa9167f(0x1c2)][_0xa9167f(0x27a)+'ion'])return;throw new Error(_0xa9167f(0x21a)+_0xa9167f(0x27a)+_0xa9167f(0x1ae)+_0xa9167f(0x20d)+'nifest='+(_0x3ae81a[_0xa9167f(0x27a)+_0xa9167f(0x23f)]||_0xa9167f(0x1c1))+(',\x20shell.'+_0xa9167f(0x2b2))+_0x51729d['openclaw'][_0xa9167f(0x27a)+_0xa9167f(0x23f)]+'.\x20'+(_0xa9167f(0x24d)+_0xa9167f(0x28f)+_0xa9167f(0x1de)+_0xa9167f(0x1a3)+_0xa9167f(0x1ce)+_0xa9167f(0x1df)+'\x20can\x20be\x20'+_0xa9167f(0x2aa)+_0xa9167f(0x2b0)+_0xa9167f(0x28a)+_0xa9167f(0x26c)+_0xa9167f(0x277)+'.'));}function validateRuntimeOpenClawVersion(_0xc79dae,_0x29552c){const _0x281b69=_0x406343;if(_0xc79dae['openclaw'+'Version']===_0x29552c['openclaw'][_0x281b69(0x1c2)+'Version'])return;throw new Error(_0x281b69(0x21a)+_0x281b69(0x1c2)+_0x281b69(0x29d)+'mismatch'+_0x281b69(0x244)+_0x281b69(0x1a9)+(_0xc79dae[_0x281b69(0x1c2)+'Version']||_0x281b69(0x1c1))+(_0x281b69(0x289)+_0x281b69(0x2b2))+_0x29552c['openclaw'][_0x281b69(0x1c2)+'Version']+'.\x20'+(_0x281b69(0x24d)+_0x281b69(0x28f)+'\x20prepare'+_0x281b69(0x1a3)+_0x281b69(0x1df)+'\x20can\x20ins'+_0x281b69(0x215)+'\x20configu'+_0x281b69(0x1aa)+_0x281b69(0x196)+_0x281b69(0x29b)));}function parseNpmPackJson(_0x2ad07c){const _0x529de1=_0x406343,_0xf3b591=_0x2ad07c[_0x529de1(0x234)](),_0x155f4f=_0xf3b591[_0x529de1(0x2a3)]('[');if(_0x155f4f<0x0)throw new Error(_0x529de1(0x1fa)+_0x529de1(0x2a2)+_0x529de1(0x268)+_0x529de1(0x229)+_0xf3b591['slice'](0x0,0x1f4));const _0x1fda0c=JSON['parse'](_0xf3b591['slice'](_0x155f4f)),_0x3bee0f=Array[_0x529de1(0x188)](_0x1fda0c)?_0x1fda0c[0x0]:_0x1fda0c;if(!_0x3bee0f||typeof _0x3bee0f!==_0x529de1(0x1b2))throw new Error('npm\x20pack'+_0x529de1(0x203)+_0x529de1(0x243)+_0x529de1(0x279)+_0x529de1(0x206)+_0xf3b591['slice'](0x0,0x1f4));return _0x3bee0f;}async function runProcess(_0x129cac,_0x238c6c,_0x258d9c={}){const _0x4a4488=_0x406343,_0xd6015d=_0x258d9c[_0x4a4488(0x18d)]||[_0x129cac,..._0x238c6c][_0x4a4488(0x281)]('\x20'),_0x55432c=_0x258d9c[_0x4a4488(0x28b)+'s']??NPM_INSTALL_TIMEOUT_MS,_0x1c5416=spawn(_0x129cac,_0x238c6c,{'cwd':_0x258d9c[_0x4a4488(0x2b9)],'env':_0x258d9c[_0x4a4488(0x255)],'stdio':[_0x4a4488(0x288),_0x4a4488(0x1e3),_0x4a4488(0x1e3)]});return await new Promise((_0xcb2a07,_0x2b40d4)=>{const _0x228a7e=_0x4a4488;let _0x4a63b9='',_0x5ee78f='',_0x5e0d44=![];const _0x11c7b3=setTimeout(()=>{const _0x1e3fc2=_0x481c;if(_0x5e0d44)return;_0x5e0d44=!![],_0x1c5416['kill']('SIGTERM'),_0x2b40d4(new Error(_0xd6015d+(_0x1e3fc2(0x29a)+'ut\x20after'+'\x20')+_0x55432c+'ms'));},_0x55432c);_0x1c5416[_0x228a7e(0x267)]['on'](_0x228a7e(0x23d),_0xf14f8a=>{const _0x39fce3=_0x228a7e;_0x4a63b9+=_0xf14f8a[_0x39fce3(0x1c7)]();}),_0x1c5416[_0x228a7e(0x2af)]['on']('data',_0x125228=>{_0x5ee78f+=_0x125228['toString']();}),_0x1c5416['on'](_0x228a7e(0x1b1),_0x3c0d33=>{if(_0x5e0d44)return;_0x5e0d44=!![],clearTimeout(_0x11c7b3),_0x2b40d4(_0x3c0d33);}),_0x1c5416['on'](_0x228a7e(0x183),(_0x44f5e0,_0x2c6517)=>{const _0x53dd8c=_0x228a7e;if(_0x5e0d44)return;_0x5e0d44=!![],clearTimeout(_0x11c7b3);if(_0x44f5e0===0x0){_0xcb2a07({'stdout':_0x4a63b9,'stderr':_0x5ee78f});return;}_0x2b40d4(new Error(_0xd6015d+(_0x53dd8c(0x24b)+_0x53dd8c(0x297)+'e=')+(_0x44f5e0??_0x53dd8c(0x276))+_0x53dd8c(0x230)+(_0x2c6517??_0x53dd8c(0x276))+'\x0a'+(''+(_0x5ee78f||_0x4a63b9))[_0x53dd8c(0x234)]()));});});}async function installOpenClawPackage(_0x63dbd4,_0x21b652){const _0x8487b5=_0x406343,_0x362120=join(_0x63dbd4[_0x8487b5(0x1e9)+_0x8487b5(0x24c)],_0x8487b5(0x27c)),_0x210a1e=join(_0x63dbd4[_0x8487b5(0x1e9)+'oot'],_0x8487b5(0x21c)+_0x8487b5(0x2a8)+'t');await mkdir(_0x362120,{'recursive':!![]}),await rm(_0x210a1e,{'recursive':!![],'force':!![]}),await mkdir(_0x210a1e,{'recursive':!![]});const _0x43ca40=await createRuntimeEnv(_0x63dbd4),_0x67badc='openclaw'+'@'+_0x21b652;console[_0x8487b5(0x185)](_0x8487b5(0x195)+_0x8487b5(0x204)+'time]\x20in'+_0x8487b5(0x1cb)+'\x20'+_0x67badc);const _0x417827=await runProcess(_0x63dbd4[_0x8487b5(0x18c)+'utable'],[_0x63dbd4[_0x8487b5(0x2b7)],_0x8487b5(0x246),_0x67badc,'--json'],{'cwd':_0x362120,'env':_0x43ca40,'label':_0x8487b5(0x1fa)+'\x20'+_0x67badc}),_0x1f2488=parseNpmPackJson(_0x417827['stdout']);if(_0x1f2488[_0x8487b5(0x23e)]!==_0x21b652)throw new Error(_0x8487b5(0x260)+_0x8487b5(0x184)+'law\x20'+_0x21b652+(_0x8487b5(0x271)+_0x8487b5(0x19a))+_0x1f2488['version']);const _0x29c6c5=resolve(_0x362120,_0x1f2488['filename']);if(!existsSync(_0x29c6c5))throw new Error(_0x8487b5(0x1fa)+_0x8487b5(0x2a2)+_0x8487b5(0x1ac)+_0x8487b5(0x1b4)+'\x20'+_0x29c6c5);await runProcess(_0x8487b5(0x2b4),['-xzf',_0x29c6c5,'-C',_0x210a1e],{'label':_0x8487b5(0x1f4)+_0x1f2488[_0x8487b5(0x22b)]}),await rm(_0x63dbd4['openclaw'+_0x8487b5(0x25c)+'ir'],{'recursive':!![],'force':!![]}),await rename(join(_0x210a1e,_0x8487b5(0x253)),_0x63dbd4[_0x8487b5(0x1c2)+_0x8487b5(0x25c)+'ir']),await rm(_0x210a1e,{'recursive':!![],'force':!![]}),await runProcess(_0x63dbd4['nodeExec'+_0x8487b5(0x28e)],[_0x63dbd4[_0x8487b5(0x2b7)],'install',_0x8487b5(0x198)+'ev',_0x8487b5(0x22a)+_0x8487b5(0x1f1),_0x8487b5(0x245)+'it','--no-fun'+'d',_0x8487b5(0x25a)+_0x8487b5(0x189)+'ps'],{'cwd':_0x63dbd4[_0x8487b5(0x1c2)+'WorkingD'+'ir'],'env':_0x43ca40,'label':_0x8487b5(0x274)+'all\x20'+_0x67badc+(_0x8487b5(0x1df)+_0x8487b5(0x273)+_0x8487b5(0x2ae))});if(!existsSync(_0x63dbd4[_0x8487b5(0x1c2)+_0x8487b5(0x25b)]))throw new Error(_0x8487b5(0x200)+'\x20bin\x20was'+_0x8487b5(0x1f6)+_0x8487b5(0x1f9)+'\x20install'+':\x20'+_0x63dbd4[_0x8487b5(0x1c2)+_0x8487b5(0x25b)]);}async function ensureRuntimeBase(_0x485a5f,_0x336a0c,_0xcea732={}){const _0x57a739=_0x406343;await mkdir(_0x336a0c,{'recursive':!![]});let _0x268861=await readRuntimeManifest(_0x336a0c);const _0x4db818=_0x485a5f[_0x57a739(0x1c2)][_0x57a739(0x27a)+'ion'],_0x1c09a9=_0x485a5f['openclaw'][_0x57a739(0x1c2)+_0x57a739(0x1b9)],_0x2ad0c4=existsSync(resolveManifestPath(_0x336a0c)),_0x4be956=runtimeHasRequiredPaths(_0x336a0c,_0x268861),_0x180064=_0x268861[_0x57a739(0x27a)+_0x57a739(0x23f)]===_0x4db818;!_0x2ad0c4||!_0x4be956||!_0x180064?(_0xcea732[_0x57a739(0x1e8)+'ogger']?.[_0x57a739(0x1d5)]('runtime\x20'+_0x57a739(0x1fc)+_0x57a739(0x223)+'ed',{'runtimeRoot':_0x336a0c,'reason':!_0x2ad0c4?'missing\x20'+_0x57a739(0x227):!_0x4be956?'missing\x20'+'required'+_0x57a739(0x1df)+_0x57a739(0x1a7):_0x57a739(0x232)+_0x57a739(0x21d)+_0x57a739(0x23b),'syncOnly':_0xcea732[_0x57a739(0x1c4)]}),_0x268861=await buildRuntimeBase(_0x485a5f,_0x336a0c,_0x268861),_0xcea732['runtimeL'+_0x57a739(0x1d9)]?.[_0x57a739(0x1d5)]('runtime\x20'+_0x57a739(0x1fc)+_0x57a739(0x240)+_0x57a739(0x293),{'manifest':summarizeRuntimeManifest(_0x268861)})):_0xcea732[_0x57a739(0x1e8)+_0x57a739(0x1d9)]?.[_0x57a739(0x1d5)]('runtime\x20'+_0x57a739(0x1af)+_0x57a739(0x28d)+'rent',{'manifest':summarizeRuntimeManifest(_0x268861)});if(!existsSync(resolve(_0x336a0c,_0x268861[_0x57a739(0x1c2)+_0x57a739(0x25b)]))){const _0x4e41ce=createRuntimeInfoFromManifest(_0x336a0c,_0x268861,{'allowMissingOpenClaw':!![]});await installOpenClawPackage(_0x4e41ce,_0x1c09a9),_0x268861[_0x57a739(0x1c2)+_0x57a739(0x1b9)]=_0x1c09a9;}return _0x268861;}function runtimeHasRequiredPaths(_0x1ae522,_0x49be6b){const _0x3a6e4d=_0x406343;return[_0x3a6e4d(0x18c)+_0x3a6e4d(0x28e),_0x3a6e4d(0x2b7),_0x3a6e4d(0x1c2)+_0x3a6e4d(0x25c)+'ir',_0x3a6e4d(0x1c2)+'Bin'][_0x3a6e4d(0x1c6)](_0x455e8b=>typeof _0x49be6b[_0x455e8b]==='string'&&_0x49be6b[_0x455e8b][_0x3a6e4d(0x234)]())&&[_0x3a6e4d(0x18c)+_0x3a6e4d(0x28e),_0x3a6e4d(0x2b7)][_0x3a6e4d(0x1c6)](_0x5d2b75=>existsSync(resolve(_0x1ae522,_0x49be6b[_0x5d2b75])));}async function buildRuntimeBase(_0x3cc529,_0x40990a,_0xf1a18c={}){const _0x3a6d5f=_0x406343,_0x46b63f=join(_0x40990a,'node');await ensureRuntimeNode(_0x3cc529,_0x46b63f);const _0x56299f={..._0xf1a18c,'generatedAt':new Date()[_0x3a6d5f(0x1ff)+_0x3a6d5f(0x26f)](),'nodeVersion':_0x3cc529['openclaw']['nodeVers'+_0x3a6d5f(0x23f)],'openclawVersion':_0xf1a18c[_0x3a6d5f(0x1c2)+_0x3a6d5f(0x1b9)]||'','platform':process[_0x3a6d5f(0x224)],'arch':process[_0x3a6d5f(0x261)],'nodeExecutable':_0x3a6d5f(0x236)+_0x3a6d5f(0x1f2),'npmCli':_0x3a6d5f(0x25f)+_0x3a6d5f(0x2b5)+_0x3a6d5f(0x249)+_0x3a6d5f(0x2ab)+_0x3a6d5f(0x299),'openclawWorkingDir':_0x3a6d5f(0x1c2),'openclawBin':_0x3a6d5f(0x1c2)+_0x3a6d5f(0x1eb)+'w.mjs'};return await writeJson(resolveManifestPath(_0x40990a),_0x56299f),_0x56299f;}async function ensureRuntimeNode(_0x4e9ad8,_0x5c7f70){const _0x1b2a95=_0x406343,_0xebee2c=_0x4e9ad8['openclaw']['nodeVers'+'ion'],_0x1e27fb=join(_0x5c7f70,'bin','node'),_0xcc7fcc=join(_0x5c7f70,_0x1b2a95(0x2ac),_0x1b2a95(0x1d0)+_0x1b2a95(0x22f),_0x1b2a95(0x2a0),'bin','npm-cli.'+'js');if(existsSync(_0x1e27fb)&&existsSync(_0xcc7fcc)&&await getNodeVersion(_0x1e27fb)===_0xebee2c)return;await rm(_0x5c7f70,{'recursive':!![],'force':!![],'maxRetries':0x5,'retryDelay':0x96});if(process['versions'][_0x1b2a95(0x290)]===_0xebee2c){await linkCurrentNodeRuntime(_0x5c7f70);return;}await downloadNodeRuntime(_0xebee2c,_0x5c7f70);}async function getNodeVersion(_0xcfc2b){const _0x28529d=_0x406343;try{const _0x228698=await runProcess(_0xcfc2b,['-p','process.'+_0x28529d(0x252)+'.node'],{'label':_0xcfc2b+_0x28529d(0x277),'timeoutMs':0x7530});return _0x228698[_0x28529d(0x267)][_0x28529d(0x234)]();}catch{return'';}}async function linkCurrentNodeRuntime(_0xc176f){const _0x2faf78=_0x406343,_0x4eb652=process['execPath'],_0xf86ead=resolve(dirname(_0x4eb652),'..'),_0x230401=resolve(_0xf86ead,'lib/node'+_0x2faf78(0x25e)+'/npm'),_0x2626c7=join(_0xc176f,_0x2faf78(0x1dc),_0x2faf78(0x290)),_0x2c62a1=join(_0xc176f,'lib',_0x2faf78(0x1d0)+_0x2faf78(0x22f),'npm');await mkdir(dirname(_0x2626c7),{'recursive':!![]}),await mkdir(dirname(_0x2c62a1),{'recursive':!![]}),await symlink(_0x4eb652,_0x2626c7),existsSync(_0x230401)?await symlink(_0x230401,_0x2c62a1):await symlink(await resolveNpmRoot(),_0x2c62a1);}async function resolveNpmRoot(){const _0x558f1d=_0x406343,_0x14f7dd=await runProcess(_0x558f1d(0x2a0),[_0x558f1d(0x264),'-g'],{'label':_0x558f1d(0x1a2)+_0x558f1d(0x1ab),'timeoutMs':0x7530}),_0x239ea9=join(_0x14f7dd['stdout'][_0x558f1d(0x234)](),_0x558f1d(0x2a0));if(!existsSync(join(_0x239ea9,_0x558f1d(0x1dc),'npm-cli.'+'js')))throw new Error('npm\x20pack'+'age\x20was\x20'+_0x558f1d(0x239)+'d\x20for\x20lo'+_0x558f1d(0x254)+'ime\x20buil'+_0x558f1d(0x1c9)+_0x239ea9);return _0x239ea9;}async function downloadNodeRuntime(_0x1107a4,_0x43fbad){const _0x366732=_0x406343,_0x412663=process[_0x366732(0x224)]===_0x366732(0x181)?_0x366732(0x1b5):process[_0x366732(0x224)],_0x538f34=process[_0x366732(0x261)]===_0x366732(0x24a)?_0x366732(0x24a):process[_0x366732(0x261)]===_0x366732(0x1a4)?_0x366732(0x1a4):process[_0x366732(0x261)],_0x9f1046=process['platform']===_0x366732(0x181)?_0x366732(0x1c3):_0x366732(0x1fe),_0x22e7ff=_0x366732(0x202)+_0x1107a4+'-'+_0x412663+'-'+_0x538f34,_0x3153ad=_0x22e7ff+'.'+_0x9f1046,_0x22977=join(dirname(_0x43fbad),'.cache'),_0x4a846e=join(_0x22977,_0x3153ad),_0x2df631=join(_0x22977,_0x22e7ff+(_0x366732(0x1bd)+'-')+process[_0x366732(0x1b8)]+'-'+Date[_0x366732(0x2a1)]()),_0x3c53bc=_0x366732(0x1d8)+_0x366732(0x17f)+_0x366732(0x187)+'v'+_0x1107a4+'/'+_0x3153ad;await mkdir(_0x22977,{'recursive':!![]}),!existsSync(_0x4a846e)&&(console[_0x366732(0x185)]('[wujie-s'+_0x366732(0x204)+'time]\x20do'+_0x366732(0x1cd)+'g\x20'+_0x3c53bc),await downloadFile(_0x3c53bc,_0x4a846e)),await rm(_0x2df631,{'recursive':!![],'force':!![]}),await mkdir(_0x2df631,{'recursive':!![]}),process[_0x366732(0x224)]===_0x366732(0x181)?await runProcess(_0x366732(0x27b),['-q',_0x4a846e,'-d',_0x2df631],{'label':_0x366732(0x1f4)+_0x3153ad}):await runProcess(_0x366732(0x2b4),[_0x366732(0x1ed),_0x4a846e,'-C',_0x2df631],{'label':_0x366732(0x1f4)+_0x3153ad}),await rename(join(_0x2df631,_0x22e7ff),_0x43fbad),await rm(_0x2df631,{'recursive':!![],'force':!![]});}async function downloadFile(_0x5cc1df,_0x4e1d20){await mkdir(dirname(_0x4e1d20),{'recursive':!![]});const _0x3d370b=await new Promise((_0x1dbc20,_0x23049c)=>{const _0xed3f15=_0x481c;get(_0x5cc1df,_0x4c6ffc=>{const _0x4050d1=_0x481c;if(_0x4c6ffc['statusCo'+'de']>=0x12c&&_0x4c6ffc[_0x4050d1(0x1e4)+'de']<0x190&&_0x4c6ffc[_0x4050d1(0x258)][_0x4050d1(0x1a1)]){_0x4c6ffc['resume'](),downloadFile(new URL(_0x4c6ffc['headers'][_0x4050d1(0x1a1)],_0x5cc1df)[_0x4050d1(0x1f8)],_0x4e1d20)[_0x4050d1(0x1f7)](()=>_0x1dbc20(null))['catch'](_0x23049c);return;}if(_0x4c6ffc['statusCo'+'de']!==0xc8){_0x4c6ffc['resume'](),_0x23049c(new Error(_0x4050d1(0x278)+_0x4050d1(0x24b)+_0x4c6ffc[_0x4050d1(0x1e4)+'de']+':\x20'+_0x5cc1df));return;}_0x1dbc20(_0x4c6ffc);})['on'](_0xed3f15(0x1b1),_0x23049c);});_0x3d370b&&await pipeline(_0x3d370b,createWriteStream(_0x4e1d20));}export async function ensureOpenClawDoctorFixed(_0x3079b8,_0x2c99e7={}){const _0x4960ea=_0x406343,_0x54897d=await loadRuntimeInfo(_0x3079b8[_0x4960ea(0x207)+_0x4960ea(0x24c)]),_0x2b6881=getConfigPaths(_0x3079b8),_0x4799cf=join(_0x2b6881['runtimeS'+'tateDir'],_0x4960ea(0x1c2)+_0x4960ea(0x1b7)+_0x4960ea(0x1ea)),_0x36e661=await readJson(_0x4799cf,{});if(_0x36e661[_0x4960ea(0x1c2)+'Version']===_0x54897d[_0x4960ea(0x1c2)+_0x4960ea(0x1b9)])return _0x2c99e7[_0x4960ea(0x1e8)+'ogger']?.[_0x4960ea(0x1d5)](_0x4960ea(0x1c2)+_0x4960ea(0x1e0)+'fix\x20alre'+_0x4960ea(0x2b3)+_0x4960ea(0x199),{'openclawVersion':_0x54897d[_0x4960ea(0x1c2)+_0x4960ea(0x1b9)],'markerPath':_0x4799cf}),{'ran':![],'openclawVersion':_0x54897d[_0x4960ea(0x1c2)+'Version'],'markerPath':_0x4799cf};return await runOpenClawDoctorFix(_0x3079b8,_0x54897d,{'fromVersion':_0x36e661[_0x4960ea(0x1c2)+'Version']||_0x4960ea(0x1c1),'toVersion':_0x54897d[_0x4960ea(0x1c2)+_0x4960ea(0x1b9)],'markerPath':_0x4799cf,'runtimeLogger':_0x2c99e7[_0x4960ea(0x1e8)+_0x4960ea(0x1d9)]}),{'ran':!![],'openclawVersion':_0x54897d[_0x4960ea(0x1c2)+_0x4960ea(0x1b9)],'markerPath':_0x4799cf};}async function runOpenClawDoctorFix(_0x33725f,_0x45d7a0,{fromVersion:_0x2109be,toVersion:_0x174811,markerPath:markerPath='',runtimeLogger:_0x35e5cd}={}){const _0x14e76a=_0x406343;_0x35e5cd?.[_0x14e76a(0x1d5)](_0x14e76a(0x1c2)+_0x14e76a(0x1e0)+_0x14e76a(0x225)+'ted',{'fromVersion':_0x2109be,'toVersion':_0x174811});const _0x5b1009=await createRuntimeEnv(_0x45d7a0,{'OPENCLAW_HOME':_0x33725f[_0x14e76a(0x1fb)],'OPENCLAW_STATE_DIR':_0x33725f[_0x14e76a(0x1fb)],'OPENCLAW_CONFIG_PATH':getConfigPaths(_0x33725f)[_0x14e76a(0x211)+'th']});console[_0x14e76a(0x185)]('[wujie-s'+_0x14e76a(0x204)+'time]\x20ru'+_0x14e76a(0x2a6)+_0x14e76a(0x1bb)+_0x14e76a(0x275)+_0x14e76a(0x19b));const _0x212e76=await runProcess(_0x45d7a0[_0x14e76a(0x18c)+'utable'],[_0x45d7a0[_0x14e76a(0x1c2)+_0x14e76a(0x25b)],_0x14e76a(0x213),_0x14e76a(0x25d)],{'cwd':_0x45d7a0['openclaw'+'WorkingD'+'ir'],'env':_0x5b1009,'label':_0x14e76a(0x1c2)+_0x14e76a(0x1e0)+_0x14e76a(0x25d),'timeoutMs':0x1d4c0});_0x35e5cd?.[_0x14e76a(0x1d5)](_0x14e76a(0x1c2)+_0x14e76a(0x1e0)+_0x14e76a(0x180)+'leted',{'fromVersion':_0x2109be,'toVersion':_0x174811,'stdout':_0x212e76['stdout'][_0x14e76a(0x234)]()['slice'](-0xfa0),'stderr':_0x212e76[_0x14e76a(0x2af)][_0x14e76a(0x234)]()[_0x14e76a(0x1c0)](-0xfa0)}),markerPath&&(await writeJson(markerPath,{'openclawVersion':_0x45d7a0[_0x14e76a(0x1c2)+_0x14e76a(0x1b9)],'fixedAt':new Date()[_0x14e76a(0x1ff)+_0x14e76a(0x26f)]()}),_0x35e5cd?.['info'](_0x14e76a(0x1c2)+'\x20doctor\x20'+_0x14e76a(0x298)+_0x14e76a(0x1d4)+'en',{'markerPath':markerPath,'openclawVersion':_0x45d7a0[_0x14e76a(0x1c2)+'Version']}));}export async function readRuntimeManifest(_0x428707){return await readJson(resolveManifestPath(_0x428707),{});}export async function loadRuntimeInfo(_0x4f289b){const _0x4e81a8=resolveRuntimeRoot(_0x4f289b),_0x40beec=await readRuntimeManifest(_0x4e81a8);return createRuntimeInfoFromManifest(_0x4e81a8,_0x40beec);}function createRuntimeInfoFromManifest(_0x35135e,_0x31df19,_0x4ee885={}){const _0x1b81b2=_0x406343;for(const _0x5057b1 of['nodeExec'+'utable',_0x1b81b2(0x2b7),_0x1b81b2(0x1c2)+_0x1b81b2(0x25c)+'ir',_0x1b81b2(0x1c2)+'Bin']){if(typeof _0x31df19[_0x5057b1]!==_0x1b81b2(0x257)||!_0x31df19[_0x5057b1][_0x1b81b2(0x234)]())throw new Error(_0x1b81b2(0x21a)+_0x1b81b2(0x227)+_0x1b81b2(0x1ca)+_0x1b81b2(0x1a0)+_0x5057b1+'\x22\x20at\x20'+resolveManifestPath(_0x35135e)+(_0x1b81b2(0x241)+_0x1b81b2(0x20c)+_0x1b81b2(0x210)+'e'));}const _0x4e3aa0=resolve(_0x35135e,_0x31df19['nodeExec'+'utable']),_0xa615cc=resolve(_0x35135e,_0x31df19[_0x1b81b2(0x2b7)]),_0x2b3909=resolve(_0x35135e,_0x31df19['openclaw'+'WorkingD'+'ir']),_0x221e26=resolve(_0x35135e,_0x31df19[_0x1b81b2(0x1c2)+_0x1b81b2(0x25b)]),_0xcdf769=Array[_0x1b81b2(0x188)](_0x31df19[_0x1b81b2(0x197)])?_0x31df19[_0x1b81b2(0x197)][_0x1b81b2(0x24f)](_0x5e6957=>({..._0x5e6957,'installPath':resolve(_0x35135e,_0x5e6957[_0x1b81b2(0x209)+'ath'])})):[],_0x16eef4=_0x4ee885['allowMis'+'singOpen'+_0x1b81b2(0x262)]?[_0x4e3aa0,_0xa615cc]:[_0x4e3aa0,_0xa615cc,_0x2b3909,_0x221e26];for(const _0x4f586e of _0x16eef4){if(!existsSync(_0x4f586e))throw new Error('runtime\x20'+_0x1b81b2(0x269)+_0x1b81b2(0x238)+_0x4f586e);}return{'runtimeRoot':_0x35135e,'manifest':_0x31df19,'openclawVersion':_0x31df19['openclaw'+_0x1b81b2(0x1b9)]||'unknown','nodeExecutable':_0x4e3aa0,'npmCli':_0xa615cc,'openclawWorkingDir':_0x2b3909,'openclawBin':_0x221e26,'plugins':_0xcdf769};}export async function spawnClaw(_0xf2190e,_0x40a256=[],_0x2ca547={}){const _0x3dd08a=_0x406343,_0x15aa0a=await loadRuntimeInfo(_0xf2190e),_0x2783f0=await createRuntimeEnv(_0x15aa0a,_0x2ca547[_0x3dd08a(0x255)]??{});return spawn(_0x15aa0a['nodeExec'+'utable'],[_0x15aa0a['openclaw'+_0x3dd08a(0x25b)],..._0x40a256],{'cwd':_0x15aa0a[_0x3dd08a(0x1c2)+_0x3dd08a(0x25c)+'ir'],'stdio':_0x3dd08a(0x1e3),..._0x2ca547,'env':_0x2783f0});}export async function runClawOnce(_0x37d722,_0x146716=[],_0x59c232=0x15f90){const _0x47a162=await spawnClaw(_0x37d722,_0x146716);return await new Promise((_0x51c1cd,_0x59d722)=>{const _0x35266f=_0x481c;let _0x43f9b6='',_0x112000='',_0xfade53=![];const _0xeda6=setTimeout(()=>{const _0x5589fc=_0x481c;if(_0xfade53)return;_0xfade53=!![],_0x47a162[_0x5589fc(0x214)](_0x5589fc(0x1e7)),_0x59d722(new Error(_0x5589fc(0x1c2)+_0x5589fc(0x29a)+_0x5589fc(0x291)+'\x20'+_0x59c232+'ms'));},_0x59c232);_0x47a162['stdout']['on']('data',_0x1645ad=>{const _0x3ca055=_0x481c;_0x43f9b6+=_0x1645ad[_0x3ca055(0x1c7)]();}),_0x47a162['stderr']['on'](_0x35266f(0x23d),_0x2b1d73=>{const _0x392750=_0x35266f;_0x112000+=_0x2b1d73[_0x392750(0x1c7)]();}),_0x47a162['on']('error',_0x2272d6=>{if(_0xfade53)return;_0xfade53=!![],clearTimeout(_0xeda6),_0x59d722(_0x2272d6);}),_0x47a162['on'](_0x35266f(0x183),(_0x2c1bb2,_0x1e37ed)=>{if(_0xfade53)return;_0xfade53=!![],clearTimeout(_0xeda6),_0x51c1cd({'code':_0x2c1bb2,'signal':_0x1e37ed,'stdout':_0x43f9b6,'stderr':_0x112000});});});}async function createRuntimeEnv(_0x53ddea,_0x45d8c7={}){const _0x132c51=_0x406343,_0x20e690=process.env.OPENCLAW_STATE_DIR||'',_0x12d0f5=_0x20e690?join(_0x20e690,'claw-run'+'time-too'+'ls'):join(_0x53ddea[_0x132c51(0x1e9)+_0x132c51(0x24c)],_0x132c51(0x1c8)),_0xbf2835=join(_0x12d0f5,'npm-glob'+'al'),_0x51402d=join(_0x12d0f5,_0x132c51(0x21e)+'e'),_0x8803c7=join(_0xbf2835,_0x132c51(0x1dc));await mkdir(_0x8803c7,{'recursive':!![]}),await mkdir(_0x51402d,{'recursive':!![]});const _0x10e32e=[_0x8803c7,dirname(_0x53ddea['nodeExec'+_0x132c51(0x28e)]),process.env.PATH||''];return{...process.env,..._0x45d8c7,'PATH':_0x10e32e[_0x132c51(0x251)](Boolean)[_0x132c51(0x281)](delimiter),'npm_config_prefix':_0xbf2835,'NPM_CONFIG_PREFIX':_0xbf2835,'npm_config_cache':_0x51402d,'NPM_CONFIG_CACHE':_0x51402d,'npm_config_registry':_0x132c51(0x1d8)+_0x132c51(0x266)+_0x132c51(0x217)+'rg/','NPM_CONFIG_REGISTRY':_0x132c51(0x1d8)+_0x132c51(0x266)+_0x132c51(0x217)+'rg/','npm_execpath':_0x53ddea[_0x132c51(0x2b7)],'npm_node_execpath':_0x53ddea[_0x132c51(0x18c)+'utable'],'OPENCLAW_RUNTIME_NPM_PREFIX':_0xbf2835,'OPENCLAW_RUNTIME_NPM_BIN':_0x8803c7,'OPENCLAW_RUNTIME_NPM_REGISTRY':_0x132c51(0x1d8)+_0x132c51(0x266)+_0x132c51(0x217)+_0x132c51(0x19e)};}async function syncProductPlugins(_0x34e4a1,_0x10f5f9,_0x2c02f9){const _0x553b29=_0x406343,_0x33cfdc=join(_0x10f5f9,'openclaw',_0x553b29(0x270),'extensio'+'ns'),_0x2fb4c6=[];for(const _0x127918 of _0x34e4a1[_0x553b29(0x1c2)]['resolved'+_0x553b29(0x18e)+_0x553b29(0x1a5)]){const _0x2b9096=await getPackageMetadata(_0x127918),_0x34a5e3=await readPluginManifest(_0x127918),_0x113d48=join(_0x33cfdc,_0x2b9096['pluginId']);await copyDirFresh(_0x127918,_0x113d48),_0x2fb4c6[_0x553b29(0x190)]({'pluginId':_0x2b9096[_0x553b29(0x2b6)],'source':_0x553b29(0x29f),'spec':_0x553b29(0x1e5)+_0x127918,'installPath':toRuntimeRelative(_0x10f5f9,_0x113d48),'version':_0x2b9096[_0x553b29(0x23e)],'resolvedName':_0x2b9096[_0x553b29(0x1b3)],'resolvedVersion':_0x2b9096[_0x553b29(0x23e)],'resolvedSpec':_0x553b29(0x1e5)+_0x127918,'integrity':'','shasum':'','resolvedAt':new Date()[_0x553b29(0x1ff)+_0x553b29(0x26f)](),'installedAt':new Date()[_0x553b29(0x1ff)+'ing'](),'agentScope':_0x34a5e3[_0x553b29(0x294)+'pe'],'skills':_0x34a5e3[_0x553b29(0x212)]});}const _0x3ce38b=new Set(_0x2fb4c6[_0x553b29(0x24f)](_0x3f020f=>_0x3f020f[_0x553b29(0x2b6)])),_0x4a664f=Array['isArray'](_0x2c02f9['plugins'])?_0x2c02f9[_0x553b29(0x197)]['filter'](_0x3f8808=>!_0x3ce38b[_0x553b29(0x18f)](_0x3f8808[_0x553b29(0x2b6)])):[];_0x2c02f9[_0x553b29(0x197)]=[..._0x4a664f,..._0x2fb4c6];}async function syncManifestPluginScope(_0x53e894,_0x4039d3,_0xa4a173){const _0x353792=_0x406343,_0x4c6660=join(_0x4039d3,'openclaw',_0x353792(0x270),_0x353792(0x208)+'ns'),_0x5d383b=new Set(_0x53e894[_0x353792(0x1c2)][_0x353792(0x280)+'ecs']??[]),_0x1aabd7=new Set([..._0x5d383b][_0x353792(0x24f)](_0x4d0c0d=>_0x4d0c0d[_0x353792(0x228)](/^npm:/,''))[_0x353792(0x24f)](_0x3446e7=>{const _0xf02212=_0x353792;if(_0x3446e7[_0xf02212(0x1b0)+'th']('@')){const _0x581ae3=_0x3446e7['split']('@');return _0x581ae3[_0xf02212(0x235)]>=0x3?'@'+_0x581ae3[0x1]:_0x3446e7;}return _0x3446e7[_0xf02212(0x1be)]('@')[0x0];})['filter'](Boolean)),_0x18b8a0=new Set();for(const _0x577725 of _0x53e894[_0x353792(0x1c2)][_0x353792(0x1b6)+_0x353792(0x18e)+_0x353792(0x1a5)]){const _0x2437a1=await getPackageMetadata(_0x577725);if(_0x2437a1[_0x353792(0x2b6)])_0x18b8a0[_0x353792(0x247)](_0x2437a1[_0x353792(0x2b6)]);}const _0x26a72d=Array[_0x353792(0x188)](_0xa4a173[_0x353792(0x197)])?_0xa4a173[_0x353792(0x197)]:[];_0xa4a173['pluginSp'+_0x353792(0x2a4)]=[..._0x53e894[_0x353792(0x1c2)][_0x353792(0x280)+_0x353792(0x2a4)],..._0x53e894['openclaw'][_0x353792(0x1b6)+_0x353792(0x18e)+_0x353792(0x1a5)][_0x353792(0x24f)](_0x1fb80e=>'local:'+_0x1fb80e)],_0xa4a173[_0x353792(0x197)]=_0x26a72d[_0x353792(0x251)](_0x1a9c1b=>{const _0x1d0c3b=_0x353792;if(!_0x1a9c1b||typeof _0x1a9c1b!=='object')return![];if(_0x1a9c1b[_0x1d0c3b(0x242)]===_0x1d0c3b(0x29f))return _0x18b8a0[_0x1d0c3b(0x18f)](_0x1a9c1b['pluginId']);if(_0x1a9c1b['source']===_0x1d0c3b(0x2a0))return _0x5d383b[_0x1d0c3b(0x18f)](_0x1a9c1b[_0x1d0c3b(0x2a7)])||_0x5d383b[_0x1d0c3b(0x18f)](_0x1a9c1b[_0x1d0c3b(0x1b6)+_0x1d0c3b(0x1a6)])||_0x1aabd7[_0x1d0c3b(0x18f)](_0x1a9c1b[_0x1d0c3b(0x1b6)+'Name']);return![];});const _0x5df8b3=new Set(_0xa4a173[_0x353792(0x197)]['map'](_0x11edde=>_0x11edde[_0x353792(0x2b6)]));for(const _0x390444 of _0x26a72d){if(!_0x390444[_0x353792(0x2b6)]||_0x5df8b3[_0x353792(0x18f)](_0x390444[_0x353792(0x2b6)]))continue;const _0x26e540=typeof _0x390444[_0x353792(0x209)+_0x353792(0x1dd)]===_0x353792(0x257)&&_0x390444[_0x353792(0x209)+_0x353792(0x1dd)]['trim']()?resolve(_0x4039d3,_0x390444['installP'+_0x353792(0x1dd)]):join(_0x4c6660,_0x390444[_0x353792(0x2b6)]),_0x1be864=relative(_0x4c6660,_0x26e540);if(_0x1be864[_0x353792(0x1b0)+'th']('..')||_0x1be864==='')continue;await rm(_0x26e540,{'recursive':!![],'force':!![]});}}async function syncProductAgents(_0x304437,_0x42e0d1,_0x2c4e39){const _0x163a5d=_0x406343,_0x193071=join(_0x42e0d1,_0x163a5d(0x1c2),'agents');await copyDirFresh(_0x304437[_0x163a5d(0x1c2)][_0x163a5d(0x2b1)+'r'],_0x193071),_0x2c4e39['agents']={'source':_0x163a5d(0x222),'installPath':toRuntimeRelative(_0x42e0d1,_0x193071)};}async function syncProductSkills(_0x22c14c,_0x274dcb,_0xf1c5bf){const _0x37d7ab=_0x406343,_0x495911=join(_0x274dcb,_0x37d7ab(0x1c2),'skills');await copyDirFresh(_0x22c14c[_0x37d7ab(0x1c2)][_0x37d7ab(0x295)+'r'],_0x495911),_0xf1c5bf[_0x37d7ab(0x212)]={'source':'product','installPath':toRuntimeRelative(_0x274dcb,_0x495911)};}
|
|
1
|
+
const _0x17a6e2=_0x2a9a;(function(_0x4f71aa,_0x5cc382){const _0x2be597=_0x2a9a,_0x403210=_0x4f71aa();while(!![]){try{const _0x44f7ad=parseInt(_0x2be597(0x284))/0x1+-parseInt(_0x2be597(0x1e9))/0x2+-parseInt(_0x2be597(0x302))/0x3*(-parseInt(_0x2be597(0x2b1))/0x4)+parseInt(_0x2be597(0x1cd))/0x5*(-parseInt(_0x2be597(0x1e6))/0x6)+parseInt(_0x2be597(0x27f))/0x7*(parseInt(_0x2be597(0x267))/0x8)+parseInt(_0x2be597(0x1ca))/0x9+-parseInt(_0x2be597(0x1f5))/0xa*(parseInt(_0x2be597(0x273))/0xb);if(_0x44f7ad===_0x5cc382)break;else _0x403210['push'](_0x403210['shift']());}catch(_0x17d125){_0x403210['push'](_0x403210['shift']());}}}(_0x4be1,0xd76b9));import{existsSync}from'node:fs';import{createWriteStream}from'node:fs';import{chmod,cp,mkdir,rename,rm,symlink,writeFile}from'node:fs/promises';import{delimiter,dirname,join,relative,resolve}from'node:path';import{fileURLToPath}from'node:url';import{spawn}from'node:child_process';import{get}from'node:https';import{pipeline}from'node:stream/promises';function _0x2a9a(_0x420ce4,_0x11bc56){_0x420ce4=_0x420ce4-0x1c0;const _0x4be14f=_0x4be1();let _0x2a9a70=_0x4be14f[_0x420ce4];return _0x2a9a70;}import{getConfigPaths}from'@wujie-shell/config';import{copyDirFresh,getPackageMetadata,readJson,readPluginManifest,toRuntimeRelative,writeJson}from'./utils.mjs';import{createRuntimeLogger,summarizeRuntimeManifest,summarizeShellConfig}from'./runtime-logger.mjs';const RUNTIME_DIR=_0x17a6e2(0x1e1)+_0x17a6e2(0x2c6),MANIFEST_NAME=_0x17a6e2(0x2b8)+'manifest'+_0x17a6e2(0x304),NPM_INSTALL_TIMEOUT_MS=0xf*0x3c*0x3e8;export function resolveRuntimeRoot(_0x2ae8e2){if(process.env.WUJIE_SHELL_RUNTIME_ROOT)return resolve(process.env.WUJIE_SHELL_RUNTIME_ROOT);return resolve(_0x2ae8e2,RUNTIME_DIR);}export function resolveManifestPath(_0x1c96b7){return join(_0x1c96b7,MANIFEST_NAME);}export async function prepareRuntime(_0x359b26,{syncOnly:syncOnly=![]}={}){const _0x459261=_0x17a6e2,_0x2a4045=resolveRuntimeRoot(_0x359b26[_0x459261(0x1fd)+_0x459261(0x268)]),_0x31b096=createRuntimeLogger(getConfigPaths(_0x359b26),_0x459261(0x208)),_0x26c54d=Date[_0x459261(0x2ac)]();_0x31b096?.['info'](_0x459261(0x21e)+_0x459261(0x20f)+_0x459261(0x1c1),{'syncOnly':syncOnly,'runtimeRoot':_0x2a4045,'shellConfig':summarizeShellConfig(_0x359b26)});try{const _0x2c7c82=await ensureRuntimeBase(_0x359b26,_0x2a4045,{'runtimeLogger':_0x31b096,'syncOnly':syncOnly});_0x31b096?.[_0x459261(0x299)]('runtime\x20'+_0x459261(0x2b3)+_0x459261(0x2b5),{'manifestPath':resolveManifestPath(_0x2a4045),'manifest':summarizeRuntimeManifest(_0x2c7c82)}),validateRuntimeNodeVersion(_0x2c7c82,_0x359b26),_0x31b096?.['info'](_0x459261(0x20f)+_0x459261(0x230)+_0x459261(0x29b)+'idated',{'nodeVersion':_0x2c7c82[_0x459261(0x275)+_0x459261(0x2f8)]});if(syncOnly)validateRuntimeOpenClawVersion(_0x2c7c82,_0x359b26),_0x31b096?.[_0x459261(0x299)](_0x459261(0x20f)+_0x459261(0x2ae)+_0x459261(0x2e4)+'\x20validat'+'ed',{'openclawVersion':_0x2c7c82[_0x459261(0x2ae)+_0x459261(0x1c7)]});else{if(_0x2c7c82[_0x459261(0x2ae)+'Version']!==_0x359b26[_0x459261(0x2ae)][_0x459261(0x2ae)+_0x459261(0x1c7)]){const _0x269624=await loadRuntimeInfo(_0x359b26[_0x459261(0x1fd)+_0x459261(0x268)]);_0x31b096?.[_0x459261(0x299)](_0x459261(0x2ae)+_0x459261(0x2d2)+_0x459261(0x2a8)+'\x20started',{'fromVersion':_0x2c7c82[_0x459261(0x2ae)+'Version']||_0x459261(0x1f2),'toVersion':_0x359b26[_0x459261(0x2ae)][_0x459261(0x2ae)+_0x459261(0x1c7)]}),await installOpenClawPackage(_0x269624,_0x359b26[_0x459261(0x2ae)][_0x459261(0x2ae)+_0x459261(0x1c7)]),_0x2c7c82[_0x459261(0x2ae)+'Version']=_0x359b26['openclaw'][_0x459261(0x2ae)+_0x459261(0x1c7)],_0x31b096?.[_0x459261(0x299)](_0x459261(0x2ae)+_0x459261(0x2d2)+_0x459261(0x2a8)+_0x459261(0x1df)+'ed',{'openclawVersion':_0x2c7c82[_0x459261(0x2ae)+_0x459261(0x1c7)]});}}_0x2c7c82['generate'+_0x459261(0x2bd)]=new Date()['toISOStr'+_0x459261(0x24f)](),_0x2c7c82[_0x459261(0x275)+_0x459261(0x2f8)]=_0x359b26['openclaw'][_0x459261(0x275)+_0x459261(0x2f8)],_0x2c7c82[_0x459261(0x2d5)]={'appId':_0x359b26[_0x459261(0x29f)],'productName':_0x359b26[_0x459261(0x204)+'ame'],'dataDirName':_0x359b26['dataDirN'+_0x459261(0x2ea)]};const _0x83ab51=Array[_0x459261(0x21c)](_0x2c7c82['plugins'])?_0x2c7c82[_0x459261(0x2dc)]['length']:0x0;return await syncManifestPluginScope(_0x359b26,_0x2a4045,_0x2c7c82),_0x31b096?.[_0x459261(0x299)](_0x459261(0x20f)+_0x459261(0x27a)+_0x459261(0x2b2)+_0x459261(0x24a),{'beforePluginCount':_0x83ab51,'afterPluginCount':Array['isArray'](_0x2c7c82[_0x459261(0x2dc)])?_0x2c7c82[_0x459261(0x2dc)][_0x459261(0x238)]:0x0,'pluginSpecCount':Array[_0x459261(0x21c)](_0x2c7c82[_0x459261(0x2c4)+'ecs'])?_0x2c7c82[_0x459261(0x2c4)+_0x459261(0x2cb)][_0x459261(0x238)]:0x0}),await syncProductPlugins(_0x359b26,_0x2a4045,_0x2c7c82),_0x31b096?.[_0x459261(0x299)]('product\x20'+_0x459261(0x2e0)+_0x459261(0x2e2),{'localPluginCount':_0x359b26[_0x459261(0x2ae)][_0x459261(0x1d0)+_0x459261(0x2a6)+'ginPaths'][_0x459261(0x238)],'pluginCount':Array[_0x459261(0x21c)](_0x2c7c82['plugins'])?_0x2c7c82[_0x459261(0x2dc)][_0x459261(0x238)]:0x0}),await syncProductAgents(_0x359b26,_0x2a4045,_0x2c7c82),_0x31b096?.[_0x459261(0x299)](_0x459261(0x25e)+_0x459261(0x2c0)+'ynced',{'source':_0x359b26[_0x459261(0x2ae)][_0x459261(0x241)+'r'],'installPath':_0x2c7c82[_0x459261(0x2a0)]?.[_0x459261(0x2d1)+_0x459261(0x2b6)]}),await syncProductSkills(_0x359b26,_0x2a4045,_0x2c7c82),_0x31b096?.['info'](_0x459261(0x25e)+_0x459261(0x211)+_0x459261(0x26a),{'source':_0x359b26[_0x459261(0x2ae)]['skillsDi'+'r'],'installPath':_0x2c7c82[_0x459261(0x21a)]?.[_0x459261(0x2d1)+_0x459261(0x2b6)]}),await syncRuntimeWrapper(_0x359b26,_0x2a4045,_0x2c7c82),_0x31b096?.[_0x459261(0x299)](_0x459261(0x20f)+_0x459261(0x1d3)+_0x459261(0x2e2),{'wujieclawBin':_0x2c7c82[_0x459261(0x23a)+'wBin']}),await writeJson(resolveManifestPath(_0x2a4045),_0x2c7c82),_0x31b096?.[_0x459261(0x299)](_0x459261(0x20f)+_0x459261(0x2b3)+_0x459261(0x2ec),{'manifestPath':resolveManifestPath(_0x2a4045),'manifest':summarizeRuntimeManifest(_0x2c7c82),'durationMs':Date[_0x459261(0x2ac)]()-_0x26c54d}),await _0x31b096?.[_0x459261(0x2ce)](),_0x2c7c82;}catch(_0x127e97){_0x31b096?.['error']('prepare\x20'+'runtime\x20'+'failed',{'syncOnly':syncOnly,'runtimeRoot':_0x2a4045,'durationMs':Date['now']()-_0x26c54d,'error':_0x127e97}),await _0x31b096?.['flush']();throw _0x127e97;}}async function syncRuntimeWrapper(_0x71ce8e,_0x1e1d71,_0x106e0a){const _0xb3b84d=_0x17a6e2,_0x5dd995=join(_0x1e1d71,_0xb3b84d(0x2e8),_0xb3b84d(0x23a)+'w'),_0x15a517=join(_0x1e1d71,_0xb3b84d(0x2e8),_0xb3b84d(0x23a)+'w.cmd'),_0x56c6d8=normalizeRuntimeRelativePath(relative(dirname(_0x5dd995),resolve(_0x1e1d71,_0x106e0a['nodeExec'+'utable']))),_0x4595dc=normalizeRuntimeRelativePath(relative(dirname(_0x5dd995),resolve(_0x1e1d71,_0x106e0a[_0xb3b84d(0x2ae)+_0xb3b84d(0x1d4)]))),_0x353b3b=_0xb3b84d(0x243)+_0x71ce8e[_0xb3b84d(0x2d8)+_0xb3b84d(0x2ea)],_0xde9a60=_0xb3b84d(0x2ad)+_0xb3b84d(0x203)+_0x71ce8e[_0xb3b84d(0x2d8)+_0xb3b84d(0x2ea)];await mkdir(dirname(_0x5dd995),{'recursive':!![]});const _0x17acf8=fileURLToPath(new URL(_0xb3b84d(0x2bc)+_0xb3b84d(0x25d)+_0xb3b84d(0x2e1),import.meta.url)),_0x20644f=join(_0x1e1d71,_0xb3b84d(0x2e8),_0xb3b84d(0x233)+_0xb3b84d(0x1d1));await cp(_0x17acf8,_0x20644f),await writeFile(_0x5dd995,['#!/bin/s'+'h',_0xb3b84d(0x2b9)+_0xb3b84d(0x20b)+_0xb3b84d(0x213)+_0xb3b84d(0x250)+'_HOME:-'+_0x353b3b+'}\x22','export\x20O'+'PENCLAW_'+_0xb3b84d(0x1e8)+_0xb3b84d(0x1f0)+'NCLAW_ST'+_0xb3b84d(0x27d)+'-'+_0x353b3b+'}\x22','export\x20O'+_0xb3b84d(0x20b)+_0xb3b84d(0x2c9)+_0xb3b84d(0x25a)+_0xb3b84d(0x20b)+_0xb3b84d(0x2c9)+'ATH:-'+_0x353b3b+(_0xb3b84d(0x207)+_0xb3b84d(0x22b)),_0xb3b84d(0x285)+_0xb3b84d(0x265)+'ATH=\x20cd\x20'+_0xb3b84d(0x269)+_0xb3b84d(0x301)+'\x20\x22$0\x22)\x22\x20'+_0xb3b84d(0x1ef),_0xb3b84d(0x2ee)+_0xb3b84d(0x1da)+_0xb3b84d(0x1f7)+_0xb3b84d(0x216)+_0xb3b84d(0x1c8)+_0xb3b84d(0x2bb),_0xb3b84d(0x272)+_0xb3b84d(0x1ec)+_0x56c6d8+(_0xb3b84d(0x2a7)+_0xb3b84d(0x2c1)+_0xb3b84d(0x21f)+'o.mjs\x22\x202'+'>/dev/nu'+'ll\x20||\x20tr'+'ue'),'fi',_0xb3b84d(0x249)+_0xb3b84d(0x1f8)+'R/'+_0x56c6d8+(_0xb3b84d(0x2a7)+_0xb3b84d(0x1ec))+_0x4595dc+_0xb3b84d(0x2f6),'']['join']('\x0a'),_0xb3b84d(0x257)),await chmod(_0x5dd995,0x1ed),await writeFile(_0x15a517,['@echo\x20of'+'f','if\x20\x22%OPE'+_0xb3b84d(0x259)+_0xb3b84d(0x1e4)+'\x20set\x20\x22OP'+_0xb3b84d(0x270)+_0xb3b84d(0x2e3)+_0xde9a60+'\x22',_0xb3b84d(0x210)+_0xb3b84d(0x296)+'ATE_DIR%'+_0xb3b84d(0x2dd)+_0xb3b84d(0x1db)+_0xb3b84d(0x281)+_0xb3b84d(0x253)+_0xde9a60+'\x22',_0xb3b84d(0x210)+_0xb3b84d(0x278)+'NFIG_PAT'+_0xb3b84d(0x2be)+_0xb3b84d(0x23b)+_0xb3b84d(0x278)+_0xb3b84d(0x214)+'H='+_0xde9a60+(_0xb3b84d(0x23e)+_0xb3b84d(0x1f6)),_0xb3b84d(0x2d3)+_0xb3b84d(0x2f9)+'%~dp0\x22','\x22%SCRIPT'+'_DIR%'+toWindowsPath(_0x56c6d8)+(_0xb3b84d(0x2fe)+_0xb3b84d(0x25c))+toWindowsPath(_0x4595dc)+_0xb3b84d(0x2c3),''][_0xb3b84d(0x2bf)]('\x0d\x0a'),_0xb3b84d(0x257)),_0x106e0a[_0xb3b84d(0x23a)+_0xb3b84d(0x256)]=toRuntimeRelative(_0x1e1d71,process['platform']===_0xb3b84d(0x24b)?_0x15a517:_0x5dd995);}function normalizeRuntimeRelativePath(_0x55b594){const _0x3d9f60=_0x17a6e2;return _0x55b594[_0x3d9f60(0x20d)+'ll']('\x5c','/');}function toWindowsPath(_0x26485e){const _0x2eb060=_0x17a6e2;return _0x26485e[_0x2eb060(0x20d)+'ll']('/','\x5c');}function validateRuntimeNodeVersion(_0x47cb2f,_0x3b3010){const _0x6edf39=_0x17a6e2;if(_0x47cb2f[_0x6edf39(0x275)+_0x6edf39(0x2f8)]===_0x3b3010[_0x6edf39(0x2ae)][_0x6edf39(0x275)+_0x6edf39(0x2f8)])return;throw new Error(_0x6edf39(0x20f)+_0x6edf39(0x275)+'ion\x20mism'+_0x6edf39(0x1dc)+_0x6edf39(0x24d)+(_0x47cb2f[_0x6edf39(0x275)+_0x6edf39(0x2f8)]||'unknown')+(_0x6edf39(0x1ff)+_0x6edf39(0x2ed))+_0x3b3010[_0x6edf39(0x2ae)][_0x6edf39(0x275)+_0x6edf39(0x2f8)]+'.\x20'+(_0x6edf39(0x2e7)+'ie-shell'+_0x6edf39(0x220)+_0x6edf39(0x27b)+_0x6edf39(0x21d)+_0x6edf39(0x219)+_0x6edf39(0x222)+_0x6edf39(0x263)+_0x6edf39(0x231)+_0x6edf39(0x26c)+'red\x20Node'+_0x6edf39(0x2e4)+'.'));}function validateRuntimeOpenClawVersion(_0x4a06d0,_0x338f20){const _0x1217b7=_0x17a6e2;if(_0x4a06d0['openclaw'+_0x1217b7(0x1c7)]===_0x338f20['openclaw'][_0x1217b7(0x2ae)+'Version'])return;throw new Error(_0x1217b7(0x20f)+_0x1217b7(0x2ae)+_0x1217b7(0x2a5)+_0x1217b7(0x235)+':\x20manife'+'st='+(_0x4a06d0['openclaw'+_0x1217b7(0x1c7)]||'unknown')+(_0x1217b7(0x1ff)+_0x1217b7(0x2ed))+_0x338f20[_0x1217b7(0x2ae)]['openclaw'+_0x1217b7(0x1c7)]+'.\x20'+(_0x1217b7(0x2e7)+_0x1217b7(0x282)+'\x20prepare'+_0x1217b7(0x27b)+_0x1217b7(0x219)+_0x1217b7(0x221)+_0x1217b7(0x290)+'\x20configu'+_0x1217b7(0x2d0)+_0x1217b7(0x22c)+_0x1217b7(0x24c)));}function parseNpmPackJson(_0x554424){const _0x5de9b3=_0x17a6e2,_0x233dd2=_0x554424[_0x5de9b3(0x2d6)](),_0x5cfce3=_0x233dd2['indexOf']('[');if(_0x5cfce3<0x0)throw new Error(_0x5de9b3(0x2da)+'\x20did\x20not'+_0x5de9b3(0x239)+_0x5de9b3(0x248)+_0x233dd2[_0x5de9b3(0x2d4)](0x0,0x1f4));const _0x53f0bb=JSON['parse'](_0x233dd2[_0x5de9b3(0x2d4)](_0x5cfce3)),_0x28e5d5=Array['isArray'](_0x53f0bb)?_0x53f0bb[0x0]:_0x53f0bb;if(!_0x28e5d5||typeof _0x28e5d5!==_0x5de9b3(0x244))throw new Error('npm\x20pack'+_0x5de9b3(0x289)+_0x5de9b3(0x1ea)+_0x5de9b3(0x2db)+_0x5de9b3(0x217)+_0x233dd2['slice'](0x0,0x1f4));return _0x28e5d5;}async function runProcess(_0x552f84,_0x106fa2,_0x1a6aa8={}){const _0x32516e=_0x17a6e2,_0x521af7=_0x1a6aa8[_0x32516e(0x279)]||[_0x552f84,..._0x106fa2][_0x32516e(0x2bf)]('\x20'),_0x3bb6d4=_0x1a6aa8[_0x32516e(0x2ba)+'s']??NPM_INSTALL_TIMEOUT_MS,_0x1089d0=spawn(_0x552f84,_0x106fa2,{'cwd':_0x1a6aa8[_0x32516e(0x1fa)],'env':_0x1a6aa8['env'],'stdio':[_0x32516e(0x2aa),_0x32516e(0x2a2),_0x32516e(0x2a2)]});return await new Promise((_0x384e17,_0x24d54a)=>{const _0x3a9fda=_0x32516e;let _0x29b615='',_0x5ebc82='',_0xbd7495=![];const _0x450621=setTimeout(()=>{const _0x2a18c2=_0x2a9a;if(_0xbd7495)return;_0xbd7495=!![],_0x1089d0[_0x2a18c2(0x27c)](_0x2a18c2(0x218)),_0x24d54a(new Error(_0x521af7+(_0x2a18c2(0x2d7)+_0x2a18c2(0x205)+'\x20')+_0x3bb6d4+'ms'));},_0x3bb6d4);_0x1089d0['stdout']['on'](_0x3a9fda(0x2c7),_0x55cb71=>{const _0x2e1d0d=_0x3a9fda;_0x29b615+=_0x55cb71[_0x2e1d0d(0x1d2)]();}),_0x1089d0[_0x3a9fda(0x209)]['on'](_0x3a9fda(0x2c7),_0x517338=>{const _0x3105c7=_0x3a9fda;_0x5ebc82+=_0x517338[_0x3105c7(0x1d2)]();}),_0x1089d0['on'](_0x3a9fda(0x2fd),_0x371d34=>{if(_0xbd7495)return;_0xbd7495=!![],clearTimeout(_0x450621),_0x24d54a(_0x371d34);}),_0x1089d0['on'](_0x3a9fda(0x255),(_0x1caec2,_0x28d210)=>{const _0x157122=_0x3a9fda;if(_0xbd7495)return;_0xbd7495=!![],clearTimeout(_0x450621);if(_0x1caec2===0x0){_0x384e17({'stdout':_0x29b615,'stderr':_0x5ebc82});return;}_0x24d54a(new Error(_0x521af7+('\x20failed\x20'+'with\x20cod'+'e=')+(_0x1caec2??_0x157122(0x247))+_0x157122(0x20c)+(_0x28d210??_0x157122(0x247))+'\x0a'+(''+(_0x5ebc82||_0x29b615))[_0x157122(0x2d6)]()));});});}async function installOpenClawPackage(_0x244975,_0x414474){const _0x487141=_0x17a6e2,_0x409855=join(_0x244975[_0x487141(0x2f2)+_0x487141(0x268)],_0x487141(0x20a)),_0x39ad9f=join(_0x244975[_0x487141(0x2f2)+_0x487141(0x268)],_0x487141(0x26f)+_0x487141(0x2df)+'t');await mkdir(_0x409855,{'recursive':!![]}),await rm(_0x39ad9f,{'recursive':!![],'force':!![]}),await mkdir(_0x39ad9f,{'recursive':!![]});const _0x3a6d12=await createRuntimeEnv(_0x244975),_0x4e9735=_0x487141(0x2ae)+'@'+_0x414474;console[_0x487141(0x300)](_0x487141(0x2a4)+_0x487141(0x2af)+'time]\x20in'+_0x487141(0x240)+'\x20'+_0x4e9735);const _0x2d5e01=await runProcess(_0x244975[_0x487141(0x234)+_0x487141(0x24e)],[_0x244975[_0x487141(0x1cc)],_0x487141(0x1fe),_0x4e9735,_0x487141(0x242)],{'cwd':_0x409855,'env':_0x3a6d12,'label':'npm\x20pack'+'\x20'+_0x4e9735}),_0x1fde43=parseNpmPackJson(_0x2d5e01['stdout']);if(_0x1fde43[_0x487141(0x25b)]!==_0x414474)throw new Error(_0x487141(0x303)+_0x487141(0x22a)+_0x487141(0x2cc)+_0x414474+(_0x487141(0x21b)+_0x487141(0x251))+_0x1fde43['version']);const _0x5e4576=resolve(_0x409855,_0x1fde43['filename']);if(!existsSync(_0x5e4576))throw new Error('npm\x20pack'+_0x487141(0x274)+'\x20create\x20'+_0x487141(0x297)+'\x20'+_0x5e4576);await runProcess(_0x487141(0x2c2),['-xzf',_0x5e4576,'-C',_0x39ad9f],{'label':_0x487141(0x2ef)+_0x1fde43[_0x487141(0x2f1)]}),await rm(_0x244975[_0x487141(0x2ae)+_0x487141(0x2f0)+'ir'],{'recursive':!![],'force':!![]}),await rename(join(_0x39ad9f,_0x487141(0x2de)),_0x244975[_0x487141(0x2ae)+_0x487141(0x2f0)+'ir']),await rm(_0x39ad9f,{'recursive':!![],'force':!![]}),await runProcess(_0x244975['nodeExec'+_0x487141(0x24e)],[_0x244975['npmCli'],_0x487141(0x2fa),_0x487141(0x236)+'ev',_0x487141(0x26d)+_0x487141(0x28c),'--no-aud'+'it','--no-fun'+'d',_0x487141(0x287)+_0x487141(0x200)+'ps'],{'cwd':_0x244975[_0x487141(0x2ae)+_0x487141(0x2f0)+'ir'],'env':_0x3a6d12,'label':_0x487141(0x237)+_0x487141(0x298)+_0x4e9735+(_0x487141(0x219)+_0x487141(0x2d9)+_0x487141(0x1dd))});if(!existsSync(_0x244975['openclaw'+_0x487141(0x1d4)]))throw new Error(_0x487141(0x262)+_0x487141(0x2cd)+_0x487141(0x246)+_0x487141(0x227)+_0x487141(0x2a8)+':\x20'+_0x244975[_0x487141(0x2ae)+'Bin']);}async function ensureRuntimeBase(_0x12f313,_0xa18e26,_0x1fe8a0={}){const _0x428c22=_0x17a6e2;await mkdir(_0xa18e26,{'recursive':!![]});let _0x4d3c0b=await readRuntimeManifest(_0xa18e26);const _0x2ef71d=_0x12f313[_0x428c22(0x2ae)][_0x428c22(0x275)+_0x428c22(0x2f8)],_0x2559c5=_0x12f313[_0x428c22(0x2ae)][_0x428c22(0x2ae)+'Version'],_0x237d2c=existsSync(resolveManifestPath(_0xa18e26)),_0x14aea5=runtimeHasRequiredPaths(_0xa18e26,_0x4d3c0b),_0xb5466e=_0x4d3c0b[_0x428c22(0x275)+_0x428c22(0x2f8)]===_0x2ef71d;!_0x237d2c||!_0x14aea5||!_0xb5466e?(_0x1fe8a0[_0x428c22(0x1f4)+'ogger']?.[_0x428c22(0x299)](_0x428c22(0x20f)+'base\x20bui'+'ld\x20start'+'ed',{'runtimeRoot':_0xa18e26,'reason':!_0x237d2c?'missing\x20'+_0x428c22(0x2b3):!_0x14aea5?_0x428c22(0x1d6)+'required'+_0x428c22(0x219)+_0x428c22(0x1e7):_0x428c22(0x230)+_0x428c22(0x28a)+_0x428c22(0x2a3),'syncOnly':_0x1fe8a0[_0x428c22(0x1d8)]}),_0x4d3c0b=await buildRuntimeBase(_0x12f313,_0xa18e26,_0x4d3c0b),_0x1fe8a0['runtimeL'+_0x428c22(0x1c3)]?.[_0x428c22(0x299)](_0x428c22(0x20f)+'base\x20bui'+_0x428c22(0x1d9)+'eted',{'manifest':summarizeRuntimeManifest(_0x4d3c0b)})):_0x1fe8a0[_0x428c22(0x1f4)+_0x428c22(0x1c3)]?.[_0x428c22(0x299)](_0x428c22(0x20f)+_0x428c22(0x1d5)+_0x428c22(0x2fc)+_0x428c22(0x2a9),{'manifest':summarizeRuntimeManifest(_0x4d3c0b)});if(!existsSync(resolve(_0xa18e26,_0x4d3c0b[_0x428c22(0x2ae)+_0x428c22(0x1d4)]))){const _0x50e096=createRuntimeInfoFromManifest(_0xa18e26,_0x4d3c0b,{'allowMissingOpenClaw':!![]});await installOpenClawPackage(_0x50e096,_0x2559c5),_0x4d3c0b[_0x428c22(0x2ae)+_0x428c22(0x1c7)]=_0x2559c5;}return _0x4d3c0b;}function runtimeHasRequiredPaths(_0x3959a7,_0x58e606){const _0x525a18=_0x17a6e2;return['nodeExec'+_0x525a18(0x24e),_0x525a18(0x1cc),_0x525a18(0x2ae)+'WorkingD'+'ir',_0x525a18(0x2ae)+_0x525a18(0x1d4)][_0x525a18(0x252)](_0x25e63c=>typeof _0x58e606[_0x25e63c]==='string'&&_0x58e606[_0x25e63c][_0x525a18(0x2d6)]())&&[_0x525a18(0x234)+_0x525a18(0x24e),_0x525a18(0x1cc)]['every'](_0x78afb9=>existsSync(resolve(_0x3959a7,_0x58e606[_0x78afb9])));}async function buildRuntimeBase(_0x355f7d,_0x5edfdb,_0x59ee6d={}){const _0xfe10fb=_0x17a6e2,_0x56873a=join(_0x5edfdb,_0xfe10fb(0x2ab));await ensureRuntimeNode(_0x355f7d,_0x56873a);const _0x56590e={..._0x59ee6d,'generatedAt':new Date()[_0xfe10fb(0x2c8)+_0xfe10fb(0x24f)](),'nodeVersion':_0x355f7d['openclaw'][_0xfe10fb(0x275)+'ion'],'openclawVersion':_0x59ee6d[_0xfe10fb(0x2ae)+'Version']||'','platform':process[_0xfe10fb(0x28e)],'arch':process[_0xfe10fb(0x280)],'nodeExecutable':_0xfe10fb(0x288)+_0xfe10fb(0x2b0),'npmCli':'node/lib'+_0xfe10fb(0x260)+_0xfe10fb(0x28f)+_0xfe10fb(0x1c6)+_0xfe10fb(0x291),'openclawWorkingDir':'openclaw','openclawBin':'openclaw'+_0xfe10fb(0x207)+_0xfe10fb(0x2b4)};return await writeJson(resolveManifestPath(_0x5edfdb),_0x56590e),_0x56590e;}async function ensureRuntimeNode(_0x14b403,_0x264713){const _0x2eed6c=_0x17a6e2,_0x145883=_0x14b403['openclaw'][_0x2eed6c(0x275)+_0x2eed6c(0x2f8)],_0x3d3339=join(_0x264713,_0x2eed6c(0x2e8),'node'),_0x3bf154=join(_0x264713,_0x2eed6c(0x26e),_0x2eed6c(0x1fc)+_0x2eed6c(0x1d7),_0x2eed6c(0x206),'bin',_0x2eed6c(0x228)+'js');if(existsSync(_0x3d3339)&&existsSync(_0x3bf154)&&await getNodeVersion(_0x3d3339)===_0x145883)return;await rm(_0x264713,{'recursive':!![],'force':!![],'maxRetries':0x5,'retryDelay':0x96});if(process[_0x2eed6c(0x1f3)]['node']===_0x145883){await linkCurrentNodeRuntime(_0x264713);return;}await downloadNodeRuntime(_0x145883,_0x264713);}async function getNodeVersion(_0x17d578){const _0x5c8458=_0x17a6e2;try{const _0x55b2be=await runProcess(_0x17d578,['-p',_0x5c8458(0x2a1)+_0x5c8458(0x1f3)+_0x5c8458(0x2ff)],{'label':_0x17d578+_0x5c8458(0x2e4),'timeoutMs':0x7530});return _0x55b2be[_0x5c8458(0x29d)][_0x5c8458(0x2d6)]();}catch{return'';}}async function linkCurrentNodeRuntime(_0x398e3c){const _0x1923b6=_0x17a6e2,_0x6e057a=process[_0x1923b6(0x1cb)],_0x2844a9=resolve(dirname(_0x6e057a),'..'),_0x17765b=resolve(_0x2844a9,'lib/node'+_0x1923b6(0x23d)+'/npm'),_0xdd8109=join(_0x398e3c,'bin',_0x1923b6(0x2ab)),_0xe651ca=join(_0x398e3c,_0x1923b6(0x26e),_0x1923b6(0x1fc)+_0x1923b6(0x1d7),_0x1923b6(0x206));await mkdir(dirname(_0xdd8109),{'recursive':!![]}),await mkdir(dirname(_0xe651ca),{'recursive':!![]}),await symlink(_0x6e057a,_0xdd8109),existsSync(_0x17765b)?await symlink(_0x17765b,_0xe651ca):await symlink(await resolveNpmRoot(),_0xe651ca);}async function resolveNpmRoot(){const _0x371f5a=_0x17a6e2,_0x17ce31=await runProcess('npm',[_0x371f5a(0x1c0),'-g'],{'label':'npm\x20root'+'\x20-g','timeoutMs':0x7530}),_0x48087d=join(_0x17ce31[_0x371f5a(0x29d)][_0x371f5a(0x2d6)](),_0x371f5a(0x206));if(!existsSync(join(_0x48087d,_0x371f5a(0x2e8),_0x371f5a(0x228)+'js')))throw new Error('npm\x20pack'+'age\x20was\x20'+'not\x20foun'+_0x371f5a(0x20e)+'cal\x20runt'+_0x371f5a(0x2fb)+'d:\x20'+_0x48087d);return _0x48087d;}async function downloadNodeRuntime(_0x3e455a,_0x4c6e80){const _0xbd20db=_0x17a6e2,_0x4192f2=process[_0xbd20db(0x28e)]===_0xbd20db(0x24b)?_0xbd20db(0x266):process[_0xbd20db(0x28e)],_0x754060=process[_0xbd20db(0x280)]==='x64'?_0xbd20db(0x264):process[_0xbd20db(0x280)]==='arm64'?'arm64':process[_0xbd20db(0x280)],_0x1ee2d8=process[_0xbd20db(0x28e)]===_0xbd20db(0x24b)?'zip':_0xbd20db(0x1f1),_0x3fca83=_0xbd20db(0x224)+_0x3e455a+'-'+_0x4192f2+'-'+_0x754060,_0x505c54=_0x3fca83+'.'+_0x1ee2d8,_0x52fe40=join(dirname(_0x4c6e80),_0xbd20db(0x20a)),_0x119835=join(_0x52fe40,_0x505c54),_0x1f1f9a=join(_0x52fe40,_0x3fca83+(_0xbd20db(0x22e)+'-')+process[_0xbd20db(0x1ce)]+'-'+Date[_0xbd20db(0x2ac)]()),_0xbb96d8=_0xbd20db(0x292)+'nodejs.o'+_0xbd20db(0x212)+'v'+_0x3e455a+'/'+_0x505c54;await mkdir(_0x52fe40,{'recursive':!![]}),!existsSync(_0x119835)&&(console[_0xbd20db(0x300)](_0xbd20db(0x2a4)+_0xbd20db(0x2af)+_0xbd20db(0x293)+_0xbd20db(0x277)+'g\x20'+_0xbb96d8),await downloadFile(_0xbb96d8,_0x119835)),await rm(_0x1f1f9a,{'recursive':!![],'force':!![]}),await mkdir(_0x1f1f9a,{'recursive':!![]}),process[_0xbd20db(0x28e)]===_0xbd20db(0x24b)?await runProcess(_0xbd20db(0x229),['-q',_0x119835,'-d',_0x1f1f9a],{'label':'extract\x20'+_0x505c54}):await runProcess(_0xbd20db(0x2c2),[_0xbd20db(0x2f3),_0x119835,'-C',_0x1f1f9a],{'label':'extract\x20'+_0x505c54}),await rename(join(_0x1f1f9a,_0x3fca83),_0x4c6e80),await rm(_0x1f1f9a,{'recursive':!![],'force':!![]});}async function downloadFile(_0x37006f,_0x273953){await mkdir(dirname(_0x273953),{'recursive':!![]});const _0x2ed301=await new Promise((_0x25c5b7,_0x21b09a)=>{const _0x5b9ba2=_0x2a9a;get(_0x37006f,_0x5b1082=>{const _0x454f95=_0x2a9a;if(_0x5b1082[_0x454f95(0x1eb)+'de']>=0x12c&&_0x5b1082[_0x454f95(0x1eb)+'de']<0x190&&_0x5b1082[_0x454f95(0x1e0)][_0x454f95(0x1e2)]){_0x5b1082[_0x454f95(0x1c4)](),downloadFile(new URL(_0x5b1082['headers'][_0x454f95(0x1e2)],_0x37006f)['href'],_0x273953)['then'](()=>_0x25c5b7(null))[_0x454f95(0x1c5)](_0x21b09a);return;}if(_0x5b1082[_0x454f95(0x1eb)+'de']!==0xc8){_0x5b1082[_0x454f95(0x1c4)](),_0x21b09a(new Error(_0x454f95(0x286)+_0x454f95(0x223)+_0x5b1082['statusCo'+'de']+':\x20'+_0x37006f));return;}_0x25c5b7(_0x5b1082);})['on'](_0x5b9ba2(0x2fd),_0x21b09a);});_0x2ed301&&await pipeline(_0x2ed301,createWriteStream(_0x273953));}export async function ensureOpenClawDoctorFixed(_0x5c35b5,_0x287ffe={}){const _0x510f6f=_0x17a6e2,_0x18e1b4=await loadRuntimeInfo(_0x5c35b5[_0x510f6f(0x1fd)+_0x510f6f(0x268)]),_0x38dbd9=getConfigPaths(_0x5c35b5),_0x176866=join(_0x38dbd9[_0x510f6f(0x232)+'tateDir'],_0x510f6f(0x2ae)+_0x510f6f(0x23f)+'json'),_0x2d4006=await readJson(_0x176866,{});if(_0x2d4006[_0x510f6f(0x2ae)+_0x510f6f(0x1c7)]===_0x18e1b4[_0x510f6f(0x2ae)+_0x510f6f(0x1c7)])return _0x287ffe[_0x510f6f(0x1f4)+_0x510f6f(0x1c3)]?.['info'](_0x510f6f(0x2ae)+_0x510f6f(0x225)+_0x510f6f(0x276)+_0x510f6f(0x2cf)+'ent',{'openclawVersion':_0x18e1b4[_0x510f6f(0x2ae)+_0x510f6f(0x1c7)],'markerPath':_0x176866}),{'ran':![],'openclawVersion':_0x18e1b4[_0x510f6f(0x2ae)+_0x510f6f(0x1c7)],'markerPath':_0x176866};return await runOpenClawDoctorFix(_0x5c35b5,_0x18e1b4,{'fromVersion':_0x2d4006['openclaw'+_0x510f6f(0x1c7)]||_0x510f6f(0x1f2),'toVersion':_0x18e1b4['openclaw'+_0x510f6f(0x1c7)],'markerPath':_0x176866,'runtimeLogger':_0x287ffe[_0x510f6f(0x1f4)+_0x510f6f(0x1c3)]}),{'ran':!![],'openclawVersion':_0x18e1b4[_0x510f6f(0x2ae)+_0x510f6f(0x1c7)],'markerPath':_0x176866};}async function runOpenClawDoctorFix(_0x393651,_0x2bd607,{fromVersion:_0x5a270b,toVersion:_0x239981,markerPath:markerPath='',runtimeLogger:_0x557c68}={}){const _0x70be50=_0x17a6e2;_0x557c68?.[_0x70be50(0x299)](_0x70be50(0x2ae)+_0x70be50(0x225)+_0x70be50(0x1c2)+_0x70be50(0x271),{'fromVersion':_0x5a270b,'toVersion':_0x239981});const _0x15a32d=await createRuntimeEnv(_0x2bd607,{'OPENCLAW_HOME':_0x393651[_0x70be50(0x28d)],'OPENCLAW_STATE_DIR':_0x393651['dataDir'],'OPENCLAW_CONFIG_PATH':getConfigPaths(_0x393651)[_0x70be50(0x2ca)+'th']});console[_0x70be50(0x300)](_0x70be50(0x2a4)+_0x70be50(0x2af)+_0x70be50(0x215)+_0x70be50(0x23c)+'enclaw\x20d'+_0x70be50(0x261)+'fix');const _0x1c0674=await runProcess(_0x2bd607[_0x70be50(0x234)+_0x70be50(0x24e)],[_0x2bd607[_0x70be50(0x2ae)+_0x70be50(0x1d4)],'doctor','--fix'],{'cwd':_0x2bd607[_0x70be50(0x2ae)+_0x70be50(0x2f0)+'ir'],'env':_0x15a32d,'label':'openclaw'+'\x20doctor\x20'+'--fix','timeoutMs':0x1d4c0});_0x557c68?.[_0x70be50(0x299)](_0x70be50(0x2ae)+_0x70be50(0x225)+'fix\x20comp'+_0x70be50(0x2e5),{'fromVersion':_0x5a270b,'toVersion':_0x239981,'stdout':_0x1c0674[_0x70be50(0x29d)][_0x70be50(0x2d6)]()[_0x70be50(0x2d4)](-0xfa0),'stderr':_0x1c0674[_0x70be50(0x209)][_0x70be50(0x2d6)]()[_0x70be50(0x2d4)](-0xfa0)}),markerPath&&(await writeJson(markerPath,{'openclawVersion':_0x2bd607[_0x70be50(0x2ae)+_0x70be50(0x1c7)],'fixedAt':new Date()[_0x70be50(0x2c8)+_0x70be50(0x24f)]()}),_0x557c68?.[_0x70be50(0x299)](_0x70be50(0x2ae)+_0x70be50(0x225)+_0x70be50(0x283)+_0x70be50(0x1e5)+'en',{'markerPath':markerPath,'openclawVersion':_0x2bd607[_0x70be50(0x2ae)+_0x70be50(0x1c7)]}));}export async function readRuntimeManifest(_0xc286eb){return await readJson(resolveManifestPath(_0xc286eb),{});}function _0x4be1(){const _0x428ec7=['wnloadin','NCLAW_CO','label','plugin\x20s','\x22\x20so\x20the','kill','ATE_DIR:','l\x20prepar','5125582XTeuLx','arch','LAW_STAT','ie-shell','fix\x20mark','512561YxFYzu','SCRIPT_D','download','--legacy','node/bin','\x20returne','sion\x20mis','string','eer','dataDir','platform','dules/np','tall\x20the','m-cli.js','https://','time]\x20do','extensio','source','NCLAW_ST','tarball:','all\x20','info','\x20is\x20miss','sion\x20val','skillsDi','stdout','pluginId','appId','agents','process.','pipe','match','[wujie-s','Version\x20','LocalPlu','\x22\x20\x22$SCRI','\x20install','rent','ignore','node','now','%USERPRO','openclaw','hell:run','/node','88HhYjRZ','cope\x20syn','manifest','w.mjs','\x20loaded','ath','add','runtime-','export\x20O','timeoutM','then','../asset','dAt','H%\x22==\x22\x22\x20','join','agents\x20s','PT_DIR/w','tar','\x22\x20%*','pluginSp','npm-cach','time','data','toISOStr','CONFIG_P','configPa','ecs','law\x20','\x20bin\x20was','flush','ady\x20curr','red\x20Open','installP','\x20package','set\x20\x22SCR','slice','product','trim','\x20timed\x20o','dataDirN','\x20depende','npm\x20pack','alid\x20pay','plugins','\x22==\x22\x22\x20se','package','w-extrac','plugins\x20','logo.mjs','synced','OME=','\x20version','leted','map','Run\x20\x22wuj','bin','local:','ame','\x22\x20at\x20','\x20written','config=','if\x20[\x20-t\x20','extract\x20','WorkingD','filename','runtimeR','-xJf','npm-glob','split','\x22\x20\x22$@\x22','local','ion','IPT_DIR=','install','ime\x20buil','eady\x20cur','error','\x22\x20\x22%SCRI','.node','log','rname\x20--','117066Aswxlv','Configur','.json','root','started','fix\x20star','ogger','resume','catch','m/bin/np','Version','OGO\x22\x20];\x20','claw-run','13655142mGjhdP','execPath','npmCli','201125LbKebL','pid','jie-shel','resolved','go.mjs','toString','wrapper\x20','Bin','base\x20alr','missing\x20','ules','syncOnly','ld\x20compl','1\x20]\x20&&\x20[','t\x20\x22OPENC','atch:\x20ma','ncies','time-too','\x20complet','headers','.tmp/run','location','singOpen','ME%\x22==\x22\x22','er\x20writt','102lGswfN','\x20paths','STATE_DI','2292854bJkqjw','d\x20an\x20inv','statusCo','PT_DIR/','env','has','&&\x20pwd)','R=\x22${OPE','tar.xz','unknown','versions','runtimeL','119460cLrQrr','w.json\x22','\x20-z\x20\x22$WU','CRIPT_DI','push','cwd','replace','node_mod','projectR','pack',',\x20shell.','-peer-de','registry','startsWi','FILE%\x5c','productN','ut\x20after','npm','/opencla','runtime','stderr','.cache','PENCLAW_','\x20signal=','replaceA','d\x20for\x20lo','runtime\x20','if\x20\x22%OPE','skills\x20s','rg/dist/','HOME=\x22${','NFIG_PAT','time]\x20ru','JIE_NO_L','load:\x20','SIGTERM','\x20runtime','skills','\x20resolve','isArray','\x20product','prepare\x20','ujie-log','\x20prepare','\x20can\x20ins','\x20can\x20be\x20','\x20failed\x20','node-v','\x20doctor\x20','path:\x20','nd\x20after','npm-cli.','unzip','ed\x20OpenC','w.json}\x22','Claw\x20ver','ing\x20\x22','-extract','Spec','node\x20ver','with\x20the','runtimeS','wujie-lo','nodeExec','mismatch','--omit=d','npm\x20inst','length','\x20return\x20','wujiecla','set\x20\x22OPE','nning\x20op','_modules','\x5copencla','-doctor.','stalling','agentsDi','--json','$HOME/','object','filter','\x20not\x20fou','null','JSON:\x20','exec\x20\x22$S','ced','win32','sion.','nifest=','utable','ing','OPENCLAW','d\x20to\x20','every','E_DIR=','rg/','close','wBin','utf8','ginPaths','NCLAW_HO','ATH=\x22${O','version','PT_DIR%','s/wujie-','product\x20','dist','/node_mo','octor\x20--','OpenClaw','rebuilt\x20','x64','IR=$(CDP','win','8cXkTSJ','oot','--\x20\x22$(di','ynced','.npmjs.o','\x20configu','--omit=p','lib','.opencla','ENCLAW_H','ted','\x20\x20\x22$SCRI','836RVhRer','\x20did\x20not','nodeVers','fix\x20alre'];_0x4be1=function(){return _0x428ec7;};return _0x4be1();}export async function loadRuntimeInfo(_0x3ee1dc){const _0x1fa0e0=resolveRuntimeRoot(_0x3ee1dc),_0xc4af2d=await readRuntimeManifest(_0x1fa0e0);return createRuntimeInfoFromManifest(_0x1fa0e0,_0xc4af2d);}function createRuntimeInfoFromManifest(_0x13b78c,_0x49138d,_0x17ad2a={}){const _0x5c4138=_0x17a6e2;for(const _0x3b5ea8 of['nodeExec'+'utable',_0x5c4138(0x1cc),_0x5c4138(0x2ae)+_0x5c4138(0x2f0)+'ir',_0x5c4138(0x2ae)+_0x5c4138(0x1d4)]){if(typeof _0x49138d[_0x3b5ea8]!==_0x5c4138(0x28b)||!_0x49138d[_0x3b5ea8][_0x5c4138(0x2d6)]())throw new Error(_0x5c4138(0x20f)+_0x5c4138(0x2b3)+_0x5c4138(0x29a)+_0x5c4138(0x22d)+_0x3b5ea8+_0x5c4138(0x2eb)+resolveManifestPath(_0x13b78c)+(';\x20run\x20wu'+_0x5c4138(0x1cf)+_0x5c4138(0x27e)+'e'));}const _0x3af176=resolve(_0x13b78c,_0x49138d[_0x5c4138(0x234)+'utable']),_0x121453=resolve(_0x13b78c,_0x49138d[_0x5c4138(0x1cc)]),_0x57dc25=resolve(_0x13b78c,_0x49138d[_0x5c4138(0x2ae)+_0x5c4138(0x2f0)+'ir']),_0x213fc8=resolve(_0x13b78c,_0x49138d[_0x5c4138(0x2ae)+_0x5c4138(0x1d4)]),_0x28b8e1=Array[_0x5c4138(0x21c)](_0x49138d[_0x5c4138(0x2dc)])?_0x49138d[_0x5c4138(0x2dc)][_0x5c4138(0x2e6)](_0x3c59f6=>({..._0x3c59f6,'installPath':resolve(_0x13b78c,_0x3c59f6[_0x5c4138(0x2d1)+_0x5c4138(0x2b6)])})):[],_0x31fe58=_0x17ad2a['allowMis'+_0x5c4138(0x1e3)+'Claw']?[_0x3af176,_0x121453]:[_0x3af176,_0x121453,_0x57dc25,_0x213fc8];for(const _0x5b3e11 of _0x31fe58){if(!existsSync(_0x5b3e11))throw new Error('runtime\x20'+_0x5c4138(0x1d6)+_0x5c4138(0x226)+_0x5b3e11);}return{'runtimeRoot':_0x13b78c,'manifest':_0x49138d,'openclawVersion':_0x49138d[_0x5c4138(0x2ae)+_0x5c4138(0x1c7)]||_0x5c4138(0x1f2),'nodeExecutable':_0x3af176,'npmCli':_0x121453,'openclawWorkingDir':_0x57dc25,'openclawBin':_0x213fc8,'plugins':_0x28b8e1};}export async function spawnClaw(_0x9a40b6,_0x955069=[],_0x68b944={}){const _0x202616=_0x17a6e2,_0x447a90=await loadRuntimeInfo(_0x9a40b6),_0x2fe149=await createRuntimeEnv(_0x447a90,_0x68b944[_0x202616(0x1ed)]??{});return spawn(_0x447a90[_0x202616(0x234)+'utable'],[_0x447a90[_0x202616(0x2ae)+_0x202616(0x1d4)],..._0x955069],{'cwd':_0x447a90[_0x202616(0x2ae)+_0x202616(0x2f0)+'ir'],'stdio':_0x202616(0x2a2),..._0x68b944,'env':_0x2fe149});}export async function runClawOnce(_0x30ae3d,_0x302052=[],_0x48b7e1=0x15f90){const _0x3051ca=await spawnClaw(_0x30ae3d,_0x302052);return await new Promise((_0x4b31ac,_0x2aa072)=>{const _0x5ac713=_0x2a9a;let _0x4d95b8='',_0x4e4bc4='',_0x102b62=![];const _0x262ca4=setTimeout(()=>{const _0x1d853f=_0x2a9a;if(_0x102b62)return;_0x102b62=!![],_0x3051ca[_0x1d853f(0x27c)]('SIGTERM'),_0x2aa072(new Error('openclaw'+_0x1d853f(0x2d7)+_0x1d853f(0x205)+'\x20'+_0x48b7e1+'ms'));},_0x48b7e1);_0x3051ca[_0x5ac713(0x29d)]['on']('data',_0x14bfa1=>{_0x4d95b8+=_0x14bfa1['toString']();}),_0x3051ca[_0x5ac713(0x209)]['on'](_0x5ac713(0x2c7),_0x38a6b2=>{const _0x4c098c=_0x5ac713;_0x4e4bc4+=_0x38a6b2[_0x4c098c(0x1d2)]();}),_0x3051ca['on'](_0x5ac713(0x2fd),_0x76c814=>{if(_0x102b62)return;_0x102b62=!![],clearTimeout(_0x262ca4),_0x2aa072(_0x76c814);}),_0x3051ca['on'](_0x5ac713(0x255),(_0x2cae3b,_0x20b2c5)=>{if(_0x102b62)return;_0x102b62=!![],clearTimeout(_0x262ca4),_0x4b31ac({'code':_0x2cae3b,'signal':_0x20b2c5,'stdout':_0x4d95b8,'stderr':_0x4e4bc4});});});}async function createRuntimeEnv(_0x2d7f51,_0x10d089={}){const _0x670251=_0x17a6e2,_0x9a0e2d=process.env.OPENCLAW_STATE_DIR||'',_0x364760=_0x9a0e2d?join(_0x9a0e2d,_0x670251(0x1c9)+_0x670251(0x1de)+'ls'):join(_0x2d7f51[_0x670251(0x2f2)+'oot'],'.tools'),_0x2dbf50=join(_0x364760,_0x670251(0x2f4)+'al'),_0x56c92b=join(_0x364760,_0x670251(0x2c5)+'e'),_0x37e465=join(_0x2dbf50,_0x670251(0x2e8));await mkdir(_0x37e465,{'recursive':!![]}),await mkdir(_0x56c92b,{'recursive':!![]});const _0x2079f8=[_0x37e465,dirname(_0x2d7f51[_0x670251(0x234)+_0x670251(0x24e)]),process.env.PATH||''];return{...process.env,..._0x10d089,'PATH':_0x2079f8[_0x670251(0x245)](Boolean)[_0x670251(0x2bf)](delimiter),'npm_config_prefix':_0x2dbf50,'NPM_CONFIG_PREFIX':_0x2dbf50,'npm_config_cache':_0x56c92b,'NPM_CONFIG_CACHE':_0x56c92b,'npm_config_registry':_0x670251(0x292)+_0x670251(0x201)+_0x670251(0x26b)+_0x670251(0x254),'NPM_CONFIG_REGISTRY':_0x670251(0x292)+'registry'+_0x670251(0x26b)+_0x670251(0x254),'npm_execpath':_0x2d7f51[_0x670251(0x1cc)],'npm_node_execpath':_0x2d7f51['nodeExec'+_0x670251(0x24e)],'OPENCLAW_RUNTIME_NPM_PREFIX':_0x2dbf50,'OPENCLAW_RUNTIME_NPM_BIN':_0x37e465,'OPENCLAW_RUNTIME_NPM_REGISTRY':'https://'+_0x670251(0x201)+_0x670251(0x26b)+'rg/'};}async function syncProductPlugins(_0x4b7cc4,_0x146edd,_0xa1204b){const _0x20af7e=_0x17a6e2,_0x2cfe49=join(_0x146edd,_0x20af7e(0x2ae),_0x20af7e(0x25f),_0x20af7e(0x294)+'ns'),_0x10766b=[];for(const _0x1fbd32 of _0x4b7cc4[_0x20af7e(0x2ae)]['resolved'+_0x20af7e(0x2a6)+_0x20af7e(0x258)]){const _0x239969=await getPackageMetadata(_0x1fbd32),_0x21d28d=await readPluginManifest(_0x1fbd32),_0x73b00a=join(_0x2cfe49,_0x239969['pluginId']);await copyDirFresh(_0x1fbd32,_0x73b00a),_0x10766b[_0x20af7e(0x1f9)]({'pluginId':_0x239969[_0x20af7e(0x29e)],'source':'local','spec':'local:'+_0x1fbd32,'installPath':toRuntimeRelative(_0x146edd,_0x73b00a),'version':_0x239969['version'],'resolvedName':_0x239969['name'],'resolvedVersion':_0x239969[_0x20af7e(0x25b)],'resolvedSpec':_0x20af7e(0x2e9)+_0x1fbd32,'integrity':'','shasum':'','resolvedAt':new Date()[_0x20af7e(0x2c8)+_0x20af7e(0x24f)](),'installedAt':new Date()[_0x20af7e(0x2c8)+'ing'](),'agentScope':_0x21d28d['agentSco'+'pe'],'skills':_0x21d28d[_0x20af7e(0x21a)]});}const _0x592f33=new Set(_0x10766b[_0x20af7e(0x2e6)](_0x486b30=>_0x486b30['pluginId'])),_0x1b9007=Array[_0x20af7e(0x21c)](_0xa1204b[_0x20af7e(0x2dc)])?_0xa1204b[_0x20af7e(0x2dc)][_0x20af7e(0x245)](_0x480792=>!_0x592f33[_0x20af7e(0x1ee)](_0x480792[_0x20af7e(0x29e)])):[];_0xa1204b[_0x20af7e(0x2dc)]=[..._0x1b9007,..._0x10766b];}async function syncManifestPluginScope(_0x2134be,_0x2da22a,_0x55d87f){const _0x3c7471=_0x17a6e2,_0x46dd9f=join(_0x2da22a,'openclaw',_0x3c7471(0x25f),_0x3c7471(0x294)+'ns'),_0x572aa3=new Set(_0x2134be['openclaw'][_0x3c7471(0x2c4)+'ecs']??[]),_0x274904=new Set([..._0x572aa3][_0x3c7471(0x2e6)](_0x4c6614=>_0x4c6614[_0x3c7471(0x1fb)](/^npm:/,''))[_0x3c7471(0x2e6)](_0x550d1d=>{const _0x5b7120=_0x3c7471;if(_0x550d1d[_0x5b7120(0x202)+'th']('@')){const _0x11a26d=_0x550d1d['split']('@');return _0x11a26d['length']>=0x3?'@'+_0x11a26d[0x1]:_0x550d1d;}return _0x550d1d[_0x5b7120(0x2f5)]('@')[0x0];})[_0x3c7471(0x245)](Boolean)),_0x1d7268=new Set();for(const _0x33bbed of _0x2134be[_0x3c7471(0x2ae)][_0x3c7471(0x1d0)+_0x3c7471(0x2a6)+'ginPaths']){const _0x15962e=await getPackageMetadata(_0x33bbed);if(_0x15962e[_0x3c7471(0x29e)])_0x1d7268[_0x3c7471(0x2b7)](_0x15962e[_0x3c7471(0x29e)]);}const _0x11625b=Array['isArray'](_0x55d87f[_0x3c7471(0x2dc)])?_0x55d87f[_0x3c7471(0x2dc)]:[];_0x55d87f[_0x3c7471(0x2c4)+_0x3c7471(0x2cb)]=[..._0x2134be[_0x3c7471(0x2ae)][_0x3c7471(0x2c4)+_0x3c7471(0x2cb)],..._0x2134be[_0x3c7471(0x2ae)][_0x3c7471(0x1d0)+'LocalPlu'+_0x3c7471(0x258)]['map'](_0x42774b=>'local:'+_0x42774b)],_0x55d87f[_0x3c7471(0x2dc)]=_0x11625b['filter'](_0x14a20c=>{const _0xd04b52=_0x3c7471;if(!_0x14a20c||typeof _0x14a20c!==_0xd04b52(0x244))return![];if(_0x14a20c['source']===_0xd04b52(0x2f7))return _0x1d7268['has'](_0x14a20c[_0xd04b52(0x29e)]);if(_0x14a20c[_0xd04b52(0x295)]===_0xd04b52(0x206))return _0x572aa3['has'](_0x14a20c['spec'])||_0x572aa3[_0xd04b52(0x1ee)](_0x14a20c[_0xd04b52(0x1d0)+_0xd04b52(0x22f)])||_0x274904[_0xd04b52(0x1ee)](_0x14a20c[_0xd04b52(0x1d0)+'Name']);return![];});const _0xf04b29=new Set(_0x55d87f['plugins']['map'](_0x55f8a9=>_0x55f8a9[_0x3c7471(0x29e)]));for(const _0x4d28c3 of _0x11625b){if(!_0x4d28c3[_0x3c7471(0x29e)]||_0xf04b29['has'](_0x4d28c3['pluginId']))continue;const _0x38f2ab=typeof _0x4d28c3[_0x3c7471(0x2d1)+_0x3c7471(0x2b6)]===_0x3c7471(0x28b)&&_0x4d28c3[_0x3c7471(0x2d1)+_0x3c7471(0x2b6)][_0x3c7471(0x2d6)]()?resolve(_0x2da22a,_0x4d28c3['installP'+_0x3c7471(0x2b6)]):join(_0x46dd9f,_0x4d28c3[_0x3c7471(0x29e)]),_0x556fd9=relative(_0x46dd9f,_0x38f2ab);if(_0x556fd9[_0x3c7471(0x202)+'th']('..')||_0x556fd9==='')continue;await rm(_0x38f2ab,{'recursive':!![],'force':!![]});}}async function syncProductAgents(_0x3df82b,_0x184f8d,_0x5a9f23){const _0x1e1f5f=_0x17a6e2,_0x30f033=join(_0x184f8d,_0x1e1f5f(0x2ae),_0x1e1f5f(0x2a0));await copyDirFresh(_0x3df82b[_0x1e1f5f(0x2ae)][_0x1e1f5f(0x241)+'r'],_0x30f033),_0x5a9f23[_0x1e1f5f(0x2a0)]={'source':_0x1e1f5f(0x2d5),'installPath':toRuntimeRelative(_0x184f8d,_0x30f033)};}async function syncProductSkills(_0xe72375,_0x29e93a,_0x7026a9){const _0x223ff5=_0x17a6e2,_0x410988=join(_0x29e93a,_0x223ff5(0x2ae),_0x223ff5(0x21a));await copyDirFresh(_0xe72375[_0x223ff5(0x2ae)][_0x223ff5(0x29c)+'r'],_0x410988),_0x7026a9[_0x223ff5(0x21a)]={'source':_0x223ff5(0x2d5),'installPath':toRuntimeRelative(_0x29e93a,_0x410988)};}
|
package/dist/src/utils.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5250e0,_0x212c1d){const _0x30615e=_0x382e,_0x29e927=_0x5250e0();while(!![]){try{const _0x38106a=-parseInt(_0x30615e(0xd6))/0x1*(parseInt(_0x30615e(0xc4))/0x2)+parseInt(_0x30615e(0xcb))/0x3+parseInt(_0x30615e(0xca))/0x4*(-parseInt(_0x30615e(0xc7))/0x5)+-parseInt(_0x30615e(0xdd))/0x6*(-parseInt(_0x30615e(0xc5))/0x7)+parseInt(_0x30615e(0xc3))/0x8*(-parseInt(_0x30615e(0xc9))/0x9)+-parseInt(_0x30615e(0xe0))/0xa*(parseInt(_0x30615e(0xdf))/0xb)+parseInt(_0x30615e(0xc8))/0xc;if(_0x38106a===_0x212c1d)break;else _0x29e927['push'](_0x29e927['shift']());}catch(_0x24e483){_0x29e927['push'](_0x29e927['shift']());}}}(_0x19ed,0x5fe85));import{existsSync}from'node:fs';import{cp,mkdir,readFile,readdir,rm,stat,writeFile}from'node:fs/promises';function _0x19ed(){const _0x11a5de=['8WqnNjf','272208PzaLvr','797881QjoZdM','name','19405TjtqMu','12245484yFxurJ','3503889spHQXX','316gnQMYy','1016094xJOYcX','filter','isFile','openclaw','string','.plugin.','0.0.0','version','isDirect','ory','map','4Jwtymt','replaceA','stringif','utf8','json','trim','parse','18juCAcU','package.','11SqepqQ','679310NJHbNt','isArray'];_0x19ed=function(){return _0x11a5de;};return _0x19ed();}import{basename,dirname,join,relative}from'node:path';export function asRecord(_0x3977d1){const _0x2fb10c=_0x382e;return _0x3977d1&&typeof _0x3977d1==='object'&&!Array[_0x2fb10c(0xc2)](_0x3977d1)?_0x3977d1:{};}export function asStringArray(_0x157ffe){const _0x1a86a6=_0x382e;return Array['isArray'](_0x157ffe)?_0x157ffe[_0x1a86a6(0xcc)](_0x328dcd=>typeof _0x328dcd===_0x1a86a6(0xcf)&&_0x328dcd['trim']())[_0x1a86a6(0xd5)](_0x5cf1d7=>_0x5cf1d7['trim']()):[];}export function dedupeStrings(_0x171ed0){const _0x49b7c6=_0x382e;return[...new Set(_0x171ed0[_0x49b7c6(0xcc)](Boolean))];}export function getTrimmedString(_0x51cd57){const _0x500382=_0x382e;return typeof _0x51cd57===_0x500382(0xcf)?_0x51cd57[_0x500382(0xdb)]():'';}export async function readJson(_0x318a6e,_0x4cdc82={}){const _0x8407=_0x382e;try{return JSON[_0x8407(0xdc)](await readFile(_0x318a6e,_0x8407(0xd9)));}catch{return _0x4cdc82;}}export async function writeJson(_0xadd7f2,_0x70f70a){const _0x4338f0=_0x382e;await mkdir(dirname(_0xadd7f2),{'recursive':!![]}),await writeFile(_0xadd7f2,JSON[_0x4338f0(0xd8)+'y'](_0x70f70a,null,0x2)+'\x0a',_0x4338f0(0xd9));}export async function copyDirFresh(_0x41dec7,_0x834a25){await rm(_0x834a25,{'recursive':!![],'force':!![],'maxRetries':0x5,'retryDelay':0x96}),await mkdir(dirname(_0x834a25),{'recursive':!![]}),await cp(_0x41dec7,_0x834a25,{'recursive':!![]});}export async function ensureDir(_0x2661e0){await mkdir(_0x2661e0,{'recursive':!![]});}export function pathExists(_0x22d64a){return existsSync(_0x22d64a);}export async function listDirs(_0x2c7fb1){const _0x438aa2=_0x382e;try{const _0x5cb2e7=await readdir(_0x2c7fb1,{'withFileTypes':!![],'encoding':_0x438aa2(0xd9)});return _0x5cb2e7['filter'](_0x38a1e9=>_0x38a1e9[_0x438aa2(0xd3)+_0x438aa2(0xd4)]())[_0x438aa2(0xd5)](_0x4265e8=>_0x4265e8[_0x438aa2(0xc6)]);}catch{return[];}}export async function getPackageMetadata(_0xbb8724){const _0x5d3a19=_0x382e,_0x41dfb7=await readJson(join(_0xbb8724,_0x5d3a19(0xde)+_0x5d3a19(0xda)),{}),_0x46e07a=asRecord(_0x41dfb7['openclaw']);return{'name':getTrimmedString(_0x41dfb7['name'])||basename(_0xbb8724),'version':getTrimmedString(_0x41dfb7[_0x5d3a19(0xd2)])||_0x5d3a19(0xd1),'pluginId':getTrimmedString(_0x46e07a['id'])||getTrimmedString(_0x41dfb7[_0x5d3a19(0xce)+'Id'])||basename(_0xbb8724)};}export async function readPluginManifest(_0x3d07c2){const _0x23711f=_0x382e,_0x35e3dc=join(_0x3d07c2,_0x23711f(0xce)+_0x23711f(0xd0)+'json'),_0x27caf1=await readJson(_0x35e3dc,{});return asRecord(_0x27caf1);}function _0x382e(_0x39119d,_0x45a4c1){_0x39119d=_0x39119d-0xc2;const _0x19ed5f=_0x19ed();let _0x382e4f=_0x19ed5f[_0x39119d];return _0x382e4f;}export async function hasFile(_0x5c08e1){const _0x201fc0=_0x382e;try{const _0x421342=await stat(_0x5c08e1);return _0x421342[_0x201fc0(0xcd)]();}catch{return![];}}export function toRuntimeRelative(_0x4a7b8c,_0x5d2e5c){const _0x36aaa5=_0x382e;return relative(_0x4a7b8c,_0x5d2e5c)[_0x36aaa5(0xd7)+'ll']('\x5c','/');}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wujie-shell/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/src/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"get-port": "^7.2.0",
|
|
29
29
|
"ws": "^8.20.0",
|
|
30
|
-
"@wujie-shell/config": "0.
|
|
31
|
-
"@wujie-shell/logger": "0.
|
|
30
|
+
"@wujie-shell/config": "1.0.0",
|
|
31
|
+
"@wujie-shell/logger": "1.0.0"
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
34
|
"build": "node ../../scripts/build-packages.mjs --package @wujie-shell/core"
|