cc-ding 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/cc-ding.js +1 -1
- package/dist/src/biz/api-key-manager.js +1 -1
- package/dist/src/biz/cc-ding-cli.js +1 -1
- package/dist/src/biz/claude-process.js +1 -1
- package/dist/src/biz/commands.js +1 -1
- package/dist/src/biz/cron.js +1 -1
- package/dist/src/biz/doctor.js +1 -1
- package/dist/src/biz/image.js +1 -1
- package/dist/src/biz/lock.js +1 -1
- package/dist/src/biz/messaging.js +1 -1
- package/dist/src/biz/quote.js +1 -1
- package/dist/src/biz/session.js +1 -1
- package/dist/src/biz/task.js +1 -1
- package/dist/src/biz/types.js +1 -1
- package/dist/src/common.js +1 -1
- package/dist/src/constants.js +1 -1
- package/package.json +5 -1
|
@@ -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_0x486d6c=a3_0x5764;(function(_0x19bd54,_0x4c3565){const _0x37dc70=a3_0x5764,_0x368781=_0x19bd54();while(!![]){try{const _0x379800=parseInt(_0x37dc70(0x279))/0x1*(parseInt(_0x37dc70(0x289))/0x2)+parseInt(_0x37dc70(0x264))/0x3+-parseInt(_0x37dc70(0x1eb))/0x4+-parseInt(_0x37dc70(0x23e))/0x5+-parseInt(_0x37dc70(0x254))/0x6*(-parseInt(_0x37dc70(0x24c))/0x7)+parseInt(_0x37dc70(0x217))/0x8+parseInt(_0x37dc70(0x202))/0x9*(-parseInt(_0x37dc70(0x27a))/0xa);if(_0x379800===_0x4c3565)break;else _0x368781['push'](_0x368781['shift']());}catch(_0x3169fd){_0x368781['push'](_0x368781['shift']());}}}(a3_0x1a44,0x81705));function a3_0x1a44(){const _0x5d97c7=['没有权限','get','timestamp','stringify','isFastFail','overloaded','getReplyWebhook','utf-8','push','isRetryableApiError','--verbose','default',']\x20发送\x22继续\x22重试\x20(快速失败连续','defineProperty','debug','bypassPermissions','⚠️\x20认证失败(401),API\x20Key\x20无效或服务未授权,请检查配置','728865ycyGTQ',',\x20stderr匹配=','log','thinking','find','authorize','add','string','\x20[fast\x20fail]','--agent','debugLog','Claude\x20进程错误:','需要授权','Claude\x20进程退出,代码:\x20','4294451fbHWxh','s\x20后重试','getConversationDir',']\x20检测到\x20TPM\x20限流(进程已运行一段时间),重置快速失败计数,','\x20次,切换到新\x20Key:\x20',']\x20恢复\x20Claude\x20会话:\x20','发送钉钉消息失败:','⚠️\x20当前无可用配额(无可用\x20API\x20Key),请明天再试或联系管理员','6FictdQ','toLowerCase','⚠️\x20Claude\x20处理完成但未返回任何内容,请重试或换种方式提问','--permission-mode','toString','ConversationNotFoundError','file_path',']\x20TPM\x20限流连续快速失败\x20','warn','apiKey','now','__esModule','stderr','pattern','次,放弃\x0a',']\x20[SYSTEM]:\x20TPM\x20限流,','2036946XeVvGy','\x20(重试)',']\x20[WARN]:\x20','needs\x20permission','isArray','end','sessionId',']\x20[SYSTEM]:\x20Claude\x20查询结束,退出码:\x20','existsSync','parse','substring','input','assistant',']\x20[SYSTEM]:\x20Claude\x20查询启动','conversationId','updateSessionFile','--output-format','pickValidApiKey','output','child_process',']\x20Claude\x20进程退出,代码:\x20','4GjkWVN','16890gAZcnk',']\x20TPM\x20限流快速失败连续','sendDingMessage','⚠️\x20当前无可用配额/API\x20Key,请明天再试或联系管理员','Retryable\x20API\x20error\x20(TPM\x20limit\x20etc.)','stdout','data','resultOnly','💭\x20**思考过程**\x0a```\x0a','pipe','path','test','startStaffId',']\x20[ERROR]:\x20','line','191992JqVfvB','prompt','system','tool','trim','config',']\x20[SYSTEM]:\x20TPM\x20限流,发送\x22继续\x22重试\x20(快速失败连续','text','tool_use',']\x20[WARN]:\x20Claude\x20进程正常退出但未产生任何回复内容\x0a','getForceEnabledSettingsPath','type','rpm\x20limit',']\x20[SYSTEM]:\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key\x0a',']\x20[Claude\x20stderr]\x20配额耗尽错误(429):\x20','发送消息:\x20','executeClaudeQuery','query','ensureSettingsWithApiKey','requests\x20per\x20minute','mkdirSync','stdin','capacity','currentProcess','message',']\x20Claude\x20进程正常退出但未产生任何回复内容','getSessionDir','...','545176LykvJi','has',']\x20[SYSTEM]:\x20Claude\x20会话已失效,清除旧会话并重新发起\x0a','readApiKeyFromSettings','permission\x20denied','init','too\x20many\x20requests','includes','\x0a```','claudeSessionId','settingLabel','__importDefault',']\x20[SYSTEM]:\x20TPM\x20限流快速失败连续','access\x20denied','\x20──\x20消息来自:\x20','s\x20后重试\x0a','Claude\x20stdout:\x20','length','TPM\x20限流,快速失败连续\x20','result','requires\x20permission','stream-json','lastSenderStaffId','7740zoctvV','unknown','--settings',']\x20自动检测到\x20settings.json:\x20',']\x20检测到\x20TPM\x20限流(快速失败),','appendSessionLog','rotateApiKey','join','claude','session_id','.claude','getReplyConversationId','/session.log','appendFileSync','catch','SIGINT','authorization\x20required',',通知外层重新发起新会话','command','RetryableApiError','isAuthenticationError','4706632iGIksQ','content',']\x20从\x20settings-ding.json\x20恢复\x20Claude\x20Setting:\x20','error',']\x20执行\x20Claude\x20查询[原生claude\x20模式]:\x20','apiKeyCfg','isQuotaExhaustedError','interrupted','subtype',']\x20[ERROR]:\x20进程错误:\x20','次,放弃','ratelimit','write','settings',']\x20Claude\x20会话已失效:\x20','name','claudeSettings','./session','rate_limit','parseClaudeStreamLine','activeSessions','isValid'];a3_0x1a44=function(){return _0x5d97c7;};return a3_0x1a44();}var __importDefault=this&&this[a3_0x486d6c(0x1f6)]||function(_0x38ebcb){return _0x38ebcb&&_0x38ebcb['__esModule']?_0x38ebcb:{'default':_0x38ebcb};};Object[a3_0x486d6c(0x23a)](exports,a3_0x486d6c(0x25f),{'value':!![]}),exports['resolveClaudeSettingsPath']=resolveClaudeSettingsPath,exports[a3_0x486d6c(0x236)]=isRetryableApiError,exports[a3_0x486d6c(0x22a)]=parseClaudeStreamLine,exports['interruptClaudeProcess']=interruptClaudeProcess,exports[a3_0x486d6c(0x1df)]=executeClaudeQuery;const fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a3_0x486d6c(0x284))),readline_1=__importDefault(require('readline')),child_process_1=require(a3_0x486d6c(0x277)),messaging_1=require('./messaging'),session_1=require(a3_0x486d6c(0x228)),api_key_manager_1=require('./api-key-manager'),MAX_FAST_FAIL=0x14,API_RETRY_DELAY_MS=0x2710,FAST_FAIL_THRESHOLD_MS=0x2710;function resolveClaudeSettingsPath(_0x2c1b70,_0x4f6e9b,_0x3de868){const _0x4041a1=a3_0x486d6c,_0x531056=(0x0,api_key_manager_1[_0x4041a1(0x1d9)])(_0x4f6e9b);if(_0x531056)return _0x531056;if(_0x2c1b70[_0x4041a1(0x28e)][_0x4041a1(0x21c)]){const _0x1c80a6=(0x0,api_key_manager_1[_0x4041a1(0x1ee)])(_0x4f6e9b);let _0x16d157=null;_0x1c80a6&&(_0x16d157=_0x2c1b70['config']['apiKeyCfg']['claudeSettings'][_0x4041a1(0x242)](_0xa09de=>_0xa09de[_0x4041a1(0x25d)]===_0x1c80a6&&_0xa09de['isValid'])||null);!_0x16d157&&(_0x16d157=(0x0,api_key_manager_1['pickValidApiKey'])(_0x2c1b70));if(_0x16d157)return(0x0,api_key_manager_1[_0x4041a1(0x1e1)])(_0x4f6e9b,_0x16d157);}if(_0x2c1b70[_0x4041a1(0x28e)][_0x4041a1(0x21c)])return undefined;if(_0x3de868)return _0x3de868;const _0x3cde58=path_1[_0x4041a1(0x238)][_0x4041a1(0x209)](_0x4f6e9b,_0x4041a1(0x20c),'settings.json');if(fs_1[_0x4041a1(0x238)][_0x4041a1(0x26c)](_0x3cde58))return console[_0x4041a1(0x240)]('['+(0x0,session_1[_0x4041a1(0x22f)])()+_0x4041a1(0x205)+_0x3cde58),_0x3cde58;return undefined;}function a3_0x5764(_0x4a2c70,_0x10bf4b){_0x4a2c70=_0x4a2c70-0x1d6;const _0x1a4471=a3_0x1a44();let _0x5764c2=_0x1a4471[_0x4a2c70];return _0x5764c2;}function isRetryableApiError(_0x3be1cd){const _0x52bf50=a3_0x486d6c;if(/\b429\b/[_0x52bf50(0x285)](_0x3be1cd)&&!(0x0,api_key_manager_1[_0x52bf50(0x21d)])(_0x3be1cd))return!![];if(/API\s*Error.*422/i['test'](_0x3be1cd))return!![];if(/\b422\b.*(?:TPM|额度超限|rate\s*limit|tokens?\s*per\s*minute)/i[_0x52bf50(0x285)](_0x3be1cd))return!![];if(/(?:TPM|额度超限).*\b422\b/i['test'](_0x3be1cd))return!![];const _0x2ea751=_0x3be1cd[_0x52bf50(0x255)](),_0x20b178=['rate\x20limit',_0x52bf50(0x229),_0x52bf50(0x222),_0x52bf50(0x1f1),'tokens\x20per\x20minute',_0x52bf50(0x1e2),_0x52bf50(0x1db),_0x52bf50(0x232),_0x52bf50(0x1e5),'temporarily\x20unavailable'];return _0x20b178['some'](_0x168a1c=>_0x2ea751[_0x52bf50(0x1f2)](_0x168a1c));}function sleep(_0x282043){return new Promise(_0x1fcf1a=>setTimeout(_0x1fcf1a,_0x282043));}class RetryableApiError extends Error{constructor(_0x1d594f,_0x339101=''){const _0x49c98b=a3_0x486d6c;super(_0x49c98b(0x27e)+(_0x1d594f?_0x49c98b(0x246):'')),this[_0x49c98b(0x226)]=_0x49c98b(0x215),this[_0x49c98b(0x231)]=_0x1d594f,this[_0x49c98b(0x276)]=_0x339101;}}class ConversationNotFoundError extends Error{constructor(){const _0x201521=a3_0x486d6c;super('Claude\x20conversation\x20not\x20found'),this[_0x201521(0x226)]=_0x201521(0x259);}}function isPermissionError(_0x5cb146){const _0xba565e=a3_0x486d6c,_0x25a087=_0x5cb146[_0xba565e(0x255)](),_0x1c9281=[_0xba565e(0x1ef),'permission_required',_0xba565e(0x267),_0xba565e(0x1ff),_0xba565e(0x212),_0xba565e(0x243),'not\x20authorized',_0xba565e(0x1f8),_0xba565e(0x24a),'权限不足',_0xba565e(0x22d)];return _0x1c9281['some'](_0x24a2f8=>_0x25a087[_0xba565e(0x1f2)](_0x24a2f8));}function isConversationNotFoundError(_0x4081c9){const _0x459769=a3_0x486d6c;return/no conversation found with session id/i[_0x459769(0x285)](_0x4081c9);}function parseClaudeStreamLine(_0x5bd221,_0x4e992f=![]){const _0x4356db=a3_0x486d6c;if(!_0x5bd221[_0x4356db(0x28d)]())return null;try{const _0x170a37=JSON['parse'](_0x5bd221);if(_0x170a37[_0x4356db(0x1da)]===_0x4356db(0x28b)&&_0x170a37[_0x4356db(0x21f)]===_0x4356db(0x1f0)&&_0x170a37[_0x4356db(0x20b)])return{'type':_0x4356db(0x28b),'sessionId':_0x170a37['session_id']};if(_0x170a37['type']===_0x4356db(0x270)){const _0x105c8a=_0x170a37[_0x4356db(0x1e7)]?.[_0x4356db(0x218)];if(Array[_0x4356db(0x268)](_0x105c8a)){const _0x3b9ec5=[];for(const _0x1961d6 of _0x105c8a){if(_0x1961d6[_0x4356db(0x1da)]==='text'&&_0x1961d6[_0x4356db(0x1d6)])_0x3b9ec5['push'](_0x1961d6[_0x4356db(0x1d6)]);else _0x1961d6[_0x4356db(0x1da)]==='thinking'&&_0x1961d6[_0x4356db(0x241)]&&_0x4e992f&&_0x3b9ec5[_0x4356db(0x235)](_0x4356db(0x282)+_0x1961d6[_0x4356db(0x241)]+_0x4356db(0x1f3));}if(_0x3b9ec5[_0x4356db(0x1fc)]>0x0)return{'type':'assistant','content':_0x3b9ec5['join']('\x0a')};}else{if(_0x170a37[_0x4356db(0x218)])return{'type':_0x4356db(0x270),'content':typeof _0x170a37[_0x4356db(0x218)]===_0x4356db(0x245)?_0x170a37['content']:JSON['stringify'](_0x170a37[_0x4356db(0x218)])};}return{'type':_0x4356db(0x270)};}if(_0x170a37[_0x4356db(0x1da)]===_0x4356db(0x1fe)){const _0x131d3a=_0x170a37[_0x4356db(0x1fe)]||'';return{'type':_0x4356db(0x1fe),'content':typeof _0x131d3a===_0x4356db(0x245)?_0x131d3a:JSON[_0x4356db(0x230)](_0x131d3a)};}return{'type':_0x170a37[_0x4356db(0x1da)]||_0x4356db(0x203)};}catch{return{'type':'text','content':_0x5bd221};}}function interruptClaudeProcess(_0x1c5792,_0x354788){const _0xd8caeb=a3_0x486d6c;if(!_0x1c5792['currentProcess'])return![];return console[_0xd8caeb(0x240)]('['+(0x0,session_1[_0xd8caeb(0x22f)])()+']\x20'+_0x354788),_0x1c5792['interrupted']=!![],_0x1c5792[_0xd8caeb(0x1e6)]['kill'](_0xd8caeb(0x211)),!![];}function runClaudeOnce(_0x1fe9d1,_0x56dbc8,_0x4be77c,_0x4385e9,_0x4f4940,_0x476e60,_0x4d9907){const _0x34c4fc=a3_0x486d6c;let _0x3fe9ee=_0x1fe9d1[_0x34c4fc(0x1e9)](_0x56dbc8),_0x2af0a2=_0x3fe9ee+_0x34c4fc(0x20e);!fs_1['default'][_0x34c4fc(0x26c)](_0x3fe9ee)&&fs_1[_0x34c4fc(0x238)]['mkdirSync'](_0x3fe9ee,{'recursive':!![]});const _0x3dab08=Date[_0x34c4fc(0x25e)]();return new Promise((_0x3e15bb,_0x35b7d0)=>{const _0x174b64=_0x34c4fc,_0x35bc85=(0x0,child_process_1['spawn'])(_0x4385e9,_0x4be77c,{'cwd':_0x4f4940,'stdio':[_0x174b64(0x283),_0x174b64(0x283),_0x174b64(0x283)]}),_0x947fb8=_0x1fe9d1[_0x174b64(0x22b)]['get'](_0x56dbc8[_0x174b64(0x272)]);_0x947fb8&&(_0x947fb8[_0x174b64(0x1e6)]=_0x35bc85);fs_1[_0x174b64(0x238)][_0x174b64(0x20f)](_0x2af0a2,'['+(0x0,session_1[_0x174b64(0x22f)])()+_0x174b64(0x271)+(_0x4d9907?_0x174b64(0x265):'')+'\x0a','utf-8'),_0x35bc85['stdin']?.[_0x174b64(0x223)](_0x476e60+'\x0a'),_0x35bc85[_0x174b64(0x1e4)]?.[_0x174b64(0x269)]();let _0xf90a29=!_0x4d9907&&!!_0x56dbc8[_0x174b64(0x1f4)],_0x4903a2=[],_0x7d1501='',_0x4c96c1='',_0x56b2ec=![];const _0x17327f=new Set(),_0x26bf11=readline_1[_0x174b64(0x238)]['createInterface']({'input':_0x35bc85[_0x174b64(0x27f)]});_0x26bf11['on'](_0x174b64(0x288),_0x4ab809=>{const _0x1e3d9=_0x174b64;_0x4c96c1+=_0x4ab809+'\x0a',_0x1fe9d1[_0x1e3d9(0x248)](_0x1e3d9(0x1fb)+_0x4ab809[_0x1e3d9(0x26e)](0x0,0xc8)+(_0x4ab809[_0x1e3d9(0x1fc)]>0xc8?'...':''));if(_0x1fe9d1['config'][_0x1e3d9(0x23b)])try{fs_1[_0x1e3d9(0x238)][_0x1e3d9(0x20f)](_0x2af0a2,'['+(0x0,session_1[_0x1e3d9(0x22f)])()+']\x20[RAW]:\x20'+_0x4ab809+'\x0a',_0x1e3d9(0x234));}catch{}const _0x1ec1b5=parseClaudeStreamLine(_0x4ab809,_0x1fe9d1[_0x1e3d9(0x28e)]['includeThinking']??![]);if(_0x1ec1b5){_0x1ec1b5['type']===_0x1e3d9(0x28b)&&_0x1ec1b5[_0x1e3d9(0x26a)]&&!_0xf90a29&&(_0x1fe9d1[_0x1e3d9(0x273)](_0x56dbc8,{'claudeSessionId':_0x1ec1b5[_0x1e3d9(0x26a)]}),_0xf90a29=!![],_0x3fe9ee=_0x1fe9d1['getSessionDir'](_0x56dbc8),_0x2af0a2=_0x3fe9ee+_0x1e3d9(0x20e));if(_0x1ec1b5[_0x1e3d9(0x1da)]===_0x1e3d9(0x270)){try{const _0x5292b9=JSON[_0x1e3d9(0x26d)](_0x4ab809),_0x3a4f4e=_0x5292b9?.['message']?.['content'];if(Array[_0x1e3d9(0x268)](_0x3a4f4e))for(const _0x1c76cd of _0x3a4f4e){if(_0x1c76cd[_0x1e3d9(0x1da)]===_0x1e3d9(0x1d7)&&_0x1c76cd['id']&&!_0x17327f[_0x1e3d9(0x1ec)](_0x1c76cd['id'])){_0x17327f[_0x1e3d9(0x244)](_0x1c76cd['id']);const _0x1e5e11=_0x1c76cd[_0x1e3d9(0x226)]||'unknown';let _0x49256d='';if(_0x1c76cd['input']){if(_0x1c76cd[_0x1e3d9(0x26f)]['command'])_0x49256d=_0x1c76cd['input'][_0x1e3d9(0x214)][_0x1e3d9(0x26e)](0x0,0xc8);else{if(_0x1c76cd[_0x1e3d9(0x26f)][_0x1e3d9(0x25a)])_0x49256d=_0x1c76cd[_0x1e3d9(0x26f)]['file_path'];else{if(_0x1c76cd['input'][_0x1e3d9(0x261)])_0x49256d=_0x1c76cd['input'][_0x1e3d9(0x261)];else{if(_0x1c76cd[_0x1e3d9(0x26f)][_0x1e3d9(0x1e0)])_0x49256d=_0x1c76cd[_0x1e3d9(0x26f)][_0x1e3d9(0x1e0)];else{if(_0x1c76cd[_0x1e3d9(0x26f)]['description'])_0x49256d=_0x1c76cd[_0x1e3d9(0x26f)]['description'];else{if(_0x1c76cd[_0x1e3d9(0x26f)][_0x1e3d9(0x28a)])_0x49256d=_0x1c76cd['input'][_0x1e3d9(0x28a)]['substring'](0x0,0xc8);else _0x49256d=JSON[_0x1e3d9(0x230)](_0x1c76cd[_0x1e3d9(0x26f)])[_0x1e3d9(0x26e)](0x0,0xc8);}}}}}}_0x1fe9d1[_0x1e3d9(0x207)](_0x3fe9ee,_0x1e3d9(0x28c),''+_0x1e5e11+(_0x49256d?':\x20'+_0x49256d:''));}}}catch{}_0x1ec1b5[_0x1e3d9(0x218)]&&_0x4903a2[_0x1e3d9(0x235)](_0x1ec1b5['content']);}if(_0x1ec1b5[_0x1e3d9(0x1da)]==='result'){const _0x299bb0=_0x1fe9d1[_0x1e3d9(0x28e)][_0x1e3d9(0x281)]??!![],_0x1062ae=(_0x1ec1b5['content']||'')[_0x1e3d9(0x28d)](),_0x3e35b2=_0x4903a2['join']('\x0a')[_0x1e3d9(0x28d)](),_0x262fcf=_0x299bb0?_0x1062ae||_0x3e35b2:_0x3e35b2;if(_0x262fcf){try{_0x1fe9d1[_0x1e3d9(0x207)](_0x3fe9ee,'assistant',_0x262fcf);}catch{}const _0x319f5f=_0x1fe9d1[_0x1e3d9(0x22b)][_0x1e3d9(0x22e)](_0x56dbc8[_0x1e3d9(0x272)]),_0x475d3c=_0x319f5f?.['lastSenderStaffId']||_0x56dbc8[_0x1e3d9(0x286)];_0x56b2ec=!![],(0x0,messaging_1['sendClaudeResponseToDing'])(_0x1fe9d1,(0x0,session_1['getReplyConversationId'])(_0x56dbc8),(0x0,session_1[_0x1e3d9(0x233)])(_0x56dbc8),_0x475d3c,_0x262fcf)[_0x1e3d9(0x210)](_0x5937ba=>console[_0x1e3d9(0x21a)](_0x1e3d9(0x252),_0x5937ba));}else console[_0x1e3d9(0x25c)]('['+(0x0,session_1[_0x1e3d9(0x22f)])()+']\x20Claude\x20返回了空的\x20result\x20且\x20responseBuffer\x20也为空,无内容可发送');_0x4903a2=[];}}}),_0x35bc85[_0x174b64(0x260)]?.['on'](_0x174b64(0x280),_0x41fdaa=>{const _0x441aae=_0x174b64,_0x3b7ddd=_0x41fdaa[_0x441aae(0x258)]();_0x7d1501+=_0x3b7ddd;if((0x0,api_key_manager_1[_0x441aae(0x21d)])(_0x3b7ddd)){console[_0x441aae(0x240)]('['+(0x0,session_1['timestamp'])()+_0x441aae(0x1dd)+_0x3b7ddd[_0x441aae(0x28d)]());try{fs_1[_0x441aae(0x238)]['appendFileSync'](_0x2af0a2,'['+(0x0,session_1[_0x441aae(0x22f)])()+']\x20[WARN]:\x20'+_0x3b7ddd,_0x441aae(0x234));}catch{}}else{if(isRetryableApiError(_0x3b7ddd)){console[_0x441aae(0x240)]('['+(0x0,session_1[_0x441aae(0x22f)])()+']\x20[Claude\x20stderr]\x20可重试API错误(422\x20TPM限流):\x20'+_0x3b7ddd['trim']());try{fs_1[_0x441aae(0x238)][_0x441aae(0x20f)](_0x2af0a2,'['+(0x0,session_1[_0x441aae(0x22f)])()+_0x441aae(0x266)+_0x3b7ddd,_0x441aae(0x234));}catch{}}else{console['error']('[Claude\x20stderr]:\x20'+_0x3b7ddd);try{fs_1[_0x441aae(0x238)]['appendFileSync'](_0x2af0a2,'['+(0x0,session_1[_0x441aae(0x22f)])()+_0x441aae(0x287)+_0x3b7ddd,_0x441aae(0x234));}catch{}}}}),_0x35bc85['on']('close',_0x5acdd1=>{const _0x381f74=_0x174b64;console[_0x381f74(0x240)]('['+(0x0,session_1[_0x381f74(0x22f)])()+_0x381f74(0x278)+_0x5acdd1);try{fs_1[_0x381f74(0x238)]['appendFileSync'](_0x2af0a2,'['+(0x0,session_1[_0x381f74(0x22f)])()+_0x381f74(0x26b)+_0x5acdd1+'\x0a','utf-8');}catch{}const _0x46176e=_0x1fe9d1[_0x381f74(0x22b)][_0x381f74(0x22e)](_0x56dbc8['conversationId']);_0x46176e&&(_0x46176e[_0x381f74(0x1e6)]=undefined);if(_0x4903a2[_0x381f74(0x1fc)]>0x0){const _0x341293=_0x4903a2['join']('\x0a')[_0x381f74(0x28d)]();if(_0x341293){try{_0x1fe9d1['appendSessionLog'](_0x3fe9ee,_0x381f74(0x270),_0x341293);}catch{}const _0x174a90=_0x46176e?.[_0x381f74(0x201)]||_0x56dbc8[_0x381f74(0x286)];_0x56b2ec=!![],(0x0,messaging_1['sendClaudeResponseToDing'])(_0x1fe9d1,(0x0,session_1['getReplyConversationId'])(_0x56dbc8),(0x0,session_1[_0x381f74(0x233)])(_0x56dbc8),_0x174a90,_0x341293)['catch'](_0x52a888=>console[_0x381f74(0x21a)](_0x381f74(0x252),_0x52a888));}}if(_0x5acdd1===0x0&&!_0x56b2ec&&!_0x46176e?.[_0x381f74(0x21e)]){console[_0x381f74(0x25c)]('['+(0x0,session_1[_0x381f74(0x22f)])()+_0x381f74(0x1e8));try{fs_1[_0x381f74(0x238)][_0x381f74(0x20f)](_0x2af0a2,'['+(0x0,session_1[_0x381f74(0x22f)])()+_0x381f74(0x1d8),_0x381f74(0x234));}catch{}const _0x5810a9=_0x46176e?.[_0x381f74(0x201)]||_0x56dbc8['startStaffId'];(0x0,messaging_1[_0x381f74(0x27c)])(_0x1fe9d1,{'conversationId':(0x0,session_1['getReplyConversationId'])(_0x56dbc8),'sessionWebhook':(0x0,session_1['getReplyWebhook'])(_0x56dbc8),'atUserId':_0x5810a9,'content':_0x381f74(0x256)})[_0x381f74(0x210)](_0x55b47f=>console['error'](_0x381f74(0x252),_0x55b47f));}if(_0x5acdd1===0x0){_0x3e15bb(0x0);return;}if(_0x46176e?.['interrupted']){console[_0x381f74(0x240)]('['+(0x0,session_1[_0x381f74(0x22f)])()+']\x20用户主动中断,忽略错误'),_0x46176e[_0x381f74(0x21e)]=![],_0x3e15bb(0x0);return;}const _0x14054e=_0x7d1501+'\x0a'+_0x4c96c1;if((0x0,api_key_manager_1[_0x381f74(0x21d)])(_0x14054e)){const _0x1e4a97=Date[_0x381f74(0x25e)]()-_0x3dab08,_0x60674b=_0x1e4a97<FAST_FAIL_THRESHOLD_MS;console[_0x381f74(0x240)]('['+(0x0,session_1[_0x381f74(0x22f)])()+']\x20检测到配额耗尽错误(429),stdout匹配='+(0x0,api_key_manager_1[_0x381f74(0x21d)])(_0x4c96c1)+_0x381f74(0x23f)+(0x0,api_key_manager_1[_0x381f74(0x21d)])(_0x7d1501)),_0x35b7d0(new RetryableApiError(_0x60674b,_0x14054e));return;}if((0x0,api_key_manager_1[_0x381f74(0x216)])(_0x14054e)){console[_0x381f74(0x240)]('['+(0x0,session_1[_0x381f74(0x22f)])()+']\x20检测到认证错误(401),通知用户');const _0x383c78=_0x46176e?.[_0x381f74(0x201)]||_0x56dbc8['startStaffId'];(0x0,messaging_1['sendDingMessage'])(_0x1fe9d1,{'conversationId':(0x0,session_1['getReplyConversationId'])(_0x56dbc8),'sessionWebhook':(0x0,session_1['getReplyWebhook'])(_0x56dbc8),'atUserId':_0x383c78,'content':_0x381f74(0x23d)})[_0x381f74(0x210)](_0x3072c2=>console[_0x381f74(0x21a)](_0x381f74(0x252),_0x3072c2)),_0x3e15bb(_0x5acdd1??0x1);return;}if(isRetryableApiError(_0x14054e)){const _0x2cead9=Date[_0x381f74(0x25e)]()-_0x3dab08,_0x11fe72=_0x2cead9<FAST_FAIL_THRESHOLD_MS;_0x35b7d0(new RetryableApiError(_0x11fe72,_0x14054e));return;}if(isPermissionError(_0x14054e)){console[_0x381f74(0x240)]('['+(0x0,session_1[_0x381f74(0x22f)])()+']\x20检测到需要授权,通知用户');const _0x112b0f=_0x46176e?.[_0x381f74(0x201)]||_0x56dbc8[_0x381f74(0x286)];(0x0,messaging_1[_0x381f74(0x27c)])(_0x1fe9d1,{'conversationId':(0x0,session_1['getReplyConversationId'])(_0x56dbc8),'sessionWebhook':(0x0,session_1[_0x381f74(0x233)])(_0x56dbc8),'atUserId':_0x112b0f,'content':'⚠️\x20Claude\x20需要授权,请人工介入'})['catch'](_0x19c073=>console[_0x381f74(0x21a)](_0x381f74(0x252),_0x19c073)),_0x3e15bb(_0x5acdd1??0x1);return;}if(_0x56dbc8[_0x381f74(0x1f4)]&&isConversationNotFoundError(_0x14054e)){console[_0x381f74(0x240)]('['+(0x0,session_1[_0x381f74(0x22f)])()+_0x381f74(0x225)+_0x56dbc8[_0x381f74(0x1f4)]+_0x381f74(0x213)),_0x35b7d0(new ConversationNotFoundError());return;}_0x35b7d0(new Error(_0x381f74(0x24b)+_0x5acdd1));}),_0x35bc85['on']('error',_0x5b5e87=>{const _0x262e3e=_0x174b64;console[_0x262e3e(0x21a)](_0x262e3e(0x249),_0x5b5e87),fs_1['default'][_0x262e3e(0x20f)](_0x2af0a2,'['+(0x0,session_1[_0x262e3e(0x22f)])()+_0x262e3e(0x220)+_0x5b5e87[_0x262e3e(0x1e7)]+'\x0a',_0x262e3e(0x234)),_0x35b7d0(_0x5b5e87);});});}async function executeClaudeQuery(_0x30c99f,_0x588897,_0x3e78b4,_0x158a34){const _0x27fbf1=a3_0x486d6c,{skill:_0xc1e1a3,agent:_0x488447,senderNick:_0x14a328,senderStaffId:_0x2d9f2f}=_0x158a34||{};let _0x25ed92=_0x30c99f[_0x27fbf1(0x1e9)](_0x588897),_0x260802=_0x25ed92+'/session.log';const _0x5a9c67=_0x30c99f[_0x27fbf1(0x24e)](_0x588897[_0x27fbf1(0x272)]);fs_1[_0x27fbf1(0x238)][_0x27fbf1(0x1e3)](_0x25ed92,{'recursive':!![]});let _0x3f5c35=null;const _0x19fbde=(0x0,api_key_manager_1[_0x27fbf1(0x1ee)])(_0x5a9c67);_0x19fbde&&_0x30c99f['config']['apiKeyCfg']&&(_0x3f5c35=_0x30c99f[_0x27fbf1(0x28e)][_0x27fbf1(0x21c)][_0x27fbf1(0x227)][_0x27fbf1(0x242)](_0x25a653=>_0x25a653['apiKey']===_0x19fbde&&_0x25a653[_0x27fbf1(0x22c)])||null,_0x3f5c35&&console['log']('['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x219)+(0x0,api_key_manager_1[_0x27fbf1(0x1f5)])(_0x3f5c35)));const _0x3bde22=(0x0,api_key_manager_1['getForceEnabledSettingsPath'])(_0x5a9c67);if(!_0x3bde22&&_0x30c99f[_0x27fbf1(0x28e)]['apiKeyCfg']){_0x3f5c35=(0x0,api_key_manager_1[_0x27fbf1(0x275)])(_0x30c99f);if(!_0x3f5c35){const _0x142494=_0x2d9f2f||_0x588897[_0x27fbf1(0x286)];await(0x0,messaging_1[_0x27fbf1(0x27c)])(_0x30c99f,{'conversationId':(0x0,session_1[_0x27fbf1(0x20d)])(_0x588897),'sessionWebhook':(0x0,session_1[_0x27fbf1(0x233)])(_0x588897),'atUserId':_0x142494,'content':_0x27fbf1(0x253)});return;}}const _0x37cbc7=_0x14a328&&_0x2d9f2f?_0x14a328+'('+_0x2d9f2f+')':_0x27fbf1(0x203),_0xff6e6f=_0x3e78b4+_0x27fbf1(0x1f9)+_0x37cbc7;_0x30c99f[_0x27fbf1(0x207)](_0x25ed92,'user',_0xff6e6f);const _0x1ed9c4=_0x27fbf1(0x20a),_0x170089=[_0x27fbf1(0x257),_0x27fbf1(0x23c),'--print',_0x27fbf1(0x274),_0x27fbf1(0x200),_0x27fbf1(0x237)];_0x488447&&_0x170089[_0x27fbf1(0x235)](_0x27fbf1(0x247),_0x488447);const _0x419b81=_0xc1e1a3?'/'+_0xc1e1a3+'\x20'+_0xff6e6f:_0xff6e6f;let _0xa55ab7=0x0;while(!![]){const _0x35a160=_0xa55ab7>0x0,_0x451ed3=[..._0x170089];_0x588897[_0x27fbf1(0x1f4)]&&(_0x451ed3['push']('--resume',_0x588897[_0x27fbf1(0x1f4)]),!_0x35a160&&console[_0x27fbf1(0x240)]('['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x251)+_0x588897[_0x27fbf1(0x1f4)]));const _0x369454=resolveClaudeSettingsPath(_0x30c99f,_0x5a9c67,_0x158a34?.[_0x27fbf1(0x224)]);_0x369454&&_0x451ed3[_0x27fbf1(0x235)](_0x27fbf1(0x204),_0x369454);let _0x54efc5;_0x35a160?(_0x54efc5='继续',console[_0x27fbf1(0x240)]('['+(0x0,session_1['timestamp'])()+_0x27fbf1(0x239)+_0xa55ab7+'/'+MAX_FAST_FAIL+'次)'),fs_1['default'][_0x27fbf1(0x20f)](_0x260802,'['+(0x0,session_1['timestamp'])()+_0x27fbf1(0x28f)+_0xa55ab7+'/'+MAX_FAST_FAIL+')\x0a','utf-8')):_0x54efc5=_0x419b81;console[_0x27fbf1(0x240)]('['+(0x0,session_1['timestamp'])()+_0x27fbf1(0x21b)+_0x1ed9c4+'\x20'+_0x451ed3[_0x27fbf1(0x209)]('\x20')),_0x30c99f[_0x27fbf1(0x248)](_0x27fbf1(0x1de)+_0x54efc5[_0x27fbf1(0x26e)](0x0,0x64)+_0x27fbf1(0x1ea));try{await runClaudeOnce(_0x30c99f,_0x588897,_0x451ed3,_0x1ed9c4,_0x5a9c67,_0x54efc5,_0x35a160);return;}catch(_0x13e097){_0x25ed92=_0x30c99f[_0x27fbf1(0x1e9)](_0x588897),_0x260802=_0x25ed92+_0x27fbf1(0x20e);if(_0x13e097 instanceof RetryableApiError){if((0x0,api_key_manager_1[_0x27fbf1(0x21d)])(_0x13e097[_0x27fbf1(0x276)])&&_0x30c99f['config']['apiKeyCfg']){if(_0x3f5c35){const _0x159aa3=(0x0,api_key_manager_1['rotateApiKey'])(_0x30c99f,_0x3f5c35[_0x27fbf1(0x25d)]);if(_0x159aa3){_0x3f5c35=_0x159aa3,_0xa55ab7=0x0,console[_0x27fbf1(0x240)]('['+(0x0,session_1[_0x27fbf1(0x22f)])()+']\x20API\x20Key\x20配额耗尽(429),切换到新\x20Key:\x20'+(0x0,api_key_manager_1['settingLabel'])(_0x159aa3)),fs_1[_0x27fbf1(0x238)][_0x27fbf1(0x20f)](_0x260802,'['+(0x0,session_1['timestamp'])()+_0x27fbf1(0x1dc),_0x27fbf1(0x234));continue;}}const _0x147317=_0x2d9f2f||_0x588897[_0x27fbf1(0x286)];await(0x0,messaging_1[_0x27fbf1(0x27c)])(_0x30c99f,{'conversationId':(0x0,session_1[_0x27fbf1(0x20d)])(_0x588897),'sessionWebhook':(0x0,session_1[_0x27fbf1(0x233)])(_0x588897),'atUserId':_0x147317,'content':_0x27fbf1(0x27d)});return;}if(_0x13e097[_0x27fbf1(0x231)]){_0xa55ab7++;if(_0xa55ab7>=MAX_FAST_FAIL){if(_0x3f5c35&&_0x30c99f[_0x27fbf1(0x28e)][_0x27fbf1(0x21c)]){const _0x5b14a4=(0x0,api_key_manager_1[_0x27fbf1(0x208)])(_0x30c99f,_0x3f5c35[_0x27fbf1(0x25d)]);if(_0x5b14a4){_0x3f5c35=_0x5b14a4,_0xa55ab7=0x0,console[_0x27fbf1(0x240)]('['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x25b)+MAX_FAST_FAIL+_0x27fbf1(0x250)+(0x0,api_key_manager_1[_0x27fbf1(0x1f5)])(_0x5b14a4)),fs_1[_0x27fbf1(0x238)][_0x27fbf1(0x20f)](_0x260802,'['+(0x0,session_1[_0x27fbf1(0x22f)])()+']\x20[SYSTEM]:\x20TPM\x20限流连续快速失败,切换到新\x20Key\x0a',_0x27fbf1(0x234));continue;}}console['log']('['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x27b)+MAX_FAST_FAIL+_0x27fbf1(0x221)),fs_1['default'][_0x27fbf1(0x20f)](_0x260802,'['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x1f7)+MAX_FAST_FAIL+_0x27fbf1(0x262),_0x27fbf1(0x234));throw new Error(_0x27fbf1(0x1fd)+MAX_FAST_FAIL+'\x20次');}console[_0x27fbf1(0x240)]('['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x206)+API_RETRY_DELAY_MS/0x3e8+'s\x20后重试\x20('+_0xa55ab7+'/'+MAX_FAST_FAIL+')');}else _0xa55ab7=0x0,console[_0x27fbf1(0x240)]('['+(0x0,session_1['timestamp'])()+_0x27fbf1(0x24f)+API_RETRY_DELAY_MS/0x3e8+_0x27fbf1(0x24d));fs_1['default'][_0x27fbf1(0x20f)](_0x260802,'['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x263)+API_RETRY_DELAY_MS/0x3e8+_0x27fbf1(0x1fa),_0x27fbf1(0x234)),await sleep(API_RETRY_DELAY_MS);continue;}if(_0x13e097 instanceof ConversationNotFoundError){console[_0x27fbf1(0x240)]('['+(0x0,session_1[_0x27fbf1(0x22f)])()+']\x20Claude\x20会话失效,清除\x20claudeSessionId\x20并重新发起'),fs_1[_0x27fbf1(0x238)][_0x27fbf1(0x20f)](_0x260802,'['+(0x0,session_1[_0x27fbf1(0x22f)])()+_0x27fbf1(0x1ed),'utf-8');_0x588897[_0x27fbf1(0x1f4)]&&(_0x588897['claudeSessionId']=undefined,_0x30c99f[_0x27fbf1(0x273)](_0x588897,{}));_0xa55ab7=0x0;continue;}throw _0x13e097;}}}
|
package/dist/src/biz/commands.js
CHANGED
|
@@ -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_0x25db81=a4_0x5650;(function(_0x331fb0,_0x53ce5b){const _0x1b0e00=a4_0x5650,_0x1a68d9=_0x331fb0();while(!![]){try{const _0x1750ff=-parseInt(_0x1b0e00(0xe8))/0x1*(parseInt(_0x1b0e00(0xb2))/0x2)+-parseInt(_0x1b0e00(0x136))/0x3*(parseInt(_0x1b0e00(0x10b))/0x4)+-parseInt(_0x1b0e00(0x14e))/0x5+parseInt(_0x1b0e00(0xbd))/0x6*(parseInt(_0x1b0e00(0xb7))/0x7)+parseInt(_0x1b0e00(0xd8))/0x8+parseInt(_0x1b0e00(0x161))/0x9*(parseInt(_0x1b0e00(0x18c))/0xa)+parseInt(_0x1b0e00(0xec))/0xb;if(_0x1750ff===_0x53ce5b)break;else _0x1a68d9['push'](_0x1a68d9['shift']());}catch(_0x2ecce4){_0x1a68d9['push'](_0x1a68d9['shift']());}}}(a4_0x2238,0x6f75b));var __importDefault=this&&this[a4_0x25db81(0x114)]||function(_0x33147e){const _0x288a13=a4_0x25db81;return _0x33147e&&_0x33147e[_0x288a13(0xe7)]?_0x33147e:{'default':_0x33147e};};Object[a4_0x25db81(0x172)](exports,a4_0x25db81(0xe7),{'value':!![]}),exports[a4_0x25db81(0xc3)]=parseHelpCommand,exports[a4_0x25db81(0x188)]=parseCommandHelp,exports[a4_0x25db81(0xf3)]=getCommandByName,exports['formatHelpOverview']=formatHelpOverview,exports[a4_0x25db81(0xc1)]=formatCommandHelp,exports[a4_0x25db81(0x117)]=parseEndCommand,exports[a4_0x25db81(0x12c)]=parseInfoCommand,exports[a4_0x25db81(0xd9)]=formatConversationInfo,exports['formatGlobalConfig']=formatGlobalConfig,exports[a4_0x25db81(0x181)]=parseLogCommand,exports[a4_0x25db81(0x155)]=parseLsCommand,exports[a4_0x25db81(0x133)]=findSubdirByName,exports[a4_0x25db81(0x159)]=getDirectoryStructure,exports[a4_0x25db81(0x153)]=parseContinueSessionCommand,exports[a4_0x25db81(0xdf)]=parseCronCommand,exports[a4_0x25db81(0xed)]=parsePwdCommand,exports[a4_0x25db81(0x17a)]=parseVersionCommand,exports[a4_0x25db81(0x119)]=parseMkdirCommand,exports[a4_0x25db81(0x152)]=parseTouchCommand,exports[a4_0x25db81(0x16b)]=parseRmCommand,exports[a4_0x25db81(0x144)]=parseOpenCommand,exports[a4_0x25db81(0x106)]=parseCleanCommand,exports['parseResetApiKeyCfgCommand']=parseResetApiKeyCfgCommand,exports[a4_0x25db81(0x10f)]=parseCfgCommand,exports['parseBashCommand']=parseBashCommand,exports['parseMqCommand']=parseMqCommand,exports['parseAuthCommand']=parseAuthCommand;const fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a4_0x25db81(0xb6))),COMMAND_REGISTRY=[{'name':a4_0x25db81(0x104),'description':'查看所有可用命令','usage':a4_0x25db81(0x104),'examples':[a4_0x25db81(0x104)],'category':'系统'},{'name':a4_0x25db81(0x12f),'description':a4_0x25db81(0xb4),'usage':a4_0x25db81(0x140),'examples':[a4_0x25db81(0x12f),a4_0x25db81(0x185),'/info\x20session',a4_0x25db81(0x176)],'category':'系统'},{'name':'/log','description':'查看最近会话日志','usage':a4_0x25db81(0x143),'examples':[a4_0x25db81(0x13d),a4_0x25db81(0xdb)],'category':'会话'},{'name':a4_0x25db81(0x134),'description':a4_0x25db81(0x11b),'usage':'/new\x20[初始消息]','examples':[a4_0x25db81(0x134),'/new\x20帮我分析一下这个项目'],'category':'会话'},{'name':a4_0x25db81(0x16d),'description':a4_0x25db81(0xbe),'usage':a4_0x25db81(0xf4),'examples':['/resume',a4_0x25db81(0xe5)],'category':'会话'},{'name':'/end','description':a4_0x25db81(0x18d),'usage':a4_0x25db81(0xf2),'examples':[a4_0x25db81(0xf2)],'category':'会话'},{'name':a4_0x25db81(0xfd),'description':a4_0x25db81(0xf0),'usage':a4_0x25db81(0xde),'examples':[a4_0x25db81(0x13f)],'category':'任务'},{'name':a4_0x25db81(0x175),'description':a4_0x25db81(0x124),'usage':a4_0x25db81(0xce),'examples':[a4_0x25db81(0x175),'/mq\x20-n\x201','/mq\x20-n\x203','/mq\x20-all'],'category':'任务'},{'name':a4_0x25db81(0xe2),'description':a4_0x25db81(0xc8),'usage':a4_0x25db81(0x158),'examples':[a4_0x25db81(0x17e),'/cron\x200\x209\x20*\x20*\x20*\x20查看dima任务',a4_0x25db81(0x171),a4_0x25db81(0x10d),a4_0x25db81(0x131)],'category':'任务'},{'name':'/pwd','description':a4_0x25db81(0x166),'usage':'/pwd','examples':['/pwd'],'category':'文件'},{'name':a4_0x25db81(0x13b),'description':'查看工作目录结构','usage':a4_0x25db81(0x170),'examples':[a4_0x25db81(0x13b),a4_0x25db81(0x108),a4_0x25db81(0x103)],'category':'文件'},{'name':a4_0x25db81(0xe9),'description':a4_0x25db81(0x118),'usage':a4_0x25db81(0xe3),'examples':[a4_0x25db81(0x179),a4_0x25db81(0x13a),a4_0x25db81(0xd7)],'category':'文件'},{'name':a4_0x25db81(0x14b),'description':a4_0x25db81(0x15f),'usage':a4_0x25db81(0x102),'examples':['/touch\x20README.md',a4_0x25db81(0xfc),a4_0x25db81(0x189)],'category':'文件'},{'name':a4_0x25db81(0x16f),'description':a4_0x25db81(0xc4),'usage':a4_0x25db81(0x138),'examples':[a4_0x25db81(0x178),'/rm\x20src/old.ts',a4_0x25db81(0x168)],'category':'文件'},{'name':'/version','description':'查看工具版本信息','usage':a4_0x25db81(0xd5),'examples':[a4_0x25db81(0xd5)],'category':'系统'},{'name':a4_0x25db81(0x163),'description':a4_0x25db81(0x101),'usage':a4_0x25db81(0x174),'examples':[a4_0x25db81(0x163),a4_0x25db81(0x162)],'category':'管理','ownerOnly':!![]},{'name':a4_0x25db81(0xc7),'description':'清除历史会话和缓存(.sessions/.tasks/.images)','usage':a4_0x25db81(0xc7),'examples':[a4_0x25db81(0xc7)],'category':'管理','ownerOnly':!![]},{'name':a4_0x25db81(0x126),'description':a4_0x25db81(0x14d),'usage':a4_0x25db81(0x126),'examples':[a4_0x25db81(0x126)],'category':'管理','ownerOnly':!![]},{'name':a4_0x25db81(0x105),'description':a4_0x25db81(0xe4),'usage':a4_0x25db81(0x13e),'examples':[a4_0x25db81(0x105),a4_0x25db81(0x180),a4_0x25db81(0xcf),'/cfg\x20--whiteUserList\x2013800138000',a4_0x25db81(0xc5),a4_0x25db81(0x14f),a4_0x25db81(0x183)],'category':'管理','ownerOnly':!![]},{'name':'/bash','description':a4_0x25db81(0x187),'usage':a4_0x25db81(0xf9),'examples':[a4_0x25db81(0x122),a4_0x25db81(0xf8),a4_0x25db81(0x139)],'category':'文件'},{'name':a4_0x25db81(0x11d),'description':'管理当前群白名单(add/del,默认list)','usage':a4_0x25db81(0xc2),'examples':[a4_0x25db81(0x11d),a4_0x25db81(0xee),a4_0x25db81(0x14a)],'category':'管理','ownerOnly':!![]}],CATEGORY_DISPLAY=[{'category':'会话','icon':'💬'},{'category':'任务','icon':'📋'},{'category':'文件','icon':'📂'},{'category':'系统','icon':'⚙️'},{'category':'管理','icon':'🔧'}];function parseHelpCommand(_0x2e5737){const _0x4a44f8=a4_0x25db81;return _0x2e5737[_0x4a44f8(0xda)]()['toLowerCase']()==='/help';}function parseCommandHelp(_0xdd668e){const _0x32350b=a4_0x25db81,_0x1a109f=_0xdd668e[_0x32350b(0xda)](),_0xe618d8=_0x1a109f[_0x32350b(0x169)](/^(\/\w+)\s+--help$/i);if(!_0xe618d8)return null;return _0xe618d8[0x1]['toLowerCase']();}function getCommandByName(_0x4ffa92){const _0x2e9569=a4_0x25db81,_0x229aaa=_0x4ffa92['toLowerCase']();return COMMAND_REGISTRY[_0x2e9569(0x147)](_0x137418=>_0x137418[_0x2e9569(0x16a)][_0x2e9569(0x16e)]()===_0x229aaa||_0x137418[_0x2e9569(0xdc)]?.['some'](_0x12893f=>_0x12893f[_0x2e9569(0x16e)]()===_0x229aaa));}function formatHelpOverview(_0x260563,_0x381189){const _0xd542d6=a4_0x25db81,_0xbcc595=COMMAND_REGISTRY[_0xd542d6(0x135)](_0xfec5f5=>_0x381189||!_0xfec5f5[_0xd542d6(0xbf)]),_0x434cd2=[_0xd542d6(0x154),_0xd542d6(0x115),_0xd542d6(0xb3)+_0x260563,_0xd542d6(0x18a),_0xd542d6(0x15d),'----'];for(const {category:_0x47e83b,icon:_0x1db9fd}of CATEGORY_DISPLAY){const _0x17378e=_0xbcc595[_0xd542d6(0x135)](_0xec87e6=>_0xec87e6[_0xd542d6(0x15c)]===_0x47e83b);if(_0x17378e[_0xd542d6(0x130)]===0x0)continue;_0x434cd2['push'](_0x1db9fd+_0xd542d6(0x111)+_0x47e83b+'**');for(const _0x86f82f of _0x17378e){_0x434cd2[_0xd542d6(0x177)](_0xd542d6(0x15a)+_0x86f82f[_0xd542d6(0x16a)]+'`\x20'+_0x86f82f[_0xd542d6(0x13c)]);}_0x434cd2['push']('');}return _0x434cd2[_0xd542d6(0x177)]('💡\x20输入\x20`/{命令}\x20--help`\x20查看命令详细用法'),_0x434cd2[_0xd542d6(0x12d)]('\x0a');}function formatCommandHelp(_0x5a9964){const _0x4ea473=a4_0x25db81,_0x38da28=[_0x4ea473(0xd4)+_0x5a9964['name'],'',_0x4ea473(0x120)+_0x5a9964['description'],'',_0x4ea473(0x186)+_0x5a9964[_0x4ea473(0xf7)]+'`'];_0x5a9964[_0x4ea473(0xdc)]?.[_0x4ea473(0x130)]&&_0x38da28[_0x4ea473(0x177)]('',_0x4ea473(0xfe)+_0x5a9964[_0x4ea473(0xdc)][_0x4ea473(0x12d)](',\x20'));_0x38da28[_0x4ea473(0x177)]('','**示例:**');for(const _0x65c4e9 of _0x5a9964[_0x4ea473(0xc0)]){_0x38da28[_0x4ea473(0x177)](_0x4ea473(0x15a)+_0x65c4e9+'`');}return _0x38da28[_0x4ea473(0x12d)]('\x0a');}function parseEndCommand(_0x2678f1){const _0x8a0f4b=a4_0x25db81;return _0x2678f1[_0x8a0f4b(0xda)]()['toLowerCase']()===_0x8a0f4b(0xf2);}function parseInfoCommand(_0x32cba6){const _0x54ed29=a4_0x25db81,_0x134499=_0x32cba6[_0x54ed29(0xda)]()[_0x54ed29(0x16e)]();if(_0x134499==='/info')return'all';if(_0x134499===_0x54ed29(0x185))return _0x54ed29(0xf5);if(_0x134499===_0x54ed29(0xcb))return'session';if(_0x134499==='/info\x20task')return _0x54ed29(0x109);return null;}function a4_0x5650(_0x348b34,_0x1aa99e){_0x348b34=_0x348b34-0xb2;const _0x2238ba=a4_0x2238();let _0x565041=_0x2238ba[_0x348b34];return _0x565041;}function formatConversationInfo(_0x1434d9,_0x2db45e,_0x38f111,_0x4a1e83){const _0x1b224d=a4_0x25db81,_0x64b5ac=[_0x1b224d(0x17f)+_0x2db45e];if(_0x1434d9['conversationTitle'])_0x64b5ac['push'](_0x1b224d(0x11e)+_0x1434d9[_0x1b224d(0x18b)]);if(_0x4a1e83)_0x64b5ac[_0x1b224d(0x177)]('-\x20**工作目录:**\x20`'+_0x4a1e83+'`');if(_0x1434d9[_0x1b224d(0x100)])_0x64b5ac[_0x1b224d(0x177)](_0x1b224d(0x17b)+_0x1434d9['linkConversationId']);if(_0x1434d9[_0x1b224d(0x184)])_0x64b5ac[_0x1b224d(0x177)](_0x1b224d(0x129)+_0x1434d9[_0x1b224d(0x184)]);if(_0x1434d9[_0x1b224d(0xb9)])_0x64b5ac[_0x1b224d(0x177)](_0x1b224d(0xd6)+_0x1434d9['dingToken']['substring'](0x0,0x8)+_0x1b224d(0x107));if(_0x1434d9[_0x1b224d(0x16c)]?.[_0x1b224d(0x130)]){const _0x3f08d1=_0x1434d9[_0x1b224d(0x16c)]['map'](_0x3dd9d5=>{const _0x142130=_0x38f111?.(_0x3dd9d5);return _0x142130||_0x3dd9d5;})[_0x1b224d(0x12d)](',\x20');_0x64b5ac[_0x1b224d(0x177)](_0x1b224d(0x15b)+_0x3f08d1);}if(_0x1434d9[_0x1b224d(0xe0)]===![])_0x64b5ac['push'](_0x1b224d(0xd1));if(_0x1434d9[_0x1b224d(0x112)]===![])_0x64b5ac[_0x1b224d(0x177)](_0x1b224d(0x11a));if(_0x1434d9[_0x1b224d(0x18e)]===![])_0x64b5ac['push'](_0x1b224d(0x125));if(_0x1434d9[_0x1b224d(0x150)]?.[_0x1b224d(0x167)])_0x64b5ac[_0x1b224d(0x177)](_0x1b224d(0xdd)+_0x1434d9[_0x1b224d(0x150)][_0x1b224d(0x167)]);if(_0x1434d9[_0x1b224d(0xbb)])_0x64b5ac[_0x1b224d(0x177)]('-\x20**preBash:**\x20`'+_0x1434d9['preBash']+'`');return _0x64b5ac['join']('\x0a');}function formatGlobalConfig(_0x474cc6){const _0x1f6ef6=a4_0x25db81,_0x563873=[_0x1f6ef6(0xca)+(_0x474cc6[_0x1f6ef6(0x160)]||'-'),_0x1f6ef6(0x142)+(_0x474cc6[_0x1f6ef6(0xba)]??0x5),_0x1f6ef6(0xb5)+(_0x474cc6[_0x1f6ef6(0x12e)]??0x1),'-\x20**taskQueueSize:**\x20'+(_0x474cc6[_0x1f6ef6(0x128)]??0x32),_0x1f6ef6(0x14c)+(_0x474cc6['includeThinking']??![]),_0x1f6ef6(0x12a)+(_0x474cc6[_0x1f6ef6(0x12b)]??!![])];if(_0x474cc6[_0x1f6ef6(0x146)])_0x563873['push'](_0x1f6ef6(0x116)+_0x474cc6[_0x1f6ef6(0x146)][_0x1f6ef6(0x164)](0x0,0x8)+_0x1f6ef6(0x107));if(_0x474cc6[_0x1f6ef6(0x182)])_0x563873[_0x1f6ef6(0x177)]('-\x20**owner:**\x20'+_0x474cc6[_0x1f6ef6(0x182)]);if(_0x474cc6[_0x1f6ef6(0x16c)]?.[_0x1f6ef6(0x130)])_0x563873['push'](_0x1f6ef6(0x165)+_0x474cc6[_0x1f6ef6(0x16c)]['join'](',\x20'));if(_0x474cc6[_0x1f6ef6(0xef)]){const _0xa88c85=_0x474cc6[_0x1f6ef6(0xef)][_0x1f6ef6(0x11c)][_0x1f6ef6(0x135)](_0x3860a0=>_0x3860a0[_0x1f6ef6(0x137)])[_0x1f6ef6(0x130)];_0x563873['push'](_0x1f6ef6(0x151)+_0xa88c85+'/'+_0x474cc6[_0x1f6ef6(0xef)][_0x1f6ef6(0x11c)][_0x1f6ef6(0x130)]+_0x1f6ef6(0x113)),_0x563873[_0x1f6ef6(0x177)]('\x20\x20-\x20**最近重置:**\x20'+(_0x474cc6['apiKeyCfg']['resetTime']||'-'));}return _0x563873[_0x1f6ef6(0x12d)]('\x0a');}function a4_0x2238(){const _0x29d254=['resultOnly','parseInfoCommand','join','taskHandlerCount','/info','length','/cron\x20delete\x20cron_123','shell','findSubdirByName','/new','filter','3ghIAhX','isValid','/rm\x20<相对路径>','/bash\x20git\x20status','/mkdir\x20src/components','/ls','description','/log','/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\x20帮我重构登录模块','/info\x20[robot|session|task]','create_cron','-\x20**sessionMaxConcurrency:**\x20','/log\x20[行数]','parseOpenCommand','cancel','defaultDingToken','find','📂\x20目录为空','--linkConversationId','/auth\x20del\x2013800138000','/touch','-\x20**includeThinking:**\x20','重置API\x20Key配置(将所有Key标记为有效)','4187725QaRPPU','/cfg\x20--receiveReply\x20false','taskCfg','-\x20**apiKeyCfg:**\x20','parseTouchCommand','parseContinueSessionCommand','###\x20🤗','parseLsCommand','delete','mkdir','/cron\x20<自然语言描述>\x20|\x20/cron\x20<cron表达式>\x20<任务描述>\x20|\x20/cron\x20list|pause|resume|delete\x20<id>','getDirectoryStructure','-\x20`','-\x20**群白名单:**\x20','category','-\x20**Github:**\x20https://github.com/yihuineng/cc-ding','📄\x20','在工作目录下创建空文件(支持相对路径,不能超出工作目录范围)','clientName','312741pKUhgc','/open\x20shell','/open','substring','-\x20**全局白名单:**\x20','显示当前工作目录的绝对路径','skill','/rm\x20./docs/obsolete/','match','name','parseRmCommand','whiteUserList','/resume','toLowerCase','/rm','/ls\x20[目标目录]\x20[展开层数]','/cron\x20list','defineProperty','yes','/open\x20[shell]','/mq','/info\x20task','push','/rm\x20temp.txt','/mkdir\x20src','parseVersionCommand','-\x20**关联会话ID:**\x20','readdirSync','del','/cron\x20每天早上9点查看dima任务','-\x20**群ID:**\x20','/cfg\x20--dingToken\x20myToken\x20--whiteUserList\x2013800138000,13900139000','parseLogCommand','owner','/cfg\x20--preBash\x20\x22source\x20.env\x22','agent','/info\x20robot','**用法:**\x20`','在工作目录执行\x20bash\x20命令(如配置了\x20preBash\x20全局/群级别,将叠加前置执行)','parseCommandHelp','/touch\x20./config.json','-\x20**作者:**\x20yihuineng','conversationTitle','120ORVjjY','结束当前会话','useLocalOcr','26cGQNMN','-\x20**版本:**\x20','查看群配置、会话和任务信息','-\x20**taskHandlerCount:**\x20','path','112FCuFxj','replace','dingToken','sessionMaxConcurrency','preBash','--conversationTitle','29874arIdai','继续指定的历史会话(可指定会话ID,不指定则恢复最近一个)','ownerOnly','examples','formatCommandHelp','/auth\x20[add|del\x20<手机号或userId>]','parseHelpCommand','删除工作目录下的文件或目录(支持相对路径,不能超出工作目录范围)','/cfg\x20--atSender\x20false','startsWith','/clean','创建和管理定时任务(Claude自动分析自然语言)','/clean\x20all','-\x20**clientName:**\x20','/info\x20session','folder','--receiveReply','/mq\x20|\x20/mq\x20-n\x20<数量>\x20|\x20/mq\x20-all','/cfg\x20--conversationTitle\x20工作群','shift','-\x20**atSender:**\x20false','^\x5c/','list','###\x20📖\x20','/version','-\x20**dingToken:**\x20','/mkdir\x20./docs','2010256yiYrfb','formatConversationInfo','trim','/log\x2020','aliases','-\x20**taskSkill:**\x20','/task\x20<任务描述>','parseCronCommand','atSender','\x5cs+(.+)$','/cron','/mkdir\x20<相对路径>','注册当前群到配置,或刷新指定字段(已注册群)','/resume\x20abc123','current','__esModule','60983ayowci','/mkdir','split','--whiteUserList','16577132JkCAxh','parsePwdCommand','/auth\x20add\x2013800138000','apiKeyCfg','提交任务到队列','min','/end','getCommandByName','/resume\x20[会话ID]','robot','isDirectory','usage','/bash\x20pwd','/bash\x20<命令>','❌\x20无法读取目录','test','/touch\x20src/cc-ding-cli.ts','/task','**别名:**\x20','--preBash','linkConversationId','在文件管理器或终端中打开工作目录','/touch\x20<相对路径>','/ls\x20product\x201','/help','/cfg','parseCleanCommand','...','/ls\x20root\x202','task','add','672332hxHISP','resume','/cron\x20pause\x20cron_123','--atSender','parseCfgCommand','pause','\x20**','receiveReply','\x20有效','__importDefault','----','-\x20**defaultDingToken:**\x20','parseEndCommand','在工作目录下创建文件夹(支持相对路径,不能超出工作目录范围)','parseMkdirCommand','-\x20**receiveReply:**\x20false\x20(不回复确认消息)','开始新的对话会话(结束当前会话)','claudeSettings','/auth','-\x20**群名称:**\x20','repeat','**描述:**\x20','default','/bash\x20ls\x20-la','sort','查看和管理当前会话消息队列(排队中的消息)','-\x20**本地OCR:**\x20关闭','/reset-apikeycfg','all','taskQueueSize','-\x20**agent:**\x20','-\x20**resultOnly:**\x20'];a4_0x2238=function(){return _0x29d254;};return a4_0x2238();}function parseLogCommand(_0x5d1660){const _0x218256=a4_0x25db81,_0x4ef558=_0x5d1660[_0x218256(0xda)](),_0x456237=_0x4ef558[_0x218256(0x169)](/^\/log(?:\s+(\d+))?$/i);if(!_0x456237)return null;const _0x109666=parseInt(_0x456237[0x1],0xa);return isNaN(_0x109666)||_0x109666<=0x0?0xa:_0x109666;}function parseLsCommand(_0x3130d2){const _0xad7465=a4_0x25db81,_0x5c9237=_0x3130d2[_0xad7465(0xda)](),_0x147d58=_0x5c9237['match'](/^\/ls(?:\s+(.+))?$/i);if(!_0x147d58)return null;if(_0x147d58[0x1]===undefined)return{'target':'','depth':0x1};const _0x22a91b=_0x147d58[0x1][_0xad7465(0xda)]()['split'](/\s+/),_0xd2d707=_0x22a91b[0x0]||'',_0xe12725=_0x22a91b[0x1]?parseInt(_0x22a91b[0x1],0xa):0x1;return{'target':_0xd2d707,'depth':isNaN(_0xe12725)||_0xe12725<0x0?0x1:Math[_0xad7465(0xf1)](_0xe12725,0x5)};}function findSubdirByName(_0x761838,_0x47c18c,_0x479594=0x3){const _0x481195=a4_0x25db81,_0x5e5d5d=[{'dir':_0x761838,'depth':0x0}];while(_0x5e5d5d[_0x481195(0x130)]>0x0){const {dir:_0x30718d,depth:_0x5c325e}=_0x5e5d5d[_0x481195(0xd0)]();if(_0x5c325e>_0x479594)continue;try{const _0x5a2491=fs_1[_0x481195(0x121)][_0x481195(0x17c)](_0x30718d,{'withFileTypes':!![]});for(const _0xbacea5 of _0x5a2491){if(!_0xbacea5[_0x481195(0xf6)]()||_0xbacea5[_0x481195(0x16a)][_0x481195(0xc6)]('.'))continue;if(_0xbacea5[_0x481195(0x16a)]===_0x47c18c)return path_1[_0x481195(0x121)]['join'](_0x30718d,_0xbacea5['name']);_0x5e5d5d[_0x481195(0x177)]({'dir':path_1[_0x481195(0x121)][_0x481195(0x12d)](_0x30718d,_0xbacea5[_0x481195(0x16a)]),'depth':_0x5c325e+0x1});}}catch{continue;}}return null;}function getDirectoryStructure(_0x1a1321,_0xcd642b=0x0,_0x54d0b6=0x1){const _0x383b26=a4_0x25db81;try{const _0x1ffbc6=fs_1[_0x383b26(0x121)][_0x383b26(0x17c)](_0x1a1321,{'withFileTypes':!![]})[_0x383b26(0x135)](_0xf50fe5=>!_0xf50fe5['name'][_0x383b26(0xc6)]('.'));if(_0x1ffbc6[_0x383b26(0x130)]===0x0)return _0xcd642b===0x0?_0x383b26(0x148):'';_0x1ffbc6[_0x383b26(0x123)]((_0x50277f,_0x435654)=>{const _0x4a7dbb=_0x383b26;if(_0x50277f['isDirectory']()!==_0x435654[_0x4a7dbb(0xf6)]())return _0x50277f['isDirectory']()?-0x1:0x1;return _0x50277f[_0x4a7dbb(0x16a)]['localeCompare'](_0x435654[_0x4a7dbb(0x16a)]);});const _0x449c23=[],_0x1e8962='.\x20'[_0x383b26(0x11f)](_0xcd642b);for(const _0x314897 of _0x1ffbc6){const _0x1e7929=_0x314897[_0x383b26(0xf6)]()?'📁\x20':_0x383b26(0x15e),_0x324377=_0x314897['isDirectory']()?'/':'';_0x449c23[_0x383b26(0x177)](''+_0x1e8962+_0x1e7929+_0x314897[_0x383b26(0x16a)]+_0x324377);if(_0x314897[_0x383b26(0xf6)]()&&_0xcd642b<_0x54d0b6){const _0x113473=path_1[_0x383b26(0x121)][_0x383b26(0x12d)](_0x1a1321,_0x314897[_0x383b26(0x16a)]),_0x2913a8=getDirectoryStructure(_0x113473,_0xcd642b+0x1,_0x54d0b6);_0x2913a8&&_0x449c23[_0x383b26(0x177)](_0x2913a8);}}return _0x449c23[_0x383b26(0x12d)]('\x0a');}catch{return _0xcd642b===0x0?_0x383b26(0xfa):'';}}function parseContinueSessionCommand(_0x500db1){const _0x5b5acb=a4_0x25db81,_0x206b7e=_0x500db1[_0x5b5acb(0xda)]()[_0x5b5acb(0x169)](/^\/resume(?:\s+(\S+))?$/i);if(!_0x206b7e)return null;return _0x206b7e[0x1]!==undefined?_0x206b7e[0x1]:'';}function looksLikeCronExpression(_0x25125f){const _0x28bb13=a4_0x25db81,_0x316e88=_0x25125f['trim']()[_0x28bb13(0xea)](/\s+/);if(_0x316e88['length']!==0x5)return![];return _0x316e88['every'](_0x2c5213=>/^[\d*/\-]+$/[_0x28bb13(0xfb)](_0x2c5213));}function parseCronCommand(_0x4196b9){const _0x3611e7=a4_0x25db81,_0x5b0ff7=_0x4196b9[_0x3611e7(0xda)]();if(!_0x5b0ff7[_0x3611e7(0x16e)]()[_0x3611e7(0xc6)](_0x3611e7(0xe2)))return null;const _0x4cac79=_0x5b0ff7[_0x3611e7(0x164)](0x5)[_0x3611e7(0xda)]();if(!_0x4cac79)return null;if(/^(list|ls)$/i[_0x3611e7(0xfb)](_0x4cac79))return{'type':'list'};const _0x2229e9=_0x4cac79['match'](/^(?:delete|rm)\s+(\S+)$/i);if(_0x2229e9)return{'type':_0x3611e7(0x156),'id':_0x2229e9[0x1]};const _0x1b16ec=_0x4cac79[_0x3611e7(0x169)](/^pause\s+(\S+)$/i);if(_0x1b16ec)return{'type':_0x3611e7(0x110),'id':_0x1b16ec[0x1]};const _0x320d4c=_0x4cac79[_0x3611e7(0x169)](/^resume\s+(\S+)$/i);if(_0x320d4c)return{'type':_0x3611e7(0x10c),'id':_0x320d4c[0x1]};const _0x11eb49=_0x4cac79[_0x3611e7(0x169)](/^(\S+\s+\S+\s+\S+\s+\S+\s+\S+)\s+(.+)$/);if(_0x11eb49&&looksLikeCronExpression(_0x11eb49[0x1]))return{'type':_0x3611e7(0x141),'cronExpression':_0x11eb49[0x1],'prompt':_0x11eb49[0x2]};return{'type':'create_nl','input':_0x4cac79};}function parsePwdCommand(_0x5c42bd){const _0x947ef7=a4_0x25db81;return _0x5c42bd[_0x947ef7(0xda)]()==='/pwd';}function parseVersionCommand(_0x50d324){const _0x2e54b3=a4_0x25db81;return _0x50d324[_0x2e54b3(0xda)]()===_0x2e54b3(0xd5);}function parsePathCommand(_0x44fa16,_0x586b50){const _0x48c94f=a4_0x25db81,_0x32cd61=_0x44fa16['trim'](),_0x27f8d7=_0x32cd61[_0x48c94f(0x169)](new RegExp(_0x48c94f(0xd2)+_0x586b50+_0x48c94f(0xe1)));if(!_0x27f8d7)return null;const _0x1f8d78=_0x27f8d7[0x1][_0x48c94f(0xda)]();return _0x1f8d78||null;}function parseMkdirCommand(_0x1df0de){const _0x3aec8a=a4_0x25db81;return parsePathCommand(_0x1df0de,_0x3aec8a(0x157));}function parseTouchCommand(_0x20c88b){return parsePathCommand(_0x20c88b,'touch');}function parseRmCommand(_0x1865c8){return parsePathCommand(_0x1865c8,'rm');}function parseOpenCommand(_0x2cbf98){const _0x82ebac=a4_0x25db81,_0x31bcd9=_0x2cbf98[_0x82ebac(0xda)]()[_0x82ebac(0x16e)]();if(_0x31bcd9===_0x82ebac(0x163))return _0x82ebac(0xcc);if(_0x31bcd9==='/open\x20shell')return _0x82ebac(0x132);return null;}function parseCleanCommand(_0x3023b9){const _0x15688e=a4_0x25db81,_0x5f5d34=_0x3023b9[_0x15688e(0xda)]()[_0x15688e(0x16e)]();if(_0x5f5d34==='/clean')return _0x15688e(0xe6);if(_0x5f5d34===_0x15688e(0xc9))return _0x15688e(0x127);return null;}function parseResetApiKeyCfgCommand(_0x1ec699){const _0x27fc8c=a4_0x25db81;return _0x1ec699[_0x27fc8c(0xda)]()[_0x27fc8c(0x16e)]()===_0x27fc8c(0x126);}function parseCfgCommand(_0x53e9fc){const _0x57f889=a4_0x25db81,_0x2a977a=_0x53e9fc[_0x57f889(0xda)]();if(!/^\/cfg(?:\s|$)/i[_0x57f889(0xfb)](_0x2a977a))return null;const _0x411ba0=_0x2a977a[_0x57f889(0x164)](0x4)[_0x57f889(0xda)]();if(!_0x411ba0)return{};if(/^--help$/i['test'](_0x411ba0))return null;const _0x1f0659={},_0x5d1a8d=_0x411ba0[_0x57f889(0xea)](/\s+/);for(let _0x589660=0x0;_0x589660<_0x5d1a8d['length'];_0x589660++){const _0x84f1a3=_0x5d1a8d[_0x589660];if(_0x84f1a3==='--dingToken'&&_0x5d1a8d[_0x589660+0x1])_0x1f0659['dingToken']=_0x5d1a8d[++_0x589660];else{if(_0x84f1a3===_0x57f889(0x149)&&_0x5d1a8d[_0x589660+0x1])_0x1f0659[_0x57f889(0x100)]=_0x5d1a8d[++_0x589660];else{if(_0x84f1a3===_0x57f889(0xeb)&&_0x5d1a8d[_0x589660+0x1])_0x1f0659[_0x57f889(0x16c)]=_0x5d1a8d[++_0x589660]['split'](',')['map'](_0x1af1c6=>_0x1af1c6[_0x57f889(0xda)]())[_0x57f889(0x135)](Boolean);else{if(_0x84f1a3===_0x57f889(0xbc)&&_0x5d1a8d[_0x589660+0x1]){const _0x1a4cac=[];while(_0x589660+0x1<_0x5d1a8d[_0x57f889(0x130)]&&!_0x5d1a8d[_0x589660+0x1][_0x57f889(0xc6)]('--')){_0x1a4cac[_0x57f889(0x177)](_0x5d1a8d[++_0x589660]);}_0x1a4cac[_0x57f889(0x130)]>0x0&&(_0x1f0659['conversationTitle']=_0x1a4cac['join']('\x20'));}else{if(_0x84f1a3===_0x57f889(0x10e)&&_0x5d1a8d[_0x589660+0x1]){const _0x9506d3=_0x5d1a8d[++_0x589660][_0x57f889(0x16e)]();_0x1f0659['atSender']=_0x9506d3==='true'||_0x9506d3==='1'||_0x9506d3===_0x57f889(0x173);}else{if(_0x84f1a3===_0x57f889(0xcd)&&_0x5d1a8d[_0x589660+0x1]){const _0x1f3d8c=_0x5d1a8d[++_0x589660]['toLowerCase']();_0x1f0659['receiveReply']=_0x1f3d8c==='true'||_0x1f3d8c==='1'||_0x1f3d8c==='yes';}else{if(_0x84f1a3===_0x57f889(0xff)&&_0x5d1a8d[_0x589660+0x1]){const _0x56f01c=[];while(_0x589660+0x1<_0x5d1a8d[_0x57f889(0x130)]&&!_0x5d1a8d[_0x589660+0x1][_0x57f889(0xc6)]('--')){_0x56f01c[_0x57f889(0x177)](_0x5d1a8d[++_0x589660]);}_0x56f01c[_0x57f889(0x130)]>0x0&&(_0x1f0659[_0x57f889(0xbb)]=_0x56f01c[_0x57f889(0x12d)]('\x20')[_0x57f889(0xb8)](/^["']|["']$/g,''));}}}}}}}}return _0x1f0659;}function parseBashCommand(_0x5eb5e7){const _0x4e98af=a4_0x25db81,_0x21b879=_0x5eb5e7[_0x4e98af(0xda)](),_0x5e1cfc=_0x21b879['match'](/^\/bash\s+(.+)$/i);if(!_0x5e1cfc)return null;const _0x450ea5=_0x5e1cfc[0x1]['trim']();return _0x450ea5||null;}function parseMqCommand(_0xc0c6c5){const _0x4a9935=a4_0x25db81,_0x4ece07=_0xc0c6c5[_0x4a9935(0xda)]();if(!/^\/mq(?:\s|$)/i[_0x4a9935(0xfb)](_0x4ece07)&&_0x4ece07['toLowerCase']()!=='/mq')return null;const _0x4a3d66=_0x4ece07['substring'](0x3)[_0x4a9935(0xda)]();if(!_0x4a3d66)return{'type':_0x4a9935(0xd3)};const _0x699da5=_0x4a3d66[_0x4a9935(0x169)](/^-n\s+(\d+)$/i);if(_0x699da5){const _0x391e63=parseInt(_0x699da5[0x1],0xa);return _0x391e63>0x0?{'type':_0x4a9935(0x145),'count':_0x391e63}:{'type':_0x4a9935(0xd3)};}if(/^-all$/i[_0x4a9935(0xfb)](_0x4a3d66))return{'type':'cancelAll'};return null;}function parseAuthCommand(_0x13fcdd){const _0x5e1ca2=a4_0x25db81,_0x3348e7=_0x13fcdd[_0x5e1ca2(0xda)](),_0x4d2d22=_0x3348e7['match'](/^\/auth\s+add\s+(\S+)$/i);if(_0x4d2d22)return{'type':_0x5e1ca2(0x10a),'staffId':_0x4d2d22[0x1]};const _0x26720f=_0x3348e7[_0x5e1ca2(0x169)](/^\/auth\s+del(?:ete)?\s+(\S+)$/i);if(_0x26720f)return{'type':_0x5e1ca2(0x17d),'staffId':_0x26720f[0x1]};if(/^\/auth(?:\s+list)?$/i[_0x5e1ca2(0xfb)](_0x3348e7))return{'type':'list'};return null;}
|
package/dist/src/biz/cron.js
CHANGED
|
@@ -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_0x272c8=a5_0x26a3;(function(_0x33cc60,_0x118e46){const _0x1b69cf=a5_0x26a3,_0x77ddce=_0x33cc60();while(!![]){try{const _0x499929=parseInt(_0x1b69cf(0x207))/0x1*(-parseInt(_0x1b69cf(0x1f8))/0x2)+parseInt(_0x1b69cf(0x211))/0x3+-parseInt(_0x1b69cf(0x1ef))/0x4+parseInt(_0x1b69cf(0x246))/0x5+-parseInt(_0x1b69cf(0x242))/0x6+parseInt(_0x1b69cf(0x1e5))/0x7*(-parseInt(_0x1b69cf(0x24d))/0x8)+-parseInt(_0x1b69cf(0x218))/0x9*(-parseInt(_0x1b69cf(0x230))/0xa);if(_0x499929===_0x118e46)break;else _0x77ddce['push'](_0x77ddce['shift']());}catch(_0x4400c8){_0x77ddce['push'](_0x77ddce['shift']());}}}(a5_0x1d2c,0xe3dc8));var __importDefault=this&&this[a5_0x272c8(0x1cd)]||function(_0x204167){return _0x204167&&_0x204167['__esModule']?_0x204167:{'default':_0x204167};};Object[a5_0x272c8(0x1ff)](exports,'__esModule',{'value':!![]}),exports[a5_0x272c8(0x241)]=void 0x0,exports['isValidCronExpression']=isValidCronExpression,exports[a5_0x272c8(0x220)]=formatCronJobList,exports[a5_0x272c8(0x238)]=formatCronJobInfo;const fs_1=__importDefault(require('fs')),readline_1=__importDefault(require(a5_0x272c8(0x239))),child_process_1=require('child_process'),utils_ok_1=require(a5_0x272c8(0x247)),messaging_1=require('./messaging'),claude_process_1=require(a5_0x272c8(0x1ea)),task_1=require('./task'),session_1=require('./session');function getCronFile(_0x8f9587){const _0x2e0a49=a5_0x272c8;return(0x0,session_1[_0x2e0a49(0x1d1)])(_0x8f9587)+_0x2e0a49(0x255);}function loadCronJobs(_0x5f226d){const _0x1c57b3=a5_0x272c8,_0x188838=getCronFile(_0x5f226d);try{const _0x5b5c03=JSON[_0x1c57b3(0x22a)](fs_1[_0x1c57b3(0x23e)]['readFileSync'](_0x188838,_0x1c57b3(0x21e)));return Array[_0x1c57b3(0x25c)](_0x5b5c03)?_0x5b5c03:_0x5b5c03[_0x1c57b3(0x226)]||[];}catch{return[];}}function saveCronJobs(_0x40a4c1,_0x5066f2){const _0xe7e746=a5_0x272c8,_0x167cfa=getCronFile(_0x40a4c1);fs_1[_0xe7e746(0x23e)][_0xe7e746(0x252)](_0x167cfa,JSON[_0xe7e746(0x249)](_0x5066f2,null,0x2),_0xe7e746(0x21e));}function matchesCronField(_0x71ca11,_0x3fa972,_0x9f1b74,_0x495235){const _0x8bc802=a5_0x272c8;if(_0x71ca11==='*')return!![];if(_0x71ca11[_0x8bc802(0x23b)](','))return _0x71ca11[_0x8bc802(0x1e0)](',')[_0x8bc802(0x1d7)](_0x315c14=>matchesCronField(_0x315c14[_0x8bc802(0x225)](),_0x3fa972,_0x9f1b74,_0x495235));if(_0x71ca11[_0x8bc802(0x23b)]('/')){const _0x59c073=_0x71ca11['indexOf']('/'),_0x36f2b6=_0x71ca11['substring'](0x0,_0x59c073),_0x4ef556=parseInt(_0x71ca11['substring'](_0x59c073+0x1),0xa);if(isNaN(_0x4ef556)||_0x4ef556<=0x0)return![];let _0x2f03d7=_0x9f1b74,_0x3d7236=_0x495235;if(_0x36f2b6!=='*'){if(_0x36f2b6[_0x8bc802(0x23b)]('-')){const _0x16c3cb=_0x36f2b6[_0x8bc802(0x1e0)]('-')['map'](Number);_0x2f03d7=_0x16c3cb[0x0],_0x3d7236=_0x16c3cb[0x1];}else _0x2f03d7=parseInt(_0x36f2b6,0xa),_0x3d7236=_0x495235;}if(_0x3fa972<_0x2f03d7||_0x3fa972>_0x3d7236)return![];return(_0x3fa972-_0x2f03d7)%_0x4ef556===0x0;}if(_0x71ca11['includes']('-')){const _0x2b914a=_0x71ca11[_0x8bc802(0x1e0)]('-')[_0x8bc802(0x23f)](Number);return _0x3fa972>=_0x2b914a[0x0]&&_0x3fa972<=_0x2b914a[0x1];}const _0x387215=parseInt(_0x71ca11,0xa);return!isNaN(_0x387215)&&_0x3fa972===_0x387215;}function a5_0x1d2c(){const _0x3e6d68=['-\x20**上次执行:**\x20','timer','-\x20**创建者:**\x20','7138988WvSzpP','getConversationConfig','stream-json','getHours','enabled','cron_',']\x20定时任务\x20','persist','catch','37648KnrDAm','size','stopScheduler','mkdirSync','senderStaffId','Claude\x20返回格式不正确','/session.json','defineProperty','\x20个任务\x20(','now','parseClaudeStreamLine','toggleJob','getDay','test','resolveClaudeSettingsPath','68UPpvTo','{INPUT}','Claude\x20TPM\x20限流(422),请稍后重试','message','###\x20⏰\x20定时任务列表\x0a','desc','find','--print','stdout','content','5354826TFEAtw','cronExpression','analyzeAndCreate','conversationId','-\x20上次执行:\x20','join','saveActiveSession','9uZZFIf','toString','spawn','description',']\x20删除定时任务:\x20',']\x20Cron任务\x20','utf-8','error','formatCronJobList','listJobs','executeJob','splice','log','trim','jobs','\x20降级到任务队列失败:','tick','-\x20**Cron:**\x20`','parse','addJob','启动\x20Claude\x20进程失败:\x20','YYYY-MM-DD-HH-mm-ss',']\x20Cron分析进程退出(','\x20的会话配置不存在,\x20跳过执行','29351650cXXvMj','-\x20创建者:\x20','getMonth','config','⏸️\x20暂停','-\x20**状态:**\x20','cron','substring','formatCronJobInfo','readline','timestamp','includes','type','enqueueAsTask','default','map','getMinutes','CronEngine','3551148eMrePm','kill','--verbose','runningJobIds','6730395mAJeVz','utils-ok','Claude\x20进程异常退出,无输出。请检查\x20claude\x20命令是否可用','stringify','分析失败\x20(退出码:\x20','📭\x20暂无定时任务','Claude\x20配额已耗尽(429),请稍后重试或明天再试','8XUfsVT','createInterface','❌\x20定时任务执行失败:\x20','),\x20跳过\x20','startScheduler','writeFileSync','-\x20**任务:**\x20','dingToken','/cron.json','start','\x20的检查','write','push','JSON\x20解析失败','getSessionDir','isArray','stdin','saveTask','prompt','defaultDingToken','delete','result','skill','warn','stderr','getJob','bypassPermissions','removeJob','MAX_CONCURRENT_JOBS','分析以下定时任务描述,提取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',']\x20Cron并发上限(','__importDefault','checkJobsAt','dateUtil','lastCheckedTime','getClientDir','lastRunAt','sendDingMessage','\x20已降级到任务队列:\x20','已暂停','add','some','[cron]','\x20无通知能力(无dingToken且无defaultDingToken),\x20跳过执行',']\x20Cron分析:\x20','pipe','senderNick','destroy','format','activeSessions','split','line','claude','已恢复','toISOString','10333603fRTiMI','length',']\x20Cron触发:\x20','every','-\x20描述:\x20','./claude-process','filter'];a5_0x1d2c=function(){return _0x3e6d68;};return a5_0x1d2c();}function matchesCron(_0x5bdc50,_0xc966fc){const _0xf6597f=a5_0x272c8,_0x14c527=_0x5bdc50['trim']()[_0xf6597f(0x1e0)](/\s+/);if(_0x14c527[_0xf6597f(0x1e6)]!==0x5)return![];const _0x2fe7de=_0xc966fc[_0xf6597f(0x240)](),_0x54f868=_0xc966fc[_0xf6597f(0x1f2)](),_0x382d05=_0xc966fc['getDate'](),_0x1a624a=_0xc966fc[_0xf6597f(0x232)]()+0x1,_0x67d375=_0xc966fc[_0xf6597f(0x204)]();if(!matchesCronField(_0x14c527[0x0],_0x2fe7de,0x0,0x3b))return![];if(!matchesCronField(_0x14c527[0x1],_0x54f868,0x0,0x17))return![];if(!matchesCronField(_0x14c527[0x3],_0x1a624a,0x1,0xc))return![];const _0x3568ec=matchesCronField(_0x14c527[0x2],_0x382d05,0x1,0x1f),_0x259505=matchesCronField(_0x14c527[0x4],_0x67d375,0x0,0x7)||_0x67d375===0x0&&matchesCronField(_0x14c527[0x4],0x7,0x0,0x7),_0x1324e5=_0x14c527[0x2]==='*',_0x4af02d=_0x14c527[0x4]==='*';if(_0x1324e5&&_0x4af02d)return!![];if(_0x1324e5)return _0x259505;if(_0x4af02d)return _0x3568ec;return _0x3568ec||_0x259505;}function isValidCronExpression(_0x2c6e7){const _0x2422e4=a5_0x272c8,_0x31d946=_0x2c6e7[_0x2422e4(0x225)]()[_0x2422e4(0x1e0)](/\s+/);if(_0x31d946['length']!==0x5)return![];const _0x3bac2d=/^(\*|\d+|\d+-\d+|\*\/\d+|\d+\/\d+|\d+-\d+\/\d+|\d+(,\d+)+)$/;return _0x31d946[_0x2422e4(0x1e8)](_0x17ea43=>_0x3bac2d[_0x2422e4(0x205)](_0x17ea43));}const ANALYSIS_PROMPT=a5_0x272c8(0x1cb);async function analyzeCronWithClaude(_0x15c1c6,_0x1831b2,_0x24eae2){const _0x3e186f=a5_0x272c8,_0x438cf4=_0x15c1c6['getConversationDir'](_0x1831b2),_0x50fcc0=_0x3e186f(0x1e2),_0x59a8dd=ANALYSIS_PROMPT['replace'](_0x3e186f(0x208),_0x24eae2),_0x4e6970=['--permission-mode',_0x3e186f(0x1c8),_0x3e186f(0x20e),'--output-format',_0x3e186f(0x1f1),_0x3e186f(0x244)],_0xe2979d=(0x0,claude_process_1[_0x3e186f(0x206)])(_0x15c1c6,_0x438cf4);return _0xe2979d&&_0x4e6970[_0x3e186f(0x259)]('--settings',_0xe2979d),console[_0x3e186f(0x224)]('['+(0x0,session_1[_0x3e186f(0x23a)])()+_0x3e186f(0x1da)+_0x50fcc0+'\x20'+_0x4e6970[_0x3e186f(0x216)]('\x20')),new Promise((_0x284cbe,_0x1909b6)=>{const _0x51b6c2=_0x3e186f,_0x1e3cd0=(0x0,child_process_1[_0x51b6c2(0x21a)])(_0x50fcc0,_0x4e6970,{'cwd':_0x438cf4,'stdio':[_0x51b6c2(0x1db),_0x51b6c2(0x1db),_0x51b6c2(0x1db)]});_0x1e3cd0[_0x51b6c2(0x25d)]?.[_0x51b6c2(0x258)](_0x59a8dd+'\x0a'),_0x1e3cd0[_0x51b6c2(0x25d)]?.['end']();let _0x45a093='',_0x3806ff='';const _0x45d006=readline_1[_0x51b6c2(0x23e)][_0x51b6c2(0x24e)]({'input':_0x1e3cd0[_0x51b6c2(0x20f)]});_0x45d006['on'](_0x51b6c2(0x1e1),_0x17f924=>{const _0x2f027d=_0x51b6c2,_0x15980e=(0x0,claude_process_1[_0x2f027d(0x202)])(_0x17f924);_0x15980e?.[_0x2f027d(0x23c)]===_0x2f027d(0x262)&&_0x15980e['content']&&(_0x45a093=_0x15980e[_0x2f027d(0x210)]);}),_0x1e3cd0[_0x51b6c2(0x265)]?.['on']('data',_0x1e8425=>{const _0x3fbae9=_0x51b6c2;_0x3806ff+=_0x1e8425[_0x3fbae9(0x219)]();});const _0x20449e=setTimeout(()=>{const _0x152215=_0x51b6c2;_0x1e3cd0[_0x152215(0x243)](),_0x1909b6(new Error('分析超时(60s)'));},0xea60);_0x1e3cd0['on']('close',_0x47a046=>{const _0x23f26d=_0x51b6c2;clearTimeout(_0x20449e);if(_0x47a046===0x0&&_0x45a093)try{const _0x29b9a7=_0x45a093['match'](/\{[\s\S]*\}/);if(_0x29b9a7){const _0x1f083a=JSON[_0x23f26d(0x22a)](_0x29b9a7[0x0]);if(_0x1f083a['cron']&&_0x1f083a['prompt']){_0x284cbe(_0x1f083a);return;}}_0x1909b6(new Error(_0x23f26d(0x1fd)));}catch{_0x1909b6(new Error(_0x23f26d(0x25a)));}else{const _0x5d85c8=_0x3806ff['trim']()?'\x20('+_0x3806ff['trim']()[_0x23f26d(0x237)](0x0,0xc8)+')':'';console[_0x23f26d(0x21f)]('['+(0x0,session_1[_0x23f26d(0x23a)])()+_0x23f26d(0x22e)+_0x47a046+')'+_0x5d85c8);const _0x2b9171=_0x3806ff;if(/\b429\b/[_0x23f26d(0x205)](_0x2b9171))_0x1909b6(new Error(_0x23f26d(0x24c)));else{if(/\b422\b/[_0x23f26d(0x205)](_0x2b9171)||/TPM|额度超限/i[_0x23f26d(0x205)](_0x2b9171))_0x1909b6(new Error(_0x23f26d(0x209)));else{if(/\b401\b/[_0x23f26d(0x205)](_0x2b9171)||/auth|认证|permission/i[_0x23f26d(0x205)](_0x2b9171))_0x1909b6(new Error('Claude\x20认证失败(401),请检查\x20API\x20Key\x20配置'));else _0x47a046===0x1&&!_0x45a093&&!_0x3806ff['trim']()?_0x1909b6(new Error(_0x23f26d(0x248))):_0x1909b6(new Error(_0x23f26d(0x24a)+_0x47a046+')'+_0x5d85c8));}}}}),_0x1e3cd0['on'](_0x51b6c2(0x21f),_0x32db86=>{const _0x118a5d=_0x51b6c2;clearTimeout(_0x20449e),_0x1909b6(new Error(_0x118a5d(0x22c)+_0x32db86[_0x118a5d(0x20a)]));});});}function a5_0x26a3(_0x30eafb,_0x50ff5c){_0x30eafb=_0x30eafb-0x1c8;const _0x1d2c60=a5_0x1d2c();let _0x26a37c=_0x1d2c60[_0x30eafb];return _0x26a37c;}function formatCronJobList(_0x26ff77){const _0x41299f=a5_0x272c8;if(_0x26ff77[_0x41299f(0x1e6)]===0x0)return _0x41299f(0x24b);const _0x5a0d16=[_0x41299f(0x20b)];for(const _0x5c3188 of _0x26ff77){const _0x15d057=_0x5c3188['enabled']?'✅':'⏸️',_0x3f51e1=_0x5c3188[_0x41299f(0x1d2)]||'-';_0x5a0d16[_0x41299f(0x259)]('**'+_0x15d057+'\x20'+_0x5c3188['id']+'**'),_0x5a0d16[_0x41299f(0x259)]('-\x20Cron:\x20`'+_0x5c3188[_0x41299f(0x212)]+'`'),_0x5a0d16['push'](_0x41299f(0x1e9)+_0x5c3188['description']),_0x5a0d16['push']('-\x20任务:\x20'+_0x5c3188[_0x41299f(0x25f)]),_0x5a0d16['push'](_0x41299f(0x231)+_0x5c3188['senderNick']),_0x5a0d16[_0x41299f(0x259)](_0x41299f(0x215)+_0x3f51e1),_0x5a0d16[_0x41299f(0x259)]('');}return _0x5a0d16[_0x41299f(0x259)]('💡\x20`/cron\x20pause\x20<id>`\x20暂停\x20|\x20`/cron\x20resume\x20<id>`\x20恢复\x20|\x20`/cron\x20delete\x20<id>`\x20删除'),_0x5a0d16[_0x41299f(0x216)]('\x0a');}function formatCronJobInfo(_0x43ebf8){const _0x3165ee=a5_0x272c8,_0x37f0d0=_0x43ebf8['enabled']?'✅\x20启用':_0x3165ee(0x234);return['###\x20⏰\x20定时任务\x20'+_0x43ebf8['id'],'',_0x3165ee(0x235)+_0x37f0d0,_0x3165ee(0x229)+_0x43ebf8[_0x3165ee(0x212)]+'`','-\x20**描述:**\x20'+_0x43ebf8[_0x3165ee(0x21b)],_0x3165ee(0x253)+_0x43ebf8[_0x3165ee(0x25f)],_0x3165ee(0x1ee)+_0x43ebf8[_0x3165ee(0x1dc)],'-\x20**创建时间:**\x20'+_0x43ebf8['createdAt'],_0x3165ee(0x1ec)+(_0x43ebf8[_0x3165ee(0x1d2)]||'-')][_0x3165ee(0x216)]('\x0a');}class CronEngine{constructor(_0x283780){const _0x4d08f9=a5_0x272c8;this[_0x4d08f9(0x226)]=[],this[_0x4d08f9(0x1ed)]=null,this['lastCheckedTime']=-0x1,this['runningJobIds']=new Set(),this['MAX_CONCURRENT_JOBS']=0x3,this['dc']=_0x283780,this[_0x4d08f9(0x226)]=loadCronJobs(_0x283780);}[a5_0x272c8(0x256)](){const _0x1190a2=a5_0x272c8;this['startScheduler']();const _0x144d00=this[_0x1190a2(0x226)]['filter'](_0x3ae8ad=>_0x3ae8ad['enabled'])[_0x1190a2(0x1e6)];console['log']('['+(0x0,session_1['timestamp'])()+']\x20Cron引擎已启动,\x20共\x20'+this[_0x1190a2(0x226)][_0x1190a2(0x1e6)]+_0x1190a2(0x200)+_0x144d00+'\x20启用)');}[a5_0x272c8(0x1dd)](){const _0x36fc5d=a5_0x272c8;this[_0x36fc5d(0x1fa)]();}[a5_0x272c8(0x22b)](_0x57b27d){const _0x158df8=a5_0x272c8,_0x10bff5={'id':_0x158df8(0x1f4)+Date[_0x158df8(0x201)](),'conversationId':_0x57b27d['conversationId'],'cronExpression':_0x57b27d[_0x158df8(0x212)],'description':_0x57b27d[_0x158df8(0x21b)],'prompt':_0x57b27d['prompt'],'enabled':!![],'createdAt':(0x0,session_1[_0x158df8(0x23a)])(),'senderStaffId':_0x57b27d[_0x158df8(0x1fc)],'senderNick':_0x57b27d[_0x158df8(0x1dc)]};return this[_0x158df8(0x226)][_0x158df8(0x259)](_0x10bff5),this[_0x158df8(0x1f6)](),console[_0x158df8(0x224)]('['+(0x0,session_1[_0x158df8(0x23a)])()+']\x20新增定时任务:\x20'+_0x10bff5['id']+'\x20['+_0x10bff5[_0x158df8(0x212)]+']\x20'+_0x10bff5[_0x158df8(0x21b)]),_0x10bff5;}[a5_0x272c8(0x1c9)](_0x40e26e){const _0x434daa=a5_0x272c8,_0x282182=this[_0x434daa(0x226)]['findIndex'](_0x55fdfd=>_0x55fdfd['id']===_0x40e26e);if(_0x282182===-0x1)return![];const _0x1b6a67=this[_0x434daa(0x226)][_0x434daa(0x223)](_0x282182,0x1)[0x0];return this[_0x434daa(0x1f6)](),console[_0x434daa(0x224)]('['+(0x0,session_1[_0x434daa(0x23a)])()+_0x434daa(0x21c)+_0x1b6a67['id']),!![];}[a5_0x272c8(0x203)](_0x4585a8,_0xcba338){const _0x2cc30f=a5_0x272c8,_0x30361e=this[_0x2cc30f(0x226)][_0x2cc30f(0x20d)](_0xccdc65=>_0xccdc65['id']===_0x4585a8);if(!_0x30361e)return![];return _0x30361e[_0x2cc30f(0x1f3)]=_0xcba338,this['persist'](),console['log']('['+(0x0,session_1[_0x2cc30f(0x23a)])()+_0x2cc30f(0x1f5)+_0x30361e['id']+'\x20'+(_0xcba338?_0x2cc30f(0x1e3):_0x2cc30f(0x1d5))),!![];}[a5_0x272c8(0x221)](_0x3f630b){const _0x44833a=a5_0x272c8;if(_0x3f630b)return this['jobs'][_0x44833a(0x1eb)](_0x15a0b2=>_0x15a0b2[_0x44833a(0x214)]===_0x3f630b);return[...this[_0x44833a(0x226)]];}[a5_0x272c8(0x266)](_0x2eb9ae){const _0x5958ce=a5_0x272c8;return this[_0x5958ce(0x226)][_0x5958ce(0x20d)](_0x599533=>_0x599533['id']===_0x2eb9ae);}async[a5_0x272c8(0x213)](_0x3d2f9d,_0x4f448e,_0x473526,_0x295466){const _0x5f3054=a5_0x272c8;try{const _0x23f6c3=await analyzeCronWithClaude(this['dc'],_0x3d2f9d,_0x4f448e);if(!isValidCronExpression(_0x23f6c3[_0x5f3054(0x236)]))return{'error':'Claude\x20返回的cron表达式无效:\x20'+_0x23f6c3[_0x5f3054(0x236)]};const _0x3254ec=this[_0x5f3054(0x22b)]({'conversationId':_0x3d2f9d,'cronExpression':_0x23f6c3['cron'],'description':_0x23f6c3[_0x5f3054(0x20c)]||_0x4f448e[_0x5f3054(0x237)](0x0,0x32),'prompt':_0x23f6c3[_0x5f3054(0x25f)],'senderStaffId':_0x473526,'senderNick':_0x295466});return{'job':_0x3254ec};}catch(_0x3ecc10){return{'error':_0x3ecc10 instanceof Error?_0x3ecc10[_0x5f3054(0x20a)]:String(_0x3ecc10)};}}[a5_0x272c8(0x1f6)](){saveCronJobs(this['dc'],this['jobs']);}[a5_0x272c8(0x251)](){const _0x2b8c05=a5_0x272c8,_0x321b65=Date[_0x2b8c05(0x201)](),_0x1473c1=0xea60-_0x321b65%0xea60;setTimeout(()=>{const _0x1da89b=_0x2b8c05;this[_0x1da89b(0x228)](),this['timer']=setInterval(()=>this['tick'](),0xea60);},_0x1473c1);}[a5_0x272c8(0x1fa)](){const _0x429ea7=a5_0x272c8;this[_0x429ea7(0x1ed)]&&(clearInterval(this[_0x429ea7(0x1ed)]),this[_0x429ea7(0x1ed)]=null);}[a5_0x272c8(0x228)](){const _0x20e803=a5_0x272c8,_0x2bef25=Date['now'](),_0x302ef8=this[_0x20e803(0x1d0)]<0x0?_0x2bef25-_0x2bef25%0xea60:this[_0x20e803(0x1d0)]+0xea60-this[_0x20e803(0x1d0)]%0xea60,_0x1422f4=_0x2bef25-_0x2bef25%0xea60;for(let _0x14ed00=_0x302ef8;_0x14ed00<=_0x1422f4;_0x14ed00+=0xea60){const _0x345dc0=new Date(_0x14ed00);if(!this[_0x20e803(0x1ce)](_0x345dc0))break;}this[_0x20e803(0x1d0)]=_0x2bef25;}[a5_0x272c8(0x1ce)](_0xc15f37){const _0x28a3f8=a5_0x272c8;if(this['runningJobIds'][_0x28a3f8(0x1f9)]>=this[_0x28a3f8(0x1ca)])return console[_0x28a3f8(0x264)]('['+(0x0,session_1[_0x28a3f8(0x23a)])()+_0x28a3f8(0x1cc)+this[_0x28a3f8(0x1ca)]+_0x28a3f8(0x250)+_0xc15f37[_0x28a3f8(0x1e4)]()+_0x28a3f8(0x257)),![];for(const _0x5d891f of this[_0x28a3f8(0x226)]){if(!_0x5d891f[_0x28a3f8(0x1f3)])continue;if(this[_0x28a3f8(0x245)]['has'](_0x5d891f['id']))continue;if(this['runningJobIds'][_0x28a3f8(0x1f9)]>=this[_0x28a3f8(0x1ca)])break;if(!matchesCron(_0x5d891f['cronExpression'],_0xc15f37))continue;console['log']('['+(0x0,session_1[_0x28a3f8(0x23a)])()+_0x28a3f8(0x1e7)+_0x5d891f['id']+'\x20['+_0x5d891f[_0x28a3f8(0x212)]+']\x20'+_0x5d891f[_0x28a3f8(0x21b)]),this['executeJob'](_0x5d891f)[_0x28a3f8(0x1f7)](_0x4ee691=>{const _0x10935f=_0x28a3f8;console['error']('['+(0x0,session_1[_0x10935f(0x23a)])()+']\x20Cron执行失败:\x20'+_0x5d891f['id'],_0x4ee691);});}return!![];}async[a5_0x272c8(0x222)](_0x2f3df0){const _0x16a52c=a5_0x272c8;this[_0x16a52c(0x245)][_0x16a52c(0x1d6)](_0x2f3df0['id']);try{const _0x1d6537=this['dc'][_0x16a52c(0x1f0)](_0x2f3df0[_0x16a52c(0x214)]);if(!_0x1d6537){console[_0x16a52c(0x264)]('['+(0x0,session_1['timestamp'])()+']\x20Cron任务\x20'+_0x2f3df0['id']+_0x16a52c(0x22f));return;}const _0x209b56=!!(_0x1d6537[_0x16a52c(0x254)]||this['dc'][_0x16a52c(0x233)][_0x16a52c(0x260)]);if(!_0x209b56){console[_0x16a52c(0x264)]('['+(0x0,session_1[_0x16a52c(0x23a)])()+_0x16a52c(0x21d)+_0x2f3df0['id']+_0x16a52c(0x1d9));return;}const _0xd333d2=(0x0,session_1['findActiveSession'])(this['dc'],_0x2f3df0[_0x16a52c(0x214)]);if(_0xd333d2){console['log']('['+(0x0,session_1[_0x16a52c(0x23a)])()+_0x16a52c(0x21d)+_0x2f3df0['id']+'\x20的会话有活跃session,\x20降级到任务队列'),await this[_0x16a52c(0x23d)](_0x2f3df0);return;}const _0x322f87=Date[_0x16a52c(0x201)](),_0x27ae95={'conversationId':_0x2f3df0['conversationId'],'sessionWebhook':'','startTime':_0x322f87,'startTimeStr':utils_ok_1[_0x16a52c(0x1cf)]['mm'](_0x322f87)[_0x16a52c(0x1de)](_0x16a52c(0x22d)),'startStaffId':_0x2f3df0[_0x16a52c(0x1fc)],'startNickName':_0x16a52c(0x1d8)+_0x2f3df0[_0x16a52c(0x1dc)]},_0x4c8160=(0x0,session_1[_0x16a52c(0x25b)])(this['dc'],_0x27ae95);fs_1[_0x16a52c(0x23e)][_0x16a52c(0x1fb)](_0x4c8160,{'recursive':!![]}),fs_1[_0x16a52c(0x23e)][_0x16a52c(0x252)](_0x4c8160+_0x16a52c(0x1fe),JSON['stringify'](_0x27ae95,null,0x2),_0x16a52c(0x21e)),this['dc'][_0x16a52c(0x1df)]['set'](_0x2f3df0['conversationId'],{'session':_0x27ae95,'lastSenderStaffId':_0x2f3df0[_0x16a52c(0x1fc)],'isProcessing':!![],'messageQueue':[],'conversationConfig':_0x1d6537}),(0x0,session_1[_0x16a52c(0x217)])(this['dc'],_0x2f3df0['conversationId']),console[_0x16a52c(0x224)]('['+(0x0,session_1['timestamp'])()+_0x16a52c(0x21d)+_0x2f3df0['id']+'\x20开始执行:\x20'+_0x2f3df0[_0x16a52c(0x21b)]),fs_1[_0x16a52c(0x23e)]['appendFileSync'](_0x4c8160+'/session.log','['+(0x0,session_1[_0x16a52c(0x23a)])()+']\x20[SYSTEM]:\x20定时任务触发:\x20'+_0x2f3df0['description']+'\x0a',_0x16a52c(0x21e));try{await(0x0,claude_process_1['executeClaudeQuery'])(this['dc'],_0x27ae95,_0x2f3df0[_0x16a52c(0x25f)],{'skill':_0x1d6537['taskCfg']?.[_0x16a52c(0x263)],'agent':_0x1d6537['agent'],'senderNick':_0x2f3df0[_0x16a52c(0x1dc)],'senderStaffId':_0x2f3df0[_0x16a52c(0x1fc)]});}catch(_0x38bd05){console[_0x16a52c(0x21f)]('['+(0x0,session_1[_0x16a52c(0x23a)])()+']\x20Cron执行Claude查询失败:\x20'+_0x2f3df0['id'],_0x38bd05),await(0x0,messaging_1[_0x16a52c(0x1d3)])(this['dc'],{'conversationId':_0x2f3df0['conversationId'],'sessionWebhook':'','atUserId':_0x2f3df0[_0x16a52c(0x1fc)],'content':_0x16a52c(0x24f)+(_0x38bd05 instanceof Error?_0x38bd05[_0x16a52c(0x20a)]:String(_0x38bd05))});}finally{this['dc'][_0x16a52c(0x1df)][_0x16a52c(0x261)](_0x2f3df0[_0x16a52c(0x214)]),(0x0,session_1[_0x16a52c(0x217)])(this['dc'],_0x2f3df0[_0x16a52c(0x214)]);}_0x2f3df0['lastRunAt']=(0x0,session_1[_0x16a52c(0x23a)])(),this['persist']();}finally{this[_0x16a52c(0x245)][_0x16a52c(0x261)](_0x2f3df0['id']);}}async[a5_0x272c8(0x23d)](_0x9342b0){const _0x1f5a7d=a5_0x272c8;try{await(0x0,task_1[_0x1f5a7d(0x25e)])(this['dc'],{'conversationId':_0x9342b0['conversationId'],'prompt':_0x9342b0[_0x1f5a7d(0x25f)],'senderStaffId':_0x9342b0[_0x1f5a7d(0x1fc)],'senderNickName':_0x1f5a7d(0x1d8)+_0x9342b0[_0x1f5a7d(0x1dc)],'sessionWebhook':'','type':_0x1f5a7d(0x236)}),console[_0x1f5a7d(0x224)]('['+(0x0,session_1[_0x1f5a7d(0x23a)])()+']\x20Cron任务\x20'+_0x9342b0['id']+_0x1f5a7d(0x1d4)+_0x9342b0['description']);}catch(_0x1eb0cd){console[_0x1f5a7d(0x21f)]('['+(0x0,session_1[_0x1f5a7d(0x23a)])()+_0x1f5a7d(0x21d)+_0x9342b0['id']+_0x1f5a7d(0x227),_0x1eb0cd);}_0x9342b0[_0x1f5a7d(0x1d2)]=(0x0,session_1[_0x1f5a7d(0x23a)])(),this[_0x1f5a7d(0x1f6)]();}}exports['CronEngine']=CronEngine;
|
package/dist/src/biz/doctor.js
CHANGED
|
@@ -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';const a6_0x573932=a6_0x5bbe;(function(_0x248b6c,_0x1f1fa6){const _0x5f4086=a6_0x5bbe,_0x6ca87d=_0x248b6c();while(!![]){try{const _0x6b82f7=-parseInt(_0x5f4086(0x19a))/0x1+-parseInt(_0x5f4086(0x199))/0x2*(parseInt(_0x5f4086(0x1bd))/0x3)+parseInt(_0x5f4086(0x1bf))/0x4+-parseInt(_0x5f4086(0x1f6))/0x5+-parseInt(_0x5f4086(0x1ff))/0x6*(parseInt(_0x5f4086(0x1af))/0x7)+parseInt(_0x5f4086(0x1ec))/0x8*(-parseInt(_0x5f4086(0x1b4))/0x9)+parseInt(_0x5f4086(0x1d1))/0xa*(parseInt(_0x5f4086(0x20b))/0xb);if(_0x6b82f7===_0x1f1fa6)break;else _0x6ca87d['push'](_0x6ca87d['shift']());}catch(_0x2b487c){_0x6ca87d['push'](_0x6ca87d['shift']());}}}(a6_0x4eb3,0x8ef9b));function a6_0x5bbe(_0x431516,_0x273f1b){_0x431516=_0x431516-0x197;const _0x4eb329=a6_0x4eb3();let _0x5bbe30=_0x4eb329[_0x431516];return _0x5bbe30;}var __importDefault=this&&this[a6_0x573932(0x1d4)]||function(_0x343204){const _0x5baf20=a6_0x573932;return _0x343204&&_0x343204[_0x5baf20(0x1cc)]?_0x343204:{'default':_0x343204};};Object[a6_0x573932(0x211)](exports,a6_0x573932(0x1cc),{'value':!![]}),exports[a6_0x573932(0x1e4)]=printDoctorResults,exports['runDoctor']=runDoctor;const session_1=require(a6_0x573932(0x1f3)),api_key_manager_1=require(a6_0x573932(0x1a7)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require(a6_0x573932(0x1eb))),child_process_1=require(a6_0x573932(0x1b6));function a6_0x4eb3(){const _0x2d7f4c=['\x20应为数组','linkConversationId','claude\x20命令可用','boolean','./session','settingLabel','log','4627675wuAkcc','pipe','version','客户端目录可写','锁文件存在但进程\x20','trim','utf-8','cron.json[','\x20已退出(过期锁文件)','156KnKsMs','PID\x20锁文件读取异常:\x20','settings-tpl.json\x20缺少\x20env\x20字段','model','settings-tpl.json\x20有效,env\x20包含:\x20','config.json\x20解析失败:\x20','\x22\x20未在\x20conversations\x20中找到','cron.json\x20共\x20','进程运行中\x20(PID:\x20','apiKey','isValid','Node\x20版本过低:','48499DXeVtP','settings-tpl.json\x20根元素不是对象','clientSecret','\x20dingToken\x20仍为占位符','config.json','\x20\x20合计:\x20','defineProperty',',要求\x20Node\x20>=\x2024','has','apiKeyCfg\x20未配置,无法使用\x20API\x20Key\x20池化轮换','writeFileSync','\x20conversationId\x20重复:\x20','filter','apiKeyCfg.claudeSettings\x20为空,无备用\x20Key','parse','26bRspVF','700150gYfKlz','PASS','客户端目录不可写:\x20',']\x20缺少\x20cronExpression','default','\x20apiKey\x20重复:\x20','push','existsSync','string','apiKeyCfg','\x20警告,\x20','add','.cc-ding','./api-key-manager','\x20\x20❌\x20存在致命问题,请修复后重新运行','\x20conversationId\x20仍为占位符:\x20','length','(空)','owner','whiteUserList','\x20isValid\x20类型异常:\x20','30926PYpWyP','conversationId','\x20\x20✅\x20所有检查通过','isArray','无运行中的进程','1394217UoczOM','\x20项,有效\x20','child_process','conversations','cronExpression','\x20linkConversationId\x20\x22','\x20缺少\x20apiKey','\x20仍为占位符:\x20','.pid.lock','248142dVoxIW','dingToken','980864gsjQSa','conversations\x20为空数组,可通过\x20/reg\x20命令动态注册','baseUrl','------------------------------------','test',']\x20缺少\x20id','claude\x20命令不可用,请确认\x20Claude\x20Code\x20CLI\x20已安装','which\x20claude','客户端目录存在:\x20','\x20通过,\x20','exit','settings-tpl.json\x20不存在,创建\x20settings-ding.json\x20时将使用空模板','defaultDingToken','__esModule','resetTime','conversations\x20共\x20','\x20为空数组','jobs','7510ZZFdPc','message','cron.json\x20格式异常,无法解析为任务数组','__importDefault',']\x20conversationId\x20\x22','conversations\x20应为数组','claudeSettings','WARN','owner:\x20','apiKeyCfg.claudeSettings\x20共\x20','getHomeDir','config.json\x20解析成功','join','env','object','缺少必填字段:\x20','keys','FATAL','\x20个定时任务\x20(','printDoctorResults','readFileSync','some','apiKeyCfg.claudeSettings\x20不是数组','settings-tpl.json\x20解析失败:\x20','owner\x20未配置,管理命令(/clean,\x20/open,\x20/reset-apikeycfg,\x20/reg,\x20/auth)不可用','level','path','8NiQzJv','\x20个群配置','unlinkSync'];a6_0x4eb3=function(){return _0x2d7f4c;};return a6_0x4eb3();}function printDoctorResults(_0x137ed2){const _0x333260=a6_0x573932;console['log'](''),console[_0x333260(0x1f5)]('==========\x20cc-ding\x20doctor\x20==========');const _0xfb2b41=_0x137ed2[_0x333260(0x1e6)](_0xff1cc2=>_0xff1cc2[_0x333260(0x1ea)]===_0x333260(0x1e2));for(const _0x381f63 of _0x137ed2){const _0x14edcc=_0x381f63['level']===_0x333260(0x19b)?'✓':_0x381f63[_0x333260(0x1ea)]===_0x333260(0x1e2)?'✗':'⚠',_0x4bac44=_0x381f63[_0x333260(0x1ea)]==='PASS'?'':'['+_0x381f63[_0x333260(0x1ea)]+']\x20';console[_0x333260(0x1f5)]('\x20\x20'+_0x14edcc+'\x20'+_0x4bac44+_0x381f63[_0x333260(0x1d2)]);}const _0x4ebfe4=_0x137ed2[_0x333260(0x217)](_0x4012dc=>_0x4012dc['level']===_0x333260(0x19b))['length'],_0x4a9d37=_0x137ed2[_0x333260(0x217)](_0x4a40d7=>_0x4a40d7['level']===_0x333260(0x1d8))['length'],_0x1036f1=_0x137ed2[_0x333260(0x217)](_0x5280f5=>_0x5280f5[_0x333260(0x1ea)]===_0x333260(0x1e2))[_0x333260(0x1aa)];console['log'](_0x333260(0x1c2)),console[_0x333260(0x1f5)](_0x333260(0x210)+_0x4ebfe4+_0x333260(0x1c8)+_0x4a9d37+_0x333260(0x1a4)+_0x1036f1+'\x20致命');_0xfb2b41?console[_0x333260(0x1f5)](_0x333260(0x1a8)):console[_0x333260(0x1f5)](_0x333260(0x1b1));console['log']('====================================\x0a');if(_0xfb2b41)process[_0x333260(0x1c9)](0x1);}function runDoctor(_0x57fad7){const _0x385f0e=a6_0x573932,_0x41749c=[],_0x5094c5=process[_0x385f0e(0x1f8)]['slice'](0x1),_0x129744=parseInt(_0x5094c5['split']('.')[0x0],0xa);_0x129744<0x18?_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1e2),_0x385f0e(0x20a)+_0x5094c5+_0x385f0e(0x212))):_0x41749c['push'](check(_0x385f0e(0x19b),'Node\x20版本:'+_0x5094c5));if(!fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1a1)](_0x57fad7))return _0x41749c['push'](check('FATAL','客户端目录不存在:\x20'+_0x57fad7)),_0x41749c;_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x1c7)+_0x57fad7));const _0x1f8b74=path_1[_0x385f0e(0x19e)]['join'](_0x57fad7,_0x385f0e(0x1bc));if(fs_1[_0x385f0e(0x19e)]['existsSync'](_0x1f8b74))try{const _0x8074c1=parseInt(fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1e5)](_0x1f8b74,_0x385f0e(0x1fc))[_0x385f0e(0x1fb)](),0xa);if(!isNaN(_0x8074c1))try{process['kill'](_0x8074c1,0x0),_0x41749c['push'](check(_0x385f0e(0x19b),_0x385f0e(0x207)+_0x8074c1+')'));}catch{_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x1fa)+_0x8074c1+_0x385f0e(0x1fe)));}}catch{_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x200)+_0x1f8b74));}else _0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x1b3)));const _0xb1a6c0=path_1[_0x385f0e(0x19e)][_0x385f0e(0x1dd)](_0x57fad7,_0x385f0e(0x20f));if(!fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1a1)](_0xb1a6c0))return _0x41749c[_0x385f0e(0x1a0)](check('FATAL','config.json\x20不存在')),_0x41749c;let _0x146ed0;try{_0x146ed0=JSON[_0x385f0e(0x198)](fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1e5)](_0xb1a6c0,_0x385f0e(0x1fc)));}catch(_0x536c91){return _0x41749c[_0x385f0e(0x1a0)](check('FATAL',_0x385f0e(0x204)+(_0x536c91 instanceof Error?_0x536c91['message']:_0x536c91))),_0x41749c;}_0x41749c[_0x385f0e(0x1a0)](check('PASS',_0x385f0e(0x1dc)));const _0x9a2b34=[{'key':_0x385f0e(0x20d),'label':_0x385f0e(0x20d)},{'key':'defaultDingToken','label':_0x385f0e(0x1cb)},{'key':'whiteUserList','label':_0x385f0e(0x1ad),'isArr':!![]},{'key':'owner','label':'owner'}];for(const {key:_0x3063ab,label:_0x28fa87,isArr:_0x1df2ff}of _0x9a2b34){const _0x278104=_0x146ed0[_0x3063ab];if(_0x278104===undefined||_0x278104===null||_0x278104==='')_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1e2),_0x385f0e(0x1e0)+_0x28fa87));else{if(_0x1df2ff&&!Array[_0x385f0e(0x1b2)](_0x278104))_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1e2),_0x28fa87+_0x385f0e(0x1ef)));else{if(_0x3063ab!==_0x385f0e(0x1b7)&&_0x1df2ff&&_0x278104[_0x385f0e(0x1aa)]===0x0)_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x28fa87+_0x385f0e(0x1cf)));else!_0x1df2ff&&typeof _0x278104===_0x385f0e(0x1a2)&&_0x278104['startsWith']('<')?_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1e2),_0x28fa87+_0x385f0e(0x1bb)+_0x278104)):_0x41749c['push'](check(_0x385f0e(0x19b),_0x28fa87+'\x20✓'));}}}_0x146ed0[_0x385f0e(0x1ac)]?_0x41749c[_0x385f0e(0x1a0)](check('PASS',_0x385f0e(0x1d9)+_0x146ed0[_0x385f0e(0x1ac)])):_0x41749c['push'](check('FATAL',_0x385f0e(0x1e9)));const _0xab60ad=[_0x385f0e(0x20d),_0x385f0e(0x1cb)];for(const _0x41e581 of _0xab60ad){const _0x380cb3=_0x146ed0[_0x41e581];typeof _0x380cb3===_0x385f0e(0x1a2)&&/^<.*>$/[_0x385f0e(0x1c3)](_0x380cb3[_0x385f0e(0x1fb)]())&&_0x41749c['push'](check('FATAL',_0x41e581+'\x20仍为占位符:\x20'+_0x380cb3));}const _0x23ddbd=new Set();if(!Array['isArray'](_0x146ed0[_0x385f0e(0x1b7)]))_0x41749c['push'](check('FATAL',_0x385f0e(0x1d6)));else{if(_0x146ed0[_0x385f0e(0x1b7)][_0x385f0e(0x1aa)]===0x0)_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x1c0)));else{for(let _0x35646e=0x0;_0x35646e<_0x146ed0['conversations']['length'];_0x35646e++){const _0x4dc9e5=_0x146ed0[_0x385f0e(0x1b7)][_0x35646e],_0x5ad144='conversations['+_0x35646e+']';if(!_0x4dc9e5[_0x385f0e(0x1b0)])_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1e2),_0x5ad144+'\x20缺少\x20conversationId'));else{if(typeof _0x4dc9e5[_0x385f0e(0x1b0)]===_0x385f0e(0x1a2)&&/^<.*>$/[_0x385f0e(0x1c3)](_0x4dc9e5[_0x385f0e(0x1b0)][_0x385f0e(0x1fb)]()))_0x41749c['push'](check(_0x385f0e(0x1e2),_0x5ad144+_0x385f0e(0x1a9)+_0x4dc9e5['conversationId']));else _0x23ddbd[_0x385f0e(0x213)](_0x4dc9e5[_0x385f0e(0x1b0)])?_0x41749c[_0x385f0e(0x1a0)](check('WARN',_0x5ad144+_0x385f0e(0x216)+_0x4dc9e5[_0x385f0e(0x1b0)])):_0x23ddbd[_0x385f0e(0x1a5)](_0x4dc9e5[_0x385f0e(0x1b0)]);}_0x4dc9e5[_0x385f0e(0x1f0)]&&!_0x146ed0[_0x385f0e(0x1b7)]['some'](_0x189ae5=>_0x189ae5[_0x385f0e(0x1b0)]===_0x4dc9e5[_0x385f0e(0x1f0)])&&_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x5ad144+_0x385f0e(0x1b9)+_0x4dc9e5[_0x385f0e(0x1f0)]+_0x385f0e(0x205))),_0x4dc9e5[_0x385f0e(0x1be)]&&typeof _0x4dc9e5[_0x385f0e(0x1be)]===_0x385f0e(0x1a2)&&/^<.*>$/[_0x385f0e(0x1c3)](_0x4dc9e5['dingToken'][_0x385f0e(0x1fb)]())&&_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x5ad144+_0x385f0e(0x20e)));}_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x1ce)+_0x146ed0[_0x385f0e(0x1b7)]['length']+_0x385f0e(0x1ed)));}}if(_0x146ed0[_0x385f0e(0x1a3)]){const _0x5929c5=_0x146ed0[_0x385f0e(0x1a3)];_0x5929c5['resetTime']&&_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),'apiKeyCfg.resetTime:\x20'+_0x5929c5[_0x385f0e(0x1cd)]));if(!Array['isArray'](_0x5929c5[_0x385f0e(0x1d7)]))_0x41749c[_0x385f0e(0x1a0)](check('WARN',_0x385f0e(0x1e7)));else{if(_0x5929c5[_0x385f0e(0x1d7)][_0x385f0e(0x1aa)]===0x0)_0x41749c[_0x385f0e(0x1a0)](check('WARN',_0x385f0e(0x197)));else{const _0x2c1743=new Set();for(let _0x5f53df=0x0;_0x5f53df<_0x5929c5['claudeSettings'][_0x385f0e(0x1aa)];_0x5f53df++){const _0x267ad8=_0x5929c5[_0x385f0e(0x1d7)][_0x5f53df],_0x419018='apiKeyCfg.claudeSettings['+_0x5f53df+']';if(!_0x267ad8['apiKey'])_0x41749c['push'](check(_0x385f0e(0x1e2),_0x419018+_0x385f0e(0x1ba)));else _0x2c1743[_0x385f0e(0x213)](_0x267ad8['apiKey'])?_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x419018+_0x385f0e(0x19f)+(0x0,api_key_manager_1[_0x385f0e(0x1f4)])(_0x267ad8))):_0x2c1743['add'](_0x267ad8[_0x385f0e(0x208)]);if(!_0x267ad8[_0x385f0e(0x1c1)])_0x41749c['push'](check(_0x385f0e(0x1d8),_0x419018+'\x20缺少\x20baseUrl'));if(!_0x267ad8[_0x385f0e(0x202)])_0x41749c['push'](check(_0x385f0e(0x1d8),_0x419018+'\x20缺少\x20model'));if(typeof _0x267ad8[_0x385f0e(0x209)]!==_0x385f0e(0x1f2))_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x419018+_0x385f0e(0x1ae)+typeof _0x267ad8[_0x385f0e(0x209)]));}const _0x3d77cf=_0x5929c5[_0x385f0e(0x1d7)][_0x385f0e(0x217)](_0x20a4c3=>_0x20a4c3[_0x385f0e(0x209)])[_0x385f0e(0x1aa)];_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x1da)+_0x5929c5[_0x385f0e(0x1d7)][_0x385f0e(0x1aa)]+_0x385f0e(0x1b5)+_0x3d77cf));}}}else _0x41749c['push'](check('WARN',_0x385f0e(0x214)));const _0x592166=path_1[_0x385f0e(0x19e)][_0x385f0e(0x1dd)](_0x57fad7,'cron.json');if(fs_1[_0x385f0e(0x19e)]['existsSync'](_0x592166))try{const _0x53019d=JSON['parse'](fs_1['default'][_0x385f0e(0x1e5)](_0x592166,'utf-8')),_0x19e91a=Array['isArray'](_0x53019d)?_0x53019d:_0x53019d[_0x385f0e(0x1d0)];if(Array['isArray'](_0x19e91a)){const _0x31e8d6=_0x19e91a['filter'](_0x5df3b4=>_0x5df3b4['enabled']!==![])[_0x385f0e(0x1aa)];_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x206)+_0x19e91a[_0x385f0e(0x1aa)]+_0x385f0e(0x1e3)+_0x31e8d6+'\x20启用)'));for(let _0x59e3eb=0x0;_0x59e3eb<_0x19e91a[_0x385f0e(0x1aa)];_0x59e3eb++){const _0x4ec75e=_0x19e91a[_0x59e3eb];if(!_0x4ec75e['id'])_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x1fd)+_0x59e3eb+_0x385f0e(0x1c4)));if(!_0x4ec75e[_0x385f0e(0x1b8)])_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x1fd)+_0x59e3eb+_0x385f0e(0x19d)));if(!_0x4ec75e['prompt'])_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x1fd)+_0x59e3eb+']\x20缺少\x20prompt'));if(!_0x4ec75e[_0x385f0e(0x1b0)])_0x41749c['push'](check(_0x385f0e(0x1d8),_0x385f0e(0x1fd)+_0x59e3eb+']\x20缺少\x20conversationId'));else!_0x23ddbd[_0x385f0e(0x213)](_0x4ec75e['conversationId'])&&_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x1fd)+_0x59e3eb+_0x385f0e(0x1d5)+_0x4ec75e[_0x385f0e(0x1b0)]+'\x22\x20未在\x20config.json\x20conversations\x20中找到'));}}else _0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x1d3)));}catch(_0x2f7a41){_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),'cron.json\x20解析失败:\x20'+(_0x2f7a41 instanceof Error?_0x2f7a41[_0x385f0e(0x1d2)]:_0x2f7a41)));}else _0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),'cron.json\x20不存在\x20(无定时任务)'));const _0x54b1e7=path_1[_0x385f0e(0x19e)][_0x385f0e(0x1dd)]((0x0,session_1[_0x385f0e(0x1db)])(),_0x385f0e(0x1a6),'settings-tpl.json');if(fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1a1)](_0x54b1e7))try{const _0x5ed2ba=JSON[_0x385f0e(0x198)](fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1e5)](_0x54b1e7,'utf-8'));if(typeof _0x5ed2ba!=='object'||_0x5ed2ba===null)_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x20c)));else{if(!_0x5ed2ba['env']||typeof _0x5ed2ba[_0x385f0e(0x1de)]!==_0x385f0e(0x1df))_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1d8),_0x385f0e(0x201)));else{const _0x54961a=Object[_0x385f0e(0x1e1)](_0x5ed2ba[_0x385f0e(0x1de)]);_0x41749c[_0x385f0e(0x1a0)](check('PASS',_0x385f0e(0x203)+(_0x54961a[_0x385f0e(0x1dd)](',\x20')||_0x385f0e(0x1ab))));}}}catch(_0xde0a6){_0x41749c['push'](check('WARN',_0x385f0e(0x1e8)+(_0xde0a6 instanceof Error?_0xde0a6[_0x385f0e(0x1d2)]:_0xde0a6)));}else _0x41749c[_0x385f0e(0x1a0)](check('WARN',_0x385f0e(0x1ca)));try{(0x0,child_process_1['execSync'])(_0x385f0e(0x1c6),{'stdio':_0x385f0e(0x1f7)}),_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x19b),_0x385f0e(0x1f1)));}catch{_0x41749c[_0x385f0e(0x1a0)](check(_0x385f0e(0x1e2),_0x385f0e(0x1c5)));}try{const _0x1a271b=path_1[_0x385f0e(0x19e)]['join'](_0x57fad7,'.doctor-check');fs_1[_0x385f0e(0x19e)][_0x385f0e(0x215)](_0x1a271b,'ok','utf-8'),fs_1[_0x385f0e(0x19e)][_0x385f0e(0x1ee)](_0x1a271b),_0x41749c['push'](check(_0x385f0e(0x19b),_0x385f0e(0x1f9)));}catch(_0xcd46ee){_0x41749c['push'](check(_0x385f0e(0x1e2),_0x385f0e(0x19c)+(_0xcd46ee instanceof Error?_0xcd46ee[_0x385f0e(0x1d2)]:_0xcd46ee)));}return _0x41749c;}function check(_0x3c2645,_0x3463b2){return{'level':_0x3c2645,'message':_0x3463b2};}
|
package/dist/src/biz/image.js
CHANGED
|
@@ -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_0x3b64ea=a7_0x1b0b;function a7_0x2312(){const _0x54bb71=['__esModule','child_process','urllib','9549045jpbFzb','../common','picture','getResourcePath','webp','log','get',']\x20图片保存失败:\x20','processRichTextMessage',')不支持本地OCR,使用模型识别','image/jpeg','substring','message','join','image/png','\x0a---\x0a','test',']\x20当前平台(','execFile','writeFileSync','then','[富文本消息内容为空]','[图片\x20','projUtil','stringify','push','warn','filePath','\x20OCR]','46iNPiRZ','default',']\x20OCR\x20二进制不存在:\x20',']\x20downloadImageBuffer\x20下载失败:','parse','length','...','runOcr','image/webp','12297000BOsUWz',']\x20downloadImageBuffer\x20下载失败:\x20status=',']\x20OCR\x20无识别结果',']\x20downloadImageBuffer\x20下载结果为空','9934498CuiTDX','ocr-x64',']\x20getImageDownloadUrl\x20请求失败:','getAccessToken','application/json','map','\x20bytes)',']\x20OCR\x20stderr:\x20','187389sFaHcL','data','request','61379Sfuoid','userId','mention','x64','dingStreamClient',',\x20data=','every','timestamp','debugLog',']\x20OCR\x20识别结果:\x20','\x20超过限制\x20','platform','[图片\x20OCR]','4fneyJW','arch','getImageDownloadUrl\x20响应无\x20downloadUrl:\x20','buffer','status','type','6HPxBuh','defineProperty','10KvbBmT',']\x20OCR\x20执行失败:\x20','gif','slice','win32','20998989UmtQap','jpg','word','trim','existsSync','arm64','text',']\x20图片已保存:\x20','downloadUrl','filter','processPictureMessage','downloadCode','以下图片\x20OCR\x20识别结果来自对用户消息中图片的预处理(非用户原始输入),如识别不准确可直接查看原图路径','POST','1378865TkIDqt','getImageDownloadUrl\x20API\x20返回非200:\x20status=','pictureDownloadCode','__importDefault','all'];a7_0x2312=function(){return _0x54bb71;};return a7_0x2312();}(function(_0x38191e,_0x1ea55a){const _0x136f04=a7_0x1b0b,_0x40c082=_0x38191e();while(!![]){try{const _0x36ac79=parseInt(_0x136f04(0x11a))/0x1*(parseInt(_0x136f04(0x102))/0x2)+parseInt(_0x136f04(0x117))/0x3+parseInt(_0x136f04(0x127))/0x4*(parseInt(_0x136f04(0x142))/0x5)+parseInt(_0x136f04(0x12d))/0x6*(parseInt(_0x136f04(0x10f))/0x7)+-parseInt(_0x136f04(0x10b))/0x8+-parseInt(_0x136f04(0x14a))/0x9*(-parseInt(_0x136f04(0x12f))/0xa)+-parseInt(_0x136f04(0x134))/0xb;if(_0x36ac79===_0x1ea55a)break;else _0x40c082['push'](_0x40c082['shift']());}catch(_0x4646b0){_0x40c082['push'](_0x40c082['shift']());}}}(a7_0x2312,0xbf6b0));var __importDefault=this&&this[a7_0x3b64ea(0x145)]||function(_0x341b3e){const _0x3b2b82=a7_0x3b64ea;return _0x341b3e&&_0x341b3e[_0x3b2b82(0x147)]?_0x341b3e:{'default':_0x341b3e};};Object[a7_0x3b64ea(0x12e)](exports,a7_0x3b64ea(0x147),{'value':!![]}),exports[a7_0x3b64ea(0x109)]=runOcr,exports[a7_0x3b64ea(0x13e)]=processPictureMessage,exports[a7_0x3b64ea(0xed)]=processRichTextMessage;const child_process_1=require(a7_0x3b64ea(0x148)),fs_1=__importDefault(require('fs')),path_1=__importDefault(require('path')),urllib_1=__importDefault(require(a7_0x3b64ea(0x149))),session_1=require('./session'),common_1=require(a7_0x3b64ea(0xe6)),MAX_IMAGE_SIZE=0xa*0x400*0x400,DING_API_BASE='https://api.dingtalk.com',OCR_PREAMBLE=a7_0x3b64ea(0x140),OCR_BIN_DIR=(0x0,common_1[a7_0x3b64ea(0xfc)])()[a7_0x3b64ea(0xe8)](),cachedOcrBinPath=((()=>{const _0x5818ff=a7_0x3b64ea;if(process[_0x5818ff(0x125)]===_0x5818ff(0x133))return null;const _0x3acd81=process[_0x5818ff(0x128)];if(_0x3acd81===_0x5818ff(0x139))return path_1[_0x5818ff(0x103)]['join'](OCR_BIN_DIR,'ocr-arm64');if(_0x3acd81===_0x5818ff(0x11d))return path_1[_0x5818ff(0x103)][_0x5818ff(0xf2)](OCR_BIN_DIR,_0x5818ff(0x110));return null;})());let ocrBinExists=null;async function runOcr(_0x5b2c01){const _0x5af98c=a7_0x3b64ea;if(!cachedOcrBinPath)return console[_0x5af98c(0xea)]('['+(0x0,session_1[_0x5af98c(0x121)])()+_0x5af98c(0xf6)+process[_0x5af98c(0x125)]+'/'+process[_0x5af98c(0x128)]+_0x5af98c(0xee)),null;ocrBinExists===null&&(ocrBinExists=fs_1[_0x5af98c(0x103)][_0x5af98c(0x138)](cachedOcrBinPath),!ocrBinExists&&console['warn']('['+(0x0,session_1[_0x5af98c(0x121)])()+_0x5af98c(0x104)+cachedOcrBinPath));if(!ocrBinExists)return null;return new Promise(_0x280462=>{const _0x4bb524=_0x5af98c;(0x0,child_process_1[_0x4bb524(0xf7)])(cachedOcrBinPath,[_0x5b2c01],{'timeout':0x7530,'maxBuffer':0x5*0x400*0x400},(_0x51bf1c,_0x531359,_0x26c30e)=>{const _0x46b03a=_0x4bb524;if(_0x51bf1c){console['warn']('['+(0x0,session_1[_0x46b03a(0x121)])()+_0x46b03a(0x130)+_0x51bf1c[_0x46b03a(0xf1)]);if(_0x26c30e)console['warn']('['+(0x0,session_1[_0x46b03a(0x121)])()+_0x46b03a(0x116)+_0x26c30e[_0x46b03a(0xf0)](0x0,0xc8));_0x280462(null);return;}try{const _0x1a627c=JSON[_0x46b03a(0x106)](_0x531359);if(!Array['isArray'](_0x1a627c)||_0x1a627c[_0x46b03a(0x107)]===0x0){console[_0x46b03a(0xea)]('['+(0x0,session_1['timestamp'])()+_0x46b03a(0x10d)),_0x280462(null);return;}const _0x4c0b28=_0x1a627c[_0x46b03a(0x114)](_0x1224bc=>_0x1224bc[_0x46b03a(0x136)])[_0x46b03a(0x13d)](Boolean)[_0x46b03a(0xf2)]('\x20');console[_0x46b03a(0xea)]('['+(0x0,session_1[_0x46b03a(0x121)])()+_0x46b03a(0x123)+_0x4c0b28['substring'](0x0,0xc8)+(_0x4c0b28[_0x46b03a(0x107)]>0xc8?_0x46b03a(0x108):'')),_0x280462(_0x4c0b28||null);}catch{console['warn']('['+(0x0,session_1[_0x46b03a(0x121)])()+']\x20OCR\x20输出解析失败:\x20'+_0x531359[_0x46b03a(0xf0)](0x0,0xc8)),_0x280462(null);}});});}function a7_0x1b0b(_0x386db7,_0x487597){_0x386db7=_0x386db7-0xe6;const _0x23120d=a7_0x2312();let _0x1b0b69=_0x23120d[_0x386db7];return _0x1b0b69;}const MAGIC_NUMBERS=[{'bytes':[0x89,0x50,0x4e,0x47],'mediaType':a7_0x3b64ea(0xf3),'ext':'png'},{'bytes':[0xff,0xd8,0xff],'mediaType':a7_0x3b64ea(0xef),'ext':a7_0x3b64ea(0x135)},{'bytes':[0x47,0x49,0x46],'mediaType':'image/gif','ext':a7_0x3b64ea(0x131)},{'bytes':[0x52,0x49,0x46,0x46],'mediaType':a7_0x3b64ea(0x10a),'ext':a7_0x3b64ea(0xe9)}];function detectImageMediaType(_0x3950c0){const _0x8a0d6d=a7_0x3b64ea;for(const {bytes:_0x469a3e,mediaType:_0x541a78,ext:_0x17ab9b}of MAGIC_NUMBERS){if(_0x3950c0[_0x8a0d6d(0x107)]>=_0x469a3e['length']&&_0x469a3e[_0x8a0d6d(0x120)]((_0x3aa5fa,_0x503f0d)=>_0x3950c0[_0x503f0d]===_0x3aa5fa))return{'mediaType':_0x541a78,'ext':_0x17ab9b};}return{'mediaType':_0x8a0d6d(0xef),'ext':_0x8a0d6d(0x135)};}async function getImageDownloadUrl(_0x229166,_0x3d14c9,_0x37107f){const _0x2196d8=a7_0x3b64ea;try{const _0x1d115a=await _0x229166[_0x2196d8(0x11e)][_0x2196d8(0x112)](),_0x5047b4=DING_API_BASE+'/v1.0/robot/messageFiles/download',_0x16fa06=await urllib_1['default'][_0x2196d8(0x119)](_0x5047b4,{'method':_0x2196d8(0x141),'headers':{'x-acs-dingtalk-access-token':_0x1d115a,'Content-Type':_0x2196d8(0x113)},'data':{'downloadCode':_0x3d14c9,'robotCode':_0x37107f},'dataType':'json','timeout':0x2710});if(_0x16fa06[_0x2196d8(0x12b)]!==0xc8||!_0x16fa06['data'])return _0x229166['debugLog'](_0x2196d8(0x143)+_0x16fa06['status']+_0x2196d8(0x11f)+JSON[_0x2196d8(0xfd)](_0x16fa06[_0x2196d8(0x118)])),null;const _0x49c640=_0x16fa06['data'],_0x127623=_0x49c640?.[_0x2196d8(0x13c)];if(!_0x127623)return _0x229166[_0x2196d8(0x122)](_0x2196d8(0x129)+JSON[_0x2196d8(0xfd)](_0x49c640)),null;return _0x127623;}catch(_0x44cfb9){return console[_0x2196d8(0xff)]('['+(0x0,session_1[_0x2196d8(0x121)])()+_0x2196d8(0x111),_0x44cfb9),null;}}async function downloadImageBuffer(_0x2df87e){const _0x5b5be4=a7_0x3b64ea;try{const _0x20bee5=await urllib_1[_0x5b5be4(0x103)]['request'](_0x2df87e,{'method':'GET','dataType':_0x5b5be4(0x12a),'timeout':0x7530});if(_0x20bee5[_0x5b5be4(0x12b)]!==0xc8)return console[_0x5b5be4(0xff)]('['+(0x0,session_1[_0x5b5be4(0x121)])()+_0x5b5be4(0x10c)+_0x20bee5[_0x5b5be4(0x12b)]),null;const _0x1c3795=_0x20bee5['data'];if(!_0x1c3795||_0x1c3795[_0x5b5be4(0x107)]===0x0)return console[_0x5b5be4(0xff)]('['+(0x0,session_1[_0x5b5be4(0x121)])()+_0x5b5be4(0x10e)),null;if(_0x1c3795['length']>MAX_IMAGE_SIZE)return console[_0x5b5be4(0xff)]('['+(0x0,session_1[_0x5b5be4(0x121)])()+']\x20图片大小\x20'+_0x1c3795[_0x5b5be4(0x107)]+_0x5b5be4(0x124)+MAX_IMAGE_SIZE),null;return _0x1c3795;}catch(_0x52af99){return console[_0x5b5be4(0xff)]('['+(0x0,session_1[_0x5b5be4(0x121)])()+_0x5b5be4(0x105),_0x52af99),null;}}async function downloadAndProcessImage(_0xff216,_0x58e990,_0x1df7fa,_0x5b0fb5){const _0x43cc02=a7_0x3b64ea,_0x35167a=await getImageDownloadUrl(_0xff216,_0x58e990,_0x1df7fa);if(!_0x35167a)return null;const _0x2b56a5=await downloadImageBuffer(_0x35167a);if(!_0x2b56a5)return null;const {mediaType:_0x506a27,ext:_0x45a342}=detectImageMediaType(_0x2b56a5),_0x5d63f7=path_1[_0x43cc02(0x103)][_0x43cc02(0xf2)](_0x5b0fb5,'.images'),_0x4669d3=_0x58e990[_0x43cc02(0x132)](-0x8),_0x1985dd=Date['now']()+'-'+_0x4669d3+'.'+_0x45a342,_0x38d840=path_1[_0x43cc02(0x103)][_0x43cc02(0xf2)](_0x5d63f7,_0x1985dd);try{fs_1[_0x43cc02(0x103)]['mkdirSync'](_0x5d63f7,{'recursive':!![]}),fs_1[_0x43cc02(0x103)][_0x43cc02(0xf8)](_0x38d840,_0x2b56a5);}catch(_0x22a417){return console[_0x43cc02(0xff)]('['+(0x0,session_1[_0x43cc02(0x121)])()+_0x43cc02(0xec)+_0x38d840,_0x22a417),null;}return console['log']('['+(0x0,session_1[_0x43cc02(0x121)])()+_0x43cc02(0x13b)+_0x38d840+'\x20('+_0x506a27+',\x20'+_0x2b56a5[_0x43cc02(0x107)]+_0x43cc02(0x115)),{'mediaType':_0x506a27,'filePath':_0x38d840,'sizeBytes':_0x2b56a5['length']};}async function buildImagePrompt(_0x3aacbc,_0x3b97c3,_0x351ac6){const _0xcec7e1=a7_0x3b64ea,_0x374d5a=_0x351ac6!=null?_0xcec7e1(0xfb)+_0x351ac6+']':'[图片]';if(_0x3b97c3){const _0x5288c8=await runOcr(_0x3aacbc['filePath']);if(_0x5288c8){const _0x1a6d52=_0x351ac6!=null?_0xcec7e1(0xfb)+_0x351ac6+_0xcec7e1(0x101):_0xcec7e1(0x126);return _0x374d5a+'\x20'+_0x3aacbc[_0xcec7e1(0x100)]+'\x0a'+_0x1a6d52+_0xcec7e1(0xf4)+_0x5288c8+'\x0a---';}console[_0xcec7e1(0xff)]('['+(0x0,session_1['timestamp'])()+']\x20OCR\x20失败,仅传原图路径:\x20'+_0x3aacbc['filePath']);}return _0x374d5a+'\x20'+_0x3aacbc[_0xcec7e1(0x100)];}async function processPictureMessage(_0xd79f70,_0x49859d,_0x10c715,_0x5a5a01,_0x1c2ef9=!![],_0x211fcb){const _0x26dc22=a7_0x3b64ea,_0x1c2074=await downloadAndProcessImage(_0xd79f70,_0x49859d,_0x10c715,_0x5a5a01);if(!_0x1c2074)return null;const _0x39f899=await buildImagePrompt(_0x1c2074,_0x1c2ef9),_0x6a70e0=[];_0x1c2ef9&&_0x6a70e0[_0x26dc22(0xfe)](OCR_PREAMBLE);if(_0x211fcb)_0x6a70e0[_0x26dc22(0xfe)](_0x211fcb);return _0x6a70e0['push'](_0x39f899),_0x6a70e0[_0x26dc22(0xf2)]('\x0a');}async function processRichTextMessage(_0x2308a0,_0x4e16b4,_0x3784de,_0x14fca7,_0x11d382=!![]){const _0x1e36bf=a7_0x3b64ea,_0x56efd5=_0x4e16b4[_0x1e36bf(0x13d)](_0x3add57=>_0x3add57[_0x1e36bf(0x12c)]===_0x1e36bf(0xe7)&&(_0x3add57[_0x1e36bf(0x13f)]||_0x3add57[_0x1e36bf(0x144)]))[_0x1e36bf(0x107)],_0x426899=_0x4e16b4['map'](async(_0x31186e,_0x240f3b)=>{const _0x2ad236=_0x1e36bf;if(_0x31186e['type']===_0x2ad236(0xe7)){const _0x47b9fe=_0x31186e[_0x2ad236(0x13f)]||_0x31186e[_0x2ad236(0x144)];if(_0x47b9fe){const _0x15aa86=await downloadAndProcessImage(_0x2308a0,_0x47b9fe,_0x3784de,_0x14fca7);return{'index':_0x240f3b,'result':_0x15aa86};}}return{'index':_0x240f3b,'result':null};}),_0x5a45eb=await Promise['all'](_0x426899),_0x346c74=new Map();for(const {index:_0x47f8ca,result:_0x535e48}of _0x5a45eb){_0x346c74['set'](_0x47f8ca,_0x535e48);}const _0x4e9572=new Map();if(_0x11d382&&_0x56efd5>0x0){const _0x46c90a=[];for(const [_0x1f7706,_0xbc5197]of _0x346c74){_0xbc5197&&_0x46c90a[_0x1e36bf(0xfe)](runOcr(_0xbc5197[_0x1e36bf(0x100)])[_0x1e36bf(0xf9)](_0x1117b8=>({'index':_0x1f7706,'ocrText':_0x1117b8})));}const _0x2bccb1=await Promise[_0x1e36bf(0x146)](_0x46c90a);for(const {index:_0x24b41b,ocrText:_0x20a1b5}of _0x2bccb1){_0x4e9572['set'](_0x24b41b,_0x20a1b5);}}const _0x2e3cb6=[];let _0xee81ff=0x0;for(let _0xe2f2d=0x0;_0xe2f2d<_0x4e16b4[_0x1e36bf(0x107)];_0xe2f2d++){const _0x3102a4=_0x4e16b4[_0xe2f2d];if(_0x3102a4['type']===_0x1e36bf(0x13a)&&_0x3102a4[_0x1e36bf(0x13a)]){if(/^@\S+$/[_0x1e36bf(0xf5)](_0x3102a4['text'][_0x1e36bf(0x137)]()))continue;_0x2e3cb6[_0x1e36bf(0xfe)](_0x3102a4[_0x1e36bf(0x13a)]);}else{if(_0x3102a4[_0x1e36bf(0x12c)]===_0x1e36bf(0x11c)&&_0x3102a4[_0x1e36bf(0x11b)])_0x2e3cb6[_0x1e36bf(0xfe)]('@'+_0x3102a4[_0x1e36bf(0x11b)]);else{if(_0x3102a4[_0x1e36bf(0x12c)]===_0x1e36bf(0xe7)){const _0x2b0d9e=_0x346c74['get'](_0xe2f2d);if(_0x2b0d9e){_0xee81ff++;const _0x3c7c6c=_0x56efd5>0x1?_0xee81ff:undefined,_0x5dd340=_0x11d382?_0x4e9572[_0x1e36bf(0xeb)](_0xe2f2d):null,_0x2d253e=_0x3c7c6c!=null?_0x1e36bf(0xfb)+_0x3c7c6c+']':'[图片]';if(_0x5dd340){const _0x1a9259=_0x3c7c6c!=null?'[图片\x20'+_0x3c7c6c+'\x20OCR]':_0x1e36bf(0x126);_0x2e3cb6[_0x1e36bf(0xfe)](_0x2d253e+'\x20'+_0x2b0d9e[_0x1e36bf(0x100)]+'\x0a'+_0x1a9259+_0x1e36bf(0xf4)+_0x5dd340+'\x0a---');}else _0x2e3cb6[_0x1e36bf(0xfe)](_0x2d253e+'\x20'+_0x2b0d9e[_0x1e36bf(0x100)]);}else{const _0x5dad57=_0x3102a4[_0x1e36bf(0x13f)]||_0x3102a4[_0x1e36bf(0x144)];_0x5dad57&&_0x2e3cb6[_0x1e36bf(0xfe)]('[��片下载失败]');}}}}}const _0x14296f=_0x2e3cb6[_0x1e36bf(0xf2)]('\x0a')||_0x1e36bf(0xfa);if(_0x11d382&&_0xee81ff>0x0)return OCR_PREAMBLE+'\x0a'+_0x14296f;return _0x14296f;}
|