cc-ding 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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_0x20a658=a8_0x4acb;function a8_0xb512(){const _0xb5aae3=['3056ADpAAT','\x20已退出),自动清理','.pid.lock','__esModule','829155VfdPnM','12185UmuTVq','1213460Dyxhzx','log','1427664NOAwtn','6174mreACN','utf-8','default','SIGINT','666nzjjZr','\x20\x20如需强制启动,请先停止已有进程或删除锁文件:\x20','error','11uOewnh','./session','243lEUGcq','acquirePidLock','readFileSync','timestamp','__importDefault','504wRgYLc','unlinkSync','exit','1449288vzcAvH','writeFileSync','\x22\x20已有运行中的进程\x20(PID:\x20',']\x20检测到过期锁文件\x20(PID:\x20'];a8_0xb512=function(){return _0xb5aae3;};return a8_0xb512();}(function(_0x5b0ca9,_0x4b0a6c){const _0x327877=a8_0x4acb,_0x1c8257=_0x5b0ca9();while(!![]){try{const _0x5b4794=-parseInt(_0x327877(0x11a))/0x1*(-parseInt(_0x327877(0x11f))/0x2)+-parseInt(_0x327877(0x10c))/0x3+parseInt(_0x327877(0x104))/0x4+parseInt(_0x327877(0x10d))/0x5*(-parseInt(_0x327877(0x115))/0x6)+parseInt(_0x327877(0x110))/0x7+parseInt(_0x327877(0x108))/0x8*(parseInt(_0x327877(0x111))/0x9)+parseInt(_0x327877(0x10e))/0xa*(-parseInt(_0x327877(0x118))/0xb);if(_0x5b4794===_0x4b0a6c)break;else _0x1c8257['push'](_0x1c8257['shift']());}catch(_0x41858a){_0x1c8257['push'](_0x1c8257['shift']());}}}(a8_0xb512,0x3608c));var __importDefault=this&&this[a8_0x20a658(0x11e)]||function(_0x5d2f8a){const _0x26e6ea=a8_0x20a658;return _0x5d2f8a&&_0x5d2f8a[_0x26e6ea(0x10b)]?_0x5d2f8a:{'default':_0x5d2f8a};};Object['defineProperty'](exports,a8_0x20a658(0x10b),{'value':!![]}),exports[a8_0x20a658(0x11b)]=acquirePidLock;function a8_0x4acb(_0x407681,_0x1bca05){_0x407681=_0x407681-0x104;const _0xb5125b=a8_0xb512();let _0x4acb8c=_0xb5125b[_0x407681];return _0x4acb8c;}const session_1=require(a8_0x20a658(0x119)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path'));function acquirePidLock(_0x336e06,_0x5b874b){const _0x20ea29=a8_0x20a658,_0x5065f7=path_1[_0x20ea29(0x113)]['join'](_0x336e06,_0x20ea29(0x10a));if(fs_1[_0x20ea29(0x113)]['existsSync'](_0x5065f7))try{const _0xb3dbfc=parseInt(fs_1['default'][_0x20ea29(0x11c)](_0x5065f7,_0x20ea29(0x112))['trim'](),0xa);if(!isNaN(_0xb3dbfc))try{process['kill'](_0xb3dbfc,0x0),console[_0x20ea29(0x117)]('[FATAL]\x20clientId\x20\x22'+_0x5b874b+_0x20ea29(0x106)+_0xb3dbfc+')'),console['error'](_0x20ea29(0x116)+_0x5065f7),process[_0x20ea29(0x121)](0x1);}catch{console[_0x20ea29(0x10f)]('['+(0x0,session_1[_0x20ea29(0x11d)])()+_0x20ea29(0x107)+_0xb3dbfc+_0x20ea29(0x109));}}catch{}fs_1[_0x20ea29(0x113)][_0x20ea29(0x105)](_0x5065f7,String(process['pid']),_0x20ea29(0x112));const _0x383516=()=>{const _0x2937dd=_0x20ea29;try{fs_1['default'][_0x2937dd(0x120)](_0x5065f7);}catch{}};process['on'](_0x20ea29(0x121),_0x383516),process['on'](_0x20ea29(0x114),()=>{const _0x5463ce=_0x20ea29;_0x383516(),process[_0x5463ce(0x121)](0x82);}),process['on']('SIGTERM',()=>{const _0x53a2b0=_0x20ea29;_0x383516(),process[_0x53a2b0(0x121)](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';const a9_0x192281=a9_0x3698;(function(_0x135970,_0x2ebc65){const _0x42604f=a9_0x3698,_0x7f376f=_0x135970();while(!![]){try{const _0x1ad12f=-parseInt(_0x42604f(0x1d8))/0x1*(-parseInt(_0x42604f(0x1ad))/0x2)+parseInt(_0x42604f(0x1e3))/0x3*(-parseInt(_0x42604f(0x1ca))/0x4)+parseInt(_0x42604f(0x1f0))/0x5+-parseInt(_0x42604f(0x1ed))/0x6*(-parseInt(_0x42604f(0x1e0))/0x7)+-parseInt(_0x42604f(0x1af))/0x8*(parseInt(_0x42604f(0x1b9))/0x9)+-parseInt(_0x42604f(0x1ea))/0xa+parseInt(_0x42604f(0x1f9))/0xb*(parseInt(_0x42604f(0x1bb))/0xc);if(_0x1ad12f===_0x2ebc65)break;else _0x7f376f['push'](_0x7f376f['shift']());}catch(_0x13e31a){_0x7f376f['push'](_0x7f376f['shift']());}}}(a9_0xd309,0x93902));var __importDefault=this&&this['__importDefault']||function(_0x3519f3){const _0x524b5d=a9_0x3698;return _0x3519f3&&_0x3519f3[_0x524b5d(0x1d5)]?_0x3519f3:{'default':_0x3519f3};};Object[a9_0x192281(0x1ec)](exports,a9_0x192281(0x1d5),{'value':!![]}),exports[a9_0x192281(0x1b2)]=fetchQuotedMessage,exports[a9_0x192281(0x1ae)]=queryDingUser,exports[a9_0x192281(0x1a8)]=queryUserIdByMobile,exports[a9_0x192281(0x1d1)]=filterToolUseContent,exports[a9_0x192281(0x1c3)]=splitMessage,exports['sendDingMessage']=sendDingMessage,exports[a9_0x192281(0x1e4)]=sendClaudeResponseToDing;const utils_ok_1=require(a9_0x192281(0x1d0)),urllib_1=__importDefault(require('urllib')),DING_API_BASE=a9_0x192281(0x1bc),DING_OAPI_BASE=a9_0x192281(0x1b0);async function fetchQuotedMessage(_0x53442f,_0x340496){const _0x2e10e5=a9_0x192281;try{const _0x15ab06=await _0x53442f[_0x2e10e5(0x1c7)][_0x2e10e5(0x202)](),_0x9ddb17=DING_API_BASE+'/v1.0/im/api/messages/'+encodeURIComponent(_0x340496),_0x2a928e=await urllib_1[_0x2e10e5(0x1db)][_0x2e10e5(0x1f4)](_0x9ddb17,{'method':_0x2e10e5(0x1da),'headers':{'x-acs-dingtalk-access-token':_0x15ab06},'dataType':_0x2e10e5(0x1dd),'timeout':0x1388});if(_0x2a928e[_0x2e10e5(0x1f3)]!==0xc8||!_0x2a928e[_0x2e10e5(0x1df)])return _0x53442f[_0x2e10e5(0x1e9)](_0x2e10e5(0x1ab)+_0x2a928e[_0x2e10e5(0x1f3)]+',\x20data='+JSON[_0x2e10e5(0x1eb)](_0x2a928e[_0x2e10e5(0x1df)])),null;const _0x307cb6=_0x2a928e[_0x2e10e5(0x1df)];if(_0x307cb6['text']&&typeof _0x307cb6[_0x2e10e5(0x1be)]==='object'){const _0x2dc492=_0x307cb6[_0x2e10e5(0x1be)]['content'];if(typeof _0x2dc492===_0x2e10e5(0x1ff)&&_0x2dc492)return _0x2dc492['trim']();}if(typeof _0x307cb6['content']===_0x2e10e5(0x1ff)&&_0x307cb6['content'])try{const _0x29ddd3=JSON['parse'](_0x307cb6[_0x2e10e5(0x204)]);if(typeof _0x29ddd3===_0x2e10e5(0x1ff))return _0x29ddd3[_0x2e10e5(0x1bf)]();if(_0x29ddd3['text'])return String(_0x29ddd3['text'])[_0x2e10e5(0x1bf)]();if(_0x29ddd3['content'])return String(_0x29ddd3[_0x2e10e5(0x204)])[_0x2e10e5(0x1bf)]();}catch{return _0x307cb6['content'][_0x2e10e5(0x1bf)]();}if(_0x307cb6[_0x2e10e5(0x1cc)]&&typeof _0x307cb6[_0x2e10e5(0x1cc)]==='object'){const _0x199d0b=_0x307cb6[_0x2e10e5(0x1cc)];if(typeof _0x199d0b[_0x2e10e5(0x204)]===_0x2e10e5(0x1ff)&&_0x199d0b[_0x2e10e5(0x204)])return _0x199d0b[_0x2e10e5(0x204)]['trim']();}return _0x53442f[_0x2e10e5(0x1e9)](_0x2e10e5(0x1e7)+Object[_0x2e10e5(0x200)](_0x307cb6)['join'](',')),null;}catch(_0x10e856){return console[_0x2e10e5(0x1c2)]('fetchQuotedMessage\x20请求失败:',_0x10e856),null;}}async function queryDingUser(_0x5912e3,_0x3ba1ea){const _0x2cac73=a9_0x192281;try{const _0x4f58ae=await _0x5912e3[_0x2cac73(0x1c7)]['getAccessToken'](),_0x2229be=DING_OAPI_BASE+_0x2cac73(0x1e2)+_0x4f58ae,_0x2be740=await urllib_1[_0x2cac73(0x1db)]['request'](_0x2229be,{'method':_0x2cac73(0x1b5),'data':{'userid':_0x3ba1ea},'contentType':_0x2cac73(0x1dd),'dataType':_0x2cac73(0x1dd),'timeout':0x1388});if(_0x2be740['status']!==0xc8||!_0x2be740[_0x2cac73(0x1df)])return _0x5912e3[_0x2cac73(0x1e9)]('queryDingUser\x20API\x20返回非200:\x20status='+_0x2be740[_0x2cac73(0x1f3)]+_0x2cac73(0x1ef)+JSON[_0x2cac73(0x1eb)](_0x2be740['data'])),null;const _0x2cf51b=_0x2be740['data'];if(_0x2cf51b[_0x2cac73(0x1bd)]!==0x0)return console[_0x2cac73(0x1c2)](_0x2cac73(0x1b4)+_0x2cf51b[_0x2cac73(0x1bd)]+_0x2cac73(0x1f5)+_0x2cf51b[_0x2cac73(0x1b6)]),null;return _0x2cf51b[_0x2cac73(0x1cb)]||null;}catch(_0x323e7b){return console['warn'](_0x2cac73(0x1f7),_0x323e7b),null;}}async function queryUserIdByMobile(_0x327e08,_0x2b838f){const _0xb9a0cc=a9_0x192281;try{const _0x382e99=await _0x327e08[_0xb9a0cc(0x1c7)]['getAccessToken'](),_0x21873e=DING_OAPI_BASE+_0xb9a0cc(0x1ba)+_0x382e99,_0x1823e3=await urllib_1['default'][_0xb9a0cc(0x1f4)](_0x21873e,{'method':_0xb9a0cc(0x1b5),'data':{'mobile':_0x2b838f},'contentType':_0xb9a0cc(0x1dd),'dataType':_0xb9a0cc(0x1dd),'timeout':0x1388});if(_0x1823e3[_0xb9a0cc(0x1f3)]!==0xc8||!_0x1823e3[_0xb9a0cc(0x1df)])return _0x327e08[_0xb9a0cc(0x1e9)](_0xb9a0cc(0x1f8)+_0x1823e3[_0xb9a0cc(0x1f3)]+_0xb9a0cc(0x1ef)+JSON['stringify'](_0x1823e3[_0xb9a0cc(0x1df)])),null;const _0x155e88=_0x1823e3['data'];if(_0x155e88['errcode']!==0x0)return console[_0xb9a0cc(0x1c2)](_0xb9a0cc(0x1ce)+_0x155e88[_0xb9a0cc(0x1bd)]+_0xb9a0cc(0x1f5)+_0x155e88[_0xb9a0cc(0x1b6)]),null;const _0x45a0a0=_0x155e88[_0xb9a0cc(0x1cb)];return _0x45a0a0?.[_0xb9a0cc(0x1f1)]||null;}catch(_0x152b52){return console['warn'](_0xb9a0cc(0x1ee),_0x152b52),null;}}const TOOL_TAGS=['Write',a9_0x192281(0x1f6),'Edit',a9_0x192281(0x1fe),a9_0x192281(0x1aa),'Glob',a9_0x192281(0x1cf),a9_0x192281(0x1c8),'WebFetch',a9_0x192281(0x1dc),a9_0x192281(0x1d7),a9_0x192281(0x1d9),a9_0x192281(0x1b1),'ExitPlanMode',a9_0x192281(0x203),a9_0x192281(0x1d6),a9_0x192281(0x1c0),a9_0x192281(0x1c6),a9_0x192281(0x1b7),a9_0x192281(0x1fd),'CronCreate',a9_0x192281(0x1e6),a9_0x192281(0x1a9),a9_0x192281(0x1c4),a9_0x192281(0x1c1)][a9_0x192281(0x1b3)]('|'),TOOL_USE_SELF_CLOSE_RE=new RegExp('<('+TOOL_TAGS+')[^>]*\x5c/>','g'),TOOL_USE_OPEN_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0x192281(0x1c9),'g'),MULTI_NEWLINE_RE=/\n{3,}/g;function filterToolUseContent(_0x52aafa){const _0x323003=a9_0x192281;let _0x5bf2ab=_0x52aafa[_0x323003(0x201)](TOOL_USE_SELF_CLOSE_RE,'');return _0x5bf2ab=_0x5bf2ab[_0x323003(0x201)](TOOL_USE_OPEN_CLOSE_RE,''),_0x5bf2ab=_0x5bf2ab[_0x323003(0x201)](MULTI_NEWLINE_RE,'\x0a\x0a'),_0x5bf2ab[_0x323003(0x1bf)]();}function splitMessage(_0x32bd4c,_0x4aac76){const _0x1ad41a=a9_0x192281,_0x56bda6=[];while(_0x32bd4c[_0x1ad41a(0x1fb)]>_0x4aac76){let _0x5ca7fa=_0x32bd4c[_0x1ad41a(0x1d2)]('\x0a',_0x4aac76);(_0x5ca7fa===-0x1||_0x5ca7fa<_0x4aac76*0.5)&&(_0x5ca7fa=_0x32bd4c[_0x1ad41a(0x1d2)]('。',_0x4aac76)),(_0x5ca7fa===-0x1||_0x5ca7fa<_0x4aac76*0.5)&&(_0x5ca7fa=_0x32bd4c[_0x1ad41a(0x1d2)]('\x20',_0x4aac76)),_0x5ca7fa===-0x1||_0x5ca7fa<_0x4aac76*0.5?_0x5ca7fa=_0x4aac76:_0x5ca7fa+=0x1,_0x56bda6['push'](_0x32bd4c[_0x1ad41a(0x1fa)](0x0,_0x5ca7fa)[_0x1ad41a(0x1bf)]()),_0x32bd4c=_0x32bd4c[_0x1ad41a(0x1fa)](_0x5ca7fa)[_0x1ad41a(0x1bf)]();}return _0x32bd4c['length']>0x0&&_0x56bda6[_0x1ad41a(0x1f2)](_0x32bd4c),_0x56bda6;}function a9_0xd309(){const _0x126894=['warn','splitMessage','LSP','https://oapi.dingtalk.com/robot/send?access_token=','TaskList','dingStreamClient','Skill',')[^>]*>[\x5cs\x5cS]*?<\x5c/\x5c1>','148doMUJj','result','body','conversationId','queryUserIdByMobile\x20接口返回错误:\x20errcode=','Agent','utils-ok','filterToolUseContent','lastIndexOf','config','find','__esModule','TaskGet','TaskOutput','397EMhzut','AskUserQuestion','GET','default','WebSearch','json','通过\x20sessionWebhook\x20发送钉钉消息失败:','data','2086KltCXe','baseUtil','/topapi/v2/user/get?access_token=','40557DEfCet','sendClaudeResponseToDing','通过\x20dingToken\x20发送钉钉消息失败:','CronDelete','fetchQuotedMessage\x20无法从响应中提取文本:\x20keys=','markdown','debugLog','4471100vcJnVM','stringify','defineProperty','22662YsYwgr','queryUserIdByMobile\x20请求失败:',',\x20data=','613730mmbkCf','userid','push','status','request',',\x20errmsg=','Read','queryDingUser\x20请求失败:','queryUserIdByMobile\x20API\x20返回非200:\x20status=','10168565YNUhUQ','substring','length','error','ExitWorktree','Bash','string','keys','replace','getAccessToken','TaskCreate','content','queryUserIdByMobile','CronList','Grep','fetchQuotedMessage\x20API\x20返回非200:\x20status=','conversations','914lSlueL','queryDingUser','6419240JYzkcV','https://oapi.dingtalk.com','EnterPlanMode','fetchQuotedMessage','join','queryDingUser\x20接口返回错误:\x20errcode=','POST','errmsg','EnterWorktree',']**\x0a','9lQMsiT','/topapi/v2/user/getbymobile?access_token=','12bIOFEe','https://api.dingtalk.com','errcode','text','trim','TaskUpdate','NotebookEdit'];a9_0xd309=function(){return _0x126894;};return a9_0xd309();}function a9_0x3698(_0x2a4f0b,_0x147cc7){_0x2a4f0b=_0x2a4f0b-0x1a8;const _0xd30918=a9_0xd309();let _0x3698a1=_0xd30918[_0x2a4f0b];return _0x3698a1;}async function sendDingMessage(_0x14f6d4,_0x154878){const _0x50cdce=a9_0x192281,{conversationId:_0x5d40d1,sessionWebhook:_0x2352ae,atUserId:_0x4fcead,content:_0x42d292,msgType:msgType=_0x50cdce(0x1be)}=_0x154878,_0x580395=_0x14f6d4[_0x50cdce(0x1d3)][_0x50cdce(0x1ac)][_0x50cdce(0x1d4)](_0x22087e=>_0x22087e[_0x50cdce(0x1cd)]===_0x5d40d1);let _0x42af10=_0x4fcead;_0x580395?.['atSender']===![]&&(_0x42af10=undefined);const _0x31fad1=_0x42af10?[_0x42af10]:[],_0x479a39=_0x580395?.['dingToken'];let _0x13c84e=_0x42d292;_0x42af10&&msgType===_0x50cdce(0x1e8)&&(_0x13c84e=_0x42d292+'\x0a@'+_0x42af10);const _0x5c9a5f=msgType==='markdown'?{'msgtype':_0x50cdce(0x1e8),'markdown':{'title':_0x13c84e,'text':_0x13c84e},'at':{'atUserIds':_0x31fad1,'isAtAll':![]}}:{'msgtype':_0x50cdce(0x1be),'text':{'content':_0x42d292},'at':{'atUserIds':_0x31fad1,'isAtAll':![]}};if(_0x479a39){const _0x11f2d3=await _0x14f6d4[_0x50cdce(0x1c7)][_0x50cdce(0x202)](),_0x250ad3=_0x50cdce(0x1c5)+_0x479a39;try{await urllib_1[_0x50cdce(0x1db)][_0x50cdce(0x1f4)](_0x250ad3,{'method':_0x50cdce(0x1b5),'data':_0x5c9a5f,'contentType':_0x50cdce(0x1dd),'headers':{'x-acs-dingtalk-access-token':_0x11f2d3},'dataType':_0x50cdce(0x1dd)});}catch(_0x2887e5){console['error'](_0x50cdce(0x1e5),_0x2887e5);}}else{if(_0x2352ae){const _0x34199b=await _0x14f6d4['dingStreamClient']['getAccessToken']();try{await urllib_1['default'][_0x50cdce(0x1f4)](_0x2352ae,{'method':_0x50cdce(0x1b5),'data':_0x5c9a5f,'contentType':_0x50cdce(0x1dd),'headers':{'x-acs-dingtalk-access-token':_0x34199b},'dataType':'json'});}catch(_0x3a5190){console[_0x50cdce(0x1fc)](_0x50cdce(0x1de),_0x3a5190);}}else{if(_0x14f6d4[_0x50cdce(0x1d3)]['defaultDingToken']){const _0xa9f9cf=await _0x14f6d4[_0x50cdce(0x1c7)]['getAccessToken'](),_0x11d2fc=_0x50cdce(0x1c5)+_0x14f6d4[_0x50cdce(0x1d3)]['defaultDingToken'];try{await urllib_1[_0x50cdce(0x1db)][_0x50cdce(0x1f4)](_0x11d2fc,{'method':'POST','data':_0x5c9a5f,'contentType':_0x50cdce(0x1dd),'headers':{'x-acs-dingtalk-access-token':_0xa9f9cf},'dataType':_0x50cdce(0x1dd)});}catch(_0x418da1){console[_0x50cdce(0x1fc)]('通过\x20defaultDingToken\x20发送钉钉消息失败:',_0x418da1);}}else console[_0x50cdce(0x1fc)]('未能获取机器人信息发送途径');}}}async function sendClaudeResponseToDing(_0x483493,_0x2f3398,_0x15ffe6,_0x32c8db,_0x2e80cc){const _0x3210bb=a9_0x192281,_0x2ebeb7=0x4650,_0x4b9439=filterToolUseContent(_0x2e80cc);if(!_0x4b9439){_0x483493[_0x3210bb(0x1e9)]('过滤后内容为空,跳过发送');return;}if(_0x4b9439[_0x3210bb(0x1fb)]<=_0x2ebeb7)await sendDingMessage(_0x483493,{'conversationId':_0x2f3398,'sessionWebhook':_0x15ffe6,'atUserId':_0x32c8db,'content':_0x4b9439,'msgType':_0x3210bb(0x1e8)});else{const _0x3dd20a=splitMessage(_0x4b9439,_0x2ebeb7);for(let _0x87a3e2=0x0;_0x87a3e2<_0x3dd20a[_0x3210bb(0x1fb)];_0x87a3e2++){const _0xae5182=_0x3dd20a['length']>0x1?'**['+(_0x87a3e2+0x1)+'/'+_0x3dd20a[_0x3210bb(0x1fb)]+_0x3210bb(0x1b8):'';await sendDingMessage(_0x483493,{'conversationId':_0x2f3398,'sessionWebhook':_0x15ffe6,'atUserId':_0x87a3e2===_0x3dd20a[_0x3210bb(0x1fb)]-0x1?_0x32c8db:'','content':_0xae5182+_0x3dd20a[_0x87a3e2],'msgType':_0x3210bb(0x1e8)}),_0x87a3e2<_0x3dd20a['length']-0x1&&await utils_ok_1[_0x3210bb(0x1e1)]['sleep'](0x1f4);}}}
|
package/dist/src/biz/quote.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const a10_0x3a8d08=a10_0x5e06;function a10_0x5e06(_0x391798,_0xf7429a){_0x391798=_0x391798-0x6a;const _0x320340=a10_0x3203();let _0x5e0641=_0x320340[_0x391798];return _0x5e0641;}function a10_0x3203(){const _0x12a27a=['__esModule','repliedMsg','content','\x20──\x0a','132718wEtqeg','6VrthBD','5cPzJoy','6804336HodtEs','defineProperty','4833672AasOFo','5799774NQlHWu','──\x20引用消息','text','\x20(来自:\x20','1388260CQzqnf','quoteText','quoteSenderNick','479919DMxTGb','string','trim','extractQuoteInfo','msgId','8361765FGmxeq'];a10_0x3203=function(){return _0x12a27a;};return a10_0x3203();}(function(_0x1333e6,_0x138f85){const _0x400d12=a10_0x5e06,_0x3d2586=_0x1333e6();while(!![]){try{const _0x570dd5=parseInt(_0x400d12(0x7e))/0x1*(parseInt(_0x400d12(0x7f))/0x2)+parseInt(_0x400d12(0x74))/0x3+-parseInt(_0x400d12(0x71))/0x4*(-parseInt(_0x400d12(0x80))/0x5)+-parseInt(_0x400d12(0x6d))/0x6+parseInt(_0x400d12(0x6a))/0x7+parseInt(_0x400d12(0x6c))/0x8+-parseInt(_0x400d12(0x79))/0x9;if(_0x570dd5===_0x138f85)break;else _0x3d2586['push'](_0x3d2586['shift']());}catch(_0x4ad130){_0x3d2586['push'](_0x3d2586['shift']());}}}(a10_0x3203,0x8f007));Object[a10_0x3a8d08(0x6b)](exports,a10_0x3a8d08(0x7a),{'value':!![]}),exports[a10_0x3a8d08(0x77)]=extractQuoteInfo,exports['formatPromptWithQuote']=formatPromptWithQuote;function extractQuoteInfo(_0x101841){const _0x211bfc=a10_0x3a8d08,_0x1bde51=_0x101841[_0x211bfc(0x6f)];if(!_0x1bde51?.['repliedMsg'])return null;const _0x4c62a9=_0x1bde51[_0x211bfc(0x7b)];let _0x99e3a6='';const _0x49ef45=_0x4c62a9[_0x211bfc(0x78)],_0x6eaeb3=_0x4c62a9['senderNick'];if(_0x4c62a9[_0x211bfc(0x7c)]){if(typeof _0x4c62a9[_0x211bfc(0x7c)][_0x211bfc(0x6f)]===_0x211bfc(0x75))_0x99e3a6=_0x4c62a9[_0x211bfc(0x7c)][_0x211bfc(0x6f)][_0x211bfc(0x76)]();else typeof _0x4c62a9['content']===_0x211bfc(0x75)&&(_0x99e3a6=_0x4c62a9[_0x211bfc(0x7c)][_0x211bfc(0x76)]());}if(!_0x99e3a6&&!_0x49ef45)return null;return{'quoteText':_0x99e3a6,'quoteMessageId':_0x49ef45,'quoteSenderNick':_0x6eaeb3};}function formatPromptWithQuote(_0x95b90a,_0x1f021c){const _0x1ba70d=a10_0x3a8d08;if(!_0x1f021c[_0x1ba70d(0x72)])return _0x95b90a;const _0x163201=_0x1f021c['quoteSenderNick']?_0x1ba70d(0x70)+_0x1f021c[_0x1ba70d(0x73)]+')':'';return _0x1ba70d(0x6e)+_0x163201+_0x1ba70d(0x7d)+_0x1f021c[_0x1ba70d(0x72)]+'\x0a──\x20引用结束\x20──\x0a\x0a'+_0x95b90a;}
|
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_0x4bb000=a11_0x28f2;(function(_0x5f5515,_0x37b79a){const _0x7f4be4=a11_0x28f2,_0x2d58be=_0x5f5515();while(!![]){try{const _0x211f26=parseInt(_0x7f4be4(0x26f))/0x1*(parseInt(_0x7f4be4(0x1ef))/0x2)+parseInt(_0x7f4be4(0x244))/0x3*(-parseInt(_0x7f4be4(0x1ff))/0x4)+-parseInt(_0x7f4be4(0x1db))/0x5*(-parseInt(_0x7f4be4(0x229))/0x6)+-parseInt(_0x7f4be4(0x205))/0x7+-parseInt(_0x7f4be4(0x215))/0x8+parseInt(_0x7f4be4(0x21d))/0x9*(-parseInt(_0x7f4be4(0x201))/0xa)+parseInt(_0x7f4be4(0x1ae))/0xb*(parseInt(_0x7f4be4(0x1b5))/0xc);if(_0x211f26===_0x37b79a)break;else _0x2d58be['push'](_0x2d58be['shift']());}catch(_0x4bb0e7){_0x2d58be['push'](_0x2d58be['shift']());}}}(a11_0x1418,0x8e66a));var __importDefault=this&&this[a11_0x4bb000(0x227)]||function(_0x437fa0){const _0x3de30f=a11_0x4bb000;return _0x437fa0&&_0x437fa0[_0x3de30f(0x1dd)]?_0x437fa0:{'default':_0x437fa0};};Object[a11_0x4bb000(0x253)](exports,a11_0x4bb000(0x1dd),{'value':!![]}),exports['timestamp']=timestamp,exports[a11_0x4bb000(0x1d0)]=getHomeDir,exports[a11_0x4bb000(0x1e8)]=getClientDir,exports[a11_0x4bb000(0x206)]=initClientDir,exports[a11_0x4bb000(0x1d5)]=ensureClientDir,exports['getClientConfig']=getClientConfig,exports[a11_0x4bb000(0x1df)]=resolveToUserId,exports[a11_0x4bb000(0x1f6)]=authCheck,exports[a11_0x4bb000(0x1bc)]=isOwner,exports[a11_0x4bb000(0x249)]=debugLog,exports['isMobile']=isMobile,exports['getPhoneMapFile']=getPhoneMapFile,exports['loadPhoneMap']=loadPhoneMap,exports['savePhoneMap']=savePhoneMap,exports[a11_0x4bb000(0x23c)]=userIdToPhone,exports['resolveUserId']=resolveUserId,exports[a11_0x4bb000(0x276)]=resolveAllPhonesInConfig,exports[a11_0x4bb000(0x275)]=hashConversationId,exports['getReplyWebhook']=getReplyWebhook,exports[a11_0x4bb000(0x23e)]=getReplyConversationId,exports[a11_0x4bb000(0x1e0)]=findActiveSession,exports['getConversationConfig']=getConversationConfig,exports[a11_0x4bb000(0x27a)]=getConversationDir,exports['getSessionsDir']=getSessionsDir,exports[a11_0x4bb000(0x1f4)]=getTasksDir,exports[a11_0x4bb000(0x219)]=getImagesDir,exports[a11_0x4bb000(0x1c1)]=getSessionDir,exports[a11_0x4bb000(0x255)]=getSessionId,exports[a11_0x4bb000(0x270)]=formatSessionInfo,exports[a11_0x4bb000(0x20e)]=readSessionLogTail,exports[a11_0x4bb000(0x1c0)]=findHistorySession,exports['findLatestSession']=findLatestSession,exports[a11_0x4bb000(0x267)]=updateSessionFile,exports[a11_0x4bb000(0x20c)]=appendSessionLog,exports[a11_0x4bb000(0x1fc)]=getActiveSessionsFile,exports[a11_0x4bb000(0x248)]=saveActiveSession,exports[a11_0x4bb000(0x23b)]=loadActiveSessions,exports[a11_0x4bb000(0x1e7)]=endSession,exports['switchToSession']=switchToSession,exports[a11_0x4bb000(0x1fb)]=startNewSession,exports[a11_0x4bb000(0x1e1)]=processMessageQueue,exports[a11_0x4bb000(0x1a9)]=handleSessionMessage,exports['cleanCache']=cleanCache;const utils_ok_1=require(a11_0x4bb000(0x26a)),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require(a11_0x4bb000(0x217))),crypto_1=__importDefault(require('crypto')),path_1=__importDefault(require(a11_0x4bb000(0x24f))),commands_1=require(a11_0x4bb000(0x24e)),messaging_1=require(a11_0x4bb000(0x1c2)),claude_process_1=require(a11_0x4bb000(0x1b2));function timestamp(){const _0x30c34a=a11_0x4bb000;return utils_ok_1[_0x30c34a(0x265)]['mm'](Date[_0x30c34a(0x23f)]())[_0x30c34a(0x21a)](_0x30c34a(0x22b));}function getHomeDir(){const _0xf1fb39=a11_0x4bb000;return os_1[_0xf1fb39(0x1d1)][_0xf1fb39(0x25d)]();}function getClientDir(_0x193764){const _0x47ee6e=a11_0x4bb000;return path_1[_0x47ee6e(0x1d1)][_0x47ee6e(0x250)](getHomeDir(),_0x47ee6e(0x1fa),_0x193764[_0x47ee6e(0x273)]);}function initClientDir(_0x32a589,_0x537bd9){const _0x16afd0=a11_0x4bb000,_0x1d9d30=path_1['default'][_0x16afd0(0x250)](getHomeDir(),'.cc-ding',_0x32a589),_0x5e41db=path_1[_0x16afd0(0x1d1)]['join'](_0x1d9d30,_0x16afd0(0x1d6));return fs_1[_0x16afd0(0x1d1)][_0x16afd0(0x26b)](_0x1d9d30,{'recursive':!![]}),fs_1['default'][_0x16afd0(0x225)](_0x5e41db,JSON[_0x16afd0(0x1a6)](_0x537bd9,null,0x2),_0x16afd0(0x26c)),_0x5e41db;}function ensureClientDir(_0xfd3e3a){const _0x26df85=a11_0x4bb000,_0x13e073=path_1[_0x26df85(0x1d1)][_0x26df85(0x250)](getHomeDir(),'.cc-ding',_0xfd3e3a),_0x3574cf=path_1[_0x26df85(0x1d1)]['join'](_0x13e073,'config.json');if(fs_1[_0x26df85(0x1d1)][_0x26df85(0x235)](_0x3574cf))return;console[_0x26df85(0x1da)]('['+timestamp()+']\x20客户端目录未初始化:\x20'+_0x13e073),console[_0x26df85(0x1da)]('['+timestamp()+_0x26df85(0x264));const _0x5f2e9c={'clientName':_0x26df85(0x241),'owner':_0x26df85(0x1c3),'whiteUserList':[],'clientSecret':'<clientSecret-钉钉Stream连接密钥>','defaultDingToken':_0x26df85(0x1b9),'conversations':[]};initClientDir(_0xfd3e3a,_0x5f2e9c),console['log']('['+timestamp()+']\x20已生成默认配置文件:\x20'+_0x3574cf),console[_0x26df85(0x1da)]('['+timestamp()+_0x26df85(0x1f5)),process['exit'](0x1);}function getClientConfig(_0x37a7b1){const _0x26ab7a=a11_0x4bb000,_0x5b2270=getClientDir(_0x37a7b1)+'/config.json';(0x0,assert_1['default'])(fs_1[_0x26ab7a(0x1d1)][_0x26ab7a(0x235)](_0x5b2270),_0x26ab7a(0x221)+_0x5b2270);const _0x9a7df9=utils_ok_1['fileUtil'][_0x26ab7a(0x1b3)](_0x5b2270);return(0x0,assert_1[_0x26ab7a(0x1d1)])(_0x9a7df9['clientSecret'],_0x26ab7a(0x1be)),(0x0,assert_1['default'])(_0x9a7df9[_0x26ab7a(0x1b8)],_0x26ab7a(0x24d)),_0x9a7df9;}function resolveToUserId(_0x20e5ac,_0x5e3bbb){const _0x1721ae=a11_0x4bb000;return isMobile(_0x5e3bbb)?_0x20e5ac[_0x1721ae(0x22a)][_0x5e3bbb]||_0x5e3bbb:_0x5e3bbb;}function authCheck(_0x1cb04d,_0x349e47,_0x1e2252){const _0xe12da5=a11_0x4bb000;if(isOwner(_0x1cb04d,_0x349e47))return!![];if(_0x1e2252){const _0x157c3c=_0x1cb04d[_0xe12da5(0x1dc)]['conversations'][_0xe12da5(0x1d8)](_0x47a071=>_0x47a071[_0xe12da5(0x228)]===_0x1e2252);if(_0x157c3c?.[_0xe12da5(0x1b8)]&&_0x157c3c[_0xe12da5(0x1b8)][_0xe12da5(0x220)]>0x0)return _0x157c3c[_0xe12da5(0x1b8)][_0xe12da5(0x247)](_0x258bcb=>resolveToUserId(_0x1cb04d,_0x258bcb)===_0x349e47);}return _0x1cb04d[_0xe12da5(0x1dc)]['whiteUserList'][_0xe12da5(0x247)](_0x5ae56c=>resolveToUserId(_0x1cb04d,_0x5ae56c)===_0x349e47);}function isOwner(_0x38289e,_0x5ae4a0){const _0x47606b=a11_0x4bb000,_0x3e038f=_0x38289e[_0x47606b(0x1dc)][_0x47606b(0x240)];if(!_0x3e038f||!isMobile(_0x3e038f))return![];const _0x5f3dea=_0x38289e[_0x47606b(0x22a)][_0x3e038f];return!!_0x5f3dea&&_0x5f3dea===_0x5ae4a0;}function debugLog(_0x12537e,_0x3139d5,..._0x568e3a){const _0x281e0c=a11_0x4bb000;_0x12537e[_0x281e0c(0x1dc)][_0x281e0c(0x1c4)]&&console[_0x281e0c(0x1da)](_0x281e0c(0x226)+_0x3139d5,..._0x568e3a);}function a11_0x28f2(_0xc55523,_0x5536b1){_0xc55523=_0xc55523-0x1a6;const _0x14189d=a11_0x1418();let _0x28f224=_0x14189d[_0xc55523];return _0x28f224;}const PHONE_RE=/^1\d{10}$/;function isMobile(_0x39ebeb){const _0x4e3e3b=a11_0x4bb000;return PHONE_RE[_0x4e3e3b(0x214)](_0x39ebeb);}function getPhoneMapFile(_0x54111f){const _0x4ae53e=a11_0x4bb000;return path_1[_0x4ae53e(0x1d1)][_0x4ae53e(0x250)](getClientDir(_0x54111f),_0x4ae53e(0x1ea));}function loadPhoneMap(_0x4d65de){const _0x1c3100=a11_0x4bb000,_0x1e8e4a=getPhoneMapFile(_0x4d65de);if(!fs_1[_0x1c3100(0x1d1)][_0x1c3100(0x235)](_0x1e8e4a))return{};try{const _0x1f0d4d=JSON[_0x1c3100(0x1a8)](fs_1['default'][_0x1c3100(0x1ba)](_0x1e8e4a,_0x1c3100(0x26c)));if(typeof _0x1f0d4d==='object'&&_0x1f0d4d!==null)return _0x1f0d4d;}catch{}return{};}function savePhoneMap(_0x2d2802,_0x120b97){const _0xa6803e=a11_0x4bb000,_0x159b5f=getPhoneMapFile(_0x2d2802);try{fs_1['default']['writeFileSync'](_0x159b5f,JSON[_0xa6803e(0x1a6)](_0x120b97,null,0x2),_0xa6803e(0x26c));}catch(_0x13b20e){console['error']('保存\x20phone-map.json\x20失败:',_0x13b20e);}}function userIdToPhone(_0xbcaa4c,_0x31de5d){const _0x5d3670=a11_0x4bb000;for(const [_0x29cb11,_0x581b35]of Object[_0x5d3670(0x22c)](_0xbcaa4c[_0x5d3670(0x22a)])){if(_0x581b35===_0x31de5d)return _0x29cb11;}return null;}async function resolveUserId(_0x462388,_0x50e309){const _0x3808f5=a11_0x4bb000;if(!_0x50e309)return null;if(!isMobile(_0x50e309))return _0x50e309;if(_0x462388[_0x3808f5(0x22a)][_0x50e309])return _0x462388[_0x3808f5(0x22a)][_0x50e309];const _0x5085ab=await(0x0,messaging_1['queryUserIdByMobile'])(_0x462388,_0x50e309);return _0x5085ab&&(_0x462388[_0x3808f5(0x22a)][_0x50e309]=_0x5085ab,savePhoneMap(_0x462388,_0x462388[_0x3808f5(0x22a)])),_0x5085ab;}async function resolveAllPhonesInConfig(_0xac84dd){const _0x4f19b0=a11_0x4bb000;_0xac84dd[_0x4f19b0(0x22a)]=loadPhoneMap(_0xac84dd);const _0x651eab=[],_0xb61c12=async _0x1d9354=>{const _0x5203cc=_0x4f19b0;if(_0xac84dd[_0x5203cc(0x22a)][_0x1d9354])return;const _0x198af8=await(0x0,messaging_1[_0x5203cc(0x279)])(_0xac84dd,_0x1d9354);_0x198af8&&(_0xac84dd[_0x5203cc(0x22a)][_0x1d9354]=_0x198af8,_0x651eab[_0x5203cc(0x211)](_0x1d9354));};_0xac84dd['config'][_0x4f19b0(0x240)]&&(isMobile(_0xac84dd[_0x4f19b0(0x1dc)]['owner'])?(await _0xb61c12(_0xac84dd[_0x4f19b0(0x1dc)][_0x4f19b0(0x240)]),!_0xac84dd['resolvedPhones'][_0xac84dd[_0x4f19b0(0x1dc)][_0x4f19b0(0x240)]]&&console['warn'](_0x4f19b0(0x1a7)+_0xac84dd['config']['owner'])):console[_0x4f19b0(0x1cf)]('[WARN]\x20owner\x20必须为手机号,当前值无效:\x20'+_0xac84dd[_0x4f19b0(0x1dc)][_0x4f19b0(0x240)]));for(const _0x5e43fa of _0xac84dd[_0x4f19b0(0x1dc)]['whiteUserList']){isMobile(_0x5e43fa)&&(await _0xb61c12(_0x5e43fa),!_0xac84dd[_0x4f19b0(0x22a)][_0x5e43fa]&&console[_0x4f19b0(0x1cf)]('[WARN]\x20无法解析\x20whiteUserList\x20手机号:\x20'+_0x5e43fa));}for(const _0x4976f0 of _0xac84dd[_0x4f19b0(0x1dc)]['conversations']){if(_0x4976f0[_0x4f19b0(0x1b8)])for(const _0x29d380 of _0x4976f0[_0x4f19b0(0x1b8)]){isMobile(_0x29d380)&&(await _0xb61c12(_0x29d380),!_0xac84dd[_0x4f19b0(0x22a)][_0x29d380]&&console['warn']('[WARN]\x20无法解析群白名单手机号:\x20'+_0x29d380));}}_0x651eab[_0x4f19b0(0x220)]>0x0&&savePhoneMap(_0xac84dd,_0xac84dd[_0x4f19b0(0x22a)]),console[_0x4f19b0(0x1da)](_0x4f19b0(0x21e)+Object[_0x4f19b0(0x230)](_0xac84dd['resolvedPhones'])[_0x4f19b0(0x220)]+'\x20条记录\x20('+_0x651eab[_0x4f19b0(0x220)]+_0x4f19b0(0x1b6));}function hashConversationId(_0x82110e,_0x21e5ec){const _0x53ad6b=a11_0x4bb000,_0x56e1df=getConversationConfig(_0x82110e,_0x21e5ec),_0x3e66ab=_0x56e1df?.[_0x53ad6b(0x21b)]||_0x21e5ec;return crypto_1[_0x53ad6b(0x1d1)]['createHash'](_0x53ad6b(0x20a))[_0x53ad6b(0x25e)](_0x3e66ab)[_0x53ad6b(0x1ee)](_0x53ad6b(0x20d));}function getReplyWebhook(_0x4a07fd){const _0x52421d=a11_0x4bb000;return _0x4a07fd[_0x52421d(0x261)]||_0x4a07fd[_0x52421d(0x1ed)];}function getReplyConversationId(_0x5d2fd0){const _0x3f9544=a11_0x4bb000;return _0x5d2fd0[_0x3f9544(0x269)]||_0x5d2fd0[_0x3f9544(0x228)];}function findActiveSession(_0x3caae2,_0xc3274b){const _0x4e8ad6=a11_0x4bb000,_0x96bc7a=_0x3caae2[_0x4e8ad6(0x232)][_0x4e8ad6(0x245)](_0xc3274b);if(_0x96bc7a)return{'key':_0xc3274b,'session':_0x96bc7a};const _0x17ffee=getConversationConfig(_0x3caae2,_0xc3274b);if(_0x17ffee?.['linkConversationId'])for(const _0xec563f of _0x3caae2[_0x4e8ad6(0x232)]){const _0x23ba7b=getConversationConfig(_0x3caae2,_0xec563f[0x0]);if(_0x23ba7b?.[_0x4e8ad6(0x21b)]===_0x17ffee['linkConversationId'])return{'key':_0xec563f[0x0],'session':_0xec563f[0x1]};}return undefined;}function getConversationConfig(_0x25d0e4,_0x3161ec){const _0x52d006=a11_0x4bb000;return _0x25d0e4['config']['conversations'][_0x52d006(0x1d8)](_0x2d5419=>_0x2d5419[_0x52d006(0x228)]===_0x3161ec);}function getConversationDir(_0x5269b9,_0x2682b2){const _0x132767=hashConversationId(_0x5269b9,_0x2682b2);return getClientDir(_0x5269b9)+'/'+_0x132767;}function getSessionsDir(_0x48bb2f,_0x56339d){return getConversationDir(_0x48bb2f,_0x56339d)+'/.sessions';}function getTasksDir(_0x3541b0,_0x534db8){return getConversationDir(_0x3541b0,_0x534db8)+'/.tasks';}function getImagesDir(_0x5abbc6,_0x2e1c2c){const _0x2bc921=a11_0x4bb000;return getConversationDir(_0x5abbc6,_0x2e1c2c)+_0x2bc921(0x1e5);}function getSessionDir(_0x15b972,_0x359228){const _0x5b7ada=a11_0x4bb000,_0x344cec=_0x359228[_0x5b7ada(0x277)]||_0x359228[_0x5b7ada(0x1eb)];return getSessionsDir(_0x15b972,_0x359228[_0x5b7ada(0x228)])+'/'+_0x344cec;}function getSessionId(_0x44e013){const _0x21e422=a11_0x4bb000;return _0x44e013['claudeSessionId']||_0x44e013[_0x21e422(0x1eb)];}function formatSessionInfo(_0x1b601c,_0x3953a3){const _0x5852a6=a11_0x4bb000,_0x324a14=findActiveSession(_0x1b601c,_0x3953a3);if(!_0x324a14)return null;const {session:_0x521ff2,isProcessing:_0x408453,messageQueue:_0x326e89}=_0x324a14[_0x5852a6(0x22d)],_0x497218=[_0x5852a6(0x1ca)+getSessionId(_0x521ff2),_0x5852a6(0x21c)+_0x521ff2[_0x5852a6(0x26e)]+'('+_0x521ff2['startStaffId']+')',_0x5852a6(0x21f)+_0x521ff2['startTimeStr'],_0x5852a6(0x1c9)+_0x324a14['session'][_0x5852a6(0x1f8)],_0x5852a6(0x200)+_0x408453,_0x5852a6(0x1f0)+(_0x326e89?.[_0x5852a6(0x220)]||0x0)+'\x20条'];return _0x497218[_0x5852a6(0x250)]('\x0a');}function readSessionLogTail(_0x18c989,_0x569f61,_0xcb09d9){const _0xdc029b=a11_0x4bb000,_0x5e312e=findActiveSession(_0x18c989,_0x569f61);if(!_0x5e312e)return null;const _0x4eb577=_0x5e312e[_0xdc029b(0x22d)],_0x1dd72a=getSessionDir(_0x18c989,_0x4eb577[_0xdc029b(0x22d)])+'/session.log';if(!fs_1[_0xdc029b(0x1d1)][_0xdc029b(0x235)](_0x1dd72a))return null;try{const _0x417eeb=fs_1[_0xdc029b(0x1d1)][_0xdc029b(0x1ba)](_0x1dd72a,_0xdc029b(0x26c)),_0x5d02c3=_0x417eeb[_0xdc029b(0x23a)]('\x0a')[_0xdc029b(0x262)](_0x54e4a9=>_0x54e4a9[_0xdc029b(0x220)]>0x0);return _0x5d02c3[_0xdc029b(0x1c5)](-_0xcb09d9)['join']('\x0a');}catch{return null;}}function findHistorySession(_0x37699e,_0x228b48,_0x18255f){const _0x450b2a=a11_0x4bb000,_0x1c7284=getSessionsDir(_0x37699e,_0x228b48),_0x425a14=_0x1c7284+'/'+_0x18255f+'/session.json';try{return utils_ok_1['fileUtil'][_0x450b2a(0x1b3)](_0x425a14);}catch{}const _0x2f9e4f=parseInt(_0x18255f,0xa);if(!isNaN(_0x2f9e4f)&&_0x2f9e4f>0x0){const _0x14f0aa=utils_ok_1['dateUtil']['mm'](_0x2f9e4f)[_0x450b2a(0x21a)](_0x450b2a(0x266)),_0x201320=_0x1c7284+'/'+_0x14f0aa+_0x450b2a(0x25c);try{return utils_ok_1[_0x450b2a(0x1e9)]['getJSON'](_0x201320);}catch{}}return null;}function findLatestSession(_0xc4a4b7,_0x29cf70){const _0x42ddc0=a11_0x4bb000,_0x43efc9=getSessionsDir(_0xc4a4b7,_0x29cf70);if(!fs_1[_0x42ddc0(0x1d1)][_0x42ddc0(0x235)](_0x43efc9))return null;const _0xb58599=findActiveSession(_0xc4a4b7,_0x29cf70),_0x11e6f0=_0xb58599?getSessionId(_0xb58599[_0x42ddc0(0x22d)][_0x42ddc0(0x22d)]):null;let _0x25e7d8=null,_0x336588=0x0;try{const _0x469e9e=fs_1['default'][_0x42ddc0(0x1fd)](_0x43efc9,{'withFileTypes':!![]});for(const _0x2eec5e of _0x469e9e){if(!_0x2eec5e[_0x42ddc0(0x238)]())continue;const _0x2565ff=path_1[_0x42ddc0(0x1d1)][_0x42ddc0(0x250)](_0x43efc9,_0x2eec5e[_0x42ddc0(0x233)],_0x42ddc0(0x234));if(!fs_1[_0x42ddc0(0x1d1)][_0x42ddc0(0x235)](_0x2565ff))continue;try{const _0x42a2f3=utils_ok_1[_0x42ddc0(0x1e9)][_0x42ddc0(0x1b3)](_0x2565ff);if(_0x11e6f0&&getSessionId(_0x42a2f3)===_0x11e6f0)continue;_0x42a2f3[_0x42ddc0(0x242)]>_0x336588&&(_0x336588=_0x42a2f3[_0x42ddc0(0x242)],_0x25e7d8=_0x42a2f3);}catch{continue;}}}catch{}return _0x25e7d8;}function updateSessionFile(_0x4fa108,_0x491339,_0x51c1e1){const _0x406733=a11_0x4bb000;if(_0x51c1e1[_0x406733(0x277)]&&!_0x491339[_0x406733(0x277)]){const _0x45c6f4=getSessionDir(_0x4fa108,_0x491339);_0x491339[_0x406733(0x277)]=_0x51c1e1[_0x406733(0x277)];const _0x139ca4=getSessionDir(_0x4fa108,_0x491339);_0x45c6f4!==_0x139ca4&&fs_1[_0x406733(0x1d1)][_0x406733(0x235)](_0x45c6f4)&&(fs_1['default'][_0x406733(0x1ce)](_0x45c6f4,_0x139ca4),console[_0x406733(0x1da)]('['+timestamp()+_0x406733(0x1e6)+path_1[_0x406733(0x1d1)][_0x406733(0x20f)](_0x45c6f4)+_0x406733(0x1b0)+path_1[_0x406733(0x1d1)][_0x406733(0x20f)](_0x139ca4)));}const _0x45b348=getSessionDir(_0x4fa108,_0x491339)+_0x406733(0x25c);try{if(_0x51c1e1[_0x406733(0x1ed)])_0x491339[_0x406733(0x1ed)]=_0x51c1e1['sessionWebhook'];if(_0x51c1e1[_0x406733(0x261)]!==undefined)_0x491339[_0x406733(0x261)]=_0x51c1e1[_0x406733(0x261)]||undefined;if(_0x51c1e1['currentConversationId']!==undefined)_0x491339[_0x406733(0x269)]=_0x51c1e1[_0x406733(0x269)]||undefined;fs_1[_0x406733(0x1d1)]['writeFileSync'](_0x45b348,JSON[_0x406733(0x1a6)](_0x491339,null,0x2),'utf-8');const _0x19a955=_0x51c1e1[_0x406733(0x277)]?_0x406733(0x277):_0x51c1e1[_0x406733(0x261)]!==undefined?'currentWebhook':_0x406733(0x1ed);console[_0x406733(0x1da)]('['+timestamp()+']\x20会话文件已保存:\x20'+_0x19a955),saveActiveSession(_0x4fa108,_0x491339[_0x406733(0x228)]);}catch(_0x486c1a){console[_0x406733(0x1cc)](_0x406733(0x25b),_0x486c1a);}}function appendSessionLog(_0xc67de3,_0x27ca2f,_0x14cb36){const _0xc4f65e=a11_0x4bb000,_0x38031e=_0xc67de3+_0xc4f65e(0x222),_0x29da18=timestamp(),_0x2d5c9b='['+_0x29da18+_0xc4f65e(0x25a)+_0x27ca2f['toUpperCase']()+_0xc4f65e(0x223)+_0x14cb36+'\x0a';try{fs_1['default'][_0xc4f65e(0x1c6)](_0x38031e,_0x2d5c9b,'utf-8');}catch{}}function getActiveSessionsFile(_0x11d07d,_0x517a84){const _0x2fa542=a11_0x4bb000;return getSessionsDir(_0x11d07d,_0x517a84)+_0x2fa542(0x1e3);}function saveActiveSession(_0x15a570,_0x1c9ed3){const _0x11dafe=a11_0x4bb000,_0x4fc383=_0x15a570[_0x11dafe(0x232)]['get'](_0x1c9ed3),_0x1d0b6f=getActiveSessionsFile(_0x15a570,_0x1c9ed3);try{if(!_0x4fc383){if(fs_1['default']['existsSync'](_0x1d0b6f))fs_1['default']['unlinkSync'](_0x1d0b6f);return;}const _0x1abbd3={'session':_0x4fc383[_0x11dafe(0x22d)],'lastSenderStaffId':_0x4fc383[_0x11dafe(0x1f8)],'conversationConfig':_0x4fc383[_0x11dafe(0x1f7)]};fs_1['default'][_0x11dafe(0x26b)](path_1[_0x11dafe(0x1d1)][_0x11dafe(0x203)](_0x1d0b6f),{'recursive':!![]}),fs_1[_0x11dafe(0x1d1)]['writeFileSync'](_0x1d0b6f,JSON[_0x11dafe(0x1a6)](_0x1abbd3,null,0x2),_0x11dafe(0x26c)),debugLog(_0x15a570,_0x11dafe(0x1c8)+_0x1c9ed3);}catch(_0x5c611f){console[_0x11dafe(0x1cc)](_0x11dafe(0x252)+_0x1c9ed3,_0x5c611f);}}function a11_0x1418(){const _0x4cba63=['/active.json','catch','/.images',']\x20会话目录重命名:\x20','endSession','getClientDir','fileUtil','phone-map.json','startTimeStr','unlinkSync','sessionWebhook','digest','1736674ANFtfq','-\x20**排队消息:**\x20',',结束当前会话\x0a','读取images目录失败:\x20','恢复活跃会话:\x20群=','getTasksDir',']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动','authCheck','conversationConfig','lastSenderStaffId','has','.cc-ding','startNewSession','getActiveSessionsFile','readdirSync','[会话恢复失败]\x20清除\x20claudeSessionId\x20并重新发起:\x20','68Gldduc','-\x20**处理中:**\x20','6740YVPBHD',',\x20当前并发=','dirname','会话\x20','4932900uRJSKL','initClientDir','读取tasks目录失败:\x20','\x0a💡\x20回复\x20/end\x20可结束本轮对话',']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','md5','interruptClaudeProcess','appendSessionLog','hex','readSessionLogTail','basename','isProcessing','push','messageQueue',',\x20会话ID=','test','8507752yFaLie','结束会话时中断正在执行的\x20Claude\x20进程','assert','imagesDeleted','getImagesDir','format','linkConversationId','-\x20**发起者:**\x20','3600uqWzoc','[手机解析]\x20已加载\x20','-\x20**开始时间:**\x20','length','Could\x20not\x20find\x20client\x20config\x20file:\x20','/session.log',']:\x20','sessionMaxConcurrency','writeFileSync','[DEBUG]\x20','__importDefault','conversationId','294bfPeCh','resolvedPhones','YYYY-MM-DD\x20HH:mm:ss','entries','session','切换会话时中断正在执行的\x20Claude\x20进程','set','keys','✅\x20收到,我来处理...','activeSessions','name','session.json','existsSync','\x20消息已入队,排队第\x20','结束会话:\x20群=','isDirectory','receiveReply','split','loadActiveSessions','userIdToPhone','❌\x20处理消息时发生错误:\x20','getReplyConversationId','now','owner','cc助手','startTime','🔄\x20已恢复对话上下文','35898RXIWUP','get','rmSync','some','saveActiveSession','debugLog','重试执行\x20Claude\x20查询失败:','执行队列\x20Claude\x20查询失败:','message','config.json\x20missing\x20required\x20field:\x20whiteUserList','./commands','path','join','✅\x20已切换到历史会话\x20(会话ID:\x20','持久化活跃会话失败:\x20群=','defineProperty','切换会话,先结束当前会话:\x20','getSessionId','创建新会话:\x20群=','key','map','\x20条)',']\x20[','更新\x20session.json\x20失败:','/session.json','homedir','update','delete',']\x20[SYSTEM]:\x20用户请求结束会话\x0a','currentWebhook','filter','taskCfg',']\x20正在自动初始化...','dateUtil','YYYY-MM-DD-HH-mm-ss','updateSessionFile',']\x20[SYSTEM]:\x20会话被切换到\x20','currentConversationId','utils-ok','mkdirSync','utf-8','shift','startNickName','1IRdEtr','formatSessionInfo','删除任务目录失败:\x20','💬\x20会话已结束\x0a📋\x20会话ID:\x20','clientId','executeClaudeQuery','hashConversationId','resolveAllPhonesInConfig','claudeSessionId','⏳\x20正在处理中,已加入队列(排队第\x20','queryUserIdByMobile','getConversationDir','stringify','[WARN]\x20无法解析\x20owner\x20手机号:\x20','parse','handleSessionMessage','⚠️\x20该会话无历史上下文,将从头开始','size','🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话','agent','18666637SlEDjN','conversations','\x20->\x20','读取sessions目录失败:\x20','./claude-process','getJSON','sendDingMessage','12hjivHX','\x20条新解析)','DEFAULT_SESSION_MAX_CONCURRENCY','whiteUserList','<兜底钉钉机器人Token>','readFileSync','skill','isOwner','errors','config.json\x20missing\x20required\x20field:\x20clientSecret','执行\x20Claude\x20查询失败:','findHistorySession','getSessionDir','./messaging','<owner手机号>','debug','slice','appendFileSync',',\x20发起者=','活跃会话已持久化:\x20群=','-\x20**最后发送者:**\x20','-\x20**会话ID:**\x20','startStaffId','error','会话目录已重建:\x20群=','renameSync','warn','getHomeDir','default','\x20无活跃会话','parseEndCommand','🤯\x20当前繁忙,请稍后再试...','ensureClientDir','config.json','达到最大并发数\x20(','find','删除会话目录失败:\x20','log','26445FfKyBD','config','__esModule','sessionsDeleted','resolveToUserId','findActiveSession','processMessageQueue','❌\x20会话\x20'];a11_0x1418=function(){return _0x4cba63;};return a11_0x1418();}function loadActiveSessions(_0x354254){const _0x5d0e89=a11_0x4bb000;for(const _0x1ac5a8 of _0x354254['config'][_0x5d0e89(0x1af)]){const _0xa046d1=getActiveSessionsFile(_0x354254,_0x1ac5a8[_0x5d0e89(0x228)]);if(!fs_1[_0x5d0e89(0x1d1)][_0x5d0e89(0x235)](_0xa046d1))continue;try{const _0x3834ff=utils_ok_1[_0x5d0e89(0x1e9)]['getJSON'](_0xa046d1);if(!_0x3834ff?.[_0x5d0e89(0x22d)]){console[_0x5d0e89(0x1da)]('活跃会话文件无效,跳过:\x20'+_0xa046d1);continue;}const _0x4d6c6e=getSessionDir(_0x354254,_0x3834ff[_0x5d0e89(0x22d)]);if(!fs_1[_0x5d0e89(0x1d1)]['existsSync'](_0x4d6c6e)){console[_0x5d0e89(0x1da)]('活跃会话目录已不存在,清理持久化文件:\x20'+_0xa046d1),fs_1[_0x5d0e89(0x1d1)][_0x5d0e89(0x1ec)](_0xa046d1);continue;}_0x354254[_0x5d0e89(0x232)]['set'](_0x1ac5a8['conversationId'],{'session':_0x3834ff['session'],'lastSenderStaffId':_0x3834ff[_0x5d0e89(0x1f8)]||_0x3834ff[_0x5d0e89(0x22d)][_0x5d0e89(0x1cb)],'isProcessing':![],'messageQueue':[],'conversationConfig':_0x3834ff[_0x5d0e89(0x1f7)]}),console['log'](_0x5d0e89(0x1f3)+_0x1ac5a8['conversationId']+',\x20会话ID='+getSessionId(_0x3834ff[_0x5d0e89(0x22d)]));}catch(_0x3f1261){console['error']('加载活跃会话失败:\x20'+_0xa046d1,_0x3f1261);}}}async function endSession(_0x24ce63,_0x465572,_0x4e0a90){const _0x591de9=a11_0x4bb000,_0x15b3e3=findActiveSession(_0x24ce63,_0x465572);if(!_0x15b3e3){console[_0x591de9(0x1da)]('群\x20'+_0x465572+_0x591de9(0x1d2));return;}const {key:_0x1ec1a1,session:_0x11fdc3}=_0x15b3e3,{session:_0x2f733a}=_0x11fdc3,_0x15fd43=getSessionDir(_0x24ce63,_0x2f733a),_0x55df86=getSessionId(_0x2f733a);console[_0x591de9(0x1da)](_0x591de9(0x237)+_0x465572+_0x591de9(0x213)+_0x55df86),(0x0,claude_process_1[_0x591de9(0x20b)])(_0x11fdc3,_0x591de9(0x216))&&fs_1[_0x591de9(0x1d1)]['appendFileSync'](_0x15fd43+'/session.log','['+timestamp()+_0x591de9(0x209),'utf-8'),await(0x0,messaging_1[_0x591de9(0x1b4)])(_0x24ce63,{'conversationId':_0x465572,'sessionWebhook':_0x4e0a90,'atUserId':_0x2f733a[_0x591de9(0x1cb)],'content':_0x591de9(0x272)+_0x55df86}),_0x24ce63[_0x591de9(0x232)][_0x591de9(0x25f)](_0x1ec1a1),saveActiveSession(_0x24ce63,_0x1ec1a1),fs_1[_0x591de9(0x1d1)][_0x591de9(0x1c6)](_0x15fd43+_0x591de9(0x222),'['+timestamp()+_0x591de9(0x260),'utf-8');}async function switchToSession(_0x3d4801,_0x35de71,_0x494725,_0x1403ef,_0x8e2a42,_0x5809cd){const _0x44a182=a11_0x4bb000,_0x496a95=findHistorySession(_0x3d4801,_0x35de71,_0x1403ef);if(!_0x496a95)return await(0x0,messaging_1['sendDingMessage'])(_0x3d4801,{'conversationId':_0x35de71,'sessionWebhook':_0x494725,'atUserId':_0x8e2a42,'content':'❌\x20未找到会话\x20'+_0x1403ef+',该会话可能已被清理,请发送新消息开始新会话'}),![];const _0x501789=getSessionDir(_0x3d4801,_0x496a95);if(!fs_1[_0x44a182(0x1d1)]['existsSync'](_0x501789))return await(0x0,messaging_1['sendDingMessage'])(_0x3d4801,{'conversationId':_0x35de71,'sessionWebhook':_0x494725,'atUserId':_0x8e2a42,'content':_0x44a182(0x1e2)+_0x1403ef+'\x20的数据已被清理,无法恢复,请发送新消息开始新会话'}),![];const _0xc6431=findActiveSession(_0x3d4801,_0x35de71);_0xc6431&&(console['log'](_0x44a182(0x254)+getSessionId(_0xc6431[_0x44a182(0x22d)][_0x44a182(0x22d)])),(0x0,claude_process_1['interruptClaudeProcess'])(_0xc6431['session'],_0x44a182(0x22e)),_0x3d4801['activeSessions'][_0x44a182(0x25f)](_0xc6431['key']),saveActiveSession(_0x3d4801,_0xc6431[_0x44a182(0x257)]),fs_1[_0x44a182(0x1d1)][_0x44a182(0x1c6)](getSessionDir(_0x3d4801,_0xc6431[_0x44a182(0x22d)][_0x44a182(0x22d)])+'/session.log','['+timestamp()+_0x44a182(0x268)+_0x1403ef+_0x44a182(0x1f1),_0x44a182(0x26c)));_0x3d4801[_0x44a182(0x232)][_0x44a182(0x22f)](_0x35de71,{'session':_0x496a95,'lastSenderStaffId':_0x8e2a42,'isProcessing':![],'messageQueue':[],'conversationConfig':_0x5809cd}),saveActiveSession(_0x3d4801,_0x35de71);const _0x2dcf46=!!_0x496a95['claudeSessionId'],_0x157905=getSessionId(_0x496a95);return await(0x0,messaging_1['sendDingMessage'])(_0x3d4801,{'conversationId':_0x35de71,'sessionWebhook':_0x494725,'atUserId':_0x8e2a42,'content':_0x44a182(0x251)+_0x157905+')\x0a'+(_0x2dcf46?_0x44a182(0x243):_0x44a182(0x1aa))+_0x44a182(0x208)}),console['log']('已切换到历史会话:\x20群='+_0x35de71+_0x44a182(0x213)+_0x157905+',\x20有Claude上下文='+_0x2dcf46),!![];}async function startNewSession(_0x19c9aa,_0x24e79b){const _0x3a12f3=a11_0x4bb000,{conversationId:_0x9caed,sessionWebhook:_0x1bc830,senderStaffId:_0x361245,senderNick:_0x8e37be,message:_0x4ed624,conversationConfig:_0x3e05ee}=_0x24e79b,_0x2d892e=_0x19c9aa[_0x3a12f3(0x1dc)][_0x3a12f3(0x224)]??_0x19c9aa[_0x3a12f3(0x1b7)];if(_0x19c9aa[_0x3a12f3(0x232)][_0x3a12f3(0x1ab)]>=_0x2d892e){console[_0x3a12f3(0x1da)](_0x3a12f3(0x1d7)+_0x2d892e+'),拒绝新会话:\x20群='+_0x9caed),await(0x0,messaging_1[_0x3a12f3(0x1b4)])(_0x19c9aa,{'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'atUserId':_0x361245,'content':_0x3a12f3(0x1d4)});return;}const _0x288565=Date[_0x3a12f3(0x23f)](),_0x23bf18={'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'startTime':_0x288565,'startTimeStr':utils_ok_1[_0x3a12f3(0x265)]['mm'](_0x288565)[_0x3a12f3(0x21a)]('YYYY-MM-DD-HH-mm-ss'),'startStaffId':_0x361245,'startNickName':_0x8e37be};console[_0x3a12f3(0x1da)](_0x3a12f3(0x256)+_0x9caed+_0x3a12f3(0x213)+getSessionId(_0x23bf18)+_0x3a12f3(0x1c7)+_0x361245+_0x3a12f3(0x202)+(_0x19c9aa['activeSessions'][_0x3a12f3(0x1ab)]+0x1)+'/'+_0x2d892e);const _0x4627c4=getSessionDir(_0x19c9aa,_0x23bf18);fs_1['default'][_0x3a12f3(0x26b)](_0x4627c4,{'recursive':!![]}),fs_1['default'][_0x3a12f3(0x225)](_0x4627c4+_0x3a12f3(0x25c),JSON[_0x3a12f3(0x1a6)](_0x23bf18,null,0x2),_0x3a12f3(0x26c)),_0x19c9aa[_0x3a12f3(0x232)][_0x3a12f3(0x22f)](_0x9caed,{'session':_0x23bf18,'lastSenderStaffId':_0x361245,'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x3e05ee}),saveActiveSession(_0x19c9aa,_0x9caed);_0x3e05ee[_0x3a12f3(0x239)]!==![]&&await(0x0,messaging_1[_0x3a12f3(0x1b4)])(_0x19c9aa,{'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'atUserId':_0x361245,'content':_0x3a12f3(0x1ac)});try{await(0x0,claude_process_1[_0x3a12f3(0x274)])(_0x19c9aa,_0x23bf18,_0x4ed624,{'skill':_0x3e05ee['taskCfg']?.[_0x3a12f3(0x1bb)],'agent':_0x3e05ee[_0x3a12f3(0x1ad)],'senderNick':_0x8e37be,'senderStaffId':_0x361245});}catch(_0x327653){console['error'](_0x3a12f3(0x1bf),_0x327653),await(0x0,messaging_1['sendDingMessage'])(_0x19c9aa,{'conversationId':_0x9caed,'sessionWebhook':_0x1bc830,'atUserId':_0x361245,'content':_0x3a12f3(0x23d)+(_0x327653 instanceof Error?_0x327653[_0x3a12f3(0x24c)]:String(_0x327653))});}finally{const _0x22758f=_0x19c9aa[_0x3a12f3(0x232)][_0x3a12f3(0x245)](_0x9caed);_0x22758f&&(_0x22758f['isProcessing']=![]);}await processMessageQueue(_0x19c9aa,_0x9caed);}async function processMessageQueue(_0x552c94,_0x2119b6){const _0x57fcb4=a11_0x4bb000,_0x29f4c2=_0x552c94['activeSessions']['get'](_0x2119b6);if(!_0x29f4c2||_0x29f4c2[_0x57fcb4(0x212)][_0x57fcb4(0x220)]===0x0)return;const _0x5390b1=_0x29f4c2[_0x57fcb4(0x212)][_0x57fcb4(0x26d)](),{message:_0x431a01,senderStaffId:_0xf9b626,senderNick:_0x5c07a4}=_0x5390b1,_0x13b9dd=_0x29f4c2['session'][_0x57fcb4(0x1ed)];console[_0x57fcb4(0x1da)]('处理队列消息:\x20群='+_0x2119b6+',\x20剩余\x20'+_0x29f4c2[_0x57fcb4(0x212)][_0x57fcb4(0x220)]+'\x20条'),_0x29f4c2[_0x57fcb4(0x210)]=!![],_0x29f4c2[_0x57fcb4(0x1f8)]=_0xf9b626,saveActiveSession(_0x552c94,_0x2119b6);_0x29f4c2[_0x57fcb4(0x1f7)][_0x57fcb4(0x239)]!==![]&&await(0x0,messaging_1[_0x57fcb4(0x1b4)])(_0x552c94,{'conversationId':_0x2119b6,'sessionWebhook':_0x13b9dd,'atUserId':_0xf9b626,'content':_0x57fcb4(0x231)})[_0x57fcb4(0x1e4)](()=>{});try{await(0x0,claude_process_1[_0x57fcb4(0x274)])(_0x552c94,_0x29f4c2[_0x57fcb4(0x22d)],_0x431a01,{'skill':_0x29f4c2[_0x57fcb4(0x1f7)][_0x57fcb4(0x263)]?.[_0x57fcb4(0x1bb)],'agent':_0x29f4c2[_0x57fcb4(0x1f7)]['agent'],'senderNick':_0x5c07a4,'senderStaffId':_0xf9b626});}catch(_0x3ad536){console[_0x57fcb4(0x1cc)](_0x57fcb4(0x24b),_0x3ad536),await(0x0,messaging_1[_0x57fcb4(0x1b4)])(_0x552c94,{'conversationId':_0x2119b6,'sessionWebhook':_0x13b9dd,'atUserId':_0xf9b626,'content':_0x57fcb4(0x23d)+(_0x3ad536 instanceof Error?_0x3ad536['message']:String(_0x3ad536))});}finally{_0x29f4c2['isProcessing']=![];}_0x29f4c2['messageQueue']['length']>0x0&&await processMessageQueue(_0x552c94,_0x2119b6);}async function handleSessionMessage(_0xd1459c,_0x5328c9){const _0x4cf34f=a11_0x4bb000,{conversationId:_0x322d4a,sessionWebhook:_0x2c75c7,senderStaffId:_0x1892a2,senderNick:_0x4a5c0f,message:_0x52b3c7,conversationConfig:_0x256099}=_0x5328c9;if((0x0,commands_1[_0x4cf34f(0x1d3)])(_0x52b3c7)){await endSession(_0xd1459c,_0x322d4a,_0x2c75c7);return;}const _0x22cbb6=findActiveSession(_0xd1459c,_0x322d4a),_0x5c1826=_0x22cbb6?.['session'];if(_0x5c1826){const _0x3a6243=getSessionDir(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)]);!fs_1[_0x4cf34f(0x1d1)][_0x4cf34f(0x235)](_0x3a6243)&&(fs_1[_0x4cf34f(0x1d1)]['mkdirSync'](_0x3a6243,{'recursive':!![]}),fs_1[_0x4cf34f(0x1d1)][_0x4cf34f(0x225)](_0x3a6243+_0x4cf34f(0x25c),JSON[_0x4cf34f(0x1a6)](_0x5c1826[_0x4cf34f(0x22d)],null,0x2),_0x4cf34f(0x26c)),console[_0x4cf34f(0x1da)](_0x4cf34f(0x1cd)+_0x322d4a+',\x20路径='+_0x3a6243));if(_0x5c1826[_0x4cf34f(0x210)]){const _0x298f75={'message':_0x52b3c7,'senderStaffId':_0x1892a2,'senderNick':_0x4a5c0f};_0x5c1826[_0x4cf34f(0x212)][_0x4cf34f(0x211)](_0x298f75);const _0x62ad89=_0x5c1826[_0x4cf34f(0x212)]['length'];console['log'](_0x4cf34f(0x204)+_0x322d4a+_0x4cf34f(0x236)+_0x62ad89+'\x20条'),await(0x0,messaging_1[_0x4cf34f(0x1b4)])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':_0x4cf34f(0x278)+_0x62ad89+_0x4cf34f(0x259)});return;}const _0x2ac126=_0x5c1826[_0x4cf34f(0x22d)][_0x4cf34f(0x228)]===_0x322d4a;console['log']('追加消息到活跃会话:\x20群='+_0x322d4a+_0x4cf34f(0x213)+getSessionId(_0x5c1826[_0x4cf34f(0x22d)])+(_0x2ac126?'':'(关联群,会话归属='+_0x5c1826[_0x4cf34f(0x22d)]['conversationId']+')')),_0x5c1826[_0x4cf34f(0x1f8)]=_0x1892a2,_0x5c1826[_0x4cf34f(0x210)]=!![],saveActiveSession(_0xd1459c,_0x22cbb6['key']);_0x2ac126&&_0x2c75c7!==_0x5c1826[_0x4cf34f(0x22d)][_0x4cf34f(0x1ed)]&&(_0x5c1826[_0x4cf34f(0x22d)]['sessionWebhook']=_0x2c75c7,updateSessionFile(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],{'sessionWebhook':_0x2c75c7}));_0x5c1826[_0x4cf34f(0x22d)]['currentWebhook']=_0x2c75c7,_0x5c1826[_0x4cf34f(0x22d)][_0x4cf34f(0x269)]=_0x322d4a,updateSessionFile(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],{'currentWebhook':_0x2c75c7,'currentConversationId':_0x322d4a});_0x256099['receiveReply']!==![]&&await(0x0,messaging_1['sendDingMessage'])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':'✅\x20收到,我来处理...'});try{await(0x0,claude_process_1[_0x4cf34f(0x274)])(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],_0x52b3c7,{'skill':_0x256099['taskCfg']?.[_0x4cf34f(0x1bb)],'agent':_0x256099['agent'],'senderNick':_0x4a5c0f,'senderStaffId':_0x1892a2});}catch(_0x632984){if(_0x5c1826[_0x4cf34f(0x22d)]['claudeSessionId']){console[_0x4cf34f(0x1da)](_0x4cf34f(0x1fe)+_0x5c1826['session'][_0x4cf34f(0x277)]),_0x5c1826[_0x4cf34f(0x22d)]['claudeSessionId']=undefined,_0xd1459c[_0x4cf34f(0x267)](_0x5c1826[_0x4cf34f(0x22d)],{});try{await(0x0,claude_process_1[_0x4cf34f(0x274)])(_0xd1459c,_0x5c1826[_0x4cf34f(0x22d)],_0x52b3c7,{'skill':_0x256099[_0x4cf34f(0x263)]?.[_0x4cf34f(0x1bb)],'agent':_0x256099[_0x4cf34f(0x1ad)],'senderNick':_0x4a5c0f,'senderStaffId':_0x1892a2});return;}catch(_0x3336b){console[_0x4cf34f(0x1cc)](_0x4cf34f(0x24a),_0x3336b),await(0x0,messaging_1[_0x4cf34f(0x1b4)])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':_0x4cf34f(0x23d)+(_0x3336b instanceof Error?_0x3336b[_0x4cf34f(0x24c)]:String(_0x3336b))}),_0x5c1826['isProcessing']=![],await processMessageQueue(_0xd1459c,_0x322d4a);return;}}console[_0x4cf34f(0x1cc)]('执行\x20Claude\x20查询失败:',_0x632984),await(0x0,messaging_1['sendDingMessage'])(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'atUserId':_0x1892a2,'content':_0x4cf34f(0x23d)+(_0x632984 instanceof Error?_0x632984[_0x4cf34f(0x24c)]:String(_0x632984))});}finally{_0x5c1826[_0x4cf34f(0x210)]=![];}await processMessageQueue(_0xd1459c,_0x322d4a);}else await startNewSession(_0xd1459c,{'conversationId':_0x322d4a,'sessionWebhook':_0x2c75c7,'senderStaffId':_0x1892a2,'senderNick':_0x4a5c0f,'message':_0x52b3c7,'conversationConfig':_0x256099});}function cleanCache(_0xd8df35,_0x2ffd34,_0x582dcd=!![]){const _0x1fdbab=a11_0x4bb000,_0x201f2d={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x3a0694=_0x2ffd34?[_0x2ffd34]:_0xd8df35[_0x1fdbab(0x1dc)]['conversations'][_0x1fdbab(0x258)](_0x3fec77=>_0x3fec77[_0x1fdbab(0x228)]);for(const _0xf6b94 of _0x3a0694){let _0x4cc7c0=null;if(_0x582dcd){const _0x4d1d98=findActiveSession(_0xd8df35,_0xf6b94);_0x4d1d98&&(_0x4cc7c0=getSessionId(_0x4d1d98['session'][_0x1fdbab(0x22d)]));}const _0x483416=getSessionsDir(_0xd8df35,_0xf6b94);if(fs_1['default'][_0x1fdbab(0x235)](_0x483416))try{const _0x3923ab=fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x1fd)](_0x483416,{'withFileTypes':!![]});for(const _0x49b67c of _0x3923ab){if(!_0x49b67c[_0x1fdbab(0x238)]())continue;if(_0x4cc7c0&&_0x49b67c[_0x1fdbab(0x233)]===_0x4cc7c0)continue;const _0x2620af=path_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x250)](_0x483416,_0x49b67c['name']);try{fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x246)](_0x2620af,{'recursive':!![],'force':!![]}),_0x201f2d[_0x1fdbab(0x1de)]++;}catch(_0x37790f){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)](_0x1fdbab(0x1d9)+_0x2620af);}}}catch(_0x42a558){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)](_0x1fdbab(0x1b1)+_0x483416);}const _0x869fd7=getTasksDir(_0xd8df35,_0xf6b94);if(fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x235)](_0x869fd7))try{const _0x29f913=fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x1fd)](_0x869fd7,{'withFileTypes':!![]});for(const _0x1807f8 of _0x29f913){if(!_0x1807f8['isDirectory']())continue;const _0x20dbcf=path_1[_0x1fdbab(0x1d1)]['join'](_0x869fd7,_0x1807f8['name']);try{fs_1['default'][_0x1fdbab(0x246)](_0x20dbcf,{'recursive':!![],'force':!![]}),_0x201f2d['tasksDeleted']++;}catch(_0x3d8ae7){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)](_0x1fdbab(0x271)+_0x20dbcf);}}}catch(_0x24e582){_0x201f2d['errors']['push'](_0x1fdbab(0x207)+_0x869fd7);}const _0x149567=getImagesDir(_0xd8df35,_0xf6b94);if(fs_1['default'][_0x1fdbab(0x235)](_0x149567))try{const _0x1677f7=fs_1['default'][_0x1fdbab(0x1fd)](_0x149567,{'withFileTypes':!![]});for(const _0x2bbad3 of _0x1677f7){const _0x5d8ab1=path_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x250)](_0x149567,_0x2bbad3[_0x1fdbab(0x233)]);try{fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x1ec)](_0x5d8ab1),_0x201f2d[_0x1fdbab(0x218)]++;}catch(_0xd372b){_0x201f2d[_0x1fdbab(0x1bd)][_0x1fdbab(0x211)]('删除图片失败:\x20'+_0x5d8ab1);}}}catch(_0x4fe073){_0x201f2d['errors'][_0x1fdbab(0x211)](_0x1fdbab(0x1f2)+_0x149567);}if(!_0x582dcd){const _0x59facf=getActiveSessionsFile(_0xd8df35,_0xf6b94);if(fs_1[_0x1fdbab(0x1d1)][_0x1fdbab(0x235)](_0x59facf))try{fs_1['default']['unlinkSync'](_0x59facf);}catch(_0x10e9d1){_0x201f2d[_0x1fdbab(0x1bd)]['push']('删除活跃会话文件失败:\x20'+_0x59facf);}_0xd8df35[_0x1fdbab(0x232)][_0x1fdbab(0x1f9)](_0xf6b94)&&_0xd8df35[_0x1fdbab(0x232)][_0x1fdbab(0x25f)](_0xf6b94);}}return _0x201f2d;}
|
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';const a12_0x2e7d1b=a12_0x36aa;(function(_0x19110b,_0xc5a211){const _0x52e947=a12_0x36aa,_0x516576=_0x19110b();while(!![]){try{const _0x5dfb1d=parseInt(_0x52e947(0x120))/0x1*(-parseInt(_0x52e947(0xca))/0x2)+parseInt(_0x52e947(0xf9))/0x3+-parseInt(_0x52e947(0xe4))/0x4+-parseInt(_0x52e947(0x12a))/0x5+parseInt(_0x52e947(0x134))/0x6+-parseInt(_0x52e947(0xff))/0x7*(-parseInt(_0x52e947(0x105))/0x8)+-parseInt(_0x52e947(0x160))/0x9*(parseInt(_0x52e947(0x147))/0xa);if(_0x5dfb1d===_0xc5a211)break;else _0x516576['push'](_0x516576['shift']());}catch(_0x38724b){_0x516576['push'](_0x516576['shift']());}}}(a12_0x16a0,0xf046c));var __importDefault=this&&this[a12_0x2e7d1b(0x135)]||function(_0x55d547){const _0x4ff7ee=a12_0x2e7d1b;return _0x55d547&&_0x55d547[_0x4ff7ee(0x165)]?_0x55d547:{'default':_0x55d547};};Object[a12_0x2e7d1b(0xb3)](exports,a12_0x2e7d1b(0x165),{'value':!![]}),exports['formatTaskInfo']=formatTaskInfo,exports[a12_0x2e7d1b(0xd5)]=countTodoTask,exports[a12_0x2e7d1b(0x133)]=getOneTodoTask,exports[a12_0x2e7d1b(0xcf)]=finishTask,exports['cancelTask']=cancelTask,exports[a12_0x2e7d1b(0xce)]=parseTaskCancelCommand,exports[a12_0x2e7d1b(0xb2)]=handleTask,exports['runTaskHandlerLoop']=runTaskHandlerLoop,exports[a12_0x2e7d1b(0x163)]=saveTask;function a12_0x36aa(_0x51d7c2,_0x26b6be){_0x51d7c2=_0x51d7c2-0xae;const _0x16a0b1=a12_0x16a0();let _0x36aa31=_0x16a0b1[_0x51d7c2];return _0x36aa31;}const utils_ok_1=require(a12_0x2e7d1b(0x112)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a12_0x2e7d1b(0x119))),child_process_1=require('child_process'),common_1=require(a12_0x2e7d1b(0x122)),messaging_1=require(a12_0x2e7d1b(0x15b)),claude_process_1=require('./claude-process'),session_1=require(a12_0x2e7d1b(0x153)),api_key_manager_1=require(a12_0x2e7d1b(0x123)),MAX_RETRY_COUNT=0x3;function formatTaskInfo(_0x2df6e9){const _0x5ee83a=a12_0x2e7d1b,_0x3f6489=[],_0x37d841=[],_0x2fa9b7=[],_0x69bfe7=[];for(const _0x549e8d of _0x2df6e9['config'][_0x5ee83a(0xc0)]){const _0x40f04a=(0x0,session_1[_0x5ee83a(0x116)])(_0x2df6e9,_0x549e8d['conversationId']);if(!fs_1['default'][_0x5ee83a(0x110)](_0x40f04a))continue;const _0x3f4ec8=utils_ok_1['fileUtil'][_0x5ee83a(0xdd)](_0x40f04a);for(const _0xfa38be of _0x3f4ec8){const _0x4ee91c=path_1['default'][_0x5ee83a(0xda)](_0xfa38be);try{const _0x53374b=utils_ok_1[_0x5ee83a(0x10c)][_0x5ee83a(0x103)](_0xfa38be);if(!_0x53374b)continue;if(_0x4ee91c===_0x5ee83a(0xc1))_0x3f6489[_0x5ee83a(0x145)](_0x53374b);else{if(_0x4ee91c===_0x5ee83a(0xbf))_0x37d841[_0x5ee83a(0x145)](_0x53374b);else{if(_0x4ee91c===_0x5ee83a(0x16b))_0x2fa9b7[_0x5ee83a(0x145)](_0x53374b);else _0x4ee91c===_0x5ee83a(0xf7)&&_0x69bfe7['push'](_0x53374b);}}}catch{}}}_0x3f6489[_0x5ee83a(0x11a)]((_0x10646f,_0x61fa71)=>_0x10646f['startTime']-_0x61fa71[_0x5ee83a(0xd0)]),_0x37d841[_0x5ee83a(0x11a)]((_0x18b703,_0x303e90)=>_0x18b703[_0x5ee83a(0xd0)]-_0x303e90[_0x5ee83a(0xd0)]),_0x2fa9b7[_0x5ee83a(0x11a)]((_0x1478c8,_0x1f3cbf)=>_0x1f3cbf[_0x5ee83a(0xd0)]-_0x1478c8[_0x5ee83a(0xd0)]),_0x69bfe7[_0x5ee83a(0x11a)]((_0x3ffc70,_0x586164)=>_0x586164[_0x5ee83a(0xd0)]-_0x3ffc70[_0x5ee83a(0xd0)]);const _0x18d068=[];if(_0x37d841[_0x5ee83a(0xed)]>0x0){const _0x92e721=_0x37d841['map'](_0xc9342d=>'#'+_0xc9342d[_0x5ee83a(0xd0)]+'\x20'+(_0xc9342d[_0x5ee83a(0xc4)]||_0xc9342d[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0xc9342d));_0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0xb9)+_0x37d841['length']+_0x5ee83a(0xf5)+_0x92e721[_0x5ee83a(0x143)]('\x0a'));}else _0x18d068['push'](_0x5ee83a(0x104));if(_0x3f6489[_0x5ee83a(0xed)]>0x0){const _0x9475df=_0x3f6489[_0x5ee83a(0xe1)](_0x555329=>'#'+_0x555329['startTime']+'\x20'+(_0x555329[_0x5ee83a(0xc4)]||_0x555329[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0x555329));_0x18d068['push'](_0x5ee83a(0x13b)+_0x3f6489[_0x5ee83a(0xed)]+_0x5ee83a(0xf5)+_0x9475df[_0x5ee83a(0x143)]('\x0a'));}else _0x18d068[_0x5ee83a(0x145)]('**📋\x20待办队列**\x0a无');const _0x510815=_0x2fa9b7[_0x5ee83a(0xdb)](0x0,0x5);if(_0x510815['length']>0x0){const _0x2e3dd1=_0x510815[_0x5ee83a(0xe1)](_0x5ac895=>'#'+_0x5ac895[_0x5ee83a(0xd0)]+'\x20'+(_0x5ac895[_0x5ee83a(0xc4)]||_0x5ac895[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0x5ac895));_0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0x132)+_0x510815[_0x5ee83a(0xed)]+'/'+_0x2fa9b7[_0x5ee83a(0xed)]+_0x5ee83a(0xf5)+_0x2e3dd1[_0x5ee83a(0x143)]('\x0a'));}else _0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0x139));if(_0x69bfe7[_0x5ee83a(0xed)]>0x0){const _0x3c9e86=_0x69bfe7['map'](_0x2e1cf1=>'#'+_0x2e1cf1[_0x5ee83a(0xd0)]+'\x20'+(_0x2e1cf1[_0x5ee83a(0xc4)]||_0x2e1cf1[_0x5ee83a(0x130)])+':\x20'+taskDisplayName(_0x2e1cf1)+(_0x2e1cf1[_0x5ee83a(0x14a)]?_0x5ee83a(0x14f)+_0x2e1cf1['retryCount']+'次)':''));_0x18d068[_0x5ee83a(0x145)](_0x5ee83a(0x129)+_0x69bfe7['length']+_0x5ee83a(0xf5)+_0x3c9e86[_0x5ee83a(0x143)]('\x0a'));}return _0x18d068['join']('\x0a\x0a');}function a12_0x16a0(){const _0x20e502=[']\x20任务预处理完成:\x20title=\x22',',\x20需求:\x20','❌\x20任务失败:\x20','7tcypMq','filter','getForceEnabledSettingsPath','output','getJSON','**⏳\x20处理中**\x0a无','12431728SabgyC','normal','parse','pipe',']\x20任务执行超时,重置为待办','sendDingMessage','抱歉,任务处理异常...','fileUtil','原始需求:\x20','stdout','getConversationDir','existsSync','config','utils-ok','已取消\x20','任务执行超时(10分钟),终止进程','taskCfg','getTasksDir','),使用原始prompt','unknown','path','sort',']\x20TPM\x20限流连续快速失败\x20','task',']\x20任务处理完成','--print','直接返回JSON,不要markdown代码块或其他内容。','48969jAUSMO','data','../common','./api-key-manager','indexOf','--agent','exitCode',']\x20执行命令:\x20','TPM限流快速失败次数过多','**❌\x20失败\x20(','424725QRATtL','addSuffixToFile',';\x20最后将回复内容保存至:\x20',']\x20任务预处理异常:','-failed.json','),\x20','senderStaffId','sessionWebhook','**✅\x20最近完成\x20(top\x20','getOneTodoTask','228792yQVEHs','__importDefault','dateUtil','/task-doing.json','--settings','**✅\x20最近完成**\x0a无','saveFileStr','**📋\x20待办队列\x20(','match','bypassPermissions','\x0a...共取消\x20','/task.json','.claude','-doing','resolveClaudeSettingsPath','join',']\x20预处理完成但任务文件已不存在:\x20','push',']\x20取消任务失败:\x20','676150lABCLG',']\x20更新任务重试计数失败:','timedOut','retryCount',']\x20检测到认证错误(401),标记任务失败','/result.md','ignore','title','\x20(重试','apiKey','pickValidApiKey','prompt','./session','cron','catch','kill','...','sleep','trim','isQuotaExhaustedError','./messaging','rename',']\x20无可用配额,任务重置为待办','markdown','close','171Tjbqrg','conversationId','s\x20后重试\x20(','saveTask',']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,','__esModule','write','\x0a原因:\x20','认证失败(401),API\x20Key\x20无效或服务未授权','apiKeyCfg','SIGKILL','task-done.json','YYYY-MM-DD-HH-mm-ss',']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20','promptSimply','error',']\x20任务预处理结果已更新:\x20','handleTask','defineProperty','splice','skill','\x20用户:\x20','stderr','\x20个待办任务:\x0a','**⏳\x20处理中\x20(','stringify','):\x20','settings.json','进程执行错误:\x20','未发现待办任务...','task-doing.json','conversations','task.json','格式:\x20{\x22title\x22:\x22简短标题(15字以内)\x22,\x22promptSimply\x22:\x22优化后的需求描述,保留原始需求的所有关键信息,使描述更清晰、结构化\x22}','无可用配额','senderNickName','任务已保存:\x20','baseUtil',']\x20退出码:\x20','rotateApiKey','message','8WHKcNj',']\x20TPM\x20限流快速失败连续','🔄\x20开始处理任务:\x20','default','parseTaskCancelCommand','finishTask','startTime','debugLog','writeFileSync','utf-8','getConversationConfig','countTodoTask','任务未按预期处理','settingLabel','now','format','basename','slice','timestamp','dirWalker','toString',']\x20任务预处理失败(退出码:',']\x20任务处理中:\x20','map','type',']\x20任务预处理进程错误:','1457456CGlkIJ','elapsed','任务文件解析失败,跳过:\x20',']\x20切换到\x20API\x20Key\x20模式','spawn',']\x20任务重置为待办\x20(重试','任务目录不存在:\x20','getFileStr','未找到匹配的待办任务:\x20','length','log','-doing.json',']\x20已取消任务:\x20#','\x20个任务','SIGTERM','读取任务文件失败:\x20','replace',')**\x0a',']\x20任务预处理JSON解析失败,使用原始prompt:\x20','task-failed.json',']\x20任务重试次数已达上限(','3965832HytBOF',']\x20任务预处理返回格式不正确,使用原始prompt','ensureSettingsWithApiKey'];a12_0x16a0=function(){return _0x20e502;};return a12_0x16a0();}function truncatePrompt(_0x5b7279,_0x15519e=0x50){const _0x53dcc2=a12_0x2e7d1b,_0x4f1455=_0x5b7279[_0x53dcc2(0xf4)](/\n/g,'\x20')[_0x53dcc2(0x159)]();return _0x4f1455[_0x53dcc2(0xed)]>_0x15519e?_0x4f1455[_0x53dcc2(0xdb)](0x0,_0x15519e)+_0x53dcc2(0x157):_0x4f1455;}function taskDisplayName(_0x2e3197){const _0x42b83=a12_0x2e7d1b;if(_0x2e3197['title'])return _0x2e3197[_0x42b83(0x14e)];return truncatePrompt(_0x2e3197['prompt']);}async function preprocessTask(_0x7dd3e,_0x571428,_0x1d4df7){const _0x238a40=a12_0x2e7d1b,_0x4cf799=(0x0,session_1['getConversationDir'])(_0x7dd3e,_0x571428),_0x331cbe='claude',_0x53c362=['--permission-mode','bypassPermissions',_0x238a40(0x11e)],_0x5da332=(0x0,claude_process_1[_0x238a40(0x142)])(_0x7dd3e,_0x4cf799);_0x5da332&&_0x53c362[_0x238a40(0x145)](_0x238a40(0x138),_0x5da332);const _0x174d8b=['请对以下任务需求进行预处理,生成简短标题和优化后的需求描述。',_0x238a40(0x11f),_0x238a40(0xc2),'',_0x238a40(0x10d)+_0x1d4df7]['join']('\x0a');_0x53c362['push'](_0x174d8b);const _0x2b69cc=0x7530;return new Promise(_0x2005af=>{const _0x254409=_0x238a40;let _0x1df5e7='';const _0x1b33f9=(0x0,child_process_1[_0x254409(0xe8)])(_0x331cbe,_0x53c362,{'cwd':_0x4cf799,'stdio':[_0x254409(0x14d),_0x254409(0x108),_0x254409(0x108)]}),_0x2a1e22=setTimeout(()=>{const _0x579186=_0x254409;_0x1b33f9[_0x579186(0x156)](_0x579186(0xf2)),setTimeout(()=>{const _0x5e70b6=_0x579186;try{_0x1b33f9['kill'](_0x5e70b6(0x16a));}catch{}},0xbb8);},_0x2b69cc);_0x1b33f9[_0x254409(0x10e)]['on'](_0x254409(0x121),_0x325273=>{const _0x2605e8=_0x254409;_0x1df5e7+=_0x325273[_0x2605e8(0xde)]();}),_0x1b33f9['stderr']['on'](_0x254409(0x121),()=>{}),_0x1b33f9['on'](_0x254409(0x15f),_0x291c7c=>{const _0x10ac02=_0x254409;clearTimeout(_0x2a1e22);if(_0x291c7c!==0x0||!_0x1df5e7[_0x10ac02(0x159)]()){console[_0x10ac02(0xee)]('['+(0x0,session_1[_0x10ac02(0xdc)])()+_0x10ac02(0xdf)+_0x291c7c+_0x10ac02(0x117)),_0x2005af(null);return;}try{let _0x9ba4dd=_0x1df5e7[_0x10ac02(0x159)]();const _0x1a74fa=_0x9ba4dd[_0x10ac02(0x13c)](/\{[\s\S]*\}/);if(_0x1a74fa)_0x9ba4dd=_0x1a74fa[0x0];const _0x191109=JSON[_0x10ac02(0x107)](_0x9ba4dd);_0x191109[_0x10ac02(0x14e)]&&_0x191109[_0x10ac02(0xaf)]?(console[_0x10ac02(0xee)]('['+(0x0,session_1[_0x10ac02(0xdc)])()+_0x10ac02(0xfc)+_0x191109['title']+'\x22'),_0x2005af({'title':String(_0x191109[_0x10ac02(0x14e)]),'promptSimply':String(_0x191109[_0x10ac02(0xaf)])})):(console[_0x10ac02(0xee)]('['+(0x0,session_1[_0x10ac02(0xdc)])()+_0x10ac02(0xfa)),_0x2005af(null));}catch(_0x2cf787){console['log']('['+(0x0,session_1['timestamp'])()+_0x10ac02(0xf6)+_0x2cf787),_0x2005af(null);}}),_0x1b33f9['on'](_0x254409(0xb0),_0x265873=>{const _0x5bfe4e=_0x254409;clearTimeout(_0x2a1e22),console['error']('['+(0x0,session_1[_0x5bfe4e(0xdc)])()+_0x5bfe4e(0xe3),_0x265873),_0x2005af(null);});});}function countTodoTask(_0x4ae3c5){const _0x24114e=a12_0x2e7d1b;let _0x25f10a=0x0;for(const _0x1b5f42 of _0x4ae3c5[_0x24114e(0x111)][_0x24114e(0xc0)]){const _0x3553bd=(0x0,session_1[_0x24114e(0x116)])(_0x4ae3c5,_0x1b5f42[_0x24114e(0x161)]);if(fs_1[_0x24114e(0xcd)]['existsSync'](_0x3553bd)){const _0x2e6097=utils_ok_1['fileUtil'][_0x24114e(0xdd)](_0x3553bd),_0x4386bf=_0x2e6097[_0x24114e(0x100)](_0x37c39b=>path_1[_0x24114e(0xcd)][_0x24114e(0xda)](_0x37c39b)===_0x24114e(0xc1));_0x25f10a+=_0x4386bf[_0x24114e(0xed)];}}return _0x25f10a;}async function getOneTodoTask(_0x3bd48c){const _0x573a70=a12_0x2e7d1b;for(const _0x52bacc of _0x3bd48c['config'][_0x573a70(0xc0)]){const _0x564be3=(0x0,session_1[_0x573a70(0x116)])(_0x3bd48c,_0x52bacc['conversationId']);if(!fs_1[_0x573a70(0xcd)][_0x573a70(0x110)](_0x564be3))continue;const _0x2a0c42=utils_ok_1[_0x573a70(0x10c)][_0x573a70(0xdd)](_0x564be3),_0x4c9dfd=_0x2a0c42[_0x573a70(0x100)](_0x5ed639=>path_1[_0x573a70(0xcd)]['basename'](_0x5ed639)==='task.json');if(_0x4c9dfd[_0x573a70(0xed)]===0x0)continue;const _0x3ed1ad=_0x4c9dfd[_0x573a70(0xe1)](_0x153462=>{const _0x46c435=_0x573a70;try{const _0x2d4c96=utils_ok_1[_0x46c435(0x10c)][_0x46c435(0x103)](_0x153462);return _0x2d4c96?{'file':_0x153462,'task':_0x2d4c96}:null;}catch{return console['error'](_0x46c435(0xe6)+_0x153462),null;}})[_0x573a70(0x100)](_0x329add=>_0x329add!==null)[_0x573a70(0x11a)]((_0x5e89cd,_0x117813)=>_0x5e89cd[_0x573a70(0x11c)][_0x573a70(0xd0)]-_0x117813[_0x573a70(0x11c)][_0x573a70(0xd0)]);if(_0x3ed1ad[_0x573a70(0xed)]>0x0){const {file:_0x320b21,task:_0x110d35}=_0x3ed1ad[0x0];return common_1['utils'][_0x573a70(0x12b)](_0x320b21,_0x573a70(0x141)),_0x110d35;}}return undefined;}async function finishTask(_0x16def5,_0x2349ae){const _0x22044e=a12_0x2e7d1b,_0x7f7eea=_0x2349ae+_0x22044e(0x137);let _0x4ef465;try{_0x4ef465=utils_ok_1[_0x22044e(0x10c)]['getJSON'](_0x7f7eea);}catch(_0x560ea8){console['error'](_0x22044e(0xf3)+_0x7f7eea,_0x560ea8);return;}const _0x12a599=_0x2349ae+_0x22044e(0x14c),_0xb02f7f=fs_1['default'][_0x22044e(0x110)](_0x12a599)?utils_ok_1[_0x22044e(0x10c)][_0x22044e(0xeb)](_0x12a599):_0x22044e(0x10b);await(0x0,messaging_1[_0x22044e(0x10a)])(_0x16def5,{'conversationId':_0x4ef465[_0x22044e(0x161)],'sessionWebhook':_0x4ef465[_0x22044e(0x131)],'atUserId':_0x4ef465[_0x22044e(0x130)],'content':_0xb02f7f,'msgType':_0x22044e(0x15e)});const _0x4f4f22=_0x7f7eea['replace']('-doing.json','-done.json');utils_ok_1[_0x22044e(0x10c)]['rename'](_0x7f7eea,_0x4f4f22);}async function failTask(_0x41d2c5,_0x417e69,_0x30cc74){const _0x4fbcb4=a12_0x2e7d1b,_0x316e49=_0x417e69+_0x4fbcb4(0x137);let _0x4d4499;try{_0x4d4499=utils_ok_1['fileUtil'][_0x4fbcb4(0x103)](_0x316e49);}catch(_0x50307a){console['error'](_0x4fbcb4(0xf3)+_0x316e49,_0x50307a);return;}await(0x0,messaging_1['sendDingMessage'])(_0x41d2c5,{'conversationId':_0x4d4499[_0x4fbcb4(0x161)],'sessionWebhook':_0x4d4499['sessionWebhook'],'atUserId':_0x4d4499['senderStaffId'],'content':_0x4fbcb4(0xfe)+taskDisplayName(_0x4d4499)+_0x4fbcb4(0x167)+_0x30cc74,'msgType':_0x4fbcb4(0x15e)});const _0x1c48d2=_0x316e49['replace'](_0x4fbcb4(0xef),_0x4fbcb4(0x12e));utils_ok_1[_0x4fbcb4(0x10c)][_0x4fbcb4(0x15c)](_0x316e49,_0x1c48d2);}async function resetTaskToTodo(_0x1fad9a,_0x1c936c,_0x58a089){const _0x3b0329=a12_0x2e7d1b,_0x5b7986=_0x1c936c+_0x3b0329(0x137),_0x3eaf7b=_0x1c936c+_0x3b0329(0x13f);if(!fs_1[_0x3b0329(0xcd)][_0x3b0329(0x110)](_0x5b7986))return![];try{const _0x3c7643=utils_ok_1['fileUtil']['getJSON'](_0x5b7986),_0x3b4663=(_0x3c7643['retryCount']||0x0)+0x1;if(_0x3b4663>=MAX_RETRY_COUNT)return console[_0x3b0329(0xee)]('['+(0x0,session_1['timestamp'])()+_0x3b0329(0xf8)+_0x3b4663+'/'+MAX_RETRY_COUNT+'),标记为失败:\x20'+(_0x3c7643['title']||_0x3c7643[_0x3b0329(0x152)])),_0x3c7643[_0x3b0329(0x14a)]=_0x3b4663,fs_1[_0x3b0329(0xcd)]['writeFileSync'](_0x5b7986,JSON[_0x3b0329(0xba)](_0x3c7643,null,0x2),_0x3b0329(0xd3)),await failTask(_0x1fad9a,_0x1c936c,_0x58a089+'\x20(已重试'+_0x3b4663+'次)'),![];_0x3c7643[_0x3b0329(0x14a)]=_0x3b4663,fs_1[_0x3b0329(0xcd)][_0x3b0329(0xd2)](_0x5b7986,JSON[_0x3b0329(0xba)](_0x3c7643,null,0x2),_0x3b0329(0xd3)),console['log']('['+(0x0,session_1[_0x3b0329(0xdc)])()+_0x3b0329(0xe9)+_0x3b4663+'/'+MAX_RETRY_COUNT+_0x3b0329(0xbb)+(_0x3c7643[_0x3b0329(0x14e)]||_0x3c7643['prompt']));}catch(_0x717337){console[_0x3b0329(0xb0)]('['+(0x0,session_1[_0x3b0329(0xdc)])()+_0x3b0329(0x148),_0x717337);}return fs_1['default'][_0x3b0329(0x110)](_0x5b7986)&&utils_ok_1[_0x3b0329(0x10c)][_0x3b0329(0x15c)](_0x5b7986,_0x3eaf7b),!![];}function cancelTask(_0x1e742e,_0x120fd0,_0x59d0a8){const _0xd93c83=a12_0x2e7d1b,_0x4c6f69=[],_0x3d0e30=_0x120fd0[_0xd93c83(0x159)](),_0x2bb5ad=_0x59d0a8?_0x1e742e[_0xd93c83(0x111)][_0xd93c83(0xc0)][_0xd93c83(0x100)](_0x294087=>_0x294087[_0xd93c83(0x161)]===_0x59d0a8):_0x1e742e[_0xd93c83(0x111)][_0xd93c83(0xc0)];for(const _0x505431 of _0x2bb5ad){const _0x3171c7=(0x0,session_1[_0xd93c83(0x116)])(_0x1e742e,_0x505431[_0xd93c83(0x161)]);if(!fs_1[_0xd93c83(0xcd)][_0xd93c83(0x110)](_0x3171c7))continue;const _0xfe54d6=utils_ok_1[_0xd93c83(0x10c)][_0xd93c83(0xdd)](_0x3171c7),_0x14f7b1=_0xfe54d6[_0xd93c83(0x100)](_0x1c6b59=>path_1[_0xd93c83(0xcd)]['basename'](_0x1c6b59)===_0xd93c83(0xc1));for(const _0x5f3c2c of _0x14f7b1){try{const _0x335ea0=utils_ok_1[_0xd93c83(0x10c)]['getJSON'](_0x5f3c2c);if(!_0x335ea0)continue;if(String(_0x335ea0[_0xd93c83(0xd0)])===_0x3d0e30){_0x4c6f69['push']({'file':_0x5f3c2c,'task':_0x335ea0});continue;}if(_0x335ea0['title']&&_0x335ea0[_0xd93c83(0x14e)]['includes'](_0x3d0e30)){_0x4c6f69[_0xd93c83(0x145)]({'file':_0x5f3c2c,'task':_0x335ea0});continue;}}catch{}}}if(_0x4c6f69[_0xd93c83(0xed)]===0x0)return _0xd93c83(0xec)+_0x3d0e30;let _0x1557d3=0x0;for(const {file:_0x3e2e49,task:_0x248a04}of _0x4c6f69){try{fs_1[_0xd93c83(0xcd)]['unlinkSync'](_0x3e2e49),_0x1557d3++,console[_0xd93c83(0xee)]('['+(0x0,session_1[_0xd93c83(0xdc)])()+_0xd93c83(0xf0)+_0x248a04[_0xd93c83(0xd0)]+'\x20'+(_0x248a04[_0xd93c83(0x14e)]||_0x248a04[_0xd93c83(0x152)]));}catch(_0x402559){console[_0xd93c83(0xb0)]('['+(0x0,session_1[_0xd93c83(0xdc)])()+_0xd93c83(0x146)+_0x3e2e49,_0x402559);}}const _0x869ec4=_0x4c6f69[_0xd93c83(0xdb)](0x0,0x5)[_0xd93c83(0xe1)](_0x502e5e=>'#'+_0x502e5e['task'][_0xd93c83(0xd0)]+'\x20'+taskDisplayName(_0x502e5e[_0xd93c83(0x11c)]))[_0xd93c83(0x143)]('\x0a'),_0x22d048=_0x1557d3>0x5?_0xd93c83(0x13e)+_0x1557d3+_0xd93c83(0xf1):'';return _0xd93c83(0x113)+_0x1557d3+_0xd93c83(0xb8)+_0x869ec4+_0x22d048;}function parseTaskCancelCommand(_0xebea2){const _0x32fb27=a12_0x2e7d1b,_0x367d1b=_0xebea2[_0x32fb27(0x159)](),_0x48945d=_0x367d1b[_0x32fb27(0x13c)](/^\/task\s+cancel\s+(.+)$/i);return _0x48945d?_0x48945d[0x1]['trim']():null;}function updateCmdArgsSettings(_0x26fafe,_0x2aad57){const _0x4078d9=a12_0x2e7d1b,_0x244692=_0x26fafe[_0x4078d9(0x124)]('--settings');_0x244692!==-0x1&&_0x26fafe[_0x4078d9(0xb4)](_0x244692,0x2),_0x2aad57&&_0x26fafe[_0x4078d9(0x145)]('--settings',_0x2aad57);}async function handleTask(_0x498fb4){const _0x39e939=a12_0x2e7d1b,_0x9a094=await getOneTodoTask(_0x498fb4);if(!_0x9a094){(0x0,session_1[_0x39e939(0xd1)])(_0x498fb4,_0x39e939(0xbe));return;}const _0x4de60f=(0x0,session_1[_0x39e939(0xd4)])(_0x498fb4,_0x9a094[_0x39e939(0x161)]),_0x339ce8=(0x0,session_1[_0x39e939(0x10f)])(_0x498fb4,_0x9a094[_0x39e939(0x161)]),_0xe7fd5=(0x0,session_1['getTasksDir'])(_0x498fb4,_0x9a094['conversationId'])+'/'+_0x9a094['startTimeStr'];if(!fs_1['default'][_0x39e939(0x110)](_0xe7fd5)){console['error'](_0x39e939(0xea)+_0xe7fd5);return;}_0x9a094[_0x39e939(0xe2)]!==_0x39e939(0x154)&&await(0x0,messaging_1[_0x39e939(0x10a)])(_0x498fb4,{'conversationId':_0x9a094['conversationId'],'sessionWebhook':_0x9a094[_0x39e939(0x131)],'atUserId':_0x9a094[_0x39e939(0x130)],'content':_0x39e939(0xcc)+taskDisplayName(_0x9a094)});const _0x13c297=_0xe7fd5+_0x39e939(0x14c),_0x1c5a09=_0xe7fd5+'/task.log';console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xe0)+(_0x9a094[_0x39e939(0x14e)]||_0x9a094[_0x39e939(0x152)]));const _0x4e0037=_0x9a094[_0x39e939(0xc4)]&&_0x9a094[_0x39e939(0x130)]?_0x9a094[_0x39e939(0xc4)]+'('+_0x9a094[_0x39e939(0x130)]+_0x39e939(0x12f):_0x39e939(0x118),_0x22f9df=_0x498fb4[_0x39e939(0x111)][_0x39e939(0x169)],_0x1aa2aa=(0x0,api_key_manager_1[_0x39e939(0x101)])(_0x339ce8);let _0x5ba62f=![],_0x2d34c3=null;if(_0x1aa2aa)console['log']('['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20检测到\x20FORCE_ENABLE,强制使用\x20settings-ding.json');else{if(_0x22f9df){_0x2d34c3=(0x0,api_key_manager_1[_0x39e939(0x151)])(_0x498fb4);if(!_0x2d34c3){console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x15d)),await resetTaskToTodo(_0x498fb4,_0xe7fd5,_0x39e939(0xc3));return;}_0x5ba62f=!![],console[_0x39e939(0xee)]('['+(0x0,session_1['timestamp'])()+_0x39e939(0xe7));}}const _0x430ffd=_0x4de60f?.[_0x39e939(0x115)]?.[_0x39e939(0xb5)],_0x380f78=_0x4de60f?.['agent'],_0x286ef1=_0x9a094[_0x39e939(0xaf)]||_0x9a094['prompt'],_0x5c5173=((_0x430ffd?'/'+_0x430ffd:'')+_0x39e939(0xb6)+_0x4e0037+_0x39e939(0xfd)+_0x286ef1+_0x39e939(0x12c)+_0x13c297)[_0x39e939(0x159)](),_0x546169=['--permission-mode',_0x39e939(0x13d),'--print',_0x5c5173];if(_0x1aa2aa)_0x546169[_0x39e939(0x145)]('--settings',_0x1aa2aa);else{if(_0x5ba62f&&_0x2d34c3){const _0x1d8955=(0x0,api_key_manager_1['ensureSettingsWithApiKey'])(_0x339ce8,_0x2d34c3);_0x546169[_0x39e939(0x145)](_0x39e939(0x138),_0x1d8955);}else{if(!_0x22f9df){const _0x39e4ff=path_1[_0x39e939(0xcd)]['join'](_0x339ce8,_0x39e939(0x140),_0x39e939(0xbc));fs_1[_0x39e939(0xcd)][_0x39e939(0x110)](_0x39e4ff)&&(_0x546169[_0x39e939(0x145)]('--settings',_0x39e4ff),console['log']('['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20自动检测到\x20settings.json:\x20'+_0x39e4ff));}}}_0x380f78&&_0x546169[_0x39e939(0x145)](_0x39e939(0x125),_0x380f78);(0x0,session_1[_0x39e939(0xd1)])(_0x498fb4,'执行命令:\x20claude\x20'+_0x546169[_0x39e939(0x143)]('\x20'));const _0x39f159=0xa*0x3c*0x3e8,_0x4b9c80=0x14,_0x3beacf=0x2710,_0x1f42b6=0x2710,_0x5149c3='claude',_0x546417=_0x28fd19=>{const _0xf61af5=_0x39e939,_0x4c52af=Date[_0xf61af5(0xd8)]();return new Promise(_0x33f507=>{const _0x42db81=_0xf61af5,_0x3c3f7=[];let _0xbca95b=![],_0x12d047=![];const _0x1728c3=(0x0,child_process_1[_0x42db81(0xe8)])(_0x5149c3,_0x28fd19,{'cwd':_0x339ce8,'stdio':[_0x42db81(0x14d),'pipe',_0x42db81(0x108)]}),_0x14a1b7=setTimeout(()=>{const _0x2e79e0=_0x42db81;!_0xbca95b&&(_0x12d047=!![],console['error'](_0x2e79e0(0x114)),_0x1728c3[_0x2e79e0(0x156)]('SIGTERM'),setTimeout(()=>{const _0x55ee04=_0x2e79e0;if(!_0xbca95b)_0x1728c3['kill'](_0x55ee04(0x16a));},0x1388));},_0x39f159);_0x1728c3['stdout']['on'](_0x42db81(0x121),_0x3b8a5c=>{const _0x4f84fb=_0x42db81,_0x2d632a=_0x3b8a5c[_0x4f84fb(0xde)]();process['stdout'][_0x4f84fb(0x166)](_0x2d632a),_0x3c3f7[_0x4f84fb(0x145)](_0x2d632a);}),_0x1728c3['stderr']['on'](_0x42db81(0x121),_0x40feb7=>{const _0x4cfd13=_0x42db81,_0x2df737=_0x40feb7[_0x4cfd13(0xde)]();process[_0x4cfd13(0xb7)][_0x4cfd13(0x166)](_0x2df737),_0x3c3f7[_0x4cfd13(0x145)](_0x2df737);}),_0x1728c3['on']('close',_0x476aab=>{const _0x2d4c37=_0x42db81;_0xbca95b=!![],clearTimeout(_0x14a1b7),_0x33f507({'exitCode':_0x476aab??0x1,'output':_0x3c3f7['join'](''),'elapsed':Date[_0x2d4c37(0xd8)]()-_0x4c52af,'timedOut':_0x12d047});}),_0x1728c3['on']('error',_0x3a08d1=>{const _0x4a9112=_0x42db81;console[_0x4a9112(0xb0)]('进程执行错误:',_0x3a08d1),_0x3c3f7[_0x4a9112(0x145)](_0x4a9112(0xbd)+_0x3a08d1[_0x4a9112(0xc9)]);});});};let _0x334fde,_0x942b1f,_0x1787b1=![],_0x71aaf4=0x0;while(!![]){const _0x233345=await _0x546417(_0x546169);_0x334fde=_0x233345[_0x39e939(0x126)],_0x942b1f=_0x233345[_0x39e939(0x102)],_0x1787b1=_0x233345[_0x39e939(0x149)];if(_0x334fde!==0x0){if(_0x1787b1){console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x109));const _0x2ba18c=['['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20执行命令:\x20'+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20超时('+_0x39f159/0x3e8+'s)',_0x942b1f]['join']('\x0a');fs_1[_0x39e939(0xcd)][_0x39e939(0xd2)](_0x1c5a09,_0x2ba18c),await resetTaskToTodo(_0x498fb4,_0xe7fd5,'执行超时');return;}if((0x0,api_key_manager_1[_0x39e939(0x15a)])(_0x942b1f)&&_0x22f9df){if(!_0x5ba62f){_0x2d34c3=(0x0,api_key_manager_1[_0x39e939(0x151)])(_0x498fb4);if(_0x2d34c3){_0x5ba62f=!![],_0x71aaf4=0x0;const _0x5eae94=(0x0,api_key_manager_1[_0x39e939(0xfb)])(_0x339ce8,_0x2d34c3);updateCmdArgsSettings(_0x546169,_0x5eae94),console[_0x39e939(0xee)]('['+(0x0,session_1['timestamp'])()+_0x39e939(0xe7));continue;}}else{if(_0x2d34c3){const _0x50f15a=(0x0,api_key_manager_1[_0x39e939(0xc8)])(_0x498fb4,_0x2d34c3[_0x39e939(0x150)]);if(_0x50f15a){_0x2d34c3=_0x50f15a,_0x71aaf4=0x0;const _0x388525=(0x0,api_key_manager_1[_0x39e939(0xfb)])(_0x339ce8,_0x2d34c3);updateCmdArgsSettings(_0x546169,_0x388525),console[_0x39e939(0xee)]('['+(0x0,session_1['timestamp'])()+_0x39e939(0xae)+(0x0,api_key_manager_1['settingLabel'])(_0x50f15a));continue;}}}console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x15d));const _0xde9558=['['+(0x0,session_1['timestamp'])()+']\x20执行命令:\x20'+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xc7)+_0x334fde,_0x942b1f][_0x39e939(0x143)]('\x0a');fs_1['default'][_0x39e939(0xd2)](_0x1c5a09,_0xde9558),await resetTaskToTodo(_0x498fb4,_0xe7fd5,'无可用配额(429)');return;}if((0x0,api_key_manager_1['isAuthenticationError'])(_0x942b1f)){console['log']('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x14b));const _0xc31041=['['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x127)+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1['timestamp'])()+']\x20退出码:\x20'+_0x334fde,_0x942b1f]['join']('\x0a');fs_1[_0x39e939(0xcd)][_0x39e939(0xd2)](_0x1c5a09,_0xc31041),await failTask(_0x498fb4,_0xe7fd5,_0x39e939(0x168));return;}if((0x0,claude_process_1['isRetryableApiError'])(_0x942b1f)){if(_0x233345[_0x39e939(0xe5)]<_0x1f42b6&&_0x5ba62f&&_0x2d34c3&&_0x22f9df){_0x71aaf4++;if(_0x71aaf4>=_0x4b9c80){const _0x1b2865=(0x0,api_key_manager_1[_0x39e939(0xc8)])(_0x498fb4,_0x2d34c3[_0x39e939(0x150)]);if(_0x1b2865){_0x2d34c3=_0x1b2865,_0x71aaf4=0x0;const _0x216aed=(0x0,api_key_manager_1[_0x39e939(0xfb)])(_0x339ce8,_0x2d34c3);updateCmdArgsSettings(_0x546169,_0x216aed),console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x11b)+_0x4b9c80+'\x20次,切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x39e939(0xd7)])(_0x1b2865)),await utils_ok_1[_0x39e939(0xc6)][_0x39e939(0x158)](_0x3beacf);continue;}}}else{if(_0x233345['elapsed']<_0x1f42b6){_0x71aaf4++;if(_0x71aaf4>=_0x4b9c80){console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xcb)+_0x4b9c80+'次,重置任务为待办');const _0x104dc7=['['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x127)+_0x5149c3+'\x20'+_0x546169['join']('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20退出码:\x20'+_0x334fde,_0x942b1f]['join']('\x0a');fs_1[_0x39e939(0xcd)][_0x39e939(0xd2)](_0x1c5a09,_0x104dc7),await resetTaskToTodo(_0x498fb4,_0xe7fd5,_0x39e939(0x128));return;}console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20检测到\x20TPM\x20限流(快速失败),'+_0x3beacf/0x3e8+_0x39e939(0x162)+_0x71aaf4+'/'+_0x4b9c80+')');}else _0x71aaf4=0x0,console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x164)+_0x3beacf/0x3e8+'s\x20后重试');}await utils_ok_1[_0x39e939(0xc6)][_0x39e939(0x158)](_0x3beacf);continue;}}break;}const _0x3a69ac=['['+(0x0,session_1[_0x39e939(0xdc)])()+']\x20执行命令:\x20'+_0x5149c3+'\x20'+_0x546169[_0x39e939(0x143)]('\x20'),'['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0xc7)+_0x334fde,_0x942b1f][_0x39e939(0x143)]('\x0a');fs_1[_0x39e939(0xcd)]['writeFileSync'](_0x1c5a09,_0x3a69ac);if(_0x334fde!==0x0){console[_0x39e939(0xb0)]('命令执行失败,\x20退出码:\x20'+_0x334fde),await failTask(_0x498fb4,_0xe7fd5,'执行失败(退出码:\x20'+_0x334fde+')');return;}if(fs_1['default'][_0x39e939(0x110)](_0x13c297))console[_0x39e939(0xee)]('['+(0x0,session_1[_0x39e939(0xdc)])()+_0x39e939(0x11d));else{console[_0x39e939(0xb0)](_0x39e939(0xd6)),await failTask(_0x498fb4,_0xe7fd5,'未生成结果文件');return;}await finishTask(_0x498fb4,_0xe7fd5);}async function runTaskHandlerLoop(_0x5f1a2f){const _0xd3a4b9=a12_0x2e7d1b;while(!![]){await handleTask(_0x5f1a2f)['catch'](_0x5c497a=>console['error'](_0x5c497a)),await utils_ok_1[_0xd3a4b9(0xc6)][_0xd3a4b9(0x158)](0x2710);}}async function saveTask(_0x24f64a,_0x49a3a1){const _0x4c67f7=a12_0x2e7d1b,{conversationId:_0x5b4fcd,prompt:_0x4606f5,senderStaffId:_0x5d8636,senderNickName:_0x2d0063,sessionWebhook:_0x4f87fc,type:type=_0x4c67f7(0x106)}=_0x49a3a1,_0x2cf293=Date['now'](),_0x30b070=utils_ok_1[_0x4c67f7(0x136)]['mm'](_0x2cf293)[_0x4c67f7(0xd9)](_0x4c67f7(0x16c)),_0xadf4c7=(0x0,session_1['getTasksDir'])(_0x24f64a,_0x5b4fcd)+'/'+_0x30b070,_0xe73409=_0xadf4c7+'/task.json',_0x1f69f9={'conversationId':_0x5b4fcd,'startTime':_0x2cf293,'startTimeStr':_0x30b070,'prompt':_0x4606f5,'senderStaffId':_0x5d8636,'senderNickName':_0x2d0063||'','sessionWebhook':_0x4f87fc,'type':type};await utils_ok_1[_0x4c67f7(0x10c)][_0x4c67f7(0x13a)](JSON[_0x4c67f7(0xba)](_0x1f69f9,null,0x2),_0xe73409),(0x0,session_1['debugLog'])(_0x24f64a,_0x4c67f7(0xc5)+_0xe73409),preprocessTask(_0x24f64a,_0x5b4fcd,_0x4606f5)['then'](_0x3e438a=>{const _0x10b2d7=_0x4c67f7;if(!_0x3e438a)return;try{const _0x395afa=_0xadf4c7+'/task-doing.json',_0x45bfff=fs_1['default'][_0x10b2d7(0x110)](_0x395afa)?_0x395afa:fs_1['default'][_0x10b2d7(0x110)](_0xe73409)?_0xe73409:null;if(!_0x45bfff){console[_0x10b2d7(0xee)]('['+(0x0,session_1['timestamp'])()+_0x10b2d7(0x144)+_0xadf4c7);return;}const _0x1b8298=utils_ok_1[_0x10b2d7(0x10c)][_0x10b2d7(0x103)](_0x45bfff);_0x1b8298['title']=_0x3e438a[_0x10b2d7(0x14e)],_0x1b8298[_0x10b2d7(0xaf)]=_0x3e438a['promptSimply'],fs_1['default'][_0x10b2d7(0xd2)](_0x45bfff,JSON[_0x10b2d7(0xba)](_0x1b8298,null,0x2),_0x10b2d7(0xd3)),console[_0x10b2d7(0xee)]('['+(0x0,session_1['timestamp'])()+_0x10b2d7(0xb1)+_0x3e438a['title']);}catch(_0xf31941){console[_0x10b2d7(0xb0)]('['+(0x0,session_1[_0x10b2d7(0xdc)])()+']\x20更新任务预处理结果失败:',_0xf31941);}})[_0x4c67f7(0x155)](_0x4911ba=>{const _0x269732=_0x4c67f7;console[_0x269732(0xb0)]('['+(0x0,session_1[_0x269732(0xdc)])()+_0x269732(0x12d),_0x4911ba);});}
|
package/dist/src/biz/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var a13_0x11954e=a13_0x36a2;(function(_0x1659cc,_0x3c0c58){var _0x3b824c=a13_0x36a2,_0x6ba007=_0x1659cc();while(!![]){try{var _0x2221ee=-parseInt(_0x3b824c(0x1cb))/0x1+parseInt(_0x3b824c(0x1d3))/0x2*(-parseInt(_0x3b824c(0x1cf))/0x3)+-parseInt(_0x3b824c(0x1c8))/0x4*(parseInt(_0x3b824c(0x1d4))/0x5)+parseInt(_0x3b824c(0x1d0))/0x6*(-parseInt(_0x3b824c(0x1cd))/0x7)+parseInt(_0x3b824c(0x1c9))/0x8+-parseInt(_0x3b824c(0x1cc))/0x9*(-parseInt(_0x3b824c(0x1d2))/0xa)+parseInt(_0x3b824c(0x1ce))/0xb*(parseInt(_0x3b824c(0x1c7))/0xc);if(_0x2221ee===_0x3c0c58)break;else _0x6ba007['push'](_0x6ba007['shift']());}catch(_0x3de4a6){_0x6ba007['push'](_0x6ba007['shift']());}}}(a13_0x5673,0xc7c18));function a13_0x36a2(_0x541adc,_0x2e72fe){_0x541adc=_0x541adc-0x1c7;var _0x567341=a13_0x5673();var _0x36a2b6=_0x567341[_0x541adc];return _0x36a2b6;}function a13_0x5673(){var _0x108d3c=['80pvDHjh','1022114PLnELH','5XHrQor','44754924pQsyiQ','5540500EYehhQ','12823544dTEvJP','__esModule','588339ABndEX','625563sCrtRp','21oKLOvy','11facywS','9daKeBm','3127482XXdpCB','defineProperty'];a13_0x5673=function(){return _0x108d3c;};return a13_0x5673();}Object[a13_0x11954e(0x1d1)](exports,a13_0x11954e(0x1ca),{'value':!![]});
|
package/dist/src/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const a14_0x37ab90=a14_0x1996;(function(_0x4f7e13,_0x26b840){const _0x18dfa6=a14_0x1996,_0x3ccd53=_0x4f7e13();while(!![]){try{const _0x4edeb7=-parseInt(_0x18dfa6(0x175))/0x1+-parseInt(_0x18dfa6(0x159))/0x2*(-parseInt(_0x18dfa6(0x15e))/0x3)+parseInt(_0x18dfa6(0x166))/0x4*(parseInt(_0x18dfa6(0x162))/0x5)+-parseInt(_0x18dfa6(0x165))/0x6*(parseInt(_0x18dfa6(0x155))/0x7)+-parseInt(_0x18dfa6(0x161))/0x8+-parseInt(_0x18dfa6(0x15b))/0x9*(-parseInt(_0x18dfa6(0x171))/0xa)+parseInt(_0x18dfa6(0x176))/0xb*(parseInt(_0x18dfa6(0x16e))/0xc);if(_0x4edeb7===_0x26b840)break;else _0x3ccd53['push'](_0x3ccd53['shift']());}catch(_0x3c3d08){_0x3ccd53['push'](_0x3ccd53['shift']());}}}(a14_0x3f8d,0xcccac));function a14_0x1996(_0x4b7588,_0x5a9367){_0x4b7588=_0x4b7588-0x155;const _0x3f8dca=a14_0x3f8d();let _0x199687=_0x3f8dca[_0x4b7588];return _0x199687;}var __importDefault=this&&this['__importDefault']||function(_0x118bb8){const _0x2cc7fc=a14_0x1996;return _0x118bb8&&_0x118bb8[_0x2cc7fc(0x178)]?_0x118bb8:{'default':_0x118bb8};};Object[a14_0x37ab90(0x174)](exports,a14_0x37ab90(0x178),{'value':!![]}),exports['utils']=exports['helper']=exports[a14_0x37ab90(0x158)]=void 0x0,exports[a14_0x37ab90(0x169)]=loadEnv;const utils_ok_1=require(a14_0x37ab90(0x15c)),path_1=__importDefault(require(a14_0x37ab90(0x160))),assert_1=__importDefault(require(a14_0x37ab90(0x15f))),fs_1=__importDefault(require('fs'));function loadEnv(){const _0x19dba3=a14_0x37ab90;fs_1[_0x19dba3(0x15d)]['existsSync'](process.env.HOME+_0x19dba3(0x16a))&&require(_0x19dba3(0x157))[_0x19dba3(0x164)]({'path':process.env.HOME+_0x19dba3(0x16a)}),require(_0x19dba3(0x157))['config']();}exports['projUtil']=((()=>{let _0x282b5e;return()=>{const _0x288172=a14_0x1996;return!_0x282b5e&&(_0x282b5e=new utils_ok_1[(_0x288172(0x177))](path_1[_0x288172(0x15d)]['resolve'](__dirname,_0x288172(0x16f)))),_0x282b5e;};})()),exports[a14_0x37ab90(0x168)]={'getCookiesByFile'(_0x38ac68){const _0x17dbda=a14_0x37ab90;(0x0,assert_1['default'])(fs_1[_0x17dbda(0x15d)][_0x17dbda(0x16d)](_0x38ac68),_0x17dbda(0x172)+_0x38ac68);const _0xa03aa8=utils_ok_1[_0x17dbda(0x167)][_0x17dbda(0x16b)](_0x38ac68);return _0xa03aa8[_0x17dbda(0x16c)];}},exports['utils']={'addSuffixToFile'(_0xda4cf5,_0x50a3b0){const _0x5af381=a14_0x37ab90,_0x567cee=path_1[_0x5af381(0x15d)][_0x5af381(0x170)](_0xda4cf5),_0x15fd2d=path_1['default'][_0x5af381(0x15a)](_0xda4cf5),_0x2009ea=path_1['default'][_0x5af381(0x156)](_0xda4cf5,_0x15fd2d),_0x4a3797=''+_0x2009ea+_0x50a3b0+_0x15fd2d,_0x35abc7=path_1[_0x5af381(0x15d)][_0x5af381(0x163)](_0x567cee,_0x4a3797);fs_1[_0x5af381(0x15d)][_0x5af381(0x173)](_0xda4cf5,_0x35abc7);}};function a14_0x3f8d(){const _0x4a32fc=['12Rgwtcg','../','dirname','40kdXfNX','cookie缓存文件不存在:\x20','renameSync','defineProperty','504892kmhOko','20980619eWCKqM','ProjUtil','__esModule','7kbqSrx','basename','dotenv','projUtil','22xhnlRm','extname','3321153LwXEXV','utils-ok','default','17718aPTNdB','assert','path','10913648PkCtXC','9865fUIGaz','join','config','4525488qMjxKF','28GEFeGs','fileUtil','helper','loadEnv','/.cc-ding/.env','getJSON','cookies','existsSync'];a14_0x3f8d=function(){return _0x4a32fc;};return a14_0x3f8d();}
|
package/dist/src/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';const a15_0x23881d=a15_0x2bf6;(function(_0x2c5040,_0x49746f){const _0x5911a0=a15_0x2bf6,_0x10b584=_0x2c5040();while(!![]){try{const _0x4a8e56=-parseInt(_0x5911a0(0xa8))/0x1+parseInt(_0x5911a0(0x9e))/0x2+parseInt(_0x5911a0(0xa1))/0x3*(parseInt(_0x5911a0(0xa5))/0x4)+parseInt(_0x5911a0(0xa3))/0x5+-parseInt(_0x5911a0(0x9d))/0x6+parseInt(_0x5911a0(0xa2))/0x7+-parseInt(_0x5911a0(0xa9))/0x8;if(_0x4a8e56===_0x49746f)break;else _0x10b584['push'](_0x10b584['shift']());}catch(_0x17dfc5){_0x10b584['push'](_0x10b584['shift']());}}}(a15_0x39a2,0x1de9a));Object[a15_0x23881d(0x9c)](exports,a15_0x23881d(0xa4),{'value':!![]}),exports[a15_0x23881d(0xa0)]=exports[a15_0x23881d(0x9f)]=void 0x0;function a15_0x2bf6(_0x4419b6,_0x42c487){_0x4419b6=_0x4419b6-0x9b;const _0x39a28e=a15_0x39a2();let _0x2bf67a=_0x39a28e[_0x4419b6];return _0x2bf67a;}const utils_ok_1=require(a15_0x23881d(0xaa)),platform=require('os')[a15_0x23881d(0x9b)](),isOSX=platform===a15_0x23881d(0xa6);exports[a15_0x23881d(0x9f)]=utils_ok_1['strUtil'][a15_0x23881d(0xa7)](process.env.DEBUG||''),exports['DEV']=isOSX;function a15_0x39a2(){const _0x184348=['DEBUG','DEV','21LtlGHF','745647kYrYWP','1058045SGzvos','__esModule','87452CrSSta','darwin','safeBoolean','129295CTAjyH','2057112vHBRKB','utils-ok','platform','defineProperty','1001442nGAuLc','409384HCpAQd'];a15_0x39a2=function(){return _0x184348;};return a15_0x39a2();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-ding",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "钉钉机器人对接本地Claude工具",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
"ts-node": "^10.9.2",
|
|
32
32
|
"typescript": "^5.9.3"
|
|
33
33
|
},
|
|
34
|
+
"license": "MIT",
|
|
34
35
|
"author": "yhn",
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=24"
|
|
38
|
+
},
|
|
35
39
|
"bin": {
|
|
36
40
|
"cc-ding": "./dist/bin/cc-ding.js"
|
|
37
41
|
},
|