From 7fb0aff0f2964e4a73521c9925cb7ae8428e3feb Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Tue, 26 Aug 2025 20:44:08 +0800 Subject: [PATCH] Update secondary-filler.js --- core/table-system/secondary-filler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/table-system/secondary-filler.js b/core/table-system/secondary-filler.js index 551957d..fd4e78b 100644 --- a/core/table-system/secondary-filler.js +++ b/core/table-system/secondary-filler.js @@ -1 +1 @@ -(function(_0x149a48,_0x4b56c4){const _0x5919c2=_0x2bf3,_0x451839=_0x149a48();while(!![]){try{const _0x2b2c93=parseInt(_0x5919c2(0x1f6))/0x1*(-parseInt(_0x5919c2(0x20c))/0x2)+parseInt(_0x5919c2(0x21b))/0x3+parseInt(_0x5919c2(0x206))/0x4*(parseInt(_0x5919c2(0x1f9))/0x5)+parseInt(_0x5919c2(0x20a))/0x6+-parseInt(_0x5919c2(0x1ff))/0x7+parseInt(_0x5919c2(0x20f))/0x8*(parseInt(_0x5919c2(0x204))/0x9)+parseInt(_0x5919c2(0x1fb))/0xa*(parseInt(_0x5919c2(0x210))/0xb);if(_0x2b2c93===_0x4b56c4)break;else _0x451839['push'](_0x451839['shift']());}catch(_0x50a071){_0x451839['push'](_0x451839['shift']());}}}(_0x413c,0x52d67));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat}from'/script.js';import{renderTables}from'../../ui/table-bindings.js';import{extensionName}from'../../utils/settings.js';function _0x2bf3(_0x55d571,_0x42dd8f){const _0x413c7e=_0x413c();return _0x2bf3=function(_0x2bf3ca,_0x551ce0){_0x2bf3ca=_0x2bf3ca-0x1ef;let _0x4ab635=_0x413c7e[_0x2bf3ca];return _0x4ab635;},_0x2bf3(_0x55d571,_0x42dd8f);}import{updateTableFromText,getBatchFillerRuleTemplate,getBatchFillerFlowTemplate,convertTablesToCsvString,saveStateToMessage,getMemoryState}from'./manager.js';import{getPresetPrompts,getMixedOrder}from'../../PresetSettings/index.js';function _0x413c(){const _0x2f3328=['secondary-api','[Amily2-副API]\x20未能获取AI响应内容。','chat','prompt','filling_mode','error','thinkingFramework','secondary_filler','请严格根据以下\x22最新消息\x22中的内容进行填写表格,并按照指定的格式输出,不要添加任何额外信息。\x0a\x0a<最新消息>\x0a','222324Sjieow','timeEnd','[Amily2-副API]\x20发生严重错误:','replace','secondaryApiUrlWarned','length','[Amily2-副API]\x20消息内容为空,跳过填表任务。','system','parse','groupCollapsed','1uOgxWK','getItem','user','1092495sqhRAF','log','30wrEbmq','主API的URL或模型未配置,分步填表功能无法启动。','push','{{{Amily2TableData}}}','2397640AeRVxp','coreContent','groupEnd','ruleTemplate','\x0a','1428066JGnKqI','name1','8VegkmX','[副API填表]\x20加载混合顺序失败:','amily2_prompt_presets_v2_mixed_order','message','800220OYVIuG','[Amily2号-副API-原始回复]:','676322LZeGld','mes','type','8lILNyJ','795058sBdnwI','副API填表任务总耗时'];_0x413c=function(){return _0x2f3328;};return _0x413c();}import{callAI,generateRandomSeed}from'../api.js';export async function fillWithSecondaryApi(_0x3b99db){const _0x21c168=_0x2bf3,_0x5e8389=extension_settings[extensionName],_0x25b38a=_0x5e8389[_0x21c168(0x216)]||'main-api';if(_0x25b38a!=='secondary-api')return;if(window['AMILY2_SYSTEM_PARALYZED']===!![]){console[_0x21c168(0x217)]('[Amily2-制裁]\x20系统完整性已受损,所有外交活动被无限期中止。');return;}const {apiUrl:_0xa22e35,apiKey:_0x2fb1b7,model:_0x6b832e,temperature:_0x6012a6,maxTokens:_0x5a7db1,forceProxyForCustomApi:_0x2a4610}=_0x5e8389;if(!_0xa22e35||!_0x6b832e){!window[_0x21c168(0x1f0)]&&(toastr['error'](_0x21c168(0x1fc),'Amily2-分步填表'),window[_0x21c168(0x1f0)]=!![]);return;}try{const _0x48675b=_0x3b99db[_0x21c168(0x20d)];if(!_0x48675b||!_0x48675b['trim']()){console[_0x21c168(0x1fa)](_0x21c168(0x1f2)),console[_0x21c168(0x21c)](_0x21c168(0x211)),console['groupEnd']();return;}const _0x44b418=getContext(),_0x2fa311=_0x44b418[_0x21c168(0x205)]||'用户',_0xb6218f=_0x44b418['name2']||'角色',_0x593517=_0x44b418[_0x21c168(0x214)],_0x3f7147=_0x593517[_0x21c168(0x1f1)]>0x1&&_0x593517[_0x593517['length']-0x2]['is_user']?_0x593517[_0x593517[_0x21c168(0x1f1)]-0x2]:null,_0x58d157=_0x3f7147?_0x2fa311+'(用户)最新消息:'+_0x3f7147[_0x21c168(0x20d)]+'\x0a'+_0xb6218f+'(AI)最新消息,[核心处理内容]:'+_0x48675b:_0xb6218f+'(AI)最新消息,[核心处理内容]:'+_0x48675b;let _0x2d8dbd;try{const _0x408fb7=localStorage[_0x21c168(0x1f7)](_0x21c168(0x208));_0x408fb7&&(_0x2d8dbd=JSON[_0x21c168(0x1f4)](_0x408fb7));}catch(_0x1e28c6){console[_0x21c168(0x217)](_0x21c168(0x207),_0x1e28c6);}const _0x47466c=getMixedOrder('secondary_filler')||[],_0x2526ae=getPresetPrompts(_0x21c168(0x219)),_0x360e1a=[{'role':_0x21c168(0x1f3),'content':generateRandomSeed()}],_0x39f351=getBatchFillerRuleTemplate(),_0x21bdc1=getBatchFillerFlowTemplate(),_0xd8ba15=convertTablesToCsvString(),_0x1f301a=_0x21bdc1[_0x21c168(0x1ef)](_0x21c168(0x1fe),_0xd8ba15);let _0x33db6d=0x0;for(const _0xa9d011 of _0x47466c){if(_0xa9d011[_0x21c168(0x20e)]===_0x21c168(0x215))_0x2526ae&&_0x2526ae[_0x33db6d]&&(_0x360e1a[_0x21c168(0x1fd)](_0x2526ae[_0x33db6d]),_0x33db6d++);else{if(_0xa9d011['type']==='conditional')switch(_0xa9d011['id']){case _0x21c168(0x202):_0x360e1a['push']({'role':_0x21c168(0x1f3),'content':_0x39f351});break;case'flowTemplate':_0x360e1a[_0x21c168(0x1fd)]({'role':_0x21c168(0x1f3),'content':_0x1f301a});break;case _0x21c168(0x200):_0x360e1a['push']({'role':_0x21c168(0x1f8),'content':_0x21c168(0x21a)+_0x58d157+_0x21c168(0x203)});break;case _0x21c168(0x218):_0x360e1a[_0x21c168(0x1fd)]({'role':_0x21c168(0x1f3),'content':'#\x20通用表格转换思考框架\x0a##\x20核心原则\x0a1.\x20将叙事内容转化为结构化数据\x0a2.\x20聚焦关键元素变更\x0a3.\x20保证数据真实性与一致性\x0a##\x20思考流程\x20()\x0a请严格按此框架思考并在标签内输出:\x0a\x0a1.\x20【时间地点分析】\x0a\x20\x20\x20-\x20当前时态:现在是什么年份/季节/日期?具体几点几分?\x0a\x20\x20\x20-\x20空间定位:故事发生在什么场景(建筑/自然等)?具体位置?\x0a\x20\x20\x20-\x20变更检测:相比之前,时间地点是否有显著变化?\x0a2.\x20【角色动态分析】\x0a\x20\x20\x20-\x20在场角色:当前场景有哪些角色存在?\x0a\x20\x20\x20-\x20新增角色:是否有首次出现的角色?\x0a\x20\x20\x20-\x20角色变化:\x0a\x20\x20\x20\x20\x20-\x20外貌特征:体型/发型/穿戴着装\x0a\x20\x20\x20\x20\x20-\x20状态变化:受伤/情绪/随身物品\x0a\x20\x20\x20\x20\x20-\x20关系变动:新建立/改变的关系\x0a\x20\x20\x20-\x20角色语录:有否揭示角色背景的关键对话?\x0a3.\x20【任务进展追踪】\x0a\x20\x20\x20-\x20活跃任务:正在进行哪些重要事项?\x0a\x20\x20\x20-\x20新任务:是否产生新的承诺/任务?\x0a\x20\x20\x20-\x20状态更新:任何任务进度变化?\x0a\x20\x20\x20-\x20任务闭环:有无完成或失败的任务?\x0a4.\x20【关键物品识别】\x0a\x20\x20\x20-\x20特殊物品:有无意义重大的物品出现?\x0a\x20\x20\x20-\x20物品变动:\x0a\x20\x20\x20\x20\x20-\x20获取/丢失物品\x0a\x20\x20\x20\x20\x20-\x20使用/损耗情况\x0a\x20\x20\x20\x20\x20-\x20所有权变更\x0a5.\x20【系统指令响应】\x20(仅处理明确指令)\x0a\x20\x20\x20-\x20识别:是否有来自叙事者的指令?(括号标注)\x0a\x20\x20\x20-\x20响应:完全执行/拒绝无效指令\x0a6.\x20【逻辑校验】\x0a\x20\x20\x20-\x20矛盾解决:处理相互冲突的信息\x0a\x20\x20\x20-\x20数据溯源:标注信息提取位置(例:第3段)\x0a\x20\x20\x20-\x20过滤机制:忽略临时/不重要的描写\x0a\x20\x20\x20-\x20必须填表:无论表格是否为新,都需要结合正文与现有表格内容,进行更新。\x0a\x20\x20\x20-\x20必须填充:当内容为\x22未知\x22或者\x22无\x22的表格,必须结合现知内容补全。\x0a##\x20通用输出规范\x0a-\x20时间格式:YYYY-MM-DD\x20HH:MM\x0a-\x20地点格式:[建筑]>[具体位置]\x20(例:城堡>东侧塔楼)\x0a-\x20角色引用:统一使用全名首次出现\x0a-\x20状态标记:使用标准状态词(进行中/已完成/已取消)\x0a\x0a\x0a\x0a\x0aThe\x20form\x20filling\x20work\x20has\x20been\x20completed.'});break;}}}const _0xbf536a=_0x5e8389[_0x21c168(0x216)]||'main-api';_0xbf536a===_0x21c168(0x212)&&(console[_0x21c168(0x1f5)]('[Amily2\x20分步填表]\x20即将发送至\x20API\x20的内容'),console['dir'](_0x360e1a),console[_0x21c168(0x201)]());const _0x577529=await callAI(_0x360e1a);if(!_0x577529){console[_0x21c168(0x217)](_0x21c168(0x213));return;}console['log'](_0x21c168(0x20b),_0x577529),updateTableFromText(_0x577529);const _0x181950=getContext();if(_0x181950['chat']&&_0x181950[_0x21c168(0x214)][_0x21c168(0x1f1)]>0x0){const _0x414465=_0x181950['chat'][_0x181950[_0x21c168(0x214)]['length']-0x1];if(saveStateToMessage(getMemoryState(),_0x414465)){saveChat(),renderTables();return;}}saveChatDebounced();}catch(_0x41af8e){console[_0x21c168(0x217)](_0x21c168(0x21d),_0x41af8e),toastr[_0x21c168(0x217)]('副API填表失败:\x20'+_0x41af8e[_0x21c168(0x209)],'严重错误');}} +(function(_0x23fed7,_0x44c986){const _0xfcda7b=_0x464a,_0x38fbb7=_0x23fed7();while(!![]){try{const _0x44a888=parseInt(_0xfcda7b(0x17c))/0x1+-parseInt(_0xfcda7b(0x17b))/0x2*(parseInt(_0xfcda7b(0x188))/0x3)+parseInt(_0xfcda7b(0x172))/0x4*(-parseInt(_0xfcda7b(0x194))/0x5)+parseInt(_0xfcda7b(0x185))/0x6*(parseInt(_0xfcda7b(0x16d))/0x7)+parseInt(_0xfcda7b(0x145))/0x8+-parseInt(_0xfcda7b(0x15c))/0x9*(-parseInt(_0xfcda7b(0x15e))/0xa)+parseInt(_0xfcda7b(0x173))/0xb*(parseInt(_0xfcda7b(0x190))/0xc);if(_0x44a888===_0x44c986)break;else _0x38fbb7['push'](_0x38fbb7['shift']());}catch(_0x4795b1){_0x38fbb7['push'](_0x38fbb7['shift']());}}}(_0x1fcb,0xe5fec));function _0x1fcb(){const _0x497c0b=['push','(用户)最新消息:','name','secondary-api','\x0a[...内容已截断]','3756XIXnfN','(AI)最新消息,[核心处理内容]:','entries','[Amily2-副API]\x20发生严重错误:','22595dcwEDF','system','7614208kugAcK','message','[Amily2-副API]\x20消息内容为空,跳过填表任务。','timeEnd','is_user','trim','values','comment','parse','char','<世界书>\x0a','#\x20通用表格转换思考框架\x0a##\x20核心原则\x0a1.\x20将叙事内容转化为结构化数据\x0a2.\x20聚焦关键元素变更\x0a3.\x20保证数据真实性与一致性\x0a##\x20思考流程\x20()\x0a请严格按此框架思考并在标签内输出:\x0a\x0a1.\x20【时间地点分析】\x0a\x20\x20\x20-\x20当前时态:现在是什么年份/季节/日期?具体几点几分?\x0a\x20\x20\x20-\x20空间定位:故事发生在什么场景(建筑/自然等)?具体位置?\x0a\x20\x20\x20-\x20变更检测:相比之前,时间地点是否有显著变化?\x0a2.\x20【角色动态分析】\x0a\x20\x20\x20-\x20在场角色:当前场景有哪些角色存在?\x0a\x20\x20\x20-\x20新增角色:是否有首次出现的角色?\x0a\x20\x20\x20-\x20角色变化:\x0a\x20\x20\x20\x20\x20-\x20外貌特征:体型/发型/穿戴着装\x0a\x20\x20\x20\x20\x20-\x20状态变化:受伤/情绪/随身物品\x0a\x20\x20\x20\x20\x20-\x20关系变动:新建立/改变的关系\x0a\x20\x20\x20-\x20角色语录:有否揭示角色背景的关键对话?\x0a3.\x20【任务进展追踪】\x0a\x20\x20\x20-\x20活跃任务:正在进行哪些重要事项?\x0a\x20\x20\x20-\x20新任务:是否产生新的承诺/任务?\x0a\x20\x20\x20-\x20状态更新:任何任务进度变化?\x0a\x20\x20\x20-\x20任务闭环:有无完成或失败的任务?\x0a4.\x20【关键物品识别】\x0a\x20\x20\x20-\x20特殊物品:有无意义重大的物品出现?\x0a\x20\x20\x20-\x20物品变动:\x0a\x20\x20\x20\x20\x20-\x20获取/丢失物品\x0a\x20\x20\x20\x20\x20-\x20使用/损耗情况\x0a\x20\x20\x20\x20\x20-\x20所有权变更\x0a5.\x20【系统指令响应】\x20(仅处理明确指令)\x0a\x20\x20\x20-\x20识别:是否有来自叙事者的指令?(括号标注)\x0a\x20\x20\x20-\x20响应:完全执行/拒绝无效指令\x0a6.\x20【逻辑校验】\x0a\x20\x20\x20-\x20矛盾解决:处理相互冲突的信息\x0a\x20\x20\x20-\x20数据溯源:标注信息提取位置(例:第3段)\x0a\x20\x20\x20-\x20过滤机制:忽略临时/不重要的描写\x0a\x20\x20\x20-\x20必须填表:无论表格是否为新,都需要结合正文与现有表格内容,进行更新。\x0a\x20\x20\x20-\x20必须填充:当内容为\x22未知\x22或者\x22无\x22的表格,必须结合现知内容补全。\x0a##\x20通用输出规范\x0a-\x20时间格式:YYYY-MM-DD\x20HH:MM\x0a-\x20地点格式:[建筑]>[具体位置]\x20(例:城堡>东侧塔楼)\x0a-\x20角色引用:统一使用全名首次出现\x0a-\x20状态标记:使用标准状态词(进行中/已完成/已取消)\x0a\x0a\x0a\x0a\x0aThe\x20form\x20filling\x20work\x20has\x20been\x20completed.','map','length','error','\x0a','【第\x20','副API填表失败:\x20','historiographyExclusionRules','max','log','secondary_filler','prompt','9XamZPS','min','14617070WWOcGW','join','[Amily2号-副API-原始回复]:','chat','includes','filling_mode','filter','\x0a','\x20楼】\x20','[副API填表]\x20加载混合顺序失败:','type','secondaryApiUrlWarned','main-api','name2','\x0a','4269748fNgsHw','slice','groupCollapsed','floor','contextHistory','1636jiLmin','33OEZSOd','world_book_settings','[Amily2\x20分步填表]\x20即将发送至\x20API\x20的内容','user','coreContent','substring','副API填表任务总耗时','historiographyTagExtractionEnabled','2KBzrsW','1606392dsaNEF','lastIndexOf','AMILY2_SYSTEM_PARALYZED','historiographyTags','replace','content','amily2_prompt_presets_v2_mixed_order','严重错误','<对话记录>\x0a','6CGfIiy','mes','groupEnd','5521341garHsN','books','flowTemplate'];_0x1fcb=function(){return _0x497c0b;};return _0x1fcb();}import{getContext,extension_settings}from'/scripts/extensions.js';import{loadWorldInfo}from'/scripts/world-info.js';import{saveChat}from'/script.js';import{renderTables}from'../../ui/table-bindings.js';import{extensionName}from'../../utils/settings.js';import{updateTableFromText,getBatchFillerRuleTemplate,getBatchFillerFlowTemplate,convertTablesToCsvString,saveStateToMessage,getMemoryState}from'./manager.js';import{getPresetPrompts,getMixedOrder}from'../../PresetSettings/index.js';import{callAI,generateRandomSeed}from'../api.js';import{extractBlocksByTags,applyExclusionRules}from'../utils/rag-tag-extractor.js';function _0x464a(_0x57022c,_0x474422){const _0x1fcbfb=_0x1fcb();return _0x464a=function(_0x464a01,_0x32fe75){_0x464a01=_0x464a01-0x144;let _0x45b7d4=_0x1fcbfb[_0x464a01];return _0x45b7d4;},_0x464a(_0x57022c,_0x474422);}async function getWorldBookContext(){const _0xc92882=_0x464a,_0x53d80e=extension_settings[extensionName],_0x1b583f=_0x53d80e[_0xc92882(0x174)]||{},_0x1401c9=_0x1b583f[_0xc92882(0x189)]||[],_0x578797=_0x1b583f['entries']||[];if(_0x1401c9[_0xc92882(0x152)]===0x0||_0x578797[_0xc92882(0x152)]===0x0)return'';const _0xd5e568=await loadWorldInfo();let _0x2dcbe8='';for(const _0x5bf99d of _0xd5e568){if(_0x1401c9[_0xc92882(0x162)](_0x5bf99d[_0xc92882(0x18d)])){const _0x1b2d3c=_0x5bf99d[_0xc92882(0x192)]?_0x5bf99d:JSON[_0xc92882(0x14d)](_0x5bf99d['content']);for(const _0x22dfe5 of Object[_0xc92882(0x14b)](_0x1b2d3c[_0xc92882(0x192)])){_0x578797['includes'](String(_0x22dfe5['uid']))&&(_0x2dcbe8+='[来源:世界书,条目名字:'+(_0x22dfe5[_0xc92882(0x14c)]||'无标题条目')+']\x0a'+_0x22dfe5['content']+'\x0a\x0a');}}}const _0x497c2c=_0x53d80e['max_world_book_context_length']||0x7d0;if(_0x2dcbe8[_0xc92882(0x152)]>_0x497c2c){_0x2dcbe8=_0x2dcbe8[_0xc92882(0x178)](0x0,_0x497c2c);const _0x243544=_0x2dcbe8[_0xc92882(0x17d)]('\x0a');_0x243544!==-0x1&&(_0x2dcbe8=_0x2dcbe8[_0xc92882(0x178)](0x0,_0x243544)),_0x2dcbe8+=_0xc92882(0x18f);}return _0x2dcbe8[_0xc92882(0x14a)]()?_0xc92882(0x14f)+_0x2dcbe8[_0xc92882(0x14a)]()+_0xc92882(0x154):'';}export async function fillWithSecondaryApi(_0x23e5f1){const _0x5e958e=_0x464a,_0x68721b=extension_settings[extensionName],_0x1c3e96=_0x68721b[_0x5e958e(0x163)]||_0x5e958e(0x16a);if(_0x1c3e96!==_0x5e958e(0x18e))return;if(window[_0x5e958e(0x17e)]===!![]){console[_0x5e958e(0x153)]('[Amily2-制裁]\x20系统完整性已受损,所有外交活动被无限期中止。');return;}const {apiUrl:_0x12f058,apiKey:_0x4f29d4,model:_0x2c48a5,temperature:_0x4a98d9,maxTokens:_0xb5a41d,forceProxyForCustomApi:_0x102801}=_0x68721b;if(!_0x12f058||!_0x2c48a5){!window[_0x5e958e(0x169)]&&(toastr[_0x5e958e(0x153)]('主API的URL或模型未配置,分步填表功能无法启动。','Amily2-分步填表'),window['secondaryApiUrlWarned']=!![]);return;}try{const _0x2cb136=_0x23e5f1[_0x5e958e(0x186)];if(!_0x2cb136||!_0x2cb136[_0x5e958e(0x14a)]()){console[_0x5e958e(0x159)](_0x5e958e(0x147)),console[_0x5e958e(0x148)](_0x5e958e(0x179)),console[_0x5e958e(0x187)]();return;}const _0x11b7d3=getContext(),_0x41d9c6=_0x11b7d3['name1']||'用户',_0x17fd6c=_0x11b7d3['name2']||'角色',_0xbca8e1=_0x11b7d3['chat'],_0x260d2e=_0xbca8e1[_0x5e958e(0x152)]>0x1&&_0xbca8e1[_0xbca8e1['length']-0x2][_0x5e958e(0x149)]?_0xbca8e1[_0xbca8e1['length']-0x2]:null,_0x33e2af=_0x260d2e?_0x41d9c6+_0x5e958e(0x18c)+_0x260d2e[_0x5e958e(0x186)]+'\x0a'+_0x17fd6c+_0x5e958e(0x191)+_0x2cb136:_0x17fd6c+_0x5e958e(0x191)+_0x2cb136;let _0x1b77af;try{const _0x497d4e=localStorage['getItem'](_0x5e958e(0x182));_0x497d4e&&(_0x1b77af=JSON['parse'](_0x497d4e));}catch(_0x5ec5c3){console[_0x5e958e(0x153)](_0x5e958e(0x167),_0x5ec5c3);}const _0x47c93=getMixedOrder(_0x5e958e(0x15a))||[],_0x55fcf9=getPresetPrompts(_0x5e958e(0x15a)),_0x452a0d=[{'role':_0x5e958e(0x144),'content':generateRandomSeed()}],_0x24ed2d=await getWorldBookContext(),_0x3aedc5=getBatchFillerRuleTemplate(),_0x57d5c7=getBatchFillerFlowTemplate(),_0x8a4b34=convertTablesToCsvString(),_0x7e1df6=_0x57d5c7[_0x5e958e(0x180)]('{{{Amily2TableData}}}',_0x8a4b34);let _0x4f1da7=0x0;for(const _0x4fca6b of _0x47c93){if(_0x4fca6b[_0x5e958e(0x168)]===_0x5e958e(0x15b))_0x55fcf9&&_0x55fcf9[_0x4f1da7]&&(_0x452a0d['push'](_0x55fcf9[_0x4f1da7]),_0x4f1da7++);else{if(_0x4fca6b['type']==='conditional')switch(_0x4fca6b['id']){case'worldbook':_0x24ed2d&&_0x452a0d[_0x5e958e(0x18b)]({'role':_0x5e958e(0x144),'content':_0x24ed2d});break;case _0x5e958e(0x171):const _0x5050cc=_0x68721b['context_reading_level']||0x4;if(_0x5050cc>0x0){const _0x88b301=await getHistoryContext(_0x5050cc);_0x88b301&&_0x452a0d[_0x5e958e(0x18b)]({'role':_0x5e958e(0x144),'content':_0x88b301});}break;case'ruleTemplate':_0x452a0d['push']({'role':'system','content':_0x3aedc5});break;case _0x5e958e(0x18a):_0x452a0d[_0x5e958e(0x18b)]({'role':_0x5e958e(0x144),'content':_0x7e1df6});break;case _0x5e958e(0x177):_0x452a0d['push']({'role':_0x5e958e(0x176),'content':'请严格根据以下\x22最新消息\x22中的内容进行填写表格,并按照指定的格式输出,不要添加任何额外信息。\x0a\x0a<最新消息>\x0a'+_0x33e2af+_0x5e958e(0x16c)});break;case'thinkingFramework':_0x452a0d[_0x5e958e(0x18b)]({'role':_0x5e958e(0x144),'content':_0x5e958e(0x150)});break;}}}const _0x18f704=_0x68721b['filling_mode']||_0x5e958e(0x16a);_0x18f704===_0x5e958e(0x18e)&&(console[_0x5e958e(0x16f)](_0x5e958e(0x175)),console['dir'](_0x452a0d),console['groupEnd']());const _0x1dc869=await callAI(_0x452a0d);if(!_0x1dc869){console[_0x5e958e(0x153)]('[Amily2-副API]\x20未能获取AI响应内容。');return;}console[_0x5e958e(0x159)](_0x5e958e(0x160),_0x1dc869),updateTableFromText(_0x1dc869);const _0x4a3dca=getContext();if(_0x4a3dca['chat']&&_0x4a3dca['chat'][_0x5e958e(0x152)]>0x0){const _0x3f0c59=_0x4a3dca[_0x5e958e(0x161)][_0x4a3dca['chat'][_0x5e958e(0x152)]-0x1];if(saveStateToMessage(getMemoryState(),_0x3f0c59)){saveChat(),renderTables();return;}}saveChatDebounced();}catch(_0x2c11a3){console[_0x5e958e(0x153)](_0x5e958e(0x193),_0x2c11a3),toastr[_0x5e958e(0x153)](_0x5e958e(0x156)+_0x2c11a3[_0x5e958e(0x146)],_0x5e958e(0x183));}}async function getHistoryContext(_0x21303e){const _0x85d0ac=_0x464a,_0x271f8a=getContext(),_0x4e27ac=_0x271f8a[_0x85d0ac(0x161)],_0x48ddef=extension_settings[extensionName];if(!_0x4e27ac||_0x4e27ac[_0x85d0ac(0x152)]===0x0||_0x21303e<=0x0)return null;const _0x2a166d=Math[_0x85d0ac(0x15d)](_0x21303e*0x2,Math[_0x85d0ac(0x158)](0x0,_0x4e27ac[_0x85d0ac(0x152)]-0x2)),_0x6abc05=Math[_0x85d0ac(0x158)](0x0,_0x4e27ac[_0x85d0ac(0x152)]-_0x2a166d-0x2),_0x5f419e=Math[_0x85d0ac(0x158)](0x0,_0x4e27ac[_0x85d0ac(0x152)]-0x2),_0x5cd2a9=_0x4e27ac[_0x85d0ac(0x16e)](_0x6abc05,_0x5f419e),_0x4b4874=_0x271f8a['name1']||'用户',_0x58ce80=_0x271f8a[_0x85d0ac(0x16b)]||'角色',_0x3da7eb=_0x48ddef[_0x85d0ac(0x17a)]??![],_0x24f664=_0x3da7eb?(_0x48ddef[_0x85d0ac(0x17f)]||'')['split'](',')['map'](_0xa017e2=>_0xa017e2[_0x85d0ac(0x14a)]())[_0x85d0ac(0x164)](Boolean):[],_0x581aa5=_0x48ddef[_0x85d0ac(0x157)]||[],_0x2a5e1f=_0x5cd2a9[_0x85d0ac(0x151)]((_0x3e9caa,_0x2f7e11)=>{const _0x2598da=_0x85d0ac;let _0x268311=_0x3e9caa['mes'];if(_0x3da7eb&&_0x24f664[_0x2598da(0x152)]>0x0){const _0x444a83=extractBlocksByTags(_0x268311,_0x24f664);_0x444a83['length']>0x0&&(_0x268311=_0x444a83['join']('\x0a\x0a'));}_0x268311=applyExclusionRules(_0x268311,_0x581aa5);if(!_0x268311[_0x2598da(0x14a)]())return null;return{'floor':_0x6abc05+_0x2f7e11+0x1,'author':_0x3e9caa[_0x2598da(0x149)]?_0x4b4874:_0x58ce80,'authorType':_0x3e9caa['is_user']?_0x2598da(0x176):_0x2598da(0x14e),'content':_0x268311[_0x2598da(0x14a)]()};})['filter'](Boolean);if(_0x2a5e1f[_0x85d0ac(0x152)]===0x0)return null;const _0x3a3ccd=_0x2a5e1f[_0x85d0ac(0x151)](_0x4a993b=>_0x85d0ac(0x155)+_0x4a993b[_0x85d0ac(0x170)]+_0x85d0ac(0x166)+_0x4a993b['author']+':\x20'+_0x4a993b[_0x85d0ac(0x181)])[_0x85d0ac(0x15f)]('\x0a');return _0x85d0ac(0x184)+_0x3a3ccd+_0x85d0ac(0x165);}