Files
ST-Amily2-Chat-Optimisation…/core/table-system/manager.js
2025-08-25 14:58:32 +08:00

2 lines
40 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const _0x3f33e4=_0x400f;(function(_0x2617a6,_0x4038f1){const _0x57d92c=_0x400f,_0xe83f0d=_0x2617a6();while(!![]){try{const _0x5a01c3=-parseInt(_0x57d92c(0x1f7))/0x1*(parseInt(_0x57d92c(0x1ff))/0x2)+-parseInt(_0x57d92c(0x215))/0x3*(parseInt(_0x57d92c(0x23c))/0x4)+parseInt(_0x57d92c(0x1d9))/0x5+-parseInt(_0x57d92c(0x1c8))/0x6*(-parseInt(_0x57d92c(0x1f1))/0x7)+-parseInt(_0x57d92c(0x1ea))/0x8+-parseInt(_0x57d92c(0x1cd))/0x9*(parseInt(_0x57d92c(0x1ec))/0xa)+parseInt(_0x57d92c(0x1fe))/0xb;if(_0x5a01c3===_0x4038f1)break;else _0xe83f0d['push'](_0xe83f0d['shift']());}catch(_0x462260){_0xe83f0d['push'](_0xe83f0d['shift']());}}}(_0xfebe,0x57d34));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';const TABLE_DATA_KEY=_0x3f33e4(0x1d2);let currentTablesState=null,highlightedCells=new Set();export function addHighlight(_0x52dbaa,_0x4951c5,_0x1e1e95){const _0x55427d=_0x52dbaa+'-'+_0x4951c5+'-'+_0x1e1e95;highlightedCells['add'](_0x55427d);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x4617b1=_0x3f33e4;highlightedCells['size']>0x0&&(highlightedCells[_0x4617b1(0x194)](),log('已清除所有单元格高亮标记。',_0x4617b1(0x1df)));}export function setMemoryState(_0xc069ac){currentTablesState=_0xc069ac;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x3f33e4(0x211),'headers':['日期','时段','时间','地点',_0x3f33e4(0x200)],'note':'记录时空信息的表格,应保持在一行/日期信息应精确到至几年几月几日(如果日期未知,应随便胡编一个日期)/时段规定凌晨0时至5时早晨5时至8时上午8时至11时中午11时至13时下午13时至16时傍晚16时至19时晚上19时至24时/时间信息应精确至几时几分(如果时间未知,应随便胡编一个时间)/地点应为当前叙述的地点,且约精确越好','rule_add':_0x3f33e4(0x1fc),'rule_delete':_0x3f33e4(0x199),'rule_update':_0x3f33e4(0x231),'rows':[]},{'name':_0x3f33e4(0x1b4),'headers':['角色名','外貌','身体','衣着','性格','身份','职业','与<user>关系',_0x3f33e4(0x1f0),'爱好','住所',_0x3f33e4(0x1a5)],'note':_0x3f33e4(0x1d6),'rule_add':_0x3f33e4(0x24d),'rule_delete':_0x3f33e4(0x21e),'rule_update':'当角色的外貌、身体、衣着出现持久性变化时(如:五官长开、伤痕、减肥、染发、更衣、衣物破损等)/当角色有新的身份、职业、爱好时/当角色和<user>的关系改变时/当角色更换住所时/当角色提到重要信息时','rows':[]},{'name':_0x3f33e4(0x22c),'headers':[_0x3f33e4(0x1a9),'类型','详情','状态','执行者','地点','结果',_0x3f33e4(0x1d7),_0x3f33e4(0x1e4)],'note':_0x3f33e4(0x1b3),'rule_add':_0x3f33e4(0x1f3),'rule_delete':_0x3f33e4(0x182),'rule_update':_0x3f33e4(0x214),'rows':[]},{'name':_0x3f33e4(0x23b),'headers':['物品名','类型','详情','状态',_0x3f33e4(0x20a),_0x3f33e4(0x1be)],'note':_0x3f33e4(0x221),'rule_add':_0x3f33e4(0x232),'rule_delete':_0x3f33e4(0x206),'rule_update':'物品发生变化时/消耗品产生损耗时','rows':[]},{'name':_0x3f33e4(0x18a),'headers':['类型','具体描述'],'note':'上层叙事者留下的各种提示、要求、命令/禁止私自增、删、改','rule_add':_0x3f33e4(0x220),'rule_delete':'上层叙事者明确要求需要删除时','rule_update':_0x3f33e4(0x1e9),'rows':[]}]};function getDefaultTables(){const _0x3ca4a8=_0x3f33e4;return log('从预设模板生成默认表格...',_0x3ca4a8(0x1df)),JSON[_0x3ca4a8(0x237)](JSON['stringify'](defaultTemplate['tables']));}export function loadTables(_0x24a6b6=-0x1){const _0x44d4a1=_0x3f33e4,_0x389312=getContext();if(_0x389312&&_0x389312[_0x44d4a1(0x243)]&&_0x389312[_0x44d4a1(0x243)]['length']>0x0){const _0x4cc023=_0x24a6b6===-0x1?_0x389312[_0x44d4a1(0x243)]['length']-0x1:_0x24a6b6-0x1;for(let _0xf5db89=_0x4cc023;_0xf5db89>=0x0;_0xf5db89--){const _0x455fff=_0x389312['chat'][_0xf5db89];if(_0x455fff[_0x44d4a1(0x1cf)]&&_0x455fff[_0x44d4a1(0x1cf)][TABLE_DATA_KEY]){log('在第\x20'+_0xf5db89+_0x44d4a1(0x1a8),'info');let _0x48362f=JSON[_0x44d4a1(0x237)](JSON[_0x44d4a1(0x1ca)](_0x455fff[_0x44d4a1(0x1cf)][TABLE_DATA_KEY]));return _0x48362f['forEach'](_0x5af5a1=>{const _0x1e1995=_0x44d4a1;if(_0x5af5a1[_0x1e1995(0x201)]===undefined)_0x5af5a1['note']='无';if(_0x5af5a1[_0x1e1995(0x1f2)]===undefined)_0x5af5a1[_0x1e1995(0x1f2)]='允许';if(_0x5af5a1[_0x1e1995(0x22b)]===undefined)_0x5af5a1[_0x1e1995(0x22b)]='允许';if(_0x5af5a1[_0x1e1995(0x183)]===undefined)_0x5af5a1['rule_update']='允许';}),currentTablesState=_0x48362f,currentTablesState;}}}if(extension_settings[extensionName]?.['global_table_preset']){log('未在聊天记录中找到表格,正在加载全局预设...',_0x44d4a1(0x1df));try{const _0x2f393c=extension_settings[extensionName][_0x44d4a1(0x19e)];return currentTablesState=JSON['parse'](JSON[_0x44d4a1(0x1ca)](_0x2f393c[_0x44d4a1(0x1b2)])),currentTablesState;}catch(_0x4637bd){log(_0x44d4a1(0x190)+_0x4637bd[_0x44d4a1(0x176)],_0x44d4a1(0x20d));}}return log('未找到任何表格数据或全局预设,使用默认模板。',_0x44d4a1(0x1df)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x335c84,_0x1472fa){const _0x151f74=_0x3f33e4;if(!_0x335c84||!_0x1472fa)return log(_0x151f74(0x1af),_0x151f74(0x20d)),![];return!_0x1472fa[_0x151f74(0x1cf)]&&(_0x1472fa['extra']={}),_0x1472fa['extra'][TABLE_DATA_KEY]=JSON[_0x151f74(0x237)](JSON[_0x151f74(0x1ca)](_0x335c84)),log(_0x151f74(0x251)+_0x1472fa[_0x151f74(0x222)][_0x151f74(0x1f6)](0x0,0x14)+_0x151f74(0x24c),_0x151f74(0x1df)),!![];}export function saveTables(_0x42e1aa='未知操作'){const _0x123712=_0x3f33e4;return log(_0x123712(0x1ae)+_0x42e1aa+_0x123712(0x229),'info'),!![];}export function deleteColumn(_0x3f6953,_0x53d541){const _0x50282a=_0x3f33e4,_0xe0c53=getMemoryState();if(!_0xe0c53[_0x3f6953]||_0x53d541<0x0||_0x53d541>=_0xe0c53[_0x3f6953][_0x50282a(0x233)][_0x50282a(0x1c1)]){log(_0x50282a(0x17f)+_0x3f6953+_0x50282a(0x196)+_0x53d541+_0x50282a(0x212),'error');return;}_0xe0c53[_0x3f6953]['headers'][_0x50282a(0x21a)](_0x53d541,0x1),_0xe0c53[_0x3f6953][_0x50282a(0x224)]['forEach'](_0x4bf120=>{const _0x10e261=_0x50282a;_0x4bf120[_0x10e261(0x1c1)]>_0x53d541&&_0x4bf120[_0x10e261(0x21a)](_0x53d541,0x1);}),log(_0x50282a(0x1cc)+_0x3f6953+_0x50282a(0x21f)+(_0x53d541+0x1)+_0x50282a(0x192),'success'),saveTables(_0xe0c53);}export function moveRow(_0x37b062,_0x15de23,_0x57b4fd){const _0xe88f18=_0x3f33e4,_0x229d8e=getMemoryState(),_0x352d0e=_0x229d8e[_0x37b062];if(!_0x352d0e||_0x15de23<0x0||_0x15de23>=_0x352d0e[_0xe88f18(0x224)]['length'])return;const _0x251d83=_0x57b4fd==='up'?_0x15de23-0x1:_0x15de23+0x1;if(_0x251d83<0x0||_0x251d83>=_0x352d0e['rows']['length'])return;const [_0x3b075f]=_0x352d0e[_0xe88f18(0x224)][_0xe88f18(0x21a)](_0x15de23,0x1);_0x352d0e[_0xe88f18(0x224)]['splice'](_0x251d83,0x0,_0x3b075f),log(_0xe88f18(0x256)+_0x37b062+_0xe88f18(0x21f)+(_0x15de23+0x1)+_0xe88f18(0x1bc)+(_0x251d83+0x1)+'\x20行。','success'),saveTables(_0x229d8e);}export function insertRow(_0xb4c34e,_0x303522,_0x4d8674=_0x3f33e4(0x1bb)){const _0x68dde5=_0x3f33e4,_0x3a1b0b=getMemoryState(),_0x3995fa=_0x3a1b0b[_0xb4c34e];if(!_0x3995fa){log(_0x68dde5(0x22a)+_0xb4c34e+'\x20的表格。',_0x68dde5(0x20d));return;}let _0xf98005;typeof _0x303522===_0x68dde5(0x24e)?_0xf98005=_0x4d8674===_0x68dde5(0x1e0)?_0x303522:_0x303522+0x1:_0xf98005=_0x3995fa['rows'][_0x68dde5(0x1c1)];if(_0xf98005<0x0)_0xf98005=0x0;if(_0xf98005>_0x3995fa[_0x68dde5(0x224)]['length'])_0xf98005=_0x3995fa[_0x68dde5(0x224)]['length'];const _0x235ae7=new Array(_0x3995fa[_0x68dde5(0x233)][_0x68dde5(0x1c1)])[_0x68dde5(0x1f5)]('');if(typeof _0x303522===_0x68dde5(0x1a7)&&_0x303522!==null)for(const _0x3e38c7 in _0x303522){const _0x437cf8=parseInt(_0x3e38c7,0xa);!isNaN(_0x437cf8)&&_0x437cf8<_0x235ae7[_0x68dde5(0x1c1)]&&(_0x235ae7[_0x437cf8]=_0x303522[_0x3e38c7],addHighlight(_0xb4c34e,_0xf98005,_0x437cf8));}_0x3995fa[_0x68dde5(0x224)][_0x68dde5(0x21a)](_0xf98005,0x0,_0x235ae7),log(_0x68dde5(0x1b0)+_0x3995fa[_0x68dde5(0x18d)]+_0x68dde5(0x1ba)+_0xb4c34e+')\x20的第\x20'+(_0xf98005+0x1)+_0x68dde5(0x1e3),_0x68dde5(0x1c5));const _0x58475a=getContext();if(_0x58475a[_0x68dde5(0x243)]&&_0x58475a['chat'][_0x68dde5(0x1c1)]>0x0){const _0x39a907=_0x58475a[_0x68dde5(0x243)][_0x58475a[_0x68dde5(0x243)][_0x68dde5(0x1c1)]-0x1];if(saveStateToMessage(_0x3a1b0b,_0x39a907)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x489890){const _0x1dd400=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x489890])return;const _0x259e7e=currentTablesState[_0x489890],_0x553343=_0x259e7e[_0x1dd400(0x233)]['length'],_0x164e11=Array(_0x553343)[_0x1dd400(0x1f5)]('');_0x259e7e[_0x1dd400(0x224)][_0x1dd400(0x177)](_0x164e11);const _0x536256=_0x1dd400(0x1e1)+_0x259e7e['name']+_0x1dd400(0x1ef);log(_0x536256,_0x1dd400(0x1df));const _0x120efe=getContext();if(_0x120efe['chat']&&_0x120efe[_0x1dd400(0x243)]['length']>0x0){const _0x538a4f=_0x120efe[_0x1dd400(0x243)][_0x120efe['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x538a4f)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x1e6016){const _0x5e5cff=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x1e6016])return;const _0x5e848d=currentTablesState[_0x1e6016],_0x58b33f=_0x5e5cff(0x21d)+(_0x5e848d[_0x5e5cff(0x233)][_0x5e5cff(0x1c1)]+0x1);_0x5e848d[_0x5e5cff(0x233)][_0x5e5cff(0x177)](_0x58b33f),_0x5e848d['rows'][_0x5e5cff(0x253)](_0x1c6667=>_0x1c6667[_0x5e5cff(0x177)](''));const _0x150fab=_0x5e5cff(0x1e1)+_0x5e848d[_0x5e5cff(0x18d)]+_0x5e5cff(0x248);log(_0x150fab,_0x5e5cff(0x1df));const _0x521b8d=getContext();if(_0x521b8d[_0x5e5cff(0x243)]&&_0x521b8d[_0x5e5cff(0x243)][_0x5e5cff(0x1c1)]>0x0){const _0x2e268c=_0x521b8d['chat'][_0x521b8d[_0x5e5cff(0x243)][_0x5e5cff(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x2e268c)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x46329d,_0x1a83c5,_0x713357){const _0x4a4d41=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x46329d]||currentTablesState[_0x46329d][_0x4a4d41(0x233)][_0x1a83c5]===undefined)return;const _0x1b39e0=currentTablesState[_0x46329d][_0x4a4d41(0x18d)],_0x210f2d=currentTablesState[_0x46329d]['headers'][_0x1a83c5];currentTablesState[_0x46329d][_0x4a4d41(0x233)][_0x1a83c5]=_0x713357;const _0x21df4e=_0x4a4d41(0x1e1)+_0x1b39e0+_0x4a4d41(0x1a0)+_0x210f2d+_0x4a4d41(0x187)+_0x713357+'”。';log(_0x21df4e,_0x4a4d41(0x1df));const _0xa59f52=getContext();if(_0xa59f52[_0x4a4d41(0x243)]&&_0xa59f52[_0x4a4d41(0x243)][_0x4a4d41(0x1c1)]>0x0){const _0x17d204=_0xa59f52[_0x4a4d41(0x243)][_0xa59f52[_0x4a4d41(0x243)][_0x4a4d41(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x17d204)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x3fefa3,_0x3de389){const _0x458fc7=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x3fefa3]||!currentTablesState[_0x3fefa3][_0x458fc7(0x224)][_0x3de389])return;const _0x1cf0e4=currentTablesState[_0x3fefa3][_0x458fc7(0x18d)];currentTablesState[_0x3fefa3][_0x458fc7(0x224)]['splice'](_0x3de389,0x1);const _0x244f78='表格\x20['+_0x1cf0e4+_0x458fc7(0x1a3)+(_0x3de389+0x1)+_0x458fc7(0x191);log(_0x244f78,_0x458fc7(0x1df));const _0xfae376=getContext();if(_0xfae376[_0x458fc7(0x243)]&&_0xfae376[_0x458fc7(0x243)][_0x458fc7(0x1c1)]>0x0){const _0x495a90=_0xfae376[_0x458fc7(0x243)][_0xfae376[_0x458fc7(0x243)][_0x458fc7(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x495a90)){await saveChat();return;}}await saveChatDebounced();}function _0x400f(_0x530476,_0x55ff01){const _0xfebe65=_0xfebe();return _0x400f=function(_0x400f9a,_0x4d6c5e){_0x400f9a=_0x400f9a-0x176;let _0x4cdec0=_0xfebe65[_0x400f9a];return _0x4cdec0;},_0x400f(_0x530476,_0x55ff01);}export function insertColumn(_0x556f24,_0xec2869,_0x581e63){const _0x211932=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x556f24])return;const _0x27a91f=currentTablesState[_0x556f24],_0x2a3f1a=_0x581e63===_0x211932(0x209)?_0xec2869:_0xec2869+0x1,_0x2312a4='新列';_0x27a91f[_0x211932(0x233)][_0x211932(0x21a)](_0x2a3f1a,0x0,_0x2312a4),_0x27a91f[_0x211932(0x224)][_0x211932(0x253)](_0x59f3d6=>_0x59f3d6['splice'](_0x2a3f1a,0x0,''));const _0x561ca7=_0x211932(0x1e1)+_0x27a91f[_0x211932(0x18d)]+']\x20在第\x20'+(_0xec2869+0x1)+_0x211932(0x1c3)+(_0x581e63==='left'?'左侧':'右侧')+_0x211932(0x203);log(_0x561ca7,'info');const _0x3b015b=getContext();if(_0x3b015b['chat']&&_0x3b015b[_0x211932(0x243)][_0x211932(0x1c1)]>0x0){const _0x3627c9=_0x3b015b[_0x211932(0x243)][_0x3b015b['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3627c9)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x4eb493,_0x2a5589,_0xc284d6){const _0x4af05e=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x4eb493])return;const _0x537144=currentTablesState[_0x4eb493],_0x34db75=_0x537144[_0x4af05e(0x233)],_0x65f508=_0x537144['rows'],_0x430102=_0xc284d6===_0x4af05e(0x209)?_0x2a5589-0x1:_0x2a5589+0x1;if(_0x430102<0x0||_0x430102>=_0x34db75[_0x4af05e(0x1c1)]){log(_0x4af05e(0x255)+_0x2a5589+'\x20已在边界。','warn');return;}const [_0xf2b206]=_0x34db75[_0x4af05e(0x21a)](_0x2a5589,0x1);_0x34db75[_0x4af05e(0x21a)](_0x430102,0x0,_0xf2b206),_0x65f508['forEach'](_0x1e74e4=>{const _0x197ef3=_0x4af05e,[_0x2cb230]=_0x1e74e4[_0x197ef3(0x21a)](_0x2a5589,0x1);_0x1e74e4[_0x197ef3(0x21a)](_0x430102,0x0,_0x2cb230);});const _0x4d07d2=_0x4af05e(0x1e1)+_0x537144[_0x4af05e(0x18d)]+']\x20的列“'+_0xf2b206+_0x4af05e(0x1cb)+(_0xc284d6===_0x4af05e(0x209)?'左':'右')+_0x4af05e(0x1f4);log(_0x4d07d2,_0x4af05e(0x1df));const _0x5d586f=getContext();if(_0x5d586f[_0x4af05e(0x243)]&&_0x5d586f['chat'][_0x4af05e(0x1c1)]>0x0){const _0xc6b529=_0x5d586f[_0x4af05e(0x243)][_0x5d586f[_0x4af05e(0x243)][_0x4af05e(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0xc6b529)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x3f9b3f){const _0x16633a=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x3f9b3f])return;const _0x179d4f=currentTablesState[_0x3f9b3f][_0x16633a(0x18d)];currentTablesState[_0x16633a(0x21a)](_0x3f9b3f,0x1);const _0x5c6a03=_0x16633a(0x1e1)+_0x179d4f+']\x20已被成功废黜。';log(_0x5c6a03,_0x16633a(0x1c5));const _0xde11e0=getContext();if(_0xde11e0[_0x16633a(0x243)]&&_0xde11e0[_0x16633a(0x243)][_0x16633a(0x1c1)]>0x0){const _0x378625=_0xde11e0[_0x16633a(0x243)][_0xde11e0[_0x16633a(0x243)][_0x16633a(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x378625)){saveChat(),log(_0x16633a(0x240),_0x16633a(0x1c5));return;}}log(_0x16633a(0x1ee),_0x16633a(0x20d)),saveChatDebounced();}export function addTable(_0x3c715c){const _0x264325=_0x3f33e4;if(!_0x3c715c||!_0x3c715c[_0x264325(0x1ce)]()){log(_0x264325(0x1db),'error'),toastr[_0x264325(0x20d)](_0x264325(0x1ad),_0x264325(0x1e5));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x264325(0x1d4)](_0x38c7b4=>_0x38c7b4[_0x264325(0x18d)]===_0x3c715c[_0x264325(0x1ce)]())){log(_0x264325(0x1c2)+_0x3c715c+_0x264325(0x23f),'error'),toastr[_0x264325(0x20d)]('名为\x20\x22'+_0x3c715c+_0x264325(0x23f),_0x264325(0x1e5));return;}const _0x4a191c={'name':_0x3c715c['trim'](),'headers':[_0x264325(0x238)],'rows':[],'note':_0x264325(0x1dc),'rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState[_0x264325(0x177)](_0x4a191c);const _0x1ddb8e=_0x264325(0x217)+_0x3c715c[_0x264325(0x1ce)]()+']。';log(_0x1ddb8e,_0x264325(0x1c5));const _0x533939=getContext();if(_0x533939[_0x264325(0x243)]&&_0x533939['chat'][_0x264325(0x1c1)]>0x0){const _0x49e3f8=_0x533939[_0x264325(0x243)][_0x533939['chat'][_0x264325(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x49e3f8)){saveChat(),log(_0x264325(0x17e),_0x264325(0x1c5));return;}}log(_0x264325(0x24f),_0x264325(0x20d)),saveChatDebounced();}export function renameTable(_0x41fe94,_0xe75a8f){const _0xcf9427=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x41fe94]){log('重命名失败:表格不存在。',_0xcf9427(0x20d)),toastr[_0xcf9427(0x20d)](_0xcf9427(0x20e),'重命名失败');return;}const _0x5e9d9d=_0xe75a8f['trim']();if(!_0x5e9d9d){log('重命名失败:名称不能为空。',_0xcf9427(0x20d)),toastr['error']('表格名称不能为空。',_0xcf9427(0x22d));return;}if(currentTablesState['some']((_0x334efb,_0xf65f69)=>_0xf65f69!==_0x41fe94&&_0x334efb[_0xcf9427(0x18d)]===_0x5e9d9d)){log(_0xcf9427(0x1b7)+_0x5e9d9d+_0xcf9427(0x23f),_0xcf9427(0x20d)),toastr[_0xcf9427(0x20d)](_0xcf9427(0x245)+_0x5e9d9d+_0xcf9427(0x23f),_0xcf9427(0x22d));return;}const _0x370a81=currentTablesState[_0x41fe94]['name'];currentTablesState[_0x41fe94][_0xcf9427(0x18d)]=_0x5e9d9d,log(_0xcf9427(0x239)+_0x370a81+_0xcf9427(0x1b8)+_0x5e9d9d+'\x22。','success');const _0x592629=getContext();if(_0x592629[_0xcf9427(0x243)]&&_0x592629[_0xcf9427(0x243)][_0xcf9427(0x1c1)]>0x0){const _0x16da81=_0x592629[_0xcf9427(0x243)][_0x592629['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x16da81)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x3dde56,_0x3eb6a8){const _0xaa1334=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x3dde56])return;const _0xe6791c=_0x3eb6a8==='up'?_0x3dde56-0x1:_0x3dde56+0x1;if(_0xe6791c<0x0||_0xe6791c>=currentTablesState[_0xaa1334(0x1c1)]){log(_0xaa1334(0x1bf)+_0x3dde56+_0xaa1334(0x1d5),_0xaa1334(0x254));return;}const _0x30a9ea=currentTablesState[_0x3dde56];currentTablesState[_0x3dde56]=currentTablesState[_0xe6791c],currentTablesState[_0xe6791c]=_0x30a9ea;const _0xc087cf=_0xaa1334(0x1e1)+_0x30a9ea[_0xaa1334(0x18d)]+_0xaa1334(0x1ed);log(_0xc087cf,_0xaa1334(0x1c5));const _0x2fa2b3=getContext();if(_0x2fa2b3[_0xaa1334(0x243)]&&_0x2fa2b3[_0xaa1334(0x243)][_0xaa1334(0x1c1)]>0x0){const _0x244ab1=_0x2fa2b3[_0xaa1334(0x243)][_0x2fa2b3['chat'][_0xaa1334(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x244ab1)){saveChat(),log(_0xaa1334(0x19c),_0xaa1334(0x1c5));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!',_0xaa1334(0x20d)),saveChatDebounced();}export function updateTableRules(_0x38a489,_0x27f715){const _0xbd65f1=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x38a489])return;const _0x22cb01=currentTablesState[_0x38a489];_0x22cb01['note']=_0x27f715[_0xbd65f1(0x201)],_0x22cb01[_0xbd65f1(0x1f2)]=_0x27f715['rule_add'],_0x22cb01[_0xbd65f1(0x22b)]=_0x27f715[_0xbd65f1(0x22b)],_0x22cb01[_0xbd65f1(0x183)]=_0x27f715[_0xbd65f1(0x183)];const _0x15f0fc=_0xbd65f1(0x1e1)+_0x22cb01[_0xbd65f1(0x18d)]+_0xbd65f1(0x19d);log(_0x15f0fc,_0xbd65f1(0x1df));const _0x1efe8e=getContext();if(_0x1efe8e[_0xbd65f1(0x243)]&&_0x1efe8e[_0xbd65f1(0x243)][_0xbd65f1(0x1c1)]>0x0){const _0x3c5701=_0x1efe8e[_0xbd65f1(0x243)][_0x1efe8e[_0xbd65f1(0x243)][_0xbd65f1(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x3c5701)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x557866,_0x161371,_0x34c097){const _0x143c34=_0x3f33e4;if(!currentTablesState||!currentTablesState[_0x557866]){log('AI指令错误尝试在不存在的表格索引\x20'+_0x557866+_0x143c34(0x18c),_0x143c34(0x20d));return;}const _0x1e6818=currentTablesState[_0x557866];if(_0x161371>=_0x1e6818[_0x143c34(0x224)][_0x143c34(0x1c1)]){log(_0x143c34(0x1de)+_0x161371+'),已智能转换为在表格\x20['+_0x1e6818[_0x143c34(0x18d)]+_0x143c34(0x1c6),'warn'),insertRow(_0x557866,_0x34c097);return;}const _0x235b93=_0x1e6818[_0x143c34(0x224)][_0x161371];for(const _0x5e8186 in _0x34c097){const _0x45f658=parseInt(_0x5e8186,0xa);_0x45f658<_0x235b93[_0x143c34(0x1c1)]&&(_0x235b93[_0x45f658]=_0x34c097[_0x45f658],addHighlight(_0x557866,_0x161371,_0x45f658));}const _0x507641=_0x143c34(0x1b1)+_0x1e6818[_0x143c34(0x18d)]+_0x143c34(0x1a3)+(_0x161371+0x1)+_0x143c34(0x189);log(_0x507641,_0x143c34(0x1df));const _0x264c30=getContext();if(_0x264c30[_0x143c34(0x243)]&&_0x264c30[_0x143c34(0x243)][_0x143c34(0x1c1)]>0x0){const _0x51817b=_0x264c30[_0x143c34(0x243)][_0x264c30[_0x143c34(0x243)][_0x143c34(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x51817b)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x5035e0=_0x3f33e4;if(!currentTablesState){log(_0x5035e0(0x198),_0x5035e0(0x20d));return;}currentTablesState['forEach'](_0x551ea7=>{const _0x313832=_0x5035e0;_0x551ea7[_0x313832(0x224)]=[];}),log(_0x5035e0(0x1aa),_0x5035e0(0x254));const _0x552ff9=getContext();if(_0x552ff9[_0x5035e0(0x243)]&&_0x552ff9[_0x5035e0(0x243)]['length']>0x0){const _0x5e1329=_0x552ff9[_0x5035e0(0x243)][_0x552ff9[_0x5035e0(0x243)][_0x5035e0(0x1c1)]-0x1];if(saveStateToMessage(currentTablesState,_0x5e1329)){saveChat(),log(_0x5035e0(0x1fb),_0x5035e0(0x1c5)),toastr['success'](_0x5035e0(0x1d3),_0x5035e0(0x1c9));return;}}log(_0x5035e0(0x219),_0x5035e0(0x20d)),saveChatDebounced();}export function convertTablesToCsvString(){const _0x5969d5=_0x3f33e4;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x32d002='';return currentTablesState[_0x5969d5(0x253)]((_0x268680,_0x5689d9)=>{const _0x5ca44a=_0x5969d5;_0x32d002+=_0x5ca44a(0x21c)+_0x5689d9+':'+_0x268680[_0x5ca44a(0x18d)]+'\x0a',_0x32d002+=_0x5ca44a(0x20b)+(_0x268680['note']||'无')+'\x0a';const _0x2944a6=_0x268680[_0x5ca44a(0x18d)]['replace'](/\s/g,'')+'内容';_0x32d002+='<'+_0x2944a6+'>\x0a';const _0x3a698d=_0x268680[_0x5ca44a(0x233)][_0x5ca44a(0x23d)]((_0x145d5d,_0x1bb247)=>_0x1bb247+':'+_0x145d5d)[_0x5ca44a(0x1b9)](',');_0x32d002+=_0x5ca44a(0x207)+_0x3a698d+'\x0a',_0x268680[_0x5ca44a(0x224)][_0x5ca44a(0x253)]((_0x162624,_0x3b39a0)=>{const _0x1a4ca2=_0x5ca44a;if(Array['isArray'](_0x162624)){const _0x27cd9c=_0x162624[_0x1a4ca2(0x23d)](_0x2ddb32=>{const _0x251ca9=_0x1a4ca2;return _0x2ddb32===null||_0x2ddb32===undefined||_0x2ddb32===''?'未知':_0x2ddb32[_0x251ca9(0x218)]();})['join'](',');_0x32d002+=_0x3b39a0+','+_0x27cd9c+'\x0a';}}),_0x32d002+='</'+_0x2944a6+'>\x0a',_0x32d002+=_0x5ca44a(0x185)+(_0x268680[_0x5ca44a(0x1f2)]||'允许')+'\x0a',_0x32d002+='【删除】:\x20'+(_0x268680[_0x5ca44a(0x22b)]||'允许')+'\x0a',_0x32d002+='【修改】:\x20'+(_0x268680[_0x5ca44a(0x183)]||'允许')+'\x0a',_0x5689d9<currentTablesState[_0x5ca44a(0x1c1)]-0x1&&(_0x32d002+=_0x5ca44a(0x234));}),_0x32d002;}export function convertTablesToCsvStringForContentOnly(){const _0x5e53ea=_0x3f33e4,_0x42abab=getMemoryState();if(!_0x42abab||_0x42abab[_0x5e53ea(0x1c1)]===0x0)return'';let _0x16c112='';return _0x42abab[_0x5e53ea(0x253)](_0x1527d4=>{const _0x4f276e=_0x5e53ea;_0x16c112+='\x0a<'+_0x1527d4['name']+'>\x0a';const _0x42dcc5=_0x1527d4['headers'][_0x4f276e(0x23d)]((_0x4f41ee,_0x3b0cff)=>String[_0x4f276e(0x197)](0x41+_0x3b0cff)+':'+_0x4f41ee)['join'](',');_0x16c112+=_0x42dcc5+'\x0a',Array[_0x4f276e(0x1a4)](_0x1527d4[_0x4f276e(0x224)])&&_0x1527d4['rows'][_0x4f276e(0x253)]((_0x65f81d,_0x518aa2)=>{const _0x17e996=_0x4f276e;if(Array[_0x17e996(0x1a4)](_0x65f81d)){const _0x5cae97=_0x65f81d['join'](',');_0x16c112+=_0x518aa2+0x1+':'+_0x5cae97+'\x0a';}}),_0x16c112+='</'+_0x1527d4['name']+'>\x0a';}),_0x16c112[_0x5e53ea(0x1ce)]();}loadTables();export function getBatchFillerRuleTemplate(){const _0x4dd041=_0x3f33e4;return extension_settings[extensionName]?.[_0x4dd041(0x226)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x5f0c1e){const _0x370c8b=_0x3f33e4;extension_settings[extensionName][_0x370c8b(0x226)]=_0x5f0c1e,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x54390b=_0x3f33e4;return extension_settings[extensionName]?.[_0x54390b(0x1b6)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x56268a){const _0x2839a7=_0x3f33e4;extension_settings[extensionName][_0x2839a7(0x1b6)]=_0x56268a,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x586d36=_0x3f33e4;return extension_settings[extensionName]?.[_0x586d36(0x223)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x27d90b){const _0x268efa=_0x3f33e4;if(!_0x27d90b){log(_0x268efa(0x1f9),_0x268efa(0x254));return;}const _0x25a095=_0x27d90b[_0x268efa(0x1d1)](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0x25a095||!_0x25a095[0x1]){log('未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。','warn');return;}let _0x2ab8b7=_0x25a095[0x1]['replace'](/<!--|-->/g,'')[_0x268efa(0x1ce)]();if(!_0x2ab8b7){log(_0x268efa(0x241),_0x268efa(0x1df));return;}const _0x402cd3=_0x2ab8b7[_0x268efa(0x1a1)]('\x0a')[_0x268efa(0x18f)](_0x5d600b=>_0x5d600b['trim']()!=='');log('准备执行从AI返回的\x20'+_0x402cd3['length']+'\x20条表格操作指令...',_0x268efa(0x1df));const _0x4eba68={'insertRow':(_0x3f9a8c,_0x167c68)=>{const _0x1479d6=_0x268efa;log(_0x1479d6(0x1a6)+_0x3f9a8c+_0x1479d6(0x23e)+JSON[_0x1479d6(0x1ca)](_0x167c68)+')',_0x1479d6(0x1df)),insertRow(_0x3f9a8c,_0x167c68);},'deleteRow':(_0x52fae2,_0x428c74)=>{const _0x30555a=_0x268efa;log('执行AI指令:\x20deleteRow(tableIndex='+_0x52fae2+_0x30555a(0x213)+_0x428c74+')',_0x30555a(0x1df)),deleteRow(_0x52fae2,_0x428c74);},'updateRow':(_0x116cbf,_0x21b3d0,_0x1e4b52)=>{const _0x54895e=_0x268efa;log(_0x54895e(0x17b)+_0x116cbf+',\x20rowIndex='+_0x21b3d0+',\x20data='+JSON['stringify'](_0x1e4b52)+')',_0x54895e(0x1df)),updateRow(_0x116cbf,_0x21b3d0,_0x1e4b52);}};try{const _0x5dd6a1=Object[_0x268efa(0x1b5)](async function(){})['constructor'],_0x5027c5=new _0x5dd6a1('runner',_0x268efa(0x204)+_0x2ab8b7+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');await _0x5027c5(_0x4eba68),log(_0x268efa(0x1fd),_0x268efa(0x1c5)),toastr[_0x268efa(0x1c5)]('已根据AI的指示成功更新表格','填表完成'),document['dispatchEvent'](new CustomEvent('amily2-force-ui-reload'));}catch(_0x53ca11){log(_0x268efa(0x242)+_0x53ca11[_0x268efa(0x176)],_0x268efa(0x20d)),toastr['error'](_0x268efa(0x188)+_0x53ca11[_0x268efa(0x176)],'执行失败');}}export function saveAiTemplate(_0xac41de){extension_settings[extensionName]['amily2_ai_template']=_0xac41de,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function _0xfebe(){const _0x1f11f9=['1822785VncjRs','完整备份','无法创建表格:名称不能为空。','这是一个新创建的表格。','用户取消了导入操作。','AI指令意图更新不存在的行\x20(rowIndex:\x20','info','above','表格\x20[','target','\x20行位置插入了新行。','结束时间','创建失败','导出成功','全局预设已成功导入并保存到扩展设置中。','input','上层叙事者明确要求需要修改时','815064VesokR','function','10oJIIUU',']\x20的顺序已调整。','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!',']\x20新增了一行。','对<user>态度','2303yzVExx','rule_add','当特定时间约定一起去做某件重要、关键的事时/某角色收到做某件重要、关键事情的命令或任务时/某角色确定执行某件重要、关键的事时','移动。','fill','substring','5LycjDW','removeChild','AI返回内容为空无法更新表格。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗\x0a\x0a清除后新聊天将恢复使用扩展内置的默认表格模板。','清空行数据后的状态已强制写入最新消息并立即保存。','此表不存在任何一行时','所有AI指令已成功执行完毕。','1794760Anoogo','84406zlQXzK','此地角色','note','操作已取消。','插入了新列。','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20{\x20insertRow,\x20deleteRow,\x20updateRow\x20}\x20=\x20runner;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','href','消耗品彻底使用完后/一次性物品被使用后','rowIndex,','文件格式无效或缺少版本号/表格数据。','left','拥有者','【说明】:\x0a','Amily2-','error','表格不存在。','导入的表格数据格式不正确:\x20','onchange','时空栏','\x20的列。',',\x20rowIndex=','当大家赴约时/任务或命令有进展、完成、失败时/任务、命令、约定被取消时','1155efZqSE','用户取消了清除全局预设的操作。','已成功创建新表格:[','toString','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','splice','download','\x0a*\x20','新列\x20','角色明确死亡且以后绝不会再出场时','\x20的第\x20','上层叙事者在第四面墙外对故事或游戏进行提示、要求、命令时/上层叙事者使用括号包裹提示、要求、命令时','对某人很贵重或有特殊纪念意义的物品','mes','amily2_ai_template','rows','没有可导出的表格数据。','batch_filler_rule_template','全局预设已被清除。','accept','\x22\x20已更新内存状态。','插入行失败:找不到索引为\x20','rule_delete','任务栏','重命名失败','全局预设已清除,新聊天将使用默认模板。','readAsText','file','当叙述的场景、时间、人物变更时','当某人获得贵重或含有特殊意义的物品时/当某个已有物品获得特殊意义时','headers','\x0a---\x0a','type','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设是否确定','parse','新列\x201','表格\x20\x22','导入全局预设失败:\x20','物品栏','1044qqehFv','map',',\x20data=','\x22\x20的表格已存在。','废黜表格后的状态已强制写入最新消息并立即保存。','AI指令块为空无需执行任何操作。','执行AI指令时发生错误:\x20','chat','aiFlowTemplate','名为\x20\x22','.json','createObjectURL',']\x20新增了一列。','click','Amily2-Table-Preset-v2.0-full','导入失败:','...]','当本轮出现表中没有的新角色时,应插入','number','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','every','表格状态已准备写入消息\x20[','createElement','forEach','warn','无法移动列:索引\x20','成功将表格\x20','message','push','batchFillerRuleTemplate','aiTemplate','injectionFlowTemplate','执行AI指令:\x20updateRow(tableIndex=','revokeObjectURL','batchFillerFlowTemplate','新表格状态已强制写入最新消息并立即保存。','删除列失败:在表格\x20','设置成功','aiRuleTemplate','冻结留存/禁止删除','rule_update','body','【增加】:\x20','导入预设失败:\x20','”已更新为“','执行AI指令时出错:\x20','\x20行。','公告栏','application/json','\x20中操作。','name','slice','filter','加载全局预设失败:\x20','\x20行已删除。','\x20列。','无法导出:当前表格状态为空。','clear','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格包括结构和内容。\x0a\x0a此操作不可逆是否确定要继续','\x20中找不到索引为\x20','fromCharCode','无法清空:当前表格状态为空。','此表大于一行时应删除多余行','导入的预设已强制写入最新消息并立即保存。','onload','表格顺序调整后的状态已强制写入最新消息并立即保存。',']\x20的规则已更新。','global_table_preset','】已成功导出。',']\x20的表头“','split','Amily2-Table-Preset-v3.0-separated_templates',']\x20的第\x20','isArray','其他重要信息','执行AI指令:\x20insertRow(tableIndex=','object','\x20条消息中找到基准表格数据。','任务名','所有表格的行数据已在内存中清空。','导入成功','用户取消了全局预设导入操作。','表格名称不能为空。','UI操作\x20\x22','缺少状态或目标消息,无法保存。','成功在表格\x20','AI\x20指令更新了表格\x20[','tables','记录已完成或进展中重要、关键事情的任务、命令、约定/禁止记录不重要、不关键的事情/开始和结束时间应精确至具体日期、时段、时间','角色栏','getPrototypeOf','batch_filler_flow_template','重命名失败:名为\x20\x22','\x22\x20已重命名为\x20\x22','join','\x20(索引\x20','below','\x20行移动到第\x20','result','重要原因','无法移动表格:索引\x20','version','length','无法创建表格:名为\x20\x22','\x20列的','预设已成功导入并应用。','success',']\x20末尾新增一行。','导入操作已取消。','11994mWGjEO','操作完成','stringify','”已向','成功删除了表格\x20','3710457DZvqKn','trim','extra','confirm','match','amily2_tables_data','所有表格的剧情内容已清空。','some','\x20已在边界。','角色的基础信息csv表格思考本轮有否有其中的角色他应作出什么反应/外貌指:五官、面容、肤色、发型等/身体指:体型、身材、肤色、罩杯等/衣着指:身上的穿戴、服装的式样等/身份指:出身、社会地位等/职业指职责、岗位等/与<user>关系指:角色与<user>的社会关系(如:父亲、母亲、姐姐、妻子等)/爱好指:拥有浓厚兴趣和喜爱的某种事物、人物、活动/住所指:经常居住地','开始时间','toISOString'];_0xfebe=function(){return _0x1f11f9;};return _0xfebe();}function exportPresetBase(_0x3bbd38=![]){const _0x1a23dd=_0x3f33e4;if(!currentTablesState){log(_0x1a23dd(0x193),'error'),toastr['error'](_0x1a23dd(0x225));return;}let _0x57916c,_0x24a1e0,_0x5352a6;_0x3bbd38?(_0x57916c=JSON[_0x1a23dd(0x237)](JSON[_0x1a23dd(0x1ca)](currentTablesState)),_0x24a1e0=_0x1a23dd(0x24a),_0x5352a6=_0x1a23dd(0x1da)):(_0x57916c=currentTablesState[_0x1a23dd(0x23d)](_0x319bd5=>({'name':_0x319bd5[_0x1a23dd(0x18d)],'headers':_0x319bd5[_0x1a23dd(0x233)],'note':_0x319bd5['note'],'rule_add':_0x319bd5[_0x1a23dd(0x1f2)],'rule_delete':_0x319bd5[_0x1a23dd(0x22b)],'rule_update':_0x319bd5['rule_update'],'rows':[]})),_0x24a1e0='Amily2-Table-Preset-v2.0-clean',_0x5352a6='纯净预设');const _0x32263b={'version':_0x1a23dd(0x1a2),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x57916c},_0x576144=new Blob([JSON[_0x1a23dd(0x1ca)](_0x32263b,null,0x2)],{'type':_0x1a23dd(0x18b)}),_0x4c5f18=URL[_0x1a23dd(0x247)](_0x576144),_0x58ecf8=document[_0x1a23dd(0x252)]('a');_0x58ecf8[_0x1a23dd(0x205)]=_0x4c5f18,_0x58ecf8[_0x1a23dd(0x21b)]=_0x1a23dd(0x20c)+_0x5352a6+'-'+new Date()[_0x1a23dd(0x1d8)]()[_0x1a23dd(0x18e)](0x0,0xa)+_0x1a23dd(0x246),document['body']['appendChild'](_0x58ecf8),_0x58ecf8[_0x1a23dd(0x249)](),document[_0x1a23dd(0x184)][_0x1a23dd(0x1f8)](_0x58ecf8),URL[_0x1a23dd(0x17c)](_0x4c5f18),log('【'+_0x5352a6+_0x1a23dd(0x19f),_0x1a23dd(0x1c5)),toastr[_0x1a23dd(0x1c5)]('【'+_0x5352a6+'】已开始下载。',_0x1a23dd(0x1e6));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0xf4cc34){const _0x4055b3=_0x3f33e4,_0x1c1e43=document['createElement']('input');_0x1c1e43[_0x4055b3(0x235)]=_0x4055b3(0x230),_0x1c1e43['accept']=_0x4055b3(0x246),_0x1c1e43[_0x4055b3(0x210)]=_0x2fc398=>{const _0x5609a3=_0x4055b3,_0x4ab61e=_0x2fc398[_0x5609a3(0x1e2)]['files'][0x0];if(!_0x4ab61e)return;const _0x54e9bf=new FileReader();_0x54e9bf[_0x5609a3(0x19b)]=_0xcdff3b=>{const _0x3b282a=_0x5609a3;try{const _0x3ce801=JSON[_0x3b282a(0x237)](_0xcdff3b['target'][_0x3b282a(0x1bd)]);if(!_0x3ce801['version']||!Array[_0x3b282a(0x1a4)](_0x3ce801[_0x3b282a(0x1b2)]))throw new Error(_0x3b282a(0x208));const _0x22d4a2=window[_0x3b282a(0x1d0)](_0x3b282a(0x195));if(!_0x22d4a2){log(_0x3b282a(0x1dd),_0x3b282a(0x1df)),toastr[_0x3b282a(0x1df)](_0x3b282a(0x1c7));return;}if(_0x3ce801[_0x3b282a(0x1c0)]===_0x3b282a(0x1a2))saveBatchFillerRuleTemplate(_0x3ce801['batchFillerRuleTemplate']),saveBatchFillerFlowTemplate(_0x3ce801[_0x3b282a(0x17d)]),saveAiTemplate(_0x3ce801[_0x3b282a(0x17a)]);else{if(_0x3ce801['aiRuleTemplate']!==undefined&&_0x3ce801[_0x3b282a(0x244)]!==undefined)saveBatchFillerRuleTemplate(_0x3ce801[_0x3b282a(0x181)]),saveBatchFillerFlowTemplate(_0x3ce801[_0x3b282a(0x244)]),saveAiTemplate(_0x3ce801[_0x3b282a(0x244)]);else{if(_0x3ce801[_0x3b282a(0x179)])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x3ce801[_0x3b282a(0x179)]),saveAiTemplate(_0x3ce801[_0x3b282a(0x179)]);else throw new Error('预设中缺少必要的指令模板字段。');}}const _0x1de92b=_0x3ce801['tables'];_0x1de92b[_0x3b282a(0x253)](_0x3f7bf7=>{const _0x16ea5a=_0x3b282a;if(_0x3f7bf7[_0x16ea5a(0x18d)]===undefined||_0x3f7bf7['headers']===undefined||_0x3f7bf7[_0x16ea5a(0x224)]===undefined)throw new Error(_0x16ea5a(0x20f)+JSON[_0x16ea5a(0x1ca)](_0x3f7bf7));if(_0x3f7bf7[_0x16ea5a(0x201)]===undefined)_0x3f7bf7[_0x16ea5a(0x201)]='无';if(_0x3f7bf7[_0x16ea5a(0x1f2)]===undefined)_0x3f7bf7[_0x16ea5a(0x1f2)]='允许';if(_0x3f7bf7['rule_delete']===undefined)_0x3f7bf7[_0x16ea5a(0x22b)]='允许';if(_0x3f7bf7['rule_update']===undefined)_0x3f7bf7['rule_update']='允许';}),setMemoryState(_0x1de92b);const _0x2f454a=getContext();if(_0x2f454a[_0x3b282a(0x243)]&&_0x2f454a[_0x3b282a(0x243)][_0x3b282a(0x1c1)]>0x0){const _0x6dc231=_0x2f454a[_0x3b282a(0x243)][_0x2f454a[_0x3b282a(0x243)]['length']-0x1];saveStateToMessage(getMemoryState(),_0x6dc231)&&(saveChat(),log(_0x3b282a(0x19a),_0x3b282a(0x1c5)));}else saveChatDebounced();log(_0x3b282a(0x1c4),_0x3b282a(0x1c5)),toastr['success']('预设已成功导入!',_0x3b282a(0x1ab)),typeof _0xf4cc34===_0x3b282a(0x1eb)&&_0xf4cc34();}catch(_0x2cb367){log(_0x3b282a(0x186)+_0x2cb367[_0x3b282a(0x176)],'error'),toastr[_0x3b282a(0x20d)](_0x3b282a(0x24b)+_0x2cb367[_0x3b282a(0x176)],'错误');}},_0x54e9bf[_0x5609a3(0x22f)](_0x4ab61e);},_0x1c1e43['click']();}export function isCurrentTablesEmpty(){const _0x3985f6=_0x3f33e4,_0x4eb737=getMemoryState();if(!_0x4eb737||_0x4eb737[_0x3985f6(0x1c1)]===0x0)return!![];return _0x4eb737[_0x3985f6(0x250)](_0x5186b7=>!_0x5186b7[_0x3985f6(0x224)]||_0x5186b7[_0x3985f6(0x224)][_0x3985f6(0x1c1)]===0x0);}export function clearGlobalPreset(){const _0x1871ed=_0x3f33e4;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x1871ed(0x19e)]){const _0x50b8f8=window[_0x1871ed(0x1d0)](_0x1871ed(0x1fa));_0x50b8f8?(delete extension_settings[extensionName][_0x1871ed(0x19e)],saveSettingsDebounced(),log(_0x1871ed(0x227),_0x1871ed(0x1c5)),toastr[_0x1871ed(0x1c5)](_0x1871ed(0x22e),'操作成功')):(log(_0x1871ed(0x216),_0x1871ed(0x1df)),toastr[_0x1871ed(0x1df)](_0x1871ed(0x202)));}else log('无需清除,当前未设置任何全局预设。',_0x1871ed(0x1df)),toastr[_0x1871ed(0x1df)]('当前没有设置全局预设。','提示');}export function importGlobalPreset(_0x4b1079){const _0xa99e89=_0x3f33e4,_0x5412e1=document[_0xa99e89(0x252)](_0xa99e89(0x1e8));_0x5412e1[_0xa99e89(0x235)]=_0xa99e89(0x230),_0x5412e1[_0xa99e89(0x228)]=_0xa99e89(0x246),_0x5412e1[_0xa99e89(0x210)]=_0xfe904=>{const _0x5c8688=_0xa99e89,_0xd6a6cb=_0xfe904[_0x5c8688(0x1e2)]['files'][0x0];if(!_0xd6a6cb)return;const _0x1801ed=new FileReader();_0x1801ed[_0x5c8688(0x19b)]=_0x4f83d8=>{const _0x430ce4=_0x5c8688;try{const _0x28cffd=JSON['parse'](_0x4f83d8[_0x430ce4(0x1e2)][_0x430ce4(0x1bd)]);if(!_0x28cffd['version']||!Array[_0x430ce4(0x1a4)](_0x28cffd[_0x430ce4(0x1b2)]))throw new Error(_0x430ce4(0x208));const _0x4ab074=window[_0x430ce4(0x1d0)](_0x430ce4(0x236));if(!_0x4ab074){log(_0x430ce4(0x1ac),_0x430ce4(0x1df)),toastr['info'](_0x430ce4(0x202));return;}const _0x37d326=_0x28cffd['tables'][_0x430ce4(0x23d)](_0x3346df=>({'name':_0x3346df['name'],'headers':_0x3346df[_0x430ce4(0x233)],'note':_0x3346df[_0x430ce4(0x201)],'rule_add':_0x3346df[_0x430ce4(0x1f2)],'rule_delete':_0x3346df[_0x430ce4(0x22b)],'rule_update':_0x3346df[_0x430ce4(0x183)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={}),extension_settings[extensionName][_0x430ce4(0x19e)]={'version':_0x28cffd['version'],'tables':_0x37d326,'batchFillerRuleTemplate':_0x28cffd[_0x430ce4(0x178)],'batchFillerFlowTemplate':_0x28cffd['batchFillerFlowTemplate'],'injectionFlowTemplate':_0x28cffd[_0x430ce4(0x17a)]},saveSettingsDebounced(),log(_0x430ce4(0x1e7),_0x430ce4(0x1c5)),toastr[_0x430ce4(0x1c5)]('全局预设已设置!新聊天将默认使用此预设。',_0x430ce4(0x180)),typeof _0x4b1079==='function'&&_0x4b1079();}catch(_0x217541){log(_0x430ce4(0x23a)+_0x217541[_0x430ce4(0x176)],_0x430ce4(0x20d)),toastr[_0x430ce4(0x20d)](_0x430ce4(0x24b)+_0x217541['message'],'错误');}},_0x1801ed[_0x5c8688(0x22f)](_0xd6a6cb);},_0x5412e1[_0xa99e89(0x249)]();}