cc-ding 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- 'use strict';const a11_0x29bf8e=a11_0x52ad;(function(_0x41193f,_0x5e971a){const _0x1aa97f=a11_0x52ad,_0x4b5a9a=_0x41193f();while(!![]){try{const _0x174864=parseInt(_0x1aa97f(0x255))/0x1+parseInt(_0x1aa97f(0x287))/0x2+parseInt(_0x1aa97f(0x1df))/0x3+-parseInt(_0x1aa97f(0x208))/0x4+-parseInt(_0x1aa97f(0x1cb))/0x5*(-parseInt(_0x1aa97f(0x273))/0x6)+parseInt(_0x1aa97f(0x1c4))/0x7*(parseInt(_0x1aa97f(0x266))/0x8)+parseInt(_0x1aa97f(0x249))/0x9*(-parseInt(_0x1aa97f(0x1cc))/0xa);if(_0x174864===_0x5e971a)break;else _0x4b5a9a['push'](_0x4b5a9a['shift']());}catch(_0x477bbc){_0x4b5a9a['push'](_0x4b5a9a['shift']());}}}(a11_0x2148,0xef370));var __importDefault=this&&this['__importDefault']||function(_0x49bf47){return _0x49bf47&&_0x49bf47['__esModule']?_0x49bf47:{'default':_0x49bf47};};Object['defineProperty'](exports,a11_0x29bf8e(0x224),{'value':!![]}),exports[a11_0x29bf8e(0x233)]=timestamp,exports[a11_0x29bf8e(0x213)]=getHomeDir,exports[a11_0x29bf8e(0x1ed)]=getClientDir,exports[a11_0x29bf8e(0x228)]=initClientDir,exports[a11_0x29bf8e(0x258)]=ensureClientDir,exports[a11_0x29bf8e(0x23e)]=getClientConfig,exports[a11_0x29bf8e(0x262)]=resolveToUserId,exports[a11_0x29bf8e(0x1fe)]=authCheck,exports['isOwner']=isOwner,exports['debugLog']=debugLog,exports[a11_0x29bf8e(0x207)]=isMobile,exports[a11_0x29bf8e(0x1c0)]=getPhoneMapFile,exports[a11_0x29bf8e(0x25c)]=loadPhoneMap,exports[a11_0x29bf8e(0x21c)]=savePhoneMap,exports[a11_0x29bf8e(0x272)]=userIdToPhone,exports[a11_0x29bf8e(0x1f4)]=resolveUserId,exports[a11_0x29bf8e(0x21b)]=resolveAllPhonesInConfig,exports[a11_0x29bf8e(0x238)]=hashConversationId,exports[a11_0x29bf8e(0x263)]=getReplyWebhook,exports['getReplyConversationId']=getReplyConversationId,exports[a11_0x29bf8e(0x1ce)]=findActiveSession,exports['getConversationConfig']=getConversationConfig,exports[a11_0x29bf8e(0x270)]=getConversationDir,exports[a11_0x29bf8e(0x21a)]=getSessionsDir,exports['getTasksDir']=getTasksDir,exports['getImagesDir']=getImagesDir,exports[a11_0x29bf8e(0x27f)]=getSessionDir,exports[a11_0x29bf8e(0x21e)]=getSessionId,exports[a11_0x29bf8e(0x23d)]=formatSessionInfo,exports[a11_0x29bf8e(0x1e4)]=readSessionLogTail,exports[a11_0x29bf8e(0x1eb)]=findHistorySession,exports['findLatestSession']=findLatestSession,exports['updateSessionFile']=updateSessionFile,exports[a11_0x29bf8e(0x240)]=appendSessionLog,exports[a11_0x29bf8e(0x1d1)]=getActiveSessionsFile,exports[a11_0x29bf8e(0x1c2)]=saveActiveSession,exports['loadActiveSessions']=loadActiveSessions,exports['endSession']=endSession,exports[a11_0x29bf8e(0x210)]=switchToSession,exports[a11_0x29bf8e(0x1dc)]=startNewSession,exports[a11_0x29bf8e(0x283)]=handleSessionMessage,exports['cleanCache']=cleanCache;const utils_ok_1=require(a11_0x29bf8e(0x245)),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require(a11_0x29bf8e(0x23b))),crypto_1=__importDefault(require(a11_0x29bf8e(0x202))),path_1=__importDefault(require(a11_0x29bf8e(0x254))),commands_1=require(a11_0x29bf8e(0x1de)),messaging_1=require('./messaging'),claude_process_1=require('./claude-process');function timestamp(){const _0x30f580=a11_0x29bf8e;return utils_ok_1[_0x30f580(0x222)]['mm'](Date[_0x30f580(0x20e)]())[_0x30f580(0x1f8)](_0x30f580(0x21d));}function getHomeDir(){const _0x575d90=a11_0x29bf8e;return os_1[_0x575d90(0x1f1)][_0x575d90(0x20c)]();}function getClientDir(_0x4ff939){const _0x379cf3=a11_0x29bf8e;return path_1[_0x379cf3(0x1f1)][_0x379cf3(0x257)](getHomeDir(),_0x379cf3(0x1e6),_0x4ff939[_0x379cf3(0x1c3)]);}function initClientDir(_0x4483ca,_0x4c2bfd){const _0x3887fb=a11_0x29bf8e,_0x442b85=path_1[_0x3887fb(0x1f1)][_0x3887fb(0x257)](getHomeDir(),_0x3887fb(0x1e6),_0x4483ca),_0x4bef28=path_1[_0x3887fb(0x1f1)][_0x3887fb(0x257)](_0x442b85,_0x3887fb(0x26c));return fs_1[_0x3887fb(0x1f1)][_0x3887fb(0x1c7)](_0x442b85,{'recursive':!![]}),fs_1[_0x3887fb(0x1f1)][_0x3887fb(0x26a)](_0x4bef28,JSON[_0x3887fb(0x201)](_0x4c2bfd,null,0x2),_0x3887fb(0x281)),_0x4bef28;}function ensureClientDir(_0x1bbc51){const _0x137b87=a11_0x29bf8e,_0xf981ce=path_1[_0x137b87(0x1f1)]['join'](getHomeDir(),'.cc-ding',_0x1bbc51),_0x729cc2=path_1[_0x137b87(0x1f1)][_0x137b87(0x257)](_0xf981ce,_0x137b87(0x26c));if(fs_1[_0x137b87(0x1f1)]['existsSync'](_0x729cc2))return;console[_0x137b87(0x22f)]('['+timestamp()+_0x137b87(0x24c)+_0xf981ce),console[_0x137b87(0x22f)]('['+timestamp()+_0x137b87(0x25f));const _0x393a2f={'clientName':_0x137b87(0x268),'owner':_0x137b87(0x1dd),'whiteUserList':[],'clientSecret':_0x137b87(0x282),'defaultDingToken':_0x137b87(0x23a),'conversations':[]};initClientDir(_0x1bbc51,_0x393a2f),console['log']('['+timestamp()+']\x20已生成默认配置文件:\x20'+_0x729cc2),console[_0x137b87(0x22f)]('['+timestamp()+_0x137b87(0x1fc)),process['exit'](0x1);}function getClientConfig(_0x4ac372){const _0x4ab1c2=a11_0x29bf8e,_0x25f259=getClientDir(_0x4ac372)+_0x4ab1c2(0x1ee);(0x0,assert_1['default'])(fs_1[_0x4ab1c2(0x1f1)]['existsSync'](_0x25f259),'Could\x20not\x20find\x20client\x20config\x20file:\x20'+_0x25f259);const _0x279c28=utils_ok_1[_0x4ab1c2(0x23c)][_0x4ab1c2(0x1fb)](_0x25f259);return(0x0,assert_1[_0x4ab1c2(0x1f1)])(_0x279c28['clientSecret'],'config.json\x20missing\x20required\x20field:\x20clientSecret'),(0x0,assert_1[_0x4ab1c2(0x1f1)])(_0x279c28[_0x4ab1c2(0x232)],_0x4ab1c2(0x1e8)),_0x279c28;}function resolveToUserId(_0x5e5b34,_0x2a9dda){const _0x18d79f=a11_0x29bf8e;return isMobile(_0x2a9dda)?_0x5e5b34[_0x18d79f(0x209)][_0x2a9dda]||_0x2a9dda:_0x2a9dda;}function authCheck(_0x339094,_0x728201,_0x148ec3){const _0x2b5339=a11_0x29bf8e;if(_0x148ec3){const _0x2f211f=_0x339094[_0x2b5339(0x226)][_0x2b5339(0x1be)]['find'](_0x31dff4=>_0x31dff4['conversationId']===_0x148ec3);if(_0x2f211f?.[_0x2b5339(0x232)]&&_0x2f211f[_0x2b5339(0x232)][_0x2b5339(0x215)]>0x0)return _0x2f211f[_0x2b5339(0x232)][_0x2b5339(0x252)](_0xc3c0bc=>resolveToUserId(_0x339094,_0xc3c0bc)===_0x728201);}return _0x339094[_0x2b5339(0x226)][_0x2b5339(0x232)][_0x2b5339(0x252)](_0x7896f0=>resolveToUserId(_0x339094,_0x7896f0)===_0x728201);}function isOwner(_0x2999b7,_0x4fa130){const _0x2a8a93=a11_0x29bf8e,_0x382f73=_0x2999b7['config']['owner'];if(!_0x382f73||!isMobile(_0x382f73))return![];const _0x4d53dc=_0x2999b7[_0x2a8a93(0x209)][_0x382f73];return!!_0x4d53dc&&_0x4d53dc===_0x4fa130;}function debugLog(_0x370a84,_0x4b3c7a,..._0xf402f3){const _0x16758f=a11_0x29bf8e;_0x370a84[_0x16758f(0x226)][_0x16758f(0x24d)]&&console['log'](_0x16758f(0x1d7)+_0x4b3c7a,..._0xf402f3);}const PHONE_RE=/^1\d{10}$/;function isMobile(_0x1111ee){const _0x1e1113=a11_0x29bf8e;return PHONE_RE[_0x1e1113(0x20f)](_0x1111ee);}function getPhoneMapFile(_0x2cbbe2){const _0x6327a6=a11_0x29bf8e;return path_1['default'][_0x6327a6(0x257)](getClientDir(_0x2cbbe2),_0x6327a6(0x20d));}function loadPhoneMap(_0x28b4b3){const _0x408edc=a11_0x29bf8e,_0x35503e=getPhoneMapFile(_0x28b4b3);if(!fs_1[_0x408edc(0x1f1)][_0x408edc(0x1f3)](_0x35503e))return{};try{const _0x2974da=JSON['parse'](fs_1[_0x408edc(0x1f1)][_0x408edc(0x220)](_0x35503e,_0x408edc(0x281)));if(typeof _0x2974da==='object'&&_0x2974da!==null)return _0x2974da;}catch{}return{};}function savePhoneMap(_0x4fd751,_0x3a356c){const _0x40ba0a=a11_0x29bf8e,_0x4ce467=getPhoneMapFile(_0x4fd751);try{fs_1[_0x40ba0a(0x1f1)][_0x40ba0a(0x26a)](_0x4ce467,JSON['stringify'](_0x3a356c,null,0x2),'utf-8');}catch(_0x5405be){console[_0x40ba0a(0x261)](_0x40ba0a(0x1d2),_0x5405be);}}function userIdToPhone(_0x21c8b5,_0x1161b0){const _0x190699=a11_0x29bf8e;for(const [_0x3b720a,_0x36f9b0]of Object[_0x190699(0x27c)](_0x21c8b5[_0x190699(0x209)])){if(_0x36f9b0===_0x1161b0)return _0x3b720a;}return null;}async function resolveUserId(_0x3aa2d2,_0x38a9ca){const _0x1c9391=a11_0x29bf8e;if(!_0x38a9ca)return null;if(!isMobile(_0x38a9ca))return _0x38a9ca;if(_0x3aa2d2[_0x1c9391(0x209)][_0x38a9ca])return _0x3aa2d2['resolvedPhones'][_0x38a9ca];const _0x22a64c=await(0x0,messaging_1[_0x1c9391(0x22a)])(_0x3aa2d2,_0x38a9ca);return _0x22a64c&&(_0x3aa2d2[_0x1c9391(0x209)][_0x38a9ca]=_0x22a64c,savePhoneMap(_0x3aa2d2,_0x3aa2d2['resolvedPhones'])),_0x22a64c;}async function resolveAllPhonesInConfig(_0x3324fb){const _0x168a5a=a11_0x29bf8e;_0x3324fb[_0x168a5a(0x209)]=loadPhoneMap(_0x3324fb);const _0x1814de=[],_0x251e2f=async _0x4eeffb=>{const _0x5de617=_0x168a5a;if(_0x3324fb[_0x5de617(0x209)][_0x4eeffb])return;const _0x4f63c6=await(0x0,messaging_1[_0x5de617(0x22a)])(_0x3324fb,_0x4eeffb);_0x4f63c6&&(_0x3324fb[_0x5de617(0x209)][_0x4eeffb]=_0x4f63c6,_0x1814de[_0x5de617(0x235)](_0x4eeffb));};_0x3324fb['config'][_0x168a5a(0x218)]&&(isMobile(_0x3324fb[_0x168a5a(0x226)][_0x168a5a(0x218)])?(await _0x251e2f(_0x3324fb[_0x168a5a(0x226)]['owner']),!_0x3324fb['resolvedPhones'][_0x3324fb['config']['owner']]&&console[_0x168a5a(0x203)]('[WARN]\x20无法解析\x20owner\x20手机号:\x20'+_0x3324fb[_0x168a5a(0x226)][_0x168a5a(0x218)])):console[_0x168a5a(0x203)](_0x168a5a(0x211)+_0x3324fb[_0x168a5a(0x226)][_0x168a5a(0x218)]));for(const _0x1937bd of _0x3324fb[_0x168a5a(0x226)]['whiteUserList']){isMobile(_0x1937bd)&&(await _0x251e2f(_0x1937bd),!_0x3324fb[_0x168a5a(0x209)][_0x1937bd]&&console['warn']('[WARN]\x20无法解析\x20whiteUserList\x20手机号:\x20'+_0x1937bd));}for(const _0x1dac4a of _0x3324fb[_0x168a5a(0x226)]['conversations']){if(_0x1dac4a[_0x168a5a(0x232)])for(const _0x7f76ca of _0x1dac4a[_0x168a5a(0x232)]){isMobile(_0x7f76ca)&&(await _0x251e2f(_0x7f76ca),!_0x3324fb['resolvedPhones'][_0x7f76ca]&&console[_0x168a5a(0x203)](_0x168a5a(0x1e7)+_0x7f76ca));}}_0x1814de[_0x168a5a(0x215)]>0x0&&savePhoneMap(_0x3324fb,_0x3324fb[_0x168a5a(0x209)]),console[_0x168a5a(0x22f)](_0x168a5a(0x20b)+Object[_0x168a5a(0x1d8)](_0x3324fb[_0x168a5a(0x209)])[_0x168a5a(0x215)]+_0x168a5a(0x27d)+_0x1814de[_0x168a5a(0x215)]+_0x168a5a(0x1fd));}function hashConversationId(_0x3d3afa,_0x356c15){const _0x4b505f=a11_0x29bf8e,_0x7a69aa=getConversationConfig(_0x3d3afa,_0x356c15),_0x35bc62=_0x7a69aa[_0x4b505f(0x27b)]||_0x356c15;return crypto_1[_0x4b505f(0x1f1)]['createHash'](_0x4b505f(0x1ff))[_0x4b505f(0x271)](_0x35bc62)[_0x4b505f(0x244)](_0x4b505f(0x264));}function getReplyWebhook(_0x12f56c){const _0x1d7ebf=a11_0x29bf8e;return _0x12f56c[_0x1d7ebf(0x22d)]||_0x12f56c['sessionWebhook'];}function getReplyConversationId(_0x4a82fa){const _0xd0acb1=a11_0x29bf8e;return _0x4a82fa[_0xd0acb1(0x24e)]||_0x4a82fa[_0xd0acb1(0x223)];}function findActiveSession(_0xdca347,_0x59cbc8){const _0x4e1ec0=a11_0x29bf8e,_0x4ff449=_0xdca347[_0x4e1ec0(0x248)]['get'](_0x59cbc8);if(_0x4ff449)return{'key':_0x59cbc8,'session':_0x4ff449};const _0x1c667d=getConversationConfig(_0xdca347,_0x59cbc8);if(_0x1c667d?.[_0x4e1ec0(0x27b)])for(const _0x7068d0 of _0xdca347[_0x4e1ec0(0x248)]){const _0x2a4e76=getConversationConfig(_0xdca347,_0x7068d0[0x0]);if(_0x2a4e76?.[_0x4e1ec0(0x27b)]===_0x1c667d['linkConversationId'])return{'key':_0x7068d0[0x0],'session':_0x7068d0[0x1]};}return undefined;}function getConversationConfig(_0x35002d,_0x17ba3c){const _0x385550=a11_0x29bf8e;return _0x35002d[_0x385550(0x226)][_0x385550(0x1be)][_0x385550(0x217)](_0x542d87=>_0x542d87['conversationId']===_0x17ba3c);}function getConversationDir(_0x565ff6,_0xfc0e31){const _0x506b94=hashConversationId(_0x565ff6,_0xfc0e31);return getClientDir(_0x565ff6)+'/'+_0x506b94;}function getSessionsDir(_0x3d21cc,_0x51fe4d){const _0x2c3457=a11_0x29bf8e;return getConversationDir(_0x3d21cc,_0x51fe4d)+_0x2c3457(0x1e0);}function getTasksDir(_0x5e2294,_0x5bfdaf){const _0x3025c9=a11_0x29bf8e;return getConversationDir(_0x5e2294,_0x5bfdaf)+_0x3025c9(0x216);}function getImagesDir(_0x57d768,_0x47885d){const _0x424cc6=a11_0x29bf8e;return getConversationDir(_0x57d768,_0x47885d)+_0x424cc6(0x1ca);}function getSessionDir(_0x312528,_0x597400){const _0xb8893f=a11_0x29bf8e,_0x539808=_0x597400[_0xb8893f(0x1d0)]||_0x597400[_0xb8893f(0x206)];return getSessionsDir(_0x312528,_0x597400['conversationId'])+'/'+_0x539808;}function getSessionId(_0xe316e5){const _0x280fc2=a11_0x29bf8e;return _0xe316e5[_0x280fc2(0x1d0)]||_0xe316e5[_0x280fc2(0x206)];}function formatSessionInfo(_0x3d1360,_0x349d3d){const _0x584717=a11_0x29bf8e,_0x510e24=findActiveSession(_0x3d1360,_0x349d3d);if(!_0x510e24)return null;const {session:_0x3b9c45,isProcessing:_0x492774}=_0x510e24[_0x584717(0x25b)],_0x4e8396=['-\x20**会话ID:**\x20'+getSessionId(_0x3b9c45),_0x584717(0x1d4)+_0x3b9c45[_0x584717(0x269)]+'('+_0x3b9c45[_0x584717(0x24f)]+')',_0x584717(0x284)+_0x3b9c45['startTimeStr'],_0x584717(0x20a)+_0x510e24[_0x584717(0x25b)]['lastSenderStaffId'],_0x584717(0x276)+_0x492774];return _0x4e8396['join']('\x0a');}function readSessionLogTail(_0x132426,_0x2a69ab,_0x2b00c2){const _0x501023=a11_0x29bf8e,_0x814842=findActiveSession(_0x132426,_0x2a69ab);if(!_0x814842)return null;const _0x178e47=_0x814842['session'],_0x3bb92a=getSessionDir(_0x132426,_0x178e47['session'])+_0x501023(0x1c8);if(!fs_1[_0x501023(0x1f1)][_0x501023(0x1f3)](_0x3bb92a))return null;try{const _0x3281d3=fs_1[_0x501023(0x1f1)]['readFileSync'](_0x3bb92a,'utf-8'),_0xf11552=_0x3281d3[_0x501023(0x225)]('\x0a')[_0x501023(0x237)](_0x4db0b6=>_0x4db0b6[_0x501023(0x215)]>0x0);return _0xf11552[_0x501023(0x22c)](-_0x2b00c2)['join']('\x0a');}catch{return null;}}function findHistorySession(_0x299a6d,_0x5d2f64,_0x5a2ddd){const _0x1393b3=a11_0x29bf8e,_0x5df951=getSessionsDir(_0x299a6d,_0x5d2f64),_0x399987=_0x5df951+'/'+_0x5a2ddd+'/session.json';try{return utils_ok_1[_0x1393b3(0x23c)][_0x1393b3(0x1fb)](_0x399987);}catch{}const _0x1891ce=parseInt(_0x5a2ddd,0xa);if(!isNaN(_0x1891ce)&&_0x1891ce>0x0){const _0x375eec=utils_ok_1[_0x1393b3(0x222)]['mm'](_0x1891ce)[_0x1393b3(0x1f8)](_0x1393b3(0x205)),_0x4815cf=_0x5df951+'/'+_0x375eec+_0x1393b3(0x26e);try{return utils_ok_1['fileUtil'][_0x1393b3(0x1fb)](_0x4815cf);}catch{}}return null;}function findLatestSession(_0x3f079b,_0x2c7254){const _0x44b6e7=a11_0x29bf8e,_0x44b24a=getSessionsDir(_0x3f079b,_0x2c7254);if(!fs_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x1f3)](_0x44b24a))return null;const _0x1b3d13=findActiveSession(_0x3f079b,_0x2c7254),_0x2bb9c9=_0x1b3d13?getSessionId(_0x1b3d13[_0x44b6e7(0x25b)]['session']):null;let _0x5b188d=null,_0x259994=0x0;try{const _0x57c7e0=fs_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x26b)](_0x44b24a,{'withFileTypes':!![]});for(const _0x1648c7 of _0x57c7e0){if(!_0x1648c7[_0x44b6e7(0x204)]())continue;const _0x448135=path_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x257)](_0x44b24a,_0x1648c7['name'],_0x44b6e7(0x1f0));if(!fs_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x1f3)](_0x448135))continue;try{const _0x3aafbd=utils_ok_1[_0x44b6e7(0x23c)][_0x44b6e7(0x1fb)](_0x448135);if(_0x2bb9c9&&getSessionId(_0x3aafbd)===_0x2bb9c9)continue;_0x3aafbd[_0x44b6e7(0x236)]>_0x259994&&(_0x259994=_0x3aafbd[_0x44b6e7(0x236)],_0x5b188d=_0x3aafbd);}catch{continue;}}}catch{}return _0x5b188d;}function a11_0x2148(){const _0x3188d2=['keys','unlinkSync','errors',',\x20有Claude上下文=','startNewSession','<owner手机号>','./commands','4221999vxmTAp','/.sessions','delete','executeClaudeQuery','读取sessions目录失败:\x20','readSessionLogTail','/active.json','.cc-ding','[WARN]\x20无法解析群白名单手机号:\x20','config.json\x20missing\x20required\x20field:\x20whiteUserList',',\x20当前并发=','恢复活跃会话:\x20群=','findHistorySession','切换会话时中断正在执行的\x20Claude\x20进程','getClientDir','/config.json','has','session.json','default','🤯\x20当前繁忙,请稍后再试...','existsSync','resolveUserId','message','toUpperCase','basename','format','dirname','(关联群,会话归属=','getJSON',']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动','\x20条新解析)','authCheck','md5','🔄\x20已恢复对话上下文','stringify','crypto','warn','isDirectory','YYYY-MM-DD-HH-mm-ss','startTimeStr','isMobile','3551616XtByjQ','resolvedPhones','-\x20**最后发送者:**\x20','[手机解析]\x20已加载\x20','homedir','phone-map.json','now','test','switchToSession','[WARN]\x20owner\x20必须为手机号,当前值无效:\x20',',\x20会话ID=','getHomeDir','追加消息到活跃会话:\x20群=','length','/.tasks','find','owner','加载活跃会话失败:\x20','getSessionsDir','resolveAllPhonesInConfig','savePhoneMap','YYYY-MM-DD\x20HH:mm:ss','getSessionId',',该会话可能已被清理,请发送新消息开始新会话','readFileSync','\x20->\x20','dateUtil','conversationId','__esModule','split','config','会话\x20','initClientDir','isProcessing','queryUserIdByMobile','删除活跃会话文件失败:\x20','slice','currentWebhook','set','log','sendDingMessage','切换会话,先结束当前会话:\x20','whiteUserList','timestamp','删除图片失败:\x20','push','startTime','filter','hashConversationId','✅\x20已切换到历史会话\x20(会话ID:\x20','<兜底钉钉机器人Token>','assert','fileUtil','formatSessionInfo','getClientConfig','sessionWebhook','appendSessionLog','删除会话目录失败:\x20','⏳\x20正在处理上一条消息,请稍候...','lastSenderStaffId','digest','utils-ok','结束会话时中断正在执行的\x20Claude\x20进程','💬\x20会话已结束\x0a📋\x20会话ID:\x20','activeSessions','18cZqTrG',']\x20[','size',']\x20客户端目录未初始化:\x20','debug','currentConversationId','startStaffId','❌\x20会话\x20','\x20无活跃会话','some','name','path','152933MztlSL',']\x20会话文件已保存:\x20','join','ensureClientDir','imagesDeleted','\x20的数据已被清理,无法继续。已自动结束该会话,请重新发送消息开始新会话','session','loadPhoneMap','读取images目录失败:\x20','结束会话:\x20群=',']\x20正在自动初始化...','parseEndCommand','error','resolveToUserId','getReplyWebhook','hex','删除任务目录失败:\x20','7669336VJIFgu','appendFileSync','cc助手','startNickName','writeFileSync','readdirSync','config.json','⚠️\x20该会话无历史上下文,将从头开始','/session.json','taskCfg','getConversationDir','update','userIdToPhone','674196bGgTxy','skill','达到最大并发数\x20(','-\x20**处理中:**\x20','创建新会话:\x20群=','更新\x20session.json\x20失败:','get','agent','linkConversationId','entries','\x20条记录\x20(','执行\x20Claude\x20查询失败:','getSessionDir','rmSync','utf-8','<clientSecret-钉钉Stream连接密钥>','handleSessionMessage','-\x20**开始时间:**\x20','sessionMaxConcurrency',']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','1660304BEGGCN','❌\x20处理消息时发生错误:\x20','conversations','❌\x20未找到会话\x20','getPhoneMapFile','sessionsDeleted','saveActiveSession','clientId','14JJhduB','tasksDeleted','DEFAULT_SESSION_MAX_CONCURRENCY','mkdirSync','/session.log','🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话','/.images','30kQucJn','15571100PgyQEQ','key','findActiveSession','interruptClaudeProcess','claudeSessionId','getActiveSessionsFile','保存\x20phone-map.json\x20失败:','\x0a💡\x20回复\x20/end\x20可结束本轮对话','-\x20**发起者:**\x20','活跃会话已持久化:\x20群=','renameSync','[DEBUG]\x20'];a11_0x2148=function(){return _0x3188d2;};return a11_0x2148();}function updateSessionFile(_0x5b877b,_0x366002,_0x346b26){const _0x4005e8=a11_0x29bf8e;if(_0x346b26[_0x4005e8(0x1d0)]&&!_0x366002[_0x4005e8(0x1d0)]){const _0x163dde=getSessionDir(_0x5b877b,_0x366002);_0x366002[_0x4005e8(0x1d0)]=_0x346b26['claudeSessionId'];const _0x2ec908=getSessionDir(_0x5b877b,_0x366002);_0x163dde!==_0x2ec908&&fs_1[_0x4005e8(0x1f1)][_0x4005e8(0x1f3)](_0x163dde)&&(fs_1['default'][_0x4005e8(0x1d6)](_0x163dde,_0x2ec908),console[_0x4005e8(0x22f)]('['+timestamp()+']\x20会话目录重命名:\x20'+path_1[_0x4005e8(0x1f1)][_0x4005e8(0x1f7)](_0x163dde)+_0x4005e8(0x221)+path_1[_0x4005e8(0x1f1)][_0x4005e8(0x1f7)](_0x2ec908)));}const _0x5b53c3=getSessionDir(_0x5b877b,_0x366002)+_0x4005e8(0x26e);try{if(_0x346b26[_0x4005e8(0x23f)])_0x366002[_0x4005e8(0x23f)]=_0x346b26[_0x4005e8(0x23f)];if(_0x346b26['currentWebhook']!==undefined)_0x366002[_0x4005e8(0x22d)]=_0x346b26['currentWebhook']||undefined;if(_0x346b26['currentConversationId']!==undefined)_0x366002['currentConversationId']=_0x346b26[_0x4005e8(0x24e)]||undefined;fs_1[_0x4005e8(0x1f1)][_0x4005e8(0x26a)](_0x5b53c3,JSON['stringify'](_0x366002,null,0x2),'utf-8');const _0x112ed6=_0x346b26['claudeSessionId']?_0x4005e8(0x1d0):_0x346b26[_0x4005e8(0x22d)]!==undefined?'currentWebhook':'sessionWebhook';console[_0x4005e8(0x22f)]('['+timestamp()+_0x4005e8(0x256)+_0x112ed6),saveActiveSession(_0x5b877b,_0x366002['conversationId']);}catch(_0x5a9088){console[_0x4005e8(0x261)](_0x4005e8(0x278),_0x5a9088);}}function appendSessionLog(_0x4e1591,_0x5bf61f,_0x34b810){const _0x4bbb2f=a11_0x29bf8e,_0x5655f2=_0x4e1591+_0x4bbb2f(0x1c8),_0x56b477=timestamp(),_0x2148cc='['+_0x56b477+_0x4bbb2f(0x24a)+_0x5bf61f[_0x4bbb2f(0x1f6)]()+']:\x20'+_0x34b810+'\x0a';fs_1[_0x4bbb2f(0x1f1)][_0x4bbb2f(0x267)](_0x5655f2,_0x2148cc,_0x4bbb2f(0x281));}function getActiveSessionsFile(_0x4704f1,_0x2a71ba){const _0xfb970a=a11_0x29bf8e;return getSessionsDir(_0x4704f1,_0x2a71ba)+_0xfb970a(0x1e5);}function saveActiveSession(_0x165609,_0x4dc2ff){const _0x1190be=a11_0x29bf8e,_0x1141c3=_0x165609[_0x1190be(0x248)][_0x1190be(0x279)](_0x4dc2ff),_0x208692=getActiveSessionsFile(_0x165609,_0x4dc2ff);try{if(!_0x1141c3){if(fs_1[_0x1190be(0x1f1)]['existsSync'](_0x208692))fs_1[_0x1190be(0x1f1)][_0x1190be(0x1d9)](_0x208692);return;}const _0x4109ff={'session':_0x1141c3[_0x1190be(0x25b)],'lastSenderStaffId':_0x1141c3[_0x1190be(0x243)],'conversationConfig':_0x1141c3['conversationConfig']};fs_1[_0x1190be(0x1f1)]['mkdirSync'](path_1[_0x1190be(0x1f1)][_0x1190be(0x1f9)](_0x208692),{'recursive':!![]}),fs_1[_0x1190be(0x1f1)][_0x1190be(0x26a)](_0x208692,JSON[_0x1190be(0x201)](_0x4109ff,null,0x2),_0x1190be(0x281)),debugLog(_0x165609,_0x1190be(0x1d5)+_0x4dc2ff);}catch(_0x2a78b4){console[_0x1190be(0x261)]('持久化活跃会话失败:\x20群='+_0x4dc2ff,_0x2a78b4);}}function loadActiveSessions(_0x39d168){const _0x10b6d4=a11_0x29bf8e;for(const _0x3d1c01 of _0x39d168[_0x10b6d4(0x226)]['conversations']){const _0x4b8452=getActiveSessionsFile(_0x39d168,_0x3d1c01[_0x10b6d4(0x223)]);if(!fs_1[_0x10b6d4(0x1f1)][_0x10b6d4(0x1f3)](_0x4b8452))continue;try{const _0x55f977=utils_ok_1[_0x10b6d4(0x23c)][_0x10b6d4(0x1fb)](_0x4b8452);if(!_0x55f977?.[_0x10b6d4(0x25b)]){console[_0x10b6d4(0x22f)]('活跃会话文件无效,跳过:\x20'+_0x4b8452);continue;}const _0x5ea1a6=getSessionDir(_0x39d168,_0x55f977[_0x10b6d4(0x25b)]);if(!fs_1[_0x10b6d4(0x1f1)]['existsSync'](_0x5ea1a6)){console[_0x10b6d4(0x22f)]('活跃会话目录已不存在,清理持久化文件:\x20'+_0x4b8452),fs_1[_0x10b6d4(0x1f1)][_0x10b6d4(0x1d9)](_0x4b8452);continue;}_0x39d168[_0x10b6d4(0x248)][_0x10b6d4(0x22e)](_0x3d1c01['conversationId'],{'session':_0x55f977[_0x10b6d4(0x25b)],'lastSenderStaffId':_0x55f977['lastSenderStaffId']||_0x55f977[_0x10b6d4(0x25b)][_0x10b6d4(0x24f)],'isProcessing':![],'conversationConfig':_0x55f977['conversationConfig']}),console[_0x10b6d4(0x22f)](_0x10b6d4(0x1ea)+_0x3d1c01['conversationId']+',\x20会话ID='+getSessionId(_0x55f977[_0x10b6d4(0x25b)]));}catch(_0x3c38a2){console[_0x10b6d4(0x261)](_0x10b6d4(0x219)+_0x4b8452,_0x3c38a2);}}}async function endSession(_0x47a7b3,_0x25c763,_0x297a3c){const _0x508fd6=a11_0x29bf8e,_0x11d661=findActiveSession(_0x47a7b3,_0x25c763);if(!_0x11d661){console['log']('群\x20'+_0x25c763+_0x508fd6(0x251));return;}const {key:_0x468b51,session:_0x5045e0}=_0x11d661,{session:_0x5dacc0}=_0x5045e0,_0x47dc60=getSessionDir(_0x47a7b3,_0x5dacc0),_0x16f6c9=getSessionId(_0x5dacc0);console[_0x508fd6(0x22f)](_0x508fd6(0x25e)+_0x25c763+_0x508fd6(0x212)+_0x16f6c9),(0x0,claude_process_1[_0x508fd6(0x1cf)])(_0x5045e0,_0x508fd6(0x246))&&fs_1['default']['appendFileSync'](_0x47dc60+'/session.log','['+timestamp()+_0x508fd6(0x286),_0x508fd6(0x281)),await(0x0,messaging_1['sendDingMessage'])(_0x47a7b3,{'conversationId':_0x25c763,'sessionWebhook':_0x297a3c,'atUserId':_0x5dacc0['startStaffId'],'content':_0x508fd6(0x247)+_0x16f6c9}),_0x47a7b3[_0x508fd6(0x248)][_0x508fd6(0x1e1)](_0x468b51),saveActiveSession(_0x47a7b3,_0x468b51),fs_1[_0x508fd6(0x1f1)][_0x508fd6(0x267)](_0x47dc60+_0x508fd6(0x1c8),'['+timestamp()+']\x20[SYSTEM]:\x20用户请求结束会话\x0a',_0x508fd6(0x281));}async function switchToSession(_0x44eccb,_0x28c4cf,_0x58e50a,_0x340170,_0x2dac02,_0x3d2a77){const _0x3dce65=a11_0x29bf8e,_0x32a2e7=findHistorySession(_0x44eccb,_0x28c4cf,_0x340170);if(!_0x32a2e7)return await(0x0,messaging_1[_0x3dce65(0x230)])(_0x44eccb,{'conversationId':_0x28c4cf,'sessionWebhook':_0x58e50a,'atUserId':_0x2dac02,'content':_0x3dce65(0x1bf)+_0x340170+_0x3dce65(0x21f)}),![];const _0x21fc17=getSessionDir(_0x44eccb,_0x32a2e7);if(!fs_1[_0x3dce65(0x1f1)][_0x3dce65(0x1f3)](_0x21fc17))return await(0x0,messaging_1[_0x3dce65(0x230)])(_0x44eccb,{'conversationId':_0x28c4cf,'sessionWebhook':_0x58e50a,'atUserId':_0x2dac02,'content':_0x3dce65(0x250)+_0x340170+'\x20的数据已被清理,无法恢复,请发送新消息开始新会话'}),![];const _0x36701a=findActiveSession(_0x44eccb,_0x28c4cf);_0x36701a&&(console['log'](_0x3dce65(0x231)+getSessionId(_0x36701a[_0x3dce65(0x25b)]['session'])),(0x0,claude_process_1['interruptClaudeProcess'])(_0x36701a[_0x3dce65(0x25b)],_0x3dce65(0x1ec)),_0x44eccb[_0x3dce65(0x248)][_0x3dce65(0x1e1)](_0x36701a['key']),saveActiveSession(_0x44eccb,_0x36701a[_0x3dce65(0x1cd)]),fs_1[_0x3dce65(0x1f1)][_0x3dce65(0x267)](getSessionDir(_0x44eccb,_0x36701a[_0x3dce65(0x25b)]['session'])+_0x3dce65(0x1c8),'['+timestamp()+']\x20[SYSTEM]:\x20会话被切换到\x20'+_0x340170+',结束当前会话\x0a',_0x3dce65(0x281)));_0x44eccb[_0x3dce65(0x248)][_0x3dce65(0x22e)](_0x28c4cf,{'session':_0x32a2e7,'lastSenderStaffId':_0x2dac02,'isProcessing':![],'conversationConfig':_0x3d2a77}),saveActiveSession(_0x44eccb,_0x28c4cf);const _0x4e0742=!!_0x32a2e7[_0x3dce65(0x1d0)],_0x3d53bf=getSessionId(_0x32a2e7);return await(0x0,messaging_1[_0x3dce65(0x230)])(_0x44eccb,{'conversationId':_0x28c4cf,'sessionWebhook':_0x58e50a,'atUserId':_0x2dac02,'content':_0x3dce65(0x239)+_0x3d53bf+')\x0a'+(_0x4e0742?_0x3dce65(0x200):_0x3dce65(0x26d))+_0x3dce65(0x1d3)}),console[_0x3dce65(0x22f)]('已切换到历史会话:\x20群='+_0x28c4cf+_0x3dce65(0x212)+_0x3d53bf+_0x3dce65(0x1db)+_0x4e0742),!![];}function a11_0x52ad(_0x41104a,_0x226ca4){_0x41104a=_0x41104a-0x1bd;const _0x2148e9=a11_0x2148();let _0x52ad0d=_0x2148e9[_0x41104a];return _0x52ad0d;}async function startNewSession(_0x19c350,_0x24a931){const _0x790828=a11_0x29bf8e,{conversationId:_0x277cf6,sessionWebhook:_0x4649e7,senderStaffId:_0xe96569,senderNick:_0x464073,message:_0xf8e321,conversationConfig:_0x450431}=_0x24a931,_0x586c11=_0x19c350[_0x790828(0x226)][_0x790828(0x285)]??_0x19c350[_0x790828(0x1c6)];if(_0x19c350[_0x790828(0x248)][_0x790828(0x24b)]>=_0x586c11){console[_0x790828(0x22f)](_0x790828(0x275)+_0x586c11+'),拒绝新会话:\x20群='+_0x277cf6),await(0x0,messaging_1['sendDingMessage'])(_0x19c350,{'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'atUserId':_0xe96569,'content':_0x790828(0x1f2)});return;}const _0x461c76=Date[_0x790828(0x20e)](),_0x4c0274={'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'startTime':_0x461c76,'startTimeStr':utils_ok_1[_0x790828(0x222)]['mm'](_0x461c76)[_0x790828(0x1f8)](_0x790828(0x205)),'startStaffId':_0xe96569,'startNickName':_0x464073};console[_0x790828(0x22f)](_0x790828(0x277)+_0x277cf6+_0x790828(0x212)+getSessionId(_0x4c0274)+',\x20发起者='+_0xe96569+_0x790828(0x1e9)+(_0x19c350[_0x790828(0x248)]['size']+0x1)+'/'+_0x586c11);const _0x48e1dd=getSessionDir(_0x19c350,_0x4c0274);fs_1[_0x790828(0x1f1)][_0x790828(0x1c7)](_0x48e1dd,{'recursive':!![]}),fs_1[_0x790828(0x1f1)]['writeFileSync'](_0x48e1dd+_0x790828(0x26e),JSON['stringify'](_0x4c0274,null,0x2),_0x790828(0x281)),_0x19c350[_0x790828(0x248)][_0x790828(0x22e)](_0x277cf6,{'session':_0x4c0274,'lastSenderStaffId':_0xe96569,'isProcessing':!![],'conversationConfig':_0x450431}),saveActiveSession(_0x19c350,_0x277cf6),await(0x0,messaging_1['sendDingMessage'])(_0x19c350,{'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'atUserId':_0xe96569,'content':_0x790828(0x1c9)});try{await(0x0,claude_process_1['executeClaudeQuery'])(_0x19c350,_0x4c0274,_0xf8e321,{'skill':_0x450431['taskCfg']?.['skill'],'agent':_0x450431[_0x790828(0x27a)],'senderNick':_0x464073,'senderStaffId':_0xe96569});}catch(_0x6a22c2){console[_0x790828(0x261)]('执行\x20Claude\x20查询失败:',_0x6a22c2),await(0x0,messaging_1[_0x790828(0x230)])(_0x19c350,{'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'atUserId':_0xe96569,'content':_0x790828(0x1bd)+(_0x6a22c2 instanceof Error?_0x6a22c2[_0x790828(0x1f5)]:String(_0x6a22c2))});}finally{const _0x35bcf4=_0x19c350['activeSessions'][_0x790828(0x279)](_0x277cf6);if(_0x35bcf4)_0x35bcf4[_0x790828(0x229)]=![];}}async function handleSessionMessage(_0x2894e8,_0x16573a){const _0x2a9f30=a11_0x29bf8e,{conversationId:_0x5ba97f,sessionWebhook:_0x33df3d,senderStaffId:_0x5ba1f7,senderNick:_0x976712,message:_0x312ccd,conversationConfig:_0x9fe711}=_0x16573a;if((0x0,commands_1[_0x2a9f30(0x260)])(_0x312ccd)){await endSession(_0x2894e8,_0x5ba97f,_0x33df3d);return;}const _0x473a36=findActiveSession(_0x2894e8,_0x5ba97f),_0x348725=_0x473a36?.[_0x2a9f30(0x25b)];if(_0x348725){const _0x54ce43=getSessionDir(_0x2894e8,_0x348725[_0x2a9f30(0x25b)]);if(!fs_1[_0x2a9f30(0x1f1)][_0x2a9f30(0x1f3)](_0x54ce43)){const _0x2701c9=getSessionId(_0x348725['session']);console[_0x2a9f30(0x22f)]('活跃会话目录已被清理:\x20群='+_0x5ba97f+',\x20会话ID='+_0x2701c9),_0x2894e8[_0x2a9f30(0x248)][_0x2a9f30(0x1e1)](_0x473a36[_0x2a9f30(0x1cd)]),saveActiveSession(_0x2894e8,_0x473a36[_0x2a9f30(0x1cd)]),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':'⚠️\x20会话\x20'+_0x2701c9+_0x2a9f30(0x25a)});return;}if(_0x348725[_0x2a9f30(0x229)]){console[_0x2a9f30(0x22f)](_0x2a9f30(0x227)+_0x5ba97f+'\x20正在处理中,忽略新消息'),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':_0x2a9f30(0x242)});return;}const _0x386dea=_0x348725['session'][_0x2a9f30(0x223)]===_0x5ba97f;console[_0x2a9f30(0x22f)](_0x2a9f30(0x214)+_0x5ba97f+_0x2a9f30(0x212)+getSessionId(_0x348725[_0x2a9f30(0x25b)])+(_0x386dea?'':_0x2a9f30(0x1fa)+_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x223)]+')')),_0x348725[_0x2a9f30(0x243)]=_0x5ba1f7,_0x348725[_0x2a9f30(0x229)]=!![],saveActiveSession(_0x2894e8,_0x473a36['key']);_0x386dea&&_0x33df3d!==_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x23f)]&&(_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x23f)]=_0x33df3d,updateSessionFile(_0x2894e8,_0x348725[_0x2a9f30(0x25b)],{'sessionWebhook':_0x33df3d}));_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x22d)]=_0x33df3d,_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x24e)]=_0x5ba97f,updateSessionFile(_0x2894e8,_0x348725[_0x2a9f30(0x25b)],{'currentWebhook':_0x33df3d,'currentConversationId':_0x5ba97f}),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':'✅\x20收到,我来处理...'});try{await(0x0,claude_process_1[_0x2a9f30(0x1e2)])(_0x2894e8,_0x348725[_0x2a9f30(0x25b)],_0x312ccd,{'skill':_0x9fe711[_0x2a9f30(0x26f)]?.[_0x2a9f30(0x274)],'agent':_0x9fe711['agent'],'senderNick':_0x976712,'senderStaffId':_0x5ba1f7});}catch(_0x4a4d0d){console[_0x2a9f30(0x261)](_0x2a9f30(0x27e),_0x4a4d0d),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':_0x2a9f30(0x1bd)+(_0x4a4d0d instanceof Error?_0x4a4d0d[_0x2a9f30(0x1f5)]:String(_0x4a4d0d))});}finally{_0x348725[_0x2a9f30(0x229)]=![];}}else await startNewSession(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'senderStaffId':_0x5ba1f7,'senderNick':_0x976712,'message':_0x312ccd,'conversationConfig':_0x9fe711});}function cleanCache(_0x1c11fa,_0x34cb66,_0x297955=!![]){const _0x3d65d0=a11_0x29bf8e,_0x3a119a={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x163c34=_0x34cb66?[_0x34cb66]:_0x1c11fa['config']['conversations']['map'](_0x194c92=>_0x194c92[_0x3d65d0(0x223)]);for(const _0x560235 of _0x163c34){let _0x36b29e=null;if(_0x297955){const _0x2970c6=findActiveSession(_0x1c11fa,_0x560235);_0x2970c6&&(_0x36b29e=getSessionId(_0x2970c6[_0x3d65d0(0x25b)][_0x3d65d0(0x25b)]));}const _0x4ac3b3=getSessionsDir(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)]['existsSync'](_0x4ac3b3))try{const _0x2de375=fs_1[_0x3d65d0(0x1f1)]['readdirSync'](_0x4ac3b3,{'withFileTypes':!![]});for(const _0x50fd91 of _0x2de375){if(!_0x50fd91[_0x3d65d0(0x204)]())continue;if(_0x36b29e&&_0x50fd91['name']===_0x36b29e)continue;const _0x3c9312=path_1['default'][_0x3d65d0(0x257)](_0x4ac3b3,_0x50fd91[_0x3d65d0(0x253)]);try{fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x280)](_0x3c9312,{'recursive':!![],'force':!![]}),_0x3a119a[_0x3d65d0(0x1c1)]++;}catch(_0x47291f){_0x3a119a['errors'][_0x3d65d0(0x235)](_0x3d65d0(0x241)+_0x3c9312);}}}catch(_0x56e553){_0x3a119a['errors'][_0x3d65d0(0x235)](_0x3d65d0(0x1e3)+_0x4ac3b3);}const _0x293b2e=getTasksDir(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1f3)](_0x293b2e))try{const _0x2fffac=fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x26b)](_0x293b2e,{'withFileTypes':!![]});for(const _0x5e3a41 of _0x2fffac){if(!_0x5e3a41[_0x3d65d0(0x204)]())continue;const _0x39952=path_1['default'][_0x3d65d0(0x257)](_0x293b2e,_0x5e3a41[_0x3d65d0(0x253)]);try{fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x280)](_0x39952,{'recursive':!![],'force':!![]}),_0x3a119a[_0x3d65d0(0x1c5)]++;}catch(_0x57849f){_0x3a119a[_0x3d65d0(0x1da)]['push'](_0x3d65d0(0x265)+_0x39952);}}}catch(_0x5dcc0b){_0x3a119a[_0x3d65d0(0x1da)][_0x3d65d0(0x235)]('读取tasks目录失败:\x20'+_0x293b2e);}const _0x226c74=getImagesDir(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1f3)](_0x226c74))try{const _0x3542b4=fs_1['default'][_0x3d65d0(0x26b)](_0x226c74,{'withFileTypes':!![]});for(const _0x34047d of _0x3542b4){const _0x124799=path_1['default'][_0x3d65d0(0x257)](_0x226c74,_0x34047d[_0x3d65d0(0x253)]);try{fs_1[_0x3d65d0(0x1f1)]['unlinkSync'](_0x124799),_0x3a119a[_0x3d65d0(0x259)]++;}catch(_0xdc14c7){_0x3a119a['errors'][_0x3d65d0(0x235)](_0x3d65d0(0x234)+_0x124799);}}}catch(_0xc7e6aa){_0x3a119a[_0x3d65d0(0x1da)][_0x3d65d0(0x235)](_0x3d65d0(0x25d)+_0x226c74);}if(!_0x297955){const _0x455160=getActiveSessionsFile(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1f3)](_0x455160))try{fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1d9)](_0x455160);}catch(_0x762564){_0x3a119a[_0x3d65d0(0x1da)][_0x3d65d0(0x235)](_0x3d65d0(0x22b)+_0x455160);}_0x1c11fa[_0x3d65d0(0x248)][_0x3d65d0(0x1ef)](_0x560235)&&_0x1c11fa[_0x3d65d0(0x248)][_0x3d65d0(0x1e1)](_0x560235);}}return _0x3a119a;}
1
+ 'use strict';const a11_0x4bb000=a11_0x28f2;(function(_0x5f5515,_0x37b79a){const _0x7f4be4=a11_0x28f2,_0x2d58be=_0x5f5515();while(!![]){try{const _0x211f26=parseInt(_0x7f4be4(0x26f))/0x1*(parseInt(_0x7f4be4(0x1ef))/0x2)+parseInt(_0x7f4be4(0x244))/0x3*(-parseInt(_0x7f4be4(0x1ff))/0x4)+-parseInt(_0x7f4be4(0x1db))/0x5*(-parseInt(_0x7f4be4(0x229))/0x6)+-parseInt(_0x7f4be4(0x205))/0x7+-parseInt(_0x7f4be4(0x215))/0x8+parseInt(_0x7f4be4(0x21d))/0x9*(-parseInt(_0x7f4be4(0x201))/0xa)+parseInt(_0x7f4be4(0x1ae))/0xb*(parseInt(_0x7f4be4(0x1b5))/0xc);if(_0x211f26===_0x37b79a)break;else _0x2d58be['push'](_0x2d58be['shift']());}catch(_0x4bb0e7){_0x2d58be['push'](_0x2d58be['shift']());}}}(a11_0x1418,0x8e66a));var __importDefault=this&&this[a11_0x4bb000(0x227)]||function(_0x437fa0){const _0x3de30f=a11_0x4bb000;return _0x437fa0&&_0x437fa0[_0x3de30f(0x1dd)]?_0x437fa0:{'default':_0x437fa0};};Object[a11_0x4bb000(0x253)](exports,a11_0x4bb000(0x1dd),{'value':!![]}),exports['timestamp']=timestamp,exports[a11_0x4bb000(0x1d0)]=getHomeDir,exports[a11_0x4bb000(0x1e8)]=getClientDir,exports[a11_0x4bb000(0x206)]=initClientDir,exports[a11_0x4bb000(0x1d5)]=ensureClientDir,exports['getClientConfig']=getClientConfig,exports[a11_0x4bb000(0x1df)]=resolveToUserId,exports[a11_0x4bb000(0x1f6)]=authCheck,exports[a11_0x4bb000(0x1bc)]=isOwner,exports[a11_0x4bb000(0x249)]=debugLog,exports['isMobile']=isMobile,exports['getPhoneMapFile']=getPhoneMapFile,exports['loadPhoneMap']=loadPhoneMap,exports['savePhoneMap']=savePhoneMap,exports[a11_0x4bb000(0x23c)]=userIdToPhone,exports['resolveUserId']=resolveUserId,exports[a11_0x4bb000(0x276)]=resolveAllPhonesInConfig,exports[a11_0x4bb000(0x275)]=hashConversationId,exports['getReplyWebhook']=getReplyWebhook,exports[a11_0x4bb000(0x23e)]=getReplyConversationId,exports[a11_0x4bb000(0x1e0)]=findActiveSession,exports['getConversationConfig']=getConversationConfig,exports[a11_0x4bb000(0x27a)]=getConversationDir,exports['getSessionsDir']=getSessionsDir,exports[a11_0x4bb000(0x1f4)]=getTasksDir,exports[a11_0x4bb000(0x219)]=getImagesDir,exports[a11_0x4bb000(0x1c1)]=getSessionDir,exports[a11_0x4bb000(0x255)]=getSessionId,exports[a11_0x4bb000(0x270)]=formatSessionInfo,exports[a11_0x4bb000(0x20e)]=readSessionLogTail,exports[a11_0x4bb000(0x1c0)]=findHistorySession,exports['findLatestSession']=findLatestSession,exports[a11_0x4bb000(0x267)]=updateSessionFile,exports[a11_0x4bb000(0x20c)]=appendSessionLog,exports[a11_0x4bb000(0x1fc)]=getActiveSessionsFile,exports[a11_0x4bb000(0x248)]=saveActiveSession,exports[a11_0x4bb000(0x23b)]=loadActiveSessions,exports[a11_0x4bb000(0x1e7)]=endSession,exports['switchToSession']=switchToSession,exports[a11_0x4bb000(0x1fb)]=startNewSession,exports[a11_0x4bb000(0x1e1)]=processMessageQueue,exports[a11_0x4bb000(0x1a9)]=handleSessionMessage,exports['cleanCache']=cleanCache;const utils_ok_1=require(a11_0x4bb000(0x26a)),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require(a11_0x4bb000(0x217))),crypto_1=__importDefault(require('crypto')),path_1=__importDefault(require(a11_0x4bb000(0x24f))),commands_1=require(a11_0x4bb000(0x24e)),messaging_1=require(a11_0x4bb000(0x1c2)),claude_process_1=require(a11_0x4bb000(0x1b2));function timestamp(){const _0x30c34a=a11_0x4bb000;return utils_ok_1[_0x30c34a(0x265)]['mm'](Date[_0x30c34a(0x23f)]())[_0x30c34a(0x21a)](_0x30c34a(0x22b));}function getHomeDir(){const _0xf1fb39=a11_0x4bb000;return os_1[_0xf1fb39(0x1d1)][_0xf1fb39(0x25d)]();}function getClientDir(_0x193764){const _0x47ee6e=a11_0x4bb000;return path_1[_0x47ee6e(0x1d1)][_0x47ee6e(0x250)](getHomeDir(),_0x47ee6e(0x1fa),_0x193764[_0x47ee6e(0x273)]);}function initClientDir(_0x32a589,_0x537bd9){const _0x16afd0=a11_0x4bb000,_0x1d9d30=path_1['default'][_0x16afd0(0x250)](getHomeDir(),'.cc-ding',_0x32a589),_0x5e41db=path_1[_0x16afd0(0x1d1)]['join'](_0x1d9d30,_0x16afd0(0x1d6));return fs_1[_0x16afd0(0x1d1)][_0x16afd0(0x26b)](_0x1d9d30,{'recursive':!![]}),fs_1['default'][_0x16afd0(0x225)](_0x5e41db,JSON[_0x16afd0(0x1a6)](_0x537bd9,null,0x2),_0x16afd0(0x26c)),_0x5e41db;}function ensureClientDir(_0xfd3e3a){const _0x26df85=a11_0x4bb000,_0x13e073=path_1[_0x26df85(0x1d1)][_0x26df85(0x250)](getHomeDir(),'.cc-ding',_0xfd3e3a),_0x3574cf=path_1[_0x26df85(0x1d1)]['join'](_0x13e073,'config.json');if(fs_1[_0x26df85(0x1d1)][_0x26df85(0x235)](_0x3574cf))return;console[_0x26df85(0x1da)]('['+timestamp()+']\x20客户端目录未初始化:\x20'+_0x13e073),console[_0x26df85(0x1da)]('['+timestamp()+_0x26df85(0x264));const _0x5f2e9c={'clientName':_0x26df85(0x241),'owner':_0x26df85(0x1c3),'whiteUserList':[],'clientSecret':'<clientSecret-钉钉Stream连接密钥>','defaultDingToken':_0x26df85(0x1b9),'conversations':[]};initClientDir(_0xfd3e3a,_0x5f2e9c),console['log']('['+timestamp()+']\x20已生成默认配置文件:\x20'+_0x3574cf),console[_0x26df85(0x1da)]('['+timestamp()+_0x26df85(0x1f5)),process['exit'](0x1);}function getClientConfig(_0x37a7b1){const _0x26ab7a=a11_0x4bb000,_0x5b2270=getClientDir(_0x37a7b1)+'/config.json';(0x0,assert_1['default'])(fs_1[_0x26ab7a(0x1d1)][_0x26ab7a(0x235)](_0x5b2270),_0x26ab7a(0x221)+_0x5b2270);const _0x9a7df9=utils_ok_1['fileUtil'][_0x26ab7a(0x1b3)](_0x5b2270);return(0x0,assert_1[_0x26ab7a(0x1d1)])(_0x9a7df9['clientSecret'],_0x26ab7a(0x1be)),(0x0,assert_1['default'])(_0x9a7df9[_0x26ab7a(0x1b8)],_0x26ab7a(0x24d)),_0x9a7df9;}function resolveToUserId(_0x20e5ac,_0x5e3bbb){const _0x1721ae=a11_0x4bb000;return isMobile(_0x5e3bbb)?_0x20e5ac[_0x1721ae(0x22a)][_0x5e3bbb]||_0x5e3bbb:_0x5e3bbb;}function authCheck(_0x1cb04d,_0x349e47,_0x1e2252){const _0xe12da5=a11_0x4bb000;if(isOwner(_0x1cb04d,_0x349e47))return!![];if(_0x1e2252){const _0x157c3c=_0x1cb04d[_0xe12da5(0x1dc)]['conversations'][_0xe12da5(0x1d8)](_0x47a071=>_0x47a071[_0xe12da5(0x228)]===_0x1e2252);if(_0x157c3c?.[_0xe12da5(0x1b8)]&&_0x157c3c[_0xe12da5(0x1b8)][_0xe12da5(0x220)]>0x0)return _0x157c3c[_0xe12da5(0x1b8)][_0xe12da5(0x247)](_0x258bcb=>resolveToUserId(_0x1cb04d,_0x258bcb)===_0x349e47);}return _0x1cb04d[_0xe12da5(0x1dc)]['whiteUserList'][_0xe12da5(0x247)](_0x5ae56c=>resolveToUserId(_0x1cb04d,_0x5ae56c)===_0x349e47);}function isOwner(_0x38289e,_0x5ae4a0){const _0x47606b=a11_0x4bb000,_0x3e038f=_0x38289e[_0x47606b(0x1dc)][_0x47606b(0x240)];if(!_0x3e038f||!isMobile(_0x3e038f))return![];const _0x5f3dea=_0x38289e[_0x47606b(0x22a)][_0x3e038f];return!!_0x5f3dea&&_0x5f3dea===_0x5ae4a0;}function debugLog(_0x12537e,_0x3139d5,..._0x568e3a){const _0x281e0c=a11_0x4bb000;_0x12537e[_0x281e0c(0x1dc)][_0x281e0c(0x1c4)]&&console[_0x281e0c(0x1da)](_0x281e0c(0x226)+_0x3139d5,..._0x568e3a);}function a11_0x28f2(_0xc55523,_0x5536b1){_0xc55523=_0xc55523-0x1a6;const _0x14189d=a11_0x1418();let _0x28f224=_0x14189d[_0xc55523];return _0x28f224;}const PHONE_RE=/^1\d{10}$/;function isMobile(_0x39ebeb){const _0x4e3e3b=a11_0x4bb000;return PHONE_RE[_0x4e3e3b(0x214)](_0x39ebeb);}function getPhoneMapFile(_0x54111f){const _0x4ae53e=a11_0x4bb000;return path_1[_0x4ae53e(0x1d1)][_0x4ae53e(0x250)](getClientDir(_0x54111f),_0x4ae53e(0x1ea));}function loadPhoneMap(_0x4d65de){const _0x1c3100=a11_0x4bb000,_0x1e8e4a=getPhoneMapFile(_0x4d65de);if(!fs_1[_0x1c3100(0x1d1)][_0x1c3100(0x235)](_0x1e8e4a))return{};try{const _0x1f0d4d=JSON[_0x1c3100(0x1a8)](fs_1['default'][_0x1c3100(0x1ba)](_0x1e8e4a,_0x1c3100(0x26c)));if(typeof _0x1f0d4d==='object'&&_0x1f0d4d!==null)return _0x1f0d4d;}catch{}return{};}function savePhoneMap(_0x2d2802,_0x120b97){const _0xa6803e=a11_0x4bb000,_0x159b5f=getPhoneMapFile(_0x2d2802);try{fs_1['default']['writeFileSync'](_0x159b5f,JSON[_0xa6803e(0x1a6)](_0x120b97,null,0x2),_0xa6803e(0x26c));}catch(_0x13b20e){console['error']('保存\x20phone-map.json\x20失败:',_0x13b20e);}}function userIdToPhone(_0xbcaa4c,_0x31de5d){const _0x5d3670=a11_0x4bb000;for(const [_0x29cb11,_0x581b35]of Object[_0x5d3670(0x22c)](_0xbcaa4c[_0x5d3670(0x22a)])){if(_0x581b35===_0x31de5d)return _0x29cb11;}return null;}async function resolveUserId(_0x462388,_0x50e309){const _0x3808f5=a11_0x4bb000;if(!_0x50e309)return null;if(!isMobile(_0x50e309))return _0x50e309;if(_0x462388[_0x3808f5(0x22a)][_0x50e309])return _0x462388[_0x3808f5(0x22a)][_0x50e309];const _0x5085ab=await(0x0,messaging_1['queryUserIdByMobile'])(_0x462388,_0x50e309);return _0x5085ab&&(_0x462388[_0x3808f5(0x22a)][_0x50e309]=_0x5085ab,savePhoneMap(_0x462388,_0x462388[_0x3808f5(0x22a)])),_0x5085ab;}async function resolveAllPhonesInConfig(_0xac84dd){const _0x4f19b0=a11_0x4bb000;_0xac84dd[_0x4f19b0(0x22a)]=loadPhoneMap(_0xac84dd);const _0x651eab=[],_0xb61c12=async _0x1d9354=>{const _0x5203cc=_0x4f19b0;if(_0xac84dd[_0x5203cc(0x22a)][_0x1d9354])return;const _0x198af8=await(0x0,messaging_1[_0x5203cc(0x279)])(_0xac84dd,_0x1d9354);_0x198af8&&(_0xac84dd[_0x5203cc(0x22a)][_0x1d9354]=_0x198af8,_0x651eab[_0x5203cc(0x211)](_0x1d9354));};_0xac84dd['config'][_0x4f19b0(0x240)]&&(isMobile(_0xac84dd[_0x4f19b0(0x1dc)]['owner'])?(await _0xb61c12(_0xac84dd[_0x4f19b0(0x1dc)][_0x4f19b0(0x240)]),!_0xac84dd['resolvedPhones'][_0xac84dd[_0x4f19b0(0x1dc)][_0x4f19b0(0x240)]]&&console['warn'](_0x4f19b0(0x1a7)+_0xac84dd['config']['owner'])):console[_0x4f19b0(0x1cf)]('[WARN]\x20owner\x20必须为手机号,当前值无效:\x20'+_0xac84dd[_0x4f19b0(0x1dc)][_0x4f19b0(0x240)]));for(const _0x5e43fa of _0xac84dd[_0x4f19b0(0x1dc)]['whiteUserList']){isMobile(_0x5e43fa)&&(await _0xb61c12(_0x5e43fa),!_0xac84dd[_0x4f19b0(0x22a)][_0x5e43fa]&&console[_0x4f19b0(0x1cf)]('[WARN]\x20无法解析\x20whiteUserList\x20手机号:\x20'+_0x5e43fa));}for(const _0x4976f0 of _0xac84dd[_0x4f19b0(0x1dc)]['conversations']){if(_0x4976f0[_0x4f19b0(0x1b8)])for(const _0x29d380 of _0x4976f0[_0x4f19b0(0x1b8)]){isMobile(_0x29d380)&&(await _0xb61c12(_0x29d380),!_0xac84dd[_0x4f19b0(0x22a)][_0x29d380]&&console['warn']('[WARN]\x20无法解析群白名单手机号:\x20'+_0x29d380));}}_0x651eab[_0x4f19b0(0x220)]>0x0&&savePhoneMap(_0xac84dd,_0xac84dd[_0x4f19b0(0x22a)]),console[_0x4f19b0(0x1da)](_0x4f19b0(0x21e)+Object[_0x4f19b0(0x230)](_0xac84dd['resolvedPhones'])[_0x4f19b0(0x220)]+'\x20条记录\x20('+_0x651eab[_0x4f19b0(0x220)]+_0x4f19b0(0x1b6));}function hashConversationId(_0x82110e,_0x21e5ec){const _0x53ad6b=a11_0x4bb000,_0x56e1df=getConversationConfig(_0x82110e,_0x21e5ec),_0x3e66ab=_0x56e1df?.[_0x53ad6b(0x21b)]||_0x21e5ec;return crypto_1[_0x53ad6b(0x1d1)]['createHash'](_0x53ad6b(0x20a))[_0x53ad6b(0x25e)](_0x3e66ab)[_0x53ad6b(0x1ee)](_0x53ad6b(0x20d));}function getReplyWebhook(_0x4a07fd){const _0x52421d=a11_0x4bb000;return _0x4a07fd[_0x52421d(0x261)]||_0x4a07fd[_0x52421d(0x1ed)];}function getReplyConversationId(_0x5d2fd0){const _0x3f9544=a11_0x4bb000;return _0x5d2fd0[_0x3f9544(0x269)]||_0x5d2fd0[_0x3f9544(0x228)];}function findActiveSession(_0x3caae2,_0xc3274b){const _0x4e8ad6=a11_0x4bb000,_0x96bc7a=_0x3caae2[_0x4e8ad6(0x232)][_0x4e8ad6(0x245)](_0xc3274b);if(_0x96bc7a)return{'key':_0xc3274b,'session':_0x96bc7a};const _0x17ffee=getConversationConfig(_0x3caae2,_0xc3274b);if(_0x17ffee?.['linkConversationId'])for(const _0xec563f of _0x3caae2[_0x4e8ad6(0x232)]){const _0x23ba7b=getConversationConfig(_0x3caae2,_0xec563f[0x0]);if(_0x23ba7b?.[_0x4e8ad6(0x21b)]===_0x17ffee['linkConversationId'])return{'key':_0xec563f[0x0],'session':_0xec563f[0x1]};}return undefined;}function getConversationConfig(_0x25d0e4,_0x3161ec){const _0x52d006=a11_0x4bb000;return _0x25d0e4['config']['conversations'][_0x52d006(0x1d8)](_0x2d5419=>_0x2d5419[_0x52d006(0x228)]===_0x3161ec);}function getConversationDir(_0x5269b9,_0x2682b2){const _0x132767=hashConversationId(_0x5269b9,_0x2682b2);return getClientDir(_0x5269b9)+'/'+_0x132767;}function getSessionsDir(_0x48bb2f,_0x56339d){return getConversationDir(_0x48bb2f,_0x56339d)+'/.sessions';}function getTasksDir(_0x3541b0,_0x534db8){return getConversationDir(_0x3541b0,_0x534db8)+'/.tasks';}function getImagesDir(_0x5abbc6,_0x2e1c2c){const _0x2bc921=a11_0x4bb000;return getConversationDir(_0x5abbc6,_0x2e1c2c)+_0x2bc921(0x1e5);}function getSessionDir(_0x15b972,_0x359228){const _0x5b7ada=a11_0x4bb000,_0x344cec=_0x359228[_0x5b7ada(0x277)]||_0x359228[_0x5b7ada(0x1eb)];return getSessionsDir(_0x15b972,_0x359228[_0x5b7ada(0x228)])+'/'+_0x344cec;}function getSessionId(_0x44e013){const _0x21e422=a11_0x4bb000;return _0x44e013['claudeSessionId']||_0x44e013[_0x21e422(0x1eb)];}function formatSessionInfo(_0x1b601c,_0x3953a3){const _0x5852a6=a11_0x4bb000,_0x324a14=findActiveSession(_0x1b601c,_0x3953a3);if(!_0x324a14)return null;const {session:_0x521ff2,isProcessing:_0x408453,messageQueue:_0x326e89}=_0x324a14[_0x5852a6(0x22d)],_0x497218=[_0x5852a6(0x1ca)+getSessionId(_0x521ff2),_0x5852a6(0x21c)+_0x521ff2[_0x5852a6(0x26e)]+'('+_0x521ff2['startStaffId']+')',_0x5852a6(0x21f)+_0x521ff2['startTimeStr'],_0x5852a6(0x1c9)+_0x324a14['session'][_0x5852a6(0x1f8)],_0x5852a6(0x200)+_0x408453,_0x5852a6(0x1f0)+(_0x326e89?.[_0x5852a6(0x220)]||0x0)+'\x20条'];return _0x497218[_0x5852a6(0x250)]('\x0a');}function readSessionLogTail(_0x18c989,_0x569f61,_0xcb09d9){const _0xdc029b=a11_0x4bb000,_0x5e312e=findActiveSession(_0x18c989,_0x569f61);if(!_0x5e312e)return null;const _0x4eb577=_0x5e312e[_0xdc029b(0x22d)],_0x1dd72a=getSessionDir(_0x18c989,_0x4eb577[_0xdc029b(0x22d)])+'/session.log';if(!fs_1[_0xdc029b(0x1d1)][_0xdc029b(0x235)](_0x1dd72a))return null;try{const _0x417eeb=fs_1[_0xdc029b(0x1d1)][_0xdc029b(0x1ba)](_0x1dd72a,_0xdc029b(0x26c)),_0x5d02c3=_0x417eeb[_0xdc029b(0x23a)]('\x0a')[_0xdc029b(0x262)](_0x54e4a9=>_0x54e4a9[_0xdc029b(0x220)]>0x0);return _0x5d02c3[_0xdc029b(0x1c5)](-_0xcb09d9)['join']('\x0a');}catch{return null;}}function findHistorySession(_0x37699e,_0x228b48,_0x18255f){const _0x450b2a=a11_0x4bb000,_0x1c7284=getSessionsDir(_0x37699e,_0x228b48),_0x425a14=_0x1c7284+'/'+_0x18255f+'/session.json';try{return utils_ok_1['fileUtil'][_0x450b2a(0x1b3)](_0x425a14);}catch{}const _0x2f9e4f=parseInt(_0x18255f,0xa);if(!isNaN(_0x2f9e4f)&&_0x2f9e4f>0x0){const _0x14f0aa=utils_ok_1['dateUtil']['mm'](_0x2f9e4f)[_0x450b2a(0x21a)](_0x450b2a(0x266)),_0x201320=_0x1c7284+'/'+_0x14f0aa+_0x450b2a(0x25c);try{return utils_ok_1[_0x450b2a(0x1e9)]['getJSON'](_0x201320);}catch{}}return null;}function findLatestSession(_0xc4a4b7,_0x29cf70){const _0x42ddc0=a11_0x4bb000,_0x43efc9=getSessionsDir(_0xc4a4b7,_0x29cf70);if(!fs_1[_0x42ddc0(0x1d1)][_0x42ddc0(0x235)](_0x43efc9))return null;const _0xb58599=findActiveSession(_0xc4a4b7,_0x29cf70),_0x11e6f0=_0xb58599?getSessionId(_0xb58599[_0x42ddc0(0x22d)][_0x42ddc0(0x22d)]):null;let _0x25e7d8=null,_0x336588=0x0;try{const _0x469e9e=fs_1['default'][_0x42ddc0(0x1fd)](_0x43efc9,{'withFileTypes':!![]});for(const _0x2eec5e of _0x469e9e){if(!_0x2eec5e[_0x42ddc0(0x238)]())continue;const _0x2565ff=path_1[_0x42ddc0(0x1d1)][_0x42ddc0(0x250)](_0x43efc9,_0x2eec5e[_0x42ddc0(0x233)],_0x42ddc0(0x234));if(!fs_1[_0x42ddc0(0x1d1)][_0x42ddc0(0x235)](_0x2565ff))continue;try{const _0x42a2f3=utils_ok_1[_0x42ddc0(0x1e9)][_0x42ddc0(0x1b3)](_0x2565ff);if(_0x11e6f0&&getSessionId(_0x42a2f3)===_0x11e6f0)continue;_0x42a2f3[_0x42ddc0(0x242)]>_0x336588&&(_0x336588=_0x42a2f3[_0x42ddc0(0x242)],_0x25e7d8=_0x42a2f3);}catch{continue;}}}catch{}return _0x25e7d8;}function updateSessionFile(_0x4fa108,_0x491339,_0x51c1e1){const _0x406733=a11_0x4bb000;if(_0x51c1e1[_0x406733(0x277)]&&!_0x491339[_0x406733(0x277)]){const _0x45c6f4=getSessionDir(_0x4fa108,_0x491339);_0x491339[_0x406733(0x277)]=_0x51c1e1[_0x406733(0x277)];const _0x139ca4=getSessionDir(_0x4fa108,_0x491339);_0x45c6f4!==_0x139ca4&&fs_1[_0x406733(0x1d1)][_0x406733(0x235)](_0x45c6f4)&&(fs_1['default'][_0x406733(0x1ce)](_0x45c6f4,_0x139ca4),console[_0x406733(0x1da)]('['+timestamp()+_0x406733(0x1e6)+path_1[_0x406733(0x1d1)][_0x406733(0x20f)](_0x45c6f4)+_0x406733(0x1b0)+path_1[_0x406733(0x1d1)][_0x406733(0x20f)](_0x139ca4)));}const _0x45b348=getSessionDir(_0x4fa108,_0x491339)+_0x406733(0x25c);try{if(_0x51c1e1[_0x406733(0x1ed)])_0x491339[_0x406733(0x1ed)]=_0x51c1e1['sessionWebhook'];if(_0x51c1e1[_0x406733(0x261)]!==undefined)_0x491339[_0x406733(0x261)]=_0x51c1e1[_0x406733(0x261)]||undefined;if(_0x51c1e1['currentConversationId']!==undefined)_0x491339[_0x406733(0x269)]=_0x51c1e1[_0x406733(0x269)]||undefined;fs_1[_0x406733(0x1d1)]['writeFileSync'](_0x45b348,JSON[_0x406733(0x1a6)](_0x491339,null,0x2),'utf-8');const _0x19a955=_0x51c1e1[_0x406733(0x277)]?_0x406733(0x277):_0x51c1e1[_0x406733(0x261)]!==undefined?'currentWebhook':_0x406733(0x1ed);console[_0x406733(0x1da)]('['+timestamp()+']\x20会话文件已保存:\x20'+_0x19a955),saveActiveSession(_0x4fa108,_0x491339[_0x406733(0x228)]);}catch(_0x486c1a){console[_0x406733(0x1cc)](_0x406733(0x25b),_0x486c1a);}}function appendSessionLog(_0xc67de3,_0x27ca2f,_0x14cb36){const _0xc4f65e=a11_0x4bb000,_0x38031e=_0xc67de3+_0xc4f65e(0x222),_0x29da18=timestamp(),_0x2d5c9b='['+_0x29da18+_0xc4f65e(0x25a)+_0x27ca2f['toUpperCase']()+_0xc4f65e(0x223)+_0x14cb36+'\x0a';try{fs_1['default'][_0xc4f65e(0x1c6)](_0x38031e,_0x2d5c9b,'utf-8');}catch{}}function getActiveSessionsFile(_0x11d07d,_0x517a84){const _0x2fa542=a11_0x4bb000;return getSessionsDir(_0x11d07d,_0x517a84)+_0x2fa542(0x1e3);}function saveActiveSession(_0x15a570,_0x1c9ed3){const _0x11dafe=a11_0x4bb000,_0x4fc383=_0x15a570[_0x11dafe(0x232)]['get'](_0x1c9ed3),_0x1d0b6f=getActiveSessionsFile(_0x15a570,_0x1c9ed3);try{if(!_0x4fc383){if(fs_1['default']['existsSync'](_0x1d0b6f))fs_1['default']['unlinkSync'](_0x1d0b6f);return;}const _0x1abbd3={'session':_0x4fc383[_0x11dafe(0x22d)],'lastSenderStaffId':_0x4fc383[_0x11dafe(0x1f8)],'conversationConfig':_0x4fc383[_0x11dafe(0x1f7)]};fs_1['default'][_0x11dafe(0x26b)](path_1[_0x11dafe(0x1d1)][_0x11dafe(0x203)](_0x1d0b6f),{'recursive':!![]}),fs_1[_0x11dafe(0x1d1)]['writeFileSync'](_0x1d0b6f,JSON[_0x11dafe(0x1a6)](_0x1abbd3,null,0x2),_0x11dafe(0x26c)),debugLog(_0x15a570,_0x11dafe(0x1c8)+_0x1c9ed3);}catch(_0x5c611f){console[_0x11dafe(0x1cc)](_0x11dafe(0x252)+_0x1c9ed3,_0x5c611f);}}function a11_0x1418(){const _0x4cba63=['/active.json','catch','/.images',']\x20会话目录重命名:\x20','endSession','getClientDir','fileUtil','phone-map.json','startTimeStr','unlinkSync','sessionWebhook','digest','1736674ANFtfq','-\x20**排队消息:**\x20',',结束当前会话\x0a','读取images目录失败:\x20','恢复活跃会话:\x20群=','getTasksDir',']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动','authCheck','conversationConfig','lastSenderStaffId','has','.cc-ding','startNewSession','getActiveSessionsFile','readdirSync','[会话恢复失败]\x20清除\x20claudeSessionId\x20并重新发起:\x20','68Gldduc','-\x20**处理中:**\x20','6740YVPBHD',',\x20当前并发=','dirname','会话\x20','4932900uRJSKL','initClientDir','读取tasks目录失败:\x20','\x0a💡\x20回复\x20/end\x20可结束本轮对话',']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','md5','interruptClaudeProcess','appendSessionLog','hex','readSessionLogTail','basename','isProcessing','push','messageQueue',',\x20会话ID=','test','8507752yFaLie','结束会话时中断正在执行的\x20Claude\x20进程','assert','imagesDeleted','getImagesDir','format','linkConversationId','-\x20**发起者:**\x20','3600uqWzoc','[手机解析]\x20已加载\x20','-\x20**开始时间:**\x20','length','Could\x20not\x20find\x20client\x20config\x20file:\x20','/session.log',']:\x20','sessionMaxConcurrency','writeFileSync','[DEBUG]\x20','__importDefault','conversationId','294bfPeCh','resolvedPhones','YYYY-MM-DD\x20HH:mm:ss','entries','session','切换会话时中断正在执行的\x20Claude\x20进程','set','keys','✅\x20收到,我来处理...','activeSessions','name','session.json','existsSync','\x20消息已入队,排队第\x20','结束会话:\x20群=','isDirectory','receiveReply','split','loadActiveSessions','userIdToPhone','❌\x20处理消息时发生错误:\x20','getReplyConversationId','now','owner','cc助手','startTime','🔄\x20已恢复对话上下文','35898RXIWUP','get','rmSync','some','saveActiveSession','debugLog','重试执行\x20Claude\x20查询失败:','执行队列\x20Claude\x20查询失败:','message','config.json\x20missing\x20required\x20field:\x20whiteUserList','./commands','path','join','✅\x20已切换到历史会话\x20(会话ID:\x20','持久化活跃会话失败:\x20群=','defineProperty','切换会话,先结束当前会话:\x20','getSessionId','创建新会话:\x20群=','key','map','\x20条)',']\x20[','更新\x20session.json\x20失败:','/session.json','homedir','update','delete',']\x20[SYSTEM]:\x20用户请求结束会话\x0a','currentWebhook','filter','taskCfg',']\x20正在自动初始化...','dateUtil','YYYY-MM-DD-HH-mm-ss','updateSessionFile',']\x20[SYSTEM]:\x20会话被切换到\x20','currentConversationId','utils-ok','mkdirSync','utf-8','shift','startNickName','1IRdEtr','formatSessionInfo','删除任务目录失败:\x20','💬\x20会话已结束\x0a📋\x20会话ID:\x20','clientId','executeClaudeQuery','hashConversationId','resolveAllPhonesInConfig','claudeSessionId','⏳\x20正在处理中,已加入队列(排队第\x20','queryUserIdByMobile','getConversationDir','stringify','[WARN]\x20无法解析\x20owner\x20手机号:\x20','parse','handleSessionMessage','⚠️\x20该会话无历史上下文,将从头开始','size','🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话','agent','18666637SlEDjN','conversations','\x20->\x20','读取sessions目录失败:\x20','./claude-process','getJSON','sendDingMessage','12hjivHX','\x20条新解析)','DEFAULT_SESSION_MAX_CONCURRENCY','whiteUserList','<兜底钉钉机器人Token>','readFileSync','skill','isOwner','errors','config.json\x20missing\x20required\x20field:\x20clientSecret','执行\x20Claude\x20查询失败:','findHistorySession','getSessionDir','./messaging','<owner手机号>','debug','slice','appendFileSync',',\x20发起者=','活跃会话已持久化:\x20群=','-\x20**最后发送者:**\x20','-\x20**会话ID:**\x20','startStaffId','error','会话目录已重建:\x20群=','renameSync','warn','getHomeDir','default','\x20无活跃会话','parseEndCommand','🤯\x20当前繁忙,请稍后再试...','ensureClientDir','config.json','达到最大并发数\x20(','find','删除会话目录失败:\x20','log','26445FfKyBD','config','__esModule','sessionsDeleted','resolveToUserId','findActiveSession','processMessageQueue','❌\x20会话\x20'];a11_0x1418=function(){return _0x4cba63;};return a11_0x1418();}function loadActiveSessions(_0x354254){const _0x5d0e89=a11_0x4bb000;for(const _0x1ac5a8 of _0x354254['config'][_0x5d0e89(0x1af)]){const _0xa046d1=getActiveSessionsFile(_0x354254,_0x1ac5a8[_0x5d0e89(0x228)]);if(!fs_1[_0x5d0e89(0x1d1)][_0x5d0e89(0x235)](_0xa046d1))continue;try{const _0x3834ff=utils_ok_1[_0x5d0e89(0x1e9)]['getJSON'](_0xa046d1);if(!_0x3834ff?.[_0x5d0e89(0x22d)]){console[_0x5d0e89(0x1da)]('活跃会话文件无效,跳过:\x20'+_0xa046d1);continue;}const _0x4d6c6e=getSessionDir(_0x354254,_0x3834ff[_0x5d0e89(0x22d)]);if(!fs_1[_0x5d0e89(0x1d1)]['existsSync'](_0x4d6c6e)){console[_0x5d0e89(0x1da)]('活跃会话目录已不存在,清理持久化文件:\x20'+_0xa046d1),fs_1[_0x5d0e89(0x1d1)][_0x5d0e89(0x1ec)](_0xa046d1);continue;}_0x354254[_0x5d0e89(0x232)]['set'](_0x1ac5a8['conversationId'],{'session':_0x3834ff['session'],'lastSenderStaffId':_0x3834ff[_0x5d0e89(0x1f8)]||_0x3834ff[_0x5d0e89(0x22d)][_0x5d0e89(0x1cb)],'isProcessing':![],'messageQueue':[],'conversationConfig':_0x3834ff[_0x5d0e89(0x1f7)]}),console['log'](_0x5d0e89(0x1f3)+_0x1ac5a8['conversationId']+',\x20会话ID='+getSessionId(_0x3834ff[_0x5d0e89(0x22d)]));}catch(_0x3f1261){console['error']('加载活跃会话失败:\x20'+_0xa046d1,_0x3f1261);}}}async function endSession(_0x24ce63,_0x465572,_0x4e0a90){const _0x591de9=a11_0x4bb000,_0x15b3e3=findActiveSession(_0x24ce63,_0x465572);if(!_0x15b3e3){console[_0x591de9(0x1da)]('群\x20'+_0x465572+_0x591de9(0x1d2));return;}const {key:_0x1ec1a1,session:_0x11fdc3}=_0x15b3e3,{session:_0x2f733a}=_0x11fdc3,_0x15fd43=getSessionDir(_0x24ce63,_0x2f733a),_0x55df86=getSessionId(_0x2f733a);console[_0x591de9(0x1da)](_0x591de9(0x237)+_0x465572+_0x591de9(0x213)+_0x55df86),(0x0,claude_process_1[_0x591de9(0x20b)])(_0x11fdc3,_0x591de9(0x216))&&fs_1[_0x591de9(0x1d1)]['appendFileSync'](_0x15fd43+'/session.log','['+timestamp()+_0x591de9(0x209),'utf-8'),await(0x0,messaging_1[_0x591de9(0x1b4)])(_0x24ce63,{'conversationId':_0x465572,'sessionWebhook':_0x4e0a90,'atUserId':_0x2f733a[_0x591de9(0x1cb)],'content':_0x591de9(0x272)+_0x55df86}),_0x24ce63[_0x591de9(0x232)][_0x591de9(0x25f)](_0x1ec1a1),saveActiveSession(_0x24ce63,_0x1ec1a1),fs_1[_0x591de9(0x1d1)][_0x591de9(0x1c6)](_0x15fd43+_0x591de9(0x222),'['+timestamp()+_0x591de9(0x260),'utf-8');}async function switchToSession(_0x3d4801,_0x35de71,_0x494725,_0x1403ef,_0x8e2a42,_0x5809cd){const _0x44a182=a11_0x4bb000,_0x496a95=findHistorySession(_0x3d4801,_0x35de71,_0x1403ef);if(!_0x496a95)return await(0x0,messaging_1['sendDingMessage'])(_0x3d4801,{'conversationId':_0x35de71,'sessionWebhook':_0x494725,'atUserId':_0x8e2a42,'content':'❌\x20未找到会话\x20'+_0x1403ef+',该会话可能已被清理,请发送新消息开始新会话'}),![];const _0x501789=getSessionDir(_0x3d4801,_0x496a95);if(!fs_1[_0x44a182(0x1d1)]['existsSync'](_0x501789))return await(0x0,messaging_1['sendDingMessage'])(_0x3d4801,{'conversationId':_0x35de71,'sessionWebhook':_0x494725,'atUserId':_0x8e2a42,'content':_0x44a182(0x1e2)+_0x1403ef+'\x20的数据已被清理,无法恢复,请发送新消息开始新会话'}),![];const _0xc6431=findActiveSession(_0x3d4801,_0x35de71);_0xc6431&&(console['log'](_0x44a182(0x254)+getSessionId(_0xc6431[_0x44a182(0x22d)][_0x44a182(0x22d)])),(0x0,claude_process_1['interruptClaudeProcess'])(_0xc6431['session'],_0x44a182(0x22e)),_0x3d4801['activeSessions'][_0x44a182(0x25f)](_0xc6431['key']),saveActiveSession(_0x3d4801,_0xc6431[_0x44a182(0x257)]),fs_1[_0x44a182(0x1d1)][_0x44a182(0x1c6)](getSessionDir(_0x3d4801,_0xc6431[_0x44a182(0x22d)][_0x44a182(0x22d)])+'/session.log','['+timestamp()+_0x44a182(0x268)+_0x1403ef+_0x44a182(0x1f1),_0x44a182(0x26c)));_0x3d4801[_0x44a182(0x232)][_0x44a182(0x22f)](_0x35de71,{'session':_0x496a95,'lastSenderStaffId':_0x8e2a42,'isProcessing':![],'messageQueue':[],'conversationConfig':_0x5809cd}),saveActiveSession(_0x3d4801,_0x35de71);const _0x2dcf46=!!_0x496a95['claudeSessionId'],_0x157905=getSessionId(_0x496a95);return await(0x0,messaging_1['sendDingMessage'])(_0x3d4801,{'conversationId':_0x35de71,'sessionWebhook':_0x494725,'atUserId':_0x8e2a42,'content':_0x44a182(0x251)+_0x157905+')\x0a'+(_0x2dcf46?_0x44a182(0x243):_0x44a182(0x1aa))+_0x44a182(0x208)}),console['log']('已切换到历史会话:\x20群='+_0x35de71+_0x44a182(0x213)+_0x157905+',\x20有Claude上下文='+_0x2dcf46),!![];}async function startNewSession(_0x19c9aa,_0x24e79b){const _0x3a12f3=a11_0x4bb000,{conversationId:_0x9caed,sessionWebhook:_0x1bc830,senderStaffId:_0x361245,senderNick:_0x8e37be,message:_0x4ed624,conversationConfig:_0x3e05ee}=_0x24e79b,_0x2d892e=_0x19c9aa[_0x3a12f3(0x1dc)][_0x3a12f3(0x224)]??_0x19c9aa[_0x3a12f3(0x1b7)];if(_0x19c9aa[_0x3a12f3(0x232)][_0x3a12f3(0x1ab)]>=_0x2d892e){console[_0x3a12f3(0x1da)](_0x3a12f3(0x1d7)+_0x2d892e+'),拒绝新会话:\x20群='+_0x9caed),await(0x0,messaging_1[_0x3a12f3(0x1b4)])(_0x19c9aa,{'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'atUserId':_0x361245,'content':_0x3a12f3(0x1d4)});return;}const _0x288565=Date[_0x3a12f3(0x23f)](),_0x23bf18={'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'startTime':_0x288565,'startTimeStr':utils_ok_1[_0x3a12f3(0x265)]['mm'](_0x288565)[_0x3a12f3(0x21a)]('YYYY-MM-DD-HH-mm-ss'),'startStaffId':_0x361245,'startNickName':_0x8e37be};console[_0x3a12f3(0x1da)](_0x3a12f3(0x256)+_0x9caed+_0x3a12f3(0x213)+getSessionId(_0x23bf18)+_0x3a12f3(0x1c7)+_0x361245+_0x3a12f3(0x202)+(_0x19c9aa['activeSessions'][_0x3a12f3(0x1ab)]+0x1)+'/'+_0x2d892e);const _0x4627c4=getSessionDir(_0x19c9aa,_0x23bf18);fs_1['default'][_0x3a12f3(0x26b)](_0x4627c4,{'recursive':!![]}),fs_1['default'][_0x3a12f3(0x225)](_0x4627c4+_0x3a12f3(0x25c),JSON[_0x3a12f3(0x1a6)](_0x23bf18,null,0x2),_0x3a12f3(0x26c)),_0x19c9aa[_0x3a12f3(0x232)][_0x3a12f3(0x22f)](_0x9caed,{'session':_0x23bf18,'lastSenderStaffId':_0x361245,'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x3e05ee}),saveActiveSession(_0x19c9aa,_0x9caed);_0x3e05ee[_0x3a12f3(0x239)]!==![]&&await(0x0,messaging_1[_0x3a12f3(0x1b4)])(_0x19c9aa,{'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'atUserId':_0x361245,'content':_0x3a12f3(0x1ac)});try{await(0x0,claude_process_1[_0x3a12f3(0x274)])(_0x19c9aa,_0x23bf18,_0x4ed624,{'skill':_0x3e05ee['taskCfg']?.[_0x3a12f3(0x1bb)],'agent':_0x3e05ee[_0x3a12f3(0x1ad)],'senderNick':_0x8e37be,'senderStaffId':_0x361245});}catch(_0x327653){console['error'](_0x3a12f3(0x1bf),_0x327653),await(0x0,messaging_1['sendDingMessage'])(_0x19c9aa,{'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'atUserId':_0x361245,'content':_0x3a12f3(0x23d)+(_0x327653 instanceof Error?_0x327653[_0x3a12f3(0x24c)]:String(_0x327653))});}finally{const _0x22758f=_0x19c9aa[_0x3a12f3(0x232)][_0x3a12f3(0x245)](_0x9caed);_0x22758f&&(_0x22758f['isProcessing']=![]);}await processMessageQueue(_0x19c9aa,_0x9caed);}async function processMessageQueue(_0x552c94,_0x2119b6){const _0x57fcb4=a11_0x4bb000,_0x29f4c2=_0x552c94['activeSessions']['get'](_0x2119b6);if(!_0x29f4c2||_0x29f4c2[_0x57fcb4(0x212)][_0x57fcb4(0x220)]===0x0)return;const _0x5390b1=_0x29f4c2[_0x57fcb4(0x212)][_0x57fcb4(0x26d)](),{message:_0x431a01,senderStaffId:_0xf9b626,senderNick:_0x5c07a4}=_0x5390b1,_0x13b9dd=_0x29f4c2['session'][_0x57fcb4(0x1ed)];console[_0x57fcb4(0x1da)]('处理队列消息:\x20群='+_0x2119b6+',\x20剩余\x20'+_0x29f4c2[_0x57fcb4(0x212)][_0x57fcb4(0x220)]+'\x20条'),_0x29f4c2[_0x57fcb4(0x210)]=!![],_0x29f4c2[_0x57fcb4(0x1f8)]=_0xf9b626,saveActiveSession(_0x552c94,_0x2119b6);_0x29f4c2[_0x57fcb4(0x1f7)][_0x57fcb4(0x239)]!==![]&&await(0x0,messaging_1[_0x57fcb4(0x1b4)])(_0x552c94,{'conversationId':_0x2119b6,'sessionWebhook':_0x13b9dd,'atUserId':_0xf9b626,'content':_0x57fcb4(0x231)})[_0x57fcb4(0x1e4)](()=>{});try{await(0x0,claude_process_1[_0x57fcb4(0x274)])(_0x552c94,_0x29f4c2[_0x57fcb4(0x22d)],_0x431a01,{'skill':_0x29f4c2[_0x57fcb4(0x1f7)][_0x57fcb4(0x263)]?.[_0x57fcb4(0x1bb)],'agent':_0x29f4c2[_0x57fcb4(0x1f7)]['agent'],'senderNick':_0x5c07a4,'senderStaffId':_0xf9b626});}catch(_0x3ad536){console[_0x57fcb4(0x1cc)](_0x57fcb4(0x24b),_0x3ad536),await(0x0,messaging_1[_0x57fcb4(0x1b4)])(_0x552c94,{'conversationId':_0x2119b6,'sessionWebhook':_0x13b9dd,'atUserId':_0xf9b626,'content':_0x57fcb4(0x23d)+(_0x3ad536 instanceof Error?_0x3ad536['message']:String(_0x3ad536))});}finally{_0x29f4c2['isProcessing']=![];}_0x29f4c2['messageQueue']['length']>0x0&&await processMessageQueue(_0x552c94,_0x2119b6);}async function handleSessionMessage(_0xd1459c,_0x5328c9){const _0x4cf34f=a11_0x4bb000,{conversationId:_0x322d4a,sessionWebhook:_0x2c75c7,senderStaffId:_0x1892a2,senderNick:_0x4a5c0f,message:_0x52b3c7,conversationConfig:_0x256099}=_0x5328c9;if((0x0,commands_1[_0x4cf34f(0x1d3)])(_0x52b3c7)){await endSession(_0xd1459c,_0x322d4a,_0x2c75c7);return;}const _0x22cbb6=findActiveSession(_0xd1459c,_0x322d4a),_0x5c1826=_0x22cbb6?.['session'];if(_0x5c1826){const _0x3a6243=getSessionDir(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)]);!fs_1[_0x4cf34f(0x1d1)][_0x4cf34f(0x235)](_0x3a6243)&&(fs_1[_0x4cf34f(0x1d1)]['mkdirSync'](_0x3a6243,{'recursive':!![]}),fs_1[_0x4cf34f(0x1d1)][_0x4cf34f(0x225)](_0x3a6243+_0x4cf34f(0x25c),JSON[_0x4cf34f(0x1a6)](_0x5c1826[_0x4cf34f(0x22d)],null,0x2),_0x4cf34f(0x26c)),console[_0x4cf34f(0x1da)](_0x4cf34f(0x1cd)+_0x322d4a+',\x20路径='+_0x3a6243));if(_0x5c1826[_0x4cf34f(0x210)]){const _0x298f75={'message':_0x52b3c7,'senderStaffId':_0x1892a2,'senderNick':_0x4a5c0f};_0x5c1826[_0x4cf34f(0x212)][_0x4cf34f(0x211)](_0x298f75);const _0x62ad89=_0x5c1826[_0x4cf34f(0x212)]['length'];console['log'](_0x4cf34f(0x204)+_0x322d4a+_0x4cf34f(0x236)+_0x62ad89+'\x20条'),await(0x0,messaging_1[_0x4cf34f(0x1b4)])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':_0x4cf34f(0x278)+_0x62ad89+_0x4cf34f(0x259)});return;}const _0x2ac126=_0x5c1826[_0x4cf34f(0x22d)][_0x4cf34f(0x228)]===_0x322d4a;console['log']('追加消息到活跃会话:\x20群='+_0x322d4a+_0x4cf34f(0x213)+getSessionId(_0x5c1826[_0x4cf34f(0x22d)])+(_0x2ac126?'':'(关联群,会话归属='+_0x5c1826[_0x4cf34f(0x22d)]['conversationId']+')')),_0x5c1826[_0x4cf34f(0x1f8)]=_0x1892a2,_0x5c1826[_0x4cf34f(0x210)]=!![],saveActiveSession(_0xd1459c,_0x22cbb6['key']);_0x2ac126&&_0x2c75c7!==_0x5c1826[_0x4cf34f(0x22d)][_0x4cf34f(0x1ed)]&&(_0x5c1826[_0x4cf34f(0x22d)]['sessionWebhook']=_0x2c75c7,updateSessionFile(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],{'sessionWebhook':_0x2c75c7}));_0x5c1826[_0x4cf34f(0x22d)]['currentWebhook']=_0x2c75c7,_0x5c1826[_0x4cf34f(0x22d)][_0x4cf34f(0x269)]=_0x322d4a,updateSessionFile(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],{'currentWebhook':_0x2c75c7,'currentConversationId':_0x322d4a});_0x256099['receiveReply']!==![]&&await(0x0,messaging_1['sendDingMessage'])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':'✅\x20收到,我来处理...'});try{await(0x0,claude_process_1[_0x4cf34f(0x274)])(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],_0x52b3c7,{'skill':_0x256099['taskCfg']?.[_0x4cf34f(0x1bb)],'agent':_0x256099['agent'],'senderNick':_0x4a5c0f,'senderStaffId':_0x1892a2});}catch(_0x632984){if(_0x5c1826[_0x4cf34f(0x22d)]['claudeSessionId']){console[_0x4cf34f(0x1da)](_0x4cf34f(0x1fe)+_0x5c1826['session'][_0x4cf34f(0x277)]),_0x5c1826[_0x4cf34f(0x22d)]['claudeSessionId']=undefined,_0xd1459c[_0x4cf34f(0x267)](_0x5c1826[_0x4cf34f(0x22d)],{});try{await(0x0,claude_process_1[_0x4cf34f(0x274)])(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],_0x52b3c7,{'skill':_0x256099[_0x4cf34f(0x263)]?.[_0x4cf34f(0x1bb)],'agent':_0x256099[_0x4cf34f(0x1ad)],'senderNick':_0x4a5c0f,'senderStaffId':_0x1892a2});return;}catch(_0x3336b){console[_0x4cf34f(0x1cc)](_0x4cf34f(0x24a),_0x3336b),await(0x0,messaging_1[_0x4cf34f(0x1b4)])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':_0x4cf34f(0x23d)+(_0x3336b instanceof Error?_0x3336b[_0x4cf34f(0x24c)]:String(_0x3336b))}),_0x5c1826['isProcessing']=![],await processMessageQueue(_0xd1459c,_0x322d4a);return;}}console[_0x4cf34f(0x1cc)]('执行\x20Claude\x20查询失败:',_0x632984),await(0x0,messaging_1['sendDingMessage'])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':_0x4cf34f(0x23d)+(_0x632984 instanceof Error?_0x632984[_0x4cf34f(0x24c)]:String(_0x632984))});}finally{_0x5c1826[_0x4cf34f(0x210)]=![];}await processMessageQueue(_0xd1459c,_0x322d4a);}else await startNewSession(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'senderStaffId':_0x1892a2,'senderNick':_0x4a5c0f,'message':_0x52b3c7,'conversationConfig':_0x256099});}function cleanCache(_0xd8df35,_0x2ffd34,_0x582dcd=!![]){const _0x1fdbab=a11_0x4bb000,_0x201f2d={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x3a0694=_0x2ffd34?[_0x2ffd34]:_0xd8df35[_0x1fdbab(0x1dc)]['conversations'][_0x1fdbab(0x258)](_0x3fec77=>_0x3fec77[_0x1fdbab(0x228)]);for(const _0xf6b94 of _0x3a0694){let _0x4cc7c0=null;if(_0x582dcd){const _0x4d1d98=findActiveSession(_0xd8df35,_0xf6b94);_0x4d1d98&&(_0x4cc7c0=getSessionId(_0x4d1d98['session'][_0x1fdbab(0x22d)]));}const _0x483416=getSessionsDir(_0xd8df35,_0xf6b94);if(fs_1['default'][_0x1fdbab(0x235)](_0x483416))try{const _0x3923ab=fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x1fd)](_0x483416,{'withFileTypes':!![]});for(const _0x49b67c of _0x3923ab){if(!_0x49b67c[_0x1fdbab(0x238)]())continue;if(_0x4cc7c0&&_0x49b67c[_0x1fdbab(0x233)]===_0x4cc7c0)continue;const _0x2620af=path_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x250)](_0x483416,_0x49b67c['name']);try{fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x246)](_0x2620af,{'recursive':!![],'force':!![]}),_0x201f2d[_0x1fdbab(0x1de)]++;}catch(_0x37790f){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)](_0x1fdbab(0x1d9)+_0x2620af);}}}catch(_0x42a558){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)](_0x1fdbab(0x1b1)+_0x483416);}const _0x869fd7=getTasksDir(_0xd8df35,_0xf6b94);if(fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x235)](_0x869fd7))try{const _0x29f913=fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x1fd)](_0x869fd7,{'withFileTypes':!![]});for(const _0x1807f8 of _0x29f913){if(!_0x1807f8['isDirectory']())continue;const _0x20dbcf=path_1[_0x1fdbab(0x1d1)]['join'](_0x869fd7,_0x1807f8['name']);try{fs_1['default'][_0x1fdbab(0x246)](_0x20dbcf,{'recursive':!![],'force':!![]}),_0x201f2d['tasksDeleted']++;}catch(_0x3d8ae7){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)](_0x1fdbab(0x271)+_0x20dbcf);}}}catch(_0x24e582){_0x201f2d['errors']['push'](_0x1fdbab(0x207)+_0x869fd7);}const _0x149567=getImagesDir(_0xd8df35,_0xf6b94);if(fs_1['default'][_0x1fdbab(0x235)](_0x149567))try{const _0x1677f7=fs_1['default'][_0x1fdbab(0x1fd)](_0x149567,{'withFileTypes':!![]});for(const _0x2bbad3 of _0x1677f7){const _0x5d8ab1=path_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x250)](_0x149567,_0x2bbad3[_0x1fdbab(0x233)]);try{fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x1ec)](_0x5d8ab1),_0x201f2d[_0x1fdbab(0x218)]++;}catch(_0xd372b){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)]('删除图片失败:\x20'+_0x5d8ab1);}}}catch(_0x4fe073){_0x201f2d['errors'][_0x1fdbab(0x211)](_0x1fdbab(0x1f2)+_0x149567);}if(!_0x582dcd){const _0x59facf=getActiveSessionsFile(_0xd8df35,_0xf6b94);if(fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x235)](_0x59facf))try{fs_1['default']['unlinkSync'](_0x59facf);}catch(_0x10e9d1){_0x201f2d[_0x1fdbab(0x1bd)]['push']('删除活跃会话文件失败:\x20'+_0x59facf);}_0xd8df35[_0x1fdbab(0x232)][_0x1fdbab(0x1f9)](_0xf6b94)&&_0xd8df35[_0x1fdbab(0x232)][_0x1fdbab(0x25f)](_0xf6b94);}}return _0x201f2d;}
@@ -1 +1 @@
1
- 'use strict';const a12_0x54c3d5=a12_0x3934;(function(_0x5b7fe5,_0x2fc416){const _0x1c81e8=a12_0x3934,_0x36fdd8=_0x5b7fe5();while(!![]){try{const _0x2035c7=-parseInt(_0x1c81e8(0x143))/0x1+-parseInt(_0x1c81e8(0xf0))/0x2*(-parseInt(_0x1c81e8(0x153))/0x3)+-parseInt(_0x1c81e8(0xd4))/0x4+parseInt(_0x1c81e8(0xd7))/0x5+parseInt(_0x1c81e8(0x172))/0x6*(parseInt(_0x1c81e8(0xfe))/0x7)+parseInt(_0x1c81e8(0x15e))/0x8+-parseInt(_0x1c81e8(0x17a))/0x9*(-parseInt(_0x1c81e8(0xee))/0xa);if(_0x2035c7===_0x2fc416)break;else _0x36fdd8['push'](_0x36fdd8['shift']());}catch(_0x5eb484){_0x36fdd8['push'](_0x36fdd8['shift']());}}}(a12_0x3333,0xc97d0));var __importDefault=this&&this[a12_0x54c3d5(0xda)]||function(_0x512f6a){return _0x512f6a&&_0x512f6a['__esModule']?_0x512f6a:{'default':_0x512f6a};};Object[a12_0x54c3d5(0xed)](exports,a12_0x54c3d5(0x147),{'value':!![]}),exports[a12_0x54c3d5(0x157)]=formatTaskInfo,exports[a12_0x54c3d5(0x17f)]=countTodoTask,exports[a12_0x54c3d5(0xd3)]=getOneTodoTask,exports[a12_0x54c3d5(0x151)]=finishTask,exports[a12_0x54c3d5(0x17e)]=cancelTask,exports[a12_0x54c3d5(0x179)]=parseTaskCancelCommand,exports[a12_0x54c3d5(0x17c)]=handleTask,exports['runTaskHandlerLoop']=runTaskHandlerLoop,exports['saveTask']=saveTask;const utils_ok_1=require(a12_0x54c3d5(0x144)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a12_0x54c3d5(0xef))),child_process_1=require('child_process'),common_1=require(a12_0x54c3d5(0x148)),messaging_1=require(a12_0x54c3d5(0xce)),claude_process_1=require(a12_0x54c3d5(0xf1)),session_1=require(a12_0x54c3d5(0x11e)),api_key_manager_1=require(a12_0x54c3d5(0xd9)),MAX_RETRY_COUNT=0x3;function formatTaskInfo(_0x10ba7c){const _0x1f2c24=a12_0x54c3d5,_0x1ef5a0=[],_0x48d429=[],_0x44d208=[],_0x3e497f=[];for(const _0x2a94fb of _0x10ba7c[_0x1f2c24(0x10b)][_0x1f2c24(0xca)]){const _0x3c19b9=(0x0,session_1[_0x1f2c24(0xd0)])(_0x10ba7c,_0x2a94fb[_0x1f2c24(0x137)]);if(!fs_1[_0x1f2c24(0xf8)]['existsSync'](_0x3c19b9))continue;const _0x13cf62=utils_ok_1[_0x1f2c24(0x113)][_0x1f2c24(0xec)](_0x3c19b9);for(const _0x583e74 of _0x13cf62){const _0x579a93=path_1[_0x1f2c24(0xf8)]['basename'](_0x583e74);try{const _0x27af6f=utils_ok_1[_0x1f2c24(0x113)][_0x1f2c24(0x156)](_0x583e74);if(!_0x27af6f)continue;if(_0x579a93===_0x1f2c24(0xc9))_0x1ef5a0[_0x1f2c24(0x100)](_0x27af6f);else{if(_0x579a93===_0x1f2c24(0x10e))_0x48d429['push'](_0x27af6f);else{if(_0x579a93===_0x1f2c24(0xc5))_0x44d208[_0x1f2c24(0x100)](_0x27af6f);else _0x579a93===_0x1f2c24(0x126)&&_0x3e497f[_0x1f2c24(0x100)](_0x27af6f);}}}catch{}}}_0x1ef5a0[_0x1f2c24(0x111)]((_0x50b030,_0x5fd5c2)=>_0x50b030['startTime']-_0x5fd5c2[_0x1f2c24(0x11b)]),_0x48d429[_0x1f2c24(0x111)]((_0x3087bb,_0x3cc8c0)=>_0x3087bb['startTime']-_0x3cc8c0[_0x1f2c24(0x11b)]),_0x44d208[_0x1f2c24(0x111)]((_0xfa0fce,_0x35d432)=>_0x35d432[_0x1f2c24(0x11b)]-_0xfa0fce['startTime']),_0x3e497f[_0x1f2c24(0x111)]((_0x5b22d2,_0x122d58)=>_0x122d58[_0x1f2c24(0x11b)]-_0x5b22d2[_0x1f2c24(0x11b)]);const _0x591ba0=[];if(_0x48d429['length']>0x0){const _0x45c14b=_0x48d429['map'](_0x2d3111=>'#'+_0x2d3111[_0x1f2c24(0x11b)]+'\x20'+(_0x2d3111['senderNickName']||_0x2d3111[_0x1f2c24(0x16e)])+':\x20'+taskDisplayName(_0x2d3111));_0x591ba0[_0x1f2c24(0x100)](_0x1f2c24(0x17d)+_0x48d429[_0x1f2c24(0x173)]+')**\x0a'+_0x45c14b['join']('\x0a'));}else _0x591ba0[_0x1f2c24(0x100)](_0x1f2c24(0x13d));if(_0x1ef5a0[_0x1f2c24(0x173)]>0x0){const _0x3a0dc0=_0x1ef5a0['map'](_0x1f02e6=>'#'+_0x1f02e6[_0x1f2c24(0x11b)]+'\x20'+(_0x1f02e6[_0x1f2c24(0x12a)]||_0x1f02e6['senderStaffId'])+':\x20'+taskDisplayName(_0x1f02e6));_0x591ba0[_0x1f2c24(0x100)]('**📋\x20待办队列\x20('+_0x1ef5a0['length']+')**\x0a'+_0x3a0dc0[_0x1f2c24(0x112)]('\x0a'));}else _0x591ba0[_0x1f2c24(0x100)]('**📋\x20待办队列**\x0a无');const _0x8919c5=_0x44d208[_0x1f2c24(0xea)](0x0,0x5);if(_0x8919c5[_0x1f2c24(0x173)]>0x0){const _0x7a2319=_0x8919c5[_0x1f2c24(0x115)](_0xfc3a61=>'#'+_0xfc3a61[_0x1f2c24(0x11b)]+'\x20'+(_0xfc3a61[_0x1f2c24(0x12a)]||_0xfc3a61['senderStaffId'])+':\x20'+taskDisplayName(_0xfc3a61));_0x591ba0[_0x1f2c24(0x100)]('**✅\x20最近完成\x20(top\x20'+_0x8919c5['length']+'/'+_0x44d208[_0x1f2c24(0x173)]+_0x1f2c24(0xcb)+_0x7a2319['join']('\x0a'));}else _0x591ba0[_0x1f2c24(0x100)](_0x1f2c24(0x16a));if(_0x3e497f[_0x1f2c24(0x173)]>0x0){const _0x3a9fd6=_0x3e497f[_0x1f2c24(0x115)](_0x130a5b=>'#'+_0x130a5b['startTime']+'\x20'+(_0x130a5b[_0x1f2c24(0x12a)]||_0x130a5b['senderStaffId'])+':\x20'+taskDisplayName(_0x130a5b)+(_0x130a5b[_0x1f2c24(0x124)]?_0x1f2c24(0x108)+_0x130a5b[_0x1f2c24(0x124)]+'次)':''));_0x591ba0[_0x1f2c24(0x100)](_0x1f2c24(0x10a)+_0x3e497f[_0x1f2c24(0x173)]+_0x1f2c24(0xcb)+_0x3a9fd6[_0x1f2c24(0x112)]('\x0a'));}return _0x591ba0['join']('\x0a\x0a');}function a12_0x3333(){const _0x1b6fbf=['),标记为失败:\x20','basename','conversationId','kill',']\x20超时(','stderr','命令执行失败,\x20退出码:\x20','-doing.json','**⏳\x20处理中**\x0a无','log','无可用配额(429)','):\x20','apiKeyCfg','elapsed','181737twRGuU','utils-ok','\x0a...共取消\x20','writeFileSync','__esModule','../common','任务目录不存在:\x20','sessionWebhook','任务未按预期处理',']\x20更新任务重试计数失败:','s\x20后重试\x20(','rename','执行失败(退出码:\x20',']\x20任务预处理异常:','finishTask','title','3765CdDdBl','timedOut','apiKey','getJSON','formatTaskInfo','未生成结果文件','utils','stdout',']\x20执行命令:\x20','getFileStr','error','220792CbDmxB','\x20用户:\x20',']\x20任务预处理JSON解析失败,使用原始prompt:\x20','skill','saveFileStr','now','--agent','startTimeStr','pipe',']\x20退出码:\x20','match','promptSimply','**✅\x20最近完成**\x0a无','trim','-done.json','timestamp','senderStaffId','toString','unknown','cron','12036oBFgkE','length','agent','dateUtil','/task-doing.json','\x20个待办任务:\x0a','bypassPermissions','parseTaskCancelCommand','495hhMBAO','-failed.json','handleTask','**⏳\x20处理中\x20(','cancelTask','countTodoTask',']\x20任务处理中:\x20','output','/task.log','addSuffixToFile','task-done.json','SIGTERM','ensureSettingsWithApiKey','normal','task.json','conversations',')**\x0a',']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20',']\x20任务重置为待办\x20(重试','./messaging','SIGKILL','getTasksDir','--print','),\x20','getOneTodoTask','3135264DnToUn','格式:\x20{\x22title\x22:\x22简短标题(15字以内)\x22,\x22promptSimply\x22:\x22优化后的需求描述,保留原始需求的所有关键信息,使描述更清晰、结构化\x22}','直接返回JSON,不要markdown代码块或其他内容。','1241095RHEcFb','claude','./api-key-manager','__importDefault','TPM限流快速失败次数过多',']\x20取消任务失败:\x20','catch','/result.md','读取任务文件失败:\x20','进程执行错误:\x20','getConversationConfig','任务文件解析失败,跳过:\x20','settings.json','执行命令:\x20claude\x20','sendDingMessage','markdown',']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,','replace','次,重置任务为待办','slice','task','dirWalker','defineProperty','212170SDFThr','path','88RNJuRt','./claude-process','type','splice','原始需求:\x20','s\x20后重试','rotateApiKey',']\x20无可用配额,任务重置为待办','default','utf-8',']\x20任务重试次数已达上限(',']\x20任务处理完成','spawn',']\x20TPM\x20限流连续快速失败\x20','1022AGGETE','YYYY-MM-DD-HH-mm-ss','push','close','existsSync','sleep','indexOf','isRetryableApiError','.claude','format','\x20(重试',']\x20切换到\x20API\x20Key\x20模式','**❌\x20失败\x20(','config','filter','无可用配额','task-doing.json','prompt','stringify','sort','join','fileUtil','),使用原始prompt','map','\x20次,切换到新\x20Key:\x20','write',']\x20任务预处理结果已更新:\x20','/task.json','抱歉,任务处理异常...','startTime',',\x20需求:\x20',']\x20更新任务预处理结果失败:','./session','getConversationDir',']\x20任务预处理完成:\x20title=\x22','--settings','🔄\x20开始处理任务:\x20','ignore','retryCount',']\x20任务预处理失败(退出码:','task-failed.json',']\x20任务预处理返回格式不正确,使用原始prompt',']\x20自动检测到\x20settings.json:\x20','pickValidApiKey','senderNickName','data','请对以下任务需求进行预处理,生成简短标题和优化后的需求描述。','settingLabel','getForceEnabledSettingsPath','--permission-mode',']\x20任务执行超时,重置为待办','未找到匹配的待办任务:\x20','baseUtil','-doing','debugLog'];a12_0x3333=function(){return _0x1b6fbf;};return a12_0x3333();}function truncatePrompt(_0x23488a,_0x1466c3=0x50){const _0x5e9338=_0x23488a['replace'](/\n/g,'\x20')['trim']();return _0x5e9338['length']>_0x1466c3?_0x5e9338['slice'](0x0,_0x1466c3)+'...':_0x5e9338;}function taskDisplayName(_0x234b60){const _0x4ac6a4=a12_0x54c3d5;if(_0x234b60[_0x4ac6a4(0x152)])return _0x234b60[_0x4ac6a4(0x152)];return truncatePrompt(_0x234b60[_0x4ac6a4(0x10f)]);}function a12_0x3934(_0x11772a,_0x3518a8){_0x11772a=_0x11772a-0xc5;const _0x3333af=a12_0x3333();let _0x3934d3=_0x3333af[_0x11772a];return _0x3934d3;}async function preprocessTask(_0x553f1f,_0x4ad408,_0x1bc2c9){const _0x5a8c83=a12_0x54c3d5,_0x146469=(0x0,session_1[_0x5a8c83(0x11f)])(_0x553f1f,_0x4ad408),_0x2a092f=_0x5a8c83(0xd8),_0x2aea4d=[_0x5a8c83(0x12f),'bypassPermissions',_0x5a8c83(0xd1)],_0x4e37b2=(0x0,claude_process_1['resolveClaudeSettingsPath'])(_0x553f1f,_0x146469);_0x4e37b2&&_0x2aea4d[_0x5a8c83(0x100)](_0x5a8c83(0x121),_0x4e37b2);const _0x1e4073=[_0x5a8c83(0x12c),_0x5a8c83(0xd6),_0x5a8c83(0xd5),'',_0x5a8c83(0xf4)+_0x1bc2c9][_0x5a8c83(0x112)]('\x0a');_0x2aea4d[_0x5a8c83(0x100)](_0x1e4073);const _0x3708ac=0x7530;return new Promise(_0x5da4b0=>{const _0x5ee6e8=_0x5a8c83;let _0x3b7551='';const _0x4cc116=(0x0,child_process_1['spawn'])(_0x2a092f,_0x2aea4d,{'cwd':_0x146469,'stdio':[_0x5ee6e8(0x123),_0x5ee6e8(0x166),_0x5ee6e8(0x166)]}),_0x435950=setTimeout(()=>{const _0xa61357=_0x5ee6e8;_0x4cc116[_0xa61357(0x138)](_0xa61357(0xc6)),setTimeout(()=>{const _0x5b0e5e=_0xa61357;try{_0x4cc116[_0x5b0e5e(0x138)](_0x5b0e5e(0xcf));}catch{}},0xbb8);},_0x3708ac);_0x4cc116[_0x5ee6e8(0x15a)]['on'](_0x5ee6e8(0x12b),_0x6030c5=>{const _0x42b922=_0x5ee6e8;_0x3b7551+=_0x6030c5[_0x42b922(0x16f)]();}),_0x4cc116[_0x5ee6e8(0x13a)]['on'](_0x5ee6e8(0x12b),()=>{}),_0x4cc116['on']('close',_0x188de9=>{const _0x190605=_0x5ee6e8;clearTimeout(_0x435950);if(_0x188de9!==0x0||!_0x3b7551['trim']()){console[_0x190605(0x13e)]('['+(0x0,session_1[_0x190605(0x16d)])()+_0x190605(0x125)+_0x188de9+_0x190605(0x114)),_0x5da4b0(null);return;}try{let _0x2c4ead=_0x3b7551[_0x190605(0x16b)]();const _0x3d86bc=_0x2c4ead[_0x190605(0x168)](/\{[\s\S]*\}/);if(_0x3d86bc)_0x2c4ead=_0x3d86bc[0x0];const _0xa793c9=JSON['parse'](_0x2c4ead);_0xa793c9[_0x190605(0x152)]&&_0xa793c9[_0x190605(0x169)]?(console[_0x190605(0x13e)]('['+(0x0,session_1[_0x190605(0x16d)])()+_0x190605(0x120)+_0xa793c9[_0x190605(0x152)]+'\x22'),_0x5da4b0({'title':String(_0xa793c9[_0x190605(0x152)]),'promptSimply':String(_0xa793c9['promptSimply'])})):(console[_0x190605(0x13e)]('['+(0x0,session_1['timestamp'])()+_0x190605(0x127)),_0x5da4b0(null));}catch(_0x10cd28){console['log']('['+(0x0,session_1[_0x190605(0x16d)])()+_0x190605(0x160)+_0x10cd28),_0x5da4b0(null);}}),_0x4cc116['on']('error',_0x2b3a84=>{const _0x3f3b46=_0x5ee6e8;clearTimeout(_0x435950),console[_0x3f3b46(0x15d)]('['+(0x0,session_1[_0x3f3b46(0x16d)])()+']\x20任务预处理进程错误:',_0x2b3a84),_0x5da4b0(null);});});}function countTodoTask(_0x2b2f2b){const _0x181403=a12_0x54c3d5;let _0x2ec3ef=0x0;for(const _0x402ec5 of _0x2b2f2b[_0x181403(0x10b)][_0x181403(0xca)]){const _0x2d1b78=(0x0,session_1['getTasksDir'])(_0x2b2f2b,_0x402ec5[_0x181403(0x137)]);if(fs_1[_0x181403(0xf8)][_0x181403(0x102)](_0x2d1b78)){const _0x370024=utils_ok_1[_0x181403(0x113)]['dirWalker'](_0x2d1b78),_0x5d8bb7=_0x370024['filter'](_0xf5d1ed=>path_1[_0x181403(0xf8)][_0x181403(0x136)](_0xf5d1ed)===_0x181403(0xc9));_0x2ec3ef+=_0x5d8bb7['length'];}}return _0x2ec3ef;}async function getOneTodoTask(_0x598a47){const _0x3edf65=a12_0x54c3d5;for(const _0x145bce of _0x598a47['config'][_0x3edf65(0xca)]){const _0x4be891=(0x0,session_1[_0x3edf65(0xd0)])(_0x598a47,_0x145bce[_0x3edf65(0x137)]);if(!fs_1[_0x3edf65(0xf8)][_0x3edf65(0x102)](_0x4be891))continue;const _0x314e81=utils_ok_1['fileUtil'][_0x3edf65(0xec)](_0x4be891),_0x536719=_0x314e81[_0x3edf65(0x10c)](_0x515127=>path_1[_0x3edf65(0xf8)][_0x3edf65(0x136)](_0x515127)===_0x3edf65(0xc9));if(_0x536719[_0x3edf65(0x173)]===0x0)continue;const _0x3dfc48=_0x536719[_0x3edf65(0x115)](_0x5e2f4d=>{const _0x20a7ca=_0x3edf65;try{const _0xd907ef=utils_ok_1[_0x20a7ca(0x113)]['getJSON'](_0x5e2f4d);return _0xd907ef?{'file':_0x5e2f4d,'task':_0xd907ef}:null;}catch{return console['error'](_0x20a7ca(0xe2)+_0x5e2f4d),null;}})['filter'](_0x5d35f6=>_0x5d35f6!==null)[_0x3edf65(0x111)]((_0xf0bf96,_0x2ad18d)=>_0xf0bf96[_0x3edf65(0xeb)]['startTime']-_0x2ad18d[_0x3edf65(0xeb)][_0x3edf65(0x11b)]);if(_0x3dfc48[_0x3edf65(0x173)]>0x0){const {file:_0x2f91e1,task:_0x20ca6d}=_0x3dfc48[0x0];return common_1[_0x3edf65(0x159)][_0x3edf65(0x183)](_0x2f91e1,_0x3edf65(0x133)),_0x20ca6d;}}return undefined;}async function finishTask(_0x3d63c9,_0x43d8e0){const _0x2db457=a12_0x54c3d5,_0x591a03=_0x43d8e0+_0x2db457(0x176);let _0x50ea83;try{_0x50ea83=utils_ok_1['fileUtil'][_0x2db457(0x156)](_0x591a03);}catch(_0x40bfe2){console[_0x2db457(0x15d)](_0x2db457(0xdf)+_0x591a03,_0x40bfe2);return;}const _0x161840=_0x43d8e0+_0x2db457(0xde),_0x368cc7=fs_1[_0x2db457(0xf8)]['existsSync'](_0x161840)?utils_ok_1[_0x2db457(0x113)][_0x2db457(0x15c)](_0x161840):_0x2db457(0x11a);await(0x0,messaging_1[_0x2db457(0xe5)])(_0x3d63c9,{'conversationId':_0x50ea83[_0x2db457(0x137)],'sessionWebhook':_0x50ea83[_0x2db457(0x14a)],'atUserId':_0x50ea83[_0x2db457(0x16e)],'content':_0x368cc7,'msgType':_0x2db457(0xe6)});const _0x103e62=_0x591a03[_0x2db457(0xe8)](_0x2db457(0x13c),_0x2db457(0x16c));utils_ok_1['fileUtil'][_0x2db457(0x14e)](_0x591a03,_0x103e62);}async function failTask(_0x256497,_0x438402,_0xcbcedd){const _0x706fa0=a12_0x54c3d5,_0x35638e=_0x438402+_0x706fa0(0x176);let _0x2e89bf;try{_0x2e89bf=utils_ok_1[_0x706fa0(0x113)][_0x706fa0(0x156)](_0x35638e);}catch(_0x364f98){console['error'](_0x706fa0(0xdf)+_0x35638e,_0x364f98);return;}await(0x0,messaging_1[_0x706fa0(0xe5)])(_0x256497,{'conversationId':_0x2e89bf[_0x706fa0(0x137)],'sessionWebhook':_0x2e89bf[_0x706fa0(0x14a)],'atUserId':_0x2e89bf[_0x706fa0(0x16e)],'content':'❌\x20任务失败:\x20'+taskDisplayName(_0x2e89bf)+'\x0a原因:\x20'+_0xcbcedd,'msgType':_0x706fa0(0xe6)});const _0x18b84c=_0x35638e[_0x706fa0(0xe8)](_0x706fa0(0x13c),_0x706fa0(0x17b));utils_ok_1[_0x706fa0(0x113)][_0x706fa0(0x14e)](_0x35638e,_0x18b84c);}async function resetTaskToTodo(_0x51f697,_0x256980,_0x8d15a9){const _0x4a2c39=a12_0x54c3d5,_0x3574ba=_0x256980+_0x4a2c39(0x176),_0x36d290=_0x256980+_0x4a2c39(0x119);if(!fs_1['default'][_0x4a2c39(0x102)](_0x3574ba))return![];try{const _0x11c14b=utils_ok_1[_0x4a2c39(0x113)][_0x4a2c39(0x156)](_0x3574ba),_0x536dc4=(_0x11c14b[_0x4a2c39(0x124)]||0x0)+0x1;if(_0x536dc4>=MAX_RETRY_COUNT)return console[_0x4a2c39(0x13e)]('['+(0x0,session_1[_0x4a2c39(0x16d)])()+_0x4a2c39(0xfa)+_0x536dc4+'/'+MAX_RETRY_COUNT+_0x4a2c39(0x135)+(_0x11c14b[_0x4a2c39(0x152)]||_0x11c14b[_0x4a2c39(0x10f)])),_0x11c14b[_0x4a2c39(0x124)]=_0x536dc4,fs_1[_0x4a2c39(0xf8)]['writeFileSync'](_0x3574ba,JSON[_0x4a2c39(0x110)](_0x11c14b,null,0x2),_0x4a2c39(0xf9)),await failTask(_0x51f697,_0x256980,_0x8d15a9+'\x20(已重试'+_0x536dc4+'次)'),![];_0x11c14b['retryCount']=_0x536dc4,fs_1[_0x4a2c39(0xf8)]['writeFileSync'](_0x3574ba,JSON['stringify'](_0x11c14b,null,0x2),_0x4a2c39(0xf9)),console[_0x4a2c39(0x13e)]('['+(0x0,session_1[_0x4a2c39(0x16d)])()+_0x4a2c39(0xcd)+_0x536dc4+'/'+MAX_RETRY_COUNT+_0x4a2c39(0x140)+(_0x11c14b['title']||_0x11c14b[_0x4a2c39(0x10f)]));}catch(_0x347348){console['error']('['+(0x0,session_1[_0x4a2c39(0x16d)])()+_0x4a2c39(0x14c),_0x347348);}return fs_1[_0x4a2c39(0xf8)][_0x4a2c39(0x102)](_0x3574ba)&&utils_ok_1[_0x4a2c39(0x113)]['rename'](_0x3574ba,_0x36d290),!![];}function cancelTask(_0x55fc3c,_0x390d54,_0x5f574b){const _0xbb6236=a12_0x54c3d5,_0x234aa8=[],_0x4cde92=_0x390d54[_0xbb6236(0x16b)](),_0x2951fa=_0x5f574b?_0x55fc3c[_0xbb6236(0x10b)][_0xbb6236(0xca)][_0xbb6236(0x10c)](_0x4869ee=>_0x4869ee['conversationId']===_0x5f574b):_0x55fc3c[_0xbb6236(0x10b)][_0xbb6236(0xca)];for(const _0x5d24b9 of _0x2951fa){const _0x513a5e=(0x0,session_1[_0xbb6236(0xd0)])(_0x55fc3c,_0x5d24b9[_0xbb6236(0x137)]);if(!fs_1[_0xbb6236(0xf8)][_0xbb6236(0x102)](_0x513a5e))continue;const _0x4189e4=utils_ok_1[_0xbb6236(0x113)]['dirWalker'](_0x513a5e),_0x8b64a8=_0x4189e4['filter'](_0x3d3b0c=>path_1[_0xbb6236(0xf8)][_0xbb6236(0x136)](_0x3d3b0c)==='task.json');for(const _0x5bdeaf of _0x8b64a8){try{const _0x4e1bfe=utils_ok_1[_0xbb6236(0x113)]['getJSON'](_0x5bdeaf);if(!_0x4e1bfe)continue;if(String(_0x4e1bfe['startTime'])===_0x4cde92){_0x234aa8[_0xbb6236(0x100)]({'file':_0x5bdeaf,'task':_0x4e1bfe});continue;}if(_0x4e1bfe[_0xbb6236(0x152)]&&_0x4e1bfe['title']['includes'](_0x4cde92)){_0x234aa8[_0xbb6236(0x100)]({'file':_0x5bdeaf,'task':_0x4e1bfe});continue;}}catch{}}}if(_0x234aa8[_0xbb6236(0x173)]===0x0)return _0xbb6236(0x131)+_0x4cde92;let _0x331d82=0x0;for(const {file:_0x18e77d,task:_0x2f6dc6}of _0x234aa8){try{fs_1[_0xbb6236(0xf8)]['unlinkSync'](_0x18e77d),_0x331d82++,console[_0xbb6236(0x13e)]('['+(0x0,session_1['timestamp'])()+']\x20已取消任务:\x20#'+_0x2f6dc6[_0xbb6236(0x11b)]+'\x20'+(_0x2f6dc6['title']||_0x2f6dc6[_0xbb6236(0x10f)]));}catch(_0x4ac246){console['error']('['+(0x0,session_1['timestamp'])()+_0xbb6236(0xdc)+_0x18e77d,_0x4ac246);}}const _0x514450=_0x234aa8[_0xbb6236(0xea)](0x0,0x5)[_0xbb6236(0x115)](_0x24ee2d=>'#'+_0x24ee2d[_0xbb6236(0xeb)][_0xbb6236(0x11b)]+'\x20'+taskDisplayName(_0x24ee2d[_0xbb6236(0xeb)]))[_0xbb6236(0x112)]('\x0a'),_0x591ddc=_0x331d82>0x5?_0xbb6236(0x145)+_0x331d82+'\x20个任务':'';return'已取消\x20'+_0x331d82+_0xbb6236(0x177)+_0x514450+_0x591ddc;}function parseTaskCancelCommand(_0x2b95f1){const _0x21ed57=a12_0x54c3d5,_0x3d02da=_0x2b95f1[_0x21ed57(0x16b)](),_0x502486=_0x3d02da[_0x21ed57(0x168)](/^\/task\s+cancel\s+(.+)$/i);return _0x502486?_0x502486[0x1][_0x21ed57(0x16b)]():null;}function updateCmdArgsSettings(_0x315b54,_0x146b35){const _0x538008=a12_0x54c3d5,_0x352230=_0x315b54[_0x538008(0x104)](_0x538008(0x121));_0x352230!==-0x1&&_0x315b54[_0x538008(0xf3)](_0x352230,0x2),_0x146b35&&_0x315b54[_0x538008(0x100)](_0x538008(0x121),_0x146b35);}async function handleTask(_0x4128cc){const _0x54105b=a12_0x54c3d5,_0x3792f7=await getOneTodoTask(_0x4128cc);if(!_0x3792f7){(0x0,session_1[_0x54105b(0x134)])(_0x4128cc,'未发现待办任务...');return;}const _0x5236e9=(0x0,session_1[_0x54105b(0xe1)])(_0x4128cc,_0x3792f7[_0x54105b(0x137)]),_0x587f64=(0x0,session_1[_0x54105b(0x11f)])(_0x4128cc,_0x3792f7['conversationId']),_0x535b90=(0x0,session_1[_0x54105b(0xd0)])(_0x4128cc,_0x3792f7[_0x54105b(0x137)])+'/'+_0x3792f7[_0x54105b(0x165)];if(!fs_1[_0x54105b(0xf8)][_0x54105b(0x102)](_0x535b90)){console[_0x54105b(0x15d)](_0x54105b(0x149)+_0x535b90);return;}_0x3792f7[_0x54105b(0xf2)]!==_0x54105b(0x171)&&await(0x0,messaging_1['sendDingMessage'])(_0x4128cc,{'conversationId':_0x3792f7['conversationId'],'sessionWebhook':_0x3792f7[_0x54105b(0x14a)],'atUserId':_0x3792f7[_0x54105b(0x16e)],'content':_0x54105b(0x122)+taskDisplayName(_0x3792f7)});const _0x2e750b=_0x535b90+_0x54105b(0xde),_0x8fe3fc=_0x535b90+_0x54105b(0x182);console['log']('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x180)+(_0x3792f7[_0x54105b(0x152)]||_0x3792f7[_0x54105b(0x10f)]));const _0x4071f7=_0x3792f7[_0x54105b(0x12a)]&&_0x3792f7[_0x54105b(0x16e)]?_0x3792f7[_0x54105b(0x12a)]+'('+_0x3792f7[_0x54105b(0x16e)]+_0x54105b(0xd2):_0x54105b(0x170),_0x16f471=_0x4128cc[_0x54105b(0x10b)][_0x54105b(0x141)],_0x55f499=(0x0,api_key_manager_1[_0x54105b(0x12e)])(_0x587f64);let _0x5c74ce=![],_0x3f9afa=null;if(_0x55f499)console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+']\x20检测到\x20FORCE_ENABLE,强制使用\x20settings-ding.json');else{if(_0x16f471){_0x3f9afa=(0x0,api_key_manager_1[_0x54105b(0x129)])(_0x4128cc);if(!_0x3f9afa){console[_0x54105b(0x13e)]('['+(0x0,session_1['timestamp'])()+_0x54105b(0xf7)),await resetTaskToTodo(_0x4128cc,_0x535b90,_0x54105b(0x10d));return;}_0x5c74ce=!![],console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+']\x20切换到\x20API\x20Key\x20模式');}}const _0x1db604=_0x5236e9?.['taskCfg']?.[_0x54105b(0x161)],_0x360c67=_0x5236e9?.[_0x54105b(0x174)],_0x9f1d67=_0x3792f7[_0x54105b(0x169)]||_0x3792f7[_0x54105b(0x10f)],_0x77195e=((_0x1db604?'/'+_0x1db604:'')+_0x54105b(0x15f)+_0x4071f7+_0x54105b(0x11c)+_0x9f1d67+';\x20最后将回复内容保存至:\x20'+_0x2e750b)[_0x54105b(0x16b)](),_0x1901e9=[_0x54105b(0x12f),_0x54105b(0x178),_0x54105b(0xd1),_0x77195e];if(_0x55f499)_0x1901e9[_0x54105b(0x100)](_0x54105b(0x121),_0x55f499);else{if(_0x5c74ce&&_0x3f9afa){const _0x29a781=(0x0,api_key_manager_1[_0x54105b(0xc7)])(_0x587f64,_0x3f9afa);_0x1901e9['push'](_0x54105b(0x121),_0x29a781);}else{if(!_0x16f471){const _0x161d4e=path_1[_0x54105b(0xf8)][_0x54105b(0x112)](_0x587f64,_0x54105b(0x106),_0x54105b(0xe3));fs_1['default'][_0x54105b(0x102)](_0x161d4e)&&(_0x1901e9[_0x54105b(0x100)](_0x54105b(0x121),_0x161d4e),console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x128)+_0x161d4e));}}}_0x360c67&&_0x1901e9[_0x54105b(0x100)](_0x54105b(0x164),_0x360c67);(0x0,session_1[_0x54105b(0x134)])(_0x4128cc,_0x54105b(0xe4)+_0x1901e9['join']('\x20'));const _0x599594=0xa*0x3c*0x3e8,_0x43678a=0x14,_0xe55e28=0x2710,_0x273e57=0x2710,_0x32518b=_0x54105b(0xd8),_0x51f5f2=_0x2afb49=>{const _0x4be4ac=_0x54105b,_0x258015=Date[_0x4be4ac(0x163)]();return new Promise(_0x5218de=>{const _0xb1c06e=_0x4be4ac,_0x12528d=[];let _0x2bf5e8=![],_0x1b04b0=![];const _0x32f897=(0x0,child_process_1[_0xb1c06e(0xfc)])(_0x32518b,_0x2afb49,{'cwd':_0x587f64,'stdio':[_0xb1c06e(0x123),_0xb1c06e(0x166),'pipe']}),_0x171b69=setTimeout(()=>{const _0xf1571f=_0xb1c06e;!_0x2bf5e8&&(_0x1b04b0=!![],console['error']('任务执行超时(10分钟),终止进程'),_0x32f897[_0xf1571f(0x138)]('SIGTERM'),setTimeout(()=>{const _0x221fc1=_0xf1571f;if(!_0x2bf5e8)_0x32f897[_0x221fc1(0x138)](_0x221fc1(0xcf));},0x1388));},_0x599594);_0x32f897['stdout']['on'](_0xb1c06e(0x12b),_0x29a495=>{const _0x5839b9=_0xb1c06e,_0x1ee5ae=_0x29a495['toString']();process[_0x5839b9(0x15a)][_0x5839b9(0x117)](_0x1ee5ae),_0x12528d[_0x5839b9(0x100)](_0x1ee5ae);}),_0x32f897['stderr']['on'](_0xb1c06e(0x12b),_0x1b37d1=>{const _0x2125a4=_0xb1c06e,_0x4b826b=_0x1b37d1[_0x2125a4(0x16f)]();process[_0x2125a4(0x13a)][_0x2125a4(0x117)](_0x4b826b),_0x12528d[_0x2125a4(0x100)](_0x4b826b);}),_0x32f897['on'](_0xb1c06e(0x101),_0xa3e4e8=>{const _0x1a661f=_0xb1c06e;_0x2bf5e8=!![],clearTimeout(_0x171b69),_0x5218de({'exitCode':_0xa3e4e8??0x1,'output':_0x12528d[_0x1a661f(0x112)](''),'elapsed':Date[_0x1a661f(0x163)]()-_0x258015,'timedOut':_0x1b04b0});}),_0x32f897['on']('error',_0x3b7d5f=>{const _0x3bf866=_0xb1c06e;console[_0x3bf866(0x15d)]('进程执行错误:',_0x3b7d5f),_0x12528d[_0x3bf866(0x100)](_0x3bf866(0xe0)+_0x3b7d5f['message']);});});};let _0x40f113,_0xe0fd5d,_0x342de5=![],_0x85aa51=0x0;while(!![]){const _0x1974e8=await _0x51f5f2(_0x1901e9);_0x40f113=_0x1974e8['exitCode'],_0xe0fd5d=_0x1974e8[_0x54105b(0x181)],_0x342de5=_0x1974e8[_0x54105b(0x154)];if(_0x40f113!==0x0){if(_0x342de5){console['log']('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x130));const _0x510aa8=['['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x15b)+_0x32518b+'\x20'+_0x1901e9[_0x54105b(0x112)]('\x20'),'['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x139)+_0x599594/0x3e8+'s)',_0xe0fd5d][_0x54105b(0x112)]('\x0a');fs_1[_0x54105b(0xf8)][_0x54105b(0x146)](_0x8fe3fc,_0x510aa8),await resetTaskToTodo(_0x4128cc,_0x535b90,'执行超时');return;}if((0x0,api_key_manager_1['isQuotaExhaustedError'])(_0xe0fd5d)&&_0x16f471){if(!_0x5c74ce){_0x3f9afa=(0x0,api_key_manager_1[_0x54105b(0x129)])(_0x4128cc);if(_0x3f9afa){_0x5c74ce=!![],_0x85aa51=0x0;const _0x4468c=(0x0,api_key_manager_1[_0x54105b(0xc7)])(_0x587f64,_0x3f9afa);updateCmdArgsSettings(_0x1901e9,_0x4468c),console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x109));continue;}}else{if(_0x3f9afa){const _0x53641f=(0x0,api_key_manager_1['rotateApiKey'])(_0x4128cc,_0x3f9afa[_0x54105b(0x155)]);if(_0x53641f){_0x3f9afa=_0x53641f,_0x85aa51=0x0;const _0x3d93e2=(0x0,api_key_manager_1[_0x54105b(0xc7)])(_0x587f64,_0x3f9afa);updateCmdArgsSettings(_0x1901e9,_0x3d93e2),console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0xcc)+(0x0,api_key_manager_1['settingLabel'])(_0x53641f));continue;}}}console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+']\x20无可用配额,任务重置为待办');const _0x4900a6=['['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x15b)+_0x32518b+'\x20'+_0x1901e9['join']('\x20'),'['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x167)+_0x40f113,_0xe0fd5d]['join']('\x0a');fs_1[_0x54105b(0xf8)]['writeFileSync'](_0x8fe3fc,_0x4900a6),await resetTaskToTodo(_0x4128cc,_0x535b90,_0x54105b(0x13f));return;}if((0x0,api_key_manager_1['isAuthenticationError'])(_0xe0fd5d)){console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+']\x20检测到认证错误(401),标记任务失败');const _0x1db304=['['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x15b)+_0x32518b+'\x20'+_0x1901e9[_0x54105b(0x112)]('\x20'),'['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x167)+_0x40f113,_0xe0fd5d][_0x54105b(0x112)]('\x0a');fs_1['default'][_0x54105b(0x146)](_0x8fe3fc,_0x1db304),await failTask(_0x4128cc,_0x535b90,'认证失败(401),API\x20Key\x20无效或服务未授权');return;}if((0x0,claude_process_1[_0x54105b(0x105)])(_0xe0fd5d)){if(_0x1974e8[_0x54105b(0x142)]<_0x273e57&&_0x5c74ce&&_0x3f9afa&&_0x16f471){_0x85aa51++;if(_0x85aa51>=_0x43678a){const _0x535a8c=(0x0,api_key_manager_1[_0x54105b(0xf6)])(_0x4128cc,_0x3f9afa[_0x54105b(0x155)]);if(_0x535a8c){_0x3f9afa=_0x535a8c,_0x85aa51=0x0;const _0x1c1cfd=(0x0,api_key_manager_1[_0x54105b(0xc7)])(_0x587f64,_0x3f9afa);updateCmdArgsSettings(_0x1901e9,_0x1c1cfd),console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0xfd)+_0x43678a+_0x54105b(0x116)+(0x0,api_key_manager_1[_0x54105b(0x12d)])(_0x535a8c)),await utils_ok_1['baseUtil'][_0x54105b(0x103)](_0xe55e28);continue;}}}else{if(_0x1974e8['elapsed']<_0x273e57){_0x85aa51++;if(_0x85aa51>=_0x43678a){console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+']\x20TPM\x20限流快速失败连续'+_0x43678a+_0x54105b(0xe9));const _0x38d357=['['+(0x0,session_1['timestamp'])()+_0x54105b(0x15b)+_0x32518b+'\x20'+_0x1901e9[_0x54105b(0x112)]('\x20'),'['+(0x0,session_1['timestamp'])()+_0x54105b(0x167)+_0x40f113,_0xe0fd5d][_0x54105b(0x112)]('\x0a');fs_1[_0x54105b(0xf8)][_0x54105b(0x146)](_0x8fe3fc,_0x38d357),await resetTaskToTodo(_0x4128cc,_0x535b90,_0x54105b(0xdb));return;}console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+']\x20检测到\x20TPM\x20限流(快速失败),'+_0xe55e28/0x3e8+_0x54105b(0x14d)+_0x85aa51+'/'+_0x43678a+')');}else _0x85aa51=0x0,console[_0x54105b(0x13e)]('['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0xe7)+_0xe55e28/0x3e8+_0x54105b(0xf5));}await utils_ok_1[_0x54105b(0x132)][_0x54105b(0x103)](_0xe55e28);continue;}}break;}const _0x15f609=['['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x15b)+_0x32518b+'\x20'+_0x1901e9[_0x54105b(0x112)]('\x20'),'['+(0x0,session_1[_0x54105b(0x16d)])()+_0x54105b(0x167)+_0x40f113,_0xe0fd5d][_0x54105b(0x112)]('\x0a');fs_1['default']['writeFileSync'](_0x8fe3fc,_0x15f609);if(_0x40f113!==0x0){console[_0x54105b(0x15d)](_0x54105b(0x13b)+_0x40f113),await failTask(_0x4128cc,_0x535b90,_0x54105b(0x14f)+_0x40f113+')');return;}if(fs_1[_0x54105b(0xf8)][_0x54105b(0x102)](_0x2e750b))console[_0x54105b(0x13e)]('['+(0x0,session_1['timestamp'])()+_0x54105b(0xfb));else{console[_0x54105b(0x15d)](_0x54105b(0x14b)),await failTask(_0x4128cc,_0x535b90,_0x54105b(0x158));return;}await finishTask(_0x4128cc,_0x535b90);}async function runTaskHandlerLoop(_0x408580){const _0x2961eb=a12_0x54c3d5;while(!![]){await handleTask(_0x408580)[_0x2961eb(0xdd)](_0x31fbc8=>console[_0x2961eb(0x15d)](_0x31fbc8)),await utils_ok_1[_0x2961eb(0x132)][_0x2961eb(0x103)](0x2710);}}async function saveTask(_0x4115a0,_0x4c25bf){const _0x2e82c0=a12_0x54c3d5,{conversationId:_0x8abb51,prompt:_0xf2f9f7,senderStaffId:_0x8d54f3,senderNickName:_0x14e18c,sessionWebhook:_0x41c7c,type:type=_0x2e82c0(0xc8)}=_0x4c25bf,_0x38228b=Date[_0x2e82c0(0x163)](),_0x463ceb=utils_ok_1[_0x2e82c0(0x175)]['mm'](_0x38228b)[_0x2e82c0(0x107)](_0x2e82c0(0xff)),_0x307b81=(0x0,session_1['getTasksDir'])(_0x4115a0,_0x8abb51)+'/'+_0x463ceb,_0x22a650=_0x307b81+_0x2e82c0(0x119),_0x5bf81c={'conversationId':_0x8abb51,'startTime':_0x38228b,'startTimeStr':_0x463ceb,'prompt':_0xf2f9f7,'senderStaffId':_0x8d54f3,'senderNickName':_0x14e18c||'','sessionWebhook':_0x41c7c,'type':type};await utils_ok_1[_0x2e82c0(0x113)][_0x2e82c0(0x162)](JSON[_0x2e82c0(0x110)](_0x5bf81c,null,0x2),_0x22a650),(0x0,session_1['debugLog'])(_0x4115a0,'任务已保存:\x20'+_0x22a650),preprocessTask(_0x4115a0,_0x8abb51,_0xf2f9f7)['then'](_0x47362a=>{const _0x1e6027=_0x2e82c0;if(!_0x47362a)return;try{const _0x408ca0=_0x307b81+'/task-doing.json',_0x3dc244=fs_1[_0x1e6027(0xf8)][_0x1e6027(0x102)](_0x408ca0)?_0x408ca0:fs_1['default'][_0x1e6027(0x102)](_0x22a650)?_0x22a650:null;if(!_0x3dc244){console[_0x1e6027(0x13e)]('['+(0x0,session_1['timestamp'])()+']\x20预处理完成但任务文件已不存在:\x20'+_0x307b81);return;}const _0x1acf30=utils_ok_1[_0x1e6027(0x113)][_0x1e6027(0x156)](_0x3dc244);_0x1acf30['title']=_0x47362a['title'],_0x1acf30['promptSimply']=_0x47362a[_0x1e6027(0x169)],fs_1[_0x1e6027(0xf8)]['writeFileSync'](_0x3dc244,JSON['stringify'](_0x1acf30,null,0x2),_0x1e6027(0xf9)),console[_0x1e6027(0x13e)]('['+(0x0,session_1[_0x1e6027(0x16d)])()+_0x1e6027(0x118)+_0x47362a[_0x1e6027(0x152)]);}catch(_0x1e1ad9){console[_0x1e6027(0x15d)]('['+(0x0,session_1['timestamp'])()+_0x1e6027(0x11d),_0x1e1ad9);}})[_0x2e82c0(0xdd)](_0x4762bf=>{const _0xe8b8a3=_0x2e82c0;console[_0xe8b8a3(0x15d)]('['+(0x0,session_1[_0xe8b8a3(0x16d)])()+_0xe8b8a3(0x150),_0x4762bf);});}
1
+ 'use strict';const a12_0x2e7d1b=a12_0x36aa;(function(_0x19110b,_0xc5a211){const _0x52e947=a12_0x36aa,_0x516576=_0x19110b();while(!![]){try{const _0x5dfb1d=parseInt(_0x52e947(0x120))/0x1*(-parseInt(_0x52e947(0xca))/0x2)+parseInt(_0x52e947(0xf9))/0x3+-parseInt(_0x52e947(0xe4))/0x4+-parseInt(_0x52e947(0x12a))/0x5+parseInt(_0x52e947(0x134))/0x6+-parseInt(_0x52e947(0xff))/0x7*(-parseInt(_0x52e947(0x105))/0x8)+-parseInt(_0x52e947(0x160))/0x9*(parseInt(_0x52e947(0x147))/0xa);if(_0x5dfb1d===_0xc5a211)break;else _0x516576['push'](_0x516576['shift']());}catch(_0x38724b){_0x516576['push'](_0x516576['shift']());}}}(a12_0x16a0,0xf046c));var __importDefault=this&&this[a12_0x2e7d1b(0x135)]||function(_0x55d547){const _0x4ff7ee=a12_0x2e7d1b;return _0x55d547&&_0x55d547[_0x4ff7ee(0x165)]?_0x55d547:{'default':_0x55d547};};Object[a12_0x2e7d1b(0xb3)](exports,a12_0x2e7d1b(0x165),{'value':!![]}),exports['formatTaskInfo']=formatTaskInfo,exports[a12_0x2e7d1b(0xd5)]=countTodoTask,exports[a12_0x2e7d1b(0x133)]=getOneTodoTask,exports[a12_0x2e7d1b(0xcf)]=finishTask,exports['cancelTask']=cancelTask,exports[a12_0x2e7d1b(0xce)]=parseTaskCancelCommand,exports[a12_0x2e7d1b(0xb2)]=handleTask,exports['runTaskHandlerLoop']=runTaskHandlerLoop,exports[a12_0x2e7d1b(0x163)]=saveTask;function a12_0x36aa(_0x51d7c2,_0x26b6be){_0x51d7c2=_0x51d7c2-0xae;const _0x16a0b1=a12_0x16a0();let _0x36aa31=_0x16a0b1[_0x51d7c2];return _0x36aa31;}const utils_ok_1=require(a12_0x2e7d1b(0x112)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a12_0x2e7d1b(0x119))),child_process_1=require('child_process'),common_1=require(a12_0x2e7d1b(0x122)),messaging_1=require(a12_0x2e7d1b(0x15b)),claude_process_1=require('./claude-process'),session_1=require(a12_0x2e7d1b(0x153)),api_key_manager_1=require(a12_0x2e7d1b(0x123)),MAX_RETRY_COUNT=0x3;function formatTaskInfo(_0x2df6e9){const _0x5ee83a=a12_0x2e7d1b,_0x3f6489=[],_0x37d841=[],_0x2fa9b7=[],_0x69bfe7=[];for(const _0x549e8d of _0x2df6e9['config'][_0x5ee83a(0xc0)]){const _0x40f04a=(0x0,session_1[_0x5ee83a(0x116)])(_0x2df6e9,_0x549e8d['conversationId']);if(!fs_1['default'][_0x5ee83a(0x110)](_0x40f04a))continue;const _0x3f4ec8=utils_ok_1['fileUtil'][_0x5ee83a(0xdd)](_0x40f04a);for(const _0xfa38be of _0x3f4ec8){const _0x4ee91c=path_1['default'][_0x5ee83a(0xda)](_0xfa38be);try{const _0x53374b=utils_ok_1[_0x5ee83a(0x10c)][_0x5ee83a(0x103)](_0xfa38be);if(!_0x53374b)continue;if(_0x4ee91c===_0x5ee83a(0xc1))_0x3f6489[_0x5ee83a(0x145)](_0x53374b);else{if(_0x4ee91c===_0x5ee83a(0xbf))_0x37d841[_0x5ee83a(0x145)](_0x53374b);else{if(_0x4ee91c===_0x5ee83a(0x16b))_0x2fa9b7[_0x5ee83a(0x145)](_0x53374b);else _0x4ee91c===_0x5ee83a(0xf7)&&_0x69bfe7['push'](_0x53374b);}}}catch{}}}_0x3f6489[_0x5ee83a(0x11a)]((_0x10646f,_0x61fa71)=>_0x10646f['startTime']-_0x61fa71[_0x5ee83a(0xd0)]),_0x37d841[_0x5ee83a(0x11a)]((_0x18b703,_0x303e90)=>_0x18b703[_0x5ee83a(0xd0)]-_0x303e90[_0x5ee83a(0xd0)]),_0x2fa9b7[_0x5ee83a(0x11a)]((_0x1478c8,_0x1f3cbf)=>_0x1f3cbf[_0x5ee83a(0xd0)]-_0x1478c8[_0x5ee83a(0xd0)]),_0x69bfe7[_0x5ee83a(0x11a)]((_0x3ffc70,_0x586164)=>_0x586164[_0x5ee83a(0xd0)]-_0x3ffc70[_0x5ee83a(0xd0)]);const _0x18d068=[];if(_0x37d841[_0x5ee83a(0xed)]>0x0){const _0x92e721=_0x37d841['map'](_0xc9342d=>'#'+_0xc9342d[_0x5ee83a(0xd0)]+'\x20'+(_0xc9342d[_0x5ee83a(0xc4)]||_0xc9342d[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0xc9342d));_0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0xb9)+_0x37d841['length']+_0x5ee83a(0xf5)+_0x92e721[_0x5ee83a(0x143)]('\x0a'));}else _0x18d068['push'](_0x5ee83a(0x104));if(_0x3f6489[_0x5ee83a(0xed)]>0x0){const _0x9475df=_0x3f6489[_0x5ee83a(0xe1)](_0x555329=>'#'+_0x555329['startTime']+'\x20'+(_0x555329[_0x5ee83a(0xc4)]||_0x555329[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0x555329));_0x18d068['push'](_0x5ee83a(0x13b)+_0x3f6489[_0x5ee83a(0xed)]+_0x5ee83a(0xf5)+_0x9475df[_0x5ee83a(0x143)]('\x0a'));}else _0x18d068[_0x5ee83a(0x145)]('**📋\x20待办队列**\x0a无');const _0x510815=_0x2fa9b7[_0x5ee83a(0xdb)](0x0,0x5);if(_0x510815['length']>0x0){const _0x2e3dd1=_0x510815[_0x5ee83a(0xe1)](_0x5ac895=>'#'+_0x5ac895[_0x5ee83a(0xd0)]+'\x20'+(_0x5ac895[_0x5ee83a(0xc4)]||_0x5ac895[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0x5ac895));_0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0x132)+_0x510815[_0x5ee83a(0xed)]+'/'+_0x2fa9b7[_0x5ee83a(0xed)]+_0x5ee83a(0xf5)+_0x2e3dd1[_0x5ee83a(0x143)]('\x0a'));}else _0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0x139));if(_0x69bfe7[_0x5ee83a(0xed)]>0x0){const _0x3c9e86=_0x69bfe7['map'](_0x2e1cf1=>'#'+_0x2e1cf1[_0x5ee83a(0xd0)]+'\x20'+(_0x2e1cf1[_0x5ee83a(0xc4)]||_0x2e1cf1[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0x2e1cf1)+(_0x2e1cf1[_0x5ee83a(0x14a)]?_0x5ee83a(0x14f)+_0x2e1cf1['retryCount']+'次)':''));_0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0x129)+_0x69bfe7['length']+_0x5ee83a(0xf5)+_0x3c9e86[_0x5ee83a(0x143)]('\x0a'));}return _0x18d068['join']('\x0a\x0a');}function a12_0x16a0(){const _0x20e502=[']\x20任务预处理完成:\x20title=\x22',',\x20需求:\x20','❌\x20任务失败:\x20','7tcypMq','filter','getForceEnabledSettingsPath','output','getJSON','**⏳\x20处理中**\x0a无','12431728SabgyC','normal','parse','pipe',']\x20任务执行超时,重置为待办','sendDingMessage','抱歉,任务处理异常...','fileUtil','原始需求:\x20','stdout','getConversationDir','existsSync','config','utils-ok','已取消\x20','任务执行超时(10分钟),终止进程','taskCfg','getTasksDir','),使用原始prompt','unknown','path','sort',']\x20TPM\x20限流连续快速失败\x20','task',']\x20任务处理完成','--print','直接返回JSON,不要markdown代码块或其他内容。','48969jAUSMO','data','../common','./api-key-manager','indexOf','--agent','exitCode',']\x20执行命令:\x20','TPM限流快速失败次数过多','**❌\x20失败\x20(','424725QRATtL','addSuffixToFile',';\x20最后将回复内容保存至:\x20',']\x20任务预处理异常:','-failed.json','),\x20','senderStaffId','sessionWebhook','**✅\x20最近完成\x20(top\x20','getOneTodoTask','228792yQVEHs','__importDefault','dateUtil','/task-doing.json','--settings','**✅\x20最近完成**\x0a无','saveFileStr','**📋\x20待办队列\x20(','match','bypassPermissions','\x0a...共取消\x20','/task.json','.claude','-doing','resolveClaudeSettingsPath','join',']\x20预处理完成但任务文件已不存在:\x20','push',']\x20取消任务失败:\x20','676150lABCLG',']\x20更新任务重试计数失败:','timedOut','retryCount',']\x20检测到认证错误(401),标记任务失败','/result.md','ignore','title','\x20(重试','apiKey','pickValidApiKey','prompt','./session','cron','catch','kill','...','sleep','trim','isQuotaExhaustedError','./messaging','rename',']\x20无可用配额,任务重置为待办','markdown','close','171Tjbqrg','conversationId','s\x20后重试\x20(','saveTask',']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,','__esModule','write','\x0a原因:\x20','认证失败(401),API\x20Key\x20无效或服务未授权','apiKeyCfg','SIGKILL','task-done.json','YYYY-MM-DD-HH-mm-ss',']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20','promptSimply','error',']\x20任务预处理结果已更新:\x20','handleTask','defineProperty','splice','skill','\x20用户:\x20','stderr','\x20个待办任务:\x0a','**⏳\x20处理中\x20(','stringify','):\x20','settings.json','进程执行错误:\x20','未发现待办任务...','task-doing.json','conversations','task.json','格式:\x20{\x22title\x22:\x22简短标题(15字以内)\x22,\x22promptSimply\x22:\x22优化后的需求描述,保留原始需求的所有关键信息,使描述更清晰、结构化\x22}','无可用配额','senderNickName','任务已保存:\x20','baseUtil',']\x20退出码:\x20','rotateApiKey','message','8WHKcNj',']\x20TPM\x20限流快速失败连续','🔄\x20开始处理任务:\x20','default','parseTaskCancelCommand','finishTask','startTime','debugLog','writeFileSync','utf-8','getConversationConfig','countTodoTask','任务未按预期处理','settingLabel','now','format','basename','slice','timestamp','dirWalker','toString',']\x20任务预处理失败(退出码:',']\x20任务处理中:\x20','map','type',']\x20任务预处理进程错误:','1457456CGlkIJ','elapsed','任务文件解析失败,跳过:\x20',']\x20切换到\x20API\x20Key\x20模式','spawn',']\x20任务重置为待办\x20(重试','任务目录不存在:\x20','getFileStr','未找到匹配的待办任务:\x20','length','log','-doing.json',']\x20已取消任务:\x20#','\x20个任务','SIGTERM','读取任务文件失败:\x20','replace',')**\x0a',']\x20任务预处理JSON解析失败,使用原始prompt:\x20','task-failed.json',']\x20任务重试次数已达上限(','3965832HytBOF',']\x20任务预处理返回格式不正确,使用原始prompt','ensureSettingsWithApiKey'];a12_0x16a0=function(){return _0x20e502;};return a12_0x16a0();}function truncatePrompt(_0x5b7279,_0x15519e=0x50){const _0x53dcc2=a12_0x2e7d1b,_0x4f1455=_0x5b7279[_0x53dcc2(0xf4)](/\n/g,'\x20')[_0x53dcc2(0x159)]();return _0x4f1455[_0x53dcc2(0xed)]>_0x15519e?_0x4f1455[_0x53dcc2(0xdb)](0x0,_0x15519e)+_0x53dcc2(0x157):_0x4f1455;}function taskDisplayName(_0x2e3197){const _0x42b83=a12_0x2e7d1b;if(_0x2e3197['title'])return _0x2e3197[_0x42b83(0x14e)];return truncatePrompt(_0x2e3197['prompt']);}async function preprocessTask(_0x7dd3e,_0x571428,_0x1d4df7){const _0x238a40=a12_0x2e7d1b,_0x4cf799=(0x0,session_1['getConversationDir'])(_0x7dd3e,_0x571428),_0x331cbe='claude',_0x53c362=['--permission-mode','bypassPermissions',_0x238a40(0x11e)],_0x5da332=(0x0,claude_process_1[_0x238a40(0x142)])(_0x7dd3e,_0x4cf799);_0x5da332&&_0x53c362[_0x238a40(0x145)](_0x238a40(0x138),_0x5da332);const _0x174d8b=['请对以下任务需求进行预处理,生成简短标题和优化后的需求描述。',_0x238a40(0x11f),_0x238a40(0xc2),'',_0x238a40(0x10d)+_0x1d4df7]['join']('\x0a');_0x53c362['push'](_0x174d8b);const _0x2b69cc=0x7530;return new Promise(_0x2005af=>{const _0x254409=_0x238a40;let _0x1df5e7='';const _0x1b33f9=(0x0,child_process_1[_0x254409(0xe8)])(_0x331cbe,_0x53c362,{'cwd':_0x4cf799,'stdio':[_0x254409(0x14d),_0x254409(0x108),_0x254409(0x108)]}),_0x2a1e22=setTimeout(()=>{const _0x579186=_0x254409;_0x1b33f9[_0x579186(0x156)](_0x579186(0xf2)),setTimeout(()=>{const _0x5e70b6=_0x579186;try{_0x1b33f9['kill'](_0x5e70b6(0x16a));}catch{}},0xbb8);},_0x2b69cc);_0x1b33f9[_0x254409(0x10e)]['on'](_0x254409(0x121),_0x325273=>{const _0x2605e8=_0x254409;_0x1df5e7+=_0x325273[_0x2605e8(0xde)]();}),_0x1b33f9['stderr']['on'](_0x254409(0x121),()=>{}),_0x1b33f9['on'](_0x254409(0x15f),_0x291c7c=>{const _0x10ac02=_0x254409;clearTimeout(_0x2a1e22);if(_0x291c7c!==0x0||!_0x1df5e7[_0x10ac02(0x159)]()){console[_0x10ac02(0xee)]('['+(0x0,session_1[_0x10ac02(0xdc)])()+_0x10ac02(0xdf)+_0x291c7c+_0x10ac02(0x117)),_0x2005af(null);return;}try{let _0x9ba4dd=_0x1df5e7[_0x10ac02(0x159)]();const _0x1a74fa=_0x9ba4dd[_0x10ac02(0x13c)](/\{[\s\S]*\}/);if(_0x1a74fa)_0x9ba4dd=_0x1a74fa[0x0];const _0x191109=JSON[_0x10ac02(0x107)](_0x9ba4dd);_0x191109[_0x10ac02(0x14e)]&&_0x191109[_0x10ac02(0xaf)]?(console[_0x10ac02(0xee)]('['+(0x0,session_1[_0x10ac02(0xdc)])()+_0x10ac02(0xfc)+_0x191109['title']+'\x22'),_0x2005af({'title':String(_0x191109[_0x10ac02(0x14e)]),'promptSimply':String(_0x191109[_0x10ac02(0xaf)])})):(console[_0x10ac02(0xee)]('['+(0x0,session_1[_0x10ac02(0xdc)])()+_0x10ac02(0xfa)),_0x2005af(null));}catch(_0x2cf787){console['log']('['+(0x0,session_1['timestamp'])()+_0x10ac02(0xf6)+_0x2cf787),_0x2005af(null);}}),_0x1b33f9['on'](_0x254409(0xb0),_0x265873=>{const _0x5bfe4e=_0x254409;clearTimeout(_0x2a1e22),console['error']('['+(0x0,session_1[_0x5bfe4e(0xdc)])()+_0x5bfe4e(0xe3),_0x265873),_0x2005af(null);});});}function countTodoTask(_0x4ae3c5){const _0x24114e=a12_0x2e7d1b;let _0x25f10a=0x0;for(const _0x1b5f42 of _0x4ae3c5[_0x24114e(0x111)][_0x24114e(0xc0)]){const _0x3553bd=(0x0,session_1[_0x24114e(0x116)])(_0x4ae3c5,_0x1b5f42[_0x24114e(0x161)]);if(fs_1[_0x24114e(0xcd)]['existsSync'](_0x3553bd)){const _0x2e6097=utils_ok_1['fileUtil'][_0x24114e(0xdd)](_0x3553bd),_0x4386bf=_0x2e6097[_0x24114e(0x100)](_0x37c39b=>path_1[_0x24114e(0xcd)][_0x24114e(0xda)](_0x37c39b)===_0x24114e(0xc1));_0x25f10a+=_0x4386bf[_0x24114e(0xed)];}}return _0x25f10a;}async function getOneTodoTask(_0x3bd48c){const _0x573a70=a12_0x2e7d1b;for(const _0x52bacc of _0x3bd48c['config'][_0x573a70(0xc0)]){const _0x564be3=(0x0,session_1[_0x573a70(0x116)])(_0x3bd48c,_0x52bacc['conversationId']);if(!fs_1[_0x573a70(0xcd)][_0x573a70(0x110)](_0x564be3))continue;const _0x2a0c42=utils_ok_1[_0x573a70(0x10c)][_0x573a70(0xdd)](_0x564be3),_0x4c9dfd=_0x2a0c42[_0x573a70(0x100)](_0x5ed639=>path_1[_0x573a70(0xcd)]['basename'](_0x5ed639)==='task.json');if(_0x4c9dfd[_0x573a70(0xed)]===0x0)continue;const _0x3ed1ad=_0x4c9dfd[_0x573a70(0xe1)](_0x153462=>{const _0x46c435=_0x573a70;try{const _0x2d4c96=utils_ok_1[_0x46c435(0x10c)][_0x46c435(0x103)](_0x153462);return _0x2d4c96?{'file':_0x153462,'task':_0x2d4c96}:null;}catch{return console['error'](_0x46c435(0xe6)+_0x153462),null;}})[_0x573a70(0x100)](_0x329add=>_0x329add!==null)[_0x573a70(0x11a)]((_0x5e89cd,_0x117813)=>_0x5e89cd[_0x573a70(0x11c)][_0x573a70(0xd0)]-_0x117813[_0x573a70(0x11c)][_0x573a70(0xd0)]);if(_0x3ed1ad[_0x573a70(0xed)]>0x0){const {file:_0x320b21,task:_0x110d35}=_0x3ed1ad[0x0];return common_1['utils'][_0x573a70(0x12b)](_0x320b21,_0x573a70(0x141)),_0x110d35;}}return undefined;}async function finishTask(_0x16def5,_0x2349ae){const _0x22044e=a12_0x2e7d1b,_0x7f7eea=_0x2349ae+_0x22044e(0x137);let _0x4ef465;try{_0x4ef465=utils_ok_1[_0x22044e(0x10c)]['getJSON'](_0x7f7eea);}catch(_0x560ea8){console['error'](_0x22044e(0xf3)+_0x7f7eea,_0x560ea8);return;}const _0x12a599=_0x2349ae+_0x22044e(0x14c),_0xb02f7f=fs_1['default'][_0x22044e(0x110)](_0x12a599)?utils_ok_1[_0x22044e(0x10c)][_0x22044e(0xeb)](_0x12a599):_0x22044e(0x10b);await(0x0,messaging_1[_0x22044e(0x10a)])(_0x16def5,{'conversationId':_0x4ef465[_0x22044e(0x161)],'sessionWebhook':_0x4ef465[_0x22044e(0x131)],'atUserId':_0x4ef465[_0x22044e(0x130)],'content':_0xb02f7f,'msgType':_0x22044e(0x15e)});const _0x4f4f22=_0x7f7eea['replace']('-doing.json','-done.json');utils_ok_1[_0x22044e(0x10c)]['rename'](_0x7f7eea,_0x4f4f22);}async function failTask(_0x41d2c5,_0x417e69,_0x30cc74){const _0x4fbcb4=a12_0x2e7d1b,_0x316e49=_0x417e69+_0x4fbcb4(0x137);let _0x4d4499;try{_0x4d4499=utils_ok_1['fileUtil'][_0x4fbcb4(0x103)](_0x316e49);}catch(_0x50307a){console['error'](_0x4fbcb4(0xf3)+_0x316e49,_0x50307a);return;}await(0x0,messaging_1['sendDingMessage'])(_0x41d2c5,{'conversationId':_0x4d4499[_0x4fbcb4(0x161)],'sessionWebhook':_0x4d4499['sessionWebhook'],'atUserId':_0x4d4499['senderStaffId'],'content':_0x4fbcb4(0xfe)+taskDisplayName(_0x4d4499)+_0x4fbcb4(0x167)+_0x30cc74,'msgType':_0x4fbcb4(0x15e)});const _0x1c48d2=_0x316e49['replace'](_0x4fbcb4(0xef),_0x4fbcb4(0x12e));utils_ok_1[_0x4fbcb4(0x10c)][_0x4fbcb4(0x15c)](_0x316e49,_0x1c48d2);}async function resetTaskToTodo(_0x1fad9a,_0x1c936c,_0x58a089){const _0x3b0329=a12_0x2e7d1b,_0x5b7986=_0x1c936c+_0x3b0329(0x137),_0x3eaf7b=_0x1c936c+_0x3b0329(0x13f);if(!fs_1[_0x3b0329(0xcd)][_0x3b0329(0x110)](_0x5b7986))return![];try{const _0x3c7643=utils_ok_1['fileUtil']['getJSON'](_0x5b7986),_0x3b4663=(_0x3c7643['retryCount']||0x0)+0x1;if(_0x3b4663>=MAX_RETRY_COUNT)return console[_0x3b0329(0xee)]('['+(0x0,session_1['timestamp'])()+_0x3b0329(0xf8)+_0x3b4663+'/'+MAX_RETRY_COUNT+'),标记为失败:\x20'+(_0x3c7643['title']||_0x3c7643[_0x3b0329(0x152)])),_0x3c7643[_0x3b0329(0x14a)]=_0x3b4663,fs_1[_0x3b0329(0xcd)]['writeFileSync'](_0x5b7986,JSON[_0x3b0329(0xba)](_0x3c7643,null,0x2),_0x3b0329(0xd3)),await failTask(_0x1fad9a,_0x1c936c,_0x58a089+'\x20(已重试'+_0x3b4663+'次)'),![];_0x3c7643[_0x3b0329(0x14a)]=_0x3b4663,fs_1[_0x3b0329(0xcd)][_0x3b0329(0xd2)](_0x5b7986,JSON[_0x3b0329(0xba)](_0x3c7643,null,0x2),_0x3b0329(0xd3)),console['log']('['+(0x0,session_1[_0x3b0329(0xdc)])()+_0x3b0329(0xe9)+_0x3b4663+'/'+MAX_RETRY_COUNT+_0x3b0329(0xbb)+(_0x3c7643[_0x3b0329(0x14e)]||_0x3c7643['prompt']));}catch(_0x717337){console[_0x3b0329(0xb0)]('['+(0x0,session_1[_0x3b0329(0xdc)])()+_0x3b0329(0x148),_0x717337);}return fs_1['default'][_0x3b0329(0x110)](_0x5b7986)&&utils_ok_1[_0x3b0329(0x10c)][_0x3b0329(0x15c)](_0x5b7986,_0x3eaf7b),!![];}function cancelTask(_0x1e742e,_0x120fd0,_0x59d0a8){const _0xd93c83=a12_0x2e7d1b,_0x4c6f69=[],_0x3d0e30=_0x120fd0[_0xd93c83(0x159)](),_0x2bb5ad=_0x59d0a8?_0x1e742e[_0xd93c83(0x111)][_0xd93c83(0xc0)][_0xd93c83(0x100)](_0x294087=>_0x294087[_0xd93c83(0x161)]===_0x59d0a8):_0x1e742e[_0xd93c83(0x111)][_0xd93c83(0xc0)];for(const _0x505431 of _0x2bb5ad){const _0x3171c7=(0x0,session_1[_0xd93c83(0x116)])(_0x1e742e,_0x505431[_0xd93c83(0x161)]);if(!fs_1[_0xd93c83(0xcd)][_0xd93c83(0x110)](_0x3171c7))continue;const _0xfe54d6=utils_ok_1[_0xd93c83(0x10c)][_0xd93c83(0xdd)](_0x3171c7),_0x14f7b1=_0xfe54d6[_0xd93c83(0x100)](_0x1c6b59=>path_1[_0xd93c83(0xcd)]['basename'](_0x1c6b59)===_0xd93c83(0xc1));for(const _0x5f3c2c of _0x14f7b1){try{const _0x335ea0=utils_ok_1[_0xd93c83(0x10c)]['getJSON'](_0x5f3c2c);if(!_0x335ea0)continue;if(String(_0x335ea0[_0xd93c83(0xd0)])===_0x3d0e30){_0x4c6f69['push']({'file':_0x5f3c2c,'task':_0x335ea0});continue;}if(_0x335ea0['title']&&_0x335ea0[_0xd93c83(0x14e)]['includes'](_0x3d0e30)){_0x4c6f69[_0xd93c83(0x145)]({'file':_0x5f3c2c,'task':_0x335ea0});continue;}}catch{}}}if(_0x4c6f69[_0xd93c83(0xed)]===0x0)return _0xd93c83(0xec)+_0x3d0e30;let _0x1557d3=0x0;for(const {file:_0x3e2e49,task:_0x248a04}of _0x4c6f69){try{fs_1[_0xd93c83(0xcd)]['unlinkSync'](_0x3e2e49),_0x1557d3++,console[_0xd93c83(0xee)]('['+(0x0,session_1[_0xd93c83(0xdc)])()+_0xd93c83(0xf0)+_0x248a04[_0xd93c83(0xd0)]+'\x20'+(_0x248a04[_0xd93c83(0x14e)]||_0x248a04[_0xd93c83(0x152)]));}catch(_0x402559){console[_0xd93c83(0xb0)]('['+(0x0,session_1[_0xd93c83(0xdc)])()+_0xd93c83(0x146)+_0x3e2e49,_0x402559);}}const _0x869ec4=_0x4c6f69[_0xd93c83(0xdb)](0x0,0x5)[_0xd93c83(0xe1)](_0x502e5e=>'#'+_0x502e5e['task'][_0xd93c83(0xd0)]+'\x20'+taskDisplayName(_0x502e5e[_0xd93c83(0x11c)]))[_0xd93c83(0x143)]('\x0a'),_0x22d048=_0x1557d3>0x5?_0xd93c83(0x13e)+_0x1557d3+_0xd93c83(0xf1):'';return _0xd93c83(0x113)+_0x1557d3+_0xd93c83(0xb8)+_0x869ec4+_0x22d048;}function parseTaskCancelCommand(_0xebea2){const _0x32fb27=a12_0x2e7d1b,_0x367d1b=_0xebea2[_0x32fb27(0x159)](),_0x48945d=_0x367d1b[_0x32fb27(0x13c)](/^\/task\s+cancel\s+(.+)$/i);return _0x48945d?_0x48945d[0x1]['trim']():null;}function updateCmdArgsSettings(_0x26fafe,_0x2aad57){const _0x4078d9=a12_0x2e7d1b,_0x244692=_0x26fafe[_0x4078d9(0x124)]('--settings');_0x244692!==-0x1&&_0x26fafe[_0x4078d9(0xb4)](_0x244692,0x2),_0x2aad57&&_0x26fafe[_0x4078d9(0x145)]('--settings',_0x2aad57);}async function handleTask(_0x498fb4){const _0x39e939=a12_0x2e7d1b,_0x9a094=await getOneTodoTask(_0x498fb4);if(!_0x9a094){(0x0,session_1[_0x39e939(0xd1)])(_0x498fb4,_0x39e939(0xbe));return;}const _0x4de60f=(0x0,session_1[_0x39e939(0xd4)])(_0x498fb4,_0x9a094[_0x39e939(0x161)]),_0x339ce8=(0x0,session_1[_0x39e939(0x10f)])(_0x498fb4,_0x9a094[_0x39e939(0x161)]),_0xe7fd5=(0x0,session_1['getTasksDir'])(_0x498fb4,_0x9a094['conversationId'])+'/'+_0x9a094['startTimeStr'];if(!fs_1['default'][_0x39e939(0x110)](_0xe7fd5)){console['error'](_0x39e939(0xea)+_0xe7fd5);return;}_0x9a094[_0x39e939(0xe2)]!==_0x39e939(0x154)&&await(0x0,messaging_1[_0x39e939(0x10a)])(_0x498fb4,{'conversationId':_0x9a094['conversationId'],'sessionWebhook':_0x9a094[_0x39e939(0x131)],'atUserId':_0x9a094[_0x39e939(0x130)],'content':_0x39e939(0xcc)+taskDisplayName(_0x9a094)});const _0x13c297=_0xe7fd5+_0x39e939(0x14c),_0x1c5a09=_0xe7fd5+'/task.log';console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xe0)+(_0x9a094[_0x39e939(0x14e)]||_0x9a094[_0x39e939(0x152)]));const _0x4e0037=_0x9a094[_0x39e939(0xc4)]&&_0x9a094[_0x39e939(0x130)]?_0x9a094[_0x39e939(0xc4)]+'('+_0x9a094[_0x39e939(0x130)]+_0x39e939(0x12f):_0x39e939(0x118),_0x22f9df=_0x498fb4[_0x39e939(0x111)][_0x39e939(0x169)],_0x1aa2aa=(0x0,api_key_manager_1[_0x39e939(0x101)])(_0x339ce8);let _0x5ba62f=![],_0x2d34c3=null;if(_0x1aa2aa)console['log']('['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20检测到\x20FORCE_ENABLE,强制使用\x20settings-ding.json');else{if(_0x22f9df){_0x2d34c3=(0x0,api_key_manager_1[_0x39e939(0x151)])(_0x498fb4);if(!_0x2d34c3){console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x15d)),await resetTaskToTodo(_0x498fb4,_0xe7fd5,_0x39e939(0xc3));return;}_0x5ba62f=!![],console[_0x39e939(0xee)]('['+(0x0,session_1['timestamp'])()+_0x39e939(0xe7));}}const _0x430ffd=_0x4de60f?.[_0x39e939(0x115)]?.[_0x39e939(0xb5)],_0x380f78=_0x4de60f?.['agent'],_0x286ef1=_0x9a094[_0x39e939(0xaf)]||_0x9a094['prompt'],_0x5c5173=((_0x430ffd?'/'+_0x430ffd:'')+_0x39e939(0xb6)+_0x4e0037+_0x39e939(0xfd)+_0x286ef1+_0x39e939(0x12c)+_0x13c297)[_0x39e939(0x159)](),_0x546169=['--permission-mode',_0x39e939(0x13d),'--print',_0x5c5173];if(_0x1aa2aa)_0x546169[_0x39e939(0x145)]('--settings',_0x1aa2aa);else{if(_0x5ba62f&&_0x2d34c3){const _0x1d8955=(0x0,api_key_manager_1['ensureSettingsWithApiKey'])(_0x339ce8,_0x2d34c3);_0x546169[_0x39e939(0x145)](_0x39e939(0x138),_0x1d8955);}else{if(!_0x22f9df){const _0x39e4ff=path_1[_0x39e939(0xcd)]['join'](_0x339ce8,_0x39e939(0x140),_0x39e939(0xbc));fs_1[_0x39e939(0xcd)][_0x39e939(0x110)](_0x39e4ff)&&(_0x546169[_0x39e939(0x145)]('--settings',_0x39e4ff),console['log']('['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20自动检测到\x20settings.json:\x20'+_0x39e4ff));}}}_0x380f78&&_0x546169[_0x39e939(0x145)](_0x39e939(0x125),_0x380f78);(0x0,session_1[_0x39e939(0xd1)])(_0x498fb4,'执行命令:\x20claude\x20'+_0x546169[_0x39e939(0x143)]('\x20'));const _0x39f159=0xa*0x3c*0x3e8,_0x4b9c80=0x14,_0x3beacf=0x2710,_0x1f42b6=0x2710,_0x5149c3='claude',_0x546417=_0x28fd19=>{const _0xf61af5=_0x39e939,_0x4c52af=Date[_0xf61af5(0xd8)]();return new Promise(_0x33f507=>{const _0x42db81=_0xf61af5,_0x3c3f7=[];let _0xbca95b=![],_0x12d047=![];const _0x1728c3=(0x0,child_process_1[_0x42db81(0xe8)])(_0x5149c3,_0x28fd19,{'cwd':_0x339ce8,'stdio':[_0x42db81(0x14d),'pipe',_0x42db81(0x108)]}),_0x14a1b7=setTimeout(()=>{const _0x2e79e0=_0x42db81;!_0xbca95b&&(_0x12d047=!![],console['error'](_0x2e79e0(0x114)),_0x1728c3[_0x2e79e0(0x156)]('SIGTERM'),setTimeout(()=>{const _0x55ee04=_0x2e79e0;if(!_0xbca95b)_0x1728c3['kill'](_0x55ee04(0x16a));},0x1388));},_0x39f159);_0x1728c3['stdout']['on'](_0x42db81(0x121),_0x3b8a5c=>{const _0x4f84fb=_0x42db81,_0x2d632a=_0x3b8a5c[_0x4f84fb(0xde)]();process['stdout'][_0x4f84fb(0x166)](_0x2d632a),_0x3c3f7[_0x4f84fb(0x145)](_0x2d632a);}),_0x1728c3['stderr']['on'](_0x42db81(0x121),_0x40feb7=>{const _0x4cfd13=_0x42db81,_0x2df737=_0x40feb7[_0x4cfd13(0xde)]();process[_0x4cfd13(0xb7)][_0x4cfd13(0x166)](_0x2df737),_0x3c3f7[_0x4cfd13(0x145)](_0x2df737);}),_0x1728c3['on']('close',_0x476aab=>{const _0x2d4c37=_0x42db81;_0xbca95b=!![],clearTimeout(_0x14a1b7),_0x33f507({'exitCode':_0x476aab??0x1,'output':_0x3c3f7['join'](''),'elapsed':Date[_0x2d4c37(0xd8)]()-_0x4c52af,'timedOut':_0x12d047});}),_0x1728c3['on']('error',_0x3a08d1=>{const _0x4a9112=_0x42db81;console[_0x4a9112(0xb0)]('进程执行错误:',_0x3a08d1),_0x3c3f7[_0x4a9112(0x145)](_0x4a9112(0xbd)+_0x3a08d1[_0x4a9112(0xc9)]);});});};let _0x334fde,_0x942b1f,_0x1787b1=![],_0x71aaf4=0x0;while(!![]){const _0x233345=await _0x546417(_0x546169);_0x334fde=_0x233345[_0x39e939(0x126)],_0x942b1f=_0x233345[_0x39e939(0x102)],_0x1787b1=_0x233345[_0x39e939(0x149)];if(_0x334fde!==0x0){if(_0x1787b1){console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x109));const _0x2ba18c=['['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20执行命令:\x20'+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20超时('+_0x39f159/0x3e8+'s)',_0x942b1f]['join']('\x0a');fs_1[_0x39e939(0xcd)][_0x39e939(0xd2)](_0x1c5a09,_0x2ba18c),await resetTaskToTodo(_0x498fb4,_0xe7fd5,'执行超时');return;}if((0x0,api_key_manager_1[_0x39e939(0x15a)])(_0x942b1f)&&_0x22f9df){if(!_0x5ba62f){_0x2d34c3=(0x0,api_key_manager_1[_0x39e939(0x151)])(_0x498fb4);if(_0x2d34c3){_0x5ba62f=!![],_0x71aaf4=0x0;const _0x5eae94=(0x0,api_key_manager_1[_0x39e939(0xfb)])(_0x339ce8,_0x2d34c3);updateCmdArgsSettings(_0x546169,_0x5eae94),console[_0x39e939(0xee)]('['+(0x0,session_1['timestamp'])()+_0x39e939(0xe7));continue;}}else{if(_0x2d34c3){const _0x50f15a=(0x0,api_key_manager_1[_0x39e939(0xc8)])(_0x498fb4,_0x2d34c3[_0x39e939(0x150)]);if(_0x50f15a){_0x2d34c3=_0x50f15a,_0x71aaf4=0x0;const _0x388525=(0x0,api_key_manager_1[_0x39e939(0xfb)])(_0x339ce8,_0x2d34c3);updateCmdArgsSettings(_0x546169,_0x388525),console[_0x39e939(0xee)]('['+(0x0,session_1['timestamp'])()+_0x39e939(0xae)+(0x0,api_key_manager_1['settingLabel'])(_0x50f15a));continue;}}}console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x15d));const _0xde9558=['['+(0x0,session_1['timestamp'])()+']\x20执行命令:\x20'+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xc7)+_0x334fde,_0x942b1f][_0x39e939(0x143)]('\x0a');fs_1['default'][_0x39e939(0xd2)](_0x1c5a09,_0xde9558),await resetTaskToTodo(_0x498fb4,_0xe7fd5,'无可用配额(429)');return;}if((0x0,api_key_manager_1['isAuthenticationError'])(_0x942b1f)){console['log']('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x14b));const _0xc31041=['['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x127)+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1['timestamp'])()+']\x20退出码:\x20'+_0x334fde,_0x942b1f]['join']('\x0a');fs_1[_0x39e939(0xcd)][_0x39e939(0xd2)](_0x1c5a09,_0xc31041),await failTask(_0x498fb4,_0xe7fd5,_0x39e939(0x168));return;}if((0x0,claude_process_1['isRetryableApiError'])(_0x942b1f)){if(_0x233345[_0x39e939(0xe5)]<_0x1f42b6&&_0x5ba62f&&_0x2d34c3&&_0x22f9df){_0x71aaf4++;if(_0x71aaf4>=_0x4b9c80){const _0x1b2865=(0x0,api_key_manager_1[_0x39e939(0xc8)])(_0x498fb4,_0x2d34c3[_0x39e939(0x150)]);if(_0x1b2865){_0x2d34c3=_0x1b2865,_0x71aaf4=0x0;const _0x216aed=(0x0,api_key_manager_1[_0x39e939(0xfb)])(_0x339ce8,_0x2d34c3);updateCmdArgsSettings(_0x546169,_0x216aed),console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x11b)+_0x4b9c80+'\x20次,切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x39e939(0xd7)])(_0x1b2865)),await utils_ok_1[_0x39e939(0xc6)][_0x39e939(0x158)](_0x3beacf);continue;}}}else{if(_0x233345['elapsed']<_0x1f42b6){_0x71aaf4++;if(_0x71aaf4>=_0x4b9c80){console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xcb)+_0x4b9c80+'次,重置任务为待办');const _0x104dc7=['['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x127)+_0x5149c3+'\x20'+_0x546169['join']('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20退出码:\x20'+_0x334fde,_0x942b1f]['join']('\x0a');fs_1[_0x39e939(0xcd)][_0x39e939(0xd2)](_0x1c5a09,_0x104dc7),await resetTaskToTodo(_0x498fb4,_0xe7fd5,_0x39e939(0x128));return;}console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20检测到\x20TPM\x20限流(快速失败),'+_0x3beacf/0x3e8+_0x39e939(0x162)+_0x71aaf4+'/'+_0x4b9c80+')');}else _0x71aaf4=0x0,console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x164)+_0x3beacf/0x3e8+'s\x20后重试');}await utils_ok_1[_0x39e939(0xc6)][_0x39e939(0x158)](_0x3beacf);continue;}}break;}const _0x3a69ac=['['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20执行命令:\x20'+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xc7)+_0x334fde,_0x942b1f][_0x39e939(0x143)]('\x0a');fs_1[_0x39e939(0xcd)]['writeFileSync'](_0x1c5a09,_0x3a69ac);if(_0x334fde!==0x0){console[_0x39e939(0xb0)]('命令执行失败,\x20退出码:\x20'+_0x334fde),await failTask(_0x498fb4,_0xe7fd5,'执行失败(退出码:\x20'+_0x334fde+')');return;}if(fs_1['default'][_0x39e939(0x110)](_0x13c297))console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x11d));else{console[_0x39e939(0xb0)](_0x39e939(0xd6)),await failTask(_0x498fb4,_0xe7fd5,'未生成结果文件');return;}await finishTask(_0x498fb4,_0xe7fd5);}async function runTaskHandlerLoop(_0x5f1a2f){const _0xd3a4b9=a12_0x2e7d1b;while(!![]){await handleTask(_0x5f1a2f)['catch'](_0x5c497a=>console['error'](_0x5c497a)),await utils_ok_1[_0xd3a4b9(0xc6)][_0xd3a4b9(0x158)](0x2710);}}async function saveTask(_0x24f64a,_0x49a3a1){const _0x4c67f7=a12_0x2e7d1b,{conversationId:_0x5b4fcd,prompt:_0x4606f5,senderStaffId:_0x5d8636,senderNickName:_0x2d0063,sessionWebhook:_0x4f87fc,type:type=_0x4c67f7(0x106)}=_0x49a3a1,_0x2cf293=Date['now'](),_0x30b070=utils_ok_1[_0x4c67f7(0x136)]['mm'](_0x2cf293)[_0x4c67f7(0xd9)](_0x4c67f7(0x16c)),_0xadf4c7=(0x0,session_1['getTasksDir'])(_0x24f64a,_0x5b4fcd)+'/'+_0x30b070,_0xe73409=_0xadf4c7+'/task.json',_0x1f69f9={'conversationId':_0x5b4fcd,'startTime':_0x2cf293,'startTimeStr':_0x30b070,'prompt':_0x4606f5,'senderStaffId':_0x5d8636,'senderNickName':_0x2d0063||'','sessionWebhook':_0x4f87fc,'type':type};await utils_ok_1[_0x4c67f7(0x10c)][_0x4c67f7(0x13a)](JSON[_0x4c67f7(0xba)](_0x1f69f9,null,0x2),_0xe73409),(0x0,session_1['debugLog'])(_0x24f64a,_0x4c67f7(0xc5)+_0xe73409),preprocessTask(_0x24f64a,_0x5b4fcd,_0x4606f5)['then'](_0x3e438a=>{const _0x10b2d7=_0x4c67f7;if(!_0x3e438a)return;try{const _0x395afa=_0xadf4c7+'/task-doing.json',_0x45bfff=fs_1['default'][_0x10b2d7(0x110)](_0x395afa)?_0x395afa:fs_1['default'][_0x10b2d7(0x110)](_0xe73409)?_0xe73409:null;if(!_0x45bfff){console[_0x10b2d7(0xee)]('['+(0x0,session_1['timestamp'])()+_0x10b2d7(0x144)+_0xadf4c7);return;}const _0x1b8298=utils_ok_1[_0x10b2d7(0x10c)][_0x10b2d7(0x103)](_0x45bfff);_0x1b8298['title']=_0x3e438a[_0x10b2d7(0x14e)],_0x1b8298[_0x10b2d7(0xaf)]=_0x3e438a['promptSimply'],fs_1['default'][_0x10b2d7(0xd2)](_0x45bfff,JSON[_0x10b2d7(0xba)](_0x1b8298,null,0x2),_0x10b2d7(0xd3)),console[_0x10b2d7(0xee)]('['+(0x0,session_1['timestamp'])()+_0x10b2d7(0xb1)+_0x3e438a['title']);}catch(_0xf31941){console[_0x10b2d7(0xb0)]('['+(0x0,session_1[_0x10b2d7(0xdc)])()+']\x20更新任务预处理结果失败:',_0xf31941);}})[_0x4c67f7(0x155)](_0x4911ba=>{const _0x269732=_0x4c67f7;console[_0x269732(0xb0)]('['+(0x0,session_1[_0x269732(0xdc)])()+_0x269732(0x12d),_0x4911ba);});}
@@ -1 +1 @@
1
- 'use strict';var a13_0x4bc521=a13_0x4055;(function(_0x3e7a01,_0x408794){var _0x213511=a13_0x4055,_0x5e750b=_0x3e7a01();while(!![]){try{var _0x259958=parseInt(_0x213511(0xa7))/0x1*(parseInt(_0x213511(0xb2))/0x2)+-parseInt(_0x213511(0xa6))/0x3*(-parseInt(_0x213511(0xae))/0x4)+-parseInt(_0x213511(0xb0))/0x5*(parseInt(_0x213511(0xaf))/0x6)+parseInt(_0x213511(0xac))/0x7+parseInt(_0x213511(0xad))/0x8*(-parseInt(_0x213511(0xa9))/0x9)+parseInt(_0x213511(0xab))/0xa+-parseInt(_0x213511(0xb1))/0xb;if(_0x259958===_0x408794)break;else _0x5e750b['push'](_0x5e750b['shift']());}catch(_0x5a54da){_0x5e750b['push'](_0x5e750b['shift']());}}}(a13_0x58f6,0x6daca));function a13_0x4055(_0x43a275,_0x3d0509){_0x43a275=_0x43a275-0xa6;var _0x58f6d1=a13_0x58f6();var _0x405544=_0x58f6d1[_0x43a275];return _0x405544;}function a13_0x58f6(){var _0x2ba66a=['48744cTdnWp','22335ivCfZv','12yEwBHF','__esModule','984159gpYSSp','defineProperty','2892910vmgMyS','4599294vcQoMt','8rZEwjV','244iPpxfL','6Uplyyt','1699195DbnRZr','8739786ATgsWj'];a13_0x58f6=function(){return _0x2ba66a;};return a13_0x58f6();}Object[a13_0x4bc521(0xaa)](exports,a13_0x4bc521(0xa8),{'value':!![]});
1
+ 'use strict';var a13_0x11954e=a13_0x36a2;(function(_0x1659cc,_0x3c0c58){var _0x3b824c=a13_0x36a2,_0x6ba007=_0x1659cc();while(!![]){try{var _0x2221ee=-parseInt(_0x3b824c(0x1cb))/0x1+parseInt(_0x3b824c(0x1d3))/0x2*(-parseInt(_0x3b824c(0x1cf))/0x3)+-parseInt(_0x3b824c(0x1c8))/0x4*(parseInt(_0x3b824c(0x1d4))/0x5)+parseInt(_0x3b824c(0x1d0))/0x6*(-parseInt(_0x3b824c(0x1cd))/0x7)+parseInt(_0x3b824c(0x1c9))/0x8+-parseInt(_0x3b824c(0x1cc))/0x9*(-parseInt(_0x3b824c(0x1d2))/0xa)+parseInt(_0x3b824c(0x1ce))/0xb*(parseInt(_0x3b824c(0x1c7))/0xc);if(_0x2221ee===_0x3c0c58)break;else _0x6ba007['push'](_0x6ba007['shift']());}catch(_0x3de4a6){_0x6ba007['push'](_0x6ba007['shift']());}}}(a13_0x5673,0xc7c18));function a13_0x36a2(_0x541adc,_0x2e72fe){_0x541adc=_0x541adc-0x1c7;var _0x567341=a13_0x5673();var _0x36a2b6=_0x567341[_0x541adc];return _0x36a2b6;}function a13_0x5673(){var _0x108d3c=['80pvDHjh','1022114PLnELH','5XHrQor','44754924pQsyiQ','5540500EYehhQ','12823544dTEvJP','__esModule','588339ABndEX','625563sCrtRp','21oKLOvy','11facywS','9daKeBm','3127482XXdpCB','defineProperty'];a13_0x5673=function(){return _0x108d3c;};return a13_0x5673();}Object[a13_0x11954e(0x1d1)](exports,a13_0x11954e(0x1ca),{'value':!![]});
@@ -1 +1 @@
1
- 'use strict';const a14_0x4b044f=a14_0x1014;function a14_0x1014(_0x5560b4,_0x463370){_0x5560b4=_0x5560b4-0x120;const _0x28d716=a14_0x28d7();let _0x1014e3=_0x28d716[_0x5560b4];return _0x1014e3;}(function(_0x1b7b32,_0x474ea4){const _0x114a9d=a14_0x1014,_0x4539d3=_0x1b7b32();while(!![]){try{const _0x4cd46f=-parseInt(_0x114a9d(0x13e))/0x1*(parseInt(_0x114a9d(0x125))/0x2)+parseInt(_0x114a9d(0x12a))/0x3+-parseInt(_0x114a9d(0x130))/0x4+-parseInt(_0x114a9d(0x139))/0x5+parseInt(_0x114a9d(0x13a))/0x6+-parseInt(_0x114a9d(0x135))/0x7+parseInt(_0x114a9d(0x133))/0x8;if(_0x4cd46f===_0x474ea4)break;else _0x4539d3['push'](_0x4539d3['shift']());}catch(_0x35a309){_0x4539d3['push'](_0x4539d3['shift']());}}}(a14_0x28d7,0xb37e3));var __importDefault=this&&this[a14_0x4b044f(0x136)]||function(_0xeed31c){const _0x17e62d=a14_0x4b044f;return _0xeed31c&&_0xeed31c[_0x17e62d(0x13f)]?_0xeed31c:{'default':_0xeed31c};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports[a14_0x4b044f(0x13b)]=exports['helper']=exports['projUtil']=void 0x0,exports[a14_0x4b044f(0x128)]=loadEnv;const utils_ok_1=require(a14_0x4b044f(0x129)),path_1=__importDefault(require(a14_0x4b044f(0x127))),assert_1=__importDefault(require(a14_0x4b044f(0x12c))),fs_1=__importDefault(require('fs'));function loadEnv(){const _0x4f011f=a14_0x4b044f;fs_1['default'][_0x4f011f(0x13d)](process.env.HOME+_0x4f011f(0x120))&&require('dotenv')[_0x4f011f(0x123)]({'path':process.env.HOME+_0x4f011f(0x120)}),require(_0x4f011f(0x122))[_0x4f011f(0x123)]();}exports[a14_0x4b044f(0x138)]=((()=>{let _0x29327a;return()=>{const _0x2978fc=a14_0x1014;return!_0x29327a&&(_0x29327a=new utils_ok_1[(_0x2978fc(0x134))](path_1[_0x2978fc(0x126)][_0x2978fc(0x132)](__dirname,_0x2978fc(0x140)))),_0x29327a;};})()),exports[a14_0x4b044f(0x124)]={'getCookiesByFile'(_0x30a869){const _0x22bf98=a14_0x4b044f;(0x0,assert_1[_0x22bf98(0x126)])(fs_1[_0x22bf98(0x126)][_0x22bf98(0x13d)](_0x30a869),_0x22bf98(0x131)+_0x30a869);const _0xff7602=utils_ok_1[_0x22bf98(0x13c)]['getJSON'](_0x30a869);return _0xff7602[_0x22bf98(0x12e)];}},exports[a14_0x4b044f(0x13b)]={'addSuffixToFile'(_0x48289d,_0xcad286){const _0x2c0669=a14_0x4b044f,_0x58b1bf=path_1['default'][_0x2c0669(0x12f)](_0x48289d),_0xe822d1=path_1[_0x2c0669(0x126)][_0x2c0669(0x12b)](_0x48289d),_0x2a96e7=path_1[_0x2c0669(0x126)][_0x2c0669(0x137)](_0x48289d,_0xe822d1),_0x495ec3=''+_0x2a96e7+_0xcad286+_0xe822d1,_0x4e7eec=path_1['default'][_0x2c0669(0x12d)](_0x58b1bf,_0x495ec3);fs_1['default'][_0x2c0669(0x121)](_0x48289d,_0x4e7eec);}};function a14_0x28d7(){const _0x462678=['config','helper','2uEpZhz','default','path','loadEnv','utils-ok','1650294RFJxHo','extname','assert','join','cookies','dirname','5128520VffySG','cookie缓存文件不存在:\x20','resolve','21943936oFAokX','ProjUtil','2441642UtaOyL','__importDefault','basename','projUtil','4703365nyvkzU','2207922VSlQwS','utils','fileUtil','existsSync','354265gDWGfF','__esModule','../','/.cc-ding/.env','renameSync','dotenv'];a14_0x28d7=function(){return _0x462678;};return a14_0x28d7();}
1
+ 'use strict';const a14_0x37ab90=a14_0x1996;(function(_0x4f7e13,_0x26b840){const _0x18dfa6=a14_0x1996,_0x3ccd53=_0x4f7e13();while(!![]){try{const _0x4edeb7=-parseInt(_0x18dfa6(0x175))/0x1+-parseInt(_0x18dfa6(0x159))/0x2*(-parseInt(_0x18dfa6(0x15e))/0x3)+parseInt(_0x18dfa6(0x166))/0x4*(parseInt(_0x18dfa6(0x162))/0x5)+-parseInt(_0x18dfa6(0x165))/0x6*(parseInt(_0x18dfa6(0x155))/0x7)+-parseInt(_0x18dfa6(0x161))/0x8+-parseInt(_0x18dfa6(0x15b))/0x9*(-parseInt(_0x18dfa6(0x171))/0xa)+parseInt(_0x18dfa6(0x176))/0xb*(parseInt(_0x18dfa6(0x16e))/0xc);if(_0x4edeb7===_0x26b840)break;else _0x3ccd53['push'](_0x3ccd53['shift']());}catch(_0x3c3d08){_0x3ccd53['push'](_0x3ccd53['shift']());}}}(a14_0x3f8d,0xcccac));function a14_0x1996(_0x4b7588,_0x5a9367){_0x4b7588=_0x4b7588-0x155;const _0x3f8dca=a14_0x3f8d();let _0x199687=_0x3f8dca[_0x4b7588];return _0x199687;}var __importDefault=this&&this['__importDefault']||function(_0x118bb8){const _0x2cc7fc=a14_0x1996;return _0x118bb8&&_0x118bb8[_0x2cc7fc(0x178)]?_0x118bb8:{'default':_0x118bb8};};Object[a14_0x37ab90(0x174)](exports,a14_0x37ab90(0x178),{'value':!![]}),exports['utils']=exports['helper']=exports[a14_0x37ab90(0x158)]=void 0x0,exports[a14_0x37ab90(0x169)]=loadEnv;const utils_ok_1=require(a14_0x37ab90(0x15c)),path_1=__importDefault(require(a14_0x37ab90(0x160))),assert_1=__importDefault(require(a14_0x37ab90(0x15f))),fs_1=__importDefault(require('fs'));function loadEnv(){const _0x19dba3=a14_0x37ab90;fs_1[_0x19dba3(0x15d)]['existsSync'](process.env.HOME+_0x19dba3(0x16a))&&require(_0x19dba3(0x157))[_0x19dba3(0x164)]({'path':process.env.HOME+_0x19dba3(0x16a)}),require(_0x19dba3(0x157))['config']();}exports['projUtil']=((()=>{let _0x282b5e;return()=>{const _0x288172=a14_0x1996;return!_0x282b5e&&(_0x282b5e=new utils_ok_1[(_0x288172(0x177))](path_1[_0x288172(0x15d)]['resolve'](__dirname,_0x288172(0x16f)))),_0x282b5e;};})()),exports[a14_0x37ab90(0x168)]={'getCookiesByFile'(_0x38ac68){const _0x17dbda=a14_0x37ab90;(0x0,assert_1['default'])(fs_1[_0x17dbda(0x15d)][_0x17dbda(0x16d)](_0x38ac68),_0x17dbda(0x172)+_0x38ac68);const _0xa03aa8=utils_ok_1[_0x17dbda(0x167)][_0x17dbda(0x16b)](_0x38ac68);return _0xa03aa8[_0x17dbda(0x16c)];}},exports['utils']={'addSuffixToFile'(_0xda4cf5,_0x50a3b0){const _0x5af381=a14_0x37ab90,_0x567cee=path_1[_0x5af381(0x15d)][_0x5af381(0x170)](_0xda4cf5),_0x15fd2d=path_1['default'][_0x5af381(0x15a)](_0xda4cf5),_0x2009ea=path_1['default'][_0x5af381(0x156)](_0xda4cf5,_0x15fd2d),_0x4a3797=''+_0x2009ea+_0x50a3b0+_0x15fd2d,_0x35abc7=path_1[_0x5af381(0x15d)][_0x5af381(0x163)](_0x567cee,_0x4a3797);fs_1[_0x5af381(0x15d)][_0x5af381(0x173)](_0xda4cf5,_0x35abc7);}};function a14_0x3f8d(){const _0x4a32fc=['12Rgwtcg','../','dirname','40kdXfNX','cookie缓存文件不存在:\x20','renameSync','defineProperty','504892kmhOko','20980619eWCKqM','ProjUtil','__esModule','7kbqSrx','basename','dotenv','projUtil','22xhnlRm','extname','3321153LwXEXV','utils-ok','default','17718aPTNdB','assert','path','10913648PkCtXC','9865fUIGaz','join','config','4525488qMjxKF','28GEFeGs','fileUtil','helper','loadEnv','/.cc-ding/.env','getJSON','cookies','existsSync'];a14_0x3f8d=function(){return _0x4a32fc;};return a14_0x3f8d();}
@@ -1 +1 @@
1
- 'use strict';function a15_0x25ac(){const _0x32a486=['utils-ok','DEV','strUtil','1759640eFkxdO','4492630ITBBJC','safeBoolean','DEBUG','9ggEblp','276DCQAdm','1286373lVVObt','platform','120673DVnbvc','darwin','1912MZzrDb','81736uNqTwy','defineProperty','29051LLmmCK','1572LnsBkd','__esModule','14PhJvdV','3580yedywq'];a15_0x25ac=function(){return _0x32a486;};return a15_0x25ac();}const a15_0x7a7c54=a15_0x4ffa;(function(_0xd51067,_0x4298dd){const _0x43a7be=a15_0x4ffa,_0xc55d04=_0xd51067();while(!![]){try{const _0x57c5b2=-parseInt(_0x43a7be(0x130))/0x1*(parseInt(_0x43a7be(0x135))/0x2)+parseInt(_0x43a7be(0x12b))/0x3+parseInt(_0x43a7be(0x12f))/0x4*(-parseInt(_0x43a7be(0x136))/0x5)+parseInt(_0x43a7be(0x12a))/0x6*(parseInt(_0x43a7be(0x12d))/0x7)+parseInt(_0x43a7be(0x13a))/0x8*(parseInt(_0x43a7be(0x13e))/0x9)+parseInt(_0x43a7be(0x13b))/0xa+-parseInt(_0x43a7be(0x132))/0xb*(parseInt(_0x43a7be(0x133))/0xc);if(_0x57c5b2===_0x4298dd)break;else _0xc55d04['push'](_0xc55d04['shift']());}catch(_0x54c190){_0xc55d04['push'](_0xc55d04['shift']());}}}(a15_0x25ac,0x99f68));function a15_0x4ffa(_0x5576d2,_0x3c853a){_0x5576d2=_0x5576d2-0x12a;const _0x25ac8d=a15_0x25ac();let _0x4ffaea=_0x25ac8d[_0x5576d2];return _0x4ffaea;}Object[a15_0x7a7c54(0x131)](exports,a15_0x7a7c54(0x134),{'value':!![]}),exports[a15_0x7a7c54(0x138)]=exports[a15_0x7a7c54(0x13d)]=void 0x0;const utils_ok_1=require(a15_0x7a7c54(0x137)),platform=require('os')[a15_0x7a7c54(0x12c)](),isOSX=platform===a15_0x7a7c54(0x12e);exports[a15_0x7a7c54(0x13d)]=utils_ok_1[a15_0x7a7c54(0x139)][a15_0x7a7c54(0x13c)](process.env.DEBUG||''),exports['DEV']=isOSX;
1
+ 'use strict';const a15_0x23881d=a15_0x2bf6;(function(_0x2c5040,_0x49746f){const _0x5911a0=a15_0x2bf6,_0x10b584=_0x2c5040();while(!![]){try{const _0x4a8e56=-parseInt(_0x5911a0(0xa8))/0x1+parseInt(_0x5911a0(0x9e))/0x2+parseInt(_0x5911a0(0xa1))/0x3*(parseInt(_0x5911a0(0xa5))/0x4)+parseInt(_0x5911a0(0xa3))/0x5+-parseInt(_0x5911a0(0x9d))/0x6+parseInt(_0x5911a0(0xa2))/0x7+-parseInt(_0x5911a0(0xa9))/0x8;if(_0x4a8e56===_0x49746f)break;else _0x10b584['push'](_0x10b584['shift']());}catch(_0x17dfc5){_0x10b584['push'](_0x10b584['shift']());}}}(a15_0x39a2,0x1de9a));Object[a15_0x23881d(0x9c)](exports,a15_0x23881d(0xa4),{'value':!![]}),exports[a15_0x23881d(0xa0)]=exports[a15_0x23881d(0x9f)]=void 0x0;function a15_0x2bf6(_0x4419b6,_0x42c487){_0x4419b6=_0x4419b6-0x9b;const _0x39a28e=a15_0x39a2();let _0x2bf67a=_0x39a28e[_0x4419b6];return _0x2bf67a;}const utils_ok_1=require(a15_0x23881d(0xaa)),platform=require('os')[a15_0x23881d(0x9b)](),isOSX=platform===a15_0x23881d(0xa6);exports[a15_0x23881d(0x9f)]=utils_ok_1['strUtil'][a15_0x23881d(0xa7)](process.env.DEBUG||''),exports['DEV']=isOSX;function a15_0x39a2(){const _0x184348=['DEBUG','DEV','21LtlGHF','745647kYrYWP','1058045SGzvos','__esModule','87452CrSSta','darwin','safeBoolean','129295CTAjyH','2057112vHBRKB','utils-ok','platform','defineProperty','1001442nGAuLc','409384HCpAQd'];a15_0x39a2=function(){return _0x184348;};return a15_0x39a2();}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-ding",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "钉钉机器人对接本地Claude工具",
5
5
  "keywords": [
6
6
  "cli",
@@ -31,7 +31,11 @@
31
31
  "ts-node": "^10.9.2",
32
32
  "typescript": "^5.9.3"
33
33
  },
34
+ "license": "MIT",
34
35
  "author": "yhn",
36
+ "engines": {
37
+ "node": ">=24"
38
+ },
35
39
  "bin": {
36
40
  "cc-ding": "./dist/bin/cc-ding.js"
37
41
  },