cc-ding 0.0.1 → 0.0.2
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/README.md +182 -3
- 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 +11 -11
package/dist/src/biz/cron.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function a5_0x235f(_0x4736c5,_0x518c04){_0x4736c5=_0x4736c5-0x10a;const _0xf36b69=a5_0xf36b();let _0x235fea=_0xf36b69[_0x4736c5];return _0x235fea;}const a5_0x10eba8=a5_0x235f;(function(_0x168923,_0x245e1e){const _0x1a9571=a5_0x235f,_0x1259b6=_0x168923();while(!![]){try{const _0x1aa585=-parseInt(_0x1a9571(0x10c))/0x1*(-parseInt(_0x1a9571(0x12d))/0x2)+-parseInt(_0x1a9571(0x14c))/0x3+parseInt(_0x1a9571(0x135))/0x4+parseInt(_0x1a9571(0x112))/0x5+-parseInt(_0x1a9571(0x153))/0x6+parseInt(_0x1a9571(0x19a))/0x7*(parseInt(_0x1a9571(0x185))/0x8)+parseInt(_0x1a9571(0x197))/0x9*(parseInt(_0x1a9571(0x164))/0xa);if(_0x1aa585===_0x245e1e)break;else _0x1259b6['push'](_0x1259b6['shift']());}catch(_0x2b9fc1){_0x1259b6['push'](_0x1259b6['shift']());}}}(a5_0xf36b,0x7c713));var __importDefault=this&&this[a5_0x10eba8(0x175)]||function(_0x27d739){return _0x27d739&&_0x27d739['__esModule']?_0x27d739:{'default':_0x27d739};};Object['defineProperty'](exports,a5_0x10eba8(0x171),{'value':!![]}),exports['CronEngine']=void 0x0,exports[a5_0x10eba8(0x190)]=isValidCronExpression,exports['formatCronJobList']=formatCronJobList,exports[a5_0x10eba8(0x189)]=formatCronJobInfo;const fs_1=__importDefault(require('fs')),readline_1=__importDefault(require(a5_0x10eba8(0x115))),child_process_1=require('child_process'),utils_ok_1=require(a5_0x10eba8(0x157)),messaging_1=require(a5_0x10eba8(0x11f)),claude_process_1=require(a5_0x10eba8(0x11b)),task_1=require(a5_0x10eba8(0x14d)),session_1=require(a5_0x10eba8(0x15c));function getCronFile(_0x3edae4){const _0x22fb04=a5_0x10eba8;return(0x0,session_1[_0x22fb04(0x141)])(_0x3edae4)+'/cron.json';}function loadCronJobs(_0x4d08e5){const _0x25c693=a5_0x10eba8,_0x808ffe=getCronFile(_0x4d08e5);try{const _0x5e97da=JSON[_0x25c693(0x125)](fs_1[_0x25c693(0x130)][_0x25c693(0x1a6)](_0x808ffe,'utf-8'));return Array[_0x25c693(0x120)](_0x5e97da)?_0x5e97da:_0x5e97da[_0x25c693(0x159)]||[];}catch{return[];}}function saveCronJobs(_0x4c3d8e,_0x58263b){const _0x32abd4=a5_0x10eba8,_0x390677=getCronFile(_0x4c3d8e);fs_1['default'][_0x32abd4(0x18d)](_0x390677,JSON['stringify'](_0x58263b,null,0x2),_0x32abd4(0x1ae));}function matchesCronField(_0x588384,_0x163180,_0x48bcfa,_0x34e73d){const _0x123bae=a5_0x10eba8;if(_0x588384==='*')return!![];if(_0x588384['includes'](','))return _0x588384[_0x123bae(0x132)](',')[_0x123bae(0x194)](_0x36504e=>matchesCronField(_0x36504e[_0x123bae(0x14b)](),_0x163180,_0x48bcfa,_0x34e73d));if(_0x588384[_0x123bae(0x15f)]('/')){const _0x260af7=_0x588384[_0x123bae(0x1ad)]('/'),_0x5de4e7=_0x588384[_0x123bae(0x117)](0x0,_0x260af7),_0x586462=parseInt(_0x588384[_0x123bae(0x117)](_0x260af7+0x1),0xa);if(isNaN(_0x586462)||_0x586462<=0x0)return![];let _0x532d27=_0x48bcfa,_0x496485=_0x34e73d;if(_0x5de4e7!=='*'){if(_0x5de4e7[_0x123bae(0x15f)]('-')){const _0x423552=_0x5de4e7['split']('-')[_0x123bae(0x1a4)](Number);_0x532d27=_0x423552[0x0],_0x496485=_0x423552[0x1];}else _0x532d27=parseInt(_0x5de4e7,0xa),_0x496485=_0x34e73d;}if(_0x163180<_0x532d27||_0x163180>_0x496485)return![];return(_0x163180-_0x532d27)%_0x586462===0x0;}if(_0x588384[_0x123bae(0x15f)]('-')){const _0x3d2079=_0x588384[_0x123bae(0x132)]('-')['map'](Number);return _0x163180>=_0x3d2079[0x0]&&_0x163180<=_0x3d2079[0x1];}const _0x44914c=parseInt(_0x588384,0xa);return!isNaN(_0x44914c)&&_0x163180===_0x44914c;}function matchesCron(_0x45e2d8,_0x51d41f){const _0x56428e=a5_0x10eba8,_0x2c6e0e=_0x45e2d8[_0x56428e(0x14b)]()[_0x56428e(0x132)](/\s+/);if(_0x2c6e0e['length']!==0x5)return![];const _0x1a0f48=_0x51d41f[_0x56428e(0x137)](),_0x3f6686=_0x51d41f[_0x56428e(0x19f)](),_0x38a97e=_0x51d41f[_0x56428e(0x193)](),_0x1cda40=_0x51d41f['getMonth']()+0x1,_0x33c766=_0x51d41f['getDay']();if(!matchesCronField(_0x2c6e0e[0x0],_0x1a0f48,0x0,0x3b))return![];if(!matchesCronField(_0x2c6e0e[0x1],_0x3f6686,0x0,0x17))return![];if(!matchesCronField(_0x2c6e0e[0x3],_0x1cda40,0x1,0xc))return![];const _0x37dc69=matchesCronField(_0x2c6e0e[0x2],_0x38a97e,0x1,0x1f),_0x58004e=matchesCronField(_0x2c6e0e[0x4],_0x33c766,0x0,0x7)||_0x33c766===0x0&&matchesCronField(_0x2c6e0e[0x4],0x7,0x0,0x7),_0x1c583e=_0x2c6e0e[0x2]==='*',_0x4a18d9=_0x2c6e0e[0x4]==='*';if(_0x1c583e&&_0x4a18d9)return!![];if(_0x1c583e)return _0x58004e;if(_0x4a18d9)return _0x37dc69;return _0x37dc69||_0x58004e;}function isValidCronExpression(_0x681011){const _0x40f690=a5_0x10eba8,_0x5bcb5b=_0x681011[_0x40f690(0x14b)]()['split'](/\s+/);if(_0x5bcb5b[_0x40f690(0x154)]!==0x5)return![];const _0x1d52f7=/^(\*|\d+|\d+-\d+|\*\/\d+|\d+\/\d+|\d+-\d+\/\d+|\d+(,\d+)+)$/;return _0x5bcb5b['every'](_0x13bd59=>_0x1d52f7[_0x40f690(0x169)](_0x13bd59));}const ANALYSIS_PROMPT=a5_0x10eba8(0x10a);async function analyzeCronWithClaude(_0x30d745,_0x385903,_0x4309d8){const _0x5da4ca=a5_0x10eba8,_0x4191e5=_0x30d745[_0x5da4ca(0x1b1)](_0x385903),_0x1fb65b=_0x5da4ca(0x121),_0x1dae5e=ANALYSIS_PROMPT[_0x5da4ca(0x165)](_0x5da4ca(0x178),_0x4309d8),_0x1477a4=[_0x5da4ca(0x1a5),_0x5da4ca(0x13d),'--print','--output-format',_0x5da4ca(0x1a2),_0x5da4ca(0x111)],_0x51bf01=(0x0,claude_process_1[_0x5da4ca(0x173)])(_0x30d745,_0x4191e5);return _0x51bf01&&_0x1477a4[_0x5da4ca(0x16b)](_0x5da4ca(0x13e),_0x51bf01),console[_0x5da4ca(0x1a1)]('['+(0x0,session_1[_0x5da4ca(0x138)])()+_0x5da4ca(0x1a9)+_0x1fb65b+'\x20'+_0x1477a4['join']('\x20')),new Promise((_0x16dbe2,_0x346cb3)=>{const _0x4a8959=_0x5da4ca,_0xf534=(0x0,child_process_1[_0x4a8959(0x182)])(_0x1fb65b,_0x1477a4,{'cwd':_0x4191e5,'stdio':['pipe','pipe',_0x4a8959(0x118)]});_0xf534[_0x4a8959(0x15a)]?.[_0x4a8959(0x12e)](_0x1dae5e+'\x0a'),_0xf534['stdin']?.[_0x4a8959(0x158)]();let _0x474310='',_0x4de444='';const _0x236669=readline_1['default'][_0x4a8959(0x16e)]({'input':_0xf534['stdout']});_0x236669['on'](_0x4a8959(0x176),_0x43479f=>{const _0x3ce182=_0x4a8959,_0x5a4593=(0x0,claude_process_1[_0x3ce182(0x10b)])(_0x43479f);_0x5a4593?.[_0x3ce182(0x10f)]===_0x3ce182(0x1a0)&&_0x5a4593['content']&&(_0x474310=_0x5a4593[_0x3ce182(0x1aa)]);}),_0xf534['stderr']?.['on'](_0x4a8959(0x1a8),_0x12c67b=>{const _0x2bd4cd=_0x4a8959;_0x4de444+=_0x12c67b[_0x2bd4cd(0x145)]();});const _0x31de2a=setTimeout(()=>{const _0x5b3b3c=_0x4a8959;_0xf534['kill'](),_0x346cb3(new Error(_0x5b3b3c(0x12a)));},0xea60);_0xf534['on'](_0x4a8959(0x128),_0x39e650=>{const _0x345cd4=_0x4a8959;clearTimeout(_0x31de2a);if(_0x39e650===0x0&&_0x474310)try{const _0x1d8354=_0x474310[_0x345cd4(0x10d)](/\{[\s\S]*\}/);if(_0x1d8354){const _0x311c7e=JSON[_0x345cd4(0x125)](_0x1d8354[0x0]);if(_0x311c7e[_0x345cd4(0x11c)]&&_0x311c7e[_0x345cd4(0x170)]){_0x16dbe2(_0x311c7e);return;}}_0x346cb3(new Error(_0x345cd4(0x13f)));}catch{_0x346cb3(new Error(_0x345cd4(0x18a)));}else{const _0x592518=_0x4de444[_0x345cd4(0x14b)]()?'\x20('+_0x4de444['trim']()[_0x345cd4(0x117)](0x0,0xc8)+')':'';console[_0x345cd4(0x13c)]('['+(0x0,session_1[_0x345cd4(0x138)])()+_0x345cd4(0x13a)+_0x39e650+')'+_0x592518);const _0x183ca9=_0x4de444;if(/\b429\b/['test'](_0x183ca9))_0x346cb3(new Error('Claude\x20配额已耗尽(429),请稍后重试或明天再试'));else{if(/\b422\b/['test'](_0x183ca9)||/TPM|额度超限/i[_0x345cd4(0x169)](_0x183ca9))_0x346cb3(new Error(_0x345cd4(0x13b)));else{if(/\b401\b/[_0x345cd4(0x169)](_0x183ca9)||/auth|认证|permission/i[_0x345cd4(0x169)](_0x183ca9))_0x346cb3(new Error(_0x345cd4(0x17c)));else _0x39e650===0x1&&!_0x474310&&!_0x4de444['trim']()?_0x346cb3(new Error(_0x345cd4(0x177))):_0x346cb3(new Error(_0x345cd4(0x123)+_0x39e650+')'+_0x592518));}}}}),_0xf534['on']('error',_0x2be0f7=>{const _0x113d45=_0x4a8959;clearTimeout(_0x31de2a),_0x346cb3(new Error(_0x113d45(0x19b)+_0x2be0f7[_0x113d45(0x131)]));});});}function formatCronJobList(_0x2e0f99){const _0x3cc2a6=a5_0x10eba8;if(_0x2e0f99['length']===0x0)return _0x3cc2a6(0x11a);const _0x247100=[_0x3cc2a6(0x144)];for(const _0x4ac74c of _0x2e0f99){const _0x40def5=_0x4ac74c['enabled']?'✅':'⏸️',_0x359081=_0x4ac74c[_0x3cc2a6(0x180)]||'-';_0x247100[_0x3cc2a6(0x16b)]('**'+_0x40def5+'\x20'+_0x4ac74c['id']+'**'),_0x247100['push'](_0x3cc2a6(0x110)+_0x4ac74c[_0x3cc2a6(0x1af)]+'`'),_0x247100['push'](_0x3cc2a6(0x18e)+_0x4ac74c['description']),_0x247100[_0x3cc2a6(0x16b)](_0x3cc2a6(0x1b0)+_0x4ac74c[_0x3cc2a6(0x170)]),_0x247100[_0x3cc2a6(0x16b)](_0x3cc2a6(0x181)+_0x4ac74c[_0x3cc2a6(0x151)]),_0x247100[_0x3cc2a6(0x16b)]('-\x20上次执行:\x20'+_0x359081),_0x247100[_0x3cc2a6(0x16b)]('');}return _0x247100[_0x3cc2a6(0x16b)](_0x3cc2a6(0x161)),_0x247100[_0x3cc2a6(0x133)]('\x0a');}function formatCronJobInfo(_0x490c0a){const _0x5cea30=a5_0x10eba8,_0x48712c=_0x490c0a[_0x5cea30(0x166)]?_0x5cea30(0x122):_0x5cea30(0x156);return['###\x20⏰\x20定时任务\x20'+_0x490c0a['id'],'',_0x5cea30(0x163)+_0x48712c,_0x5cea30(0x11e)+_0x490c0a['cronExpression']+'`',_0x5cea30(0x18c)+_0x490c0a['description'],_0x5cea30(0x19d)+_0x490c0a['prompt'],_0x5cea30(0x11d)+_0x490c0a[_0x5cea30(0x151)],_0x5cea30(0x18f)+_0x490c0a[_0x5cea30(0x124)],_0x5cea30(0x143)+(_0x490c0a[_0x5cea30(0x180)]||'-')]['join']('\x0a');}function a5_0xf36b(){const _0xcbf2a=['./claude-process','cron','-\x20**创建者:**\x20','-\x20**Cron:**\x20`','./messaging','isArray','claude','✅\x20启用','分析失败\x20(退出码:\x20','createdAt','parse','desc','findIndex','close','delete','分析超时(60s)',']\x20Cron并发上限(',']\x20Cron引擎已启动,\x20共\x20','2xftfcA','write','conversationId','default','message','split','join',']\x20Cron执行Claude查询失败:\x20','2542536JGjyAu','config','getMinutes','timestamp','MAX_CONCURRENT_JOBS',']\x20Cron分析进程退出(','Claude\x20TPM\x20限流(422),请稍后重试','error','bypassPermissions','--settings','Claude\x20返回格式不正确','executeClaudeQuery','getClientDir','\x20的会话配置不存在,\x20跳过执行','-\x20**上次执行:**\x20','###\x20⏰\x20定时任务列表\x0a','toString','[cron]','mkdirSync',']\x20删除定时任务:\x20',']\x20[SYSTEM]:\x20定时任务触发:\x20','addJob','trim','2505444sigUIf','./task',']\x20Cron执行失败:\x20','checkJobsAt','\x20已降级到任务队列:\x20','senderNick','find','1766082InDfgr','length','description','⏸️\x20暂停','utils-ok','end','jobs','stdin','size','./session','startScheduler','已恢复','includes',']\x20新增定时任务:\x20','💡\x20`/cron\x20pause\x20<id>`\x20暂停\x20|\x20`/cron\x20resume\x20<id>`\x20恢复\x20|\x20`/cron\x20delete\x20<id>`\x20删除','dingToken','-\x20**状态:**\x20','7330mjXEwb','replace','enabled','executeJob',']\x20Cron任务\x20','test','toggleJob','push','tick','CronEngine','createInterface','runningJobIds','prompt','__esModule','/session.log','resolveClaudeSettingsPath','destroy','__importDefault','line','Claude\x20进程异常退出,无输出。请检查\x20claude\x20命令是否可用','{INPUT}','warn','taskCfg','filter','Claude\x20认证失败(401),请检查\x20API\x20Key\x20配置','agent','activeSessions','appendFileSync','lastRunAt','-\x20创建者:\x20','spawn','\x20的检查','senderStaffId','5395272JYtbkQ','lastCheckedTime','toISOString','\x20启用)','formatCronJobInfo','JSON\x20解析失败','getJob','-\x20**描述:**\x20','writeFileSync','-\x20描述:\x20','-\x20**创建时间:**\x20','isValidCronExpression','start','saveTask','getDate','some','now','已暂停','639hAVenN','persist','timer','7KZyiAb','启动\x20Claude\x20进程失败:\x20','listJobs','-\x20**任务:**\x20','enqueueAsTask','getHours','result','log','stream-json','catch','map','--permission-mode','readFileSync','findActiveSession','data',']\x20Cron分析:\x20','content','saveActiveSession','has','indexOf','utf-8','cronExpression','-\x20任务:\x20','getConversationDir','分析以下定时任务描述,提取cron表达式和任务内容。\x0a\x0a用户输入:\x20{INPUT}\x0a\x0a请严格返回以下JSON格式(不要返回其他任何内容):\x0a{\x22cron\x22:\x225位cron表达式(分\x20时\x20日\x20月\x20周)\x22,\x22prompt\x22:\x22要执行的任务提示词\x22,\x22desc\x22:\x22简短的中文描述\x22}\x0a\x0a常见cron格式:\x0a-\x20每天早上9点:\x20\x220\x209\x20*\x20*\x20*\x22\x0a-\x20每周一早上9点:\x20\x220\x209\x20*\x20*\x201\x22\x0a-\x20工作日早上9点:\x20\x220\x209\x20*\x20*\x201-5\x22\x0a-\x20每小时:\x20\x220\x20*\x20*\x20*\x20*\x22\x0a-\x20每30分钟:\x20\x22*/30\x20*\x20*\x20*\x20*\x22\x0a-\x20每天中午12点:\x20\x220\x2012\x20*\x20*\x20*\x22\x0a-\x20每月1号早上9点:\x20\x220\x209\x201\x20*\x20*\x22\x0a-\x20每周五下午3点:\x20\x220\x2015\x20*\x20*\x205\x22','parseClaudeStreamLine','28709KdmQWf','match','format','type','-\x20Cron:\x20`','--verbose','1242075oiCMOk','splice','stopScheduler','readline','add','substring','pipe','defaultDingToken','📭\x20暂无定时任务'];a5_0xf36b=function(){return _0xcbf2a;};return a5_0xf36b();}class CronEngine{constructor(_0x5bc2eb){const _0x3500f9=a5_0x10eba8;this[_0x3500f9(0x159)]=[],this[_0x3500f9(0x199)]=null,this[_0x3500f9(0x186)]=-0x1,this[_0x3500f9(0x16f)]=new Set(),this[_0x3500f9(0x139)]=0x3,this['dc']=_0x5bc2eb,this[_0x3500f9(0x159)]=loadCronJobs(_0x5bc2eb);}[a5_0x10eba8(0x191)](){const _0x1557a2=a5_0x10eba8;this[_0x1557a2(0x15d)]();const _0x2ba53c=this[_0x1557a2(0x159)][_0x1557a2(0x17b)](_0x4647a5=>_0x4647a5[_0x1557a2(0x166)])[_0x1557a2(0x154)];console[_0x1557a2(0x1a1)]('['+(0x0,session_1[_0x1557a2(0x138)])()+_0x1557a2(0x12c)+this[_0x1557a2(0x159)]['length']+'\x20个任务\x20('+_0x2ba53c+_0x1557a2(0x188));}[a5_0x10eba8(0x174)](){const _0x57f7c0=a5_0x10eba8;this[_0x57f7c0(0x114)]();}[a5_0x10eba8(0x14a)](_0x756da6){const _0x4674c7=a5_0x10eba8,_0x1bbf89={'id':'cron_'+Date[_0x4674c7(0x195)](),'conversationId':_0x756da6[_0x4674c7(0x12f)],'cronExpression':_0x756da6[_0x4674c7(0x1af)],'description':_0x756da6[_0x4674c7(0x155)],'prompt':_0x756da6[_0x4674c7(0x170)],'enabled':!![],'createdAt':(0x0,session_1[_0x4674c7(0x138)])(),'senderStaffId':_0x756da6[_0x4674c7(0x184)],'senderNick':_0x756da6[_0x4674c7(0x151)]};return this[_0x4674c7(0x159)][_0x4674c7(0x16b)](_0x1bbf89),this[_0x4674c7(0x198)](),console[_0x4674c7(0x1a1)]('['+(0x0,session_1['timestamp'])()+_0x4674c7(0x160)+_0x1bbf89['id']+'\x20['+_0x1bbf89[_0x4674c7(0x1af)]+']\x20'+_0x1bbf89[_0x4674c7(0x155)]),_0x1bbf89;}['removeJob'](_0x39ab2a){const _0x282bc9=a5_0x10eba8,_0x4791ab=this[_0x282bc9(0x159)][_0x282bc9(0x127)](_0x3edfd6=>_0x3edfd6['id']===_0x39ab2a);if(_0x4791ab===-0x1)return![];const _0x4788e0=this[_0x282bc9(0x159)][_0x282bc9(0x113)](_0x4791ab,0x1)[0x0];return this['persist'](),console[_0x282bc9(0x1a1)]('['+(0x0,session_1['timestamp'])()+_0x282bc9(0x148)+_0x4788e0['id']),!![];}[a5_0x10eba8(0x16a)](_0x309c26,_0x1f2b6b){const _0x1086fb=a5_0x10eba8,_0x4bc849=this[_0x1086fb(0x159)]['find'](_0x246da7=>_0x246da7['id']===_0x309c26);if(!_0x4bc849)return![];return _0x4bc849['enabled']=_0x1f2b6b,this[_0x1086fb(0x198)](),console[_0x1086fb(0x1a1)]('['+(0x0,session_1[_0x1086fb(0x138)])()+']\x20定时任务\x20'+_0x4bc849['id']+'\x20'+(_0x1f2b6b?_0x1086fb(0x15e):_0x1086fb(0x196))),!![];}[a5_0x10eba8(0x19c)](_0x1be84b){const _0x39436b=a5_0x10eba8;if(_0x1be84b)return this[_0x39436b(0x159)][_0x39436b(0x17b)](_0x5c639b=>_0x5c639b[_0x39436b(0x12f)]===_0x1be84b);return[...this[_0x39436b(0x159)]];}[a5_0x10eba8(0x18b)](_0x3dc289){const _0x1b0192=a5_0x10eba8;return this[_0x1b0192(0x159)][_0x1b0192(0x152)](_0x1b70c1=>_0x1b70c1['id']===_0x3dc289);}async['analyzeAndCreate'](_0x2bfd04,_0xc0b151,_0x4cb364,_0x2888cb){const _0x36378a=a5_0x10eba8;try{const _0x110288=await analyzeCronWithClaude(this['dc'],_0x2bfd04,_0xc0b151);if(!isValidCronExpression(_0x110288['cron']))return{'error':'Claude\x20返回的cron表达式无效:\x20'+_0x110288[_0x36378a(0x11c)]};const _0x53bc63=this[_0x36378a(0x14a)]({'conversationId':_0x2bfd04,'cronExpression':_0x110288[_0x36378a(0x11c)],'description':_0x110288[_0x36378a(0x126)]||_0xc0b151['substring'](0x0,0x32),'prompt':_0x110288[_0x36378a(0x170)],'senderStaffId':_0x4cb364,'senderNick':_0x2888cb});return{'job':_0x53bc63};}catch(_0x179b76){return{'error':_0x179b76 instanceof Error?_0x179b76[_0x36378a(0x131)]:String(_0x179b76)};}}[a5_0x10eba8(0x198)](){const _0x4a2007=a5_0x10eba8;saveCronJobs(this['dc'],this[_0x4a2007(0x159)]);}['startScheduler'](){const _0x51bcaf=a5_0x10eba8,_0x2857f4=Date[_0x51bcaf(0x195)](),_0x52c7d0=0xea60-_0x2857f4%0xea60;setTimeout(()=>{const _0x168d93=_0x51bcaf;this['tick'](),this[_0x168d93(0x199)]=setInterval(()=>this[_0x168d93(0x16c)](),0xea60);},_0x52c7d0);}['stopScheduler'](){const _0x4b1be1=a5_0x10eba8;this[_0x4b1be1(0x199)]&&(clearInterval(this[_0x4b1be1(0x199)]),this[_0x4b1be1(0x199)]=null);}[a5_0x10eba8(0x16c)](){const _0x521cf3=a5_0x10eba8,_0x521b65=Date[_0x521cf3(0x195)](),_0x7e0559=this[_0x521cf3(0x186)]<0x0?_0x521b65-_0x521b65%0xea60:this[_0x521cf3(0x186)]+0xea60-this['lastCheckedTime']%0xea60,_0x54911f=_0x521b65-_0x521b65%0xea60;for(let _0x37e7d9=_0x7e0559;_0x37e7d9<=_0x54911f;_0x37e7d9+=0xea60){const _0x452a93=new Date(_0x37e7d9);if(!this[_0x521cf3(0x14f)](_0x452a93))break;}this[_0x521cf3(0x186)]=_0x521b65;}[a5_0x10eba8(0x14f)](_0x51179f){const _0x2a21ee=a5_0x10eba8;if(this['runningJobIds'][_0x2a21ee(0x15b)]>=this[_0x2a21ee(0x139)])return console['warn']('['+(0x0,session_1[_0x2a21ee(0x138)])()+_0x2a21ee(0x12b)+this[_0x2a21ee(0x139)]+'),\x20跳过\x20'+_0x51179f[_0x2a21ee(0x187)]()+_0x2a21ee(0x183)),![];for(const _0x59fb39 of this['jobs']){if(!_0x59fb39['enabled'])continue;if(this['runningJobIds'][_0x2a21ee(0x1ac)](_0x59fb39['id']))continue;if(this[_0x2a21ee(0x16f)][_0x2a21ee(0x15b)]>=this[_0x2a21ee(0x139)])break;if(!matchesCron(_0x59fb39[_0x2a21ee(0x1af)],_0x51179f))continue;console[_0x2a21ee(0x1a1)]('['+(0x0,session_1[_0x2a21ee(0x138)])()+']\x20Cron触发:\x20'+_0x59fb39['id']+'\x20['+_0x59fb39[_0x2a21ee(0x1af)]+']\x20'+_0x59fb39[_0x2a21ee(0x155)]),this[_0x2a21ee(0x167)](_0x59fb39)[_0x2a21ee(0x1a3)](_0xe8180=>{const _0x3cafe9=_0x2a21ee;console['error']('['+(0x0,session_1[_0x3cafe9(0x138)])()+_0x3cafe9(0x14e)+_0x59fb39['id'],_0xe8180);});}return!![];}async['executeJob'](_0x10d6c4){const _0x208306=a5_0x10eba8;this[_0x208306(0x16f)][_0x208306(0x116)](_0x10d6c4['id']);try{const _0x31a661=this['dc']['getConversationConfig'](_0x10d6c4[_0x208306(0x12f)]);if(!_0x31a661){console[_0x208306(0x179)]('['+(0x0,session_1[_0x208306(0x138)])()+_0x208306(0x168)+_0x10d6c4['id']+_0x208306(0x142));return;}const _0x4e5a94=!!(_0x31a661[_0x208306(0x162)]||this['dc'][_0x208306(0x136)][_0x208306(0x119)]);if(!_0x4e5a94){console[_0x208306(0x179)]('['+(0x0,session_1[_0x208306(0x138)])()+_0x208306(0x168)+_0x10d6c4['id']+'\x20无通知能力(无dingToken且无defaultDingToken),\x20跳过执行');return;}const _0x4b4400=(0x0,session_1[_0x208306(0x1a7)])(this['dc'],_0x10d6c4[_0x208306(0x12f)]);if(_0x4b4400){console[_0x208306(0x1a1)]('['+(0x0,session_1[_0x208306(0x138)])()+_0x208306(0x168)+_0x10d6c4['id']+'\x20的会话有活跃session,\x20降级到任务队列'),await this[_0x208306(0x19e)](_0x10d6c4);return;}const _0x34047e=Date[_0x208306(0x195)](),_0x1c98b2={'conversationId':_0x10d6c4[_0x208306(0x12f)],'sessionWebhook':'','startTime':_0x34047e,'startTimeStr':utils_ok_1['dateUtil']['mm'](_0x34047e)[_0x208306(0x10e)]('YYYY-MM-DD-HH-mm-ss'),'startStaffId':_0x10d6c4[_0x208306(0x184)],'startNickName':'[cron]'+_0x10d6c4[_0x208306(0x151)]},_0x4b0615=(0x0,session_1['getSessionDir'])(this['dc'],_0x1c98b2);fs_1[_0x208306(0x130)][_0x208306(0x147)](_0x4b0615,{'recursive':!![]}),fs_1['default'][_0x208306(0x18d)](_0x4b0615+'/session.json',JSON['stringify'](_0x1c98b2,null,0x2),_0x208306(0x1ae)),this['dc']['activeSessions']['set'](_0x10d6c4['conversationId'],{'session':_0x1c98b2,'lastSenderStaffId':_0x10d6c4[_0x208306(0x184)],'isProcessing':!![],'conversationConfig':_0x31a661}),(0x0,session_1['saveActiveSession'])(this['dc'],_0x10d6c4[_0x208306(0x12f)]),console['log']('['+(0x0,session_1[_0x208306(0x138)])()+']\x20Cron任务\x20'+_0x10d6c4['id']+'\x20开始执行:\x20'+_0x10d6c4[_0x208306(0x155)]),fs_1[_0x208306(0x130)][_0x208306(0x17f)](_0x4b0615+_0x208306(0x172),'['+(0x0,session_1['timestamp'])()+_0x208306(0x149)+_0x10d6c4[_0x208306(0x155)]+'\x0a',_0x208306(0x1ae));try{await(0x0,claude_process_1[_0x208306(0x140)])(this['dc'],_0x1c98b2,_0x10d6c4[_0x208306(0x170)],{'skill':_0x31a661[_0x208306(0x17a)]?.['skill'],'agent':_0x31a661[_0x208306(0x17d)],'senderNick':_0x10d6c4['senderNick'],'senderStaffId':_0x10d6c4[_0x208306(0x184)]});}catch(_0x3fd392){console[_0x208306(0x13c)]('['+(0x0,session_1[_0x208306(0x138)])()+_0x208306(0x134)+_0x10d6c4['id'],_0x3fd392),await(0x0,messaging_1['sendDingMessage'])(this['dc'],{'conversationId':_0x10d6c4['conversationId'],'sessionWebhook':'','atUserId':_0x10d6c4['senderStaffId'],'content':'❌\x20定时任务执行失败:\x20'+(_0x3fd392 instanceof Error?_0x3fd392['message']:String(_0x3fd392))});}finally{this['dc'][_0x208306(0x17e)][_0x208306(0x129)](_0x10d6c4['conversationId']),(0x0,session_1[_0x208306(0x1ab)])(this['dc'],_0x10d6c4[_0x208306(0x12f)]);}_0x10d6c4['lastRunAt']=(0x0,session_1[_0x208306(0x138)])(),this[_0x208306(0x198)]();}finally{this[_0x208306(0x16f)]['delete'](_0x10d6c4['id']);}}async[a5_0x10eba8(0x19e)](_0x4721d3){const _0x358c39=a5_0x10eba8;try{await(0x0,task_1[_0x358c39(0x192)])(this['dc'],{'conversationId':_0x4721d3[_0x358c39(0x12f)],'prompt':_0x4721d3[_0x358c39(0x170)],'senderStaffId':_0x4721d3[_0x358c39(0x184)],'senderNickName':_0x358c39(0x146)+_0x4721d3['senderNick'],'sessionWebhook':'','type':_0x358c39(0x11c)}),console['log']('['+(0x0,session_1[_0x358c39(0x138)])()+_0x358c39(0x168)+_0x4721d3['id']+_0x358c39(0x150)+_0x4721d3[_0x358c39(0x155)]);}catch(_0x28446c){console[_0x358c39(0x13c)]('['+(0x0,session_1[_0x358c39(0x138)])()+_0x358c39(0x168)+_0x4721d3['id']+'\x20降级到任务队列失败:',_0x28446c);}_0x4721d3[_0x358c39(0x180)]=(0x0,session_1[_0x358c39(0x138)])(),this[_0x358c39(0x198)]();}}exports[a5_0x10eba8(0x16d)]=CronEngine;
|
|
1
|
+
'use strict';const a5_0x4570cc=a5_0x248e;(function(_0x11d57d,_0x230a44){const _0xfe1e1e=a5_0x248e,_0x23325b=_0x11d57d();while(!![]){try{const _0x7fc432=parseInt(_0xfe1e1e(0x237))/0x1+parseInt(_0xfe1e1e(0x266))/0x2+parseInt(_0xfe1e1e(0x265))/0x3+parseInt(_0xfe1e1e(0x231))/0x4+-parseInt(_0xfe1e1e(0x283))/0x5+-parseInt(_0xfe1e1e(0x210))/0x6+-parseInt(_0xfe1e1e(0x289))/0x7;if(_0x7fc432===_0x230a44)break;else _0x23325b['push'](_0x23325b['shift']());}catch(_0x18f3b0){_0x23325b['push'](_0x23325b['shift']());}}}(a5_0x4b87,0x66821));var __importDefault=this&&this[a5_0x4570cc(0x20d)]||function(_0x2fc57d){const _0x33dbdc=a5_0x4570cc;return _0x2fc57d&&_0x2fc57d[_0x33dbdc(0x269)]?_0x2fc57d:{'default':_0x2fc57d};};Object[a5_0x4570cc(0x207)](exports,a5_0x4570cc(0x269),{'value':!![]}),exports[a5_0x4570cc(0x232)]=void 0x0,exports[a5_0x4570cc(0x200)]=isValidCronExpression,exports['formatCronJobList']=formatCronJobList,exports[a5_0x4570cc(0x28d)]=formatCronJobInfo;function a5_0x248e(_0x143afd,_0x2e1413){_0x143afd=_0x143afd-0x1ea;const _0x4b87b9=a5_0x4b87();let _0x248eb9=_0x4b87b9[_0x143afd];return _0x248eb9;}const fs_1=__importDefault(require('fs')),readline_1=__importDefault(require(a5_0x4570cc(0x1f2))),child_process_1=require(a5_0x4570cc(0x223)),utils_ok_1=require('utils-ok'),messaging_1=require(a5_0x4570cc(0x267)),claude_process_1=require(a5_0x4570cc(0x26a)),task_1=require(a5_0x4570cc(0x259)),session_1=require('./session');function getCronFile(_0x2958b8){const _0x474d1f=a5_0x4570cc;return(0x0,session_1['getClientDir'])(_0x2958b8)+_0x474d1f(0x228);}function loadCronJobs(_0x1ecdc1){const _0x3b3c5a=a5_0x4570cc,_0xedb616=getCronFile(_0x1ecdc1);try{const _0x3e187b=JSON[_0x3b3c5a(0x26f)](fs_1['default'][_0x3b3c5a(0x20b)](_0xedb616,_0x3b3c5a(0x235)));return Array[_0x3b3c5a(0x27f)](_0x3e187b)?_0x3e187b:_0x3e187b[_0x3b3c5a(0x263)]||[];}catch{return[];}}function saveCronJobs(_0x2d589d,_0x283b4a){const _0x25e851=a5_0x4570cc,_0x1047f3=getCronFile(_0x2d589d);fs_1['default'][_0x25e851(0x264)](_0x1047f3,JSON[_0x25e851(0x246)](_0x283b4a,null,0x2),'utf-8');}function matchesCronField(_0x42c3b5,_0x94dee8,_0x1f5768,_0x14eb68){const _0x43911d=a5_0x4570cc;if(_0x42c3b5==='*')return!![];if(_0x42c3b5[_0x43911d(0x1f7)](','))return _0x42c3b5['split'](',')[_0x43911d(0x1fb)](_0x3595bc=>matchesCronField(_0x3595bc['trim'](),_0x94dee8,_0x1f5768,_0x14eb68));if(_0x42c3b5[_0x43911d(0x1f7)]('/')){const _0x231b87=_0x42c3b5[_0x43911d(0x24d)]('/'),_0x3a1c28=_0x42c3b5[_0x43911d(0x284)](0x0,_0x231b87),_0x272e4e=parseInt(_0x42c3b5[_0x43911d(0x284)](_0x231b87+0x1),0xa);if(isNaN(_0x272e4e)||_0x272e4e<=0x0)return![];let _0x4b117d=_0x1f5768,_0x8e82a0=_0x14eb68;if(_0x3a1c28!=='*'){if(_0x3a1c28[_0x43911d(0x1f7)]('-')){const _0x4d5e8a=_0x3a1c28['split']('-')['map'](Number);_0x4b117d=_0x4d5e8a[0x0],_0x8e82a0=_0x4d5e8a[0x1];}else _0x4b117d=parseInt(_0x3a1c28,0xa),_0x8e82a0=_0x14eb68;}if(_0x94dee8<_0x4b117d||_0x94dee8>_0x8e82a0)return![];return(_0x94dee8-_0x4b117d)%_0x272e4e===0x0;}if(_0x42c3b5[_0x43911d(0x1f7)]('-')){const _0x323ab1=_0x42c3b5[_0x43911d(0x250)]('-')[_0x43911d(0x216)](Number);return _0x94dee8>=_0x323ab1[0x0]&&_0x94dee8<=_0x323ab1[0x1];}const _0x1d50bc=parseInt(_0x42c3b5,0xa);return!isNaN(_0x1d50bc)&&_0x94dee8===_0x1d50bc;}function matchesCron(_0x39950b,_0x3f3a17){const _0x25389e=a5_0x4570cc,_0x17d117=_0x39950b[_0x25389e(0x288)]()[_0x25389e(0x250)](/\s+/);if(_0x17d117[_0x25389e(0x22f)]!==0x5)return![];const _0x4c7a07=_0x3f3a17['getMinutes'](),_0x896635=_0x3f3a17[_0x25389e(0x27c)](),_0x32eb4e=_0x3f3a17[_0x25389e(0x1ef)](),_0x22360f=_0x3f3a17[_0x25389e(0x1fc)]()+0x1,_0x38554f=_0x3f3a17[_0x25389e(0x1eb)]();if(!matchesCronField(_0x17d117[0x0],_0x4c7a07,0x0,0x3b))return![];if(!matchesCronField(_0x17d117[0x1],_0x896635,0x0,0x17))return![];if(!matchesCronField(_0x17d117[0x3],_0x22360f,0x1,0xc))return![];const _0x2eaa69=matchesCronField(_0x17d117[0x2],_0x32eb4e,0x1,0x1f),_0x3aabf9=matchesCronField(_0x17d117[0x4],_0x38554f,0x0,0x7)||_0x38554f===0x0&&matchesCronField(_0x17d117[0x4],0x7,0x0,0x7),_0x1b8964=_0x17d117[0x2]==='*',_0x3c7b04=_0x17d117[0x4]==='*';if(_0x1b8964&&_0x3c7b04)return!![];if(_0x1b8964)return _0x3aabf9;if(_0x3c7b04)return _0x2eaa69;return _0x2eaa69||_0x3aabf9;}function isValidCronExpression(_0x30592f){const _0x1b4339=a5_0x4570cc,_0x3fd029=_0x30592f[_0x1b4339(0x288)]()[_0x1b4339(0x250)](/\s+/);if(_0x3fd029[_0x1b4339(0x22f)]!==0x5)return![];const _0x245423=/^(\*|\d+|\d+-\d+|\*\/\d+|\d+\/\d+|\d+-\d+\/\d+|\d+(,\d+)+)$/;return _0x3fd029[_0x1b4339(0x239)](_0x56d95d=>_0x245423['test'](_0x56d95d));}const ANALYSIS_PROMPT=a5_0x4570cc(0x229);async function analyzeCronWithClaude(_0x502e7d,_0x4a86cd,_0x4016d8){const _0x46eb6a=a5_0x4570cc,_0x429d5e=_0x502e7d[_0x46eb6a(0x28c)](_0x4a86cd),_0x1b071d='claude',_0x595759=ANALYSIS_PROMPT[_0x46eb6a(0x217)]('{INPUT}',_0x4016d8),_0x21f151=['--permission-mode',_0x46eb6a(0x256),'--print',_0x46eb6a(0x1f9),_0x46eb6a(0x258),_0x46eb6a(0x254)],_0x3384f4=(0x0,claude_process_1[_0x46eb6a(0x257)])(_0x502e7d,_0x429d5e);return _0x3384f4&&_0x21f151[_0x46eb6a(0x243)](_0x46eb6a(0x22c),_0x3384f4),console[_0x46eb6a(0x20c)]('['+(0x0,session_1['timestamp'])()+_0x46eb6a(0x201)+_0x1b071d+'\x20'+_0x21f151[_0x46eb6a(0x1f8)]('\x20')),new Promise((_0xd7201e,_0x12d3a2)=>{const _0x55b145=_0x46eb6a,_0x6de307=(0x0,child_process_1[_0x55b145(0x205)])(_0x1b071d,_0x21f151,{'cwd':_0x429d5e,'stdio':[_0x55b145(0x1ed),_0x55b145(0x1ed),_0x55b145(0x1ed)]});_0x6de307[_0x55b145(0x22b)]?.['write'](_0x595759+'\x0a'),_0x6de307['stdin']?.[_0x55b145(0x21c)]();let _0x4ef153='',_0x1b6a32='';const _0xb084dd=readline_1[_0x55b145(0x245)][_0x55b145(0x27e)]({'input':_0x6de307[_0x55b145(0x211)]});_0xb084dd['on'](_0x55b145(0x208),_0x39edbb=>{const _0x5d470f=_0x55b145,_0x5f5a97=(0x0,claude_process_1[_0x5d470f(0x27d)])(_0x39edbb);_0x5f5a97?.[_0x5d470f(0x28a)]===_0x5d470f(0x27a)&&_0x5f5a97[_0x5d470f(0x230)]&&(_0x4ef153=_0x5f5a97['content']);}),_0x6de307[_0x55b145(0x260)]?.['on'](_0x55b145(0x22d),_0x2c3dd7=>{const _0x40521c=_0x55b145;_0x1b6a32+=_0x2c3dd7[_0x40521c(0x253)]();});const _0x5479b6=setTimeout(()=>{const _0x596584=_0x55b145;_0x6de307[_0x596584(0x276)](),_0x12d3a2(new Error(_0x596584(0x25c)));},0xea60);_0x6de307['on'](_0x55b145(0x271),_0x375f11=>{const _0x3f12aa=_0x55b145;clearTimeout(_0x5479b6);if(_0x375f11===0x0&&_0x4ef153)try{const _0x569685=_0x4ef153[_0x3f12aa(0x287)](/\{[\s\S]*\}/);if(_0x569685){const _0x13b853=JSON[_0x3f12aa(0x26f)](_0x569685[0x0]);if(_0x13b853[_0x3f12aa(0x23f)]&&_0x13b853[_0x3f12aa(0x220)]){_0xd7201e(_0x13b853);return;}}_0x12d3a2(new Error('Claude\x20返回格式不正确'));}catch{_0x12d3a2(new Error(_0x3f12aa(0x27b)));}else{const _0x4dca8e=_0x1b6a32['trim']()?'\x20('+_0x1b6a32[_0x3f12aa(0x288)]()[_0x3f12aa(0x284)](0x0,0xc8)+')':'';console[_0x3f12aa(0x24f)]('['+(0x0,session_1[_0x3f12aa(0x281)])()+_0x3f12aa(0x23a)+_0x375f11+')'+_0x4dca8e);const _0x55aedc=_0x1b6a32;if(/\b429\b/[_0x3f12aa(0x280)](_0x55aedc))_0x12d3a2(new Error(_0x3f12aa(0x23b)));else{if(/\b422\b/[_0x3f12aa(0x280)](_0x55aedc)||/TPM|额度超限/i[_0x3f12aa(0x280)](_0x55aedc))_0x12d3a2(new Error(_0x3f12aa(0x270)));else{if(/\b401\b/[_0x3f12aa(0x280)](_0x55aedc)||/auth|认证|permission/i['test'](_0x55aedc))_0x12d3a2(new Error(_0x3f12aa(0x209)));else _0x375f11===0x1&&!_0x4ef153&&!_0x1b6a32[_0x3f12aa(0x288)]()?_0x12d3a2(new Error(_0x3f12aa(0x1f1))):_0x12d3a2(new Error(_0x3f12aa(0x24a)+_0x375f11+')'+_0x4dca8e));}}}}),_0x6de307['on']('error',_0x1128a5=>{const _0x21ce95=_0x55b145;clearTimeout(_0x5479b6),_0x12d3a2(new Error(_0x21ce95(0x26b)+_0x1128a5[_0x21ce95(0x21a)]));});});}function a5_0x4b87(){const _0x434784=['bypassPermissions','resolveClaudeSettingsPath','stream-json','./task','tick','-\x20Cron:\x20`','分析超时(60s)','stopScheduler','dateUtil','executeJob','stderr','-\x20**创建时间:**\x20',']\x20Cron引擎已启动,\x20共\x20','jobs','writeFileSync','1666542ZiooUp','1629538XSfKwT','./messaging','size','__esModule','./claude-process','启动\x20Claude\x20进程失败:\x20','saveActiveSession','filter','delete','parse','Claude\x20TPM\x20限流(422),请稍后重试','close','runningJobIds','sendDingMessage','-\x20**上次执行:**\x20','start','kill','cron_','findIndex','\x20个任务\x20(','result','JSON\x20解析失败','getHours','parseClaudeStreamLine','createInterface','isArray','test','timestamp','activeSessions','3885580OMkaSX','substring','taskCfg','timer','match','trim','7170590jyGWcu','type','getConversationConfig','getConversationDir','formatCronJobInfo','[cron]','getDay','startScheduler','pipe','\x20无通知能力(无dingToken且无defaultDingToken),\x20跳过执行','getDate','/session.json','Claude\x20进程异常退出,无输出。请检查\x20claude\x20命令是否可用','readline','warn','mkdirSync','persist','listJobs','includes','join','--output-format','/session.log','some','getMonth','lastCheckedTime','find','addJob','isValidCronExpression',']\x20Cron分析:\x20','MAX_CONCURRENT_JOBS','lastRunAt','toggleJob','spawn','dingToken','defineProperty','line','Claude\x20认证失败(401),请检查\x20API\x20Key\x20配置','now','readFileSync','log','__importDefault','✅\x20启用','catch','959958dHpLPD','stdout','getSessionDir','format','YYYY-MM-DD-HH-mm-ss',']\x20Cron并发上限(','map','replace','cronExpression',']\x20Cron触发:\x20','message','Claude\x20返回的cron表达式无效:\x20','end','enabled','-\x20上次执行:\x20','📭\x20暂无定时任务','prompt','skill','senderStaffId','child_process','splice',']\x20删除定时任务:\x20','senderNick','destroy','/cron.json','分析以下定时任务描述,提取cron表达式和任务内容。\x0a\x0a用户输入:\x20{INPUT}\x0a\x0a请严格返回以下JSON格式(不要返回其他任何内容):\x0a{\x22cron\x22:\x225位cron表达式(分\x20时\x20日\x20月\x20周)\x22,\x22prompt\x22:\x22要执行的任务提示词\x22,\x22desc\x22:\x22简短的中文描述\x22}\x0a\x0a常见cron格式:\x0a-\x20每天早上9点:\x20\x220\x209\x20*\x20*\x20*\x22\x0a-\x20每周一早上9点:\x20\x220\x209\x20*\x20*\x201\x22\x0a-\x20工作日早上9点:\x20\x220\x209\x20*\x20*\x201-5\x22\x0a-\x20每小时:\x20\x220\x20*\x20*\x20*\x20*\x22\x0a-\x20每30分钟:\x20\x22*/30\x20*\x20*\x20*\x20*\x22\x0a-\x20每天中午12点:\x20\x220\x2012\x20*\x20*\x20*\x22\x0a-\x20每月1号早上9点:\x20\x220\x209\x201\x20*\x20*\x22\x0a-\x20每周五下午3点:\x20\x220\x2015\x20*\x20*\x205\x22','已恢复','stdin','--settings','data','已暂停','length','content','1192828aaAbOV','CronEngine','-\x20**任务:**\x20','conversationId','utf-8','appendFileSync','712862IaBbbW','-\x20**状态:**\x20','every',']\x20Cron分析进程退出(','Claude\x20配额已耗尽(429),请稍后重试或明天再试','set','-\x20**创建者:**\x20','has','cron','enqueueAsTask','getJob','checkJobsAt','push','\x20降级到任务队列失败:','default','stringify',']\x20Cron任务\x20','saveTask','description','分析失败\x20(退出码:\x20','agent','analyzeAndCreate','indexOf','-\x20描述:\x20','error','split',']\x20[SYSTEM]:\x20定时任务触发:\x20','###\x20⏰\x20定时任务列表\x0a','toString','--verbose','\x20启用)'];a5_0x4b87=function(){return _0x434784;};return a5_0x4b87();}function formatCronJobList(_0x1a4929){const _0x323754=a5_0x4570cc;if(_0x1a4929[_0x323754(0x22f)]===0x0)return _0x323754(0x21f);const _0x433cc6=[_0x323754(0x252)];for(const _0x2c327d of _0x1a4929){const _0x2253ef=_0x2c327d[_0x323754(0x21d)]?'✅':'⏸️',_0x3d3087=_0x2c327d[_0x323754(0x203)]||'-';_0x433cc6[_0x323754(0x243)]('**'+_0x2253ef+'\x20'+_0x2c327d['id']+'**'),_0x433cc6[_0x323754(0x243)](_0x323754(0x25b)+_0x2c327d[_0x323754(0x218)]+'`'),_0x433cc6[_0x323754(0x243)](_0x323754(0x24e)+_0x2c327d[_0x323754(0x249)]),_0x433cc6[_0x323754(0x243)]('-\x20任务:\x20'+_0x2c327d[_0x323754(0x220)]),_0x433cc6[_0x323754(0x243)]('-\x20创建者:\x20'+_0x2c327d[_0x323754(0x226)]),_0x433cc6['push'](_0x323754(0x21e)+_0x3d3087),_0x433cc6['push']('');}return _0x433cc6[_0x323754(0x243)]('💡\x20`/cron\x20pause\x20<id>`\x20暂停\x20|\x20`/cron\x20resume\x20<id>`\x20恢复\x20|\x20`/cron\x20delete\x20<id>`\x20删除'),_0x433cc6[_0x323754(0x1f8)]('\x0a');}function formatCronJobInfo(_0x1c4853){const _0x576146=a5_0x4570cc,_0x29dc75=_0x1c4853[_0x576146(0x21d)]?_0x576146(0x20e):'⏸️\x20暂停';return['###\x20⏰\x20定时任务\x20'+_0x1c4853['id'],'',_0x576146(0x238)+_0x29dc75,'-\x20**Cron:**\x20`'+_0x1c4853[_0x576146(0x218)]+'`','-\x20**描述:**\x20'+_0x1c4853['description'],_0x576146(0x233)+_0x1c4853[_0x576146(0x220)],_0x576146(0x23d)+_0x1c4853['senderNick'],_0x576146(0x261)+_0x1c4853['createdAt'],_0x576146(0x274)+(_0x1c4853[_0x576146(0x203)]||'-')][_0x576146(0x1f8)]('\x0a');}class CronEngine{constructor(_0x284a1f){const _0xcb6c46=a5_0x4570cc;this[_0xcb6c46(0x263)]=[],this[_0xcb6c46(0x286)]=null,this[_0xcb6c46(0x1fd)]=-0x1,this['runningJobIds']=new Set(),this['MAX_CONCURRENT_JOBS']=0x3,this['dc']=_0x284a1f,this[_0xcb6c46(0x263)]=loadCronJobs(_0x284a1f);}[a5_0x4570cc(0x275)](){const _0x1ae4d2=a5_0x4570cc;this[_0x1ae4d2(0x1ec)]();const _0x2a0564=this['jobs'][_0x1ae4d2(0x26d)](_0x420142=>_0x420142['enabled'])[_0x1ae4d2(0x22f)];console[_0x1ae4d2(0x20c)]('['+(0x0,session_1['timestamp'])()+_0x1ae4d2(0x262)+this[_0x1ae4d2(0x263)][_0x1ae4d2(0x22f)]+_0x1ae4d2(0x279)+_0x2a0564+_0x1ae4d2(0x255));}[a5_0x4570cc(0x227)](){const _0x86b39f=a5_0x4570cc;this[_0x86b39f(0x25d)]();}[a5_0x4570cc(0x1ff)](_0x2a976d){const _0x4e9248=a5_0x4570cc,_0x37c64d={'id':_0x4e9248(0x277)+Date[_0x4e9248(0x20a)](),'conversationId':_0x2a976d[_0x4e9248(0x234)],'cronExpression':_0x2a976d['cronExpression'],'description':_0x2a976d[_0x4e9248(0x249)],'prompt':_0x2a976d['prompt'],'enabled':!![],'createdAt':(0x0,session_1[_0x4e9248(0x281)])(),'senderStaffId':_0x2a976d[_0x4e9248(0x222)],'senderNick':_0x2a976d['senderNick']};return this[_0x4e9248(0x263)][_0x4e9248(0x243)](_0x37c64d),this['persist'](),console[_0x4e9248(0x20c)]('['+(0x0,session_1[_0x4e9248(0x281)])()+']\x20新增定时任务:\x20'+_0x37c64d['id']+'\x20['+_0x37c64d[_0x4e9248(0x218)]+']\x20'+_0x37c64d[_0x4e9248(0x249)]),_0x37c64d;}['removeJob'](_0x441aa7){const _0x5ef400=a5_0x4570cc,_0x4ee9ab=this[_0x5ef400(0x263)][_0x5ef400(0x278)](_0x4c93e9=>_0x4c93e9['id']===_0x441aa7);if(_0x4ee9ab===-0x1)return![];const _0x5e5a50=this[_0x5ef400(0x263)][_0x5ef400(0x224)](_0x4ee9ab,0x1)[0x0];return this[_0x5ef400(0x1f5)](),console['log']('['+(0x0,session_1['timestamp'])()+_0x5ef400(0x225)+_0x5e5a50['id']),!![];}[a5_0x4570cc(0x204)](_0x340ca3,_0x3a885e){const _0x7933a9=a5_0x4570cc,_0xd8defb=this[_0x7933a9(0x263)][_0x7933a9(0x1fe)](_0x4dc61d=>_0x4dc61d['id']===_0x340ca3);if(!_0xd8defb)return![];return _0xd8defb[_0x7933a9(0x21d)]=_0x3a885e,this[_0x7933a9(0x1f5)](),console['log']('['+(0x0,session_1[_0x7933a9(0x281)])()+']\x20定时任务\x20'+_0xd8defb['id']+'\x20'+(_0x3a885e?_0x7933a9(0x22a):_0x7933a9(0x22e))),!![];}[a5_0x4570cc(0x1f6)](_0x4b2218){const _0x176ab9=a5_0x4570cc;if(_0x4b2218)return this[_0x176ab9(0x263)][_0x176ab9(0x26d)](_0xeb43ca=>_0xeb43ca['conversationId']===_0x4b2218);return[...this['jobs']];}[a5_0x4570cc(0x241)](_0x5a1501){const _0x1b81bc=a5_0x4570cc;return this[_0x1b81bc(0x263)]['find'](_0xbd72f8=>_0xbd72f8['id']===_0x5a1501);}async[a5_0x4570cc(0x24c)](_0x4b1245,_0x3f3de8,_0x5206ec,_0xbd2d03){const _0x559ab4=a5_0x4570cc;try{const _0x370680=await analyzeCronWithClaude(this['dc'],_0x4b1245,_0x3f3de8);if(!isValidCronExpression(_0x370680[_0x559ab4(0x23f)]))return{'error':_0x559ab4(0x21b)+_0x370680['cron']};const _0x115221=this['addJob']({'conversationId':_0x4b1245,'cronExpression':_0x370680[_0x559ab4(0x23f)],'description':_0x370680['desc']||_0x3f3de8['substring'](0x0,0x32),'prompt':_0x370680['prompt'],'senderStaffId':_0x5206ec,'senderNick':_0xbd2d03});return{'job':_0x115221};}catch(_0xf67111){return{'error':_0xf67111 instanceof Error?_0xf67111[_0x559ab4(0x21a)]:String(_0xf67111)};}}['persist'](){const _0x14fc88=a5_0x4570cc;saveCronJobs(this['dc'],this[_0x14fc88(0x263)]);}[a5_0x4570cc(0x1ec)](){const _0x54eea4=Date['now'](),_0x38e8a6=0xea60-_0x54eea4%0xea60;setTimeout(()=>{const _0x285601=a5_0x248e;this[_0x285601(0x25a)](),this[_0x285601(0x286)]=setInterval(()=>this[_0x285601(0x25a)](),0xea60);},_0x38e8a6);}['stopScheduler'](){const _0xc89aec=a5_0x4570cc;this[_0xc89aec(0x286)]&&(clearInterval(this[_0xc89aec(0x286)]),this[_0xc89aec(0x286)]=null);}['tick'](){const _0x9c14a1=a5_0x4570cc,_0x45eb0b=Date['now'](),_0x2898c5=this['lastCheckedTime']<0x0?_0x45eb0b-_0x45eb0b%0xea60:this[_0x9c14a1(0x1fd)]+0xea60-this[_0x9c14a1(0x1fd)]%0xea60,_0x348a38=_0x45eb0b-_0x45eb0b%0xea60;for(let _0x209470=_0x2898c5;_0x209470<=_0x348a38;_0x209470+=0xea60){const _0x2d66c1=new Date(_0x209470);if(!this[_0x9c14a1(0x242)](_0x2d66c1))break;}this['lastCheckedTime']=_0x45eb0b;}[a5_0x4570cc(0x242)](_0x4a59ac){const _0x179c5b=a5_0x4570cc;if(this[_0x179c5b(0x272)][_0x179c5b(0x268)]>=this[_0x179c5b(0x202)])return console[_0x179c5b(0x1f3)]('['+(0x0,session_1[_0x179c5b(0x281)])()+_0x179c5b(0x215)+this['MAX_CONCURRENT_JOBS']+'),\x20跳过\x20'+_0x4a59ac['toISOString']()+'\x20的检查'),![];for(const _0x3b595c of this['jobs']){if(!_0x3b595c['enabled'])continue;if(this[_0x179c5b(0x272)][_0x179c5b(0x23e)](_0x3b595c['id']))continue;if(this[_0x179c5b(0x272)][_0x179c5b(0x268)]>=this[_0x179c5b(0x202)])break;if(!matchesCron(_0x3b595c['cronExpression'],_0x4a59ac))continue;console['log']('['+(0x0,session_1['timestamp'])()+_0x179c5b(0x219)+_0x3b595c['id']+'\x20['+_0x3b595c[_0x179c5b(0x218)]+']\x20'+_0x3b595c[_0x179c5b(0x249)]),this[_0x179c5b(0x25f)](_0x3b595c)[_0x179c5b(0x20f)](_0x2e6ece=>{const _0xbbd4cc=_0x179c5b;console['error']('['+(0x0,session_1[_0xbbd4cc(0x281)])()+']\x20Cron执行失败:\x20'+_0x3b595c['id'],_0x2e6ece);});}return!![];}async['executeJob'](_0xa7d08f){const _0x19492e=a5_0x4570cc;this[_0x19492e(0x272)]['add'](_0xa7d08f['id']);try{const _0x314c9f=this['dc'][_0x19492e(0x28b)](_0xa7d08f[_0x19492e(0x234)]);if(!_0x314c9f){console['warn']('['+(0x0,session_1[_0x19492e(0x281)])()+']\x20Cron任务\x20'+_0xa7d08f['id']+'\x20的会话配置不存在,\x20跳过执行');return;}const _0xadc9ae=!!(_0x314c9f[_0x19492e(0x206)]||this['dc']['config']['defaultDingToken']);if(!_0xadc9ae){console[_0x19492e(0x1f3)]('['+(0x0,session_1[_0x19492e(0x281)])()+_0x19492e(0x247)+_0xa7d08f['id']+_0x19492e(0x1ee));return;}const _0x4ff10d=(0x0,session_1['findActiveSession'])(this['dc'],_0xa7d08f[_0x19492e(0x234)]);if(_0x4ff10d){console[_0x19492e(0x20c)]('['+(0x0,session_1['timestamp'])()+_0x19492e(0x247)+_0xa7d08f['id']+'\x20的会话有活跃session,\x20降级到任务队列'),await this[_0x19492e(0x240)](_0xa7d08f);return;}const _0x3faf84=Date[_0x19492e(0x20a)](),_0x1f232c={'conversationId':_0xa7d08f['conversationId'],'sessionWebhook':'','startTime':_0x3faf84,'startTimeStr':utils_ok_1[_0x19492e(0x25e)]['mm'](_0x3faf84)[_0x19492e(0x213)](_0x19492e(0x214)),'startStaffId':_0xa7d08f[_0x19492e(0x222)],'startNickName':_0x19492e(0x1ea)+_0xa7d08f[_0x19492e(0x226)]},_0x2d8232=(0x0,session_1[_0x19492e(0x212)])(this['dc'],_0x1f232c);fs_1['default'][_0x19492e(0x1f4)](_0x2d8232,{'recursive':!![]}),fs_1[_0x19492e(0x245)][_0x19492e(0x264)](_0x2d8232+_0x19492e(0x1f0),JSON[_0x19492e(0x246)](_0x1f232c,null,0x2),_0x19492e(0x235)),this['dc'][_0x19492e(0x282)][_0x19492e(0x23c)](_0xa7d08f['conversationId'],{'session':_0x1f232c,'lastSenderStaffId':_0xa7d08f[_0x19492e(0x222)],'isProcessing':!![],'conversationConfig':_0x314c9f}),(0x0,session_1[_0x19492e(0x26c)])(this['dc'],_0xa7d08f['conversationId']),console[_0x19492e(0x20c)]('['+(0x0,session_1[_0x19492e(0x281)])()+_0x19492e(0x247)+_0xa7d08f['id']+'\x20开始执行:\x20'+_0xa7d08f['description']),fs_1[_0x19492e(0x245)][_0x19492e(0x236)](_0x2d8232+_0x19492e(0x1fa),'['+(0x0,session_1['timestamp'])()+_0x19492e(0x251)+_0xa7d08f['description']+'\x0a',_0x19492e(0x235));try{await(0x0,claude_process_1['executeClaudeQuery'])(this['dc'],_0x1f232c,_0xa7d08f[_0x19492e(0x220)],{'skill':_0x314c9f[_0x19492e(0x285)]?.[_0x19492e(0x221)],'agent':_0x314c9f[_0x19492e(0x24b)],'senderNick':_0xa7d08f[_0x19492e(0x226)],'senderStaffId':_0xa7d08f[_0x19492e(0x222)]});}catch(_0x5abf6e){console[_0x19492e(0x24f)]('['+(0x0,session_1['timestamp'])()+']\x20Cron执行Claude查询失败:\x20'+_0xa7d08f['id'],_0x5abf6e),await(0x0,messaging_1[_0x19492e(0x273)])(this['dc'],{'conversationId':_0xa7d08f[_0x19492e(0x234)],'sessionWebhook':'','atUserId':_0xa7d08f[_0x19492e(0x222)],'content':'❌\x20定时任务执行失败:\x20'+(_0x5abf6e instanceof Error?_0x5abf6e[_0x19492e(0x21a)]:String(_0x5abf6e))});}finally{this['dc'][_0x19492e(0x282)][_0x19492e(0x26e)](_0xa7d08f[_0x19492e(0x234)]),(0x0,session_1[_0x19492e(0x26c)])(this['dc'],_0xa7d08f['conversationId']);}_0xa7d08f[_0x19492e(0x203)]=(0x0,session_1[_0x19492e(0x281)])(),this[_0x19492e(0x1f5)]();}finally{this[_0x19492e(0x272)][_0x19492e(0x26e)](_0xa7d08f['id']);}}async['enqueueAsTask'](_0x2b56bd){const _0x5e7033=a5_0x4570cc;try{await(0x0,task_1[_0x5e7033(0x248)])(this['dc'],{'conversationId':_0x2b56bd['conversationId'],'prompt':_0x2b56bd['prompt'],'senderStaffId':_0x2b56bd[_0x5e7033(0x222)],'senderNickName':_0x5e7033(0x1ea)+_0x2b56bd[_0x5e7033(0x226)],'sessionWebhook':'','type':_0x5e7033(0x23f)}),console['log']('['+(0x0,session_1[_0x5e7033(0x281)])()+_0x5e7033(0x247)+_0x2b56bd['id']+'\x20已降级到任务队列:\x20'+_0x2b56bd[_0x5e7033(0x249)]);}catch(_0x4d85d1){console[_0x5e7033(0x24f)]('['+(0x0,session_1['timestamp'])()+_0x5e7033(0x247)+_0x2b56bd['id']+_0x5e7033(0x244),_0x4d85d1);}_0x2b56bd['lastRunAt']=(0x0,session_1['timestamp'])(),this[_0x5e7033(0x1f5)]();}}exports['CronEngine']=CronEngine;
|
package/dist/src/biz/doctor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a6_0x3694a0=a6_0x5d3f;(function(_0x5494ad,_0x2dafba){const _0x3771c6=a6_0x5d3f,_0x2fee51=_0x5494ad();while(!![]){try{const _0x451d13=-parseInt(_0x3771c6(0xf1))/0x1+-parseInt(_0x3771c6(0x121))/0x2+-parseInt(_0x3771c6(0xef))/0x3*(parseInt(_0x3771c6(0x129))/0x4)+-parseInt(_0x3771c6(0x112))/0x5*(-parseInt(_0x3771c6(0xe5))/0x6)+parseInt(_0x3771c6(0x117))/0x7+parseInt(_0x3771c6(0x123))/0x8+parseInt(_0x3771c6(0x128))/0x9;if(_0x451d13===_0x2dafba)break;else _0x2fee51['push'](_0x2fee51['shift']());}catch(_0x3f4dbc){_0x2fee51['push'](_0x2fee51['shift']());}}}(a6_0x423e,0x8d703));var __importDefault=this&&this[a6_0x3694a0(0x101)]||function(_0x3d4318){return _0x3d4318&&_0x3d4318['__esModule']?_0x3d4318:{'default':_0x3d4318};};Object[a6_0x3694a0(0xdf)](exports,a6_0x3694a0(0x116),{'value':!![]}),exports[a6_0x3694a0(0xdb)]=printDoctorResults,exports['runDoctor']=runDoctor;function a6_0x423e(){const _0x267e31=['object','config.json','printDoctorResults','(空)','缺少必填字段:\x20',']\x20缺少\x20cronExpression','defineProperty','string','\x20启用)','WARN','------------------------------------','cron.json\x20格式异常,无法解析为任务数组','1141482NIxVtE','\x20仍为占位符:\x20','.doctor-check','config.json\x20解析失败:\x20','\x20致命','\x20警告,\x20','path','some','settings-tpl.json\x20根元素不是对象','\x20缺少\x20conversationId','183hGiHsU','owner\x20未配置,管理命令(/clean,\x20/open,\x20/reset-apikeycfg,\x20/reg,\x20/auth)不可用','970392XlLzKe','baseUrl','has','model','\x22\x20未在\x20config.json\x20conversations\x20中找到','\x20\x20✅\x20所有检查通过','\x20apiKey\x20重复:\x20','conversations','FATAL','\x20conversationId\x20仍为占位符:\x20','apiKeyCfg.claudeSettings\x20为空,无备用\x20Key','进程运行中\x20(PID:\x20',']\x20缺少\x20conversationId','conversationId','PID\x20锁文件读取异常:\x20','cron.json','__importDefault','trim','split','resetTime','====================================\x0a','apiKeyCfg\x20未配置,无法使用\x20API\x20Key\x20池化轮换','defaultDingToken','\x20项,有效\x20','getHomeDir','\x20已退出(过期锁文件)','\x20缺少\x20apiKey','linkConversationId','clientSecret','.pid.lock','cron.json\x20共\x20','\x20缺少\x20model','slice','25hKDfvt','cc-ding','dingSecret','dingToken','__esModule','1184435ZhwFZA','apiKeyCfg','cron.json\x20解析失败:\x20',']\x20缺少\x20id','isArray','\x20个定时任务\x20(','claudeSettings','\x20通过,\x20','客户端目录存在:\x20','客户端目录不可写:\x20','429284dmribQ','conversations\x20应为数组','5337952dkHjKD','existsSync','settingLabel','apiKeyCfg.claudeSettings\x20共\x20','cron.json[','9602406aTcEcO','71492SbQljg','./api-key-manager','claude\x20命令可用',']\x20conversationId\x20\x22','\x20为空数组','message','isValid','settings-tpl.json\x20不存在,创建\x20settings-ding.json\x20时将使用空模板','level','apiKey','无运行中的进程','settings-tpl.json\x20缺少\x20env\x20字段','which\x20claude','test','child_process','startsWith','./session','conversations[','\x20\x20合计:\x20','\x20\x20❌\x20存在致命问题,请修复后重新运行','\x20缺少\x20baseUrl','客户端目录不存在:\x20','\x20conversationId\x20重复:\x20','claude\x20命令不可用,请确认\x20Claude\x20Code\x20CLI\x20已安装','owner:\x20','parse','execSync','length','\x22\x20未在\x20conversations\x20中找到','env','apiKeyCfg.claudeSettings[','add','whiteUserList','settings-tpl.json\x20有效,env\x20包含:\x20','conversations\x20共\x20','owner','settings-tpl.json','default','.anycli','push','readFileSync','Node\x20版本:','锁文件存在但进程\x20','join','Node\x20版本过低:','log','cronExpression','utf-8','PASS','enabled','settings-tpl.json\x20解析失败:\x20','filter','kill','pipe','apiKeyCfg.claudeSettings\x20不是数组'];a6_0x423e=function(){return _0x267e31;};return a6_0x423e();}function a6_0x5d3f(_0x2fb5b5,_0x51a081){_0x2fb5b5=_0x2fb5b5-0xdb;const _0x423e15=a6_0x423e();let _0x5d3fd7=_0x423e15[_0x2fb5b5];return _0x5d3fd7;}const session_1=require(a6_0x3694a0(0x139)),api_key_manager_1=require(a6_0x3694a0(0x12a)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a6_0x3694a0(0xeb))),child_process_1=require(a6_0x3694a0(0x137));function printDoctorResults(_0x4ba045){const _0x518d4d=a6_0x3694a0;console['log'](''),console[_0x518d4d(0x156)]('==========\x20cc-ding\x20doctor\x20==========');const _0x3b09f6=_0x4ba045[_0x518d4d(0xec)](_0x172694=>_0x172694[_0x518d4d(0x131)]===_0x518d4d(0xf9));for(const _0x1a5dba of _0x4ba045){const _0x402bbe=_0x1a5dba[_0x518d4d(0x131)]===_0x518d4d(0x159)?'✓':_0x1a5dba[_0x518d4d(0x131)]===_0x518d4d(0xf9)?'✗':'⚠',_0x53eb7f=_0x1a5dba[_0x518d4d(0x131)]===_0x518d4d(0x159)?'':'['+_0x1a5dba[_0x518d4d(0x131)]+']\x20';console['log']('\x20\x20'+_0x402bbe+'\x20'+_0x53eb7f+_0x1a5dba[_0x518d4d(0x12e)]);}const _0x3b7c36=_0x4ba045[_0x518d4d(0x15c)](_0x523dbe=>_0x523dbe[_0x518d4d(0x131)]===_0x518d4d(0x159))[_0x518d4d(0x144)],_0x1e41e7=_0x4ba045[_0x518d4d(0x15c)](_0x3fe5f3=>_0x3fe5f3['level']==='WARN')['length'],_0x35f884=_0x4ba045[_0x518d4d(0x15c)](_0x48dcc6=>_0x48dcc6['level']==='FATAL')[_0x518d4d(0x144)];console[_0x518d4d(0x156)](_0x518d4d(0xe3)),console['log'](_0x518d4d(0x13b)+_0x3b7c36+_0x518d4d(0x11e)+_0x1e41e7+_0x518d4d(0xea)+_0x35f884+_0x518d4d(0xe9));_0x3b09f6?console[_0x518d4d(0x156)](_0x518d4d(0x13c)):console[_0x518d4d(0x156)](_0x518d4d(0xf6));console[_0x518d4d(0x156)](_0x518d4d(0x105));if(_0x3b09f6)process['exit'](0x1);}function runDoctor(_0x8b9be7){const _0x56e274=a6_0x3694a0,_0x4730dc=[],_0x30e1d9=process['version'][_0x56e274(0x111)](0x1),_0x18c66b=parseInt(_0x30e1d9[_0x56e274(0x103)]('.')[0x0],0xa);_0x18c66b<0x18?_0x4730dc['push'](check(_0x56e274(0xf9),_0x56e274(0x155)+_0x30e1d9+',要求\x20Node\x20>=\x2024')):_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0x152)+_0x30e1d9));if(!fs_1[_0x56e274(0x14e)][_0x56e274(0x124)](_0x8b9be7))return _0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x56e274(0x13e)+_0x8b9be7)),_0x4730dc;_0x4730dc['push'](check(_0x56e274(0x159),_0x56e274(0x11f)+_0x8b9be7));const _0x42478e=path_1[_0x56e274(0x14e)][_0x56e274(0x154)](_0x8b9be7,_0x56e274(0x10e));if(fs_1[_0x56e274(0x14e)]['existsSync'](_0x42478e))try{const _0x80d124=parseInt(fs_1[_0x56e274(0x14e)]['readFileSync'](_0x42478e,_0x56e274(0x158))['trim'](),0xa);if(!isNaN(_0x80d124))try{process[_0x56e274(0x15d)](_0x80d124,0x0),_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0xfc)+_0x80d124+')'));}catch{_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x153)+_0x80d124+_0x56e274(0x10a)));}}catch{_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0xff)+_0x42478e));}else _0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0x133)));const _0xb9f7f2=path_1[_0x56e274(0x14e)]['join'](_0x8b9be7,_0x56e274(0x161));if(!fs_1[_0x56e274(0x14e)][_0x56e274(0x124)](_0xb9f7f2))return _0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),'config.json\x20不存在')),_0x4730dc;let _0x4fd942;try{_0x4fd942=JSON[_0x56e274(0x142)](fs_1[_0x56e274(0x14e)][_0x56e274(0x151)](_0xb9f7f2,_0x56e274(0x158)));}catch(_0x56d968){return _0x4730dc['push'](check(_0x56e274(0xf9),_0x56e274(0xe8)+(_0x56d968 instanceof Error?_0x56d968[_0x56e274(0x12e)]:_0x56d968))),_0x4730dc;}_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),'config.json\x20解析成功'));const _0x2f65bb=[{'key':_0x56e274(0x10d),'label':'clientSecret'},{'key':_0x56e274(0x114),'label':'dingSecret'},{'key':_0x56e274(0x107),'label':'defaultDingToken'},{'key':'whiteUserList','label':_0x56e274(0x149),'isArr':!![]},{'key':_0x56e274(0xf8),'label':_0x56e274(0xf8),'isArr':!![]}];for(const {key:_0x35df76,label:_0x2889f4,isArr:_0x540b67}of _0x2f65bb){const _0x43d3ed=_0x4fd942[_0x35df76];if(_0x43d3ed===undefined||_0x43d3ed===null||_0x43d3ed==='')_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x56e274(0xdd)+_0x2889f4));else{if(_0x540b67&&!Array[_0x56e274(0x11b)](_0x43d3ed))_0x4730dc[_0x56e274(0x150)](check('FATAL',_0x2889f4+'\x20应为数组'));else{if(_0x35df76!==_0x56e274(0xf8)&&_0x540b67&&_0x43d3ed[_0x56e274(0x144)]===0x0)_0x4730dc['push'](check(_0x56e274(0xe2),_0x2889f4+_0x56e274(0x12d)));else!_0x540b67&&typeof _0x43d3ed===_0x56e274(0xe0)&&_0x43d3ed[_0x56e274(0x138)]('<')?_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x2889f4+_0x56e274(0xe6)+_0x43d3ed)):_0x4730dc['push'](check(_0x56e274(0x159),_0x2889f4+'\x20✓'));}}}_0x4fd942[_0x56e274(0x14c)]?_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0x141)+_0x4fd942[_0x56e274(0x14c)])):_0x4730dc[_0x56e274(0x150)](check('FATAL',_0x56e274(0xf0)));const _0x136dd0=['clientSecret','dingSecret','defaultDingToken'];for(const _0x48c667 of _0x136dd0){const _0x332fe1=_0x4fd942[_0x48c667];typeof _0x332fe1===_0x56e274(0xe0)&&/^<.*>$/['test'](_0x332fe1[_0x56e274(0x102)]())&&_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x48c667+_0x56e274(0xe6)+_0x332fe1));}const _0x42332b=new Set();if(!Array[_0x56e274(0x11b)](_0x4fd942[_0x56e274(0xf8)]))_0x4730dc['push'](check(_0x56e274(0xf9),_0x56e274(0x122)));else{if(_0x4fd942[_0x56e274(0xf8)]['length']===0x0)_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),'conversations\x20为空数组,至少配置一个群'));else{for(let _0x2e997a=0x0;_0x2e997a<_0x4fd942[_0x56e274(0xf8)]['length'];_0x2e997a++){const _0x128af2=_0x4fd942['conversations'][_0x2e997a],_0x236042=_0x56e274(0x13a)+_0x2e997a+']';if(!_0x128af2[_0x56e274(0xfe)])_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x236042+_0x56e274(0xee)));else{if(typeof _0x128af2[_0x56e274(0xfe)]===_0x56e274(0xe0)&&/^<.*>$/[_0x56e274(0x136)](_0x128af2[_0x56e274(0xfe)][_0x56e274(0x102)]()))_0x4730dc['push'](check(_0x56e274(0xf9),_0x236042+_0x56e274(0xfa)+_0x128af2[_0x56e274(0xfe)]));else _0x42332b[_0x56e274(0xf3)](_0x128af2[_0x56e274(0xfe)])?_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x236042+_0x56e274(0x13f)+_0x128af2[_0x56e274(0xfe)])):_0x42332b['add'](_0x128af2['conversationId']);}_0x128af2[_0x56e274(0x10c)]&&!_0x4fd942[_0x56e274(0xf8)][_0x56e274(0xec)](_0x5f0464=>_0x5f0464[_0x56e274(0xfe)]===_0x128af2['linkConversationId'])&&_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x236042+'\x20linkConversationId\x20\x22'+_0x128af2[_0x56e274(0x10c)]+_0x56e274(0x145))),_0x128af2['dingToken']&&typeof _0x128af2['dingToken']===_0x56e274(0xe0)&&/^<.*>$/['test'](_0x128af2[_0x56e274(0x115)][_0x56e274(0x102)]())&&_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x236042+'\x20dingToken\x20仍为占位符'));}_0x4730dc['push'](check(_0x56e274(0x159),_0x56e274(0x14b)+_0x4fd942['conversations']['length']+'\x20个群配置'));}}if(_0x4fd942[_0x56e274(0x118)]){const _0x9c6eab=_0x4fd942[_0x56e274(0x118)];_0x9c6eab[_0x56e274(0x104)]&&_0x4730dc['push'](check(_0x56e274(0x159),'apiKeyCfg.resetTime:\x20'+_0x9c6eab[_0x56e274(0x104)]));if(!Array['isArray'](_0x9c6eab['claudeSettings']))_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x15f)));else{if(_0x9c6eab[_0x56e274(0x11d)][_0x56e274(0x144)]===0x0)_0x4730dc['push'](check(_0x56e274(0xe2),_0x56e274(0xfb)));else{const _0x2593ff=new Set();for(let _0x495537=0x0;_0x495537<_0x9c6eab[_0x56e274(0x11d)]['length'];_0x495537++){const _0x47e552=_0x9c6eab[_0x56e274(0x11d)][_0x495537],_0x474f6e=_0x56e274(0x147)+_0x495537+']';if(!_0x47e552[_0x56e274(0x132)])_0x4730dc['push'](check(_0x56e274(0xf9),_0x474f6e+_0x56e274(0x10b)));else _0x2593ff[_0x56e274(0xf3)](_0x47e552[_0x56e274(0x132)])?_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x474f6e+_0x56e274(0xf7)+(0x0,api_key_manager_1[_0x56e274(0x125)])(_0x47e552))):_0x2593ff[_0x56e274(0x148)](_0x47e552[_0x56e274(0x132)]);if(!_0x47e552[_0x56e274(0xf2)])_0x4730dc['push'](check('WARN',_0x474f6e+_0x56e274(0x13d)));if(!_0x47e552[_0x56e274(0xf4)])_0x4730dc['push'](check(_0x56e274(0xe2),_0x474f6e+_0x56e274(0x110)));if(typeof _0x47e552[_0x56e274(0x12f)]!=='boolean')_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x474f6e+'\x20isValid\x20类型异常:\x20'+typeof _0x47e552['isValid']));}const _0xd50079=_0x9c6eab[_0x56e274(0x11d)][_0x56e274(0x15c)](_0x111819=>_0x111819[_0x56e274(0x12f)])[_0x56e274(0x144)];_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0x126)+_0x9c6eab[_0x56e274(0x11d)][_0x56e274(0x144)]+_0x56e274(0x108)+_0xd50079));}}}else _0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x106)));const _0x3708b4=path_1['default'][_0x56e274(0x154)](_0x8b9be7,_0x56e274(0x100));if(fs_1['default']['existsSync'](_0x3708b4))try{const _0x5899b2=JSON['parse'](fs_1[_0x56e274(0x14e)][_0x56e274(0x151)](_0x3708b4,_0x56e274(0x158))),_0x5dc8e3=Array[_0x56e274(0x11b)](_0x5899b2)?_0x5899b2:_0x5899b2['jobs'];if(Array[_0x56e274(0x11b)](_0x5dc8e3)){const _0x55e602=_0x5dc8e3['filter'](_0x29d444=>_0x29d444[_0x56e274(0x15a)]!==![])[_0x56e274(0x144)];_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0x10f)+_0x5dc8e3[_0x56e274(0x144)]+_0x56e274(0x11c)+_0x55e602+_0x56e274(0xe1)));for(let _0x4d9675=0x0;_0x4d9675<_0x5dc8e3[_0x56e274(0x144)];_0x4d9675++){const _0x15636f=_0x5dc8e3[_0x4d9675];if(!_0x15636f['id'])_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x127)+_0x4d9675+_0x56e274(0x11a)));if(!_0x15636f[_0x56e274(0x157)])_0x4730dc[_0x56e274(0x150)](check('WARN',_0x56e274(0x127)+_0x4d9675+_0x56e274(0xde)));if(!_0x15636f['prompt'])_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x127)+_0x4d9675+']\x20缺少\x20prompt'));if(!_0x15636f[_0x56e274(0xfe)])_0x4730dc[_0x56e274(0x150)](check('WARN',_0x56e274(0x127)+_0x4d9675+_0x56e274(0xfd)));else!_0x42332b[_0x56e274(0xf3)](_0x15636f[_0x56e274(0xfe)])&&_0x4730dc['push'](check('WARN',_0x56e274(0x127)+_0x4d9675+_0x56e274(0x12c)+_0x15636f[_0x56e274(0xfe)]+_0x56e274(0xf5)));}}else _0x4730dc[_0x56e274(0x150)](check('WARN',_0x56e274(0xe4)));}catch(_0xab25b3){_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x119)+(_0xab25b3 instanceof Error?_0xab25b3[_0x56e274(0x12e)]:_0xab25b3)));}else _0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),'cron.json\x20不存在\x20(无定时任务)'));const _0x3ce4c5=path_1[_0x56e274(0x14e)][_0x56e274(0x154)]((0x0,session_1[_0x56e274(0x109)])(),_0x56e274(0x14f),_0x56e274(0x113),_0x56e274(0x14d));if(fs_1[_0x56e274(0x14e)]['existsSync'](_0x3ce4c5))try{const _0x527a2e=JSON[_0x56e274(0x142)](fs_1[_0x56e274(0x14e)][_0x56e274(0x151)](_0x3ce4c5,'utf-8'));if(typeof _0x527a2e!=='object'||_0x527a2e===null)_0x4730dc['push'](check(_0x56e274(0xe2),_0x56e274(0xed)));else{if(!_0x527a2e[_0x56e274(0x146)]||typeof _0x527a2e[_0x56e274(0x146)]!==_0x56e274(0x160))_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x134)));else{const _0x5f191d=Object['keys'](_0x527a2e[_0x56e274(0x146)]);_0x4730dc['push'](check(_0x56e274(0x159),_0x56e274(0x14a)+(_0x5f191d[_0x56e274(0x154)](',\x20')||_0x56e274(0xdc))));}}}catch(_0x1e263f){_0x4730dc['push'](check(_0x56e274(0xe2),_0x56e274(0x15b)+(_0x1e263f instanceof Error?_0x1e263f[_0x56e274(0x12e)]:_0x1e263f)));}else _0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xe2),_0x56e274(0x130)));try{(0x0,child_process_1[_0x56e274(0x143)])(_0x56e274(0x135),{'stdio':_0x56e274(0x15e)}),_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),_0x56e274(0x12b)));}catch{_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x56e274(0x140)));}try{const _0x49910f=path_1[_0x56e274(0x14e)][_0x56e274(0x154)](_0x8b9be7,_0x56e274(0xe7));fs_1[_0x56e274(0x14e)]['writeFileSync'](_0x49910f,'ok',_0x56e274(0x158)),fs_1['default']['unlinkSync'](_0x49910f),_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0x159),'客户端目录可写'));}catch(_0x2e0199){_0x4730dc[_0x56e274(0x150)](check(_0x56e274(0xf9),_0x56e274(0x120)+(_0x2e0199 instanceof Error?_0x2e0199[_0x56e274(0x12e)]:_0x2e0199)));}return _0x4730dc;}function check(_0x10187f,_0x1babab){return{'level':_0x10187f,'message':_0x1babab};}
|
|
1
|
+
'use strict';const a6_0x5cfb92=a6_0x3109;(function(_0x3e5ecc,_0x12c06f){const _0x58c4be=a6_0x3109,_0x43e59a=_0x3e5ecc();while(!![]){try{const _0x34b000=parseInt(_0x58c4be(0x16b))/0x1+-parseInt(_0x58c4be(0x114))/0x2+parseInt(_0x58c4be(0x153))/0x3+-parseInt(_0x58c4be(0x119))/0x4+parseInt(_0x58c4be(0xf7))/0x5+parseInt(_0x58c4be(0x138))/0x6+parseInt(_0x58c4be(0x14f))/0x7;if(_0x34b000===_0x12c06f)break;else _0x43e59a['push'](_0x43e59a['shift']());}catch(_0xb6bd3d){_0x43e59a['push'](_0x43e59a['shift']());}}}(a6_0x37b4,0x9a120));var __importDefault=this&&this['__importDefault']||function(_0xad8d58){const _0x4009be=a6_0x3109;return _0xad8d58&&_0xad8d58[_0x4009be(0x16e)]?_0xad8d58:{'default':_0xad8d58};};Object['defineProperty'](exports,a6_0x5cfb92(0x16e),{'value':!![]}),exports[a6_0x5cfb92(0x10f)]=printDoctorResults,exports[a6_0x5cfb92(0x139)]=runDoctor;const session_1=require(a6_0x5cfb92(0xff)),api_key_manager_1=require(a6_0x5cfb92(0xfa)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a6_0x5cfb92(0xf6))),child_process_1=require(a6_0x5cfb92(0xf5));function a6_0x37b4(){const _0x1691f3=['boolean','.cc-ding','default','cron.json\x20格式异常,无法解析为任务数组','951468vEfDFO','runDoctor',']\x20缺少\x20cronExpression','existsSync','PID\x20锁文件读取异常:\x20','config.json\x20不存在','baseUrl','\x20通过,\x20','linkConversationId','\x20缺少\x20apiKey','==========\x20cc-ding\x20doctor\x20==========','conversations\x20共\x20','\x20应为数组','settings-tpl.json\x20有效,env\x20包含:\x20','conversations\x20为空数组,可通过\x20/reg\x20命令动态注册','push','\x20conversationId\x20重复:\x20','log','jobs','test','filter','config.json\x20解析失败:\x20','.doctor-check','758821HsEszn','enabled','FATAL','join','2537082YsedkC','(空)','isValid','keys','conversations[','level','apiKeyCfg\x20未配置,无法使用\x20API\x20Key\x20池化轮换','apiKeyCfg.claudeSettings\x20不是数组','WARN','pipe','\x22\x20未在\x20config.json\x20conversations\x20中找到','PASS','\x20个定时任务\x20(','env','some','slice','exit','length','cron.json\x20共\x20','which\x20claude','version','parse','add','\x20缺少\x20baseUrl','781245PxWFos','客户端目录可写','cron.json','__esModule','settings-tpl.json','settings-tpl.json\x20不存在,创建\x20settings-ding.json\x20时将使用空模板','====================================\x0a','claude\x20命令不可用,请确认\x20Claude\x20Code\x20CLI\x20已安装','execSync','trim','\x20缺少\x20model','conversations','child_process','path','2007265oEQXgG','has','settings-tpl.json\x20根元素不是对象','./api-key-manager','model','Node\x20版本过低:','\x20已退出(过期锁文件)','dingToken','./session','config.json\x20解析成功','claudeSettings','\x20\x20❌\x20存在致命问题,请修复后重新运行','\x20apiKey\x20重复:\x20','cron.json\x20不存在\x20(无定时任务)','unlinkSync','apiKeyCfg','getHomeDir','split','claude\x20命令可用','\x20缺少\x20conversationId','utf-8','apiKeyCfg.claudeSettings[',']\x20缺少\x20prompt','\x20\x20✅\x20所有检查通过','printDoctorResults','string',',要求\x20Node\x20>=\x2024','message','\x20dingToken\x20仍为占位符','1311992CgQisG','apiKeyCfg.claudeSettings\x20为空,无备用\x20Key',']\x20缺少\x20conversationId','客户端目录不存在:\x20','无运行中的进程','4033220DLAzQc','owner:\x20','.pid.lock','cron.json[','apiKey','settings-tpl.json\x20解析失败:\x20','\x20isValid\x20类型异常:\x20','\x20个群配置','\x20启用)','resetTime','object','------------------------------------','缺少必填字段:\x20','config.json','defaultDingToken','锁文件存在但进程\x20','\x20仍为占位符:\x20','settingLabel','conversationId',']\x20缺少\x20id','\x20linkConversationId\x20\x22','whiteUserList','客户端目录存在:\x20','readFileSync','isArray','owner','prompt'];a6_0x37b4=function(){return _0x1691f3;};return a6_0x37b4();}function a6_0x3109(_0xaa4e80,_0x1b7796){_0xaa4e80=_0xaa4e80-0xf0;const _0x37b446=a6_0x37b4();let _0x3109c5=_0x37b446[_0xaa4e80];return _0x3109c5;}function printDoctorResults(_0x3271d6){const _0x3744af=a6_0x5cfb92;console[_0x3744af(0x149)](''),console[_0x3744af(0x149)](_0x3744af(0x142));const _0x45f194=_0x3271d6[_0x3744af(0x161)](_0x53cd74=>_0x53cd74[_0x3744af(0x158)]===_0x3744af(0x151));for(const _0x3c9889 of _0x3271d6){const _0x42d540=_0x3c9889[_0x3744af(0x158)]===_0x3744af(0x15e)?'✓':_0x3c9889[_0x3744af(0x158)]==='FATAL'?'✗':'⚠',_0x27e812=_0x3c9889['level']===_0x3744af(0x15e)?'':'['+_0x3c9889[_0x3744af(0x158)]+']\x20';console[_0x3744af(0x149)]('\x20\x20'+_0x42d540+'\x20'+_0x27e812+_0x3c9889['message']);}const _0x4e4adb=_0x3271d6['filter'](_0x73adf=>_0x73adf[_0x3744af(0x158)]===_0x3744af(0x15e))['length'],_0x46d0ab=_0x3271d6['filter'](_0x245b7d=>_0x245b7d['level']===_0x3744af(0x15b))[_0x3744af(0x164)],_0x4490b1=_0x3271d6[_0x3744af(0x14c)](_0x2e4208=>_0x2e4208[_0x3744af(0x158)]===_0x3744af(0x151))[_0x3744af(0x164)];console['log'](_0x3744af(0x124)),console[_0x3744af(0x149)]('\x20\x20合计:\x20'+_0x4e4adb+_0x3744af(0x13f)+_0x46d0ab+'\x20警告,\x20'+_0x4490b1+'\x20致命');_0x45f194?console[_0x3744af(0x149)](_0x3744af(0x102)):console['log'](_0x3744af(0x10e));console[_0x3744af(0x149)](_0x3744af(0x171));if(_0x45f194)process[_0x3744af(0x163)](0x1);}function runDoctor(_0x5317c6){const _0x42654b=a6_0x5cfb92,_0x22c9ad=[],_0x5ce4e3=process[_0x42654b(0x167)][_0x42654b(0x162)](0x1),_0x5a0179=parseInt(_0x5ce4e3[_0x42654b(0x108)]('.')[0x0],0xa);_0x5a0179<0x18?_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x42654b(0xfc)+_0x5ce4e3+_0x42654b(0x111))):_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),'Node\x20版本:'+_0x5ce4e3));if(!fs_1[_0x42654b(0x136)][_0x42654b(0x13b)](_0x5317c6))return _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x42654b(0x117)+_0x5317c6)),_0x22c9ad;_0x22c9ad['push'](check(_0x42654b(0x15e),_0x42654b(0x12f)+_0x5317c6));const _0x4c26c9=path_1[_0x42654b(0x136)]['join'](_0x5317c6,_0x42654b(0x11b));if(fs_1[_0x42654b(0x136)][_0x42654b(0x13b)](_0x4c26c9))try{const _0x336d3f=parseInt(fs_1['default'][_0x42654b(0x130)](_0x4c26c9,_0x42654b(0x10b))[_0x42654b(0xf2)](),0xa);if(!isNaN(_0x336d3f))try{process['kill'](_0x336d3f,0x0),_0x22c9ad[_0x42654b(0x147)](check('PASS','进程运行中\x20(PID:\x20'+_0x336d3f+')'));}catch{_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x128)+_0x336d3f+_0x42654b(0xfd)));}}catch{_0x22c9ad['push'](check('WARN',_0x42654b(0x13c)+_0x4c26c9));}else _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x42654b(0x118)));const _0x1a3612=path_1[_0x42654b(0x136)][_0x42654b(0x152)](_0x5317c6,_0x42654b(0x126));if(!fs_1[_0x42654b(0x136)][_0x42654b(0x13b)](_0x1a3612))return _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x42654b(0x13d))),_0x22c9ad;let _0x42e0f7;try{_0x42e0f7=JSON[_0x42654b(0x168)](fs_1[_0x42654b(0x136)][_0x42654b(0x130)](_0x1a3612,_0x42654b(0x10b)));}catch(_0x9030d2){return _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x42654b(0x14d)+(_0x9030d2 instanceof Error?_0x9030d2['message']:_0x9030d2))),_0x22c9ad;}_0x22c9ad['push'](check('PASS',_0x42654b(0x100)));const _0x10445d=[{'key':'clientSecret','label':'clientSecret'},{'key':_0x42654b(0x127),'label':_0x42654b(0x127)},{'key':_0x42654b(0x12e),'label':_0x42654b(0x12e),'isArr':!![]},{'key':_0x42654b(0x132),'label':_0x42654b(0x132)}];for(const {key:_0x1bae45,label:_0x1f86bd,isArr:_0x21fcc7}of _0x10445d){const _0x4b3d69=_0x42e0f7[_0x1bae45];if(_0x4b3d69===undefined||_0x4b3d69===null||_0x4b3d69==='')_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x42654b(0x125)+_0x1f86bd));else{if(_0x21fcc7&&!Array[_0x42654b(0x131)](_0x4b3d69))_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x1f86bd+_0x42654b(0x144)));else{if(_0x1bae45!==_0x42654b(0xf4)&&_0x21fcc7&&_0x4b3d69[_0x42654b(0x164)]===0x0)_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x1f86bd+'\x20为空数组'));else!_0x21fcc7&&typeof _0x4b3d69===_0x42654b(0x110)&&_0x4b3d69['startsWith']('<')?_0x22c9ad['push'](check('FATAL',_0x1f86bd+_0x42654b(0x129)+_0x4b3d69)):_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x1f86bd+'\x20✓'));}}}_0x42e0f7['owner']?_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x42654b(0x11a)+_0x42e0f7[_0x42654b(0x132)])):_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),'owner\x20未配置,管理命令(/clean,\x20/open,\x20/reset-apikeycfg,\x20/reg,\x20/auth)不可用'));const _0x5563fb=['clientSecret',_0x42654b(0x127)];for(const _0x33ca0c of _0x5563fb){const _0x3b8e07=_0x42e0f7[_0x33ca0c];typeof _0x3b8e07==='string'&&/^<.*>$/[_0x42654b(0x14b)](_0x3b8e07[_0x42654b(0xf2)]())&&_0x22c9ad['push'](check(_0x42654b(0x151),_0x33ca0c+_0x42654b(0x129)+_0x3b8e07));}const _0x3ed8b6=new Set();if(!Array[_0x42654b(0x131)](_0x42e0f7[_0x42654b(0xf4)]))_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),'conversations\x20应为数组'));else{if(_0x42e0f7[_0x42654b(0xf4)]['length']===0x0)_0x22c9ad['push'](check(_0x42654b(0x15e),_0x42654b(0x146)));else{for(let _0x5a1a1b=0x0;_0x5a1a1b<_0x42e0f7[_0x42654b(0xf4)][_0x42654b(0x164)];_0x5a1a1b++){const _0x2826dd=_0x42e0f7[_0x42654b(0xf4)][_0x5a1a1b],_0x1105f2=_0x42654b(0x157)+_0x5a1a1b+']';if(!_0x2826dd[_0x42654b(0x12b)])_0x22c9ad[_0x42654b(0x147)](check('FATAL',_0x1105f2+_0x42654b(0x10a)));else{if(typeof _0x2826dd[_0x42654b(0x12b)]===_0x42654b(0x110)&&/^<.*>$/[_0x42654b(0x14b)](_0x2826dd[_0x42654b(0x12b)][_0x42654b(0xf2)]()))_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x1105f2+'\x20conversationId\x20仍为占位符:\x20'+_0x2826dd[_0x42654b(0x12b)]));else _0x3ed8b6[_0x42654b(0xf8)](_0x2826dd[_0x42654b(0x12b)])?_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x1105f2+_0x42654b(0x148)+_0x2826dd['conversationId'])):_0x3ed8b6[_0x42654b(0x169)](_0x2826dd[_0x42654b(0x12b)]);}_0x2826dd[_0x42654b(0x140)]&&!_0x42e0f7[_0x42654b(0xf4)][_0x42654b(0x161)](_0x350015=>_0x350015[_0x42654b(0x12b)]===_0x2826dd[_0x42654b(0x140)])&&_0x22c9ad[_0x42654b(0x147)](check('WARN',_0x1105f2+_0x42654b(0x12d)+_0x2826dd[_0x42654b(0x140)]+'\x22\x20未在\x20conversations\x20中找到')),_0x2826dd['dingToken']&&typeof _0x2826dd[_0x42654b(0xfe)]===_0x42654b(0x110)&&/^<.*>$/[_0x42654b(0x14b)](_0x2826dd[_0x42654b(0xfe)][_0x42654b(0xf2)]())&&_0x22c9ad['push'](check(_0x42654b(0x15b),_0x1105f2+_0x42654b(0x113)));}_0x22c9ad[_0x42654b(0x147)](check('PASS',_0x42654b(0x143)+_0x42e0f7[_0x42654b(0xf4)][_0x42654b(0x164)]+_0x42654b(0x120)));}}if(_0x42e0f7['apiKeyCfg']){const _0x2c1530=_0x42e0f7[_0x42654b(0x106)];_0x2c1530[_0x42654b(0x122)]&&_0x22c9ad['push'](check(_0x42654b(0x15e),'apiKeyCfg.resetTime:\x20'+_0x2c1530[_0x42654b(0x122)]));if(!Array['isArray'](_0x2c1530[_0x42654b(0x101)]))_0x22c9ad[_0x42654b(0x147)](check('WARN',_0x42654b(0x15a)));else{if(_0x2c1530[_0x42654b(0x101)]['length']===0x0)_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x115)));else{const _0x2bedea=new Set();for(let _0x38e3b6=0x0;_0x38e3b6<_0x2c1530['claudeSettings'][_0x42654b(0x164)];_0x38e3b6++){const _0x4221eb=_0x2c1530[_0x42654b(0x101)][_0x38e3b6],_0x28cd77=_0x42654b(0x10c)+_0x38e3b6+']';if(!_0x4221eb[_0x42654b(0x11d)])_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x28cd77+_0x42654b(0x141)));else _0x2bedea['has'](_0x4221eb[_0x42654b(0x11d)])?_0x22c9ad['push'](check(_0x42654b(0x15b),_0x28cd77+_0x42654b(0x103)+(0x0,api_key_manager_1[_0x42654b(0x12a)])(_0x4221eb))):_0x2bedea['add'](_0x4221eb[_0x42654b(0x11d)]);if(!_0x4221eb[_0x42654b(0x13e)])_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x28cd77+_0x42654b(0x16a)));if(!_0x4221eb[_0x42654b(0xfb)])_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x28cd77+_0x42654b(0xf3)));if(typeof _0x4221eb[_0x42654b(0x155)]!==_0x42654b(0x134))_0x22c9ad['push'](check(_0x42654b(0x15b),_0x28cd77+_0x42654b(0x11f)+typeof _0x4221eb['isValid']));}const _0x11d5f2=_0x2c1530['claudeSettings'][_0x42654b(0x14c)](_0x159a53=>_0x159a53[_0x42654b(0x155)])[_0x42654b(0x164)];_0x22c9ad[_0x42654b(0x147)](check('PASS','apiKeyCfg.claudeSettings\x20共\x20'+_0x2c1530[_0x42654b(0x101)][_0x42654b(0x164)]+'\x20项,有效\x20'+_0x11d5f2));}}}else _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x159)));const _0x2e368d=path_1[_0x42654b(0x136)]['join'](_0x5317c6,_0x42654b(0x16d));if(fs_1[_0x42654b(0x136)]['existsSync'](_0x2e368d))try{const _0x5ce107=JSON[_0x42654b(0x168)](fs_1['default'][_0x42654b(0x130)](_0x2e368d,_0x42654b(0x10b))),_0x5f1161=Array[_0x42654b(0x131)](_0x5ce107)?_0x5ce107:_0x5ce107[_0x42654b(0x14a)];if(Array[_0x42654b(0x131)](_0x5f1161)){const _0x169ae6=_0x5f1161['filter'](_0x59b886=>_0x59b886[_0x42654b(0x150)]!==![])['length'];_0x22c9ad['push'](check(_0x42654b(0x15e),_0x42654b(0x165)+_0x5f1161[_0x42654b(0x164)]+_0x42654b(0x15f)+_0x169ae6+_0x42654b(0x121)));for(let _0x236db2=0x0;_0x236db2<_0x5f1161['length'];_0x236db2++){const _0x453afb=_0x5f1161[_0x236db2];if(!_0x453afb['id'])_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x11c)+_0x236db2+_0x42654b(0x12c)));if(!_0x453afb['cronExpression'])_0x22c9ad['push'](check('WARN','cron.json['+_0x236db2+_0x42654b(0x13a)));if(!_0x453afb[_0x42654b(0x133)])_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x11c)+_0x236db2+_0x42654b(0x10d)));if(!_0x453afb['conversationId'])_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),'cron.json['+_0x236db2+_0x42654b(0x116)));else!_0x3ed8b6[_0x42654b(0xf8)](_0x453afb[_0x42654b(0x12b)])&&_0x22c9ad['push'](check(_0x42654b(0x15b),_0x42654b(0x11c)+_0x236db2+']\x20conversationId\x20\x22'+_0x453afb['conversationId']+_0x42654b(0x15d)));}}else _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x137)));}catch(_0x23941f){_0x22c9ad['push'](check(_0x42654b(0x15b),'cron.json\x20解析失败:\x20'+(_0x23941f instanceof Error?_0x23941f[_0x42654b(0x112)]:_0x23941f)));}else _0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x42654b(0x104)));const _0x4cb73b=path_1['default'][_0x42654b(0x152)]((0x0,session_1[_0x42654b(0x107)])(),_0x42654b(0x135),_0x42654b(0x16f));if(fs_1['default'][_0x42654b(0x13b)](_0x4cb73b))try{const _0x380d2d=JSON[_0x42654b(0x168)](fs_1['default'][_0x42654b(0x130)](_0x4cb73b,_0x42654b(0x10b)));if(typeof _0x380d2d!==_0x42654b(0x123)||_0x380d2d===null)_0x22c9ad[_0x42654b(0x147)](check('WARN',_0x42654b(0xf9)));else{if(!_0x380d2d[_0x42654b(0x160)]||typeof _0x380d2d[_0x42654b(0x160)]!==_0x42654b(0x123))_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),'settings-tpl.json\x20缺少\x20env\x20字段'));else{const _0x20639b=Object[_0x42654b(0x156)](_0x380d2d[_0x42654b(0x160)]);_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x42654b(0x145)+(_0x20639b['join'](',\x20')||_0x42654b(0x154))));}}}catch(_0x40694d){_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15b),_0x42654b(0x11e)+(_0x40694d instanceof Error?_0x40694d[_0x42654b(0x112)]:_0x40694d)));}else _0x22c9ad['push'](check(_0x42654b(0x15b),_0x42654b(0x170)));try{(0x0,child_process_1[_0x42654b(0xf1)])(_0x42654b(0x166),{'stdio':_0x42654b(0x15c)}),_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x42654b(0x109)));}catch{_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),_0x42654b(0xf0)));}try{const _0x228cbf=path_1[_0x42654b(0x136)]['join'](_0x5317c6,_0x42654b(0x14e));fs_1[_0x42654b(0x136)]['writeFileSync'](_0x228cbf,'ok',_0x42654b(0x10b)),fs_1[_0x42654b(0x136)][_0x42654b(0x105)](_0x228cbf),_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x15e),_0x42654b(0x16c)));}catch(_0x56ca35){_0x22c9ad[_0x42654b(0x147)](check(_0x42654b(0x151),'客户端目录不可写:\x20'+(_0x56ca35 instanceof Error?_0x56ca35[_0x42654b(0x112)]:_0x56ca35)));}return _0x22c9ad;}function check(_0x592152,_0x530553){return{'level':_0x592152,'message':_0x530553};}
|
package/dist/src/biz/image.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function a7_0x3943(){const _0x296096=['getResourcePath','arch','length','then','userId','buffer','./session',']\x20downloadImageBuffer\x20下载失败:','warn',']\x20图片保存失败:\x20','image/gif','default','set','image/png',']\x20图片已保存:\x20',']\x20OCR\x20无识别结果','child_process','get','trim','https://api.dingtalk.com','processPictureMessage','execFile','pictureDownloadCode','824192hpThYR',']\x20downloadImageBuffer\x20下载结果为空','runOcr','__importDefault','push','[图片\x20OCR]','status','\x20OCR]',']\x20OCR\x20执行失败:\x20','gif','\x20超过限制\x20','mention','\x20bytes)','/v1.0/robot/messageFiles/download','webp','application/json',']\x20getImageDownloadUrl\x20请求失败:','.images','[富文本消息内容为空]','[图片]','16010MAloeV','getAccessToken','3582357wFFWPL','slice',']\x20当前平台(','data','all','filePath','downloadCode','png','message',']\x20downloadImageBuffer\x20下载失败:\x20status=','1647140yLxppM','6xnBwpz','every','1187132Kmouir','word','urllib','isArray','image/jpeg','[图片\x20','mkdirSync','path','../common','parse','3028109OfUeGg','win32','getImageDownloadUrl\x20API\x20返回非200:\x20status=','projUtil','__esModule','13491kkSVLC','processRichTextMessage','test',']\x20OCR\x20二进制不存在:\x20','text','GET','[��片下载失败]','\x0a---','log','x64',']\x20OCR\x20输出解析失败:\x20','stringify','479611GiGISk','picture',']\x20图片大小\x20','jpg','substring','writeFileSync','type',',\x20data=','join',']\x20OCR\x20失败,仅传原图路径:\x20','以下图片\x20OCR\x20识别结果来自对用户消息中图片的预处理(非用户原始输入),如识别不准确可直接查看原图路径','debugLog','map','filter','defineProperty','10XSdrMp',']\x20OCR\x20stderr:\x20','request','timestamp'];a7_0x3943=function(){return _0x296096;};return a7_0x3943();}const a7_0x5e457c=a7_0x19a2;(function(_0x3c923a,_0x263a12){const _0x479f80=a7_0x19a2,_0x461119=_0x3c923a();while(!![]){try{const _0x5c89d9=parseInt(_0x479f80(0x170))/0x1+-parseInt(_0x479f80(0x152))/0x2+-parseInt(_0x479f80(0x148))/0x3+parseInt(_0x479f80(0x155))/0x4*(-parseInt(_0x479f80(0x117))/0x5)+-parseInt(_0x479f80(0x153))/0x6*(-parseInt(_0x479f80(0x15f))/0x7)+-parseInt(_0x479f80(0x132))/0x8+parseInt(_0x479f80(0x164))/0x9*(parseInt(_0x479f80(0x146))/0xa);if(_0x5c89d9===_0x263a12)break;else _0x461119['push'](_0x461119['shift']());}catch(_0x3ef504){_0x461119['push'](_0x461119['shift']());}}}(a7_0x3943,0x91f3a));var __importDefault=this&&this[a7_0x5e457c(0x135)]||function(_0x39d1b9){return _0x39d1b9&&_0x39d1b9['__esModule']?_0x39d1b9:{'default':_0x39d1b9};};Object[a7_0x5e457c(0x116)](exports,a7_0x5e457c(0x163),{'value':!![]}),exports[a7_0x5e457c(0x134)]=runOcr,exports[a7_0x5e457c(0x12f)]=processPictureMessage,exports[a7_0x5e457c(0x165)]=processRichTextMessage;const child_process_1=require(a7_0x5e457c(0x12b)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a7_0x5e457c(0x15c))),urllib_1=__importDefault(require(a7_0x5e457c(0x157))),session_1=require(a7_0x5e457c(0x121)),common_1=require(a7_0x5e457c(0x15d)),MAX_IMAGE_SIZE=0xa*0x400*0x400,DING_API_BASE=a7_0x5e457c(0x12e),OCR_PREAMBLE=a7_0x5e457c(0x112),OCR_BIN_DIR=(0x0,common_1[a7_0x5e457c(0x162)])()[a7_0x5e457c(0x11b)](),cachedOcrBinPath=((()=>{const _0x83fc6e=a7_0x5e457c;if(process['platform']===_0x83fc6e(0x160))return null;const _0x7e7882=process[_0x83fc6e(0x11c)];if(_0x7e7882==='arm64')return path_1[_0x83fc6e(0x126)][_0x83fc6e(0x110)](OCR_BIN_DIR,'ocr-arm64');if(_0x7e7882===_0x83fc6e(0x16d))return path_1['default']['join'](OCR_BIN_DIR,'ocr-x64');return null;})());let ocrBinExists=null;async function runOcr(_0x5b2d33){const _0x15c8a7=a7_0x5e457c;if(!cachedOcrBinPath)return console[_0x15c8a7(0x16c)]('['+(0x0,session_1[_0x15c8a7(0x11a)])()+_0x15c8a7(0x14a)+process['platform']+'/'+process[_0x15c8a7(0x11c)]+')不支持本地OCR,使用模型识别'),null;ocrBinExists===null&&(ocrBinExists=fs_1[_0x15c8a7(0x126)]['existsSync'](cachedOcrBinPath),!ocrBinExists&&console[_0x15c8a7(0x123)]('['+(0x0,session_1['timestamp'])()+_0x15c8a7(0x167)+cachedOcrBinPath));if(!ocrBinExists)return null;return new Promise(_0x515d0e=>{const _0x3663bb=_0x15c8a7;(0x0,child_process_1[_0x3663bb(0x130)])(cachedOcrBinPath,[_0x5b2d33],{'timeout':0x7530,'maxBuffer':0x5*0x400*0x400},(_0x5fb498,_0x3e406a,_0x41ef48)=>{const _0x517d8b=_0x3663bb;if(_0x5fb498){console[_0x517d8b(0x123)]('['+(0x0,session_1[_0x517d8b(0x11a)])()+_0x517d8b(0x13a)+_0x5fb498[_0x517d8b(0x150)]);if(_0x41ef48)console[_0x517d8b(0x123)]('['+(0x0,session_1[_0x517d8b(0x11a)])()+_0x517d8b(0x118)+_0x41ef48[_0x517d8b(0x174)](0x0,0xc8));_0x515d0e(null);return;}try{const _0x484259=JSON[_0x517d8b(0x15e)](_0x3e406a);if(!Array[_0x517d8b(0x158)](_0x484259)||_0x484259['length']===0x0){console[_0x517d8b(0x16c)]('['+(0x0,session_1[_0x517d8b(0x11a)])()+_0x517d8b(0x12a)),_0x515d0e(null);return;}const _0x3f7c2f=_0x484259[_0x517d8b(0x114)](_0x491375=>_0x491375[_0x517d8b(0x156)])[_0x517d8b(0x115)](Boolean)[_0x517d8b(0x110)]('\x20');console['log']('['+(0x0,session_1[_0x517d8b(0x11a)])()+']\x20OCR\x20识别结果:\x20'+_0x3f7c2f['substring'](0x0,0xc8)+(_0x3f7c2f['length']>0xc8?'...':'')),_0x515d0e(_0x3f7c2f||null);}catch{console[_0x517d8b(0x123)]('['+(0x0,session_1[_0x517d8b(0x11a)])()+_0x517d8b(0x16e)+_0x3e406a['substring'](0x0,0xc8)),_0x515d0e(null);}});});}function a7_0x19a2(_0x5b47fb,_0x46fa44){_0x5b47fb=_0x5b47fb-0x10e;const _0x394383=a7_0x3943();let _0x19a294=_0x394383[_0x5b47fb];return _0x19a294;}const MAGIC_NUMBERS=[{'bytes':[0x89,0x50,0x4e,0x47],'mediaType':a7_0x5e457c(0x128),'ext':a7_0x5e457c(0x14f)},{'bytes':[0xff,0xd8,0xff],'mediaType':a7_0x5e457c(0x159),'ext':a7_0x5e457c(0x173)},{'bytes':[0x47,0x49,0x46],'mediaType':a7_0x5e457c(0x125),'ext':a7_0x5e457c(0x13b)},{'bytes':[0x52,0x49,0x46,0x46],'mediaType':'image/webp','ext':a7_0x5e457c(0x140)}];function detectImageMediaType(_0x275fb4){const _0x1c194b=a7_0x5e457c;for(const {bytes:_0xcac839,mediaType:_0x5d749a,ext:_0x3768b9}of MAGIC_NUMBERS){if(_0x275fb4['length']>=_0xcac839[_0x1c194b(0x11d)]&&_0xcac839[_0x1c194b(0x154)]((_0x3afa84,_0x268c4d)=>_0x275fb4[_0x268c4d]===_0x3afa84))return{'mediaType':_0x5d749a,'ext':_0x3768b9};}return{'mediaType':_0x1c194b(0x159),'ext':_0x1c194b(0x173)};}async function getImageDownloadUrl(_0x260495,_0x5bd1b7,_0x5ebedd){const _0x2d8c9c=a7_0x5e457c;try{const _0x44655e=await _0x260495['dingStreamClient'][_0x2d8c9c(0x147)](),_0x2c22d7=DING_API_BASE+_0x2d8c9c(0x13f),_0x215aed=await urllib_1[_0x2d8c9c(0x126)][_0x2d8c9c(0x119)](_0x2c22d7,{'method':'POST','headers':{'x-acs-dingtalk-access-token':_0x44655e,'Content-Type':_0x2d8c9c(0x141)},'data':{'downloadCode':_0x5bd1b7,'robotCode':_0x5ebedd},'dataType':'json','timeout':0x2710});if(_0x215aed[_0x2d8c9c(0x138)]!==0xc8||!_0x215aed['data'])return _0x260495['debugLog'](_0x2d8c9c(0x161)+_0x215aed[_0x2d8c9c(0x138)]+_0x2d8c9c(0x10f)+JSON[_0x2d8c9c(0x16f)](_0x215aed['data'])),null;const _0x52aef7=_0x215aed[_0x2d8c9c(0x14b)],_0x1a8a15=_0x52aef7?.['downloadUrl'];if(!_0x1a8a15)return _0x260495[_0x2d8c9c(0x113)]('getImageDownloadUrl\x20响应无\x20downloadUrl:\x20'+JSON[_0x2d8c9c(0x16f)](_0x52aef7)),null;return _0x1a8a15;}catch(_0xd31685){return console[_0x2d8c9c(0x123)]('['+(0x0,session_1['timestamp'])()+_0x2d8c9c(0x142),_0xd31685),null;}}async function downloadImageBuffer(_0x32073e){const _0x4d8494=a7_0x5e457c;try{const _0x42f296=await urllib_1[_0x4d8494(0x126)][_0x4d8494(0x119)](_0x32073e,{'method':_0x4d8494(0x169),'dataType':_0x4d8494(0x120),'timeout':0x7530});if(_0x42f296[_0x4d8494(0x138)]!==0xc8)return console['warn']('['+(0x0,session_1[_0x4d8494(0x11a)])()+_0x4d8494(0x151)+_0x42f296[_0x4d8494(0x138)]),null;const _0x6ec067=_0x42f296[_0x4d8494(0x14b)];if(!_0x6ec067||_0x6ec067['length']===0x0)return console[_0x4d8494(0x123)]('['+(0x0,session_1[_0x4d8494(0x11a)])()+_0x4d8494(0x133)),null;if(_0x6ec067['length']>MAX_IMAGE_SIZE)return console['warn']('['+(0x0,session_1[_0x4d8494(0x11a)])()+_0x4d8494(0x172)+_0x6ec067[_0x4d8494(0x11d)]+_0x4d8494(0x13c)+MAX_IMAGE_SIZE),null;return _0x6ec067;}catch(_0x46ade6){return console[_0x4d8494(0x123)]('['+(0x0,session_1[_0x4d8494(0x11a)])()+_0x4d8494(0x122),_0x46ade6),null;}}async function downloadAndProcessImage(_0x39a00c,_0x556ad6,_0x15e6e9,_0x626d77){const _0x1a8e7a=a7_0x5e457c,_0x5cef1d=await getImageDownloadUrl(_0x39a00c,_0x556ad6,_0x15e6e9);if(!_0x5cef1d)return null;const _0x190778=await downloadImageBuffer(_0x5cef1d);if(!_0x190778)return null;const {mediaType:_0x181662,ext:_0x4c38f4}=detectImageMediaType(_0x190778),_0x8b78a7=path_1[_0x1a8e7a(0x126)][_0x1a8e7a(0x110)](_0x626d77,_0x1a8e7a(0x143)),_0x1612bd=_0x556ad6[_0x1a8e7a(0x149)](-0x8),_0x231ee9=Date['now']()+'-'+_0x1612bd+'.'+_0x4c38f4,_0x216126=path_1[_0x1a8e7a(0x126)][_0x1a8e7a(0x110)](_0x8b78a7,_0x231ee9);try{fs_1[_0x1a8e7a(0x126)][_0x1a8e7a(0x15b)](_0x8b78a7,{'recursive':!![]}),fs_1[_0x1a8e7a(0x126)][_0x1a8e7a(0x175)](_0x216126,_0x190778);}catch(_0xbb6789){return console['warn']('['+(0x0,session_1[_0x1a8e7a(0x11a)])()+_0x1a8e7a(0x124)+_0x216126,_0xbb6789),null;}return console[_0x1a8e7a(0x16c)]('['+(0x0,session_1['timestamp'])()+_0x1a8e7a(0x129)+_0x216126+'\x20('+_0x181662+',\x20'+_0x190778['length']+_0x1a8e7a(0x13e)),{'mediaType':_0x181662,'filePath':_0x216126,'sizeBytes':_0x190778[_0x1a8e7a(0x11d)]};}async function buildImagePrompt(_0x3c1dc2,_0xa0548e,_0x4b1aaa){const _0x538b16=a7_0x5e457c,_0xa318a9=_0x4b1aaa!=null?'[图片\x20'+_0x4b1aaa+']':_0x538b16(0x145);if(_0xa0548e){const _0x77b91f=await runOcr(_0x3c1dc2[_0x538b16(0x14d)]);if(_0x77b91f){const _0x1aa556=_0x4b1aaa!=null?_0x538b16(0x15a)+_0x4b1aaa+_0x538b16(0x139):_0x538b16(0x137);return _0xa318a9+'\x20'+_0x3c1dc2[_0x538b16(0x14d)]+'\x0a'+_0x1aa556+'\x0a---\x0a'+_0x77b91f+_0x538b16(0x16b);}console[_0x538b16(0x123)]('['+(0x0,session_1['timestamp'])()+_0x538b16(0x111)+_0x3c1dc2[_0x538b16(0x14d)]);}return _0xa318a9+'\x20'+_0x3c1dc2[_0x538b16(0x14d)];}async function processPictureMessage(_0x51fe16,_0x2ced6e,_0x1affd4,_0x6cbdc3,_0xcb3a1e=!![],_0x1505c5){const _0x23fd80=a7_0x5e457c,_0x160ec3=await downloadAndProcessImage(_0x51fe16,_0x2ced6e,_0x1affd4,_0x6cbdc3);if(!_0x160ec3)return null;const _0x4af6bf=await buildImagePrompt(_0x160ec3,_0xcb3a1e),_0x460bb2=[];_0xcb3a1e&&_0x460bb2[_0x23fd80(0x136)](OCR_PREAMBLE);if(_0x1505c5)_0x460bb2[_0x23fd80(0x136)](_0x1505c5);return _0x460bb2[_0x23fd80(0x136)](_0x4af6bf),_0x460bb2[_0x23fd80(0x110)]('\x0a');}async function processRichTextMessage(_0x39c31e,_0x42ae92,_0x5bafc3,_0x2d4882,_0x332399=!![]){const _0x47d5c6=a7_0x5e457c,_0xc6736e=_0x42ae92[_0x47d5c6(0x115)](_0x3f8fea=>_0x3f8fea[_0x47d5c6(0x10e)]===_0x47d5c6(0x171)&&(_0x3f8fea[_0x47d5c6(0x14e)]||_0x3f8fea[_0x47d5c6(0x131)]))[_0x47d5c6(0x11d)],_0x3a47ad=_0x42ae92[_0x47d5c6(0x114)](async(_0x1caa2c,_0x610123)=>{const _0x5c2397=_0x47d5c6;if(_0x1caa2c[_0x5c2397(0x10e)]===_0x5c2397(0x171)){const _0x22cceb=_0x1caa2c[_0x5c2397(0x14e)]||_0x1caa2c[_0x5c2397(0x131)];if(_0x22cceb){const _0x4fefa9=await downloadAndProcessImage(_0x39c31e,_0x22cceb,_0x5bafc3,_0x2d4882);return{'index':_0x610123,'result':_0x4fefa9};}}return{'index':_0x610123,'result':null};}),_0xb215df=await Promise['all'](_0x3a47ad),_0x189874=new Map();for(const {index:_0x498a78,result:_0x4a6fa5}of _0xb215df){_0x189874[_0x47d5c6(0x127)](_0x498a78,_0x4a6fa5);}const _0x54bb77=new Map();if(_0x332399&&_0xc6736e>0x0){const _0x30b1cf=[];for(const [_0x3b02c8,_0x3a5020]of _0x189874){_0x3a5020&&_0x30b1cf['push'](runOcr(_0x3a5020[_0x47d5c6(0x14d)])[_0x47d5c6(0x11e)](_0x3ab251=>({'index':_0x3b02c8,'ocrText':_0x3ab251})));}const _0x15f9f7=await Promise[_0x47d5c6(0x14c)](_0x30b1cf);for(const {index:_0x5a5705,ocrText:_0x53f38f}of _0x15f9f7){_0x54bb77[_0x47d5c6(0x127)](_0x5a5705,_0x53f38f);}}const _0x4870a9=[];let _0x3cf50c=0x0;for(let _0x50221c=0x0;_0x50221c<_0x42ae92[_0x47d5c6(0x11d)];_0x50221c++){const _0x897a20=_0x42ae92[_0x50221c];if(_0x897a20[_0x47d5c6(0x10e)]===_0x47d5c6(0x168)&&_0x897a20[_0x47d5c6(0x168)]){if(/^@\S+$/[_0x47d5c6(0x166)](_0x897a20[_0x47d5c6(0x168)][_0x47d5c6(0x12d)]()))continue;_0x4870a9[_0x47d5c6(0x136)](_0x897a20[_0x47d5c6(0x168)]);}else{if(_0x897a20[_0x47d5c6(0x10e)]===_0x47d5c6(0x13d)&&_0x897a20[_0x47d5c6(0x11f)])_0x4870a9[_0x47d5c6(0x136)]('@'+_0x897a20[_0x47d5c6(0x11f)]);else{if(_0x897a20[_0x47d5c6(0x10e)]===_0x47d5c6(0x171)){const _0x5037be=_0x189874[_0x47d5c6(0x12c)](_0x50221c);if(_0x5037be){_0x3cf50c++;const _0x2bb81d=_0xc6736e>0x1?_0x3cf50c:undefined,_0x4509f8=_0x332399?_0x54bb77['get'](_0x50221c):null,_0x34ef76=_0x2bb81d!=null?_0x47d5c6(0x15a)+_0x2bb81d+']':_0x47d5c6(0x145);if(_0x4509f8){const _0x3a8399=_0x2bb81d!=null?_0x47d5c6(0x15a)+_0x2bb81d+_0x47d5c6(0x139):_0x47d5c6(0x137);_0x4870a9[_0x47d5c6(0x136)](_0x34ef76+'\x20'+_0x5037be[_0x47d5c6(0x14d)]+'\x0a'+_0x3a8399+'\x0a---\x0a'+_0x4509f8+_0x47d5c6(0x16b));}else _0x4870a9['push'](_0x34ef76+'\x20'+_0x5037be[_0x47d5c6(0x14d)]);}else{const _0x5a9c40=_0x897a20[_0x47d5c6(0x14e)]||_0x897a20['pictureDownloadCode'];_0x5a9c40&&_0x4870a9[_0x47d5c6(0x136)](_0x47d5c6(0x16a));}}}}}const _0x26dbb1=_0x4870a9['join']('\x0a')||_0x47d5c6(0x144);if(_0x332399&&_0x3cf50c>0x0)return OCR_PREAMBLE+'\x0a'+_0x26dbb1;return _0x26dbb1;}
|
|
1
|
+
'use strict';const a7_0x4ac058=a7_0x1fee;(function(_0x5acc13,_0xe4d7e3){const _0x26b44e=a7_0x1fee,_0x2e37e4=_0x5acc13();while(!![]){try{const _0x5c3cf4=parseInt(_0x26b44e(0xae))/0x1*(parseInt(_0x26b44e(0xa2))/0x2)+-parseInt(_0x26b44e(0xc9))/0x3*(parseInt(_0x26b44e(0x8b))/0x4)+-parseInt(_0x26b44e(0x92))/0x5*(-parseInt(_0x26b44e(0xb2))/0x6)+-parseInt(_0x26b44e(0x95))/0x7+parseInt(_0x26b44e(0x7c))/0x8+-parseInt(_0x26b44e(0x91))/0x9*(parseInt(_0x26b44e(0xc0))/0xa)+parseInt(_0x26b44e(0x8d))/0xb*(parseInt(_0x26b44e(0x98))/0xc);if(_0x5c3cf4===_0xe4d7e3)break;else _0x2e37e4['push'](_0x2e37e4['shift']());}catch(_0x428db6){_0x2e37e4['push'](_0x2e37e4['shift']());}}}(a7_0x100a,0xd2356));var __importDefault=this&&this[a7_0x4ac058(0x7b)]||function(_0x44ec8e){return _0x44ec8e&&_0x44ec8e['__esModule']?_0x44ec8e:{'default':_0x44ec8e};};Object[a7_0x4ac058(0x9f)](exports,a7_0x4ac058(0x6c),{'value':!![]}),exports[a7_0x4ac058(0xaa)]=runOcr,exports['processPictureMessage']=processPictureMessage,exports[a7_0x4ac058(0xbe)]=processRichTextMessage;const child_process_1=require(a7_0x4ac058(0x90)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path')),urllib_1=__importDefault(require(a7_0x4ac058(0x75))),session_1=require(a7_0x4ac058(0x89)),common_1=require(a7_0x4ac058(0xc4)),MAX_IMAGE_SIZE=0xa*0x400*0x400,DING_API_BASE=a7_0x4ac058(0x9b),OCR_PREAMBLE=a7_0x4ac058(0xa8),OCR_BIN_DIR=(0x0,common_1[a7_0x4ac058(0xba)])()[a7_0x4ac058(0xbd)](),cachedOcrBinPath=((()=>{const _0x210fdf=a7_0x4ac058;if(process[_0x210fdf(0x68)]==='win32')return null;const _0x2bf002=process[_0x210fdf(0xc1)];if(_0x2bf002==='arm64')return path_1['default'][_0x210fdf(0x7d)](OCR_BIN_DIR,'ocr-arm64');if(_0x2bf002===_0x210fdf(0xa6))return path_1[_0x210fdf(0xb9)][_0x210fdf(0x7d)](OCR_BIN_DIR,'ocr-x64');return null;})());let ocrBinExists=null;async function runOcr(_0x5232b4){const _0x2a3ccd=a7_0x4ac058;if(!cachedOcrBinPath)return console[_0x2a3ccd(0x81)]('['+(0x0,session_1[_0x2a3ccd(0x8e)])()+_0x2a3ccd(0xc2)+process[_0x2a3ccd(0x68)]+'/'+process[_0x2a3ccd(0xc1)]+_0x2a3ccd(0xa5)),null;ocrBinExists===null&&(ocrBinExists=fs_1[_0x2a3ccd(0xb9)][_0x2a3ccd(0x96)](cachedOcrBinPath),!ocrBinExists&&console[_0x2a3ccd(0x8f)]('['+(0x0,session_1['timestamp'])()+']\x20OCR\x20二进制不存在:\x20'+cachedOcrBinPath));if(!ocrBinExists)return null;return new Promise(_0xfd9722=>{const _0x34f3af=_0x2a3ccd;(0x0,child_process_1[_0x34f3af(0x9a)])(cachedOcrBinPath,[_0x5232b4],{'timeout':0x7530,'maxBuffer':0x5*0x400*0x400},(_0x41ddae,_0x19332f,_0x40b560)=>{const _0x56411d=_0x34f3af;if(_0x41ddae){console[_0x56411d(0x8f)]('['+(0x0,session_1[_0x56411d(0x8e)])()+_0x56411d(0x8a)+_0x41ddae[_0x56411d(0x72)]);if(_0x40b560)console['warn']('['+(0x0,session_1[_0x56411d(0x8e)])()+_0x56411d(0x83)+_0x40b560[_0x56411d(0x87)](0x0,0xc8));_0xfd9722(null);return;}try{const _0xb688f0=JSON[_0x56411d(0xa4)](_0x19332f);if(!Array[_0x56411d(0x6e)](_0xb688f0)||_0xb688f0[_0x56411d(0xa3)]===0x0){console['log']('['+(0x0,session_1[_0x56411d(0x8e)])()+_0x56411d(0x86)),_0xfd9722(null);return;}const _0x40585e=_0xb688f0[_0x56411d(0x97)](_0x25684c=>_0x25684c['word'])['filter'](Boolean)[_0x56411d(0x7d)]('\x20');console['log']('['+(0x0,session_1[_0x56411d(0x8e)])()+_0x56411d(0xab)+_0x40585e['substring'](0x0,0xc8)+(_0x40585e[_0x56411d(0xa3)]>0xc8?_0x56411d(0x88):'')),_0xfd9722(_0x40585e||null);}catch{console[_0x56411d(0x8f)]('['+(0x0,session_1['timestamp'])()+_0x56411d(0x79)+_0x19332f[_0x56411d(0x87)](0x0,0xc8)),_0xfd9722(null);}});});}const MAGIC_NUMBERS=[{'bytes':[0x89,0x50,0x4e,0x47],'mediaType':'image/png','ext':a7_0x4ac058(0xc8)},{'bytes':[0xff,0xd8,0xff],'mediaType':a7_0x4ac058(0xb1),'ext':a7_0x4ac058(0x69)},{'bytes':[0x47,0x49,0x46],'mediaType':'image/gif','ext':a7_0x4ac058(0xcb)},{'bytes':[0x52,0x49,0x46,0x46],'mediaType':'image/webp','ext':a7_0x4ac058(0x84)}];function detectImageMediaType(_0xa0da9d){const _0xece8e0=a7_0x4ac058;for(const {bytes:_0xa01989,mediaType:_0x3f08a8,ext:_0x48a7a8}of MAGIC_NUMBERS){if(_0xa0da9d[_0xece8e0(0xa3)]>=_0xa01989[_0xece8e0(0xa3)]&&_0xa01989['every']((_0x2e33c6,_0x37f1bc)=>_0xa0da9d[_0x37f1bc]===_0x2e33c6))return{'mediaType':_0x3f08a8,'ext':_0x48a7a8};}return{'mediaType':_0xece8e0(0xb1),'ext':_0xece8e0(0x69)};}async function getImageDownloadUrl(_0x98eda4,_0x43ba76,_0x115e14){const _0x2735f4=a7_0x4ac058;try{const _0x265025=await _0x98eda4[_0x2735f4(0xb5)]['getAccessToken'](),_0xbebd22=DING_API_BASE+_0x2735f4(0xa1),_0x52ddba=await urllib_1[_0x2735f4(0xb9)][_0x2735f4(0xc3)](_0xbebd22,{'method':_0x2735f4(0x6b),'headers':{'x-acs-dingtalk-access-token':_0x265025,'Content-Type':_0x2735f4(0xb7)},'data':{'downloadCode':_0x43ba76,'robotCode':_0x115e14},'dataType':_0x2735f4(0x76),'timeout':0x2710});if(_0x52ddba[_0x2735f4(0x7a)]!==0xc8||!_0x52ddba[_0x2735f4(0x71)])return _0x98eda4['debugLog'](_0x2735f4(0x82)+_0x52ddba[_0x2735f4(0x7a)]+_0x2735f4(0x74)+JSON['stringify'](_0x52ddba[_0x2735f4(0x71)])),null;const _0x5acee9=_0x52ddba['data'],_0x3ef815=_0x5acee9?.[_0x2735f4(0x73)];if(!_0x3ef815)return _0x98eda4[_0x2735f4(0x77)]('getImageDownloadUrl\x20响应无\x20downloadUrl:\x20'+JSON['stringify'](_0x5acee9)),null;return _0x3ef815;}catch(_0x44000b){return console[_0x2735f4(0x8f)]('['+(0x0,session_1['timestamp'])()+_0x2735f4(0x6f),_0x44000b),null;}}function a7_0x1fee(_0x12a3f2,_0x1ff07f){_0x12a3f2=_0x12a3f2-0x68;const _0x100a94=a7_0x100a();let _0x1feee1=_0x100a94[_0x12a3f2];return _0x1feee1;}async function downloadImageBuffer(_0x33c760){const _0x146d83=a7_0x4ac058;try{const _0x2aac3f=await urllib_1[_0x146d83(0xb9)][_0x146d83(0xc3)](_0x33c760,{'method':_0x146d83(0xb3),'dataType':_0x146d83(0xbc),'timeout':0x7530});if(_0x2aac3f[_0x146d83(0x7a)]!==0xc8)return console['warn']('['+(0x0,session_1[_0x146d83(0x8e)])()+_0x146d83(0xbf)+_0x2aac3f[_0x146d83(0x7a)]),null;const _0x26c8f5=_0x2aac3f[_0x146d83(0x71)];if(!_0x26c8f5||_0x26c8f5[_0x146d83(0xa3)]===0x0)return console['warn']('['+(0x0,session_1[_0x146d83(0x8e)])()+']\x20downloadImageBuffer\x20下载结果为空'),null;if(_0x26c8f5[_0x146d83(0xa3)]>MAX_IMAGE_SIZE)return console[_0x146d83(0x8f)]('['+(0x0,session_1[_0x146d83(0x8e)])()+_0x146d83(0x6a)+_0x26c8f5[_0x146d83(0xa3)]+'\x20超过限制\x20'+MAX_IMAGE_SIZE),null;return _0x26c8f5;}catch(_0x1c26d4){return console[_0x146d83(0x8f)]('['+(0x0,session_1[_0x146d83(0x8e)])()+_0x146d83(0xa7),_0x1c26d4),null;}}function a7_0x100a(){const _0x4d1711=['trim','filter','[��片下载失败]','log','getImageDownloadUrl\x20API\x20返回非200:\x20status=',']\x20OCR\x20stderr:\x20','webp','mkdirSync',']\x20OCR\x20无识别结果','substring','...','./session',']\x20OCR\x20执行失败:\x20','4mHfxEw','\x20OCR]','59477NlHISu','timestamp','warn','child_process','8631sCMCGn','135rwLRZc','push','userId','3533488cWcyVQ','existsSync','map','1884ZfOvRK','filePath','execFile','https://api.dingtalk.com','pictureDownloadCode','\x0a---\x0a',']\x20图片保存失败:\x20','defineProperty','now','/v1.0/robot/messageFiles/download','10YmvtSN','length','parse',')不支持本地OCR,使用模型识别','x64',']\x20downloadImageBuffer\x20下载失败:','以下图片\x20OCR\x20识别结果来自对用户消息中图片的预处理(非用户原始输入),如识别不准确可直接查看原图路径','\x20bytes)','runOcr',']\x20OCR\x20识别结果:\x20','picture','[图片\x20OCR]','115683zYsLwS','get','downloadCode','image/jpeg','12498kpdQBu','GET','[图片]','dingStreamClient','text','application/json','set','default','projUtil','all','buffer','getResourcePath','processRichTextMessage',']\x20downloadImageBuffer\x20下载失败:\x20status=','10460EvhclU','arch',']\x20当前平台(','request','../common','writeFileSync','[图片\x20',']\x20OCR\x20失败,仅传原图路径:\x20','png','132474CXLUyn','test','gif','platform','jpg',']\x20图片大小\x20','POST','__esModule','type','isArray',']\x20getImageDownloadUrl\x20请求失败:','[富文本消息内容为空]','data','message','downloadUrl',',\x20data=','urllib','json','debugLog','\x0a---',']\x20OCR\x20输出解析失败:\x20','status','__importDefault','7436120XLtgPg','join'];a7_0x100a=function(){return _0x4d1711;};return a7_0x100a();}async function downloadAndProcessImage(_0x26c8b7,_0x4a64b4,_0x3c0d9d,_0x26435f){const _0x494439=a7_0x4ac058,_0x364b57=await getImageDownloadUrl(_0x26c8b7,_0x4a64b4,_0x3c0d9d);if(!_0x364b57)return null;const _0x5c47a2=await downloadImageBuffer(_0x364b57);if(!_0x5c47a2)return null;const {mediaType:_0x2c9916,ext:_0x4206e0}=detectImageMediaType(_0x5c47a2),_0x5556ed=path_1[_0x494439(0xb9)][_0x494439(0x7d)](_0x26435f,'.images'),_0x323382=_0x4a64b4['slice'](-0x8),_0x4adbb3=Date[_0x494439(0xa0)]()+'-'+_0x323382+'.'+_0x4206e0,_0x299bb4=path_1[_0x494439(0xb9)][_0x494439(0x7d)](_0x5556ed,_0x4adbb3);try{fs_1[_0x494439(0xb9)][_0x494439(0x85)](_0x5556ed,{'recursive':!![]}),fs_1['default'][_0x494439(0xc5)](_0x299bb4,_0x5c47a2);}catch(_0x14259d){return console[_0x494439(0x8f)]('['+(0x0,session_1[_0x494439(0x8e)])()+_0x494439(0x9e)+_0x299bb4,_0x14259d),null;}return console['log']('['+(0x0,session_1[_0x494439(0x8e)])()+']\x20图片已保存:\x20'+_0x299bb4+'\x20('+_0x2c9916+',\x20'+_0x5c47a2[_0x494439(0xa3)]+_0x494439(0xa9)),{'mediaType':_0x2c9916,'filePath':_0x299bb4,'sizeBytes':_0x5c47a2[_0x494439(0xa3)]};}async function buildImagePrompt(_0x28890a,_0x5f0b7f,_0x559cac){const _0xb77a58=a7_0x4ac058,_0x5a350a=_0x559cac!=null?_0xb77a58(0xc6)+_0x559cac+']':_0xb77a58(0xb4);if(_0x5f0b7f){const _0x4799e4=await runOcr(_0x28890a['filePath']);if(_0x4799e4){const _0x125e78=_0x559cac!=null?_0xb77a58(0xc6)+_0x559cac+_0xb77a58(0x8c):_0xb77a58(0xad);return _0x5a350a+'\x20'+_0x28890a['filePath']+'\x0a'+_0x125e78+_0xb77a58(0x9d)+_0x4799e4+_0xb77a58(0x78);}console[_0xb77a58(0x8f)]('['+(0x0,session_1[_0xb77a58(0x8e)])()+_0xb77a58(0xc7)+_0x28890a[_0xb77a58(0x99)]);}return _0x5a350a+'\x20'+_0x28890a['filePath'];}async function processPictureMessage(_0x13ecfc,_0x40aa90,_0x468996,_0x19f5b7,_0xe76461=!![],_0x453ee5){const _0x2a66bb=a7_0x4ac058,_0x4640a9=await downloadAndProcessImage(_0x13ecfc,_0x40aa90,_0x468996,_0x19f5b7);if(!_0x4640a9)return null;const _0x3d2e4f=await buildImagePrompt(_0x4640a9,_0xe76461),_0x464aa9=[];_0xe76461&&_0x464aa9[_0x2a66bb(0x93)](OCR_PREAMBLE);if(_0x453ee5)_0x464aa9[_0x2a66bb(0x93)](_0x453ee5);return _0x464aa9[_0x2a66bb(0x93)](_0x3d2e4f),_0x464aa9[_0x2a66bb(0x7d)]('\x0a');}async function processRichTextMessage(_0x266ed0,_0x152044,_0x2ae0f3,_0x450861,_0x43ed30=!![]){const _0x3cc93c=a7_0x4ac058,_0x291351=_0x152044[_0x3cc93c(0x7f)](_0x16e2ac=>_0x16e2ac[_0x3cc93c(0x6d)]==='picture'&&(_0x16e2ac[_0x3cc93c(0xb0)]||_0x16e2ac[_0x3cc93c(0x9c)]))['length'],_0x188c4b=_0x152044[_0x3cc93c(0x97)](async(_0x22ef10,_0x1c9e4a)=>{const _0x537f40=_0x3cc93c;if(_0x22ef10[_0x537f40(0x6d)]==='picture'){const _0x26308b=_0x22ef10['downloadCode']||_0x22ef10[_0x537f40(0x9c)];if(_0x26308b){const _0x2e6c9d=await downloadAndProcessImage(_0x266ed0,_0x26308b,_0x2ae0f3,_0x450861);return{'index':_0x1c9e4a,'result':_0x2e6c9d};}}return{'index':_0x1c9e4a,'result':null};}),_0x58d2c8=await Promise['all'](_0x188c4b),_0x36cc52=new Map();for(const {index:_0x5b54d6,result:_0x4b5527}of _0x58d2c8){_0x36cc52['set'](_0x5b54d6,_0x4b5527);}const _0x5baf55=new Map();if(_0x43ed30&&_0x291351>0x0){const _0x22cddf=[];for(const [_0x303735,_0x14505d]of _0x36cc52){_0x14505d&&_0x22cddf['push'](runOcr(_0x14505d[_0x3cc93c(0x99)])['then'](_0x52cb5b=>({'index':_0x303735,'ocrText':_0x52cb5b})));}const _0x5144af=await Promise[_0x3cc93c(0xbb)](_0x22cddf);for(const {index:_0x850f50,ocrText:_0x2869fc}of _0x5144af){_0x5baf55[_0x3cc93c(0xb8)](_0x850f50,_0x2869fc);}}const _0x416ac5=[];let _0x39dbf5=0x0;for(let _0x2af77d=0x0;_0x2af77d<_0x152044['length'];_0x2af77d++){const _0xafa470=_0x152044[_0x2af77d];if(_0xafa470[_0x3cc93c(0x6d)]===_0x3cc93c(0xb6)&&_0xafa470[_0x3cc93c(0xb6)]){if(/^@\S+$/[_0x3cc93c(0xca)](_0xafa470['text'][_0x3cc93c(0x7e)]()))continue;_0x416ac5[_0x3cc93c(0x93)](_0xafa470[_0x3cc93c(0xb6)]);}else{if(_0xafa470[_0x3cc93c(0x6d)]==='mention'&&_0xafa470['userId'])_0x416ac5[_0x3cc93c(0x93)]('@'+_0xafa470[_0x3cc93c(0x94)]);else{if(_0xafa470[_0x3cc93c(0x6d)]===_0x3cc93c(0xac)){const _0xe0a88c=_0x36cc52[_0x3cc93c(0xaf)](_0x2af77d);if(_0xe0a88c){_0x39dbf5++;const _0x2e5d88=_0x291351>0x1?_0x39dbf5:undefined,_0x380260=_0x43ed30?_0x5baf55[_0x3cc93c(0xaf)](_0x2af77d):null,_0x332dfa=_0x2e5d88!=null?_0x3cc93c(0xc6)+_0x2e5d88+']':_0x3cc93c(0xb4);if(_0x380260){const _0x375945=_0x2e5d88!=null?'[图片\x20'+_0x2e5d88+_0x3cc93c(0x8c):'[图片\x20OCR]';_0x416ac5[_0x3cc93c(0x93)](_0x332dfa+'\x20'+_0xe0a88c[_0x3cc93c(0x99)]+'\x0a'+_0x375945+_0x3cc93c(0x9d)+_0x380260+_0x3cc93c(0x78));}else _0x416ac5['push'](_0x332dfa+'\x20'+_0xe0a88c[_0x3cc93c(0x99)]);}else{const _0x21a0a5=_0xafa470[_0x3cc93c(0xb0)]||_0xafa470['pictureDownloadCode'];_0x21a0a5&&_0x416ac5['push'](_0x3cc93c(0x80));}}}}}const _0x2bf38b=_0x416ac5[_0x3cc93c(0x7d)]('\x0a')||_0x3cc93c(0x70);if(_0x43ed30&&_0x39dbf5>0x0)return OCR_PREAMBLE+'\x0a'+_0x2bf38b;return _0x2bf38b;}
|
package/dist/src/biz/lock.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';const a8_0x2e3edb=a8_0x1089;function a8_0x1e65(){const _0xdf9442=['kill','timestamp','pid','path','4033305zeUrmz','2161554xzUQlb','__esModule','4587400loeTlh','existsSync','1109022FhxeJG','error','1125034hamfcS','\x20\x20如需强制启动,请先停止已有进程或删除锁文件:\x20','default','writeFileSync','unlinkSync','2vnIEDV','join','35nbNWuI','SIGINT','\x22\x20已有运行中的进程\x20(PID:\x20','trim','./session','exit',']\x20检测到过期锁文件\x20(PID:\x20','utf-8','50WcaCxE','1706756ZwQHEO','__importDefault','readFileSync','4829925xbWAaC'];a8_0x1e65=function(){return _0xdf9442;};return a8_0x1e65();}(function(_0x5343e7,_0x129e66){const _0x447b36=a8_0x1089,_0x260000=_0x5343e7();while(!![]){try{const _0xe8d21f=parseInt(_0x447b36(0x128))/0x1*(parseInt(_0x447b36(0x123))/0x2)+-parseInt(_0x447b36(0x13c))/0x3+parseInt(_0x447b36(0x133))/0x4+-parseInt(_0x447b36(0x136))/0x5+parseInt(_0x447b36(0x140))/0x6*(-parseInt(_0x447b36(0x12a))/0x7)+-parseInt(_0x447b36(0x13e))/0x8+parseInt(_0x447b36(0x13b))/0x9*(parseInt(_0x447b36(0x132))/0xa);if(_0xe8d21f===_0x129e66)break;else _0x260000['push'](_0x260000['shift']());}catch(_0x3aed13){_0x260000['push'](_0x260000['shift']());}}}(a8_0x1e65,0x9484f));function a8_0x1089(_0x1f9b06,_0x50683f){_0x1f9b06=_0x1f9b06-0x122;const _0x1e6583=a8_0x1e65();let _0x108962=_0x1e6583[_0x1f9b06];return _0x108962;}var __importDefault=this&&this[a8_0x2e3edb(0x134)]||function(_0x36be07){const _0x388bcc=a8_0x2e3edb;return _0x36be07&&_0x36be07[_0x388bcc(0x13d)]?_0x36be07:{'default':_0x36be07};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['acquirePidLock']=acquirePidLock;const session_1=require(a8_0x2e3edb(0x12e)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a8_0x2e3edb(0x13a)));function acquirePidLock(_0x624507,_0x51e7da){const _0x1cffaa=a8_0x2e3edb,_0x39203f=path_1[_0x1cffaa(0x125)][_0x1cffaa(0x129)](_0x624507,'.pid.lock');if(fs_1[_0x1cffaa(0x125)][_0x1cffaa(0x13f)](_0x39203f))try{const _0x1c1ad1=parseInt(fs_1[_0x1cffaa(0x125)][_0x1cffaa(0x135)](_0x39203f,'utf-8')[_0x1cffaa(0x12d)](),0xa);if(!isNaN(_0x1c1ad1))try{process[_0x1cffaa(0x137)](_0x1c1ad1,0x0),console[_0x1cffaa(0x122)]('[FATAL]\x20clientId\x20\x22'+_0x51e7da+_0x1cffaa(0x12c)+_0x1c1ad1+')'),console[_0x1cffaa(0x122)](_0x1cffaa(0x124)+_0x39203f),process[_0x1cffaa(0x12f)](0x1);}catch{console['log']('['+(0x0,session_1[_0x1cffaa(0x138)])()+_0x1cffaa(0x130)+_0x1c1ad1+'\x20已退出),自动清理');}}catch{}fs_1['default'][_0x1cffaa(0x126)](_0x39203f,String(process[_0x1cffaa(0x139)]),_0x1cffaa(0x131));const _0x3bda29=()=>{const _0x56822c=_0x1cffaa;try{fs_1[_0x56822c(0x125)][_0x56822c(0x127)](_0x39203f);}catch{}};process['on'](_0x1cffaa(0x12f),_0x3bda29),process['on'](_0x1cffaa(0x12b),()=>{const _0xbaaeeb=_0x1cffaa;_0x3bda29(),process[_0xbaaeeb(0x12f)](0x82);}),process['on']('SIGTERM',()=>{const _0x4a336f=_0x1cffaa;_0x3bda29(),process[_0x4a336f(0x12f)](0x8f);});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a9_0x5c6f28=a9_0x3553;(function(_0x23a20d,_0x3cc4fe){const _0x54cd39=a9_0x3553,_0x4e7540=_0x23a20d();while(!![]){try{const _0x190aa5=-parseInt(_0x54cd39(0x1bc))/0x1*(parseInt(_0x54cd39(0x18a))/0x2)+-parseInt(_0x54cd39(0x1b4))/0x3+parseInt(_0x54cd39(0x1d3))/0x4*(parseInt(_0x54cd39(0x1c9))/0x5)+-parseInt(_0x54cd39(0x19f))/0x6*(parseInt(_0x54cd39(0x1ab))/0x7)+-parseInt(_0x54cd39(0x187))/0x8+parseInt(_0x54cd39(0x1a4))/0x9+-parseInt(_0x54cd39(0x192))/0xa*(-parseInt(_0x54cd39(0x1cf))/0xb);if(_0x190aa5===_0x3cc4fe)break;else _0x4e7540['push'](_0x4e7540['shift']());}catch(_0x2532dd){_0x4e7540['push'](_0x4e7540['shift']());}}}(a9_0x4cf7,0x6f345));function a9_0x3553(_0x35099e,_0x19025e){_0x35099e=_0x35099e-0x17d;const _0x4cf70f=a9_0x4cf7();let _0x3553e8=_0x4cf70f[_0x35099e];return _0x3553e8;}var __importDefault=this&&this[a9_0x5c6f28(0x1bd)]||function(_0x53c756){const _0x9ae273=a9_0x5c6f28;return _0x53c756&&_0x53c756[_0x9ae273(0x1a8)]?_0x53c756:{'default':_0x53c756};};Object[a9_0x5c6f28(0x1b9)](exports,a9_0x5c6f28(0x1a8),{'value':!![]}),exports[a9_0x5c6f28(0x1a7)]=fetchQuotedMessage,exports[a9_0x5c6f28(0x1b7)]=filterToolUseContent,exports[a9_0x5c6f28(0x1d4)]=splitMessage,exports[a9_0x5c6f28(0x17e)]=sendDingMessage,exports[a9_0x5c6f28(0x193)]=sendClaudeResponseToDing;const utils_ok_1=require(a9_0x5c6f28(0x1bb)),utils_ok_2=require('utils-ok'),urllib_1=__importDefault(require('urllib')),DING_API_BASE=a9_0x5c6f28(0x1ad);async function fetchQuotedMessage(_0xc914fb,_0x301389){const _0xad6050=a9_0x5c6f28;try{const _0x344b97=await _0xc914fb[_0xad6050(0x1be)][_0xad6050(0x1d2)](),_0x570035=DING_API_BASE+_0xad6050(0x1a2)+encodeURIComponent(_0x301389),_0x4add58=await urllib_1['default'][_0xad6050(0x1a5)](_0x570035,{'method':_0xad6050(0x190),'headers':{'x-acs-dingtalk-access-token':_0x344b97},'dataType':_0xad6050(0x1ae),'timeout':0x1388});if(_0x4add58['status']!==0xc8||!_0x4add58['data'])return _0xc914fb[_0xad6050(0x1c6)](_0xad6050(0x1d5)+_0x4add58['status']+_0xad6050(0x19d)+JSON[_0xad6050(0x1ca)](_0x4add58['data'])),null;const _0x2c15ac=_0x4add58[_0xad6050(0x185)];if(_0x2c15ac[_0xad6050(0x18f)]&&typeof _0x2c15ac[_0xad6050(0x18f)]==='object'){const _0x482b59=_0x2c15ac[_0xad6050(0x18f)][_0xad6050(0x180)];if(typeof _0x482b59===_0xad6050(0x1c1)&&_0x482b59)return _0x482b59[_0xad6050(0x1b0)]();}if(typeof _0x2c15ac[_0xad6050(0x180)]===_0xad6050(0x1c1)&&_0x2c15ac['content'])try{const _0x1eb358=JSON['parse'](_0x2c15ac[_0xad6050(0x180)]);if(typeof _0x1eb358===_0xad6050(0x1c1))return _0x1eb358[_0xad6050(0x1b0)]();if(_0x1eb358[_0xad6050(0x18f)])return String(_0x1eb358[_0xad6050(0x18f)])[_0xad6050(0x1b0)]();if(_0x1eb358[_0xad6050(0x180)])return String(_0x1eb358['content'])['trim']();}catch{return _0x2c15ac[_0xad6050(0x180)][_0xad6050(0x1b0)]();}if(_0x2c15ac[_0xad6050(0x1aa)]&&typeof _0x2c15ac['body']===_0xad6050(0x182)){const _0x291216=_0x2c15ac[_0xad6050(0x1aa)];if(typeof _0x291216[_0xad6050(0x180)]===_0xad6050(0x1c1)&&_0x291216[_0xad6050(0x180)])return _0x291216['content']['trim']();}return _0xc914fb[_0xad6050(0x1c6)](_0xad6050(0x197)+Object['keys'](_0x2c15ac)[_0xad6050(0x19b)](',')),null;}catch(_0x57a33e){return console[_0xad6050(0x1d0)](_0xad6050(0x1c4),_0x57a33e),null;}}const TOOL_TAGS=[a9_0x5c6f28(0x188),a9_0x5c6f28(0x18d),a9_0x5c6f28(0x1a3),a9_0x5c6f28(0x199),a9_0x5c6f28(0x1a1),a9_0x5c6f28(0x191),a9_0x5c6f28(0x1a6),a9_0x5c6f28(0x1ce),a9_0x5c6f28(0x1cc),a9_0x5c6f28(0x1c7),'TaskOutput',a9_0x5c6f28(0x18b),a9_0x5c6f28(0x1b1),a9_0x5c6f28(0x1b8),a9_0x5c6f28(0x19e),a9_0x5c6f28(0x1b2),'TaskUpdate',a9_0x5c6f28(0x1d1),a9_0x5c6f28(0x184),a9_0x5c6f28(0x1d6),'CronCreate','CronDelete',a9_0x5c6f28(0x1af),a9_0x5c6f28(0x196),a9_0x5c6f28(0x1c5)][a9_0x5c6f28(0x19b)]('|'),TOOL_USE_SELF_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0x5c6f28(0x186),'g'),TOOL_USE_OPEN_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0x5c6f28(0x1bf),'g'),MULTI_NEWLINE_RE=/\n{3,}/g;function filterToolUseContent(_0x2a7d56){const _0x1e7055=a9_0x5c6f28;let _0x3e5e89=_0x2a7d56[_0x1e7055(0x18c)](TOOL_USE_SELF_CLOSE_RE,'');return _0x3e5e89=_0x3e5e89[_0x1e7055(0x18c)](TOOL_USE_OPEN_CLOSE_RE,''),_0x3e5e89=_0x3e5e89[_0x1e7055(0x18c)](MULTI_NEWLINE_RE,'\x0a\x0a'),_0x3e5e89[_0x1e7055(0x1b0)]();}function splitMessage(_0x545404,_0x285b09){const _0x273949=a9_0x5c6f28,_0x80ad34=[];while(_0x545404['length']>_0x285b09){let _0x44ade0=_0x545404[_0x273949(0x1c3)]('\x0a',_0x285b09);(_0x44ade0===-0x1||_0x44ade0<_0x285b09*0.5)&&(_0x44ade0=_0x545404[_0x273949(0x1c3)]('。',_0x285b09)),(_0x44ade0===-0x1||_0x44ade0<_0x285b09*0.5)&&(_0x44ade0=_0x545404[_0x273949(0x1c3)]('\x20',_0x285b09)),_0x44ade0===-0x1||_0x44ade0<_0x285b09*0.5?_0x44ade0=_0x285b09:_0x44ade0+=0x1,_0x80ad34['push'](_0x545404[_0x273949(0x17d)](0x0,_0x44ade0)[_0x273949(0x1b0)]()),_0x545404=_0x545404[_0x273949(0x17d)](_0x44ade0)['trim']();}return _0x545404[_0x273949(0x1c2)]>0x0&&_0x80ad34[_0x273949(0x1a9)](_0x545404),_0x80ad34;}function a9_0x4cf7(){const _0x16321b=['Agent','fetchQuotedMessage','__esModule','push','body','8834xHifkT','defaultDingToken','https://api.dingtalk.com','json','CronList','trim','EnterPlanMode','TaskGet','未能获取机器人信息发送途径','2220213FmvokR',']**\x0a','config','filterToolUseContent','ExitPlanMode','defineProperty','DingClient','utils-ok','3005fZPpXK','__importDefault','dingStreamClient',')[^>]*>[\x5cs\x5cS]*?<\x5c/\x5c1>','ai-reply','string','length','lastIndexOf','fetchQuotedMessage\x20请求失败:','NotebookEdit','debugLog','WebSearch','sendMd','3676730XvzYpl','stringify','reply','WebFetch','markdown','Skill','22USRNKP','warn','TaskList','getAccessToken','4UPjfen','splitMessage','fetchQuotedMessage\x20API\x20返回非200:\x20status=','ExitWorktree','substring','sendDingMessage','default','content','**[','object','send','EnterWorktree','data',')[^>]*\x5c/>','143088ZYJxgp','Write','find','222FBUokB','AskUserQuestion','replace','Read','dingSecret','text','GET','Glob','5205910NalrYd','sendClaudeResponseToDing','conversations','过滤后内容为空,跳过发送','LSP','fetchQuotedMessage\x20无法从响应中提取文本:\x20keys=','conversationId','Bash','POST','join','baseUtil',',\x20data=','TaskCreate','2004cZJzHb','sleep','Grep','/v1.0/im/api/messages/','Edit','1727865chYmpg','request'];a9_0x4cf7=function(){return _0x16321b;};return a9_0x4cf7();}async function sendDingMessage(_0x20592c,_0x3d12cc){const _0x3173e0=a9_0x5c6f28,{conversationId:_0x33ed05,sessionWebhook:_0x105ff8,atUserId:_0x4c772d,content:_0x1ab46e,msgType:msgType=_0x3173e0(0x18f)}=_0x3d12cc,_0x213b4b=_0x4c772d?[_0x4c772d]:[],_0x3dbde1=_0x20592c[_0x3173e0(0x1b6)][_0x3173e0(0x194)][_0x3173e0(0x189)](_0x2ddb2e=>_0x2ddb2e[_0x3173e0(0x198)]===_0x33ed05),_0x56df9f=_0x3dbde1?.['dingToken'],_0x486cc4=_0x20592c[_0x3173e0(0x1b6)][_0x3173e0(0x18e)];if(_0x56df9f){const _0x395ebf=new utils_ok_1[(_0x3173e0(0x1ba))](_0x56df9f,_0x486cc4);msgType===_0x3173e0(0x1cd)?await _0x395ebf['sendMd'](_0x3173e0(0x1c0),_0x1ab46e+'\x20'+(_0x4c772d?'@'+_0x4c772d:''),[],_0x213b4b):await _0x395ebf['send'](_0x1ab46e+'\x20'+(_0x4c772d?'@'+_0x4c772d:''),[],_0x213b4b);}else{if(_0x105ff8){const _0x243573=await _0x20592c[_0x3173e0(0x1be)][_0x3173e0(0x1d2)](),_0x573076=msgType===_0x3173e0(0x1cd)?{'msgtype':_0x3173e0(0x1cd),'markdown':{'title':_0x3173e0(0x1cb),'text':_0x1ab46e},'at':{'atUserIds':_0x213b4b,'isAtAll':![]}}:{'msgtype':_0x3173e0(0x18f),'text':{'content':_0x1ab46e},'at':{'atUserIds':_0x213b4b,'isAtAll':![]}};try{await urllib_1[_0x3173e0(0x17f)][_0x3173e0(0x1a5)](_0x105ff8,{'method':_0x3173e0(0x19a),'data':_0x573076,'contentType':_0x3173e0(0x1ae),'headers':{'x-acs-dingtalk-access-token':_0x243573},'dataType':'json'});}catch(_0x5d3cc3){console['error']('通过\x20sessionWebhook\x20发送钉钉消息失败:',_0x5d3cc3);}}else{if(_0x20592c[_0x3173e0(0x1b6)][_0x3173e0(0x1ac)]){const _0x2dc559=new utils_ok_1[(_0x3173e0(0x1ba))](_0x20592c['config'][_0x3173e0(0x1ac)],_0x486cc4);msgType===_0x3173e0(0x1cd)?await _0x2dc559[_0x3173e0(0x1c8)](_0x3173e0(0x1c0),_0x1ab46e+'\x20'+(_0x4c772d?'@'+_0x4c772d:''),[],_0x213b4b):await _0x2dc559[_0x3173e0(0x183)](_0x1ab46e+'\x20'+(_0x4c772d?'@'+_0x4c772d:''),[],_0x213b4b);}else console['error'](_0x3173e0(0x1b3));}}}async function sendClaudeResponseToDing(_0x52bae2,_0x3457cb,_0x1efaf8,_0x3dd74d,_0x39e804){const _0x53479a=a9_0x5c6f28,_0x59e088=0x4650,_0x54914e=filterToolUseContent(_0x39e804);if(!_0x54914e){_0x52bae2[_0x53479a(0x1c6)](_0x53479a(0x195));return;}if(_0x54914e[_0x53479a(0x1c2)]<=_0x59e088)await sendDingMessage(_0x52bae2,{'conversationId':_0x3457cb,'sessionWebhook':_0x1efaf8,'atUserId':_0x3dd74d,'content':_0x54914e,'msgType':_0x53479a(0x1cd)});else{const _0xc72aba=splitMessage(_0x54914e,_0x59e088);for(let _0x393d22=0x0;_0x393d22<_0xc72aba['length'];_0x393d22++){const _0x39b0ec=_0xc72aba[_0x53479a(0x1c2)]>0x1?_0x53479a(0x181)+(_0x393d22+0x1)+'/'+_0xc72aba[_0x53479a(0x1c2)]+_0x53479a(0x1b5):'';await sendDingMessage(_0x52bae2,{'conversationId':_0x3457cb,'sessionWebhook':_0x1efaf8,'atUserId':_0x393d22===_0xc72aba[_0x53479a(0x1c2)]-0x1?_0x3dd74d:'','content':_0x39b0ec+_0xc72aba[_0x393d22],'msgType':_0x53479a(0x1cd)}),_0x393d22<_0xc72aba['length']-0x1&&await utils_ok_2[_0x53479a(0x19c)][_0x53479a(0x1a0)](0x1f4);}}}
|
|
1
|
+
'use strict';const a9_0x4c5be1=a9_0x3da8;(function(_0x1ebc50,_0x1ceca5){const _0x27b037=a9_0x3da8,_0x3b8744=_0x1ebc50();while(!![]){try{const _0x4b5fc2=-parseInt(_0x27b037(0xa0))/0x1*(-parseInt(_0x27b037(0xae))/0x2)+parseInt(_0x27b037(0xda))/0x3*(-parseInt(_0x27b037(0xad))/0x4)+parseInt(_0x27b037(0xc2))/0x5+-parseInt(_0x27b037(0xa8))/0x6+parseInt(_0x27b037(0xd1))/0x7+parseInt(_0x27b037(0x9c))/0x8+-parseInt(_0x27b037(0xd5))/0x9;if(_0x4b5fc2===_0x1ceca5)break;else _0x3b8744['push'](_0x3b8744['shift']());}catch(_0x36bb3b){_0x3b8744['push'](_0x3b8744['shift']());}}}(a9_0x42be,0xbd761));var __importDefault=this&&this[a9_0x4c5be1(0xd8)]||function(_0x7c58d7){return _0x7c58d7&&_0x7c58d7['__esModule']?_0x7c58d7:{'default':_0x7c58d7};};Object[a9_0x4c5be1(0xa5)](exports,a9_0x4c5be1(0xdc),{'value':!![]}),exports[a9_0x4c5be1(0xc1)]=fetchQuotedMessage,exports[a9_0x4c5be1(0x9f)]=queryDingUser,exports[a9_0x4c5be1(0xdd)]=queryUserIdByMobile,exports[a9_0x4c5be1(0xcb)]=filterToolUseContent,exports['splitMessage']=splitMessage,exports[a9_0x4c5be1(0xc4)]=sendDingMessage,exports[a9_0x4c5be1(0x9e)]=sendClaudeResponseToDing;const utils_ok_1=require('utils-ok'),urllib_1=__importDefault(require(a9_0x4c5be1(0xd2))),DING_API_BASE=a9_0x4c5be1(0xc5),DING_OAPI_BASE=a9_0x4c5be1(0xd6);async function fetchQuotedMessage(_0x4b0fed,_0x5bb3b8){const _0x10773e=a9_0x4c5be1;try{const _0x2e49b7=await _0x4b0fed['dingStreamClient'][_0x10773e(0x88)](),_0x46cca4=DING_API_BASE+'/v1.0/im/api/messages/'+encodeURIComponent(_0x5bb3b8),_0x5794b6=await urllib_1[_0x10773e(0x97)][_0x10773e(0xb4)](_0x46cca4,{'method':_0x10773e(0xaf),'headers':{'x-acs-dingtalk-access-token':_0x2e49b7},'dataType':_0x10773e(0xbc),'timeout':0x1388});if(_0x5794b6['status']!==0xc8||!_0x5794b6[_0x10773e(0xc0)])return _0x4b0fed[_0x10773e(0xa2)]('fetchQuotedMessage\x20API\x20返回非200:\x20status='+_0x5794b6['status']+_0x10773e(0xc9)+JSON[_0x10773e(0xb0)](_0x5794b6[_0x10773e(0xc0)])),null;const _0xc318f9=_0x5794b6[_0x10773e(0xc0)];if(_0xc318f9[_0x10773e(0x93)]&&typeof _0xc318f9[_0x10773e(0x93)]===_0x10773e(0xb7)){const _0x2b145b=_0xc318f9[_0x10773e(0x93)][_0x10773e(0xc6)];if(typeof _0x2b145b===_0x10773e(0x8c)&&_0x2b145b)return _0x2b145b['trim']();}if(typeof _0xc318f9[_0x10773e(0xc6)]===_0x10773e(0x8c)&&_0xc318f9['content'])try{const _0x608c82=JSON[_0x10773e(0x85)](_0xc318f9[_0x10773e(0xc6)]);if(typeof _0x608c82==='string')return _0x608c82[_0x10773e(0xcc)]();if(_0x608c82['text'])return String(_0x608c82[_0x10773e(0x93)])[_0x10773e(0xcc)]();if(_0x608c82[_0x10773e(0xc6)])return String(_0x608c82[_0x10773e(0xc6)])[_0x10773e(0xcc)]();}catch{return _0xc318f9[_0x10773e(0xc6)][_0x10773e(0xcc)]();}if(_0xc318f9['body']&&typeof _0xc318f9[_0x10773e(0xab)]===_0x10773e(0xb7)){const _0x555f4b=_0xc318f9[_0x10773e(0xab)];if(typeof _0x555f4b[_0x10773e(0xc6)]==='string'&&_0x555f4b[_0x10773e(0xc6)])return _0x555f4b[_0x10773e(0xc6)][_0x10773e(0xcc)]();}return _0x4b0fed[_0x10773e(0xa2)]('fetchQuotedMessage\x20无法从响应中提取文本:\x20keys='+Object['keys'](_0xc318f9)[_0x10773e(0xbd)](',')),null;}catch(_0x14c0e0){return console[_0x10773e(0x96)]('fetchQuotedMessage\x20请求失败:',_0x14c0e0),null;}}async function queryDingUser(_0x23ea65,_0x52e0e2){const _0x359b6f=a9_0x4c5be1;try{const _0x2cf68b=await _0x23ea65[_0x359b6f(0xde)][_0x359b6f(0x88)](),_0x2bba27=DING_OAPI_BASE+_0x359b6f(0xd3)+_0x2cf68b,_0xb51ed=await urllib_1[_0x359b6f(0x97)][_0x359b6f(0xb4)](_0x2bba27,{'method':'POST','data':{'userid':_0x52e0e2},'contentType':_0x359b6f(0xbc),'dataType':_0x359b6f(0xbc),'timeout':0x1388});if(_0xb51ed[_0x359b6f(0x86)]!==0xc8||!_0xb51ed['data'])return _0x23ea65[_0x359b6f(0xa2)]('queryDingUser\x20API\x20返回非200:\x20status='+_0xb51ed[_0x359b6f(0x86)]+',\x20data='+JSON[_0x359b6f(0xb0)](_0xb51ed[_0x359b6f(0xc0)])),null;const _0x5eb599=_0xb51ed[_0x359b6f(0xc0)];if(_0x5eb599[_0x359b6f(0xb2)]!==0x0)return console[_0x359b6f(0x96)](_0x359b6f(0xac)+_0x5eb599[_0x359b6f(0xb2)]+_0x359b6f(0x8e)+_0x5eb599[_0x359b6f(0xbe)]),null;return _0x5eb599[_0x359b6f(0xa1)]||null;}catch(_0x534bb0){return console[_0x359b6f(0x96)](_0x359b6f(0xaa),_0x534bb0),null;}}async function queryUserIdByMobile(_0x435a37,_0x19018d){const _0x5b0750=a9_0x4c5be1;try{const _0x414221=await _0x435a37['dingStreamClient'][_0x5b0750(0x88)](),_0x5f2212=DING_OAPI_BASE+_0x5b0750(0x89)+_0x414221,_0x40d877=await urllib_1[_0x5b0750(0x97)][_0x5b0750(0xb4)](_0x5f2212,{'method':_0x5b0750(0xbf),'data':{'mobile':_0x19018d},'contentType':_0x5b0750(0xbc),'dataType':'json','timeout':0x1388});if(_0x40d877[_0x5b0750(0x86)]!==0xc8||!_0x40d877[_0x5b0750(0xc0)])return _0x435a37['debugLog'](_0x5b0750(0xbb)+_0x40d877[_0x5b0750(0x86)]+_0x5b0750(0xc9)+JSON[_0x5b0750(0xb0)](_0x40d877['data'])),null;const _0x445a73=_0x40d877['data'];if(_0x445a73[_0x5b0750(0xb2)]!==0x0)return console[_0x5b0750(0x96)]('queryUserIdByMobile\x20接口返回错误:\x20errcode='+_0x445a73[_0x5b0750(0xb2)]+_0x5b0750(0x8e)+_0x445a73[_0x5b0750(0xbe)]),null;const _0x152681=_0x445a73[_0x5b0750(0xa1)];return _0x152681?.['userid']||null;}catch(_0x1cfb3d){return console[_0x5b0750(0x96)](_0x5b0750(0xdb),_0x1cfb3d),null;}}function a9_0x3da8(_0x1dbdf3,_0x27fd48){_0x1dbdf3=_0x1dbdf3-0x84;const _0x42be0a=a9_0x42be();let _0x3da81f=_0x42be0a[_0x1dbdf3];return _0x3da81f;}function a9_0x42be(){const _0x4ec0fc=['LSP','EnterWorktree',',\x20data=','CronDelete','filterToolUseContent','trim','TaskGet','markdown','config','Agent','9158345MgInNU','urllib','/topapi/v2/user/get?access_token=','https://oapi.dingtalk.com/robot/send?access_token=','15346134AOYTyx','https://oapi.dingtalk.com','baseUtil','__importDefault','通过\x20defaultDingToken\x20发送钉钉消息失败:','6kGBgKg','queryUserIdByMobile\x20请求失败:','__esModule','queryUserIdByMobile','dingStreamClient','defaultDingToken','parse','status','TaskCreate','getAccessToken','/topapi/v2/user/getbymobile?access_token=','WebSearch','conversations','string','NotebookEdit',',\x20errmsg=','通过\x20sessionWebhook\x20发送钉钉消息失败:','replace','CronCreate',')[^>]*>[\x5cs\x5cS]*?<\x5c/\x5c1>','text','substring','ExitPlanMode','warn','default','Read','lastIndexOf','error','ExitWorktree','7263472VeUBQs','push','sendClaudeResponseToDing','queryDingUser','357874sXIeUq','result','debugLog','Write','Edit','defineProperty',')[^>]*\x5c/>','Skill','2027106wtwVsi','过滤后内容为空,跳过发送','queryDingUser\x20请求失败:','body','queryDingUser\x20接口返回错误:\x20errcode=','1119308xiKwXD','2ewYpSx','GET','stringify','Bash','errcode','**[','request','sleep','WebFetch','object','TaskUpdate','TaskOutput','未能获取机器人信息发送途径','queryUserIdByMobile\x20API\x20返回非200:\x20status=','json','join','errmsg','POST','data','fetchQuotedMessage','4022605FLOEyG','length','sendDingMessage','https://api.dingtalk.com','content'];a9_0x42be=function(){return _0x4ec0fc;};return a9_0x42be();}const TOOL_TAGS=[a9_0x4c5be1(0xa3),a9_0x4c5be1(0x98),a9_0x4c5be1(0xa4),a9_0x4c5be1(0xb1),'Grep','Glob',a9_0x4c5be1(0xd0),a9_0x4c5be1(0xa7),a9_0x4c5be1(0xb6),a9_0x4c5be1(0x8a),a9_0x4c5be1(0xb9),'AskUserQuestion','EnterPlanMode',a9_0x4c5be1(0x95),a9_0x4c5be1(0x87),a9_0x4c5be1(0xcd),a9_0x4c5be1(0xb8),'TaskList',a9_0x4c5be1(0xc8),a9_0x4c5be1(0x9b),a9_0x4c5be1(0x91),a9_0x4c5be1(0xca),'CronList',a9_0x4c5be1(0xc7),a9_0x4c5be1(0x8d)]['join']('|'),TOOL_USE_SELF_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0x4c5be1(0xa6),'g'),TOOL_USE_OPEN_CLOSE_RE=new RegExp('<('+TOOL_TAGS+a9_0x4c5be1(0x92),'g'),MULTI_NEWLINE_RE=/\n{3,}/g;function filterToolUseContent(_0x330828){const _0x1d337c=a9_0x4c5be1;let _0xc7cd46=_0x330828[_0x1d337c(0x90)](TOOL_USE_SELF_CLOSE_RE,'');return _0xc7cd46=_0xc7cd46[_0x1d337c(0x90)](TOOL_USE_OPEN_CLOSE_RE,''),_0xc7cd46=_0xc7cd46[_0x1d337c(0x90)](MULTI_NEWLINE_RE,'\x0a\x0a'),_0xc7cd46[_0x1d337c(0xcc)]();}function splitMessage(_0x1107b0,_0x5a3a7b){const _0x492d4a=a9_0x4c5be1,_0x41fa65=[];while(_0x1107b0[_0x492d4a(0xc3)]>_0x5a3a7b){let _0x495c05=_0x1107b0['lastIndexOf']('\x0a',_0x5a3a7b);(_0x495c05===-0x1||_0x495c05<_0x5a3a7b*0.5)&&(_0x495c05=_0x1107b0['lastIndexOf']('。',_0x5a3a7b)),(_0x495c05===-0x1||_0x495c05<_0x5a3a7b*0.5)&&(_0x495c05=_0x1107b0[_0x492d4a(0x99)]('\x20',_0x5a3a7b)),_0x495c05===-0x1||_0x495c05<_0x5a3a7b*0.5?_0x495c05=_0x5a3a7b:_0x495c05+=0x1,_0x41fa65['push'](_0x1107b0[_0x492d4a(0x94)](0x0,_0x495c05)[_0x492d4a(0xcc)]()),_0x1107b0=_0x1107b0[_0x492d4a(0x94)](_0x495c05)[_0x492d4a(0xcc)]();}return _0x1107b0[_0x492d4a(0xc3)]>0x0&&_0x41fa65[_0x492d4a(0x9d)](_0x1107b0),_0x41fa65;}async function sendDingMessage(_0xc75f64,_0x16dc90){const _0x27164e=a9_0x4c5be1,{conversationId:_0x5b72e6,sessionWebhook:_0x1073b1,atUserId:_0x41667b,content:_0x1c2a2a,msgType:msgType='text'}=_0x16dc90,_0x579fbf=_0x41667b?[_0x41667b]:[],_0x523bb4=_0xc75f64['config'][_0x27164e(0x8b)]['find'](_0x45ad82=>_0x45ad82['conversationId']===_0x5b72e6),_0x1cf043=_0x523bb4?.['dingToken'],_0x57dcb3=msgType===_0x27164e(0xce)?{'msgtype':'markdown','markdown':{'title':_0x1c2a2a,'text':_0x1c2a2a},'at':{'atUserIds':_0x579fbf,'isAtAll':![]}}:{'msgtype':'text','text':{'content':_0x1c2a2a},'at':{'atUserIds':_0x579fbf,'isAtAll':![]}};if(_0x1cf043){const _0x276c3b=await _0xc75f64['dingStreamClient'][_0x27164e(0x88)](),_0x4ccde1=_0x27164e(0xd4)+_0x1cf043;try{await urllib_1[_0x27164e(0x97)]['request'](_0x4ccde1,{'method':'POST','data':_0x57dcb3,'contentType':_0x27164e(0xbc),'headers':{'x-acs-dingtalk-access-token':_0x276c3b},'dataType':_0x27164e(0xbc)});}catch(_0x502ad9){console['error']('通过\x20dingToken\x20发送钉钉消息失败:',_0x502ad9);}}else{if(_0x1073b1){const _0x28d4c3=await _0xc75f64[_0x27164e(0xde)][_0x27164e(0x88)]();try{await urllib_1['default'][_0x27164e(0xb4)](_0x1073b1,{'method':_0x27164e(0xbf),'data':_0x57dcb3,'contentType':_0x27164e(0xbc),'headers':{'x-acs-dingtalk-access-token':_0x28d4c3},'dataType':_0x27164e(0xbc)});}catch(_0xad9600){console[_0x27164e(0x9a)](_0x27164e(0x8f),_0xad9600);}}else{if(_0xc75f64[_0x27164e(0xcf)][_0x27164e(0x84)]){const _0x365fb5=await _0xc75f64['dingStreamClient'][_0x27164e(0x88)](),_0x5d597e='https://oapi.dingtalk.com/robot/send?access_token='+_0xc75f64[_0x27164e(0xcf)][_0x27164e(0x84)];try{await urllib_1['default'][_0x27164e(0xb4)](_0x5d597e,{'method':_0x27164e(0xbf),'data':_0x57dcb3,'contentType':_0x27164e(0xbc),'headers':{'x-acs-dingtalk-access-token':_0x365fb5},'dataType':'json'});}catch(_0x901c3f){console['error'](_0x27164e(0xd9),_0x901c3f);}}else console['error'](_0x27164e(0xba));}}}async function sendClaudeResponseToDing(_0x32f729,_0x1e41c3,_0x3fa6af,_0x21ee10,_0x6240ff){const _0x2ccbbe=a9_0x4c5be1,_0x40c3b8=0x4650,_0x40216c=filterToolUseContent(_0x6240ff);if(!_0x40216c){_0x32f729[_0x2ccbbe(0xa2)](_0x2ccbbe(0xa9));return;}if(_0x40216c[_0x2ccbbe(0xc3)]<=_0x40c3b8)await sendDingMessage(_0x32f729,{'conversationId':_0x1e41c3,'sessionWebhook':_0x3fa6af,'atUserId':_0x21ee10,'content':_0x40216c,'msgType':_0x2ccbbe(0xce)});else{const _0x493a74=splitMessage(_0x40216c,_0x40c3b8);for(let _0x3d6ce9=0x0;_0x3d6ce9<_0x493a74['length'];_0x3d6ce9++){const _0x2221e3=_0x493a74[_0x2ccbbe(0xc3)]>0x1?_0x2ccbbe(0xb3)+(_0x3d6ce9+0x1)+'/'+_0x493a74['length']+']**\x0a':'';await sendDingMessage(_0x32f729,{'conversationId':_0x1e41c3,'sessionWebhook':_0x3fa6af,'atUserId':_0x3d6ce9===_0x493a74[_0x2ccbbe(0xc3)]-0x1?_0x21ee10:'','content':_0x2221e3+_0x493a74[_0x3d6ce9],'msgType':_0x2ccbbe(0xce)}),_0x3d6ce9<_0x493a74[_0x2ccbbe(0xc3)]-0x1&&await utils_ok_1[_0x2ccbbe(0xd7)][_0x2ccbbe(0xb5)](0x1f4);}}}
|
package/dist/src/biz/quote.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';const a10_0xff0678=a10_0x5cc6;(function(_0x2c9ce8,_0x2d9d04){const _0x1f556c=a10_0x5cc6,_0x730b1=_0x2c9ce8();while(!![]){try{const _0x18dc0a=parseInt(_0x1f556c(0x1a9))/0x1+parseInt(_0x1f556c(0x19b))/0x2*(parseInt(_0x1f556c(0x1ad))/0x3)+-parseInt(_0x1f556c(0x1a5))/0x4*(-parseInt(_0x1f556c(0x19e))/0x5)+parseInt(_0x1f556c(0x1ab))/0x6*(parseInt(_0x1f556c(0x1a7))/0x7)+parseInt(_0x1f556c(0x1a2))/0x8+-parseInt(_0x1f556c(0x199))/0x9+-parseInt(_0x1f556c(0x1a0))/0xa*(parseInt(_0x1f556c(0x194))/0xb);if(_0x18dc0a===_0x2d9d04)break;else _0x730b1['push'](_0x730b1['shift']());}catch(_0x5cd56a){_0x730b1['push'](_0x730b1['shift']());}}}(a10_0x4813,0x2b6d3));function a10_0x4813(){const _0x26c85f=['\x20──\x0a','string','msgId','1129977pWsKwz','\x20(来自:\x20','34KnJdui','senderNick','text','4210Mdiodk','formatPromptWithQuote','7727620slnpGG','quoteSenderNick','2609544RIlrzN','content','──\x20引用消息','716WtEMIH','extractQuoteInfo','21odKGZv','repliedMsg','100480MvYusf','__esModule','486102dGRveB','trim','45132FeUzzL','quoteText','11zcZlFp','defineProperty'];a10_0x4813=function(){return _0x26c85f;};return a10_0x4813();}Object[a10_0xff0678(0x195)](exports,a10_0xff0678(0x1aa),{'value':!![]}),exports[a10_0xff0678(0x1a6)]=extractQuoteInfo,exports[a10_0xff0678(0x19f)]=formatPromptWithQuote;function extractQuoteInfo(_0xcd85be){const _0x15d8bf=a10_0xff0678,_0x3f42d7=_0xcd85be[_0x15d8bf(0x19d)];if(!_0x3f42d7?.[_0x15d8bf(0x1a8)])return null;const _0x1dbfd8=_0x3f42d7[_0x15d8bf(0x1a8)];let _0x262826='';const _0x398bfa=_0x1dbfd8[_0x15d8bf(0x198)],_0x253b06=_0x1dbfd8[_0x15d8bf(0x19c)];if(_0x1dbfd8['content']){if(typeof _0x1dbfd8[_0x15d8bf(0x1a3)]['text']===_0x15d8bf(0x197))_0x262826=_0x1dbfd8[_0x15d8bf(0x1a3)][_0x15d8bf(0x19d)][_0x15d8bf(0x1ac)]();else typeof _0x1dbfd8['content']===_0x15d8bf(0x197)&&(_0x262826=_0x1dbfd8[_0x15d8bf(0x1a3)][_0x15d8bf(0x1ac)]());}if(!_0x262826&&!_0x398bfa)return null;return{'quoteText':_0x262826,'quoteMessageId':_0x398bfa,'quoteSenderNick':_0x253b06};}function a10_0x5cc6(_0x253da9,_0x5af2d4){_0x253da9=_0x253da9-0x194;const _0x481330=a10_0x4813();let _0x5cc676=_0x481330[_0x253da9];return _0x5cc676;}function formatPromptWithQuote(_0x38c439,_0x5a8493){const _0x18ee87=a10_0xff0678;if(!_0x5a8493[_0x18ee87(0x1ae)])return _0x38c439;const _0x34504a=_0x5a8493[_0x18ee87(0x1a1)]?_0x18ee87(0x19a)+_0x5a8493[_0x18ee87(0x1a1)]+')':'';return _0x18ee87(0x1a4)+_0x34504a+_0x18ee87(0x196)+_0x5a8493[_0x18ee87(0x1ae)]+'\x0a──\x20引用结束\x20──\x0a\x0a'+_0x38c439;}
|
package/dist/src/biz/session.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a11_0x114a85=a11_0x3896;(function(_0x5d76f9,_0x1746fd){const _0x33b556=a11_0x3896,_0x119b53=_0x5d76f9();while(!![]){try{const _0x30f227=parseInt(_0x33b556(0x17b))/0x1+-parseInt(_0x33b556(0x130))/0x2*(parseInt(_0x33b556(0x147))/0x3)+parseInt(_0x33b556(0x1ae))/0x4*(parseInt(_0x33b556(0x13f))/0x5)+-parseInt(_0x33b556(0x1cc))/0x6*(-parseInt(_0x33b556(0x174))/0x7)+parseInt(_0x33b556(0x1a9))/0x8*(-parseInt(_0x33b556(0x19d))/0x9)+-parseInt(_0x33b556(0x1a0))/0xa+-parseInt(_0x33b556(0x175))/0xb*(-parseInt(_0x33b556(0x15d))/0xc);if(_0x30f227===_0x1746fd)break;else _0x119b53['push'](_0x119b53['shift']());}catch(_0x1c68d6){_0x119b53['push'](_0x119b53['shift']());}}}(a11_0x5ca9,0x83c33));var __importDefault=this&&this[a11_0x114a85(0x165)]||function(_0x1dcace){const _0xe44a41=a11_0x114a85;return _0x1dcace&&_0x1dcace[_0xe44a41(0x18e)]?_0x1dcace:{'default':_0x1dcace};};Object[a11_0x114a85(0x1d9)](exports,a11_0x114a85(0x18e),{'value':!![]}),exports['timestamp']=timestamp,exports[a11_0x114a85(0x1b8)]=getHomeDir,exports[a11_0x114a85(0x1d8)]=getClientDir,exports[a11_0x114a85(0x192)]=initClientDir,exports['ensureClientDir']=ensureClientDir,exports['getClientConfig']=getClientConfig,exports[a11_0x114a85(0x1b0)]=authCheck,exports[a11_0x114a85(0x144)]=isOwner,exports[a11_0x114a85(0x1e2)]=debugLog,exports[a11_0x114a85(0x155)]=hashConversationId,exports[a11_0x114a85(0x19a)]=getReplyWebhook,exports[a11_0x114a85(0x159)]=getReplyConversationId,exports['findActiveSession']=findActiveSession,exports[a11_0x114a85(0x15c)]=getConversationConfig,exports[a11_0x114a85(0x1c6)]=getConversationDir,exports['getSessionsDir']=getSessionsDir,exports[a11_0x114a85(0x18c)]=getTasksDir,exports[a11_0x114a85(0x149)]=getImagesDir,exports[a11_0x114a85(0x1e4)]=getSessionDir,exports[a11_0x114a85(0x1e5)]=getSessionId,exports['formatSessionInfo']=formatSessionInfo,exports[a11_0x114a85(0x173)]=readSessionLogTail,exports[a11_0x114a85(0x1d5)]=findHistorySession,exports[a11_0x114a85(0x16c)]=findLatestSession,exports[a11_0x114a85(0x18b)]=updateSessionFile,exports[a11_0x114a85(0x15f)]=appendSessionLog,exports['getActiveSessionsFile']=getActiveSessionsFile,exports[a11_0x114a85(0x1c1)]=saveActiveSession,exports[a11_0x114a85(0x135)]=loadActiveSessions,exports[a11_0x114a85(0x16d)]=endSession,exports[a11_0x114a85(0x1a7)]=switchToSession,exports[a11_0x114a85(0x184)]=startNewSession,exports[a11_0x114a85(0x14c)]=handleSessionMessage,exports[a11_0x114a85(0x1ca)]=cleanCache;const utils_ok_1=require('utils-ok'),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require(a11_0x114a85(0x1a8))),crypto_1=__importDefault(require(a11_0x114a85(0x133))),path_1=__importDefault(require(a11_0x114a85(0x1d2))),commands_1=require('./commands'),messaging_1=require('./messaging'),claude_process_1=require(a11_0x114a85(0x14f));function timestamp(){const _0x34386c=a11_0x114a85;return utils_ok_1['dateUtil']['mm'](Date['now']())[_0x34386c(0x15b)](_0x34386c(0x179));}function getHomeDir(){const _0x9d3d52=a11_0x114a85;return os_1[_0x9d3d52(0x19b)][_0x9d3d52(0x19f)]();}function getClientDir(_0x584ca7){const _0x169579=a11_0x114a85;return path_1[_0x169579(0x19b)][_0x169579(0x18d)](getHomeDir(),_0x169579(0x154),_0x169579(0x138),_0x584ca7['clientId']);}function initClientDir(_0xaa8f5,_0xa458f2){const _0x156600=a11_0x114a85,_0x2d72c3=path_1[_0x156600(0x19b)][_0x156600(0x18d)](getHomeDir(),_0x156600(0x154),'cc-ding',_0xaa8f5),_0x264d74=path_1['default'][_0x156600(0x18d)](_0x2d72c3,_0x156600(0x17d));return fs_1[_0x156600(0x19b)][_0x156600(0x1ac)](_0x2d72c3,{'recursive':!![]}),fs_1[_0x156600(0x19b)][_0x156600(0x185)](_0x264d74,JSON[_0x156600(0x178)](_0xa458f2,null,0x2),_0x156600(0x13e)),_0x264d74;}function ensureClientDir(_0xfde5e5){const _0x35ac5c=a11_0x114a85,_0x5c8720=path_1[_0x35ac5c(0x19b)][_0x35ac5c(0x18d)](getHomeDir(),_0x35ac5c(0x154),_0x35ac5c(0x138),_0xfde5e5),_0x4ebb5e=path_1[_0x35ac5c(0x19b)][_0x35ac5c(0x18d)](_0x5c8720,_0x35ac5c(0x17d));if(fs_1['default'][_0x35ac5c(0x13d)](_0x4ebb5e))return;console[_0x35ac5c(0x14a)]('['+timestamp()+']\x20客户端目录未初始化:\x20'+_0x5c8720),console[_0x35ac5c(0x14a)]('['+timestamp()+']\x20正在自动初始化...');const _0x4015c6={'clientName':_0x35ac5c(0x151),'whiteUserList':[],'clientSecret':'<clientSecret-钉钉Stream连接密钥>','dingSecret':_0x35ac5c(0x164),'defaultDingToken':_0x35ac5c(0x1da),'conversations':[]};initClientDir(_0xfde5e5,_0x4015c6),console[_0x35ac5c(0x14a)]('['+timestamp()+_0x35ac5c(0x1a1)+_0x4ebb5e),console['log']('['+timestamp()+']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动'),process['exit'](0x1);}function getClientConfig(_0x4d076e){const _0x523c2d=a11_0x114a85,_0x3c8e6e=getClientDir(_0x4d076e)+_0x523c2d(0x170);(0x0,assert_1[_0x523c2d(0x19b)])(fs_1[_0x523c2d(0x19b)]['existsSync'](_0x3c8e6e),_0x523c2d(0x1d4)+_0x3c8e6e);const _0x3210af=utils_ok_1[_0x523c2d(0x1db)]['getJSON'](_0x3c8e6e);return(0x0,assert_1['default'])(_0x3210af[_0x523c2d(0x1d0)],_0x523c2d(0x14e)),(0x0,assert_1['default'])(_0x3210af[_0x523c2d(0x1d1)],_0x523c2d(0x16b)),_0x3210af;}function authCheck(_0x1282e9,_0x4d0973,_0x261fee){const _0x3a91a4=a11_0x114a85;if(_0x261fee){const _0xd8fbb0=_0x1282e9[_0x3a91a4(0x198)][_0x3a91a4(0x194)]['find'](_0x389508=>_0x389508[_0x3a91a4(0x162)]===_0x261fee);if(_0xd8fbb0?.['whiteUserList']&&_0xd8fbb0[_0x3a91a4(0x1d1)][_0x3a91a4(0x1d6)]>0x0)return _0xd8fbb0[_0x3a91a4(0x1d1)][_0x3a91a4(0x1b6)](_0x4d0973);}return _0x1282e9[_0x3a91a4(0x198)]['whiteUserList']['includes'](_0x4d0973);}function isOwner(_0x1cf386,_0xd69ed8){const _0x141798=a11_0x114a85;return!!_0x1cf386[_0x141798(0x198)]['owner']&&_0x1cf386['config'][_0x141798(0x1bb)]===_0xd69ed8;}function debugLog(_0x135335,_0xb5f7f7,..._0xd07d5e){const _0x2f8c9d=a11_0x114a85;_0x135335[_0x2f8c9d(0x198)][_0x2f8c9d(0x1e8)]&&console[_0x2f8c9d(0x14a)](_0x2f8c9d(0x1dc)+_0xb5f7f7,..._0xd07d5e);}function hashConversationId(_0x76f008,_0x1854c0){const _0x4beb2b=a11_0x114a85,_0x124b20=getConversationConfig(_0x76f008,_0x1854c0),_0x3c3be8=_0x124b20[_0x4beb2b(0x156)]||_0x1854c0;return crypto_1[_0x4beb2b(0x19b)][_0x4beb2b(0x1c4)](_0x4beb2b(0x1de))['update'](_0x3c3be8)[_0x4beb2b(0x137)](_0x4beb2b(0x17e));}function getReplyWebhook(_0x48dcba){const _0x52c405=a11_0x114a85;return _0x48dcba[_0x52c405(0x199)]||_0x48dcba[_0x52c405(0x1a3)];}function getReplyConversationId(_0x2f2e07){const _0x158d58=a11_0x114a85;return _0x2f2e07[_0x158d58(0x1c3)]||_0x2f2e07['conversationId'];}function findActiveSession(_0x4346d3,_0x34aa8f){const _0x2865f8=a11_0x114a85,_0x3cdf89=_0x4346d3[_0x2865f8(0x15e)]['get'](_0x34aa8f);if(_0x3cdf89)return{'key':_0x34aa8f,'session':_0x3cdf89};const _0x229c8f=getConversationConfig(_0x4346d3,_0x34aa8f);if(_0x229c8f?.[_0x2865f8(0x156)])for(const _0x14058a of _0x4346d3[_0x2865f8(0x15e)]){const _0x476e14=getConversationConfig(_0x4346d3,_0x14058a[0x0]);if(_0x476e14?.[_0x2865f8(0x156)]===_0x229c8f[_0x2865f8(0x156)])return{'key':_0x14058a[0x0],'session':_0x14058a[0x1]};}return undefined;}function getConversationConfig(_0x544916,_0xb1e8d2){const _0x5a0496=a11_0x114a85;return _0x544916[_0x5a0496(0x198)]['conversations']['find'](_0x15d981=>_0x15d981[_0x5a0496(0x162)]===_0xb1e8d2);}function getConversationDir(_0x95f585,_0x4ad2a3){const _0x457f0e=hashConversationId(_0x95f585,_0x4ad2a3);return getClientDir(_0x95f585)+'/'+_0x457f0e;}function a11_0x3896(_0x56a316,_0x4c81ab){_0x56a316=_0x56a316-0x12d;const _0x5ca921=a11_0x5ca9();let _0x3896cb=_0x5ca921[_0x56a316];return _0x3896cb;}function getSessionsDir(_0x1b7302,_0x2dc385){const _0x1353b6=a11_0x114a85;return getConversationDir(_0x1b7302,_0x2dc385)+_0x1353b6(0x189);}function getTasksDir(_0x4c900c,_0x133fe9){const _0x4a55cc=a11_0x114a85;return getConversationDir(_0x4c900c,_0x133fe9)+_0x4a55cc(0x14b);}function getImagesDir(_0x29ff4b,_0x3331df){const _0x5dcab5=a11_0x114a85;return getConversationDir(_0x29ff4b,_0x3331df)+_0x5dcab5(0x145);}function getSessionDir(_0x17fda8,_0x48ae71){const _0x2d2906=a11_0x114a85,_0x2f819c=_0x48ae71[_0x2d2906(0x1b7)]||_0x48ae71[_0x2d2906(0x1bf)];return getSessionsDir(_0x17fda8,_0x48ae71[_0x2d2906(0x162)])+'/'+_0x2f819c;}function getSessionId(_0x4e4451){const _0x9be195=a11_0x114a85;return _0x4e4451['claudeSessionId']||_0x4e4451[_0x9be195(0x1bf)];}function formatSessionInfo(_0x38ced1,_0xb135c3){const _0x108da6=a11_0x114a85,_0x4e2317=findActiveSession(_0x38ced1,_0xb135c3);if(!_0x4e2317)return null;const {session:_0x302939,isProcessing:_0x1ef3e6}=_0x4e2317['session'],_0x2872f1=['-\x20**会话ID:**\x20'+getSessionId(_0x302939),'-\x20**发起者:**\x20'+_0x302939[_0x108da6(0x1a6)]+'('+_0x302939['startStaffId']+')',_0x108da6(0x13c)+_0x302939['startTimeStr'],_0x108da6(0x172)+_0x4e2317['session'][_0x108da6(0x157)],'-\x20**处理中:**\x20'+_0x1ef3e6];return _0x2872f1['join']('\x0a');}function readSessionLogTail(_0x49beed,_0x139617,_0x55a0b8){const _0x2020b9=a11_0x114a85,_0x595d6b=findActiveSession(_0x49beed,_0x139617);if(!_0x595d6b)return null;const _0x4cef7e=_0x595d6b[_0x2020b9(0x1b9)],_0x176a60=getSessionDir(_0x49beed,_0x4cef7e[_0x2020b9(0x1b9)])+_0x2020b9(0x1dd);if(!fs_1[_0x2020b9(0x19b)][_0x2020b9(0x13d)](_0x176a60))return null;try{const _0x124e73=fs_1[_0x2020b9(0x19b)][_0x2020b9(0x1a5)](_0x176a60,_0x2020b9(0x13e)),_0x2c2be2=_0x124e73[_0x2020b9(0x15a)]('\x0a')[_0x2020b9(0x191)](_0x2e6456=>_0x2e6456[_0x2020b9(0x1d6)]>0x0);return _0x2c2be2[_0x2020b9(0x1b1)](-_0x55a0b8)[_0x2020b9(0x18d)]('\x0a');}catch{return null;}}function findHistorySession(_0x4f5732,_0x573989,_0x1fb8d6){const _0x25ad3a=a11_0x114a85,_0x5c2777=getSessionsDir(_0x4f5732,_0x573989),_0x1e5ae6=_0x5c2777+'/'+_0x1fb8d6+_0x25ad3a(0x148);try{return utils_ok_1[_0x25ad3a(0x1db)][_0x25ad3a(0x142)](_0x1e5ae6);}catch{}const _0x1e4925=parseInt(_0x1fb8d6,0xa);if(!isNaN(_0x1e4925)&&_0x1e4925>0x0){const _0xbc7142=utils_ok_1[_0x25ad3a(0x1af)]['mm'](_0x1e4925)[_0x25ad3a(0x15b)](_0x25ad3a(0x17c)),_0x3409f6=_0x5c2777+'/'+_0xbc7142+_0x25ad3a(0x148);try{return utils_ok_1[_0x25ad3a(0x1db)][_0x25ad3a(0x142)](_0x3409f6);}catch{}}return null;}function a11_0x5ca9(){const _0x2b518b=['isOwner','/.images',',该会话可能已被清理,请发送新消息开始新会话','297XOxgZB','/session.json','getImagesDir','log','/.tasks','handleSessionMessage','结束会话时中断正在执行的\x20Claude\x20进程','config.json\x20missing\x20required\x20field:\x20clientSecret','./claude-process','set','cc助手','读取sessions目录失败:\x20','sendDingMessage','.anycli','hashConversationId','linkConversationId','lastSenderStaffId','(关联群,会话归属=','getReplyConversationId','split','format','getConversationConfig','3144ADoyrB','activeSessions','appendSessionLog','删除活跃会话文件失败:\x20','name','conversationId','DEFAULT_SESSION_MAX_CONCURRENCY','<dingSecret-钉钉签名密钥>','__importDefault','rmSync','执行\x20Claude\x20查询失败:','删除图片失败:\x20','conversationConfig','⏳\x20正在处理上一条消息,请稍候...','config.json\x20missing\x20required\x20field:\x20whiteUserList','findLatestSession','endSession','创建新会话:\x20群=','sessionMaxConcurrency','/config.json',']:\x20','-\x20**最后发送者:**\x20','readSessionLogTail','795557nqkBdW','86119tEJMXu','message','key','stringify','YYYY-MM-DD\x20HH:mm:ss','读取images目录失败:\x20','249916mvpfup','YYYY-MM-DD-HH-mm-ss','config.json','hex','加载活跃会话失败:\x20','sessionsDeleted','agent','✅\x20已切换到历史会话\x20(会话ID:\x20','活跃会话目录已被清理:\x20群=','startNewSession','writeFileSync','\x0a💡\x20回复\x20/end\x20可结束本轮对话','delete','恢复活跃会话:\x20群=','/.sessions','\x20的数据已被清理,无法继续。已自动结束该会话,请重新发送消息开始新会话','updateSessionFile','getTasksDir','join','__esModule','has','basename','filter','initClientDir','isProcessing','conversations','appendFileSync',']\x20[SYSTEM]:\x20用户请求结束会话\x0a','renameSync','config','currentWebhook','getReplyWebhook','default','活跃会话已持久化:\x20群=','1755PENXoW',',\x20会话ID=','homedir','8031320MPGFfV',']\x20已生成默认配置文件:\x20','删除会话目录失败:\x20','sessionWebhook','dirname','readFileSync','startNickName','switchToSession','assert','30232gTknDL','⚠️\x20会话\x20','/active.json','mkdirSync','startStaffId','4GHsGVV','dateUtil','authCheck','slice','已切换到历史会话:\x20群=','🤯\x20当前繁忙,请稍后再试...','⚠️\x20该会话无历史上下文,将从头开始','\x20->\x20','includes','claudeSessionId','getHomeDir','session','startTime','owner','skill','✅\x20收到,我来处理...','error','startTimeStr','isDirectory','saveActiveSession','会话\x20','currentConversationId','createHash','unlinkSync','getConversationDir','push','❌\x20处理消息时发生错误:\x20','切换会话时中断正在执行的\x20Claude\x20进程','cleanCache','errors','6DnRKdT','持久化活跃会话失败:\x20群=',',\x20有Claude上下文=','🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话','clientSecret','whiteUserList','path','结束会话:\x20群=','Could\x20not\x20find\x20client\x20config\x20file:\x20','findHistorySession','length',']\x20会话文件已保存:\x20','getClientDir','defineProperty','<兜底钉钉机器人Token>','fileUtil','[DEBUG]\x20','/session.log','md5',',\x20当前并发=',']\x20[',']\x20会话目录重命名:\x20','debugLog','executeClaudeQuery','getSessionDir','getSessionId','taskCfg','readdirSync','debug','imagesDeleted','删除任务目录失败:\x20','❌\x20未找到会话\x20','size','\x20的数据已被清理,无法恢复,请发送新消息开始新会话','活跃会话目录已不存在,清理持久化文件:\x20','21108LfrzEd','活跃会话文件无效,跳过:\x20','❌\x20会话\x20','crypto','达到最大并发数\x20(','loadActiveSessions','🔄\x20已恢复对话上下文','digest','cc-ding','parseEndCommand',',结束当前会话\x0a','get','-\x20**开始时间:**\x20','existsSync','utf-8','3549085HxtSoJ','interruptClaudeProcess',']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','getJSON','\x20正在处理中,忽略新消息'];a11_0x5ca9=function(){return _0x2b518b;};return a11_0x5ca9();}function findLatestSession(_0x432d12,_0x41df8a){const _0x500c0f=a11_0x114a85,_0x504617=getSessionsDir(_0x432d12,_0x41df8a);if(!fs_1[_0x500c0f(0x19b)][_0x500c0f(0x13d)](_0x504617))return null;const _0x3de782=findActiveSession(_0x432d12,_0x41df8a),_0x5498d0=_0x3de782?getSessionId(_0x3de782[_0x500c0f(0x1b9)][_0x500c0f(0x1b9)]):null;let _0x4ba7ec=null,_0x213bc1=0x0;try{const _0x3448e9=fs_1[_0x500c0f(0x19b)]['readdirSync'](_0x504617,{'withFileTypes':!![]});for(const _0x944b95 of _0x3448e9){if(!_0x944b95[_0x500c0f(0x1c0)]())continue;const _0x4668c1=path_1[_0x500c0f(0x19b)]['join'](_0x504617,_0x944b95[_0x500c0f(0x161)],'session.json');if(!fs_1[_0x500c0f(0x19b)]['existsSync'](_0x4668c1))continue;try{const _0x4c95ec=utils_ok_1[_0x500c0f(0x1db)][_0x500c0f(0x142)](_0x4668c1);if(_0x5498d0&&getSessionId(_0x4c95ec)===_0x5498d0)continue;_0x4c95ec[_0x500c0f(0x1ba)]>_0x213bc1&&(_0x213bc1=_0x4c95ec[_0x500c0f(0x1ba)],_0x4ba7ec=_0x4c95ec);}catch{continue;}}}catch{}return _0x4ba7ec;}function updateSessionFile(_0x3b74c5,_0x4bf823,_0x252a96){const _0x28ce36=a11_0x114a85;if(_0x252a96['claudeSessionId']&&!_0x4bf823[_0x28ce36(0x1b7)]){const _0x2d58c7=getSessionDir(_0x3b74c5,_0x4bf823);_0x4bf823['claudeSessionId']=_0x252a96['claudeSessionId'];const _0x50176a=getSessionDir(_0x3b74c5,_0x4bf823);_0x2d58c7!==_0x50176a&&fs_1[_0x28ce36(0x19b)][_0x28ce36(0x13d)](_0x2d58c7)&&(fs_1['default'][_0x28ce36(0x197)](_0x2d58c7,_0x50176a),console[_0x28ce36(0x14a)]('['+timestamp()+_0x28ce36(0x1e1)+path_1['default'][_0x28ce36(0x190)](_0x2d58c7)+_0x28ce36(0x1b5)+path_1[_0x28ce36(0x19b)][_0x28ce36(0x190)](_0x50176a)));}const _0x2f0010=getSessionDir(_0x3b74c5,_0x4bf823)+_0x28ce36(0x148);try{if(_0x252a96[_0x28ce36(0x1a3)])_0x4bf823[_0x28ce36(0x1a3)]=_0x252a96[_0x28ce36(0x1a3)];if(_0x252a96[_0x28ce36(0x199)]!==undefined)_0x4bf823['currentWebhook']=_0x252a96[_0x28ce36(0x199)]||undefined;if(_0x252a96[_0x28ce36(0x1c3)]!==undefined)_0x4bf823[_0x28ce36(0x1c3)]=_0x252a96[_0x28ce36(0x1c3)]||undefined;fs_1[_0x28ce36(0x19b)][_0x28ce36(0x185)](_0x2f0010,JSON['stringify'](_0x4bf823,null,0x2),'utf-8');const _0x17e962=_0x252a96[_0x28ce36(0x1b7)]?_0x28ce36(0x1b7):_0x252a96[_0x28ce36(0x199)]!==undefined?_0x28ce36(0x199):_0x28ce36(0x1a3);console['log']('['+timestamp()+_0x28ce36(0x1d7)+_0x17e962),saveActiveSession(_0x3b74c5,_0x4bf823[_0x28ce36(0x162)]);}catch(_0x2ef365){console[_0x28ce36(0x1be)]('更新\x20session.json\x20失败:',_0x2ef365);}}function appendSessionLog(_0x3f15bc,_0x57286d,_0x28cf7b){const _0x15561c=a11_0x114a85,_0x401ae5=_0x3f15bc+'/session.log',_0x540062=timestamp(),_0xe26723='['+_0x540062+_0x15561c(0x1e0)+_0x57286d['toUpperCase']()+_0x15561c(0x171)+_0x28cf7b+'\x0a';fs_1[_0x15561c(0x19b)][_0x15561c(0x195)](_0x401ae5,_0xe26723,'utf-8');}function getActiveSessionsFile(_0x2d3511,_0x501261){const _0x48071b=a11_0x114a85;return getSessionsDir(_0x2d3511,_0x501261)+_0x48071b(0x1ab);}function saveActiveSession(_0xa86dd4,_0xf1cb8){const _0x410f80=a11_0x114a85,_0x46614b=_0xa86dd4['activeSessions'][_0x410f80(0x13b)](_0xf1cb8),_0x4c51e4=getActiveSessionsFile(_0xa86dd4,_0xf1cb8);try{if(!_0x46614b){if(fs_1[_0x410f80(0x19b)][_0x410f80(0x13d)](_0x4c51e4))fs_1[_0x410f80(0x19b)][_0x410f80(0x1c5)](_0x4c51e4);return;}const _0x382c57={'session':_0x46614b[_0x410f80(0x1b9)],'lastSenderStaffId':_0x46614b[_0x410f80(0x157)],'conversationConfig':_0x46614b[_0x410f80(0x169)]};fs_1[_0x410f80(0x19b)][_0x410f80(0x1ac)](path_1[_0x410f80(0x19b)][_0x410f80(0x1a4)](_0x4c51e4),{'recursive':!![]}),fs_1[_0x410f80(0x19b)][_0x410f80(0x185)](_0x4c51e4,JSON[_0x410f80(0x178)](_0x382c57,null,0x2),'utf-8'),debugLog(_0xa86dd4,_0x410f80(0x19c)+_0xf1cb8);}catch(_0x1dc1f1){console[_0x410f80(0x1be)](_0x410f80(0x1cd)+_0xf1cb8,_0x1dc1f1);}}function loadActiveSessions(_0x1c7242){const _0x2cba84=a11_0x114a85;for(const _0x25cf07 of _0x1c7242[_0x2cba84(0x198)][_0x2cba84(0x194)]){const _0x151d0f=getActiveSessionsFile(_0x1c7242,_0x25cf07[_0x2cba84(0x162)]);if(!fs_1[_0x2cba84(0x19b)][_0x2cba84(0x13d)](_0x151d0f))continue;try{const _0x307592=utils_ok_1['fileUtil'][_0x2cba84(0x142)](_0x151d0f);if(!_0x307592?.[_0x2cba84(0x1b9)]){console[_0x2cba84(0x14a)](_0x2cba84(0x131)+_0x151d0f);continue;}const _0xe4b833=getSessionDir(_0x1c7242,_0x307592[_0x2cba84(0x1b9)]);if(!fs_1['default']['existsSync'](_0xe4b833)){console[_0x2cba84(0x14a)](_0x2cba84(0x12f)+_0x151d0f),fs_1['default'][_0x2cba84(0x1c5)](_0x151d0f);continue;}_0x1c7242[_0x2cba84(0x15e)][_0x2cba84(0x150)](_0x25cf07[_0x2cba84(0x162)],{'session':_0x307592['session'],'lastSenderStaffId':_0x307592[_0x2cba84(0x157)]||_0x307592['session'][_0x2cba84(0x1ad)],'isProcessing':![],'conversationConfig':_0x307592[_0x2cba84(0x169)]}),console['log'](_0x2cba84(0x188)+_0x25cf07['conversationId']+_0x2cba84(0x19e)+getSessionId(_0x307592[_0x2cba84(0x1b9)]));}catch(_0x5abeb9){console[_0x2cba84(0x1be)](_0x2cba84(0x17f)+_0x151d0f,_0x5abeb9);}}}async function endSession(_0xef68c9,_0x19f8df,_0x3b4e42){const _0x1b1ade=a11_0x114a85,_0x5cc085=findActiveSession(_0xef68c9,_0x19f8df);if(!_0x5cc085){console[_0x1b1ade(0x14a)]('群\x20'+_0x19f8df+'\x20无活跃会话');return;}const {key:_0x4e608c,session:_0x87d46b}=_0x5cc085,{session:_0x2beb8e}=_0x87d46b,_0x25d297=getSessionDir(_0xef68c9,_0x2beb8e),_0x3481eb=getSessionId(_0x2beb8e);console['log'](_0x1b1ade(0x1d3)+_0x19f8df+_0x1b1ade(0x19e)+_0x3481eb),(0x0,claude_process_1[_0x1b1ade(0x140)])(_0x87d46b,_0x1b1ade(0x14d))&&fs_1[_0x1b1ade(0x19b)][_0x1b1ade(0x195)](_0x25d297+_0x1b1ade(0x1dd),'['+timestamp()+_0x1b1ade(0x141),_0x1b1ade(0x13e)),await(0x0,messaging_1[_0x1b1ade(0x153)])(_0xef68c9,{'conversationId':_0x19f8df,'sessionWebhook':_0x3b4e42,'atUserId':_0x2beb8e[_0x1b1ade(0x1ad)],'content':'💬\x20会话已结束\x0a📋\x20会话ID:\x20'+_0x3481eb}),_0xef68c9[_0x1b1ade(0x15e)][_0x1b1ade(0x187)](_0x4e608c),saveActiveSession(_0xef68c9,_0x4e608c),fs_1[_0x1b1ade(0x19b)][_0x1b1ade(0x195)](_0x25d297+_0x1b1ade(0x1dd),'['+timestamp()+_0x1b1ade(0x196),_0x1b1ade(0x13e));}async function switchToSession(_0x1b2439,_0x56c136,_0x303009,_0x3143e5,_0x3f5c09,_0x335775){const _0x1b53af=a11_0x114a85,_0x40e903=findHistorySession(_0x1b2439,_0x56c136,_0x3143e5);if(!_0x40e903)return await(0x0,messaging_1[_0x1b53af(0x153)])(_0x1b2439,{'conversationId':_0x56c136,'sessionWebhook':_0x303009,'atUserId':_0x3f5c09,'content':_0x1b53af(0x1eb)+_0x3143e5+_0x1b53af(0x146)}),![];const _0xb326b6=getSessionDir(_0x1b2439,_0x40e903);if(!fs_1[_0x1b53af(0x19b)][_0x1b53af(0x13d)](_0xb326b6))return await(0x0,messaging_1[_0x1b53af(0x153)])(_0x1b2439,{'conversationId':_0x56c136,'sessionWebhook':_0x303009,'atUserId':_0x3f5c09,'content':_0x1b53af(0x132)+_0x3143e5+_0x1b53af(0x12e)}),![];const _0xd4e4fb=findActiveSession(_0x1b2439,_0x56c136);_0xd4e4fb&&(console[_0x1b53af(0x14a)]('切换会话,先结束当前会话:\x20'+getSessionId(_0xd4e4fb[_0x1b53af(0x1b9)][_0x1b53af(0x1b9)])),(0x0,claude_process_1[_0x1b53af(0x140)])(_0xd4e4fb[_0x1b53af(0x1b9)],_0x1b53af(0x1c9)),_0x1b2439[_0x1b53af(0x15e)]['delete'](_0xd4e4fb[_0x1b53af(0x177)]),saveActiveSession(_0x1b2439,_0xd4e4fb['key']),fs_1[_0x1b53af(0x19b)][_0x1b53af(0x195)](getSessionDir(_0x1b2439,_0xd4e4fb[_0x1b53af(0x1b9)][_0x1b53af(0x1b9)])+_0x1b53af(0x1dd),'['+timestamp()+']\x20[SYSTEM]:\x20会话被切换到\x20'+_0x3143e5+_0x1b53af(0x13a),_0x1b53af(0x13e)));_0x1b2439[_0x1b53af(0x15e)]['set'](_0x56c136,{'session':_0x40e903,'lastSenderStaffId':_0x3f5c09,'isProcessing':![],'conversationConfig':_0x335775}),saveActiveSession(_0x1b2439,_0x56c136);const _0x80bf4a=!!_0x40e903[_0x1b53af(0x1b7)],_0x1131a8=getSessionId(_0x40e903);return await(0x0,messaging_1[_0x1b53af(0x153)])(_0x1b2439,{'conversationId':_0x56c136,'sessionWebhook':_0x303009,'atUserId':_0x3f5c09,'content':_0x1b53af(0x182)+_0x1131a8+')\x0a'+(_0x80bf4a?_0x1b53af(0x136):_0x1b53af(0x1b4))+_0x1b53af(0x186)}),console['log'](_0x1b53af(0x1b2)+_0x56c136+_0x1b53af(0x19e)+_0x1131a8+_0x1b53af(0x1ce)+_0x80bf4a),!![];}async function startNewSession(_0x2071c1,_0x241179){const _0x549edd=a11_0x114a85,{conversationId:_0x373c5c,sessionWebhook:_0x437cc2,senderStaffId:_0x1431e0,senderNick:_0x4ae1fb,message:_0x2172f3,conversationConfig:_0x97366a}=_0x241179,_0x156764=_0x2071c1[_0x549edd(0x198)][_0x549edd(0x16f)]??_0x2071c1[_0x549edd(0x163)];if(_0x2071c1[_0x549edd(0x15e)][_0x549edd(0x12d)]>=_0x156764){console[_0x549edd(0x14a)](_0x549edd(0x134)+_0x156764+'),拒绝新会话:\x20群='+_0x373c5c),await(0x0,messaging_1[_0x549edd(0x153)])(_0x2071c1,{'conversationId':_0x373c5c,'sessionWebhook':_0x437cc2,'atUserId':_0x1431e0,'content':_0x549edd(0x1b3)});return;}const _0x59340b=Date['now'](),_0x44bba9={'conversationId':_0x373c5c,'sessionWebhook':_0x437cc2,'startTime':_0x59340b,'startTimeStr':utils_ok_1[_0x549edd(0x1af)]['mm'](_0x59340b)[_0x549edd(0x15b)](_0x549edd(0x17c)),'startStaffId':_0x1431e0,'startNickName':_0x4ae1fb};console['log'](_0x549edd(0x16e)+_0x373c5c+_0x549edd(0x19e)+getSessionId(_0x44bba9)+',\x20发起者='+_0x1431e0+_0x549edd(0x1df)+(_0x2071c1[_0x549edd(0x15e)]['size']+0x1)+'/'+_0x156764);const _0x5d2ec8=getSessionDir(_0x2071c1,_0x44bba9);fs_1[_0x549edd(0x19b)][_0x549edd(0x1ac)](_0x5d2ec8,{'recursive':!![]}),fs_1[_0x549edd(0x19b)][_0x549edd(0x185)](_0x5d2ec8+'/session.json',JSON[_0x549edd(0x178)](_0x44bba9,null,0x2),_0x549edd(0x13e)),_0x2071c1['activeSessions'][_0x549edd(0x150)](_0x373c5c,{'session':_0x44bba9,'lastSenderStaffId':_0x1431e0,'isProcessing':!![],'conversationConfig':_0x97366a}),saveActiveSession(_0x2071c1,_0x373c5c),await(0x0,messaging_1['sendDingMessage'])(_0x2071c1,{'conversationId':_0x373c5c,'sessionWebhook':_0x437cc2,'atUserId':_0x1431e0,'content':_0x549edd(0x1cf)});try{await(0x0,claude_process_1[_0x549edd(0x1e3)])(_0x2071c1,_0x44bba9,_0x2172f3,{'skill':_0x97366a[_0x549edd(0x1e6)]?.[_0x549edd(0x1bc)],'agent':_0x97366a[_0x549edd(0x181)],'senderNick':_0x4ae1fb,'senderStaffId':_0x1431e0});}catch(_0x153bfc){console[_0x549edd(0x1be)](_0x549edd(0x167),_0x153bfc),await(0x0,messaging_1[_0x549edd(0x153)])(_0x2071c1,{'conversationId':_0x373c5c,'sessionWebhook':_0x437cc2,'atUserId':_0x1431e0,'content':_0x549edd(0x1c8)+(_0x153bfc instanceof Error?_0x153bfc['message']:String(_0x153bfc))});}finally{const _0x336896=_0x2071c1[_0x549edd(0x15e)]['get'](_0x373c5c);if(_0x336896)_0x336896['isProcessing']=![];}}async function handleSessionMessage(_0x4e6936,_0x5161d7){const _0x12065a=a11_0x114a85,{conversationId:_0x4bc10f,sessionWebhook:_0xb7f279,senderStaffId:_0x12b42b,senderNick:_0x368535,message:_0xac64be,conversationConfig:_0x2a0b6a}=_0x5161d7;if((0x0,commands_1[_0x12065a(0x139)])(_0xac64be)){await endSession(_0x4e6936,_0x4bc10f,_0xb7f279);return;}const _0x5bb494=findActiveSession(_0x4e6936,_0x4bc10f),_0x46d65a=_0x5bb494?.[_0x12065a(0x1b9)];if(_0x46d65a){const _0x35cf08=getSessionDir(_0x4e6936,_0x46d65a['session']);if(!fs_1[_0x12065a(0x19b)][_0x12065a(0x13d)](_0x35cf08)){const _0x47c5c0=getSessionId(_0x46d65a[_0x12065a(0x1b9)]);console[_0x12065a(0x14a)](_0x12065a(0x183)+_0x4bc10f+',\x20会话ID='+_0x47c5c0),_0x4e6936[_0x12065a(0x15e)][_0x12065a(0x187)](_0x5bb494['key']),saveActiveSession(_0x4e6936,_0x5bb494['key']),await(0x0,messaging_1['sendDingMessage'])(_0x4e6936,{'conversationId':_0x4bc10f,'sessionWebhook':_0xb7f279,'atUserId':_0x12b42b,'content':_0x12065a(0x1aa)+_0x47c5c0+_0x12065a(0x18a)});return;}if(_0x46d65a[_0x12065a(0x193)]){console[_0x12065a(0x14a)](_0x12065a(0x1c2)+_0x4bc10f+_0x12065a(0x143)),await(0x0,messaging_1['sendDingMessage'])(_0x4e6936,{'conversationId':_0x4bc10f,'sessionWebhook':_0xb7f279,'atUserId':_0x12b42b,'content':_0x12065a(0x16a)});return;}const _0x3b5262=_0x46d65a[_0x12065a(0x1b9)][_0x12065a(0x162)]===_0x4bc10f;console[_0x12065a(0x14a)]('追加消息到活跃会话:\x20群='+_0x4bc10f+_0x12065a(0x19e)+getSessionId(_0x46d65a[_0x12065a(0x1b9)])+(_0x3b5262?'':_0x12065a(0x158)+_0x46d65a['session']['conversationId']+')')),_0x46d65a[_0x12065a(0x157)]=_0x12b42b,_0x46d65a[_0x12065a(0x193)]=!![],saveActiveSession(_0x4e6936,_0x5bb494['key']);_0x3b5262&&_0xb7f279!==_0x46d65a[_0x12065a(0x1b9)][_0x12065a(0x1a3)]&&(_0x46d65a[_0x12065a(0x1b9)]['sessionWebhook']=_0xb7f279,updateSessionFile(_0x4e6936,_0x46d65a['session'],{'sessionWebhook':_0xb7f279}));_0x46d65a['session'][_0x12065a(0x199)]=_0xb7f279,_0x46d65a[_0x12065a(0x1b9)][_0x12065a(0x1c3)]=_0x4bc10f,updateSessionFile(_0x4e6936,_0x46d65a[_0x12065a(0x1b9)],{'currentWebhook':_0xb7f279,'currentConversationId':_0x4bc10f}),await(0x0,messaging_1[_0x12065a(0x153)])(_0x4e6936,{'conversationId':_0x4bc10f,'sessionWebhook':_0xb7f279,'atUserId':_0x12b42b,'content':_0x12065a(0x1bd)});try{await(0x0,claude_process_1['executeClaudeQuery'])(_0x4e6936,_0x46d65a[_0x12065a(0x1b9)],_0xac64be,{'skill':_0x2a0b6a[_0x12065a(0x1e6)]?.[_0x12065a(0x1bc)],'agent':_0x2a0b6a[_0x12065a(0x181)],'senderNick':_0x368535,'senderStaffId':_0x12b42b});}catch(_0x33a289){console[_0x12065a(0x1be)]('执行\x20Claude\x20查询失败:',_0x33a289),await(0x0,messaging_1['sendDingMessage'])(_0x4e6936,{'conversationId':_0x4bc10f,'sessionWebhook':_0xb7f279,'atUserId':_0x12b42b,'content':_0x12065a(0x1c8)+(_0x33a289 instanceof Error?_0x33a289[_0x12065a(0x176)]:String(_0x33a289))});}finally{_0x46d65a[_0x12065a(0x193)]=![];}}else await startNewSession(_0x4e6936,{'conversationId':_0x4bc10f,'sessionWebhook':_0xb7f279,'senderStaffId':_0x12b42b,'senderNick':_0x368535,'message':_0xac64be,'conversationConfig':_0x2a0b6a});}function cleanCache(_0x5baf73,_0x5c5bd8,_0x75f3a1=!![]){const _0x3b07d8=a11_0x114a85,_0x1c4105={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x393366=_0x5c5bd8?[_0x5c5bd8]:_0x5baf73[_0x3b07d8(0x198)][_0x3b07d8(0x194)]['map'](_0x1f8512=>_0x1f8512[_0x3b07d8(0x162)]);for(const _0x5a7282 of _0x393366){let _0x5e5899=null;if(_0x75f3a1){const _0x1c990d=findActiveSession(_0x5baf73,_0x5a7282);_0x1c990d&&(_0x5e5899=getSessionId(_0x1c990d[_0x3b07d8(0x1b9)]['session']));}const _0x4504e0=getSessionsDir(_0x5baf73,_0x5a7282);if(fs_1['default'][_0x3b07d8(0x13d)](_0x4504e0))try{const _0x17fb9a=fs_1[_0x3b07d8(0x19b)]['readdirSync'](_0x4504e0,{'withFileTypes':!![]});for(const _0x3027a0 of _0x17fb9a){if(!_0x3027a0[_0x3b07d8(0x1c0)]())continue;if(_0x5e5899&&_0x3027a0['name']===_0x5e5899)continue;const _0x165b0c=path_1[_0x3b07d8(0x19b)]['join'](_0x4504e0,_0x3027a0[_0x3b07d8(0x161)]);try{fs_1['default']['rmSync'](_0x165b0c,{'recursive':!![],'force':!![]}),_0x1c4105[_0x3b07d8(0x180)]++;}catch(_0x36e3f1){_0x1c4105[_0x3b07d8(0x1cb)][_0x3b07d8(0x1c7)](_0x3b07d8(0x1a2)+_0x165b0c);}}}catch(_0x294e74){_0x1c4105['errors']['push'](_0x3b07d8(0x152)+_0x4504e0);}const _0x10a46e=getTasksDir(_0x5baf73,_0x5a7282);if(fs_1[_0x3b07d8(0x19b)][_0x3b07d8(0x13d)](_0x10a46e))try{const _0x577ca9=fs_1[_0x3b07d8(0x19b)]['readdirSync'](_0x10a46e,{'withFileTypes':!![]});for(const _0x19d06c of _0x577ca9){if(!_0x19d06c[_0x3b07d8(0x1c0)]())continue;const _0x440065=path_1[_0x3b07d8(0x19b)][_0x3b07d8(0x18d)](_0x10a46e,_0x19d06c[_0x3b07d8(0x161)]);try{fs_1['default'][_0x3b07d8(0x166)](_0x440065,{'recursive':!![],'force':!![]}),_0x1c4105['tasksDeleted']++;}catch(_0x998018){_0x1c4105[_0x3b07d8(0x1cb)][_0x3b07d8(0x1c7)](_0x3b07d8(0x1ea)+_0x440065);}}}catch(_0x545df9){_0x1c4105[_0x3b07d8(0x1cb)][_0x3b07d8(0x1c7)]('读取tasks目录失败:\x20'+_0x10a46e);}const _0x56c74f=getImagesDir(_0x5baf73,_0x5a7282);if(fs_1[_0x3b07d8(0x19b)]['existsSync'](_0x56c74f))try{const _0x15a9b4=fs_1[_0x3b07d8(0x19b)][_0x3b07d8(0x1e7)](_0x56c74f,{'withFileTypes':!![]});for(const _0x46eede of _0x15a9b4){const _0x261ad6=path_1['default']['join'](_0x56c74f,_0x46eede[_0x3b07d8(0x161)]);try{fs_1[_0x3b07d8(0x19b)][_0x3b07d8(0x1c5)](_0x261ad6),_0x1c4105[_0x3b07d8(0x1e9)]++;}catch(_0x4fe433){_0x1c4105['errors'][_0x3b07d8(0x1c7)](_0x3b07d8(0x168)+_0x261ad6);}}}catch(_0x3cb328){_0x1c4105[_0x3b07d8(0x1cb)]['push'](_0x3b07d8(0x17a)+_0x56c74f);}if(!_0x75f3a1){const _0x5b5de7=getActiveSessionsFile(_0x5baf73,_0x5a7282);if(fs_1['default'][_0x3b07d8(0x13d)](_0x5b5de7))try{fs_1['default'][_0x3b07d8(0x1c5)](_0x5b5de7);}catch(_0x38ca04){_0x1c4105['errors']['push'](_0x3b07d8(0x160)+_0x5b5de7);}_0x5baf73[_0x3b07d8(0x15e)][_0x3b07d8(0x18f)](_0x5a7282)&&_0x5baf73['activeSessions']['delete'](_0x5a7282);}}return _0x1c4105;}
|
|
1
|
+
'use strict';const a11_0x29bf8e=a11_0x52ad;(function(_0x41193f,_0x5e971a){const _0x1aa97f=a11_0x52ad,_0x4b5a9a=_0x41193f();while(!![]){try{const _0x174864=parseInt(_0x1aa97f(0x255))/0x1+parseInt(_0x1aa97f(0x287))/0x2+parseInt(_0x1aa97f(0x1df))/0x3+-parseInt(_0x1aa97f(0x208))/0x4+-parseInt(_0x1aa97f(0x1cb))/0x5*(-parseInt(_0x1aa97f(0x273))/0x6)+parseInt(_0x1aa97f(0x1c4))/0x7*(parseInt(_0x1aa97f(0x266))/0x8)+parseInt(_0x1aa97f(0x249))/0x9*(-parseInt(_0x1aa97f(0x1cc))/0xa);if(_0x174864===_0x5e971a)break;else _0x4b5a9a['push'](_0x4b5a9a['shift']());}catch(_0x477bbc){_0x4b5a9a['push'](_0x4b5a9a['shift']());}}}(a11_0x2148,0xef370));var __importDefault=this&&this['__importDefault']||function(_0x49bf47){return _0x49bf47&&_0x49bf47['__esModule']?_0x49bf47:{'default':_0x49bf47};};Object['defineProperty'](exports,a11_0x29bf8e(0x224),{'value':!![]}),exports[a11_0x29bf8e(0x233)]=timestamp,exports[a11_0x29bf8e(0x213)]=getHomeDir,exports[a11_0x29bf8e(0x1ed)]=getClientDir,exports[a11_0x29bf8e(0x228)]=initClientDir,exports[a11_0x29bf8e(0x258)]=ensureClientDir,exports[a11_0x29bf8e(0x23e)]=getClientConfig,exports[a11_0x29bf8e(0x262)]=resolveToUserId,exports[a11_0x29bf8e(0x1fe)]=authCheck,exports['isOwner']=isOwner,exports['debugLog']=debugLog,exports[a11_0x29bf8e(0x207)]=isMobile,exports[a11_0x29bf8e(0x1c0)]=getPhoneMapFile,exports[a11_0x29bf8e(0x25c)]=loadPhoneMap,exports[a11_0x29bf8e(0x21c)]=savePhoneMap,exports[a11_0x29bf8e(0x272)]=userIdToPhone,exports[a11_0x29bf8e(0x1f4)]=resolveUserId,exports[a11_0x29bf8e(0x21b)]=resolveAllPhonesInConfig,exports[a11_0x29bf8e(0x238)]=hashConversationId,exports[a11_0x29bf8e(0x263)]=getReplyWebhook,exports['getReplyConversationId']=getReplyConversationId,exports[a11_0x29bf8e(0x1ce)]=findActiveSession,exports['getConversationConfig']=getConversationConfig,exports[a11_0x29bf8e(0x270)]=getConversationDir,exports[a11_0x29bf8e(0x21a)]=getSessionsDir,exports['getTasksDir']=getTasksDir,exports['getImagesDir']=getImagesDir,exports[a11_0x29bf8e(0x27f)]=getSessionDir,exports[a11_0x29bf8e(0x21e)]=getSessionId,exports[a11_0x29bf8e(0x23d)]=formatSessionInfo,exports[a11_0x29bf8e(0x1e4)]=readSessionLogTail,exports[a11_0x29bf8e(0x1eb)]=findHistorySession,exports['findLatestSession']=findLatestSession,exports['updateSessionFile']=updateSessionFile,exports[a11_0x29bf8e(0x240)]=appendSessionLog,exports[a11_0x29bf8e(0x1d1)]=getActiveSessionsFile,exports[a11_0x29bf8e(0x1c2)]=saveActiveSession,exports['loadActiveSessions']=loadActiveSessions,exports['endSession']=endSession,exports[a11_0x29bf8e(0x210)]=switchToSession,exports[a11_0x29bf8e(0x1dc)]=startNewSession,exports[a11_0x29bf8e(0x283)]=handleSessionMessage,exports['cleanCache']=cleanCache;const utils_ok_1=require(a11_0x29bf8e(0x245)),fs_1=__importDefault(require('fs')),os_1=__importDefault(require('os')),assert_1=__importDefault(require(a11_0x29bf8e(0x23b))),crypto_1=__importDefault(require(a11_0x29bf8e(0x202))),path_1=__importDefault(require(a11_0x29bf8e(0x254))),commands_1=require(a11_0x29bf8e(0x1de)),messaging_1=require('./messaging'),claude_process_1=require('./claude-process');function timestamp(){const _0x30f580=a11_0x29bf8e;return utils_ok_1[_0x30f580(0x222)]['mm'](Date[_0x30f580(0x20e)]())[_0x30f580(0x1f8)](_0x30f580(0x21d));}function getHomeDir(){const _0x575d90=a11_0x29bf8e;return os_1[_0x575d90(0x1f1)][_0x575d90(0x20c)]();}function getClientDir(_0x4ff939){const _0x379cf3=a11_0x29bf8e;return path_1[_0x379cf3(0x1f1)][_0x379cf3(0x257)](getHomeDir(),_0x379cf3(0x1e6),_0x4ff939[_0x379cf3(0x1c3)]);}function initClientDir(_0x4483ca,_0x4c2bfd){const _0x3887fb=a11_0x29bf8e,_0x442b85=path_1[_0x3887fb(0x1f1)][_0x3887fb(0x257)](getHomeDir(),_0x3887fb(0x1e6),_0x4483ca),_0x4bef28=path_1[_0x3887fb(0x1f1)][_0x3887fb(0x257)](_0x442b85,_0x3887fb(0x26c));return fs_1[_0x3887fb(0x1f1)][_0x3887fb(0x1c7)](_0x442b85,{'recursive':!![]}),fs_1[_0x3887fb(0x1f1)][_0x3887fb(0x26a)](_0x4bef28,JSON[_0x3887fb(0x201)](_0x4c2bfd,null,0x2),_0x3887fb(0x281)),_0x4bef28;}function ensureClientDir(_0x1bbc51){const _0x137b87=a11_0x29bf8e,_0xf981ce=path_1[_0x137b87(0x1f1)]['join'](getHomeDir(),'.cc-ding',_0x1bbc51),_0x729cc2=path_1[_0x137b87(0x1f1)][_0x137b87(0x257)](_0xf981ce,_0x137b87(0x26c));if(fs_1[_0x137b87(0x1f1)]['existsSync'](_0x729cc2))return;console[_0x137b87(0x22f)]('['+timestamp()+_0x137b87(0x24c)+_0xf981ce),console[_0x137b87(0x22f)]('['+timestamp()+_0x137b87(0x25f));const _0x393a2f={'clientName':_0x137b87(0x268),'owner':_0x137b87(0x1dd),'whiteUserList':[],'clientSecret':_0x137b87(0x282),'defaultDingToken':_0x137b87(0x23a),'conversations':[]};initClientDir(_0x1bbc51,_0x393a2f),console['log']('['+timestamp()+']\x20已生成默认配置文件:\x20'+_0x729cc2),console[_0x137b87(0x22f)]('['+timestamp()+_0x137b87(0x1fc)),process['exit'](0x1);}function getClientConfig(_0x4ac372){const _0x4ab1c2=a11_0x29bf8e,_0x25f259=getClientDir(_0x4ac372)+_0x4ab1c2(0x1ee);(0x0,assert_1['default'])(fs_1[_0x4ab1c2(0x1f1)]['existsSync'](_0x25f259),'Could\x20not\x20find\x20client\x20config\x20file:\x20'+_0x25f259);const _0x279c28=utils_ok_1[_0x4ab1c2(0x23c)][_0x4ab1c2(0x1fb)](_0x25f259);return(0x0,assert_1[_0x4ab1c2(0x1f1)])(_0x279c28['clientSecret'],'config.json\x20missing\x20required\x20field:\x20clientSecret'),(0x0,assert_1[_0x4ab1c2(0x1f1)])(_0x279c28[_0x4ab1c2(0x232)],_0x4ab1c2(0x1e8)),_0x279c28;}function resolveToUserId(_0x5e5b34,_0x2a9dda){const _0x18d79f=a11_0x29bf8e;return isMobile(_0x2a9dda)?_0x5e5b34[_0x18d79f(0x209)][_0x2a9dda]||_0x2a9dda:_0x2a9dda;}function authCheck(_0x339094,_0x728201,_0x148ec3){const _0x2b5339=a11_0x29bf8e;if(_0x148ec3){const _0x2f211f=_0x339094[_0x2b5339(0x226)][_0x2b5339(0x1be)]['find'](_0x31dff4=>_0x31dff4['conversationId']===_0x148ec3);if(_0x2f211f?.[_0x2b5339(0x232)]&&_0x2f211f[_0x2b5339(0x232)][_0x2b5339(0x215)]>0x0)return _0x2f211f[_0x2b5339(0x232)][_0x2b5339(0x252)](_0xc3c0bc=>resolveToUserId(_0x339094,_0xc3c0bc)===_0x728201);}return _0x339094[_0x2b5339(0x226)][_0x2b5339(0x232)][_0x2b5339(0x252)](_0x7896f0=>resolveToUserId(_0x339094,_0x7896f0)===_0x728201);}function isOwner(_0x2999b7,_0x4fa130){const _0x2a8a93=a11_0x29bf8e,_0x382f73=_0x2999b7['config']['owner'];if(!_0x382f73||!isMobile(_0x382f73))return![];const _0x4d53dc=_0x2999b7[_0x2a8a93(0x209)][_0x382f73];return!!_0x4d53dc&&_0x4d53dc===_0x4fa130;}function debugLog(_0x370a84,_0x4b3c7a,..._0xf402f3){const _0x16758f=a11_0x29bf8e;_0x370a84[_0x16758f(0x226)][_0x16758f(0x24d)]&&console['log'](_0x16758f(0x1d7)+_0x4b3c7a,..._0xf402f3);}const PHONE_RE=/^1\d{10}$/;function isMobile(_0x1111ee){const _0x1e1113=a11_0x29bf8e;return PHONE_RE[_0x1e1113(0x20f)](_0x1111ee);}function getPhoneMapFile(_0x2cbbe2){const _0x6327a6=a11_0x29bf8e;return path_1['default'][_0x6327a6(0x257)](getClientDir(_0x2cbbe2),_0x6327a6(0x20d));}function loadPhoneMap(_0x28b4b3){const _0x408edc=a11_0x29bf8e,_0x35503e=getPhoneMapFile(_0x28b4b3);if(!fs_1[_0x408edc(0x1f1)][_0x408edc(0x1f3)](_0x35503e))return{};try{const _0x2974da=JSON['parse'](fs_1[_0x408edc(0x1f1)][_0x408edc(0x220)](_0x35503e,_0x408edc(0x281)));if(typeof _0x2974da==='object'&&_0x2974da!==null)return _0x2974da;}catch{}return{};}function savePhoneMap(_0x4fd751,_0x3a356c){const _0x40ba0a=a11_0x29bf8e,_0x4ce467=getPhoneMapFile(_0x4fd751);try{fs_1[_0x40ba0a(0x1f1)][_0x40ba0a(0x26a)](_0x4ce467,JSON['stringify'](_0x3a356c,null,0x2),'utf-8');}catch(_0x5405be){console[_0x40ba0a(0x261)](_0x40ba0a(0x1d2),_0x5405be);}}function userIdToPhone(_0x21c8b5,_0x1161b0){const _0x190699=a11_0x29bf8e;for(const [_0x3b720a,_0x36f9b0]of Object[_0x190699(0x27c)](_0x21c8b5[_0x190699(0x209)])){if(_0x36f9b0===_0x1161b0)return _0x3b720a;}return null;}async function resolveUserId(_0x3aa2d2,_0x38a9ca){const _0x1c9391=a11_0x29bf8e;if(!_0x38a9ca)return null;if(!isMobile(_0x38a9ca))return _0x38a9ca;if(_0x3aa2d2[_0x1c9391(0x209)][_0x38a9ca])return _0x3aa2d2['resolvedPhones'][_0x38a9ca];const _0x22a64c=await(0x0,messaging_1[_0x1c9391(0x22a)])(_0x3aa2d2,_0x38a9ca);return _0x22a64c&&(_0x3aa2d2[_0x1c9391(0x209)][_0x38a9ca]=_0x22a64c,savePhoneMap(_0x3aa2d2,_0x3aa2d2['resolvedPhones'])),_0x22a64c;}async function resolveAllPhonesInConfig(_0x3324fb){const _0x168a5a=a11_0x29bf8e;_0x3324fb[_0x168a5a(0x209)]=loadPhoneMap(_0x3324fb);const _0x1814de=[],_0x251e2f=async _0x4eeffb=>{const _0x5de617=_0x168a5a;if(_0x3324fb[_0x5de617(0x209)][_0x4eeffb])return;const _0x4f63c6=await(0x0,messaging_1[_0x5de617(0x22a)])(_0x3324fb,_0x4eeffb);_0x4f63c6&&(_0x3324fb[_0x5de617(0x209)][_0x4eeffb]=_0x4f63c6,_0x1814de[_0x5de617(0x235)](_0x4eeffb));};_0x3324fb['config'][_0x168a5a(0x218)]&&(isMobile(_0x3324fb[_0x168a5a(0x226)][_0x168a5a(0x218)])?(await _0x251e2f(_0x3324fb[_0x168a5a(0x226)]['owner']),!_0x3324fb['resolvedPhones'][_0x3324fb['config']['owner']]&&console[_0x168a5a(0x203)]('[WARN]\x20无法解析\x20owner\x20手机号:\x20'+_0x3324fb[_0x168a5a(0x226)][_0x168a5a(0x218)])):console[_0x168a5a(0x203)](_0x168a5a(0x211)+_0x3324fb[_0x168a5a(0x226)][_0x168a5a(0x218)]));for(const _0x1937bd of _0x3324fb[_0x168a5a(0x226)]['whiteUserList']){isMobile(_0x1937bd)&&(await _0x251e2f(_0x1937bd),!_0x3324fb[_0x168a5a(0x209)][_0x1937bd]&&console['warn']('[WARN]\x20无法解析\x20whiteUserList\x20手机号:\x20'+_0x1937bd));}for(const _0x1dac4a of _0x3324fb[_0x168a5a(0x226)]['conversations']){if(_0x1dac4a[_0x168a5a(0x232)])for(const _0x7f76ca of _0x1dac4a[_0x168a5a(0x232)]){isMobile(_0x7f76ca)&&(await _0x251e2f(_0x7f76ca),!_0x3324fb['resolvedPhones'][_0x7f76ca]&&console[_0x168a5a(0x203)](_0x168a5a(0x1e7)+_0x7f76ca));}}_0x1814de[_0x168a5a(0x215)]>0x0&&savePhoneMap(_0x3324fb,_0x3324fb[_0x168a5a(0x209)]),console[_0x168a5a(0x22f)](_0x168a5a(0x20b)+Object[_0x168a5a(0x1d8)](_0x3324fb[_0x168a5a(0x209)])[_0x168a5a(0x215)]+_0x168a5a(0x27d)+_0x1814de[_0x168a5a(0x215)]+_0x168a5a(0x1fd));}function hashConversationId(_0x3d3afa,_0x356c15){const _0x4b505f=a11_0x29bf8e,_0x7a69aa=getConversationConfig(_0x3d3afa,_0x356c15),_0x35bc62=_0x7a69aa[_0x4b505f(0x27b)]||_0x356c15;return crypto_1[_0x4b505f(0x1f1)]['createHash'](_0x4b505f(0x1ff))[_0x4b505f(0x271)](_0x35bc62)[_0x4b505f(0x244)](_0x4b505f(0x264));}function getReplyWebhook(_0x12f56c){const _0x1d7ebf=a11_0x29bf8e;return _0x12f56c[_0x1d7ebf(0x22d)]||_0x12f56c['sessionWebhook'];}function getReplyConversationId(_0x4a82fa){const _0xd0acb1=a11_0x29bf8e;return _0x4a82fa[_0xd0acb1(0x24e)]||_0x4a82fa[_0xd0acb1(0x223)];}function findActiveSession(_0xdca347,_0x59cbc8){const _0x4e1ec0=a11_0x29bf8e,_0x4ff449=_0xdca347[_0x4e1ec0(0x248)]['get'](_0x59cbc8);if(_0x4ff449)return{'key':_0x59cbc8,'session':_0x4ff449};const _0x1c667d=getConversationConfig(_0xdca347,_0x59cbc8);if(_0x1c667d?.[_0x4e1ec0(0x27b)])for(const _0x7068d0 of _0xdca347[_0x4e1ec0(0x248)]){const _0x2a4e76=getConversationConfig(_0xdca347,_0x7068d0[0x0]);if(_0x2a4e76?.[_0x4e1ec0(0x27b)]===_0x1c667d['linkConversationId'])return{'key':_0x7068d0[0x0],'session':_0x7068d0[0x1]};}return undefined;}function getConversationConfig(_0x35002d,_0x17ba3c){const _0x385550=a11_0x29bf8e;return _0x35002d[_0x385550(0x226)][_0x385550(0x1be)][_0x385550(0x217)](_0x542d87=>_0x542d87['conversationId']===_0x17ba3c);}function getConversationDir(_0x565ff6,_0xfc0e31){const _0x506b94=hashConversationId(_0x565ff6,_0xfc0e31);return getClientDir(_0x565ff6)+'/'+_0x506b94;}function getSessionsDir(_0x3d21cc,_0x51fe4d){const _0x2c3457=a11_0x29bf8e;return getConversationDir(_0x3d21cc,_0x51fe4d)+_0x2c3457(0x1e0);}function getTasksDir(_0x5e2294,_0x5bfdaf){const _0x3025c9=a11_0x29bf8e;return getConversationDir(_0x5e2294,_0x5bfdaf)+_0x3025c9(0x216);}function getImagesDir(_0x57d768,_0x47885d){const _0x424cc6=a11_0x29bf8e;return getConversationDir(_0x57d768,_0x47885d)+_0x424cc6(0x1ca);}function getSessionDir(_0x312528,_0x597400){const _0xb8893f=a11_0x29bf8e,_0x539808=_0x597400[_0xb8893f(0x1d0)]||_0x597400[_0xb8893f(0x206)];return getSessionsDir(_0x312528,_0x597400['conversationId'])+'/'+_0x539808;}function getSessionId(_0xe316e5){const _0x280fc2=a11_0x29bf8e;return _0xe316e5[_0x280fc2(0x1d0)]||_0xe316e5[_0x280fc2(0x206)];}function formatSessionInfo(_0x3d1360,_0x349d3d){const _0x584717=a11_0x29bf8e,_0x510e24=findActiveSession(_0x3d1360,_0x349d3d);if(!_0x510e24)return null;const {session:_0x3b9c45,isProcessing:_0x492774}=_0x510e24[_0x584717(0x25b)],_0x4e8396=['-\x20**会话ID:**\x20'+getSessionId(_0x3b9c45),_0x584717(0x1d4)+_0x3b9c45[_0x584717(0x269)]+'('+_0x3b9c45[_0x584717(0x24f)]+')',_0x584717(0x284)+_0x3b9c45['startTimeStr'],_0x584717(0x20a)+_0x510e24[_0x584717(0x25b)]['lastSenderStaffId'],_0x584717(0x276)+_0x492774];return _0x4e8396['join']('\x0a');}function readSessionLogTail(_0x132426,_0x2a69ab,_0x2b00c2){const _0x501023=a11_0x29bf8e,_0x814842=findActiveSession(_0x132426,_0x2a69ab);if(!_0x814842)return null;const _0x178e47=_0x814842['session'],_0x3bb92a=getSessionDir(_0x132426,_0x178e47['session'])+_0x501023(0x1c8);if(!fs_1[_0x501023(0x1f1)][_0x501023(0x1f3)](_0x3bb92a))return null;try{const _0x3281d3=fs_1[_0x501023(0x1f1)]['readFileSync'](_0x3bb92a,'utf-8'),_0xf11552=_0x3281d3[_0x501023(0x225)]('\x0a')[_0x501023(0x237)](_0x4db0b6=>_0x4db0b6[_0x501023(0x215)]>0x0);return _0xf11552[_0x501023(0x22c)](-_0x2b00c2)['join']('\x0a');}catch{return null;}}function findHistorySession(_0x299a6d,_0x5d2f64,_0x5a2ddd){const _0x1393b3=a11_0x29bf8e,_0x5df951=getSessionsDir(_0x299a6d,_0x5d2f64),_0x399987=_0x5df951+'/'+_0x5a2ddd+'/session.json';try{return utils_ok_1[_0x1393b3(0x23c)][_0x1393b3(0x1fb)](_0x399987);}catch{}const _0x1891ce=parseInt(_0x5a2ddd,0xa);if(!isNaN(_0x1891ce)&&_0x1891ce>0x0){const _0x375eec=utils_ok_1[_0x1393b3(0x222)]['mm'](_0x1891ce)[_0x1393b3(0x1f8)](_0x1393b3(0x205)),_0x4815cf=_0x5df951+'/'+_0x375eec+_0x1393b3(0x26e);try{return utils_ok_1['fileUtil'][_0x1393b3(0x1fb)](_0x4815cf);}catch{}}return null;}function findLatestSession(_0x3f079b,_0x2c7254){const _0x44b6e7=a11_0x29bf8e,_0x44b24a=getSessionsDir(_0x3f079b,_0x2c7254);if(!fs_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x1f3)](_0x44b24a))return null;const _0x1b3d13=findActiveSession(_0x3f079b,_0x2c7254),_0x2bb9c9=_0x1b3d13?getSessionId(_0x1b3d13[_0x44b6e7(0x25b)]['session']):null;let _0x5b188d=null,_0x259994=0x0;try{const _0x57c7e0=fs_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x26b)](_0x44b24a,{'withFileTypes':!![]});for(const _0x1648c7 of _0x57c7e0){if(!_0x1648c7[_0x44b6e7(0x204)]())continue;const _0x448135=path_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x257)](_0x44b24a,_0x1648c7['name'],_0x44b6e7(0x1f0));if(!fs_1[_0x44b6e7(0x1f1)][_0x44b6e7(0x1f3)](_0x448135))continue;try{const _0x3aafbd=utils_ok_1[_0x44b6e7(0x23c)][_0x44b6e7(0x1fb)](_0x448135);if(_0x2bb9c9&&getSessionId(_0x3aafbd)===_0x2bb9c9)continue;_0x3aafbd[_0x44b6e7(0x236)]>_0x259994&&(_0x259994=_0x3aafbd[_0x44b6e7(0x236)],_0x5b188d=_0x3aafbd);}catch{continue;}}}catch{}return _0x5b188d;}function a11_0x2148(){const _0x3188d2=['keys','unlinkSync','errors',',\x20有Claude上下文=','startNewSession','<owner手机号>','./commands','4221999vxmTAp','/.sessions','delete','executeClaudeQuery','读取sessions目录失败:\x20','readSessionLogTail','/active.json','.cc-ding','[WARN]\x20无法解析群白名单手机号:\x20','config.json\x20missing\x20required\x20field:\x20whiteUserList',',\x20当前并发=','恢复活跃会话:\x20群=','findHistorySession','切换会话时中断正在执行的\x20Claude\x20进程','getClientDir','/config.json','has','session.json','default','🤯\x20当前繁忙,请稍后再试...','existsSync','resolveUserId','message','toUpperCase','basename','format','dirname','(关联群,会话归属=','getJSON',']\x20请编辑\x20config.json\x20填写必要的配置项后重新启动','\x20条新解析)','authCheck','md5','🔄\x20已恢复对话上下文','stringify','crypto','warn','isDirectory','YYYY-MM-DD-HH-mm-ss','startTimeStr','isMobile','3551616XtByjQ','resolvedPhones','-\x20**最后发送者:**\x20','[手机解析]\x20已加载\x20','homedir','phone-map.json','now','test','switchToSession','[WARN]\x20owner\x20必须为手机号,当前值无效:\x20',',\x20会话ID=','getHomeDir','追加消息到活跃会话:\x20群=','length','/.tasks','find','owner','加载活跃会话失败:\x20','getSessionsDir','resolveAllPhonesInConfig','savePhoneMap','YYYY-MM-DD\x20HH:mm:ss','getSessionId',',该会话可能已被清理,请发送新消息开始新会话','readFileSync','\x20->\x20','dateUtil','conversationId','__esModule','split','config','会话\x20','initClientDir','isProcessing','queryUserIdByMobile','删除活跃会话文件失败:\x20','slice','currentWebhook','set','log','sendDingMessage','切换会话,先结束当前会话:\x20','whiteUserList','timestamp','删除图片失败:\x20','push','startTime','filter','hashConversationId','✅\x20已切换到历史会话\x20(会话ID:\x20','<兜底钉钉机器人Token>','assert','fileUtil','formatSessionInfo','getClientConfig','sessionWebhook','appendSessionLog','删除会话目录失败:\x20','⏳\x20正在处理上一条消息,请稍候...','lastSenderStaffId','digest','utils-ok','结束会话时中断正在执行的\x20Claude\x20进程','💬\x20会话已结束\x0a📋\x20会话ID:\x20','activeSessions','18cZqTrG',']\x20[','size',']\x20客户端目录未初始化:\x20','debug','currentConversationId','startStaffId','❌\x20会话\x20','\x20无活跃会话','some','name','path','152933MztlSL',']\x20会话文件已保存:\x20','join','ensureClientDir','imagesDeleted','\x20的数据已被清理,无法继续。已自动结束该会话,请重新发送消息开始新会话','session','loadPhoneMap','读取images目录失败:\x20','结束会话:\x20群=',']\x20正在自动初始化...','parseEndCommand','error','resolveToUserId','getReplyWebhook','hex','删除任务目录失败:\x20','7669336VJIFgu','appendFileSync','cc助手','startNickName','writeFileSync','readdirSync','config.json','⚠️\x20该会话无历史上下文,将从头开始','/session.json','taskCfg','getConversationDir','update','userIdToPhone','674196bGgTxy','skill','达到最大并发数\x20(','-\x20**处理中:**\x20','创建新会话:\x20群=','更新\x20session.json\x20失败:','get','agent','linkConversationId','entries','\x20条记录\x20(','执行\x20Claude\x20查询失败:','getSessionDir','rmSync','utf-8','<clientSecret-钉钉Stream连接密钥>','handleSessionMessage','-\x20**开始时间:**\x20','sessionMaxConcurrency',']\x20[SYSTEM]:\x20结束会话时中断\x20Claude\x20进程\x0a','1660304BEGGCN','❌\x20处理消息时发生错误:\x20','conversations','❌\x20未找到会话\x20','getPhoneMapFile','sessionsDeleted','saveActiveSession','clientId','14JJhduB','tasksDeleted','DEFAULT_SESSION_MAX_CONCURRENCY','mkdirSync','/session.log','🚀\x20会话已开始!\x0a处理中...\x0a💡\x20回复\x20/end\x20可结束本轮对话','/.images','30kQucJn','15571100PgyQEQ','key','findActiveSession','interruptClaudeProcess','claudeSessionId','getActiveSessionsFile','保存\x20phone-map.json\x20失败:','\x0a💡\x20回复\x20/end\x20可结束本轮对话','-\x20**发起者:**\x20','活跃会话已持久化:\x20群=','renameSync','[DEBUG]\x20'];a11_0x2148=function(){return _0x3188d2;};return a11_0x2148();}function updateSessionFile(_0x5b877b,_0x366002,_0x346b26){const _0x4005e8=a11_0x29bf8e;if(_0x346b26[_0x4005e8(0x1d0)]&&!_0x366002[_0x4005e8(0x1d0)]){const _0x163dde=getSessionDir(_0x5b877b,_0x366002);_0x366002[_0x4005e8(0x1d0)]=_0x346b26['claudeSessionId'];const _0x2ec908=getSessionDir(_0x5b877b,_0x366002);_0x163dde!==_0x2ec908&&fs_1[_0x4005e8(0x1f1)][_0x4005e8(0x1f3)](_0x163dde)&&(fs_1['default'][_0x4005e8(0x1d6)](_0x163dde,_0x2ec908),console[_0x4005e8(0x22f)]('['+timestamp()+']\x20会话目录重命名:\x20'+path_1[_0x4005e8(0x1f1)][_0x4005e8(0x1f7)](_0x163dde)+_0x4005e8(0x221)+path_1[_0x4005e8(0x1f1)][_0x4005e8(0x1f7)](_0x2ec908)));}const _0x5b53c3=getSessionDir(_0x5b877b,_0x366002)+_0x4005e8(0x26e);try{if(_0x346b26[_0x4005e8(0x23f)])_0x366002[_0x4005e8(0x23f)]=_0x346b26[_0x4005e8(0x23f)];if(_0x346b26['currentWebhook']!==undefined)_0x366002[_0x4005e8(0x22d)]=_0x346b26['currentWebhook']||undefined;if(_0x346b26['currentConversationId']!==undefined)_0x366002['currentConversationId']=_0x346b26[_0x4005e8(0x24e)]||undefined;fs_1[_0x4005e8(0x1f1)][_0x4005e8(0x26a)](_0x5b53c3,JSON['stringify'](_0x366002,null,0x2),'utf-8');const _0x112ed6=_0x346b26['claudeSessionId']?_0x4005e8(0x1d0):_0x346b26[_0x4005e8(0x22d)]!==undefined?'currentWebhook':'sessionWebhook';console[_0x4005e8(0x22f)]('['+timestamp()+_0x4005e8(0x256)+_0x112ed6),saveActiveSession(_0x5b877b,_0x366002['conversationId']);}catch(_0x5a9088){console[_0x4005e8(0x261)](_0x4005e8(0x278),_0x5a9088);}}function appendSessionLog(_0x4e1591,_0x5bf61f,_0x34b810){const _0x4bbb2f=a11_0x29bf8e,_0x5655f2=_0x4e1591+_0x4bbb2f(0x1c8),_0x56b477=timestamp(),_0x2148cc='['+_0x56b477+_0x4bbb2f(0x24a)+_0x5bf61f[_0x4bbb2f(0x1f6)]()+']:\x20'+_0x34b810+'\x0a';fs_1[_0x4bbb2f(0x1f1)][_0x4bbb2f(0x267)](_0x5655f2,_0x2148cc,_0x4bbb2f(0x281));}function getActiveSessionsFile(_0x4704f1,_0x2a71ba){const _0xfb970a=a11_0x29bf8e;return getSessionsDir(_0x4704f1,_0x2a71ba)+_0xfb970a(0x1e5);}function saveActiveSession(_0x165609,_0x4dc2ff){const _0x1190be=a11_0x29bf8e,_0x1141c3=_0x165609[_0x1190be(0x248)][_0x1190be(0x279)](_0x4dc2ff),_0x208692=getActiveSessionsFile(_0x165609,_0x4dc2ff);try{if(!_0x1141c3){if(fs_1[_0x1190be(0x1f1)]['existsSync'](_0x208692))fs_1[_0x1190be(0x1f1)][_0x1190be(0x1d9)](_0x208692);return;}const _0x4109ff={'session':_0x1141c3[_0x1190be(0x25b)],'lastSenderStaffId':_0x1141c3[_0x1190be(0x243)],'conversationConfig':_0x1141c3['conversationConfig']};fs_1[_0x1190be(0x1f1)]['mkdirSync'](path_1[_0x1190be(0x1f1)][_0x1190be(0x1f9)](_0x208692),{'recursive':!![]}),fs_1[_0x1190be(0x1f1)][_0x1190be(0x26a)](_0x208692,JSON[_0x1190be(0x201)](_0x4109ff,null,0x2),_0x1190be(0x281)),debugLog(_0x165609,_0x1190be(0x1d5)+_0x4dc2ff);}catch(_0x2a78b4){console[_0x1190be(0x261)]('持久化活跃会话失败:\x20群='+_0x4dc2ff,_0x2a78b4);}}function loadActiveSessions(_0x39d168){const _0x10b6d4=a11_0x29bf8e;for(const _0x3d1c01 of _0x39d168[_0x10b6d4(0x226)]['conversations']){const _0x4b8452=getActiveSessionsFile(_0x39d168,_0x3d1c01[_0x10b6d4(0x223)]);if(!fs_1[_0x10b6d4(0x1f1)][_0x10b6d4(0x1f3)](_0x4b8452))continue;try{const _0x55f977=utils_ok_1[_0x10b6d4(0x23c)][_0x10b6d4(0x1fb)](_0x4b8452);if(!_0x55f977?.[_0x10b6d4(0x25b)]){console[_0x10b6d4(0x22f)]('活跃会话文件无效,跳过:\x20'+_0x4b8452);continue;}const _0x5ea1a6=getSessionDir(_0x39d168,_0x55f977[_0x10b6d4(0x25b)]);if(!fs_1[_0x10b6d4(0x1f1)]['existsSync'](_0x5ea1a6)){console[_0x10b6d4(0x22f)]('活跃会话目录已不存在,清理持久化文件:\x20'+_0x4b8452),fs_1[_0x10b6d4(0x1f1)][_0x10b6d4(0x1d9)](_0x4b8452);continue;}_0x39d168[_0x10b6d4(0x248)][_0x10b6d4(0x22e)](_0x3d1c01['conversationId'],{'session':_0x55f977[_0x10b6d4(0x25b)],'lastSenderStaffId':_0x55f977['lastSenderStaffId']||_0x55f977[_0x10b6d4(0x25b)][_0x10b6d4(0x24f)],'isProcessing':![],'conversationConfig':_0x55f977['conversationConfig']}),console[_0x10b6d4(0x22f)](_0x10b6d4(0x1ea)+_0x3d1c01['conversationId']+',\x20会话ID='+getSessionId(_0x55f977[_0x10b6d4(0x25b)]));}catch(_0x3c38a2){console[_0x10b6d4(0x261)](_0x10b6d4(0x219)+_0x4b8452,_0x3c38a2);}}}async function endSession(_0x47a7b3,_0x25c763,_0x297a3c){const _0x508fd6=a11_0x29bf8e,_0x11d661=findActiveSession(_0x47a7b3,_0x25c763);if(!_0x11d661){console['log']('群\x20'+_0x25c763+_0x508fd6(0x251));return;}const {key:_0x468b51,session:_0x5045e0}=_0x11d661,{session:_0x5dacc0}=_0x5045e0,_0x47dc60=getSessionDir(_0x47a7b3,_0x5dacc0),_0x16f6c9=getSessionId(_0x5dacc0);console[_0x508fd6(0x22f)](_0x508fd6(0x25e)+_0x25c763+_0x508fd6(0x212)+_0x16f6c9),(0x0,claude_process_1[_0x508fd6(0x1cf)])(_0x5045e0,_0x508fd6(0x246))&&fs_1['default']['appendFileSync'](_0x47dc60+'/session.log','['+timestamp()+_0x508fd6(0x286),_0x508fd6(0x281)),await(0x0,messaging_1['sendDingMessage'])(_0x47a7b3,{'conversationId':_0x25c763,'sessionWebhook':_0x297a3c,'atUserId':_0x5dacc0['startStaffId'],'content':_0x508fd6(0x247)+_0x16f6c9}),_0x47a7b3[_0x508fd6(0x248)][_0x508fd6(0x1e1)](_0x468b51),saveActiveSession(_0x47a7b3,_0x468b51),fs_1[_0x508fd6(0x1f1)][_0x508fd6(0x267)](_0x47dc60+_0x508fd6(0x1c8),'['+timestamp()+']\x20[SYSTEM]:\x20用户请求结束会话\x0a',_0x508fd6(0x281));}async function switchToSession(_0x44eccb,_0x28c4cf,_0x58e50a,_0x340170,_0x2dac02,_0x3d2a77){const _0x3dce65=a11_0x29bf8e,_0x32a2e7=findHistorySession(_0x44eccb,_0x28c4cf,_0x340170);if(!_0x32a2e7)return await(0x0,messaging_1[_0x3dce65(0x230)])(_0x44eccb,{'conversationId':_0x28c4cf,'sessionWebhook':_0x58e50a,'atUserId':_0x2dac02,'content':_0x3dce65(0x1bf)+_0x340170+_0x3dce65(0x21f)}),![];const _0x21fc17=getSessionDir(_0x44eccb,_0x32a2e7);if(!fs_1[_0x3dce65(0x1f1)][_0x3dce65(0x1f3)](_0x21fc17))return await(0x0,messaging_1[_0x3dce65(0x230)])(_0x44eccb,{'conversationId':_0x28c4cf,'sessionWebhook':_0x58e50a,'atUserId':_0x2dac02,'content':_0x3dce65(0x250)+_0x340170+'\x20的数据已被清理,无法恢复,请发送新消息开始新会话'}),![];const _0x36701a=findActiveSession(_0x44eccb,_0x28c4cf);_0x36701a&&(console['log'](_0x3dce65(0x231)+getSessionId(_0x36701a[_0x3dce65(0x25b)]['session'])),(0x0,claude_process_1['interruptClaudeProcess'])(_0x36701a[_0x3dce65(0x25b)],_0x3dce65(0x1ec)),_0x44eccb[_0x3dce65(0x248)][_0x3dce65(0x1e1)](_0x36701a['key']),saveActiveSession(_0x44eccb,_0x36701a[_0x3dce65(0x1cd)]),fs_1[_0x3dce65(0x1f1)][_0x3dce65(0x267)](getSessionDir(_0x44eccb,_0x36701a[_0x3dce65(0x25b)]['session'])+_0x3dce65(0x1c8),'['+timestamp()+']\x20[SYSTEM]:\x20会话被切换到\x20'+_0x340170+',结束当前会话\x0a',_0x3dce65(0x281)));_0x44eccb[_0x3dce65(0x248)][_0x3dce65(0x22e)](_0x28c4cf,{'session':_0x32a2e7,'lastSenderStaffId':_0x2dac02,'isProcessing':![],'conversationConfig':_0x3d2a77}),saveActiveSession(_0x44eccb,_0x28c4cf);const _0x4e0742=!!_0x32a2e7[_0x3dce65(0x1d0)],_0x3d53bf=getSessionId(_0x32a2e7);return await(0x0,messaging_1[_0x3dce65(0x230)])(_0x44eccb,{'conversationId':_0x28c4cf,'sessionWebhook':_0x58e50a,'atUserId':_0x2dac02,'content':_0x3dce65(0x239)+_0x3d53bf+')\x0a'+(_0x4e0742?_0x3dce65(0x200):_0x3dce65(0x26d))+_0x3dce65(0x1d3)}),console[_0x3dce65(0x22f)]('已切换到历史会话:\x20群='+_0x28c4cf+_0x3dce65(0x212)+_0x3d53bf+_0x3dce65(0x1db)+_0x4e0742),!![];}function a11_0x52ad(_0x41104a,_0x226ca4){_0x41104a=_0x41104a-0x1bd;const _0x2148e9=a11_0x2148();let _0x52ad0d=_0x2148e9[_0x41104a];return _0x52ad0d;}async function startNewSession(_0x19c350,_0x24a931){const _0x790828=a11_0x29bf8e,{conversationId:_0x277cf6,sessionWebhook:_0x4649e7,senderStaffId:_0xe96569,senderNick:_0x464073,message:_0xf8e321,conversationConfig:_0x450431}=_0x24a931,_0x586c11=_0x19c350[_0x790828(0x226)][_0x790828(0x285)]??_0x19c350[_0x790828(0x1c6)];if(_0x19c350[_0x790828(0x248)][_0x790828(0x24b)]>=_0x586c11){console[_0x790828(0x22f)](_0x790828(0x275)+_0x586c11+'),拒绝新会话:\x20群='+_0x277cf6),await(0x0,messaging_1['sendDingMessage'])(_0x19c350,{'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'atUserId':_0xe96569,'content':_0x790828(0x1f2)});return;}const _0x461c76=Date[_0x790828(0x20e)](),_0x4c0274={'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'startTime':_0x461c76,'startTimeStr':utils_ok_1[_0x790828(0x222)]['mm'](_0x461c76)[_0x790828(0x1f8)](_0x790828(0x205)),'startStaffId':_0xe96569,'startNickName':_0x464073};console[_0x790828(0x22f)](_0x790828(0x277)+_0x277cf6+_0x790828(0x212)+getSessionId(_0x4c0274)+',\x20发起者='+_0xe96569+_0x790828(0x1e9)+(_0x19c350[_0x790828(0x248)]['size']+0x1)+'/'+_0x586c11);const _0x48e1dd=getSessionDir(_0x19c350,_0x4c0274);fs_1[_0x790828(0x1f1)][_0x790828(0x1c7)](_0x48e1dd,{'recursive':!![]}),fs_1[_0x790828(0x1f1)]['writeFileSync'](_0x48e1dd+_0x790828(0x26e),JSON['stringify'](_0x4c0274,null,0x2),_0x790828(0x281)),_0x19c350[_0x790828(0x248)][_0x790828(0x22e)](_0x277cf6,{'session':_0x4c0274,'lastSenderStaffId':_0xe96569,'isProcessing':!![],'conversationConfig':_0x450431}),saveActiveSession(_0x19c350,_0x277cf6),await(0x0,messaging_1['sendDingMessage'])(_0x19c350,{'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'atUserId':_0xe96569,'content':_0x790828(0x1c9)});try{await(0x0,claude_process_1['executeClaudeQuery'])(_0x19c350,_0x4c0274,_0xf8e321,{'skill':_0x450431['taskCfg']?.['skill'],'agent':_0x450431[_0x790828(0x27a)],'senderNick':_0x464073,'senderStaffId':_0xe96569});}catch(_0x6a22c2){console[_0x790828(0x261)]('执行\x20Claude\x20查询失败:',_0x6a22c2),await(0x0,messaging_1[_0x790828(0x230)])(_0x19c350,{'conversationId':_0x277cf6,'sessionWebhook':_0x4649e7,'atUserId':_0xe96569,'content':_0x790828(0x1bd)+(_0x6a22c2 instanceof Error?_0x6a22c2[_0x790828(0x1f5)]:String(_0x6a22c2))});}finally{const _0x35bcf4=_0x19c350['activeSessions'][_0x790828(0x279)](_0x277cf6);if(_0x35bcf4)_0x35bcf4[_0x790828(0x229)]=![];}}async function handleSessionMessage(_0x2894e8,_0x16573a){const _0x2a9f30=a11_0x29bf8e,{conversationId:_0x5ba97f,sessionWebhook:_0x33df3d,senderStaffId:_0x5ba1f7,senderNick:_0x976712,message:_0x312ccd,conversationConfig:_0x9fe711}=_0x16573a;if((0x0,commands_1[_0x2a9f30(0x260)])(_0x312ccd)){await endSession(_0x2894e8,_0x5ba97f,_0x33df3d);return;}const _0x473a36=findActiveSession(_0x2894e8,_0x5ba97f),_0x348725=_0x473a36?.[_0x2a9f30(0x25b)];if(_0x348725){const _0x54ce43=getSessionDir(_0x2894e8,_0x348725[_0x2a9f30(0x25b)]);if(!fs_1[_0x2a9f30(0x1f1)][_0x2a9f30(0x1f3)](_0x54ce43)){const _0x2701c9=getSessionId(_0x348725['session']);console[_0x2a9f30(0x22f)]('活跃会话目录已被清理:\x20群='+_0x5ba97f+',\x20会话ID='+_0x2701c9),_0x2894e8[_0x2a9f30(0x248)][_0x2a9f30(0x1e1)](_0x473a36[_0x2a9f30(0x1cd)]),saveActiveSession(_0x2894e8,_0x473a36[_0x2a9f30(0x1cd)]),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':'⚠️\x20会话\x20'+_0x2701c9+_0x2a9f30(0x25a)});return;}if(_0x348725[_0x2a9f30(0x229)]){console[_0x2a9f30(0x22f)](_0x2a9f30(0x227)+_0x5ba97f+'\x20正在处理中,忽略新消息'),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':_0x2a9f30(0x242)});return;}const _0x386dea=_0x348725['session'][_0x2a9f30(0x223)]===_0x5ba97f;console[_0x2a9f30(0x22f)](_0x2a9f30(0x214)+_0x5ba97f+_0x2a9f30(0x212)+getSessionId(_0x348725[_0x2a9f30(0x25b)])+(_0x386dea?'':_0x2a9f30(0x1fa)+_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x223)]+')')),_0x348725[_0x2a9f30(0x243)]=_0x5ba1f7,_0x348725[_0x2a9f30(0x229)]=!![],saveActiveSession(_0x2894e8,_0x473a36['key']);_0x386dea&&_0x33df3d!==_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x23f)]&&(_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x23f)]=_0x33df3d,updateSessionFile(_0x2894e8,_0x348725[_0x2a9f30(0x25b)],{'sessionWebhook':_0x33df3d}));_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x22d)]=_0x33df3d,_0x348725[_0x2a9f30(0x25b)][_0x2a9f30(0x24e)]=_0x5ba97f,updateSessionFile(_0x2894e8,_0x348725[_0x2a9f30(0x25b)],{'currentWebhook':_0x33df3d,'currentConversationId':_0x5ba97f}),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':'✅\x20收到,我来处理...'});try{await(0x0,claude_process_1[_0x2a9f30(0x1e2)])(_0x2894e8,_0x348725[_0x2a9f30(0x25b)],_0x312ccd,{'skill':_0x9fe711[_0x2a9f30(0x26f)]?.[_0x2a9f30(0x274)],'agent':_0x9fe711['agent'],'senderNick':_0x976712,'senderStaffId':_0x5ba1f7});}catch(_0x4a4d0d){console[_0x2a9f30(0x261)](_0x2a9f30(0x27e),_0x4a4d0d),await(0x0,messaging_1[_0x2a9f30(0x230)])(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'atUserId':_0x5ba1f7,'content':_0x2a9f30(0x1bd)+(_0x4a4d0d instanceof Error?_0x4a4d0d[_0x2a9f30(0x1f5)]:String(_0x4a4d0d))});}finally{_0x348725[_0x2a9f30(0x229)]=![];}}else await startNewSession(_0x2894e8,{'conversationId':_0x5ba97f,'sessionWebhook':_0x33df3d,'senderStaffId':_0x5ba1f7,'senderNick':_0x976712,'message':_0x312ccd,'conversationConfig':_0x9fe711});}function cleanCache(_0x1c11fa,_0x34cb66,_0x297955=!![]){const _0x3d65d0=a11_0x29bf8e,_0x3a119a={'sessionsDeleted':0x0,'tasksDeleted':0x0,'imagesDeleted':0x0,'errors':[]},_0x163c34=_0x34cb66?[_0x34cb66]:_0x1c11fa['config']['conversations']['map'](_0x194c92=>_0x194c92[_0x3d65d0(0x223)]);for(const _0x560235 of _0x163c34){let _0x36b29e=null;if(_0x297955){const _0x2970c6=findActiveSession(_0x1c11fa,_0x560235);_0x2970c6&&(_0x36b29e=getSessionId(_0x2970c6[_0x3d65d0(0x25b)][_0x3d65d0(0x25b)]));}const _0x4ac3b3=getSessionsDir(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)]['existsSync'](_0x4ac3b3))try{const _0x2de375=fs_1[_0x3d65d0(0x1f1)]['readdirSync'](_0x4ac3b3,{'withFileTypes':!![]});for(const _0x50fd91 of _0x2de375){if(!_0x50fd91[_0x3d65d0(0x204)]())continue;if(_0x36b29e&&_0x50fd91['name']===_0x36b29e)continue;const _0x3c9312=path_1['default'][_0x3d65d0(0x257)](_0x4ac3b3,_0x50fd91[_0x3d65d0(0x253)]);try{fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x280)](_0x3c9312,{'recursive':!![],'force':!![]}),_0x3a119a[_0x3d65d0(0x1c1)]++;}catch(_0x47291f){_0x3a119a['errors'][_0x3d65d0(0x235)](_0x3d65d0(0x241)+_0x3c9312);}}}catch(_0x56e553){_0x3a119a['errors'][_0x3d65d0(0x235)](_0x3d65d0(0x1e3)+_0x4ac3b3);}const _0x293b2e=getTasksDir(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1f3)](_0x293b2e))try{const _0x2fffac=fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x26b)](_0x293b2e,{'withFileTypes':!![]});for(const _0x5e3a41 of _0x2fffac){if(!_0x5e3a41[_0x3d65d0(0x204)]())continue;const _0x39952=path_1['default'][_0x3d65d0(0x257)](_0x293b2e,_0x5e3a41[_0x3d65d0(0x253)]);try{fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x280)](_0x39952,{'recursive':!![],'force':!![]}),_0x3a119a[_0x3d65d0(0x1c5)]++;}catch(_0x57849f){_0x3a119a[_0x3d65d0(0x1da)]['push'](_0x3d65d0(0x265)+_0x39952);}}}catch(_0x5dcc0b){_0x3a119a[_0x3d65d0(0x1da)][_0x3d65d0(0x235)]('读取tasks目录失败:\x20'+_0x293b2e);}const _0x226c74=getImagesDir(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1f3)](_0x226c74))try{const _0x3542b4=fs_1['default'][_0x3d65d0(0x26b)](_0x226c74,{'withFileTypes':!![]});for(const _0x34047d of _0x3542b4){const _0x124799=path_1['default'][_0x3d65d0(0x257)](_0x226c74,_0x34047d[_0x3d65d0(0x253)]);try{fs_1[_0x3d65d0(0x1f1)]['unlinkSync'](_0x124799),_0x3a119a[_0x3d65d0(0x259)]++;}catch(_0xdc14c7){_0x3a119a['errors'][_0x3d65d0(0x235)](_0x3d65d0(0x234)+_0x124799);}}}catch(_0xc7e6aa){_0x3a119a[_0x3d65d0(0x1da)][_0x3d65d0(0x235)](_0x3d65d0(0x25d)+_0x226c74);}if(!_0x297955){const _0x455160=getActiveSessionsFile(_0x1c11fa,_0x560235);if(fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1f3)](_0x455160))try{fs_1[_0x3d65d0(0x1f1)][_0x3d65d0(0x1d9)](_0x455160);}catch(_0x762564){_0x3a119a[_0x3d65d0(0x1da)][_0x3d65d0(0x235)](_0x3d65d0(0x22b)+_0x455160);}_0x1c11fa[_0x3d65d0(0x248)][_0x3d65d0(0x1ef)](_0x560235)&&_0x1c11fa[_0x3d65d0(0x248)][_0x3d65d0(0x1e1)](_0x560235);}}return _0x3a119a;}
|