cc-ding 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +5 -1
package/dist/src/biz/lock.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const a8_0x17b1e1=a8_0x2c19;(function(_0xbda18b,_0x44d8b2){const _0x56be6c=a8_0x2c19,_0x43d561=_0xbda18b();while(!![]){try{const _0x506e3a=-parseInt(_0x56be6c(0x1f5))/0x1*(-parseInt(_0x56be6c(0x1e7))/0x2)+parseInt(_0x56be6c(0x1e8))/0x3+parseInt(_0x56be6c(0x1f6))/0x4*(parseInt(_0x56be6c(0x1fe))/0x5)+-parseInt(_0x56be6c(0x1fb))/0x6*(-parseInt(_0x56be6c(0x1ed))/0x7)+-parseInt(_0x56be6c(0x1e5))/0x8*(parseInt(_0x56be6c(0x201))/0x9)+parseInt(_0x56be6c(0x1ff))/0xa*(-parseInt(_0x56be6c(0x1f2))/0xb)+parseInt(_0x56be6c(0x1f7))/0xc*(-parseInt(_0x56be6c(0x1e6))/0xd);if(_0x506e3a===_0x44d8b2)break;else _0x43d561['push'](_0x43d561['shift']());}catch(_0x1a67cb){_0x43d561['push'](_0x43d561['shift']());}}}(a8_0x8a3e,0x4d03a));function a8_0x2c19(_0xe0d3a9,_0x2344ae){_0xe0d3a9=_0xe0d3a9-0x1e0;const _0x8a3e56=a8_0x8a3e();let _0x2c199c=_0x8a3e56[_0xe0d3a9];return _0x2c199c;}var __importDefault=this&&this[a8_0x17b1e1(0x1fa)]||function(_0x2cc89c){return _0x2cc89c&&_0x2cc89c['__esModule']?_0x2cc89c:{'default':_0x2cc89c};};function a8_0x8a3e(){const _0x108161=['readFileSync','timestamp','__esModule','kill',']\x20检测到过期锁文件\x20(PID:\x20','writeFileSync','2504zlPYVs','3204643ccrNSv','44TqVDjk','1460058fVFwCs','.pid.lock','\x20已退出),自动清理','default','existsSync','3248DaTQyC','utf-8','pid','\x20\x20如需强制启动,请先停止已有进程或删除锁文件:\x20','path','55fBBuFv','unlinkSync','log','6173QDfDSB','847936vAQMhJ','24hkmxbs','exit','trim','__importDefault','246BYlAzK','error','SIGTERM','5yLUNuT','26830dZOCni','defineProperty','909YovYzV','SIGINT'];a8_0x8a3e=function(){return _0x108161;};return a8_0x8a3e();}Object[a8_0x17b1e1(0x200)](exports,a8_0x17b1e1(0x1e1),{'value':!![]}),exports['acquirePidLock']=acquirePidLock;const session_1=require('./session'),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a8_0x17b1e1(0x1f1)));function acquirePidLock(_0x44f39c,_0x147445){const _0xc3bb31=a8_0x17b1e1,_0x65ac60=path_1[_0xc3bb31(0x1eb)]['join'](_0x44f39c,_0xc3bb31(0x1e9));if(fs_1[_0xc3bb31(0x1eb)][_0xc3bb31(0x1ec)](_0x65ac60))try{const _0x362869=parseInt(fs_1[_0xc3bb31(0x1eb)][_0xc3bb31(0x203)](_0x65ac60,_0xc3bb31(0x1ee))[_0xc3bb31(0x1f9)](),0xa);if(!isNaN(_0x362869))try{process[_0xc3bb31(0x1e2)](_0x362869,0x0),console[_0xc3bb31(0x1fc)]('[FATAL]\x20clientId\x20\x22'+_0x147445+'\x22\x20已有运行中的进程\x20(PID:\x20'+_0x362869+')'),console[_0xc3bb31(0x1fc)](_0xc3bb31(0x1f0)+_0x65ac60),process[_0xc3bb31(0x1f8)](0x1);}catch{console[_0xc3bb31(0x1f4)]('['+(0x0,session_1[_0xc3bb31(0x1e0)])()+_0xc3bb31(0x1e3)+_0x362869+_0xc3bb31(0x1ea));}}catch{}fs_1[_0xc3bb31(0x1eb)][_0xc3bb31(0x1e4)](_0x65ac60,String(process[_0xc3bb31(0x1ef)]),_0xc3bb31(0x1ee));const _0xbd949d=()=>{const _0x492325=_0xc3bb31;try{fs_1['default'][_0x492325(0x1f3)](_0x65ac60);}catch{}};process['on'](_0xc3bb31(0x1f8),_0xbd949d),process['on'](_0xc3bb31(0x202),()=>{_0xbd949d(),process['exit'](0x82);}),process['on'](_0xc3bb31(0x1fd),()=>{_0xbd949d(),process['exit'](0x8f);});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a9_0xe4b6ab=a9_0x13bc;(function(_0x47512f,_0x5e5784){const _0x2b9892=a9_0x13bc,_0x444941=_0x47512f();while(!![]){try{const _0x39a776=-parseInt(_0x2b9892(0x112))/0x1*(parseInt(_0x2b9892(0xeb))/0x2)+parseInt(_0x2b9892(0x11b))/0x3*(parseInt(_0x2b9892(0x10a))/0x4)+-parseInt(_0x2b9892(0xd5))/0x5*(-parseInt(_0x2b9892(0x100))/0x6)+parseInt(_0x2b9892(0xcc))/0x7+-parseInt(_0x2b9892(0x119))/0x8*(-parseInt(_0x2b9892(0xcf))/0x9)+-parseInt(_0x2b9892(0xfc))/0xa+parseInt(_0x2b9892(0xf4))/0xb*(-parseInt(_0x2b9892(0x10c))/0xc);if(_0x39a776===_0x5e5784)break;else _0x444941['push'](_0x444941['shift']());}catch(_0x22b1c9){_0x444941['push'](_0x444941['shift']());}}}(a9_0x3f49,0xa46e7));var __importDefault=this&&this[a9_0xe4b6ab(0xfe)]||function(_0x560b4d){const _0x37c994=a9_0xe4b6ab;return _0x560b4d&&_0x560b4d[_0x37c994(0xce)]?_0x560b4d:{'default':_0x560b4d};};Object[a9_0xe4b6ab(0x106)](exports,a9_0xe4b6ab(0xce),{'value':!![]}),exports['fetchQuotedMessage']=fetchQuotedMessage,exports[a9_0xe4b6ab(0xdf)]=queryDingUser,exports['queryUserIdByMobile']=queryUserIdByMobile,exports[a9_0xe4b6ab(0xf1)]=filterToolUseContent,exports['splitMessage']=splitMessage,exports[a9_0xe4b6ab(0xc9)]=sendDingMessage,exports['sendClaudeResponseToDing']=sendClaudeResponseToDing;function a9_0x3f49(){const _0x5409ad=['NotebookEdit','GET','default','WebSearch','status','content','errcode','getAccessToken','join','/v1.0/im/api/messages/','TaskList',']**\x0a','sendDingMessage','push','/topapi/v2/user/get?access_token=','7880796fNmXSh','body','__esModule','6723396MMNGFK','data','TaskCreate','TaskOutput','**[','config','20665WTHFlT',')[^>]*>[\x5cs\x5cS]*?<\x5c/\x5c1>',')[^>]*\x5c/>','defaultDingToken','EnterPlanMode','markdown','未能获取机器人信息发送途径','json',',\x20data=','https://oapi.dingtalk.com/robot/send?access_token=','queryDingUser','TaskGet','debugLog','lastIndexOf','EnterWorktree',',\x20errmsg=','sleep','queryUserIdByMobile\x20API\x20返回非200:\x20status=','substring','atSender','conversationId','stringify','779998MsZqoN','queryDingUser\x20接口返回错误:\x20errcode=','Agent','find','LSP','object','filterToolUseContent','parse','conversations','5126xtFTAx','queryDingUser\x20API\x20返回非200:\x20status=','CronDelete','replace','keys','ExitWorktree','queryDingUser\x20请求失败:','trim','4553690RdzEVj','AskUserQuestion','__importDefault','POST','552lzuwIE','error','https://oapi.dingtalk.com','Bash','Grep','Edit','defineProperty','result','fetchQuotedMessage\x20无法从响应中提取文本:\x20keys=','length','4GCbcNs','TaskUpdate','10116FqeVNV','通过\x20dingToken\x20发送钉钉消息失败:','CronCreate','errmsg','dingStreamClient','WebFetch','2nkByzB','text','request','warn','string','Read','userid','8JEBlcI','https://api.dingtalk.com','145824ygvONr'];a9_0x3f49=function(){return _0x5409ad;};return a9_0x3f49();}function a9_0x13bc(_0x599d3d,_0x208c72){_0x599d3d=_0x599d3d-0xbf;const _0x3f498c=a9_0x3f49();let _0x13bc91=_0x3f498c[_0x599d3d];return _0x13bc91;}const utils_ok_1=require('utils-ok'),urllib_1=__importDefault(require('urllib')),DING_API_BASE=a9_0xe4b6ab(0x11a),DING_OAPI_BASE=a9_0xe4b6ab(0x102);async function fetchQuotedMessage(_0x41b2c8,_0x13b262){const _0x12cbf0=a9_0xe4b6ab;try{const _0x8b9778=await _0x41b2c8[_0x12cbf0(0x110)]['getAccessToken'](),_0x528591=DING_API_BASE+_0x12cbf0(0xc6)+encodeURIComponent(_0x13b262),_0x2582c0=await urllib_1[_0x12cbf0(0xbf)]['request'](_0x528591,{'method':_0x12cbf0(0x11d),'headers':{'x-acs-dingtalk-access-token':_0x8b9778},'dataType':_0x12cbf0(0xdc),'timeout':0x1388});if(_0x2582c0[_0x12cbf0(0xc1)]!==0xc8||!_0x2582c0[_0x12cbf0(0xd0)])return _0x41b2c8[_0x12cbf0(0xe1)]('fetchQuotedMessage\x20API\x20返回非200:\x20status='+_0x2582c0[_0x12cbf0(0xc1)]+_0x12cbf0(0xdd)+JSON[_0x12cbf0(0xea)](_0x2582c0['data'])),null;const _0x4988b5=_0x2582c0[_0x12cbf0(0xd0)];if(_0x4988b5[_0x12cbf0(0x113)]&&typeof _0x4988b5[_0x12cbf0(0x113)]===_0x12cbf0(0xf0)){const _0x6e5146=_0x4988b5[_0x12cbf0(0x113)][_0x12cbf0(0xc2)];if(typeof _0x6e5146===_0x12cbf0(0x116)&&_0x6e5146)return _0x6e5146['trim']();}if(typeof _0x4988b5[_0x12cbf0(0xc2)]===_0x12cbf0(0x116)&&_0x4988b5[_0x12cbf0(0xc2)])try{const _0x436ca6=JSON[_0x12cbf0(0xf2)](_0x4988b5[_0x12cbf0(0xc2)]);if(typeof _0x436ca6===_0x12cbf0(0x116))return _0x436ca6['trim']();if(_0x436ca6[_0x12cbf0(0x113)])return String(_0x436ca6[_0x12cbf0(0x113)])[_0x12cbf0(0xfb)]();if(_0x436ca6[_0x12cbf0(0xc2)])return String(_0x436ca6[_0x12cbf0(0xc2)])['trim']();}catch{return _0x4988b5[_0x12cbf0(0xc2)][_0x12cbf0(0xfb)]();}if(_0x4988b5[_0x12cbf0(0xcd)]&&typeof _0x4988b5[_0x12cbf0(0xcd)]===_0x12cbf0(0xf0)){const _0x3676b6=_0x4988b5['body'];if(typeof _0x3676b6[_0x12cbf0(0xc2)]===_0x12cbf0(0x116)&&_0x3676b6[_0x12cbf0(0xc2)])return _0x3676b6[_0x12cbf0(0xc2)][_0x12cbf0(0xfb)]();}return _0x41b2c8[_0x12cbf0(0xe1)](_0x12cbf0(0x108)+Object[_0x12cbf0(0xf8)](_0x4988b5)[_0x12cbf0(0xc5)](',')),null;}catch(_0x1b63d0){return console[_0x12cbf0(0x115)]('fetchQuotedMessage\x20请求失败:',_0x1b63d0),null;}}async function queryDingUser(_0xaa4544,_0x1e960d){const _0xaffb6d=a9_0xe4b6ab;try{const _0x42480f=await _0xaa4544[_0xaffb6d(0x110)][_0xaffb6d(0xc4)](),_0x599238=DING_OAPI_BASE+_0xaffb6d(0xcb)+_0x42480f,_0x44adf3=await urllib_1[_0xaffb6d(0xbf)]['request'](_0x599238,{'method':_0xaffb6d(0xff),'data':{'userid':_0x1e960d},'contentType':_0xaffb6d(0xdc),'dataType':_0xaffb6d(0xdc),'timeout':0x1388});if(_0x44adf3[_0xaffb6d(0xc1)]!==0xc8||!_0x44adf3[_0xaffb6d(0xd0)])return _0xaa4544['debugLog'](_0xaffb6d(0xf5)+_0x44adf3[_0xaffb6d(0xc1)]+',\x20data='+JSON['stringify'](_0x44adf3[_0xaffb6d(0xd0)])),null;const _0x254c97=_0x44adf3[_0xaffb6d(0xd0)];if(_0x254c97[_0xaffb6d(0xc3)]!==0x0)return console[_0xaffb6d(0x115)](_0xaffb6d(0xec)+_0x254c97[_0xaffb6d(0xc3)]+_0xaffb6d(0xe4)+_0x254c97[_0xaffb6d(0x10f)]),null;return _0x254c97['result']||null;}catch(_0x356258){return console[_0xaffb6d(0x115)](_0xaffb6d(0xfa),_0x356258),null;}}async function queryUserIdByMobile(_0x483d60,_0x43325c){const _0x594347=a9_0xe4b6ab;try{const _0x5bb719=await _0x483d60[_0x594347(0x110)][_0x594347(0xc4)](),_0x6f2653=DING_OAPI_BASE+'/topapi/v2/user/getbymobile?access_token='+_0x5bb719,_0x25f5f0=await urllib_1[_0x594347(0xbf)][_0x594347(0x114)](_0x6f2653,{'method':_0x594347(0xff),'data':{'mobile':_0x43325c},'contentType':_0x594347(0xdc),'dataType':'json','timeout':0x1388});if(_0x25f5f0[_0x594347(0xc1)]!==0xc8||!_0x25f5f0['data'])return _0x483d60[_0x594347(0xe1)](_0x594347(0xe6)+_0x25f5f0['status']+_0x594347(0xdd)+JSON[_0x594347(0xea)](_0x25f5f0[_0x594347(0xd0)])),null;const _0x4eb3f7=_0x25f5f0[_0x594347(0xd0)];if(_0x4eb3f7[_0x594347(0xc3)]!==0x0)return console['warn']('queryUserIdByMobile\x20接口返回错误:\x20errcode='+_0x4eb3f7[_0x594347(0xc3)]+_0x594347(0xe4)+_0x4eb3f7[_0x594347(0x10f)]),null;const _0xbf42de=_0x4eb3f7[_0x594347(0x107)];return _0xbf42de?.[_0x594347(0x118)]||null;}catch(_0x131151){return console[_0x594347(0x115)]('queryUserIdByMobile\x20请求失败:',_0x131151),null;}}const TOOL_TAGS=['Write',a9_0xe4b6ab(0x117),a9_0xe4b6ab(0x105),a9_0xe4b6ab(0x103),a9_0xe4b6ab(0x104),'Glob',a9_0xe4b6ab(0xed),'Skill',a9_0xe4b6ab(0x111),a9_0xe4b6ab(0xc0),a9_0xe4b6ab(0xd2),a9_0xe4b6ab(0xfd),a9_0xe4b6ab(0xd9),'ExitPlanMode',a9_0xe4b6ab(0xd1),a9_0xe4b6ab(0xe0),a9_0xe4b6ab(0x10b),a9_0xe4b6ab(0xc7),a9_0xe4b6ab(0xe3),a9_0xe4b6ab(0xf9),a9_0xe4b6ab(0x10e),a9_0xe4b6ab(0xf6),'CronList',a9_0xe4b6ab(0xef),a9_0xe4b6ab(0x11c)][a9_0xe4b6ab(0xc5)]('|'),TOOL_USE_SELF_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0xe4b6ab(0xd7),'g'),TOOL_USE_OPEN_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0xe4b6ab(0xd6),'g'),MULTI_NEWLINE_RE=/\n{3,}/g;function filterToolUseContent(_0x1220b6){const _0xc8645a=a9_0xe4b6ab;let _0x464b3d=_0x1220b6[_0xc8645a(0xf7)](TOOL_USE_SELF_CLOSE_RE,'');return _0x464b3d=_0x464b3d[_0xc8645a(0xf7)](TOOL_USE_OPEN_CLOSE_RE,''),_0x464b3d=_0x464b3d[_0xc8645a(0xf7)](MULTI_NEWLINE_RE,'\x0a\x0a'),_0x464b3d[_0xc8645a(0xfb)]();}function splitMessage(_0x4988f6,_0x1bf0cb){const _0xcbf21d=a9_0xe4b6ab,_0x2b94c6=[];while(_0x4988f6[_0xcbf21d(0x109)]>_0x1bf0cb){let _0x1664e5=_0x4988f6['lastIndexOf']('\x0a',_0x1bf0cb);(_0x1664e5===-0x1||_0x1664e5<_0x1bf0cb*0.5)&&(_0x1664e5=_0x4988f6['lastIndexOf']('。',_0x1bf0cb)),(_0x1664e5===-0x1||_0x1664e5<_0x1bf0cb*0.5)&&(_0x1664e5=_0x4988f6[_0xcbf21d(0xe2)]('\x20',_0x1bf0cb)),_0x1664e5===-0x1||_0x1664e5<_0x1bf0cb*0.5?_0x1664e5=_0x1bf0cb:_0x1664e5+=0x1,_0x2b94c6[_0xcbf21d(0xca)](_0x4988f6[_0xcbf21d(0xe7)](0x0,_0x1664e5)[_0xcbf21d(0xfb)]()),_0x4988f6=_0x4988f6[_0xcbf21d(0xe7)](_0x1664e5)['trim']();}return _0x4988f6[_0xcbf21d(0x109)]>0x0&&_0x2b94c6['push'](_0x4988f6),_0x2b94c6;}async function sendDingMessage(_0x3504a3,_0x1171d0){const _0x45c880=a9_0xe4b6ab,{conversationId:_0x14db64,sessionWebhook:_0x450c5e,atUserId:_0x11dda8,content:_0x34fada,msgType:msgType=_0x45c880(0x113)}=_0x1171d0,_0x4e2862=_0x3504a3[_0x45c880(0xd4)][_0x45c880(0xf3)][_0x45c880(0xee)](_0x1ba13a=>_0x1ba13a[_0x45c880(0xe9)]===_0x14db64);let _0x3eb13d=_0x11dda8;_0x4e2862?.[_0x45c880(0xe8)]===![]&&(_0x3eb13d=undefined);const _0x57d792=_0x3eb13d?[_0x3eb13d]:[],_0x58e97d=_0x4e2862?.['dingToken'];let _0x25f4b6=_0x34fada;_0x3eb13d&&msgType===_0x45c880(0xda)&&(_0x25f4b6=_0x34fada+'\x0a@'+_0x3eb13d);const _0x85adcb=msgType===_0x45c880(0xda)?{'msgtype':_0x45c880(0xda),'markdown':{'title':_0x25f4b6,'text':_0x25f4b6},'at':{'atUserIds':_0x57d792,'isAtAll':![]}}:{'msgtype':_0x45c880(0x113),'text':{'content':_0x34fada},'at':{'atUserIds':_0x57d792,'isAtAll':![]}};if(_0x58e97d){const _0x344a69=await _0x3504a3['dingStreamClient'][_0x45c880(0xc4)](),_0x5188a9=_0x45c880(0xde)+_0x58e97d;try{await urllib_1[_0x45c880(0xbf)][_0x45c880(0x114)](_0x5188a9,{'method':_0x45c880(0xff),'data':_0x85adcb,'contentType':_0x45c880(0xdc),'headers':{'x-acs-dingtalk-access-token':_0x344a69},'dataType':_0x45c880(0xdc)});}catch(_0x2f595c){console['error'](_0x45c880(0x10d),_0x2f595c);}}else{if(_0x450c5e){const _0x4da4e7=await _0x3504a3['dingStreamClient']['getAccessToken']();try{await urllib_1[_0x45c880(0xbf)][_0x45c880(0x114)](_0x450c5e,{'method':'POST','data':_0x85adcb,'contentType':_0x45c880(0xdc),'headers':{'x-acs-dingtalk-access-token':_0x4da4e7},'dataType':_0x45c880(0xdc)});}catch(_0x49c7f7){console['error']('通过\x20sessionWebhook\x20发送钉钉消息失败:',_0x49c7f7);}}else{if(_0x3504a3[_0x45c880(0xd4)][_0x45c880(0xd8)]){const _0x5a521e=await _0x3504a3[_0x45c880(0x110)][_0x45c880(0xc4)](),_0x385678=_0x45c880(0xde)+_0x3504a3[_0x45c880(0xd4)][_0x45c880(0xd8)];try{await urllib_1['default'][_0x45c880(0x114)](_0x385678,{'method':_0x45c880(0xff),'data':_0x85adcb,'contentType':'json','headers':{'x-acs-dingtalk-access-token':_0x5a521e},'dataType':_0x45c880(0xdc)});}catch(_0x2a2a37){console['error']('通过\x20defaultDingToken\x20发送钉钉消息失败:',_0x2a2a37);}}else console[_0x45c880(0x101)](_0x45c880(0xdb));}}}async function sendClaudeResponseToDing(_0x2d34a4,_0x3f8362,_0x408b0c,_0x38900f,_0x54140e){const _0xfd8176=a9_0xe4b6ab,_0x42c0df=0x4650,_0x19d710=filterToolUseContent(_0x54140e);if(!_0x19d710){_0x2d34a4[_0xfd8176(0xe1)]('过滤后内容为空,跳过发送');return;}if(_0x19d710[_0xfd8176(0x109)]<=_0x42c0df)await sendDingMessage(_0x2d34a4,{'conversationId':_0x3f8362,'sessionWebhook':_0x408b0c,'atUserId':_0x38900f,'content':_0x19d710,'msgType':_0xfd8176(0xda)});else{const _0x5aadd1=splitMessage(_0x19d710,_0x42c0df);for(let _0x35bbe0=0x0;_0x35bbe0<_0x5aadd1[_0xfd8176(0x109)];_0x35bbe0++){const _0x2e9984=_0x5aadd1[_0xfd8176(0x109)]>0x1?_0xfd8176(0xd3)+(_0x35bbe0+0x1)+'/'+_0x5aadd1[_0xfd8176(0x109)]+_0xfd8176(0xc8):'';await sendDingMessage(_0x2d34a4,{'conversationId':_0x3f8362,'sessionWebhook':_0x408b0c,'atUserId':_0x35bbe0===_0x5aadd1[_0xfd8176(0x109)]-0x1?_0x38900f:'','content':_0x2e9984+_0x5aadd1[_0x35bbe0],'msgType':_0xfd8176(0xda)}),_0x35bbe0<_0x5aadd1[_0xfd8176(0x109)]-0x1&&await utils_ok_1['baseUtil'][_0xfd8176(0xe5)](0x1f4);}}}
|
|
1
|
+
'use strict';function a9_0x1e2d(_0x46fa82,_0x9a50a1){_0x46fa82=_0x46fa82-0x109;const _0x29a6b0=a9_0x29a6();let _0x1e2dff=_0x29a6b0[_0x46fa82];return _0x1e2dff;}const a9_0x2fae45=a9_0x1e2d;(function(_0x2b95e2,_0x23aad5){const _0x2f8a81=a9_0x1e2d,_0x7fd1c2=_0x2b95e2();while(!![]){try{const _0x14c4a3=parseInt(_0x2f8a81(0x134))/0x1+parseInt(_0x2f8a81(0x154))/0x2*(-parseInt(_0x2f8a81(0x156))/0x3)+-parseInt(_0x2f8a81(0x12a))/0x4*(-parseInt(_0x2f8a81(0x161))/0x5)+-parseInt(_0x2f8a81(0x12e))/0x6+-parseInt(_0x2f8a81(0x10e))/0x7*(parseInt(_0x2f8a81(0x145))/0x8)+parseInt(_0x2f8a81(0x118))/0x9*(-parseInt(_0x2f8a81(0x10c))/0xa)+parseInt(_0x2f8a81(0x149))/0xb*(parseInt(_0x2f8a81(0x15f))/0xc);if(_0x14c4a3===_0x23aad5)break;else _0x7fd1c2['push'](_0x7fd1c2['shift']());}catch(_0x301526){_0x7fd1c2['push'](_0x7fd1c2['shift']());}}}(a9_0x29a6,0x82bfe));var __importDefault=this&&this[a9_0x2fae45(0x121)]||function(_0x53e690){const _0x2bc970=a9_0x2fae45;return _0x53e690&&_0x53e690[_0x2bc970(0x143)]?_0x53e690:{'default':_0x53e690};};Object[a9_0x2fae45(0x130)](exports,a9_0x2fae45(0x143),{'value':!![]}),exports[a9_0x2fae45(0x15e)]=fetchQuotedMessage,exports[a9_0x2fae45(0x159)]=queryDingUser,exports[a9_0x2fae45(0x115)]=queryUserIdByMobile,exports['filterToolUseContent']=filterToolUseContent,exports['splitMessage']=splitMessage,exports[a9_0x2fae45(0x109)]=sendDingMessage,exports[a9_0x2fae45(0x166)]=sendClaudeResponseToDing;const utils_ok_1=require(a9_0x2fae45(0x168)),urllib_1=__importDefault(require(a9_0x2fae45(0x147))),DING_API_BASE='https://api.dingtalk.com',DING_OAPI_BASE='https://oapi.dingtalk.com';function a9_0x29a6(){const _0x1e5e35=['userid','fetchQuotedMessage\x20API\x20返回非200:\x20status=','trim','CronCreate','**[','875968wCHPjq','EnterWorktree','过滤后内容为空,跳过发送','dingStreamClient','3271758PtUjts','object','defineProperty',')[^>]*\x5c/>','conversationId','TaskList','497137crkFNs','fetchQuotedMessage\x20无法从响应中提取文本:\x20keys=','defaultDingToken','GET','string','baseUtil','replace','default','status','通过\x20defaultDingToken\x20发送钉钉消息失败:','debugLog','TaskGet','conversationType','AskUserQuestion',',\x20errmsg=','__esModule','result','641320EqWuzM','text','urllib','TaskCreate','4366813KSusJx','TaskOutput','markdown','/topapi/v2/user/get?access_token=','join','EnterPlanMode','data','/v1.0/im/api/messages/','stringify',',\x20data=','queryUserIdByMobile\x20请求失败:','44752xpJZcn','length','66hWnRHI','ExitPlanMode','fetchQuotedMessage\x20请求失败:','queryDingUser','warn','WebFetch','substring','push','fetchQuotedMessage','36WhTBOF','POST','20sCWNTp','queryDingUser\x20API\x20返回非200:\x20status=','atSender','request','https://oapi.dingtalk.com/robot/send?access_token=','sendClaudeResponseToDing','通过\x20sessionWebhook\x20发送钉钉消息失败:','utils-ok','json','Glob','/topapi/v2/user/getbymobile?access_token=','sendDingMessage','dingToken','NotebookEdit','10tRBOMc','getAccessToken','35sXklWo','Read','parse','Bash','通过\x20dingToken\x20发送钉钉消息失败:','LSP','sleep','queryUserIdByMobile','Grep','queryUserIdByMobile\x20API\x20返回非200:\x20status=','5311026ZrATIB','lastIndexOf','conversations','body','content',']**\x0a','TaskUpdate','find','config','__importDefault','errcode','errmsg','error'];a9_0x29a6=function(){return _0x1e5e35;};return a9_0x29a6();}async function fetchQuotedMessage(_0x4e8a20,_0x2533db){const _0x5edf9d=a9_0x2fae45;try{const _0x26700c=await _0x4e8a20[_0x5edf9d(0x12d)][_0x5edf9d(0x10d)](),_0x3e1227=DING_API_BASE+_0x5edf9d(0x150)+encodeURIComponent(_0x2533db),_0xf9a334=await urllib_1[_0x5edf9d(0x13b)][_0x5edf9d(0x164)](_0x3e1227,{'method':_0x5edf9d(0x137),'headers':{'x-acs-dingtalk-access-token':_0x26700c},'dataType':_0x5edf9d(0x169),'timeout':0x1388});if(_0xf9a334[_0x5edf9d(0x13c)]!==0xc8||!_0xf9a334[_0x5edf9d(0x14f)])return _0x4e8a20[_0x5edf9d(0x13e)](_0x5edf9d(0x126)+_0xf9a334[_0x5edf9d(0x13c)]+_0x5edf9d(0x152)+JSON[_0x5edf9d(0x151)](_0xf9a334[_0x5edf9d(0x14f)])),null;const _0x8485dd=_0xf9a334[_0x5edf9d(0x14f)];if(_0x8485dd[_0x5edf9d(0x146)]&&typeof _0x8485dd[_0x5edf9d(0x146)]==='object'){const _0x185dd6=_0x8485dd[_0x5edf9d(0x146)][_0x5edf9d(0x11c)];if(typeof _0x185dd6===_0x5edf9d(0x138)&&_0x185dd6)return _0x185dd6[_0x5edf9d(0x127)]();}if(typeof _0x8485dd[_0x5edf9d(0x11c)]===_0x5edf9d(0x138)&&_0x8485dd[_0x5edf9d(0x11c)])try{const _0x3cd58b=JSON[_0x5edf9d(0x110)](_0x8485dd[_0x5edf9d(0x11c)]);if(typeof _0x3cd58b===_0x5edf9d(0x138))return _0x3cd58b['trim']();if(_0x3cd58b[_0x5edf9d(0x146)])return String(_0x3cd58b[_0x5edf9d(0x146)])[_0x5edf9d(0x127)]();if(_0x3cd58b[_0x5edf9d(0x11c)])return String(_0x3cd58b[_0x5edf9d(0x11c)])[_0x5edf9d(0x127)]();}catch{return _0x8485dd[_0x5edf9d(0x11c)][_0x5edf9d(0x127)]();}if(_0x8485dd[_0x5edf9d(0x11b)]&&typeof _0x8485dd[_0x5edf9d(0x11b)]===_0x5edf9d(0x12f)){const _0x463ad5=_0x8485dd[_0x5edf9d(0x11b)];if(typeof _0x463ad5['content']===_0x5edf9d(0x138)&&_0x463ad5[_0x5edf9d(0x11c)])return _0x463ad5['content'][_0x5edf9d(0x127)]();}return _0x4e8a20[_0x5edf9d(0x13e)](_0x5edf9d(0x135)+Object['keys'](_0x8485dd)[_0x5edf9d(0x14d)](',')),null;}catch(_0x3238b5){return console[_0x5edf9d(0x15a)](_0x5edf9d(0x158),_0x3238b5),null;}}async function queryDingUser(_0xc97b9f,_0x15117a){const _0x38edb0=a9_0x2fae45;try{const _0x1595bb=await _0xc97b9f['dingStreamClient'][_0x38edb0(0x10d)](),_0x23a8d2=DING_OAPI_BASE+_0x38edb0(0x14c)+_0x1595bb,_0x3862c3=await urllib_1[_0x38edb0(0x13b)]['request'](_0x23a8d2,{'method':_0x38edb0(0x160),'data':{'userid':_0x15117a},'contentType':_0x38edb0(0x169),'dataType':_0x38edb0(0x169),'timeout':0x1388});if(_0x3862c3[_0x38edb0(0x13c)]!==0xc8||!_0x3862c3['data'])return _0xc97b9f[_0x38edb0(0x13e)](_0x38edb0(0x162)+_0x3862c3[_0x38edb0(0x13c)]+_0x38edb0(0x152)+JSON['stringify'](_0x3862c3[_0x38edb0(0x14f)])),null;const _0x74d926=_0x3862c3['data'];if(_0x74d926[_0x38edb0(0x122)]!==0x0)return console[_0x38edb0(0x15a)]('queryDingUser\x20接口返回错误:\x20errcode='+_0x74d926[_0x38edb0(0x122)]+_0x38edb0(0x142)+_0x74d926[_0x38edb0(0x123)]),null;return _0x74d926[_0x38edb0(0x144)]||null;}catch(_0x420544){return console[_0x38edb0(0x15a)]('queryDingUser\x20请求失败:',_0x420544),null;}}async function queryUserIdByMobile(_0x79c5b4,_0x51c1fb){const _0x52b93e=a9_0x2fae45;try{const _0x3fb0a1=await _0x79c5b4[_0x52b93e(0x12d)][_0x52b93e(0x10d)](),_0x814976=DING_OAPI_BASE+_0x52b93e(0x16b)+_0x3fb0a1,_0x32c49f=await urllib_1['default'][_0x52b93e(0x164)](_0x814976,{'method':_0x52b93e(0x160),'data':{'mobile':_0x51c1fb},'contentType':'json','dataType':_0x52b93e(0x169),'timeout':0x1388});if(_0x32c49f[_0x52b93e(0x13c)]!==0xc8||!_0x32c49f['data'])return _0x79c5b4[_0x52b93e(0x13e)](_0x52b93e(0x117)+_0x32c49f[_0x52b93e(0x13c)]+_0x52b93e(0x152)+JSON[_0x52b93e(0x151)](_0x32c49f[_0x52b93e(0x14f)])),null;const _0x4447ea=_0x32c49f['data'];if(_0x4447ea[_0x52b93e(0x122)]!==0x0)return console[_0x52b93e(0x15a)]('queryUserIdByMobile\x20接口返回错误:\x20errcode='+_0x4447ea[_0x52b93e(0x122)]+',\x20errmsg='+_0x4447ea[_0x52b93e(0x123)]),null;const _0x2e52a1=_0x4447ea[_0x52b93e(0x144)];return _0x2e52a1?.[_0x52b93e(0x125)]||null;}catch(_0x481469){return console[_0x52b93e(0x15a)](_0x52b93e(0x153),_0x481469),null;}}const TOOL_TAGS=['Write',a9_0x2fae45(0x10f),'Edit',a9_0x2fae45(0x111),a9_0x2fae45(0x116),a9_0x2fae45(0x16a),'Agent','Skill',a9_0x2fae45(0x15b),'WebSearch',a9_0x2fae45(0x14a),a9_0x2fae45(0x141),a9_0x2fae45(0x14e),a9_0x2fae45(0x157),a9_0x2fae45(0x148),a9_0x2fae45(0x13f),a9_0x2fae45(0x11e),a9_0x2fae45(0x133),a9_0x2fae45(0x12b),'ExitWorktree',a9_0x2fae45(0x128),'CronDelete','CronList',a9_0x2fae45(0x113),a9_0x2fae45(0x10b)][a9_0x2fae45(0x14d)]('|'),TOOL_USE_SELF_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0x2fae45(0x131),'g'),TOOL_USE_OPEN_CLOSE_RE=new RegExp('<('+TOOL_TAGS+')[^>]*>[\x5cs\x5cS]*?<\x5c/\x5c1>','g'),MULTI_NEWLINE_RE=/\n{3,}/g;function filterToolUseContent(_0x238abd){const _0x3356d3=a9_0x2fae45;let _0x2118e8=_0x238abd[_0x3356d3(0x13a)](TOOL_USE_SELF_CLOSE_RE,'');return _0x2118e8=_0x2118e8[_0x3356d3(0x13a)](TOOL_USE_OPEN_CLOSE_RE,''),_0x2118e8=_0x2118e8[_0x3356d3(0x13a)](MULTI_NEWLINE_RE,'\x0a\x0a'),_0x2118e8['trim']();}function splitMessage(_0x4f29a7,_0x1ac23d){const _0x45276a=a9_0x2fae45,_0x1f5999=[];while(_0x4f29a7[_0x45276a(0x155)]>_0x1ac23d){let _0x7bacc4=_0x4f29a7[_0x45276a(0x119)]('\x0a',_0x1ac23d);(_0x7bacc4===-0x1||_0x7bacc4<_0x1ac23d*0.5)&&(_0x7bacc4=_0x4f29a7[_0x45276a(0x119)]('。',_0x1ac23d)),(_0x7bacc4===-0x1||_0x7bacc4<_0x1ac23d*0.5)&&(_0x7bacc4=_0x4f29a7[_0x45276a(0x119)]('\x20',_0x1ac23d)),_0x7bacc4===-0x1||_0x7bacc4<_0x1ac23d*0.5?_0x7bacc4=_0x1ac23d:_0x7bacc4+=0x1,_0x1f5999[_0x45276a(0x15d)](_0x4f29a7[_0x45276a(0x15c)](0x0,_0x7bacc4)['trim']()),_0x4f29a7=_0x4f29a7['substring'](_0x7bacc4)[_0x45276a(0x127)]();}return _0x4f29a7[_0x45276a(0x155)]>0x0&&_0x1f5999[_0x45276a(0x15d)](_0x4f29a7),_0x1f5999;}async function sendDingMessage(_0x3322a1,_0x2c9c40){const _0x2be7bc=a9_0x2fae45,{conversationId:_0x32655c,sessionWebhook:_0x2ab82f,atUserId:_0x27937a,content:_0x50f8ac,msgType:msgType='text'}=_0x2c9c40,_0xe724e7=_0x3322a1[_0x2be7bc(0x120)][_0x2be7bc(0x11a)][_0x2be7bc(0x11f)](_0x2541e0=>_0x2541e0[_0x2be7bc(0x132)]===_0x32655c);let _0x38ed82=_0x27937a;(_0xe724e7?.[_0x2be7bc(0x163)]===![]||_0xe724e7?.[_0x2be7bc(0x140)]==='1')&&(_0x38ed82=undefined);const _0x141ccd=_0x38ed82?[_0x38ed82]:[],_0x362dd5=_0xe724e7?.[_0x2be7bc(0x10a)];let _0x2fda86=_0x50f8ac;_0x38ed82&&msgType===_0x2be7bc(0x14b)&&(_0x2fda86=_0x50f8ac+'\x0a@'+_0x38ed82);const _0x16ed4e=msgType==='markdown'?{'msgtype':_0x2be7bc(0x14b),'markdown':{'title':_0x2fda86,'text':_0x2fda86},'at':{'atUserIds':_0x141ccd,'isAtAll':![]}}:{'msgtype':'text','text':{'content':_0x50f8ac},'at':{'atUserIds':_0x141ccd,'isAtAll':![]}};if(_0x362dd5){const _0x5e300f=await _0x3322a1[_0x2be7bc(0x12d)][_0x2be7bc(0x10d)](),_0x329311='https://oapi.dingtalk.com/robot/send?access_token='+_0x362dd5;try{await urllib_1[_0x2be7bc(0x13b)][_0x2be7bc(0x164)](_0x329311,{'method':'POST','data':_0x16ed4e,'contentType':_0x2be7bc(0x169),'headers':{'x-acs-dingtalk-access-token':_0x5e300f},'dataType':_0x2be7bc(0x169)});}catch(_0x1453a4){console[_0x2be7bc(0x124)](_0x2be7bc(0x112),_0x1453a4);}}else{if(_0x2ab82f){const _0x2875cb=await _0x3322a1[_0x2be7bc(0x12d)][_0x2be7bc(0x10d)]();try{await urllib_1[_0x2be7bc(0x13b)][_0x2be7bc(0x164)](_0x2ab82f,{'method':_0x2be7bc(0x160),'data':_0x16ed4e,'contentType':_0x2be7bc(0x169),'headers':{'x-acs-dingtalk-access-token':_0x2875cb},'dataType':_0x2be7bc(0x169)});}catch(_0x194f92){console[_0x2be7bc(0x124)](_0x2be7bc(0x167),_0x194f92);}}else{if(_0x3322a1[_0x2be7bc(0x120)][_0x2be7bc(0x136)]){const _0x209a68=await _0x3322a1[_0x2be7bc(0x12d)][_0x2be7bc(0x10d)](),_0x166a01=_0x2be7bc(0x165)+_0x3322a1[_0x2be7bc(0x120)][_0x2be7bc(0x136)];try{await urllib_1[_0x2be7bc(0x13b)]['request'](_0x166a01,{'method':'POST','data':_0x16ed4e,'contentType':_0x2be7bc(0x169),'headers':{'x-acs-dingtalk-access-token':_0x209a68},'dataType':_0x2be7bc(0x169)});}catch(_0x4398e9){console['error'](_0x2be7bc(0x13d),_0x4398e9);}}else console[_0x2be7bc(0x124)]('未能获取机器人信息发送途径');}}}async function sendClaudeResponseToDing(_0x4aca8c,_0x23a2fe,_0x10f390,_0x579335,_0x404a67){const _0x4cb0a5=a9_0x2fae45,_0xb8c9c2=0x4650,_0x3a6c29=filterToolUseContent(_0x404a67);if(!_0x3a6c29){_0x4aca8c['debugLog'](_0x4cb0a5(0x12c));return;}if(_0x3a6c29[_0x4cb0a5(0x155)]<=_0xb8c9c2)await sendDingMessage(_0x4aca8c,{'conversationId':_0x23a2fe,'sessionWebhook':_0x10f390,'atUserId':_0x579335,'content':_0x3a6c29,'msgType':'markdown'});else{const _0x5c049b=splitMessage(_0x3a6c29,_0xb8c9c2);for(let _0x38daed=0x0;_0x38daed<_0x5c049b['length'];_0x38daed++){const _0x1bc562=_0x5c049b[_0x4cb0a5(0x155)]>0x1?_0x4cb0a5(0x129)+(_0x38daed+0x1)+'/'+_0x5c049b[_0x4cb0a5(0x155)]+_0x4cb0a5(0x11d):'';await sendDingMessage(_0x4aca8c,{'conversationId':_0x23a2fe,'sessionWebhook':_0x10f390,'atUserId':_0x38daed===_0x5c049b['length']-0x1?_0x579335:'','content':_0x1bc562+_0x5c049b[_0x38daed],'msgType':'markdown'}),_0x38daed<_0x5c049b[_0x4cb0a5(0x155)]-0x1&&await utils_ok_1[_0x4cb0a5(0x139)][_0x4cb0a5(0x114)](0x1f4);}}}
|
package/dist/src/biz/quote.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const a10_0x4dcc85=a10_0x300a;function a10_0x4011(){const _0x47eca4=['1527326yNLPUx','\x20──\x0a','quoteSenderNick','repliedMsg','603748etavUV','string','msgId','1015764QJGlDr','trim','quoteText','defineProperty','──\x20引用消息','5kZRtNH','extractQuoteInfo','text','formatPromptWithQuote','\x20(来自:\x20','16777608kFWAZz','__esModule','1277911GLLsnY','content','6464696yfVEEQ','12732LrsFMV'];a10_0x4011=function(){return _0x47eca4;};return a10_0x4011();}(function(_0x2b8b75,_0x2ee20f){const _0x3c3edd=a10_0x300a,_0x481a5d=_0x2b8b75();while(!![]){try{const _0x2ef975=-parseInt(_0x3c3edd(0x11b))/0x1+-parseInt(_0x3c3edd(0x11f))/0x2+-parseInt(_0x3c3edd(0x11e))/0x3+-parseInt(_0x3c3edd(0x123))/0x4+-parseInt(_0x3c3edd(0x114))/0x5*(parseInt(_0x3c3edd(0x126))/0x6)+parseInt(_0x3c3edd(0x11d))/0x7+parseInt(_0x3c3edd(0x119))/0x8;if(_0x2ef975===_0x2ee20f)break;else _0x481a5d['push'](_0x481a5d['shift']());}catch(_0x17bfff){_0x481a5d['push'](_0x481a5d['shift']());}}}(a10_0x4011,0x9fd58));Object[a10_0x4dcc85(0x129)](exports,a10_0x4dcc85(0x11a),{'value':!![]}),exports[a10_0x4dcc85(0x115)]=extractQuoteInfo,exports[a10_0x4dcc85(0x117)]=formatPromptWithQuote;function extractQuoteInfo(_0x4aa23e){const _0x3017c4=a10_0x4dcc85,_0x582221=_0x4aa23e[_0x3017c4(0x116)];if(!_0x582221?.[_0x3017c4(0x122)])return null;const _0x552c91=_0x582221[_0x3017c4(0x122)];let _0x22cabe='';const _0x51db04=_0x552c91[_0x3017c4(0x125)],_0x272175=_0x552c91['senderNick'];if(_0x552c91[_0x3017c4(0x11c)]){if(typeof _0x552c91[_0x3017c4(0x11c)][_0x3017c4(0x116)]==='string')_0x22cabe=_0x552c91[_0x3017c4(0x11c)][_0x3017c4(0x116)]['trim']();else typeof _0x552c91['content']===_0x3017c4(0x124)&&(_0x22cabe=_0x552c91[_0x3017c4(0x11c)][_0x3017c4(0x127)]());}if(!_0x22cabe&&!_0x51db04)return null;return{'quoteText':_0x22cabe,'quoteMessageId':_0x51db04,'quoteSenderNick':_0x272175};}function a10_0x300a(_0x36dd55,_0x588ffd){_0x36dd55=_0x36dd55-0x113;const _0x4011cd=a10_0x4011();let _0x300a0b=_0x4011cd[_0x36dd55];return _0x300a0b;}function formatPromptWithQuote(_0x5794be,_0x50af09){const _0x1be5f3=a10_0x4dcc85;if(!_0x50af09[_0x1be5f3(0x128)])return _0x5794be;const _0x13fafe=_0x50af09[_0x1be5f3(0x121)]?_0x1be5f3(0x118)+_0x50af09[_0x1be5f3(0x121)]+')':'';return _0x1be5f3(0x113)+_0x13fafe+_0x1be5f3(0x120)+_0x50af09['quoteText']+'\x0a──\x20引用结束\x20──\x0a\x0a'+_0x5794be;}
|
package/dist/src/biz/session.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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;}
|
|
1
|
+
'use strict';const a11_0x20ed59=a11_0x2403;(function(_0x34a1e8,_0x413a44){const _0x56f2fb=a11_0x2403,_0x41ee02=_0x34a1e8();while(!![]){try{const _0x52fd85=parseInt(_0x56f2fb(0x14d))/0x1+-parseInt(_0x56f2fb(0x141))/0x2+parseInt(_0x56f2fb(0x150))/0x3*(parseInt(_0x56f2fb(0x157))/0x4)+-parseInt(_0x56f2fb(0x19b))/0x5*(-parseInt(_0x56f2fb(0x18f))/0x6)+parseInt(_0x56f2fb(0x1ee))/0x7+-parseInt(_0x56f2fb(0x190))/0x8*(-parseInt(_0x56f2fb(0x189))/0x9)+-parseInt(_0x56f2fb(0x18a))/0xa;if(_0x52fd85===_0x413a44)break;else _0x41ee02['push'](_0x41ee02['shift']());}catch(_0x1bd5e4){_0x41ee02['push'](_0x41ee02['shift']());}}}(a11_0x5afa,0x94cab));var __importDefault=this&&this['__importDefault']||function(_0x2090c2){const _0x3f0a25=a11_0x2403;return _0x2090c2&&_0x2090c2[_0x3f0a25(0x19f)]?_0x2090c2:{'default':_0x2090c2};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports[a11_0x20ed59(0x1b8)]=timestamp,exports[a11_0x20ed59(0x120)]=getHomeDir,exports[a11_0x20ed59(0x197)]=getClientDir,exports['initClientDir']=initClientDir,exports[a11_0x20ed59(0x126)]=ensureClientDir,exports['getClientConfig']=getClientConfig,exports[a11_0x20ed59(0x14c)]=resolveToUserId,exports[a11_0x20ed59(0x1db)]=authCheck,exports[a11_0x20ed59(0x14a)]=isOwner,exports['debugLog']=debugLog,exports['isMobile']=isMobile,exports[a11_0x20ed59(0x160)]=getPhoneMapFile,exports[a11_0x20ed59(0x17a)]=loadPhoneMap,exports['savePhoneMap']=savePhoneMap,exports[a11_0x20ed59(0x1e6)]=userIdToPhone,exports[a11_0x20ed59(0x1e8)]=resolveUserId,exports[a11_0x20ed59(0x119)]=resolveAllPhonesInConfig,exports[a11_0x20ed59(0x1a5)]=hashConversationId,exports['getReplyWebhook']=getReplyWebhook,exports[a11_0x20ed59(0x13c)]=getReplyConversationId,exports[a11_0x20ed59(0x187)]=findActiveSession,exports[a11_0x20ed59(0x176)]=getConversationConfig,exports[a11_0x20ed59(0x196)]=getConversationDir,exports[a11_0x20ed59(0x1b7)]=getSessionsDir,exports[a11_0x20ed59(0x1e7)]=getTasksDir,exports[a11_0x20ed59(0x1d0)]=getImagesDir,exports['getSessionDir']=getSessionDir,exports[a11_0x20ed59(0x167)]=getSessionId,exports['formatSessionInfo']=formatSessionInfo,exports[a11_0x20ed59(0x19a)]=readSessionLogTail,exports[a11_0x20ed59(0x156)]=findHistorySession,exports[a11_0x20ed59(0x122)]=findLatestSession,exports[a11_0x20ed59(0x16e)]=updateSessionFile,exports[a11_0x20ed59(0x1a1)]=appendSessionLog,exports['getActiveSessionsFile']=getActiveSessionsFile,exports[a11_0x20ed59(0x193)]=saveActiveSession,exports[a11_0x20ed59(0x145)]=loadActiveSessions,exports['endSession']=endSession,exports[a11_0x20ed59(0x182)]=switchToSession,exports['startNewSession']=startNewSession,exports[a11_0x20ed59(0x1e1)]=processMessageQueue,exports[a11_0x20ed59(0x195)]=handleSessionMessage,exports[a11_0x20ed59(0x168)]=cleanCache;const utils_ok_1=require(a11_0x20ed59(0x13b)),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require(a11_0x20ed59(0x12c))),crypto_1=__importDefault(require(a11_0x20ed59(0x11a))),path_1=__importDefault(require(a11_0x20ed59(0x12b))),commands_1=require(a11_0x20ed59(0x186)),messaging_1=require(a11_0x20ed59(0x13f)),claude_process_1=require('./claude-process');function a11_0x5afa(){const _0x3ebc68=[',结束当前会话\x0a','-\x20**开始时间:**\x20','loadActiveSessions','md5','interruptClaudeProcess','join','<兜底钉钉机器人Token>','isOwner','format','resolveToUserId','940700XOgDSN','startTimeStr','parse','3174SnOEWu','claudeSessionId','startTime','⚠️\x20该会话无历史上下文,将从头开始',']\x20客户端目录未初始化:\x20','\x20条)','findHistorySession','904RkTMzB',']\x20已生成默认配置文件:\x20','agent','conversationId','\x20条新解析)','executeClaudeQuery','/session.json','💬\x20会话已结束\x0a📋\x20会话ID:\x20','conversations','getPhoneMapFile','errors','YYYY-MM-DD\x20HH:mm:ss','读取tasks目录失败:\x20','-\x20**会话ID:**\x20','达到最大并发数\x20(','readFileSync','getSessionId','cleanCache','rmSync','startNickName','now','name','exit','updateSessionFile','utf-8',']\x20[','\x0a💡\x20回复\x20/end\x20可结束本轮对话','session.json','imagesDeleted','❌\x20未找到会话\x20','shift','getConversationConfig','活跃会话目录已不存在,清理持久化文件:\x20','\x20->\x20','tasksDeleted','loadPhoneMap','basename','length','sessionsDeleted','createHash','/.tasks','message','🔄\x20已恢复对话上下文','switchToSession','messageQueue','执行\x20Claude\x20查询失败:','🤯\x20当前繁忙,请稍后再试...','./commands','findActiveSession','log','9kbQtMt','27273850NLVWpL','delete',']\x20[SYSTEM]:\x20用户请求结束会话\x0a','linkConversationId','currentWebhook','3372NJxanN','4080760ZVlvpj','活跃会话已持久化:\x20群=','parseEndCommand','saveActiveSession','push','handleSessionMessage','getConversationDir','getClientDir','digest','sessionMaxConcurrency','readSessionLogTail','6455rEgFlO','/.images','\x20条记录\x20(','appendFileSync','__esModule','[WARN]\x20owner\x20必须为手机号,当前值无效:\x20','appendSessionLog','删除任务目录失败:\x20','dateUtil','skill','hashConversationId','isProcessing','get','已切换到历史会话:\x20群=','❌\x20处理消息时发生错误:\x20',',\x20路径=','slice','set','),拒绝新会话:\x20群=','toUpperCase','切换会话时中断正在执行的\x20Claude\x20进程','[WARN]\x20无法解析\x20whiteUserList\x20手机号:\x20','删除图片失败:\x20','debug','receiveReply','更新\x20session.json\x20失败:','/session.log','切换会话,先结束当前会话:\x20','getSessionsDir','timestamp',',\x20当前并发=',']\x20会话文件已保存:\x20','resolvedPhones','map','\x20无活跃会话',']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','会话\x20','key','catch','保存\x20phone-map.json\x20失败:','.cc-ding','update','✅\x20收到,我来处理...','find','\x20消息已入队,排队第\x20','currentConversationId','[WARN]\x20无法解析\x20owner\x20手机号:\x20','error','session','renameSync','-\x20**最后发送者:**\x20','结束会话:\x20群=','YYYY-MM-DD-HH-mm-ss','getImagesDir','lastSenderStaffId','clientId','taskCfg','追加消息到活跃会话:\x20群=',',该会话可能已被清理,请发送新消息开始新会话','phone-map.json','<clientSecret-钉钉Stream连接密钥>','queryUserIdByMobile','创建新会话:\x20群=','(关联群,会话归属=','authCheck','fileUtil','isDirectory','default','读取sessions目录失败:\x20','/.sessions','processMessageQueue','\x20的数据已被清理,无法恢复,请发送新消息开始新会话',',\x20会话ID=','Could\x20not\x20find\x20client\x20config\x20file:\x20','/active.json','userIdToPhone','getTasksDir','resolveUserId','writeFileSync','readdirSync','删除活跃会话文件失败:\x20','mkdirSync','has','7599396HBFhGb','existsSync','resolveAllPhonesInConfig','crypto','sendDingMessage',']:\x20','❌\x20会话\x20','some','startStaffId','getHomeDir','结束会话时中断正在执行的\x20Claude\x20进程','findLatestSession','conversationConfig','size','whiteUserList','ensureClientDir','恢复活跃会话:\x20群=','owner','getJSON','stringify','path','assert','object','entries','/config.json','活跃会话文件无效,跳过:\x20','-\x20**排队消息:**\x20','sessionWebhook','-\x20**发起者:**\x20','dirname','持久化活跃会话失败:\x20群=','clientSecret',']\x20[SYSTEM]:\x20会话被切换到\x20',']\x20会话目录重命名:\x20','activeSessions','homedir','utils-ok','getReplyConversationId','会话目录已重建:\x20群=','config','./messaging','unlinkSync','328474KZWAOU','warn'];a11_0x5afa=function(){return _0x3ebc68;};return a11_0x5afa();}function timestamp(){const _0x508ac6=a11_0x20ed59;return utils_ok_1[_0x508ac6(0x1a3)]['mm'](Date[_0x508ac6(0x16b)]())[_0x508ac6(0x14b)](_0x508ac6(0x162));}function getHomeDir(){const _0x119ae7=a11_0x20ed59;return os_1[_0x119ae7(0x1de)][_0x119ae7(0x13a)]();}function getClientDir(_0x4942a3){const _0x2fc4a2=a11_0x20ed59;return path_1[_0x2fc4a2(0x1de)][_0x2fc4a2(0x148)](getHomeDir(),_0x2fc4a2(0x1c3),_0x4942a3[_0x2fc4a2(0x1d2)]);}function initClientDir(_0x1c7ae7,_0xf9f56f){const _0x18bf23=a11_0x20ed59,_0x2e8b3f=path_1['default'][_0x18bf23(0x148)](getHomeDir(),_0x18bf23(0x1c3),_0x1c7ae7),_0x35ad54=path_1['default'][_0x18bf23(0x148)](_0x2e8b3f,'config.json');return fs_1[_0x18bf23(0x1de)][_0x18bf23(0x1ec)](_0x2e8b3f,{'recursive':!![]}),fs_1[_0x18bf23(0x1de)][_0x18bf23(0x1e9)](_0x35ad54,JSON[_0x18bf23(0x12a)](_0xf9f56f,null,0x2),_0x18bf23(0x16f)),_0x35ad54;}function ensureClientDir(_0x34473f){const _0x2711c1=a11_0x20ed59,_0x5aa84b=path_1[_0x2711c1(0x1de)]['join'](getHomeDir(),_0x2711c1(0x1c3),_0x34473f),_0x3f0826=path_1[_0x2711c1(0x1de)][_0x2711c1(0x148)](_0x5aa84b,'config.json');if(fs_1[_0x2711c1(0x1de)][_0x2711c1(0x118)](_0x3f0826))return;console[_0x2711c1(0x188)]('['+timestamp()+_0x2711c1(0x154)+_0x5aa84b),console['log']('['+timestamp()+']\x20正在自动初始化...');const _0x44de16={'clientName':'cc助手','owner':'<owner手机号>','whiteUserList':[],'clientSecret':_0x2711c1(0x1d7),'defaultDingToken':_0x2711c1(0x149),'conversations':[]};initClientDir(_0x34473f,_0x44de16),console[_0x2711c1(0x188)]('['+timestamp()+_0x2711c1(0x158)+_0x3f0826),console[_0x2711c1(0x188)]('['+timestamp()+']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动'),process[_0x2711c1(0x16d)](0x1);}function getClientConfig(_0x492269){const _0x1daaea=a11_0x20ed59,_0x4c50ea=getClientDir(_0x492269)+_0x1daaea(0x12f);(0x0,assert_1['default'])(fs_1[_0x1daaea(0x1de)][_0x1daaea(0x118)](_0x4c50ea),_0x1daaea(0x1e4)+_0x4c50ea);const _0x2ff54e=utils_ok_1[_0x1daaea(0x1dc)]['getJSON'](_0x4c50ea);return(0x0,assert_1[_0x1daaea(0x1de)])(_0x2ff54e[_0x1daaea(0x136)],'config.json\x20missing\x20required\x20field:\x20clientSecret'),(0x0,assert_1[_0x1daaea(0x1de)])(_0x2ff54e[_0x1daaea(0x125)],'config.json\x20missing\x20required\x20field:\x20whiteUserList'),_0x2ff54e;}function resolveToUserId(_0x400655,_0x3c8893){const _0x3b24e5=a11_0x20ed59;return isMobile(_0x3c8893)?_0x400655[_0x3b24e5(0x1bb)][_0x3c8893]||_0x3c8893:_0x3c8893;}function authCheck(_0x1036f7,_0x2bd705,_0x4f1e32){const _0x1e5ebd=a11_0x20ed59;if(isOwner(_0x1036f7,_0x2bd705))return!![];if(_0x4f1e32){const _0x49f1cf=_0x1036f7[_0x1e5ebd(0x13e)][_0x1e5ebd(0x15f)][_0x1e5ebd(0x1c6)](_0x1d6e35=>_0x1d6e35[_0x1e5ebd(0x15a)]===_0x4f1e32);if(_0x49f1cf?.[_0x1e5ebd(0x125)]&&_0x49f1cf['whiteUserList'][_0x1e5ebd(0x17c)]>0x0)return _0x49f1cf[_0x1e5ebd(0x125)][_0x1e5ebd(0x11e)](_0x2cdb6c=>resolveToUserId(_0x1036f7,_0x2cdb6c)===_0x2bd705);}return _0x1036f7['config']['whiteUserList'][_0x1e5ebd(0x11e)](_0x29510f=>resolveToUserId(_0x1036f7,_0x29510f)===_0x2bd705);}function isOwner(_0x133071,_0x3a4b09){const _0x4c5dca=a11_0x20ed59,_0x175f75=_0x133071[_0x4c5dca(0x13e)][_0x4c5dca(0x128)];if(!_0x175f75||!isMobile(_0x175f75))return![];const _0x19755f=_0x133071[_0x4c5dca(0x1bb)][_0x175f75];return!!_0x19755f&&_0x19755f===_0x3a4b09;}function debugLog(_0x33c523,_0x5260a6,..._0x1ca0b1){const _0x4bf000=a11_0x20ed59;_0x33c523[_0x4bf000(0x13e)][_0x4bf000(0x1b2)]&&console['log']('[DEBUG]\x20'+_0x5260a6,..._0x1ca0b1);}const PHONE_RE=/^1\d{10}$/;function isMobile(_0x36d99c){return PHONE_RE['test'](_0x36d99c);}function getPhoneMapFile(_0x5a7d58){const _0x5da341=a11_0x20ed59;return path_1[_0x5da341(0x1de)][_0x5da341(0x148)](getClientDir(_0x5a7d58),_0x5da341(0x1d6));}function loadPhoneMap(_0x4a2f30){const _0xb9aaeb=a11_0x20ed59,_0x5a4c2a=getPhoneMapFile(_0x4a2f30);if(!fs_1[_0xb9aaeb(0x1de)][_0xb9aaeb(0x118)](_0x5a4c2a))return{};try{const _0xdd6c63=JSON[_0xb9aaeb(0x14f)](fs_1['default'][_0xb9aaeb(0x166)](_0x5a4c2a,_0xb9aaeb(0x16f)));if(typeof _0xdd6c63===_0xb9aaeb(0x12d)&&_0xdd6c63!==null)return _0xdd6c63;}catch{}return{};}function savePhoneMap(_0x1c051f,_0x2e58bf){const _0x340384=a11_0x20ed59,_0x40fd9d=getPhoneMapFile(_0x1c051f);try{fs_1[_0x340384(0x1de)]['writeFileSync'](_0x40fd9d,JSON[_0x340384(0x12a)](_0x2e58bf,null,0x2),'utf-8');}catch(_0xe51374){console[_0x340384(0x1ca)](_0x340384(0x1c2),_0xe51374);}}function userIdToPhone(_0x213f99,_0x2818dc){const _0x4093d3=a11_0x20ed59;for(const [_0x3e1f01,_0x29ce19]of Object[_0x4093d3(0x12e)](_0x213f99[_0x4093d3(0x1bb)])){if(_0x29ce19===_0x2818dc)return _0x3e1f01;}return null;}async function resolveUserId(_0x25dd27,_0x78a82){const _0x45b751=a11_0x20ed59;if(!_0x78a82)return null;if(!isMobile(_0x78a82))return _0x78a82;if(_0x25dd27[_0x45b751(0x1bb)][_0x78a82])return _0x25dd27['resolvedPhones'][_0x78a82];const _0x3374de=await(0x0,messaging_1[_0x45b751(0x1d8)])(_0x25dd27,_0x78a82);return _0x3374de&&(_0x25dd27[_0x45b751(0x1bb)][_0x78a82]=_0x3374de,savePhoneMap(_0x25dd27,_0x25dd27[_0x45b751(0x1bb)])),_0x3374de;}async function resolveAllPhonesInConfig(_0x5e357a){const _0x5c2594=a11_0x20ed59;_0x5e357a['resolvedPhones']=loadPhoneMap(_0x5e357a);const _0x201ac5=[],_0x108bb2=async _0x380f23=>{const _0x2ef30=a11_0x2403;if(_0x5e357a['resolvedPhones'][_0x380f23])return;const _0x45a2a5=await(0x0,messaging_1[_0x2ef30(0x1d8)])(_0x5e357a,_0x380f23);_0x45a2a5&&(_0x5e357a[_0x2ef30(0x1bb)][_0x380f23]=_0x45a2a5,_0x201ac5[_0x2ef30(0x194)](_0x380f23));};_0x5e357a[_0x5c2594(0x13e)][_0x5c2594(0x128)]&&(isMobile(_0x5e357a[_0x5c2594(0x13e)][_0x5c2594(0x128)])?(await _0x108bb2(_0x5e357a[_0x5c2594(0x13e)]['owner']),!_0x5e357a[_0x5c2594(0x1bb)][_0x5e357a[_0x5c2594(0x13e)]['owner']]&&console[_0x5c2594(0x142)](_0x5c2594(0x1c9)+_0x5e357a['config'][_0x5c2594(0x128)])):console[_0x5c2594(0x142)](_0x5c2594(0x1a0)+_0x5e357a['config']['owner']));for(const _0x5ee578 of _0x5e357a[_0x5c2594(0x13e)][_0x5c2594(0x125)]){isMobile(_0x5ee578)&&(await _0x108bb2(_0x5ee578),!_0x5e357a[_0x5c2594(0x1bb)][_0x5ee578]&&console[_0x5c2594(0x142)](_0x5c2594(0x1b0)+_0x5ee578));}for(const _0x1822c6 of _0x5e357a['config'][_0x5c2594(0x15f)]){if(_0x1822c6[_0x5c2594(0x125)])for(const _0x1b3692 of _0x1822c6[_0x5c2594(0x125)]){isMobile(_0x1b3692)&&(await _0x108bb2(_0x1b3692),!_0x5e357a[_0x5c2594(0x1bb)][_0x1b3692]&&console[_0x5c2594(0x142)]('[WARN]\x20无法解析群白名单手机号:\x20'+_0x1b3692));}}_0x201ac5[_0x5c2594(0x17c)]>0x0&&savePhoneMap(_0x5e357a,_0x5e357a[_0x5c2594(0x1bb)]),console[_0x5c2594(0x188)]('[手机解析]\x20已加载\x20'+Object['keys'](_0x5e357a[_0x5c2594(0x1bb)])['length']+_0x5c2594(0x19d)+_0x201ac5[_0x5c2594(0x17c)]+_0x5c2594(0x15b));}function hashConversationId(_0x32d049,_0x845010){const _0x2097f1=a11_0x20ed59,_0x2b7142=getConversationConfig(_0x32d049,_0x845010),_0x394881=_0x2b7142?.[_0x2097f1(0x18d)]||_0x845010;return crypto_1['default'][_0x2097f1(0x17e)](_0x2097f1(0x146))[_0x2097f1(0x1c4)](_0x394881)[_0x2097f1(0x198)]('hex');}function getReplyWebhook(_0x5d0b32){return _0x5d0b32['currentWebhook']||_0x5d0b32['sessionWebhook'];}function getReplyConversationId(_0x5238fe){const _0x481491=a11_0x20ed59;return _0x5238fe[_0x481491(0x1c8)]||_0x5238fe['conversationId'];}function findActiveSession(_0x3c5dab,_0x3cd543){const _0xeed230=a11_0x20ed59,_0x1f9e64=_0x3c5dab['activeSessions'][_0xeed230(0x1a7)](_0x3cd543);if(_0x1f9e64)return{'key':_0x3cd543,'session':_0x1f9e64};const _0x342e4f=getConversationConfig(_0x3c5dab,_0x3cd543);if(_0x342e4f?.[_0xeed230(0x18d)])for(const _0x26537c of _0x3c5dab[_0xeed230(0x139)]){const _0x5d75da=getConversationConfig(_0x3c5dab,_0x26537c[0x0]);if(_0x5d75da?.['linkConversationId']===_0x342e4f['linkConversationId'])return{'key':_0x26537c[0x0],'session':_0x26537c[0x1]};}return undefined;}function getConversationConfig(_0x490126,_0x9ba1b){const _0x588d22=a11_0x20ed59;return _0x490126[_0x588d22(0x13e)]['conversations'][_0x588d22(0x1c6)](_0x16e4fe=>_0x16e4fe[_0x588d22(0x15a)]===_0x9ba1b);}function getConversationDir(_0xf3c055,_0x1be805){const _0x679685=hashConversationId(_0xf3c055,_0x1be805);return getClientDir(_0xf3c055)+'/'+_0x679685;}function getSessionsDir(_0x1c5982,_0x578c30){const _0x191b48=a11_0x20ed59;return getConversationDir(_0x1c5982,_0x578c30)+_0x191b48(0x1e0);}function a11_0x2403(_0x4bfdd4,_0xa7ff22){_0x4bfdd4=_0x4bfdd4-0x118;const _0x5afa69=a11_0x5afa();let _0x240348=_0x5afa69[_0x4bfdd4];return _0x240348;}function getTasksDir(_0x7793b8,_0x19d970){const _0x3ed13a=a11_0x20ed59;return getConversationDir(_0x7793b8,_0x19d970)+_0x3ed13a(0x17f);}function getImagesDir(_0x492a41,_0x416e73){const _0x1f5169=a11_0x20ed59;return getConversationDir(_0x492a41,_0x416e73)+_0x1f5169(0x19c);}function getSessionDir(_0xfb82f6,_0xd161f8){const _0x949730=a11_0x20ed59,_0x3c0970=_0xd161f8[_0x949730(0x151)]||_0xd161f8['startTimeStr'];return getSessionsDir(_0xfb82f6,_0xd161f8['conversationId'])+'/'+_0x3c0970;}function getSessionId(_0x4e2dc5){const _0x1f20dc=a11_0x20ed59;return _0x4e2dc5[_0x1f20dc(0x151)]||_0x4e2dc5[_0x1f20dc(0x14e)];}function formatSessionInfo(_0x1f7070,_0x40e92f){const _0x2a5d97=a11_0x20ed59,_0x559779=findActiveSession(_0x1f7070,_0x40e92f);if(!_0x559779)return null;const {session:_0x39fd42,isProcessing:_0x1dd112,messageQueue:_0x4d952a}=_0x559779[_0x2a5d97(0x1cb)],_0x73540a=[_0x2a5d97(0x164)+getSessionId(_0x39fd42),_0x2a5d97(0x133)+_0x39fd42[_0x2a5d97(0x16a)]+'('+_0x39fd42[_0x2a5d97(0x11f)]+')',_0x2a5d97(0x144)+_0x39fd42['startTimeStr'],_0x2a5d97(0x1cd)+_0x559779['session'][_0x2a5d97(0x1d1)],'-\x20**处理中:**\x20'+_0x1dd112,_0x2a5d97(0x131)+(_0x4d952a?.['length']||0x0)+'\x20条'];return _0x73540a[_0x2a5d97(0x148)]('\x0a');}function readSessionLogTail(_0x3d78e4,_0x2098f7,_0x26e9ea){const _0x4d9a7b=a11_0x20ed59,_0x215691=findActiveSession(_0x3d78e4,_0x2098f7);if(!_0x215691)return null;const _0x35a3db=_0x215691[_0x4d9a7b(0x1cb)],_0x25ccf6=getSessionDir(_0x3d78e4,_0x35a3db[_0x4d9a7b(0x1cb)])+_0x4d9a7b(0x1b5);if(!fs_1[_0x4d9a7b(0x1de)][_0x4d9a7b(0x118)](_0x25ccf6))return null;try{const _0x52a133=fs_1[_0x4d9a7b(0x1de)][_0x4d9a7b(0x166)](_0x25ccf6,_0x4d9a7b(0x16f)),_0x353ef5=_0x52a133['split']('\x0a')['filter'](_0x2e14e0=>_0x2e14e0[_0x4d9a7b(0x17c)]>0x0);return _0x353ef5[_0x4d9a7b(0x1ab)](-_0x26e9ea)[_0x4d9a7b(0x148)]('\x0a');}catch{return null;}}function findHistorySession(_0x1a8a5c,_0x853a09,_0x510b40){const _0xea5101=a11_0x20ed59,_0x3b77bd=getSessionsDir(_0x1a8a5c,_0x853a09),_0x2ff6d9=_0x3b77bd+'/'+_0x510b40+_0xea5101(0x15d);try{return utils_ok_1['fileUtil'][_0xea5101(0x129)](_0x2ff6d9);}catch{}const _0x464716=parseInt(_0x510b40,0xa);if(!isNaN(_0x464716)&&_0x464716>0x0){const _0xcd6881=utils_ok_1[_0xea5101(0x1a3)]['mm'](_0x464716)[_0xea5101(0x14b)](_0xea5101(0x1cf)),_0x39b13d=_0x3b77bd+'/'+_0xcd6881+_0xea5101(0x15d);try{return utils_ok_1[_0xea5101(0x1dc)][_0xea5101(0x129)](_0x39b13d);}catch{}}return null;}function findLatestSession(_0x28cb88,_0x9582c8){const _0x139025=a11_0x20ed59,_0x10f4f3=getSessionsDir(_0x28cb88,_0x9582c8);if(!fs_1[_0x139025(0x1de)][_0x139025(0x118)](_0x10f4f3))return null;const _0x88cc2d=findActiveSession(_0x28cb88,_0x9582c8),_0x1af087=_0x88cc2d?getSessionId(_0x88cc2d[_0x139025(0x1cb)][_0x139025(0x1cb)]):null;let _0x2067a1=null,_0x86a56b=0x0;try{const _0x2d7ab0=fs_1[_0x139025(0x1de)][_0x139025(0x1ea)](_0x10f4f3,{'withFileTypes':!![]});for(const _0x539526 of _0x2d7ab0){if(!_0x539526[_0x139025(0x1dd)]())continue;const _0x837f2c=path_1[_0x139025(0x1de)][_0x139025(0x148)](_0x10f4f3,_0x539526[_0x139025(0x16c)],_0x139025(0x172));if(!fs_1['default'][_0x139025(0x118)](_0x837f2c))continue;try{const _0x5b1123=utils_ok_1[_0x139025(0x1dc)][_0x139025(0x129)](_0x837f2c);if(_0x1af087&&getSessionId(_0x5b1123)===_0x1af087)continue;_0x5b1123[_0x139025(0x152)]>_0x86a56b&&(_0x86a56b=_0x5b1123[_0x139025(0x152)],_0x2067a1=_0x5b1123);}catch{continue;}}}catch{}return _0x2067a1;}function updateSessionFile(_0x451aaa,_0x2c37f6,_0x444352){const _0x5c62c3=a11_0x20ed59;if(_0x444352[_0x5c62c3(0x151)]&&!_0x2c37f6['claudeSessionId']){const _0x59e9c6=getSessionDir(_0x451aaa,_0x2c37f6);_0x2c37f6[_0x5c62c3(0x151)]=_0x444352[_0x5c62c3(0x151)];const _0x32b0c5=getSessionDir(_0x451aaa,_0x2c37f6);_0x59e9c6!==_0x32b0c5&&fs_1['default']['existsSync'](_0x59e9c6)&&(fs_1[_0x5c62c3(0x1de)][_0x5c62c3(0x1cc)](_0x59e9c6,_0x32b0c5),console[_0x5c62c3(0x188)]('['+timestamp()+_0x5c62c3(0x138)+path_1[_0x5c62c3(0x1de)][_0x5c62c3(0x17b)](_0x59e9c6)+_0x5c62c3(0x178)+path_1[_0x5c62c3(0x1de)][_0x5c62c3(0x17b)](_0x32b0c5)));}const _0x1b09bf=getSessionDir(_0x451aaa,_0x2c37f6)+_0x5c62c3(0x15d);try{if(_0x444352[_0x5c62c3(0x132)])_0x2c37f6[_0x5c62c3(0x132)]=_0x444352['sessionWebhook'];if(_0x444352[_0x5c62c3(0x18e)]!==undefined)_0x2c37f6[_0x5c62c3(0x18e)]=_0x444352[_0x5c62c3(0x18e)]||undefined;if(_0x444352[_0x5c62c3(0x1c8)]!==undefined)_0x2c37f6[_0x5c62c3(0x1c8)]=_0x444352['currentConversationId']||undefined;fs_1[_0x5c62c3(0x1de)][_0x5c62c3(0x1e9)](_0x1b09bf,JSON[_0x5c62c3(0x12a)](_0x2c37f6,null,0x2),_0x5c62c3(0x16f));const _0x5d39bb=_0x444352['claudeSessionId']?_0x5c62c3(0x151):_0x444352[_0x5c62c3(0x18e)]!==undefined?_0x5c62c3(0x18e):_0x5c62c3(0x132);console[_0x5c62c3(0x188)]('['+timestamp()+_0x5c62c3(0x1ba)+_0x5d39bb),saveActiveSession(_0x451aaa,_0x2c37f6[_0x5c62c3(0x15a)]);}catch(_0x22f3d5){console['error'](_0x5c62c3(0x1b4),_0x22f3d5);}}function appendSessionLog(_0x397c39,_0x1fe698,_0x249978){const _0x41de23=a11_0x20ed59,_0xd5205e=_0x397c39+_0x41de23(0x1b5),_0x1d8c00=timestamp(),_0x734e0f='['+_0x1d8c00+_0x41de23(0x170)+_0x1fe698[_0x41de23(0x1ae)]()+_0x41de23(0x11c)+_0x249978+'\x0a';try{fs_1[_0x41de23(0x1de)]['appendFileSync'](_0xd5205e,_0x734e0f,_0x41de23(0x16f));}catch{}}function getActiveSessionsFile(_0x3a4017,_0xaa906c){const _0x526ae5=a11_0x20ed59;return getSessionsDir(_0x3a4017,_0xaa906c)+_0x526ae5(0x1e5);}function saveActiveSession(_0x68ff2b,_0x8e1959){const _0x1b2e3d=a11_0x20ed59,_0x18552e=_0x68ff2b[_0x1b2e3d(0x139)][_0x1b2e3d(0x1a7)](_0x8e1959),_0x2c8fed=getActiveSessionsFile(_0x68ff2b,_0x8e1959);try{if(!_0x18552e){if(fs_1[_0x1b2e3d(0x1de)][_0x1b2e3d(0x118)](_0x2c8fed))fs_1[_0x1b2e3d(0x1de)][_0x1b2e3d(0x140)](_0x2c8fed);return;}const _0x278b7d={'session':_0x18552e['session'],'lastSenderStaffId':_0x18552e[_0x1b2e3d(0x1d1)],'conversationConfig':_0x18552e[_0x1b2e3d(0x123)]};fs_1[_0x1b2e3d(0x1de)][_0x1b2e3d(0x1ec)](path_1['default'][_0x1b2e3d(0x134)](_0x2c8fed),{'recursive':!![]}),fs_1[_0x1b2e3d(0x1de)]['writeFileSync'](_0x2c8fed,JSON[_0x1b2e3d(0x12a)](_0x278b7d,null,0x2),'utf-8'),debugLog(_0x68ff2b,_0x1b2e3d(0x191)+_0x8e1959);}catch(_0x5d6107){console[_0x1b2e3d(0x1ca)](_0x1b2e3d(0x135)+_0x8e1959,_0x5d6107);}}function loadActiveSessions(_0x25296e){const _0x4b2a82=a11_0x20ed59;for(const _0x372c71 of _0x25296e[_0x4b2a82(0x13e)]['conversations']){const _0x3eac85=getActiveSessionsFile(_0x25296e,_0x372c71[_0x4b2a82(0x15a)]);if(!fs_1['default'][_0x4b2a82(0x118)](_0x3eac85))continue;try{const _0x2fefe0=utils_ok_1[_0x4b2a82(0x1dc)][_0x4b2a82(0x129)](_0x3eac85);if(!_0x2fefe0?.[_0x4b2a82(0x1cb)]){console[_0x4b2a82(0x188)](_0x4b2a82(0x130)+_0x3eac85);continue;}const _0x39ac9a=getSessionDir(_0x25296e,_0x2fefe0[_0x4b2a82(0x1cb)]);if(!fs_1[_0x4b2a82(0x1de)][_0x4b2a82(0x118)](_0x39ac9a)){console[_0x4b2a82(0x188)](_0x4b2a82(0x177)+_0x3eac85),fs_1[_0x4b2a82(0x1de)][_0x4b2a82(0x140)](_0x3eac85);continue;}_0x25296e[_0x4b2a82(0x139)][_0x4b2a82(0x1ac)](_0x372c71[_0x4b2a82(0x15a)],{'session':_0x2fefe0[_0x4b2a82(0x1cb)],'lastSenderStaffId':_0x2fefe0[_0x4b2a82(0x1d1)]||_0x2fefe0[_0x4b2a82(0x1cb)][_0x4b2a82(0x11f)],'isProcessing':![],'messageQueue':[],'conversationConfig':_0x2fefe0['conversationConfig']}),console[_0x4b2a82(0x188)](_0x4b2a82(0x127)+_0x372c71[_0x4b2a82(0x15a)]+',\x20会话ID='+getSessionId(_0x2fefe0[_0x4b2a82(0x1cb)]));}catch(_0x3a015e){console[_0x4b2a82(0x1ca)]('加载活跃会话失败:\x20'+_0x3eac85,_0x3a015e);}}}async function endSession(_0x54b5b0,_0x4d8e08,_0x36256e){const _0x5c7fb8=a11_0x20ed59,_0x14160d=findActiveSession(_0x54b5b0,_0x4d8e08);if(!_0x14160d){console[_0x5c7fb8(0x188)]('群\x20'+_0x4d8e08+_0x5c7fb8(0x1bd));return;}const {key:_0x584a8b,session:_0x333274}=_0x14160d,{session:_0x1d3bae}=_0x333274,_0x370017=getSessionDir(_0x54b5b0,_0x1d3bae),_0x140831=getSessionId(_0x1d3bae);console['log'](_0x5c7fb8(0x1ce)+_0x4d8e08+_0x5c7fb8(0x1e3)+_0x140831),(0x0,claude_process_1[_0x5c7fb8(0x147)])(_0x333274,_0x5c7fb8(0x121))&&fs_1[_0x5c7fb8(0x1de)]['appendFileSync'](_0x370017+_0x5c7fb8(0x1b5),'['+timestamp()+_0x5c7fb8(0x1be),_0x5c7fb8(0x16f)),await(0x0,messaging_1['sendDingMessage'])(_0x54b5b0,{'conversationId':_0x4d8e08,'sessionWebhook':_0x36256e,'atUserId':_0x1d3bae['startStaffId'],'content':_0x5c7fb8(0x15e)+_0x140831}),_0x54b5b0['activeSessions'][_0x5c7fb8(0x18b)](_0x584a8b),saveActiveSession(_0x54b5b0,_0x584a8b),fs_1[_0x5c7fb8(0x1de)][_0x5c7fb8(0x19e)](_0x370017+'/session.log','['+timestamp()+_0x5c7fb8(0x18c),_0x5c7fb8(0x16f));}async function switchToSession(_0x2c9f9c,_0x4973fe,_0x43d769,_0x529426,_0x5cbbc0,_0x31c5c2){const _0x2ab9e3=a11_0x20ed59,_0x3ed405=findHistorySession(_0x2c9f9c,_0x4973fe,_0x529426);if(!_0x3ed405)return await(0x0,messaging_1[_0x2ab9e3(0x11b)])(_0x2c9f9c,{'conversationId':_0x4973fe,'sessionWebhook':_0x43d769,'atUserId':_0x5cbbc0,'content':_0x2ab9e3(0x174)+_0x529426+_0x2ab9e3(0x1d5)}),![];const _0x2446b0=getSessionDir(_0x2c9f9c,_0x3ed405);if(!fs_1[_0x2ab9e3(0x1de)][_0x2ab9e3(0x118)](_0x2446b0))return await(0x0,messaging_1[_0x2ab9e3(0x11b)])(_0x2c9f9c,{'conversationId':_0x4973fe,'sessionWebhook':_0x43d769,'atUserId':_0x5cbbc0,'content':_0x2ab9e3(0x11d)+_0x529426+_0x2ab9e3(0x1e2)}),![];const _0x229e74=findActiveSession(_0x2c9f9c,_0x4973fe);_0x229e74&&(console[_0x2ab9e3(0x188)](_0x2ab9e3(0x1b6)+getSessionId(_0x229e74[_0x2ab9e3(0x1cb)][_0x2ab9e3(0x1cb)])),(0x0,claude_process_1[_0x2ab9e3(0x147)])(_0x229e74[_0x2ab9e3(0x1cb)],_0x2ab9e3(0x1af)),_0x2c9f9c[_0x2ab9e3(0x139)][_0x2ab9e3(0x18b)](_0x229e74[_0x2ab9e3(0x1c0)]),saveActiveSession(_0x2c9f9c,_0x229e74[_0x2ab9e3(0x1c0)]),fs_1[_0x2ab9e3(0x1de)][_0x2ab9e3(0x19e)](getSessionDir(_0x2c9f9c,_0x229e74['session'][_0x2ab9e3(0x1cb)])+_0x2ab9e3(0x1b5),'['+timestamp()+_0x2ab9e3(0x137)+_0x529426+_0x2ab9e3(0x143),_0x2ab9e3(0x16f)));_0x2c9f9c[_0x2ab9e3(0x139)][_0x2ab9e3(0x1ac)](_0x4973fe,{'session':_0x3ed405,'lastSenderStaffId':_0x5cbbc0,'isProcessing':![],'messageQueue':[],'conversationConfig':_0x31c5c2}),saveActiveSession(_0x2c9f9c,_0x4973fe);const _0x5731bd=!!_0x3ed405[_0x2ab9e3(0x151)],_0x434c65=getSessionId(_0x3ed405);return await(0x0,messaging_1[_0x2ab9e3(0x11b)])(_0x2c9f9c,{'conversationId':_0x4973fe,'sessionWebhook':_0x43d769,'atUserId':_0x5cbbc0,'content':'✅\x20已切换到历史会话\x20(会话ID:\x20'+_0x434c65+')\x0a'+(_0x5731bd?_0x2ab9e3(0x181):_0x2ab9e3(0x153))+_0x2ab9e3(0x171)}),console[_0x2ab9e3(0x188)](_0x2ab9e3(0x1a8)+_0x4973fe+_0x2ab9e3(0x1e3)+_0x434c65+',\x20有Claude上下文='+_0x5731bd),!![];}async function startNewSession(_0x1f4b0d,_0x2afdd5){const _0x56aa85=a11_0x20ed59,{conversationId:_0x45f3f4,sessionWebhook:_0x2527b4,senderStaffId:_0x3639ef,senderNick:_0x34dc3f,message:_0x2a5a17,conversationConfig:_0x3659cc}=_0x2afdd5,_0x1811ac=_0x1f4b0d[_0x56aa85(0x13e)][_0x56aa85(0x199)]??_0x1f4b0d['DEFAULT_SESSION_MAX_CONCURRENCY'];if(_0x1f4b0d[_0x56aa85(0x139)]['size']>=_0x1811ac){console['log'](_0x56aa85(0x165)+_0x1811ac+_0x56aa85(0x1ad)+_0x45f3f4),await(0x0,messaging_1['sendDingMessage'])(_0x1f4b0d,{'conversationId':_0x45f3f4,'sessionWebhook':_0x2527b4,'atUserId':_0x3639ef,'content':_0x56aa85(0x185)});return;}const _0x4b9f86=Date[_0x56aa85(0x16b)](),_0x5f233b={'conversationId':_0x45f3f4,'sessionWebhook':_0x2527b4,'startTime':_0x4b9f86,'startTimeStr':utils_ok_1['dateUtil']['mm'](_0x4b9f86)[_0x56aa85(0x14b)](_0x56aa85(0x1cf)),'startStaffId':_0x3639ef,'startNickName':_0x34dc3f};console[_0x56aa85(0x188)](_0x56aa85(0x1d9)+_0x45f3f4+',\x20会话ID='+getSessionId(_0x5f233b)+',\x20发起者='+_0x3639ef+_0x56aa85(0x1b9)+(_0x1f4b0d[_0x56aa85(0x139)][_0x56aa85(0x124)]+0x1)+'/'+_0x1811ac);const _0x1591c8=getSessionDir(_0x1f4b0d,_0x5f233b);fs_1[_0x56aa85(0x1de)][_0x56aa85(0x1ec)](_0x1591c8,{'recursive':!![]}),fs_1['default']['writeFileSync'](_0x1591c8+_0x56aa85(0x15d),JSON[_0x56aa85(0x12a)](_0x5f233b,null,0x2),'utf-8'),_0x1f4b0d[_0x56aa85(0x139)][_0x56aa85(0x1ac)](_0x45f3f4,{'session':_0x5f233b,'lastSenderStaffId':_0x3639ef,'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x3659cc}),saveActiveSession(_0x1f4b0d,_0x45f3f4);_0x3659cc['receiveReply']!==![]&&await(0x0,messaging_1[_0x56aa85(0x11b)])(_0x1f4b0d,{'conversationId':_0x45f3f4,'sessionWebhook':_0x2527b4,'atUserId':_0x3639ef,'content':'🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话'});try{await(0x0,claude_process_1['executeClaudeQuery'])(_0x1f4b0d,_0x5f233b,_0x2a5a17,{'skill':_0x3659cc['taskCfg']?.[_0x56aa85(0x1a4)],'agent':_0x3659cc[_0x56aa85(0x159)],'senderNick':_0x34dc3f,'senderStaffId':_0x3639ef});}catch(_0x2cd8f9){console[_0x56aa85(0x1ca)](_0x56aa85(0x184),_0x2cd8f9),await(0x0,messaging_1[_0x56aa85(0x11b)])(_0x1f4b0d,{'conversationId':_0x45f3f4,'sessionWebhook':_0x2527b4,'atUserId':_0x3639ef,'content':'❌\x20处理消息时发生错误:\x20'+(_0x2cd8f9 instanceof Error?_0x2cd8f9[_0x56aa85(0x180)]:String(_0x2cd8f9))});}finally{const _0x11cab5=_0x1f4b0d[_0x56aa85(0x139)][_0x56aa85(0x1a7)](_0x45f3f4);_0x11cab5&&(_0x11cab5['isProcessing']=![]);}await processMessageQueue(_0x1f4b0d,_0x45f3f4);}async function processMessageQueue(_0x49ea69,_0x339f3e){const _0x2305b4=a11_0x20ed59,_0x5a1b5c=_0x49ea69[_0x2305b4(0x139)]['get'](_0x339f3e);if(!_0x5a1b5c||_0x5a1b5c[_0x2305b4(0x183)][_0x2305b4(0x17c)]===0x0)return;const _0x5a9d82=_0x5a1b5c['messageQueue'][_0x2305b4(0x175)](),{message:_0x3954a0,senderStaffId:_0x35e547,senderNick:_0x2db144}=_0x5a9d82,_0x3e8c0e=_0x5a1b5c['session'][_0x2305b4(0x132)];console[_0x2305b4(0x188)]('处理队列消息:\x20群='+_0x339f3e+',\x20剩余\x20'+_0x5a1b5c[_0x2305b4(0x183)][_0x2305b4(0x17c)]+'\x20条'),_0x5a1b5c[_0x2305b4(0x1a6)]=!![],_0x5a1b5c[_0x2305b4(0x1d1)]=_0x35e547,saveActiveSession(_0x49ea69,_0x339f3e);_0x5a1b5c[_0x2305b4(0x123)][_0x2305b4(0x1b3)]!==![]&&await(0x0,messaging_1[_0x2305b4(0x11b)])(_0x49ea69,{'conversationId':_0x339f3e,'sessionWebhook':_0x3e8c0e,'atUserId':_0x35e547,'content':_0x2305b4(0x1c5)})[_0x2305b4(0x1c1)](()=>{});try{await(0x0,claude_process_1[_0x2305b4(0x15c)])(_0x49ea69,_0x5a1b5c[_0x2305b4(0x1cb)],_0x3954a0,{'skill':_0x5a1b5c[_0x2305b4(0x123)][_0x2305b4(0x1d3)]?.[_0x2305b4(0x1a4)],'agent':_0x5a1b5c[_0x2305b4(0x123)]['agent'],'senderNick':_0x2db144,'senderStaffId':_0x35e547});}catch(_0x1cfb96){console['error']('执行队列\x20Claude\x20查询失败:',_0x1cfb96),await(0x0,messaging_1[_0x2305b4(0x11b)])(_0x49ea69,{'conversationId':_0x339f3e,'sessionWebhook':_0x3e8c0e,'atUserId':_0x35e547,'content':_0x2305b4(0x1a9)+(_0x1cfb96 instanceof Error?_0x1cfb96[_0x2305b4(0x180)]:String(_0x1cfb96))});}finally{_0x5a1b5c['isProcessing']=![];}_0x5a1b5c[_0x2305b4(0x183)][_0x2305b4(0x17c)]>0x0&&await processMessageQueue(_0x49ea69,_0x339f3e);}async function handleSessionMessage(_0x364cf2,_0x51fd36){const _0x153395=a11_0x20ed59,{conversationId:_0x561808,sessionWebhook:_0x574b46,senderStaffId:_0x5e882f,senderNick:_0x2d6c0d,message:_0xa8be00,conversationConfig:_0x242f19}=_0x51fd36;if((0x0,commands_1[_0x153395(0x192)])(_0xa8be00)){await endSession(_0x364cf2,_0x561808,_0x574b46);return;}const _0x1118ba=findActiveSession(_0x364cf2,_0x561808),_0x556e66=_0x1118ba?.[_0x153395(0x1cb)];if(_0x556e66){const _0x5f497a=getSessionDir(_0x364cf2,_0x556e66['session']);!fs_1[_0x153395(0x1de)][_0x153395(0x118)](_0x5f497a)&&(fs_1[_0x153395(0x1de)][_0x153395(0x1ec)](_0x5f497a,{'recursive':!![]}),fs_1[_0x153395(0x1de)][_0x153395(0x1e9)](_0x5f497a+_0x153395(0x15d),JSON[_0x153395(0x12a)](_0x556e66[_0x153395(0x1cb)],null,0x2),_0x153395(0x16f)),console[_0x153395(0x188)](_0x153395(0x13d)+_0x561808+_0x153395(0x1aa)+_0x5f497a));if(_0x556e66[_0x153395(0x1a6)]){const _0x4e1496={'message':_0xa8be00,'senderStaffId':_0x5e882f,'senderNick':_0x2d6c0d};_0x556e66[_0x153395(0x183)][_0x153395(0x194)](_0x4e1496);const _0x33a8bf=_0x556e66[_0x153395(0x183)][_0x153395(0x17c)];console[_0x153395(0x188)](_0x153395(0x1bf)+_0x561808+_0x153395(0x1c7)+_0x33a8bf+'\x20条'),await(0x0,messaging_1['sendDingMessage'])(_0x364cf2,{'conversationId':_0x561808,'sessionWebhook':_0x574b46,'atUserId':_0x5e882f,'content':'⏳\x20正在处理中,已加入队列(排队第\x20'+_0x33a8bf+_0x153395(0x155)});return;}const _0x2d6036=_0x556e66[_0x153395(0x1cb)][_0x153395(0x15a)]===_0x561808;console[_0x153395(0x188)](_0x153395(0x1d4)+_0x561808+',\x20会话ID='+getSessionId(_0x556e66['session'])+(_0x2d6036?'':_0x153395(0x1da)+_0x556e66[_0x153395(0x1cb)][_0x153395(0x15a)]+')')),_0x556e66[_0x153395(0x1d1)]=_0x5e882f,_0x556e66[_0x153395(0x1a6)]=!![],saveActiveSession(_0x364cf2,_0x1118ba[_0x153395(0x1c0)]);_0x2d6036&&_0x574b46!==_0x556e66[_0x153395(0x1cb)]['sessionWebhook']&&(_0x556e66['session'][_0x153395(0x132)]=_0x574b46,updateSessionFile(_0x364cf2,_0x556e66[_0x153395(0x1cb)],{'sessionWebhook':_0x574b46}));_0x556e66[_0x153395(0x1cb)][_0x153395(0x18e)]=_0x574b46,_0x556e66[_0x153395(0x1cb)][_0x153395(0x1c8)]=_0x561808,updateSessionFile(_0x364cf2,_0x556e66[_0x153395(0x1cb)],{'currentWebhook':_0x574b46,'currentConversationId':_0x561808});_0x242f19[_0x153395(0x1b3)]!==![]&&await(0x0,messaging_1[_0x153395(0x11b)])(_0x364cf2,{'conversationId':_0x561808,'sessionWebhook':_0x574b46,'atUserId':_0x5e882f,'content':_0x153395(0x1c5)});try{await(0x0,claude_process_1[_0x153395(0x15c)])(_0x364cf2,_0x556e66[_0x153395(0x1cb)],_0xa8be00,{'skill':_0x242f19['taskCfg']?.[_0x153395(0x1a4)],'agent':_0x242f19[_0x153395(0x159)],'senderNick':_0x2d6c0d,'senderStaffId':_0x5e882f});}catch(_0x57b4d1){if(_0x556e66[_0x153395(0x1cb)][_0x153395(0x151)]){console[_0x153395(0x188)]('[会话恢复失败]\x20清除\x20claudeSessionId\x20并重新发起:\x20'+_0x556e66[_0x153395(0x1cb)][_0x153395(0x151)]),_0x556e66['session'][_0x153395(0x151)]=undefined,_0x364cf2[_0x153395(0x16e)](_0x556e66[_0x153395(0x1cb)],{});try{await(0x0,claude_process_1[_0x153395(0x15c)])(_0x364cf2,_0x556e66[_0x153395(0x1cb)],_0xa8be00,{'skill':_0x242f19[_0x153395(0x1d3)]?.[_0x153395(0x1a4)],'agent':_0x242f19['agent'],'senderNick':_0x2d6c0d,'senderStaffId':_0x5e882f});return;}catch(_0x4718e8){console[_0x153395(0x1ca)]('重试执行\x20Claude\x20查询失败:',_0x4718e8),await(0x0,messaging_1[_0x153395(0x11b)])(_0x364cf2,{'conversationId':_0x561808,'sessionWebhook':_0x574b46,'atUserId':_0x5e882f,'content':'❌\x20处理消息时发生错误:\x20'+(_0x4718e8 instanceof Error?_0x4718e8[_0x153395(0x180)]:String(_0x4718e8))}),_0x556e66[_0x153395(0x1a6)]=![],await processMessageQueue(_0x364cf2,_0x561808);return;}}console[_0x153395(0x1ca)]('执行\x20Claude\x20查询失败:',_0x57b4d1),await(0x0,messaging_1[_0x153395(0x11b)])(_0x364cf2,{'conversationId':_0x561808,'sessionWebhook':_0x574b46,'atUserId':_0x5e882f,'content':'❌\x20处理消息时发生错误:\x20'+(_0x57b4d1 instanceof Error?_0x57b4d1[_0x153395(0x180)]:String(_0x57b4d1))});}finally{_0x556e66['isProcessing']=![];}await processMessageQueue(_0x364cf2,_0x561808);}else await startNewSession(_0x364cf2,{'conversationId':_0x561808,'sessionWebhook':_0x574b46,'senderStaffId':_0x5e882f,'senderNick':_0x2d6c0d,'message':_0xa8be00,'conversationConfig':_0x242f19});}function cleanCache(_0x37963f,_0x25f650,_0x576d05=!![]){const _0x32e963=a11_0x20ed59,_0x3abf34={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x5ead16=_0x25f650?[_0x25f650]:_0x37963f['config'][_0x32e963(0x15f)][_0x32e963(0x1bc)](_0xd8320b=>_0xd8320b[_0x32e963(0x15a)]);for(const _0x1d2fb0 of _0x5ead16){let _0xb5eb6c=null;if(_0x576d05){const _0x2d2c25=findActiveSession(_0x37963f,_0x1d2fb0);_0x2d2c25&&(_0xb5eb6c=getSessionId(_0x2d2c25[_0x32e963(0x1cb)][_0x32e963(0x1cb)]));}const _0x1444ce=getSessionsDir(_0x37963f,_0x1d2fb0);if(fs_1[_0x32e963(0x1de)][_0x32e963(0x118)](_0x1444ce))try{const _0x315a4a=fs_1[_0x32e963(0x1de)][_0x32e963(0x1ea)](_0x1444ce,{'withFileTypes':!![]});for(const _0xa66d9b of _0x315a4a){if(!_0xa66d9b[_0x32e963(0x1dd)]())continue;if(_0xb5eb6c&&_0xa66d9b['name']===_0xb5eb6c)continue;const _0x21a56b=path_1[_0x32e963(0x1de)]['join'](_0x1444ce,_0xa66d9b[_0x32e963(0x16c)]);try{fs_1[_0x32e963(0x1de)][_0x32e963(0x169)](_0x21a56b,{'recursive':!![],'force':!![]}),_0x3abf34[_0x32e963(0x17d)]++;}catch(_0x55c4a2){_0x3abf34[_0x32e963(0x161)][_0x32e963(0x194)]('删除会话目录失败:\x20'+_0x21a56b);}}}catch(_0x3338f4){_0x3abf34[_0x32e963(0x161)]['push'](_0x32e963(0x1df)+_0x1444ce);}const _0x1fca47=getTasksDir(_0x37963f,_0x1d2fb0);if(fs_1[_0x32e963(0x1de)][_0x32e963(0x118)](_0x1fca47))try{const _0x66b224=fs_1['default'][_0x32e963(0x1ea)](_0x1fca47,{'withFileTypes':!![]});for(const _0x266dd3 of _0x66b224){if(!_0x266dd3[_0x32e963(0x1dd)]())continue;const _0x6b0eab=path_1[_0x32e963(0x1de)][_0x32e963(0x148)](_0x1fca47,_0x266dd3[_0x32e963(0x16c)]);try{fs_1[_0x32e963(0x1de)][_0x32e963(0x169)](_0x6b0eab,{'recursive':!![],'force':!![]}),_0x3abf34[_0x32e963(0x179)]++;}catch(_0x406ff5){_0x3abf34[_0x32e963(0x161)][_0x32e963(0x194)](_0x32e963(0x1a2)+_0x6b0eab);}}}catch(_0xe466f5){_0x3abf34[_0x32e963(0x161)][_0x32e963(0x194)](_0x32e963(0x163)+_0x1fca47);}const _0x57b4c0=getImagesDir(_0x37963f,_0x1d2fb0);if(fs_1[_0x32e963(0x1de)]['existsSync'](_0x57b4c0))try{const _0x11c118=fs_1[_0x32e963(0x1de)]['readdirSync'](_0x57b4c0,{'withFileTypes':!![]});for(const _0x41bae8 of _0x11c118){const _0x5dfafd=path_1[_0x32e963(0x1de)][_0x32e963(0x148)](_0x57b4c0,_0x41bae8[_0x32e963(0x16c)]);try{fs_1['default'][_0x32e963(0x140)](_0x5dfafd),_0x3abf34[_0x32e963(0x173)]++;}catch(_0x47e54b){_0x3abf34[_0x32e963(0x161)]['push'](_0x32e963(0x1b1)+_0x5dfafd);}}}catch(_0x1f891e){_0x3abf34[_0x32e963(0x161)][_0x32e963(0x194)]('读取images目录失败:\x20'+_0x57b4c0);}if(!_0x576d05){const _0x157366=getActiveSessionsFile(_0x37963f,_0x1d2fb0);if(fs_1[_0x32e963(0x1de)][_0x32e963(0x118)](_0x157366))try{fs_1['default'][_0x32e963(0x140)](_0x157366);}catch(_0x5ef95a){_0x3abf34['errors'][_0x32e963(0x194)](_0x32e963(0x1eb)+_0x157366);}_0x37963f[_0x32e963(0x139)][_0x32e963(0x1ed)](_0x1d2fb0)&&_0x37963f['activeSessions']['delete'](_0x1d2fb0);}}return _0x3abf34;}
|
package/dist/src/biz/task.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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);});}
|
|
1
|
+
'use strict';function a12_0x201e(){const _0x3ac912=['formatTaskInfo','task-failed.json','./session','bypassPermissions','isRetryableApiError',']\x20任务预处理结果已更新:\x20','catch',']\x20检测到\x20FORCE_ENABLE,强制使用\x20settings-ding.json','child_process','-done.json',',\x20需求:\x20','senderNickName',']\x20超时(',']\x20已取消任务:\x20#','parse','baseUtil','--print','ensureSettingsWithApiKey','resolveClaudeSettingsPath','执行失败(退出码:\x20','filter','data','getFileStr','stderr','replace','❌\x20任务失败:\x20','getConversationConfig','push','then','进程执行错误:','task','/task.json',']\x20切换到\x20API\x20Key\x20模式','\x20(已重试','debugLog','../common','rotateApiKey','102miNoLs','sort','splice','spawn','),\x20','settings.json','**✅\x20最近完成**\x0a无','stdout','basename','5360660DuAPgV','getOneTodoTask',']\x20无可用配额,任务重置为待办','./messaging',']\x20检测到\x20TPM\x20限流(快速失败),','length','pipe','type','promptSimply','default','🔄\x20开始处理任务:\x20','1736wKuXJR','writeFileSync','\x0a...共取消\x20','task-done.json','**✅\x20最近完成\x20(top\x20','14791jSPiOL','path','未发现待办任务...',']\x20自动检测到\x20settings.json:\x20','\x20用户:\x20','ignore','sendDingMessage','getConversationDir','--permission-mode',']\x20任务预处理失败(退出码:','/task-doing.json',']\x20任务预处理进程错误:','existsSync',']\x20退出码:\x20','elapsed','finishTask','apiKey','kill','task-doing.json','senderStaffId','output','1281136NGtEie',']\x20更新任务预处理结果失败:','**⏳\x20处理中**\x0a无','slice','--settings','/result.md','1NdNOFq','\x20次,切换到新\x20Key:\x20','join','fileUtil','__esModule','format','任务执行超时(10分钟),终止进程','markdown','runTaskHandlerLoop',']\x20任务处理中:\x20','toString','执行超时',']\x20执行命令:\x20','/task.log','countTodoTask','now','dirWalker','执行命令:\x20claude\x20','conversationId','agent','-doing.json','cancelTask','直接返回JSON,不要markdown代码块或其他内容。',']\x20任务预处理返回格式不正确,使用原始prompt','pickValidApiKey','YYYY-MM-DD-HH-mm-ss','抱歉,任务处理异常...','isAuthenticationError',']\x20更新任务重试计数失败:','),使用原始prompt',']\x20任务预处理完成:\x20title=\x22','includes','未找到匹配的待办任务:\x20','SIGTERM','10107RRnLlA','prompt',']\x20任务预处理异常:','sleep','apiKeyCfg','unlinkSync','taskCfg','startTime',']\x20TPM\x20限流快速失败连续','rename','任务已保存:\x20','getForceEnabledSettingsPath','294624GFruZy',']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20','次,重置任务为待办','-doing','handleTask','claude','./claude-process','s\x20后重试','289375QMffKU','log','**📋\x20待办队列**\x0a无',']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,','retryCount','timestamp','map','无可用配额(429)','stringify','unknown','命令执行失败,\x20退出码:\x20','未生成结果文件','utf-8','skill','close','settingLabel','match',']\x20任务执行超时,重置为待办','__importDefault','\x0a原因:\x20','格式:\x20{\x22title\x22:\x22简短标题(15字以内)\x22,\x22promptSimply\x22:\x22优化后的需求描述,保留原始需求的所有关键信息,使描述更清晰、结构化\x22}','getJSON','认证失败(401),API\x20Key\x20无效或服务未授权','读取任务文件失败:\x20','getTasksDir','),标记为失败:\x20','config','trim','task.json','**📋\x20待办队列\x20(','-failed.json','timedOut','s\x20后重试\x20(','463846BWyGgB','title','sessionWebhook','write',']\x20任务处理完成','exitCode',')**\x0a','--agent','请对以下任务需求进行预处理,生成简短标题和优化后的需求描述。','conversations','TPM限流快速失败次数过多','**⏳\x20处理中\x20(','...','error'];a12_0x201e=function(){return _0x3ac912;};return a12_0x201e();}const a12_0x19a7e8=a12_0xcd42;(function(_0x3f7e1c,_0x23ad2e){const _0x1a9393=a12_0xcd42,_0x41f360=_0x3f7e1c();while(!![]){try{const _0x4dbf4a=parseInt(_0x1a9393(0x1a3))/0x1*(parseInt(_0x1a9393(0x1fa))/0x2)+-parseInt(_0x1a9393(0x1d1))/0x3+-parseInt(_0x1a9393(0x19d))/0x4+parseInt(_0x1a9393(0x1d9))/0x5+-parseInt(_0x1a9393(0x16f))/0x6*(-parseInt(_0x1a9393(0x188))/0x7)+-parseInt(_0x1a9393(0x183))/0x8*(parseInt(_0x1a9393(0x1c5))/0x9)+parseInt(_0x1a9393(0x178))/0xa;if(_0x4dbf4a===_0x23ad2e)break;else _0x41f360['push'](_0x41f360['shift']());}catch(_0x4bf931){_0x41f360['push'](_0x41f360['shift']());}}}(a12_0x201e,0x30bb2));function a12_0xcd42(_0x1cd13f,_0x2bc1ca){_0x1cd13f=_0x1cd13f-0x150;const _0x201e7b=a12_0x201e();let _0xcd42e=_0x201e7b[_0x1cd13f];return _0xcd42e;}var __importDefault=this&&this[a12_0x19a7e8(0x1eb)]||function(_0x1156f2){return _0x1156f2&&_0x1156f2['__esModule']?_0x1156f2:{'default':_0x1156f2};};Object['defineProperty'](exports,a12_0x19a7e8(0x1a7),{'value':!![]}),exports[a12_0x19a7e8(0x208)]=formatTaskInfo,exports[a12_0x19a7e8(0x1b1)]=countTodoTask,exports[a12_0x19a7e8(0x179)]=getOneTodoTask,exports[a12_0x19a7e8(0x197)]=finishTask,exports[a12_0x19a7e8(0x1b8)]=cancelTask,exports['parseTaskCancelCommand']=parseTaskCancelCommand,exports[a12_0x19a7e8(0x1d5)]=handleTask,exports[a12_0x19a7e8(0x1ab)]=runTaskHandlerLoop,exports['saveTask']=saveTask;const utils_ok_1=require('utils-ok'),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a12_0x19a7e8(0x189))),child_process_1=require(a12_0x19a7e8(0x152)),common_1=require(a12_0x19a7e8(0x16d)),messaging_1=require(a12_0x19a7e8(0x17b)),claude_process_1=require(a12_0x19a7e8(0x1d7)),session_1=require(a12_0x19a7e8(0x20a)),api_key_manager_1=require('./api-key-manager'),MAX_RETRY_COUNT=0x3;function formatTaskInfo(_0x34f1b2){const _0x398de1=a12_0x19a7e8,_0x529f8c=[],_0x5af42a=[],_0x4c4e28=[],_0x35cf5a=[];for(const _0x40fa46 of _0x34f1b2[_0x398de1(0x1f3)][_0x398de1(0x203)]){const _0x471111=(0x0,session_1[_0x398de1(0x1f1)])(_0x34f1b2,_0x40fa46[_0x398de1(0x1b5)]);if(!fs_1[_0x398de1(0x181)][_0x398de1(0x194)](_0x471111))continue;const _0x14ea1e=utils_ok_1[_0x398de1(0x1a6)]['dirWalker'](_0x471111);for(const _0x124bb7 of _0x14ea1e){const _0x30d429=path_1['default'][_0x398de1(0x177)](_0x124bb7);try{const _0x1d45d2=utils_ok_1[_0x398de1(0x1a6)][_0x398de1(0x1ee)](_0x124bb7);if(!_0x1d45d2)continue;if(_0x30d429===_0x398de1(0x1f5))_0x529f8c[_0x398de1(0x165)](_0x1d45d2);else{if(_0x30d429===_0x398de1(0x19a))_0x5af42a[_0x398de1(0x165)](_0x1d45d2);else{if(_0x30d429===_0x398de1(0x186))_0x4c4e28[_0x398de1(0x165)](_0x1d45d2);else _0x30d429===_0x398de1(0x209)&&_0x35cf5a[_0x398de1(0x165)](_0x1d45d2);}}}catch{}}}_0x529f8c[_0x398de1(0x170)]((_0x11e20f,_0x33302c)=>_0x11e20f[_0x398de1(0x1cc)]-_0x33302c[_0x398de1(0x1cc)]),_0x5af42a[_0x398de1(0x170)]((_0x3f7962,_0x19f6ab)=>_0x3f7962[_0x398de1(0x1cc)]-_0x19f6ab['startTime']),_0x4c4e28[_0x398de1(0x170)]((_0x557dd4,_0x590c90)=>_0x590c90[_0x398de1(0x1cc)]-_0x557dd4[_0x398de1(0x1cc)]),_0x35cf5a['sort']((_0x13bf5c,_0x453d93)=>_0x453d93[_0x398de1(0x1cc)]-_0x13bf5c[_0x398de1(0x1cc)]);const _0x2e5acc=[];if(_0x5af42a['length']>0x0){const _0x4ff34a=_0x5af42a[_0x398de1(0x1df)](_0x4ac0c5=>'#'+_0x4ac0c5['startTime']+'\x20'+(_0x4ac0c5[_0x398de1(0x155)]||_0x4ac0c5['senderStaffId'])+':\x20'+taskDisplayName(_0x4ac0c5));_0x2e5acc[_0x398de1(0x165)](_0x398de1(0x205)+_0x5af42a['length']+_0x398de1(0x200)+_0x4ff34a[_0x398de1(0x1a5)]('\x0a'));}else _0x2e5acc['push'](_0x398de1(0x19f));if(_0x529f8c['length']>0x0){const _0x2fc189=_0x529f8c[_0x398de1(0x1df)](_0x7fd398=>'#'+_0x7fd398['startTime']+'\x20'+(_0x7fd398[_0x398de1(0x155)]||_0x7fd398['senderStaffId'])+':\x20'+taskDisplayName(_0x7fd398));_0x2e5acc[_0x398de1(0x165)](_0x398de1(0x1f6)+_0x529f8c['length']+_0x398de1(0x200)+_0x2fc189[_0x398de1(0x1a5)]('\x0a'));}else _0x2e5acc['push'](_0x398de1(0x1db));const _0x4f257d=_0x4c4e28[_0x398de1(0x1a0)](0x0,0x5);if(_0x4f257d[_0x398de1(0x17d)]>0x0){const _0x15e690=_0x4f257d[_0x398de1(0x1df)](_0x3ad271=>'#'+_0x3ad271['startTime']+'\x20'+(_0x3ad271[_0x398de1(0x155)]||_0x3ad271[_0x398de1(0x19b)])+':\x20'+taskDisplayName(_0x3ad271));_0x2e5acc[_0x398de1(0x165)](_0x398de1(0x187)+_0x4f257d[_0x398de1(0x17d)]+'/'+_0x4c4e28[_0x398de1(0x17d)]+_0x398de1(0x200)+_0x15e690[_0x398de1(0x1a5)]('\x0a'));}else _0x2e5acc[_0x398de1(0x165)](_0x398de1(0x175));if(_0x35cf5a[_0x398de1(0x17d)]>0x0){const _0x298803=_0x35cf5a[_0x398de1(0x1df)](_0x56fe79=>'#'+_0x56fe79[_0x398de1(0x1cc)]+'\x20'+(_0x56fe79[_0x398de1(0x155)]||_0x56fe79[_0x398de1(0x19b)])+':\x20'+taskDisplayName(_0x56fe79)+(_0x56fe79['retryCount']?'\x20(重试'+_0x56fe79[_0x398de1(0x1dd)]+'次)':''));_0x2e5acc['push']('**❌\x20失败\x20('+_0x35cf5a['length']+_0x398de1(0x200)+_0x298803['join']('\x0a'));}return _0x2e5acc['join']('\x0a\x0a');}function truncatePrompt(_0x264e94,_0x76a3f3=0x50){const _0x5bf51f=a12_0x19a7e8,_0x2ca3c5=_0x264e94[_0x5bf51f(0x162)](/\n/g,'\x20')[_0x5bf51f(0x1f4)]();return _0x2ca3c5[_0x5bf51f(0x17d)]>_0x76a3f3?_0x2ca3c5['slice'](0x0,_0x76a3f3)+_0x5bf51f(0x206):_0x2ca3c5;}function taskDisplayName(_0x520492){const _0x3feb46=a12_0x19a7e8;if(_0x520492['title'])return _0x520492[_0x3feb46(0x1fb)];return truncatePrompt(_0x520492[_0x3feb46(0x1c6)]);}async function preprocessTask(_0x5670a2,_0x503c00,_0x535689){const _0x1dda6f=a12_0x19a7e8,_0x39ffd1=(0x0,session_1[_0x1dda6f(0x18f)])(_0x5670a2,_0x503c00),_0x32673d='claude',_0x21309c=['--permission-mode',_0x1dda6f(0x20b),_0x1dda6f(0x15a)],_0x48cd3a=(0x0,claude_process_1[_0x1dda6f(0x15c)])(_0x5670a2,_0x39ffd1);_0x48cd3a&&_0x21309c['push'](_0x1dda6f(0x1a1),_0x48cd3a);const _0x227ae1=[_0x1dda6f(0x202),_0x1dda6f(0x1b9),_0x1dda6f(0x1ed),'','原始需求:\x20'+_0x535689]['join']('\x0a');_0x21309c[_0x1dda6f(0x165)](_0x227ae1);const _0xff898=0x7530;return new Promise(_0x3004e9=>{const _0x24312c=_0x1dda6f;let _0xba314c='';const _0xcf69f1=(0x0,child_process_1['spawn'])(_0x32673d,_0x21309c,{'cwd':_0x39ffd1,'stdio':['ignore','pipe',_0x24312c(0x17e)]}),_0xd0896f=setTimeout(()=>{const _0x1e441a=_0x24312c;_0xcf69f1[_0x1e441a(0x199)](_0x1e441a(0x1c4)),setTimeout(()=>{const _0x2afca5=_0x1e441a;try{_0xcf69f1[_0x2afca5(0x199)]('SIGKILL');}catch{}},0xbb8);},_0xff898);_0xcf69f1[_0x24312c(0x176)]['on'](_0x24312c(0x15f),_0x55b09c=>{const _0x2f55cc=_0x24312c;_0xba314c+=_0x55b09c[_0x2f55cc(0x1ad)]();}),_0xcf69f1[_0x24312c(0x161)]['on']('data',()=>{}),_0xcf69f1['on']('close',_0x3a0144=>{const _0x4f16ba=_0x24312c;clearTimeout(_0xd0896f);if(_0x3a0144!==0x0||!_0xba314c[_0x4f16ba(0x1f4)]()){console[_0x4f16ba(0x1da)]('['+(0x0,session_1[_0x4f16ba(0x1de)])()+_0x4f16ba(0x191)+_0x3a0144+_0x4f16ba(0x1c0)),_0x3004e9(null);return;}try{let _0x25dd09=_0xba314c[_0x4f16ba(0x1f4)]();const _0x290ce0=_0x25dd09['match'](/\{[\s\S]*\}/);if(_0x290ce0)_0x25dd09=_0x290ce0[0x0];const _0x4bf96e=JSON[_0x4f16ba(0x158)](_0x25dd09);_0x4bf96e[_0x4f16ba(0x1fb)]&&_0x4bf96e[_0x4f16ba(0x180)]?(console[_0x4f16ba(0x1da)]('['+(0x0,session_1[_0x4f16ba(0x1de)])()+_0x4f16ba(0x1c1)+_0x4bf96e[_0x4f16ba(0x1fb)]+'\x22'),_0x3004e9({'title':String(_0x4bf96e['title']),'promptSimply':String(_0x4bf96e[_0x4f16ba(0x180)])})):(console['log']('['+(0x0,session_1[_0x4f16ba(0x1de)])()+_0x4f16ba(0x1ba)),_0x3004e9(null));}catch(_0x17ef39){console[_0x4f16ba(0x1da)]('['+(0x0,session_1['timestamp'])()+']\x20任务预处理JSON解析失败,使用原始prompt:\x20'+_0x17ef39),_0x3004e9(null);}}),_0xcf69f1['on'](_0x24312c(0x207),_0x5b2da2=>{const _0x3ec705=_0x24312c;clearTimeout(_0xd0896f),console[_0x3ec705(0x207)]('['+(0x0,session_1['timestamp'])()+_0x3ec705(0x193),_0x5b2da2),_0x3004e9(null);});});}function countTodoTask(_0xb0304d){const _0x1439aa=a12_0x19a7e8;let _0xbc02d8=0x0;for(const _0x479188 of _0xb0304d[_0x1439aa(0x1f3)][_0x1439aa(0x203)]){const _0x2a05e2=(0x0,session_1[_0x1439aa(0x1f1)])(_0xb0304d,_0x479188['conversationId']);if(fs_1['default'][_0x1439aa(0x194)](_0x2a05e2)){const _0x506ef1=utils_ok_1[_0x1439aa(0x1a6)][_0x1439aa(0x1b3)](_0x2a05e2),_0x5341a7=_0x506ef1[_0x1439aa(0x15e)](_0xd6ca92=>path_1[_0x1439aa(0x181)][_0x1439aa(0x177)](_0xd6ca92)===_0x1439aa(0x1f5));_0xbc02d8+=_0x5341a7[_0x1439aa(0x17d)];}}return _0xbc02d8;}async function getOneTodoTask(_0x33b00c){const _0x4fe41c=a12_0x19a7e8;for(const _0x523571 of _0x33b00c['config'][_0x4fe41c(0x203)]){const _0x35cb8d=(0x0,session_1['getTasksDir'])(_0x33b00c,_0x523571[_0x4fe41c(0x1b5)]);if(!fs_1['default'][_0x4fe41c(0x194)](_0x35cb8d))continue;const _0x300ab8=utils_ok_1[_0x4fe41c(0x1a6)][_0x4fe41c(0x1b3)](_0x35cb8d),_0x4f98af=_0x300ab8['filter'](_0x3d19d5=>path_1[_0x4fe41c(0x181)][_0x4fe41c(0x177)](_0x3d19d5)==='task.json');if(_0x4f98af['length']===0x0)continue;const _0x3546f7=_0x4f98af['map'](_0x3676e1=>{try{const _0xd66b8f=utils_ok_1['fileUtil']['getJSON'](_0x3676e1);return _0xd66b8f?{'file':_0x3676e1,'task':_0xd66b8f}:null;}catch{return console['error']('任务文件解析失败,跳过:\x20'+_0x3676e1),null;}})[_0x4fe41c(0x15e)](_0x3f1613=>_0x3f1613!==null)[_0x4fe41c(0x170)]((_0x36aa80,_0xf0671e)=>_0x36aa80[_0x4fe41c(0x168)][_0x4fe41c(0x1cc)]-_0xf0671e[_0x4fe41c(0x168)][_0x4fe41c(0x1cc)]);if(_0x3546f7[_0x4fe41c(0x17d)]>0x0){const {file:_0x537c5c,task:_0x2746b9}=_0x3546f7[0x0];return common_1['utils']['addSuffixToFile'](_0x537c5c,_0x4fe41c(0x1d4)),_0x2746b9;}}return undefined;}async function finishTask(_0x1206e6,_0x4f786d){const _0x59c3cd=a12_0x19a7e8,_0x44bdf4=_0x4f786d+'/task-doing.json';let _0x179143;try{_0x179143=utils_ok_1['fileUtil']['getJSON'](_0x44bdf4);}catch(_0x240fb1){console[_0x59c3cd(0x207)](_0x59c3cd(0x1f0)+_0x44bdf4,_0x240fb1);return;}const _0x30a122=_0x4f786d+_0x59c3cd(0x1a2),_0x21c1d5=fs_1[_0x59c3cd(0x181)][_0x59c3cd(0x194)](_0x30a122)?utils_ok_1[_0x59c3cd(0x1a6)][_0x59c3cd(0x160)](_0x30a122):_0x59c3cd(0x1bd);await(0x0,messaging_1[_0x59c3cd(0x18e)])(_0x1206e6,{'conversationId':_0x179143['conversationId'],'sessionWebhook':_0x179143['sessionWebhook'],'atUserId':_0x179143[_0x59c3cd(0x19b)],'content':_0x21c1d5,'msgType':_0x59c3cd(0x1aa)});const _0x2bb7eb=_0x44bdf4[_0x59c3cd(0x162)]('-doing.json',_0x59c3cd(0x153));utils_ok_1[_0x59c3cd(0x1a6)][_0x59c3cd(0x1ce)](_0x44bdf4,_0x2bb7eb);}async function failTask(_0x5683a6,_0x1c0b4d,_0x4c565e){const _0x2bb2e4=a12_0x19a7e8,_0x1bf270=_0x1c0b4d+_0x2bb2e4(0x192);let _0x11fa22;try{_0x11fa22=utils_ok_1[_0x2bb2e4(0x1a6)][_0x2bb2e4(0x1ee)](_0x1bf270);}catch(_0x897a10){console[_0x2bb2e4(0x207)](_0x2bb2e4(0x1f0)+_0x1bf270,_0x897a10);return;}await(0x0,messaging_1['sendDingMessage'])(_0x5683a6,{'conversationId':_0x11fa22['conversationId'],'sessionWebhook':_0x11fa22[_0x2bb2e4(0x1fc)],'atUserId':_0x11fa22[_0x2bb2e4(0x19b)],'content':_0x2bb2e4(0x163)+taskDisplayName(_0x11fa22)+_0x2bb2e4(0x1ec)+_0x4c565e,'msgType':'markdown'});const _0x4f18b1=_0x1bf270[_0x2bb2e4(0x162)](_0x2bb2e4(0x1b7),_0x2bb2e4(0x1f7));utils_ok_1[_0x2bb2e4(0x1a6)]['rename'](_0x1bf270,_0x4f18b1);}async function resetTaskToTodo(_0x2b8bd5,_0x1bd2dc,_0x5400ea){const _0xb5bb19=a12_0x19a7e8,_0xf94e75=_0x1bd2dc+_0xb5bb19(0x192),_0x506539=_0x1bd2dc+_0xb5bb19(0x169);if(!fs_1['default'][_0xb5bb19(0x194)](_0xf94e75))return![];try{const _0x38f6f4=utils_ok_1[_0xb5bb19(0x1a6)][_0xb5bb19(0x1ee)](_0xf94e75),_0x5ee5ae=(_0x38f6f4[_0xb5bb19(0x1dd)]||0x0)+0x1;if(_0x5ee5ae>=MAX_RETRY_COUNT)return console[_0xb5bb19(0x1da)]('['+(0x0,session_1[_0xb5bb19(0x1de)])()+']\x20任务重试次数已达上限('+_0x5ee5ae+'/'+MAX_RETRY_COUNT+_0xb5bb19(0x1f2)+(_0x38f6f4[_0xb5bb19(0x1fb)]||_0x38f6f4[_0xb5bb19(0x1c6)])),_0x38f6f4[_0xb5bb19(0x1dd)]=_0x5ee5ae,fs_1['default'][_0xb5bb19(0x184)](_0xf94e75,JSON[_0xb5bb19(0x1e1)](_0x38f6f4,null,0x2),_0xb5bb19(0x1e5)),await failTask(_0x2b8bd5,_0x1bd2dc,_0x5400ea+_0xb5bb19(0x16b)+_0x5ee5ae+'次)'),![];_0x38f6f4['retryCount']=_0x5ee5ae,fs_1[_0xb5bb19(0x181)][_0xb5bb19(0x184)](_0xf94e75,JSON[_0xb5bb19(0x1e1)](_0x38f6f4,null,0x2),_0xb5bb19(0x1e5)),console[_0xb5bb19(0x1da)]('['+(0x0,session_1[_0xb5bb19(0x1de)])()+']\x20任务重置为待办\x20(重试'+_0x5ee5ae+'/'+MAX_RETRY_COUNT+'):\x20'+(_0x38f6f4[_0xb5bb19(0x1fb)]||_0x38f6f4['prompt']));}catch(_0xdc868a){console[_0xb5bb19(0x207)]('['+(0x0,session_1[_0xb5bb19(0x1de)])()+_0xb5bb19(0x1bf),_0xdc868a);}return fs_1[_0xb5bb19(0x181)][_0xb5bb19(0x194)](_0xf94e75)&&utils_ok_1[_0xb5bb19(0x1a6)][_0xb5bb19(0x1ce)](_0xf94e75,_0x506539),!![];}function cancelTask(_0x267bbd,_0x55788b,_0x15caaf){const _0x765826=a12_0x19a7e8,_0x40621c=[],_0x2bb12b=_0x55788b[_0x765826(0x1f4)](),_0x482212=_0x15caaf?_0x267bbd[_0x765826(0x1f3)][_0x765826(0x203)]['filter'](_0x4e4dad=>_0x4e4dad[_0x765826(0x1b5)]===_0x15caaf):_0x267bbd[_0x765826(0x1f3)][_0x765826(0x203)];for(const _0x6ab51a of _0x482212){const _0x52f1e9=(0x0,session_1['getTasksDir'])(_0x267bbd,_0x6ab51a['conversationId']);if(!fs_1[_0x765826(0x181)][_0x765826(0x194)](_0x52f1e9))continue;const _0x4a3030=utils_ok_1[_0x765826(0x1a6)]['dirWalker'](_0x52f1e9),_0x30fcd4=_0x4a3030[_0x765826(0x15e)](_0x43d40d=>path_1['default']['basename'](_0x43d40d)===_0x765826(0x1f5));for(const _0x428049 of _0x30fcd4){try{const _0x33ef82=utils_ok_1['fileUtil'][_0x765826(0x1ee)](_0x428049);if(!_0x33ef82)continue;if(String(_0x33ef82[_0x765826(0x1cc)])===_0x2bb12b){_0x40621c['push']({'file':_0x428049,'task':_0x33ef82});continue;}if(_0x33ef82[_0x765826(0x1fb)]&&_0x33ef82['title'][_0x765826(0x1c2)](_0x2bb12b)){_0x40621c[_0x765826(0x165)]({'file':_0x428049,'task':_0x33ef82});continue;}}catch{}}}if(_0x40621c['length']===0x0)return _0x765826(0x1c3)+_0x2bb12b;let _0x49a2b3=0x0;for(const {file:_0x414cce,task:_0xf6ffeb}of _0x40621c){try{fs_1['default'][_0x765826(0x1ca)](_0x414cce),_0x49a2b3++,console['log']('['+(0x0,session_1[_0x765826(0x1de)])()+_0x765826(0x157)+_0xf6ffeb[_0x765826(0x1cc)]+'\x20'+(_0xf6ffeb[_0x765826(0x1fb)]||_0xf6ffeb[_0x765826(0x1c6)]));}catch(_0x47e6e2){console[_0x765826(0x207)]('['+(0x0,session_1[_0x765826(0x1de)])()+']\x20取消任务失败:\x20'+_0x414cce,_0x47e6e2);}}const _0x3f9dbb=_0x40621c[_0x765826(0x1a0)](0x0,0x5)[_0x765826(0x1df)](_0x331e05=>'#'+_0x331e05['task'][_0x765826(0x1cc)]+'\x20'+taskDisplayName(_0x331e05[_0x765826(0x168)]))['join']('\x0a'),_0x30897=_0x49a2b3>0x5?_0x765826(0x185)+_0x49a2b3+'\x20个任务':'';return'已取消\x20'+_0x49a2b3+'\x20个待办任务:\x0a'+_0x3f9dbb+_0x30897;}function parseTaskCancelCommand(_0xeccfce){const _0xa9a11e=a12_0x19a7e8,_0x555d8f=_0xeccfce[_0xa9a11e(0x1f4)](),_0x453149=_0x555d8f[_0xa9a11e(0x1e9)](/^\/task\s+cancel\s+(.+)$/i);return _0x453149?_0x453149[0x1][_0xa9a11e(0x1f4)]():null;}function updateCmdArgsSettings(_0x3549a0,_0xdef00a){const _0x40ed4b=a12_0x19a7e8,_0x3f1463=_0x3549a0['indexOf'](_0x40ed4b(0x1a1));_0x3f1463!==-0x1&&_0x3549a0[_0x40ed4b(0x171)](_0x3f1463,0x2),_0xdef00a&&_0x3549a0[_0x40ed4b(0x165)](_0x40ed4b(0x1a1),_0xdef00a);}async function handleTask(_0x2b6bd8){const _0x32e757=a12_0x19a7e8,_0x130ede=await getOneTodoTask(_0x2b6bd8);if(!_0x130ede){(0x0,session_1[_0x32e757(0x16c)])(_0x2b6bd8,_0x32e757(0x18a));return;}const _0x791860=(0x0,session_1[_0x32e757(0x164)])(_0x2b6bd8,_0x130ede[_0x32e757(0x1b5)]),_0x2724da=(0x0,session_1[_0x32e757(0x18f)])(_0x2b6bd8,_0x130ede['conversationId']),_0x1c4897=(0x0,session_1[_0x32e757(0x1f1)])(_0x2b6bd8,_0x130ede['conversationId'])+'/'+_0x130ede['startTimeStr'];if(!fs_1[_0x32e757(0x181)][_0x32e757(0x194)](_0x1c4897)){console['error']('任务目录不存在:\x20'+_0x1c4897);return;}_0x130ede[_0x32e757(0x17f)]!=='cron'&&await(0x0,messaging_1[_0x32e757(0x18e)])(_0x2b6bd8,{'conversationId':_0x130ede[_0x32e757(0x1b5)],'sessionWebhook':_0x130ede['sessionWebhook'],'atUserId':_0x130ede[_0x32e757(0x19b)],'content':_0x32e757(0x182)+taskDisplayName(_0x130ede)});const _0x4d9298=_0x1c4897+_0x32e757(0x1a2),_0x651dbd=_0x1c4897+_0x32e757(0x1b0);console[_0x32e757(0x1da)]('['+(0x0,session_1['timestamp'])()+_0x32e757(0x1ac)+(_0x130ede[_0x32e757(0x1fb)]||_0x130ede['prompt']));const _0x59e8c5=_0x130ede[_0x32e757(0x155)]&&_0x130ede[_0x32e757(0x19b)]?_0x130ede[_0x32e757(0x155)]+'('+_0x130ede['senderStaffId']+_0x32e757(0x173):_0x32e757(0x1e2),_0x8bea9c=_0x2b6bd8[_0x32e757(0x1f3)][_0x32e757(0x1c9)],_0x59cb67=(0x0,api_key_manager_1[_0x32e757(0x1d0)])(_0x2724da);let _0x571b66=![],_0x21880b=null;if(_0x59cb67)console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x151));else{if(_0x8bea9c){_0x21880b=(0x0,api_key_manager_1[_0x32e757(0x1bb)])(_0x2b6bd8);if(!_0x21880b){console[_0x32e757(0x1da)]('['+(0x0,session_1['timestamp'])()+_0x32e757(0x17a)),await resetTaskToTodo(_0x2b6bd8,_0x1c4897,'无可用配额');return;}_0x571b66=!![],console['log']('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x16a));}}const _0x21a7eb=_0x791860?.[_0x32e757(0x1cb)]?.[_0x32e757(0x1e6)],_0x3140e5=_0x791860?.[_0x32e757(0x1b6)],_0x4c948c=_0x130ede[_0x32e757(0x180)]||_0x130ede[_0x32e757(0x1c6)],_0x557ca7=((_0x21a7eb?'/'+_0x21a7eb:'')+_0x32e757(0x18c)+_0x59e8c5+_0x32e757(0x154)+_0x4c948c+';\x20最后将回复内容保存至:\x20'+_0x4d9298)[_0x32e757(0x1f4)](),_0xd81539=[_0x32e757(0x190),_0x32e757(0x20b),_0x32e757(0x15a),_0x557ca7];if(_0x59cb67)_0xd81539['push'](_0x32e757(0x1a1),_0x59cb67);else{if(_0x571b66&&_0x21880b){const _0x3396b4=(0x0,api_key_manager_1[_0x32e757(0x15b)])(_0x2724da,_0x21880b);_0xd81539[_0x32e757(0x165)](_0x32e757(0x1a1),_0x3396b4);}else{if(!_0x8bea9c){const _0x27cb92=path_1[_0x32e757(0x181)][_0x32e757(0x1a5)](_0x2724da,'.claude',_0x32e757(0x174));fs_1[_0x32e757(0x181)][_0x32e757(0x194)](_0x27cb92)&&(_0xd81539[_0x32e757(0x165)](_0x32e757(0x1a1),_0x27cb92),console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x18b)+_0x27cb92));}}}_0x3140e5&&_0xd81539[_0x32e757(0x165)](_0x32e757(0x201),_0x3140e5);(0x0,session_1[_0x32e757(0x16c)])(_0x2b6bd8,_0x32e757(0x1b4)+_0xd81539['join']('\x20'));const _0x337d3d=0xa*0x3c*0x3e8,_0x550566=0x14,_0x4a3ac0=0x2710,_0x22a372=0x2710,_0xa813f4=_0x32e757(0x1d6),_0xdd728=_0x5eaf46=>{const _0x3b3ad5=_0x32e757,_0x14f410=Date[_0x3b3ad5(0x1b2)]();return new Promise(_0x424cb6=>{const _0x2c1051=_0x3b3ad5,_0x1bec90=[];let _0x353f56=![],_0x5a27fb=![];const _0x2dadaa=(0x0,child_process_1[_0x2c1051(0x172)])(_0xa813f4,_0x5eaf46,{'cwd':_0x2724da,'stdio':[_0x2c1051(0x18d),_0x2c1051(0x17e),_0x2c1051(0x17e)]}),_0xe563ab=setTimeout(()=>{const _0x28eb1d=_0x2c1051;!_0x353f56&&(_0x5a27fb=!![],console[_0x28eb1d(0x207)](_0x28eb1d(0x1a9)),_0x2dadaa['kill'](_0x28eb1d(0x1c4)),setTimeout(()=>{const _0x8966ff=_0x28eb1d;if(!_0x353f56)_0x2dadaa[_0x8966ff(0x199)]('SIGKILL');},0x1388));},_0x337d3d);_0x2dadaa[_0x2c1051(0x176)]['on'](_0x2c1051(0x15f),_0xa889bc=>{const _0x22a98b=_0x2c1051,_0x1bd92c=_0xa889bc[_0x22a98b(0x1ad)]();process[_0x22a98b(0x176)][_0x22a98b(0x1fd)](_0x1bd92c),_0x1bec90[_0x22a98b(0x165)](_0x1bd92c);}),_0x2dadaa['stderr']['on'](_0x2c1051(0x15f),_0x5c5f90=>{const _0x7f8959=_0x2c1051,_0x1f80d7=_0x5c5f90[_0x7f8959(0x1ad)]();process[_0x7f8959(0x161)]['write'](_0x1f80d7),_0x1bec90[_0x7f8959(0x165)](_0x1f80d7);}),_0x2dadaa['on'](_0x2c1051(0x1e7),_0x135a32=>{const _0x2dfbf1=_0x2c1051;_0x353f56=!![],clearTimeout(_0xe563ab),_0x424cb6({'exitCode':_0x135a32??0x1,'output':_0x1bec90[_0x2dfbf1(0x1a5)](''),'elapsed':Date[_0x2dfbf1(0x1b2)]()-_0x14f410,'timedOut':_0x5a27fb});}),_0x2dadaa['on'](_0x2c1051(0x207),_0x3db169=>{const _0x206c00=_0x2c1051;console[_0x206c00(0x207)](_0x206c00(0x167),_0x3db169),_0x1bec90['push']('进程执行错误:\x20'+_0x3db169['message']);});});};let _0x539091,_0x3daf43,_0x1bb703=![],_0x3e6c04=0x0;while(!![]){const _0x39dd4d=await _0xdd728(_0xd81539);_0x539091=_0x39dd4d[_0x32e757(0x1ff)],_0x3daf43=_0x39dd4d[_0x32e757(0x19c)],_0x1bb703=_0x39dd4d[_0x32e757(0x1f8)];if(_0x539091!==0x0){if(_0x1bb703){console['log']('['+(0x0,session_1['timestamp'])()+_0x32e757(0x1ea));const _0x1a21d6=['['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1af)+_0xa813f4+'\x20'+_0xd81539[_0x32e757(0x1a5)]('\x20'),'['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x156)+_0x337d3d/0x3e8+'s)',_0x3daf43][_0x32e757(0x1a5)]('\x0a');fs_1[_0x32e757(0x181)][_0x32e757(0x184)](_0x651dbd,_0x1a21d6),await resetTaskToTodo(_0x2b6bd8,_0x1c4897,_0x32e757(0x1ae));return;}if((0x0,api_key_manager_1['isQuotaExhaustedError'])(_0x3daf43)&&_0x8bea9c){if(!_0x571b66){_0x21880b=(0x0,api_key_manager_1['pickValidApiKey'])(_0x2b6bd8);if(_0x21880b){_0x571b66=!![],_0x3e6c04=0x0;const _0x2cdc59=(0x0,api_key_manager_1[_0x32e757(0x15b)])(_0x2724da,_0x21880b);updateCmdArgsSettings(_0xd81539,_0x2cdc59),console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x16a));continue;}}else{if(_0x21880b){const _0x2611c8=(0x0,api_key_manager_1[_0x32e757(0x16e)])(_0x2b6bd8,_0x21880b[_0x32e757(0x198)]);if(_0x2611c8){_0x21880b=_0x2611c8,_0x3e6c04=0x0;const _0x9c42f=(0x0,api_key_manager_1[_0x32e757(0x15b)])(_0x2724da,_0x21880b);updateCmdArgsSettings(_0xd81539,_0x9c42f),console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1d2)+(0x0,api_key_manager_1[_0x32e757(0x1e8)])(_0x2611c8));continue;}}}console['log']('['+(0x0,session_1[_0x32e757(0x1de)])()+']\x20无可用配额,任务重置为待办');const _0x5f4b9f=['['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1af)+_0xa813f4+'\x20'+_0xd81539[_0x32e757(0x1a5)]('\x20'),'['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x195)+_0x539091,_0x3daf43][_0x32e757(0x1a5)]('\x0a');fs_1[_0x32e757(0x181)][_0x32e757(0x184)](_0x651dbd,_0x5f4b9f),await resetTaskToTodo(_0x2b6bd8,_0x1c4897,_0x32e757(0x1e0));return;}if((0x0,api_key_manager_1[_0x32e757(0x1be)])(_0x3daf43)){console['log']('['+(0x0,session_1[_0x32e757(0x1de)])()+']\x20检测到认证错误(401),标记任务失败');const _0x4cdb26=['['+(0x0,session_1[_0x32e757(0x1de)])()+']\x20执行命令:\x20'+_0xa813f4+'\x20'+_0xd81539[_0x32e757(0x1a5)]('\x20'),'['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x195)+_0x539091,_0x3daf43][_0x32e757(0x1a5)]('\x0a');fs_1['default'][_0x32e757(0x184)](_0x651dbd,_0x4cdb26),await failTask(_0x2b6bd8,_0x1c4897,_0x32e757(0x1ef));return;}if((0x0,claude_process_1[_0x32e757(0x20c)])(_0x3daf43)){if(_0x39dd4d['elapsed']<_0x22a372&&_0x571b66&&_0x21880b&&_0x8bea9c){_0x3e6c04++;if(_0x3e6c04>=_0x550566){const _0x13bec1=(0x0,api_key_manager_1[_0x32e757(0x16e)])(_0x2b6bd8,_0x21880b['apiKey']);if(_0x13bec1){_0x21880b=_0x13bec1,_0x3e6c04=0x0;const _0x8ecc52=(0x0,api_key_manager_1[_0x32e757(0x15b)])(_0x2724da,_0x21880b);updateCmdArgsSettings(_0xd81539,_0x8ecc52),console['log']('['+(0x0,session_1['timestamp'])()+']\x20TPM\x20限流连续快速失败\x20'+_0x550566+_0x32e757(0x1a4)+(0x0,api_key_manager_1['settingLabel'])(_0x13bec1)),await utils_ok_1[_0x32e757(0x159)]['sleep'](_0x4a3ac0);continue;}}}else{if(_0x39dd4d[_0x32e757(0x196)]<_0x22a372){_0x3e6c04++;if(_0x3e6c04>=_0x550566){console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1cd)+_0x550566+_0x32e757(0x1d3));const _0x4e5624=['['+(0x0,session_1[_0x32e757(0x1de)])()+']\x20执行命令:\x20'+_0xa813f4+'\x20'+_0xd81539[_0x32e757(0x1a5)]('\x20'),'['+(0x0,session_1['timestamp'])()+_0x32e757(0x195)+_0x539091,_0x3daf43]['join']('\x0a');fs_1[_0x32e757(0x181)][_0x32e757(0x184)](_0x651dbd,_0x4e5624),await resetTaskToTodo(_0x2b6bd8,_0x1c4897,_0x32e757(0x204));return;}console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x17c)+_0x4a3ac0/0x3e8+_0x32e757(0x1f9)+_0x3e6c04+'/'+_0x550566+')');}else _0x3e6c04=0x0,console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1dc)+_0x4a3ac0/0x3e8+_0x32e757(0x1d8));}await utils_ok_1[_0x32e757(0x159)][_0x32e757(0x1c8)](_0x4a3ac0);continue;}}break;}const _0x3f3257=['['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1af)+_0xa813f4+'\x20'+_0xd81539[_0x32e757(0x1a5)]('\x20'),'['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x195)+_0x539091,_0x3daf43][_0x32e757(0x1a5)]('\x0a');fs_1[_0x32e757(0x181)][_0x32e757(0x184)](_0x651dbd,_0x3f3257);if(_0x539091!==0x0){console[_0x32e757(0x207)](_0x32e757(0x1e3)+_0x539091),await failTask(_0x2b6bd8,_0x1c4897,_0x32e757(0x15d)+_0x539091+')');return;}if(fs_1[_0x32e757(0x181)]['existsSync'](_0x4d9298))console[_0x32e757(0x1da)]('['+(0x0,session_1[_0x32e757(0x1de)])()+_0x32e757(0x1fe));else{console[_0x32e757(0x207)]('任务未按预期处理'),await failTask(_0x2b6bd8,_0x1c4897,_0x32e757(0x1e4));return;}await finishTask(_0x2b6bd8,_0x1c4897);}async function runTaskHandlerLoop(_0x59002e){const _0x4ae193=a12_0x19a7e8;while(!![]){await handleTask(_0x59002e)['catch'](_0x4903c2=>console[_0x4ae193(0x207)](_0x4903c2)),await utils_ok_1[_0x4ae193(0x159)][_0x4ae193(0x1c8)](0x2710);}}async function saveTask(_0x510f7c,_0x255924){const _0x4ddb49=a12_0x19a7e8,{conversationId:_0x3151c5,prompt:_0x22b543,senderStaffId:_0x15a18c,senderNickName:_0x5b1401,sessionWebhook:_0x17fb13,type:type='normal'}=_0x255924,_0x111c9a=Date[_0x4ddb49(0x1b2)](),_0xbd029=utils_ok_1['dateUtil']['mm'](_0x111c9a)[_0x4ddb49(0x1a8)](_0x4ddb49(0x1bc)),_0x3580f9=(0x0,session_1[_0x4ddb49(0x1f1)])(_0x510f7c,_0x3151c5)+'/'+_0xbd029,_0x4fc590=_0x3580f9+'/task.json',_0x45a7e2={'conversationId':_0x3151c5,'startTime':_0x111c9a,'startTimeStr':_0xbd029,'prompt':_0x22b543,'senderStaffId':_0x15a18c,'senderNickName':_0x5b1401||'','sessionWebhook':_0x17fb13,'type':type};await utils_ok_1['fileUtil']['saveFileStr'](JSON[_0x4ddb49(0x1e1)](_0x45a7e2,null,0x2),_0x4fc590),(0x0,session_1[_0x4ddb49(0x16c)])(_0x510f7c,_0x4ddb49(0x1cf)+_0x4fc590),preprocessTask(_0x510f7c,_0x3151c5,_0x22b543)[_0x4ddb49(0x166)](_0x329e49=>{const _0x366096=_0x4ddb49;if(!_0x329e49)return;try{const _0x5b86ab=_0x3580f9+_0x366096(0x192),_0xbfb15b=fs_1[_0x366096(0x181)]['existsSync'](_0x5b86ab)?_0x5b86ab:fs_1[_0x366096(0x181)]['existsSync'](_0x4fc590)?_0x4fc590:null;if(!_0xbfb15b){console[_0x366096(0x1da)]('['+(0x0,session_1[_0x366096(0x1de)])()+']\x20预处理完成但任务文件已不存在:\x20'+_0x3580f9);return;}const _0x26e4ab=utils_ok_1[_0x366096(0x1a6)][_0x366096(0x1ee)](_0xbfb15b);_0x26e4ab[_0x366096(0x1fb)]=_0x329e49['title'],_0x26e4ab[_0x366096(0x180)]=_0x329e49[_0x366096(0x180)],fs_1[_0x366096(0x181)]['writeFileSync'](_0xbfb15b,JSON[_0x366096(0x1e1)](_0x26e4ab,null,0x2),_0x366096(0x1e5)),console[_0x366096(0x1da)]('['+(0x0,session_1[_0x366096(0x1de)])()+_0x366096(0x20d)+_0x329e49['title']);}catch(_0x34cf98){console[_0x366096(0x207)]('['+(0x0,session_1[_0x366096(0x1de)])()+_0x366096(0x19e),_0x34cf98);}})[_0x4ddb49(0x150)](_0x4de53e=>{const _0x2916d2=_0x4ddb49;console[_0x2916d2(0x207)]('['+(0x0,session_1[_0x2916d2(0x1de)])()+_0x2916d2(0x1c7),_0x4de53e);});}
|
package/dist/src/biz/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var a13_0x3365b0=a13_0x2575;(function(_0x333f75,_0x4068d6){var _0x1bf37=a13_0x2575,_0x291c90=_0x333f75();while(!![]){try{var _0x234510=-parseInt(_0x1bf37(0x1f1))/0x1*(parseInt(_0x1bf37(0x1ed))/0x2)+parseInt(_0x1bf37(0x1ee))/0x3+parseInt(_0x1bf37(0x1ec))/0x4*(parseInt(_0x1bf37(0x1e9))/0x5)+-parseInt(_0x1bf37(0x1eb))/0x6*(-parseInt(_0x1bf37(0x1ea))/0x7)+-parseInt(_0x1bf37(0x1ef))/0x8+-parseInt(_0x1bf37(0x1e5))/0x9*(parseInt(_0x1bf37(0x1f0))/0xa)+parseInt(_0x1bf37(0x1e7))/0xb;if(_0x234510===_0x4068d6)break;else _0x291c90['push'](_0x291c90['shift']());}catch(_0x40b97e){_0x291c90['push'](_0x291c90['shift']());}}}(a13_0x9478,0x520d1));Object[a13_0x3365b0(0x1e8)](exports,a13_0x3365b0(0x1e6),{'value':!![]});function a13_0x2575(_0x7d1612,_0x2cb6a1){_0x7d1612=_0x7d1612-0x1e5;var _0x9478ff=a13_0x9478();var _0x25759f=_0x9478ff[_0x7d1612];return _0x25759f;}function a13_0x9478(){var _0x4dba55=['42694xaiCwP','1733775iQjNoH','1254344xrvInp','2652310qzvrqw','5uPSLcf','18NsaMSj','__esModule','2258641yEFGBz','defineProperty','5BsFLUO','588TdEOGO','18234JkJSUh','366156oYZwNZ'];a13_0x9478=function(){return _0x4dba55;};return a13_0x9478();}
|
package/dist/src/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const a14_0x2e9f68=a14_0x306f;(function(_0x19ecbd,_0x41166b){const _0xaa40e5=a14_0x306f,_0x425c8d=_0x19ecbd();while(!![]){try{const _0x1459eb=parseInt(_0xaa40e5(0x198))/0x1+-parseInt(_0xaa40e5(0x18e))/0x2*(-parseInt(_0xaa40e5(0x197))/0x3)+-parseInt(_0xaa40e5(0x195))/0x4*(parseInt(_0xaa40e5(0x1a0))/0x5)+-parseInt(_0xaa40e5(0x199))/0x6*(parseInt(_0xaa40e5(0x189))/0x7)+parseInt(_0xaa40e5(0x19d))/0x8*(-parseInt(_0xaa40e5(0x187))/0x9)+-parseInt(_0xaa40e5(0x1a2))/0xa+-parseInt(_0xaa40e5(0x192))/0xb*(-parseInt(_0xaa40e5(0x19c))/0xc);if(_0x1459eb===_0x41166b)break;else _0x425c8d['push'](_0x425c8d['shift']());}catch(_0x24683f){_0x425c8d['push'](_0x425c8d['shift']());}}}(a14_0x2b38,0x4642c));var __importDefault=this&&this[a14_0x2e9f68(0x18a)]||function(_0x4fb83a){const _0x401c09=a14_0x2e9f68;return _0x4fb83a&&_0x4fb83a[_0x401c09(0x19b)]?_0x4fb83a:{'default':_0x4fb83a};};Object[a14_0x2e9f68(0x185)](exports,a14_0x2e9f68(0x19b),{'value':!![]}),exports[a14_0x2e9f68(0x18c)]=exports[a14_0x2e9f68(0x18d)]=exports[a14_0x2e9f68(0x18b)]=void 0x0,exports['loadEnv']=loadEnv;const utils_ok_1=require('utils-ok'),path_1=__importDefault(require(a14_0x2e9f68(0x186))),assert_1=__importDefault(require(a14_0x2e9f68(0x18f))),fs_1=__importDefault(require('fs'));function a14_0x306f(_0x295c36,_0x3aa82f){_0x295c36=_0x295c36-0x184;const _0x2b3881=a14_0x2b38();let _0x306f81=_0x2b3881[_0x295c36];return _0x306f81;}function loadEnv(){const _0x188832=a14_0x2e9f68;fs_1['default'][_0x188832(0x19f)](process.env.HOME+_0x188832(0x194))&&require('dotenv')[_0x188832(0x184)]({'path':process.env.HOME+'/.cc-ding/.env'}),require('dotenv')[_0x188832(0x184)]();}exports[a14_0x2e9f68(0x18b)]=((()=>{let _0x50898c;return()=>{const _0x34b54c=a14_0x306f;return!_0x50898c&&(_0x50898c=new utils_ok_1['ProjUtil'](path_1[_0x34b54c(0x1a3)][_0x34b54c(0x1a1)](__dirname,_0x34b54c(0x190)))),_0x50898c;};})()),exports[a14_0x2e9f68(0x18d)]={'getCookiesByFile'(_0x5ccdcb){const _0x3d5b52=a14_0x2e9f68;(0x0,assert_1[_0x3d5b52(0x1a3)])(fs_1[_0x3d5b52(0x1a3)][_0x3d5b52(0x19f)](_0x5ccdcb),_0x3d5b52(0x19a)+_0x5ccdcb);const _0x2e09c3=utils_ok_1[_0x3d5b52(0x19e)][_0x3d5b52(0x193)](_0x5ccdcb);return _0x2e09c3[_0x3d5b52(0x191)];}},exports[a14_0x2e9f68(0x18c)]={'addSuffixToFile'(_0x22c78f,_0x45c1e5){const _0x241c71=a14_0x2e9f68,_0x37e68b=path_1['default'][_0x241c71(0x188)](_0x22c78f),_0x48ddfd=path_1[_0x241c71(0x1a3)][_0x241c71(0x196)](_0x22c78f),_0x70f819=path_1[_0x241c71(0x1a3)]['basename'](_0x22c78f,_0x48ddfd),_0x4346fd=''+_0x70f819+_0x45c1e5+_0x48ddfd,_0x195691=path_1[_0x241c71(0x1a3)][_0x241c71(0x1a4)](_0x37e68b,_0x4346fd);fs_1[_0x241c71(0x1a3)]['renameSync'](_0x22c78f,_0x195691);}};function a14_0x2b38(){const _0x4c25d9=['config','defineProperty','path','1510119TrPRMl','dirname','7FxddWL','__importDefault','projUtil','utils','helper','160738eONbLQ','assert','../','cookies','11sYKVHb','getJSON','/.cc-ding/.env','89536raBOym','extname','6cZKXAP','64324Cvrjxg','2032890NLSISM','cookie缓存文件不存在:\x20','__esModule','14913408iBRmua','24fnyWkF','fileUtil','existsSync','25BdSjMd','resolve','2259500wOhwTr','default','join'];a14_0x2b38=function(){return _0x4c25d9;};return a14_0x2b38();}
|
package/dist/src/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';const a15_0x34d9d0=a15_0x3ac5;(function(_0x42eb0d,_0x420f55){const _0x1bb485=a15_0x3ac5,_0x2e6a5e=_0x42eb0d();while(!![]){try{const _0x135cdf=-parseInt(_0x1bb485(0xe6))/0x1+parseInt(_0x1bb485(0xe8))/0x2*(-parseInt(_0x1bb485(0xed))/0x3)+-parseInt(_0x1bb485(0xf3))/0x4+-parseInt(_0x1bb485(0xe7))/0x5+-parseInt(_0x1bb485(0xe4))/0x6*(parseInt(_0x1bb485(0xea))/0x7)+-parseInt(_0x1bb485(0xe9))/0x8*(-parseInt(_0x1bb485(0xf4))/0x9)+parseInt(_0x1bb485(0xeb))/0xa;if(_0x135cdf===_0x420f55)break;else _0x2e6a5e['push'](_0x2e6a5e['shift']());}catch(_0x3c0934){_0x2e6a5e['push'](_0x2e6a5e['shift']());}}}(a15_0x3ac1,0xcfcb2));function a15_0x3ac1(){const _0x1a6ec2=['9611928aeJlHQ','6irRuvV','DEV','1276383xiMvQS','1843480RIKWbA','59792QUQWAS','8kLAQWM','66409mIROYi','30035220dMtQuq','platform','135lQQUMW','defineProperty','safeBoolean','__esModule','darwin','DEBUG','882024Qamkgm'];a15_0x3ac1=function(){return _0x1a6ec2;};return a15_0x3ac1();}function a15_0x3ac5(_0x12e3b2,_0x53017){_0x12e3b2=_0x12e3b2-0xe4;const _0x3ac1e6=a15_0x3ac1();let _0x3ac538=_0x3ac1e6[_0x12e3b2];return _0x3ac538;}Object[a15_0x34d9d0(0xee)](exports,a15_0x34d9d0(0xf0),{'value':!![]}),exports['DEV']=exports[a15_0x34d9d0(0xf2)]=void 0x0;const utils_ok_1=require('utils-ok'),platform=require('os')[a15_0x34d9d0(0xec)](),isOSX=platform===a15_0x34d9d0(0xf1);exports[a15_0x34d9d0(0xf2)]=utils_ok_1['strUtil'][a15_0x34d9d0(0xef)](process.env.DEBUG||''),exports[a15_0x34d9d0(0xe5)]=isOSX;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-ding",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "钉钉机器人对接本地Claude工具",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
"ts-node": "^10.9.2",
|
|
32
32
|
"typescript": "^5.9.3"
|
|
33
33
|
},
|
|
34
|
+
"license": "MIT",
|
|
34
35
|
"author": "yhn",
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=24"
|
|
38
|
+
},
|
|
35
39
|
"bin": {
|
|
36
40
|
"cc-ding": "./dist/bin/cc-ding.js"
|
|
37
41
|
},
|