cc-ding 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- 'use strict';const a3_0x345326=a3_0x2f2f;(function(_0x5a0d7f,_0x440b60){const _0x373154=a3_0x2f2f,_0xe561d7=_0x5a0d7f();while(!![]){try{const _0x3fcf71=-parseInt(_0x373154(0x202))/0x1+-parseInt(_0x373154(0x200))/0x2*(-parseInt(_0x373154(0x217))/0x3)+-parseInt(_0x373154(0x1b5))/0x4*(parseInt(_0x373154(0x1fa))/0x5)+parseInt(_0x373154(0x221))/0x6*(parseInt(_0x373154(0x1c2))/0x7)+parseInt(_0x373154(0x1a4))/0x8*(-parseInt(_0x373154(0x1a1))/0x9)+-parseInt(_0x373154(0x194))/0xa+parseInt(_0x373154(0x21e))/0xb;if(_0x3fcf71===_0x440b60)break;else _0xe561d7['push'](_0xe561d7['shift']());}catch(_0x3fb780){_0xe561d7['push'](_0xe561d7['shift']());}}}(a3_0x19f6,0x5c4c1));function a3_0x19f6(){const _0x247bb1=['80466sYJUbW','debugLog','createInterface',']\x20检测到认证错误(401),通知用户','data','ConversationNotFoundError','sessionId','requires\x20permission','pipe',']\x20执行\x20Claude\x20查询[原生claude\x20模式]:\x20','appendSessionLog','test','name','startStaffId','发送钉钉消息失败:','readline','get',']\x20[SYSTEM]:\x20TPM\x20限流连续快速失败,切换到新\x20Key\x0a','Retryable\x20API\x20error\x20(TPM\x20limit\x20etc.)','lastSenderStaffId','prompt','发送消息:\x20','kill','length','getReplyConversationId','__importDefault','ensureSettingsWithApiKey','message','input','requests\x20per\x20minute','parse','existsSync','mkdirSync',']\x20[WARN]:\x20','assistant','SIGINT',']\x20[ERROR]:\x20进程错误:\x20',']\x20TPM\x20限流快速失败连续','defineProperty','\x20[fast\x20fail]','permission\x20denied','--permission-mode','authorization\x20required','log','getSessionDir','find','次,放弃','includeThinking','file_path',']\x20[SYSTEM]:\x20TPM\x20限流快速失败连续','--settings','interruptClaudeProcess','pattern','default','Claude\x20conversation\x20not\x20found','2680260kCZELz','push','isAuthenticationError',']\x20Claude\x20进程退出,代码:\x20',']\x20[WARN]:\x20Claude\x20进程正常退出但未产生任何回复内容\x0a','./messaging','trim','toLowerCase','s\x20后重试\x0a',']\x20用户主动中断,忽略错误','line','claudeSettings','Claude\x20进程退出,代码:\x20','27vmMlIh','content','⚠️\x20Claude\x20需要授权,请人工介入','1704656LhlSdu',']\x20Claude\x20会话失效,清除\x20claudeSessionId\x20并重新发起','description','__esModule','capacity',']\x20恢复\x20Claude\x20会话:\x20','sendDingMessage','tool_use','currentProcess','s\x20后重试','--verbose','isQuotaExhaustedError','claude','tokens\x20per\x20minute','init','claudeSessionId','getConversationDir','223556buxrII','isRetryableApiError','toString',']\x20[ERROR]:\x20','--resume','output','user','没有权限','some','activeSessions','rate\x20limit','result','appendFileSync','217PLtsxW','⚠️\x20Claude\x20处理完成但未返回任何内容,请重试或换种方式提问','join','isFastFail','⚠️\x20认证失败(401),API\x20Key\x20无效或服务未授权,请检查配置','/session.log','rpm\x20limit','Claude\x20进程错误:','close','executeClaudeQuery','⚠️\x20当前无可用配额(无可用\x20API\x20Key),请明天再试或联系管理员','stream-json','conversationId',']\x20从\x20settings-ding.json\x20恢复\x20Claude\x20Setting:\x20','--agent','session_id',']\x20[SYSTEM]:\x20Claude\x20会话已失效,清除旧会话并重新发起\x0a','child_process','query','apiKey','getForceEnabledSettingsPath','pickValidApiKey','getReplyWebhook','s\x20后重试\x20(','[Claude\x20stderr]:\x20',']\x20[Claude\x20stderr]\x20可重试API错误(422\x20TPM限流):\x20','end','string','readApiKeyFromSettings',']\x20Claude\x20返回了空的\x20result\x20且\x20responseBuffer\x20也为空,无内容可发送','catch','parseClaudeStreamLine','permission_required','type',']\x20[Claude\x20stderr]\x20配额耗尽错误(429):\x20','TPM\x20限流,快速失败连续\x20','\x20──\x20消息来自:\x20','rotateApiKey','now',']\x20[SYSTEM]:\x20Claude\x20查询启动','unknown','includes',']\x20检测到配额耗尽错误(429),stdout匹配=','apiKeyCfg',']\x20[SYSTEM]:\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key\x0a','bypassPermissions','error','temporarily\x20unavailable','interrupted','sendClaudeResponseToDing',']\x20TPM\x20限流连续快速失败\x20','config',']\x20Claude\x20会话已失效:\x20','utf-8','overloaded','tool','40fIKglA','thinking','\x0a```','stringify','./api-key-manager','resolveClaudeSettingsPath','14PUnpqG','substring','641972JekcxW','access\x20denied','add','warn','...','path',']\x20[SYSTEM]:\x20TPM\x20限流,发送\x22继续\x22重试\x20(快速失败连续','too\x20many\x20requests','\x20(重试)','updateSessionFile','settings.json',']\x20[RAW]:\x20','stdout','stderr','stdin','system','settingLabel','--output-format','isArray','timestamp','RetryableApiError','241779TDsyTc','needs\x20permission','debug','has',']\x20[SYSTEM]:\x20Claude\x20查询结束,退出码:\x20','command','spawn','15339643blPEiB','resultOnly','text'];a3_0x19f6=function(){return _0x247bb1;};return a3_0x19f6();}var __importDefault=this&&this[a3_0x345326(0x23a)]||function(_0x4c15f0){const _0xace765=a3_0x345326;return _0x4c15f0&&_0x4c15f0[_0xace765(0x1a7)]?_0x4c15f0:{'default':_0x4c15f0};};function a3_0x2f2f(_0x2be1d7,_0x566307){_0x2be1d7=_0x2be1d7-0x18d;const _0x19f6ae=a3_0x19f6();let _0x2f2f3f=_0x19f6ae[_0x2be1d7];return _0x2f2f3f;}Object[a3_0x345326(0x247)](exports,'__esModule',{'value':!![]}),exports[a3_0x345326(0x1ff)]=resolveClaudeSettingsPath,exports[a3_0x345326(0x1b6)]=isRetryableApiError,exports[a3_0x345326(0x1e1)]=parseClaudeStreamLine,exports[a3_0x345326(0x190)]=interruptClaudeProcess,exports[a3_0x345326(0x1cb)]=executeClaudeQuery;const fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a3_0x345326(0x207))),readline_1=__importDefault(require(a3_0x345326(0x230))),child_process_1=require(a3_0x345326(0x1d3)),messaging_1=require(a3_0x345326(0x199)),session_1=require('./session'),api_key_manager_1=require(a3_0x345326(0x1fe)),MAX_FAST_FAIL=0x14,API_RETRY_DELAY_MS=0x2710,FAST_FAIL_THRESHOLD_MS=0x2710;function resolveClaudeSettingsPath(_0x5de159,_0x1d3d5e,_0x5ce063){const _0x15b982=a3_0x345326,_0x28640e=(0x0,api_key_manager_1[_0x15b982(0x1d6)])(_0x1d3d5e);if(_0x28640e)return _0x28640e;if(_0x5de159[_0x15b982(0x1f5)][_0x15b982(0x1ed)]){const _0x2e32e3=(0x0,api_key_manager_1['readApiKeyFromSettings'])(_0x1d3d5e);let _0xc44ebb=null;_0x2e32e3&&(_0xc44ebb=_0x5de159['config'][_0x15b982(0x1ed)][_0x15b982(0x19f)][_0x15b982(0x24e)](_0x44b00d=>_0x44b00d[_0x15b982(0x1d5)]===_0x2e32e3&&_0x44b00d['isValid'])||null);!_0xc44ebb&&(_0xc44ebb=(0x0,api_key_manager_1[_0x15b982(0x1d7)])(_0x5de159));if(_0xc44ebb)return(0x0,api_key_manager_1[_0x15b982(0x23b)])(_0x1d3d5e,_0xc44ebb);}if(_0x5de159[_0x15b982(0x1f5)][_0x15b982(0x1ed)])return undefined;if(_0x5ce063)return _0x5ce063;const _0x559b4b=path_1[_0x15b982(0x192)]['join'](_0x1d3d5e,'.claude',_0x15b982(0x20c));if(fs_1[_0x15b982(0x192)]['existsSync'](_0x559b4b))return console[_0x15b982(0x24c)]('['+(0x0,session_1[_0x15b982(0x215)])()+']\x20自动检测到\x20settings.json:\x20'+_0x559b4b),_0x559b4b;return undefined;}function isRetryableApiError(_0x4a39e5){const _0x542bb7=a3_0x345326;if(/\b429\b/[_0x542bb7(0x22c)](_0x4a39e5)&&!(0x0,api_key_manager_1['isQuotaExhaustedError'])(_0x4a39e5))return!![];if(/API\s*Error.*422/i['test'](_0x4a39e5))return!![];if(/\b422\b.*(?:TPM|额度超限|rate\s*limit|tokens?\s*per\s*minute)/i[_0x542bb7(0x22c)](_0x4a39e5))return!![];if(/(?:TPM|额度超限).*\b422\b/i['test'](_0x4a39e5))return!![];const _0x31dcf8=_0x4a39e5[_0x542bb7(0x19b)](),_0x22c090=[_0x542bb7(0x1bf),'rate_limit','ratelimit',_0x542bb7(0x209),_0x542bb7(0x1b1),_0x542bb7(0x23e),_0x542bb7(0x1c8),_0x542bb7(0x1f8),_0x542bb7(0x1a8),_0x542bb7(0x1f1)];return _0x22c090['some'](_0x21ffc9=>_0x31dcf8[_0x542bb7(0x1eb)](_0x21ffc9));}function sleep(_0x463724){return new Promise(_0x888fe8=>setTimeout(_0x888fe8,_0x463724));}class RetryableApiError extends Error{constructor(_0xe65e5f,_0x1e5b80=''){const _0x19111a=a3_0x345326;super(_0x19111a(0x233)+(_0xe65e5f?_0x19111a(0x248):'')),this[_0x19111a(0x22d)]=_0x19111a(0x216),this[_0x19111a(0x1c5)]=_0xe65e5f,this[_0x19111a(0x1ba)]=_0x1e5b80;}}class ConversationNotFoundError extends Error{constructor(){const _0x116bfc=a3_0x345326;super(_0x116bfc(0x193)),this[_0x116bfc(0x22d)]=_0x116bfc(0x226);}}function isPermissionError(_0x26702c){const _0x47bcd2=a3_0x345326,_0x4eeaf2=_0x26702c[_0x47bcd2(0x19b)](),_0x401e3f=[_0x47bcd2(0x249),_0x47bcd2(0x1e2),_0x47bcd2(0x218),_0x47bcd2(0x228),_0x47bcd2(0x24b),'authorize','not\x20authorized',_0x47bcd2(0x203),'需要授权','权限不足',_0x47bcd2(0x1bc)];return _0x401e3f[_0x47bcd2(0x1bd)](_0x33bf0a=>_0x4eeaf2[_0x47bcd2(0x1eb)](_0x33bf0a));}function isConversationNotFoundError(_0x1d5b1b){return/no conversation found with session id/i['test'](_0x1d5b1b);}function parseClaudeStreamLine(_0x3ebcc5,_0x575f76=![]){const _0x36b97b=a3_0x345326;if(!_0x3ebcc5['trim']())return null;try{const _0x4ec3e9=JSON[_0x36b97b(0x23f)](_0x3ebcc5);if(_0x4ec3e9[_0x36b97b(0x1e3)]===_0x36b97b(0x211)&&_0x4ec3e9['subtype']===_0x36b97b(0x1b2)&&_0x4ec3e9[_0x36b97b(0x1d1)])return{'type':_0x36b97b(0x211),'sessionId':_0x4ec3e9[_0x36b97b(0x1d1)]};if(_0x4ec3e9[_0x36b97b(0x1e3)]==='assistant'){const _0x21398c=_0x4ec3e9[_0x36b97b(0x23c)]?.['content'];if(Array[_0x36b97b(0x214)](_0x21398c)){const _0x24d46c=[];for(const _0x1c2c87 of _0x21398c){if(_0x1c2c87[_0x36b97b(0x1e3)]==='text'&&_0x1c2c87['text'])_0x24d46c[_0x36b97b(0x195)](_0x1c2c87[_0x36b97b(0x220)]);else _0x1c2c87['type']===_0x36b97b(0x1fb)&&_0x1c2c87['thinking']&&_0x575f76&&_0x24d46c[_0x36b97b(0x195)]('💭\x20**思考过程**\x0a```\x0a'+_0x1c2c87[_0x36b97b(0x1fb)]+_0x36b97b(0x1fc));}if(_0x24d46c[_0x36b97b(0x238)]>0x0)return{'type':_0x36b97b(0x243),'content':_0x24d46c['join']('\x0a')};}else{if(_0x4ec3e9[_0x36b97b(0x1a2)])return{'type':_0x36b97b(0x243),'content':typeof _0x4ec3e9[_0x36b97b(0x1a2)]===_0x36b97b(0x1dd)?_0x4ec3e9[_0x36b97b(0x1a2)]:JSON[_0x36b97b(0x1fd)](_0x4ec3e9[_0x36b97b(0x1a2)])};}return{'type':'assistant'};}if(_0x4ec3e9['type']===_0x36b97b(0x1c0)){const _0x4322e8=_0x4ec3e9[_0x36b97b(0x1c0)]||'';return{'type':_0x36b97b(0x1c0),'content':typeof _0x4322e8===_0x36b97b(0x1dd)?_0x4322e8:JSON[_0x36b97b(0x1fd)](_0x4322e8)};}return{'type':_0x4ec3e9[_0x36b97b(0x1e3)]||_0x36b97b(0x1ea)};}catch{return{'type':_0x36b97b(0x220),'content':_0x3ebcc5};}}function interruptClaudeProcess(_0x1ead55,_0x5c2a2e){const _0x5ae6b1=a3_0x345326;if(!_0x1ead55[_0x5ae6b1(0x1ac)])return![];return console[_0x5ae6b1(0x24c)]('['+(0x0,session_1['timestamp'])()+']\x20'+_0x5c2a2e),_0x1ead55['interrupted']=!![],_0x1ead55['currentProcess'][_0x5ae6b1(0x237)](_0x5ae6b1(0x244)),!![];}function runClaudeOnce(_0x378a41,_0x2510b4,_0x1c167d,_0x18cb36,_0x32c02b,_0x269d06,_0x88ab18){const _0x2fbd32=a3_0x345326;let _0x3479e3=_0x378a41['getSessionDir'](_0x2510b4),_0x51b155=_0x3479e3+_0x2fbd32(0x1c7);!fs_1['default'][_0x2fbd32(0x240)](_0x3479e3)&&fs_1[_0x2fbd32(0x192)][_0x2fbd32(0x241)](_0x3479e3,{'recursive':!![]});const _0x1348ed=Date[_0x2fbd32(0x1e8)]();return new Promise((_0x324bf1,_0x1648ce)=>{const _0x58ebf7=_0x2fbd32,_0x52ceec=(0x0,child_process_1[_0x58ebf7(0x21d)])(_0x18cb36,_0x1c167d,{'cwd':_0x32c02b,'stdio':[_0x58ebf7(0x229),_0x58ebf7(0x229),_0x58ebf7(0x229)]}),_0x1760bb=_0x378a41[_0x58ebf7(0x1be)][_0x58ebf7(0x231)](_0x2510b4[_0x58ebf7(0x1ce)]);_0x1760bb&&(_0x1760bb['currentProcess']=_0x52ceec);fs_1[_0x58ebf7(0x192)][_0x58ebf7(0x1c1)](_0x51b155,'['+(0x0,session_1[_0x58ebf7(0x215)])()+_0x58ebf7(0x1e9)+(_0x88ab18?_0x58ebf7(0x20a):'')+'\x0a',_0x58ebf7(0x1f7)),_0x52ceec['stdin']?.['write'](_0x269d06+'\x0a'),_0x52ceec[_0x58ebf7(0x210)]?.[_0x58ebf7(0x1dc)]();let _0xd175dc=!_0x88ab18&&!!_0x2510b4[_0x58ebf7(0x1b3)],_0x48ba47=[],_0x30a47c='',_0x3ecf94='',_0x36cefd=![];const _0x27b504=new Set(),_0x53cd3a=readline_1[_0x58ebf7(0x192)][_0x58ebf7(0x223)]({'input':_0x52ceec[_0x58ebf7(0x20e)]});_0x53cd3a['on'](_0x58ebf7(0x19e),_0x59abcf=>{const _0x4ccbf5=_0x58ebf7;_0x3ecf94+=_0x59abcf+'\x0a',_0x378a41['debugLog']('Claude\x20stdout:\x20'+_0x59abcf[_0x4ccbf5(0x201)](0x0,0xc8)+(_0x59abcf[_0x4ccbf5(0x238)]>0xc8?_0x4ccbf5(0x206):''));if(_0x378a41[_0x4ccbf5(0x1f5)][_0x4ccbf5(0x219)])try{fs_1[_0x4ccbf5(0x192)][_0x4ccbf5(0x1c1)](_0x51b155,'['+(0x0,session_1[_0x4ccbf5(0x215)])()+_0x4ccbf5(0x20d)+_0x59abcf+'\x0a',_0x4ccbf5(0x1f7));}catch{}const _0x5168ea=parseClaudeStreamLine(_0x59abcf,_0x378a41[_0x4ccbf5(0x1f5)][_0x4ccbf5(0x250)]??![]);if(_0x5168ea){_0x5168ea[_0x4ccbf5(0x1e3)]===_0x4ccbf5(0x211)&&_0x5168ea[_0x4ccbf5(0x227)]&&!_0xd175dc&&(_0x378a41[_0x4ccbf5(0x20b)](_0x2510b4,{'claudeSessionId':_0x5168ea[_0x4ccbf5(0x227)]}),_0xd175dc=!![],_0x3479e3=_0x378a41[_0x4ccbf5(0x24d)](_0x2510b4),_0x51b155=_0x3479e3+_0x4ccbf5(0x1c7));if(_0x5168ea[_0x4ccbf5(0x1e3)]===_0x4ccbf5(0x243)){try{const _0xa3beb1=JSON[_0x4ccbf5(0x23f)](_0x59abcf),_0x32a6d3=_0xa3beb1?.['message']?.[_0x4ccbf5(0x1a2)];if(Array[_0x4ccbf5(0x214)](_0x32a6d3))for(const _0x184693 of _0x32a6d3){if(_0x184693[_0x4ccbf5(0x1e3)]===_0x4ccbf5(0x1ab)&&_0x184693['id']&&!_0x27b504[_0x4ccbf5(0x21a)](_0x184693['id'])){_0x27b504[_0x4ccbf5(0x204)](_0x184693['id']);const _0x3c2864=_0x184693['name']||_0x4ccbf5(0x1ea);let _0x292595='';if(_0x184693['input']){if(_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x21c)])_0x292595=_0x184693[_0x4ccbf5(0x23d)]['command'][_0x4ccbf5(0x201)](0x0,0xc8);else{if(_0x184693[_0x4ccbf5(0x23d)]['file_path'])_0x292595=_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x18d)];else{if(_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x191)])_0x292595=_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x191)];else{if(_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x1d4)])_0x292595=_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x1d4)];else{if(_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x1a6)])_0x292595=_0x184693['input'][_0x4ccbf5(0x1a6)];else{if(_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x235)])_0x292595=_0x184693[_0x4ccbf5(0x23d)][_0x4ccbf5(0x235)]['substring'](0x0,0xc8);else _0x292595=JSON[_0x4ccbf5(0x1fd)](_0x184693[_0x4ccbf5(0x23d)])[_0x4ccbf5(0x201)](0x0,0xc8);}}}}}}_0x378a41[_0x4ccbf5(0x22b)](_0x3479e3,_0x4ccbf5(0x1f9),''+_0x3c2864+(_0x292595?':\x20'+_0x292595:''));}}}catch{}_0x5168ea[_0x4ccbf5(0x1a2)]&&_0x48ba47['push'](_0x5168ea[_0x4ccbf5(0x1a2)]);}if(_0x5168ea['type']===_0x4ccbf5(0x1c0)){const _0x249d0b=_0x378a41[_0x4ccbf5(0x1f5)][_0x4ccbf5(0x21f)]??!![],_0x273c87=(_0x5168ea[_0x4ccbf5(0x1a2)]||'')[_0x4ccbf5(0x19a)](),_0x20303e=_0x48ba47['join']('\x0a')[_0x4ccbf5(0x19a)](),_0x418a17=_0x249d0b?_0x273c87||_0x20303e:_0x20303e;if(_0x418a17){try{_0x378a41[_0x4ccbf5(0x22b)](_0x3479e3,_0x4ccbf5(0x243),_0x418a17);}catch{}const _0x17acea=_0x378a41[_0x4ccbf5(0x1be)]['get'](_0x2510b4[_0x4ccbf5(0x1ce)]),_0x591742=_0x17acea?.['lastSenderStaffId']||_0x2510b4[_0x4ccbf5(0x22e)];_0x36cefd=!![],(0x0,messaging_1[_0x4ccbf5(0x1f3)])(_0x378a41,(0x0,session_1[_0x4ccbf5(0x239)])(_0x2510b4),(0x0,session_1[_0x4ccbf5(0x1d8)])(_0x2510b4),_0x591742,_0x418a17)[_0x4ccbf5(0x1e0)](_0x29cc9c=>console['error'](_0x4ccbf5(0x22f),_0x29cc9c));}else console[_0x4ccbf5(0x205)]('['+(0x0,session_1[_0x4ccbf5(0x215)])()+_0x4ccbf5(0x1df));_0x48ba47=[];}}}),_0x52ceec[_0x58ebf7(0x20f)]?.['on'](_0x58ebf7(0x225),_0x2902fa=>{const _0x51bc59=_0x58ebf7,_0xe6e4fd=_0x2902fa[_0x51bc59(0x1b7)]();_0x30a47c+=_0xe6e4fd;if((0x0,api_key_manager_1['isQuotaExhaustedError'])(_0xe6e4fd)){console['log']('['+(0x0,session_1[_0x51bc59(0x215)])()+_0x51bc59(0x1e4)+_0xe6e4fd[_0x51bc59(0x19a)]());try{fs_1[_0x51bc59(0x192)][_0x51bc59(0x1c1)](_0x51b155,'['+(0x0,session_1[_0x51bc59(0x215)])()+_0x51bc59(0x242)+_0xe6e4fd,'utf-8');}catch{}}else{if(isRetryableApiError(_0xe6e4fd)){console[_0x51bc59(0x24c)]('['+(0x0,session_1['timestamp'])()+_0x51bc59(0x1db)+_0xe6e4fd[_0x51bc59(0x19a)]());try{fs_1[_0x51bc59(0x192)][_0x51bc59(0x1c1)](_0x51b155,'['+(0x0,session_1['timestamp'])()+_0x51bc59(0x242)+_0xe6e4fd,_0x51bc59(0x1f7));}catch{}}else{console[_0x51bc59(0x1f0)](_0x51bc59(0x1da)+_0xe6e4fd);try{fs_1[_0x51bc59(0x192)]['appendFileSync'](_0x51b155,'['+(0x0,session_1[_0x51bc59(0x215)])()+_0x51bc59(0x1b8)+_0xe6e4fd,_0x51bc59(0x1f7));}catch{}}}}),_0x52ceec['on'](_0x58ebf7(0x1ca),_0x80c8bf=>{const _0x101944=_0x58ebf7;console[_0x101944(0x24c)]('['+(0x0,session_1[_0x101944(0x215)])()+_0x101944(0x197)+_0x80c8bf);try{fs_1['default'][_0x101944(0x1c1)](_0x51b155,'['+(0x0,session_1[_0x101944(0x215)])()+_0x101944(0x21b)+_0x80c8bf+'\x0a',_0x101944(0x1f7));}catch{}const _0x5619e2=_0x378a41[_0x101944(0x1be)][_0x101944(0x231)](_0x2510b4['conversationId']);_0x5619e2&&(_0x5619e2[_0x101944(0x1ac)]=undefined);if(_0x48ba47[_0x101944(0x238)]>0x0){const _0x498e38=_0x48ba47[_0x101944(0x1c4)]('\x0a')['trim']();if(_0x498e38){try{_0x378a41[_0x101944(0x22b)](_0x3479e3,'assistant',_0x498e38);}catch{}const _0x5f06ab=_0x5619e2?.[_0x101944(0x234)]||_0x2510b4[_0x101944(0x22e)];_0x36cefd=!![],(0x0,messaging_1[_0x101944(0x1f3)])(_0x378a41,(0x0,session_1['getReplyConversationId'])(_0x2510b4),(0x0,session_1['getReplyWebhook'])(_0x2510b4),_0x5f06ab,_0x498e38)['catch'](_0x3d4716=>console['error'](_0x101944(0x22f),_0x3d4716));}}if(_0x80c8bf===0x0&&!_0x36cefd&&!_0x5619e2?.['interrupted']){console[_0x101944(0x205)]('['+(0x0,session_1[_0x101944(0x215)])()+']\x20Claude\x20进程正常退出但未产生任何回复内容');try{fs_1[_0x101944(0x192)][_0x101944(0x1c1)](_0x51b155,'['+(0x0,session_1[_0x101944(0x215)])()+_0x101944(0x198),_0x101944(0x1f7));}catch{}const _0x21b31e=_0x5619e2?.[_0x101944(0x234)]||_0x2510b4[_0x101944(0x22e)];(0x0,messaging_1[_0x101944(0x1aa)])(_0x378a41,{'conversationId':(0x0,session_1[_0x101944(0x239)])(_0x2510b4),'sessionWebhook':(0x0,session_1[_0x101944(0x1d8)])(_0x2510b4),'atUserId':_0x21b31e,'content':_0x101944(0x1c3)})['catch'](_0x4fc2eb=>console[_0x101944(0x1f0)](_0x101944(0x22f),_0x4fc2eb));}if(_0x80c8bf===0x0){_0x324bf1(0x0);return;}if(_0x5619e2?.['interrupted']){console['log']('['+(0x0,session_1[_0x101944(0x215)])()+_0x101944(0x19d)),_0x5619e2[_0x101944(0x1f2)]=![],_0x324bf1(0x0);return;}const _0x2e64fe=_0x30a47c+'\x0a'+_0x3ecf94;if((0x0,api_key_manager_1[_0x101944(0x1af)])(_0x2e64fe)){const _0xa05ac0=Date[_0x101944(0x1e8)]()-_0x1348ed,_0x213ce6=_0xa05ac0<FAST_FAIL_THRESHOLD_MS;console[_0x101944(0x24c)]('['+(0x0,session_1['timestamp'])()+_0x101944(0x1ec)+(0x0,api_key_manager_1[_0x101944(0x1af)])(_0x3ecf94)+',\x20stderr匹配='+(0x0,api_key_manager_1[_0x101944(0x1af)])(_0x30a47c)),_0x1648ce(new RetryableApiError(_0x213ce6,_0x2e64fe));return;}if((0x0,api_key_manager_1[_0x101944(0x196)])(_0x2e64fe)){console['log']('['+(0x0,session_1[_0x101944(0x215)])()+_0x101944(0x224));const _0x4f6d4f=_0x5619e2?.['lastSenderStaffId']||_0x2510b4[_0x101944(0x22e)];(0x0,messaging_1[_0x101944(0x1aa)])(_0x378a41,{'conversationId':(0x0,session_1[_0x101944(0x239)])(_0x2510b4),'sessionWebhook':(0x0,session_1[_0x101944(0x1d8)])(_0x2510b4),'atUserId':_0x4f6d4f,'content':_0x101944(0x1c6)})['catch'](_0x359767=>console['error'](_0x101944(0x22f),_0x359767)),_0x324bf1(_0x80c8bf??0x1);return;}if(isRetryableApiError(_0x2e64fe)){const _0xd03aee=Date[_0x101944(0x1e8)]()-_0x1348ed,_0x20225f=_0xd03aee<FAST_FAIL_THRESHOLD_MS;_0x1648ce(new RetryableApiError(_0x20225f,_0x2e64fe));return;}if(isPermissionError(_0x2e64fe)){console[_0x101944(0x24c)]('['+(0x0,session_1[_0x101944(0x215)])()+']\x20检测到需要授权,通知用户');const _0x3a0439=_0x5619e2?.[_0x101944(0x234)]||_0x2510b4['startStaffId'];(0x0,messaging_1['sendDingMessage'])(_0x378a41,{'conversationId':(0x0,session_1['getReplyConversationId'])(_0x2510b4),'sessionWebhook':(0x0,session_1[_0x101944(0x1d8)])(_0x2510b4),'atUserId':_0x3a0439,'content':_0x101944(0x1a3)})['catch'](_0x1cd969=>console[_0x101944(0x1f0)]('发送钉钉消息失败:',_0x1cd969)),_0x324bf1(_0x80c8bf??0x1);return;}if(_0x2510b4[_0x101944(0x1b3)]&&isConversationNotFoundError(_0x2e64fe)){console[_0x101944(0x24c)]('['+(0x0,session_1[_0x101944(0x215)])()+_0x101944(0x1f6)+_0x2510b4[_0x101944(0x1b3)]+',通知外层重新发起新会话'),_0x1648ce(new ConversationNotFoundError());return;}_0x1648ce(new Error(_0x101944(0x1a0)+_0x80c8bf));}),_0x52ceec['on'](_0x58ebf7(0x1f0),_0x3c4138=>{const _0x13b2c9=_0x58ebf7;console[_0x13b2c9(0x1f0)](_0x13b2c9(0x1c9),_0x3c4138),fs_1[_0x13b2c9(0x192)][_0x13b2c9(0x1c1)](_0x51b155,'['+(0x0,session_1[_0x13b2c9(0x215)])()+_0x13b2c9(0x245)+_0x3c4138[_0x13b2c9(0x23c)]+'\x0a',_0x13b2c9(0x1f7)),_0x1648ce(_0x3c4138);});});}async function executeClaudeQuery(_0x566a51,_0xa590fe,_0x2db4c6,_0x392bf0){const _0x559b27=a3_0x345326,{skill:_0x170535,agent:_0x3111a6,senderNick:_0x966569,senderStaffId:_0x18cd5b}=_0x392bf0||{};let _0x1c46cc=_0x566a51[_0x559b27(0x24d)](_0xa590fe),_0x143350=_0x1c46cc+_0x559b27(0x1c7);const _0x459f4d=_0x566a51[_0x559b27(0x1b4)](_0xa590fe[_0x559b27(0x1ce)]);fs_1['default'][_0x559b27(0x241)](_0x1c46cc,{'recursive':!![]});let _0x5b0a09=null;const _0x107e95=(0x0,api_key_manager_1[_0x559b27(0x1de)])(_0x459f4d);_0x107e95&&_0x566a51[_0x559b27(0x1f5)][_0x559b27(0x1ed)]&&(_0x5b0a09=_0x566a51[_0x559b27(0x1f5)]['apiKeyCfg'][_0x559b27(0x19f)][_0x559b27(0x24e)](_0x1ff538=>_0x1ff538[_0x559b27(0x1d5)]===_0x107e95&&_0x1ff538['isValid'])||null,_0x5b0a09&&console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x1cf)+(0x0,api_key_manager_1[_0x559b27(0x212)])(_0x5b0a09)));const _0xe7b72a=(0x0,api_key_manager_1[_0x559b27(0x1d6)])(_0x459f4d);if(!_0xe7b72a&&_0x566a51['config'][_0x559b27(0x1ed)]){_0x5b0a09=(0x0,api_key_manager_1[_0x559b27(0x1d7)])(_0x566a51);if(!_0x5b0a09){const _0x26e7e3=_0x18cd5b||_0xa590fe[_0x559b27(0x22e)];await(0x0,messaging_1[_0x559b27(0x1aa)])(_0x566a51,{'conversationId':(0x0,session_1[_0x559b27(0x239)])(_0xa590fe),'sessionWebhook':(0x0,session_1['getReplyWebhook'])(_0xa590fe),'atUserId':_0x26e7e3,'content':_0x559b27(0x1cc)});return;}}const _0x393b8b=_0x966569&&_0x18cd5b?_0x966569+'('+_0x18cd5b+')':_0x559b27(0x1ea),_0x277751=_0x2db4c6+_0x559b27(0x1e6)+_0x393b8b;_0x566a51[_0x559b27(0x22b)](_0x1c46cc,_0x559b27(0x1bb),_0x277751);const _0x1d7123=_0x559b27(0x1b0),_0x268d18=[_0x559b27(0x24a),_0x559b27(0x1ef),'--print',_0x559b27(0x213),_0x559b27(0x1cd),_0x559b27(0x1ae)];_0x3111a6&&_0x268d18[_0x559b27(0x195)](_0x559b27(0x1d0),_0x3111a6);const _0x59246b=_0x170535?'/'+_0x170535+'\x20'+_0x277751:_0x277751;let _0x26d34a=0x0;while(!![]){const _0x5d8ec3=_0x26d34a>0x0,_0x286c19=[..._0x268d18];_0xa590fe[_0x559b27(0x1b3)]&&(_0x286c19[_0x559b27(0x195)](_0x559b27(0x1b9),_0xa590fe[_0x559b27(0x1b3)]),!_0x5d8ec3&&console['log']('['+(0x0,session_1['timestamp'])()+_0x559b27(0x1a9)+_0xa590fe[_0x559b27(0x1b3)]));const _0x2b676b=resolveClaudeSettingsPath(_0x566a51,_0x459f4d,_0x392bf0?.['settings']);_0x2b676b&&_0x286c19[_0x559b27(0x195)](_0x559b27(0x18f),_0x2b676b);let _0x230f62;_0x5d8ec3?(_0x230f62='继续',console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+']\x20发送\x22继续\x22重试\x20(快速失败连续'+_0x26d34a+'/'+MAX_FAST_FAIL+'次)'),fs_1[_0x559b27(0x192)][_0x559b27(0x1c1)](_0x143350,'['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x208)+_0x26d34a+'/'+MAX_FAST_FAIL+')\x0a',_0x559b27(0x1f7))):_0x230f62=_0x59246b;console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x22a)+_0x1d7123+'\x20'+_0x286c19[_0x559b27(0x1c4)]('\x20')),_0x566a51[_0x559b27(0x222)](_0x559b27(0x236)+_0x230f62[_0x559b27(0x201)](0x0,0x64)+_0x559b27(0x206));try{await runClaudeOnce(_0x566a51,_0xa590fe,_0x286c19,_0x1d7123,_0x459f4d,_0x230f62,_0x5d8ec3);return;}catch(_0x4ce0db){_0x1c46cc=_0x566a51[_0x559b27(0x24d)](_0xa590fe),_0x143350=_0x1c46cc+_0x559b27(0x1c7);if(_0x4ce0db instanceof RetryableApiError){if((0x0,api_key_manager_1[_0x559b27(0x1af)])(_0x4ce0db[_0x559b27(0x1ba)])&&_0x566a51['config']['apiKeyCfg']){if(_0x5b0a09){const _0x3d18d8=(0x0,api_key_manager_1[_0x559b27(0x1e7)])(_0x566a51,_0x5b0a09[_0x559b27(0x1d5)]);if(_0x3d18d8){_0x5b0a09=_0x3d18d8,_0x26d34a=0x0,console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x559b27(0x212)])(_0x3d18d8)),fs_1[_0x559b27(0x192)][_0x559b27(0x1c1)](_0x143350,'['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x1ee),_0x559b27(0x1f7));continue;}}const _0x28130e=_0x18cd5b||_0xa590fe[_0x559b27(0x22e)];await(0x0,messaging_1[_0x559b27(0x1aa)])(_0x566a51,{'conversationId':(0x0,session_1[_0x559b27(0x239)])(_0xa590fe),'sessionWebhook':(0x0,session_1['getReplyWebhook'])(_0xa590fe),'atUserId':_0x28130e,'content':'⚠️\x20当前无可用配额/API\x20Key,请明天再试或联系管理员'});return;}if(_0x4ce0db[_0x559b27(0x1c5)]){_0x26d34a++;if(_0x26d34a>=MAX_FAST_FAIL){if(_0x5b0a09&&_0x566a51[_0x559b27(0x1f5)][_0x559b27(0x1ed)]){const _0x36f798=(0x0,api_key_manager_1[_0x559b27(0x1e7)])(_0x566a51,_0x5b0a09[_0x559b27(0x1d5)]);if(_0x36f798){_0x5b0a09=_0x36f798,_0x26d34a=0x0,console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x1f4)+MAX_FAST_FAIL+'\x20次,切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x559b27(0x212)])(_0x36f798)),fs_1['default'][_0x559b27(0x1c1)](_0x143350,'['+(0x0,session_1['timestamp'])()+_0x559b27(0x232),_0x559b27(0x1f7));continue;}}console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x246)+MAX_FAST_FAIL+_0x559b27(0x24f)),fs_1[_0x559b27(0x192)][_0x559b27(0x1c1)](_0x143350,'['+(0x0,session_1['timestamp'])()+_0x559b27(0x18e)+MAX_FAST_FAIL+'次,放弃\x0a',_0x559b27(0x1f7));throw new Error(_0x559b27(0x1e5)+MAX_FAST_FAIL+'\x20次');}console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+']\x20检测到\x20TPM\x20限流(快速失败),'+API_RETRY_DELAY_MS/0x3e8+_0x559b27(0x1d9)+_0x26d34a+'/'+MAX_FAST_FAIL+')');}else _0x26d34a=0x0,console[_0x559b27(0x24c)]('['+(0x0,session_1[_0x559b27(0x215)])()+']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,'+API_RETRY_DELAY_MS/0x3e8+_0x559b27(0x1ad));fs_1[_0x559b27(0x192)]['appendFileSync'](_0x143350,'['+(0x0,session_1['timestamp'])()+']\x20[SYSTEM]:\x20TPM\x20限流,'+API_RETRY_DELAY_MS/0x3e8+_0x559b27(0x19c),_0x559b27(0x1f7)),await sleep(API_RETRY_DELAY_MS);continue;}if(_0x4ce0db instanceof ConversationNotFoundError){console['log']('['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x1a5)),fs_1[_0x559b27(0x192)][_0x559b27(0x1c1)](_0x143350,'['+(0x0,session_1[_0x559b27(0x215)])()+_0x559b27(0x1d2),_0x559b27(0x1f7));_0xa590fe[_0x559b27(0x1b3)]&&(_0xa590fe[_0x559b27(0x1b3)]=undefined,_0x566a51[_0x559b27(0x20b)](_0xa590fe,{}));_0x26d34a=0x0;continue;}throw _0x4ce0db;}}}
1
+ 'use strict';const a3_0x296b7e=a3_0x4d0a;(function(_0x51455f,_0x524c0f){const _0x135bf4=a3_0x4d0a,_0x5322c5=_0x51455f();while(!![]){try{const _0x512d8e=parseInt(_0x135bf4(0x1ab))/0x1+-parseInt(_0x135bf4(0x1b9))/0x2*(parseInt(_0x135bf4(0x19e))/0x3)+-parseInt(_0x135bf4(0x182))/0x4+-parseInt(_0x135bf4(0x1ae))/0x5*(parseInt(_0x135bf4(0x195))/0x6)+-parseInt(_0x135bf4(0x112))/0x7+parseInt(_0x135bf4(0x187))/0x8*(parseInt(_0x135bf4(0x172))/0x9)+parseInt(_0x135bf4(0x1a5))/0xa*(parseInt(_0x135bf4(0x1bc))/0xb);if(_0x512d8e===_0x524c0f)break;else _0x5322c5['push'](_0x5322c5['shift']());}catch(_0x209236){_0x5322c5['push'](_0x5322c5['shift']());}}}(a3_0x3a88,0xc105b));var __importDefault=this&&this['__importDefault']||function(_0x23e370){return _0x23e370&&_0x23e370['__esModule']?_0x23e370:{'default':_0x23e370};};Object['defineProperty'](exports,a3_0x296b7e(0x141),{'value':!![]}),exports['resolveClaudeSettingsPath']=resolveClaudeSettingsPath,exports['isRetryableApiError']=isRetryableApiError,exports[a3_0x296b7e(0x19b)]=parseClaudeStreamLine,exports[a3_0x296b7e(0x12d)]=interruptClaudeProcess,exports['executeClaudeQuery']=executeClaudeQuery;const fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path')),readline_1=__importDefault(require(a3_0x296b7e(0x1af))),child_process_1=require('child_process'),messaging_1=require(a3_0x296b7e(0x163)),session_1=require('./session'),api_key_manager_1=require(a3_0x296b7e(0x128)),MAX_FAST_FAIL=0x14,API_RETRY_DELAY_MS=0x2710,FAST_FAIL_THRESHOLD_MS=0x2710;function resolveClaudeSettingsPath(_0x548b3f,_0x9babb6,_0x16dca6){const _0x5767e7=a3_0x296b7e,_0x53a933=(0x0,api_key_manager_1[_0x5767e7(0x171)])(_0x9babb6);if(_0x53a933)return _0x53a933;if(_0x548b3f[_0x5767e7(0x119)][_0x5767e7(0x133)]){const _0x4eaa0e=(0x0,api_key_manager_1['readApiKeyFromSettings'])(_0x9babb6);let _0x5a410c=null;_0x4eaa0e&&(_0x5a410c=_0x548b3f[_0x5767e7(0x119)][_0x5767e7(0x133)][_0x5767e7(0x18a)][_0x5767e7(0x1b1)](_0x5572d2=>_0x5572d2[_0x5767e7(0x1b2)]===_0x4eaa0e&&_0x5572d2['isValid'])||null);!_0x5a410c&&(_0x5a410c=(0x0,api_key_manager_1['pickValidApiKey'])(_0x548b3f));if(_0x5a410c)return(0x0,api_key_manager_1['ensureSettingsWithApiKey'])(_0x9babb6,_0x5a410c);}if(_0x548b3f[_0x5767e7(0x119)][_0x5767e7(0x133)])return undefined;if(_0x16dca6)return _0x16dca6;const _0x1fbb1f=path_1['default'][_0x5767e7(0x130)](_0x9babb6,_0x5767e7(0x199),_0x5767e7(0x1b5));if(fs_1[_0x5767e7(0x16f)][_0x5767e7(0x115)](_0x1fbb1f))return console['log']('['+(0x0,session_1[_0x5767e7(0x138)])()+_0x5767e7(0x12a)+_0x1fbb1f),_0x1fbb1f;return undefined;}function a3_0x3a88(){const _0x22a13e=['lastSenderStaffId','content','output','.claude','subtype','parseClaudeStreamLine','SIGINT','command','3KXxRmD','push','input',']\x20[SYSTEM]:\x20TPM\x20限流,','\x20(重试)','settingLabel','权限不足','10VmnJoe','description','getSessionDir','system','user','trim','1292839zwGtFq','permission_required','Claude\x20进程退出,代码:\x20','281330rpizKY','readline','toString','find','apiKey','--verbose','init','settings.json','requests\x20per\x20minute','catch','isFastFail','1283038TSaWdX','Claude\x20stdout:\x20','需要授权','14930949dGjxxV','isAuthenticationError','3459197XcMHhP','some','--resume','existsSync','--permission-mode',']\x20用户主动中断,忽略错误',']\x20检测到认证错误(401),通知用户','config','claudeSessionId','/session.log','rotateApiKey','session_id',']\x20[ERROR]:\x20','currentProcess','now',']\x20执行\x20Claude\x20查询[原生claude\x20模式]:\x20','overloaded','stringify','log','没有权限',']\x20TPM\x20限流连续快速失败\x20','prompt','./api-key-manager','TPM\x20限流,快速失败连续\x20',']\x20自动检测到\x20settings.json:\x20','stdout','not\x20authorized','interruptClaudeProcess','utf-8','conversationId','join','authorize','warn','apiKeyCfg','assistant',']\x20检测到\x20TPM\x20限流(快速失败),','thinking','tokens\x20per\x20minute','timestamp',']\x20Claude\x20返回了空的\x20result\x20且\x20responseBuffer\x20也为空,无内容可发送','error','length','tool_use',']\x20[SYSTEM]:\x20Claude\x20查询启动',']\x20TPM\x20限流快速失败连续','claude','includes','__esModule','requires\x20permission','spawn','getReplyWebhook',']\x20[SYSTEM]:\x20Claude\x20会话已失效,清除旧会话并重新发起\x0a',']\x20发送\x22继续\x22重试\x20(快速失败连续','kill','appendSessionLog','activeSessions','settings','close','tool','too\x20many\x20requests','result','toLowerCase','stderr','getConversationDir','permission\x20denied','\x0a```','发送钉钉消息失败:',']\x20Claude\x20进程退出,代码:\x20','write','readApiKeyFromSettings','message','parse',']\x20[WARN]:\x20','capacity','--agent','type','appendFileSync','rpm\x20limit','mkdirSync','has','RetryableApiError','./messaging','⚠️\x20Claude\x20需要授权,请人工介入',']\x20Claude\x20会话已失效:\x20','data','ratelimit','line','text','isArray','file_path',']\x20检测到需要授权,通知用户','sendClaudeResponseToDing','Claude\x20进程错误:','default','createInterface','getForceEnabledSettingsPath','9FMFBao','⚠️\x20认证失败(401),API\x20Key\x20无效或服务未授权,请检查配置','ConversationNotFoundError','--output-format','includeThinking','发送消息:\x20','debugLog','stream-json','pipe','s\x20后重试\x0a','...',']\x20[SYSTEM]:\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key\x0a','bypassPermissions','test','query','Retryable\x20API\x20error\x20(TPM\x20limit\x20etc.)','24984FYUJMN','⚠️\x20Claude\x20处理完成但未返回任何内容,请重试或换种方式提问','isQuotaExhaustedError','sessionId','interrupted','1460904zXUROV','startStaffId','getReplyConversationId','claudeSettings','pattern','add','access\x20denied','get','substring','unknown','needs\x20permission','sendDingMessage',']\x20从\x20settings-ding.json\x20恢复\x20Claude\x20Setting:\x20',']\x20Claude\x20进程正常退出但未产生任何回复内容','96MApDuz'];a3_0x3a88=function(){return _0x22a13e;};return a3_0x3a88();}function a3_0x4d0a(_0x2bb193,_0x578fe2){_0x2bb193=_0x2bb193-0x111;const _0x3a8877=a3_0x3a88();let _0x4d0a0e=_0x3a8877[_0x2bb193];return _0x4d0a0e;}function isRetryableApiError(_0x1be766){const _0xb89e94=a3_0x296b7e;if(/\b429\b/[_0xb89e94(0x17f)](_0x1be766)&&!(0x0,api_key_manager_1[_0xb89e94(0x184)])(_0x1be766))return!![];if(/API\s*Error.*422/i['test'](_0x1be766))return!![];if(/\b422\b.*(?:TPM|额度超限|rate\s*limit|tokens?\s*per\s*minute)/i['test'](_0x1be766))return!![];if(/(?:TPM|额度超限).*\b422\b/i['test'](_0x1be766))return!![];const _0x11f469=_0x1be766['toLowerCase'](),_0x34b850=['rate\x20limit','rate_limit',_0xb89e94(0x167),_0xb89e94(0x14d),_0xb89e94(0x137),_0xb89e94(0x1b6),_0xb89e94(0x15f),_0xb89e94(0x122),_0xb89e94(0x15b),'temporarily\x20unavailable'];return _0x34b850['some'](_0x27c5cd=>_0x11f469[_0xb89e94(0x140)](_0x27c5cd));}function sleep(_0x32adb5){return new Promise(_0x2b79a7=>setTimeout(_0x2b79a7,_0x32adb5));}class RetryableApiError extends Error{constructor(_0x4b72ec,_0x2b9749=''){const _0x594ac1=a3_0x296b7e;super(_0x594ac1(0x181)+(_0x4b72ec?'\x20[fast\x20fail]':'')),this['name']=_0x594ac1(0x162),this['isFastFail']=_0x4b72ec,this[_0x594ac1(0x198)]=_0x2b9749;}}class ConversationNotFoundError extends Error{constructor(){const _0x48e856=a3_0x296b7e;super('Claude\x20conversation\x20not\x20found'),this['name']=_0x48e856(0x174);}}function isPermissionError(_0x56e3ae){const _0x2b9204=a3_0x296b7e,_0x13849b=_0x56e3ae[_0x2b9204(0x14f)](),_0x49b9b0=[_0x2b9204(0x152),_0x2b9204(0x1ac),_0x2b9204(0x191),_0x2b9204(0x142),'authorization\x20required',_0x2b9204(0x131),_0x2b9204(0x12c),_0x2b9204(0x18d),_0x2b9204(0x1bb),_0x2b9204(0x1a4),_0x2b9204(0x125)];return _0x49b9b0[_0x2b9204(0x113)](_0x507657=>_0x13849b[_0x2b9204(0x140)](_0x507657));}function isConversationNotFoundError(_0x5eeb23){const _0x59bb51=a3_0x296b7e;return/no conversation found with session id/i[_0x59bb51(0x17f)](_0x5eeb23);}function parseClaudeStreamLine(_0x2e4617,_0x45a4a0=![]){const _0x211b40=a3_0x296b7e;if(!_0x2e4617[_0x211b40(0x1aa)]())return null;try{const _0x29e78d=JSON[_0x211b40(0x159)](_0x2e4617);if(_0x29e78d[_0x211b40(0x15d)]==='system'&&_0x29e78d[_0x211b40(0x19a)]===_0x211b40(0x1b4)&&_0x29e78d[_0x211b40(0x11d)])return{'type':_0x211b40(0x1a8),'sessionId':_0x29e78d[_0x211b40(0x11d)]};if(_0x29e78d[_0x211b40(0x15d)]===_0x211b40(0x134)){const _0xac971a=_0x29e78d[_0x211b40(0x158)]?.['content'];if(Array['isArray'](_0xac971a)){const _0x1c0027=[];for(const _0x47137e of _0xac971a){if(_0x47137e[_0x211b40(0x15d)]==='text'&&_0x47137e['text'])_0x1c0027[_0x211b40(0x19f)](_0x47137e[_0x211b40(0x169)]);else _0x47137e[_0x211b40(0x15d)]===_0x211b40(0x136)&&_0x47137e[_0x211b40(0x136)]&&_0x45a4a0&&_0x1c0027[_0x211b40(0x19f)]('💭\x20**思考过程**\x0a```\x0a'+_0x47137e[_0x211b40(0x136)]+_0x211b40(0x153));}if(_0x1c0027[_0x211b40(0x13b)]>0x0)return{'type':_0x211b40(0x134),'content':_0x1c0027[_0x211b40(0x130)]('\x0a')};}else{if(_0x29e78d[_0x211b40(0x197)])return{'type':'assistant','content':typeof _0x29e78d[_0x211b40(0x197)]==='string'?_0x29e78d[_0x211b40(0x197)]:JSON[_0x211b40(0x123)](_0x29e78d[_0x211b40(0x197)])};}return{'type':'assistant'};}if(_0x29e78d[_0x211b40(0x15d)]==='result'){const _0x364298=_0x29e78d[_0x211b40(0x14e)]||'';return{'type':_0x211b40(0x14e),'content':typeof _0x364298==='string'?_0x364298:JSON[_0x211b40(0x123)](_0x364298)};}return{'type':_0x29e78d[_0x211b40(0x15d)]||'unknown'};}catch{return{'type':_0x211b40(0x169),'content':_0x2e4617};}}function interruptClaudeProcess(_0x413ee7,_0x34c327){const _0x3bba5e=a3_0x296b7e;if(!_0x413ee7[_0x3bba5e(0x11f)])return![];return console[_0x3bba5e(0x124)]('['+(0x0,session_1[_0x3bba5e(0x138)])()+']\x20'+_0x34c327),_0x413ee7[_0x3bba5e(0x186)]=!![],_0x413ee7[_0x3bba5e(0x11f)][_0x3bba5e(0x147)](_0x3bba5e(0x19c)),!![];}function runClaudeOnce(_0x512ffa,_0x5ecd05,_0x460e32,_0x1effd8,_0x2dd3b0,_0x10aa34,_0x40be32){const _0xac5f48=a3_0x296b7e;let _0x839b91=_0x512ffa[_0xac5f48(0x1a7)](_0x5ecd05),_0x3ddd19=_0x839b91+_0xac5f48(0x11b);!fs_1[_0xac5f48(0x16f)][_0xac5f48(0x115)](_0x839b91)&&fs_1[_0xac5f48(0x16f)][_0xac5f48(0x160)](_0x839b91,{'recursive':!![]});const _0x1ae1e5=Date[_0xac5f48(0x120)]();return new Promise((_0xb1d9aa,_0x54d565)=>{const _0x37a9b4=_0xac5f48,_0x2c4b10=(0x0,child_process_1[_0x37a9b4(0x143)])(_0x1effd8,_0x460e32,{'cwd':_0x2dd3b0,'stdio':[_0x37a9b4(0x17a),'pipe',_0x37a9b4(0x17a)]}),_0x7404f4=_0x512ffa['activeSessions'][_0x37a9b4(0x18e)](_0x5ecd05['conversationId']);_0x7404f4&&(_0x7404f4[_0x37a9b4(0x11f)]=_0x2c4b10);fs_1[_0x37a9b4(0x16f)][_0x37a9b4(0x15e)](_0x3ddd19,'['+(0x0,session_1[_0x37a9b4(0x138)])()+_0x37a9b4(0x13d)+(_0x40be32?_0x37a9b4(0x1a2):'')+'\x0a',_0x37a9b4(0x12e)),_0x2c4b10['stdin']?.[_0x37a9b4(0x156)](_0x10aa34+'\x0a'),_0x2c4b10['stdin']?.['end']();let _0x5c8626=!_0x40be32&&!!_0x5ecd05[_0x37a9b4(0x11a)],_0x48fe7f=[],_0x3f1770='',_0x4ea2f1='',_0xc54f86=![];const _0x315011=new Set(),_0x2e8dee=readline_1[_0x37a9b4(0x16f)][_0x37a9b4(0x170)]({'input':_0x2c4b10[_0x37a9b4(0x12b)]});_0x2e8dee['on'](_0x37a9b4(0x168),_0x33c97c=>{const _0xceb9d9=_0x37a9b4;_0x4ea2f1+=_0x33c97c+'\x0a',_0x512ffa[_0xceb9d9(0x178)](_0xceb9d9(0x1ba)+_0x33c97c[_0xceb9d9(0x18f)](0x0,0xc8)+(_0x33c97c[_0xceb9d9(0x13b)]>0xc8?'...':''));if(_0x512ffa['config']['debug'])try{fs_1['default'][_0xceb9d9(0x15e)](_0x3ddd19,'['+(0x0,session_1[_0xceb9d9(0x138)])()+']\x20[RAW]:\x20'+_0x33c97c+'\x0a',_0xceb9d9(0x12e));}catch{}const _0x459f24=parseClaudeStreamLine(_0x33c97c,_0x512ffa[_0xceb9d9(0x119)][_0xceb9d9(0x176)]??![]);if(_0x459f24){_0x459f24[_0xceb9d9(0x15d)]===_0xceb9d9(0x1a8)&&_0x459f24['sessionId']&&!_0x5c8626&&(_0x512ffa['updateSessionFile'](_0x5ecd05,{'claudeSessionId':_0x459f24[_0xceb9d9(0x185)]}),_0x5c8626=!![],_0x839b91=_0x512ffa[_0xceb9d9(0x1a7)](_0x5ecd05),_0x3ddd19=_0x839b91+_0xceb9d9(0x11b));if(_0x459f24[_0xceb9d9(0x15d)]===_0xceb9d9(0x134)){try{const _0x419ff8=JSON[_0xceb9d9(0x159)](_0x33c97c),_0x1b10f8=_0x419ff8?.[_0xceb9d9(0x158)]?.['content'];if(Array[_0xceb9d9(0x16a)](_0x1b10f8))for(const _0x3dd178 of _0x1b10f8){if(_0x3dd178[_0xceb9d9(0x15d)]===_0xceb9d9(0x13c)&&_0x3dd178['id']&&!_0x315011[_0xceb9d9(0x161)](_0x3dd178['id'])){_0x315011[_0xceb9d9(0x18c)](_0x3dd178['id']);const _0x2b1662=_0x3dd178['name']||_0xceb9d9(0x190);let _0xbbc96a='';if(_0x3dd178[_0xceb9d9(0x1a0)]){if(_0x3dd178[_0xceb9d9(0x1a0)][_0xceb9d9(0x19d)])_0xbbc96a=_0x3dd178[_0xceb9d9(0x1a0)][_0xceb9d9(0x19d)][_0xceb9d9(0x18f)](0x0,0xc8);else{if(_0x3dd178[_0xceb9d9(0x1a0)]['file_path'])_0xbbc96a=_0x3dd178[_0xceb9d9(0x1a0)][_0xceb9d9(0x16b)];else{if(_0x3dd178[_0xceb9d9(0x1a0)][_0xceb9d9(0x18b)])_0xbbc96a=_0x3dd178['input']['pattern'];else{if(_0x3dd178[_0xceb9d9(0x1a0)][_0xceb9d9(0x180)])_0xbbc96a=_0x3dd178[_0xceb9d9(0x1a0)]['query'];else{if(_0x3dd178[_0xceb9d9(0x1a0)][_0xceb9d9(0x1a6)])_0xbbc96a=_0x3dd178[_0xceb9d9(0x1a0)]['description'];else{if(_0x3dd178['input'][_0xceb9d9(0x127)])_0xbbc96a=_0x3dd178['input'][_0xceb9d9(0x127)][_0xceb9d9(0x18f)](0x0,0xc8);else _0xbbc96a=JSON['stringify'](_0x3dd178[_0xceb9d9(0x1a0)])[_0xceb9d9(0x18f)](0x0,0xc8);}}}}}}_0x512ffa[_0xceb9d9(0x148)](_0x839b91,_0xceb9d9(0x14c),''+_0x2b1662+(_0xbbc96a?':\x20'+_0xbbc96a:''));}}}catch{}_0x459f24[_0xceb9d9(0x197)]&&_0x48fe7f['push'](_0x459f24['content']);}if(_0x459f24[_0xceb9d9(0x15d)]===_0xceb9d9(0x14e)){const _0x2b809e=_0x512ffa[_0xceb9d9(0x119)]['resultOnly']??!![],_0x5c314f=(_0x459f24['content']||'')[_0xceb9d9(0x1aa)](),_0x4a42f7=_0x48fe7f['join']('\x0a')[_0xceb9d9(0x1aa)](),_0x38ef62=_0x2b809e?_0x5c314f||_0x4a42f7:_0x4a42f7;if(_0x38ef62){try{_0x512ffa[_0xceb9d9(0x148)](_0x839b91,'assistant',_0x38ef62);}catch{}const _0x4680d6=_0x512ffa[_0xceb9d9(0x149)][_0xceb9d9(0x18e)](_0x5ecd05[_0xceb9d9(0x12f)]),_0x11825e=_0x4680d6?.[_0xceb9d9(0x196)]||_0x5ecd05[_0xceb9d9(0x188)];_0xc54f86=!![],(0x0,messaging_1['sendClaudeResponseToDing'])(_0x512ffa,(0x0,session_1['getReplyConversationId'])(_0x5ecd05),(0x0,session_1[_0xceb9d9(0x144)])(_0x5ecd05),_0x11825e,_0x38ef62)[_0xceb9d9(0x1b7)](_0x2d875d=>console['error'](_0xceb9d9(0x154),_0x2d875d));}else console[_0xceb9d9(0x132)]('['+(0x0,session_1['timestamp'])()+_0xceb9d9(0x139));_0x48fe7f=[];}}}),_0x2c4b10[_0x37a9b4(0x150)]?.['on'](_0x37a9b4(0x166),_0x1bed29=>{const _0x12943f=_0x37a9b4,_0x56b6e8=_0x1bed29[_0x12943f(0x1b0)]();_0x3f1770+=_0x56b6e8;if((0x0,api_key_manager_1[_0x12943f(0x184)])(_0x56b6e8)){console[_0x12943f(0x124)]('['+(0x0,session_1[_0x12943f(0x138)])()+']\x20[Claude\x20stderr]\x20配额耗尽错误(429):\x20'+_0x56b6e8['trim']());try{fs_1['default'][_0x12943f(0x15e)](_0x3ddd19,'['+(0x0,session_1[_0x12943f(0x138)])()+']\x20[WARN]:\x20'+_0x56b6e8,_0x12943f(0x12e));}catch{}}else{if(isRetryableApiError(_0x56b6e8)){console[_0x12943f(0x124)]('['+(0x0,session_1['timestamp'])()+']\x20[Claude\x20stderr]\x20可重试API错误(422\x20TPM限流):\x20'+_0x56b6e8[_0x12943f(0x1aa)]());try{fs_1[_0x12943f(0x16f)][_0x12943f(0x15e)](_0x3ddd19,'['+(0x0,session_1[_0x12943f(0x138)])()+_0x12943f(0x15a)+_0x56b6e8,_0x12943f(0x12e));}catch{}}else{console[_0x12943f(0x13a)]('[Claude\x20stderr]:\x20'+_0x56b6e8);try{fs_1[_0x12943f(0x16f)][_0x12943f(0x15e)](_0x3ddd19,'['+(0x0,session_1['timestamp'])()+_0x12943f(0x11e)+_0x56b6e8,_0x12943f(0x12e));}catch{}}}}),_0x2c4b10['on'](_0x37a9b4(0x14b),_0x18c197=>{const _0x259e56=_0x37a9b4;console[_0x259e56(0x124)]('['+(0x0,session_1[_0x259e56(0x138)])()+_0x259e56(0x155)+_0x18c197);try{fs_1['default'][_0x259e56(0x15e)](_0x3ddd19,'['+(0x0,session_1['timestamp'])()+']\x20[SYSTEM]:\x20Claude\x20查询结束,退出码:\x20'+_0x18c197+'\x0a',_0x259e56(0x12e));}catch{}const _0x5703b3=_0x512ffa[_0x259e56(0x149)][_0x259e56(0x18e)](_0x5ecd05[_0x259e56(0x12f)]);_0x5703b3&&(_0x5703b3['currentProcess']=undefined);if(_0x48fe7f['length']>0x0){const _0x15f997=_0x48fe7f[_0x259e56(0x130)]('\x0a')[_0x259e56(0x1aa)]();if(_0x15f997){try{_0x512ffa['appendSessionLog'](_0x839b91,_0x259e56(0x134),_0x15f997);}catch{}const _0x559a16=_0x5703b3?.['lastSenderStaffId']||_0x5ecd05[_0x259e56(0x188)];_0xc54f86=!![],(0x0,messaging_1[_0x259e56(0x16d)])(_0x512ffa,(0x0,session_1['getReplyConversationId'])(_0x5ecd05),(0x0,session_1[_0x259e56(0x144)])(_0x5ecd05),_0x559a16,_0x15f997)[_0x259e56(0x1b7)](_0x286359=>console[_0x259e56(0x13a)](_0x259e56(0x154),_0x286359));}}if(_0x18c197===0x0&&!_0xc54f86&&!_0x5703b3?.[_0x259e56(0x186)]){console[_0x259e56(0x132)]('['+(0x0,session_1[_0x259e56(0x138)])()+_0x259e56(0x194));try{fs_1['default']['appendFileSync'](_0x3ddd19,'['+(0x0,session_1[_0x259e56(0x138)])()+']\x20[WARN]:\x20Claude\x20进程正常退出但未产生任何回复内容\x0a',_0x259e56(0x12e));}catch{}const _0x11bc3f=_0x5703b3?.[_0x259e56(0x196)]||_0x5ecd05[_0x259e56(0x188)];(0x0,messaging_1['sendDingMessage'])(_0x512ffa,{'conversationId':(0x0,session_1[_0x259e56(0x189)])(_0x5ecd05),'sessionWebhook':(0x0,session_1[_0x259e56(0x144)])(_0x5ecd05),'atUserId':_0x11bc3f,'content':_0x259e56(0x183)})[_0x259e56(0x1b7)](_0x523e40=>console[_0x259e56(0x13a)]('发送钉钉消息失败:',_0x523e40));}if(_0x18c197===0x0){_0xb1d9aa(0x0);return;}if(_0x5703b3?.[_0x259e56(0x186)]){console['log']('['+(0x0,session_1[_0x259e56(0x138)])()+_0x259e56(0x117)),_0x5703b3[_0x259e56(0x186)]=![],_0xb1d9aa(0x0);return;}const _0x39f0f0=_0x3f1770+'\x0a'+_0x4ea2f1;if((0x0,api_key_manager_1[_0x259e56(0x184)])(_0x39f0f0)){const _0x545358=Date[_0x259e56(0x120)]()-_0x1ae1e5,_0xfadd16=_0x545358<FAST_FAIL_THRESHOLD_MS;console[_0x259e56(0x124)]('['+(0x0,session_1['timestamp'])()+']\x20检测到配额耗尽错误(429),stdout匹配='+(0x0,api_key_manager_1[_0x259e56(0x184)])(_0x4ea2f1)+',\x20stderr匹配='+(0x0,api_key_manager_1[_0x259e56(0x184)])(_0x3f1770)),_0x54d565(new RetryableApiError(_0xfadd16,_0x39f0f0));return;}if((0x0,api_key_manager_1[_0x259e56(0x111)])(_0x39f0f0)){console[_0x259e56(0x124)]('['+(0x0,session_1[_0x259e56(0x138)])()+_0x259e56(0x118));const _0x5aebb8=_0x5703b3?.['lastSenderStaffId']||_0x5ecd05[_0x259e56(0x188)];(0x0,messaging_1[_0x259e56(0x192)])(_0x512ffa,{'conversationId':(0x0,session_1[_0x259e56(0x189)])(_0x5ecd05),'sessionWebhook':(0x0,session_1[_0x259e56(0x144)])(_0x5ecd05),'atUserId':_0x5aebb8,'content':_0x259e56(0x173)})['catch'](_0x5ae09d=>console['error']('发送钉钉消息失败:',_0x5ae09d)),_0xb1d9aa(_0x18c197??0x1);return;}if(isRetryableApiError(_0x39f0f0)){const _0x2806d0=Date[_0x259e56(0x120)]()-_0x1ae1e5,_0x47e9d7=_0x2806d0<FAST_FAIL_THRESHOLD_MS;_0x54d565(new RetryableApiError(_0x47e9d7,_0x39f0f0));return;}if(isPermissionError(_0x39f0f0)){console[_0x259e56(0x124)]('['+(0x0,session_1[_0x259e56(0x138)])()+_0x259e56(0x16c));const _0x1736a3=_0x5703b3?.[_0x259e56(0x196)]||_0x5ecd05[_0x259e56(0x188)];(0x0,messaging_1['sendDingMessage'])(_0x512ffa,{'conversationId':(0x0,session_1[_0x259e56(0x189)])(_0x5ecd05),'sessionWebhook':(0x0,session_1[_0x259e56(0x144)])(_0x5ecd05),'atUserId':_0x1736a3,'content':_0x259e56(0x164)})[_0x259e56(0x1b7)](_0x1c0aec=>console['error'](_0x259e56(0x154),_0x1c0aec)),_0xb1d9aa(_0x18c197??0x1);return;}if(_0x5ecd05['claudeSessionId']&&isConversationNotFoundError(_0x39f0f0)){console[_0x259e56(0x124)]('['+(0x0,session_1[_0x259e56(0x138)])()+_0x259e56(0x165)+_0x5ecd05[_0x259e56(0x11a)]+',通知外层重新发起新会话'),_0x54d565(new ConversationNotFoundError());return;}_0x54d565(new Error(_0x259e56(0x1ad)+_0x18c197));}),_0x2c4b10['on'](_0x37a9b4(0x13a),_0x2823d8=>{const _0x272aae=_0x37a9b4;console[_0x272aae(0x13a)](_0x272aae(0x16e),_0x2823d8),fs_1['default']['appendFileSync'](_0x3ddd19,'['+(0x0,session_1[_0x272aae(0x138)])()+']\x20[ERROR]:\x20进程错误:\x20'+_0x2823d8[_0x272aae(0x158)]+'\x0a',_0x272aae(0x12e)),_0x54d565(_0x2823d8);});});}async function executeClaudeQuery(_0x263a41,_0x577d15,_0x4a443e,_0x53fdef){const _0x1de6cc=a3_0x296b7e,{skill:_0x38f4f5,agent:_0x245f69,senderNick:_0x3ff261,senderStaffId:_0x8ca160}=_0x53fdef||{};let _0x3a256c=_0x263a41[_0x1de6cc(0x1a7)](_0x577d15),_0xaa67b6=_0x3a256c+_0x1de6cc(0x11b);const _0x3a2a82=_0x263a41[_0x1de6cc(0x151)](_0x577d15[_0x1de6cc(0x12f)]);fs_1['default'][_0x1de6cc(0x160)](_0x3a256c,{'recursive':!![]});let _0x5baf19=null;const _0x4597ac=(0x0,api_key_manager_1[_0x1de6cc(0x157)])(_0x3a2a82);_0x4597ac&&_0x263a41[_0x1de6cc(0x119)]['apiKeyCfg']&&(_0x5baf19=_0x263a41['config'][_0x1de6cc(0x133)][_0x1de6cc(0x18a)]['find'](_0x91d791=>_0x91d791['apiKey']===_0x4597ac&&_0x91d791['isValid'])||null,_0x5baf19&&console['log']('['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x193)+(0x0,api_key_manager_1[_0x1de6cc(0x1a3)])(_0x5baf19)));const _0xca352b=(0x0,api_key_manager_1[_0x1de6cc(0x171)])(_0x3a2a82);if(!_0xca352b&&_0x263a41[_0x1de6cc(0x119)][_0x1de6cc(0x133)]){_0x5baf19=(0x0,api_key_manager_1['pickValidApiKey'])(_0x263a41);if(!_0x5baf19){const _0x5ab7da=_0x8ca160||_0x577d15['startStaffId'];await(0x0,messaging_1[_0x1de6cc(0x192)])(_0x263a41,{'conversationId':(0x0,session_1[_0x1de6cc(0x189)])(_0x577d15),'sessionWebhook':(0x0,session_1['getReplyWebhook'])(_0x577d15),'atUserId':_0x5ab7da,'content':'⚠️\x20当前无可用配额(无可用\x20API\x20Key),请明天再试或联系管理员'});return;}}const _0x20d306=_0x3ff261&&_0x8ca160?_0x3ff261+'('+_0x8ca160+')':_0x1de6cc(0x190),_0xc72bb2=_0x4a443e+'\x20──\x20消息来自:\x20'+_0x20d306;_0x263a41['appendSessionLog'](_0x3a256c,_0x1de6cc(0x1a9),_0xc72bb2);const _0x41451d=_0x1de6cc(0x13f),_0x54a779=[_0x1de6cc(0x116),_0x1de6cc(0x17e),'--print',_0x1de6cc(0x175),_0x1de6cc(0x179),_0x1de6cc(0x1b3)];_0x245f69&&_0x54a779[_0x1de6cc(0x19f)](_0x1de6cc(0x15c),_0x245f69);const _0x4013d6=_0x38f4f5?'/'+_0x38f4f5+'\x20'+_0xc72bb2:_0xc72bb2;let _0x10e6fb=0x0;while(!![]){const _0x41b020=_0x10e6fb>0x0,_0x30e0b3=[..._0x54a779];_0x577d15['claudeSessionId']&&(_0x30e0b3[_0x1de6cc(0x19f)](_0x1de6cc(0x114),_0x577d15[_0x1de6cc(0x11a)]),!_0x41b020&&console[_0x1de6cc(0x124)]('['+(0x0,session_1['timestamp'])()+']\x20恢复\x20Claude\x20会话:\x20'+_0x577d15[_0x1de6cc(0x11a)]));const _0x4d7a84=resolveClaudeSettingsPath(_0x263a41,_0x3a2a82,_0x53fdef?.[_0x1de6cc(0x14a)]);_0x4d7a84&&_0x30e0b3[_0x1de6cc(0x19f)]('--settings',_0x4d7a84);let _0x10abc8;_0x41b020?(_0x10abc8='继续',console[_0x1de6cc(0x124)]('['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x146)+_0x10e6fb+'/'+MAX_FAST_FAIL+'次)'),fs_1[_0x1de6cc(0x16f)][_0x1de6cc(0x15e)](_0xaa67b6,'['+(0x0,session_1[_0x1de6cc(0x138)])()+']\x20[SYSTEM]:\x20TPM\x20限流,发送\x22继续\x22重试\x20(快速失败连续'+_0x10e6fb+'/'+MAX_FAST_FAIL+')\x0a',_0x1de6cc(0x12e))):_0x10abc8=_0x4013d6;console[_0x1de6cc(0x124)]('['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x121)+_0x41451d+'\x20'+_0x30e0b3['join']('\x20')),_0x263a41['debugLog'](_0x1de6cc(0x177)+_0x10abc8[_0x1de6cc(0x18f)](0x0,0x64)+_0x1de6cc(0x17c));try{await runClaudeOnce(_0x263a41,_0x577d15,_0x30e0b3,_0x41451d,_0x3a2a82,_0x10abc8,_0x41b020);return;}catch(_0x53996d){_0x3a256c=_0x263a41[_0x1de6cc(0x1a7)](_0x577d15),_0xaa67b6=_0x3a256c+_0x1de6cc(0x11b);if(_0x53996d instanceof RetryableApiError){if((0x0,api_key_manager_1[_0x1de6cc(0x184)])(_0x53996d[_0x1de6cc(0x198)])&&_0x263a41[_0x1de6cc(0x119)][_0x1de6cc(0x133)]){if(_0x5baf19){const _0x439108=(0x0,api_key_manager_1['rotateApiKey'])(_0x263a41,_0x5baf19[_0x1de6cc(0x1b2)]);if(_0x439108){_0x5baf19=_0x439108,_0x10e6fb=0x0,console[_0x1de6cc(0x124)]('['+(0x0,session_1[_0x1de6cc(0x138)])()+']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x1de6cc(0x1a3)])(_0x439108)),fs_1[_0x1de6cc(0x16f)]['appendFileSync'](_0xaa67b6,'['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x17d),_0x1de6cc(0x12e));continue;}}const _0x701beb=_0x8ca160||_0x577d15[_0x1de6cc(0x188)];await(0x0,messaging_1[_0x1de6cc(0x192)])(_0x263a41,{'conversationId':(0x0,session_1['getReplyConversationId'])(_0x577d15),'sessionWebhook':(0x0,session_1[_0x1de6cc(0x144)])(_0x577d15),'atUserId':_0x701beb,'content':'⚠️\x20当前无可用配额/API\x20Key,请明天再试或联系管理员'});return;}if(_0x53996d[_0x1de6cc(0x1b8)]){_0x10e6fb++;if(_0x10e6fb>=MAX_FAST_FAIL){if(_0x5baf19&&_0x263a41[_0x1de6cc(0x119)][_0x1de6cc(0x133)]){const _0x42db8c=(0x0,api_key_manager_1[_0x1de6cc(0x11c)])(_0x263a41,_0x5baf19[_0x1de6cc(0x1b2)]);if(_0x42db8c){_0x5baf19=_0x42db8c,_0x10e6fb=0x0,console[_0x1de6cc(0x124)]('['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x126)+MAX_FAST_FAIL+'\x20次,切换到新\x20Key:\x20'+(0x0,api_key_manager_1[_0x1de6cc(0x1a3)])(_0x42db8c)),fs_1[_0x1de6cc(0x16f)][_0x1de6cc(0x15e)](_0xaa67b6,'['+(0x0,session_1[_0x1de6cc(0x138)])()+']\x20[SYSTEM]:\x20TPM\x20限流连续快速失败,切换到新\x20Key\x0a',_0x1de6cc(0x12e));continue;}}console[_0x1de6cc(0x124)]('['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x13e)+MAX_FAST_FAIL+'次,放弃'),fs_1['default']['appendFileSync'](_0xaa67b6,'['+(0x0,session_1['timestamp'])()+']\x20[SYSTEM]:\x20TPM\x20限流快速失败连续'+MAX_FAST_FAIL+'次,放弃\x0a','utf-8');throw new Error(_0x1de6cc(0x129)+MAX_FAST_FAIL+'\x20次');}console['log']('['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x135)+API_RETRY_DELAY_MS/0x3e8+'s\x20后重试\x20('+_0x10e6fb+'/'+MAX_FAST_FAIL+')');}else _0x10e6fb=0x0,console[_0x1de6cc(0x124)]('['+(0x0,session_1[_0x1de6cc(0x138)])()+']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,'+API_RETRY_DELAY_MS/0x3e8+'s\x20后重试');fs_1[_0x1de6cc(0x16f)][_0x1de6cc(0x15e)](_0xaa67b6,'['+(0x0,session_1['timestamp'])()+_0x1de6cc(0x1a1)+API_RETRY_DELAY_MS/0x3e8+_0x1de6cc(0x17b),_0x1de6cc(0x12e)),await sleep(API_RETRY_DELAY_MS);continue;}if(_0x53996d instanceof ConversationNotFoundError){console[_0x1de6cc(0x124)]('['+(0x0,session_1['timestamp'])()+']\x20Claude\x20会话失效,清除\x20claudeSessionId\x20并重新发起'),fs_1[_0x1de6cc(0x16f)][_0x1de6cc(0x15e)](_0xaa67b6,'['+(0x0,session_1[_0x1de6cc(0x138)])()+_0x1de6cc(0x145),_0x1de6cc(0x12e));_0x577d15[_0x1de6cc(0x11a)]&&(_0x577d15[_0x1de6cc(0x11a)]=undefined,_0x263a41['updateSessionFile'](_0x577d15,{}));_0x10e6fb=0x0;continue;}throw _0x53996d;}}}
@@ -1 +1 @@
1
- 'use strict';const a4_0x20d8b7=a4_0x3b13;(function(_0x6cd03f,_0xd9565){const _0x2e6ccf=a4_0x3b13,_0x32b848=_0x6cd03f();while(!![]){try{const _0x4964b9=-parseInt(_0x2e6ccf(0xe6))/0x1*(-parseInt(_0x2e6ccf(0xc3))/0x2)+parseInt(_0x2e6ccf(0xd6))/0x3+-parseInt(_0x2e6ccf(0xa2))/0x4+parseInt(_0x2e6ccf(0x106))/0x5+-parseInt(_0x2e6ccf(0xb6))/0x6*(parseInt(_0x2e6ccf(0xd2))/0x7)+parseInt(_0x2e6ccf(0x9f))/0x8+-parseInt(_0x2e6ccf(0xcc))/0x9*(-parseInt(_0x2e6ccf(0xf1))/0xa);if(_0x4964b9===_0xd9565)break;else _0x32b848['push'](_0x32b848['shift']());}catch(_0x15788d){_0x32b848['push'](_0x32b848['shift']());}}}(a4_0x4e95,0x70813));var __importDefault=this&&this[a4_0x20d8b7(0x12a)]||function(_0x499615){const _0x3d8d37=a4_0x20d8b7;return _0x499615&&_0x499615[_0x3d8d37(0xbd)]?_0x499615:{'default':_0x499615};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports[a4_0x20d8b7(0x116)]=parseHelpCommand,exports[a4_0x20d8b7(0x10d)]=parseCommandHelp,exports[a4_0x20d8b7(0xe9)]=getCommandByName,exports[a4_0x20d8b7(0xb8)]=formatHelpOverview,exports['formatCommandHelp']=formatCommandHelp,exports[a4_0x20d8b7(0x104)]=parseEndCommand,exports[a4_0x20d8b7(0xad)]=parseInfoCommand,exports['formatConversationInfo']=formatConversationInfo,exports[a4_0x20d8b7(0x82)]=formatGlobalConfig,exports[a4_0x20d8b7(0xc9)]=parseLogCommand,exports[a4_0x20d8b7(0x93)]=parseLsCommand,exports[a4_0x20d8b7(0xa4)]=findSubdirByName,exports[a4_0x20d8b7(0x10e)]=getDirectoryStructure,exports['parseContinueSessionCommand']=parseContinueSessionCommand,exports[a4_0x20d8b7(0x9c)]=parseCronCommand,exports[a4_0x20d8b7(0xbe)]=parsePwdCommand,exports['parseVersionCommand']=parseVersionCommand,exports[a4_0x20d8b7(0xe4)]=parseMkdirCommand,exports['parseTouchCommand']=parseTouchCommand,exports[a4_0x20d8b7(0x98)]=parseRmCommand,exports['parseOpenCommand']=parseOpenCommand,exports['parseCleanCommand']=parseCleanCommand,exports[a4_0x20d8b7(0x107)]=parseResetApiKeyCfgCommand,exports[a4_0x20d8b7(0xba)]=parseCfgCommand,exports[a4_0x20d8b7(0x7a)]=parseBashCommand,exports[a4_0x20d8b7(0x132)]=parseMqCommand,exports[a4_0x20d8b7(0x8f)]=parseAuthCommand;const fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a4_0x20d8b7(0x119))),COMMAND_REGISTRY=[{'name':a4_0x20d8b7(0xc7),'description':'查看所有可用命令','usage':'/help','examples':[a4_0x20d8b7(0xc7)],'category':'系统'},{'name':a4_0x20d8b7(0x121),'description':a4_0x20d8b7(0xb4),'usage':'/info\x20[robot|session|task]','examples':[a4_0x20d8b7(0x121),a4_0x20d8b7(0xf8),a4_0x20d8b7(0x9e),'/info\x20task'],'category':'系统'},{'name':a4_0x20d8b7(0x7f),'description':'查看最近会话日志','usage':a4_0x20d8b7(0xff),'examples':[a4_0x20d8b7(0x7f),a4_0x20d8b7(0xc8)],'category':'会话'},{'name':a4_0x20d8b7(0x115),'description':a4_0x20d8b7(0x102),'usage':a4_0x20d8b7(0xe2),'examples':[a4_0x20d8b7(0x115),a4_0x20d8b7(0xa9)],'category':'会话'},{'name':a4_0x20d8b7(0xa6),'description':a4_0x20d8b7(0x92),'usage':'/resume\x20[会话ID]','examples':[a4_0x20d8b7(0xa6),a4_0x20d8b7(0xd7)],'category':'会话'},{'name':a4_0x20d8b7(0xa7),'description':a4_0x20d8b7(0xea),'usage':a4_0x20d8b7(0xa7),'examples':[a4_0x20d8b7(0xa7)],'category':'会话'},{'name':a4_0x20d8b7(0xee),'description':a4_0x20d8b7(0xef),'usage':a4_0x20d8b7(0x76),'examples':[a4_0x20d8b7(0x122)],'category':'任务'},{'name':'/mq','description':a4_0x20d8b7(0xc0),'usage':a4_0x20d8b7(0x135),'examples':[a4_0x20d8b7(0x146),a4_0x20d8b7(0x8a),a4_0x20d8b7(0x8d),a4_0x20d8b7(0x95)],'category':'任务'},{'name':a4_0x20d8b7(0x96),'description':a4_0x20d8b7(0xeb),'usage':a4_0x20d8b7(0xe5),'examples':[a4_0x20d8b7(0x90),a4_0x20d8b7(0x133),a4_0x20d8b7(0x123),a4_0x20d8b7(0x12f),a4_0x20d8b7(0x117)],'category':'任务'},{'name':a4_0x20d8b7(0xb1),'description':a4_0x20d8b7(0x84),'usage':a4_0x20d8b7(0xb1),'examples':['/pwd'],'category':'文件'},{'name':a4_0x20d8b7(0x8e),'description':a4_0x20d8b7(0x126),'usage':a4_0x20d8b7(0x99),'examples':[a4_0x20d8b7(0x8e),a4_0x20d8b7(0x70),a4_0x20d8b7(0x111)],'category':'文件'},{'name':a4_0x20d8b7(0x87),'description':'在工作目录下创建文件夹(支持相对路径,不能超出工作目录范围)','usage':'/mkdir\x20<相对路径>','examples':['/mkdir\x20src',a4_0x20d8b7(0x91),a4_0x20d8b7(0x139)],'category':'文件'},{'name':'/touch','description':a4_0x20d8b7(0xb3),'usage':a4_0x20d8b7(0x9a),'examples':[a4_0x20d8b7(0x113),'/touch\x20src/cc-ding-cli.ts','/touch\x20./config.json'],'category':'文件'},{'name':a4_0x20d8b7(0x88),'description':a4_0x20d8b7(0xbc),'usage':a4_0x20d8b7(0xe1),'examples':[a4_0x20d8b7(0x13a),a4_0x20d8b7(0x7e),a4_0x20d8b7(0xf3)],'category':'文件'},{'name':a4_0x20d8b7(0xd3),'description':'查看工具版本信息','usage':a4_0x20d8b7(0xd3),'examples':[a4_0x20d8b7(0xd3)],'category':'系统'},{'name':a4_0x20d8b7(0xdc),'description':a4_0x20d8b7(0x125),'usage':'/open\x20[shell]','examples':['/open','/open\x20shell'],'category':'管理','ownerOnly':!![]},{'name':a4_0x20d8b7(0xec),'description':a4_0x20d8b7(0xfb),'usage':a4_0x20d8b7(0xec),'examples':[a4_0x20d8b7(0xec)],'category':'管理','ownerOnly':!![]},{'name':a4_0x20d8b7(0x137),'description':a4_0x20d8b7(0x144),'usage':a4_0x20d8b7(0x137),'examples':[a4_0x20d8b7(0x137)],'category':'管理','ownerOnly':!![]},{'name':a4_0x20d8b7(0x89),'description':a4_0x20d8b7(0x7b),'usage':a4_0x20d8b7(0xed),'examples':[a4_0x20d8b7(0x89),a4_0x20d8b7(0x109),'/cfg\x20--conversationTitle\x20工作群',a4_0x20d8b7(0xf9),'/cfg\x20--atSender\x20false',a4_0x20d8b7(0xd4),a4_0x20d8b7(0x140)],'category':'管理','ownerOnly':!![]},{'name':a4_0x20d8b7(0x97),'description':a4_0x20d8b7(0x85),'usage':a4_0x20d8b7(0x130),'examples':[a4_0x20d8b7(0xb2),a4_0x20d8b7(0x13b),a4_0x20d8b7(0x8c)],'category':'文件'},{'name':a4_0x20d8b7(0xca),'description':'管理当前群白名单(add/del,默认list)','usage':a4_0x20d8b7(0x74),'examples':[a4_0x20d8b7(0xca),a4_0x20d8b7(0xf0),a4_0x20d8b7(0x86)],'category':'管理','ownerOnly':!![]}],CATEGORY_DISPLAY=[{'category':'会话','icon':'💬'},{'category':'任务','icon':'📋'},{'category':'文件','icon':'📂'},{'category':'系统','icon':'⚙️'},{'category':'管理','icon':'🔧'}];function parseHelpCommand(_0x1b7b1f){const _0x78c618=a4_0x20d8b7;return _0x1b7b1f[_0x78c618(0xb0)]()[_0x78c618(0x143)]()===_0x78c618(0xc7);}function parseCommandHelp(_0x161051){const _0x11c1ef=a4_0x20d8b7,_0x4cf60b=_0x161051['trim'](),_0x4aa999=_0x4cf60b[_0x11c1ef(0x124)](/^(\/\w+)\s+--help$/i);if(!_0x4aa999)return null;return _0x4aa999[0x1]['toLowerCase']();}function getCommandByName(_0x56f924){const _0x2b8b2e=a4_0x20d8b7,_0x25cfbc=_0x56f924[_0x2b8b2e(0x143)]();return COMMAND_REGISTRY['find'](_0x35e5c6=>_0x35e5c6[_0x2b8b2e(0x81)][_0x2b8b2e(0x143)]()===_0x25cfbc||_0x35e5c6[_0x2b8b2e(0x77)]?.[_0x2b8b2e(0xbf)](_0x353229=>_0x353229['toLowerCase']()===_0x25cfbc));}function formatHelpOverview(_0x26b66b,_0x264b78){const _0xdf836f=a4_0x20d8b7,_0x11f58e=COMMAND_REGISTRY[_0xdf836f(0x142)](_0x30b8cc=>_0x264b78||!_0x30b8cc[_0xdf836f(0xfa)]),_0x43d10d=['###\x20🤗',_0xdf836f(0xd1),_0xdf836f(0xaf)+_0x26b66b,_0xdf836f(0x13d),_0xdf836f(0x105),'----'];for(const {category:_0x3d0c2a,icon:_0x50ea76}of CATEGORY_DISPLAY){const _0x4886c6=_0x11f58e[_0xdf836f(0x142)](_0xa71196=>_0xa71196[_0xdf836f(0x138)]===_0x3d0c2a);if(_0x4886c6[_0xdf836f(0xf2)]===0x0)continue;_0x43d10d[_0xdf836f(0x141)](_0x50ea76+_0xdf836f(0xa8)+_0x3d0c2a+'**');for(const _0x58127d of _0x4886c6){_0x43d10d['push'](_0xdf836f(0xbb)+_0x58127d[_0xdf836f(0x81)]+'`\x20'+_0x58127d[_0xdf836f(0x120)]);}_0x43d10d['push']('');}return _0x43d10d[_0xdf836f(0x141)]('💡\x20输入\x20`/{命令}\x20--help`\x20查看命令详细用法'),_0x43d10d['join']('\x0a');}function formatCommandHelp(_0x55ab03){const _0x519dd2=a4_0x20d8b7,_0x365841=['###\x20📖\x20'+_0x55ab03[_0x519dd2(0x81)],'',_0x519dd2(0xdd)+_0x55ab03[_0x519dd2(0x120)],'','**用法:**\x20`'+_0x55ab03[_0x519dd2(0x10c)]+'`'];_0x55ab03[_0x519dd2(0x77)]?.[_0x519dd2(0xf2)]&&_0x365841[_0x519dd2(0x141)]('',_0x519dd2(0x103)+_0x55ab03[_0x519dd2(0x77)][_0x519dd2(0xb7)](',\x20'));_0x365841['push']('',_0x519dd2(0x12d));for(const _0xdb5681 of _0x55ab03[_0x519dd2(0xfc)]){_0x365841[_0x519dd2(0x141)]('-\x20`'+_0xdb5681+'`');}return _0x365841[_0x519dd2(0xb7)]('\x0a');}function parseEndCommand(_0x12f821){const _0x1fdb11=a4_0x20d8b7;return _0x12f821[_0x1fdb11(0xb0)]()[_0x1fdb11(0x143)]()===_0x1fdb11(0xa7);}function parseInfoCommand(_0x37c2a5){const _0x380168=a4_0x20d8b7,_0x352fe8=_0x37c2a5[_0x380168(0xb0)]()[_0x380168(0x143)]();if(_0x352fe8===_0x380168(0x121))return _0x380168(0x83);if(_0x352fe8===_0x380168(0xf8))return _0x380168(0x145);if(_0x352fe8===_0x380168(0x9e))return _0x380168(0x128);if(_0x352fe8==='/info\x20task')return _0x380168(0x118);return null;}function formatConversationInfo(_0x2ab818,_0x477008,_0x1e6b60,_0x268c02){const _0x30f11c=a4_0x20d8b7,_0x2b0289=['-\x20**群ID:**\x20'+_0x477008];if(_0x2ab818[_0x30f11c(0x131)])_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0x10f)+_0x2ab818['conversationTitle']);if(_0x268c02)_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0xb5)+_0x268c02+'`');if(_0x2ab818[_0x30f11c(0x13e)])_0x2b0289['push'](_0x30f11c(0xdf)+_0x2ab818[_0x30f11c(0x13e)]);if(_0x2ab818[_0x30f11c(0xb9)])_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0xcb)+_0x2ab818['agent']);if(_0x2ab818[_0x30f11c(0x129)])_0x2b0289[_0x30f11c(0x141)]('-\x20**dingToken:**\x20'+_0x2ab818[_0x30f11c(0x129)]['substring'](0x0,0x8)+_0x30f11c(0x134));if(_0x2ab818[_0x30f11c(0xc4)]?.[_0x30f11c(0xf2)]){const _0x536f0f=_0x2ab818[_0x30f11c(0xc4)][_0x30f11c(0xa5)](_0xbbc540=>{const _0x1ddf26=_0x1e6b60?.(_0xbbc540);return _0x1ddf26||_0xbbc540;})[_0x30f11c(0xb7)](',\x20');_0x2b0289[_0x30f11c(0x141)]('-\x20**群白名单:**\x20'+_0x536f0f);}if(_0x2ab818[_0x30f11c(0xd0)]===![])_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0x10a));if(_0x2ab818[_0x30f11c(0xd5)]===![])_0x2b0289['push'](_0x30f11c(0xf6));if(_0x2ab818[_0x30f11c(0xfd)]===![])_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0x11d));if(_0x2ab818[_0x30f11c(0x12b)]?.[_0x30f11c(0x108)])_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0x101)+_0x2ab818[_0x30f11c(0x12b)][_0x30f11c(0x108)]);if(_0x2ab818[_0x30f11c(0x12e)])_0x2b0289[_0x30f11c(0x141)](_0x30f11c(0xc6)+_0x2ab818['preBash']+'`');return _0x2b0289[_0x30f11c(0xb7)]('\x0a');}function formatGlobalConfig(_0x32b888){const _0x460d13=a4_0x20d8b7,_0x1dd646=[_0x460d13(0xe3)+(_0x32b888[_0x460d13(0x100)]||'-'),'-\x20**sessionMaxConcurrency:**\x20'+(_0x32b888[_0x460d13(0x11a)]??0x5),'-\x20**taskHandlerCount:**\x20'+(_0x32b888['taskHandlerCount']??0x1),_0x460d13(0xab)+(_0x32b888[_0x460d13(0xf7)]??0x32),'-\x20**includeThinking:**\x20'+(_0x32b888[_0x460d13(0x114)]??![]),_0x460d13(0x11f)+(_0x32b888[_0x460d13(0x7d)]??!![])];if(_0x32b888[_0x460d13(0x13c)])_0x1dd646[_0x460d13(0x141)](_0x460d13(0x110)+_0x32b888[_0x460d13(0x13c)][_0x460d13(0x127)](0x0,0x8)+_0x460d13(0x134));if(_0x32b888[_0x460d13(0xf4)])_0x1dd646['push']('-\x20**owner:**\x20'+_0x32b888[_0x460d13(0xf4)]);if(_0x32b888[_0x460d13(0xc4)]?.[_0x460d13(0xf2)])_0x1dd646[_0x460d13(0x141)](_0x460d13(0xc5)+_0x32b888[_0x460d13(0xc4)][_0x460d13(0xb7)](',\x20'));if(_0x32b888[_0x460d13(0x8b)]){const _0xf00854=_0x32b888['apiKeyCfg']['claudeSettings'][_0x460d13(0x142)](_0x2ad266=>_0x2ad266[_0x460d13(0x11b)])[_0x460d13(0xf2)];_0x1dd646['push'](_0x460d13(0x13f)+_0xf00854+'/'+_0x32b888['apiKeyCfg'][_0x460d13(0x72)][_0x460d13(0xf2)]+_0x460d13(0xe0)),_0x1dd646[_0x460d13(0x141)](_0x460d13(0xcf)+(_0x32b888['apiKeyCfg'][_0x460d13(0xf5)]||'-'));}return _0x1dd646['join']('\x0a');}function parseLogCommand(_0x21c866){const _0x3ab493=a4_0x20d8b7,_0x240276=_0x21c866[_0x3ab493(0xb0)](),_0x2bbe66=_0x240276[_0x3ab493(0x124)](/^\/log(?:\s+(\d+))?$/i);if(!_0x2bbe66)return null;const _0x24db0f=parseInt(_0x2bbe66[0x1],0xa);return isNaN(_0x24db0f)||_0x24db0f<=0x0?0xa:_0x24db0f;}function parseLsCommand(_0x1a7d0b){const _0x207a5e=a4_0x20d8b7,_0x38328b=_0x1a7d0b[_0x207a5e(0xb0)](),_0x32d2a3=_0x38328b[_0x207a5e(0x124)](/^\/ls(?:\s+(.+))?$/i);if(!_0x32d2a3)return null;if(_0x32d2a3[0x1]===undefined)return{'target':'','depth':0x1};const _0x3bfaff=_0x32d2a3[0x1][_0x207a5e(0xb0)]()[_0x207a5e(0xa1)](/\s+/),_0x2777ea=_0x3bfaff[0x0]||'',_0x4d9706=_0x3bfaff[0x1]?parseInt(_0x3bfaff[0x1],0xa):0x1;return{'target':_0x2777ea,'depth':isNaN(_0x4d9706)||_0x4d9706<0x0?0x1:Math['min'](_0x4d9706,0x5)};}function findSubdirByName(_0x3e7f6e,_0x164fd9,_0x372add=0x3){const _0x7a5934=a4_0x20d8b7,_0x4684ef=[{'dir':_0x3e7f6e,'depth':0x0}];while(_0x4684ef[_0x7a5934(0xf2)]>0x0){const {dir:_0x2dd3b0,depth:_0x552189}=_0x4684ef[_0x7a5934(0xfe)]();if(_0x552189>_0x372add)continue;try{const _0x25bb33=fs_1[_0x7a5934(0xae)][_0x7a5934(0x11c)](_0x2dd3b0,{'withFileTypes':!![]});for(const _0x2e39c0 of _0x25bb33){if(!_0x2e39c0[_0x7a5934(0xde)]()||_0x2e39c0[_0x7a5934(0x81)]['startsWith']('.'))continue;if(_0x2e39c0[_0x7a5934(0x81)]===_0x164fd9)return path_1[_0x7a5934(0xae)][_0x7a5934(0xb7)](_0x2dd3b0,_0x2e39c0[_0x7a5934(0x81)]);_0x4684ef[_0x7a5934(0x141)]({'dir':path_1[_0x7a5934(0xae)]['join'](_0x2dd3b0,_0x2e39c0[_0x7a5934(0x81)]),'depth':_0x552189+0x1});}}catch{continue;}}return null;}function getDirectoryStructure(_0x3b81fb,_0x5ea968=0x0,_0x9588a2=0x1){const _0x36db6f=a4_0x20d8b7;try{const _0x5e55c7=fs_1['default'][_0x36db6f(0x11c)](_0x3b81fb,{'withFileTypes':!![]})[_0x36db6f(0x142)](_0x289ee8=>!_0x289ee8[_0x36db6f(0x81)]['startsWith']('.'));if(_0x5e55c7[_0x36db6f(0xf2)]===0x0)return _0x5ea968===0x0?_0x36db6f(0x78):'';_0x5e55c7['sort']((_0x4ede65,_0x6de95f)=>{const _0x11fdb1=_0x36db6f;if(_0x4ede65['isDirectory']()!==_0x6de95f['isDirectory']())return _0x4ede65[_0x11fdb1(0xde)]()?-0x1:0x1;return _0x4ede65[_0x11fdb1(0x81)][_0x11fdb1(0x112)](_0x6de95f[_0x11fdb1(0x81)]);});const _0x1d5e33=[],_0x8bfa9d='.\x20'['repeat'](_0x5ea968);for(const _0x266485 of _0x5e55c7){const _0x343e72=_0x266485[_0x36db6f(0xde)]()?_0x36db6f(0xe8):_0x36db6f(0x94),_0x252cbc=_0x266485['isDirectory']()?'/':'';_0x1d5e33[_0x36db6f(0x141)](''+_0x8bfa9d+_0x343e72+_0x266485[_0x36db6f(0x81)]+_0x252cbc);if(_0x266485[_0x36db6f(0xde)]()&&_0x5ea968<_0x9588a2){const _0x2e22e3=path_1['default'][_0x36db6f(0xb7)](_0x3b81fb,_0x266485['name']),_0x39c318=getDirectoryStructure(_0x2e22e3,_0x5ea968+0x1,_0x9588a2);_0x39c318&&_0x1d5e33['push'](_0x39c318);}}return _0x1d5e33[_0x36db6f(0xb7)]('\x0a');}catch{return _0x5ea968===0x0?_0x36db6f(0x9d):'';}}function parseContinueSessionCommand(_0x381084){const _0x4f15b5=a4_0x20d8b7,_0x8d3e7f=_0x381084[_0x4f15b5(0xb0)]()[_0x4f15b5(0x124)](/^\/resume(?:\s+(\S+))?$/i);if(!_0x8d3e7f)return null;return _0x8d3e7f[0x1]!==undefined?_0x8d3e7f[0x1]:'';}function looksLikeCronExpression(_0x153904){const _0xc463da=a4_0x20d8b7,_0x778998=_0x153904[_0xc463da(0xb0)]()[_0xc463da(0xa1)](/\s+/);if(_0x778998[_0xc463da(0xf2)]!==0x5)return![];return _0x778998[_0xc463da(0xac)](_0x3d71f4=>/^[\d*/\-]+$/['test'](_0x3d71f4));}function parseCronCommand(_0x69af43){const _0x2fe159=a4_0x20d8b7,_0x466435=_0x69af43[_0x2fe159(0xb0)]();if(!_0x466435[_0x2fe159(0x143)]()['startsWith'](_0x2fe159(0x96)))return null;const _0x3b971a=_0x466435['substring'](0x5)['trim']();if(!_0x3b971a)return null;if(/^(list|ls)$/i[_0x2fe159(0x73)](_0x3b971a))return{'type':'list'};const _0x562c6b=_0x3b971a[_0x2fe159(0x124)](/^(?:delete|rm)\s+(\S+)$/i);if(_0x562c6b)return{'type':_0x2fe159(0x75),'id':_0x562c6b[0x1]};const _0x475d53=_0x3b971a['match'](/^pause\s+(\S+)$/i);if(_0x475d53)return{'type':'pause','id':_0x475d53[0x1]};const _0x598dfe=_0x3b971a[_0x2fe159(0x124)](/^resume\s+(\S+)$/i);if(_0x598dfe)return{'type':'resume','id':_0x598dfe[0x1]};const _0x882522=_0x3b971a['match'](/^(\S+\s+\S+\s+\S+\s+\S+\s+\S+)\s+(.+)$/);if(_0x882522&&looksLikeCronExpression(_0x882522[0x1]))return{'type':_0x2fe159(0xd9),'cronExpression':_0x882522[0x1],'prompt':_0x882522[0x2]};return{'type':_0x2fe159(0xc1),'input':_0x3b971a};}function parsePwdCommand(_0x399c35){const _0x2ce9e2=a4_0x20d8b7;return _0x399c35[_0x2ce9e2(0xb0)]()==='/pwd';}function parseVersionCommand(_0x5d7e55){const _0x130a70=a4_0x20d8b7;return _0x5d7e55[_0x130a70(0xb0)]()==='/version';}function a4_0x3b13(_0x548afa,_0x19a44d){_0x548afa=_0x548afa-0x70;const _0x4e9598=a4_0x4e95();let _0x3b13f6=_0x4e9598[_0x548afa];return _0x3b13f6;}function parsePathCommand(_0x29f1b7,_0xe1e52a){const _0x23d468=a4_0x20d8b7,_0x4f5aaa=_0x29f1b7['trim'](),_0x2ffc44=_0x4f5aaa[_0x23d468(0x124)](new RegExp(_0x23d468(0xaa)+_0xe1e52a+'\x5cs+(.+)$'));if(!_0x2ffc44)return null;const _0x33fbdf=_0x2ffc44[0x1][_0x23d468(0xb0)]();return _0x33fbdf||null;}function parseMkdirCommand(_0x21eefd){const _0x50f269=a4_0x20d8b7;return parsePathCommand(_0x21eefd,_0x50f269(0xd8));}function parseTouchCommand(_0x3a7744){const _0x27ec10=a4_0x20d8b7;return parsePathCommand(_0x3a7744,_0x27ec10(0x9b));}function parseRmCommand(_0x25544b){return parsePathCommand(_0x25544b,'rm');}function parseOpenCommand(_0x54d613){const _0x30b8ba=a4_0x20d8b7,_0x58992a=_0x54d613[_0x30b8ba(0xb0)]()[_0x30b8ba(0x143)]();if(_0x58992a===_0x30b8ba(0xdc))return'folder';if(_0x58992a==='/open\x20shell')return _0x30b8ba(0xa3);return null;}function parseCleanCommand(_0x3543f5){const _0x420f6c=a4_0x20d8b7,_0x6d6e0=_0x3543f5['trim']()[_0x420f6c(0x143)]();if(_0x6d6e0===_0x420f6c(0xec))return _0x420f6c(0xda);if(_0x6d6e0===_0x420f6c(0x80))return _0x420f6c(0x83);return null;}function parseResetApiKeyCfgCommand(_0x451eb5){const _0x458790=a4_0x20d8b7;return _0x451eb5['trim']()[_0x458790(0x143)]()===_0x458790(0x137);}function parseCfgCommand(_0x43bc68){const _0x5c664e=a4_0x20d8b7,_0x18f1cd=_0x43bc68[_0x5c664e(0xb0)]();if(!/^\/cfg(?:\s|$)/i['test'](_0x18f1cd))return null;const _0x4ac297=_0x18f1cd['substring'](0x4)[_0x5c664e(0xb0)]();if(!_0x4ac297)return{};if(/^--help$/i[_0x5c664e(0x73)](_0x4ac297))return null;const _0x3787d0={},_0x4a0026=_0x4ac297[_0x5c664e(0xa1)](/\s+/);for(let _0x3a0c12=0x0;_0x3a0c12<_0x4a0026[_0x5c664e(0xf2)];_0x3a0c12++){const _0x472c8d=_0x4a0026[_0x3a0c12];if(_0x472c8d==='--dingToken'&&_0x4a0026[_0x3a0c12+0x1])_0x3787d0['dingToken']=_0x4a0026[++_0x3a0c12];else{if(_0x472c8d===_0x5c664e(0xa0)&&_0x4a0026[_0x3a0c12+0x1])_0x3787d0[_0x5c664e(0x13e)]=_0x4a0026[++_0x3a0c12];else{if(_0x472c8d===_0x5c664e(0xce)&&_0x4a0026[_0x3a0c12+0x1])_0x3787d0[_0x5c664e(0xc4)]=_0x4a0026[++_0x3a0c12][_0x5c664e(0xa1)](',')['map'](_0x53088f=>_0x53088f['trim']())[_0x5c664e(0x142)](Boolean);else{if(_0x472c8d==='--conversationTitle'&&_0x4a0026[_0x3a0c12+0x1]){const _0x36d62b=[];while(_0x3a0c12+0x1<_0x4a0026['length']&&!_0x4a0026[_0x3a0c12+0x1]['startsWith']('--')){_0x36d62b['push'](_0x4a0026[++_0x3a0c12]);}_0x36d62b[_0x5c664e(0xf2)]>0x0&&(_0x3787d0[_0x5c664e(0x131)]=_0x36d62b[_0x5c664e(0xb7)]('\x20'));}else{if(_0x472c8d===_0x5c664e(0x136)&&_0x4a0026[_0x3a0c12+0x1]){const _0x298a77=_0x4a0026[++_0x3a0c12]['toLowerCase']();_0x3787d0[_0x5c664e(0xd0)]=_0x298a77===_0x5c664e(0x10b)||_0x298a77==='1'||_0x298a77===_0x5c664e(0xe7);}else{if(_0x472c8d==='--receiveReply'&&_0x4a0026[_0x3a0c12+0x1]){const _0x11c1b1=_0x4a0026[++_0x3a0c12][_0x5c664e(0x143)]();_0x3787d0[_0x5c664e(0xd5)]=_0x11c1b1===_0x5c664e(0x10b)||_0x11c1b1==='1'||_0x11c1b1==='yes';}else{if(_0x472c8d===_0x5c664e(0x12c)&&_0x4a0026[_0x3a0c12+0x1]){const _0x57a1d2=[];while(_0x3a0c12+0x1<_0x4a0026[_0x5c664e(0xf2)]&&!_0x4a0026[_0x3a0c12+0x1][_0x5c664e(0x7c)]('--')){_0x57a1d2[_0x5c664e(0x141)](_0x4a0026[++_0x3a0c12]);}_0x57a1d2['length']>0x0&&(_0x3787d0[_0x5c664e(0x12e)]=_0x57a1d2[_0x5c664e(0xb7)]('\x20')[_0x5c664e(0xcd)](/^["']|["']$/g,''));}}}}}}}}return _0x3787d0;}function parseBashCommand(_0x309e4c){const _0xe2e0e7=a4_0x20d8b7,_0x466252=_0x309e4c[_0xe2e0e7(0xb0)](),_0x4aca76=_0x466252[_0xe2e0e7(0x124)](/^\/bash\s+(.+)$/i);if(!_0x4aca76)return null;const _0x1f151c=_0x4aca76[0x1][_0xe2e0e7(0xb0)]();return _0x1f151c||null;}function a4_0x4e95(){const _0x6be1f9=['/mq\x20-n\x201','apiKeyCfg','/bash\x20git\x20status','/mq\x20-n\x203','/ls','parseAuthCommand','/cron\x20每天早上9点查看dima任务','/mkdir\x20src/components','继续指定的历史会话(可指定会话ID,不指定则恢复最近一个)','parseLsCommand','📄\x20','/mq\x20-all','/cron','/bash','parseRmCommand','/ls\x20[目标目录]\x20[展开层数]','/touch\x20<相对路径>','touch','parseCronCommand','❌\x20无法读取目录','/info\x20session','242392XlLYTP','--linkConversationId','split','2452440VFVNcl','shell','findSubdirByName','map','/resume','/end','\x20**','/new\x20帮我分析一下这个项目','^\x5c/','-\x20**taskQueueSize:**\x20','every','parseInfoCommand','default','-\x20**版本:**\x20','trim','/pwd','/bash\x20ls\x20-la','在工作目录下创建空文件(支持相对路径,不能超出工作目录范围)','查看群配置、会话和任务信息','-\x20**工作目录:**\x20`','42JbfTIM','join','formatHelpOverview','agent','parseCfgCommand','-\x20`','删除工作目录下的文件或目录(支持相对路径,不能超出工作目录范围)','__esModule','parsePwdCommand','some','查看和管理当前会话消息队列(排队中的消息)','create_nl','list','983074ibGlZx','whiteUserList','-\x20**全局白名单:**\x20','-\x20**preBash:**\x20`','/help','/log\x2020','parseLogCommand','/auth','-\x20**agent:**\x20','34353kZTCet','replace','--whiteUserList','\x20\x20-\x20**最近重置:**\x20','atSender','----','307874DwcwvM','/version','/cfg\x20--receiveReply\x20false','receiveReply','528114LyOQYs','/resume\x20abc123','mkdir','create_cron','current','del','/open','**描述:**\x20','isDirectory','-\x20**关联会话ID:**\x20','\x20有效','/rm\x20<相对路径>','/new\x20[初始消息]','-\x20**clientName:**\x20','parseMkdirCommand','/cron\x20<自然语言描述>\x20|\x20/cron\x20<cron表达式>\x20<任务描述>\x20|\x20/cron\x20list|pause|resume|delete\x20<id>','1ebsNNE','yes','📁\x20','getCommandByName','结束当前会话','创建和管理定时任务(Claude自动分析自然语言)','/clean','/cfg\x20[--dingToken\x20xxx]\x20[--linkConversationId\x20yyy]\x20[--whiteUserList\x20138xxxx,139xxxx]\x20[--conversationTitle\x20名称]\x20[--atSender\x20true|false]\x20[--receiveReply\x20true|false]\x20[--preBash\x20\x22命令\x22]','/task','提交任务到队列','/auth\x20add\x2013800138000','530oLCOLZ','length','/rm\x20./docs/obsolete/','owner','resetTime','-\x20**receiveReply:**\x20false\x20(不回复确认消息)','taskQueueSize','/info\x20robot','/cfg\x20--whiteUserList\x2013800138000','ownerOnly','清除历史会话和缓存(.sessions/.tasks/.images)','examples','useLocalOcr','shift','/log\x20[行数]','clientName','-\x20**taskSkill:**\x20','开始新的对话会话(结束当前会话)','**别名:**\x20','parseEndCommand','-\x20**Github:**\x20https://github.com/yihuineng/cc-ding','2408140hsQDzg','parseResetApiKeyCfgCommand','skill','/cfg\x20--dingToken\x20myToken\x20--whiteUserList\x2013800138000,13900139000','-\x20**atSender:**\x20false','true','usage','parseCommandHelp','getDirectoryStructure','-\x20**群名称:**\x20','-\x20**defaultDingToken:**\x20','/ls\x20product\x201','localeCompare','/touch\x20README.md','includeThinking','/new','parseHelpCommand','/cron\x20delete\x20cron_123','task','path','sessionMaxConcurrency','isValid','readdirSync','-\x20**本地OCR:**\x20关闭','add','-\x20**resultOnly:**\x20','description','/info','/task\x20帮我重构登录模块','/cron\x20list','match','在文件管理器或终端中打开工作目录','查看工作目录结构','substring','session','dingToken','__importDefault','taskCfg','--preBash','**示例:**','preBash','/cron\x20pause\x20cron_123','/bash\x20<命令>','conversationTitle','parseMqCommand','/cron\x200\x209\x20*\x20*\x20*\x20查看dima任务','...','/mq\x20|\x20/mq\x20-n\x20<数量>\x20|\x20/mq\x20-all','--atSender','/reset-apikeycfg','category','/mkdir\x20./docs','/rm\x20temp.txt','/bash\x20pwd','defaultDingToken','-\x20**作者:**\x20yihuineng','linkConversationId','-\x20**apiKeyCfg:**\x20','/cfg\x20--preBash\x20\x22source\x20.env\x22','push','filter','toLowerCase','重置API\x20Key配置(将所有Key标记为有效)','robot','/mq','/ls\x20root\x202','cancel','claudeSettings','test','/auth\x20[add|del\x20<手机号或userId>]','delete','/task\x20<任务描述>','aliases','📂\x20目录为空','cancelAll','parseBashCommand','注册当前群到配置,或刷新指定字段(已注册群)','startsWith','resultOnly','/rm\x20src/old.ts','/log','/clean\x20all','name','formatGlobalConfig','all','显示当前工作目录的绝对路径','在工作目录执行\x20bash\x20命令(如配置了\x20preBash\x20全局/群级别,将叠加前置执行)','/auth\x20del\x2013800138000','/mkdir','/rm','/cfg'];a4_0x4e95=function(){return _0x6be1f9;};return a4_0x4e95();}function parseMqCommand(_0x3be3d4){const _0x36bc17=a4_0x20d8b7,_0x378362=_0x3be3d4[_0x36bc17(0xb0)]();if(!/^\/mq(?:\s|$)/i[_0x36bc17(0x73)](_0x378362)&&_0x378362[_0x36bc17(0x143)]()!==_0x36bc17(0x146))return null;const _0x5d755f=_0x378362[_0x36bc17(0x127)](0x3)['trim']();if(!_0x5d755f)return{'type':_0x36bc17(0xc2)};const _0x5ec333=_0x5d755f[_0x36bc17(0x124)](/^-n\s+(\d+)$/i);if(_0x5ec333){const _0x51e0bc=parseInt(_0x5ec333[0x1],0xa);return _0x51e0bc>0x0?{'type':_0x36bc17(0x71),'count':_0x51e0bc}:{'type':'list'};}if(/^-all$/i['test'](_0x5d755f))return{'type':_0x36bc17(0x79)};return null;}function parseAuthCommand(_0x4c7fb9){const _0x5d53fb=a4_0x20d8b7,_0x1491e1=_0x4c7fb9[_0x5d53fb(0xb0)](),_0x310da5=_0x1491e1['match'](/^\/auth\s+add\s+(\S+)$/i);if(_0x310da5)return{'type':_0x5d53fb(0x11e),'staffId':_0x310da5[0x1]};const _0x328777=_0x1491e1[_0x5d53fb(0x124)](/^\/auth\s+del(?:ete)?\s+(\S+)$/i);if(_0x328777)return{'type':_0x5d53fb(0xdb),'staffId':_0x328777[0x1]};if(/^\/auth(?:\s+list)?$/i[_0x5d53fb(0x73)](_0x1491e1))return{'type':'list'};return null;}
1
+ 'use strict';const a4_0x2c04fa=a4_0x4b4e;(function(_0x113ccc,_0x532c2d){const _0x217ba3=a4_0x4b4e,_0x3d0b40=_0x113ccc();while(!![]){try{const _0x56d54b=-parseInt(_0x217ba3(0x210))/0x1+parseInt(_0x217ba3(0x1bc))/0x2+-parseInt(_0x217ba3(0x1f3))/0x3+parseInt(_0x217ba3(0x18b))/0x4*(-parseInt(_0x217ba3(0x1af))/0x5)+parseInt(_0x217ba3(0x231))/0x6+-parseInt(_0x217ba3(0x225))/0x7*(parseInt(_0x217ba3(0x19e))/0x8)+-parseInt(_0x217ba3(0x1dd))/0x9;if(_0x56d54b===_0x532c2d)break;else _0x3d0b40['push'](_0x3d0b40['shift']());}catch(_0x4907ec){_0x3d0b40['push'](_0x3d0b40['shift']());}}}(a4_0x52ea,0x8f374));var __importDefault=this&&this['__importDefault']||function(_0x233b21){const _0x17c293=a4_0x4b4e;return _0x233b21&&_0x233b21[_0x17c293(0x186)]?_0x233b21:{'default':_0x233b21};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports[a4_0x2c04fa(0x1f0)]=parseHelpCommand,exports[a4_0x2c04fa(0x1cb)]=parseCommandHelp,exports['getCommandByName']=getCommandByName,exports['formatHelpOverview']=formatHelpOverview,exports['formatCommandHelp']=formatCommandHelp,exports[a4_0x2c04fa(0x1c8)]=parseEndCommand,exports['parseInfoCommand']=parseInfoCommand,exports['formatConversationInfo']=formatConversationInfo,exports[a4_0x2c04fa(0x235)]=formatGlobalConfig,exports[a4_0x2c04fa(0x19d)]=parseLogCommand,exports['parseLsCommand']=parseLsCommand,exports[a4_0x2c04fa(0x19b)]=findSubdirByName,exports[a4_0x2c04fa(0x1ae)]=getDirectoryStructure,exports[a4_0x2c04fa(0x20a)]=parseContinueSessionCommand,exports[a4_0x2c04fa(0x207)]=parseCronCommand,exports['parsePwdCommand']=parsePwdCommand,exports[a4_0x2c04fa(0x21a)]=parseVersionCommand,exports['parseMkdirCommand']=parseMkdirCommand,exports['parseTouchCommand']=parseTouchCommand,exports[a4_0x2c04fa(0x1d3)]=parseRmCommand,exports['parseOpenCommand']=parseOpenCommand,exports[a4_0x2c04fa(0x1ea)]=parseCleanCommand,exports[a4_0x2c04fa(0x245)]=parseResetApiKeyCfgCommand,exports['parseCfgCommand']=parseCfgCommand,exports[a4_0x2c04fa(0x1c4)]=parseBashCommand,exports[a4_0x2c04fa(0x19a)]=parseMqCommand,exports[a4_0x2c04fa(0x1ee)]=parseAuthCommand;const fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a4_0x2c04fa(0x221))),COMMAND_REGISTRY=[{'name':a4_0x2c04fa(0x229),'description':a4_0x2c04fa(0x197),'usage':a4_0x2c04fa(0x229),'examples':[a4_0x2c04fa(0x229)],'category':'系统'},{'name':a4_0x2c04fa(0x1c3),'description':a4_0x2c04fa(0x1cf),'usage':'/info\x20[robot|session|task]','examples':[a4_0x2c04fa(0x1c3),a4_0x2c04fa(0x1bb),a4_0x2c04fa(0x1db),a4_0x2c04fa(0x1ce)],'category':'系统'},{'name':a4_0x2c04fa(0x21c),'description':a4_0x2c04fa(0x243),'usage':a4_0x2c04fa(0x1bf),'examples':['/log',a4_0x2c04fa(0x1d4)],'category':'会话'},{'name':a4_0x2c04fa(0x17c),'description':a4_0x2c04fa(0x1be),'usage':'/new\x20[初始消息]','examples':['/new','/new\x20帮我分析一下这个项目'],'category':'会话'},{'name':a4_0x2c04fa(0x1d9),'description':a4_0x2c04fa(0x1d1),'usage':'/resume\x20[会话ID]','examples':[a4_0x2c04fa(0x1d9),'/resume\x20abc123'],'category':'会话'},{'name':a4_0x2c04fa(0x217),'description':a4_0x2c04fa(0x192),'usage':a4_0x2c04fa(0x217),'examples':['/end'],'category':'会话'},{'name':a4_0x2c04fa(0x244),'description':a4_0x2c04fa(0x236),'usage':'/task\x20<任务描述>','examples':[a4_0x2c04fa(0x23b)],'category':'任务'},{'name':a4_0x2c04fa(0x1e9),'description':a4_0x2c04fa(0x1b4),'usage':a4_0x2c04fa(0x1cd),'examples':[a4_0x2c04fa(0x1e9),'/mq\x20-n\x201','/mq\x20-n\x203',a4_0x2c04fa(0x1a5)],'category':'任务'},{'name':a4_0x2c04fa(0x234),'description':a4_0x2c04fa(0x18c),'usage':a4_0x2c04fa(0x23f),'examples':[a4_0x2c04fa(0x1e2),'/cron\x200\x209\x20*\x20*\x20*\x20查看dima任务','/cron\x20list',a4_0x2c04fa(0x1a7),a4_0x2c04fa(0x1b2)],'category':'任务'},{'name':a4_0x2c04fa(0x1aa),'description':a4_0x2c04fa(0x21e),'usage':a4_0x2c04fa(0x1aa),'examples':[a4_0x2c04fa(0x1aa)],'category':'文件'},{'name':a4_0x2c04fa(0x1b8),'description':'查看工作目录结构','usage':a4_0x2c04fa(0x1e7),'examples':['/ls',a4_0x2c04fa(0x18a),a4_0x2c04fa(0x205)],'category':'文件'},{'name':'/mkdir','description':'在工作目录下创建文件夹(支持相对路径,不能超出工作目录范围)','usage':a4_0x2c04fa(0x1e5),'examples':[a4_0x2c04fa(0x17a),a4_0x2c04fa(0x201),a4_0x2c04fa(0x18d)],'category':'文件'},{'name':'/touch','description':'在工作目录下创建空文件(支持相对路径,不能超出工作目录范围)','usage':a4_0x2c04fa(0x187),'examples':[a4_0x2c04fa(0x20b),a4_0x2c04fa(0x188),a4_0x2c04fa(0x179)],'category':'文件'},{'name':a4_0x2c04fa(0x212),'description':'删除工作目录下的文件或目录(支持相对路径,不能超出工作目录范围)','usage':a4_0x2c04fa(0x1ca),'examples':[a4_0x2c04fa(0x18f),'/rm\x20src/old.ts',a4_0x2c04fa(0x184)],'category':'文件'},{'name':'/version','description':a4_0x2c04fa(0x228),'usage':a4_0x2c04fa(0x226),'examples':['/version'],'category':'系统'},{'name':a4_0x2c04fa(0x1a8),'description':a4_0x2c04fa(0x194),'usage':a4_0x2c04fa(0x1f8),'examples':[a4_0x2c04fa(0x1a8),a4_0x2c04fa(0x1da)],'category':'管理','ownerOnly':!![]},{'name':a4_0x2c04fa(0x1c9),'description':a4_0x2c04fa(0x181),'usage':a4_0x2c04fa(0x1c9),'examples':[a4_0x2c04fa(0x1c9)],'category':'管理','ownerOnly':!![]},{'name':a4_0x2c04fa(0x1ad),'description':a4_0x2c04fa(0x22a),'usage':a4_0x2c04fa(0x1ad),'examples':[a4_0x2c04fa(0x1ad)],'category':'管理','ownerOnly':!![]},{'name':a4_0x2c04fa(0x230),'description':a4_0x2c04fa(0x1ef),'usage':'/cfg\x20[--conversationId\x20xxx]\x20[--dingToken\x20xxx]\x20[--linkConversationId\x20yyy]\x20[--whiteUserList\x20138xxxx,139xxxx]\x20[--conversationTitle\x20名称]\x20[--atSender\x20true|false]\x20[--receiveReply\x20true|false]\x20[--preBash\x20\x22命令\x22]','examples':[a4_0x2c04fa(0x230),a4_0x2c04fa(0x19c),a4_0x2c04fa(0x1e4),a4_0x2c04fa(0x1e3),a4_0x2c04fa(0x242),'/cfg\x20--receiveReply\x20false',a4_0x2c04fa(0x191),a4_0x2c04fa(0x223)],'category':'管理','ownerOnly':!![]},{'name':a4_0x2c04fa(0x185),'description':a4_0x2c04fa(0x21b),'usage':'/bash\x20<命令>','examples':[a4_0x2c04fa(0x21d),a4_0x2c04fa(0x209),a4_0x2c04fa(0x219)],'category':'文件'},{'name':'/auth','description':a4_0x2c04fa(0x1e0),'usage':'/auth\x20[add|del\x20<手机号或userId>]','examples':[a4_0x2c04fa(0x1fd),a4_0x2c04fa(0x22e),a4_0x2c04fa(0x183)],'category':'管理','ownerOnly':!![]}],CATEGORY_DISPLAY=[{'category':'会话','icon':'💬'},{'category':'任务','icon':'📋'},{'category':'文件','icon':'📂'},{'category':'系统','icon':'⚙️'},{'category':'管理','icon':'🔧'}];function parseHelpCommand(_0x1ab63e){const _0x39c70f=a4_0x2c04fa;return _0x1ab63e[_0x39c70f(0x1a6)]()[_0x39c70f(0x22b)]()===_0x39c70f(0x229);}function parseCommandHelp(_0x464c74){const _0x39334b=a4_0x2c04fa,_0x4f95f6=_0x464c74[_0x39334b(0x1a6)](),_0x257881=_0x4f95f6[_0x39334b(0x233)](/^(\/\w+)\s+--help$/i);if(!_0x257881)return null;return _0x257881[0x1][_0x39334b(0x22b)]();}function getCommandByName(_0x1e78fe){const _0x25cda7=a4_0x2c04fa,_0x470eb4=_0x1e78fe['toLowerCase']();return COMMAND_REGISTRY[_0x25cda7(0x1fe)](_0xe5490d=>_0xe5490d['name'][_0x25cda7(0x22b)]()===_0x470eb4||_0xe5490d[_0x25cda7(0x216)]?.[_0x25cda7(0x1c2)](_0x39b13f=>_0x39b13f[_0x25cda7(0x22b)]()===_0x470eb4));}function formatHelpOverview(_0x494260,_0x4df8d9){const _0x44a026=a4_0x2c04fa,_0x21d83d=COMMAND_REGISTRY[_0x44a026(0x1a0)](_0x36017f=>_0x4df8d9||!_0x36017f[_0x44a026(0x1c1)]),_0x3810bb=[_0x44a026(0x1ed),'----',_0x44a026(0x1d0)+_0x494260,'-\x20**作者:**\x20yihuineng','-\x20**Github:**\x20https://github.com/yihuineng/cc-ding',_0x44a026(0x196)];for(const {category:_0x2c5487,icon:_0x4227a6}of CATEGORY_DISPLAY){const _0x4446d2=_0x21d83d['filter'](_0x1e73a8=>_0x1e73a8[_0x44a026(0x1f7)]===_0x2c5487);if(_0x4446d2[_0x44a026(0x1a9)]===0x0)continue;_0x3810bb['push'](_0x4227a6+'\x20**'+_0x2c5487+'**');for(const _0x54dffa of _0x4446d2){_0x3810bb[_0x44a026(0x1f9)](_0x44a026(0x1f1)+_0x54dffa[_0x44a026(0x195)]+'`\x20'+_0x54dffa['description']);}_0x3810bb['push']('');}return _0x3810bb[_0x44a026(0x1f9)](_0x44a026(0x204)),_0x3810bb[_0x44a026(0x1dc)]('\x0a');}function formatCommandHelp(_0x2f3141){const _0x396e86=a4_0x2c04fa,_0x4b2b50=[_0x396e86(0x175)+_0x2f3141[_0x396e86(0x195)],'','**描述:**\x20'+_0x2f3141[_0x396e86(0x1f5)],'',_0x396e86(0x1eb)+_0x2f3141[_0x396e86(0x239)]+'`'];_0x2f3141[_0x396e86(0x216)]?.[_0x396e86(0x1a9)]&&_0x4b2b50['push']('',_0x396e86(0x240)+_0x2f3141[_0x396e86(0x216)][_0x396e86(0x1dc)](',\x20'));_0x4b2b50[_0x396e86(0x1f9)]('',_0x396e86(0x199));for(const _0x46810b of _0x2f3141[_0x396e86(0x17b)]){_0x4b2b50[_0x396e86(0x1f9)]('-\x20`'+_0x46810b+'`');}return _0x4b2b50[_0x396e86(0x1dc)]('\x0a');}function parseEndCommand(_0x2c4c98){const _0xda1585=a4_0x2c04fa;return _0x2c4c98[_0xda1585(0x1a6)]()[_0xda1585(0x22b)]()===_0xda1585(0x217);}function parseInfoCommand(_0x426a6c){const _0x2ce0fe=a4_0x2c04fa,_0x5d9ebd=_0x426a6c['trim']()[_0x2ce0fe(0x22b)]();if(_0x5d9ebd===_0x2ce0fe(0x1c3))return _0x2ce0fe(0x211);if(_0x5d9ebd==='/info\x20robot')return _0x2ce0fe(0x1e6);if(_0x5d9ebd==='/info\x20session')return _0x2ce0fe(0x17f);if(_0x5d9ebd==='/info\x20task')return'task';return null;}function formatConversationInfo(_0x1351b4,_0x4b0ee0,_0x3803b0,_0x49d006){const _0x3fc88d=a4_0x2c04fa,_0x2ca17a=[_0x3fc88d(0x20d)+_0x4b0ee0];if(_0x1351b4['conversationTitle'])_0x2ca17a['push'](_0x3fc88d(0x215)+_0x1351b4['conversationTitle']);if(_0x1351b4[_0x3fc88d(0x180)])_0x2ca17a['push'](_0x3fc88d(0x1ac)+(_0x1351b4[_0x3fc88d(0x180)]==='1'?'单聊':_0x1351b4[_0x3fc88d(0x180)]==='2'?'群聊':_0x1351b4[_0x3fc88d(0x180)]));if(_0x49d006)_0x2ca17a['push'](_0x3fc88d(0x1e8)+_0x49d006+'`');if(_0x1351b4[_0x3fc88d(0x1f2)])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x1e1)+_0x1351b4[_0x3fc88d(0x1f2)]);if(_0x1351b4['agent'])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x19f)+_0x1351b4[_0x3fc88d(0x238)]);if(_0x1351b4[_0x3fc88d(0x1ba)])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x220)+_0x1351b4[_0x3fc88d(0x1ba)][_0x3fc88d(0x1fc)](0x0,0x8)+_0x3fc88d(0x178));if(_0x1351b4[_0x3fc88d(0x1ec)]?.[_0x3fc88d(0x1a9)]){const _0x15320f=_0x1351b4[_0x3fc88d(0x1ec)][_0x3fc88d(0x1d6)](_0x1442d2=>{const _0x55c082=_0x3803b0?.(_0x1442d2);return _0x55c082||_0x1442d2;})['join'](',\x20');_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x173)+_0x15320f);}if(_0x1351b4[_0x3fc88d(0x1df)]===![])_0x2ca17a[_0x3fc88d(0x1f9)]('-\x20**atSender:**\x20false');if(_0x1351b4[_0x3fc88d(0x213)]===![])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x218));if(_0x1351b4[_0x3fc88d(0x176)]===![])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x20f));if(_0x1351b4[_0x3fc88d(0x232)]?.[_0x3fc88d(0x174)])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x172)+_0x1351b4[_0x3fc88d(0x232)][_0x3fc88d(0x174)]);if(_0x1351b4[_0x3fc88d(0x1fa)])_0x2ca17a[_0x3fc88d(0x1f9)](_0x3fc88d(0x1a2)+_0x1351b4[_0x3fc88d(0x1fa)]+'`');return _0x2ca17a['join']('\x0a');}function formatGlobalConfig(_0x4f1ba3){const _0x3e94a1=a4_0x2c04fa,_0x582cee=['-\x20**clientName:**\x20'+(_0x4f1ba3[_0x3e94a1(0x1b0)]||'-'),_0x3e94a1(0x227)+(_0x4f1ba3[_0x3e94a1(0x1d2)]??0x5),_0x3e94a1(0x1fb)+(_0x4f1ba3['taskHandlerCount']??0x1),_0x3e94a1(0x23a)+(_0x4f1ba3['taskQueueSize']??0x32),_0x3e94a1(0x177)+(_0x4f1ba3['includeThinking']??![]),'-\x20**resultOnly:**\x20'+(_0x4f1ba3[_0x3e94a1(0x1d8)]??!![])];if(_0x4f1ba3[_0x3e94a1(0x193)])_0x582cee[_0x3e94a1(0x1f9)](_0x3e94a1(0x20c)+_0x4f1ba3[_0x3e94a1(0x193)][_0x3e94a1(0x1fc)](0x0,0x8)+_0x3e94a1(0x178));if(_0x4f1ba3[_0x3e94a1(0x1d7)])_0x582cee[_0x3e94a1(0x1f9)](_0x3e94a1(0x1b5)+_0x4f1ba3[_0x3e94a1(0x1d7)]);if(_0x4f1ba3[_0x3e94a1(0x1ec)]?.[_0x3e94a1(0x1a9)])_0x582cee[_0x3e94a1(0x1f9)](_0x3e94a1(0x171)+_0x4f1ba3['whiteUserList']['join'](',\x20'));if(_0x4f1ba3[_0x3e94a1(0x222)]){const _0x4320df=_0x4f1ba3[_0x3e94a1(0x222)][_0x3e94a1(0x1c6)][_0x3e94a1(0x1a0)](_0x17c651=>_0x17c651['isValid'])[_0x3e94a1(0x1a9)];_0x582cee[_0x3e94a1(0x1f9)]('-\x20**apiKeyCfg:**\x20'+_0x4320df+'/'+_0x4f1ba3['apiKeyCfg']['claudeSettings']['length']+_0x3e94a1(0x203)),_0x582cee[_0x3e94a1(0x1f9)]('\x20\x20-\x20**最近重置:**\x20'+(_0x4f1ba3[_0x3e94a1(0x222)][_0x3e94a1(0x1b9)]||'-'));}return _0x582cee[_0x3e94a1(0x1dc)]('\x0a');}function parseLogCommand(_0x1802f2){const _0x249850=_0x1802f2['trim'](),_0x246caa=_0x249850['match'](/^\/log(?:\s+(\d+))?$/i);if(!_0x246caa)return null;const _0x41b842=parseInt(_0x246caa[0x1],0xa);return isNaN(_0x41b842)||_0x41b842<=0x0?0xa:_0x41b842;}function parseLsCommand(_0x13ba37){const _0x360fbf=a4_0x2c04fa,_0x20ebdb=_0x13ba37[_0x360fbf(0x1a6)](),_0x5b7fa1=_0x20ebdb[_0x360fbf(0x233)](/^\/ls(?:\s+(.+))?$/i);if(!_0x5b7fa1)return null;if(_0x5b7fa1[0x1]===undefined)return{'target':'','depth':0x1};const _0x527262=_0x5b7fa1[0x1][_0x360fbf(0x1a6)]()[_0x360fbf(0x1c5)](/\s+/),_0x5879ef=_0x527262[0x0]||'',_0x15ee6c=_0x527262[0x1]?parseInt(_0x527262[0x1],0xa):0x1;return{'target':_0x5879ef,'depth':isNaN(_0x15ee6c)||_0x15ee6c<0x0?0x1:Math[_0x360fbf(0x22d)](_0x15ee6c,0x5)};}function findSubdirByName(_0x57772f,_0x268790,_0x35974e=0x3){const _0x312764=a4_0x2c04fa,_0x510a95=[{'dir':_0x57772f,'depth':0x0}];while(_0x510a95[_0x312764(0x1a9)]>0x0){const {dir:_0x19b53c,depth:_0x87a3be}=_0x510a95[_0x312764(0x20e)]();if(_0x87a3be>_0x35974e)continue;try{const _0x28dca1=fs_1[_0x312764(0x17d)]['readdirSync'](_0x19b53c,{'withFileTypes':!![]});for(const _0x272351 of _0x28dca1){if(!_0x272351[_0x312764(0x1cc)]()||_0x272351['name']['startsWith']('.'))continue;if(_0x272351['name']===_0x268790)return path_1[_0x312764(0x17d)][_0x312764(0x1dc)](_0x19b53c,_0x272351['name']);_0x510a95[_0x312764(0x1f9)]({'dir':path_1[_0x312764(0x17d)][_0x312764(0x1dc)](_0x19b53c,_0x272351[_0x312764(0x195)]),'depth':_0x87a3be+0x1});}}catch{continue;}}return null;}function getDirectoryStructure(_0x394490,_0xec51e1=0x0,_0x6170f1=0x1){const _0x239bcb=a4_0x2c04fa;try{const _0x2e5a92=fs_1[_0x239bcb(0x17d)][_0x239bcb(0x23c)](_0x394490,{'withFileTypes':!![]})['filter'](_0x5e2171=>!_0x5e2171['name']['startsWith']('.'));if(_0x2e5a92[_0x239bcb(0x1a9)]===0x0)return _0xec51e1===0x0?'📂\x20目录为空':'';_0x2e5a92[_0x239bcb(0x23e)]((_0x52c4bb,_0x8fc557)=>{const _0x592e28=_0x239bcb;if(_0x52c4bb['isDirectory']()!==_0x8fc557[_0x592e28(0x1cc)]())return _0x52c4bb[_0x592e28(0x1cc)]()?-0x1:0x1;return _0x52c4bb[_0x592e28(0x195)][_0x592e28(0x21f)](_0x8fc557['name']);});const _0x295727=[],_0x4bbdc5='.\x20'[_0x239bcb(0x200)](_0xec51e1);for(const _0x4d6966 of _0x2e5a92){const _0x3c2329=_0x4d6966['isDirectory']()?_0x239bcb(0x1b3):_0x239bcb(0x190),_0x33e359=_0x4d6966[_0x239bcb(0x1cc)]()?'/':'';_0x295727[_0x239bcb(0x1f9)](''+_0x4bbdc5+_0x3c2329+_0x4d6966[_0x239bcb(0x195)]+_0x33e359);if(_0x4d6966[_0x239bcb(0x1cc)]()&&_0xec51e1<_0x6170f1){const _0x13e57f=path_1[_0x239bcb(0x17d)][_0x239bcb(0x1dc)](_0x394490,_0x4d6966[_0x239bcb(0x195)]),_0x4b8ddf=getDirectoryStructure(_0x13e57f,_0xec51e1+0x1,_0x6170f1);_0x4b8ddf&&_0x295727[_0x239bcb(0x1f9)](_0x4b8ddf);}}return _0x295727[_0x239bcb(0x1dc)]('\x0a');}catch{return _0xec51e1===0x0?_0x239bcb(0x1d5):'';}}function parseContinueSessionCommand(_0x2922d1){const _0x2b64cb=a4_0x2c04fa,_0x19d28b=_0x2922d1[_0x2b64cb(0x1a6)]()['match'](/^\/resume(?:\s+(\S+))?$/i);if(!_0x19d28b)return null;return _0x19d28b[0x1]!==undefined?_0x19d28b[0x1]:'';}function looksLikeCronExpression(_0x14bc67){const _0x400e73=a4_0x2c04fa,_0x4041a8=_0x14bc67[_0x400e73(0x1a6)]()['split'](/\s+/);if(_0x4041a8[_0x400e73(0x1a9)]!==0x5)return![];return _0x4041a8[_0x400e73(0x1bd)](_0x9aedce=>/^[\d*/\-]+$/['test'](_0x9aedce));}function parseCronCommand(_0x106d08){const _0x3ab9c1=a4_0x2c04fa,_0x4adcb9=_0x106d08[_0x3ab9c1(0x1a6)]();if(!_0x4adcb9[_0x3ab9c1(0x22b)]()[_0x3ab9c1(0x198)](_0x3ab9c1(0x234)))return null;const _0x3007d2=_0x4adcb9[_0x3ab9c1(0x1fc)](0x5)[_0x3ab9c1(0x1a6)]();if(!_0x3007d2)return null;if(/^(list|ls)$/i[_0x3ab9c1(0x202)](_0x3007d2))return{'type':_0x3ab9c1(0x208)};const _0x3a5f2c=_0x3007d2[_0x3ab9c1(0x233)](/^(?:delete|rm)\s+(\S+)$/i);if(_0x3a5f2c)return{'type':_0x3ab9c1(0x206),'id':_0x3a5f2c[0x1]};const _0x5dffce=_0x3007d2[_0x3ab9c1(0x233)](/^pause\s+(\S+)$/i);if(_0x5dffce)return{'type':_0x3ab9c1(0x237),'id':_0x5dffce[0x1]};const _0x4e056e=_0x3007d2['match'](/^resume\s+(\S+)$/i);if(_0x4e056e)return{'type':_0x3ab9c1(0x22f),'id':_0x4e056e[0x1]};const _0x556597=_0x3007d2[_0x3ab9c1(0x233)](/^(\S+\s+\S+\s+\S+\s+\S+\s+\S+)\s+(.+)$/);if(_0x556597&&looksLikeCronExpression(_0x556597[0x1]))return{'type':_0x3ab9c1(0x22c),'cronExpression':_0x556597[0x1],'prompt':_0x556597[0x2]};return{'type':_0x3ab9c1(0x1ff),'input':_0x3007d2};}function parsePwdCommand(_0x42b1f9){return _0x42b1f9['trim']()==='/pwd';}function a4_0x4b4e(_0xba8c06,_0x53aee4){_0xba8c06=_0xba8c06-0x171;const _0x52eaeb=a4_0x52ea();let _0x4b4eea=_0x52eaeb[_0xba8c06];return _0x4b4eea;}function parseVersionCommand(_0x524f89){const _0x105147=a4_0x2c04fa;return _0x524f89['trim']()===_0x105147(0x226);}function parsePathCommand(_0x416f0b,_0x114e7c){const _0x8addb6=a4_0x2c04fa,_0x34e62b=_0x416f0b[_0x8addb6(0x1a6)](),_0xfb288d=_0x34e62b['match'](new RegExp(_0x8addb6(0x214)+_0x114e7c+'\x5cs+(.+)$'));if(!_0xfb288d)return null;const _0x2059b7=_0xfb288d[0x1][_0x8addb6(0x1a6)]();return _0x2059b7||null;}function parseMkdirCommand(_0x2e170d){const _0x53666f=a4_0x2c04fa;return parsePathCommand(_0x2e170d,_0x53666f(0x1ab));}function parseTouchCommand(_0x17ce71){const _0x166756=a4_0x2c04fa;return parsePathCommand(_0x17ce71,_0x166756(0x224));}function parseRmCommand(_0x27f467){return parsePathCommand(_0x27f467,'rm');}function a4_0x52ea(){const _0xfa9cff=['filter','/clean\x20all','-\x20**preBash:**\x20`','add','--atSender','/mq\x20-all','trim','/cron\x20pause\x20cron_123','/open','length','/pwd','mkdir','-\x20**会话类型:**\x20','/reset-apikeycfg','getDirectoryStructure','4835eoXbMV','clientName','conversationTitle','/cron\x20delete\x20cron_123','📁\x20','查看和管理当前会话消息队列(排队中的消息)','-\x20**owner:**\x20','current','replace','/ls','resetTime','dingToken','/info\x20robot','1260502CeJwzW','every','开始新的对话会话(结束当前会话)','/log\x20[行数]','cancel','ownerOnly','some','/info','parseBashCommand','split','claudeSettings','yes','parseEndCommand','/clean','/rm\x20<相对路径>','parseCommandHelp','isDirectory','/mq\x20|\x20/mq\x20-n\x20<数量>\x20|\x20/mq\x20-all','/info\x20task','查看群配置、会话和任务信息','-\x20**版本:**\x20','继续指定的历史会话(可指定会话ID,不指定则恢复最近一个)','sessionMaxConcurrency','parseRmCommand','/log\x2020','❌\x20无法读取目录','map','owner','resultOnly','/resume','/open\x20shell','/info\x20session','join','229311XbiyMV','true','atSender','管理当前群白名单(add/del,默认list)','-\x20**关联会话ID:**\x20','/cron\x20每天早上9点查看dima任务','/cfg\x20--whiteUserList\x2013800138000','/cfg\x20--conversationTitle\x20工作群','/mkdir\x20<相对路径>','robot','/ls\x20[目标目录]\x20[展开层数]','-\x20**工作目录:**\x20`','/mq','parseCleanCommand','**用法:**\x20`','whiteUserList','###\x20🤗','parseAuthCommand','注册当前群到配置,或刷新指定字段(已注册群)','parseHelpCommand','-\x20`','linkConversationId','1624077TTvdXV','shell','description','--dingToken','category','/open\x20[shell]','push','preBash','-\x20**taskHandlerCount:**\x20','substring','/auth','find','create_nl','repeat','/mkdir\x20src/components','test','\x20有效','💡\x20输入\x20`/{命令}\x20--help`\x20查看命令详细用法','/ls\x20product\x201','delete','parseCronCommand','list','/bash\x20pwd','parseContinueSessionCommand','/touch\x20README.md','-\x20**defaultDingToken:**\x20','-\x20**群ID:**\x20','shift','-\x20**本地OCR:**\x20关闭','260307mGklSQ','all','/rm','receiveReply','^\x5c/','-\x20**群名称:**\x20','aliases','/end','-\x20**receiveReply:**\x20false\x20(不回复确认消息)','/bash\x20git\x20status','parseVersionCommand','在工作目录执行\x20bash\x20命令(如配置了\x20preBash\x20全局/群级别,将叠加前置执行)','/log','/bash\x20ls\x20-la','显示当前工作目录的绝对路径','localeCompare','-\x20**dingToken:**\x20','path','apiKeyCfg','/cfg\x20--conversationId\x20targetConvId\x20--dingToken\x20xxx\x20--conversationTitle\x20目标群','touch','14UlRYPW','/version','-\x20**sessionMaxConcurrency:**\x20','查看工具版本信息','/help','重置API\x20Key配置(将所有Key标记为有效)','toLowerCase','create_cron','min','/auth\x20add\x2013800138000','resume','/cfg','5274612YmbEYq','taskCfg','match','/cron','formatGlobalConfig','提交任务到队列','pause','agent','usage','-\x20**taskQueueSize:**\x20','/task\x20帮我重构登录模块','readdirSync','del','sort','/cron\x20<自然语言描述>\x20|\x20/cron\x20<cron表达式>\x20<任务描述>\x20|\x20/cron\x20list|pause|resume|delete\x20<id>','**别名:**\x20','--conversationTitle','/cfg\x20--atSender\x20false','查看最近会话日志','/task','parseResetApiKeyCfgCommand','conversationId','--preBash','-\x20**全局白名单:**\x20','-\x20**taskSkill:**\x20','-\x20**群白名单:**\x20','skill','###\x20📖\x20','useLocalOcr','-\x20**includeThinking:**\x20','...','/touch\x20./config.json','/mkdir\x20src','examples','/new','default','--conversationId','session','conversationType','清除历史会话和缓存(.sessions/.tasks/.images)','folder','/auth\x20del\x2013800138000','/rm\x20./docs/obsolete/','/bash','__esModule','/touch\x20<相对路径>','/touch\x20src/cc-ding-cli.ts','--whiteUserList','/ls\x20root\x202','8CpoaYR','创建和管理定时任务(Claude自动分析自然语言)','/mkdir\x20./docs','--receiveReply','/rm\x20temp.txt','📄\x20','/cfg\x20--preBash\x20\x22source\x20.env\x22','结束当前会话','defaultDingToken','在文件管理器或终端中打开工作目录','name','----','查看所有可用命令','startsWith','**示例:**','parseMqCommand','findSubdirByName','/cfg\x20--dingToken\x20myToken\x20--whiteUserList\x2013800138000,13900139000','parseLogCommand','374648pqyLiY','-\x20**agent:**\x20'];a4_0x52ea=function(){return _0xfa9cff;};return a4_0x52ea();}function parseOpenCommand(_0x24768d){const _0x2b6e01=a4_0x2c04fa,_0x4ada47=_0x24768d[_0x2b6e01(0x1a6)]()[_0x2b6e01(0x22b)]();if(_0x4ada47==='/open')return _0x2b6e01(0x182);if(_0x4ada47==='/open\x20shell')return _0x2b6e01(0x1f4);return null;}function parseCleanCommand(_0x4f82e3){const _0x12c3d2=a4_0x2c04fa,_0x589daf=_0x4f82e3['trim']()[_0x12c3d2(0x22b)]();if(_0x589daf===_0x12c3d2(0x1c9))return _0x12c3d2(0x1b6);if(_0x589daf===_0x12c3d2(0x1a1))return _0x12c3d2(0x211);return null;}function parseResetApiKeyCfgCommand(_0x2de0a7){const _0x5de75d=a4_0x2c04fa;return _0x2de0a7['trim']()[_0x5de75d(0x22b)]()==='/reset-apikeycfg';}function parseCfgCommand(_0x4f1c7d){const _0x624d84=a4_0x2c04fa,_0x27fadc=_0x4f1c7d['trim']();if(!/^\/cfg(?:\s|$)/i[_0x624d84(0x202)](_0x27fadc))return null;const _0x56a233=_0x27fadc[_0x624d84(0x1fc)](0x4)[_0x624d84(0x1a6)]();if(!_0x56a233)return{};if(/^--help$/i[_0x624d84(0x202)](_0x56a233))return null;const _0x3c430d={},_0x64a4=_0x56a233[_0x624d84(0x1c5)](/\s+/);for(let _0x3ec26d=0x0;_0x3ec26d<_0x64a4[_0x624d84(0x1a9)];_0x3ec26d++){const _0x2fa933=_0x64a4[_0x3ec26d];if(_0x2fa933===_0x624d84(0x1f6)&&_0x64a4[_0x3ec26d+0x1])_0x3c430d[_0x624d84(0x1ba)]=_0x64a4[++_0x3ec26d];else{if(_0x2fa933==='--linkConversationId'&&_0x64a4[_0x3ec26d+0x1])_0x3c430d['linkConversationId']=_0x64a4[++_0x3ec26d];else{if(_0x2fa933===_0x624d84(0x17e)&&_0x64a4[_0x3ec26d+0x1])_0x3c430d[_0x624d84(0x246)]=_0x64a4[++_0x3ec26d];else{if(_0x2fa933===_0x624d84(0x189)&&_0x64a4[_0x3ec26d+0x1])_0x3c430d[_0x624d84(0x1ec)]=_0x64a4[++_0x3ec26d][_0x624d84(0x1c5)](',')['map'](_0x4ab01b=>_0x4ab01b[_0x624d84(0x1a6)]())[_0x624d84(0x1a0)](Boolean);else{if(_0x2fa933===_0x624d84(0x241)&&_0x64a4[_0x3ec26d+0x1]){const _0x48154c=[];while(_0x3ec26d+0x1<_0x64a4[_0x624d84(0x1a9)]&&!_0x64a4[_0x3ec26d+0x1][_0x624d84(0x198)]('--')){_0x48154c['push'](_0x64a4[++_0x3ec26d]);}_0x48154c[_0x624d84(0x1a9)]>0x0&&(_0x3c430d[_0x624d84(0x1b1)]=_0x48154c['join']('\x20'));}else{if(_0x2fa933===_0x624d84(0x1a4)&&_0x64a4[_0x3ec26d+0x1]){const _0x4ef25a=_0x64a4[++_0x3ec26d][_0x624d84(0x22b)]();_0x3c430d[_0x624d84(0x1df)]=_0x4ef25a==='true'||_0x4ef25a==='1'||_0x4ef25a===_0x624d84(0x1c7);}else{if(_0x2fa933===_0x624d84(0x18e)&&_0x64a4[_0x3ec26d+0x1]){const _0x942419=_0x64a4[++_0x3ec26d][_0x624d84(0x22b)]();_0x3c430d['receiveReply']=_0x942419===_0x624d84(0x1de)||_0x942419==='1'||_0x942419==='yes';}else{if(_0x2fa933===_0x624d84(0x247)&&_0x64a4[_0x3ec26d+0x1]){const _0x3189b2=[];while(_0x3ec26d+0x1<_0x64a4['length']&&!_0x64a4[_0x3ec26d+0x1]['startsWith']('--')){_0x3189b2[_0x624d84(0x1f9)](_0x64a4[++_0x3ec26d]);}_0x3189b2[_0x624d84(0x1a9)]>0x0&&(_0x3c430d[_0x624d84(0x1fa)]=_0x3189b2[_0x624d84(0x1dc)]('\x20')[_0x624d84(0x1b7)](/^["']|["']$/g,''));}}}}}}}}}return _0x3c430d;}function parseBashCommand(_0x22c1bb){const _0x566869=a4_0x2c04fa,_0x2aae48=_0x22c1bb[_0x566869(0x1a6)](),_0x4a4f37=_0x2aae48[_0x566869(0x233)](/^\/bash\s+(.+)$/i);if(!_0x4a4f37)return null;const _0x709973=_0x4a4f37[0x1]['trim']();return _0x709973||null;}function parseMqCommand(_0x554b65){const _0x1b69c7=a4_0x2c04fa,_0x53c51a=_0x554b65['trim']();if(!/^\/mq(?:\s|$)/i[_0x1b69c7(0x202)](_0x53c51a)&&_0x53c51a['toLowerCase']()!==_0x1b69c7(0x1e9))return null;const _0x2821a8=_0x53c51a[_0x1b69c7(0x1fc)](0x3)[_0x1b69c7(0x1a6)]();if(!_0x2821a8)return{'type':'list'};const _0x110caa=_0x2821a8[_0x1b69c7(0x233)](/^-n\s+(\d+)$/i);if(_0x110caa){const _0x5990b8=parseInt(_0x110caa[0x1],0xa);return _0x5990b8>0x0?{'type':_0x1b69c7(0x1c0),'count':_0x5990b8}:{'type':_0x1b69c7(0x208)};}if(/^-all$/i['test'](_0x2821a8))return{'type':'cancelAll'};return null;}function parseAuthCommand(_0x2da8df){const _0x3daf68=a4_0x2c04fa,_0x38aca6=_0x2da8df[_0x3daf68(0x1a6)](),_0x300933=_0x38aca6[_0x3daf68(0x233)](/^\/auth\s+add\s+(\S+)$/i);if(_0x300933)return{'type':_0x3daf68(0x1a3),'staffId':_0x300933[0x1]};const _0x3ff06b=_0x38aca6[_0x3daf68(0x233)](/^\/auth\s+del(?:ete)?\s+(\S+)$/i);if(_0x3ff06b)return{'type':_0x3daf68(0x23d),'staffId':_0x3ff06b[0x1]};if(/^\/auth(?:\s+list)?$/i[_0x3daf68(0x202)](_0x38aca6))return{'type':_0x3daf68(0x208)};return null;}
@@ -1 +1 @@
1
- 'use strict';const a5_0x1544ce=a5_0x337a;(function(_0x3e25c2,_0x3bbc65){const _0x115a3d=a5_0x337a,_0x57465b=_0x3e25c2();while(!![]){try{const _0x49a1ff=parseInt(_0x115a3d(0xd3))/0x1+-parseInt(_0x115a3d(0x109))/0x2*(parseInt(_0x115a3d(0xac))/0x3)+parseInt(_0x115a3d(0x147))/0x4*(parseInt(_0x115a3d(0x11e))/0x5)+parseInt(_0x115a3d(0x132))/0x6*(-parseInt(_0x115a3d(0x146))/0x7)+parseInt(_0x115a3d(0x12a))/0x8*(parseInt(_0x115a3d(0x10b))/0x9)+-parseInt(_0x115a3d(0xf8))/0xa*(-parseInt(_0x115a3d(0xe5))/0xb)+-parseInt(_0x115a3d(0x138))/0xc*(parseInt(_0x115a3d(0xd1))/0xd);if(_0x49a1ff===_0x3bbc65)break;else _0x57465b['push'](_0x57465b['shift']());}catch(_0x5539b9){_0x57465b['push'](_0x57465b['shift']());}}}(a5_0x45a5,0xa7a51));var __importDefault=this&&this[a5_0x1544ce(0xef)]||function(_0x4d1421){const _0x36a663=a5_0x1544ce;return _0x4d1421&&_0x4d1421[_0x36a663(0x11f)]?_0x4d1421:{'default':_0x4d1421};};Object[a5_0x1544ce(0x122)](exports,a5_0x1544ce(0x11f),{'value':!![]}),exports['CronEngine']=void 0x0,exports[a5_0x1544ce(0x12d)]=isValidCronExpression,exports[a5_0x1544ce(0x12b)]=formatCronJobList,exports[a5_0x1544ce(0xcf)]=formatCronJobInfo;const fs_1=__importDefault(require('fs')),readline_1=__importDefault(require(a5_0x1544ce(0xb5))),child_process_1=require('child_process'),utils_ok_1=require(a5_0x1544ce(0xce)),messaging_1=require('./messaging'),claude_process_1=require(a5_0x1544ce(0xaa)),task_1=require(a5_0x1544ce(0xfd)),session_1=require(a5_0x1544ce(0x13f));function getCronFile(_0x55797f){const _0x21f4bb=a5_0x1544ce;return(0x0,session_1[_0x21f4bb(0x13b)])(_0x55797f)+'/cron.json';}function a5_0x45a5(){const _0x2a22c0=['./task','end','已暂停','log','desc','lastRunAt','trim','❌\x20定时任务执行失败:\x20','start','agent','分析超时(60s)','Claude\x20TPM\x20限流(422),请稍后重试','22IAeKXf','destroy','4879503RRWKpQ','MAX_CONCURRENT_JOBS','taskCfg','lastCheckedTime','-\x20任务:\x20','filter','\x20开始执行:\x20','prompt','dateUtil','default','claude','cron',']\x20Cron任务\x20','getJob','test','-\x20描述:\x20','jobs','Claude\x20返回格式不正确','message','5bKTbAb','__esModule','senderStaffId','executeClaudeQuery','defineProperty','--settings','result','isArray','addJob','###\x20⏰\x20定时任务列表\x0a','indexOf','toString','16LWSJEW','formatCronJobList','\x20个任务\x20(','isValidCronExpression','startScheduler','Claude\x20认证失败(401),请检查\x20API\x20Key\x20配置','substring','-\x20**描述:**\x20','288276fLnSPE','checkJobsAt','getDay','pipe','executeJob','runningJobIds','72aIlViN','-\x20**创建时间:**\x20','enabled','getClientDir','find','YYYY-MM-DD-HH-mm-ss','getHours','./session','enqueueAsTask',']\x20Cron引擎已启动,\x20共\x20','kill','splice','toggleJob','persist','161fQUEhe','1231564xvyDbW','readFileSync','mkdirSync','resolveClaudeSettingsPath','activeSessions','Claude\x20进程异常退出,无输出。请检查\x20claude\x20命令是否可用','data','./claude-process','📭\x20暂无定时任务','315402ECqyUO','-\x20创建者:\x20','toISOString','-\x20**创建者:**\x20','stdin','stderr','write','warn','已恢复','readline','getConversationDir','\x20降级到任务队列失败:','saveActiveSession','\x20的会话有活跃session,\x20降级到任务队列','line','-\x20Cron:\x20`','-\x20**任务:**\x20','stringify','[cron]','parse','\x20启用)','--verbose','--permission-mode','tick','includes','spawn','length','timer','Claude\x20返回的cron表达式无效:\x20','getDate','-\x20上次执行:\x20','\x20无通知能力(无dingToken且无defaultDingToken),\x20跳过执行','error','--output-format','utils-ok','formatCronJobInfo',']\x20Cron并发上限(','1755507pomLWa','分析失败\x20(退出码:\x20','1369911vbCGeT','description','push','findActiveSession','sendDingMessage','--print','join','now','senderNick','writeFileSync',']\x20[SYSTEM]:\x20定时任务触发:\x20','cronExpression',']\x20Cron执行Claude查询失败:\x20',']\x20删除定时任务:\x20','###\x20⏰\x20定时任务\x20','appendFileSync','split','delete','77zJbIgJ','has','\x20的会话配置不存在,\x20跳过执行','timestamp','💡\x20`/cron\x20pause\x20<id>`\x20暂停\x20|\x20`/cron\x20resume\x20<id>`\x20恢复\x20|\x20`/cron\x20delete\x20<id>`\x20删除','size','CronEngine','map','some',']\x20Cron触发:\x20','__importDefault','analyzeAndCreate','content','skill','stream-json','conversationId',']\x20Cron分析:\x20','parseClaudeStreamLine',']\x20新增定时任务:\x20','1423290dHxAno','utf-8','{INPUT}','bypassPermissions',']\x20定时任务\x20'];a5_0x45a5=function(){return _0x2a22c0;};return a5_0x45a5();}function loadCronJobs(_0x4a245b){const _0x27b44b=a5_0x1544ce,_0xb0f9e=getCronFile(_0x4a245b);try{const _0x452fbc=JSON['parse'](fs_1['default'][_0x27b44b(0x148)](_0xb0f9e,'utf-8'));return Array[_0x27b44b(0x125)](_0x452fbc)?_0x452fbc:_0x452fbc[_0x27b44b(0x11b)]||[];}catch{return[];}}function saveCronJobs(_0x205072,_0x4b3c3b){const _0x460ec3=a5_0x1544ce,_0x4a622b=getCronFile(_0x205072);fs_1[_0x460ec3(0x114)][_0x460ec3(0xdc)](_0x4a622b,JSON[_0x460ec3(0xbd)](_0x4b3c3b,null,0x2),'utf-8');}function a5_0x337a(_0x3fa5f0,_0x59b9ea){_0x3fa5f0=_0x3fa5f0-0xa7;const _0x45a51f=a5_0x45a5();let _0x337ac1=_0x45a51f[_0x3fa5f0];return _0x337ac1;}function matchesCronField(_0x471f6a,_0x3bd5fe,_0x1cc001,_0x53739e){const _0x32dc2e=a5_0x1544ce;if(_0x471f6a==='*')return!![];if(_0x471f6a[_0x32dc2e(0xc4)](','))return _0x471f6a[_0x32dc2e(0xe3)](',')[_0x32dc2e(0xed)](_0x4809f4=>matchesCronField(_0x4809f4[_0x32dc2e(0x103)](),_0x3bd5fe,_0x1cc001,_0x53739e));if(_0x471f6a[_0x32dc2e(0xc4)]('/')){const _0x10cf05=_0x471f6a[_0x32dc2e(0x128)]('/'),_0x275b2d=_0x471f6a[_0x32dc2e(0x130)](0x0,_0x10cf05),_0x56b7bb=parseInt(_0x471f6a[_0x32dc2e(0x130)](_0x10cf05+0x1),0xa);if(isNaN(_0x56b7bb)||_0x56b7bb<=0x0)return![];let _0x4f2799=_0x1cc001,_0x201629=_0x53739e;if(_0x275b2d!=='*'){if(_0x275b2d[_0x32dc2e(0xc4)]('-')){const _0x5616cb=_0x275b2d[_0x32dc2e(0xe3)]('-')[_0x32dc2e(0xec)](Number);_0x4f2799=_0x5616cb[0x0],_0x201629=_0x5616cb[0x1];}else _0x4f2799=parseInt(_0x275b2d,0xa),_0x201629=_0x53739e;}if(_0x3bd5fe<_0x4f2799||_0x3bd5fe>_0x201629)return![];return(_0x3bd5fe-_0x4f2799)%_0x56b7bb===0x0;}if(_0x471f6a[_0x32dc2e(0xc4)]('-')){const _0x462c19=_0x471f6a['split']('-')[_0x32dc2e(0xec)](Number);return _0x3bd5fe>=_0x462c19[0x0]&&_0x3bd5fe<=_0x462c19[0x1];}const _0x37828d=parseInt(_0x471f6a,0xa);return!isNaN(_0x37828d)&&_0x3bd5fe===_0x37828d;}function matchesCron(_0xd3026d,_0x233758){const _0x2f03a4=a5_0x1544ce,_0x5b4c63=_0xd3026d[_0x2f03a4(0x103)]()[_0x2f03a4(0xe3)](/\s+/);if(_0x5b4c63[_0x2f03a4(0xc6)]!==0x5)return![];const _0x55c3d0=_0x233758['getMinutes'](),_0x2321a7=_0x233758[_0x2f03a4(0x13e)](),_0x7e43c3=_0x233758[_0x2f03a4(0xc9)](),_0x5b86f3=_0x233758['getMonth']()+0x1,_0x91fd2=_0x233758[_0x2f03a4(0x134)]();if(!matchesCronField(_0x5b4c63[0x0],_0x55c3d0,0x0,0x3b))return![];if(!matchesCronField(_0x5b4c63[0x1],_0x2321a7,0x0,0x17))return![];if(!matchesCronField(_0x5b4c63[0x3],_0x5b86f3,0x1,0xc))return![];const _0x415b96=matchesCronField(_0x5b4c63[0x2],_0x7e43c3,0x1,0x1f),_0x1c8a6d=matchesCronField(_0x5b4c63[0x4],_0x91fd2,0x0,0x7)||_0x91fd2===0x0&&matchesCronField(_0x5b4c63[0x4],0x7,0x0,0x7),_0x59610c=_0x5b4c63[0x2]==='*',_0x376512=_0x5b4c63[0x4]==='*';if(_0x59610c&&_0x376512)return!![];if(_0x59610c)return _0x1c8a6d;if(_0x376512)return _0x415b96;return _0x415b96||_0x1c8a6d;}function isValidCronExpression(_0xcd16ea){const _0x3efbb6=a5_0x1544ce,_0x361985=_0xcd16ea[_0x3efbb6(0x103)]()[_0x3efbb6(0xe3)](/\s+/);if(_0x361985[_0x3efbb6(0xc6)]!==0x5)return![];const _0x5c3cf4=/^(\*|\d+|\d+-\d+|\*\/\d+|\d+\/\d+|\d+-\d+\/\d+|\d+(,\d+)+)$/;return _0x361985['every'](_0x296f6a=>_0x5c3cf4['test'](_0x296f6a));}const ANALYSIS_PROMPT='分析以下定时任务描述,提取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';async function analyzeCronWithClaude(_0x53d590,_0x2ac96e,_0x2ec836){const _0x1ef25f=a5_0x1544ce,_0x5daecb=_0x53d590[_0x1ef25f(0xb6)](_0x2ac96e),_0x29f901=_0x1ef25f(0x115),_0x4c2440=ANALYSIS_PROMPT['replace'](_0x1ef25f(0xfa),_0x2ec836),_0x3ba00a=[_0x1ef25f(0xc2),_0x1ef25f(0xfb),_0x1ef25f(0xd8),_0x1ef25f(0xcd),_0x1ef25f(0xf3),_0x1ef25f(0xc1)],_0x3fda6f=(0x0,claude_process_1[_0x1ef25f(0x14a)])(_0x53d590,_0x5daecb);return _0x3fda6f&&_0x3ba00a['push'](_0x1ef25f(0x123),_0x3fda6f),console[_0x1ef25f(0x100)]('['+(0x0,session_1['timestamp'])()+_0x1ef25f(0xf5)+_0x29f901+'\x20'+_0x3ba00a[_0x1ef25f(0xd9)]('\x20')),new Promise((_0x1b90ec,_0x2a7371)=>{const _0x4afa07=_0x1ef25f,_0x5720df=(0x0,child_process_1[_0x4afa07(0xc5)])(_0x29f901,_0x3ba00a,{'cwd':_0x5daecb,'stdio':[_0x4afa07(0x135),'pipe',_0x4afa07(0x135)]});_0x5720df['stdin']?.[_0x4afa07(0xb2)](_0x4c2440+'\x0a'),_0x5720df[_0x4afa07(0xb0)]?.[_0x4afa07(0xfe)]();let _0x54f15e='',_0x4b06d6='';const _0x370030=readline_1['default']['createInterface']({'input':_0x5720df['stdout']});_0x370030['on'](_0x4afa07(0xba),_0x594300=>{const _0x3876f6=_0x4afa07,_0x4014ef=(0x0,claude_process_1[_0x3876f6(0xf6)])(_0x594300);_0x4014ef?.['type']===_0x3876f6(0x124)&&_0x4014ef[_0x3876f6(0xf1)]&&(_0x54f15e=_0x4014ef[_0x3876f6(0xf1)]);}),_0x5720df[_0x4afa07(0xb1)]?.['on'](_0x4afa07(0xa9),_0x5a108b=>{const _0x3dbc42=_0x4afa07;_0x4b06d6+=_0x5a108b[_0x3dbc42(0x129)]();});const _0x4c4beb=setTimeout(()=>{const _0x17d17e=_0x4afa07;_0x5720df[_0x17d17e(0x142)](),_0x2a7371(new Error(_0x17d17e(0x107)));},0xea60);_0x5720df['on']('close',_0x592a69=>{const _0x5821f0=_0x4afa07;clearTimeout(_0x4c4beb);if(_0x592a69===0x0&&_0x54f15e)try{const _0x5546d0=_0x54f15e['match'](/\{[\s\S]*\}/);if(_0x5546d0){const _0x4317be=JSON[_0x5821f0(0xbf)](_0x5546d0[0x0]);if(_0x4317be['cron']&&_0x4317be[_0x5821f0(0x112)]){_0x1b90ec(_0x4317be);return;}}_0x2a7371(new Error(_0x5821f0(0x11c)));}catch{_0x2a7371(new Error('JSON\x20解析失败'));}else{const _0x2f3d5e=_0x4b06d6[_0x5821f0(0x103)]()?'\x20('+_0x4b06d6[_0x5821f0(0x103)]()[_0x5821f0(0x130)](0x0,0xc8)+')':'';console[_0x5821f0(0xcc)]('['+(0x0,session_1[_0x5821f0(0xe8)])()+']\x20Cron分析进程退出('+_0x592a69+')'+_0x2f3d5e);const _0x31acb7=_0x4b06d6;if(/\b429\b/[_0x5821f0(0x119)](_0x31acb7))_0x2a7371(new Error('Claude\x20配额已耗尽(429),请稍后重试或明天再试'));else{if(/\b422\b/[_0x5821f0(0x119)](_0x31acb7)||/TPM|额度超限/i[_0x5821f0(0x119)](_0x31acb7))_0x2a7371(new Error(_0x5821f0(0x108)));else{if(/\b401\b/[_0x5821f0(0x119)](_0x31acb7)||/auth|认证|permission/i[_0x5821f0(0x119)](_0x31acb7))_0x2a7371(new Error(_0x5821f0(0x12f)));else _0x592a69===0x1&&!_0x54f15e&&!_0x4b06d6[_0x5821f0(0x103)]()?_0x2a7371(new Error(_0x5821f0(0xa8))):_0x2a7371(new Error(_0x5821f0(0xd2)+_0x592a69+')'+_0x2f3d5e));}}}}),_0x5720df['on'](_0x4afa07(0xcc),_0xed220a=>{const _0x44edb4=_0x4afa07;clearTimeout(_0x4c4beb),_0x2a7371(new Error('启动\x20Claude\x20进程失败:\x20'+_0xed220a[_0x44edb4(0x11d)]));});});}function formatCronJobList(_0x1f8bb7){const _0x402825=a5_0x1544ce;if(_0x1f8bb7[_0x402825(0xc6)]===0x0)return _0x402825(0xab);const _0x201d6d=[_0x402825(0x127)];for(const _0x2387c3 of _0x1f8bb7){const _0x108168=_0x2387c3[_0x402825(0x13a)]?'✅':'⏸️',_0x192706=_0x2387c3[_0x402825(0x102)]||'-';_0x201d6d[_0x402825(0xd5)]('**'+_0x108168+'\x20'+_0x2387c3['id']+'**'),_0x201d6d[_0x402825(0xd5)](_0x402825(0xbb)+_0x2387c3[_0x402825(0xde)]+'`'),_0x201d6d[_0x402825(0xd5)](_0x402825(0x11a)+_0x2387c3[_0x402825(0xd4)]),_0x201d6d[_0x402825(0xd5)](_0x402825(0x10f)+_0x2387c3[_0x402825(0x112)]),_0x201d6d[_0x402825(0xd5)](_0x402825(0xad)+_0x2387c3[_0x402825(0xdb)]),_0x201d6d[_0x402825(0xd5)](_0x402825(0xca)+_0x192706),_0x201d6d['push']('');}return _0x201d6d[_0x402825(0xd5)](_0x402825(0xe9)),_0x201d6d[_0x402825(0xd9)]('\x0a');}function formatCronJobInfo(_0x32e560){const _0x59ed85=a5_0x1544ce,_0x589dfb=_0x32e560[_0x59ed85(0x13a)]?'✅\x20启用':'⏸️\x20暂停';return[_0x59ed85(0xe1)+_0x32e560['id'],'','-\x20**状态:**\x20'+_0x589dfb,'-\x20**Cron:**\x20`'+_0x32e560[_0x59ed85(0xde)]+'`',_0x59ed85(0x131)+_0x32e560['description'],_0x59ed85(0xbc)+_0x32e560[_0x59ed85(0x112)],_0x59ed85(0xaf)+_0x32e560[_0x59ed85(0xdb)],_0x59ed85(0x139)+_0x32e560['createdAt'],'-\x20**上次执行:**\x20'+(_0x32e560[_0x59ed85(0x102)]||'-')][_0x59ed85(0xd9)]('\x0a');}class CronEngine{constructor(_0x8510a9){const _0x208f34=a5_0x1544ce;this[_0x208f34(0x11b)]=[],this[_0x208f34(0xc7)]=null,this[_0x208f34(0x10e)]=-0x1,this['runningJobIds']=new Set(),this['MAX_CONCURRENT_JOBS']=0x3,this['dc']=_0x8510a9,this[_0x208f34(0x11b)]=loadCronJobs(_0x8510a9);}[a5_0x1544ce(0x105)](){const _0x4ec1d3=a5_0x1544ce;this['startScheduler']();const _0x453943=this['jobs']['filter'](_0x2e7262=>_0x2e7262[_0x4ec1d3(0x13a)])[_0x4ec1d3(0xc6)];console[_0x4ec1d3(0x100)]('['+(0x0,session_1['timestamp'])()+_0x4ec1d3(0x141)+this[_0x4ec1d3(0x11b)]['length']+_0x4ec1d3(0x12c)+_0x453943+_0x4ec1d3(0xc0));}[a5_0x1544ce(0x10a)](){this['stopScheduler']();}[a5_0x1544ce(0x126)](_0xc60c22){const _0x473386=a5_0x1544ce,_0x512c7b={'id':'cron_'+Date[_0x473386(0xda)](),'conversationId':_0xc60c22[_0x473386(0xf4)],'cronExpression':_0xc60c22[_0x473386(0xde)],'description':_0xc60c22[_0x473386(0xd4)],'prompt':_0xc60c22[_0x473386(0x112)],'enabled':!![],'createdAt':(0x0,session_1['timestamp'])(),'senderStaffId':_0xc60c22['senderStaffId'],'senderNick':_0xc60c22[_0x473386(0xdb)]};return this[_0x473386(0x11b)][_0x473386(0xd5)](_0x512c7b),this[_0x473386(0x145)](),console[_0x473386(0x100)]('['+(0x0,session_1[_0x473386(0xe8)])()+_0x473386(0xf7)+_0x512c7b['id']+'\x20['+_0x512c7b[_0x473386(0xde)]+']\x20'+_0x512c7b['description']),_0x512c7b;}['removeJob'](_0x59a04a){const _0x1942d6=a5_0x1544ce,_0x52208c=this[_0x1942d6(0x11b)]['findIndex'](_0xf34ca5=>_0xf34ca5['id']===_0x59a04a);if(_0x52208c===-0x1)return![];const _0xc7135e=this['jobs'][_0x1942d6(0x143)](_0x52208c,0x1)[0x0];return this[_0x1942d6(0x145)](),console['log']('['+(0x0,session_1[_0x1942d6(0xe8)])()+_0x1942d6(0xe0)+_0xc7135e['id']),!![];}[a5_0x1544ce(0x144)](_0x227833,_0x30c680){const _0x3e18da=a5_0x1544ce,_0x3b8ff0=this[_0x3e18da(0x11b)]['find'](_0x249f48=>_0x249f48['id']===_0x227833);if(!_0x3b8ff0)return![];return _0x3b8ff0['enabled']=_0x30c680,this[_0x3e18da(0x145)](),console[_0x3e18da(0x100)]('['+(0x0,session_1[_0x3e18da(0xe8)])()+_0x3e18da(0xfc)+_0x3b8ff0['id']+'\x20'+(_0x30c680?_0x3e18da(0xb4):_0x3e18da(0xff))),!![];}['listJobs'](_0x38956f){const _0x363cff=a5_0x1544ce;if(_0x38956f)return this[_0x363cff(0x11b)][_0x363cff(0x110)](_0x4be18b=>_0x4be18b[_0x363cff(0xf4)]===_0x38956f);return[...this[_0x363cff(0x11b)]];}[a5_0x1544ce(0x118)](_0x376dea){const _0x316f03=a5_0x1544ce;return this['jobs'][_0x316f03(0x13c)](_0x481a2e=>_0x481a2e['id']===_0x376dea);}async[a5_0x1544ce(0xf0)](_0x42226c,_0x59a46a,_0x2ec307,_0x57f046){const _0x14b180=a5_0x1544ce;try{const _0x48aafb=await analyzeCronWithClaude(this['dc'],_0x42226c,_0x59a46a);if(!isValidCronExpression(_0x48aafb['cron']))return{'error':_0x14b180(0xc8)+_0x48aafb['cron']};const _0x57957c=this[_0x14b180(0x126)]({'conversationId':_0x42226c,'cronExpression':_0x48aafb[_0x14b180(0x116)],'description':_0x48aafb[_0x14b180(0x101)]||_0x59a46a[_0x14b180(0x130)](0x0,0x32),'prompt':_0x48aafb[_0x14b180(0x112)],'senderStaffId':_0x2ec307,'senderNick':_0x57f046});return{'job':_0x57957c};}catch(_0x2e6a22){return{'error':_0x2e6a22 instanceof Error?_0x2e6a22[_0x14b180(0x11d)]:String(_0x2e6a22)};}}[a5_0x1544ce(0x145)](){const _0x1b0a96=a5_0x1544ce;saveCronJobs(this['dc'],this[_0x1b0a96(0x11b)]);}[a5_0x1544ce(0x12e)](){const _0xcbb98=a5_0x1544ce,_0xbba2d4=Date[_0xcbb98(0xda)](),_0x31befd=0xea60-_0xbba2d4%0xea60;setTimeout(()=>{const _0x45d106=_0xcbb98;this['tick'](),this[_0x45d106(0xc7)]=setInterval(()=>this[_0x45d106(0xc3)](),0xea60);},_0x31befd);}['stopScheduler'](){const _0x560378=a5_0x1544ce;this[_0x560378(0xc7)]&&(clearInterval(this[_0x560378(0xc7)]),this[_0x560378(0xc7)]=null);}['tick'](){const _0x438a25=a5_0x1544ce,_0x226664=Date[_0x438a25(0xda)](),_0x58564d=this[_0x438a25(0x10e)]<0x0?_0x226664-_0x226664%0xea60:this[_0x438a25(0x10e)]+0xea60-this[_0x438a25(0x10e)]%0xea60,_0x276609=_0x226664-_0x226664%0xea60;for(let _0x24562d=_0x58564d;_0x24562d<=_0x276609;_0x24562d+=0xea60){const _0x207444=new Date(_0x24562d);if(!this[_0x438a25(0x133)](_0x207444))break;}this[_0x438a25(0x10e)]=_0x226664;}[a5_0x1544ce(0x133)](_0x33b4c7){const _0x8e4033=a5_0x1544ce;if(this['runningJobIds']['size']>=this['MAX_CONCURRENT_JOBS'])return console[_0x8e4033(0xb3)]('['+(0x0,session_1[_0x8e4033(0xe8)])()+_0x8e4033(0xd0)+this[_0x8e4033(0x10c)]+'),\x20跳过\x20'+_0x33b4c7[_0x8e4033(0xae)]()+'\x20的检查'),![];for(const _0x12c51d of this[_0x8e4033(0x11b)]){if(!_0x12c51d[_0x8e4033(0x13a)])continue;if(this[_0x8e4033(0x137)][_0x8e4033(0xe6)](_0x12c51d['id']))continue;if(this[_0x8e4033(0x137)][_0x8e4033(0xea)]>=this[_0x8e4033(0x10c)])break;if(!matchesCron(_0x12c51d[_0x8e4033(0xde)],_0x33b4c7))continue;console[_0x8e4033(0x100)]('['+(0x0,session_1['timestamp'])()+_0x8e4033(0xee)+_0x12c51d['id']+'\x20['+_0x12c51d[_0x8e4033(0xde)]+']\x20'+_0x12c51d[_0x8e4033(0xd4)]),this[_0x8e4033(0x136)](_0x12c51d)['catch'](_0x4fe5e9=>{const _0x5889fb=_0x8e4033;console[_0x5889fb(0xcc)]('['+(0x0,session_1['timestamp'])()+']\x20Cron执行失败:\x20'+_0x12c51d['id'],_0x4fe5e9);});}return!![];}async[a5_0x1544ce(0x136)](_0x15c054){const _0x955ccc=a5_0x1544ce;this[_0x955ccc(0x137)]['add'](_0x15c054['id']);try{const _0x54a031=this['dc']['getConversationConfig'](_0x15c054['conversationId']);if(!_0x54a031){console[_0x955ccc(0xb3)]('['+(0x0,session_1[_0x955ccc(0xe8)])()+_0x955ccc(0x117)+_0x15c054['id']+_0x955ccc(0xe7));return;}const _0x1c3184=!!(_0x54a031['dingToken']||this['dc']['config']['defaultDingToken']);if(!_0x1c3184){console[_0x955ccc(0xb3)]('['+(0x0,session_1[_0x955ccc(0xe8)])()+_0x955ccc(0x117)+_0x15c054['id']+_0x955ccc(0xcb));return;}const _0x50ea14=(0x0,session_1[_0x955ccc(0xd6)])(this['dc'],_0x15c054[_0x955ccc(0xf4)]);if(_0x50ea14){console['log']('['+(0x0,session_1[_0x955ccc(0xe8)])()+_0x955ccc(0x117)+_0x15c054['id']+_0x955ccc(0xb9)),await this[_0x955ccc(0x140)](_0x15c054);return;}const _0x4b6b1b=Date['now'](),_0x33aa28={'conversationId':_0x15c054[_0x955ccc(0xf4)],'sessionWebhook':'','startTime':_0x4b6b1b,'startTimeStr':utils_ok_1[_0x955ccc(0x113)]['mm'](_0x4b6b1b)['format'](_0x955ccc(0x13d)),'startStaffId':_0x15c054[_0x955ccc(0x120)],'startNickName':'[cron]'+_0x15c054[_0x955ccc(0xdb)]},_0x15941e=(0x0,session_1['getSessionDir'])(this['dc'],_0x33aa28);fs_1[_0x955ccc(0x114)][_0x955ccc(0x149)](_0x15941e,{'recursive':!![]}),fs_1[_0x955ccc(0x114)][_0x955ccc(0xdc)](_0x15941e+'/session.json',JSON[_0x955ccc(0xbd)](_0x33aa28,null,0x2),_0x955ccc(0xf9)),this['dc'][_0x955ccc(0xa7)]['set'](_0x15c054[_0x955ccc(0xf4)],{'session':_0x33aa28,'lastSenderStaffId':_0x15c054[_0x955ccc(0x120)],'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x54a031}),(0x0,session_1[_0x955ccc(0xb8)])(this['dc'],_0x15c054[_0x955ccc(0xf4)]),console['log']('['+(0x0,session_1[_0x955ccc(0xe8)])()+']\x20Cron任务\x20'+_0x15c054['id']+_0x955ccc(0x111)+_0x15c054['description']),fs_1['default'][_0x955ccc(0xe2)](_0x15941e+'/session.log','['+(0x0,session_1[_0x955ccc(0xe8)])()+_0x955ccc(0xdd)+_0x15c054[_0x955ccc(0xd4)]+'\x0a',_0x955ccc(0xf9));try{await(0x0,claude_process_1[_0x955ccc(0x121)])(this['dc'],_0x33aa28,_0x15c054[_0x955ccc(0x112)],{'skill':_0x54a031[_0x955ccc(0x10d)]?.[_0x955ccc(0xf2)],'agent':_0x54a031[_0x955ccc(0x106)],'senderNick':_0x15c054['senderNick'],'senderStaffId':_0x15c054[_0x955ccc(0x120)]});}catch(_0x3b6e2f){console[_0x955ccc(0xcc)]('['+(0x0,session_1[_0x955ccc(0xe8)])()+_0x955ccc(0xdf)+_0x15c054['id'],_0x3b6e2f),await(0x0,messaging_1[_0x955ccc(0xd7)])(this['dc'],{'conversationId':_0x15c054[_0x955ccc(0xf4)],'sessionWebhook':'','atUserId':_0x15c054['senderStaffId'],'content':_0x955ccc(0x104)+(_0x3b6e2f instanceof Error?_0x3b6e2f[_0x955ccc(0x11d)]:String(_0x3b6e2f))});}finally{this['dc']['activeSessions'][_0x955ccc(0xe4)](_0x15c054['conversationId']),(0x0,session_1['saveActiveSession'])(this['dc'],_0x15c054[_0x955ccc(0xf4)]);}_0x15c054[_0x955ccc(0x102)]=(0x0,session_1[_0x955ccc(0xe8)])(),this['persist']();}finally{this[_0x955ccc(0x137)]['delete'](_0x15c054['id']);}}async['enqueueAsTask'](_0x23636d){const _0x2821e7=a5_0x1544ce;try{await(0x0,task_1['saveTask'])(this['dc'],{'conversationId':_0x23636d['conversationId'],'prompt':_0x23636d['prompt'],'senderStaffId':_0x23636d[_0x2821e7(0x120)],'senderNickName':_0x2821e7(0xbe)+_0x23636d[_0x2821e7(0xdb)],'sessionWebhook':'','type':_0x2821e7(0x116)}),console[_0x2821e7(0x100)]('['+(0x0,session_1['timestamp'])()+_0x2821e7(0x117)+_0x23636d['id']+'\x20已降级到任务队列:\x20'+_0x23636d['description']);}catch(_0x4d0fa7){console[_0x2821e7(0xcc)]('['+(0x0,session_1[_0x2821e7(0xe8)])()+']\x20Cron任务\x20'+_0x23636d['id']+_0x2821e7(0xb7),_0x4d0fa7);}_0x23636d[_0x2821e7(0x102)]=(0x0,session_1['timestamp'])(),this[_0x2821e7(0x145)]();}}exports[a5_0x1544ce(0xeb)]=CronEngine;
1
+ 'use strict';const a5_0x59dbf1=a5_0x382f;(function(_0x4abce1,_0x263d11){const _0x1d6797=a5_0x382f,_0x33f3b6=_0x4abce1();while(!![]){try{const _0x20bf76=-parseInt(_0x1d6797(0x106))/0x1+-parseInt(_0x1d6797(0x116))/0x2*(-parseInt(_0x1d6797(0x8f))/0x3)+-parseInt(_0x1d6797(0xd3))/0x4*(parseInt(_0x1d6797(0x123))/0x5)+parseInt(_0x1d6797(0xa1))/0x6*(parseInt(_0x1d6797(0xf3))/0x7)+-parseInt(_0x1d6797(0x8e))/0x8*(parseInt(_0x1d6797(0xc9))/0x9)+-parseInt(_0x1d6797(0x10b))/0xa*(-parseInt(_0x1d6797(0x11d))/0xb)+-parseInt(_0x1d6797(0xf1))/0xc*(-parseInt(_0x1d6797(0xdd))/0xd);if(_0x20bf76===_0x263d11)break;else _0x33f3b6['push'](_0x33f3b6['shift']());}catch(_0x443bf8){_0x33f3b6['push'](_0x33f3b6['shift']());}}}(a5_0x1834,0xbaeb7));var __importDefault=this&&this[a5_0x59dbf1(0x83)]||function(_0x3a452a){return _0x3a452a&&_0x3a452a['__esModule']?_0x3a452a:{'default':_0x3a452a};};Object[a5_0x59dbf1(0xf2)](exports,a5_0x59dbf1(0x10a),{'value':!![]}),exports[a5_0x59dbf1(0xf0)]=void 0x0,exports[a5_0x59dbf1(0x10f)]=isValidCronExpression,exports[a5_0x59dbf1(0xef)]=formatCronJobList,exports['formatCronJobInfo']=formatCronJobInfo;const fs_1=__importDefault(require('fs')),readline_1=__importDefault(require(a5_0x59dbf1(0xc0))),child_process_1=require(a5_0x59dbf1(0xc3)),utils_ok_1=require(a5_0x59dbf1(0x11e)),messaging_1=require('./messaging'),claude_process_1=require(a5_0x59dbf1(0xeb)),task_1=require(a5_0x59dbf1(0xc8)),session_1=require('./session');function getCronFile(_0x24b578){const _0x490937=a5_0x59dbf1;return(0x0,session_1[_0x490937(0x128)])(_0x24b578)+_0x490937(0xd7);}function a5_0x1834(){const _0x2efadf=['resolveClaudeSettingsPath','map','MAX_CONCURRENT_JOBS','getJob','skill','executeJob','💡\x20`/cron\x20pause\x20<id>`\x20暂停\x20|\x20`/cron\x20resume\x20<id>`\x20恢复\x20|\x20`/cron\x20delete\x20<id>`\x20删除','getSessionDir','senderNick',']\x20定时任务\x20','error','Claude\x20配额已耗尽(429),请稍后重试或明天再试','set','-\x20**创建时间:**\x20','data','claude','cron_','\x20的会话配置不存在,\x20跳过执行','cronExpression','getConversationDir','some','stringify','parse','includes','-\x20**Cron:**\x20`',']\x20Cron分析:\x20','getDate','readline','YYYY-MM-DD-HH-mm-ss','split','child_process','every','trim',']\x20新增定时任务:\x20','-\x20**创建者:**\x20','./task','114651kXmTJl','JSON\x20解析失败',']\x20删除定时任务:\x20','format','filter','checkJobsAt','已恢复',']\x20Cron执行失败:\x20','destroy','tick','188JMrrMC','\x20的会话有活跃session,\x20降级到任务队列','stopScheduler','activeSessions','/cron.json','replace','timestamp','message','prompt','warn','11863813aiaMex','-\x20任务:\x20','pipe','-\x20**状态:**\x20','\x20无通知能力(无dingToken且无defaultDingToken),\x20跳过执行','delete','-\x20上次执行:\x20','findIndex',']\x20Cron任务\x20','log','defaultDingToken','startScheduler','createdAt','-\x20创建者:\x20','./claude-process','getHours','has','timer','formatCronJobList','CronEngine','12rWBbRV','defineProperty','4305JtapPF',']\x20Cron引擎已启动,\x20共\x20','Claude\x20认证失败(401),请检查\x20API\x20Key\x20配置','/session.json','\x20启用)','getMinutes','--permission-mode','findActiveSession','enqueueAsTask','--output-format','lastCheckedTime','listJobs','utf-8','\x20已降级到任务队列:\x20','default','分析以下定时任务描述,提取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','\x20降级到任务队列失败:','desc','spawn','330865dBaeLm','agent','getConversationConfig','\x20个任务\x20(','__esModule','12680bUmhty','toString','line','stdout','isValidCronExpression','[cron]','--verbose','/session.log','-\x20**任务:**\x20','),\x20跳过\x20','{INPUT}','10AGFPYz','getMonth','content','splice','readFileSync','saveActiveSession','###\x20⏰\x20定时任务\x20','5412OyyBkF','utils-ok','writeFileSync','--print','find','persist','106940rxcvss','removeJob','stdin','enabled','runningJobIds','getClientDir','description','分析超时(60s)','write',']\x20[SYSTEM]:\x20定时任务触发:\x20','push','type','isArray','start','analyzeAndCreate','__importDefault','✅\x20启用','Claude\x20返回格式不正确','mkdirSync','-\x20**上次执行:**\x20','result','now','saveTask','lastRunAt','conversationId','length','696YXNuEn','669453cEmYgg','jobs','Claude\x20TPM\x20限流(422),请稍后重试','add','match','size','senderStaffId','createInterface','addJob','-\x20Cron:\x20`','toggleJob','dingToken','-\x20描述:\x20','⏸️\x20暂停','substring','executeClaudeQuery','###\x20⏰\x20定时任务列表\x0a','test','5442LGMxlj','end','分析失败\x20(退出码:\x20','cron'];a5_0x1834=function(){return _0x2efadf;};return a5_0x1834();}function loadCronJobs(_0x316fbe){const _0x501350=a5_0x59dbf1,_0x29d0ff=getCronFile(_0x316fbe);try{const _0x55c0eb=JSON['parse'](fs_1[_0x501350(0x101)][_0x501350(0x11a)](_0x29d0ff,_0x501350(0xff)));return Array[_0x501350(0x12f)](_0x55c0eb)?_0x55c0eb:_0x55c0eb[_0x501350(0x90)]||[];}catch{return[];}}function saveCronJobs(_0x809671,_0x40e2bd){const _0x478616=a5_0x59dbf1,_0x57048f=getCronFile(_0x809671);fs_1['default'][_0x478616(0x11f)](_0x57048f,JSON[_0x478616(0xba)](_0x40e2bd,null,0x2),'utf-8');}function matchesCronField(_0x147d46,_0x449ac0,_0x157100,_0xbc0f75){const _0x143902=a5_0x59dbf1;if(_0x147d46==='*')return!![];if(_0x147d46['includes'](','))return _0x147d46['split'](',')[_0x143902(0xb9)](_0x1be736=>matchesCronField(_0x1be736[_0x143902(0xc5)](),_0x449ac0,_0x157100,_0xbc0f75));if(_0x147d46[_0x143902(0xbc)]('/')){const _0x219f1a=_0x147d46['indexOf']('/'),_0xae628c=_0x147d46['substring'](0x0,_0x219f1a),_0x13281a=parseInt(_0x147d46[_0x143902(0x9d)](_0x219f1a+0x1),0xa);if(isNaN(_0x13281a)||_0x13281a<=0x0)return![];let _0x2958b0=_0x157100,_0x140ffa=_0xbc0f75;if(_0xae628c!=='*'){if(_0xae628c[_0x143902(0xbc)]('-')){const _0x270bf3=_0xae628c[_0x143902(0xc2)]('-')['map'](Number);_0x2958b0=_0x270bf3[0x0],_0x140ffa=_0x270bf3[0x1];}else _0x2958b0=parseInt(_0xae628c,0xa),_0x140ffa=_0xbc0f75;}if(_0x449ac0<_0x2958b0||_0x449ac0>_0x140ffa)return![];return(_0x449ac0-_0x2958b0)%_0x13281a===0x0;}if(_0x147d46[_0x143902(0xbc)]('-')){const _0x245c61=_0x147d46[_0x143902(0xc2)]('-')[_0x143902(0xa6)](Number);return _0x449ac0>=_0x245c61[0x0]&&_0x449ac0<=_0x245c61[0x1];}const _0x4c263f=parseInt(_0x147d46,0xa);return!isNaN(_0x4c263f)&&_0x449ac0===_0x4c263f;}function matchesCron(_0x5cf30e,_0x1f43a7){const _0x4476c3=a5_0x59dbf1,_0x255f18=_0x5cf30e['trim']()['split'](/\s+/);if(_0x255f18[_0x4476c3(0x8d)]!==0x5)return![];const _0x1f9122=_0x1f43a7[_0x4476c3(0xf8)](),_0x6d3fe2=_0x1f43a7[_0x4476c3(0xec)](),_0x46b939=_0x1f43a7[_0x4476c3(0xbf)](),_0x4a13b6=_0x1f43a7[_0x4476c3(0x117)]()+0x1,_0x722b01=_0x1f43a7['getDay']();if(!matchesCronField(_0x255f18[0x0],_0x1f9122,0x0,0x3b))return![];if(!matchesCronField(_0x255f18[0x1],_0x6d3fe2,0x0,0x17))return![];if(!matchesCronField(_0x255f18[0x3],_0x4a13b6,0x1,0xc))return![];const _0xda065e=matchesCronField(_0x255f18[0x2],_0x46b939,0x1,0x1f),_0x24a04b=matchesCronField(_0x255f18[0x4],_0x722b01,0x0,0x7)||_0x722b01===0x0&&matchesCronField(_0x255f18[0x4],0x7,0x0,0x7),_0xba3034=_0x255f18[0x2]==='*',_0x4685b2=_0x255f18[0x4]==='*';if(_0xba3034&&_0x4685b2)return!![];if(_0xba3034)return _0x24a04b;if(_0x4685b2)return _0xda065e;return _0xda065e||_0x24a04b;}function isValidCronExpression(_0x51ac30){const _0x3cecc5=a5_0x59dbf1,_0x34a57b=_0x51ac30[_0x3cecc5(0xc5)]()[_0x3cecc5(0xc2)](/\s+/);if(_0x34a57b[_0x3cecc5(0x8d)]!==0x5)return![];const _0x50eb09=/^(\*|\d+|\d+-\d+|\*\/\d+|\d+\/\d+|\d+-\d+\/\d+|\d+(,\d+)+)$/;return _0x34a57b[_0x3cecc5(0xc4)](_0x440c8f=>_0x50eb09[_0x3cecc5(0xa0)](_0x440c8f));}function a5_0x382f(_0x524585,_0x1d1ffc){_0x524585=_0x524585-0x83;const _0x183444=a5_0x1834();let _0x382f41=_0x183444[_0x524585];return _0x382f41;}const ANALYSIS_PROMPT=a5_0x59dbf1(0x102);async function analyzeCronWithClaude(_0x209126,_0x5925d8,_0x328279){const _0xc8f6dd=a5_0x59dbf1,_0x5486d1=_0x209126[_0xc8f6dd(0xb8)](_0x5925d8),_0x49108d=_0xc8f6dd(0xb4),_0x1c4310=ANALYSIS_PROMPT[_0xc8f6dd(0xd8)](_0xc8f6dd(0x115),_0x328279),_0x1a9dfe=[_0xc8f6dd(0xf9),'bypassPermissions',_0xc8f6dd(0x120),_0xc8f6dd(0xfc),'stream-json',_0xc8f6dd(0x111)],_0x717bc6=(0x0,claude_process_1[_0xc8f6dd(0xa5)])(_0x209126,_0x5486d1);return _0x717bc6&&_0x1a9dfe['push']('--settings',_0x717bc6),console[_0xc8f6dd(0xe6)]('['+(0x0,session_1[_0xc8f6dd(0xd9)])()+_0xc8f6dd(0xbe)+_0x49108d+'\x20'+_0x1a9dfe['join']('\x20')),new Promise((_0x56b5d4,_0x5c59ae)=>{const _0x3bfdac=_0xc8f6dd,_0x2ff4f9=(0x0,child_process_1[_0x3bfdac(0x105)])(_0x49108d,_0x1a9dfe,{'cwd':_0x5486d1,'stdio':[_0x3bfdac(0xdf),'pipe','pipe']});_0x2ff4f9[_0x3bfdac(0x125)]?.[_0x3bfdac(0x12b)](_0x1c4310+'\x0a'),_0x2ff4f9['stdin']?.[_0x3bfdac(0xa2)]();let _0x54c052='',_0x8619dd='';const _0xc8b1b9=readline_1['default'][_0x3bfdac(0x96)]({'input':_0x2ff4f9[_0x3bfdac(0x10e)]});_0xc8b1b9['on'](_0x3bfdac(0x10d),_0x230037=>{const _0x1ae422=_0x3bfdac,_0x351780=(0x0,claude_process_1['parseClaudeStreamLine'])(_0x230037);_0x351780?.[_0x1ae422(0x12e)]===_0x1ae422(0x88)&&_0x351780['content']&&(_0x54c052=_0x351780[_0x1ae422(0x118)]);}),_0x2ff4f9['stderr']?.['on'](_0x3bfdac(0xb3),_0x5abbb0=>{const _0x4b3e9c=_0x3bfdac;_0x8619dd+=_0x5abbb0[_0x4b3e9c(0x10c)]();});const _0x12e37f=setTimeout(()=>{const _0x1aa08c=_0x3bfdac;_0x2ff4f9['kill'](),_0x5c59ae(new Error(_0x1aa08c(0x12a)));},0xea60);_0x2ff4f9['on']('close',_0x5c9401=>{const _0x85e6af=_0x3bfdac;clearTimeout(_0x12e37f);if(_0x5c9401===0x0&&_0x54c052)try{const _0x1ab5c5=_0x54c052[_0x85e6af(0x93)](/\{[\s\S]*\}/);if(_0x1ab5c5){const _0x3ffdcc=JSON[_0x85e6af(0xbb)](_0x1ab5c5[0x0]);if(_0x3ffdcc[_0x85e6af(0xa4)]&&_0x3ffdcc[_0x85e6af(0xdb)]){_0x56b5d4(_0x3ffdcc);return;}}_0x5c59ae(new Error(_0x85e6af(0x85)));}catch{_0x5c59ae(new Error(_0x85e6af(0xca)));}else{const _0x1ae31e=_0x8619dd[_0x85e6af(0xc5)]()?'\x20('+_0x8619dd[_0x85e6af(0xc5)]()['substring'](0x0,0xc8)+')':'';console[_0x85e6af(0xaf)]('['+(0x0,session_1['timestamp'])()+']\x20Cron分析进程退出('+_0x5c9401+')'+_0x1ae31e);const _0x26a3a3=_0x8619dd;if(/\b429\b/[_0x85e6af(0xa0)](_0x26a3a3))_0x5c59ae(new Error(_0x85e6af(0xb0)));else{if(/\b422\b/['test'](_0x26a3a3)||/TPM|额度超限/i['test'](_0x26a3a3))_0x5c59ae(new Error(_0x85e6af(0x91)));else{if(/\b401\b/[_0x85e6af(0xa0)](_0x26a3a3)||/auth|认证|permission/i['test'](_0x26a3a3))_0x5c59ae(new Error(_0x85e6af(0xf5)));else _0x5c9401===0x1&&!_0x54c052&&!_0x8619dd[_0x85e6af(0xc5)]()?_0x5c59ae(new Error('Claude\x20进程异常退出,无输出。请检查\x20claude\x20命令是否可用')):_0x5c59ae(new Error(_0x85e6af(0xa3)+_0x5c9401+')'+_0x1ae31e));}}}}),_0x2ff4f9['on'](_0x3bfdac(0xaf),_0x317587=>{const _0x1a4941=_0x3bfdac;clearTimeout(_0x12e37f),_0x5c59ae(new Error('启动\x20Claude\x20进程失败:\x20'+_0x317587[_0x1a4941(0xda)]));});});}function formatCronJobList(_0x527bfa){const _0x5d1f24=a5_0x59dbf1;if(_0x527bfa[_0x5d1f24(0x8d)]===0x0)return'📭\x20暂无定时任务';const _0x287044=[_0x5d1f24(0x9f)];for(const _0x107e04 of _0x527bfa){const _0x2ee181=_0x107e04[_0x5d1f24(0x126)]?'✅':'⏸️',_0xccbd14=_0x107e04[_0x5d1f24(0x8b)]||'-';_0x287044[_0x5d1f24(0x12d)]('**'+_0x2ee181+'\x20'+_0x107e04['id']+'**'),_0x287044['push'](_0x5d1f24(0x98)+_0x107e04[_0x5d1f24(0xb7)]+'`'),_0x287044[_0x5d1f24(0x12d)](_0x5d1f24(0x9b)+_0x107e04[_0x5d1f24(0x129)]),_0x287044[_0x5d1f24(0x12d)](_0x5d1f24(0xde)+_0x107e04[_0x5d1f24(0xdb)]),_0x287044[_0x5d1f24(0x12d)](_0x5d1f24(0xea)+_0x107e04[_0x5d1f24(0xad)]),_0x287044[_0x5d1f24(0x12d)](_0x5d1f24(0xe3)+_0xccbd14),_0x287044[_0x5d1f24(0x12d)]('');}return _0x287044[_0x5d1f24(0x12d)](_0x5d1f24(0xab)),_0x287044['join']('\x0a');}function formatCronJobInfo(_0x250a99){const _0x5a23c4=a5_0x59dbf1,_0xcf4e06=_0x250a99[_0x5a23c4(0x126)]?_0x5a23c4(0x84):_0x5a23c4(0x9c);return[_0x5a23c4(0x11c)+_0x250a99['id'],'',_0x5a23c4(0xe0)+_0xcf4e06,_0x5a23c4(0xbd)+_0x250a99['cronExpression']+'`','-\x20**描述:**\x20'+_0x250a99['description'],_0x5a23c4(0x113)+_0x250a99[_0x5a23c4(0xdb)],_0x5a23c4(0xc7)+_0x250a99[_0x5a23c4(0xad)],_0x5a23c4(0xb2)+_0x250a99[_0x5a23c4(0xe9)],_0x5a23c4(0x87)+(_0x250a99[_0x5a23c4(0x8b)]||'-')]['join']('\x0a');}class CronEngine{constructor(_0xfda968){const _0x130317=a5_0x59dbf1;this[_0x130317(0x90)]=[],this[_0x130317(0xee)]=null,this['lastCheckedTime']=-0x1,this['runningJobIds']=new Set(),this[_0x130317(0xa7)]=0x3,this['dc']=_0xfda968,this[_0x130317(0x90)]=loadCronJobs(_0xfda968);}[a5_0x59dbf1(0x130)](){const _0xf88d23=a5_0x59dbf1;this[_0xf88d23(0xe8)]();const _0x1381dd=this[_0xf88d23(0x90)][_0xf88d23(0xcd)](_0x49d061=>_0x49d061['enabled'])[_0xf88d23(0x8d)];console[_0xf88d23(0xe6)]('['+(0x0,session_1[_0xf88d23(0xd9)])()+_0xf88d23(0xf4)+this[_0xf88d23(0x90)][_0xf88d23(0x8d)]+_0xf88d23(0x109)+_0x1381dd+_0xf88d23(0xf7));}[a5_0x59dbf1(0xd1)](){const _0x50804f=a5_0x59dbf1;this[_0x50804f(0xd5)]();}[a5_0x59dbf1(0x97)](_0x33ba57){const _0x261cbb=a5_0x59dbf1,_0x1c0023={'id':_0x261cbb(0xb5)+Date[_0x261cbb(0x89)](),'conversationId':_0x33ba57['conversationId'],'cronExpression':_0x33ba57[_0x261cbb(0xb7)],'description':_0x33ba57[_0x261cbb(0x129)],'prompt':_0x33ba57[_0x261cbb(0xdb)],'enabled':!![],'createdAt':(0x0,session_1[_0x261cbb(0xd9)])(),'senderStaffId':_0x33ba57[_0x261cbb(0x95)],'senderNick':_0x33ba57['senderNick']};return this['jobs'][_0x261cbb(0x12d)](_0x1c0023),this['persist'](),console[_0x261cbb(0xe6)]('['+(0x0,session_1[_0x261cbb(0xd9)])()+_0x261cbb(0xc6)+_0x1c0023['id']+'\x20['+_0x1c0023[_0x261cbb(0xb7)]+']\x20'+_0x1c0023['description']),_0x1c0023;}[a5_0x59dbf1(0x124)](_0x4a1bef){const _0x37f317=a5_0x59dbf1,_0x3c5cc5=this[_0x37f317(0x90)][_0x37f317(0xe4)](_0xfa8122=>_0xfa8122['id']===_0x4a1bef);if(_0x3c5cc5===-0x1)return![];const _0x34a2c3=this[_0x37f317(0x90)][_0x37f317(0x119)](_0x3c5cc5,0x1)[0x0];return this[_0x37f317(0x122)](),console['log']('['+(0x0,session_1[_0x37f317(0xd9)])()+_0x37f317(0xcb)+_0x34a2c3['id']),!![];}[a5_0x59dbf1(0x99)](_0x4a2568,_0x15f091){const _0x5f4587=a5_0x59dbf1,_0x53d620=this[_0x5f4587(0x90)][_0x5f4587(0x121)](_0x35faca=>_0x35faca['id']===_0x4a2568);if(!_0x53d620)return![];return _0x53d620[_0x5f4587(0x126)]=_0x15f091,this[_0x5f4587(0x122)](),console[_0x5f4587(0xe6)]('['+(0x0,session_1['timestamp'])()+_0x5f4587(0xae)+_0x53d620['id']+'\x20'+(_0x15f091?_0x5f4587(0xcf):'已暂停')),!![];}[a5_0x59dbf1(0xfe)](_0x626f2f){const _0x2c9700=a5_0x59dbf1;if(_0x626f2f)return this[_0x2c9700(0x90)]['filter'](_0x594667=>_0x594667[_0x2c9700(0x8c)]===_0x626f2f);return[...this[_0x2c9700(0x90)]];}[a5_0x59dbf1(0xa8)](_0x1cd453){const _0x24670b=a5_0x59dbf1;return this[_0x24670b(0x90)][_0x24670b(0x121)](_0x2cc681=>_0x2cc681['id']===_0x1cd453);}async[a5_0x59dbf1(0x131)](_0x5e9ee2,_0x2a80bb,_0xdbe967,_0x5b71bf){const _0x27910b=a5_0x59dbf1;try{const _0x592dea=await analyzeCronWithClaude(this['dc'],_0x5e9ee2,_0x2a80bb);if(!isValidCronExpression(_0x592dea[_0x27910b(0xa4)]))return{'error':'Claude\x20返回的cron表达式无效:\x20'+_0x592dea[_0x27910b(0xa4)]};const _0x575149=this[_0x27910b(0x97)]({'conversationId':_0x5e9ee2,'cronExpression':_0x592dea[_0x27910b(0xa4)],'description':_0x592dea[_0x27910b(0x104)]||_0x2a80bb['substring'](0x0,0x32),'prompt':_0x592dea[_0x27910b(0xdb)],'senderStaffId':_0xdbe967,'senderNick':_0x5b71bf});return{'job':_0x575149};}catch(_0x5cd2f3){return{'error':_0x5cd2f3 instanceof Error?_0x5cd2f3[_0x27910b(0xda)]:String(_0x5cd2f3)};}}[a5_0x59dbf1(0x122)](){const _0x4671ad=a5_0x59dbf1;saveCronJobs(this['dc'],this[_0x4671ad(0x90)]);}[a5_0x59dbf1(0xe8)](){const _0x1f0ca6=a5_0x59dbf1,_0x159acf=Date[_0x1f0ca6(0x89)](),_0x4d5847=0xea60-_0x159acf%0xea60;setTimeout(()=>{const _0x41fd2f=_0x1f0ca6;this[_0x41fd2f(0xd2)](),this['timer']=setInterval(()=>this[_0x41fd2f(0xd2)](),0xea60);},_0x4d5847);}[a5_0x59dbf1(0xd5)](){const _0x30093d=a5_0x59dbf1;this[_0x30093d(0xee)]&&(clearInterval(this[_0x30093d(0xee)]),this[_0x30093d(0xee)]=null);}[a5_0x59dbf1(0xd2)](){const _0x6ee405=a5_0x59dbf1,_0x4e3b61=Date['now'](),_0x222cfa=this[_0x6ee405(0xfd)]<0x0?_0x4e3b61-_0x4e3b61%0xea60:this[_0x6ee405(0xfd)]+0xea60-this[_0x6ee405(0xfd)]%0xea60,_0x347d54=_0x4e3b61-_0x4e3b61%0xea60;for(let _0x1ab54a=_0x222cfa;_0x1ab54a<=_0x347d54;_0x1ab54a+=0xea60){const _0x513302=new Date(_0x1ab54a);if(!this[_0x6ee405(0xce)](_0x513302))break;}this['lastCheckedTime']=_0x4e3b61;}['checkJobsAt'](_0x5de139){const _0x3f2cb3=a5_0x59dbf1;if(this[_0x3f2cb3(0x127)][_0x3f2cb3(0x94)]>=this[_0x3f2cb3(0xa7)])return console[_0x3f2cb3(0xdc)]('['+(0x0,session_1[_0x3f2cb3(0xd9)])()+']\x20Cron并发上限('+this[_0x3f2cb3(0xa7)]+_0x3f2cb3(0x114)+_0x5de139['toISOString']()+'\x20的检查'),![];for(const _0x4d65d3 of this[_0x3f2cb3(0x90)]){if(!_0x4d65d3[_0x3f2cb3(0x126)])continue;if(this['runningJobIds'][_0x3f2cb3(0xed)](_0x4d65d3['id']))continue;if(this[_0x3f2cb3(0x127)][_0x3f2cb3(0x94)]>=this[_0x3f2cb3(0xa7)])break;if(!matchesCron(_0x4d65d3[_0x3f2cb3(0xb7)],_0x5de139))continue;console[_0x3f2cb3(0xe6)]('['+(0x0,session_1[_0x3f2cb3(0xd9)])()+']\x20Cron触发:\x20'+_0x4d65d3['id']+'\x20['+_0x4d65d3['cronExpression']+']\x20'+_0x4d65d3[_0x3f2cb3(0x129)]),this[_0x3f2cb3(0xaa)](_0x4d65d3)['catch'](_0x1289c2=>{const _0x53356e=_0x3f2cb3;console[_0x53356e(0xaf)]('['+(0x0,session_1[_0x53356e(0xd9)])()+_0x53356e(0xd0)+_0x4d65d3['id'],_0x1289c2);});}return!![];}async[a5_0x59dbf1(0xaa)](_0x1dbf74){const _0x1445cb=a5_0x59dbf1;this['runningJobIds'][_0x1445cb(0x92)](_0x1dbf74['id']);try{const _0x35615a=this['dc'][_0x1445cb(0x108)](_0x1dbf74[_0x1445cb(0x8c)]);if(!_0x35615a){console[_0x1445cb(0xdc)]('['+(0x0,session_1[_0x1445cb(0xd9)])()+_0x1445cb(0xe5)+_0x1dbf74['id']+_0x1445cb(0xb6));return;}const _0x5e6683=!!(_0x35615a[_0x1445cb(0x9a)]||this['dc']['config'][_0x1445cb(0xe7)]);if(!_0x5e6683){console['warn']('['+(0x0,session_1[_0x1445cb(0xd9)])()+']\x20Cron任务\x20'+_0x1dbf74['id']+_0x1445cb(0xe1));return;}const _0x2b4deb=(0x0,session_1[_0x1445cb(0xfa)])(this['dc'],_0x1dbf74[_0x1445cb(0x8c)]);if(_0x2b4deb){console['log']('['+(0x0,session_1[_0x1445cb(0xd9)])()+_0x1445cb(0xe5)+_0x1dbf74['id']+_0x1445cb(0xd4)),await this[_0x1445cb(0xfb)](_0x1dbf74);return;}const _0x4f68e1=Date[_0x1445cb(0x89)](),_0x2ac028={'conversationId':_0x1dbf74['conversationId'],'sessionWebhook':'','startTime':_0x4f68e1,'startTimeStr':utils_ok_1['dateUtil']['mm'](_0x4f68e1)[_0x1445cb(0xcc)](_0x1445cb(0xc1)),'startStaffId':_0x1dbf74[_0x1445cb(0x95)],'startNickName':_0x1445cb(0x110)+_0x1dbf74[_0x1445cb(0xad)]},_0x3f6177=(0x0,session_1[_0x1445cb(0xac)])(this['dc'],_0x2ac028);fs_1[_0x1445cb(0x101)][_0x1445cb(0x86)](_0x3f6177,{'recursive':!![]}),fs_1['default']['writeFileSync'](_0x3f6177+_0x1445cb(0xf6),JSON[_0x1445cb(0xba)](_0x2ac028,null,0x2),_0x1445cb(0xff)),this['dc']['activeSessions'][_0x1445cb(0xb1)](_0x1dbf74[_0x1445cb(0x8c)],{'session':_0x2ac028,'lastSenderStaffId':_0x1dbf74[_0x1445cb(0x95)],'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x35615a}),(0x0,session_1[_0x1445cb(0x11b)])(this['dc'],_0x1dbf74[_0x1445cb(0x8c)]),console[_0x1445cb(0xe6)]('['+(0x0,session_1[_0x1445cb(0xd9)])()+_0x1445cb(0xe5)+_0x1dbf74['id']+'\x20开始执行:\x20'+_0x1dbf74['description']),fs_1['default']['appendFileSync'](_0x3f6177+_0x1445cb(0x112),'['+(0x0,session_1['timestamp'])()+_0x1445cb(0x12c)+_0x1dbf74[_0x1445cb(0x129)]+'\x0a',_0x1445cb(0xff));try{await(0x0,claude_process_1[_0x1445cb(0x9e)])(this['dc'],_0x2ac028,_0x1dbf74[_0x1445cb(0xdb)],{'skill':_0x35615a['taskCfg']?.[_0x1445cb(0xa9)],'agent':_0x35615a[_0x1445cb(0x107)],'senderNick':_0x1dbf74[_0x1445cb(0xad)],'senderStaffId':_0x1dbf74[_0x1445cb(0x95)]});}catch(_0x3b4dca){console[_0x1445cb(0xaf)]('['+(0x0,session_1[_0x1445cb(0xd9)])()+']\x20Cron执行Claude查询失败:\x20'+_0x1dbf74['id'],_0x3b4dca),await(0x0,messaging_1['sendDingMessage'])(this['dc'],{'conversationId':_0x1dbf74[_0x1445cb(0x8c)],'sessionWebhook':'','atUserId':_0x1dbf74['senderStaffId'],'content':'❌\x20定时任务执行失败:\x20'+(_0x3b4dca instanceof Error?_0x3b4dca[_0x1445cb(0xda)]:String(_0x3b4dca))});}finally{this['dc'][_0x1445cb(0xd6)][_0x1445cb(0xe2)](_0x1dbf74[_0x1445cb(0x8c)]),(0x0,session_1[_0x1445cb(0x11b)])(this['dc'],_0x1dbf74[_0x1445cb(0x8c)]);}_0x1dbf74[_0x1445cb(0x8b)]=(0x0,session_1[_0x1445cb(0xd9)])(),this[_0x1445cb(0x122)]();}finally{this[_0x1445cb(0x127)][_0x1445cb(0xe2)](_0x1dbf74['id']);}}async[a5_0x59dbf1(0xfb)](_0x45340f){const _0xd0af65=a5_0x59dbf1;try{await(0x0,task_1[_0xd0af65(0x8a)])(this['dc'],{'conversationId':_0x45340f[_0xd0af65(0x8c)],'prompt':_0x45340f[_0xd0af65(0xdb)],'senderStaffId':_0x45340f[_0xd0af65(0x95)],'senderNickName':_0xd0af65(0x110)+_0x45340f['senderNick'],'sessionWebhook':'','type':_0xd0af65(0xa4)}),console[_0xd0af65(0xe6)]('['+(0x0,session_1['timestamp'])()+_0xd0af65(0xe5)+_0x45340f['id']+_0xd0af65(0x100)+_0x45340f['description']);}catch(_0x28b57c){console[_0xd0af65(0xaf)]('['+(0x0,session_1[_0xd0af65(0xd9)])()+_0xd0af65(0xe5)+_0x45340f['id']+_0xd0af65(0x103),_0x28b57c);}_0x45340f['lastRunAt']=(0x0,session_1[_0xd0af65(0xd9)])(),this[_0xd0af65(0x122)]();}}exports[a5_0x59dbf1(0xf0)]=CronEngine;
@@ -1 +1 @@
1
- 'use strict';function a6_0x2da8(_0xe00728,_0x1f1533){_0xe00728=_0xe00728-0xde;const _0x4cdfdf=a6_0x4cdf();let _0x2da8f0=_0x4cdfdf[_0xe00728];return _0x2da8f0;}const a6_0x5c0e0b=a6_0x2da8;(function(_0x51605e,_0x3d4932){const _0x3f7901=a6_0x2da8,_0x36f494=_0x51605e();while(!![]){try{const _0x5a869a=-parseInt(_0x3f7901(0x10b))/0x1*(-parseInt(_0x3f7901(0xf0))/0x2)+parseInt(_0x3f7901(0x103))/0x3+-parseInt(_0x3f7901(0x151))/0x4+parseInt(_0x3f7901(0x11e))/0x5*(-parseInt(_0x3f7901(0x120))/0x6)+parseInt(_0x3f7901(0x12b))/0x7+parseInt(_0x3f7901(0x102))/0x8*(-parseInt(_0x3f7901(0x161))/0x9)+-parseInt(_0x3f7901(0x144))/0xa;if(_0x5a869a===_0x3d4932)break;else _0x36f494['push'](_0x36f494['shift']());}catch(_0x4c2d9b){_0x36f494['push'](_0x36f494['shift']());}}}(a6_0x4cdf,0x53602));var __importDefault=this&&this[a6_0x5c0e0b(0x127)]||function(_0x54c389){const _0x381bfd=a6_0x5c0e0b;return _0x54c389&&_0x54c389[_0x381bfd(0x111)]?_0x54c389:{'default':_0x54c389};};Object[a6_0x5c0e0b(0xee)](exports,a6_0x5c0e0b(0x111),{'value':!![]}),exports[a6_0x5c0e0b(0x138)]=printDoctorResults,exports[a6_0x5c0e0b(0xef)]=runDoctor;const session_1=require(a6_0x5c0e0b(0x145)),api_key_manager_1=require(a6_0x5c0e0b(0xf1)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path')),child_process_1=require(a6_0x5c0e0b(0x130));function a6_0x4cdf(){const _0xa68620=['runDoctor','1720EdQQoi','./api-key-manager','\x20应为数组','\x20通过,\x20','getHomeDir','cron.json\x20不存在\x20(无定时任务)','cron.json\x20格式异常,无法解析为任务数组','trim','env','\x20缺少\x20conversationId','PASS','some','Node\x20版本:','==========\x20cc-ding\x20doctor\x20==========','\x20dingToken\x20仍为占位符','isValid','slice','settings-tpl.json\x20有效,env\x20包含:\x20','8ajHGle','1249128lLlKty','客户端目录不存在:\x20','.doctor-check','model','owner','utf-8',']\x20缺少\x20conversationId','.pid.lock','705JQejan',']\x20conversationId\x20\x22','conversations\x20为空数组,可通过\x20/reg\x20命令动态注册','\x20conversationId\x20重复:\x20','\x20apiKey\x20重复:\x20','readFileSync','__esModule','object','apiKeyCfg.claudeSettings\x20共\x20','writeFileSync','add','\x22\x20未在\x20conversations\x20中找到','join','push','apiKeyCfg','conversationId','jobs','conversations\x20应为数组','dingToken','150lCcEoP','缺少必填字段:\x20','27870PhcZCs','split','客户端目录可写','log','锁文件存在但进程\x20','FATAL','string','__importDefault','filter','\x20conversationId\x20仍为占位符:\x20','\x20仍为占位符:\x20','1985851ntFHov','config.json\x20解析成功','baseUrl','length','\x20启用)','child_process','settings-tpl.json\x20根元素不是对象',']\x20缺少\x20prompt','conversations','客户端目录存在:\x20','cronExpression','claudeSettings','boolean','printDoctorResults','resetTime',']\x20缺少\x20id','无运行中的进程','whiteUserList','\x20为空数组','enabled','config.json','test','客户端目录不可写:\x20','default','conversations\x20共\x20','1738430jcNoAh','./session','------------------------------------','claude\x20命令可用','WARN','.cc-ding','exit','PID\x20锁文件读取异常:\x20','claude\x20命令不可用,请确认\x20Claude\x20Code\x20CLI\x20已安装','existsSync','\x20缺少\x20apiKey','settings-tpl.json','conversations[','2495492SgnhdX','\x20已退出(过期锁文件)','isArray','进程运行中\x20(PID:\x20','\x20致命','pipe','has','level','execSync','\x20缺少\x20model','clientSecret','settingLabel','apiKey','cron.json[','linkConversationId','which\x20claude','250173KPkpvk','owner\x20未配置,管理命令(/clean,\x20/open,\x20/reset-apikeycfg,\x20/reg,\x20/auth)不可用','\x20个群配置',',要求\x20Node\x20>=\x2024','cron.json','apiKeyCfg\x20未配置,无法使用\x20API\x20Key\x20池化轮换','message','settings-tpl.json\x20解析失败:\x20','cron.json\x20解析失败:\x20','\x20\x20✅\x20所有检查通过','\x20缺少\x20baseUrl','settings-tpl.json\x20缺少\x20env\x20字段','startsWith','(空)','defaultDingToken','version','keys','Node\x20版本过低:','defineProperty'];a6_0x4cdf=function(){return _0xa68620;};return a6_0x4cdf();}function printDoctorResults(_0x4321eb){const _0x3c1283=a6_0x5c0e0b;console[_0x3c1283(0x123)](''),console['log'](_0x3c1283(0xfd));const _0x3517a4=_0x4321eb[_0x3c1283(0xfb)](_0x20183c=>_0x20183c['level']===_0x3c1283(0x125));for(const _0x1f7131 of _0x4321eb){const _0x5ba1bb=_0x1f7131[_0x3c1283(0x158)]===_0x3c1283(0xfa)?'✓':_0x1f7131['level']===_0x3c1283(0x125)?'✗':'⚠',_0x465432=_0x1f7131[_0x3c1283(0x158)]==='PASS'?'':'['+_0x1f7131[_0x3c1283(0x158)]+']\x20';console[_0x3c1283(0x123)]('\x20\x20'+_0x5ba1bb+'\x20'+_0x465432+_0x1f7131[_0x3c1283(0xe2)]);}const _0x210eeb=_0x4321eb[_0x3c1283(0x128)](_0x320af5=>_0x320af5[_0x3c1283(0x158)]==='PASS')[_0x3c1283(0x12e)],_0x441356=_0x4321eb[_0x3c1283(0x128)](_0x36d8f0=>_0x36d8f0[_0x3c1283(0x158)]==='WARN')[_0x3c1283(0x12e)],_0x41e78a=_0x4321eb[_0x3c1283(0x128)](_0x4b1b92=>_0x4b1b92['level']==='FATAL')['length'];console[_0x3c1283(0x123)](_0x3c1283(0x146)),console[_0x3c1283(0x123)]('\x20\x20合计:\x20'+_0x210eeb+_0x3c1283(0xf3)+_0x441356+'\x20警告,\x20'+_0x41e78a+_0x3c1283(0x155));_0x3517a4?console[_0x3c1283(0x123)]('\x20\x20❌\x20存在致命问题,请修复后重新运行'):console[_0x3c1283(0x123)](_0x3c1283(0xe5));console[_0x3c1283(0x123)]('====================================\x0a');if(_0x3517a4)process[_0x3c1283(0x14a)](0x1);}function runDoctor(_0x5ef620){const _0x20fba2=a6_0x5c0e0b,_0x846b9a=[],_0x72bbd8=process[_0x20fba2(0xeb)][_0x20fba2(0x100)](0x1),_0x2276a0=parseInt(_0x72bbd8[_0x20fba2(0x121)]('.')[0x0],0xa);_0x2276a0<0x18?_0x846b9a['push'](check(_0x20fba2(0x125),_0x20fba2(0xed)+_0x72bbd8+_0x20fba2(0xdf))):_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x20fba2(0xfc)+_0x72bbd8));if(!fs_1[_0x20fba2(0x142)][_0x20fba2(0x14d)](_0x5ef620))return _0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x20fba2(0x104)+_0x5ef620)),_0x846b9a;_0x846b9a['push'](check(_0x20fba2(0xfa),_0x20fba2(0x134)+_0x5ef620));const _0x1eb563=path_1[_0x20fba2(0x142)][_0x20fba2(0x117)](_0x5ef620,_0x20fba2(0x10a));if(fs_1[_0x20fba2(0x142)][_0x20fba2(0x14d)](_0x1eb563))try{const _0x3b6658=parseInt(fs_1[_0x20fba2(0x142)][_0x20fba2(0x110)](_0x1eb563,_0x20fba2(0x108))['trim'](),0xa);if(!isNaN(_0x3b6658))try{process['kill'](_0x3b6658,0x0),_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x20fba2(0x154)+_0x3b6658+')'));}catch{_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0x124)+_0x3b6658+_0x20fba2(0x152)));}}catch{_0x846b9a[_0x20fba2(0x118)](check('WARN',_0x20fba2(0x14b)+_0x1eb563));}else _0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x20fba2(0x13b)));const _0x24ad68=path_1['default']['join'](_0x5ef620,_0x20fba2(0x13f));if(!fs_1[_0x20fba2(0x142)][_0x20fba2(0x14d)](_0x24ad68))return _0x846b9a[_0x20fba2(0x118)](check('FATAL','config.json\x20不存在')),_0x846b9a;let _0x22875e;try{_0x22875e=JSON['parse'](fs_1['default'][_0x20fba2(0x110)](_0x24ad68,'utf-8'));}catch(_0x4015a9){return _0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),'config.json\x20解析失败:\x20'+(_0x4015a9 instanceof Error?_0x4015a9['message']:_0x4015a9))),_0x846b9a;}_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x20fba2(0x12c)));const _0x37075=[{'key':_0x20fba2(0x15b),'label':_0x20fba2(0x15b)},{'key':'defaultDingToken','label':_0x20fba2(0xea)},{'key':_0x20fba2(0x13c),'label':_0x20fba2(0x13c),'isArr':!![]},{'key':'owner','label':'owner'}];for(const {key:_0x33cc9e,label:_0x1a3807,isArr:_0x3d1134}of _0x37075){const _0x105459=_0x22875e[_0x33cc9e];if(_0x105459===undefined||_0x105459===null||_0x105459==='')_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x20fba2(0x11f)+_0x1a3807));else{if(_0x3d1134&&!Array[_0x20fba2(0x153)](_0x105459))_0x846b9a['push'](check(_0x20fba2(0x125),_0x1a3807+_0x20fba2(0xf2)));else{if(_0x33cc9e!==_0x20fba2(0x133)&&_0x3d1134&&_0x105459[_0x20fba2(0x12e)]===0x0)_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x1a3807+_0x20fba2(0x13d)));else!_0x3d1134&&typeof _0x105459===_0x20fba2(0x126)&&_0x105459[_0x20fba2(0xe8)]('<')?_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x1a3807+_0x20fba2(0x12a)+_0x105459)):_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x1a3807+'\x20✓'));}}}_0x22875e[_0x20fba2(0x107)]?_0x846b9a['push'](check(_0x20fba2(0xfa),'owner:\x20'+_0x22875e[_0x20fba2(0x107)])):_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x20fba2(0x162)));const _0x4000a1=[_0x20fba2(0x15b),'defaultDingToken'];for(const _0x27a3a0 of _0x4000a1){const _0x512923=_0x22875e[_0x27a3a0];typeof _0x512923===_0x20fba2(0x126)&&/^<.*>$/[_0x20fba2(0x140)](_0x512923[_0x20fba2(0xf7)]())&&_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x27a3a0+_0x20fba2(0x12a)+_0x512923));}const _0x1b9cd8=new Set();if(!Array['isArray'](_0x22875e[_0x20fba2(0x133)]))_0x846b9a['push'](check(_0x20fba2(0x125),_0x20fba2(0x11c)));else{if(_0x22875e[_0x20fba2(0x133)]['length']===0x0)_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x20fba2(0x10d)));else{for(let _0x332ff9=0x0;_0x332ff9<_0x22875e[_0x20fba2(0x133)]['length'];_0x332ff9++){const _0x30f1e8=_0x22875e['conversations'][_0x332ff9],_0x26166b=_0x20fba2(0x150)+_0x332ff9+']';if(!_0x30f1e8[_0x20fba2(0x11a)])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x26166b+_0x20fba2(0xf9)));else{if(typeof _0x30f1e8[_0x20fba2(0x11a)]==='string'&&/^<.*>$/[_0x20fba2(0x140)](_0x30f1e8['conversationId'][_0x20fba2(0xf7)]()))_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x26166b+_0x20fba2(0x129)+_0x30f1e8[_0x20fba2(0x11a)]));else _0x1b9cd8['has'](_0x30f1e8[_0x20fba2(0x11a)])?_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x26166b+_0x20fba2(0x10e)+_0x30f1e8[_0x20fba2(0x11a)])):_0x1b9cd8[_0x20fba2(0x115)](_0x30f1e8['conversationId']);}_0x30f1e8[_0x20fba2(0x15f)]&&!_0x22875e[_0x20fba2(0x133)][_0x20fba2(0xfb)](_0x430162=>_0x430162[_0x20fba2(0x11a)]===_0x30f1e8[_0x20fba2(0x15f)])&&_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x26166b+'\x20linkConversationId\x20\x22'+_0x30f1e8[_0x20fba2(0x15f)]+_0x20fba2(0x116))),_0x30f1e8[_0x20fba2(0x11d)]&&typeof _0x30f1e8[_0x20fba2(0x11d)]===_0x20fba2(0x126)&&/^<.*>$/[_0x20fba2(0x140)](_0x30f1e8[_0x20fba2(0x11d)]['trim']())&&_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x26166b+_0x20fba2(0xfe)));}_0x846b9a[_0x20fba2(0x118)](check('PASS',_0x20fba2(0x143)+_0x22875e[_0x20fba2(0x133)]['length']+_0x20fba2(0xde)));}}if(_0x22875e[_0x20fba2(0x119)]){const _0x128176=_0x22875e[_0x20fba2(0x119)];_0x128176[_0x20fba2(0x139)]&&_0x846b9a[_0x20fba2(0x118)](check('PASS','apiKeyCfg.resetTime:\x20'+_0x128176[_0x20fba2(0x139)]));if(!Array[_0x20fba2(0x153)](_0x128176[_0x20fba2(0x136)]))_0x846b9a['push'](check('WARN','apiKeyCfg.claudeSettings\x20不是数组'));else{if(_0x128176[_0x20fba2(0x136)][_0x20fba2(0x12e)]===0x0)_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),'apiKeyCfg.claudeSettings\x20为空,无备用\x20Key'));else{const _0x30e8ac=new Set();for(let _0x34195f=0x0;_0x34195f<_0x128176[_0x20fba2(0x136)]['length'];_0x34195f++){const _0x154d11=_0x128176[_0x20fba2(0x136)][_0x34195f],_0x53f535='apiKeyCfg.claudeSettings['+_0x34195f+']';if(!_0x154d11[_0x20fba2(0x15d)])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x53f535+_0x20fba2(0x14e)));else _0x30e8ac['has'](_0x154d11[_0x20fba2(0x15d)])?_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x53f535+_0x20fba2(0x10f)+(0x0,api_key_manager_1[_0x20fba2(0x15c)])(_0x154d11))):_0x30e8ac[_0x20fba2(0x115)](_0x154d11[_0x20fba2(0x15d)]);if(!_0x154d11[_0x20fba2(0x12d)])_0x846b9a[_0x20fba2(0x118)](check('WARN',_0x53f535+_0x20fba2(0xe6)));if(!_0x154d11[_0x20fba2(0x106)])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x53f535+_0x20fba2(0x15a)));if(typeof _0x154d11[_0x20fba2(0xff)]!==_0x20fba2(0x137))_0x846b9a[_0x20fba2(0x118)](check('WARN',_0x53f535+'\x20isValid\x20类型异常:\x20'+typeof _0x154d11['isValid']));}const _0x66d4b0=_0x128176[_0x20fba2(0x136)][_0x20fba2(0x128)](_0x4508a0=>_0x4508a0[_0x20fba2(0xff)])[_0x20fba2(0x12e)];_0x846b9a['push'](check(_0x20fba2(0xfa),_0x20fba2(0x113)+_0x128176[_0x20fba2(0x136)][_0x20fba2(0x12e)]+'\x20项,有效\x20'+_0x66d4b0));}}}else _0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0xe1)));const _0x1f076e=path_1[_0x20fba2(0x142)][_0x20fba2(0x117)](_0x5ef620,_0x20fba2(0xe0));if(fs_1['default'][_0x20fba2(0x14d)](_0x1f076e))try{const _0x12455d=JSON['parse'](fs_1['default'][_0x20fba2(0x110)](_0x1f076e,_0x20fba2(0x108))),_0x160bad=Array[_0x20fba2(0x153)](_0x12455d)?_0x12455d:_0x12455d[_0x20fba2(0x11b)];if(Array[_0x20fba2(0x153)](_0x160bad)){const _0x330eb6=_0x160bad[_0x20fba2(0x128)](_0xcb7362=>_0xcb7362[_0x20fba2(0x13e)]!==![])[_0x20fba2(0x12e)];_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),'cron.json\x20共\x20'+_0x160bad[_0x20fba2(0x12e)]+'\x20个定时任务\x20('+_0x330eb6+_0x20fba2(0x12f)));for(let _0x168ebe=0x0;_0x168ebe<_0x160bad['length'];_0x168ebe++){const _0x201ee6=_0x160bad[_0x168ebe];if(!_0x201ee6['id'])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0x15e)+_0x168ebe+_0x20fba2(0x13a)));if(!_0x201ee6[_0x20fba2(0x135)])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0x15e)+_0x168ebe+']\x20缺少\x20cronExpression'));if(!_0x201ee6['prompt'])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0x15e)+_0x168ebe+_0x20fba2(0x132)));if(!_0x201ee6[_0x20fba2(0x11a)])_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0x15e)+_0x168ebe+_0x20fba2(0x109)));else!_0x1b9cd8[_0x20fba2(0x157)](_0x201ee6[_0x20fba2(0x11a)])&&_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),'cron.json['+_0x168ebe+_0x20fba2(0x10c)+_0x201ee6[_0x20fba2(0x11a)]+'\x22\x20未在\x20config.json\x20conversations\x20中找到'));}}else _0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0xf6)));}catch(_0x5924e5){_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0xe4)+(_0x5924e5 instanceof Error?_0x5924e5[_0x20fba2(0xe2)]:_0x5924e5)));}else _0x846b9a['push'](check(_0x20fba2(0xfa),_0x20fba2(0xf5)));const _0x2d3de6=path_1[_0x20fba2(0x142)][_0x20fba2(0x117)]((0x0,session_1[_0x20fba2(0xf4)])(),_0x20fba2(0x149),_0x20fba2(0x14f));if(fs_1[_0x20fba2(0x142)][_0x20fba2(0x14d)](_0x2d3de6))try{const _0x298b65=JSON['parse'](fs_1[_0x20fba2(0x142)]['readFileSync'](_0x2d3de6,_0x20fba2(0x108)));if(typeof _0x298b65!=='object'||_0x298b65===null)_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0x131)));else{if(!_0x298b65['env']||typeof _0x298b65[_0x20fba2(0xf8)]!==_0x20fba2(0x112))_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0xe7)));else{const _0x3ac84a=Object[_0x20fba2(0xec)](_0x298b65['env']);_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0xfa),_0x20fba2(0x101)+(_0x3ac84a[_0x20fba2(0x117)](',\x20')||_0x20fba2(0xe9))));}}}catch(_0x49150b){_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x148),_0x20fba2(0xe3)+(_0x49150b instanceof Error?_0x49150b['message']:_0x49150b)));}else _0x846b9a['push'](check(_0x20fba2(0x148),'settings-tpl.json\x20不存在,创建\x20settings-ding.json\x20时将使用空模板'));try{(0x0,child_process_1[_0x20fba2(0x159)])(_0x20fba2(0x160),{'stdio':_0x20fba2(0x156)}),_0x846b9a[_0x20fba2(0x118)](check('PASS',_0x20fba2(0x147)));}catch{_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x20fba2(0x14c)));}try{const _0x1a583b=path_1[_0x20fba2(0x142)]['join'](_0x5ef620,_0x20fba2(0x105));fs_1['default'][_0x20fba2(0x114)](_0x1a583b,'ok','utf-8'),fs_1['default']['unlinkSync'](_0x1a583b),_0x846b9a[_0x20fba2(0x118)](check('PASS',_0x20fba2(0x122)));}catch(_0xaf027c){_0x846b9a[_0x20fba2(0x118)](check(_0x20fba2(0x125),_0x20fba2(0x141)+(_0xaf027c instanceof Error?_0xaf027c[_0x20fba2(0xe2)]:_0xaf027c)));}return _0x846b9a;}function check(_0x9431b,_0x45fbec){return{'level':_0x9431b,'message':_0x45fbec};}
1
+ 'use strict';function a6_0x544a(){const _0x25c12e=['5298552KYwVSG','缺少必填字段:\x20','__esModule','dingToken','keys','test','cron.json\x20共\x20','2177472mMGAhA','push','model','getHomeDir','split','\x20警告,\x20','\x20apiKey\x20重复:\x20','.doctor-check','cron.json\x20格式异常,无法解析为任务数组','客户端目录不可写:\x20','conversations\x20应为数组','whiteUserList','settings-tpl.json','\x20启用)','config.json\x20不存在','default','settings-tpl.json\x20缺少\x20env\x20字段','./session','PASS','config.json','(空)','claudeSettings','readFileSync','====================================\x0a','settings-tpl.json\x20不存在,创建\x20settings-ding.json\x20时将使用空模板','客户端目录存在:\x20','clientSecret','object',']\x20缺少\x20prompt','kill','.cc-ding','config.json\x20解析成功','join','utf-8','claude\x20命令不可用,请确认\x20Claude\x20Code\x20CLI\x20已安装','conversationId','进程运行中\x20(PID:\x20','Node\x20版本:','defineProperty','execSync','slice','exit','\x20仍为占位符:\x20','level','cronExpression','owner:\x20','1851292UzNjNI','\x20缺少\x20conversationId','isValid','settings-tpl.json\x20解析失败:\x20','boolean','isArray','has','settingLabel','cron.json','version','\x20为空数组','./api-key-manager',']\x20conversationId\x20\x22','apiKeyCfg.claudeSettings\x20不是数组','apiKeyCfg\x20未配置,无法使用\x20API\x20Key\x20池化轮换',']\x20缺少\x20id','string','settings-tpl.json\x20有效,env\x20包含:\x20','length','existsSync','WARN','7SujfPf','11915320zyVAzR','trim','12LITSim','30243590uLpoUK','2424505YjPrGT','some','resetTime',']\x20缺少\x20cronExpression','settings-tpl.json\x20根元素不是对象','runDoctor','which\x20claude','apiKeyCfg.claudeSettings\x20为空,无备用\x20Key','owner','defaultDingToken','PID\x20锁文件读取异常:\x20','conversations\x20为空数组,可通过\x20/reg\x20命令动态注册','add','enabled','\x20缺少\x20model','\x20个定时任务\x20(','conversations[','\x20linkConversationId\x20\x22','baseUrl','env','cron.json[','unlinkSync','\x20通过,\x20','\x20\x20❌\x20存在致命问题,请修复后重新运行','------------------------------------','jobs','\x20\x20✅\x20所有检查通过','filter','\x20项,有效\x20','apiKeyCfg','message','conversations','apiKey','\x20个群配置','9AhrxeS','path','log','prompt','cron.json\x20不存在\x20(无定时任务)','\x20缺少\x20baseUrl','\x20致命','\x22\x20未在\x20conversations\x20中找到','apiKeyCfg.claudeSettings[','1253209afdfNt','parse','printDoctorResults','FATAL','无运行中的进程','linkConversationId','startsWith','owner\x20未配置,管理命令(/clean,\x20/open,\x20/reset-apikeycfg,\x20/reg,\x20/auth)不可用','apiKeyCfg.resetTime:\x20','\x20conversationId\x20仍为占位符:\x20','claude\x20命令可用','\x20isValid\x20类型异常:\x20'];a6_0x544a=function(){return _0x25c12e;};return a6_0x544a();}const a6_0x3a40ed=a6_0x13b7;(function(_0x48f8b4,_0x13739b){const _0x3dc24b=a6_0x13b7,_0xe595c5=_0x48f8b4();while(!![]){try{const _0x44b77e=parseInt(_0x3dc24b(0xd2))/0x1+parseInt(_0x3dc24b(0xe5))/0x2+-parseInt(_0x3dc24b(0xc9))/0x3*(-parseInt(_0x3dc24b(0x8d))/0x4)+-parseInt(_0x3dc24b(0xa7))/0x5*(-parseInt(_0x3dc24b(0xa5))/0x6)+-parseInt(_0x3dc24b(0xa2))/0x7*(parseInt(_0x3dc24b(0xa3))/0x8)+parseInt(_0x3dc24b(0xde))/0x9+-parseInt(_0x3dc24b(0xa6))/0xa;if(_0x44b77e===_0x13739b)break;else _0xe595c5['push'](_0xe595c5['shift']());}catch(_0x3d9213){_0xe595c5['push'](_0xe595c5['shift']());}}}(a6_0x544a,0xbd402));var __importDefault=this&&this['__importDefault']||function(_0x4e9f65){const _0x34cca0=a6_0x13b7;return _0x4e9f65&&_0x4e9f65[_0x34cca0(0xe0)]?_0x4e9f65:{'default':_0x4e9f65};};function a6_0x13b7(_0x1519f4,_0xbc0dcf){_0x1519f4=_0x1519f4-0x6f;const _0x544aa1=a6_0x544a();let _0x13b7a2=_0x544aa1[_0x1519f4];return _0x13b7a2;}Object[a6_0x3a40ed(0x85)](exports,a6_0x3a40ed(0xe0),{'value':!![]}),exports[a6_0x3a40ed(0xd4)]=printDoctorResults,exports[a6_0x3a40ed(0xac)]=runDoctor;const session_1=require(a6_0x3a40ed(0x70)),api_key_manager_1=require(a6_0x3a40ed(0x98)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a6_0x3a40ed(0xca))),child_process_1=require('child_process');function printDoctorResults(_0x570f49){const _0x1f9ace=a6_0x3a40ed;console['log'](''),console[_0x1f9ace(0xcb)]('==========\x20cc-ding\x20doctor\x20==========');const _0x22d4c8=_0x570f49[_0x1f9ace(0xa8)](_0x5f49e6=>_0x5f49e6[_0x1f9ace(0x8a)]==='FATAL');for(const _0x4788a0 of _0x570f49){const _0x235fa5=_0x4788a0[_0x1f9ace(0x8a)]===_0x1f9ace(0x71)?'✓':_0x4788a0[_0x1f9ace(0x8a)]===_0x1f9ace(0xd5)?'✗':'⚠',_0x47eb56=_0x4788a0[_0x1f9ace(0x8a)]===_0x1f9ace(0x71)?'':'['+_0x4788a0['level']+']\x20';console['log']('\x20\x20'+_0x235fa5+'\x20'+_0x47eb56+_0x4788a0[_0x1f9ace(0xc5)]);}const _0x22d544=_0x570f49[_0x1f9ace(0xc2)](_0x4bbb1c=>_0x4bbb1c[_0x1f9ace(0x8a)]===_0x1f9ace(0x71))[_0x1f9ace(0x9f)],_0x3a815a=_0x570f49[_0x1f9ace(0xc2)](_0x47bfe2=>_0x47bfe2['level']==='WARN')[_0x1f9ace(0x9f)],_0x1775a5=_0x570f49[_0x1f9ace(0xc2)](_0x5dda35=>_0x5dda35[_0x1f9ace(0x8a)]===_0x1f9ace(0xd5))[_0x1f9ace(0x9f)];console['log'](_0x1f9ace(0xbf)),console[_0x1f9ace(0xcb)]('\x20\x20合计:\x20'+_0x22d544+_0x1f9ace(0xbd)+_0x3a815a+_0x1f9ace(0xea)+_0x1775a5+_0x1f9ace(0xcf));_0x22d4c8?console['log'](_0x1f9ace(0xbe)):console['log'](_0x1f9ace(0xc1));console[_0x1f9ace(0xcb)](_0x1f9ace(0x76));if(_0x22d4c8)process[_0x1f9ace(0x88)](0x1);}function runDoctor(_0x10accd){const _0x203b71=a6_0x3a40ed,_0xd47475=[],_0x293ae1=process[_0x203b71(0x96)][_0x203b71(0x87)](0x1),_0x354108=parseInt(_0x293ae1[_0x203b71(0xe9)]('.')[0x0],0xa);_0x354108<0x18?_0xd47475[_0x203b71(0xe6)](check('FATAL','Node\x20版本过低:'+_0x293ae1+',要求\x20Node\x20>=\x2024')):_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0x84)+_0x293ae1));if(!fs_1[_0x203b71(0xf4)][_0x203b71(0xa0)](_0x10accd))return _0xd47475[_0x203b71(0xe6)](check('FATAL','客户端目录不存在:\x20'+_0x10accd)),_0xd47475;_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0x78)+_0x10accd));const _0x42a453=path_1['default'][_0x203b71(0x7f)](_0x10accd,'.pid.lock');if(fs_1[_0x203b71(0xf4)][_0x203b71(0xa0)](_0x42a453))try{const _0x2d592d=parseInt(fs_1['default']['readFileSync'](_0x42a453,_0x203b71(0x80))[_0x203b71(0xa4)](),0xa);if(!isNaN(_0x2d592d))try{process[_0x203b71(0x7c)](_0x2d592d,0x0),_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0x83)+_0x2d592d+')'));}catch{_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),'锁文件存在但进程\x20'+_0x2d592d+'\x20已退出(过期锁文件)'));}}catch{_0xd47475[_0x203b71(0xe6)](check('WARN',_0x203b71(0xb1)+_0x42a453));}else _0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0xd6)));const _0x4e10c8=path_1['default'][_0x203b71(0x7f)](_0x10accd,_0x203b71(0x72));if(!fs_1[_0x203b71(0xf4)]['existsSync'](_0x4e10c8))return _0xd47475['push'](check(_0x203b71(0xd5),_0x203b71(0xf3))),_0xd47475;let _0x321b32;try{_0x321b32=JSON[_0x203b71(0xd3)](fs_1[_0x203b71(0xf4)][_0x203b71(0x75)](_0x4e10c8,_0x203b71(0x80)));}catch(_0x16803f){return _0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xd5),'config.json\x20解析失败:\x20'+(_0x16803f instanceof Error?_0x16803f['message']:_0x16803f))),_0xd47475;}_0xd47475[_0x203b71(0xe6)](check('PASS',_0x203b71(0x7e)));const _0x6b5c08=[{'key':_0x203b71(0x79),'label':'clientSecret'},{'key':_0x203b71(0xb0),'label':_0x203b71(0xb0)},{'key':_0x203b71(0xf0),'label':_0x203b71(0xf0),'isArr':!![]},{'key':_0x203b71(0xaf),'label':'owner'}];for(const {key:_0x53cc43,label:_0x560667,isArr:_0x50d9b9}of _0x6b5c08){const _0x3e78b0=_0x321b32[_0x53cc43];if(_0x3e78b0===undefined||_0x3e78b0===null||_0x3e78b0==='')_0xd47475['push'](check(_0x203b71(0xd5),_0x203b71(0xdf)+_0x560667));else{if(_0x50d9b9&&!Array[_0x203b71(0x92)](_0x3e78b0))_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xd5),_0x560667+'\x20应为数组'));else{if(_0x53cc43!==_0x203b71(0xc6)&&_0x50d9b9&&_0x3e78b0[_0x203b71(0x9f)]===0x0)_0xd47475[_0x203b71(0xe6)](check('WARN',_0x560667+_0x203b71(0x97)));else!_0x50d9b9&&typeof _0x3e78b0==='string'&&_0x3e78b0[_0x203b71(0xd8)]('<')?_0xd47475['push'](check(_0x203b71(0xd5),_0x560667+_0x203b71(0x89)+_0x3e78b0)):_0xd47475['push'](check(_0x203b71(0x71),_0x560667+'\x20✓'));}}}_0x321b32[_0x203b71(0xaf)]?_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0x8c)+_0x321b32[_0x203b71(0xaf)])):_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xd5),_0x203b71(0xd9)));const _0x82ea59=[_0x203b71(0x79),_0x203b71(0xb0)];for(const _0x5bbedf of _0x82ea59){const _0x2dc0a4=_0x321b32[_0x5bbedf];typeof _0x2dc0a4===_0x203b71(0x9d)&&/^<.*>$/[_0x203b71(0xe3)](_0x2dc0a4[_0x203b71(0xa4)]())&&_0xd47475['push'](check(_0x203b71(0xd5),_0x5bbedf+_0x203b71(0x89)+_0x2dc0a4));}const _0x28a875=new Set();if(!Array['isArray'](_0x321b32[_0x203b71(0xc6)]))_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xd5),_0x203b71(0xef)));else{if(_0x321b32[_0x203b71(0xc6)][_0x203b71(0x9f)]===0x0)_0xd47475[_0x203b71(0xe6)](check('PASS',_0x203b71(0xb2)));else{for(let _0x57e361=0x0;_0x57e361<_0x321b32[_0x203b71(0xc6)]['length'];_0x57e361++){const _0x2f3516=_0x321b32[_0x203b71(0xc6)][_0x57e361],_0x45e63a=_0x203b71(0xb7)+_0x57e361+']';if(!_0x2f3516[_0x203b71(0x82)])_0xd47475[_0x203b71(0xe6)](check('FATAL',_0x45e63a+_0x203b71(0x8e)));else{if(typeof _0x2f3516['conversationId']===_0x203b71(0x9d)&&/^<.*>$/['test'](_0x2f3516[_0x203b71(0x82)][_0x203b71(0xa4)]()))_0xd47475[_0x203b71(0xe6)](check('FATAL',_0x45e63a+_0x203b71(0xdb)+_0x2f3516['conversationId']));else _0x28a875[_0x203b71(0x93)](_0x2f3516[_0x203b71(0x82)])?_0xd47475[_0x203b71(0xe6)](check('WARN',_0x45e63a+'\x20conversationId\x20重复:\x20'+_0x2f3516[_0x203b71(0x82)])):_0x28a875[_0x203b71(0xb3)](_0x2f3516['conversationId']);}_0x2f3516[_0x203b71(0xd7)]&&!_0x321b32[_0x203b71(0xc6)][_0x203b71(0xa8)](_0x103f23=>_0x103f23[_0x203b71(0x82)]===_0x2f3516['linkConversationId'])&&_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x45e63a+_0x203b71(0xb8)+_0x2f3516[_0x203b71(0xd7)]+_0x203b71(0xd0))),_0x2f3516[_0x203b71(0xe1)]&&typeof _0x2f3516[_0x203b71(0xe1)]===_0x203b71(0x9d)&&/^<.*>$/[_0x203b71(0xe3)](_0x2f3516[_0x203b71(0xe1)]['trim']())&&_0xd47475['push'](check(_0x203b71(0xa1),_0x45e63a+'\x20dingToken\x20仍为占位符'));}_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),'conversations\x20共\x20'+_0x321b32[_0x203b71(0xc6)][_0x203b71(0x9f)]+_0x203b71(0xc8)));}}if(_0x321b32[_0x203b71(0xc4)]){const _0x3aa5e5=_0x321b32[_0x203b71(0xc4)];_0x3aa5e5[_0x203b71(0xa9)]&&_0xd47475['push'](check(_0x203b71(0x71),_0x203b71(0xda)+_0x3aa5e5[_0x203b71(0xa9)]));if(!Array[_0x203b71(0x92)](_0x3aa5e5['claudeSettings']))_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0x9a)));else{if(_0x3aa5e5[_0x203b71(0x74)][_0x203b71(0x9f)]===0x0)_0xd47475[_0x203b71(0xe6)](check('WARN',_0x203b71(0xae)));else{const _0x478b2d=new Set();for(let _0x5ccbf9=0x0;_0x5ccbf9<_0x3aa5e5[_0x203b71(0x74)][_0x203b71(0x9f)];_0x5ccbf9++){const _0x2f5cc0=_0x3aa5e5['claudeSettings'][_0x5ccbf9],_0x19afb4=_0x203b71(0xd1)+_0x5ccbf9+']';if(!_0x2f5cc0[_0x203b71(0xc7)])_0xd47475['push'](check(_0x203b71(0xd5),_0x19afb4+'\x20缺少\x20apiKey'));else _0x478b2d['has'](_0x2f5cc0[_0x203b71(0xc7)])?_0xd47475['push'](check(_0x203b71(0xa1),_0x19afb4+_0x203b71(0xeb)+(0x0,api_key_manager_1[_0x203b71(0x94)])(_0x2f5cc0))):_0x478b2d[_0x203b71(0xb3)](_0x2f5cc0[_0x203b71(0xc7)]);if(!_0x2f5cc0[_0x203b71(0xb9)])_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x19afb4+_0x203b71(0xce)));if(!_0x2f5cc0[_0x203b71(0xe7)])_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x19afb4+_0x203b71(0xb5)));if(typeof _0x2f5cc0[_0x203b71(0x8f)]!==_0x203b71(0x91))_0xd47475[_0x203b71(0xe6)](check('WARN',_0x19afb4+_0x203b71(0xdd)+typeof _0x2f5cc0['isValid']));}const _0x276cbf=_0x3aa5e5[_0x203b71(0x74)][_0x203b71(0xc2)](_0x15c027=>_0x15c027[_0x203b71(0x8f)])[_0x203b71(0x9f)];_0xd47475[_0x203b71(0xe6)](check('PASS','apiKeyCfg.claudeSettings\x20共\x20'+_0x3aa5e5[_0x203b71(0x74)]['length']+_0x203b71(0xc3)+_0x276cbf));}}}else _0xd47475['push'](check(_0x203b71(0xa1),_0x203b71(0x9b)));const _0x207dbb=path_1[_0x203b71(0xf4)][_0x203b71(0x7f)](_0x10accd,_0x203b71(0x95));if(fs_1[_0x203b71(0xf4)]['existsSync'](_0x207dbb))try{const _0x5693d4=JSON['parse'](fs_1[_0x203b71(0xf4)]['readFileSync'](_0x207dbb,_0x203b71(0x80))),_0x2be6ed=Array[_0x203b71(0x92)](_0x5693d4)?_0x5693d4:_0x5693d4[_0x203b71(0xc0)];if(Array['isArray'](_0x2be6ed)){const _0x18d8a4=_0x2be6ed['filter'](_0x197da5=>_0x197da5[_0x203b71(0xb4)]!==![])[_0x203b71(0x9f)];_0xd47475[_0x203b71(0xe6)](check('PASS',_0x203b71(0xe4)+_0x2be6ed[_0x203b71(0x9f)]+_0x203b71(0xb6)+_0x18d8a4+_0x203b71(0xf2)));for(let _0x59b5e2=0x0;_0x59b5e2<_0x2be6ed[_0x203b71(0x9f)];_0x59b5e2++){const _0x6869ce=_0x2be6ed[_0x59b5e2];if(!_0x6869ce['id'])_0xd47475[_0x203b71(0xe6)](check('WARN',_0x203b71(0xbb)+_0x59b5e2+_0x203b71(0x9c)));if(!_0x6869ce[_0x203b71(0x8b)])_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0xbb)+_0x59b5e2+_0x203b71(0xaa)));if(!_0x6869ce[_0x203b71(0xcc)])_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0xbb)+_0x59b5e2+_0x203b71(0x7b)));if(!_0x6869ce[_0x203b71(0x82)])_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0xbb)+_0x59b5e2+']\x20缺少\x20conversationId'));else!_0x28a875[_0x203b71(0x93)](_0x6869ce[_0x203b71(0x82)])&&_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),'cron.json['+_0x59b5e2+_0x203b71(0x99)+_0x6869ce[_0x203b71(0x82)]+'\x22\x20未在\x20config.json\x20conversations\x20中找到'));}}else _0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0xed)));}catch(_0x477636){_0xd47475['push'](check('WARN','cron.json\x20解析失败:\x20'+(_0x477636 instanceof Error?_0x477636[_0x203b71(0xc5)]:_0x477636)));}else _0xd47475[_0x203b71(0xe6)](check('PASS',_0x203b71(0xcd)));const _0x3af983=path_1[_0x203b71(0xf4)][_0x203b71(0x7f)]((0x0,session_1[_0x203b71(0xe8)])(),_0x203b71(0x7d),_0x203b71(0xf1));if(fs_1[_0x203b71(0xf4)][_0x203b71(0xa0)](_0x3af983))try{const _0x5df39a=JSON['parse'](fs_1[_0x203b71(0xf4)][_0x203b71(0x75)](_0x3af983,_0x203b71(0x80)));if(typeof _0x5df39a!=='object'||_0x5df39a===null)_0xd47475['push'](check(_0x203b71(0xa1),_0x203b71(0xab)));else{if(!_0x5df39a[_0x203b71(0xba)]||typeof _0x5df39a[_0x203b71(0xba)]!==_0x203b71(0x7a))_0xd47475['push'](check(_0x203b71(0xa1),_0x203b71(0x6f)));else{const _0x387cae=Object[_0x203b71(0xe2)](_0x5df39a[_0x203b71(0xba)]);_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0x9e)+(_0x387cae[_0x203b71(0x7f)](',\x20')||_0x203b71(0x73))));}}}catch(_0x114b9b){_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0x90)+(_0x114b9b instanceof Error?_0x114b9b['message']:_0x114b9b)));}else _0xd47475[_0x203b71(0xe6)](check(_0x203b71(0xa1),_0x203b71(0x77)));try{(0x0,child_process_1[_0x203b71(0x86)])(_0x203b71(0xad),{'stdio':'pipe'}),_0xd47475[_0x203b71(0xe6)](check(_0x203b71(0x71),_0x203b71(0xdc)));}catch{_0xd47475['push'](check(_0x203b71(0xd5),_0x203b71(0x81)));}try{const _0x5b772f=path_1[_0x203b71(0xf4)][_0x203b71(0x7f)](_0x10accd,_0x203b71(0xec));fs_1['default']['writeFileSync'](_0x5b772f,'ok',_0x203b71(0x80)),fs_1[_0x203b71(0xf4)][_0x203b71(0xbc)](_0x5b772f),_0xd47475['push'](check(_0x203b71(0x71),'客户端目录可写'));}catch(_0x1e2f04){_0xd47475['push'](check('FATAL',_0x203b71(0xee)+(_0x1e2f04 instanceof Error?_0x1e2f04['message']:_0x1e2f04)));}return _0xd47475;}function check(_0x11bd06,_0x5c2349){return{'level':_0x11bd06,'message':_0x5c2349};}
@@ -1 +1 @@
1
- 'use strict';const a7_0x16fd1b=a7_0x309d;(function(_0x57642e,_0x17a2a9){const _0x4475b2=a7_0x309d,_0x37dfbc=_0x57642e();while(!![]){try{const _0x52ab91=parseInt(_0x4475b2(0x1dc))/0x1*(parseInt(_0x4475b2(0x1a9))/0x2)+parseInt(_0x4475b2(0x1e8))/0x3+parseInt(_0x4475b2(0x1cc))/0x4*(-parseInt(_0x4475b2(0x1e9))/0x5)+-parseInt(_0x4475b2(0x204))/0x6*(-parseInt(_0x4475b2(0x1fc))/0x7)+-parseInt(_0x4475b2(0x1fd))/0x8*(-parseInt(_0x4475b2(0x1cf))/0x9)+parseInt(_0x4475b2(0x1f3))/0xa+parseInt(_0x4475b2(0x20a))/0xb*(-parseInt(_0x4475b2(0x1ae))/0xc);if(_0x52ab91===_0x17a2a9)break;else _0x37dfbc['push'](_0x37dfbc['shift']());}catch(_0x305a6a){_0x37dfbc['push'](_0x37dfbc['shift']());}}}(a7_0x1b77,0x1e22d));var __importDefault=this&&this[a7_0x16fd1b(0x201)]||function(_0x517f7a){const _0x277eb7=a7_0x16fd1b;return _0x517f7a&&_0x517f7a[_0x277eb7(0x1f0)]?_0x517f7a:{'default':_0x517f7a};};Object[a7_0x16fd1b(0x1ed)](exports,a7_0x16fd1b(0x1f0),{'value':!![]}),exports[a7_0x16fd1b(0x1d1)]=runOcr,exports[a7_0x16fd1b(0x1bd)]=processPictureMessage,exports[a7_0x16fd1b(0x20c)]=processRichTextMessage;const child_process_1=require(a7_0x16fd1b(0x1bf)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path')),urllib_1=__importDefault(require(a7_0x16fd1b(0x1b7))),session_1=require(a7_0x16fd1b(0x1f9)),common_1=require('../common'),MAX_IMAGE_SIZE=0xa*0x400*0x400,DING_API_BASE=a7_0x16fd1b(0x209),OCR_PREAMBLE=a7_0x16fd1b(0x1b3),OCR_BIN_DIR=(0x0,common_1[a7_0x16fd1b(0x1ca)])()[a7_0x16fd1b(0x1b1)](),cachedOcrBinPath=((()=>{const _0x3a7e9e=a7_0x16fd1b;if(process[_0x3a7e9e(0x1c1)]==='win32')return null;const _0x30264=process[_0x3a7e9e(0x1ff)];if(_0x30264==='arm64')return path_1[_0x3a7e9e(0x1c4)][_0x3a7e9e(0x1c5)](OCR_BIN_DIR,'ocr-arm64');if(_0x30264===_0x3a7e9e(0x1fb))return path_1[_0x3a7e9e(0x1c4)][_0x3a7e9e(0x1c5)](OCR_BIN_DIR,_0x3a7e9e(0x1a8));return null;})());function a7_0x1b77(){const _0x4d6e97=['pictureDownloadCode','request','1318734EJYDJh',',\x20data=','runOcr',']\x20图片大小\x20','\x0a---','trim',']\x20OCR\x20无识别结果','[图片\x20','POST','image/png','mkdirSync',']\x20downloadImageBuffer\x20下载失败:','jpg','8037Rddedv','\x20bytes)','set','log',']\x20图片保存失败:\x20','json','downloadCode','type','push','length','...','substring','363978kEthlg','517955vDVZer','[富文本消息内容为空]','data','then','defineProperty','[图片]','gif','__esModule',']\x20图片已保存:\x20','existsSync','583740lCyEXa',']\x20OCR\x20二进制不存在:\x20',']\x20当前平台(','status','\x20OCR]','timestamp','./session','filter','x64','66171dpGcUk','8GWgKuN','map','arch','filePath','__importDefault','application/json','webp','150BfTnNZ','downloadUrl','/v1.0/robot/messageFiles/download','stringify','buffer','https://api.dingtalk.com','1701755mdzEgI','userId','processRichTextMessage','slice',']\x20getImageDownloadUrl\x20请求失败:','ocr-x64','32fuxnEI','text','getImageDownloadUrl\x20响应无\x20downloadUrl:\x20','getImageDownloadUrl\x20API\x20返回非200:\x20status=',']\x20OCR\x20stderr:\x20','36jwKqmm',')不支持本地OCR,使用模型识别','image/jpeg','getResourcePath','debugLog','以下图片\x20OCR\x20识别结果来自对用户消息中图片的预处理(非用户原始输入),如识别不准确可直接查看原图路径',']\x20downloadImageBuffer\x20下载失败:\x20status=','all',']\x20OCR\x20输出解析失败:\x20','urllib','parse','dingStreamClient','\x0a---\x0a','test','[��片下载失败]','processPictureMessage','isArray','child_process','get','platform','picture','GET','default','join','image/gif','warn','[图片\x20OCR]','getAccessToken','projUtil','execFile','4PPMUrv'];a7_0x1b77=function(){return _0x4d6e97;};return a7_0x1b77();}let ocrBinExists=null;async function runOcr(_0x299355){const _0x591fc8=a7_0x16fd1b;if(!cachedOcrBinPath)return console[_0x591fc8(0x1df)]('['+(0x0,session_1['timestamp'])()+_0x591fc8(0x1f5)+process[_0x591fc8(0x1c1)]+'/'+process[_0x591fc8(0x1ff)]+_0x591fc8(0x1af)),null;ocrBinExists===null&&(ocrBinExists=fs_1[_0x591fc8(0x1c4)][_0x591fc8(0x1f2)](cachedOcrBinPath),!ocrBinExists&&console[_0x591fc8(0x1c7)]('['+(0x0,session_1[_0x591fc8(0x1f8)])()+_0x591fc8(0x1f4)+cachedOcrBinPath));if(!ocrBinExists)return null;return new Promise(_0x517617=>{const _0x293d3a=_0x591fc8;(0x0,child_process_1[_0x293d3a(0x1cb)])(cachedOcrBinPath,[_0x299355],{'timeout':0x7530,'maxBuffer':0x5*0x400*0x400},(_0x2218a5,_0x2f9ab0,_0x9287ad)=>{const _0x29e9fe=_0x293d3a;if(_0x2218a5){console[_0x29e9fe(0x1c7)]('['+(0x0,session_1[_0x29e9fe(0x1f8)])()+']\x20OCR\x20执行失败:\x20'+_0x2218a5['message']);if(_0x9287ad)console[_0x29e9fe(0x1c7)]('['+(0x0,session_1[_0x29e9fe(0x1f8)])()+_0x29e9fe(0x1ad)+_0x9287ad[_0x29e9fe(0x1e7)](0x0,0xc8));_0x517617(null);return;}try{const _0x5466d1=JSON[_0x29e9fe(0x1b8)](_0x2f9ab0);if(!Array[_0x29e9fe(0x1be)](_0x5466d1)||_0x5466d1[_0x29e9fe(0x1e5)]===0x0){console['log']('['+(0x0,session_1['timestamp'])()+_0x29e9fe(0x1d5)),_0x517617(null);return;}const _0x3f2e02=_0x5466d1[_0x29e9fe(0x1fe)](_0x29e027=>_0x29e027['word'])['filter'](Boolean)['join']('\x20');console[_0x29e9fe(0x1df)]('['+(0x0,session_1[_0x29e9fe(0x1f8)])()+']\x20OCR\x20识别结果:\x20'+_0x3f2e02[_0x29e9fe(0x1e7)](0x0,0xc8)+(_0x3f2e02[_0x29e9fe(0x1e5)]>0xc8?_0x29e9fe(0x1e6):'')),_0x517617(_0x3f2e02||null);}catch{console[_0x29e9fe(0x1c7)]('['+(0x0,session_1[_0x29e9fe(0x1f8)])()+_0x29e9fe(0x1b6)+_0x2f9ab0[_0x29e9fe(0x1e7)](0x0,0xc8)),_0x517617(null);}});});}const MAGIC_NUMBERS=[{'bytes':[0x89,0x50,0x4e,0x47],'mediaType':a7_0x16fd1b(0x1d8),'ext':'png'},{'bytes':[0xff,0xd8,0xff],'mediaType':a7_0x16fd1b(0x1b0),'ext':a7_0x16fd1b(0x1db)},{'bytes':[0x47,0x49,0x46],'mediaType':a7_0x16fd1b(0x1c6),'ext':a7_0x16fd1b(0x1ef)},{'bytes':[0x52,0x49,0x46,0x46],'mediaType':'image/webp','ext':a7_0x16fd1b(0x203)}];function detectImageMediaType(_0x5caf61){const _0x5a2c2b=a7_0x16fd1b;for(const {bytes:_0x1d3150,mediaType:_0x2d38fb,ext:_0x24dc2e}of MAGIC_NUMBERS){if(_0x5caf61[_0x5a2c2b(0x1e5)]>=_0x1d3150['length']&&_0x1d3150['every']((_0xea961b,_0x36526c)=>_0x5caf61[_0x36526c]===_0xea961b))return{'mediaType':_0x2d38fb,'ext':_0x24dc2e};}return{'mediaType':'image/jpeg','ext':'jpg'};}async function getImageDownloadUrl(_0x52fb2c,_0x374b80,_0x3cfd5d){const _0x351735=a7_0x16fd1b;try{const _0x3449ae=await _0x52fb2c[_0x351735(0x1b9)][_0x351735(0x1c9)](),_0x4835d2=DING_API_BASE+_0x351735(0x206),_0x5421cd=await urllib_1[_0x351735(0x1c4)][_0x351735(0x1ce)](_0x4835d2,{'method':_0x351735(0x1d7),'headers':{'x-acs-dingtalk-access-token':_0x3449ae,'Content-Type':_0x351735(0x202)},'data':{'downloadCode':_0x374b80,'robotCode':_0x3cfd5d},'dataType':_0x351735(0x1e1),'timeout':0x2710});if(_0x5421cd[_0x351735(0x1f6)]!==0xc8||!_0x5421cd['data'])return _0x52fb2c[_0x351735(0x1b2)](_0x351735(0x1ac)+_0x5421cd[_0x351735(0x1f6)]+_0x351735(0x1d0)+JSON[_0x351735(0x207)](_0x5421cd[_0x351735(0x1eb)])),null;const _0x262d21=_0x5421cd[_0x351735(0x1eb)],_0x3b81dd=_0x262d21?.[_0x351735(0x205)];if(!_0x3b81dd)return _0x52fb2c[_0x351735(0x1b2)](_0x351735(0x1ab)+JSON[_0x351735(0x207)](_0x262d21)),null;return _0x3b81dd;}catch(_0x1dd3f5){return console['warn']('['+(0x0,session_1[_0x351735(0x1f8)])()+_0x351735(0x20e),_0x1dd3f5),null;}}async function downloadImageBuffer(_0x537472){const _0x254763=a7_0x16fd1b;try{const _0x308f72=await urllib_1[_0x254763(0x1c4)][_0x254763(0x1ce)](_0x537472,{'method':_0x254763(0x1c3),'dataType':_0x254763(0x208),'timeout':0x7530});if(_0x308f72[_0x254763(0x1f6)]!==0xc8)return console['warn']('['+(0x0,session_1[_0x254763(0x1f8)])()+_0x254763(0x1b4)+_0x308f72[_0x254763(0x1f6)]),null;const _0x5b8264=_0x308f72[_0x254763(0x1eb)];if(!_0x5b8264||_0x5b8264[_0x254763(0x1e5)]===0x0)return console[_0x254763(0x1c7)]('['+(0x0,session_1['timestamp'])()+']\x20downloadImageBuffer\x20下载结果为空'),null;if(_0x5b8264['length']>MAX_IMAGE_SIZE)return console[_0x254763(0x1c7)]('['+(0x0,session_1[_0x254763(0x1f8)])()+_0x254763(0x1d2)+_0x5b8264[_0x254763(0x1e5)]+'\x20超过限制\x20'+MAX_IMAGE_SIZE),null;return _0x5b8264;}catch(_0x5bcb35){return console[_0x254763(0x1c7)]('['+(0x0,session_1[_0x254763(0x1f8)])()+_0x254763(0x1da),_0x5bcb35),null;}}function a7_0x309d(_0x2c246d,_0x28bc83){_0x2c246d=_0x2c246d-0x1a8;const _0x1b7731=a7_0x1b77();let _0x309df3=_0x1b7731[_0x2c246d];return _0x309df3;}async function downloadAndProcessImage(_0x1f3517,_0x4fc628,_0x4ca42,_0x111860){const _0x29733c=a7_0x16fd1b,_0x3a8315=await getImageDownloadUrl(_0x1f3517,_0x4fc628,_0x4ca42);if(!_0x3a8315)return null;const _0x2b0952=await downloadImageBuffer(_0x3a8315);if(!_0x2b0952)return null;const {mediaType:_0x36d65a,ext:_0x10fc72}=detectImageMediaType(_0x2b0952),_0x4574ae=path_1[_0x29733c(0x1c4)]['join'](_0x111860,'.images'),_0x22095a=_0x4fc628[_0x29733c(0x20d)](-0x8),_0x8ef492=Date['now']()+'-'+_0x22095a+'.'+_0x10fc72,_0x2144bc=path_1[_0x29733c(0x1c4)][_0x29733c(0x1c5)](_0x4574ae,_0x8ef492);try{fs_1[_0x29733c(0x1c4)][_0x29733c(0x1d9)](_0x4574ae,{'recursive':!![]}),fs_1[_0x29733c(0x1c4)]['writeFileSync'](_0x2144bc,_0x2b0952);}catch(_0x5d6f6f){return console[_0x29733c(0x1c7)]('['+(0x0,session_1[_0x29733c(0x1f8)])()+_0x29733c(0x1e0)+_0x2144bc,_0x5d6f6f),null;}return console[_0x29733c(0x1df)]('['+(0x0,session_1[_0x29733c(0x1f8)])()+_0x29733c(0x1f1)+_0x2144bc+'\x20('+_0x36d65a+',\x20'+_0x2b0952['length']+_0x29733c(0x1dd)),{'mediaType':_0x36d65a,'filePath':_0x2144bc,'sizeBytes':_0x2b0952[_0x29733c(0x1e5)]};}async function buildImagePrompt(_0xc0a484,_0x5b0bc9,_0x6663fc){const _0x2b440a=a7_0x16fd1b,_0x41c604=_0x6663fc!=null?_0x2b440a(0x1d6)+_0x6663fc+']':'[图片]';if(_0x5b0bc9){const _0x5dcd93=await runOcr(_0xc0a484[_0x2b440a(0x200)]);if(_0x5dcd93){const _0xf0b7e9=_0x6663fc!=null?_0x2b440a(0x1d6)+_0x6663fc+_0x2b440a(0x1f7):_0x2b440a(0x1c8);return _0x41c604+'\x20'+_0xc0a484[_0x2b440a(0x200)]+'\x0a'+_0xf0b7e9+_0x2b440a(0x1ba)+_0x5dcd93+_0x2b440a(0x1d3);}console['warn']('['+(0x0,session_1[_0x2b440a(0x1f8)])()+']\x20OCR\x20失败,仅传原图路径:\x20'+_0xc0a484[_0x2b440a(0x200)]);}return _0x41c604+'\x20'+_0xc0a484['filePath'];}async function processPictureMessage(_0x1d6a50,_0x4168d0,_0x4b224d,_0xc719d9,_0x52bcd4=!![],_0x4f84d5){const _0x48f47d=a7_0x16fd1b,_0x3a4bb2=await downloadAndProcessImage(_0x1d6a50,_0x4168d0,_0x4b224d,_0xc719d9);if(!_0x3a4bb2)return null;const _0x1facd0=await buildImagePrompt(_0x3a4bb2,_0x52bcd4),_0x112ca2=[];_0x52bcd4&&_0x112ca2['push'](OCR_PREAMBLE);if(_0x4f84d5)_0x112ca2[_0x48f47d(0x1e4)](_0x4f84d5);return _0x112ca2[_0x48f47d(0x1e4)](_0x1facd0),_0x112ca2[_0x48f47d(0x1c5)]('\x0a');}async function processRichTextMessage(_0x16080b,_0x384efb,_0x43783b,_0x16f513,_0x836c09=!![]){const _0x5eb72e=a7_0x16fd1b,_0x1d4b94=_0x384efb[_0x5eb72e(0x1fa)](_0xea25f0=>_0xea25f0[_0x5eb72e(0x1e3)]===_0x5eb72e(0x1c2)&&(_0xea25f0[_0x5eb72e(0x1e2)]||_0xea25f0[_0x5eb72e(0x1cd)]))[_0x5eb72e(0x1e5)],_0x4287f1=_0x384efb[_0x5eb72e(0x1fe)](async(_0x1ba1e0,_0x547384)=>{const _0x2455a9=_0x5eb72e;if(_0x1ba1e0[_0x2455a9(0x1e3)]===_0x2455a9(0x1c2)){const _0x460242=_0x1ba1e0[_0x2455a9(0x1e2)]||_0x1ba1e0[_0x2455a9(0x1cd)];if(_0x460242){const _0x5d3f52=await downloadAndProcessImage(_0x16080b,_0x460242,_0x43783b,_0x16f513);return{'index':_0x547384,'result':_0x5d3f52};}}return{'index':_0x547384,'result':null};}),_0x5e95fa=await Promise[_0x5eb72e(0x1b5)](_0x4287f1),_0x2dfbe8=new Map();for(const {index:_0x7c4f30,result:_0x167bde}of _0x5e95fa){_0x2dfbe8[_0x5eb72e(0x1de)](_0x7c4f30,_0x167bde);}const _0x5b5fda=new Map();if(_0x836c09&&_0x1d4b94>0x0){const _0x2d3eea=[];for(const [_0x194b86,_0x3147ff]of _0x2dfbe8){_0x3147ff&&_0x2d3eea['push'](runOcr(_0x3147ff['filePath'])[_0x5eb72e(0x1ec)](_0x1d82b0=>({'index':_0x194b86,'ocrText':_0x1d82b0})));}const _0x4a29d8=await Promise['all'](_0x2d3eea);for(const {index:_0x35b995,ocrText:_0x46c754}of _0x4a29d8){_0x5b5fda[_0x5eb72e(0x1de)](_0x35b995,_0x46c754);}}const _0x524411=[];let _0x271af8=0x0;for(let _0x397133=0x0;_0x397133<_0x384efb['length'];_0x397133++){const _0x326ba0=_0x384efb[_0x397133];if(_0x326ba0[_0x5eb72e(0x1e3)]===_0x5eb72e(0x1aa)&&_0x326ba0[_0x5eb72e(0x1aa)]){if(/^@\S+$/[_0x5eb72e(0x1bb)](_0x326ba0['text'][_0x5eb72e(0x1d4)]()))continue;_0x524411[_0x5eb72e(0x1e4)](_0x326ba0['text']);}else{if(_0x326ba0['type']==='mention'&&_0x326ba0[_0x5eb72e(0x20b)])_0x524411[_0x5eb72e(0x1e4)]('@'+_0x326ba0['userId']);else{if(_0x326ba0['type']===_0x5eb72e(0x1c2)){const _0x532b92=_0x2dfbe8[_0x5eb72e(0x1c0)](_0x397133);if(_0x532b92){_0x271af8++;const _0x1b5d19=_0x1d4b94>0x1?_0x271af8:undefined,_0x2f1417=_0x836c09?_0x5b5fda[_0x5eb72e(0x1c0)](_0x397133):null,_0x45ea61=_0x1b5d19!=null?_0x5eb72e(0x1d6)+_0x1b5d19+']':_0x5eb72e(0x1ee);if(_0x2f1417){const _0x4db198=_0x1b5d19!=null?_0x5eb72e(0x1d6)+_0x1b5d19+_0x5eb72e(0x1f7):'[图片\x20OCR]';_0x524411[_0x5eb72e(0x1e4)](_0x45ea61+'\x20'+_0x532b92[_0x5eb72e(0x200)]+'\x0a'+_0x4db198+_0x5eb72e(0x1ba)+_0x2f1417+_0x5eb72e(0x1d3));}else _0x524411['push'](_0x45ea61+'\x20'+_0x532b92[_0x5eb72e(0x200)]);}else{const _0x56be5e=_0x326ba0[_0x5eb72e(0x1e2)]||_0x326ba0['pictureDownloadCode'];_0x56be5e&&_0x524411[_0x5eb72e(0x1e4)](_0x5eb72e(0x1bc));}}}}}const _0x21393a=_0x524411[_0x5eb72e(0x1c5)]('\x0a')||_0x5eb72e(0x1ea);if(_0x836c09&&_0x271af8>0x0)return OCR_PREAMBLE+'\x0a'+_0x21393a;return _0x21393a;}
1
+ 'use strict';const a7_0x41fe2d=a7_0x1b59;(function(_0x3573b3,_0x25dc4f){const _0x485875=a7_0x1b59,_0x264e3f=_0x3573b3();while(!![]){try{const _0x61788e=-parseInt(_0x485875(0x128))/0x1*(parseInt(_0x485875(0x105))/0x2)+-parseInt(_0x485875(0x139))/0x3*(parseInt(_0x485875(0xee))/0x4)+-parseInt(_0x485875(0x11b))/0x5+parseInt(_0x485875(0xdc))/0x6+parseInt(_0x485875(0xfe))/0x7+-parseInt(_0x485875(0x100))/0x8*(-parseInt(_0x485875(0xf7))/0x9)+parseInt(_0x485875(0x109))/0xa*(-parseInt(_0x485875(0x116))/0xb);if(_0x61788e===_0x25dc4f)break;else _0x264e3f['push'](_0x264e3f['shift']());}catch(_0x78aa14){_0x264e3f['push'](_0x264e3f['shift']());}}}(a7_0x226c,0x5811e));var __importDefault=this&&this[a7_0x41fe2d(0x111)]||function(_0x2752f5){const _0x476bfd=a7_0x41fe2d;return _0x2752f5&&_0x2752f5[_0x476bfd(0xe3)]?_0x2752f5:{'default':_0x2752f5};};Object['defineProperty'](exports,a7_0x41fe2d(0xe3),{'value':!![]}),exports['runOcr']=runOcr,exports[a7_0x41fe2d(0xfa)]=processPictureMessage,exports[a7_0x41fe2d(0x132)]=processRichTextMessage;const child_process_1=require(a7_0x41fe2d(0x11d)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a7_0x41fe2d(0xe9))),urllib_1=__importDefault(require(a7_0x41fe2d(0xd9))),session_1=require(a7_0x41fe2d(0x13a)),common_1=require('../common'),MAX_IMAGE_SIZE=0xa*0x400*0x400,DING_API_BASE=a7_0x41fe2d(0x12d),OCR_PREAMBLE='以下图片\x20OCR\x20识别结果来自对用户消息中图片的预处理(非用户原始输入),如识别不准确可直接查看原图路径',OCR_BIN_DIR=(0x0,common_1['projUtil'])()[a7_0x41fe2d(0x101)](),cachedOcrBinPath=((()=>{const _0x1428f0=a7_0x41fe2d;if(process[_0x1428f0(0x129)]===_0x1428f0(0x102))return null;const _0x5259f4=process[_0x1428f0(0xf8)];if(_0x5259f4===_0x1428f0(0xd8))return path_1[_0x1428f0(0x130)][_0x1428f0(0xf9)](OCR_BIN_DIR,'ocr-arm64');if(_0x5259f4===_0x1428f0(0xea))return path_1[_0x1428f0(0x130)]['join'](OCR_BIN_DIR,_0x1428f0(0x10f));return null;})());let ocrBinExists=null;async function runOcr(_0x16e663){const _0x831bc4=a7_0x41fe2d;if(!cachedOcrBinPath)return console[_0x831bc4(0x11e)]('['+(0x0,session_1['timestamp'])()+_0x831bc4(0x112)+process[_0x831bc4(0x129)]+'/'+process[_0x831bc4(0xf8)]+_0x831bc4(0x126)),null;ocrBinExists===null&&(ocrBinExists=fs_1[_0x831bc4(0x130)][_0x831bc4(0xe4)](cachedOcrBinPath),!ocrBinExists&&console[_0x831bc4(0x12f)]('['+(0x0,session_1[_0x831bc4(0xef)])()+_0x831bc4(0x12a)+cachedOcrBinPath));if(!ocrBinExists)return null;return new Promise(_0x5889b9=>{(0x0,child_process_1['execFile'])(cachedOcrBinPath,[_0x16e663],{'timeout':0x7530,'maxBuffer':0x5*0x400*0x400},(_0xece488,_0x2e7d3a,_0x3c5e45)=>{const _0x2222f2=a7_0x1b59;if(_0xece488){console[_0x2222f2(0x12f)]('['+(0x0,session_1['timestamp'])()+_0x2222f2(0x10a)+_0xece488[_0x2222f2(0x12c)]);if(_0x3c5e45)console[_0x2222f2(0x12f)]('['+(0x0,session_1[_0x2222f2(0xef)])()+_0x2222f2(0x114)+_0x3c5e45[_0x2222f2(0x137)](0x0,0xc8));_0x5889b9(null);return;}try{const _0x577cd2=JSON[_0x2222f2(0xe8)](_0x2e7d3a);if(!Array['isArray'](_0x577cd2)||_0x577cd2[_0x2222f2(0xdf)]===0x0){console[_0x2222f2(0x11e)]('['+(0x0,session_1['timestamp'])()+_0x2222f2(0xe0)),_0x5889b9(null);return;}const _0x259ef5=_0x577cd2[_0x2222f2(0x11f)](_0x1f606e=>_0x1f606e['word'])['filter'](Boolean)[_0x2222f2(0xf9)]('\x20');console['log']('['+(0x0,session_1['timestamp'])()+_0x2222f2(0xfd)+_0x259ef5[_0x2222f2(0x137)](0x0,0xc8)+(_0x259ef5[_0x2222f2(0xdf)]>0xc8?_0x2222f2(0x133):'')),_0x5889b9(_0x259ef5||null);}catch{console[_0x2222f2(0x12f)]('['+(0x0,session_1[_0x2222f2(0xef)])()+_0x2222f2(0xe1)+_0x2e7d3a['substring'](0x0,0xc8)),_0x5889b9(null);}});});}const MAGIC_NUMBERS=[{'bytes':[0x89,0x50,0x4e,0x47],'mediaType':a7_0x41fe2d(0x121),'ext':a7_0x41fe2d(0x138)},{'bytes':[0xff,0xd8,0xff],'mediaType':a7_0x41fe2d(0x10d),'ext':a7_0x41fe2d(0x127)},{'bytes':[0x47,0x49,0x46],'mediaType':a7_0x41fe2d(0xf6),'ext':a7_0x41fe2d(0xfb)},{'bytes':[0x52,0x49,0x46,0x46],'mediaType':'image/webp','ext':a7_0x41fe2d(0x104)}];function a7_0x1b59(_0x1ab61b,_0x20e9af){_0x1ab61b=_0x1ab61b-0xd8;const _0x226c89=a7_0x226c();let _0x1b59ba=_0x226c89[_0x1ab61b];return _0x1b59ba;}function detectImageMediaType(_0x2700ca){const _0x5e24e8=a7_0x41fe2d;for(const {bytes:_0x4a8122,mediaType:_0x154743,ext:_0x4f19f7}of MAGIC_NUMBERS){if(_0x2700ca[_0x5e24e8(0xdf)]>=_0x4a8122[_0x5e24e8(0xdf)]&&_0x4a8122['every']((_0x44d15,_0x507e2a)=>_0x2700ca[_0x507e2a]===_0x44d15))return{'mediaType':_0x154743,'ext':_0x4f19f7};}return{'mediaType':_0x5e24e8(0x10d),'ext':'jpg'};}function a7_0x226c(){const _0x26ab40=['411219boxKFS','arch','join','processPictureMessage','gif','mention',']\x20OCR\x20识别结果:\x20','3661189BNsZJY','downloadCode','8rDuVGc','getResourcePath','win32',']\x20图片已保存:\x20','webp','3506jtdWeK','userId','[图片\x20OCR]','type','200OBfPzv',']\x20OCR\x20执行失败:\x20','\x0a---','set','image/jpeg','application/json','ocr-x64','POST','__importDefault',']\x20当前平台(','[图片\x20',']\x20OCR\x20stderr:\x20',']\x20downloadImageBuffer\x20下载失败:','118052ksZpFm','now','pictureDownloadCode','\x20超过限制\x20','[��片下载失败]','1420160XgCLKn','text','child_process','log','map','then','image/png','picture','get','[富文本消息内容为空]','dingStreamClient',')不支持本地OCR,使用模型识别','jpg','86eyoSFZ','platform',']\x20OCR\x20二进制不存在:\x20','\x20OCR]','message','https://api.dingtalk.com',']\x20图片大小\x20','warn','default','test','processRichTextMessage','...','all','[图片]','json','substring','png','40311cfHFen','./session',',\x20data=',']\x20downloadImageBuffer\x20下载失败:\x20status=','arm64','urllib','getImageDownloadUrl\x20响应无\x20downloadUrl:\x20','data','2729298Nbtctx','\x0a---\x0a','filePath','length',']\x20OCR\x20无识别结果',']\x20OCR\x20输出解析失败:\x20','slice','__esModule','existsSync',']\x20图片保存失败:\x20','debugLog','getAccessToken','parse','path','x64','writeFileSync','getImageDownloadUrl\x20API\x20返回非200:\x20status=','status','4oCGDYS','timestamp','trim','.images','push','request','/v1.0/robot/messageFiles/download','stringify','image/gif'];a7_0x226c=function(){return _0x26ab40;};return a7_0x226c();}async function getImageDownloadUrl(_0x522940,_0x28cff4,_0x1bc020){const _0x32c67d=a7_0x41fe2d;try{const _0x59e02c=await _0x522940[_0x32c67d(0x125)][_0x32c67d(0xe7)](),_0x2e8473=DING_API_BASE+_0x32c67d(0xf4),_0x5cbc46=await urllib_1[_0x32c67d(0x130)][_0x32c67d(0xf3)](_0x2e8473,{'method':_0x32c67d(0x110),'headers':{'x-acs-dingtalk-access-token':_0x59e02c,'Content-Type':_0x32c67d(0x10e)},'data':{'downloadCode':_0x28cff4,'robotCode':_0x1bc020},'dataType':_0x32c67d(0x136),'timeout':0x2710});if(_0x5cbc46[_0x32c67d(0xed)]!==0xc8||!_0x5cbc46[_0x32c67d(0xdb)])return _0x522940[_0x32c67d(0xe6)](_0x32c67d(0xec)+_0x5cbc46[_0x32c67d(0xed)]+_0x32c67d(0x13b)+JSON[_0x32c67d(0xf5)](_0x5cbc46[_0x32c67d(0xdb)])),null;const _0x1f4552=_0x5cbc46[_0x32c67d(0xdb)],_0x28aabe=_0x1f4552?.['downloadUrl'];if(!_0x28aabe)return _0x522940[_0x32c67d(0xe6)](_0x32c67d(0xda)+JSON['stringify'](_0x1f4552)),null;return _0x28aabe;}catch(_0x3d2e2b){return console['warn']('['+(0x0,session_1[_0x32c67d(0xef)])()+']\x20getImageDownloadUrl\x20请求失败:',_0x3d2e2b),null;}}async function downloadImageBuffer(_0x24ed98){const _0x3d502f=a7_0x41fe2d;try{const _0x416f6f=await urllib_1['default'][_0x3d502f(0xf3)](_0x24ed98,{'method':'GET','dataType':'buffer','timeout':0x7530});if(_0x416f6f[_0x3d502f(0xed)]!==0xc8)return console[_0x3d502f(0x12f)]('['+(0x0,session_1[_0x3d502f(0xef)])()+_0x3d502f(0x13c)+_0x416f6f['status']),null;const _0x103bc9=_0x416f6f['data'];if(!_0x103bc9||_0x103bc9[_0x3d502f(0xdf)]===0x0)return console[_0x3d502f(0x12f)]('['+(0x0,session_1['timestamp'])()+']\x20downloadImageBuffer\x20下载结果为空'),null;if(_0x103bc9[_0x3d502f(0xdf)]>MAX_IMAGE_SIZE)return console[_0x3d502f(0x12f)]('['+(0x0,session_1[_0x3d502f(0xef)])()+_0x3d502f(0x12e)+_0x103bc9['length']+_0x3d502f(0x119)+MAX_IMAGE_SIZE),null;return _0x103bc9;}catch(_0x3f1460){return console[_0x3d502f(0x12f)]('['+(0x0,session_1['timestamp'])()+_0x3d502f(0x115),_0x3f1460),null;}}async function downloadAndProcessImage(_0x306d96,_0x3ea299,_0x21ef65,_0x3f5515){const _0x2c2119=a7_0x41fe2d,_0x30393e=await getImageDownloadUrl(_0x306d96,_0x3ea299,_0x21ef65);if(!_0x30393e)return null;const _0x4a103a=await downloadImageBuffer(_0x30393e);if(!_0x4a103a)return null;const {mediaType:_0x42a9cb,ext:_0x2c0c9f}=detectImageMediaType(_0x4a103a),_0x229fa3=path_1[_0x2c2119(0x130)][_0x2c2119(0xf9)](_0x3f5515,_0x2c2119(0xf1)),_0x21436b=_0x3ea299[_0x2c2119(0xe2)](-0x8),_0x5276de=Date[_0x2c2119(0x117)]()+'-'+_0x21436b+'.'+_0x2c0c9f,_0x1246e0=path_1[_0x2c2119(0x130)][_0x2c2119(0xf9)](_0x229fa3,_0x5276de);try{fs_1[_0x2c2119(0x130)]['mkdirSync'](_0x229fa3,{'recursive':!![]}),fs_1['default'][_0x2c2119(0xeb)](_0x1246e0,_0x4a103a);}catch(_0x5168ef){return console[_0x2c2119(0x12f)]('['+(0x0,session_1[_0x2c2119(0xef)])()+_0x2c2119(0xe5)+_0x1246e0,_0x5168ef),null;}return console[_0x2c2119(0x11e)]('['+(0x0,session_1[_0x2c2119(0xef)])()+_0x2c2119(0x103)+_0x1246e0+'\x20('+_0x42a9cb+',\x20'+_0x4a103a[_0x2c2119(0xdf)]+'\x20bytes)'),{'mediaType':_0x42a9cb,'filePath':_0x1246e0,'sizeBytes':_0x4a103a[_0x2c2119(0xdf)]};}async function buildImagePrompt(_0x222c7e,_0x459769,_0x2b1d17){const _0x2a8221=a7_0x41fe2d,_0x4b6367=_0x2b1d17!=null?_0x2a8221(0x113)+_0x2b1d17+']':_0x2a8221(0x135);if(_0x459769){const _0x4fb720=await runOcr(_0x222c7e[_0x2a8221(0xde)]);if(_0x4fb720){const _0x3e2f2c=_0x2b1d17!=null?'[图片\x20'+_0x2b1d17+_0x2a8221(0x12b):_0x2a8221(0x107);return _0x4b6367+'\x20'+_0x222c7e[_0x2a8221(0xde)]+'\x0a'+_0x3e2f2c+_0x2a8221(0xdd)+_0x4fb720+_0x2a8221(0x10b);}console[_0x2a8221(0x12f)]('['+(0x0,session_1[_0x2a8221(0xef)])()+']\x20OCR\x20失败,仅传原图路径:\x20'+_0x222c7e[_0x2a8221(0xde)]);}return _0x4b6367+'\x20'+_0x222c7e[_0x2a8221(0xde)];}async function processPictureMessage(_0x529eea,_0x4f06b2,_0x3394e1,_0x44a2bc,_0xaaf1b5=!![],_0xe1f0bd){const _0x1a25c2=a7_0x41fe2d,_0x1cb713=await downloadAndProcessImage(_0x529eea,_0x4f06b2,_0x3394e1,_0x44a2bc);if(!_0x1cb713)return null;const _0x2a4278=await buildImagePrompt(_0x1cb713,_0xaaf1b5),_0x1588da=[];_0xaaf1b5&&_0x1588da[_0x1a25c2(0xf2)](OCR_PREAMBLE);if(_0xe1f0bd)_0x1588da[_0x1a25c2(0xf2)](_0xe1f0bd);return _0x1588da[_0x1a25c2(0xf2)](_0x2a4278),_0x1588da[_0x1a25c2(0xf9)]('\x0a');}async function processRichTextMessage(_0x45f067,_0x2dbf62,_0x180a64,_0xef99b5,_0x2b859f=!![]){const _0x4f8535=a7_0x41fe2d,_0x16cde3=_0x2dbf62['filter'](_0x2aa056=>_0x2aa056[_0x4f8535(0x108)]===_0x4f8535(0x122)&&(_0x2aa056[_0x4f8535(0xff)]||_0x2aa056['pictureDownloadCode']))[_0x4f8535(0xdf)],_0x11667b=_0x2dbf62[_0x4f8535(0x11f)](async(_0x3e5980,_0x38db71)=>{const _0x361334=_0x4f8535;if(_0x3e5980['type']==='picture'){const _0x2123bc=_0x3e5980[_0x361334(0xff)]||_0x3e5980[_0x361334(0x118)];if(_0x2123bc){const _0x48a6b2=await downloadAndProcessImage(_0x45f067,_0x2123bc,_0x180a64,_0xef99b5);return{'index':_0x38db71,'result':_0x48a6b2};}}return{'index':_0x38db71,'result':null};}),_0x52a2a4=await Promise[_0x4f8535(0x134)](_0x11667b),_0x79afda=new Map();for(const {index:_0x46bf23,result:_0x3d9da4}of _0x52a2a4){_0x79afda[_0x4f8535(0x10c)](_0x46bf23,_0x3d9da4);}const _0x580444=new Map();if(_0x2b859f&&_0x16cde3>0x0){const _0x4dea07=[];for(const [_0xab1c32,_0x1a1811]of _0x79afda){_0x1a1811&&_0x4dea07['push'](runOcr(_0x1a1811[_0x4f8535(0xde)])[_0x4f8535(0x120)](_0x5e586e=>({'index':_0xab1c32,'ocrText':_0x5e586e})));}const _0x50b6d2=await Promise[_0x4f8535(0x134)](_0x4dea07);for(const {index:_0x229a59,ocrText:_0x1020e1}of _0x50b6d2){_0x580444[_0x4f8535(0x10c)](_0x229a59,_0x1020e1);}}const _0x4006ba=[];let _0x1e6f32=0x0;for(let _0x194c8c=0x0;_0x194c8c<_0x2dbf62[_0x4f8535(0xdf)];_0x194c8c++){const _0xd1725b=_0x2dbf62[_0x194c8c];if(_0xd1725b[_0x4f8535(0x108)]===_0x4f8535(0x11c)&&_0xd1725b['text']){if(/^@\S+$/[_0x4f8535(0x131)](_0xd1725b[_0x4f8535(0x11c)][_0x4f8535(0xf0)]()))continue;_0x4006ba[_0x4f8535(0xf2)](_0xd1725b['text']);}else{if(_0xd1725b[_0x4f8535(0x108)]===_0x4f8535(0xfc)&&_0xd1725b[_0x4f8535(0x106)])_0x4006ba[_0x4f8535(0xf2)]('@'+_0xd1725b[_0x4f8535(0x106)]);else{if(_0xd1725b[_0x4f8535(0x108)]==='picture'){const _0x205eb1=_0x79afda[_0x4f8535(0x123)](_0x194c8c);if(_0x205eb1){_0x1e6f32++;const _0x1a5bec=_0x16cde3>0x1?_0x1e6f32:undefined,_0x392802=_0x2b859f?_0x580444[_0x4f8535(0x123)](_0x194c8c):null,_0x2d5a99=_0x1a5bec!=null?'[图片\x20'+_0x1a5bec+']':_0x4f8535(0x135);if(_0x392802){const _0xc03772=_0x1a5bec!=null?_0x4f8535(0x113)+_0x1a5bec+'\x20OCR]':_0x4f8535(0x107);_0x4006ba[_0x4f8535(0xf2)](_0x2d5a99+'\x20'+_0x205eb1['filePath']+'\x0a'+_0xc03772+_0x4f8535(0xdd)+_0x392802+_0x4f8535(0x10b));}else _0x4006ba[_0x4f8535(0xf2)](_0x2d5a99+'\x20'+_0x205eb1[_0x4f8535(0xde)]);}else{const _0x283a5c=_0xd1725b[_0x4f8535(0xff)]||_0xd1725b[_0x4f8535(0x118)];_0x283a5c&&_0x4006ba[_0x4f8535(0xf2)](_0x4f8535(0x11a));}}}}}const _0x1b611e=_0x4006ba[_0x4f8535(0xf9)]('\x0a')||_0x4f8535(0x124);if(_0x2b859f&&_0x1e6f32>0x0)return OCR_PREAMBLE+'\x0a'+_0x1b611e;return _0x1b611e;}