mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 20:55:51 +00:00
2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
const _0x243cb7=_0x3dba;(function(_0x53a914,_0x149947){const _0x4ac356=_0x3dba,_0x112b4b=_0x53a914();while(!![]){try{const _0x303b00=-parseInt(_0x4ac356(0x165))/0x1*(parseInt(_0x4ac356(0x1cc))/0x2)+parseInt(_0x4ac356(0x1c5))/0x3+-parseInt(_0x4ac356(0x19c))/0x4*(parseInt(_0x4ac356(0x171))/0x5)+-parseInt(_0x4ac356(0x1b0))/0x6+-parseInt(_0x4ac356(0x1ab))/0x7+-parseInt(_0x4ac356(0x1d8))/0x8+parseInt(_0x4ac356(0x1be))/0x9;if(_0x303b00===_0x149947)break;else _0x112b4b['push'](_0x112b4b['shift']());}catch(_0x47faf6){_0x112b4b['push'](_0x112b4b['shift']());}}}(_0xb173,0xf2e3e));import{getContext,extension_settings}from'/scripts/extensions.js';function _0xb173(){const _0x5d716c=['用户消息:','圣谕传达','character_main','text','国史馆','replace','远征军已在营中,无需下达停战敕令。','宏史卷重铸','【信函正文\x20(messages)】:','》天机时出错:','远征已遵从您的敕令暂停!随时可以【继续远征】。','table','\x20层历史,分\x20','\x20(宏史卷重铸)','未知的史册写入指令','world','historiographyLargeRefinePrompt','/chat/completions','1113732aUtINT','编年史已成功更新!','dedicated','鸣金收兵','historiographySmallAutoEnable','userName','dispatchEvent','groupCollapsed','[大史官-通讯失败]','请严格根据以下“对话记录”中的内容进行总结,不要添加任何额外信息。\x0a\x0a<对话记录>\x0a','loreInsertionPosition','mes','国史已是最新,远征军无需出动。','远征已在准备阶段遵令暂停!','json','8242073PXvBFf','status','log','模型B召唤失败:\x20','loreDepth','1496784vVDRLC','\x20层的对话历史...','史册已成功重铸,并保存于《','远征军已开拔!目标:','国库空虚','values','historiographySmallSummaryPrompt','[大史官]\x20阅览《','以下是依照顺序已发生剧情','length','name','stringify','楼总结已完成】否则后续总结无法进行。','split','36087318EaHsig','filter','assign','Bearer\x20','content','选定的楼层范围内无有效对话。','toLocaleTimeString','4498149bHuNrD','historiographySmallTriggerThreshold','宏史卷重铸完毕','》中的【微言录合集】...','comment','未知的史册写入目标,远征军无法开拔!','远征途中遭遇重大挫折,任务中止!您可以随时【继续远征】。','2mlMJZo','找不到指定的史册条目,重铸任务中止。','史册条目中无可供重铸的内容。','\x0a\x0a---\x0a\x0a【','choices','historiographyLargeJailbreakPrompt','user','远征开始','success','时发生错误。','entries','【信函参数】','8565200dMbiuC','characterId','微言录\x20(自动)','楼详细总结记录】\x0a','map','角色回复:','停战敕令已下达!远征军将在完成当前批次的任务后休整。','push','\x20至\x20','》时出错:','微言录\x20(手动)','当前角色未绑定主世界书,无法写入总结。','min','system','1738221OMmlyP','【敕史局】对话流水总帐','warning','find','[大史官]\x20重铸任务失败:','[大史官-通讯异常]','includes','disable','远征完毕','以下内容是【1楼-','error','\x0a\x0a本条勿动【前','5CazbsW','chat','凯旋!远征大捷!所有未载之史均已化为帝国永恒的记忆!','[大史官]\x20','写入失败:','amily2-expedition-state-change','is_user','slice','与模型B通讯时发生网络异常','data','Amily2-Lore-','通讯异常','遵旨!正在为您熔铸\x20','info','trim','圣谕有误','ceil','通讯中断','extensions','[大史官-远征失败]','lorebookTarget','遵旨!正在为您重铸《','\x20批次战役准备中...\x20(','圣谕悉知','[大史官]\x20检阅《'];_0xb173=function(){return _0x5d716c;};return _0xb173();}function _0x3dba(_0x5382e9,_0x196a75){const _0xb17308=_0xb173();return _0x3dba=function(_0x3dba4e,_0x19889f){_0x3dba4e=_0x3dba4e-0x160;let _0x14882e=_0xb17308[_0x3dba4e];return _0x14882e;},_0x3dba(_0x5382e9,_0x196a75);}import{characters}from'/script.js';import{world_names,loadWorldInfo,createNewWorldInfo,createWorldInfoEntry,saveWorldInfo}from'/scripts/world-info.js';import{extensionName}from'../utils/settings.js';import{getChatIdentifier}from'./lore.js';let isExpeditionRunning=![],manualStopRequested=![];async function callAmily2Model(_0x8831a7){const _0x15536e=_0x3dba,_0x4155e4=extension_settings[extensionName],{apiUrl:_0x545967,apiKey:_0x5d764a,model:_0xabc01,temperature:_0x195fdc,maxTokens:_0x53f092}=_0x4155e4;if(!_0x545967||!_0xabc01)return toastr[_0x15536e(0x16f)]('API\x20URL或模型未配置,无法召唤模型B。',_0x15536e(0x182)),null;console[_0x15536e(0x1a3)]('[Amily2-大史官]\x20准备向模型B发送机密信函...\x20@\x20'+new Date()[_0x15536e(0x1c4)]()),console[_0x15536e(0x1ad)](_0x15536e(0x1d7),{'model':_0xabc01,'temperature':_0x195fdc,'maxTokens':_0x53f092}),console[_0x15536e(0x1ad)](_0x15536e(0x192)),console[_0x15536e(0x195)](_0x8831a7),console['groupEnd']();try{const _0x55eac8=await fetch(_0x545967+_0x15536e(0x19b),{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x15536e(0x1c1)+_0x5d764a},'body':JSON[_0x15536e(0x1bb)]({'model':_0xabc01,'messages':_0x8831a7,'temperature':_0x195fdc,'max_tokens':_0x53f092,'stream':![]})});if(!_0x55eac8['ok']){const _0x128b89=await _0x55eac8[_0x15536e(0x18d)]();return console['error'](_0x15536e(0x1a4),_0x55eac8[_0x15536e(0x1ac)],_0x128b89),toastr['error'](_0x15536e(0x1ae)+_0x55eac8['status'],'通讯失败'),null;}const _0x242800=await _0x55eac8[_0x15536e(0x1aa)]();return _0x242800[_0x15536e(0x1d0)][0x0]['message'][_0x15536e(0x1c2)];}catch(_0x172687){return console[_0x15536e(0x16f)](_0x15536e(0x16a),_0x172687),toastr[_0x15536e(0x16f)](_0x15536e(0x179),_0x15536e(0x17c)),null;}}const RUNNING_LOG_COMMENT=_0x243cb7(0x166),PROGRESS_SEAL_REGEX=/本条勿动【前(\d+)楼总结已完成】否则后续总结无法进行。$/;async function readGoldenLedgerProgress(_0x3268b1){const _0x592138=_0x243cb7;if(!_0x3268b1)return 0x0;try{const _0x232bdd=await loadWorldInfo(_0x3268b1);if(!_0x232bdd||!_0x232bdd[_0x592138(0x1d6)])return 0x0;const _0x3b50cf=Object[_0x592138(0x1b5)](_0x232bdd[_0x592138(0x1d6)])['find'](_0x2bc232=>_0x2bc232['comment']===RUNNING_LOG_COMMENT&&!_0x2bc232['disable']);if(!_0x3b50cf)return 0x0;const _0x5cba24=_0x3b50cf[_0x592138(0x1c2)]['match'](PROGRESS_SEAL_REGEX);return _0x5cba24?parseInt(_0x5cba24[0x1],0xa):0x0;}catch(_0x339105){return console[_0x592138(0x16f)](_0x592138(0x1b7)+_0x3268b1+_0x592138(0x193),_0x339105),0x0;}}export async function checkAndTriggerAutoSummary(){const _0x55a81f=_0x243cb7,_0x27324d=extension_settings[extensionName];if(!_0x27324d[_0x55a81f(0x1a0)])return;const _0x53b987=getContext();let _0x38172b=null;switch(_0x27324d['lorebookTarget']){case _0x55a81f(0x18c):_0x38172b=characters[_0x53b987[_0x55a81f(0x1d9)]]?.['data']?.[_0x55a81f(0x183)]?.['world'];break;case'dedicated':const _0x243e9e=await getChatIdentifier();_0x38172b='Amily2-Lore-'+_0x243e9e;break;default:return;}if(!_0x38172b)return;const _0x2d04bb=await readGoldenLedgerProgress(_0x38172b),_0x5e8a39=_0x53b987['chat'][_0x55a81f(0x1b9)],_0x1fa1de=_0x5e8a39-_0x2d04bb;if(_0x1fa1de>=_0x27324d[_0x55a81f(0x1c6)]){const _0x47dc82=_0x2d04bb+0x1,_0x227209=_0x5e8a39;await executeManualSummary(_0x47dc82,_0x227209,!![]);}}export async function getAvailableWorldbooks(){return[...world_names];}export async function getLoresForWorldbook(_0x50f9ff){const _0x27575b=_0x243cb7;if(!_0x50f9ff)return[];try{const _0x43507c=await loadWorldInfo(_0x50f9ff);if(!_0x43507c||!_0x43507c[_0x27575b(0x1d6)])return[];return Object['entries'](_0x43507c[_0x27575b(0x1d6)])[_0x27575b(0x1bf)](([,_0x1c44d9])=>!_0x1c44d9[_0x27575b(0x16c)])[_0x27575b(0x1dc)](([_0x11cf76,_0x257759])=>({'key':_0x11cf76,'comment':_0x257759[_0x27575b(0x1c9)]||'无标题条目'}));}catch(_0x436c49){return console[_0x27575b(0x16f)](_0x27575b(0x189)+_0x50f9ff+_0x27575b(0x160),_0x436c49),[];}}export async function executeManualSummary(_0x24f4cc,_0x4d0014,_0x14a7f1=![]){const _0xacad80=_0x243cb7,_0x117e57=_0x14a7f1?_0xacad80(0x1da):_0xacad80(0x161);toastr[_0xacad80(0x17e)](_0xacad80(0x17d)+_0x24f4cc+_0xacad80(0x1e0)+_0x4d0014+_0xacad80(0x1b1),_0x117e57);const _0x5c1329=getContext(),_0x12cc23=_0x5c1329[_0xacad80(0x172)],_0x39309e=extension_settings[extensionName],_0xd13f0e=_0x12cc23[_0xacad80(0x178)](_0x24f4cc,_0x4d0014+0x1);if(_0xd13f0e[_0xacad80(0x1b9)]===0x0){toastr[_0xacad80(0x167)](_0xacad80(0x1c3),_0xacad80(0x180));return;}const _0x3a6830=_0x5c1329[_0xacad80(0x1a1)]||'用户',_0x1b6949=characters[_0x5c1329[_0xacad80(0x1d9)]]?.[_0xacad80(0x1ba)]||'角色';let _0x50552c='';const _0x51c0c6=[];for(let _0x2d6441=0x0;_0x2d6441<_0xd13f0e['length'];_0x2d6441++){if(_0xd13f0e[_0x2d6441][_0xacad80(0x177)]){const _0x1497fa=_0xacad80(0x18a)+_0xd13f0e[_0x2d6441][_0xacad80(0x1a7)];if(_0x2d6441+0x1<_0xd13f0e[_0xacad80(0x1b9)]&&!_0xd13f0e[_0x2d6441+0x1]['is_user']){const _0x5f681a='角色回复:'+_0xd13f0e[_0x2d6441+0x1][_0xacad80(0x1a7)];_0x51c0c6[_0xacad80(0x1df)](_0x1497fa+'。'+_0x5f681a),_0x2d6441++;}else _0x51c0c6[_0xacad80(0x1df)](_0x1497fa);}else _0x51c0c6['push'](_0xacad80(0x1dd)+_0xd13f0e[_0x2d6441]['mes']);}_0x50552c=_0x51c0c6[_0xacad80(0x1dc)]((_0x5d380d,_0x19179c)=>_0x19179c+0x1+':'+_0x5d380d)['join']('\x0a');const _0x2afa97=[{'role':_0xacad80(0x164),'content':_0x39309e['historiographySmallJailbreakPrompt']},{'role':_0xacad80(0x164),'content':_0x39309e[_0xacad80(0x1b6)]},{'role':_0xacad80(0x1d2),'content':_0xacad80(0x1a5)+_0x50552c+'\x0a</对话记录>'}],_0x12cddc=await callAmily2Model(_0x2afa97);if(!_0x12cddc)return;try{let _0x3be460=null;switch(_0x39309e[_0xacad80(0x185)]){case _0xacad80(0x18c):_0x3be460=characters[_0x5c1329[_0xacad80(0x1d9)]]?.[_0xacad80(0x17a)]?.[_0xacad80(0x183)]?.['world'];if(!_0x3be460){toastr[_0xacad80(0x16f)](_0xacad80(0x162),_0xacad80(0x18e));return;}break;case'dedicated':const _0x1ccb40=await getChatIdentifier();_0x3be460=_0xacad80(0x17b)+_0x1ccb40;!world_names[_0xacad80(0x16b)](_0x3be460)&&await createNewWorldInfo(_0x3be460);break;default:toastr[_0xacad80(0x16f)](_0xacad80(0x198),'圣谕不明');return;}const _0xe2efd0=await loadWorldInfo(_0x3be460),_0x51859d=Object[_0xacad80(0x1b5)](_0xe2efd0['entries'])[_0xacad80(0x168)](_0x199e38=>_0x199e38['comment']===RUNNING_LOG_COMMENT&&!_0x199e38[_0xacad80(0x16c)]),_0x4cec77=_0xacad80(0x170)+_0x4d0014+_0xacad80(0x1bc),_0xcc164c=_0xacad80(0x1cf)+_0x24f4cc+'楼至'+_0x4d0014+_0xacad80(0x1db)+_0x12cddc;if(_0x51859d){const _0x4e1b27=_0x51859d['content']['replace'](PROGRESS_SEAL_REGEX,'')[_0xacad80(0x17f)]();_0x51859d[_0xacad80(0x1c2)]=_0x4e1b27+_0xcc164c+_0x4cec77;}else{const _0x737537=_0xacad80(0x1b8)+_0xcc164c,_0x51d8f2=createWorldInfoEntry(_0x3be460,_0xe2efd0),_0x3ed3b1=_0x39309e['loreKeywords'][_0xacad80(0x1bd)](',')[_0xacad80(0x1dc)](_0x4fe99a=>_0x4fe99a[_0xacad80(0x17f)]())[_0xacad80(0x1bf)](Boolean),_0x4111b6=_0x39309e['loreActivationMode']==='always',_0x301f79={'before_char':0x0,'after_char':0x1,'before_an':0x2,'after_an':0x3,'at_depth':0x4};Object[_0xacad80(0x1c0)](_0x51d8f2,{'comment':RUNNING_LOG_COMMENT,'content':_0x737537+_0x4cec77,'key':_0x3ed3b1,'constant':_0x4111b6,'position':_0x301f79[_0x39309e[_0xacad80(0x1a6)]]??0x4,'depth':_0x39309e[_0xacad80(0x1af)],'disable':![]});}await saveWorldInfo(_0x3be460,_0xe2efd0,!![]),toastr['success'](_0xacad80(0x19d),_0x117e57+'完毕');}catch(_0x599c31){console[_0xacad80(0x16f)](_0xacad80(0x174)+_0x117e57+_0xacad80(0x175),_0x599c31),toastr[_0xacad80(0x16f)]('写入'+_0x117e57+_0xacad80(0x1d5),_0xacad80(0x18e));}}export async function executeRefinement(_0x3bd521,_0x32a30b){const _0x19ee62=_0x243cb7;toastr[_0x19ee62(0x17e)](_0x19ee62(0x186)+_0x3bd521+_0x19ee62(0x1c8),_0x19ee62(0x191));try{const _0x2b22f8=await loadWorldInfo(_0x3bd521),_0x45b4ff=_0x2b22f8?.[_0x19ee62(0x1d6)][_0x32a30b];if(!_0x45b4ff){toastr[_0x19ee62(0x16f)](_0x19ee62(0x1cd),'圣谕有误');return;}const _0x18ad2e=_0x45b4ff[_0x19ee62(0x1c2)],_0x3b6e10=extension_settings[extensionName];let _0x3c0e85=_0x18ad2e,_0x335d2d='',_0x551248=0x0;const _0x5b8cf1=_0x18ad2e['match'](PROGRESS_SEAL_REGEX);_0x5b8cf1&&(_0x335d2d=_0x5b8cf1[0x0],_0x551248=parseInt(_0x5b8cf1[0x1],0xa),_0x3c0e85=_0x18ad2e[_0x19ee62(0x18f)](PROGRESS_SEAL_REGEX,'')[_0x19ee62(0x17f)]());if(!_0x3c0e85[_0x19ee62(0x17f)]()){toastr[_0x19ee62(0x167)](_0x19ee62(0x1ce),_0x19ee62(0x1b4));return;}const _0x277812=[{'role':_0x19ee62(0x164),'content':_0x3b6e10[_0x19ee62(0x1d1)]},{'role':_0x19ee62(0x164),'content':_0x3b6e10[_0x19ee62(0x19a)]},{'role':_0x19ee62(0x1d2),'content':'请将以下多个零散的“详细总结记录”提炼并融合成一段连贯的章节历史。原文如下:\x0a\x0a'+_0x3c0e85}],_0x2473ef=await callAmily2Model(_0x277812);if(!_0x2473ef)return;const _0x501c1d=_0x19ee62(0x16e)+_0x551248+'楼】已发生的剧情回顾。\x0a\x0a---\x0a\x0a',_0x4ec76c=_0x501c1d+_0x2473ef;_0x45b4ff[_0x19ee62(0x1c2)]=_0x4ec76c+('\x0a\x0a'+_0x335d2d),_0x45b4ff[_0x19ee62(0x1c9)]=_0x45b4ff[_0x19ee62(0x1c9)][_0x19ee62(0x18f)](/\s*\(已精炼\)|\s*\(宏史卷重铸\)/g,''),_0x45b4ff['comment']+=_0x19ee62(0x197),await saveWorldInfo(_0x3bd521,_0x2b22f8,!![]),toastr['success'](_0x19ee62(0x1b2)+_0x3bd521+'》!',_0x19ee62(0x1c7));}catch(_0x76c25f){console[_0x19ee62(0x16f)](_0x19ee62(0x169),_0x76c25f),toastr[_0x19ee62(0x16f)]('重铸史册时发生错误。','国史馆');}}export async function executeExpedition(){const _0x7588c=_0x243cb7;if(isExpeditionRunning){toastr['info']('远征军已在途中,无需重复下令。',_0x7588c(0x188));return;}isExpeditionRunning=!![],manualStopRequested=![],document[_0x7588c(0x1a2)](new CustomEvent(_0x7588c(0x176),{'detail':{'isRunning':!![]}}));try{const _0x42e74a=extension_settings[extensionName],_0xb51060=getContext();let _0x549888=null;switch(_0x42e74a['lorebookTarget']){case _0x7588c(0x18c):_0x549888=characters[_0xb51060[_0x7588c(0x1d9)]]?.[_0x7588c(0x17a)]?.['extensions']?.[_0x7588c(0x199)];if(!_0x549888){toastr[_0x7588c(0x16f)]('当前角色未绑定主世界书,远征军无法开拔!','圣谕不明'),isExpeditionRunning=![],document[_0x7588c(0x1a2)](new CustomEvent('amily2-expedition-state-change',{'detail':{'isRunning':![],'manualStop':![]}}));return;}break;case _0x7588c(0x19e):const _0x57d51b=await getChatIdentifier();_0x549888=_0x7588c(0x17b)+_0x57d51b;break;default:toastr[_0x7588c(0x16f)](_0x7588c(0x1ca),'圣谕不明'),isExpeditionRunning=![],document[_0x7588c(0x1a2)](new CustomEvent(_0x7588c(0x176),{'detail':{'isRunning':![],'manualStop':![]}}));return;}const _0x82d411=await readGoldenLedgerProgress(_0x549888),_0x1dba6d=_0xb51060['chat'][_0x7588c(0x1b9)],_0x36bee9=_0x1dba6d-_0x82d411;if(_0x36bee9<=0x0){toastr['info'](_0x7588c(0x1a8),'凯旋'),isExpeditionRunning=![],document[_0x7588c(0x1a2)](new CustomEvent(_0x7588c(0x176),{'detail':{'isRunning':![],'manualStop':![]}}));return;}const _0x23bc6=_0x42e74a['historiographySmallTriggerThreshold'],_0x1ea482=Math[_0x7588c(0x181)](_0x36bee9/_0x23bc6);toastr[_0x7588c(0x17e)](_0x7588c(0x1b3)+_0x36bee9+_0x7588c(0x196)+_0x1ea482+'\x20批次征服!',_0x7588c(0x1d3));let _0x2ec678=_0x82d411;for(let _0x213e64=0x0;_0x213e64<_0x1ea482;_0x213e64++){if(manualStopRequested){toastr[_0x7588c(0x167)](_0x7588c(0x194),_0x7588c(0x19f));break;}const _0x31f316=_0x2ec678+0x1,_0x231d7a=Math[_0x7588c(0x163)](_0x2ec678+_0x23bc6,_0x1dba6d),_0x4fe3b7='远征战役\x20('+(_0x213e64+0x1)+'/'+_0x1ea482+')',_0x420450=0x7d0;_0x213e64>0x0&&(toastr[_0x7588c(0x17e)]('第\x20'+(_0x213e64+0x1)+_0x7588c(0x187)+_0x420450/0x3e8+'秒后接敌)',_0x4fe3b7),await new Promise(_0x1fc047=>setTimeout(_0x1fc047,_0x420450)));if(manualStopRequested){toastr[_0x7588c(0x167)](_0x7588c(0x1a9),_0x7588c(0x19f));break;}await executeManualSummary(_0x31f316,_0x231d7a,!![]),_0x2ec678=_0x231d7a;}!manualStopRequested&&toastr[_0x7588c(0x1d4)](_0x7588c(0x173),_0x7588c(0x16d));}catch(_0x23a7ac){console[_0x7588c(0x16f)](_0x7588c(0x184),_0x23a7ac),toastr[_0x7588c(0x16f)](_0x7588c(0x1cb),'远征失败');}finally{isExpeditionRunning=![],document[_0x7588c(0x1a2)](new CustomEvent('amily2-expedition-state-change',{'detail':{'isRunning':![],'manualStop':manualStopRequested}}));}}export function stopExpedition(){const _0x16ac11=_0x243cb7;isExpeditionRunning?(manualStopRequested=!![],toastr[_0x16ac11(0x17e)](_0x16ac11(0x1de),_0x16ac11(0x18b))):toastr['warning'](_0x16ac11(0x190),_0x16ac11(0x188));}
|