cc-ding 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +103 -97
- package/dist/bin/cc-ding.js +1 -1
- package/dist/src/biz/api-key-manager.js +1 -1
- package/dist/src/biz/cc-ding-cli.js +1 -1
- package/dist/src/biz/claude-process.js +1 -1
- package/dist/src/biz/commands.js +1 -1
- package/dist/src/biz/cron.js +1 -1
- package/dist/src/biz/doctor.js +1 -1
- package/dist/src/biz/image.js +1 -1
- package/dist/src/biz/lock.js +1 -1
- package/dist/src/biz/messaging.js +1 -1
- package/dist/src/biz/quote.js +1 -1
- package/dist/src/biz/session.js +1 -1
- package/dist/src/biz/task.js +1 -1
- package/dist/src/biz/types.js +1 -1
- package/dist/src/common.js +1 -1
- package/dist/src/constants.js +1 -1
- package/package.json +1 -1
package/dist/src/biz/session.js
CHANGED
|
@@ -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_0x3b30a8=a11_0x2189;(function(_0x14cdc4,_0xb5be0a){const _0x40f9cd=a11_0x2189,_0x1f821d=_0x14cdc4();while(!![]){try{const _0x24bf72=parseInt(_0x40f9cd(0x97))/0x1*(parseInt(_0x40f9cd(0x95))/0x2)+-parseInt(_0x40f9cd(0x80))/0x3+parseInt(_0x40f9cd(0x12c))/0x4*(-parseInt(_0x40f9cd(0xd4))/0x5)+-parseInt(_0x40f9cd(0xa2))/0x6+-parseInt(_0x40f9cd(0x7e))/0x7*(parseInt(_0x40f9cd(0xf3))/0x8)+-parseInt(_0x40f9cd(0x93))/0x9+parseInt(_0x40f9cd(0x134))/0xa*(parseInt(_0x40f9cd(0x88))/0xb);if(_0x24bf72===_0xb5be0a)break;else _0x1f821d['push'](_0x1f821d['shift']());}catch(_0x905af1){_0x1f821d['push'](_0x1f821d['shift']());}}}(a11_0x352b,0x4d3e6));var __importDefault=this&&this[a11_0x3b30a8(0xc7)]||function(_0x4c6cff){return _0x4c6cff&&_0x4c6cff['__esModule']?_0x4c6cff:{'default':_0x4c6cff};};Object[a11_0x3b30a8(0x89)](exports,'__esModule',{'value':!![]}),exports[a11_0x3b30a8(0xe6)]=timestamp,exports[a11_0x3b30a8(0x112)]=getHomeDir,exports['getClientDir']=getClientDir,exports[a11_0x3b30a8(0x108)]=initClientDir,exports[a11_0x3b30a8(0xae)]=ensureClientDir,exports[a11_0x3b30a8(0x11e)]=getClientConfig,exports['resolveToUserId']=resolveToUserId,exports['authCheck']=authCheck,exports[a11_0x3b30a8(0x132)]=isOwner,exports[a11_0x3b30a8(0xc6)]=debugLog,exports[a11_0x3b30a8(0xb3)]=isMobile,exports[a11_0x3b30a8(0x7d)]=getPhoneMapFile,exports[a11_0x3b30a8(0x105)]=loadPhoneMap,exports[a11_0x3b30a8(0x9e)]=savePhoneMap,exports[a11_0x3b30a8(0xa6)]=userIdToPhone,exports[a11_0x3b30a8(0x13d)]=resolveUserId,exports['resolveAllPhonesInConfig']=resolveAllPhonesInConfig,exports['hashConversationId']=hashConversationId,exports[a11_0x3b30a8(0xe1)]=getReplyWebhook,exports[a11_0x3b30a8(0xef)]=getReplyConversationId,exports['findActiveSession']=findActiveSession,exports[a11_0x3b30a8(0xab)]=getConversationConfig,exports[a11_0x3b30a8(0xf1)]=getConversationDir,exports['getSessionsDir']=getSessionsDir,exports[a11_0x3b30a8(0xa0)]=getTasksDir,exports[a11_0x3b30a8(0x12e)]=getImagesDir,exports[a11_0x3b30a8(0xf6)]=getSessionDir,exports[a11_0x3b30a8(0xbd)]=getSessionId,exports['formatSessionInfo']=formatSessionInfo,exports[a11_0x3b30a8(0x110)]=readSessionLogTail,exports[a11_0x3b30a8(0xfb)]=findHistorySession,exports[a11_0x3b30a8(0xeb)]=findLatestSession,exports[a11_0x3b30a8(0x139)]=updateSessionFile,exports['appendSessionLog']=appendSessionLog,exports[a11_0x3b30a8(0x140)]=getActiveSessionsFile,exports[a11_0x3b30a8(0x135)]=saveActiveSession,exports[a11_0x3b30a8(0x82)]=loadActiveSessions,exports[a11_0x3b30a8(0x113)]=endSession,exports[a11_0x3b30a8(0x116)]=switchToSession,exports[a11_0x3b30a8(0x147)]=startNewSession,exports['processMessageQueue']=processMessageQueue,exports[a11_0x3b30a8(0xc2)]=handleSessionMessage,exports[a11_0x3b30a8(0x11b)]=cleanCache;const utils_ok_1=require(a11_0x3b30a8(0xe5)),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require('assert')),crypto_1=__importDefault(require(a11_0x3b30a8(0x78))),path_1=__importDefault(require('path')),commands_1=require(a11_0x3b30a8(0xc0)),messaging_1=require(a11_0x3b30a8(0xbb)),claude_process_1=require(a11_0x3b30a8(0xc9));function timestamp(){const _0x118376=a11_0x3b30a8;return utils_ok_1['dateUtil']['mm'](Date['now']())[_0x118376(0x99)](_0x118376(0xcd));}function getHomeDir(){const _0x55ab46=a11_0x3b30a8;return os_1['default'][_0x55ab46(0x123)]();}function getClientDir(_0x56676e){const _0x2406ad=a11_0x3b30a8;return path_1[_0x2406ad(0xb0)][_0x2406ad(0xa3)](getHomeDir(),_0x2406ad(0xf5),_0x56676e[_0x2406ad(0xe8)]);}function initClientDir(_0x2c7fcb,_0x18f690){const _0xc492db=a11_0x3b30a8,_0x14ebaa=path_1[_0xc492db(0xb0)][_0xc492db(0xa3)](getHomeDir(),_0xc492db(0xf5),_0x2c7fcb),_0x28d88b=path_1[_0xc492db(0xb0)][_0xc492db(0xa3)](_0x14ebaa,_0xc492db(0x100));return fs_1[_0xc492db(0xb0)][_0xc492db(0xc5)](_0x14ebaa,{'recursive':!![]}),fs_1[_0xc492db(0xb0)]['writeFileSync'](_0x28d88b,JSON[_0xc492db(0x142)](_0x18f690,null,0x2),'utf-8'),_0x28d88b;}function ensureClientDir(_0x34de84){const _0x24eeff=a11_0x3b30a8,_0x1a669d=path_1[_0x24eeff(0xb0)][_0x24eeff(0xa3)](getHomeDir(),_0x24eeff(0xf5),_0x34de84),_0x34e53f=path_1[_0x24eeff(0xb0)][_0x24eeff(0xa3)](_0x1a669d,_0x24eeff(0x100));if(fs_1[_0x24eeff(0xb0)][_0x24eeff(0x104)](_0x34e53f))return;console[_0x24eeff(0xd2)]('['+timestamp()+_0x24eeff(0xee)+_0x1a669d),console[_0x24eeff(0xd2)]('['+timestamp()+']\x20正在自动初始化...');const _0x29aad5={'clientName':_0x24eeff(0x12a),'owner':'<owner手机号>','whiteUserList':[],'clientSecret':_0x24eeff(0xa8),'defaultDingToken':_0x24eeff(0x111),'conversations':[]};initClientDir(_0x34de84,_0x29aad5),console[_0x24eeff(0xd2)]('['+timestamp()+_0x24eeff(0xa7)+_0x34e53f),console[_0x24eeff(0xd2)]('['+timestamp()+_0x24eeff(0x76)),process[_0x24eeff(0xcc)](0x1);}function getClientConfig(_0x2aa716){const _0x5bdf97=a11_0x3b30a8,_0x35b9e2=getClientDir(_0x2aa716)+_0x5bdf97(0xfa);(0x0,assert_1['default'])(fs_1[_0x5bdf97(0xb0)]['existsSync'](_0x35b9e2),_0x5bdf97(0x12d)+_0x35b9e2);const _0x9a9b2a=utils_ok_1[_0x5bdf97(0x133)][_0x5bdf97(0xb5)](_0x35b9e2);return(0x0,assert_1[_0x5bdf97(0xb0)])(_0x9a9b2a[_0x5bdf97(0xca)],_0x5bdf97(0xd5)),(0x0,assert_1[_0x5bdf97(0xb0)])(_0x9a9b2a[_0x5bdf97(0xe3)],_0x5bdf97(0x96)),_0x9a9b2a;}function resolveToUserId(_0x135770,_0x117ac7){const _0x171f6e=a11_0x3b30a8;return isMobile(_0x117ac7)?_0x135770[_0x171f6e(0xa1)][_0x117ac7]||_0x117ac7:_0x117ac7;}function authCheck(_0x1c42e7,_0x5c5f72,_0x3a7a55){const _0x1b6289=a11_0x3b30a8;if(isOwner(_0x1c42e7,_0x5c5f72))return!![];if(_0x3a7a55){const _0x5ba82c=_0x1c42e7[_0x1b6289(0x8d)]['conversations'][_0x1b6289(0xb6)](_0x22e312=>_0x22e312['conversationId']===_0x3a7a55);if(_0x5ba82c?.[_0x1b6289(0xe3)]&&_0x5ba82c[_0x1b6289(0xe3)][_0x1b6289(0x125)]>0x0)return _0x5ba82c['whiteUserList'][_0x1b6289(0x13a)](_0x189c46=>resolveToUserId(_0x1c42e7,_0x189c46)===_0x5c5f72);}return _0x1c42e7[_0x1b6289(0x8d)][_0x1b6289(0xe3)][_0x1b6289(0x13a)](_0x1f2d20=>resolveToUserId(_0x1c42e7,_0x1f2d20)===_0x5c5f72);}function isOwner(_0xad8df0,_0x2d3602){const _0xe78484=a11_0x3b30a8,_0x23710e=_0xad8df0[_0xe78484(0x8d)][_0xe78484(0xbc)];if(!_0x23710e||!isMobile(_0x23710e))return![];const _0x4f4c0f=_0xad8df0[_0xe78484(0xa1)][_0x23710e];return!!_0x4f4c0f&&_0x4f4c0f===_0x2d3602;}function debugLog(_0x37eb56,_0x5c427f,..._0x5a92b0){const _0x209be3=a11_0x3b30a8;_0x37eb56[_0x209be3(0x8d)][_0x209be3(0xad)]&&console[_0x209be3(0xd2)](_0x209be3(0x10a)+_0x5c427f,..._0x5a92b0);}const PHONE_RE=/^1\d{10}$/;function isMobile(_0x3ca803){return PHONE_RE['test'](_0x3ca803);}function getPhoneMapFile(_0x490619){const _0x4f6907=a11_0x3b30a8;return path_1[_0x4f6907(0xb0)][_0x4f6907(0xa3)](getClientDir(_0x490619),'phone-map.json');}function loadPhoneMap(_0xe6b2a3){const _0x25795f=a11_0x3b30a8,_0x201849=getPhoneMapFile(_0xe6b2a3);if(!fs_1[_0x25795f(0xb0)][_0x25795f(0x104)](_0x201849))return{};try{const _0x3e3899=JSON[_0x25795f(0xbe)](fs_1['default'][_0x25795f(0x77)](_0x201849,_0x25795f(0x103)));if(typeof _0x3e3899==='object'&&_0x3e3899!==null)return _0x3e3899;}catch{}return{};}function savePhoneMap(_0x2eb5d0,_0x32a0fd){const _0x1e6593=a11_0x3b30a8,_0x443e0d=getPhoneMapFile(_0x2eb5d0);try{fs_1['default'][_0x1e6593(0x7a)](_0x443e0d,JSON[_0x1e6593(0x142)](_0x32a0fd,null,0x2),'utf-8');}catch(_0x42ee27){console[_0x1e6593(0xff)](_0x1e6593(0x14a),_0x42ee27);}}function userIdToPhone(_0x3107a9,_0x293ed8){const _0x375c98=a11_0x3b30a8;for(const [_0x914315,_0x2b719f]of Object[_0x375c98(0xb1)](_0x3107a9['resolvedPhones'])){if(_0x2b719f===_0x293ed8)return _0x914315;}return null;}async function resolveUserId(_0x5b5c55,_0x2a1cfc){const _0x4ddaea=a11_0x3b30a8;if(!_0x2a1cfc)return null;if(!isMobile(_0x2a1cfc))return _0x2a1cfc;if(_0x5b5c55[_0x4ddaea(0xa1)][_0x2a1cfc])return _0x5b5c55[_0x4ddaea(0xa1)][_0x2a1cfc];const _0x8285e4=await(0x0,messaging_1[_0x4ddaea(0xfd)])(_0x5b5c55,_0x2a1cfc);return _0x8285e4&&(_0x5b5c55['resolvedPhones'][_0x2a1cfc]=_0x8285e4,savePhoneMap(_0x5b5c55,_0x5b5c55['resolvedPhones'])),_0x8285e4;}async function resolveAllPhonesInConfig(_0x308e86){const _0x2a228f=a11_0x3b30a8;_0x308e86[_0x2a228f(0xa1)]=loadPhoneMap(_0x308e86);const _0x363a58=[],_0x4a6ee6=async _0xa11352=>{const _0x53c389=_0x2a228f;if(_0x308e86[_0x53c389(0xa1)][_0xa11352])return;const _0x566e04=await(0x0,messaging_1['queryUserIdByMobile'])(_0x308e86,_0xa11352);_0x566e04&&(_0x308e86[_0x53c389(0xa1)][_0xa11352]=_0x566e04,_0x363a58[_0x53c389(0xea)](_0xa11352));};_0x308e86[_0x2a228f(0x8d)][_0x2a228f(0xbc)]&&(isMobile(_0x308e86[_0x2a228f(0x8d)]['owner'])?(await _0x4a6ee6(_0x308e86['config'][_0x2a228f(0xbc)]),!_0x308e86[_0x2a228f(0xa1)][_0x308e86['config'][_0x2a228f(0xbc)]]&&console[_0x2a228f(0x145)](_0x2a228f(0x138)+_0x308e86[_0x2a228f(0x8d)][_0x2a228f(0xbc)])):console[_0x2a228f(0x145)]('[WARN]\x20owner\x20必须为手机号,当前值无效:\x20'+_0x308e86[_0x2a228f(0x8d)][_0x2a228f(0xbc)]));for(const _0x3f23da of _0x308e86[_0x2a228f(0x8d)][_0x2a228f(0xe3)]){isMobile(_0x3f23da)&&(await _0x4a6ee6(_0x3f23da),!_0x308e86['resolvedPhones'][_0x3f23da]&&console[_0x2a228f(0x145)]('[WARN]\x20无法解析\x20whiteUserList\x20手机号:\x20'+_0x3f23da));}for(const _0x59e883 of _0x308e86[_0x2a228f(0x8d)][_0x2a228f(0x101)]){if(_0x59e883[_0x2a228f(0xe3)])for(const _0x1b6119 of _0x59e883[_0x2a228f(0xe3)]){isMobile(_0x1b6119)&&(await _0x4a6ee6(_0x1b6119),!_0x308e86[_0x2a228f(0xa1)][_0x1b6119]&&console['warn']('[WARN]\x20无法解析群白名单手机号:\x20'+_0x1b6119));}}_0x363a58['length']>0x0&&savePhoneMap(_0x308e86,_0x308e86['resolvedPhones']),console[_0x2a228f(0xd2)](_0x2a228f(0x8c)+Object[_0x2a228f(0x8a)](_0x308e86[_0x2a228f(0xa1)])[_0x2a228f(0x125)]+_0x2a228f(0xc4)+_0x363a58[_0x2a228f(0x125)]+_0x2a228f(0xc8));}function hashConversationId(_0x532313,_0x369e9b){const _0x396939=a11_0x3b30a8,_0x24eb30=getConversationConfig(_0x532313,_0x369e9b),_0x4257d0=_0x24eb30?.[_0x396939(0xb2)]||_0x369e9b;return crypto_1['default'][_0x396939(0x115)](_0x396939(0x13e))[_0x396939(0x126)](_0x4257d0)[_0x396939(0xfe)](_0x396939(0xd1));}function getReplyWebhook(_0x26c577){const _0x1f5a80=a11_0x3b30a8;return _0x26c577[_0x1f5a80(0xf9)]||_0x26c577[_0x1f5a80(0x11a)];}function getReplyConversationId(_0x1ee76e){const _0x35b3a2=a11_0x3b30a8;return _0x1ee76e['currentConversationId']||_0x1ee76e[_0x35b3a2(0x79)];}function findActiveSession(_0x2f03d2,_0x1fa584){const _0x2cb96c=a11_0x3b30a8,_0x480e7b=_0x2f03d2[_0x2cb96c(0xac)]['get'](_0x1fa584);if(_0x480e7b)return{'key':_0x1fa584,'session':_0x480e7b};const _0x5868f2=getConversationConfig(_0x2f03d2,_0x1fa584);if(_0x5868f2?.['linkConversationId'])for(const _0x4ec675 of _0x2f03d2['activeSessions']){const _0x135fd1=getConversationConfig(_0x2f03d2,_0x4ec675[0x0]);if(_0x135fd1?.[_0x2cb96c(0xb2)]===_0x5868f2[_0x2cb96c(0xb2)])return{'key':_0x4ec675[0x0],'session':_0x4ec675[0x1]};}return undefined;}function getConversationConfig(_0x170709,_0x1b3f04){const _0x1fbe80=a11_0x3b30a8;return _0x170709[_0x1fbe80(0x8d)][_0x1fbe80(0x101)]['find'](_0x50cb11=>_0x50cb11[_0x1fbe80(0x79)]===_0x1b3f04);}function getConversationDir(_0x2675a0,_0x4653ed){const _0x499ce1=hashConversationId(_0x2675a0,_0x4653ed);return getClientDir(_0x2675a0)+'/'+_0x499ce1;}function getSessionsDir(_0x34c574,_0xa87ca6){return getConversationDir(_0x34c574,_0xa87ca6)+'/.sessions';}function getTasksDir(_0x4ae5f1,_0x537182){const _0xdee172=a11_0x3b30a8;return getConversationDir(_0x4ae5f1,_0x537182)+_0xdee172(0x146);}function getImagesDir(_0x465bc2,_0x5ada78){const _0x1f7810=a11_0x3b30a8;return getConversationDir(_0x465bc2,_0x5ada78)+_0x1f7810(0x122);}function getSessionDir(_0x261c74,_0xea32b7){const _0x32536f=a11_0x3b30a8,_0x2e3be2=_0xea32b7['claudeSessionId']||_0xea32b7[_0x32536f(0xc3)];return getSessionsDir(_0x261c74,_0xea32b7[_0x32536f(0x79)])+'/'+_0x2e3be2;}function getSessionId(_0x53f5ad){const _0x50c888=a11_0x3b30a8;return _0x53f5ad[_0x50c888(0x7f)]||_0x53f5ad[_0x50c888(0xc3)];}function formatSessionInfo(_0x311672,_0x1b5b19){const _0xcf64ab=a11_0x3b30a8,_0x378728=findActiveSession(_0x311672,_0x1b5b19);if(!_0x378728)return null;const {session:_0x2b567e,isProcessing:_0x28dacc,messageQueue:_0xc0eca3}=_0x378728[_0xcf64ab(0x9b)],_0x534ae4=[_0xcf64ab(0x12b)+getSessionId(_0x2b567e),'-\x20**发起者:**\x20'+_0x2b567e[_0xcf64ab(0x121)]+'('+_0x2b567e[_0xcf64ab(0xdc)]+')','-\x20**开始时间:**\x20'+_0x2b567e[_0xcf64ab(0xc3)],'-\x20**最后发送者:**\x20'+_0x378728[_0xcf64ab(0x9b)][_0xcf64ab(0xe7)],_0xcf64ab(0x84)+_0x28dacc,_0xcf64ab(0xaf)+(_0xc0eca3?.[_0xcf64ab(0x125)]||0x0)+'\x20条'];return _0x534ae4[_0xcf64ab(0xa3)]('\x0a');}function readSessionLogTail(_0x520c3f,_0x1e0d3a,_0x26079e){const _0x360a12=a11_0x3b30a8,_0x10889b=findActiveSession(_0x520c3f,_0x1e0d3a);if(!_0x10889b)return null;const _0x2e3a59=_0x10889b[_0x360a12(0x9b)],_0x11d8e3=getSessionDir(_0x520c3f,_0x2e3a59[_0x360a12(0x9b)])+'/session.log';if(!fs_1['default'][_0x360a12(0x104)](_0x11d8e3))return null;try{const _0x3caa38=fs_1[_0x360a12(0xb0)]['readFileSync'](_0x11d8e3,_0x360a12(0x103)),_0x345b46=_0x3caa38[_0x360a12(0x119)]('\x0a')[_0x360a12(0x144)](_0x5e2522=>_0x5e2522['length']>0x0);return _0x345b46[_0x360a12(0x136)](-_0x26079e)[_0x360a12(0xa3)]('\x0a');}catch{return null;}}function a11_0x352b(){const _0xb8c773=['-\x20**处理中:**\x20','basename','rmSync','errors','3901634hnxBcj','defineProperty','keys','message','[手机解析]\x20已加载\x20','config','size','处理队列消息:\x20群=','appendFileSync','dirname','\x20的数据已被清理,无法恢复,请发送新消息开始新会话','4694067iFeyby',']:\x20','141352OMbaaM','config.json\x20missing\x20required\x20field:\x20whiteUserList','7ZBhfsV','imagesDeleted','format','sessionsDeleted','session','恢复活跃会话:\x20群=','🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话','savePhoneMap','/active.json','getTasksDir','resolvedPhones','395844RbpRLh','join','DEFAULT_SESSION_MAX_CONCURRENCY','conversationConfig','userIdToPhone',']\x20已生成默认配置文件:\x20','<clientSecret-钉钉Stream连接密钥>','会话\x20','\x0a💡\x20回复\x20/end\x20可结束本轮对话','getConversationConfig','activeSessions','debug','ensureClientDir','-\x20**排队消息:**\x20','default','entries','linkConversationId','isMobile','currentConversationId','getJSON','find','messageQueue','达到最大并发数\x20(','已切换到历史会话:\x20群=','tasksDeleted','./messaging','owner','getSessionId','parse','🔄\x20已恢复对话上下文','./commands',',结束当前会话\x0a','handleSessionMessage','startTimeStr','\x20条记录\x20(','mkdirSync','debugLog','__importDefault','\x20条新解析)','./claude-process','clientSecret','unlinkSync','exit','YYYY-MM-DD\x20HH:mm:ss','isProcessing','删除任务目录失败:\x20',',\x20剩余\x20','hex','log','skill','275xvpwut','config.json\x20missing\x20required\x20field:\x20clientSecret','dateUtil','追加消息到活跃会话:\x20群=','set',',\x20当前并发=','catch','\x20->\x20','startStaffId','startTime','结束会话时中断正在执行的\x20Claude\x20进程','❌\x20未找到会话\x20','key','getReplyWebhook','\x20无活跃会话','whiteUserList','get','utils-ok','timestamp','lastSenderStaffId','clientId','删除会话目录失败:\x20','push','findLatestSession','session.json','parseEndCommand',']\x20客户端目录未初始化:\x20','getReplyConversationId','✅\x20已切换到历史会话\x20(会话ID:\x20','getConversationDir',']\x20会话目录重命名:\x20','2116392xbufbE','sessionMaxConcurrency','.cc-ding','getSessionDir','sendDingMessage','重试执行\x20Claude\x20查询失败:','currentWebhook','/config.json','findHistorySession',',\x20路径=','queryUserIdByMobile','digest','error','config.json','conversations','\x20消息已入队,排队第\x20','utf-8','existsSync','loadPhoneMap','执行队列\x20Claude\x20查询失败:','创建新会话:\x20群=','initClientDir','✅\x20收到,我来处理...','[DEBUG]\x20','now','删除活跃会话文件失败:\x20','),拒绝新会话:\x20群=','执行\x20Claude\x20查询失败:','读取images目录失败:\x20','readSessionLogTail','<兜底钉钉机器人Token>','getHomeDir','endSession','receiveReply','createHash','switchToSession','YYYY-MM-DD-HH-mm-ss','agent','split','sessionWebhook','cleanCache','taskCfg','name','getClientConfig','toUpperCase','加载活跃会话失败:\x20','startNickName','/.images','homedir','(关联群,会话归属=','length','update',']\x20[SYSTEM]:\x20会话被切换到\x20','/session.json','\x20条)','cc助手','-\x20**会话ID:**\x20','12684YpDFVn','Could\x20not\x20find\x20client\x20config\x20file:\x20','getImagesDir','更新\x20session.json\x20失败:','interruptClaudeProcess','readdirSync','isOwner','fileUtil','30FUTkFo','saveActiveSession','slice','executeClaudeQuery','[WARN]\x20无法解析\x20owner\x20手机号:\x20','updateSessionFile','some','会话目录已重建:\x20群=','[会话恢复失败]\x20清除\x20claudeSessionId\x20并重新发起:\x20','resolveUserId','md5','读取sessions目录失败:\x20','getActiveSessionsFile','切换会话,先结束当前会话:\x20','stringify','/session.log','filter','warn','/.tasks','startNewSession',',\x20有Claude上下文=','❌\x20处理消息时发生错误:\x20','保存\x20phone-map.json\x20失败:',']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动','readFileSync','crypto','conversationId','writeFileSync',',\x20会话ID=','renameSync','getPhoneMapFile','7PbtDlI','claudeSessionId','647799DHxelA','delete','loadActiveSessions','isDirectory'];a11_0x352b=function(){return _0xb8c773;};return a11_0x352b();}function findHistorySession(_0x4b1329,_0x1a7cf4,_0x50cca8){const _0xda81bc=a11_0x3b30a8,_0x4c43db=getSessionsDir(_0x4b1329,_0x1a7cf4),_0x121a6a=_0x4c43db+'/'+_0x50cca8+_0xda81bc(0x128);try{return utils_ok_1[_0xda81bc(0x133)]['getJSON'](_0x121a6a);}catch{}const _0x33eb3a=parseInt(_0x50cca8,0xa);if(!isNaN(_0x33eb3a)&&_0x33eb3a>0x0){const _0x109521=utils_ok_1[_0xda81bc(0xd6)]['mm'](_0x33eb3a)['format']('YYYY-MM-DD-HH-mm-ss'),_0x208b50=_0x4c43db+'/'+_0x109521+_0xda81bc(0x128);try{return utils_ok_1['fileUtil']['getJSON'](_0x208b50);}catch{}}return null;}function findLatestSession(_0x41cf02,_0x3ae04f){const _0x5c6284=a11_0x3b30a8,_0x36b8d3=getSessionsDir(_0x41cf02,_0x3ae04f);if(!fs_1[_0x5c6284(0xb0)][_0x5c6284(0x104)](_0x36b8d3))return null;const _0x2fe863=findActiveSession(_0x41cf02,_0x3ae04f),_0x323beb=_0x2fe863?getSessionId(_0x2fe863[_0x5c6284(0x9b)][_0x5c6284(0x9b)]):null;let _0x566907=null,_0x165bfc=0x0;try{const _0x5ed666=fs_1[_0x5c6284(0xb0)][_0x5c6284(0x131)](_0x36b8d3,{'withFileTypes':!![]});for(const _0x543172 of _0x5ed666){if(!_0x543172[_0x5c6284(0x83)]())continue;const _0x178a31=path_1[_0x5c6284(0xb0)][_0x5c6284(0xa3)](_0x36b8d3,_0x543172[_0x5c6284(0x11d)],_0x5c6284(0xec));if(!fs_1[_0x5c6284(0xb0)][_0x5c6284(0x104)](_0x178a31))continue;try{const _0xdbdba=utils_ok_1['fileUtil'][_0x5c6284(0xb5)](_0x178a31);if(_0x323beb&&getSessionId(_0xdbdba)===_0x323beb)continue;_0xdbdba['startTime']>_0x165bfc&&(_0x165bfc=_0xdbdba[_0x5c6284(0xdd)],_0x566907=_0xdbdba);}catch{continue;}}}catch{}return _0x566907;}function updateSessionFile(_0x33f674,_0x3e0267,_0x37a4ac){const _0x14aa2d=a11_0x3b30a8;if(_0x37a4ac[_0x14aa2d(0x7f)]&&!_0x3e0267[_0x14aa2d(0x7f)]){const _0x129a65=getSessionDir(_0x33f674,_0x3e0267);_0x3e0267[_0x14aa2d(0x7f)]=_0x37a4ac[_0x14aa2d(0x7f)];const _0x545819=getSessionDir(_0x33f674,_0x3e0267);_0x129a65!==_0x545819&&fs_1['default'][_0x14aa2d(0x104)](_0x129a65)&&(fs_1[_0x14aa2d(0xb0)][_0x14aa2d(0x7c)](_0x129a65,_0x545819),console['log']('['+timestamp()+_0x14aa2d(0xf2)+path_1[_0x14aa2d(0xb0)]['basename'](_0x129a65)+_0x14aa2d(0xdb)+path_1[_0x14aa2d(0xb0)][_0x14aa2d(0x85)](_0x545819)));}const _0x408439=getSessionDir(_0x33f674,_0x3e0267)+_0x14aa2d(0x128);try{if(_0x37a4ac[_0x14aa2d(0x11a)])_0x3e0267[_0x14aa2d(0x11a)]=_0x37a4ac['sessionWebhook'];if(_0x37a4ac[_0x14aa2d(0xf9)]!==undefined)_0x3e0267[_0x14aa2d(0xf9)]=_0x37a4ac[_0x14aa2d(0xf9)]||undefined;if(_0x37a4ac['currentConversationId']!==undefined)_0x3e0267[_0x14aa2d(0xb4)]=_0x37a4ac['currentConversationId']||undefined;fs_1[_0x14aa2d(0xb0)][_0x14aa2d(0x7a)](_0x408439,JSON[_0x14aa2d(0x142)](_0x3e0267,null,0x2),_0x14aa2d(0x103));const _0x32cf59=_0x37a4ac[_0x14aa2d(0x7f)]?'claudeSessionId':_0x37a4ac[_0x14aa2d(0xf9)]!==undefined?_0x14aa2d(0xf9):'sessionWebhook';console['log']('['+timestamp()+']\x20会话文件已保存:\x20'+_0x32cf59),saveActiveSession(_0x33f674,_0x3e0267['conversationId']);}catch(_0x4f7a34){console[_0x14aa2d(0xff)](_0x14aa2d(0x12f),_0x4f7a34);}}function appendSessionLog(_0x5549cf,_0x1ee64a,_0x4acbc6){const _0x1ada9=a11_0x3b30a8,_0x2eb416=_0x5549cf+'/session.log',_0x122f3b=timestamp(),_0x4647d7='['+_0x122f3b+']\x20['+_0x1ee64a[_0x1ada9(0x11f)]()+_0x1ada9(0x94)+_0x4acbc6+'\x0a';try{fs_1[_0x1ada9(0xb0)][_0x1ada9(0x90)](_0x2eb416,_0x4647d7,_0x1ada9(0x103));}catch{}}function getActiveSessionsFile(_0x18120a,_0x34b501){const _0x1f43be=a11_0x3b30a8;return getSessionsDir(_0x18120a,_0x34b501)+_0x1f43be(0x9f);}function saveActiveSession(_0x544bc2,_0x2dd7bf){const _0x411e78=a11_0x3b30a8,_0xea7543=_0x544bc2[_0x411e78(0xac)]['get'](_0x2dd7bf),_0x2bc70d=getActiveSessionsFile(_0x544bc2,_0x2dd7bf);try{if(!_0xea7543){if(fs_1[_0x411e78(0xb0)][_0x411e78(0x104)](_0x2bc70d))fs_1[_0x411e78(0xb0)]['unlinkSync'](_0x2bc70d);return;}const _0x1d0054={'session':_0xea7543[_0x411e78(0x9b)],'lastSenderStaffId':_0xea7543['lastSenderStaffId'],'conversationConfig':_0xea7543[_0x411e78(0xa5)]};fs_1[_0x411e78(0xb0)][_0x411e78(0xc5)](path_1[_0x411e78(0xb0)][_0x411e78(0x91)](_0x2bc70d),{'recursive':!![]}),fs_1[_0x411e78(0xb0)]['writeFileSync'](_0x2bc70d,JSON[_0x411e78(0x142)](_0x1d0054,null,0x2),_0x411e78(0x103)),debugLog(_0x544bc2,'活跃会话已持久化:\x20群='+_0x2dd7bf);}catch(_0x367b61){console['error']('持久化活跃会话失败:\x20群='+_0x2dd7bf,_0x367b61);}}function a11_0x2189(_0x56ba1a,_0x437a81){_0x56ba1a=_0x56ba1a-0x76;const _0x352b4d=a11_0x352b();let _0x21891c=_0x352b4d[_0x56ba1a];return _0x21891c;}function loadActiveSessions(_0x518e65){const _0x50257e=a11_0x3b30a8;for(const _0x17104a of _0x518e65['config'][_0x50257e(0x101)]){const _0x230c71=getActiveSessionsFile(_0x518e65,_0x17104a[_0x50257e(0x79)]);if(!fs_1['default'][_0x50257e(0x104)](_0x230c71))continue;try{const _0x35298e=utils_ok_1[_0x50257e(0x133)][_0x50257e(0xb5)](_0x230c71);if(!_0x35298e?.[_0x50257e(0x9b)]){console['log']('活跃会话文件无效,跳过:\x20'+_0x230c71);continue;}const _0x33af44=getSessionDir(_0x518e65,_0x35298e['session']);if(!fs_1[_0x50257e(0xb0)][_0x50257e(0x104)](_0x33af44)){console[_0x50257e(0xd2)]('活跃会话目录已不存在,清理持久化文件:\x20'+_0x230c71),fs_1[_0x50257e(0xb0)][_0x50257e(0xcb)](_0x230c71);continue;}_0x518e65[_0x50257e(0xac)]['set'](_0x17104a[_0x50257e(0x79)],{'session':_0x35298e[_0x50257e(0x9b)],'lastSenderStaffId':_0x35298e[_0x50257e(0xe7)]||_0x35298e[_0x50257e(0x9b)]['startStaffId'],'isProcessing':![],'messageQueue':[],'conversationConfig':_0x35298e[_0x50257e(0xa5)]}),console[_0x50257e(0xd2)](_0x50257e(0x9c)+_0x17104a[_0x50257e(0x79)]+_0x50257e(0x7b)+getSessionId(_0x35298e[_0x50257e(0x9b)]));}catch(_0x4031d){console[_0x50257e(0xff)](_0x50257e(0x120)+_0x230c71,_0x4031d);}}}async function endSession(_0x50b5df,_0xa6ec48,_0x3f1691){const _0x291679=a11_0x3b30a8,_0x5cc55e=findActiveSession(_0x50b5df,_0xa6ec48);if(!_0x5cc55e){console['log']('群\x20'+_0xa6ec48+_0x291679(0xe2));return;}const {key:_0x16f844,session:_0x373095}=_0x5cc55e,{session:_0x24e1fc}=_0x373095,_0x53dbfa=getSessionDir(_0x50b5df,_0x24e1fc),_0x1d83e9=getSessionId(_0x24e1fc);console[_0x291679(0xd2)]('结束会话:\x20群='+_0xa6ec48+_0x291679(0x7b)+_0x1d83e9),(0x0,claude_process_1[_0x291679(0x130)])(_0x373095,_0x291679(0xde))&&fs_1[_0x291679(0xb0)][_0x291679(0x90)](_0x53dbfa+_0x291679(0x143),'['+timestamp()+']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','utf-8'),await(0x0,messaging_1[_0x291679(0xf7)])(_0x50b5df,{'conversationId':_0xa6ec48,'sessionWebhook':_0x3f1691,'atUserId':_0x24e1fc[_0x291679(0xdc)],'content':'💬\x20会话已结束\x0a📋\x20会话ID:\x20'+_0x1d83e9}),_0x50b5df[_0x291679(0xac)]['delete'](_0x16f844),saveActiveSession(_0x50b5df,_0x16f844),fs_1[_0x291679(0xb0)][_0x291679(0x90)](_0x53dbfa+_0x291679(0x143),'['+timestamp()+']\x20[SYSTEM]:\x20用户请求结束会话\x0a','utf-8');}async function switchToSession(_0x5e69b4,_0xb11f0e,_0x5c4a20,_0x2e2d4a,_0x5bf104,_0x2e08fd){const _0x2a5f4d=a11_0x3b30a8,_0x5a358a=findHistorySession(_0x5e69b4,_0xb11f0e,_0x2e2d4a);if(!_0x5a358a)return await(0x0,messaging_1['sendDingMessage'])(_0x5e69b4,{'conversationId':_0xb11f0e,'sessionWebhook':_0x5c4a20,'atUserId':_0x5bf104,'content':_0x2a5f4d(0xdf)+_0x2e2d4a+',该会话可能已被清理,请发送新消息开始新会话'}),![];const _0x52a419=getSessionDir(_0x5e69b4,_0x5a358a);if(!fs_1[_0x2a5f4d(0xb0)][_0x2a5f4d(0x104)](_0x52a419))return await(0x0,messaging_1[_0x2a5f4d(0xf7)])(_0x5e69b4,{'conversationId':_0xb11f0e,'sessionWebhook':_0x5c4a20,'atUserId':_0x5bf104,'content':'❌\x20会话\x20'+_0x2e2d4a+_0x2a5f4d(0x92)}),![];const _0x29fc2a=findActiveSession(_0x5e69b4,_0xb11f0e);_0x29fc2a&&(console['log'](_0x2a5f4d(0x141)+getSessionId(_0x29fc2a[_0x2a5f4d(0x9b)][_0x2a5f4d(0x9b)])),(0x0,claude_process_1['interruptClaudeProcess'])(_0x29fc2a[_0x2a5f4d(0x9b)],'切换会话时中断正在执行的\x20Claude\x20进程'),_0x5e69b4[_0x2a5f4d(0xac)][_0x2a5f4d(0x81)](_0x29fc2a['key']),saveActiveSession(_0x5e69b4,_0x29fc2a[_0x2a5f4d(0xe0)]),fs_1['default'][_0x2a5f4d(0x90)](getSessionDir(_0x5e69b4,_0x29fc2a[_0x2a5f4d(0x9b)]['session'])+'/session.log','['+timestamp()+_0x2a5f4d(0x127)+_0x2e2d4a+_0x2a5f4d(0xc1),_0x2a5f4d(0x103)));_0x5e69b4[_0x2a5f4d(0xac)][_0x2a5f4d(0xd8)](_0xb11f0e,{'session':_0x5a358a,'lastSenderStaffId':_0x5bf104,'isProcessing':![],'messageQueue':[],'conversationConfig':_0x2e08fd}),saveActiveSession(_0x5e69b4,_0xb11f0e);const _0x439c00=!!_0x5a358a[_0x2a5f4d(0x7f)],_0x5894b4=getSessionId(_0x5a358a);return await(0x0,messaging_1['sendDingMessage'])(_0x5e69b4,{'conversationId':_0xb11f0e,'sessionWebhook':_0x5c4a20,'atUserId':_0x5bf104,'content':_0x2a5f4d(0xf0)+_0x5894b4+')\x0a'+(_0x439c00?_0x2a5f4d(0xbf):'⚠️\x20该会话无历史上下文,将从头开始')+_0x2a5f4d(0xaa)}),console[_0x2a5f4d(0xd2)](_0x2a5f4d(0xb9)+_0xb11f0e+',\x20会话ID='+_0x5894b4+_0x2a5f4d(0x148)+_0x439c00),!![];}async function startNewSession(_0x5c289f,_0xbb90f3){const _0x4e5b07=a11_0x3b30a8,{conversationId:_0x2dcdf4,sessionWebhook:_0x355d98,senderStaffId:_0x3a75d2,senderNick:_0x3b0a21,message:_0x441666,conversationConfig:_0x29fcb6}=_0xbb90f3,_0x1a2c40=_0x5c289f[_0x4e5b07(0x8d)][_0x4e5b07(0xf4)]??_0x5c289f[_0x4e5b07(0xa4)];if(_0x5c289f[_0x4e5b07(0xac)][_0x4e5b07(0x8e)]>=_0x1a2c40){console['log'](_0x4e5b07(0xb8)+_0x1a2c40+_0x4e5b07(0x10d)+_0x2dcdf4),await(0x0,messaging_1[_0x4e5b07(0xf7)])(_0x5c289f,{'conversationId':_0x2dcdf4,'sessionWebhook':_0x355d98,'atUserId':_0x3a75d2,'content':'🤯\x20当前繁忙,请稍后再试...'});return;}const _0x5b43fe=Date[_0x4e5b07(0x10b)](),_0x20a5b8={'conversationId':_0x2dcdf4,'sessionWebhook':_0x355d98,'startTime':_0x5b43fe,'startTimeStr':utils_ok_1[_0x4e5b07(0xd6)]['mm'](_0x5b43fe)[_0x4e5b07(0x99)](_0x4e5b07(0x117)),'startStaffId':_0x3a75d2,'startNickName':_0x3b0a21};console['log'](_0x4e5b07(0x107)+_0x2dcdf4+',\x20会话ID='+getSessionId(_0x20a5b8)+',\x20发起者='+_0x3a75d2+_0x4e5b07(0xd9)+(_0x5c289f[_0x4e5b07(0xac)][_0x4e5b07(0x8e)]+0x1)+'/'+_0x1a2c40);const _0xd34405=getSessionDir(_0x5c289f,_0x20a5b8);fs_1['default']['mkdirSync'](_0xd34405,{'recursive':!![]}),fs_1[_0x4e5b07(0xb0)][_0x4e5b07(0x7a)](_0xd34405+'/session.json',JSON['stringify'](_0x20a5b8,null,0x2),_0x4e5b07(0x103)),_0x5c289f[_0x4e5b07(0xac)][_0x4e5b07(0xd8)](_0x2dcdf4,{'session':_0x20a5b8,'lastSenderStaffId':_0x3a75d2,'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x29fcb6}),saveActiveSession(_0x5c289f,_0x2dcdf4);_0x29fcb6['receiveReply']!==![]&&await(0x0,messaging_1['sendDingMessage'])(_0x5c289f,{'conversationId':_0x2dcdf4,'sessionWebhook':_0x355d98,'atUserId':_0x3a75d2,'content':_0x4e5b07(0x9d)});try{await(0x0,claude_process_1[_0x4e5b07(0x137)])(_0x5c289f,_0x20a5b8,_0x441666,{'skill':_0x29fcb6['taskCfg']?.['skill'],'agent':_0x29fcb6['agent'],'senderNick':_0x3b0a21,'senderStaffId':_0x3a75d2});}catch(_0x40326f){console['error'](_0x4e5b07(0x10e),_0x40326f),await(0x0,messaging_1['sendDingMessage'])(_0x5c289f,{'conversationId':_0x2dcdf4,'sessionWebhook':_0x355d98,'atUserId':_0x3a75d2,'content':'❌\x20处理消息时发生错误:\x20'+(_0x40326f instanceof Error?_0x40326f[_0x4e5b07(0x8b)]:String(_0x40326f))});}finally{const _0x45f8cc=_0x5c289f[_0x4e5b07(0xac)][_0x4e5b07(0xe4)](_0x2dcdf4);_0x45f8cc&&(_0x45f8cc[_0x4e5b07(0xce)]=![]);}await processMessageQueue(_0x5c289f,_0x2dcdf4);}async function processMessageQueue(_0x1b4fe4,_0x538140){const _0x5a7fe2=a11_0x3b30a8,_0x479ce2=_0x1b4fe4[_0x5a7fe2(0xac)][_0x5a7fe2(0xe4)](_0x538140);if(!_0x479ce2||_0x479ce2[_0x5a7fe2(0xb7)][_0x5a7fe2(0x125)]===0x0)return;const _0x34fd92=_0x479ce2[_0x5a7fe2(0xb7)]['shift'](),{message:_0x30a883,senderStaffId:_0x3a8950,senderNick:_0x16dcd9}=_0x34fd92,_0x58b318=_0x479ce2['session']['sessionWebhook'];console[_0x5a7fe2(0xd2)](_0x5a7fe2(0x8f)+_0x538140+_0x5a7fe2(0xd0)+_0x479ce2[_0x5a7fe2(0xb7)]['length']+'\x20条'),_0x479ce2[_0x5a7fe2(0xce)]=!![],_0x479ce2[_0x5a7fe2(0xe7)]=_0x3a8950,saveActiveSession(_0x1b4fe4,_0x538140);_0x479ce2[_0x5a7fe2(0xa5)]['receiveReply']!==![]&&await(0x0,messaging_1[_0x5a7fe2(0xf7)])(_0x1b4fe4,{'conversationId':_0x538140,'sessionWebhook':_0x58b318,'atUserId':_0x3a8950,'content':_0x5a7fe2(0x109)})[_0x5a7fe2(0xda)](()=>{});try{await(0x0,claude_process_1[_0x5a7fe2(0x137)])(_0x1b4fe4,_0x479ce2[_0x5a7fe2(0x9b)],_0x30a883,{'skill':_0x479ce2[_0x5a7fe2(0xa5)][_0x5a7fe2(0x11c)]?.[_0x5a7fe2(0xd3)],'agent':_0x479ce2[_0x5a7fe2(0xa5)][_0x5a7fe2(0x118)],'senderNick':_0x16dcd9,'senderStaffId':_0x3a8950});}catch(_0x34d3f0){console[_0x5a7fe2(0xff)](_0x5a7fe2(0x106),_0x34d3f0),await(0x0,messaging_1['sendDingMessage'])(_0x1b4fe4,{'conversationId':_0x538140,'sessionWebhook':_0x58b318,'atUserId':_0x3a8950,'content':_0x5a7fe2(0x149)+(_0x34d3f0 instanceof Error?_0x34d3f0[_0x5a7fe2(0x8b)]:String(_0x34d3f0))});}finally{_0x479ce2[_0x5a7fe2(0xce)]=![];}_0x479ce2[_0x5a7fe2(0xb7)][_0x5a7fe2(0x125)]>0x0&&await processMessageQueue(_0x1b4fe4,_0x538140);}async function handleSessionMessage(_0x20f5ab,_0x8426d0){const _0x37d9b1=a11_0x3b30a8,{conversationId:_0x1666dd,sessionWebhook:_0x105d51,senderStaffId:_0x52f952,senderNick:_0xc7a5e3,message:_0x93adc,conversationConfig:_0xd64931}=_0x8426d0;if((0x0,commands_1[_0x37d9b1(0xed)])(_0x93adc)){await endSession(_0x20f5ab,_0x1666dd,_0x105d51);return;}const _0x2cb9f5=findActiveSession(_0x20f5ab,_0x1666dd),_0x464ce6=_0x2cb9f5?.[_0x37d9b1(0x9b)];if(_0x464ce6){const _0x581b21=getSessionDir(_0x20f5ab,_0x464ce6[_0x37d9b1(0x9b)]);!fs_1[_0x37d9b1(0xb0)][_0x37d9b1(0x104)](_0x581b21)&&(fs_1[_0x37d9b1(0xb0)][_0x37d9b1(0xc5)](_0x581b21,{'recursive':!![]}),fs_1[_0x37d9b1(0xb0)][_0x37d9b1(0x7a)](_0x581b21+'/session.json',JSON['stringify'](_0x464ce6[_0x37d9b1(0x9b)],null,0x2),'utf-8'),console[_0x37d9b1(0xd2)](_0x37d9b1(0x13b)+_0x1666dd+_0x37d9b1(0xfc)+_0x581b21));if(_0x464ce6[_0x37d9b1(0xce)]){const _0x45cd36={'message':_0x93adc,'senderStaffId':_0x52f952,'senderNick':_0xc7a5e3};_0x464ce6[_0x37d9b1(0xb7)][_0x37d9b1(0xea)](_0x45cd36);const _0xb552ee=_0x464ce6['messageQueue'][_0x37d9b1(0x125)];console[_0x37d9b1(0xd2)](_0x37d9b1(0xa9)+_0x1666dd+_0x37d9b1(0x102)+_0xb552ee+'\x20条'),await(0x0,messaging_1[_0x37d9b1(0xf7)])(_0x20f5ab,{'conversationId':_0x1666dd,'sessionWebhook':_0x105d51,'atUserId':_0x52f952,'content':'⏳\x20正在处理中,已加入队列(排队第\x20'+_0xb552ee+_0x37d9b1(0x129)});return;}const _0x331d90=_0x464ce6['session'][_0x37d9b1(0x79)]===_0x1666dd;console[_0x37d9b1(0xd2)](_0x37d9b1(0xd7)+_0x1666dd+_0x37d9b1(0x7b)+getSessionId(_0x464ce6[_0x37d9b1(0x9b)])+(_0x331d90?'':_0x37d9b1(0x124)+_0x464ce6[_0x37d9b1(0x9b)][_0x37d9b1(0x79)]+')')),_0x464ce6[_0x37d9b1(0xe7)]=_0x52f952,_0x464ce6['isProcessing']=!![],saveActiveSession(_0x20f5ab,_0x2cb9f5[_0x37d9b1(0xe0)]);_0x331d90&&_0x105d51!==_0x464ce6[_0x37d9b1(0x9b)][_0x37d9b1(0x11a)]&&(_0x464ce6[_0x37d9b1(0x9b)]['sessionWebhook']=_0x105d51,updateSessionFile(_0x20f5ab,_0x464ce6[_0x37d9b1(0x9b)],{'sessionWebhook':_0x105d51}));_0x464ce6['session'][_0x37d9b1(0xf9)]=_0x105d51,_0x464ce6[_0x37d9b1(0x9b)][_0x37d9b1(0xb4)]=_0x1666dd,updateSessionFile(_0x20f5ab,_0x464ce6[_0x37d9b1(0x9b)],{'currentWebhook':_0x105d51,'currentConversationId':_0x1666dd});_0xd64931[_0x37d9b1(0x114)]!==![]&&await(0x0,messaging_1['sendDingMessage'])(_0x20f5ab,{'conversationId':_0x1666dd,'sessionWebhook':_0x105d51,'atUserId':_0x52f952,'content':_0x37d9b1(0x109)});try{await(0x0,claude_process_1[_0x37d9b1(0x137)])(_0x20f5ab,_0x464ce6['session'],_0x93adc,{'skill':_0xd64931[_0x37d9b1(0x11c)]?.['skill'],'agent':_0xd64931['agent'],'senderNick':_0xc7a5e3,'senderStaffId':_0x52f952});}catch(_0x3ff8d2){if(_0x464ce6[_0x37d9b1(0x9b)]['claudeSessionId']){console[_0x37d9b1(0xd2)](_0x37d9b1(0x13c)+_0x464ce6[_0x37d9b1(0x9b)][_0x37d9b1(0x7f)]),_0x464ce6['session'][_0x37d9b1(0x7f)]=undefined,_0x20f5ab['updateSessionFile'](_0x464ce6[_0x37d9b1(0x9b)],{});try{await(0x0,claude_process_1[_0x37d9b1(0x137)])(_0x20f5ab,_0x464ce6[_0x37d9b1(0x9b)],_0x93adc,{'skill':_0xd64931[_0x37d9b1(0x11c)]?.['skill'],'agent':_0xd64931[_0x37d9b1(0x118)],'senderNick':_0xc7a5e3,'senderStaffId':_0x52f952});return;}catch(_0x578d){console[_0x37d9b1(0xff)](_0x37d9b1(0xf8),_0x578d),await(0x0,messaging_1[_0x37d9b1(0xf7)])(_0x20f5ab,{'conversationId':_0x1666dd,'sessionWebhook':_0x105d51,'atUserId':_0x52f952,'content':_0x37d9b1(0x149)+(_0x578d instanceof Error?_0x578d[_0x37d9b1(0x8b)]:String(_0x578d))}),_0x464ce6[_0x37d9b1(0xce)]=![],await processMessageQueue(_0x20f5ab,_0x1666dd);return;}}console[_0x37d9b1(0xff)](_0x37d9b1(0x10e),_0x3ff8d2),await(0x0,messaging_1[_0x37d9b1(0xf7)])(_0x20f5ab,{'conversationId':_0x1666dd,'sessionWebhook':_0x105d51,'atUserId':_0x52f952,'content':_0x37d9b1(0x149)+(_0x3ff8d2 instanceof Error?_0x3ff8d2['message']:String(_0x3ff8d2))});}finally{_0x464ce6[_0x37d9b1(0xce)]=![];}await processMessageQueue(_0x20f5ab,_0x1666dd);}else await startNewSession(_0x20f5ab,{'conversationId':_0x1666dd,'sessionWebhook':_0x105d51,'senderStaffId':_0x52f952,'senderNick':_0xc7a5e3,'message':_0x93adc,'conversationConfig':_0xd64931});}function cleanCache(_0x1852e3,_0x1d181d,_0x563115=!![]){const _0x21a7a2=a11_0x3b30a8,_0x2f578b={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x270631=_0x1d181d?[_0x1d181d]:_0x1852e3['config'][_0x21a7a2(0x101)]['map'](_0x242614=>_0x242614['conversationId']);for(const _0x5e4799 of _0x270631){let _0x14247f=null;if(_0x563115){const _0x112736=findActiveSession(_0x1852e3,_0x5e4799);_0x112736&&(_0x14247f=getSessionId(_0x112736[_0x21a7a2(0x9b)]['session']));}const _0x264d5e=getSessionsDir(_0x1852e3,_0x5e4799);if(fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x104)](_0x264d5e))try{const _0x5b5235=fs_1['default']['readdirSync'](_0x264d5e,{'withFileTypes':!![]});for(const _0x2b3343 of _0x5b5235){if(!_0x2b3343['isDirectory']())continue;if(_0x14247f&&_0x2b3343['name']===_0x14247f)continue;const _0x5adbfd=path_1[_0x21a7a2(0xb0)]['join'](_0x264d5e,_0x2b3343[_0x21a7a2(0x11d)]);try{fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x86)](_0x5adbfd,{'recursive':!![],'force':!![]}),_0x2f578b[_0x21a7a2(0x9a)]++;}catch(_0xb24032){_0x2f578b[_0x21a7a2(0x87)][_0x21a7a2(0xea)](_0x21a7a2(0xe9)+_0x5adbfd);}}}catch(_0x576d0a){_0x2f578b['errors'][_0x21a7a2(0xea)](_0x21a7a2(0x13f)+_0x264d5e);}const _0x35e08a=getTasksDir(_0x1852e3,_0x5e4799);if(fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x104)](_0x35e08a))try{const _0x19f60a=fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x131)](_0x35e08a,{'withFileTypes':!![]});for(const _0x5ca26e of _0x19f60a){if(!_0x5ca26e[_0x21a7a2(0x83)]())continue;const _0x13be00=path_1[_0x21a7a2(0xb0)][_0x21a7a2(0xa3)](_0x35e08a,_0x5ca26e[_0x21a7a2(0x11d)]);try{fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x86)](_0x13be00,{'recursive':!![],'force':!![]}),_0x2f578b[_0x21a7a2(0xba)]++;}catch(_0x81617){_0x2f578b[_0x21a7a2(0x87)][_0x21a7a2(0xea)](_0x21a7a2(0xcf)+_0x13be00);}}}catch(_0x2eb219){_0x2f578b[_0x21a7a2(0x87)][_0x21a7a2(0xea)]('读取tasks目录失败:\x20'+_0x35e08a);}const _0x31b118=getImagesDir(_0x1852e3,_0x5e4799);if(fs_1['default'][_0x21a7a2(0x104)](_0x31b118))try{const _0x218786=fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x131)](_0x31b118,{'withFileTypes':!![]});for(const _0x10990d of _0x218786){const _0x4d3409=path_1[_0x21a7a2(0xb0)][_0x21a7a2(0xa3)](_0x31b118,_0x10990d[_0x21a7a2(0x11d)]);try{fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0xcb)](_0x4d3409),_0x2f578b[_0x21a7a2(0x98)]++;}catch(_0x50b083){_0x2f578b[_0x21a7a2(0x87)][_0x21a7a2(0xea)]('删除图片失败:\x20'+_0x4d3409);}}}catch(_0x4f8e66){_0x2f578b['errors'][_0x21a7a2(0xea)](_0x21a7a2(0x10f)+_0x31b118);}if(!_0x563115){const _0x26774f=getActiveSessionsFile(_0x1852e3,_0x5e4799);if(fs_1[_0x21a7a2(0xb0)][_0x21a7a2(0x104)](_0x26774f))try{fs_1['default']['unlinkSync'](_0x26774f);}catch(_0x51d736){_0x2f578b[_0x21a7a2(0x87)][_0x21a7a2(0xea)](_0x21a7a2(0x10c)+_0x26774f);}_0x1852e3[_0x21a7a2(0xac)]['has'](_0x5e4799)&&_0x1852e3[_0x21a7a2(0xac)][_0x21a7a2(0x81)](_0x5e4799);}}return _0x2f578b;}
|
package/dist/src/biz/task.js
CHANGED
|
@@ -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_0x14594a=a12_0x55f5;(function(_0x2ea7cd,_0x218925){const _0x528903=a12_0x55f5,_0xf3b287=_0x2ea7cd();while(!![]){try{const _0x41e32c=parseInt(_0x528903(0x1ca))/0x1*(parseInt(_0x528903(0x227))/0x2)+-parseInt(_0x528903(0x1d6))/0x3+-parseInt(_0x528903(0x1ab))/0x4+-parseInt(_0x528903(0x217))/0x5+-parseInt(_0x528903(0x21d))/0x6*(-parseInt(_0x528903(0x22c))/0x7)+parseInt(_0x528903(0x21e))/0x8+parseInt(_0x528903(0x221))/0x9*(parseInt(_0x528903(0x1dd))/0xa);if(_0x41e32c===_0x218925)break;else _0xf3b287['push'](_0xf3b287['shift']());}catch(_0x4943f8){_0xf3b287['push'](_0xf3b287['shift']());}}}(a12_0x5855,0x2c074));function a12_0x55f5(_0x56b4e3,_0x48fa43){_0x56b4e3=_0x56b4e3-0x1aa;const _0x585519=a12_0x5855();let _0x55f556=_0x585519[_0x56b4e3];return _0x55f556;}var __importDefault=this&&this[a12_0x14594a(0x1c7)]||function(_0x357fd1){const _0x5b68c8=a12_0x14594a;return _0x357fd1&&_0x357fd1[_0x5b68c8(0x22d)]?_0x357fd1:{'default':_0x357fd1};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['formatTaskInfo']=formatTaskInfo,exports[a12_0x14594a(0x265)]=countTodoTask,exports['getOneTodoTask']=getOneTodoTask,exports['finishTask']=finishTask,exports[a12_0x14594a(0x1fd)]=cancelTask,exports[a12_0x14594a(0x1e1)]=parseTaskCancelCommand,exports[a12_0x14594a(0x237)]=handleTask,exports[a12_0x14594a(0x1ec)]=runTaskHandlerLoop,exports[a12_0x14594a(0x24c)]=saveTask;const utils_ok_1=require(a12_0x14594a(0x212)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a12_0x14594a(0x209))),child_process_1=require(a12_0x14594a(0x1d8)),common_1=require('../common'),messaging_1=require(a12_0x14594a(0x257)),claude_process_1=require('./claude-process'),session_1=require(a12_0x14594a(0x201)),api_key_manager_1=require('./api-key-manager'),MAX_RETRY_COUNT=0x3;function formatTaskInfo(_0x28aa86){const _0x4a9c24=a12_0x14594a,_0x23b293=[],_0x9e6c18=[],_0x301c66=[],_0x3bb870=[];for(const _0xc978ac of _0x28aa86['config']['conversations']){const _0x189e53=(0x0,session_1[_0x4a9c24(0x23c)])(_0x28aa86,_0xc978ac['conversationId']);if(!fs_1[_0x4a9c24(0x258)][_0x4a9c24(0x1d5)](_0x189e53))continue;const _0x244293=utils_ok_1[_0x4a9c24(0x1b5)][_0x4a9c24(0x25b)](_0x189e53);for(const _0x1b6406 of _0x244293){const _0xd57227=path_1[_0x4a9c24(0x258)][_0x4a9c24(0x248)](_0x1b6406);try{const _0x82a9cc=utils_ok_1[_0x4a9c24(0x1b5)][_0x4a9c24(0x1cb)](_0x1b6406);if(!_0x82a9cc)continue;if(_0xd57227===_0x4a9c24(0x1f9))_0x23b293[_0x4a9c24(0x1ee)](_0x82a9cc);else{if(_0xd57227===_0x4a9c24(0x261))_0x9e6c18[_0x4a9c24(0x1ee)](_0x82a9cc);else{if(_0xd57227===_0x4a9c24(0x1af))_0x301c66[_0x4a9c24(0x1ee)](_0x82a9cc);else _0xd57227===_0x4a9c24(0x1b9)&&_0x3bb870[_0x4a9c24(0x1ee)](_0x82a9cc);}}}catch{}}}_0x23b293[_0x4a9c24(0x1f8)]((_0x3483cf,_0x4d5aa9)=>_0x3483cf[_0x4a9c24(0x260)]-_0x4d5aa9[_0x4a9c24(0x260)]),_0x9e6c18['sort']((_0x53108c,_0x204ba0)=>_0x53108c[_0x4a9c24(0x260)]-_0x204ba0[_0x4a9c24(0x260)]),_0x301c66['sort']((_0x51311c,_0x4eaef7)=>_0x4eaef7[_0x4a9c24(0x260)]-_0x51311c[_0x4a9c24(0x260)]),_0x3bb870[_0x4a9c24(0x1f8)]((_0x209328,_0x1b274e)=>_0x1b274e[_0x4a9c24(0x260)]-_0x209328[_0x4a9c24(0x260)]);const _0x7c8abe=[];if(_0x9e6c18[_0x4a9c24(0x1eb)]>0x0){const _0x550257=_0x9e6c18[_0x4a9c24(0x220)](_0x2df2f4=>'#'+_0x2df2f4[_0x4a9c24(0x260)]+'\x20'+(_0x2df2f4['senderNickName']||_0x2df2f4[_0x4a9c24(0x23f)])+':\x20'+taskDisplayName(_0x2df2f4));_0x7c8abe[_0x4a9c24(0x1ee)](_0x4a9c24(0x25d)+_0x9e6c18[_0x4a9c24(0x1eb)]+')**\x0a'+_0x550257[_0x4a9c24(0x1cd)]('\x0a'));}else _0x7c8abe[_0x4a9c24(0x1ee)]('**⏳\x20处理中**\x0a无');if(_0x23b293[_0x4a9c24(0x1eb)]>0x0){const _0x2d5c3b=_0x23b293[_0x4a9c24(0x220)](_0x57d73f=>'#'+_0x57d73f[_0x4a9c24(0x260)]+'\x20'+(_0x57d73f[_0x4a9c24(0x22f)]||_0x57d73f[_0x4a9c24(0x23f)])+':\x20'+taskDisplayName(_0x57d73f));_0x7c8abe[_0x4a9c24(0x1ee)](_0x4a9c24(0x1fe)+_0x23b293[_0x4a9c24(0x1eb)]+_0x4a9c24(0x213)+_0x2d5c3b['join']('\x0a'));}else _0x7c8abe[_0x4a9c24(0x1ee)]('**📋\x20待办队列**\x0a无');const _0x5cb398=_0x301c66[_0x4a9c24(0x1be)](0x0,0x5);if(_0x5cb398['length']>0x0){const _0x42c02a=_0x5cb398[_0x4a9c24(0x220)](_0x43e2e7=>'#'+_0x43e2e7['startTime']+'\x20'+(_0x43e2e7['senderNickName']||_0x43e2e7[_0x4a9c24(0x23f)])+':\x20'+taskDisplayName(_0x43e2e7));_0x7c8abe[_0x4a9c24(0x1ee)](_0x4a9c24(0x259)+_0x5cb398[_0x4a9c24(0x1eb)]+'/'+_0x301c66[_0x4a9c24(0x1eb)]+')**\x0a'+_0x42c02a[_0x4a9c24(0x1cd)]('\x0a'));}else _0x7c8abe['push']('**✅\x20最近完成**\x0a无');if(_0x3bb870[_0x4a9c24(0x1eb)]>0x0){const _0x53135c=_0x3bb870[_0x4a9c24(0x220)](_0x59df23=>'#'+_0x59df23['startTime']+'\x20'+(_0x59df23[_0x4a9c24(0x22f)]||_0x59df23['senderStaffId'])+':\x20'+taskDisplayName(_0x59df23)+(_0x59df23[_0x4a9c24(0x1d0)]?_0x4a9c24(0x1d4)+_0x59df23[_0x4a9c24(0x1d0)]+'次)':''));_0x7c8abe[_0x4a9c24(0x1ee)](_0x4a9c24(0x20d)+_0x3bb870[_0x4a9c24(0x1eb)]+_0x4a9c24(0x213)+_0x53135c[_0x4a9c24(0x1cd)]('\x0a'));}return _0x7c8abe[_0x4a9c24(0x1cd)]('\x0a\x0a');}function truncatePrompt(_0x3af2e3,_0x2187c2=0x50){const _0x5ee1c9=a12_0x14594a,_0x29c442=_0x3af2e3[_0x5ee1c9(0x238)](/\n/g,'\x20')[_0x5ee1c9(0x224)]();return _0x29c442[_0x5ee1c9(0x1eb)]>_0x2187c2?_0x29c442[_0x5ee1c9(0x1be)](0x0,_0x2187c2)+_0x5ee1c9(0x1ba):_0x29c442;}function taskDisplayName(_0x151794){const _0xa720a5=a12_0x14594a;if(_0x151794[_0xa720a5(0x1c6)])return _0x151794[_0xa720a5(0x1c6)];return truncatePrompt(_0x151794[_0xa720a5(0x1bd)]);}async function preprocessTask(_0x56d09e,_0x1cd170,_0x1a99a3){const _0x4800b8=a12_0x14594a,_0x598b4e=(0x0,session_1['getConversationDir'])(_0x56d09e,_0x1cd170),_0x43b0de='claude',_0x1ce670=[_0x4800b8(0x235),_0x4800b8(0x228),_0x4800b8(0x1fa)],_0x11e221=(0x0,claude_process_1[_0x4800b8(0x204)])(_0x56d09e,_0x598b4e);_0x11e221&&_0x1ce670[_0x4800b8(0x1ee)](_0x4800b8(0x25a),_0x11e221);const _0x7d97a4=[_0x4800b8(0x1e9),'直接返回JSON,不要markdown代码块或其他内容。',_0x4800b8(0x246),'',_0x4800b8(0x206)+_0x1a99a3][_0x4800b8(0x1cd)]('\x0a');_0x1ce670['push'](_0x7d97a4);const _0x392bba=0x7530;return new Promise(_0x4d5b18=>{const _0x22c485=_0x4800b8;let _0x39d41b='';const _0x57fc05=(0x0,child_process_1['spawn'])(_0x43b0de,_0x1ce670,{'cwd':_0x598b4e,'stdio':[_0x22c485(0x216),'pipe',_0x22c485(0x205)]}),_0xd02ab0=setTimeout(()=>{const _0x3a5691=_0x22c485;_0x57fc05[_0x3a5691(0x1c8)]('SIGTERM'),setTimeout(()=>{const _0xf72eea=_0x3a5691;try{_0x57fc05[_0xf72eea(0x1c8)](_0xf72eea(0x225));}catch{}},0xbb8);},_0x392bba);_0x57fc05[_0x22c485(0x1e7)]['on'](_0x22c485(0x249),_0x540562=>{const _0x3402ed=_0x22c485;_0x39d41b+=_0x540562[_0x3402ed(0x1e0)]();}),_0x57fc05['stderr']['on'](_0x22c485(0x249),()=>{}),_0x57fc05['on'](_0x22c485(0x1de),_0x1dda42=>{const _0x30e811=_0x22c485;clearTimeout(_0xd02ab0);if(_0x1dda42!==0x0||!_0x39d41b[_0x30e811(0x224)]()){console[_0x30e811(0x239)]('['+(0x0,session_1[_0x30e811(0x1b7)])()+_0x30e811(0x1da)+_0x1dda42+'),使用原始prompt'),_0x4d5b18(null);return;}try{let _0x1f7643=_0x39d41b[_0x30e811(0x224)]();const _0x3385cf=_0x1f7643[_0x30e811(0x20a)](/\{[\s\S]*\}/);if(_0x3385cf)_0x1f7643=_0x3385cf[0x0];const _0x2d9abd=JSON[_0x30e811(0x1f2)](_0x1f7643);_0x2d9abd[_0x30e811(0x1c6)]&&_0x2d9abd[_0x30e811(0x219)]?(console[_0x30e811(0x239)]('['+(0x0,session_1[_0x30e811(0x1b7)])()+_0x30e811(0x1ad)+_0x2d9abd['title']+'\x22'),_0x4d5b18({'title':String(_0x2d9abd[_0x30e811(0x1c6)]),'promptSimply':String(_0x2d9abd['promptSimply'])})):(console[_0x30e811(0x239)]('['+(0x0,session_1[_0x30e811(0x1b7)])()+']\x20任务预处理返回格式不正确,使用原始prompt'),_0x4d5b18(null));}catch(_0x1921cf){console[_0x30e811(0x239)]('['+(0x0,session_1[_0x30e811(0x1b7)])()+_0x30e811(0x23a)+_0x1921cf),_0x4d5b18(null);}}),_0x57fc05['on'](_0x22c485(0x1e2),_0x52053e=>{const _0x2a3859=_0x22c485;clearTimeout(_0xd02ab0),console[_0x2a3859(0x1e2)]('['+(0x0,session_1[_0x2a3859(0x1b7)])()+_0x2a3859(0x1b8),_0x52053e),_0x4d5b18(null);});});}function countTodoTask(_0x3e20c4){const _0x205536=a12_0x14594a;let _0x2d6ffd=0x0;for(const _0x5773a4 of _0x3e20c4[_0x205536(0x1ae)][_0x205536(0x23e)]){const _0x21f098=(0x0,session_1[_0x205536(0x23c)])(_0x3e20c4,_0x5773a4['conversationId']);if(fs_1[_0x205536(0x258)][_0x205536(0x1d5)](_0x21f098)){const _0x42300d=utils_ok_1[_0x205536(0x1b5)]['dirWalker'](_0x21f098),_0x9e9f1a=_0x42300d[_0x205536(0x23b)](_0x5da634=>path_1[_0x205536(0x258)][_0x205536(0x248)](_0x5da634)===_0x205536(0x1f9));_0x2d6ffd+=_0x9e9f1a['length'];}}return _0x2d6ffd;}async function getOneTodoTask(_0xc04fad){const _0x24689f=a12_0x14594a;for(const _0x42a32f of _0xc04fad[_0x24689f(0x1ae)][_0x24689f(0x23e)]){const _0xe1127=(0x0,session_1[_0x24689f(0x23c)])(_0xc04fad,_0x42a32f[_0x24689f(0x1ce)]);if(!fs_1[_0x24689f(0x258)]['existsSync'](_0xe1127))continue;const _0x485388=utils_ok_1['fileUtil']['dirWalker'](_0xe1127),_0x3549bf=_0x485388[_0x24689f(0x23b)](_0x4ae23f=>path_1[_0x24689f(0x258)][_0x24689f(0x248)](_0x4ae23f)===_0x24689f(0x1f9));if(_0x3549bf[_0x24689f(0x1eb)]===0x0)continue;const _0xa99aac=_0x3549bf[_0x24689f(0x220)](_0x537d77=>{const _0x452cb5=_0x24689f;try{const _0x17e91a=utils_ok_1[_0x452cb5(0x1b5)]['getJSON'](_0x537d77);return _0x17e91a?{'file':_0x537d77,'task':_0x17e91a}:null;}catch{return console['error']('任务文件解析失败,跳过:\x20'+_0x537d77),null;}})[_0x24689f(0x23b)](_0x414d4a=>_0x414d4a!==null)[_0x24689f(0x1f8)]((_0x58c037,_0x5b81be)=>_0x58c037[_0x24689f(0x1fb)][_0x24689f(0x260)]-_0x5b81be[_0x24689f(0x1fb)][_0x24689f(0x260)]);if(_0xa99aac[_0x24689f(0x1eb)]>0x0){const {file:_0x30007c,task:_0x848d6f}=_0xa99aac[0x0];return common_1[_0x24689f(0x253)]['addSuffixToFile'](_0x30007c,_0x24689f(0x1c9)),_0x848d6f;}}return undefined;}async function finishTask(_0x5a8b98,_0x9d7c71){const _0x49b615=a12_0x14594a,_0x541789=_0x9d7c71+_0x49b615(0x236);let _0xb82d30;try{_0xb82d30=utils_ok_1[_0x49b615(0x1b5)][_0x49b615(0x1cb)](_0x541789);}catch(_0x23bc1f){console[_0x49b615(0x1e2)](_0x49b615(0x1bc)+_0x541789,_0x23bc1f);return;}const _0x55f439=_0x9d7c71+'/result.md',_0x183e48=fs_1[_0x49b615(0x258)][_0x49b615(0x1d5)](_0x55f439)?utils_ok_1[_0x49b615(0x1b5)][_0x49b615(0x1bb)](_0x55f439):'抱歉,任务处理异常...';await(0x0,messaging_1[_0x49b615(0x1bf)])(_0x5a8b98,{'conversationId':_0xb82d30['conversationId'],'sessionWebhook':_0xb82d30['sessionWebhook'],'atUserId':_0xb82d30[_0x49b615(0x23f)],'content':_0x183e48,'msgType':'markdown'});const _0x3f71cd=_0x541789['replace'](_0x49b615(0x24b),_0x49b615(0x262));utils_ok_1[_0x49b615(0x1b5)][_0x49b615(0x20e)](_0x541789,_0x3f71cd);}async function failTask(_0x58a848,_0x1e019a,_0x57e50f){const _0x28754=a12_0x14594a,_0x4ee791=_0x1e019a+_0x28754(0x236);let _0x5bd242;try{_0x5bd242=utils_ok_1['fileUtil'][_0x28754(0x1cb)](_0x4ee791);}catch(_0x6ea548){console[_0x28754(0x1e2)]('读取任务文件失败:\x20'+_0x4ee791,_0x6ea548);return;}await(0x0,messaging_1[_0x28754(0x1bf)])(_0x58a848,{'conversationId':_0x5bd242[_0x28754(0x1ce)],'sessionWebhook':_0x5bd242[_0x28754(0x230)],'atUserId':_0x5bd242[_0x28754(0x23f)],'content':_0x28754(0x1ac)+taskDisplayName(_0x5bd242)+_0x28754(0x208)+_0x57e50f,'msgType':_0x28754(0x1b2)});const _0x3ae6ad=_0x4ee791[_0x28754(0x238)](_0x28754(0x24b),'-failed.json');utils_ok_1[_0x28754(0x1b5)][_0x28754(0x20e)](_0x4ee791,_0x3ae6ad);}async function resetTaskToTodo(_0x1e4867,_0x145649,_0x33a22a){const _0x3ff78a=a12_0x14594a,_0x24a9d8=_0x145649+_0x3ff78a(0x236),_0x5f3e28=_0x145649+'/task.json';if(!fs_1['default'][_0x3ff78a(0x1d5)](_0x24a9d8))return![];try{const _0x27acb5=utils_ok_1[_0x3ff78a(0x1b5)][_0x3ff78a(0x1cb)](_0x24a9d8),_0x82b5e7=(_0x27acb5[_0x3ff78a(0x1d0)]||0x0)+0x1;if(_0x82b5e7>=MAX_RETRY_COUNT)return console['log']('['+(0x0,session_1['timestamp'])()+']\x20任务重试次数已达上限('+_0x82b5e7+'/'+MAX_RETRY_COUNT+'),标记为失败:\x20'+(_0x27acb5['title']||_0x27acb5[_0x3ff78a(0x1bd)])),_0x27acb5[_0x3ff78a(0x1d0)]=_0x82b5e7,fs_1[_0x3ff78a(0x258)][_0x3ff78a(0x1c3)](_0x24a9d8,JSON[_0x3ff78a(0x1b6)](_0x27acb5,null,0x2),'utf-8'),await failTask(_0x1e4867,_0x145649,_0x33a22a+_0x3ff78a(0x1f3)+_0x82b5e7+'次)'),![];_0x27acb5[_0x3ff78a(0x1d0)]=_0x82b5e7,fs_1[_0x3ff78a(0x258)][_0x3ff78a(0x1c3)](_0x24a9d8,JSON[_0x3ff78a(0x1b6)](_0x27acb5,null,0x2),_0x3ff78a(0x1ea)),console['log']('['+(0x0,session_1[_0x3ff78a(0x1b7)])()+_0x3ff78a(0x21a)+_0x82b5e7+'/'+MAX_RETRY_COUNT+_0x3ff78a(0x1aa)+(_0x27acb5['title']||_0x27acb5[_0x3ff78a(0x1bd)]));}catch(_0x423321){console[_0x3ff78a(0x1e2)]('['+(0x0,session_1[_0x3ff78a(0x1b7)])()+_0x3ff78a(0x21c),_0x423321);}return fs_1[_0x3ff78a(0x258)]['existsSync'](_0x24a9d8)&&utils_ok_1[_0x3ff78a(0x1b5)][_0x3ff78a(0x20e)](_0x24a9d8,_0x5f3e28),!![];}function cancelTask(_0x28af13,_0x5229c3,_0x546901){const _0x46918a=a12_0x14594a,_0x6150a9=[],_0x311144=_0x5229c3[_0x46918a(0x224)](),_0x113e44=_0x546901?_0x28af13[_0x46918a(0x1ae)][_0x46918a(0x23e)]['filter'](_0x4eedd4=>_0x4eedd4[_0x46918a(0x1ce)]===_0x546901):_0x28af13[_0x46918a(0x1ae)][_0x46918a(0x23e)];for(const _0x7afca1 of _0x113e44){const _0x5c45ba=(0x0,session_1['getTasksDir'])(_0x28af13,_0x7afca1['conversationId']);if(!fs_1[_0x46918a(0x258)][_0x46918a(0x1d5)](_0x5c45ba))continue;const _0x56d29e=utils_ok_1['fileUtil']['dirWalker'](_0x5c45ba),_0x2916cd=_0x56d29e[_0x46918a(0x23b)](_0x4fc810=>path_1[_0x46918a(0x258)]['basename'](_0x4fc810)===_0x46918a(0x1f9));for(const _0x1bae18 of _0x2916cd){try{const _0x534d33=utils_ok_1['fileUtil'][_0x46918a(0x1cb)](_0x1bae18);if(!_0x534d33)continue;if(String(_0x534d33[_0x46918a(0x260)])===_0x311144){_0x6150a9[_0x46918a(0x1ee)]({'file':_0x1bae18,'task':_0x534d33});continue;}if(_0x534d33['title']&&_0x534d33['title'][_0x46918a(0x1e6)](_0x311144)){_0x6150a9[_0x46918a(0x1ee)]({'file':_0x1bae18,'task':_0x534d33});continue;}}catch{}}}if(_0x6150a9[_0x46918a(0x1eb)]===0x0)return _0x46918a(0x255)+_0x311144;let _0x56bebe=0x0;for(const {file:_0x244d50,task:_0xb43f0}of _0x6150a9){try{fs_1[_0x46918a(0x258)][_0x46918a(0x242)](_0x244d50),_0x56bebe++,console[_0x46918a(0x239)]('['+(0x0,session_1['timestamp'])()+']\x20已取消任务:\x20#'+_0xb43f0[_0x46918a(0x260)]+'\x20'+(_0xb43f0['title']||_0xb43f0['prompt']));}catch(_0x1515f1){console[_0x46918a(0x1e2)]('['+(0x0,session_1[_0x46918a(0x1b7)])()+_0x46918a(0x1ef)+_0x244d50,_0x1515f1);}}const _0x3e3caf=_0x6150a9[_0x46918a(0x1be)](0x0,0x5)[_0x46918a(0x220)](_0xc701bf=>'#'+_0xc701bf['task']['startTime']+'\x20'+taskDisplayName(_0xc701bf[_0x46918a(0x1fb)]))[_0x46918a(0x1cd)]('\x0a'),_0x5e219b=_0x56bebe>0x5?_0x46918a(0x211)+_0x56bebe+'\x20个任务':'';return _0x46918a(0x203)+_0x56bebe+_0x46918a(0x1f7)+_0x3e3caf+_0x5e219b;}function parseTaskCancelCommand(_0xe8bfa0){const _0x386a50=a12_0x14594a,_0x2cbe4d=_0xe8bfa0[_0x386a50(0x224)](),_0x45086a=_0x2cbe4d[_0x386a50(0x20a)](/^\/task\s+cancel\s+(.+)$/i);return _0x45086a?_0x45086a[0x1][_0x386a50(0x224)]():null;}function updateCmdArgsSettings(_0xba2b01,_0x4c0539){const _0x180046=a12_0x14594a,_0x1ddaca=_0xba2b01[_0x180046(0x254)](_0x180046(0x25a));_0x1ddaca!==-0x1&&_0xba2b01[_0x180046(0x1d1)](_0x1ddaca,0x2),_0x4c0539&&_0xba2b01[_0x180046(0x1ee)](_0x180046(0x25a),_0x4c0539);}function a12_0x5855(){const _0x3f37db=['任务未按预期处理','**⏳\x20处理中\x20(','catch','/task.log','startTime','task-doing.json','-done.json','getConversationConfig','sleep','countTodoTask','):\x20','974324NmDqtM','❌\x20任务失败:\x20',']\x20任务预处理完成:\x20title=\x22','config','task-done.json',']\x20TPM\x20限流连续快速失败\x20',']\x20执行命令:\x20','markdown','s\x20后重试','getForceEnabledSettingsPath','fileUtil','stringify','timestamp',']\x20任务预处理进程错误:','task-failed.json','...','getFileStr','读取任务文件失败:\x20','prompt','slice','sendDingMessage',']\x20预处理完成但任务文件已不存在:\x20','startTimeStr','unknown','writeFileSync','format','skill','title','__importDefault','kill','-doing','76655IPWiVY','getJSON','claude','join','conversationId','settingLabel','retryCount','splice',']\x20自动检测到\x20settings.json:\x20','未发现待办任务...','\x20(重试','existsSync','1034286pTeSXQ',']\x20退出码:\x20','child_process','),\x20',']\x20任务预处理失败(退出码:','未生成结果文件','执行超时','5617330EyzauM','close','\x20用户:\x20','toString','parseTaskCancelCommand','error','任务执行超时(10分钟),终止进程','TPM限流快速失败次数过多',']\x20任务预处理异常:','includes','stdout','ensureSettingsWithApiKey','请对以下任务需求进行预处理,生成简短标题和优化后的需求描述。','utf-8','length','runTaskHandlerLoop','s\x20后重试\x20(','push',']\x20取消任务失败:\x20','elapsed',']\x20切换到\x20API\x20Key\x20模式','parse','\x20(已重试','无可用配额(429)',']\x20检测到\x20FORCE_ENABLE,强制使用\x20settings-ding.json','认证失败(401),API\x20Key\x20无效或服务未授权','\x20个待办任务:\x0a','sort','task.json','--print','task','.claude','cancelTask','**📋\x20待办队列\x20(',']\x20无可用配额,任务重置为待办','任务已保存:\x20','./session','settings.json','已取消\x20','resolveClaudeSettingsPath','pipe','原始需求:\x20','进程执行错误:','\x0a原因:\x20','path','match','/result.md','write','**❌\x20失败\x20(','rename','exitCode','getConversationDir','\x0a...共取消\x20','utils-ok',')**\x0a','🔄\x20开始处理任务:\x20','isQuotaExhaustedError','ignore','770830VaCYEO',']\x20检测到\x20TPM\x20限流(快速失败),','promptSimply',']\x20任务重置为待办\x20(重试','进程执行错误:\x20',']\x20更新任务重试计数失败:','6gQpghA','66232ndGdTH','SIGTERM','map','9rWHzqc','apiKeyCfg',']\x20任务预处理结果已更新:\x20','trim','SIGKILL','--agent','4pAaZfQ','bypassPermissions','output','message','执行命令:\x20claude\x20','1396689UzWhyb','__esModule','rotateApiKey','senderNickName','sessionWebhook','now','baseUtil','次,重置任务为待办','debugLog','--permission-mode','/task-doing.json','handleTask','replace','log',']\x20任务预处理JSON解析失败,使用原始prompt:\x20','filter','getTasksDir','stderr','conversations','senderStaffId','agent','无可用配额','unlinkSync','then','pickValidApiKey',']\x20任务处理中:\x20','格式:\x20{\x22title\x22:\x22简短标题(15字以内)\x22,\x22promptSimply\x22:\x22优化后的需求描述,保留原始需求的所有关键信息,使描述更清晰、结构化\x22}','saveFileStr','basename','data','timedOut','-doing.json','saveTask','normal',';\x20最后将回复内容保存至:\x20','dateUtil','spawn',']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20','apiKey','utils','indexOf','未找到匹配的待办任务:\x20','isAuthenticationError','./messaging','default','**✅\x20最近完成\x20(top\x20','--settings','dirWalker'];a12_0x5855=function(){return _0x3f37db;};return a12_0x5855();}async function handleTask(_0x29a59c){const _0x48237c=a12_0x14594a,_0x5aee48=await getOneTodoTask(_0x29a59c);if(!_0x5aee48){(0x0,session_1[_0x48237c(0x234)])(_0x29a59c,_0x48237c(0x1d3));return;}const _0x79e187=(0x0,session_1[_0x48237c(0x263)])(_0x29a59c,_0x5aee48[_0x48237c(0x1ce)]),_0x284c79=(0x0,session_1[_0x48237c(0x210)])(_0x29a59c,_0x5aee48[_0x48237c(0x1ce)]),_0x539a62=(0x0,session_1[_0x48237c(0x23c)])(_0x29a59c,_0x5aee48[_0x48237c(0x1ce)])+'/'+_0x5aee48[_0x48237c(0x1c1)];if(!fs_1[_0x48237c(0x258)][_0x48237c(0x1d5)](_0x539a62)){console[_0x48237c(0x1e2)]('任务目录不存在:\x20'+_0x539a62);return;}_0x5aee48['type']!=='cron'&&await(0x0,messaging_1[_0x48237c(0x1bf)])(_0x29a59c,{'conversationId':_0x5aee48['conversationId'],'sessionWebhook':_0x5aee48[_0x48237c(0x230)],'atUserId':_0x5aee48[_0x48237c(0x23f)],'content':_0x48237c(0x214)+taskDisplayName(_0x5aee48)});const _0x50a6ff=_0x539a62+_0x48237c(0x20b),_0x281c31=_0x539a62+_0x48237c(0x25f);console[_0x48237c(0x239)]('['+(0x0,session_1['timestamp'])()+_0x48237c(0x245)+(_0x5aee48['title']||_0x5aee48[_0x48237c(0x1bd)]));const _0x414895=_0x5aee48['senderNickName']&&_0x5aee48[_0x48237c(0x23f)]?_0x5aee48[_0x48237c(0x22f)]+'('+_0x5aee48['senderStaffId']+_0x48237c(0x1d9):_0x48237c(0x1c2),_0x5b41a0=_0x29a59c['config'][_0x48237c(0x222)],_0x57464d=(0x0,api_key_manager_1[_0x48237c(0x1b4)])(_0x284c79);let _0xdec8cc=![],_0x5128e2=null;if(_0x57464d)console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1f5));else{if(_0x5b41a0){_0x5128e2=(0x0,api_key_manager_1[_0x48237c(0x244)])(_0x29a59c);if(!_0x5128e2){console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1ff)),await resetTaskToTodo(_0x29a59c,_0x539a62,_0x48237c(0x241));return;}_0xdec8cc=!![],console['log']('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1f1));}}const _0x3531ca=_0x79e187?.['taskCfg']?.[_0x48237c(0x1c5)],_0x126ae0=_0x79e187?.[_0x48237c(0x240)],_0x55fdb5=_0x5aee48['promptSimply']||_0x5aee48[_0x48237c(0x1bd)],_0x4a2420=((_0x3531ca?'/'+_0x3531ca:'')+_0x48237c(0x1df)+_0x414895+',\x20需求:\x20'+_0x55fdb5+_0x48237c(0x24e)+_0x50a6ff)[_0x48237c(0x224)](),_0x48d75a=[_0x48237c(0x235),_0x48237c(0x228),_0x48237c(0x1fa),_0x4a2420];if(_0x57464d)_0x48d75a['push'](_0x48237c(0x25a),_0x57464d);else{if(_0xdec8cc&&_0x5128e2){const _0x113931=(0x0,api_key_manager_1[_0x48237c(0x1e8)])(_0x284c79,_0x5128e2);_0x48d75a[_0x48237c(0x1ee)](_0x48237c(0x25a),_0x113931);}else{if(!_0x5b41a0){const _0x4970da=path_1['default'][_0x48237c(0x1cd)](_0x284c79,_0x48237c(0x1fc),_0x48237c(0x202));fs_1['default'][_0x48237c(0x1d5)](_0x4970da)&&(_0x48d75a[_0x48237c(0x1ee)]('--settings',_0x4970da),console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1d2)+_0x4970da));}}}_0x126ae0&&_0x48d75a['push'](_0x48237c(0x226),_0x126ae0);(0x0,session_1[_0x48237c(0x234)])(_0x29a59c,_0x48237c(0x22b)+_0x48d75a['join']('\x20'));const _0x3e75f7=0xa*0x3c*0x3e8,_0x17c932=0x14,_0x11d47f=0x2710,_0x43aa13=0x2710,_0x355d84=_0x48237c(0x1cc),_0xb74fee=_0x45a9ee=>{const _0x2d14da=Date['now']();return new Promise(_0x4cf00a=>{const _0x2cc850=a12_0x55f5,_0x191899=[];let _0x457734=![],_0x5014ed=![];const _0x47f1ea=(0x0,child_process_1[_0x2cc850(0x250)])(_0x355d84,_0x45a9ee,{'cwd':_0x284c79,'stdio':[_0x2cc850(0x216),_0x2cc850(0x205),'pipe']}),_0x599e5f=setTimeout(()=>{const _0x461349=_0x2cc850;!_0x457734&&(_0x5014ed=!![],console[_0x461349(0x1e2)](_0x461349(0x1e3)),_0x47f1ea[_0x461349(0x1c8)](_0x461349(0x21f)),setTimeout(()=>{const _0x278df7=_0x461349;if(!_0x457734)_0x47f1ea['kill'](_0x278df7(0x225));},0x1388));},_0x3e75f7);_0x47f1ea['stdout']['on'](_0x2cc850(0x249),_0x290a48=>{const _0x33114c=_0x2cc850,_0x3f44a5=_0x290a48['toString']();process[_0x33114c(0x1e7)][_0x33114c(0x20c)](_0x3f44a5),_0x191899['push'](_0x3f44a5);}),_0x47f1ea[_0x2cc850(0x23d)]['on']('data',_0x2bafac=>{const _0x36c8ab=_0x2cc850,_0x54d8d9=_0x2bafac[_0x36c8ab(0x1e0)]();process[_0x36c8ab(0x23d)]['write'](_0x54d8d9),_0x191899['push'](_0x54d8d9);}),_0x47f1ea['on']('close',_0x425170=>{const _0x68cb90=_0x2cc850;_0x457734=!![],clearTimeout(_0x599e5f),_0x4cf00a({'exitCode':_0x425170??0x1,'output':_0x191899[_0x68cb90(0x1cd)](''),'elapsed':Date[_0x68cb90(0x231)]()-_0x2d14da,'timedOut':_0x5014ed});}),_0x47f1ea['on'](_0x2cc850(0x1e2),_0xcacfea=>{const _0x1a6332=_0x2cc850;console[_0x1a6332(0x1e2)](_0x1a6332(0x207),_0xcacfea),_0x191899['push'](_0x1a6332(0x21b)+_0xcacfea[_0x1a6332(0x22a)]);});});};let _0x45f6bd,_0x24fb4f,_0x1ade60=![],_0x72c514=0x0;while(!![]){const _0x20ae09=await _0xb74fee(_0x48d75a);_0x45f6bd=_0x20ae09[_0x48237c(0x20f)],_0x24fb4f=_0x20ae09[_0x48237c(0x229)],_0x1ade60=_0x20ae09[_0x48237c(0x24a)];if(_0x45f6bd!==0x0){if(_0x1ade60){console['log']('['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20任务执行超时,重置为待办');const _0x24eda4=['['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1b1)+_0x355d84+'\x20'+_0x48d75a['join']('\x20'),'['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20超时('+_0x3e75f7/0x3e8+'s)',_0x24fb4f]['join']('\x0a');fs_1[_0x48237c(0x258)]['writeFileSync'](_0x281c31,_0x24eda4),await resetTaskToTodo(_0x29a59c,_0x539a62,_0x48237c(0x1dc));return;}if((0x0,api_key_manager_1[_0x48237c(0x215)])(_0x24fb4f)&&_0x5b41a0){if(!_0xdec8cc){_0x5128e2=(0x0,api_key_manager_1[_0x48237c(0x244)])(_0x29a59c);if(_0x5128e2){_0xdec8cc=!![],_0x72c514=0x0;const _0x3f90d5=(0x0,api_key_manager_1[_0x48237c(0x1e8)])(_0x284c79,_0x5128e2);updateCmdArgsSettings(_0x48d75a,_0x3f90d5),console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1f1));continue;}}else{if(_0x5128e2){const _0x1d75a6=(0x0,api_key_manager_1[_0x48237c(0x22e)])(_0x29a59c,_0x5128e2['apiKey']);if(_0x1d75a6){_0x5128e2=_0x1d75a6,_0x72c514=0x0;const _0x23691b=(0x0,api_key_manager_1[_0x48237c(0x1e8)])(_0x284c79,_0x5128e2);updateCmdArgsSettings(_0x48d75a,_0x23691b),console['log']('['+(0x0,session_1['timestamp'])()+_0x48237c(0x251)+(0x0,api_key_manager_1[_0x48237c(0x1cf)])(_0x1d75a6));continue;}}}console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1ff));const _0x473a20=['['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1b1)+_0x355d84+'\x20'+_0x48d75a[_0x48237c(0x1cd)]('\x20'),'['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1d7)+_0x45f6bd,_0x24fb4f][_0x48237c(0x1cd)]('\x0a');fs_1[_0x48237c(0x258)][_0x48237c(0x1c3)](_0x281c31,_0x473a20),await resetTaskToTodo(_0x29a59c,_0x539a62,_0x48237c(0x1f4));return;}if((0x0,api_key_manager_1[_0x48237c(0x256)])(_0x24fb4f)){console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20检测到认证错误(401),标记任务失败');const _0x2074a9=['['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1b1)+_0x355d84+'\x20'+_0x48d75a['join']('\x20'),'['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1d7)+_0x45f6bd,_0x24fb4f][_0x48237c(0x1cd)]('\x0a');fs_1['default'][_0x48237c(0x1c3)](_0x281c31,_0x2074a9),await failTask(_0x29a59c,_0x539a62,_0x48237c(0x1f6));return;}if((0x0,claude_process_1['isRetryableApiError'])(_0x24fb4f)){if(_0x20ae09['elapsed']<_0x43aa13&&_0xdec8cc&&_0x5128e2&&_0x5b41a0){_0x72c514++;if(_0x72c514>=_0x17c932){const _0x43a3ad=(0x0,api_key_manager_1[_0x48237c(0x22e)])(_0x29a59c,_0x5128e2[_0x48237c(0x252)]);if(_0x43a3ad){_0x5128e2=_0x43a3ad,_0x72c514=0x0;const _0x1b2664=(0x0,api_key_manager_1['ensureSettingsWithApiKey'])(_0x284c79,_0x5128e2);updateCmdArgsSettings(_0x48d75a,_0x1b2664),console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1b0)+_0x17c932+'\x20次,切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x48237c(0x1cf)])(_0x43a3ad)),await utils_ok_1[_0x48237c(0x232)]['sleep'](_0x11d47f);continue;}}}else{if(_0x20ae09[_0x48237c(0x1f0)]<_0x43aa13){_0x72c514++;if(_0x72c514>=_0x17c932){console['log']('['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20TPM\x20限流快速失败连续'+_0x17c932+_0x48237c(0x233));const _0x210991=['['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1b1)+_0x355d84+'\x20'+_0x48d75a[_0x48237c(0x1cd)]('\x20'),'['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20退出码:\x20'+_0x45f6bd,_0x24fb4f][_0x48237c(0x1cd)]('\x0a');fs_1[_0x48237c(0x258)][_0x48237c(0x1c3)](_0x281c31,_0x210991),await resetTaskToTodo(_0x29a59c,_0x539a62,_0x48237c(0x1e4));return;}console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x218)+_0x11d47f/0x3e8+_0x48237c(0x1ed)+_0x72c514+'/'+_0x17c932+')');}else _0x72c514=0x0,console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,'+_0x11d47f/0x3e8+_0x48237c(0x1b3));}await utils_ok_1[_0x48237c(0x232)]['sleep'](_0x11d47f);continue;}}break;}const _0x330662=['['+(0x0,session_1[_0x48237c(0x1b7)])()+_0x48237c(0x1b1)+_0x355d84+'\x20'+_0x48d75a[_0x48237c(0x1cd)]('\x20'),'['+(0x0,session_1['timestamp'])()+_0x48237c(0x1d7)+_0x45f6bd,_0x24fb4f][_0x48237c(0x1cd)]('\x0a');fs_1[_0x48237c(0x258)][_0x48237c(0x1c3)](_0x281c31,_0x330662);if(_0x45f6bd!==0x0){console[_0x48237c(0x1e2)]('命令执行失败,\x20退出码:\x20'+_0x45f6bd),await failTask(_0x29a59c,_0x539a62,'执行失败(退出码:\x20'+_0x45f6bd+')');return;}if(fs_1[_0x48237c(0x258)][_0x48237c(0x1d5)](_0x50a6ff))console[_0x48237c(0x239)]('['+(0x0,session_1[_0x48237c(0x1b7)])()+']\x20任务处理完成');else{console['error'](_0x48237c(0x25c)),await failTask(_0x29a59c,_0x539a62,_0x48237c(0x1db));return;}await finishTask(_0x29a59c,_0x539a62);}async function runTaskHandlerLoop(_0x162eb8){const _0x42cf1f=a12_0x14594a;while(!![]){await handleTask(_0x162eb8)[_0x42cf1f(0x25e)](_0x3c14eb=>console[_0x42cf1f(0x1e2)](_0x3c14eb)),await utils_ok_1['baseUtil'][_0x42cf1f(0x264)](0x2710);}}async function saveTask(_0x121e24,_0x1fdd38){const _0x5980dd=a12_0x14594a,{conversationId:_0x451bbe,prompt:_0x2923b7,senderStaffId:_0x310c26,senderNickName:_0x1e587c,sessionWebhook:_0x2897f9,type:type=_0x5980dd(0x24d)}=_0x1fdd38,_0x5c0976=Date[_0x5980dd(0x231)](),_0xdd3011=utils_ok_1[_0x5980dd(0x24f)]['mm'](_0x5c0976)[_0x5980dd(0x1c4)]('YYYY-MM-DD-HH-mm-ss'),_0x44ea1b=(0x0,session_1['getTasksDir'])(_0x121e24,_0x451bbe)+'/'+_0xdd3011,_0x1fe814=_0x44ea1b+'/task.json',_0x1bce95={'conversationId':_0x451bbe,'startTime':_0x5c0976,'startTimeStr':_0xdd3011,'prompt':_0x2923b7,'senderStaffId':_0x310c26,'senderNickName':_0x1e587c||'','sessionWebhook':_0x2897f9,'type':type};await utils_ok_1[_0x5980dd(0x1b5)][_0x5980dd(0x247)](JSON[_0x5980dd(0x1b6)](_0x1bce95,null,0x2),_0x1fe814),(0x0,session_1['debugLog'])(_0x121e24,_0x5980dd(0x200)+_0x1fe814),preprocessTask(_0x121e24,_0x451bbe,_0x2923b7)[_0x5980dd(0x243)](_0x224bc9=>{const _0x30e189=_0x5980dd;if(!_0x224bc9)return;try{const _0x2e503e=_0x44ea1b+'/task-doing.json',_0x4cccd4=fs_1[_0x30e189(0x258)][_0x30e189(0x1d5)](_0x2e503e)?_0x2e503e:fs_1['default'][_0x30e189(0x1d5)](_0x1fe814)?_0x1fe814:null;if(!_0x4cccd4){console[_0x30e189(0x239)]('['+(0x0,session_1['timestamp'])()+_0x30e189(0x1c0)+_0x44ea1b);return;}const _0x5cfcc7=utils_ok_1[_0x30e189(0x1b5)]['getJSON'](_0x4cccd4);_0x5cfcc7[_0x30e189(0x1c6)]=_0x224bc9['title'],_0x5cfcc7[_0x30e189(0x219)]=_0x224bc9['promptSimply'],fs_1[_0x30e189(0x258)][_0x30e189(0x1c3)](_0x4cccd4,JSON[_0x30e189(0x1b6)](_0x5cfcc7,null,0x2),_0x30e189(0x1ea)),console[_0x30e189(0x239)]('['+(0x0,session_1['timestamp'])()+_0x30e189(0x223)+_0x224bc9[_0x30e189(0x1c6)]);}catch(_0x5564df){console['error']('['+(0x0,session_1[_0x30e189(0x1b7)])()+']\x20更新任务预处理结果失败:',_0x5564df);}})['catch'](_0x43bb08=>{const _0x28eb8b=_0x5980dd;console[_0x28eb8b(0x1e2)]('['+(0x0,session_1[_0x28eb8b(0x1b7)])()+_0x28eb8b(0x1e5),_0x43bb08);});}
|
package/dist/src/biz/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var a13_0x1ea36a=a13_0x2c1b;(function(_0x3e7a54,_0xec5966){var _0x4f60cb=a13_0x2c1b,_0x5f5831=_0x3e7a54();while(!![]){try{var _0x3636a3=parseInt(_0x4f60cb(0x164))/0x1+-parseInt(_0x4f60cb(0x16d))/0x2+parseInt(_0x4f60cb(0x16a))/0x3+-parseInt(_0x4f60cb(0x16b))/0x4*(parseInt(_0x4f60cb(0x165))/0x5)+parseInt(_0x4f60cb(0x16c))/0x6+-parseInt(_0x4f60cb(0x167))/0x7*(parseInt(_0x4f60cb(0x169))/0x8)+-parseInt(_0x4f60cb(0x16e))/0x9*(parseInt(_0x4f60cb(0x166))/0xa);if(_0x3636a3===_0xec5966)break;else _0x5f5831['push'](_0x5f5831['shift']());}catch(_0x3395d0){_0x5f5831['push'](_0x5f5831['shift']());}}}(a13_0x57c3,0x67824));function a13_0x57c3(){var _0x368143=['4527762vGylWv','704840ENaMoJ','162uaqOIA','__esModule','417184wUJHsj','1286380NuDdBI','375010qlXken','536648GDnppt','defineProperty','24RAluXW','2300601xrdSXp','4sYnunL'];a13_0x57c3=function(){return _0x368143;};return a13_0x57c3();}function a13_0x2c1b(_0x3b3087,_0x5134d4){_0x3b3087=_0x3b3087-0x164;var _0x57c369=a13_0x57c3();var _0x2c1b16=_0x57c369[_0x3b3087];return _0x2c1b16;}Object[a13_0x1ea36a(0x168)](exports,a13_0x1ea36a(0x16f),{'value':!![]});
|
package/dist/src/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const a14_0xbdb66e=a14_0x5328;function a14_0x4c8a(){const _0x44748d=['/.cc-ding/.env','getJSON','renameSync','5763947abUyZC','existsSync','72472DgmfSy','688314ZJpAZB','default','../','loadEnv','dotenv','105750sFdKWu','ProjUtil','cookie缓存文件不存在:\x20','defineProperty','resolve','813956yAyGOa','path','__esModule','1960266RQvSDP','join','dirname','utils','config','518028NvZneH','helper'];a14_0x4c8a=function(){return _0x44748d;};return a14_0x4c8a();}(function(_0x404628,_0x2a5322){const _0x4352f8=a14_0x5328,_0x55e587=_0x404628();while(!![]){try{const _0x257b4b=parseInt(_0x4352f8(0x1d0))/0x1+-parseInt(_0x4352f8(0x1c9))/0x2+-parseInt(_0x4352f8(0x1d1))/0x3+parseInt(_0x4352f8(0x1c1))/0x4+-parseInt(_0x4352f8(0x1d6))/0x5+-parseInt(_0x4352f8(0x1c4))/0x6+parseInt(_0x4352f8(0x1ce))/0x7;if(_0x257b4b===_0x2a5322)break;else _0x55e587['push'](_0x55e587['shift']());}catch(_0x21f2fa){_0x55e587['push'](_0x55e587['shift']());}}}(a14_0x4c8a,0x4039d));var __importDefault=this&&this['__importDefault']||function(_0x3845ed){const _0x398cdf=a14_0x5328;return _0x3845ed&&_0x3845ed[_0x398cdf(0x1c3)]?_0x3845ed:{'default':_0x3845ed};};function a14_0x5328(_0x4f65e6,_0x1829a3){_0x4f65e6=_0x4f65e6-0x1c1;const _0x4c8aa6=a14_0x4c8a();let _0x53285b=_0x4c8aa6[_0x4f65e6];return _0x53285b;}Object[a14_0xbdb66e(0x1d9)](exports,'__esModule',{'value':!![]}),exports['utils']=exports['helper']=exports['projUtil']=void 0x0,exports[a14_0xbdb66e(0x1d4)]=loadEnv;const utils_ok_1=require('utils-ok'),path_1=__importDefault(require(a14_0xbdb66e(0x1c2))),assert_1=__importDefault(require('assert')),fs_1=__importDefault(require('fs'));function loadEnv(){const _0x3c7b4e=a14_0xbdb66e;fs_1[_0x3c7b4e(0x1d2)][_0x3c7b4e(0x1cf)](process.env.HOME+_0x3c7b4e(0x1cb))&&require('dotenv')[_0x3c7b4e(0x1c8)]({'path':process.env.HOME+_0x3c7b4e(0x1cb)}),require(_0x3c7b4e(0x1d5))[_0x3c7b4e(0x1c8)]();}exports['projUtil']=((()=>{let _0x26307c;return()=>{const _0x388ba2=a14_0x5328;return!_0x26307c&&(_0x26307c=new utils_ok_1[(_0x388ba2(0x1d7))](path_1[_0x388ba2(0x1d2)][_0x388ba2(0x1da)](__dirname,_0x388ba2(0x1d3)))),_0x26307c;};})()),exports[a14_0xbdb66e(0x1ca)]={'getCookiesByFile'(_0x4520a3){const _0xd50d50=a14_0xbdb66e;(0x0,assert_1['default'])(fs_1[_0xd50d50(0x1d2)][_0xd50d50(0x1cf)](_0x4520a3),_0xd50d50(0x1d8)+_0x4520a3);const _0x591fcf=utils_ok_1['fileUtil'][_0xd50d50(0x1cc)](_0x4520a3);return _0x591fcf['cookies'];}},exports[a14_0xbdb66e(0x1c7)]={'addSuffixToFile'(_0x2d7907,_0x4e5cf6){const _0x4db446=a14_0xbdb66e,_0x316be3=path_1[_0x4db446(0x1d2)][_0x4db446(0x1c6)](_0x2d7907),_0x48e91d=path_1[_0x4db446(0x1d2)]['extname'](_0x2d7907),_0x18c712=path_1[_0x4db446(0x1d2)]['basename'](_0x2d7907,_0x48e91d),_0x525799=''+_0x18c712+_0x4e5cf6+_0x48e91d,_0x34a1cc=path_1['default'][_0x4db446(0x1c5)](_0x316be3,_0x525799);fs_1['default'][_0x4db446(0x1cd)](_0x2d7907,_0x34a1cc);}};
|
package/dist/src/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function a15_0x3356(){const _0x54e6b2=['1488PSmXJh','DEV','567029hyGzKA','strUtil','3105532Dnjgwm','DEBUG','1937586ySylqD','3641016MBoXfg','platform','5bGqjzk','132720BmBFSa','1056208NyXimZ','defineProperty','48771TWOzHb','safeBoolean','darwin'];a15_0x3356=function(){return _0x54e6b2;};return a15_0x3356();}const a15_0x20980a=a15_0x57fa;(function(_0x23e159,_0xd477ca){const _0x40d83d=a15_0x57fa,_0x44a97b=_0x23e159();while(!![]){try{const _0x3e0cd3=parseInt(_0x40d83d(0x192))/0x1+parseInt(_0x40d83d(0x18b))/0x2+-parseInt(_0x40d83d(0x18a))/0x3+-parseInt(_0x40d83d(0x194))/0x4*(parseInt(_0x40d83d(0x189))/0x5)+-parseInt(_0x40d83d(0x197))/0x6+-parseInt(_0x40d83d(0x196))/0x7+parseInt(_0x40d83d(0x190))/0x8*(parseInt(_0x40d83d(0x18d))/0x9);if(_0x3e0cd3===_0xd477ca)break;else _0x44a97b['push'](_0x44a97b['shift']());}catch(_0x54544a){_0x44a97b['push'](_0x44a97b['shift']());}}}(a15_0x3356,0x615da));Object[a15_0x20980a(0x18c)](exports,'__esModule',{'value':!![]}),exports[a15_0x20980a(0x191)]=exports[a15_0x20980a(0x195)]=void 0x0;function a15_0x57fa(_0x264974,_0x2d1b44){_0x264974=_0x264974-0x188;const _0x33568d=a15_0x3356();let _0x57fa59=_0x33568d[_0x264974];return _0x57fa59;}const utils_ok_1=require('utils-ok'),platform=require('os')[a15_0x20980a(0x188)](),isOSX=platform===a15_0x20980a(0x18f);exports['DEBUG']=utils_ok_1[a15_0x20980a(0x193)][a15_0x20980a(0x18e)](process.env.DEBUG||''),exports[a15_0x20980a(0x191)]=isOSX;
|