@whalent/agent 0.3.170 → 0.3.175
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/core.cjs +7 -7
- package/dist/index.cjs +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
'use strict';const a0_0xea9ef9=a0_0x7490;(function(_0x4d37db,_0x7f2a58){const _0x4e3720=a0_0x7490,_0x2ff964=_0x4d37db();while(!![]){try{const _0xb3bfd1=-parseInt(_0x4e3720(0x224))/0x1+-parseInt(_0x4e3720(0x218))/0x2+-parseInt(_0x4e3720(0x24c))/0x3*(-parseInt(_0x4e3720(0x273))/0x4)+-parseInt(_0x4e3720(0x1e1))/0x5*(-parseInt(_0x4e3720(0x270))/0x6)+parseInt(_0x4e3720(0x255))/0x7*(parseInt(_0x4e3720(0x1ca))/0x8)+parseInt(_0x4e3720(0x1c3))/0x9*(parseInt(_0x4e3720(0x29c))/0xa)+-parseInt(_0x4e3720(0x27f))/0xb;if(_0xb3bfd1===_0x7f2a58)break;else _0x2ff964['push'](_0x2ff964['shift']());}catch(_0x489aa7){_0x2ff964['push'](_0x2ff964['shift']());}}}(a0_0x1a5b,0xdb384));var __create=Object['create'],__defProp=Object[a0_0xea9ef9(0x1c4)],__getOwnPropDesc=Object['getOwnPropertyDescri'+a0_0xea9ef9(0x2b1)],__getOwnPropNames=Object[a0_0xea9ef9(0x2b2)],__getProtoOf=Object[a0_0xea9ef9(0x249)],__hasOwnProp=Object['prototype']['hasOwnProperty'],__copyProps=(_0x5d4f22,_0x1dda4b,_0x58b736,_0x46cc29)=>{const _0x50dc99=a0_0xea9ef9;if(_0x1dda4b&&typeof _0x1dda4b==='object'||typeof _0x1dda4b===_0x50dc99(0x1fd)){for(let _0x45b9e9 of __getOwnPropNames(_0x1dda4b))if(!__hasOwnProp[_0x50dc99(0x2b4)](_0x5d4f22,_0x45b9e9)&&_0x45b9e9!==_0x58b736)__defProp(_0x5d4f22,_0x45b9e9,{'get':()=>_0x1dda4b[_0x45b9e9],'enumerable':!(_0x46cc29=__getOwnPropDesc(_0x1dda4b,_0x45b9e9))||_0x46cc29[_0x50dc99(0x205)]});}return _0x5d4f22;},__toESM=(_0x209b0d,_0x407062,_0xfa10d8)=>(_0xfa10d8=_0x209b0d!=null?__create(__getProtoOf(_0x209b0d)):{},__copyProps(_0x407062||!_0x209b0d||!_0x209b0d[a0_0xea9ef9(0x222)]?__defProp(_0xfa10d8,a0_0xea9ef9(0x277),{'value':_0x209b0d,'enumerable':!![]}):_0xfa10d8,_0x209b0d)),import_child_process3=require(a0_0xea9ef9(0x29d)),fs=__toESM(require('fs'),0x1),import_module=require('module'),path2=__toESM(require('path'),0x1),readline=__toESM(require('readline'),0x1),import_child_process2=require('child_process'),import_fs=require('fs'),import_path=require('path'),import_child_process=require(a0_0xea9ef9(0x29d)),DEFAULT_NPM_REGISTRY=a0_0xea9ef9(0x251)+'js.org',CHINA_NPM_REGISTRY='https://registry.npm'+'mirror.com',REGISTRY_PROBE_TIMEOUT_MS=0xbb8,REGISTRY_CACHE_TTL_MS=0xa*0x3c*0x3e8,selectedRegistryCache=null;function preferredNpmRegistry(){const _0x107c3c=explicitNpmRegistry();if(_0x107c3c)return _0x107c3c;if(selectedRegistryCache&&Date['now']()-selectedRegistryCache['ts']<REGISTRY_CACHE_TTL_MS)return selectedRegistryCache['registry'];return isChineseLocale()?CHINA_NPM_REGISTRY:DEFAULT_NPM_REGISTRY;}function npmRegistryCandidates(_0x43ab19=preferredNpmRegistry()){const _0x4791db=explicitNpmRegistry();if(_0x4791db)return[_0x4791db];const _0x24b268=normalizeRegistry(_0x43ab19)||DEFAULT_NPM_REGISTRY,_0x59b080=_0x24b268===CHINA_NPM_REGISTRY?DEFAULT_NPM_REGISTRY:CHINA_NPM_REGISTRY;return Array['from'](new Set([_0x24b268,_0x59b080]));}async function selectFastNpmRegistry(_0x468f0b=REGISTRY_PROBE_TIMEOUT_MS){const _0x1e3157=a0_0xea9ef9,_0x22c32b=explicitNpmRegistry();if(_0x22c32b)return rememberNpmRegistry(_0x22c32b),_0x22c32b;if(selectedRegistryCache&&Date['now']()-selectedRegistryCache['ts']<REGISTRY_CACHE_TTL_MS)return selectedRegistryCache[_0x1e3157(0x283)];const _0x35b9ef=npmRegistryCandidates(isChineseLocale()?CHINA_NPM_REGISTRY:DEFAULT_NPM_REGISTRY),_0x5b1470=_0x35b9ef['map'](()=>new AbortController());let _0x59d9ef=-0x1;const _0x30bee5=_0x35b9ef['map']((_0x4dc48b,_0x1e9dfb)=>probeRegistry200(_0x4dc48b,_0x468f0b,_0x5b1470[_0x1e9dfb][_0x1e3157(0x221)])['then'](()=>({'registry':_0x4dc48b,'index':_0x1e9dfb})));try{const _0x79fd7f=await Promise['any'](_0x30bee5);_0x59d9ef=_0x79fd7f[_0x1e3157(0x28a)];const _0x4aa1ac=_0x79fd7f['registry'];return rememberNpmRegistry(_0x4aa1ac),_0x4aa1ac;}catch{const _0x2a1923=_0x35b9ef[0x0]||DEFAULT_NPM_REGISTRY;return rememberNpmRegistry(_0x2a1923),_0x2a1923;}finally{_0x5b1470[_0x1e3157(0x22e)]((_0x1422fd,_0x486495)=>{if(_0x486495!==_0x59d9ef)_0x1422fd['abort']();});}}function rememberNpmRegistry(_0x42bee9){const _0x2259b4=normalizeRegistry(_0x42bee9);if(_0x2259b4)selectedRegistryCache={'registry':_0x2259b4,'ts':Date['now']()};}function npmRegistryArg(_0x31f911=preferredNpmRegistry()){return'--registry='+(normalizeRegistry(_0x31f911)||DEFAULT_NPM_REGISTRY);}function npmInstallCommand(_0x3ba6cc,_0x1fdd88=preferredNpmRegistry()){return'npm\x20install\x20-g\x20'+_0x3ba6cc+'\x20'+npmRegistryArg(_0x1fdd88);}function isChineseLocale(){const _0x1317cf=a0_0xea9ef9,_0x103105=[process.env.LC_ALL,process.env.LC_MESSAGES,process.env.LANG,process.env.LANGUAGE][_0x1317cf(0x246)](Boolean)['join']('\x20');if(/(^|[_.-])zh([_.-]|$)|chinese|china|cn\b/i[_0x1317cf(0x1f9)](_0x103105))return!![];try{const _0x43ee33=Intl[_0x1317cf(0x2b6)]()[_0x1317cf(0x252)]()['locale']||'';return/(^|-)zh($|-)|-CN\b/i['test'](_0x43ee33);}catch{return![];}}function explicitNpmRegistry(){return normalizeRegistry(process.env.WHALENT_NPM_REGISTRY||process.env.NPM_CONFIG_REGISTRY||'');}function normalizeRegistry(_0x1a89af){const _0x54b18b=a0_0xea9ef9;return String(_0x1a89af||'')[_0x54b18b(0x21c)]()[_0x54b18b(0x1d7)](/\/+$/,'');}function probeRegistry200(_0x536848,_0xbc7e1e,_0x282781){return new Promise((_0x5755fb,_0x259b38)=>{const _0x4cabb9=a0_0x7490;let _0x3f4909=![];const _0x5e65e3=_0x342ee4=>{const _0x52ee5c=a0_0x7490;if(_0x3f4909)return;_0x3f4909=!![],clearTimeout(_0x3f0e70),_0x282781?.[_0x52ee5c(0x258)](_0x52ee5c(0x1cd),_0x293a6c);if(!_0x5e9fea['killed'])try{_0x5e9fea['kill']('SIGTERM');}catch{}if(_0x342ee4)_0x259b38(_0x342ee4);else _0x5755fb();},_0x293a6c=()=>{const _0xb851ec=a0_0x7490;_0x5e65e3(new Error(_0xb851ec(0x264)+'ed'));},_0x3f0e70=setTimeout(()=>{_0x5e65e3(new Error('registry\x20probe\x20timed'+'\x20out'));},_0xbc7e1e);_0x3f0e70['unref']?.();const _0x5e9fea=(0x0,import_child_process['spawn'])(process['execPath'],['-e',REGISTRY_PROBE_SCRIPT,normalizeRegistry(_0x536848)||DEFAULT_NPM_REGISTRY,String(_0xbc7e1e)],{'stdio':'ignore','shell':![],'windowsHide':!![]});_0x5e9fea['on']('error',_0x5e65e3),_0x5e9fea['on']('exit',_0x902d62=>{const _0x4bd0f5=a0_0x7490;if(_0x902d62===0x0)_0x5e65e3();else _0x5e65e3(new Error('registry\x20probe\x20faile'+'d:\x20exit='+(_0x902d62??_0x4bd0f5(0x221))));}),_0x282781?.['addEventListener']('abort',_0x293a6c,{'once':!![]});if(_0x282781?.[_0x4cabb9(0x1c9)]){_0x293a6c();return;}});}var REGISTRY_PROBE_SCRIPT=a0_0xea9ef9(0x2a7)+'e(\x27http\x27);\x0aconst\x20htt'+'ps\x20=\x20require(\x27https\x27'+a0_0xea9ef9(0x2ab)+'String(process.argv['+'1]\x20||\x20\x27\x27).replace(/\x5c'+a0_0xea9ef9(0x1da)+'eoutMs\x20=\x20Number(proc'+a0_0xea9ef9(0x298)+a0_0xea9ef9(0x1c2)+'=\x20new\x20URL(\x27/-/ping\x27,'+'\x20registry\x20+\x20\x27/\x27);\x0aco'+a0_0xea9ef9(0x261)+a0_0xea9ef9(0x1dd)+'tps\x20:\x20http;\x0alet\x20done'+a0_0xea9ef9(0x2b8)+'sh\x20=\x20(code)\x20=>\x20{\x0a\x20\x20i'+a0_0xea9ef9(0x1f0)+a0_0xea9ef9(0x294)+a0_0xea9ef9(0x219)+a0_0xea9ef9(0x23b)+a0_0xea9ef9(0x1de)+a0_0xea9ef9(0x287)+a0_0xea9ef9(0x299)+a0_0xea9ef9(0x1c8)+a0_0xea9ef9(0x1bb)+'mod.request(url,\x20{\x0a\x20'+a0_0xea9ef9(0x20d)+a0_0xea9ef9(0x28d)+'agent:\x20false,\x0a\x20\x20head'+a0_0xea9ef9(0x280)+'\x20\x27whalent-agent-regi'+a0_0xea9ef9(0x1ea)+'\x20\x27application/json,t'+'ext/plain,*/*\x27\x20},\x0a},'+a0_0xea9ef9(0x24a)+a0_0xea9ef9(0x1e6)+'d\x27,\x20()\x20=>\x20finish(res'+'.statusCode\x20===\x20200\x20'+a0_0xea9ef9(0x2bb)+a0_0xea9ef9(0x2a1)+a0_0xea9ef9(0x26a)+'imeout\x27,\x20()\x20=>\x20finis'+a0_0xea9ef9(0x27e)+a0_0xea9ef9(0x1d8)+a0_0xea9ef9(0x29f),INSTALL_HINT={'codex':a0_0xea9ef9(0x276)+'ai/codex','claude':'npm\x20install\x20-g\x20@anth'+'ropic-ai/claude-code','opencode':'npm\x20install\x20-g\x20openc'+'ode-ai','whalent':npmInstallCommand('@whalent/agent')+a0_0xea9ef9(0x233)};function isWindowsCmdFile(_0x1c9c99){const _0x10d850=a0_0xea9ef9;return process['platform']==='win32'&&/\.(cmd|bat)$/i[_0x10d850(0x1f9)](_0x1c9c99||'');}function quoteCmdArg(_0x21b717){const _0x491d82=String(_0x21b717??'');if(_0x491d82&&!/[\s"&|<>^%]/['test'](_0x491d82))return _0x491d82;return'\x22'+_0x491d82['replace'](/(["^&|<>%])/g,'^$1')+'\x22';}function cmdFallbackArgs(_0x280e62,_0x141449){const _0x358690=a0_0xea9ef9;return['/d','/s','/c',[quoteCmdArg(_0x280e62),..._0x141449[_0x358690(0x26e)](quoteCmdArg)]['join']('\x20')];}function resolveExecutablePath(_0x2f2282){const _0x50f0e8=a0_0xea9ef9;if(!_0x2f2282)return null;if(_0x2f2282['includes']('/')||_0x2f2282['includes']('\x5c')||/\.[A-Za-z0-9]{1,5}$/[_0x50f0e8(0x1f9)](_0x2f2282))return(0x0,import_fs[_0x50f0e8(0x250)])(_0x2f2282)?_0x2f2282:_0x2f2282;const _0x41f7e4=process[_0x50f0e8(0x201)]===_0x50f0e8(0x25d),_0xd74aba=_0x41f7e4?'where.exe':_0x50f0e8(0x257);try{const _0x3e70c0=(0x0,import_child_process2[_0x50f0e8(0x26f)])(_0xd74aba,[_0x2f2282],{'encoding':_0x50f0e8(0x1d0),'timeout':0xbb8,'shell':![]});if(_0x3e70c0[_0x50f0e8(0x265)]===0x0){const _0x1dd0f3=(_0x3e70c0['stdout']||'')[_0x50f0e8(0x21c)]()[_0x50f0e8(0x253)](/\r?\n/)['filter'](Boolean);if(_0x1dd0f3['length']===0x0)return null;if(_0x41f7e4)for(const _0x10c03b of[_0x50f0e8(0x2a9),_0x50f0e8(0x2a6),_0x50f0e8(0x200),_0x50f0e8(0x2b0)]){const _0x15ea07=_0x1dd0f3['find'](_0x187992=>_0x187992['toLowerCase']()['endsWith'](_0x10c03b));if(_0x15ea07)return _0x15ea07;}return _0x1dd0f3[0x0]||null;}}catch{}return null;}function unwrapWindowsCmdShim(_0x13c2bf){const _0x2f125f=a0_0xea9ef9;if(process[_0x2f125f(0x201)]!==_0x2f125f(0x25d))return null;if(!/\.(cmd|bat)$/i['test'](_0x13c2bf))return null;let _0x458409;try{_0x458409=(0x0,import_fs['readFileSync'])(_0x13c2bf,_0x2f125f(0x1d0));}catch{return null;}const _0xec7325=_0x458409['match'](/"(%~?dp0%?)[\\/]+([^"]+\.(?:js|cjs|mjs))"/i);if(_0xec7325){const _0x5478c8=(0x0,import_path[_0x2f125f(0x239)])((0x0,import_path['dirname'])(_0x13c2bf),_0xec7325[0x2]);if((0x0,import_fs['existsSync'])(_0x5478c8))return{'type':'node','path':_0x5478c8};}const _0x72c8f2=_0x458409[_0x2f125f(0x231)](/"(%~?dp0%?)[\\/]+([^"]+\.exe)"/i);if(_0x72c8f2){const _0x467aa5=(0x0,import_path['resolve'])((0x0,import_path['dirname'])(_0x13c2bf),_0x72c8f2[0x2]);if((0x0,import_fs['existsSync'])(_0x467aa5))return{'type':'exe','path':_0x467aa5};}return null;}function safeSpawnSync(_0x1d4e7b,_0x519c27,_0x3d797d={}){const _0x5d8bdc=a0_0xea9ef9,_0x436d2e=unwrapWindowsCmdShim(_0x1d4e7b);if(_0x436d2e?.[_0x5d8bdc(0x216)]===_0x5d8bdc(0x210))return(0x0,import_child_process2['spawnSync'])(process['execPath'],[_0x436d2e[_0x5d8bdc(0x262)],..._0x519c27],_0x3d797d);if(_0x436d2e?.[_0x5d8bdc(0x216)]==='exe')return(0x0,import_child_process2[_0x5d8bdc(0x26f)])(_0x436d2e['path'],_0x519c27,_0x3d797d);if(isWindowsCmdFile(_0x1d4e7b))return(0x0,import_child_process2[_0x5d8bdc(0x26f)])(process.env.ComSpec||'cmd.exe',cmdFallbackArgs(_0x1d4e7b,_0x519c27),_0x3d797d);return(0x0,import_child_process2[_0x5d8bdc(0x26f)])(_0x1d4e7b,_0x519c27,_0x3d797d);}var os=__toESM(require('os'),0x1),path=__toESM(require('path'),0x1),PROFILE_ROOT=path[a0_0xea9ef9(0x247)](os['homedir'](),'.whalent-agent',a0_0xea9ef9(0x271)),WHALENT_AGENT_DEFAULT_HOME=path[a0_0xea9ef9(0x247)](os[a0_0xea9ef9(0x1c1)](),'.whalent-agent'),WHALENT_SHARED_HELPERS_DIR=path['join'](WHALENT_AGENT_DEFAULT_HOME,'helpers'),WRAPPER_PKG_NAME=a0_0xea9ef9(0x266),CORE_PKG_NAME='@whalent/agent-core',SUPERVISED_RESTART_CODE=0x4b,DAEMON_REPLACED_EXIT_CODE=0x4f,NPM_VIEW_TIMEOUT_MS=0x3a98,HEALTH_TIMEOUT_MS=0xafc8,MIN_RESTART_DELAY_MS=0x3e8,MAX_RESTART_DELAY_MS=0xea60,MAX_CRASHES_IN_WINDOW=0x3,CRASH_WINDOW_MS=0x3*0x3c*0x3e8,NPM_INSTALL_TIMEOUT_MS=0xa*0x3c*0x3e8,NPM_INSTALL_MAX_BUFFER=0x20*0x400*0x400,FATAL_PATTERN=/\[(?:agent|daemon|wrapper)\][^\n]*\bFatal error:[^\n]+|\[daemon\] Failed to start:[^\n]+|Error:[^\n]+/,WRAPPER_VERSION=readWrapperVersion(),CHECKED_PTY_HELPERS=new Set();function wrapperBaseDir(){return __dirname;}function configDir(){return WHALENT_AGENT_DEFAULT_HOME;}function upgradeStatePath(){return path2['join'](configDir(),'core-upgrade.json');}function lastCrashFilePath(){const _0x5d9142=a0_0xea9ef9;return path2[_0x5d9142(0x247)](configDir(),_0x5d9142(0x20b));}function writeLastCrash(_0x54bcca){const _0x9e3315=a0_0xea9ef9;try{fs[_0x9e3315(0x1cb)](configDir(),{'recursive':!![]});const _0x2b7d17={..._0x54bcca,'reported':![]};fs['writeFileSync'](lastCrashFilePath(),JSON[_0x9e3315(0x267)](_0x2b7d17,null,0x2),_0x9e3315(0x1d0));}catch{}}function readWrapperVersion(){const _0x37d82a=a0_0xea9ef9;try{const _0x4998a9=JSON[_0x37d82a(0x285)](fs['readFileSync'](path2['join'](wrapperBaseDir(),'..','package.json'),_0x37d82a(0x1d0)));return String(_0x4998a9[_0x37d82a(0x1fc)]||_0x37d82a(0x1d9));}catch{return _0x37d82a(0x1d9);}}function readUpgradeState(){const _0x1ef500=a0_0xea9ef9;try{return JSON[_0x1ef500(0x285)](fs['readFileSync'](upgradeStatePath(),_0x1ef500(0x1d0)));}catch{return null;}}function writeUpgradeState(_0x41e00d){const _0x106b8a=a0_0xea9ef9;try{fs['mkdirSync'](configDir(),{'recursive':!![]}),fs['writeFileSync'](upgradeStatePath(),JSON['stringify']({..._0x41e00d,'updated_at':Date['now']()},null,0x2),_0x106b8a(0x1d0));}catch{}}function a0_0x7490(_0x44e9c9,_0x131a72){_0x44e9c9=_0x44e9c9-0x1ba;const _0x1a5bc5=a0_0x1a5b();let _0x749007=_0x1a5bc5[_0x44e9c9];if(a0_0x7490['rtLXbK']===undefined){var _0x1480f9=function(_0x3321da){const _0x367276='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d4f22='',_0x1dda4b='';for(let _0x58b736=0x0,_0x46cc29,_0x45b9e9,_0x209b0d=0x0;_0x45b9e9=_0x3321da['charAt'](_0x209b0d++);~_0x45b9e9&&(_0x46cc29=_0x58b736%0x4?_0x46cc29*0x40+_0x45b9e9:_0x45b9e9,_0x58b736++%0x4)?_0x5d4f22+=String['fromCharCode'](0xff&_0x46cc29>>(-0x2*_0x58b736&0x6)):0x0){_0x45b9e9=_0x367276['indexOf'](_0x45b9e9);}for(let _0x407062=0x0,_0xfa10d8=_0x5d4f22['length'];_0x407062<_0xfa10d8;_0x407062++){_0x1dda4b+='%'+('00'+_0x5d4f22['charCodeAt'](_0x407062)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dda4b);};a0_0x7490['iclyqs']=_0x1480f9,a0_0x7490['xyRMzF']={},a0_0x7490['rtLXbK']=!![];}const _0x1730cb=_0x1a5bc5[0x0],_0x2f6895=_0x44e9c9+_0x1730cb,_0x807251=a0_0x7490['xyRMzF'][_0x2f6895];return!_0x807251?(_0x749007=a0_0x7490['iclyqs'](_0x749007),a0_0x7490['xyRMzF'][_0x2f6895]=_0x749007):_0x749007=_0x807251,_0x749007;}function run(_0xc1c4e4,_0x33ba6c,_0xf7d8f8=process.env){return safeSpawnSync(_0xc1c4e4,_0x33ba6c,{'encoding':'utf8','timeout':NPM_INSTALL_TIMEOUT_MS,'maxBuffer':NPM_INSTALL_MAX_BUFFER,'env':_0xf7d8f8,'shell':![]});}function runNpmView(_0x409821){const _0x332d2e=a0_0xea9ef9,_0x14e274=resolveExecutablePath('npm');if(!_0x14e274)return{'status':0x7f,'stdout':'','stderr':_0x332d2e(0x1f7),'error':new Error('npm\x20not\x20found')};return safeSpawnSync(_0x14e274,_0x409821,{'encoding':_0x332d2e(0x1e2),'timeout':NPM_VIEW_TIMEOUT_MS,'maxBuffer':0x400*0x400,'env':process.env,'shell':![]});}function npmRootGlobal(){const _0x27b10a=a0_0xea9ef9,_0x1dcab3=resolveExecutablePath('npm');if(!_0x1dcab3)return'';const _0x822cad=run(_0x1dcab3,[_0x27b10a(0x229),'-g']);if(_0x822cad[_0x27b10a(0x265)]!==0x0)return'';return String(_0x822cad['stdout']||'')['trim']();}function compareSemver(_0x4946ab,_0x3bbab5){const _0x2f628f=a0_0xea9ef9,_0x6ad058=String(_0x4946ab||'')['replace'](/^v/,'')['split'](/[.-]/)[_0x2f628f(0x26e)](_0x3d3378=>Number['parseInt'](_0x3d3378,0xa)||0x0),_0x3d70ff=String(_0x3bbab5||'')[_0x2f628f(0x1d7)](/^v/,'')[_0x2f628f(0x253)](/[.-]/)[_0x2f628f(0x26e)](_0x5941ee=>Number[_0x2f628f(0x22d)](_0x5941ee,0xa)||0x0);for(let _0xc9c9f2=0x0;_0xc9c9f2<Math[_0x2f628f(0x2ac)](_0x6ad058['length'],_0x3d70ff['length'],0x3);_0xc9c9f2++){const _0x24e3d7=_0x6ad058[_0xc9c9f2]||0x0,_0x70be74=_0x3d70ff[_0xc9c9f2]||0x0;if(_0x24e3d7>_0x70be74)return 0x1;if(_0x24e3d7<_0x70be74)return-0x1;}return 0x0;}function skipWrapperUpdateCheck(){const _0x40da3f=a0_0xea9ef9,_0x7911f0=String(process.env.WHALENT_SKIP_UPDATE_CHECK||process.env.WHALENT_NO_UPDATE_CHECK||process.env.WHALENT_SKIP_WRAPPER_UPDATE||'')['trim']()['toLowerCase']();return _0x7911f0==='1'||_0x7911f0===_0x40da3f(0x214)||_0x7911f0===_0x40da3f(0x232)||_0x7911f0==='on';}function latestWrapperVersion(_0x4f18da){const _0x5cb11d=a0_0xea9ef9;let _0x34ed95={'version':'','registry':_0x4f18da};for(const _0x233ab6 of npmRegistryCandidates(_0x4f18da)){const _0x5cef0b=runNpmView(['view',WRAPPER_PKG_NAME+_0x5cb11d(0x2a8),'version',npmRegistryArg(_0x233ab6)]);if(_0x5cef0b[_0x5cb11d(0x265)]!==0x0)continue;const _0x296533=String(_0x5cef0b['stdout']||'')['trim']()['split'](/\r?\n/)['filter'](Boolean)[_0x5cb11d(0x217)]()||'';_0x296533&&(!_0x34ed95[_0x5cb11d(0x1fc)]||compareSemver(_0x296533,_0x34ed95['version'])>0x0)&&(_0x34ed95={'version':_0x296533,'registry':_0x233ab6});}return _0x34ed95;}function installWrapperVersion(_0x191ae0,_0xc22dbe){const _0x5f597b=a0_0xea9ef9,_0x29c602=resolveExecutablePath('npm');if(!_0x29c602)return{'ok':![],'output':'npm\x20not\x20found\x20on\x20PAT'+'H'};const _0x19d5ee=run(_0x29c602,[_0x5f597b(0x2ae),'-g',WRAPPER_PKG_NAME+'@'+_0x191ae0,npmRegistryArg(_0xc22dbe)]),_0x517d98=((_0x19d5ee['stdout']||'')+'\x0a'+(_0x19d5ee['stderr']||''))['trim']();return{'ok':_0x19d5ee['status']===0x0,'output':_0x517d98};}async function maybeUpdateWrapper(_0x585ede,_0x16d983){const _0x1cb040=a0_0xea9ef9;if(skipWrapperUpdateCheck())return![];if(process.env.WHALENT_WRAPPER_UPDATE_ATTEMPTED)return![];const _0x127426=latestWrapperVersion(_0x16d983),_0x307053=_0x127426[_0x1cb040(0x1fc)];if(!_0x307053||compareSemver(_0x307053,WRAPPER_VERSION)<=0x0)return![];console[_0x1cb040(0x2b7)](_0x1cb040(0x1d6)+'ilable:\x20'+WRAPPER_VERSION+_0x1cb040(0x223)+_0x307053),console[_0x1cb040(0x2b7)](_0x1cb040(0x24e)+'\x20'+WRAPPER_PKG_NAME+'@'+_0x307053+'\x20from\x20'+_0x127426[_0x1cb040(0x283)]+(_0x1cb040(0x23c)+_0x1cb040(0x1e7)));const _0x26452e=installWrapperVersion(_0x307053,_0x127426['registry']);if(!_0x26452e['ok']){console[_0x1cb040(0x2b7)](_0x1cb040(0x1f6)+_0x1cb040(0x2a3)+'ing\x20with\x20'+WRAPPER_VERSION);if(_0x26452e['output'])console[_0x1cb040(0x2b7)](_0x26452e['output']['split'](/\r?\n/)[_0x1cb040(0x1fa)](-0xc)[_0x1cb040(0x247)]('\x0a'));return console[_0x1cb040(0x2b7)]('[wrapper]\x20Manual\x20upd'+'ate:\x20'+npmInstallCommand(WRAPPER_PKG_NAME+'@'+_0x307053,_0x127426['registry'])),![];}process['platform']==='win32'&&(console[_0x1cb040(0x2b7)](_0x1cb040(0x1f6)+'dated\x20to\x20'+_0x307053+'.'),console[_0x1cb040(0x2b7)]('[wrapper]\x20Windows\x20ca'+_0x1cb040(0x25f)+_0x1cb040(0x297)+_0x1cb040(0x1f2)),console['warn']('[wrapper]\x20请重新输入上一条\x20w'+_0x1cb040(0x29a)),process['exit'](0x0));console['warn'](_0x1cb040(0x1f6)+'dated\x20to\x20'+_0x307053+_0x1cb040(0x254));const _0x4b09a6=process[_0x1cb040(0x1e8)][0x1],_0x6aa68c=(0x0,import_child_process3['spawnSync'])(process['execPath'],[_0x4b09a6,..._0x585ede],{'stdio':'inherit','env':{...process.env,'WHALENT_WRAPPER_UPDATE_ATTEMPTED':_0x307053},'shell':![]});process[_0x1cb040(0x225)](_0x6aa68c['status']??0x0);}function findCoreScript(){const _0x8be1e7=a0_0xea9ef9,_0x56b7e3=String(process.env.WHALENT_CORE_ENTRY||'')['trim'](),_0x33cff5=['1',_0x8be1e7(0x214),'yes','on']['includes'](String(process.env.WHALENT_FORCE_CORE_ENTRY||'')[_0x8be1e7(0x21c)]()['toLowerCase']());if(_0x56b7e3&&_0x33cff5&&fs['existsSync'](_0x56b7e3))return _0x56b7e3;const _0x2fd017=[],_0x4c5b67=_0x551c13=>{const _0x2ecc0c=_0x8be1e7;if(fs['existsSync'](_0x551c13)&&!_0x2fd017[_0x2ecc0c(0x2b3)](_0x551c13))_0x2fd017['push'](_0x551c13);};if(_0x56b7e3)_0x4c5b67(_0x56b7e3);const _0x39726f=npmRootGlobal();if(_0x39726f){const _0x3a6cc8=path2[_0x8be1e7(0x247)](_0x39726f,'@whalent',_0x8be1e7(0x27b),_0x8be1e7(0x2ba),'index.cjs');_0x4c5b67(_0x3a6cc8);}const _0x3446ae=path2[_0x8be1e7(0x247)](wrapperBaseDir(),_0x8be1e7(0x29b));_0x4c5b67(_0x3446ae);const _0x509b9f=path2[_0x8be1e7(0x247)](wrapperBaseDir(),'..','packages','core','dist',_0x8be1e7(0x1db));_0x4c5b67(_0x509b9f);if(_0x2fd017['length']>0x0)return _0x2fd017[_0x8be1e7(0x26e)]((_0x4acd80,_0x191a29)=>({'candidate':_0x4acd80,'index':_0x191a29,'version':coreVersion(_0x4acd80)}))[_0x8be1e7(0x290)]((_0x38fdf0,_0x1b4c01)=>{const _0x1203a7=_0x8be1e7,_0x18d241=compareSemver(_0x1b4c01[_0x1203a7(0x1fc)],_0x38fdf0['version']);if(_0x18d241!==0x0)return _0x18d241;return _0x1b4c01[_0x1203a7(0x28a)]-_0x38fdf0['index'];})[0x0][_0x8be1e7(0x241)];throw new Error(_0x8be1e7(0x28b)+'\x20not\x20found;\x20install\x20'+'@whalent/agent-core\x20'+_0x8be1e7(0x22f)+_0x8be1e7(0x1ff));}function coreVersion(_0x78c019=findCoreScript()){const _0x533cec=a0_0xea9ef9,_0x182b2e=(0x0,import_child_process3['spawnSync'])(process['execPath'],[_0x78c019,'--version'],{'encoding':_0x533cec(0x1e2),'timeout':0x3a98,'env':{...process.env,'WHALENT_SKIP_UPDATE_CHECK':'1'},'shell':![]}),_0x388f46=(_0x182b2e['stdout']||'')+'\x0a'+(_0x182b2e['stderr']||'');return _0x388f46['match'](/(\d+\.\d+\.\d+(?:[-\w.]+)?)/)?.[0x1]||'';}function isExecutable(_0x2a8ad3){const _0x165bb2=a0_0xea9ef9;try{return fs[_0x165bb2(0x1ba)](_0x2a8ad3,fs[_0x165bb2(0x2ad)][_0x165bb2(0x1ed)]),!![];}catch{return![];}}function shellQuote(_0x499c22){const _0x31f9f9=a0_0xea9ef9;return'\x27'+_0x499c22[_0x31f9f9(0x1d7)](/'/g,'\x27\x5c\x27\x27')+'\x27';}function coreNodePtySpawnHelperPath(_0x2f4b86){const _0x39bc88=a0_0xea9ef9;if(process[_0x39bc88(0x201)]!=='darwin')return'';try{const _0xb9a163=(0x0,import_module[_0x39bc88(0x268)])(_0x2f4b86),_0x3def5=_0xb9a163[_0x39bc88(0x239)](_0x39bc88(0x1eb)),_0x314564=path2['resolve'](path2[_0x39bc88(0x21a)](_0x3def5),'..');return path2[_0x39bc88(0x247)](_0x314564,_0x39bc88(0x227),'darwin-'+process[_0x39bc88(0x228)],'spawn-helper');}catch{return'';}}function checkMacNodePtySpawnHelper(_0x1287b7){const _0x417e32=a0_0xea9ef9,_0x5a1ed2=coreNodePtySpawnHelperPath(_0x1287b7);if(!_0x5a1ed2||CHECKED_PTY_HELPERS[_0x417e32(0x286)](_0x5a1ed2))return;CHECKED_PTY_HELPERS['add'](_0x5a1ed2);if(!fs['existsSync'](_0x5a1ed2)){console[_0x417e32(0x2b7)]('[wrapper]\x20macOS\x20node'+_0x417e32(0x204)+_0x417e32(0x25a)+_0x5a1ed2);return;}if(isExecutable(_0x5a1ed2))return;try{const _0x4315ab=fs[_0x417e32(0x1f1)](_0x5a1ed2)[_0x417e32(0x212)];fs['chmodSync'](_0x5a1ed2,_0x4315ab|0x1ed);}catch{}if(isExecutable(_0x5a1ed2)){console['warn'](_0x417e32(0x1bf)+_0x417e32(0x260)+'per\x20executable\x20bit:\x20'+_0x5a1ed2);return;}console['warn'](_0x417e32(0x1d5)+_0x417e32(0x28c)+'\x20not\x20executable:\x20'+_0x5a1ed2),console['warn']('[wrapper]\x20Run\x20this\x20o'+_0x417e32(0x288)+'PTY\x20startup:'),console[_0x417e32(0x2b7)]('\x20\x20HELPER='+shellQuote(_0x5a1ed2)),console[_0x417e32(0x2b7)](_0x417e32(0x20c)),console['warn']('\x20\x20chmod\x20+x\x20\x22$HELPER\x22');}function printVersion(){const _0x16c30f=a0_0xea9ef9;let _0x5b5c50='';try{_0x5b5c50=coreVersion();}catch{}console[_0x16c30f(0x284)]('whalent-agent\x20'+WRAPPER_VERSION),console['log'](_0x16c30f(0x1d1)+WRAPPER_VERSION),console['log'](_0x16c30f(0x281)+(_0x5b5c50||_0x16c30f(0x230)));}function detectPersistenceContext(){const _0x5a97f3=a0_0xea9ef9;let _0x395cdb='';if(process.env.STY)_0x395cdb='screen';else{if(process.env.TMUX)_0x395cdb=_0x5a97f3(0x1ec);else{if(process.env.INVOCATION_ID||process.env.SYSTEMD_EXEC_PID)_0x395cdb=_0x5a97f3(0x21e);else{if(process.env.PM2_HOME)_0x395cdb='pm2';else process['platform']!=='win32'&&typeof process[_0x5a97f3(0x278)]===_0x5a97f3(0x215)&&process['ppid']===0x1&&(_0x395cdb=_0x5a97f3(0x21e));}}}return{'inSession':_0x395cdb,'hasScreen':process['platform']===_0x5a97f3(0x25d)?![]:!!resolveExecutablePath('screen'),'hasTmux':process['platform']==='win32'?![]:!!resolveExecutablePath(_0x5a97f3(0x1ec))};}function persistenceCheckSkipped(){const _0x467c32=a0_0xea9ef9,_0x2ddd63=String(process.env.WHALENT_SKIP_PERSISTENCE_CHECK||process.env.WHALENT_NO_PERSISTENCE_CHECK||'')['trim']()['toLowerCase']();return _0x2ddd63==='1'||_0x2ddd63===_0x467c32(0x214)||_0x2ddd63==='yes'||_0x2ddd63==='on';}function persistenceInstallHint(){const _0x4d685e=a0_0xea9ef9,_0x53ecc8=[];if(process[_0x4d685e(0x201)]===_0x4d685e(0x1c7))_0x53ecc8[_0x4d685e(0x21b)](_0x4d685e(0x220)+'\x20brew\x20install\x20screen');else process['platform']===_0x4d685e(0x23a)&&(_0x53ecc8['push'](_0x4d685e(0x25c)+'\x20sudo\x20apt-get\x20instal'+_0x4d685e(0x23f)),_0x53ecc8[_0x4d685e(0x21b)]('\x20\x20#\x20CentOS\x20/\x20Rocky:\x20'+'\x20sudo\x20yum\x20install\x20-y'+_0x4d685e(0x245)+'do\x20dnf\x20install\x20-y\x20sc'+'reen'),_0x53ecc8[_0x4d685e(0x21b)](_0x4d685e(0x1e4)+_0x4d685e(0x27c)),_0x53ecc8['push'](_0x4d685e(0x291)+_0x4d685e(0x275)+'en'));return _0x53ecc8[_0x4d685e(0x21b)](_0x4d685e(0x202)+_0x4d685e(0x2b5)+'\x20screen\x20-S\x20whalent\x20\x20'+'(run\x20\x27whalent\x27\x20insid'+'e)'),_0x53ecc8;}var PERSISTENCE_PROMPT_TIMEOUT_MS=0x1388;async function confirmContinueWithoutPersistence(){const _0x3f5707=a0_0xea9ef9;if(!process[_0x3f5707(0x27d)][_0x3f5707(0x20f)])return!![];return new Promise(_0x2f7846=>{const _0x8fec74=_0x3f5707,_0xe9302b=readline[_0x8fec74(0x243)]({'input':process['stdin'],'output':process['stderr']});let _0x1dc99d=![];const _0x35f8d1=_0x21ec29=>{const _0xd1b3e4=_0x8fec74;if(_0x1dc99d)return;_0x1dc99d=!![];try{_0xe9302b[_0xd1b3e4(0x235)]();}catch{}_0x2f7846(_0x21ec29);},_0x24c4d9=setTimeout(()=>{const _0x4d5b29=_0x8fec74;process['stderr'][_0x4d5b29(0x259)](_0x4d5b29(0x1fb)+'动('+Math[_0x4d5b29(0x1c6)](PERSISTENCE_PROMPT_TIMEOUT_MS/0x3e8)+_0x4d5b29(0x23e)),_0x35f8d1(!![]);},PERSISTENCE_PROMPT_TIMEOUT_MS);if(typeof _0x24c4d9[_0x8fec74(0x289)]==='function')_0x24c4d9[_0x8fec74(0x289)]();_0xe9302b['on'](_0x8fec74(0x235),()=>{clearTimeout(_0x24c4d9);}),_0xe9302b['on']('SIGINT',()=>{clearTimeout(_0x24c4d9),_0x35f8d1(![]);}),_0xe9302b['question']('[wrapper]\x20没有终端保活,断开\x20'+_0x8fec74(0x2b9)+_0x8fec74(0x22a)+Math[_0x8fec74(0x1c6)](PERSISTENCE_PROMPT_TIMEOUT_MS/0x3e8)+'s\x20默认继续):\x20',_0x3cf415=>{const _0x34ab33=_0x8fec74;clearTimeout(_0x24c4d9);const _0x4e89bb=String(_0x3cf415||'')[_0x34ab33(0x21c)]()[_0x34ab33(0x269)]();_0x35f8d1(!(_0x4e89bb==='n'||_0x4e89bb==='no'));});});}function a0_0x1a5b(){const _0x40b0b8=['pYaWidOGmIKPoWOGihjLCY5VBIG','ywnJzxnZu3LUyW','B3v0txmPoWPJB25ZDcbYzxeGpsa','w3DYyxbWzxjDioAiLUIUVUE9RIbxsefmru4','BgvUz3rO','BIb1BMTUB3DU','w3DYyxbWzxjDigzPEgvKig1Hy08','zcbJB2rLpq','Ag9TzwrPCG','ihX8idmWmda7cMnVBNn0ihvYBca','ou9jruvgsG','zgvMAw5LuhjVCgvYDhK','w3DYyxbWzxjDignVCMuGzMfPBgu','CM91BMq','zgfYD2LU','ksa9pIbMAw5PC2GOmYKSihrPBwu','ywjVCNrLza','mtGXntiWofzuEMPgCa','BwTKAxjtEw5J','y29Kzq','ywjVCNq','ywnOAw5L','icaGicaGicaGicaGihnJCMvLBIa','DxrMltG','D3jHChbLCIa','w3DYyxbWzxjDignVCMuGDxbNCMe','AgfZu2nYzwvU','C3bHD24','w3DYyxbWzxjDig1Hy09tig5Vzgu','w3DYyxbWzxjDihvWzgf0zsbHDMe','CMvWBgfJzq','jYWGkcKGpt4GzMLUAxnOkdqPktS','mc4WlJa','lYSKlYWGjYCPoWPJB25ZDcb0Aw0','Aw5KzxGUy2PZ','w3DYyxbWzxjDig5LDYbJB3jLigq','B2WGpt09icDODhrWCZONid8GAhq','y2f0y2GGE30kicbWCM9JzxnZlMu','igLUia','B3jLoIa','mZvfzu1Uq2W','DxrMoa','zwXS77Yiq0KGlYdLKi7LJ7dOHjRMNkZVViNVViZOT7pOV4FKUOZMRkhNOA4','icaJiefSCgLUztOGicaGicaGica','u1rftKnfx0nirunlpthJGii','C3vTzsGPoWOGihjLCY5VBIGNzw4','zs4UlG','yxjNDG','w3DYyxbWzxjDiow7UUIURUwUIEIJHEs4Gos4QUE7IoERR+wKJEEuQa','C3rYEs1WCM9IzsCSiefJy2vWDdO','BM9Kzs1WDhK','Dg11Ea','wf9psW','C2nYzwvU','zguGAgvHBhrOEtOG','zIaOzg9UzsKGCMv0DxjUoWOGigq','C3rHDfn5BMm','BsbMCM9TihrOAxmGChjVy2vZCY4','EsbPBIb0Aw1LoYbYB2XSAw5Nigi','572UifDiquXftLrFu0Tjuf9qrvjtsq','Aw5tzxnZAw9U','w3DYyxbWzxjDihDYyxbWzxiGDxa','BNbTig5VDcbMB3vUza','zxjYB3i','DgvZDa','C2XPy2u','cLT3CMfWCgvYxsdML6dOVPpLHAxVViZPU5JORQtNU6FNU63LKk8','DMvYC2LVBG','zNvUy3rPB24','w3DYyxbWzxjDioE7IoERR+s/NEA0UYbps++8MUw9K+wjJq','ywDLBNq','lMjHDa','CgXHDgzVCM0','icaJifrOzw4GCMuTyxr0ywnOigK','zwqU','lxb0EsbZCgf3BI1OzwXWzxiGBM8','zw51BwvYywjSzq','ls12zxjZAw9U','ls1Yzxn1Bwu','iow3SUwUIEIJHE+8Jos9HUw9K+wjJEs4JEwCQoE7IoERR+wKJEEuQowzQoMhJoI/KoIHJooaGG','lYb0Bxv4iowgHEMhJEI3KE+8JoAiLUIUVUE9RIbxsefmrq','ywnR','BgfZDc1JCMfZAc5QC29U','icbSCYaTBcaIjeHftfbfuIi','ig1LDgHVzdOGj0DfvcCScIaGDgK','ls1Hz2vUDc1Pza','AxnuvfK','BM9Kzq','CZSGz2L2Aw5NihvWlIbdCMfZAca','Bw9Kzq','zgfLBw9Ulw1JCa','Dhj1zq','BNvTyMvY','DhLWzq','Cg9W','nJu4mJm2u1Lvz2Tg','Aw1LB3v0khrPBwvYktSkicb0CNK','zgLYBMfTzq','ChvZAa','DhjPBq','A2LSBgvK','C3LZDgvTza','CMvZDw1L','icaJig1Hy09toIaGicaGicaGica','C2LNBMfS','x19LC01VzhvSzq','ic0+ia','nZa5ntqYD0fNqM5g','zxHPDa','5ywZ6zET57Ui56UV77YmzgfLBw9Uios8MUIIQYbtsuDivq','ChjLyNvPBgrZ','yxjJAa','CM9VDa','44cc5lUn54s257UN57UT5zcx77YFw1KVBL3VViG','AgfZvg11Ea','r2f0zxDHEsbYzwDPC3rLCMvKig0','CgfYC2vjBNq','zM9YrwfJAa','B3iGCMvIDwLSzcbaD2HHBgvUDc8','BM90igLUC3rHBgXLza','Bwf0y2G','EwvZ','ic0TChjLzMvYlw9UBgLUzq','B25Jzq','y2XVC2u','w3DYyxbWzxjDioACQUAJGoA1I+wiScbZy3jLzq','w3DYyxbWzxjDioIVT+wCQcbZy3jLzw4G','zxHLy1bHDgG','CMvZB2X2zq','BgLUDxG','ihSGCMvXlMrLC3rYB3KOktSGFsa','igjLzM9YzsbZDgfYDgLUzYbJB3i','w3DYyxbWzxjDioE7IoERR+s/NEA0UYbps++8MUAJGoA1IW','CYdOTOxML7BVViNJGiik','BcaTEsbZy3jLzw4','q0Hfq0S9msdLVlRLIlBOT7pOV4FMRAtMO4dMN6xJGii','y2fUzgLKyxrL','C3rKzxjY','y3jLyxrLsw50zxjMywnL','5zMO5OIw5l+D5OYb57Ui56UV56Qx5y+J5OMt5BYa44cc','ihnJCMvLBIaGicaGiYbVCJOGC3u','zMLSDgvY','AM9PBG','tLrFu0Tjuf9qrvjtsvnuru5drv8','z2v0uhjVDg90ExbLt2y','icHYzxmPid0+ihSkicbYzxmUCMu','DgfYz2v0x3zLCNnPB24','mJm4mtm3q3rRyuvo','ios8MUIVNEs4Rq','w3DYyxbWzxjDigLUC3rHBgXPBMC','ls1OzwXW','zxHPC3rZu3LUyW','Ahr0Chm6lY9YzwDPC3rYEs5UCg0','CMvZB2X2zwrpChrPB25Z','C3bSAxq','oYbYzxn0yxj0Aw5NihDYyxbWzxi','mtr1wvDQENK','AwqGBM90igjLy29TzsbOzwfSDgG','D2HPy2G','CMvTB3zLrxzLBNrmAxn0zw5LCG','D3jPDgu','DcbMB3vUzdOG','5BMZ5y+W57Ui56UV6io95yQB5BM257UN57UT5zcV5yQO44cc','icaJierLyMLHBIaVifvIDw50DtO','D2LUmZi','CgvUzgLUzW','BM5VDcbZywzLBhKGCMuTzw50zxi','uYbUB2rLlxb0EsbZCgf3BI1OzwW','BNn0ig1Vzca9ihvYBc5WCM90B2m','Cgf0Aa','icaGicaGicaGicaGihrTDxGGBMu','CMvNAxn0CNKGChjVyMuGywjVCNq','C3rHDhvZ','qhDOywXLBNqVywDLBNq','C3rYAw5NAwz5','y3jLyxrLuMvXDwLYzq','Dg9mB3DLCKnHC2u','AcG0ksK7cN0PoWPYzxeUB24Oj3q','ioAjMoEUOq','y2f0y2G','ChjLDMLVDxmGy29Yzsb2zxjZAw8','BwfW','C3bHD25tEw5J','mteXnty3meHtzvb3Dq','ChjVzMLSzxm','w3DYyxbWzxjDigXHC3qGzMf0ywW','nZjZs2PwBLe','DcdIHPiG5zYOihnJCMvLBIdPH4WGD2HHBgu','ihn1zg8GCgfJBwfUic1tihnJCMu','BNbTigLUC3rHBgWGlwCGqg9Wzw4','zgvMyxvSDa','ChbPza','y2SGy29Yzsb0BYa','C2HPzNq','ywDLBNqTy29Yzq','ihn1zg8GyxbRigfKzcbZy3jLzw4','C3rKAw4','AcGZksK7cNjLCs5VBIGNzxjYB3i','mZa2mZy0ntjNuxbbr0m','zxjZoIb7icDvC2vYlufNzw50jZO','y29Yzsa','Aw5OzxjPDa','CMvNAxn0CNK','Bg9N','CgfYC2u','AgfZ','EgL0kgnVzguPoWP9oWPJB25ZDca','BMnLihrVigzPEcb0zxjTAw5HBc8','Dw5Yzwy','Aw5KzxG','D2HHBgvUDcbJB3jLihj1BNrPBwu','lxb0EsbZCgf3BI1OzwXWzxiGAxm','BwvVDxq6ihrPBwvVDxrnCYWkica','w3DYyxbWzxjDihjVBgXPBMCGyMe','5BEY5zYOia','C29YDa','icaJiefYy2G6icaGicaGicaGica','zgf0yq','BIaVihrTDxJJGii','B25Lid0GDhj1ztSkicbJBgvHCLq','zxjSEwLUzYbPC3n1zsbPCYbMAxG','w3DYyxbWzxjDioIlPEAdS+AkKEwiTUATPowrIUITPU+8JowpR+IUVG','ihrOzsb1CgrHDgvKig5WBsbZAgK','zxnZlMfYz3zBmL0GFhWGmZaWmcK','DgLTzxiGpsbZzxruAw1LB3v0kcG','AgfSzw50iowrVEs7Pos7PEs9V+EuQoAwSoEjIoACRooaGG','y29Yzs5JANm','mtuZnZq3nZbfqwHKEfq','y2HPBgrFChjVy2vZCW','CJOG','cNjLCs5LBMqOktSk','CMvJB3jKoIa','j2vYCM9YjYWGkcKGpt4GzMLUAxm','C3rKB3v0','zgf0zsbMywLSzwq7ignVBNrPBNu','BNbTig5VDcbMB3vUzcbVBIbqqvq','6k6K77Ym57UN57UT5zcV5yQO44cc','lMnTza','cMnVBNn0igH0DhaGpsbYzxf1Axi','qgXHDgvZDa','lMv4zq','5zco6yEn6lEr77YAC2nYzwvUic1tihDOywXLBG','ktSky29UC3qGCMvNAxn0CNKGpsa','Bwf4','y29UC3rHBNrZ','Aw5ZDgfSBa','u0Lhsu5u','lNbZmq','ChrVCG','z2v0t3DUuhjVCgvYDhLoyw1LCW','Aw5JBhvKzxm','y2fSBa','BNnPzguGC2nYzwvUlcbLlMCUoIa','rgf0zvrPBwvgB3jTyxq','D2fYBG','id0GzMfSC2u7cMnVBNn0igzPBMK','u1niic8G5ywZ6zET57Ui56UV5lYA57Ui5Q2IigrHzw1VBG','zgLZDa'];a0_0x1a5b=function(){return _0x40b0b8;};return a0_0x1a5b();}async function ensurePersistencePrompt(_0x3c4058){const _0x1cd57d=a0_0xea9ef9;if(!shouldSupervise(_0x3c4058))return;if(persistenceCheckSkipped())return;if(process['platform']==='win32'){console['warn']('[wrapper]\x20Windows\x20上不'+'要求\x20screen\x20/\x20tmux;将使用'+_0x1cd57d(0x25b)),console['warn']('[wrapper]\x20若需要后台保活,建议'+'使用\x20Windows\x20任务计划、服务管理'+_0x1cd57d(0x244));return;}const _0x8de859=detectPersistenceContext();if(_0x8de859[_0x1cd57d(0x1f5)]===_0x1cd57d(0x1ee)||_0x8de859['inSession']===_0x1cd57d(0x1ec)){console['log'](_0x1cd57d(0x1fe)+_0x1cd57d(0x28f)+_0x8de859['inSession']+_0x1cd57d(0x24d));return;}if(_0x8de859[_0x1cd57d(0x1f5)]==='systemd'||_0x8de859[_0x1cd57d(0x1f5)]==='pm2'){console[_0x1cd57d(0x284)](_0x1cd57d(0x23d)+'到\x20'+_0x8de859[_0x1cd57d(0x1f5)]+_0x1cd57d(0x26b));return;}if(_0x8de859[_0x1cd57d(0x1d3)]||_0x8de859[_0x1cd57d(0x22b)]){const _0xdea6b7=[_0x8de859[_0x1cd57d(0x1d3)]?'screen':'',_0x8de859[_0x1cd57d(0x22b)]?_0x1cd57d(0x1ec):''][_0x1cd57d(0x246)](Boolean)['join']('\x20/\x20');console['warn']('[wrapper]\x20检测到\x20'+_0xdea6b7+_0x1cd57d(0x208)),console[_0x1cd57d(0x2b7)]('[wrapper]\x20断开\x20SSH\x20/\x20关'+'闭终端会终止\x20daemon。建议放进\x20s'+'creen\x20/\x20tmux\x20内:');if(_0x8de859['hasScreen'])console[_0x1cd57d(0x2b7)](_0x1cd57d(0x1cf)+'-S\x20whalent\x20\x20\x20#\x20再在\x20sc'+'reen\x20里运行\x20whalent');if(_0x8de859['hasTmux'])console['warn'](_0x1cd57d(0x263)+'w\x20-s\x20whalent');if(!process[_0x1cd57d(0x27d)]['isTTY']){console['warn']('[wrapper]\x20当前不是交互式\x20sh'+_0x1cd57d(0x1e3)+_0x1cd57d(0x2a5)),console['warn'](_0x1cd57d(0x296)+_0x1cd57d(0x1f4)+_0x1cd57d(0x1e5));return;}const _0x3a77c7=await confirmContinueWithoutPersistence();!_0x3a77c7&&(console[_0x1cd57d(0x2b7)]('[wrapper]\x20已按用户要求取消启动'+'。'),console[_0x1cd57d(0x2b7)](_0x1cd57d(0x237)+_0x1cd57d(0x209)+_0x1cd57d(0x248)+_0x1cd57d(0x240)),process[_0x1cd57d(0x225)](0x0));return;}console['warn'](_0x1cd57d(0x236)+_0x1cd57d(0x293)),console[_0x1cd57d(0x2b7)]('[wrapper]\x20一旦断开\x20SSH\x20或'+_0x1cd57d(0x226)+'P\x20终止,所有正在跑的任务都会中断。'),console[_0x1cd57d(0x2b7)](_0x1cd57d(0x1e9)+'器以实现保活:');for(const _0x3ad83a of persistenceInstallHint())console[_0x1cd57d(0x2b7)](_0x3ad83a);if(!process[_0x1cd57d(0x27d)]['isTTY']){console['warn']('[wrapper]\x20当前不是交互式\x20sh'+_0x1cd57d(0x1e3)+_0x1cd57d(0x2a5)),console['warn']('[wrapper]\x20若想抑制此告警,可设'+'置\x20WHALENT_SKIP_PERSI'+_0x1cd57d(0x1e5));return;}const _0xb39307=await confirmContinueWithoutPersistence();!_0xb39307&&(console['warn']('[wrapper]\x20已按用户要求取消启动'+'。'),console['warn']('[wrapper]\x20安装\x20screen\x20'+_0x1cd57d(0x2aa)+_0x1cd57d(0x274)+'nt'),console['warn'](_0x1cd57d(0x1bc)+'T_SKIP_PERSISTENCE_C'+'HECK=1\x20强制跳过此检查。'),process['exit'](0x0));}function directCore(_0x33b7cf){const _0x15377d=a0_0xea9ef9,_0x4c7b3e=findCoreScript();checkMacNodePtySpawnHelper(_0x4c7b3e);const _0x16b5bc=(0x0,import_child_process3['spawnSync'])(process[_0x15377d(0x238)],[_0x4c7b3e,..._0x33b7cf],{'stdio':_0x15377d(0x282),'env':{...process.env,'WHALENT_WRAPPER_VERSION':WRAPPER_VERSION,'WHALENT_CORE_ENTRY':_0x4c7b3e},'shell':![]});process['exit'](_0x16b5bc[_0x15377d(0x265)]??0x0);}function shouldSupervise(_0x18c049){const _0xf4092c=a0_0xea9ef9;if(_0x18c049['includes'](_0xf4092c(0x20e)))return![];if(_0x18c049[_0xf4092c(0x2b3)](_0xf4092c(0x207))||_0x18c049[0x0]===_0xf4092c(0x21f))return![];const _0x57c3ac=_0x18c049[0x0]||'';if(_0x57c3ac==='ls'||_0x57c3ac==='status'||_0x57c3ac==='ps')return![];if(_0x57c3ac==='mcp'||_0x57c3ac===_0xf4092c(0x213))return![];if(_0x18c049[_0xf4092c(0x2b3)](_0xf4092c(0x24f))||_0x18c049[_0xf4092c(0x2b3)]('-h'))return![];return!![];}function installCoreVersion(_0x616e54){const _0x34ed92=a0_0xea9ef9,_0x46e776=resolveExecutablePath('npm');if(!_0x46e776)return{'ok':![],'output':_0x34ed92(0x2a4)+'H'};const _0x922527=CORE_PKG_NAME+'@'+_0x616e54,_0x5cd655=run(_0x46e776,['install','-g',_0x922527,npmRegistryArg()]),_0x2c51ea=((_0x5cd655['stdout']||'')+'\x0a'+(_0x5cd655['stderr']||''))[_0x34ed92(0x21c)]();return{'ok':_0x5cd655[_0x34ed92(0x265)]===0x0,'output':_0x2c51ea};}async function superviseCore(_0x5511a6){const _0x3288ce=a0_0xea9ef9;let _0x3d8506=![],_0x259add=null;const _0x2294f2=[];let _0x161958=MIN_RESTART_DELAY_MS;const _0x5dc96b=()=>{_0x3d8506=!![];if(_0x259add&&!_0x259add['killed'])try{_0x259add['kill']('SIGTERM');}catch{}else process['exit'](0x0);};process['on'](_0x3288ce(0x2af),_0x5dc96b),process['on']('SIGTERM',_0x5dc96b);while(!![]){const _0x46fa3c=findCoreScript();checkMacNodePtySpawnHelper(_0x46fa3c);const _0x58cfc6={...process.env,'WHALENT_WRAPPER_VERSION':WRAPPER_VERSION,'WHALENT_WRAPPER_MANAGED':'1','WHALENT_CORE_ENTRY':_0x46fa3c},_0x3e23dd=readUpgradeState(),_0x442e45=!!_0x3e23dd?.[_0x3288ce(0x25e)];let _0x31f29e=![],_0x4ade17=null,_0x5e5bc9='';const _0x369beb=[],_0x2a653a=0xc;console['log']('[wrapper]\x20starting\x20c'+_0x3288ce(0x1e0)+_0x46fa3c),_0x259add=(0x0,import_child_process3[_0x3288ce(0x1d4)])(process['execPath'],[_0x46fa3c,..._0x5511a6],{'env':_0x58cfc6,'stdio':['inherit','pipe','pipe']});const _0x1822ed=()=>{const _0x2232c1=_0x3288ce;if(_0x31f29e)return;_0x31f29e=!![];if(_0x4ade17)clearTimeout(_0x4ade17);_0x2294f2['length']=0x0,_0x161958=MIN_RESTART_DELAY_MS;const _0x314489=readUpgradeState();_0x314489?.[_0x2232c1(0x25e)]&&(writeUpgradeState({..._0x314489,'pending':![],'rollback':![],'health_status':'healthy'}),console['log'](_0x2232c1(0x1d2)+_0x2232c1(0x1ef)+(_0x314489['installed_version']||_0x314489[_0x2232c1(0x24b)]||'')));},_0x557fa9=(_0x110c74,_0x1055db=![])=>{const _0x4fda0e=_0x3288ce,_0x533acc=_0x110c74['toString']();(_0x1055db?process[_0x4fda0e(0x242)]:process['stdout'])[_0x4fda0e(0x259)](_0x533acc);if(_0x1055db)for(const _0x2773aa of _0x533acc[_0x4fda0e(0x253)](/\r?\n/)){if(!_0x2773aa['trim']())continue;_0x369beb[_0x4fda0e(0x21b)](_0x2773aa);if(_0x369beb[_0x4fda0e(0x1bd)]>_0x2a653a)_0x369beb[_0x4fda0e(0x27a)]();const _0x52aa88=_0x2773aa[_0x4fda0e(0x231)](FATAL_PATTERN);if(_0x52aa88)_0x5e5bc9=_0x52aa88[0x0];}(_0x533acc['includes']('[gateway]\x20Connected')||_0x533acc[_0x4fda0e(0x2b3)](_0x4fda0e(0x22c)+_0x4fda0e(0x1ce))||_0x533acc['includes']('Gateway:\x20connected'))&&_0x1822ed();};_0x259add[_0x3288ce(0x2a2)]?.['on'](_0x3288ce(0x292),_0x458be9=>_0x557fa9(_0x458be9,![])),_0x259add[_0x3288ce(0x242)]?.['on']('data',_0x4abc30=>_0x557fa9(_0x4abc30,!![]));_0x442e45&&(_0x4ade17=setTimeout(()=>{const _0x53cdb5=_0x3288ce;if(_0x31f29e||!_0x259add||_0x259add[_0x53cdb5(0x21d)])return;console[_0x53cdb5(0x1f8)](_0x53cdb5(0x1dc)+_0x53cdb5(0x256)+_0x53cdb5(0x1f3)+_0x53cdb5(0x20a));try{_0x259add['kill']('SIGTERM');}catch{}},HEALTH_TIMEOUT_MS));const _0x1d0a4f=await new Promise(_0x41319a=>{const _0x39cee8=_0x3288ce;_0x259add[_0x39cee8(0x234)]('exit',(_0x28c5a6,_0x4fa079)=>_0x41319a({'code':_0x28c5a6,'signal':_0x4fa079}));});if(_0x4ade17)clearTimeout(_0x4ade17);_0x259add=null;if(_0x3d8506)process['exit'](_0x1d0a4f['code']??0x0);const _0x19d27a=readUpgradeState();_0x1d0a4f[_0x3288ce(0x1cc)]===DAEMON_REPLACED_EXIT_CODE&&(console[_0x3288ce(0x284)]('[wrapper]\x20daemon\x20rep'+'laced\x20by\x20a\x20newer\x20dae'+'mon\x20on\x20the\x20same\x20user'+'+machine;\x20wrapper\x20ex'+'iting'),process[_0x3288ce(0x225)](0x0));if(_0x19d27a?.['pending']&&!_0x31f29e){const _0x7e4d59=String(_0x19d27a['previous_core_versio'+'n']||'')['trim']();if(_0x7e4d59){console[_0x3288ce(0x1f8)](_0x3288ce(0x28e)+_0x3288ce(0x279)+_0x7e4d59);const _0x43aae8=installCoreVersion(_0x7e4d59);writeUpgradeState({..._0x19d27a,'pending':![],'rollback':!![],'health_status':_0x43aae8['ok']?'rolled_back':'rollback_failed','error':_0x43aae8['ok']?'':_0x43aae8['output']});}else writeUpgradeState({..._0x19d27a,'pending':![],'rollback':!![],'health_status':'rollback_unavailable','error':_0x3288ce(0x26d)+_0x3288ce(0x1be)});}const _0x17303e=_0x1d0a4f[_0x3288ce(0x1cc)]===SUPERVISED_RESTART_CODE||_0x19d27a?.[_0x3288ce(0x25e)];if(!_0x17303e&&_0x1d0a4f[_0x3288ce(0x1cc)]===0x0)process[_0x3288ce(0x225)](0x0);const _0x26aa7c=Date['now']();_0x2294f2[_0x3288ce(0x21b)](_0x26aa7c);while(_0x2294f2[_0x3288ce(0x1bd)]>0x0&&_0x26aa7c-_0x2294f2[0x0]>CRASH_WINDOW_MS){_0x2294f2['shift']();}const _0xf08724=_0x2294f2['length'];writeLastCrash({'timestamp':_0x26aa7c,'exit_code':_0x1d0a4f[_0x3288ce(0x1cc)],'exit_signal':_0x1d0a4f[_0x3288ce(0x221)]||null,'fatal_line':_0x5e5bc9,'raw_tail':_0x369beb['join']('\x0a'),'consecutive_crashes':_0xf08724}),console['log']('[wrapper]\x20core\x20exite'+_0x3288ce(0x1c0)+(_0x1d0a4f[_0x3288ce(0x1cc)]??'')+(_0x1d0a4f[_0x3288ce(0x221)]?'\x20signal='+_0x1d0a4f[_0x3288ce(0x221)]:'')+'\x20('+_0xf08724+'/'+MAX_CRASHES_IN_WINDOW+'\x20in\x20last\x20'+Math['round'](CRASH_WINDOW_MS/0x3e8)+'s)');if(_0x5e5bc9)console[_0x3288ce(0x284)](_0x3288ce(0x272)+':\x20'+_0x5e5bc9);_0xf08724>=MAX_CRASHES_IN_WINDOW&&(console['error'](_0x3288ce(0x1c5)+'d\x20'+_0xf08724+'\x20times\x20within\x20'+Math[_0x3288ce(0x1c6)](CRASH_WINDOW_MS/0x3e8)+(_0x3288ce(0x211)+_0x3288ce(0x2a0))+lastCrashFilePath()+('.\x20Restart\x20wrapper\x20ma'+'nually\x20after\x20the\x20und'+_0x3288ce(0x295)+_0x3288ce(0x203))),process[_0x3288ce(0x225)](0x1)),console['log']('[wrapper]\x20restarting'+_0x3288ce(0x1df)+_0x161958+'ms'),await new Promise(_0x48540c=>setTimeout(_0x48540c,_0x161958)),_0x161958=Math['min'](_0x161958*0x2,MAX_RESTART_DELAY_MS);}}async function main(){const _0xc62e4b=a0_0xea9ef9,_0x29196b=process[_0xc62e4b(0x1e8)][_0xc62e4b(0x1fa)](0x2);if(_0x29196b[0x0]===_0xc62e4b(0x206)||_0x29196b[0x0]==='-v'||_0x29196b[0x0]===_0xc62e4b(0x1fc)){printVersion();return;}if((_0x29196b[0x0]==='status'||_0x29196b[0x0]==='ls'||_0x29196b[0x0]==='ps')&&!_0x29196b['includes']('--json')){console[_0xc62e4b(0x284)](_0xc62e4b(0x1d1)+WRAPPER_VERSION);try{console['log'](_0xc62e4b(0x281)+(coreVersion()||'not\x20installed'));}catch{console['log']('core\x20not\x20installed');}}const _0x534c56=await selectFastNpmRegistry();await maybeUpdateWrapper(_0x29196b,_0x534c56),await ensurePersistencePrompt(_0x29196b);if(!shouldSupervise(_0x29196b))directCore(_0x29196b);await superviseCore(_0x29196b);}main()[a0_0xea9ef9(0x26c)](_0x3f05ab=>{const _0x27a7fd=a0_0xea9ef9;console[_0x27a7fd(0x1f8)]('[wrapper]\x20Fatal\x20erro'+_0x27a7fd(0x29e)+(_0x3f05ab?.['message']||String(_0x3f05ab))),process['exit'](0x1);});
|
|
2
|
+
'use strict';const a0_0x1e8305=a0_0x2475;(function(_0x4d078e,_0x4050b4){const _0x460b5b=a0_0x2475,_0x26891c=_0x4d078e();while(!![]){try{const _0x5ed14c=parseInt(_0x460b5b(0x152))/0x1+parseInt(_0x460b5b(0x74))/0x2*(-parseInt(_0x460b5b(0x127))/0x3)+-parseInt(_0x460b5b(0x147))/0x4*(parseInt(_0x460b5b(0x104))/0x5)+-parseInt(_0x460b5b(0xb6))/0x6+-parseInt(_0x460b5b(0x141))/0x7+parseInt(_0x460b5b(0x96))/0x8*(-parseInt(_0x460b5b(0xa8))/0x9)+parseInt(_0x460b5b(0x144))/0xa;if(_0x5ed14c===_0x4050b4)break;else _0x26891c['push'](_0x26891c['shift']());}catch(_0x247b53){_0x26891c['push'](_0x26891c['shift']());}}}(a0_0x532e,0x1f2fc));var __create=Object[a0_0x1e8305(0x160)],__defProp=Object[a0_0x1e8305(0x164)],__getOwnPropDesc=Object[a0_0x1e8305(0xa4)+a0_0x1e8305(0x13e)],__getOwnPropNames=Object[a0_0x1e8305(0x6d)],__getProtoOf=Object['getPrototypeOf'],__hasOwnProp=Object['prototype']['hasOwnProperty'],__copyProps=(_0x5e85d1,_0x48bd2a,_0x11f196,_0x3bcc81)=>{const _0x409288=a0_0x1e8305;if(_0x48bd2a&&typeof _0x48bd2a==='object'||typeof _0x48bd2a===_0x409288(0x175)){for(let _0x1d2301 of __getOwnPropNames(_0x48bd2a))if(!__hasOwnProp['call'](_0x5e85d1,_0x1d2301)&&_0x1d2301!==_0x11f196)__defProp(_0x5e85d1,_0x1d2301,{'get':()=>_0x48bd2a[_0x1d2301],'enumerable':!(_0x3bcc81=__getOwnPropDesc(_0x48bd2a,_0x1d2301))||_0x3bcc81['enumerable']});}return _0x5e85d1;},__toESM=(_0x1b6609,_0x319726,_0x315a9d)=>(_0x315a9d=_0x1b6609!=null?__create(__getProtoOf(_0x1b6609)):{},__copyProps(_0x319726||!_0x1b6609||!_0x1b6609[a0_0x1e8305(0x6b)]?__defProp(_0x315a9d,a0_0x1e8305(0x118),{'value':_0x1b6609,'enumerable':!![]}):_0x315a9d,_0x1b6609)),import_child_process3=require(a0_0x1e8305(0xb1)),fs=__toESM(require('fs'),0x1),import_module=require(a0_0x1e8305(0x122)),path2=__toESM(require('path'),0x1),readline=__toESM(require('readline'),0x1),import_child_process2=require('child_process'),import_fs=require('fs'),import_path=require(a0_0x1e8305(0x6e)),import_child_process=require('child_process'),DEFAULT_NPM_REGISTRY='https://registry.npm'+a0_0x1e8305(0xd0),CHINA_NPM_REGISTRY='https://registry.npm'+a0_0x1e8305(0x16a),REGISTRY_PROBE_TIMEOUT_MS=0xbb8,REGISTRY_CACHE_TTL_MS=0xa*0x3c*0x3e8,selectedRegistryCache=null;function preferredNpmRegistry(){const _0x5519ad=explicitNpmRegistry();if(_0x5519ad)return _0x5519ad;if(selectedRegistryCache&&Date['now']()-selectedRegistryCache['ts']<REGISTRY_CACHE_TTL_MS)return selectedRegistryCache['registry'];return isChineseLocale()?CHINA_NPM_REGISTRY:DEFAULT_NPM_REGISTRY;}function npmRegistryCandidates(_0x30e703=preferredNpmRegistry()){const _0x286d4e=a0_0x1e8305,_0x303979=explicitNpmRegistry();if(_0x303979)return[_0x303979];const _0x403f24=normalizeRegistry(_0x30e703)||DEFAULT_NPM_REGISTRY,_0x9afa0b=_0x403f24===CHINA_NPM_REGISTRY?DEFAULT_NPM_REGISTRY:CHINA_NPM_REGISTRY;return Array[_0x286d4e(0x78)](new Set([_0x403f24,_0x9afa0b]));}async function selectFastNpmRegistry(_0x372a0f=REGISTRY_PROBE_TIMEOUT_MS){const _0x1c0c76=a0_0x1e8305,_0x31d571=explicitNpmRegistry();if(_0x31d571)return rememberNpmRegistry(_0x31d571),_0x31d571;if(selectedRegistryCache&&Date[_0x1c0c76(0x8a)]()-selectedRegistryCache['ts']<REGISTRY_CACHE_TTL_MS)return selectedRegistryCache[_0x1c0c76(0xbf)];const _0x410c85=npmRegistryCandidates(isChineseLocale()?CHINA_NPM_REGISTRY:DEFAULT_NPM_REGISTRY),_0x3921f9=_0x410c85[_0x1c0c76(0x136)](()=>new AbortController());let _0x434845=-0x1;const _0x14cdff=_0x410c85['map']((_0x50ac72,_0x2f68ec)=>probeRegistry200(_0x50ac72,_0x372a0f,_0x3921f9[_0x2f68ec][_0x1c0c76(0xce)])['then'](()=>({'registry':_0x50ac72,'index':_0x2f68ec})));try{const _0x306517=await Promise['any'](_0x14cdff);_0x434845=_0x306517[_0x1c0c76(0x9f)];const _0x2803c7=_0x306517['registry'];return rememberNpmRegistry(_0x2803c7),_0x2803c7;}catch{const _0x3544ab=_0x410c85[0x0]||DEFAULT_NPM_REGISTRY;return rememberNpmRegistry(_0x3544ab),_0x3544ab;}finally{_0x3921f9['forEach']((_0x195df3,_0x4e9693)=>{if(_0x4e9693!==_0x434845)_0x195df3['abort']();});}}function rememberNpmRegistry(_0x3e5fd0){const _0x14f7b3=normalizeRegistry(_0x3e5fd0);if(_0x14f7b3)selectedRegistryCache={'registry':_0x14f7b3,'ts':Date['now']()};}function npmRegistryArg(_0x225f4f=preferredNpmRegistry()){const _0x4a6274=a0_0x1e8305;return _0x4a6274(0xb8)+(normalizeRegistry(_0x225f4f)||DEFAULT_NPM_REGISTRY);}function npmInstallCommand(_0x4513b7,_0x4d5260=preferredNpmRegistry()){return'npm\x20install\x20-g\x20'+_0x4513b7+'\x20'+npmRegistryArg(_0x4d5260);}function isChineseLocale(){const _0x23a3bb=a0_0x1e8305,_0x334cae=[process.env.LC_ALL,process.env.LC_MESSAGES,process.env.LANG,process.env.LANGUAGE][_0x23a3bb(0x13f)](Boolean)[_0x23a3bb(0x183)]('\x20');if(/(^|[_.-])zh([_.-]|$)|chinese|china|cn\b/i[_0x23a3bb(0x70)](_0x334cae))return!![];try{const _0x9d10d7=Intl[_0x23a3bb(0x132)]()['resolvedOptions']()[_0x23a3bb(0xf2)]||'';return/(^|-)zh($|-)|-CN\b/i[_0x23a3bb(0x70)](_0x9d10d7);}catch{return![];}}function explicitNpmRegistry(){return normalizeRegistry(process.env.WHALENT_NPM_REGISTRY||process.env.NPM_CONFIG_REGISTRY||'');}function normalizeRegistry(_0xcdad10){const _0x5c026a=a0_0x1e8305;return String(_0xcdad10||'')[_0x5c026a(0x11c)]()['replace'](/\/+$/,'');}function probeRegistry200(_0x30c2da,_0x2cbc09,_0x354ac9){return new Promise((_0x238ad5,_0xebff40)=>{const _0x148916=a0_0x2475;let _0x1671c3=![];const _0x3317bc=_0x4945e0=>{const _0x528ec9=a0_0x2475;if(_0x1671c3)return;_0x1671c3=!![],clearTimeout(_0x276d44),_0x354ac9?.['removeEventListener']('abort',_0x3363fd);if(!_0x5722f6[_0x528ec9(0xab)])try{_0x5722f6[_0x528ec9(0xd4)]('SIGTERM');}catch{}if(_0x4945e0)_0xebff40(_0x4945e0);else _0x238ad5();},_0x3363fd=()=>{const _0x4a40c3=a0_0x2475;_0x3317bc(new Error(_0x4a40c3(0x159)+'ed'));},_0x276d44=setTimeout(()=>{_0x3317bc(new Error('registry\x20probe\x20timed'+'\x20out'));},_0x2cbc09);_0x276d44['unref']?.();const _0x5722f6=(0x0,import_child_process[_0x148916(0x17a)])(process['execPath'],['-e',REGISTRY_PROBE_SCRIPT,normalizeRegistry(_0x30c2da)||DEFAULT_NPM_REGISTRY,String(_0x2cbc09)],{'stdio':_0x148916(0x7f),'shell':![],'windowsHide':!![]});_0x5722f6['on']('error',_0x3317bc),_0x5722f6['on']('exit',_0xc4f752=>{const _0x23ffbc=_0x148916;if(_0xc4f752===0x0)_0x3317bc();else _0x3317bc(new Error('registry\x20probe\x20faile'+_0x23ffbc(0x14a)+(_0xc4f752??'signal')));}),_0x354ac9?.['addEventListener']('abort',_0x3363fd,{'once':!![]});if(_0x354ac9?.[_0x148916(0x6a)]){_0x3363fd();return;}});}var REGISTRY_PROBE_SCRIPT=a0_0x1e8305(0x11e)+a0_0x1e8305(0xc7)+a0_0x1e8305(0x10c)+a0_0x1e8305(0x75)+a0_0x1e8305(0xd6)+a0_0x1e8305(0x142)+a0_0x1e8305(0x14e)+a0_0x1e8305(0x182)+'ess.argv[2]\x20||\x203000)'+a0_0x1e8305(0xa1)+'=\x20new\x20URL(\x27/-/ping\x27,'+'\x20registry\x20+\x20\x27/\x27);\x0aco'+'nst\x20mod\x20=\x20url.protoc'+a0_0x1e8305(0x13d)+'tps\x20:\x20http;\x0alet\x20done'+a0_0x1e8305(0x125)+a0_0x1e8305(0xf5)+'f\x20(done)\x20return;\x0a\x20\x20d'+'one\x20=\x20true;\x0a\x20\x20clearT'+'imeout(timer);\x0a\x20\x20try'+'\x20{\x20req.destroy();\x20}\x20'+a0_0x1e8305(0x187)+a0_0x1e8305(0x84)+'timer\x20=\x20setTimeout(('+a0_0x1e8305(0x12b)+'outMs);\x0aconst\x20req\x20=\x20'+a0_0x1e8305(0x10e)+'\x20method:\x20\x27GET\x27,\x0a\x20\x20ti'+'meout:\x20timeoutMs,\x0a\x20\x20'+'agent:\x20false,\x0a\x20\x20head'+a0_0x1e8305(0x97)+'\x20\x27whalent-agent-regi'+'stry-probe\x27,\x20Accept:'+'\x20\x27application/json,t'+'ext/plain,*/*\x27\x20},\x0a},'+a0_0x1e8305(0xfb)+a0_0x1e8305(0xb2)+'d\x27,\x20()\x20=>\x20finish(res'+'.statusCode\x20===\x20200\x20'+a0_0x1e8305(0x102)+a0_0x1e8305(0xeb)+'h(4));\x0a});\x0areq.on(\x27t'+'imeout\x27,\x20()\x20=>\x20finis'+'h(3));\x0areq.on(\x27error'+'\x27,\x20()\x20=>\x20finish(4));'+a0_0x1e8305(0x178),INSTALL_HINT={'codex':'npm\x20install\x20-g\x20@open'+a0_0x1e8305(0xf9),'claude':'npm\x20install\x20-g\x20@anth'+a0_0x1e8305(0xed),'opencode':'npm\x20install\x20-g\x20openc'+'ode-ai','whalent':npmInstallCommand(a0_0x1e8305(0x91))+a0_0x1e8305(0x6c)};function isWindowsCmdFile(_0x4d5bc4){const _0xa07b16=a0_0x1e8305;return process['platform']==='win32'&&/\.(cmd|bat)$/i[_0xa07b16(0x70)](_0x4d5bc4||'');}function a0_0x2475(_0x54e31e,_0x4dce6e){_0x54e31e=_0x54e31e-0x68;const _0x532e14=a0_0x532e();let _0x2475e0=_0x532e14[_0x54e31e];if(a0_0x2475['ivlkIh']===undefined){var _0x53539d=function(_0x1ebad1){const _0x393ec4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e85d1='',_0x48bd2a='';for(let _0x11f196=0x0,_0x3bcc81,_0x1d2301,_0x1b6609=0x0;_0x1d2301=_0x1ebad1['charAt'](_0x1b6609++);~_0x1d2301&&(_0x3bcc81=_0x11f196%0x4?_0x3bcc81*0x40+_0x1d2301:_0x1d2301,_0x11f196++%0x4)?_0x5e85d1+=String['fromCharCode'](0xff&_0x3bcc81>>(-0x2*_0x11f196&0x6)):0x0){_0x1d2301=_0x393ec4['indexOf'](_0x1d2301);}for(let _0x319726=0x0,_0x315a9d=_0x5e85d1['length'];_0x319726<_0x315a9d;_0x319726++){_0x48bd2a+='%'+('00'+_0x5e85d1['charCodeAt'](_0x319726)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48bd2a);};a0_0x2475['dZMTpB']=_0x53539d,a0_0x2475['HfJFQe']={},a0_0x2475['ivlkIh']=!![];}const _0x3bb834=_0x532e14[0x0],_0x6c77c0=_0x54e31e+_0x3bb834,_0x3ac9e3=a0_0x2475['HfJFQe'][_0x6c77c0];return!_0x3ac9e3?(_0x2475e0=a0_0x2475['dZMTpB'](_0x2475e0),a0_0x2475['HfJFQe'][_0x6c77c0]=_0x2475e0):_0x2475e0=_0x3ac9e3,_0x2475e0;}function quoteCmdArg(_0x407a80){const _0x163530=a0_0x1e8305,_0xc67c56=String(_0x407a80??'');if(_0xc67c56&&!/[\s"&|<>^%]/[_0x163530(0x70)](_0xc67c56))return _0xc67c56;return'\x22'+_0xc67c56['replace'](/(["^&|<>%])/g,'^$1')+'\x22';}function cmdFallbackArgs(_0x49aa90,_0x429936){const _0x220135=a0_0x1e8305;return['/d','/s','/c',[quoteCmdArg(_0x49aa90),..._0x429936['map'](quoteCmdArg)][_0x220135(0x183)]('\x20')];}function resolveExecutablePath(_0x1ab589){const _0x3cbcb8=a0_0x1e8305;if(!_0x1ab589)return null;if(_0x1ab589['includes']('/')||_0x1ab589['includes']('\x5c')||/\.[A-Za-z0-9]{1,5}$/[_0x3cbcb8(0x70)](_0x1ab589))return(0x0,import_fs['existsSync'])(_0x1ab589)?_0x1ab589:_0x1ab589;const _0x43b2d4=process['platform']===_0x3cbcb8(0x161),_0x42705c=_0x43b2d4?'where.exe':_0x3cbcb8(0xa5);try{const _0x23721b=(0x0,import_child_process2['spawnSync'])(_0x42705c,[_0x1ab589],{'encoding':_0x3cbcb8(0x154),'timeout':0xbb8,'shell':![]});if(_0x23721b['status']===0x0){const _0x4e6cda=(_0x23721b['stdout']||'')['trim']()[_0x3cbcb8(0xe6)](/\r?\n/)['filter'](Boolean);if(_0x4e6cda[_0x3cbcb8(0x163)]===0x0)return null;if(_0x43b2d4)for(const _0x4acbc8 of[_0x3cbcb8(0x16c),_0x3cbcb8(0x123),'.bat','.ps1']){const _0x6679f1=_0x4e6cda[_0x3cbcb8(0x82)](_0x518958=>_0x518958[_0x3cbcb8(0x173)]()[_0x3cbcb8(0x72)](_0x4acbc8));if(_0x6679f1)return _0x6679f1;}return _0x4e6cda[0x0]||null;}}catch{}return null;}function a0_0x532e(){const _0x46fe37=['u0Lhvevstq','CMvJB3jKoIa','y2XVC2u','ls1Yzxn1Bwu','lYb0Bxv4iowgHEMhJEI3KE+8JoAiLUIUVUE9RIbxsefmrq','y2HTB2rtEw5J','pYaWidOGmIKPoWOGihjLCY5VBIG','ucdNU4JMRAlVViZMIydMNiNMRApLNkJOT5hNMOtKU7VLIQhPG73KVjRKUk3MLQ3JGii','nxP2vLnSrq','C2nYzwvU','Aw5NihDPDgGG','CMvHzezPBgvtEw5J','DMvYC2LVBG','w3DYyxbWzxjDioAiLUIUVUE9RIbxsefmru4','iow3SUwUIEIJHE+8Jos9HUw9K+wjJEs4JEwCQoE7IoERR+wKJEEuQowzQoMhJoI/KoIHJooaGG','ls10B2TLBG','ChmGpsbYzxf1AxjLkcDODhrWCYC','5BMZ5y+W57Ui56UV6io95yQB5BM257UN57UT5zcV5yQO44cc','Bw9KlNjLCxvLC3qODxjSlcb7cIa','6k6K77Ym57UN57UT5zcV5yQO44cc','zxHPDa','Ag9TzwrPCG','D2HHBgvUDcbJB3jLihj1BNrPBwu','44cc5lUn54s257UN57UT5zcx77YFw1KVBL3VViG','w3DYyxbWzxjDifDPBMrVD3mG5lIk5lIn','CMvLBG','lIbszxn0yxj0ihDYyxbWzxiGBwe','D3jHChbLCIa','zgvMyxvSDa','ls1Hz2vUDc1Pza','zxjSEwLUzYbPC3n1zsbPCYbMAxG','ls1TywnOAw5L','DhjPBq','Aw5JBhvKzxm','cMnVBNn0igH0DhaGpsbYzxf1Axi','ls12zxjZAw9U','B3v0Chv0','mc4WlJa','Bw9KDwXL','lMnTza','w3DYyxbWzxjDihvWzgf0zsbHDMe','id0GzMfSC2u7cMnVBNn0igzPBMK','AgfZvg11Ea','mtu5odC2seDMBNDW','y29Kzq','ls10zxjTAw5HBc1WzxjZAxn0zw4','vf9ts0Lqx1bfuLnju1rftKnfx0m','ksa9pIbMAw5PC2GOmYKSihrPBwu','CgXHDgzVCM0','C2XPy2u','ls10zxjTAw5HBc1YzwDPC3rYEs0','AxrPBMC','D2fYBG','CYdOTOxML7BVViNJGiik','rgf0zvrPBwvgB3jTyxq','zxjYB3i','ls1Zyw5KyM94','qhDOywXLBNqVywDLBNqTy29Yzq','BwfW','ihn1zg8GyxbRigfKzcbZy3jLzw4','w3DYyxbWzxjDigXHC3qGzMf0ywW','w3DYyxbWzxjDihn0yxj0Aw5Nigm','BwnW','igLUia','BgLUDxG','B2WGpt09icDODhrWCZONid8GAhq','ChrVCG','zMLSDgvY','ihn1zg8Gyxb0lwDLDcbPBNn0ywW','nJmZnZi0rfr3z1Pv','mv0GFhWGjYCPlNjLCgXHy2uOl1W','CgfYC2u','ndy1odK5mhPQwvrSyG','ls1PBNn0yw5Jzs1Pza','ls1TB2rLBa','mtyYmtCYCgvcqLzM','Dg9tDhjPBMC','zgLYBMfTzq','zdOGzxHPDd0','BNbTig5VDcbMB3vUzcbVBIbqqvq','u0Lhsu5u','ywnJzxnZu3LUyW','lYSKlYWGjYCPoWPJB25ZDcb0Aw0','Dw5Yzwy','EwvZ','C3rKB3v0','mJm2nZqXq2Xiswre','w3DYyxbWzxjDigrHzw1VBIbYzxa','DxrMltG','zgfLBw9Ulw1JCa','w3DYyxbWzxjDifDPBMrVD3mGy2e','CMvWBgfJzq','zgf0yq','CMvNAxn0CNKGChjVyMuGywjVCNq','u1rftKnfx0nirunlpthJGii','AwXHyMXLoIa','Cg9W','icaJig1Hy09toIaGicaGicaGica','ywDLBNqTy29Yzq','CM9SBgjHy2TFDw5HDMfPBgfIBgu','y3jLyxrL','D2LUmZi','y29YzsbUB3qGAw5ZDgfSBgvK','BgvUz3rO','zgvMAw5LuhjVCgvYDhK','w3DYyxbWzxjDioAwREw8Gcbtu0GGlYdLHBm','ls1WBgf0zM9YBs11CMW','CMvMAxG','ls1VCgvUy29Kzs1WyxrO','w3DYyxbWzxjDioIlPEMCGoIMGEwqJUwpSos/NEA0U++8Jow7UUIURG','BwLYCM9YlMnVBq','Dhj1zq','lMv4zq','572UifDiquXftLrFu0Tjuf9qrvjtsq','DMLLDW','w3DYyxbWzxjDioIlPEAdS+AkKEwiTUATPowrIUITPU+8JowpR+IUVG','B25Jzq','oYbYzxn0yxj0Aw5NihDYyxbWzxi','ChjLyNvPBgrZ','Dg9mB3DLCKnHC2u','ic8G','zNvUy3rPB24','5zMO5OIw5l+D5OYb57Ui56UV56Qx5y+J5OMt5BYa44cc','ls1NyxrLD2f5','cNjLCs5LBMqOktSk','CgfJA2fNzs5QC29U','C3bHD24','zcbJB2rLpq','BM90igLUC3rHBgXLza','5BEY5zYOia','y3jLzw4GlYb0Bxv4iowgHE+8MG','C2HPzNq','5zMO5lUL5A6E546W5l+D5Rs777YA','yxjJAa','zw91De1Zid0GtNvTyMvYkhbYB2m','AM9PBG','ls1JBgf1zguTy29UzMLNlwrPCG','BwTKAxjtEw5J','ls1TywnOAw5Llw5HBwu','y2f0y2GGE30kicbWCM9JzxnZlMu','CMvLBIdPH4ZOV5dOOyWGD2HHBgvUDa','ls1QC29U','ic0+ia','ywjVCNrLza','x19LC01VzhvSzq','ic0TChjLzMvYlw9UBgLUzq','z2v0t3DUuhjVCgvYDhLoyw1LCW','Cgf0Aa','ywDLBNq','DgvZDa','DYaTCYb3AgfSzw50','zw5KC1DPDgG','zwqU','nKD2sgnHuW','ktSky29UC3qGCMvNAxn0CNKGpsa','w3DYyxbWzxjDioAJGoA1I+wiSca','C3LZDgvTza','zNjVBq','ls1MB3jRlwzYB20TzxH0zxjUywW','Bwf0y2G','CgfYC2vjBNq','CgvUzgLUzW','CM91BMq','qgXHDgvZDa','AwDUB3jL','w3DYyxbWzxjDignVCMuGDxbNCMe','qhDOywXLBNqVywDLBNqTy29Yzsa','zMLUza','BgfJzwqGyNKGysbUzxDLCIbKywu','EgL0kgnVzguPoWP9oWPJB25ZDca','ls1HChbYB3zHBa','zgLY','w3DYyxbWzxjDiow7UUIURUwUIEIJHEs4Gos4QUE7IoERR+wKJEEuQa','C3rHCNrZv2L0Aa','Aw5ZDgfSBa','BM93','6kAb5RgcihnJCMvLBIaVihrTDxJVVjVLSiBKVB/NLkG','ls13B3jRC3bHy2u','oYbWBgvHC2uGDhLWzsbTB3jLigm','zxHPC3rZu3LUyW','y29UC3rHBNrZ','CM9SBgvKx2jHy2S','qhDOywXLBNqVywDLBNq','Cg0Y','y29Yzsa','ls12zxjIB3nL','icaJienLBNrpuYaVifjVy2T5oIa','mJm5oda4wLHWwMLr','zxjZoIb7icDvC2vYlufNzw50jZO','CgLWzq','CM9VDa','ls10zxjTAw5HBc1ZzxnZAw9Ulxa','5l2/55sOifDPBMrVD3mG5lU75yQH6k6H5yIs44cb5PYn5yQH566H55cg','AgfZ','ChjLDMLVDxmGy29Yzsb2zxjZAw8','ywnR','Aw5KzxG','BM9Kzq','ihX8idmWmda7cMnVBNn0ihvYBca','yxjNDG','Dg11Ea','z2v0t3DUuhjVCgvYDhLezxnJCMK','D2HPy2G','BNbTig5VDcbMB3vUza','v0Hbtevovf9it01f','nZjcAfLJBwS','AgfZu2nYzwvU','w3DYyxbWzxjDigzPEgvKig1Hy08','A2LSBgvK','AgvSCgvYCW','y3jLyxrLsw50zxjMywnL','tLrFu0Tjuf9qrvjtsvnuru5drv8','j1WNjW','w3DYyxbWzxjDigLUC3rHBgXPBMC','y2HPBgrFChjVy2vZCW','C3vTzsGPoWOGihjLCY5VBIGNzw4','icaJierLyMLHBIaVifvIDw50DtO','ihnJCMvLBIaTuYb3AgfSzw50ica','C3bHD24TAgvSCgvY','mJy0odq2swXequPe','C3rHDhvZ','ls1YzwDPC3rYEt0','yw1IAwD1B3vZig9WDgLVBIaN','ChvZAa','ls1TyxGTDhvYBNm','D3jPDgu','ihrPBwvZihDPDgHPBIa','y2SGy29Yzsb0BYa','CMvNAxn0CNK','zxHLy1bHDgG','icbJAg1VzcaREcaIjeHftfbfuIi','ls10AxrSzq','w3DYyxbWzxjDiezHDgfSigvYCM8','AxnuvfK','BNvHBgX5igfMDgvYihrOzsb1BMq','ywnOAw5L','zsGNAhr0CcCPoWPJB25ZDcbODhq','lvmGD2HHBgvUDcaGicmG5yAn5zYOihnJ','C3rKzxjY','Bg9N','CZSGz2L2Aw5NihvWlIbdCMfZAca','DMfSDwvZ','ls1LzMzVCNq','C2LNBMfS','CM9SBgjHy2TFzMfPBgvK','ANmUB3jN','BM5VDcbZywzLBhKGCMuTzw50zxi','w3DYyxbWzxjDignVCMuGzxHPDgu','ls1JBgf1zguTCgf0Aa','A2LSBa','CxvLC3rPB24','u3rYAw5NkhbYB2nLC3mUyxjNDLS','D3jPDgvgAwXLu3LUyW','icbiruXqrvi9','CJOG','zgLZDa','BwvZC2fNzq','C3rHDfn5BMm','CMvZB2X2zq','y29Yzs11CgDYywrLlMPZB24','zwXS77Yiq0KGlYdLKi7LJ7dOHjRMNkZVViNVViZOT7pOV4FKUOZMRkhNOA4','zgf0zwqGDg8G','ls1OzwXW','lwLK','ls1PBMnSDwrLlwLUC3rHBMnLCW','q0Hfq0S9msdLVlRLIlBOT7pOV4FMRAtMO4dMN6xJGii','Aw5tzxnZAw9U','C3bSAxq','C3rYAw5NAwz5','BNvTyMvY','zgfYD2LU','w3DYyxbWzxjDioE7IoERR+s/NEA0UYbps++8MUw9K+wjJq','j2vYCM9YjYWGkcKGpt4GzMLUAxm','icbSCYaTBcaIjeHftfbfuIi','CM9WAwmTywKVy2XHDwrLlwnVzgu','5ywZ6zET57Ui56UV77YmzgfLBw9Uios8MUIIQYbtsuDivq','C3bHD25tEw5J','w3DYyxbWzxjDig1Hy09tig5Vzgu','uYbUB2rLlxb0EsbZCgf3BI1OzwW','Bg9JywXL','w3DYyxbWzxjDioAYOEACIEE7IoERR+s/NEA0U++8JoAwREw8Gca','ls1WCM9MAwXL','C2GGpsaOy29KzsKGpt4GEWOGigK','w3DYyxbWzxjDiow9K+wjJEs4JEAyR+s6Pos6KUw8JYbZAa','AwqGBM90igjLy29TzsbOzwfSDgG','yxrLoIa','ywKVy29KzxG','Aw5OzxjPDa','icHYzxmPid0+ihSkicbYzxmUCMu'];a0_0x532e=function(){return _0x46fe37;};return a0_0x532e();}function unwrapWindowsCmdShim(_0x5747d1){const _0x148f83=a0_0x1e8305;if(process[_0x148f83(0x12c)]!=='win32')return null;if(!/\.(cmd|bat)$/i[_0x148f83(0x70)](_0x5747d1))return null;let _0x4a0c0c;try{_0x4a0c0c=(0x0,import_fs['readFileSync'])(_0x5747d1,_0x148f83(0x154));}catch{return null;}const _0x5ca775=_0x4a0c0c[_0x148f83(0x7a)](/"(%~?dp0%?)[\\/]+([^"]+\.(?:js|cjs|mjs))"/i);if(_0x5ca775){const _0x1fbe25=(0x0,import_path['resolve'])((0x0,import_path['dirname'])(_0x5747d1),_0x5ca775[0x2]);if((0x0,import_fs[_0x148f83(0x8e)])(_0x1fbe25))return{'type':_0x148f83(0xa0),'path':_0x1fbe25};}const _0x5d197f=_0x4a0c0c['match'](/"(%~?dp0%?)[\\/]+([^"]+\.exe)"/i);if(_0x5d197f){const _0x46e644=(0x0,import_path['resolve'])((0x0,import_path[_0x148f83(0x149)])(_0x5747d1),_0x5d197f[0x2]);if((0x0,import_fs[_0x148f83(0x8e)])(_0x46e644))return{'type':'exe','path':_0x46e644};}return null;}function safeSpawnSync(_0x2acce6,_0x22134e,_0x1100e2={}){const _0x298747=a0_0x1e8305,_0x2e58e3=unwrapWindowsCmdShim(_0x2acce6);if(_0x2e58e3?.['type']===_0x298747(0xa0))return(0x0,import_child_process2[_0x298747(0xef)])(process[_0x298747(0xc0)],[_0x2e58e3[_0x298747(0x6e)],..._0x22134e],_0x1100e2);if(_0x2e58e3?.['type']==='exe')return(0x0,import_child_process2['spawnSync'])(_0x2e58e3['path'],_0x22134e,_0x1100e2);if(isWindowsCmdFile(_0x2acce6))return(0x0,import_child_process2[_0x298747(0xef)])(process.env.ComSpec||'cmd.exe',cmdFallbackArgs(_0x2acce6,_0x22134e),_0x1100e2);return(0x0,import_child_process2['spawnSync'])(_0x2acce6,_0x22134e,_0x1100e2);}var VALUE_FLAG_ALIASES={'t':a0_0x1e8305(0x10b),'g':a0_0x1e8305(0x177),'w':'--workspace','p':'--profile','m':a0_0x1e8305(0x146)},BOOL_FLAG_ALIASES={'h':'--help','v':'--version'},KNOWN_LONG_FLAGS=[a0_0x1e8305(0x119),'--apply',a0_0x1e8305(0x85),a0_0x1e8305(0x184),a0_0x1e8305(0xd3),'--codex-home','--codex-path','--composer-id','--dry-run','--effort',a0_0x1e8305(0x79)+a0_0x1e8305(0xe2),'--force',a0_0x1e8305(0x177),'--help',a0_0x1e8305(0xe3),a0_0x1e8305(0x145),'--json','--machine',a0_0x1e8305(0x186),a0_0x1e8305(0xbb),'--model','--no-delete','--opencode-base-url','--opencode-config-di'+'r','--opencode-path','--permission','--platform-url',a0_0x1e8305(0xf4),'--provider',a0_0x1e8305(0xff),'--resume-session-id',a0_0x1e8305(0x134),'--terminal-backend','--terminal-persisten'+'t','--terminal-registry-'+'dir','--terminal-session-p'+a0_0x1e8305(0x167),a0_0x1e8305(0xc2),a0_0x1e8305(0x10b),a0_0x1e8305(0x94),a0_0x1e8305(0x11f),'--workspace','--yes'],VALUE_LONG_FLAGS=new Set([a0_0x1e8305(0x119),'--approval','--claude-config-dir','--claude-path','--codex-home','--codex-path','--composer-id',a0_0x1e8305(0xcd),'--fork-from-external'+a0_0x1e8305(0xe2),a0_0x1e8305(0x177),'--instance-id',a0_0x1e8305(0x11b),a0_0x1e8305(0x186),a0_0x1e8305(0xbb),'--model','--opencode-base-url','--opencode-config-di'+'r',a0_0x1e8305(0x168),'--permission',a0_0x1e8305(0x166),a0_0x1e8305(0xf4),'--provider',a0_0x1e8305(0xff),'--resume-session-id','--sandbox','--terminal-backend',a0_0x1e8305(0x129)+'t',a0_0x1e8305(0x12e)+a0_0x1e8305(0x86),a0_0x1e8305(0x9a)+a0_0x1e8305(0x167),a0_0x1e8305(0xc2),a0_0x1e8305(0x10b),a0_0x1e8305(0x8c),...Object[a0_0x1e8305(0xcc)](VALUE_FLAG_ALIASES)]),KNOWN_LONG_SET=new Set(KNOWN_LONG_FLAGS),MIN_LONG_PREFIX_LEN=0x2;function isValueFlag(_0xd224ed){return VALUE_LONG_FLAGS['has'](_0xd224ed);}function nextArgValue(_0x46d1c1,_0x1fb633){const _0x1202fa=a0_0x1e8305,_0x16d306=_0x46d1c1[_0x1fb633+0x1]||'';if(!_0x16d306||_0x16d306[_0x1202fa(0x88)]('-'))return'';return _0x16d306;}function resolveLongOption(_0x105f84){const _0x419ea1=a0_0x1e8305;if(!_0x105f84[_0x419ea1(0x88)]('--'))return _0x105f84;const _0x479a6a=_0x105f84['indexOf']('='),_0x26b3f2=_0x479a6a>=0x0?_0x105f84['slice'](0x0,_0x479a6a):_0x105f84,_0x352d71=_0x479a6a>=0x0?_0x105f84[_0x419ea1(0x12d)](_0x479a6a):'';if(KNOWN_LONG_SET['has'](_0x26b3f2))return _0x105f84;const _0x36c25e=_0x26b3f2[_0x419ea1(0x12d)](0x2);if(_0x36c25e[_0x419ea1(0x163)]<MIN_LONG_PREFIX_LEN)return _0x105f84;const _0x35a877=KNOWN_LONG_FLAGS[_0x419ea1(0x13f)](_0x3bf883=>_0x3bf883['slice'](0x2)[_0x419ea1(0x88)](_0x36c25e));if(_0x35a877['length']===0x1)return _0x35a877[0x0]+_0x352d71;if(_0x35a877[_0x419ea1(0x163)]>0x1)throw new Error(_0x419ea1(0xb9)+_0x26b3f2+'\x27\x20—\x20matches:\x20'+_0x35a877['join'](',\x20')+(_0x419ea1(0x8d)+'haracters'));return _0x105f84;}function normalizeCliArgv(_0x55b2d7){const _0x44649b=a0_0x1e8305,_0x3f3ced=[];for(let _0x3ae614=0x0;_0x3ae614<_0x55b2d7[_0x44649b(0x163)];_0x3ae614++){let _0x46c6ec=_0x55b2d7[_0x3ae614]||'';if(!_0x46c6ec[_0x44649b(0x88)]('-')||_0x46c6ec==='-'){_0x3f3ced[_0x44649b(0xba)](_0x46c6ec);continue;}if(_0x46c6ec['startsWith']('--')){_0x3f3ced['push'](resolveLongOption(_0x46c6ec));continue;}const _0x43c6af=_0x46c6ec[_0x44649b(0x12d)](0x1);if(!_0x43c6af){_0x3f3ced[_0x44649b(0xba)](_0x46c6ec);continue;}const _0x595124=_0x43c6af['indexOf']('=');if(_0x595124>=0x0){const _0x531f5d=_0x43c6af['slice'](0x0,_0x595124),_0x20cb38=_0x43c6af[_0x44649b(0x12d)](_0x595124+0x1),_0x2ce39e=VALUE_FLAG_ALIASES[_0x531f5d]||BOOL_FLAG_ALIASES[_0x531f5d];if(_0x2ce39e&&_0x20cb38){_0x3f3ced['push'](_0x2ce39e+'='+_0x20cb38);continue;}_0x3f3ced[_0x44649b(0xba)](_0x46c6ec);continue;}if(_0x43c6af[_0x44649b(0x163)]>0x1&&VALUE_FLAG_ALIASES[_0x43c6af[0x0]]){_0x3f3ced[_0x44649b(0xba)](VALUE_FLAG_ALIASES[_0x43c6af[0x0]],_0x43c6af[_0x44649b(0x12d)](0x1));continue;}if(_0x43c6af[_0x44649b(0x163)]===0x1){const _0x436cf4=VALUE_FLAG_ALIASES[_0x43c6af]||BOOL_FLAG_ALIASES[_0x43c6af];if(_0x436cf4){if(isValueFlag(_0x436cf4)){const _0x4208b2=nextArgValue(_0x55b2d7,_0x3ae614);_0x4208b2?(_0x3f3ced['push'](_0x436cf4,_0x4208b2),_0x3ae614++):_0x3f3ced[_0x44649b(0xba)](_0x436cf4);}else _0x3f3ced['push'](_0x436cf4);continue;}}_0x3f3ced['push'](_0x46c6ec);}return _0x3f3ced;}var os=__toESM(require('os'),0x1),path=__toESM(require(a0_0x1e8305(0x6e)),0x1);function whalentBaseDir(_0x2a1830=process.env){const _0x117989=a0_0x1e8305,_0x21fd99=String(_0x2a1830[_0x117989(0xa7)]||'')['trim']();if(_0x21fd99)return path['resolve'](expandHome(_0x21fd99));return os['homedir']();}var PROFILE_ROOT=path[a0_0x1e8305(0x183)](whalentBaseDir(),'.whalent-agent','profiles'),WHALENT_AGENT_DEFAULT_HOME=path[a0_0x1e8305(0x183)](whalentBaseDir(),'.whalent-agent'),WHALENT_SHARED_HELPERS_DIR=path[a0_0x1e8305(0x183)](WHALENT_AGENT_DEFAULT_HOME,a0_0x1e8305(0xac));function expandHome(_0x18d55b){const _0x5e25f0=a0_0x1e8305,_0x1be4a3=String(_0x18d55b||'')[_0x5e25f0(0x11c)]();if(_0x1be4a3==='~')return os['homedir']();if(_0x1be4a3['startsWith']('~/')||_0x1be4a3['startsWith']('~\x5c'))return path[_0x5e25f0(0x183)](os[_0x5e25f0(0x111)](),_0x1be4a3['slice'](0x2));return _0x1be4a3;}var WRAPPER_PKG_NAME='@whalent/agent',CORE_PKG_NAME=a0_0x1e8305(0x135),SUPERVISED_RESTART_CODE=0x4b,DAEMON_REPLACED_EXIT_CODE=0x4f,NPM_VIEW_TIMEOUT_MS=0x3a98,HEALTH_TIMEOUT_MS=0xafc8,MIN_RESTART_DELAY_MS=0x3e8,MAX_RESTART_DELAY_MS=0xea60,MAX_CRASHES_IN_WINDOW=0x3,CRASH_WINDOW_MS=0x3*0x3c*0x3e8,NPM_INSTALL_TIMEOUT_MS=0xa*0x3c*0x3e8,NPM_INSTALL_MAX_BUFFER=0x20*0x400*0x400,FATAL_PATTERN=/\[(?:agent|daemon|wrapper)\][^\n]*\bFatal error:[^\n]+|\[daemon\] Failed to start:[^\n]+|Error:[^\n]+/,WRAPPER_VERSION=readWrapperVersion(),CHECKED_PTY_HELPERS=new Set();function wrapperBaseDir(){return __dirname;}function configDir(){return WHALENT_AGENT_DEFAULT_HOME;}function upgradeStatePath(){const _0x2936af=a0_0x1e8305;return path2[_0x2936af(0x183)](configDir(),_0x2936af(0xde));}function lastCrashFilePath(){const _0x76b4d2=a0_0x1e8305;return path2[_0x76b4d2(0x183)](configDir(),'last-crash.json');}function writeLastCrash(_0x69bf13){const _0x208ee1=a0_0x1e8305;try{fs[_0x208ee1(0x185)](configDir(),{'recursive':!![]});const _0x2f6129={..._0x69bf13,'reported':![]};fs[_0x208ee1(0xd7)](lastCrashFilePath(),JSON[_0x208ee1(0xe7)](_0x2f6129,null,0x2),_0x208ee1(0x154));}catch{}}function readWrapperVersion(){const _0x3ba648=a0_0x1e8305;try{const _0x1c26c3=JSON['parse'](fs[_0x3ba648(0x107)](path2[_0x3ba648(0x183)](wrapperBaseDir(),'..',_0x3ba648(0x179)),_0x3ba648(0x154)));return String(_0x1c26c3[_0x3ba648(0x108)]||_0x3ba648(0x121));}catch{return _0x3ba648(0x121);}}function readUpgradeState(){const _0x109cb5=a0_0x1e8305;try{return JSON[_0x109cb5(0x143)](fs[_0x109cb5(0x107)](upgradeStatePath(),_0x109cb5(0x154)));}catch{return null;}}function writeUpgradeState(_0x232abb){const _0x224fe3=a0_0x1e8305;try{fs['mkdirSync'](configDir(),{'recursive':!![]}),fs[_0x224fe3(0xd7)](upgradeStatePath(),JSON[_0x224fe3(0xe7)]({..._0x232abb,'updated_at':Date['now']()},null,0x2),_0x224fe3(0x154));}catch{}}function run(_0x5b17d8,_0xf7ae0e,_0x38bdae=process.env){return safeSpawnSync(_0x5b17d8,_0xf7ae0e,{'encoding':'utf8','timeout':NPM_INSTALL_TIMEOUT_MS,'maxBuffer':NPM_INSTALL_MAX_BUFFER,'env':_0x38bdae,'shell':![]});}function runNpmView(_0x32cc64){const _0x56a88c=a0_0x1e8305,_0x1e2afe=resolveExecutablePath('npm');if(!_0x1e2afe)return{'status':0x7f,'stdout':'','stderr':_0x56a88c(0xa6),'error':new Error(_0x56a88c(0xa6))};return safeSpawnSync(_0x1e2afe,_0x32cc64,{'encoding':'utf8','timeout':NPM_VIEW_TIMEOUT_MS,'maxBuffer':0x400*0x400,'env':process.env,'shell':![]});}function npmRootGlobal(){const _0x2e7d29=a0_0x1e8305,_0x2e7cfb=resolveExecutablePath('npm');if(!_0x2e7cfb)return'';const _0x1d9106=run(_0x2e7cfb,[_0x2e7d29(0x99),'-g']);if(_0x1d9106['status']!==0x0)return'';return String(_0x1d9106[_0x2e7d29(0x151)]||'')['trim']();}function compareSemver(_0x36a01b,_0x10f5e3){const _0x43f887=a0_0x1e8305,_0x31e4b3=String(_0x36a01b||'')[_0x43f887(0x157)](/^v/,'')['split'](/[.-]/)[_0x43f887(0x136)](_0x501aeb=>Number[_0x43f887(0x7b)](_0x501aeb,0xa)||0x0),_0x65be00=String(_0x10f5e3||'')[_0x43f887(0x157)](/^v/,'')['split'](/[.-]/)[_0x43f887(0x136)](_0x4a8536=>Number[_0x43f887(0x7b)](_0x4a8536,0xa)||0x0);for(let _0x26e68c=0x0;_0x26e68c<Math['max'](_0x31e4b3[_0x43f887(0x163)],_0x65be00[_0x43f887(0x163)],0x3);_0x26e68c++){const _0x3cea30=_0x31e4b3[_0x26e68c]||0x0,_0x424177=_0x65be00[_0x26e68c]||0x0;if(_0x3cea30>_0x424177)return 0x1;if(_0x3cea30<_0x424177)return-0x1;}return 0x0;}function skipWrapperUpdateCheck(){const _0x3f4f6a=a0_0x1e8305,_0x6590a3=String(process.env.WHALENT_SKIP_UPDATE_CHECK||process.env.WHALENT_NO_UPDATE_CHECK||process.env.WHALENT_SKIP_WRAPPER_UPDATE||'')['trim']()[_0x3f4f6a(0x173)]();return _0x6590a3==='1'||_0x6590a3===_0x3f4f6a(0x16b)||_0x6590a3===_0x3f4f6a(0x150)||_0x6590a3==='on';}function latestWrapperVersion(_0x4fb27d){const _0xe5ca19=a0_0x1e8305;let _0x51887e={'version':'','registry':_0x4fb27d};for(const _0x200c74 of npmRegistryCandidates(_0x4fb27d)){const _0x1c7a98=runNpmView([_0xe5ca19(0x16e),WRAPPER_PKG_NAME+_0xe5ca19(0x7e),_0xe5ca19(0x108),npmRegistryArg(_0x200c74)]);if(_0x1c7a98['status']!==0x0)continue;const _0x5e4cb7=String(_0x1c7a98['stdout']||'')[_0xe5ca19(0x11c)]()[_0xe5ca19(0xe6)](/\r?\n/)['filter'](Boolean)[_0xe5ca19(0x15c)]()||'';_0x5e4cb7&&(!_0x51887e[_0xe5ca19(0x108)]||compareSemver(_0x5e4cb7,_0x51887e['version'])>0x0)&&(_0x51887e={'version':_0x5e4cb7,'registry':_0x200c74});}return _0x51887e;}function installWrapperVersion(_0x3727b7,_0x33fc48){const _0xc49506=a0_0x1e8305,_0x38355b=resolveExecutablePath('npm');if(!_0x38355b)return{'ok':![],'output':_0xc49506(0x14b)+'H'};const _0x40ff7f=run(_0x38355b,['install','-g',WRAPPER_PKG_NAME+'@'+_0x3727b7,npmRegistryArg(_0x33fc48)]),_0x5b0f95=((_0x40ff7f['stdout']||'')+'\x0a'+(_0x40ff7f[_0xc49506(0xc9)]||''))[_0xc49506(0x11c)]();return{'ok':_0x40ff7f[_0xc49506(0xb7)]===0x0,'output':_0x5b0f95};}async function maybeUpdateWrapper(_0x4af8f2,_0x2e00ea){const _0x914c95=a0_0x1e8305;if(skipWrapperUpdateCheck())return![];if(process.env.WHALENT_WRAPPER_UPDATE_ATTEMPTED)return![];const _0x385488=latestWrapperVersion(_0x2e00ea),_0x34a015=_0x385488[_0x914c95(0x108)];if(!_0x34a015||compareSemver(_0x34a015,WRAPPER_VERSION)<=0x0)return![];console['warn'](_0x914c95(0x124)+_0x914c95(0x15b)+WRAPPER_VERSION+_0x914c95(0x69)+_0x34a015),console['warn'](_0x914c95(0xb0)+'\x20'+WRAPPER_PKG_NAME+'@'+_0x34a015+'\x20from\x20'+_0x385488[_0x914c95(0xbf)]+('\x20before\x20starting\x20cor'+'e...'));const _0x5acd09=installWrapperVersion(_0x34a015,_0x385488['registry']);if(!_0x5acd09['ok']){console[_0x914c95(0x130)]('[wrapper]\x20wrapper\x20up'+'date\x20failed;\x20continu'+_0x914c95(0x106)+WRAPPER_VERSION);if(_0x5acd09[_0x914c95(0x120)])console[_0x914c95(0x130)](_0x5acd09[_0x914c95(0x120)]['split'](/\r?\n/)[_0x914c95(0x12d)](-0xc)['join']('\x0a'));return console[_0x914c95(0x130)]('[wrapper]\x20Manual\x20upd'+_0x914c95(0xf8)+npmInstallCommand(WRAPPER_PKG_NAME+'@'+_0x34a015,_0x385488[_0x914c95(0xbf)])),![];}process[_0x914c95(0x12c)]===_0x914c95(0x161)&&(console['warn']('[wrapper]\x20wrapper\x20up'+_0x914c95(0xe0)+_0x34a015+'.'),console['warn'](_0x914c95(0x156)+_0x914c95(0xd1)+'\x20the\x20updated\x20npm\x20shi'+'m\x20from\x20this\x20process.'),console[_0x914c95(0x130)]('[wrapper]\x20请重新输入上一条\x20w'+'halent\x20命令以使用新版本。'),process['exit'](0x0));console[_0x914c95(0x130)]('[wrapper]\x20wrapper\x20up'+_0x914c95(0xe0)+_0x34a015+_0x914c95(0x171));const _0x4a9cc8=process['argv'][0x1],_0x468167=(0x0,import_child_process3['spawnSync'])(process['execPath'],[_0x4a9cc8,..._0x4af8f2],{'stdio':_0x914c95(0xfa),'env':{...process.env,'WHALENT_WRAPPER_UPDATE_ATTEMPTED':_0x34a015},'shell':![]});process[_0x914c95(0x110)](_0x468167['status']??0x0);}function findCoreScript(){const _0x3caf0c=a0_0x1e8305,_0x90c19b=String(process.env.WHALENT_CORE_ENTRY||'')['trim'](),_0x5a8ee8=['1','true','yes','on']['includes'](String(process.env.WHALENT_FORCE_CORE_ENTRY||'')[_0x3caf0c(0x11c)]()['toLowerCase']());if(_0x90c19b&&_0x5a8ee8&&fs['existsSync'](_0x90c19b))return _0x90c19b;const _0x1117d1=[],_0x3ac18=_0x5a06dd=>{const _0x304e50=_0x3caf0c;if(fs[_0x304e50(0x8e)](_0x5a06dd)&&!_0x1117d1[_0x304e50(0x11d)](_0x5a06dd))_0x1117d1['push'](_0x5a06dd);};if(_0x90c19b)_0x3ac18(_0x90c19b);const _0x12e24e=npmRootGlobal();if(_0x12e24e){const _0x2f65df=path2['join'](_0x12e24e,'@whalent',_0x3caf0c(0x15e),_0x3caf0c(0xda),'index.cjs');_0x3ac18(_0x2f65df);}const _0x5b4f53=path2[_0x3caf0c(0x183)](wrapperBaseDir(),'core.cjs');_0x3ac18(_0x5b4f53);const _0x3a64d4=path2[_0x3caf0c(0x183)](wrapperBaseDir(),'..','packages','core','dist','index.cjs');_0x3ac18(_0x3a64d4);if(_0x1117d1['length']>0x0)return _0x1117d1['map']((_0x2c0346,_0xb0d75e)=>({'candidate':_0x2c0346,'index':_0xb0d75e,'version':coreVersion(_0x2c0346)}))['sort']((_0x4daa1e,_0x20dfe9)=>{const _0x11e0b3=_0x3caf0c,_0x16eeef=compareSemver(_0x20dfe9['version'],_0x4daa1e['version']);if(_0x16eeef!==0x0)return _0x16eeef;return _0x20dfe9['index']-_0x4daa1e[_0x11e0b3(0x9f)];})[0x0]['candidate'];throw new Error(_0x3caf0c(0x112)+'\x20not\x20found;\x20install\x20'+_0x3caf0c(0x81)+'or\x20rebuild\x20@whalent/'+_0x3caf0c(0x6f));}function coreVersion(_0x44a615=findCoreScript()){const _0x1586ce=a0_0x1e8305,_0x5477df=(0x0,import_child_process3['spawnSync'])(process['execPath'],[_0x44a615,_0x1586ce(0x11f)],{'encoding':'utf8','timeout':0x3a98,'env':{...process.env,'WHALENT_SKIP_UPDATE_CHECK':'1'},'shell':![]}),_0x263d5c=(_0x5477df[_0x1586ce(0x151)]||'')+'\x0a'+(_0x5477df['stderr']||'');return _0x263d5c[_0x1586ce(0x7a)](/(\d+\.\d+\.\d+(?:[-\w.]+)?)/)?.[0x1]||'';}function isExecutable(_0x23cc43){const _0x2d1aee=a0_0x1e8305;try{return fs[_0x2d1aee(0x14d)](_0x23cc43,fs[_0x2d1aee(0x8f)]['X_OK']),!![];}catch{return![];}}function shellQuote(_0x333839){const _0x1f018e=a0_0x1e8305;return'\x27'+_0x333839[_0x1f018e(0x157)](/'/g,_0x1f018e(0xaf))+'\x27';}function coreNodePtySpawnHelperPath(_0x69c91c){const _0x56dfd2=a0_0x1e8305;if(process[_0x56dfd2(0x12c)]!==_0x56dfd2(0xe9))return'';try{const _0x2051de=(0x0,import_module['createRequire'])(_0x69c91c),_0x39d946=_0x2051de[_0x56dfd2(0xdd)]('node-pty'),_0x392155=path2[_0x56dfd2(0xdd)](path2[_0x56dfd2(0x149)](_0x39d946),'..');return path2['join'](_0x392155,_0x56dfd2(0x172),'darwin-'+process[_0x56dfd2(0x181)],_0x56dfd2(0xb5));}catch{return'';}}function checkMacNodePtySpawnHelper(_0x2ac4c4){const _0x9d6088=a0_0x1e8305,_0x7f3be9=coreNodePtySpawnHelperPath(_0x2ac4c4);if(!_0x7f3be9||CHECKED_PTY_HELPERS[_0x9d6088(0x9c)](_0x7f3be9))return;CHECKED_PTY_HELPERS['add'](_0x7f3be9);if(!fs['existsSync'](_0x7f3be9)){console['warn'](_0x9d6088(0xf0)+'-pty\x20spawn-helper\x20no'+'t\x20found:\x20'+_0x7f3be9);return;}if(isExecutable(_0x7f3be9))return;try{const _0x3e02a6=fs[_0x9d6088(0xdc)](_0x7f3be9)['mode'];fs[_0x9d6088(0x101)](_0x7f3be9,_0x3e02a6|0x1ed);}catch{}if(isExecutable(_0x7f3be9)){console[_0x9d6088(0x130)](_0x9d6088(0xaa)+_0x9d6088(0xf1)+'per\x20executable\x20bit:\x20'+_0x7f3be9);return;}console[_0x9d6088(0x130)]('[wrapper]\x20macOS\x20node'+'-pty\x20spawn-helper\x20is'+'\x20not\x20executable:\x20'+_0x7f3be9),console[_0x9d6088(0x130)]('[wrapper]\x20Run\x20this\x20o'+'nce\x20to\x20fix\x20terminal/'+'PTY\x20startup:'),console[_0x9d6088(0x130)](_0x9d6088(0xd8)+shellQuote(_0x7f3be9)),console[_0x9d6088(0x130)](_0x9d6088(0xec)),console[_0x9d6088(0x130)](_0x9d6088(0xc1));}function printVersion(){const _0x569430=a0_0x1e8305;let _0x3bbf62='';try{_0x3bbf62=coreVersion();}catch{}console[_0x569430(0xca)]('whalent-agent\x20'+WRAPPER_VERSION),console[_0x569430(0xca)](_0x569430(0x117)+WRAPPER_VERSION),console['log'](_0x569430(0x93)+(_0x3bbf62||_0x569430(0x17c)));}function detectPersistenceContext(){const _0x190c23=a0_0x1e8305;let _0x29bb9d='';if(process.env.STY)_0x29bb9d=_0x190c23(0x105);else{if(process.env.TMUX)_0x29bb9d=_0x190c23(0xa3);else{if(process.env.INVOCATION_ID||process.env.SYSTEMD_EXEC_PID)_0x29bb9d='systemd';else{if(process.env.PM2_HOME)_0x29bb9d=_0x190c23(0x92);else process[_0x190c23(0x12c)]!==_0x190c23(0x161)&&typeof process['ppid']===_0x190c23(0xe8)&&process['ppid']===0x1&&(_0x29bb9d=_0x190c23(0x77));}}}return{'inSession':_0x29bb9d,'hasScreen':process['platform']==='win32'?![]:!!resolveExecutablePath(_0x190c23(0x105)),'hasTmux':process[_0x190c23(0x12c)]==='win32'?![]:!!resolveExecutablePath(_0x190c23(0xa3))};}function persistenceCheckSkipped(){const _0x3d2225=a0_0x1e8305,_0x3ece9f=String(process.env.WHALENT_SKIP_PERSISTENCE_CHECK||process.env.WHALENT_NO_PERSISTENCE_CHECK||'')[_0x3d2225(0x11c)]()[_0x3d2225(0x173)]();return _0x3ece9f==='1'||_0x3ece9f==='true'||_0x3ece9f==='yes'||_0x3ece9f==='on';}function persistenceInstallHint(){const _0x7f6da0=a0_0x1e8305,_0xf15abc=[];if(process[_0x7f6da0(0x12c)]===_0x7f6da0(0xe9))_0xf15abc['push'](_0x7f6da0(0x15d)+'\x20brew\x20install\x20screen');else process['platform']===_0x7f6da0(0x13c)&&(_0xf15abc[_0x7f6da0(0xba)](_0x7f6da0(0xb3)+_0x7f6da0(0x140)+'l\x20-y\x20screen'),_0xf15abc[_0x7f6da0(0xba)](_0x7f6da0(0x95)+'\x20sudo\x20yum\x20install\x20-y'+'\x20screen\x20\x20\x20\x20\x20#\x20or:\x20su'+'do\x20dnf\x20install\x20-y\x20sc'+_0x7f6da0(0x115)),_0xf15abc['push']('\x20\x20#\x20Alpine:\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x7f6da0(0x137)),_0xf15abc[_0x7f6da0(0xba)]('\x20\x20#\x20Arch:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20sudo\x20pacman\x20-S\x20scre'+'en'));return _0xf15abc['push']('\x20\x20#\x20Then\x20re-attach\x20i'+'nside\x20screen,\x20e.g.:\x20'+_0x7f6da0(0xb4)+'(run\x20\x27whalent\x27\x20insid'+'e)'),_0xf15abc;}var PERSISTENCE_PROMPT_TIMEOUT_MS=0x1388;async function confirmContinueWithoutPersistence(){const _0x18a71f=a0_0x1e8305;if(!process['stdin'][_0x18a71f(0xc4)])return!![];return new Promise(_0x300c08=>{const _0x28165d=_0x18a71f,_0x98eb69=readline[_0x28165d(0xad)]({'input':process['stdin'],'output':process[_0x28165d(0xc9)]});let _0x2a5ec4=![];const _0x25acad=_0xd749c5=>{const _0x373ab0=_0x28165d;if(_0x2a5ec4)return;_0x2a5ec4=!![];try{_0x98eb69[_0x373ab0(0xfe)]();}catch{}_0x300c08(_0xd749c5);},_0x127785=setTimeout(()=>{const _0x4b902b=_0x28165d;process['stderr'][_0x4b902b(0xbc)]('\x0a[wrapper]\x20无输入,默认继续启'+'动('+Math[_0x4b902b(0x7d)](PERSISTENCE_PROMPT_TIMEOUT_MS/0x3e8)+_0x4b902b(0x131)),_0x25acad(!![]);},PERSISTENCE_PROMPT_TIMEOUT_MS);if(typeof _0x127785[_0x28165d(0x14f)]==='function')_0x127785['unref']();_0x98eb69['on']('close',()=>{clearTimeout(_0x127785);}),_0x98eb69['on']('SIGINT',()=>{clearTimeout(_0x127785),_0x25acad(![]);}),_0x98eb69[_0x28165d(0xd5)](_0x28165d(0xf3)+'SSH\x20/\x20关闭终端会终止\x20daemon'+_0x28165d(0x113)+Math[_0x28165d(0x7d)](PERSISTENCE_PROMPT_TIMEOUT_MS/0x3e8)+'s\x20默认继续):\x20',_0x1662cc=>{clearTimeout(_0x127785);const _0xe41081=String(_0x1662cc||'')['trim']()['toLowerCase']();_0x25acad(!(_0xe41081==='n'||_0xe41081==='no'));});});}async function ensurePersistencePrompt(_0x9f9de1){const _0x379238=a0_0x1e8305;if(!shouldSupervise(_0x9f9de1))return;if(persistenceCheckSkipped())return;if(process[_0x379238(0x12c)]===_0x379238(0x161)){console['warn'](_0x379238(0x114)+_0x379238(0x8b)+_0x379238(0x10d)),console[_0x379238(0x130)](_0x379238(0x169)+_0x379238(0x9b)+_0x379238(0x176));return;}const _0x2a1a80=detectPersistenceContext();if(_0x2a1a80['inSession']===_0x379238(0x105)||_0x2a1a80[_0x379238(0xe5)]===_0x379238(0xa3)){console[_0x379238(0xca)](_0x379238(0xea)+_0x379238(0x17d)+_0x2a1a80[_0x379238(0xe5)]+'\x20会话中');return;}if(_0x2a1a80[_0x379238(0xe5)]==='systemd'||_0x2a1a80[_0x379238(0xe5)]===_0x379238(0x92)){console['log']('[wrapper]\x20终端保活\x20OK:检测'+'到\x20'+_0x2a1a80[_0x379238(0xe5)]+'\x20托管');return;}if(_0x2a1a80[_0x379238(0xa9)]||_0x2a1a80[_0x379238(0x126)]){const _0x5d5738=[_0x2a1a80[_0x379238(0xa9)]?'screen':'',_0x2a1a80['hasTmux']?_0x379238(0xa3):'']['filter'](Boolean)['join'](_0x379238(0x174));console['warn'](_0x379238(0x76)+_0x5d5738+_0x379238(0x10a)),console[_0x379238(0x130)](_0x379238(0x165)+'闭终端会终止\x20daemon。建议放进\x20s'+_0x379238(0x17e));if(_0x2a1a80[_0x379238(0xa9)])console[_0x379238(0x130)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20screen\x20'+_0x379238(0xc8)+_0x379238(0x188));if(_0x2a1a80[_0x379238(0x126)])console['warn']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20tmux\x20ne'+_0x379238(0x71));if(!process['stdin'][_0x379238(0xc4)]){console[_0x379238(0x130)](_0x379238(0xf6)+_0x379238(0xdf)+_0x379238(0x10f)),console['warn'](_0x379238(0x16f)+_0x379238(0x16d)+_0x379238(0x15a));return;}const _0x18a952=await confirmContinueWithoutPersistence();!_0x18a952&&(console[_0x379238(0x130)]('[wrapper]\x20已按用户要求取消启动'+'。'),console['warn']('[wrapper]\x20请在\x20screen\x20'+_0x379238(0x100)+_0x379238(0xae)+_0x379238(0xe4)),process[_0x379238(0x110)](0x0));return;}console[_0x379238(0x130)]('[wrapper]\x20未检测到\x20scree'+'n\x20/\x20tmux。'),console[_0x379238(0x130)]('[wrapper]\x20一旦断开\x20SSH\x20或'+_0x379238(0xee)+_0x379238(0x103)),console['warn'](_0x379238(0x87)+_0x379238(0x180));for(const _0x4b3637 of persistenceInstallHint())console['warn'](_0x4b3637);if(!process['stdin'][_0x379238(0xc4)]){console['warn'](_0x379238(0xf6)+_0x379238(0xdf)+_0x379238(0x10f)),console[_0x379238(0x130)]('[wrapper]\x20若想抑制此告警,可设'+'置\x20WHALENT_SKIP_PERSI'+'STENCE_CHECK=1。');return;}const _0x20826f=await confirmContinueWithoutPersistence();!_0x20826f&&(console['warn']('[wrapper]\x20已按用户要求取消启动'+'。'),console['warn']('[wrapper]\x20安装\x20screen\x20'+'后重跑:screen\x20-S\x20whalen'+'t\x20→\x20在\x20screen\x20里\x20whale'+'nt'),console['warn'](_0x379238(0x109)+_0x379238(0x12a)+'HECK=1\x20强制跳过此检查。'),process['exit'](0x0));}function directCore(_0x2b5e08){const _0x1ec4cf=a0_0x1e8305,_0x20d83a=findCoreScript();checkMacNodePtySpawnHelper(_0x20d83a);const _0x490bdd=(0x0,import_child_process3['spawnSync'])(process[_0x1ec4cf(0xc0)],[_0x20d83a,..._0x2b5e08],{'stdio':'inherit','env':{...process.env,'WHALENT_WRAPPER_VERSION':WRAPPER_VERSION,'WHALENT_CORE_ENTRY':_0x20d83a},'shell':![]});process['exit'](_0x490bdd[_0x1ec4cf(0xb7)]??0x0);}function shouldSupervise(_0x33be3e){const _0x37983c=a0_0x1e8305;if(_0x33be3e['includes']('--agent-id'))return![];if(_0x33be3e['includes']('--resume')||_0x33be3e[0x0]==='resume')return![];const _0x4f0933=_0x33be3e[0x0]||'';if(_0x4f0933==='ls'||_0x4f0933===_0x37983c(0xb7)||_0x4f0933==='ps')return![];if(_0x4f0933===_0x37983c(0x13a)||_0x4f0933===_0x37983c(0x155))return![];if(_0x33be3e['includes'](_0x37983c(0xe1))||_0x33be3e['includes']('-h'))return![];return!![];}function installCoreVersion(_0x516017){const _0x3f9710=a0_0x1e8305,_0xe8e239=resolveExecutablePath('npm');if(!_0xe8e239)return{'ok':![],'output':'npm\x20not\x20found\x20on\x20PAT'+'H'};const _0x566b77=CORE_PKG_NAME+'@'+_0x516017,_0x5cc085=run(_0xe8e239,[_0x3f9710(0x89),'-g',_0x566b77,npmRegistryArg()]),_0x3557e3=((_0x5cc085[_0x3f9710(0x151)]||'')+'\x0a'+(_0x5cc085[_0x3f9710(0xc9)]||''))['trim']();return{'ok':_0x5cc085['status']===0x0,'output':_0x3557e3};}async function superviseCore(_0x140fe5){const _0x456f81=a0_0x1e8305;let _0x15dbc0=![],_0x2e612a=null;const _0x2cc2e6=[];let _0x30b300=MIN_RESTART_DELAY_MS;const _0x378151=()=>{const _0x3a1c2a=a0_0x2475;_0x15dbc0=!![];if(_0x2e612a&&!_0x2e612a['killed'])try{_0x2e612a['kill']('SIGTERM');}catch{}else process[_0x3a1c2a(0x110)](0x0);};process['on'](_0x456f81(0x14c),_0x378151),process['on'](_0x456f81(0xfc),_0x378151);while(!![]){const _0x57fb39=findCoreScript();checkMacNodePtySpawnHelper(_0x57fb39);const _0x34bb54={...process.env,'WHALENT_WRAPPER_VERSION':WRAPPER_VERSION,'WHALENT_WRAPPER_MANAGED':'1','WHALENT_CORE_ENTRY':_0x57fb39},_0x1dbc3d=readUpgradeState(),_0x3cbec6=!!_0x1dbc3d?.['pending'];let _0x4c9b7b=![],_0x87d996=null,_0x138100='';const _0x109b4b=[],_0x1d3625=0xc;console['log'](_0x456f81(0x139)+'ore:\x20'+_0x57fb39),_0x2e612a=(0x0,import_child_process3['spawn'])(process[_0x456f81(0xc0)],[_0x57fb39,..._0x140fe5],{'env':_0x34bb54,'stdio':['inherit',_0x456f81(0x98),_0x456f81(0x98)]});const _0x562988=()=>{const _0x20cc15=_0x456f81;if(_0x4c9b7b)return;_0x4c9b7b=!![];if(_0x87d996)clearTimeout(_0x87d996);_0x2cc2e6['length']=0x0,_0x30b300=MIN_RESTART_DELAY_MS;const _0x18d597=readUpgradeState();_0x18d597?.[_0x20cc15(0x7c)]&&(writeUpgradeState({..._0x18d597,'pending':![],'rollback':![],'health_status':'healthy'}),console[_0x20cc15(0xca)](_0x20cc15(0x80)+'de\x20healthy:\x20'+(_0x18d597['installed_version']||_0x18d597['target_version']||'')));},_0x4efd72=(_0x562225,_0x2ef462=![])=>{const _0x219b91=_0x456f81,_0x35bb9c=_0x562225[_0x219b91(0x148)]();(_0x2ef462?process[_0x219b91(0xc9)]:process['stdout'])['write'](_0x35bb9c);if(_0x2ef462)for(const _0xa145c8 of _0x35bb9c[_0x219b91(0xe6)](/\r?\n/)){if(!_0xa145c8[_0x219b91(0x11c)]())continue;_0x109b4b[_0x219b91(0xba)](_0xa145c8);if(_0x109b4b['length']>_0x1d3625)_0x109b4b[_0x219b91(0x17f)]();const _0x584ac5=_0xa145c8[_0x219b91(0x7a)](FATAL_PATTERN);if(_0x584ac5)_0x138100=_0x584ac5[0x0];}(_0x35bb9c['includes']('[gateway]\x20Connected')||_0x35bb9c['includes']('Gateway\x20registered\x20m'+_0x219b91(0xc6))||_0x35bb9c[_0x219b91(0x11d)]('Gateway:\x20connected'))&&_0x562988();};_0x2e612a[_0x456f81(0x151)]?.['on'](_0x456f81(0x158),_0x35b9e8=>_0x4efd72(_0x35b9e8,![])),_0x2e612a[_0x456f81(0xc9)]?.['on']('data',_0x436daa=>_0x4efd72(_0x436daa,!![]));_0x3cbec6&&(_0x87d996=setTimeout(()=>{const _0x4c309d=_0x456f81;if(_0x4c9b7b||!_0x2e612a||_0x2e612a[_0x4c309d(0xab)])return;console['error']('[wrapper]\x20new\x20core\x20d'+_0x4c309d(0xf7)+'y\x20in\x20time;\x20rolling\x20b'+_0x4c309d(0x9e));try{_0x2e612a[_0x4c309d(0xd4)](_0x4c309d(0xfc));}catch{}},HEALTH_TIMEOUT_MS));const _0x163dc8=await new Promise(_0x3c9a24=>{const _0x2f355f=_0x456f81;_0x2e612a[_0x2f355f(0x170)]('exit',(_0x1ee22c,_0x5cd8b1)=>_0x3c9a24({'code':_0x1ee22c,'signal':_0x5cd8b1}));});if(_0x87d996)clearTimeout(_0x87d996);_0x2e612a=null;if(_0x15dbc0)process['exit'](_0x163dc8[_0x456f81(0x128)]??0x0);const _0x5aea10=readUpgradeState();_0x163dc8[_0x456f81(0x128)]===DAEMON_REPLACED_EXIT_CODE&&(console[_0x456f81(0xca)](_0x456f81(0x153)+_0x456f81(0x83)+'mon\x20on\x20the\x20same\x20user'+'+machine;\x20wrapper\x20ex'+_0x456f81(0x12f)),process[_0x456f81(0x110)](0x0));if(_0x5aea10?.[_0x456f81(0x7c)]&&!_0x4c9b7b){const _0x786c1d=String(_0x5aea10['previous_core_versio'+'n']||'')[_0x456f81(0x11c)]();if(_0x786c1d){console[_0x456f81(0x133)]('[wrapper]\x20rolling\x20ba'+_0x456f81(0xbe)+_0x786c1d);const _0x5df77d=installCoreVersion(_0x786c1d);writeUpgradeState({..._0x5aea10,'pending':![],'rollback':!![],'health_status':_0x5df77d['ok']?_0x456f81(0x90):_0x456f81(0xcf),'error':_0x5df77d['ok']?'':_0x5df77d['output']});}else writeUpgradeState({..._0x5aea10,'pending':![],'rollback':!![],'health_status':_0x456f81(0x15f),'error':_0x456f81(0x9d)+'n\x20unknown'});}const _0x17d47f=_0x163dc8[_0x456f81(0x128)]===SUPERVISED_RESTART_CODE||_0x5aea10?.['pending'];if(!_0x17d47f&&_0x163dc8[_0x456f81(0x128)]===0x0)process[_0x456f81(0x110)](0x0);const _0x4cb587=Date[_0x456f81(0x8a)]();_0x2cc2e6['push'](_0x4cb587);while(_0x2cc2e6[_0x456f81(0x163)]>0x0&&_0x4cb587-_0x2cc2e6[0x0]>CRASH_WINDOW_MS){_0x2cc2e6[_0x456f81(0x17f)]();}const _0x219585=_0x2cc2e6[_0x456f81(0x163)];writeLastCrash({'timestamp':_0x4cb587,'exit_code':_0x163dc8[_0x456f81(0x128)],'exit_signal':_0x163dc8[_0x456f81(0xce)]||null,'fatal_line':_0x138100,'raw_tail':_0x109b4b['join']('\x0a'),'consecutive_crashes':_0x219585}),console['log'](_0x456f81(0xd2)+_0x456f81(0x17b)+(_0x163dc8['code']??'')+(_0x163dc8['signal']?'\x20signal='+_0x163dc8[_0x456f81(0xce)]:'')+'\x20('+_0x219585+'/'+MAX_CRASHES_IN_WINDOW+'\x20in\x20last\x20'+Math['round'](CRASH_WINDOW_MS/0x3e8)+'s)');if(_0x138100)console['log'](_0x456f81(0x138)+':\x20'+_0x138100);_0x219585>=MAX_CRASHES_IN_WINDOW&&(console[_0x456f81(0x133)]('[wrapper]\x20core\x20faile'+'d\x20'+_0x219585+_0x456f81(0xbd)+Math[_0x456f81(0x7d)](CRASH_WINDOW_MS/0x3e8)+(_0x456f81(0xcb)+_0x456f81(0xfd))+lastCrashFilePath()+(_0x456f81(0x116)+_0x456f81(0xc5)+_0x456f81(0x11a)+_0x456f81(0x73))),process['exit'](0x1)),console['log']('[wrapper]\x20restarting'+_0x456f81(0x13b)+_0x30b300+'ms'),await new Promise(_0x5cb493=>setTimeout(_0x5cb493,_0x30b300)),_0x30b300=Math['min'](_0x30b300*0x2,MAX_RESTART_DELAY_MS);}}async function main(){const _0x3db41f=a0_0x1e8305,_0x64c7e3=normalizeCliArgv(process[_0x3db41f(0xa2)]['slice'](0x2));if(_0x64c7e3[0x0]==='--version'||_0x64c7e3[0x0]==='-v'||_0x64c7e3[0x0]===_0x3db41f(0x108)){printVersion();return;}if((_0x64c7e3[0x0]==='status'||_0x64c7e3[0x0]==='ls'||_0x64c7e3[0x0]==='ps')&&!_0x64c7e3['includes'](_0x3db41f(0x68))){console[_0x3db41f(0xca)]('wrapper\x20'+WRAPPER_VERSION);try{console[_0x3db41f(0xca)](_0x3db41f(0x93)+(coreVersion()||_0x3db41f(0x17c)));}catch{console['log'](_0x3db41f(0x162));}}const _0x378119=await selectFastNpmRegistry();await maybeUpdateWrapper(_0x64c7e3,_0x378119),await ensurePersistencePrompt(_0x64c7e3);if(!shouldSupervise(_0x64c7e3))directCore(_0x64c7e3);await superviseCore(_0x64c7e3);}main()['catch'](_0x4271a4=>{const _0x2e7d36=a0_0x1e8305;console[_0x2e7d36(0x133)](_0x2e7d36(0xc3)+_0x2e7d36(0xd9)+(_0x4271a4?.[_0x2e7d36(0xdb)]||String(_0x4271a4))),process['exit'](0x1);});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whalent/agent",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.175",
|
|
4
4
|
"description": "Stable wrapper for Whalent Agent core runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"yaml": "^2.4.0"
|
|
46
46
|
},
|
|
47
47
|
"optionalDependencies": {
|
|
48
|
-
"@whalent/agent-core": "0.3.
|
|
48
|
+
"@whalent/agent-core": "0.3.175",
|
|
49
49
|
"node-pty": "^1.1.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|