diff --git a/core/table-system/manager.js b/core/table-system/manager.js index 0c680b5..1951d72 100644 --- a/core/table-system/manager.js +++ b/core/table-system/manager.js @@ -1 +1 @@ -const _0x6350c4=_0xd105;(function(_0x364eab,_0x1efc3a){const _0xced5c6=_0xd105,_0x361163=_0x364eab();while(!![]){try{const _0x3fb34e=parseInt(_0xced5c6(0x11a))/0x1*(parseInt(_0xced5c6(0x185))/0x2)+-parseInt(_0xced5c6(0xa8))/0x3*(parseInt(_0xced5c6(0xfe))/0x4)+-parseInt(_0xced5c6(0xd9))/0x5+parseInt(_0xced5c6(0x179))/0x6+parseInt(_0xced5c6(0x18c))/0x7+parseInt(_0xced5c6(0x130))/0x8*(parseInt(_0xced5c6(0xb3))/0x9)+-parseInt(_0xced5c6(0x169))/0xa;if(_0x3fb34e===_0x1efc3a)break;else _0x361163['push'](_0x361163['shift']());}catch(_0x5d4a41){_0x361163['push'](_0x361163['shift']());}}}(_0x50a6,0xbfed4));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{executeCommands}from'./executor.js';import{fillWithSecondaryApi}from'./secondary-filler.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';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();function dispatchTableUpdate(_0x1a544e){const _0x370083=_0xd105,_0x2101de=extension_settings[extensionName]||{};if(_0x2101de[_0x370083(0x10a)]===![])return;if(!currentTablesState||!currentTablesState[_0x1a544e])return;const _0x30fcd6=currentTablesState[_0x1a544e];let _0xf94e1=_0x370083(0xe3);if(_0x30fcd6[_0x370083(0xec)]['includes']('时空')||_0x30fcd6[_0x370083(0xec)]['includes'](_0x370083(0x134)))_0xf94e1=_0x370083(0x135);if(_0x30fcd6[_0x370083(0xec)][_0x370083(0xd7)]('日志')||_0x30fcd6[_0x370083(0xec)][_0x370083(0xd7)]('Log'))_0xf94e1=_0x370083(0xf0);const _0x2ba635=new CustomEvent(_0x370083(0x116),{'detail':{'tableName':_0x30fcd6[_0x370083(0xec)],'data':_0x30fcd6['rows'],'headers':_0x30fcd6[_0x370083(0x19c)],'rowStatuses':_0x30fcd6[_0x370083(0x142)]||[],'role':_0xf94e1}});document[_0x370083(0x174)](_0x2ba635),log('[SuperMemory]\x20Dispatched\x20update\x20event\x20for\x20'+_0x30fcd6[_0x370083(0xec)],_0x370083(0xe0));}function dispatchAllTablesUpdate(){const _0x43336d=_0xd105;if(!currentTablesState)return;log('[SuperMemory]\x20Dispatching\x20update\x20events\x20for\x20ALL\x20tables...',_0x43336d(0xe0)),currentTablesState[_0x43336d(0xbd)]((_0x3224bf,_0xb3db58)=>{dispatchTableUpdate(_0xb3db58);});}export function addHighlight(_0x54ab8b,_0x5725aa,_0x5a384c){const _0x31f086=_0xd105,_0x3a6efb=_0x54ab8b+'-'+_0x5725aa+'-'+_0x5a384c;highlightedCells[_0x31f086(0x15a)](_0x3a6efb);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x2ff358=_0xd105;highlightedCells[_0x2ff358(0x188)]>0x0&&(highlightedCells[_0x2ff358(0x189)](),log(_0x2ff358(0x109),'info'));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x503a8d=_0xd105;updatedTables[_0x503a8d(0x188)]>0x0&&(updatedTables['clear'](),log(_0x503a8d(0x175),_0x503a8d(0xe0)));}export function setMemoryState(_0x1ac2db){currentTablesState=_0x1ac2db;}export function loadMemoryState(_0x789a40){const _0x16d4cc=_0xd105;if(!_0x789a40)return;setMemoryState(_0x789a40),renderTables(),updateOrInsertTableInChat(),log(_0x16d4cc(0xf6),'info');}export function saveMemoryState(){const _0x1f531a=_0xd105,_0x1fcb3d=getContext();if(_0x1fcb3d[_0x1f531a(0xac)]&&_0x1fcb3d['chat'][_0x1f531a(0xff)]>0x0){const _0x1f007a=_0x1fcb3d[_0x1f531a(0xac)][_0x1fcb3d['chat'][_0x1f531a(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x1f007a))return!![];}return![];}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':'时空栏','headers':['日期','时段','时间','地点',_0x6350c4(0xa4)],'note':_0x6350c4(0x114),'rule_add':'【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','rule_delete':_0x6350c4(0x18e),'rule_update':_0x6350c4(0x102),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':'角色栏','headers':[_0x6350c4(0x13c),'外貌','身形','衣着','性格','身份','职业','与关系','爱好','住所',_0x6350c4(0xd8)],'note':_0x6350c4(0x11e),'rule_add':_0x6350c4(0x195),'rule_delete':_0x6350c4(0x17c),'rule_update':'【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0x6350c4(0xe4),'headers':[_0x6350c4(0xb2),_0x6350c4(0x106),'关系','详情'],'columnWidths':[],'note':_0x6350c4(0xf4),'rule_add':_0x6350c4(0x124),'rule_delete':'【触发条件】当两个NPC之间的关系彻底断绝且不再影响剧情,或者其中一方彻底消失/死亡时,可以删除。','rule_update':_0x6350c4(0x166),'charLimitRules':{},'rowLimitRule':0x0,'rows':[],'rowStatuses':[]},{'name':'任务栏','headers':[_0x6350c4(0x138),'类型','详情','状态',_0x6350c4(0x11c),'地点',_0x6350c4(0x117),'结果'],'note':_0x6350c4(0xca),'rule_add':'【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','rule_delete':_0x6350c4(0x147),'rule_update':_0x6350c4(0x191),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x6350c4(0xc3),'headers':['物品名','类型','详情','状态',_0x6350c4(0x8b),_0x6350c4(0x120)],'note':_0x6350c4(0xbc),'rule_add':_0x6350c4(0x128),'rule_delete':'【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','rule_update':_0x6350c4(0x196),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':'技能栏','headers':[_0x6350c4(0x167),_0x6350c4(0x96)],'note':'【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','rule_add':'【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','rule_delete':_0x6350c4(0x8c),'rule_update':_0x6350c4(0x168),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':'设定栏','headers':['类型',_0x6350c4(0x119)],'note':_0x6350c4(0x14e),'rule_add':'【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','rule_delete':_0x6350c4(0xb7),'rule_update':'【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x328549=_0x6350c4;log(_0x328549(0x14a),_0x328549(0xe0));const _0x47fc0b=JSON[_0x328549(0x163)](JSON['stringify'](defaultTemplate[_0x328549(0x13e)]));return _0x47fc0b[_0x328549(0xbd)](_0x57bce5=>{const _0x2208f4=_0x328549;_0x57bce5['charLimitRule']={'columnIndex':-0x1,'limit':0x0},_0x57bce5['rowLimitRule']=0x0,_0x57bce5[_0x2208f4(0xbb)]=[];}),_0x47fc0b;}export function loadTables(_0x532eee=-0x1){const _0x35bc53=_0x6350c4,_0x58f745=getContext();if(_0x58f745&&_0x58f745[_0x35bc53(0xac)]&&_0x58f745['chat']['length']>0x0){const _0x5903cb=_0x532eee===-0x1?_0x58f745['chat'][_0x35bc53(0xff)]-0x1:_0x532eee-0x1;for(let _0x9ceb7=_0x5903cb;_0x9ceb7>=0x0;_0x9ceb7--){const _0x4617df=_0x58f745[_0x35bc53(0xac)][_0x9ceb7];if(_0x4617df['extra']&&_0x4617df[_0x35bc53(0x19d)][TABLE_DATA_KEY]){log('在第\x20'+_0x9ceb7+_0x35bc53(0xeb),'info');let _0xf19d02=JSON[_0x35bc53(0x163)](JSON[_0x35bc53(0x198)](_0x4617df['extra'][TABLE_DATA_KEY]));return _0xf19d02[_0x35bc53(0xbd)](_0x1c3794=>{const _0x90dbc5=_0x35bc53;if(_0x1c3794[_0x90dbc5(0x8d)]===undefined)_0x1c3794[_0x90dbc5(0x8d)]='无';if(_0x1c3794[_0x90dbc5(0xb8)]===undefined)_0x1c3794['rule_add']='允许';if(_0x1c3794[_0x90dbc5(0xe9)]===undefined)_0x1c3794['rule_delete']='允许';if(_0x1c3794[_0x90dbc5(0x187)]===undefined)_0x1c3794[_0x90dbc5(0x187)]='允许';_0x1c3794[_0x90dbc5(0xc7)]&&!_0x1c3794['charLimitRules']&&(_0x1c3794['charLimitRules']={},_0x1c3794[_0x90dbc5(0xc7)][_0x90dbc5(0x107)]!==-0x1&&_0x1c3794[_0x90dbc5(0xc7)]['limit']>0x0&&(_0x1c3794['charLimitRules'][_0x1c3794['charLimitRule'][_0x90dbc5(0x107)]]=_0x1c3794[_0x90dbc5(0xc7)][_0x90dbc5(0x9e)]));delete _0x1c3794[_0x90dbc5(0xc7)];if(_0x1c3794['rowLimitRule']===undefined)_0x1c3794[_0x90dbc5(0x16d)]=0x0;if(_0x1c3794[_0x90dbc5(0xbb)]===undefined)_0x1c3794[_0x90dbc5(0xbb)]=[];!_0x1c3794['rowStatuses']&&(_0x1c3794['rowStatuses']=Array(_0x1c3794['rows']['length'])[_0x90dbc5(0x10b)]('normal'));}),currentTablesState=_0xf19d02,dispatchAllTablesUpdate(),currentTablesState;}}}if(extension_settings[extensionName]?.[_0x35bc53(0x105)]){log(_0x35bc53(0x93),_0x35bc53(0xe0));try{const _0x23b188=extension_settings[extensionName]['global_table_preset'];return currentTablesState=JSON[_0x35bc53(0x163)](JSON['stringify'](_0x23b188[_0x35bc53(0x13e)])),_0x23b188[_0x35bc53(0x192)]!==undefined&&saveBatchFillerRuleTemplate(_0x23b188[_0x35bc53(0x192)]),_0x23b188[_0x35bc53(0x15f)]!==undefined&&saveBatchFillerFlowTemplate(_0x23b188[_0x35bc53(0x15f)]),dispatchAllTablesUpdate(),currentTablesState;}catch(_0x39639c){log('加载全局预设失败:\x20'+_0x39639c[_0x35bc53(0xb9)],_0x35bc53(0xd6));}}return log(_0x35bc53(0xb4),'info'),currentTablesState=getDefaultTables(),dispatchAllTablesUpdate(),currentTablesState;}export function saveStateToMessage(_0x4a46ce,_0x11e3de){const _0x38421f=_0x6350c4;if(!_0x4a46ce||!_0x11e3de)return log(_0x38421f(0x17a),_0x38421f(0xd6)),![];return!_0x11e3de[_0x38421f(0x19d)]&&(_0x11e3de[_0x38421f(0x19d)]={}),_0x11e3de[_0x38421f(0x19d)][TABLE_DATA_KEY]=JSON[_0x38421f(0x163)](JSON[_0x38421f(0x198)](_0x4a46ce)),log('表格状态已准备写入消息\x20['+_0x11e3de['mes']['substring'](0x0,0x14)+_0x38421f(0x9a),_0x38421f(0xe0)),!![];}export function saveTables(_0x175d9e=_0x6350c4(0x186)){const _0x3baa19=_0x6350c4;return log(_0x3baa19(0x10d)+_0x175d9e+'\x22\x20已更新内存状态。',_0x3baa19(0xe0)),!![];}export function deleteColumn(_0xdaf84b,_0x10e2e2){const _0x223506=_0x6350c4,_0x39acc1=getMemoryState();if(!_0x39acc1[_0xdaf84b]||_0x10e2e2<0x0||_0x10e2e2>=_0x39acc1[_0xdaf84b][_0x223506(0x19c)][_0x223506(0xff)]){log(_0x223506(0x144)+_0xdaf84b+'\x20中找不到索引为\x20'+_0x10e2e2+'\x20的列。','error');return;}_0x39acc1[_0xdaf84b][_0x223506(0x19c)]['splice'](_0x10e2e2,0x1),_0x39acc1[_0xdaf84b][_0x223506(0xd2)][_0x223506(0xbd)](_0x3a3700=>{const _0x34d40c=_0x223506;_0x3a3700[_0x34d40c(0xff)]>_0x10e2e2&&_0x3a3700[_0x34d40c(0x19a)](_0x10e2e2,0x1);}),_0x39acc1[_0xdaf84b]['columnWidths']&&_0x39acc1[_0xdaf84b][_0x223506(0xbb)][_0x223506(0xff)]>_0x10e2e2&&_0x39acc1[_0xdaf84b][_0x223506(0xbb)][_0x223506(0x19a)](_0x10e2e2,0x1),log(_0x223506(0x121)+_0xdaf84b+_0x223506(0xea)+(_0x10e2e2+0x1)+_0x223506(0x16a),_0x223506(0x127)),saveTables(_0x39acc1),dispatchTableUpdate(_0xdaf84b);}export function moveRow(_0x6f37a6,_0x3c5afc,_0x49b563){const _0x5622bb=_0x6350c4,_0x245327=getMemoryState(),_0x367769=_0x245327[_0x6f37a6];if(!_0x367769||_0x3c5afc<0x0||_0x3c5afc>=_0x367769[_0x5622bb(0xd2)]['length'])return;const _0x5ec75f=_0x49b563==='up'?_0x3c5afc-0x1:_0x3c5afc+0x1;if(_0x5ec75f<0x0||_0x5ec75f>=_0x367769[_0x5622bb(0xd2)]['length'])return;const [_0x57a14a]=_0x367769['rows'][_0x5622bb(0x19a)](_0x3c5afc,0x1);_0x367769[_0x5622bb(0xd2)][_0x5622bb(0x19a)](_0x5ec75f,0x0,_0x57a14a);if(_0x367769[_0x5622bb(0x142)]&&_0x367769[_0x5622bb(0x142)][_0x5622bb(0xff)]===_0x367769[_0x5622bb(0xd2)][_0x5622bb(0xff)]+0x1){const [_0xe1d7b8]=_0x367769[_0x5622bb(0x142)][_0x5622bb(0x19a)](_0x3c5afc,0x1);_0x367769[_0x5622bb(0x142)][_0x5622bb(0x19a)](_0x5ec75f,0x0,_0xe1d7b8);}log('成功将表格\x20'+_0x6f37a6+_0x5622bb(0xea)+(_0x3c5afc+0x1)+_0x5622bb(0x19b)+(_0x5ec75f+0x1)+_0x5622bb(0x9f),_0x5622bb(0x127)),saveTables(_0x245327),dispatchTableUpdate(_0x6f37a6);}export function insertRow(_0x9c8b96,_0x2fed55,_0x4d4786=_0x6350c4(0x17b)){const _0x295187=_0x6350c4,_0x25dd5e=getMemoryState(),_0x5b7b14=_0x25dd5e[_0x9c8b96];if(!_0x5b7b14){log(_0x295187(0xa7)+_0x9c8b96+_0x295187(0x172),_0x295187(0xd6));return;}let _0x5c1e1d;typeof _0x2fed55===_0x295187(0x97)?_0x5c1e1d=_0x4d4786===_0x295187(0x115)?_0x2fed55:_0x2fed55+0x1:_0x5c1e1d=_0x5b7b14['rows']['length'];if(_0x5c1e1d<0x0)_0x5c1e1d=0x0;if(_0x5c1e1d>_0x5b7b14[_0x295187(0xd2)][_0x295187(0xff)])_0x5c1e1d=_0x5b7b14[_0x295187(0xd2)][_0x295187(0xff)];const _0x149a39=new Array(_0x5b7b14[_0x295187(0x19c)][_0x295187(0xff)])[_0x295187(0x10b)]('');if(typeof _0x2fed55===_0x295187(0x13f)&&_0x2fed55!==null)for(const _0x46e265 in _0x2fed55){const _0x4d8ee2=parseInt(_0x46e265,0xa);!isNaN(_0x4d8ee2)&&_0x4d8ee2<_0x149a39[_0x295187(0xff)]&&(_0x149a39[_0x4d8ee2]=_0x2fed55[_0x46e265],addHighlight(_0x9c8b96,_0x5c1e1d,_0x4d8ee2));}_0x5b7b14['rows'][_0x295187(0x19a)](_0x5c1e1d,0x0,_0x149a39);if(!_0x5b7b14[_0x295187(0x142)])_0x5b7b14[_0x295187(0x142)]=Array(_0x5b7b14['rows'][_0x295187(0xff)])[_0x295187(0x10b)]('normal');_0x5b7b14['rowStatuses']['splice'](_0x5c1e1d,0x0,_0x295187(0x94)),updatedTables[_0x295187(0x15a)](_0x9c8b96),dispatchTableUpdate(_0x9c8b96),log(_0x295187(0x10c)+_0x5b7b14['name']+_0x295187(0x170)+_0x9c8b96+')\x20的第\x20'+(_0x5c1e1d+0x1)+_0x295187(0x122),'success');const _0x29d3dc=getContext();if(_0x29d3dc['chat']&&_0x29d3dc[_0x295187(0xac)][_0x295187(0xff)]>0x0){const _0x2cee05=_0x29d3dc[_0x295187(0xac)][_0x29d3dc[_0x295187(0xac)][_0x295187(0xff)]-0x1];if(saveStateToMessage(_0x25dd5e,_0x2cee05)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x7058b5){const _0x46359d=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x7058b5])return;const _0x5e9e08=currentTablesState[_0x7058b5],_0x292964=_0x5e9e08[_0x46359d(0x19c)][_0x46359d(0xff)],_0x2cd959=Array(_0x292964)[_0x46359d(0x10b)]('');_0x5e9e08[_0x46359d(0xd2)]['push'](_0x2cd959);if(!_0x5e9e08[_0x46359d(0x142)])_0x5e9e08[_0x46359d(0x142)]=Array(_0x5e9e08[_0x46359d(0xd2)]['length'])['fill']('normal');_0x5e9e08[_0x46359d(0x142)][_0x46359d(0x14f)](_0x46359d(0x94)),updatedTables[_0x46359d(0x15a)](_0x7058b5),dispatchTableUpdate(_0x7058b5);const _0x1a26b1=_0x46359d(0x99)+_0x5e9e08[_0x46359d(0xec)]+_0x46359d(0x164);log(_0x1a26b1,_0x46359d(0xe0));const _0xfde81f=getContext();if(_0xfde81f[_0x46359d(0xac)]&&_0xfde81f['chat'][_0x46359d(0xff)]>0x0){const _0x487f5a=_0xfde81f[_0x46359d(0xac)][_0xfde81f[_0x46359d(0xac)][_0x46359d(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x487f5a)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x3b5a9a){const _0x4ea86b=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x3b5a9a])return;const _0x4141da=currentTablesState[_0x3b5a9a],_0x53fcd9=_0x4ea86b(0x13a)+(_0x4141da[_0x4ea86b(0x19c)]['length']+0x1);_0x4141da[_0x4ea86b(0x19c)][_0x4ea86b(0x14f)](_0x53fcd9),_0x4141da[_0x4ea86b(0xd2)][_0x4ea86b(0xbd)](_0x6ed0=>_0x6ed0[_0x4ea86b(0x14f)](''));if(!_0x4141da['columnWidths'])_0x4141da[_0x4ea86b(0xbb)]=[];_0x4141da[_0x4ea86b(0xbb)][_0x4ea86b(0x14f)](null);const _0x517626=_0x4ea86b(0x99)+_0x4141da[_0x4ea86b(0xec)]+_0x4ea86b(0xef);log(_0x517626,_0x4ea86b(0xe0));const _0x3687eb=getContext();if(_0x3687eb['chat']&&_0x3687eb[_0x4ea86b(0xac)][_0x4ea86b(0xff)]>0x0){const _0x467ddf=_0x3687eb['chat'][_0x3687eb[_0x4ea86b(0xac)][_0x4ea86b(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x467ddf)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x3646d6,_0x43f3fc,_0x2b76aa){const _0x504b3b=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x3646d6]||currentTablesState[_0x3646d6][_0x504b3b(0x19c)][_0x43f3fc]===undefined)return;const _0x5de374=currentTablesState[_0x3646d6]['name'],_0x13cfec=currentTablesState[_0x3646d6]['headers'][_0x43f3fc];currentTablesState[_0x3646d6]['headers'][_0x43f3fc]=_0x2b76aa;const _0x5da2c9=_0x504b3b(0x99)+_0x5de374+_0x504b3b(0xfa)+_0x13cfec+_0x504b3b(0x160)+_0x2b76aa+'”。';log(_0x5da2c9,_0x504b3b(0xe0));const _0x4e0db3=getContext();if(_0x4e0db3[_0x504b3b(0xac)]&&_0x4e0db3[_0x504b3b(0xac)][_0x504b3b(0xff)]>0x0){const _0x5e2847=_0x4e0db3[_0x504b3b(0xac)][_0x4e0db3['chat'][_0x504b3b(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x5e2847)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x318b5d,_0x12a223){const _0x1cf232=_0x6350c4,_0x43bff5=currentTablesState?.[_0x318b5d];if(!_0x43bff5||!_0x43bff5[_0x1cf232(0xd2)][_0x12a223])return;!_0x43bff5[_0x1cf232(0x142)]&&(_0x43bff5['rowStatuses']=Array(_0x43bff5[_0x1cf232(0xd2)][_0x1cf232(0xff)])['fill'](_0x1cf232(0x94)));_0x43bff5['rowStatuses'][_0x12a223]=_0x1cf232(0xa2),updatedTables[_0x1cf232(0x15a)](_0x318b5d);const _0x110609=_0x1cf232(0x99)+_0x43bff5[_0x1cf232(0xec)]+_0x1cf232(0x131)+(_0x12a223+0x1)+_0x1cf232(0x15d);log(_0x110609,_0x1cf232(0xe0));const _0xc94a29=getContext();if(_0xc94a29[_0x1cf232(0xac)]?.[_0x1cf232(0xff)]>0x0){const _0xa14bd=_0xc94a29[_0x1cf232(0xac)][_0xc94a29[_0x1cf232(0xac)][_0x1cf232(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0xa14bd)){await saveChat(),renderTables(),dispatchTableUpdate(_0x318b5d);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x318b5d);}export async function restoreRow(_0x296af3,_0x4cd1c4){const _0x4436ff=_0x6350c4,_0x152a9d=currentTablesState?.[_0x296af3];if(!_0x152a9d||!_0x152a9d[_0x4436ff(0xd2)][_0x4cd1c4]||!_0x152a9d[_0x4436ff(0x142)])return;_0x152a9d['rowStatuses'][_0x4cd1c4]=_0x4436ff(0x94),updatedTables[_0x4436ff(0x15a)](_0x296af3);const _0x2d92e9='表格\x20['+_0x152a9d[_0x4436ff(0xec)]+_0x4436ff(0x131)+(_0x4cd1c4+0x1)+_0x4436ff(0x159);log(_0x2d92e9,'info');const _0x14c3f2=getContext();if(_0x14c3f2[_0x4436ff(0xac)]?.['length']>0x0){const _0x1b851a=_0x14c3f2[_0x4436ff(0xac)][_0x14c3f2[_0x4436ff(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x1b851a)){await saveChat(),renderTables(),dispatchTableUpdate(_0x296af3);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x296af3);}export function commitPendingDeletions(){const _0x520c4a=_0x6350c4;if(!currentTablesState)return![];let _0x4e80dd=0x0;currentTablesState[_0x520c4a(0xbd)]((_0x2914a0,_0xefddf)=>{const _0x8ee36b=_0x520c4a;if(!_0x2914a0[_0x8ee36b(0x142)]||_0x2914a0[_0x8ee36b(0x142)][_0x8ee36b(0xff)]===0x0)return;let _0x2e8831=![];for(let _0x370ebc=_0x2914a0['rows'][_0x8ee36b(0xff)]-0x1;_0x370ebc>=0x0;_0x370ebc--){_0x2914a0[_0x8ee36b(0x142)][_0x370ebc]===_0x8ee36b(0xa2)&&(_0x2914a0['rows'][_0x8ee36b(0x19a)](_0x370ebc,0x1),_0x2914a0[_0x8ee36b(0x142)][_0x8ee36b(0x19a)](_0x370ebc,0x1),_0x4e80dd++,_0x2e8831=!![]);}_0x2e8831&&updatedTables['add'](_0xefddf);});if(_0x4e80dd>0x0)return log(_0x520c4a(0x16b)+_0x4e80dd+_0x520c4a(0x9f),_0x520c4a(0xe0)),updatedTables[_0x520c4a(0x188)]>0x0&&updatedTables[_0x520c4a(0xbd)](_0xe92721=>{dispatchTableUpdate(_0xe92721);}),!![];return![];}export function insertColumn(_0x27f9d7,_0x198f50,_0x21e510){const _0x3b6ace=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x27f9d7])return;const _0x1a117d=currentTablesState[_0x27f9d7],_0x388463=_0x21e510===_0x3b6ace(0x176)?_0x198f50:_0x198f50+0x1,_0x10f2d7='新列';_0x1a117d[_0x3b6ace(0x19c)]['splice'](_0x388463,0x0,_0x10f2d7),_0x1a117d[_0x3b6ace(0xd2)][_0x3b6ace(0xbd)](_0x4548fa=>_0x4548fa[_0x3b6ace(0x19a)](_0x388463,0x0,''));if(!_0x1a117d[_0x3b6ace(0xbb)])_0x1a117d[_0x3b6ace(0xbb)]=[];_0x1a117d[_0x3b6ace(0xbb)][_0x3b6ace(0x19a)](_0x388463,0x0,null);const _0x381ad5=_0x3b6ace(0x99)+_0x1a117d[_0x3b6ace(0xec)]+']\x20在第\x20'+(_0x198f50+0x1)+_0x3b6ace(0x136)+(_0x21e510===_0x3b6ace(0x176)?'左侧':'右侧')+_0x3b6ace(0x145);log(_0x381ad5,'info');const _0x4002d7=getContext();if(_0x4002d7[_0x3b6ace(0xac)]&&_0x4002d7['chat']['length']>0x0){const _0x3b47f5=_0x4002d7[_0x3b6ace(0xac)][_0x4002d7['chat'][_0x3b6ace(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3b47f5)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x2b7f25,_0xc2f383,_0xf44188){const _0x598b8e=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x2b7f25])return;const _0x1e1d84=currentTablesState[_0x2b7f25],_0x3b3943=_0x1e1d84['headers'],_0x5d7739=_0x1e1d84[_0x598b8e(0xd2)],_0x125f4a=_0xf44188===_0x598b8e(0x176)?_0xc2f383-0x1:_0xc2f383+0x1;if(_0x125f4a<0x0||_0x125f4a>=_0x3b3943[_0x598b8e(0xff)]){log('无法移动列:索引\x20'+_0xc2f383+_0x598b8e(0x19e),_0x598b8e(0xa6));return;}const [_0x31adb7]=_0x3b3943[_0x598b8e(0x19a)](_0xc2f383,0x1);_0x3b3943[_0x598b8e(0x19a)](_0x125f4a,0x0,_0x31adb7),_0x5d7739['forEach'](_0x59aed9=>{const [_0x4c14e1]=_0x59aed9['splice'](_0xc2f383,0x1);_0x59aed9['splice'](_0x125f4a,0x0,_0x4c14e1);});if(_0x1e1d84['columnWidths']&&_0x1e1d84[_0x598b8e(0xbb)][_0x598b8e(0xff)]>_0xc2f383){const [_0x5d785f]=_0x1e1d84[_0x598b8e(0xbb)]['splice'](_0xc2f383,0x1);_0x1e1d84[_0x598b8e(0xbb)][_0x598b8e(0x19a)](_0x125f4a,0x0,_0x5d785f);}const _0x4aab9a=_0x598b8e(0x99)+_0x1e1d84[_0x598b8e(0xec)]+_0x598b8e(0x149)+_0x31adb7+_0x598b8e(0xd4)+(_0xf44188===_0x598b8e(0x176)?'左':'右')+_0x598b8e(0xa9);log(_0x4aab9a,_0x598b8e(0xe0));const _0x33e99e=getContext();if(_0x33e99e[_0x598b8e(0xac)]&&_0x33e99e[_0x598b8e(0xac)]['length']>0x0){const _0xda2880=_0x33e99e[_0x598b8e(0xac)][_0x33e99e['chat'][_0x598b8e(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0xda2880)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x4bb4a9){const _0x19b6f5=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x4bb4a9])return;const _0x311d38=currentTablesState[_0x4bb4a9]['name'];currentTablesState[_0x19b6f5(0x19a)](_0x4bb4a9,0x1);const _0x28b67d=_0x19b6f5(0x99)+_0x311d38+']\x20已被成功废黜。';log(_0x28b67d,_0x19b6f5(0x127));const _0x56b8a1=getContext();if(_0x56b8a1['chat']&&_0x56b8a1[_0x19b6f5(0xac)][_0x19b6f5(0xff)]>0x0){const _0x5b2906=_0x56b8a1[_0x19b6f5(0xac)][_0x56b8a1[_0x19b6f5(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5b2906)){saveChat(),log(_0x19b6f5(0x154),_0x19b6f5(0x127));return;}}log(_0x19b6f5(0x151),_0x19b6f5(0xd6)),saveChatDebounced();}export function addTable(_0x50fb52){const _0x27a09c=_0x6350c4;if(!_0x50fb52||!_0x50fb52['trim']()){log(_0x27a09c(0x14c),_0x27a09c(0xd6)),toastr[_0x27a09c(0xd6)](_0x27a09c(0xb6),_0x27a09c(0xc8));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x27a09c(0x12c)](_0x56e5b9=>_0x56e5b9[_0x27a09c(0xec)]===_0x50fb52[_0x27a09c(0x10e)]())){log(_0x27a09c(0xc6)+_0x50fb52+_0x27a09c(0xb5),'error'),toastr[_0x27a09c(0xd6)](_0x27a09c(0xdf)+_0x50fb52+'\x22\x20的表格已存在。',_0x27a09c(0xc8));return;}const _0xa1af45={'name':_0x50fb52[_0x27a09c(0x10e)](),'headers':[_0x27a09c(0x129)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState['push'](_0xa1af45);const _0x36cec6=_0x27a09c(0x12a)+_0x50fb52[_0x27a09c(0x10e)]()+']。';log(_0x36cec6,_0x27a09c(0x127));const _0x20e72b=getContext();if(_0x20e72b['chat']&&_0x20e72b['chat'][_0x27a09c(0xff)]>0x0){const _0x12098f=_0x20e72b['chat'][_0x20e72b[_0x27a09c(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x12098f)){saveChat(),log(_0x27a09c(0x125),_0x27a09c(0x127));return;}}log(_0x27a09c(0x112),_0x27a09c(0xd6)),saveChatDebounced();}export function renameTable(_0x495cca,_0x4f9491){const _0x372463=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x495cca]){log('重命名失败:表格不存在。',_0x372463(0xd6)),toastr[_0x372463(0xd6)]('表格不存在。','重命名失败');return;}const _0x31a9f9=_0x4f9491[_0x372463(0x10e)]();if(!_0x31a9f9){log(_0x372463(0x139),'error'),toastr[_0x372463(0xd6)](_0x372463(0xb6),'重命名失败');return;}if(currentTablesState['some']((_0xff9fb9,_0xa7f785)=>_0xa7f785!==_0x495cca&&_0xff9fb9[_0x372463(0xec)]===_0x31a9f9)){log(_0x372463(0xb1)+_0x31a9f9+_0x372463(0xb5),'error'),toastr[_0x372463(0xd6)](_0x372463(0xdf)+_0x31a9f9+_0x372463(0xb5),_0x372463(0x183));return;}const _0x5d90ef=currentTablesState[_0x495cca][_0x372463(0xec)];currentTablesState[_0x495cca][_0x372463(0xec)]=_0x31a9f9,log('表格\x20\x22'+_0x5d90ef+_0x372463(0x12f)+_0x31a9f9+'\x22。','success');const _0x54e2bc=getContext();if(_0x54e2bc[_0x372463(0xac)]&&_0x54e2bc['chat'][_0x372463(0xff)]>0x0){const _0x560206=_0x54e2bc[_0x372463(0xac)][_0x54e2bc[_0x372463(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x560206)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x764c5,_0x2044d9){const _0x37c5a4=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x764c5])return;const _0x7e5c6f=_0x2044d9==='up'?_0x764c5-0x1:_0x764c5+0x1;if(_0x7e5c6f<0x0||_0x7e5c6f>=currentTablesState['length']){log(_0x37c5a4(0x178)+_0x764c5+_0x37c5a4(0x19e),'warn');return;}const _0xd6a6cb=currentTablesState[_0x764c5];currentTablesState[_0x764c5]=currentTablesState[_0x7e5c6f],currentTablesState[_0x7e5c6f]=_0xd6a6cb;const _0x2f1b80=_0x37c5a4(0x99)+_0xd6a6cb[_0x37c5a4(0xec)]+_0x37c5a4(0xda);log(_0x2f1b80,'success');const _0xc96c36=getContext();if(_0xc96c36[_0x37c5a4(0xac)]&&_0xc96c36['chat'][_0x37c5a4(0xff)]>0x0){const _0x449259=_0xc96c36[_0x37c5a4(0xac)][_0xc96c36[_0x37c5a4(0xac)][_0x37c5a4(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x449259)){saveChat(),log(_0x37c5a4(0x146),_0x37c5a4(0x127));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','error'),saveChatDebounced();}export function updateTableRules(_0x226288,_0x1d3480){const _0x5c10b1=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x226288])return;const _0xb575d2=currentTablesState[_0x226288];_0xb575d2[_0x5c10b1(0x8d)]=_0x1d3480['note'],_0xb575d2['rule_add']=_0x1d3480[_0x5c10b1(0xb8)],_0xb575d2[_0x5c10b1(0xe9)]=_0x1d3480[_0x5c10b1(0xe9)],_0xb575d2['rule_update']=_0x1d3480['rule_update'],_0xb575d2[_0x5c10b1(0xab)]=_0x1d3480[_0x5c10b1(0xab)],_0xb575d2[_0x5c10b1(0x16d)]=_0x1d3480[_0x5c10b1(0x16d)],_0xb575d2[_0x5c10b1(0xd1)]=_0x1d3480['simplifyRowThreshold'],delete _0xb575d2['charLimitRule'];const _0x512d23=_0x5c10b1(0x99)+_0xb575d2['name']+_0x5c10b1(0xe8);log(_0x512d23,_0x5c10b1(0xe0));const _0x45128a=getContext();if(_0x45128a[_0x5c10b1(0xac)]&&_0x45128a['chat'][_0x5c10b1(0xff)]>0x0){const _0x4bb7b9=_0x45128a[_0x5c10b1(0xac)][_0x45128a['chat'][_0x5c10b1(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x4bb7b9)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x27402c,_0x4282b3,_0x358c69){const _0x561f85=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x27402c]){log(_0x561f85(0xde)+_0x27402c+_0x561f85(0xee),'error');return;}const _0x4fae0e=currentTablesState[_0x27402c];if(_0x4282b3>=_0x4fae0e[_0x561f85(0xd2)][_0x561f85(0xff)]){log('AI指令意图更新不存在的行\x20(rowIndex:\x20'+_0x4282b3+_0x561f85(0x18f)+_0x4fae0e[_0x561f85(0xec)]+_0x561f85(0x13b),'warn'),insertRow(_0x27402c,_0x358c69);return;}const _0x23ed3b=_0x4fae0e[_0x561f85(0xd2)][_0x4282b3];for(const _0x259c26 in _0x358c69){const _0x1263d4=parseInt(_0x259c26,0xa);_0x1263d4<_0x23ed3b[_0x561f85(0xff)]&&(_0x23ed3b[_0x1263d4]=_0x358c69[_0x1263d4],addHighlight(_0x27402c,_0x4282b3,_0x1263d4));}updatedTables[_0x561f85(0x15a)](_0x27402c),dispatchTableUpdate(_0x27402c);const _0x47d5b3=_0x561f85(0x14d)+_0x4fae0e['name']+']\x20的第\x20'+(_0x4282b3+0x1)+_0x561f85(0x9f);log(_0x47d5b3,_0x561f85(0xe0));const _0x5153ea=getContext();if(_0x5153ea[_0x561f85(0xac)]&&_0x5153ea[_0x561f85(0xac)][_0x561f85(0xff)]>0x0){const _0x3dc6af=_0x5153ea[_0x561f85(0xac)][_0x5153ea[_0x561f85(0xac)][_0x561f85(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3dc6af)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x1f8442=_0x6350c4;if(!currentTablesState){log(_0x1f8442(0x1a0),_0x1f8442(0xd6));return;}currentTablesState[_0x1f8442(0xbd)]((_0x572c97,_0x566c7a)=>{const _0x1a2790=_0x1f8442;_0x572c97['rows'][_0x1a2790(0xff)]>0x0&&updatedTables[_0x1a2790(0x15a)](_0x566c7a),_0x572c97['rows']=[],_0x572c97[_0x1a2790(0x142)]=[];}),log('所有表格的行数据已在内存中清空。',_0x1f8442(0xa6)),dispatchAllTablesUpdate();const _0x31fb22=getContext();if(_0x31fb22[_0x1f8442(0xac)]&&_0x31fb22[_0x1f8442(0xac)][_0x1f8442(0xff)]>0x0){const _0x724b8b=_0x31fb22[_0x1f8442(0xac)][_0x31fb22[_0x1f8442(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x724b8b)){saveChat(),log(_0x1f8442(0x11f),_0x1f8442(0x127)),toastr[_0x1f8442(0x127)]('所有表格的剧情内容已清空。',_0x1f8442(0xf1));return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','error'),saveChatDebounced();}function checkTableRules(_0x239317){const _0x481b37=_0x6350c4;let _0x3e85ef=[];_0x239317[_0x481b37(0x16d)]&&_0x239317['rowLimitRule']>0x0&&_0x239317[_0x481b37(0xd2)][_0x481b37(0xff)]>_0x239317[_0x481b37(0x16d)]&&_0x3e85ef[_0x481b37(0x14f)](_0x481b37(0x16c)+_0x239317[_0x481b37(0xec)]+')超出规定('+_0x239317[_0x481b37(0x16d)]+_0x481b37(0x12e)+_0x239317['rowLimitRule']+_0x481b37(0x177));const _0x12b1f5=_0x239317[_0x481b37(0xab)]||{};for(const _0x2e82e8 in _0x12b1f5){const _0x40a5ca=parseInt(_0x2e82e8,0xa),_0x5ef63f=_0x12b1f5[_0x40a5ca];if(_0x5ef63f>0x0&&_0x40a5ca>=0x0&&_0x40a5ca<_0x239317[_0x481b37(0x19c)][_0x481b37(0xff)]){const _0x4375ea=_0x239317[_0x481b37(0x19c)][_0x40a5ca],_0x594583=[];_0x239317[_0x481b37(0xd2)]['forEach']((_0x4d139d,_0x3930d5)=>{const _0x5f5cb0=_0x481b37;if(_0x239317['rowStatuses']&&_0x239317[_0x5f5cb0(0x142)][_0x3930d5]==='pending-deletion')return;const _0x44d776=_0x4d139d[_0x40a5ca]||'';_0x44d776[_0x5f5cb0(0xff)]>_0x5ef63f&&_0x594583[_0x5f5cb0(0x14f)](_0x3930d5);});if(_0x594583[_0x481b37(0xff)]>0x0){const _0x109db8=_0x594583[_0x481b37(0x11b)]('、');_0x3e85ef[_0x481b37(0x14f)](_0x481b37(0x16c)+_0x239317[_0x481b37(0xec)]+')第('+_0x109db8+_0x481b37(0x110)+_0x4375ea+_0x481b37(0x95)+_0x5ef63f+')字限制,请进行缩减。】');}}}return _0x3e85ef[_0x481b37(0x11b)]('\x0a');}export function convertTablesToCsvString(){const _0x480e2d=_0x6350c4;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x4014c9='';return currentTablesState[_0x480e2d(0xbd)]((_0x317365,_0x13dfad)=>{const _0x1e9064=_0x480e2d;_0x4014c9+=_0x1e9064(0x143)+_0x13dfad+':'+_0x317365[_0x1e9064(0xec)]+'\x0a',_0x4014c9+='【说明】:\x0a'+(_0x317365[_0x1e9064(0x8d)]||'无')+'\x0a';const _0x2f1ca0=_0x317365['name']['replace'](/\s/g,'')+'内容';_0x4014c9+='<'+_0x2f1ca0+'>\x0a';const _0x5bed32=[_0x1e9064(0xd5),..._0x317365[_0x1e9064(0x19c)][_0x1e9064(0x153)]((_0x102c22,_0x79f0c4)=>_0x79f0c4+':'+_0x102c22)];_0x4014c9+='|\x20'+_0x5bed32[_0x1e9064(0x11b)]('\x20|\x20')+_0x1e9064(0x12b),_0x4014c9+='|'+_0x5bed32[_0x1e9064(0x153)](()=>_0x1e9064(0x90))[_0x1e9064(0x11b)]('|')+'|\x0a';const _0x1ae0be=_0x317365['rows'][_0x1e9064(0x16e)]((_0x10c7b4,_0x3e2f14)=>!_0x317365[_0x1e9064(0x142)]||_0x317365['rowStatuses'][_0x3e2f14]!==_0x1e9064(0xa2));if(_0x1ae0be['length']===0x0)_0x4014c9+=_0x1e9064(0x137);else{const _0x6f8836=_0x317365[_0x1e9064(0xd1)]||0x0;let _0x4966bd=0x0;_0x317365[_0x1e9064(0xd2)]['forEach']((_0x27a3bf,_0xe9c28)=>{const _0xe4fec4=_0x1e9064;if(_0x317365[_0xe4fec4(0x142)]&&_0x317365[_0xe4fec4(0x142)][_0xe9c28]===_0xe4fec4(0xa2))return;if(_0x6f8836>0x0&&_0xe9c28<_0x6f8836){if(_0x4966bd===0x0){const _0x13acd5=_0x27a3bf['map'](()=>_0xe4fec4(0xcf));_0x4014c9+='|\x20'+_0xe9c28+_0xe4fec4(0x13d)+_0x13acd5[_0xe4fec4(0x11b)](_0xe4fec4(0x13d))+_0xe4fec4(0x12b),_0x4014c9+='|\x20...\x20|\x20'+_0x27a3bf[_0xe4fec4(0x153)](()=>_0xe4fec4(0xe2))['join'](_0xe4fec4(0x13d))+_0xe4fec4(0x12b);}if(_0xe9c28===_0x6f8836-0x1){const _0x5cf311=_0x27a3bf[_0xe4fec4(0x153)](()=>_0xe4fec4(0xcf));_0x4014c9+='|\x20'+_0xe9c28+_0xe4fec4(0x13d)+_0x5cf311[_0xe4fec4(0x11b)](_0xe4fec4(0x13d))+_0xe4fec4(0x12b);}_0x4966bd++;return;}if(Array[_0xe4fec4(0x15b)](_0x27a3bf)){const _0x46247b=_0x27a3bf['map'](_0x5191e8=>{const _0x4640cb=_0xe4fec4,_0x5ae61d=_0x5191e8===null||_0x5191e8===undefined||_0x5191e8===''?'未知':String(_0x5191e8);return _0x5ae61d[_0x4640cb(0x18a)](/\|/g,'|');});_0x4014c9+='|\x20'+_0xe9c28+_0xe4fec4(0x13d)+_0x46247b[_0xe4fec4(0x11b)]('\x20|\x20')+_0xe4fec4(0x12b);}}),_0x4966bd>0x0&&(_0x4014c9+='\x0a【系统提示】:表格前\x20'+_0x4966bd+_0x1e9064(0x193)+(_0x4966bd-0x1)+_0x1e9064(0x15c));}const _0x48667a=checkTableRules(_0x317365);_0x48667a&&(_0x4014c9+=_0x48667a+'\x0a'),_0x4014c9+='\x0a',_0x4014c9+=_0x1e9064(0xf7)+(_0x317365[_0x1e9064(0xb8)]||'允许')+'\x0a',_0x4014c9+='【删除】:\x20'+(_0x317365[_0x1e9064(0xe9)]||'允许')+'\x0a',_0x4014c9+='【修改】:\x20'+(_0x317365['rule_update']||'允许')+'\x0a',_0x13dfad{const _0x1d536e=_0x376b19,_0xb432be=_0x422c47[_0x1d536e(0xd7)](_0x9bef7e);_0x2e5b48+=_0x1d536e(0x143)+_0x9bef7e+':'+_0x2695e1[_0x1d536e(0xec)];!_0xb432be&&(_0x2e5b48+=_0x1d536e(0xdd));_0x2e5b48+='\x0a',_0x2e5b48+=_0x1d536e(0x101)+(_0x2695e1[_0x1d536e(0x8d)]||'无')+'\x0a';const _0x438d6b=_0x2695e1[_0x1d536e(0xec)][_0x1d536e(0x18a)](/\s/g,'')+'内容';_0x2e5b48+='<'+_0x438d6b+'>\x0a';const _0x34339b=[_0x1d536e(0xd5),..._0x2695e1['headers']['map']((_0x3b2c3c,_0x1aa2f8)=>_0x1aa2f8+':'+_0x3b2c3c)];_0x2e5b48+='|\x20'+_0x34339b[_0x1d536e(0x11b)](_0x1d536e(0x13d))+_0x1d536e(0x12b),_0x2e5b48+='|'+_0x34339b['map'](()=>'---')[_0x1d536e(0x11b)]('|')+'|\x0a';if(_0xb432be){const _0x419cd9=_0x2695e1[_0x1d536e(0xd2)][_0x1d536e(0x16e)]((_0x1fc44f,_0x468cb5)=>!_0x2695e1[_0x1d536e(0x142)]||_0x2695e1[_0x1d536e(0x142)][_0x468cb5]!==_0x1d536e(0xa2));if(_0x419cd9[_0x1d536e(0xff)]===0x0)_0x2e5b48+=_0x1d536e(0x137);else{const _0x4ffa68=_0x2695e1[_0x1d536e(0xd1)]||0x0;let _0x20ae13=0x0;_0x2695e1[_0x1d536e(0xd2)][_0x1d536e(0xbd)]((_0x527bd7,_0x1e6b35)=>{const _0x3f67c6=_0x1d536e;if(_0x2695e1[_0x3f67c6(0x142)]&&_0x2695e1[_0x3f67c6(0x142)][_0x1e6b35]===_0x3f67c6(0xa2))return;if(_0x4ffa68>0x0&&_0x1e6b35<_0x4ffa68){if(_0x20ae13===0x0){const _0x2af21a=_0x527bd7['map'](()=>_0x3f67c6(0xcf));_0x2e5b48+='|\x20'+_0x1e6b35+_0x3f67c6(0x13d)+_0x2af21a['join']('\x20|\x20')+'\x20|\x0a',_0x2e5b48+=_0x3f67c6(0x8f)+_0x527bd7[_0x3f67c6(0x153)](()=>'...')['join'](_0x3f67c6(0x13d))+_0x3f67c6(0x12b);}if(_0x1e6b35===_0x4ffa68-0x1){const _0x5ae5ec=_0x527bd7[_0x3f67c6(0x153)](()=>'---已锁定---');_0x2e5b48+='|\x20'+_0x1e6b35+_0x3f67c6(0x13d)+_0x5ae5ec['join']('\x20|\x20')+_0x3f67c6(0x12b);}_0x20ae13++;return;}if(Array[_0x3f67c6(0x15b)](_0x527bd7)){const _0x21f6c7=_0x527bd7[_0x3f67c6(0x153)](_0x2a524a=>{const _0x440fff=_0x3f67c6,_0x5868ab=_0x2a524a===null||_0x2a524a===undefined||_0x2a524a===''?'未知':String(_0x2a524a);return _0x5868ab[_0x440fff(0x18a)](/\|/g,'|');});_0x2e5b48+='|\x20'+_0x1e6b35+_0x3f67c6(0x13d)+_0x21f6c7['join'](_0x3f67c6(0x13d))+_0x3f67c6(0x12b);}}),_0x20ae13>0x0&&(_0x2e5b48+=_0x1d536e(0x148)+_0x20ae13+_0x1d536e(0x193)+(_0x20ae13-0x1)+_0x1d536e(0x15c));}const _0x597fe7=checkTableRules(_0x2695e1);_0x597fe7&&(_0x2e5b48+=_0x597fe7+'\x0a');}else _0x2e5b48+=_0x1d536e(0xfc);_0x2e5b48+='\x0a',_0xb432be?(_0x2e5b48+='【增加】:\x20'+(_0x2695e1[_0x1d536e(0xb8)]||'允许')+'\x0a',_0x2e5b48+=_0x1d536e(0xa5)+(_0x2695e1[_0x1d536e(0xe9)]||'允许')+'\x0a',_0x2e5b48+=_0x1d536e(0xcd)+(_0x2695e1[_0x1d536e(0x187)]||'允许')+'\x0a'):_0x2e5b48+='【操作权限】:\x20禁止修改此表格\x0a',_0x9bef7e{const _0x1c4476=_0x27e6b6;_0x9da06f+='\x0a<'+_0x58b155[_0x1c4476(0xec)]+'>\x0a';const _0x586d21='|\x20'+_0x58b155['headers'][_0x1c4476(0x11b)]('\x20|\x20')+'\x20|';_0x9da06f+=_0x586d21+'\x0a';const _0x10e268='|'+_0x58b155[_0x1c4476(0x19c)][_0x1c4476(0x153)](()=>_0x1c4476(0x90))['join']('|')+'|';_0x9da06f+=_0x10e268+'\x0a';const _0x3ab004=_0x58b155[_0x1c4476(0xd2)][_0x1c4476(0x16e)]((_0x1f5eb6,_0x27ef5b)=>!_0x58b155[_0x1c4476(0x142)]||_0x58b155[_0x1c4476(0x142)][_0x27ef5b]!==_0x1c4476(0xa2));_0x3ab004[_0x1c4476(0xff)]>0x0?_0x3ab004[_0x1c4476(0xbd)](_0x44e095=>{const _0x3e15fa=_0x1c4476;if(Array[_0x3e15fa(0x15b)](_0x44e095)){const _0x586ca2=_0x44e095[_0x3e15fa(0x153)](_0x44fdde=>_0x44fdde===null||_0x44fdde===undefined||_0x44fdde===''?'\x20':_0x44fdde[_0x3e15fa(0xc5)]()),_0x4b6f60='|\x20'+_0x586ca2[_0x3e15fa(0x11b)](_0x3e15fa(0x13d))+'\x20|';_0x9da06f+=_0x4b6f60+'\x0a';}}):_0x9da06f+='(该表当前内容为空)\x0a',_0x9da06f+='\x0a';}),_0x9da06f['trim']();}loadTables();function _0xd105(_0x3d4c23,_0x330c1f){const _0x50a6c6=_0x50a6();return _0xd105=function(_0xd1052,_0x5aaf83){_0xd1052=_0xd1052-0x8b;let _0x298597=_0x50a6c6[_0xd1052];return _0x298597;},_0xd105(_0x3d4c23,_0x330c1f);}export function getBatchFillerRuleTemplate(){const _0x4bd9b2=_0x6350c4;return extension_settings[extensionName]?.[_0x4bd9b2(0x161)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x15f8fe){const _0x12c8ae=_0x6350c4;extension_settings[extensionName][_0x12c8ae(0x161)]=_0x15f8fe,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x137af2=_0x6350c4;return extension_settings[extensionName]?.[_0x137af2(0xf3)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x4d931b){const _0x462e0c=_0x6350c4;extension_settings[extensionName][_0x462e0c(0xf3)]=_0x4d931b,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x432d24=_0x6350c4;return extension_settings[extensionName]?.[_0x432d24(0xc1)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x3134fb){const _0x463d27=_0x6350c4,_0x5133a7=extension_settings[extensionName];if(_0x5133a7['table_system_enabled']===![]){log(_0x463d27(0xb0),'info');return;}if(!_0x3134fb){log(_0x463d27(0x162),'warn');return;}const {finalState:_0x43ebc9,hasChanges:_0x5dbdac,changes:_0x57ff48}=executeCommands(_0x3134fb,currentTablesState);if(!_0x5dbdac){log(_0x463d27(0x17e),_0x463d27(0xe0));return;}setMemoryState(_0x43ebc9),_0x57ff48['forEach'](_0xcf007=>{const _0x1ea573=_0x463d27;updatedTables[_0x1ea573(0x15a)](_0xcf007[_0x1ea573(0x155)]),(_0xcf007[_0x1ea573(0x184)]===_0x1ea573(0x14b)||_0xcf007[_0x1ea573(0x184)]==='insert')&&(_0xcf007[_0x1ea573(0xd5)]!==undefined&&_0xcf007[_0x1ea573(0x171)]!==undefined&&addHighlight(_0xcf007[_0x1ea573(0x155)],_0xcf007['rowIndex'],_0xcf007['colIndex']));}),log(_0x463d27(0xa0)+_0x57ff48['length']+_0x463d27(0x157),_0x463d27(0x127));const _0x213fd7=[...new Set(_0x57ff48[_0x463d27(0x153)](_0x3bc672=>_0x3bc672[_0x463d27(0x155)]))];_0x213fd7[_0x463d27(0xbd)](_0x4ff372=>{dispatchTableUpdate(_0x4ff372);});const _0x23cbda=getContext();if(_0x23cbda['chat']&&_0x23cbda[_0x463d27(0xac)][_0x463d27(0xff)]>0x0){const _0x5f0f9c=_0x23cbda[_0x463d27(0xac)][_0x23cbda['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5f0f9c)){await saveChat(),toastr[_0x463d27(0x127)](_0x463d27(0xaf),_0x463d27(0xf2)),document[_0x463d27(0x174)](new CustomEvent('amily2-force-ui-reload'));return;}}saveChatDebounced(),toastr['success'](_0x463d27(0xaf),_0x463d27(0xf2)),document[_0x463d27(0x174)](new CustomEvent('amily2-force-ui-reload'));}export function saveAiTemplate(_0x2ce482){extension_settings[extensionName]['amily2_ai_template']=_0x2ce482,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x4c7d9b=![]){const _0x3ab90b=_0x6350c4;if(!currentTablesState){log(_0x3ab90b(0x199),_0x3ab90b(0xd6)),toastr['error'](_0x3ab90b(0x111));return;}let _0x4aa4e5,_0x45393f,_0x3bccf8;_0x4c7d9b?(_0x4aa4e5=JSON['parse'](JSON[_0x3ab90b(0x198)](currentTablesState)),_0x45393f='Amily2-Table-Preset-v2.0-full',_0x3bccf8=_0x3ab90b(0x9b)):(_0x4aa4e5=currentTablesState[_0x3ab90b(0x153)](_0x24ceb1=>({'name':_0x24ceb1[_0x3ab90b(0xec)],'headers':_0x24ceb1['headers'],'columnWidths':_0x24ceb1['columnWidths']||[],'note':_0x24ceb1[_0x3ab90b(0x8d)],'rule_add':_0x24ceb1[_0x3ab90b(0xb8)],'rule_delete':_0x24ceb1['rule_delete'],'rule_update':_0x24ceb1[_0x3ab90b(0x187)],'charLimitRules':_0x24ceb1['charLimitRules']||{},'rowLimitRule':_0x24ceb1[_0x3ab90b(0x16d)]||0x0,'rows':[],'rowStatuses':[]})),_0x45393f='Amily2-Table-Preset-v2.0-clean',_0x3bccf8=_0x3ab90b(0x156));const _0x4cb216={'version':_0x3ab90b(0x104),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x4aa4e5},_0x2e6862=new Blob([JSON[_0x3ab90b(0x198)](_0x4cb216,null,0x2)],{'type':_0x3ab90b(0xaa)}),_0x270f0e=URL[_0x3ab90b(0xc2)](_0x2e6862),_0x4358e7=document[_0x3ab90b(0xcc)]('a');_0x4358e7[_0x3ab90b(0xcb)]=_0x270f0e,_0x4358e7[_0x3ab90b(0x126)]='Amily2-'+_0x3bccf8+'-'+new Date()[_0x3ab90b(0xce)]()['slice'](0x0,0xa)+'.json',document[_0x3ab90b(0x98)][_0x3ab90b(0xf8)](_0x4358e7),_0x4358e7[_0x3ab90b(0x108)](),document[_0x3ab90b(0x98)][_0x3ab90b(0x15e)](_0x4358e7),URL['revokeObjectURL'](_0x270f0e),log('【'+_0x3bccf8+'】已成功导出。','success'),toastr['success']('【'+_0x3bccf8+_0x3ab90b(0xba),_0x3ab90b(0x8e));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0xa0592){const _0x46708f=_0x6350c4,_0x1bd7a4=document[_0x46708f(0xcc)](_0x46708f(0xed));_0x1bd7a4['type']='file',_0x1bd7a4[_0x46708f(0xad)]='.json',_0x1bd7a4[_0x46708f(0x18d)]=_0x2a91da=>{const _0x2d18c8=_0x46708f,_0x9c8929=_0x2a91da[_0x2d18c8(0x10f)][_0x2d18c8(0x182)][0x0];if(!_0x9c8929)return;const _0x4588e2=new FileReader();_0x4588e2[_0x2d18c8(0x17d)]=_0x3b6473=>{const _0x17149c=_0x2d18c8;try{const _0x18537d=JSON[_0x17149c(0x163)](_0x3b6473[_0x17149c(0x10f)][_0x17149c(0x113)]);if(!_0x18537d[_0x17149c(0x150)]||!Array[_0x17149c(0x15b)](_0x18537d[_0x17149c(0x13e)]))throw new Error(_0x17149c(0xa3));const _0x4cc49a=window[_0x17149c(0x92)](_0x17149c(0x194));if(!_0x4cc49a){log(_0x17149c(0x180),_0x17149c(0xe0)),toastr[_0x17149c(0xe0)](_0x17149c(0x9c));return;}if(_0x18537d[_0x17149c(0x150)]==='Amily2-Table-Preset-v3.0-separated_templates')saveBatchFillerRuleTemplate(_0x18537d['batchFillerRuleTemplate']||''),saveBatchFillerFlowTemplate(_0x18537d[_0x17149c(0x15f)]||''),saveAiTemplate(_0x18537d[_0x17149c(0xc0)]||'');else{if(_0x18537d[_0x17149c(0x197)]!==undefined&&_0x18537d[_0x17149c(0x103)]!==undefined)saveBatchFillerRuleTemplate(_0x18537d[_0x17149c(0x197)]||''),saveBatchFillerFlowTemplate(_0x18537d['aiFlowTemplate']||''),saveAiTemplate(_0x18537d[_0x17149c(0x103)]||'');else _0x18537d[_0x17149c(0x9d)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x18537d[_0x17149c(0x9d)]||''),saveAiTemplate(_0x18537d[_0x17149c(0x9d)]||'')):log(_0x17149c(0xd3),_0x17149c(0xa6));}const _0x41d6b9=_0x18537d[_0x17149c(0x13e)];_0x41d6b9['forEach'](_0x36571e=>{const _0xcb3009=_0x17149c;if(_0x36571e['name']===undefined||_0x36571e[_0xcb3009(0x19c)]===undefined||_0x36571e[_0xcb3009(0xd2)]===undefined)throw new Error(_0xcb3009(0xae)+JSON[_0xcb3009(0x198)](_0x36571e));if(_0x36571e[_0xcb3009(0x8d)]===undefined)_0x36571e['note']='无';if(_0x36571e['rule_add']===undefined)_0x36571e[_0xcb3009(0xb8)]='允许';if(_0x36571e['rule_delete']===undefined)_0x36571e[_0xcb3009(0xe9)]='允许';if(_0x36571e['rule_update']===undefined)_0x36571e[_0xcb3009(0x187)]='允许';if(_0x36571e[_0xcb3009(0xc7)]&&!_0x36571e['charLimitRules'])_0x36571e['charLimitRules']={},_0x36571e[_0xcb3009(0xc7)][_0xcb3009(0x107)]!==-0x1&&_0x36571e[_0xcb3009(0xc7)]['limit']>0x0&&(_0x36571e[_0xcb3009(0xab)][_0x36571e['charLimitRule'][_0xcb3009(0x107)]]=_0x36571e[_0xcb3009(0xc7)][_0xcb3009(0x9e)]);else _0x36571e[_0xcb3009(0xab)]===undefined&&(_0x36571e[_0xcb3009(0xab)]={});delete _0x36571e['charLimitRule'],!_0x36571e[_0xcb3009(0x142)]&&(_0x36571e['rowStatuses']=Array(_0x36571e['rows'][_0xcb3009(0xff)])[_0xcb3009(0x10b)](_0xcb3009(0x94))),_0x36571e[_0xcb3009(0x16d)]===undefined&&(_0x36571e['rowLimitRule']=0x0),_0x36571e[_0xcb3009(0xbb)]===undefined&&(_0x36571e[_0xcb3009(0xbb)]=[]);}),setMemoryState(_0x41d6b9),dispatchAllTablesUpdate();const _0x2c9b77=getContext();if(_0x2c9b77[_0x17149c(0xac)]&&_0x2c9b77['chat']['length']>0x0){const _0x246ece=_0x2c9b77[_0x17149c(0xac)][_0x2c9b77[_0x17149c(0xac)]['length']-0x1];saveStateToMessage(getMemoryState(),_0x246ece)&&(saveChat(),log('导入的预设已强制写入最新消息并立即保存。',_0x17149c(0x127)));}else saveChatDebounced();log(_0x17149c(0xfb),_0x17149c(0x127)),toastr['success']('预设已成功导入!','导入成功'),typeof _0xa0592===_0x17149c(0x123)&&_0xa0592();}catch(_0x54d642){log(_0x17149c(0xf9)+_0x54d642[_0x17149c(0xb9)],_0x17149c(0xd6)),toastr[_0x17149c(0xd6)](_0x17149c(0x118)+_0x54d642[_0x17149c(0xb9)],'错误');}},_0x4588e2[_0x2d18c8(0xf5)](_0x9c8929);},_0x1bd7a4[_0x46708f(0x108)]();}export async function rollbackState(){const _0x3c7f12=_0x6350c4,_0x15e99d=getContext();if(!_0x15e99d||!_0x15e99d['chat']||_0x15e99d['chat'][_0x3c7f12(0xff)]<0x2)return log(_0x3c7f12(0xe1),_0x3c7f12(0xa6)),toastr['warning'](_0x3c7f12(0x12d)),![];const _0x48ef1e=_0x15e99d[_0x3c7f12(0xac)],_0xc87758=_0x48ef1e[_0x3c7f12(0xff)]-0x1,_0xda7397=_0x48ef1e[_0xc87758];log('正在尝试从第\x20'+(_0xc87758-0x1)+_0x3c7f12(0x165),_0x3c7f12(0xe0));const _0x482f9e=loadTables(_0xc87758);if(!_0x482f9e)return log('未能在上一楼找到可用的表格状态,无法回退。',_0x3c7f12(0xd6)),toastr[_0x3c7f12(0xd6)]('未能在上一楼找到可用的表格状态。'),![];setMemoryState(_0x482f9e);if(saveStateToMessage(_0x482f9e,_0xda7397))await saveChat(),log(_0x3c7f12(0xc9),_0x3c7f12(0x127));else return log(_0x3c7f12(0xbe),'error'),toastr['error'](_0x3c7f12(0xdb)),![];return renderTables(),updateOrInsertTableInChat(),log(_0x3c7f12(0x141),'info'),!![];}export async function rollbackAndRefill(){const _0x2c1d14=_0x6350c4,_0x15d6dd=extension_settings[extensionName];if(_0x15d6dd[_0x2c1d14(0x16f)]===![]){log(_0x2c1d14(0xc4),'info'),toastr[_0x2c1d14(0xe0)](_0x2c1d14(0xe7));return;}toastr[_0x2c1d14(0xe0)](_0x2c1d14(0xe6));const _0x9fdbee=await rollbackState();if(!_0x9fdbee){toastr['error'](_0x2c1d14(0x132));return;}toastr['success'](_0x2c1d14(0xa1));const _0x127b38=getContext(),_0x5c6b1e=_0x127b38['chat'][_0x127b38['chat'][_0x2c1d14(0xff)]-0x1];try{await fillWithSecondaryApi(_0x5c6b1e,!![]),log(_0x2c1d14(0xd0),_0x2c1d14(0x127));}catch(_0x143040){log(_0x2c1d14(0x91)+_0x143040[_0x2c1d14(0xb9)],_0x2c1d14(0xd6)),toastr[_0x2c1d14(0xd6)]('重新填表失败:\x20'+_0x143040[_0x2c1d14(0xb9)]);}}export function updateColumnWidth(_0x45ffac,_0x27f061,_0x1e332){const _0x23c7cb=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x45ffac])return;const _0x3b7e5d=currentTablesState[_0x45ffac];!_0x3b7e5d[_0x23c7cb(0xbb)]&&(_0x3b7e5d[_0x23c7cb(0xbb)]=[]);while(_0x3b7e5d[_0x23c7cb(0xbb)]['length']<_0x3b7e5d['headers']['length']){_0x3b7e5d[_0x23c7cb(0xbb)][_0x23c7cb(0x14f)](null);}_0x3b7e5d['columnWidths'][_0x27f061]=_0x1e332;const _0x552f3b=getContext();if(_0x552f3b[_0x23c7cb(0xac)]&&_0x552f3b[_0x23c7cb(0xac)][_0x23c7cb(0xff)]>0x0){const _0x3e6b5e=_0x552f3b[_0x23c7cb(0xac)][_0x552f3b[_0x23c7cb(0xac)][_0x23c7cb(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3e6b5e)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x477558=_0x6350c4,_0x188c91=getMemoryState();if(!_0x188c91||_0x188c91['length']===0x0)return!![];return _0x188c91[_0x477558(0xdc)](_0x537d54=>!_0x537d54[_0x477558(0xd2)]||_0x537d54[_0x477558(0xd2)][_0x477558(0xff)]===0x0);}function _0x50a6(){const _0xcb06c0=['rule_delete','\x20的第\x20','\x20条消息中找到基准表格数据。','name','input','\x20中操作。',']\x20新增了一列。','log','操作完成','填表完成','batch_filler_flow_template','【核心作用】专门用于记录除主角以外的角色之间的复杂人际关系网(NPC\x20to\x20NPC)。\x0a【字段详解】\x0a-\x20主动方:\x20关系的发起者或主体(例如\x27艾克\x27)。\x0a-\x20被动方:\x20关系的接收者或对象(例如\x27莉娜\x27)。\x0a-\x20关系:\x20用简短的词汇描述两者之间的关系本质,如\x27暗恋\x27、\x27世仇\x27、\x27师徒\x27。\x0a-\x20详情:\x20对这段关系的具体描述或背景补充。','readAsText','[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','【增加】:\x20','appendChild','导入预设失败:\x20',']\x20的表头“','预设已成功导入并应用。','(此处省略未选中的表格内容,仅提供表头供索引参考)\x0a','操作成功','63816AedSYr','length','设置成功','【说明】:\x0a','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','aiFlowTemplate','Amily2-Table-Preset-v3.0-separated_templates','global_table_preset','被动方','columnIndex','click','已清除所有单元格高亮标记。','super_memory_enabled','fill','成功在表格\x20','UI操作\x20\x22','trim','target',')行(','没有可导出的表格数据。','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','result','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。','above','AMILY2_TABLE_UPDATED','开始时间/结束时间','导入失败:','具体描述','5NXqnAa','join','执行者','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与关系:\x20描述该角色与主角之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','清空行数据后的状态已强制写入最新消息并立即保存。','重要原因','成功删除了表格\x20','\x20行位置插入了新行。','function','【触发条件】当两个NPC之间展现出明确的、非临时性的人际关系时,应添加新行。','新表格状态已强制写入最新消息并立即保存。','download','success','【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','新列\x201','已成功创建新表格:[','\x20|\x0a','some','聊天记录不足,无法执行回退操作。',')行,请结合剧情缩减至(','\x22\x20已重命名为\x20\x22','8kvbwGD',']\x20的第\x20','状态回退失败,已中止操作。','当前没有设置全局预设。','世界钟','anchor','\x20列的','(该表当前内容为空)\x0a','任务名','重命名失败:名称不能为空。','新列\x20',']\x20末尾新增一行。','角色名','\x20|\x20','tables','object','无需清除,当前未设置任何全局预设。','UI已更新以显示回退后的状态。','rowStatuses','\x0a*\x20','删除列失败:在表格\x20','插入了新列。','表格顺序调整后的状态已强制写入最新消息并立即保存。','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','\x0a【系统提示】:表格前\x20',']\x20的列“','从预设模板生成默认表格...','update','无法创建表格:名称不能为空。','AI\x20指令更新了表格\x20[','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','push','version','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','file','map','废黜表格后的状态已强制写入最新消息并立即保存。','tableIndex','纯净预设','\x20处变更。','导入全局预设失败:\x20','\x20行已恢复。','add','isArray',')的历史内容已简化并锁定,无需读取或修改。请专注于后续行的内容。\x0a','\x20行已标记为待删除。','removeChild','batchFillerFlowTemplate','”已更新为“','batch_filler_rule_template','AI返回内容为空,无法更新表格。','parse',']\x20新增了一行。','\x20条消息加载表格状态...','【触发条件】当两个NPC之间的关系性质发生转变(如从\x27盟友\x27变为\x27背叛者\x27)时,必须更新。','技能名','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','6404780whqpPp','\x20列。','已提交并永久删除了\x20','【当前(','rowLimitRule','filter','table_system_enabled','\x20(索引\x20','colIndex','\x20的表格。','全局预设已清除,新聊天将使用默认模板。','dispatchEvent','已清除所有表格的更新标记。','left',')行以下,但切莫完全删除。】','无法移动表格:索引\x20','8227716MQvjnW','缺少状态或目标消息,无法保存。','below','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','onload','AI指令未产生任何实质性变更。','用户取消了全局预设导入操作。','用户取消了导入操作。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','files','重命名失败','type','218010CZudom','未知操作','rule_update','size','clear','replace','用户取消了清除全局预设的操作。','539798NPQccH','onchange','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','),已智能转换为在表格\x20[','全局预设已被清除。','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','batchFillerRuleTemplate','\x20行(索引\x200\x20到\x20','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','aiRuleTemplate','stringify','无法导出:当前表格状态为空。','splice','\x20行移动到第\x20','headers','extra','\x20已在边界。','\x0a---\x0a','无法清空:当前表格状态为空。','拥有者','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','note','导出成功','|\x20...\x20|\x20','---','回退重填过程中发生错误:\x20','confirm','未在聊天记录中找到表格,正在加载全局预设...','normal',')列,字符超出规定(','技能效果','number','body','表格\x20[','...]','完整备份','导入操作已取消。','aiTemplate','limit','\x20行。','成功执行了\x20','状态回退成功,准备重新填表...','pending-deletion','文件格式无效或缺少版本号/表格数据。','此地角色','【删除】:\x20','warn','插入行失败:找不到索引为\x20','204ykIUKP','移动。','application/json','charLimitRules','chat','accept','导入的表格数据格式不正确:\x20','已根据AI的指示成功更新表格!','表格系统总开关已关闭,跳过\x20\x20标签处理。','重命名失败:名为\x20\x22','主动方','5449887Hoiqqs','未找到任何表格数据或全局预设,使用默认模板。','\x22\x20的表格已存在。','表格名称不能为空。','【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','rule_add','message','】已开始下载。','columnWidths','【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','forEach','回退状态保存失败,操作中止。','.json','injectionFlowTemplate','amily2_ai_template','createObjectURL','物品栏','表格系统总开关已关闭,跳过回退填表。','toString','无法创建表格:名为\x20\x22','charLimitRule','创建失败','已成功将回退后的状态保存至最新消息。','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\x0a【字段详解】\x0a-\x20任务名:\x20任务的简洁概括,如\x27寻找失落的神器\x27。\x0a-\x20类型:\x20任务的分类,如\x27主线\x27、\x27支线\x27、\x27个人\x27、\x27约定\x27。\x0a-\x20详情:\x20对任务目标和背景的简要描述。\x0a-\x20状态:\x20任务的当前进展,如\x27未开始\x27、\x27进行中\x27、\x27已完成\x27、\x27已失败\x27、\x27已取消\x27。\x0a-\x20执行者:\x20负责完成此任务的角色名。\x0a-\x20地点:\x20任务关键环节发生的地点。\x0a-\x20开始时间/结束时间:\x20记录任务的起止时间,格式\x27YYYY-MM-DD\x27,若未结束则结束时间留空。\x0a-\x20结果:\x20任务完成或失败后的最终结果。','href','createElement','【修改】:\x20','toISOString','---已锁定---','回退并重新填表操作完成。','simplifyRowThreshold','rows','导入的预设中缺少指令模板字段,模板将不会被更新。','”已向','rowIndex','error','includes','其他重要信息','437430YETzzU',']\x20的顺序已调整。','未能保存回退状态,操作中止。','every','\x20(本表格无需重新整理,仅供参考)','AI指令错误:尝试在不存在的表格索引\x20','名为\x20\x22','info','无法回退:聊天记录不足。','...','database','关系栏','操作已取消。','正在执行回退并重新填表...','表格系统总开关已关闭,无法执行回退填表。',']\x20的规则已更新。'];_0x50a6=function(){return _0xcb06c0;};return _0x50a6();}export function clearGlobalPreset(){const _0x485dc0=_0x6350c4;if(extension_settings[extensionName]&&extension_settings[extensionName]['global_table_preset']){const _0x196003=window[_0x485dc0(0x92)](_0x485dc0(0x181));_0x196003?(delete extension_settings[extensionName][_0x485dc0(0x105)],saveSettingsDebounced(),log(_0x485dc0(0x190),_0x485dc0(0x127)),toastr[_0x485dc0(0x127)](_0x485dc0(0x173),_0x485dc0(0xfd))):(log(_0x485dc0(0x18b),_0x485dc0(0xe0)),toastr['info'](_0x485dc0(0xe5)));}else log(_0x485dc0(0x140),_0x485dc0(0xe0)),toastr['info'](_0x485dc0(0x133),'提示');}export function importGlobalPreset(_0x18a9bf){const _0x2067d7=_0x6350c4,_0x59f4cd=document[_0x2067d7(0xcc)](_0x2067d7(0xed));_0x59f4cd['type']=_0x2067d7(0x152),_0x59f4cd[_0x2067d7(0xad)]=_0x2067d7(0xbf),_0x59f4cd[_0x2067d7(0x18d)]=_0x596a56=>{const _0x27a25b=_0x2067d7,_0x81669d=_0x596a56['target']['files'][0x0];if(!_0x81669d)return;const _0x3dbd14=new FileReader();_0x3dbd14[_0x27a25b(0x17d)]=_0x320ffb=>{const _0x5f67cc=_0x27a25b;try{const _0x2c5c36=JSON[_0x5f67cc(0x163)](_0x320ffb['target'][_0x5f67cc(0x113)]);if(!_0x2c5c36[_0x5f67cc(0x150)]||!Array[_0x5f67cc(0x15b)](_0x2c5c36[_0x5f67cc(0x13e)]))throw new Error(_0x5f67cc(0xa3));const _0x38513a=window[_0x5f67cc(0x92)](_0x5f67cc(0x11d));if(!_0x38513a){log(_0x5f67cc(0x17f),_0x5f67cc(0xe0)),toastr[_0x5f67cc(0xe0)](_0x5f67cc(0xe5));return;}const _0x468c47=_0x2c5c36[_0x5f67cc(0x13e)][_0x5f67cc(0x153)](_0x2a0ee6=>({'name':_0x2a0ee6[_0x5f67cc(0xec)],'headers':_0x2a0ee6[_0x5f67cc(0x19c)],'note':_0x2a0ee6[_0x5f67cc(0x8d)],'rule_add':_0x2a0ee6[_0x5f67cc(0xb8)],'rule_delete':_0x2a0ee6[_0x5f67cc(0xe9)],'rule_update':_0x2a0ee6['rule_update'],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x5f67cc(0x105)]={'version':_0x2c5c36[_0x5f67cc(0x150)],'tables':_0x468c47,'batchFillerRuleTemplate':_0x2c5c36[_0x5f67cc(0x192)],'batchFillerFlowTemplate':_0x2c5c36['batchFillerFlowTemplate']},saveSettingsDebounced();if(_0x2c5c36['version']===_0x5f67cc(0x104))saveBatchFillerRuleTemplate(_0x2c5c36[_0x5f67cc(0x192)]||''),saveBatchFillerFlowTemplate(_0x2c5c36[_0x5f67cc(0x15f)]||''),saveAiTemplate(_0x2c5c36['injectionFlowTemplate']||'');else{if(_0x2c5c36[_0x5f67cc(0x197)]!==undefined&&_0x2c5c36[_0x5f67cc(0x103)]!==undefined)saveBatchFillerRuleTemplate(_0x2c5c36[_0x5f67cc(0x197)]||''),saveBatchFillerFlowTemplate(_0x2c5c36['aiFlowTemplate']||''),saveAiTemplate(_0x2c5c36[_0x5f67cc(0x103)]||'');else _0x2c5c36[_0x5f67cc(0x9d)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x2c5c36[_0x5f67cc(0x9d)]||''),saveAiTemplate(_0x2c5c36[_0x5f67cc(0x9d)]||''));}log('全局预设已成功导入并保存到扩展设置中。','success'),toastr[_0x5f67cc(0x127)]('全局预设已设置!新聊天将默认使用此预设。',_0x5f67cc(0x100)),typeof _0x18a9bf===_0x5f67cc(0x123)&&_0x18a9bf();}catch(_0x4c6ae0){log(_0x5f67cc(0x158)+_0x4c6ae0[_0x5f67cc(0xb9)],_0x5f67cc(0xd6)),toastr[_0x5f67cc(0xd6)]('导入失败:'+_0x4c6ae0['message'],'错误');}},_0x3dbd14[_0x27a25b(0xf5)](_0x81669d);},_0x59f4cd[_0x2067d7(0x108)]();} +const _0x2c092c=_0x2b91;(function(_0x3c141b,_0x55966f){const _0x496218=_0x2b91,_0x4ca439=_0x3c141b();while(!![]){try{const _0x5a10ff=parseInt(_0x496218(0x2c2))/0x1*(-parseInt(_0x496218(0x2f9))/0x2)+-parseInt(_0x496218(0x2af))/0x3+-parseInt(_0x496218(0x20e))/0x4*(parseInt(_0x496218(0x2fc))/0x5)+-parseInt(_0x496218(0x260))/0x6+-parseInt(_0x496218(0x213))/0x7+parseInt(_0x496218(0x25a))/0x8+parseInt(_0x496218(0x29f))/0x9;if(_0x5a10ff===_0x55966f)break;else _0x4ca439['push'](_0x4ca439['shift']());}catch(_0x18fc8d){_0x4ca439['push'](_0x4ca439['shift']());}}}(_0x2ea6,0x82dee));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{executeCommands}from'./executor.js';import{fillWithSecondaryApi}from'./secondary-filler.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';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();function dispatchTableUpdate(_0xa5050a){const _0xbcf5a6=_0x2b91,_0xf1b90d=extension_settings[extensionName]||{};if(_0xf1b90d[_0xbcf5a6(0x2b2)]===![])return;if(!currentTablesState||!currentTablesState[_0xa5050a])return;const _0x3dcf75=currentTablesState[_0xa5050a];let _0x298a97=_0xbcf5a6(0x22b);if(_0x3dcf75['name']['includes']('时空')||_0x3dcf75[_0xbcf5a6(0x26f)][_0xbcf5a6(0x208)]('世界钟'))_0x298a97='anchor';if(_0x3dcf75[_0xbcf5a6(0x26f)][_0xbcf5a6(0x208)]('日志')||_0x3dcf75['name'][_0xbcf5a6(0x208)]('Log'))_0x298a97='log';const _0x3fa276=new CustomEvent(_0xbcf5a6(0x1f9),{'detail':{'tableName':_0x3dcf75['name'],'data':_0x3dcf75[_0xbcf5a6(0x2d0)],'headers':_0x3dcf75[_0xbcf5a6(0x264)],'rowStatuses':_0x3dcf75[_0xbcf5a6(0x266)]||[],'role':_0x298a97}});document['dispatchEvent'](_0x3fa276),log(_0xbcf5a6(0x286)+_0x3dcf75['name'],_0xbcf5a6(0x238));}function _0x2ea6(){const _0x4e4305=['rowIndex','number','stringify','在第\x20','\x20已在边界。','onload','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。','正在尝试从第\x20','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','Amily2-Table-Preset-v2.0-full','above','填表完成','【说明】:\x0a','1025208vlFThp','files','---','(该表当前内容为空)\x0a','\x20中找不到索引为\x20','|\x20...\x20|\x20','3782634TssCBo','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与关系:\x20描述该角色与主角之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','创建失败','角色栏','headers','未找到任何表格数据或全局预设,使用默认模板。','rowStatuses','colIndex','【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','状态回退成功,准备重新填表...','UI操作\x20\x22','\x20的表格。',']\x20的列“','below','无需清除,当前未设置任何全局预设。','name','技能效果','聊天记录不足,无法执行回退操作。','columnWidths','columnIndex','物品名','message','\x0a*\x20','removeChild','chat','重命名失败:表格不存在。','\x20中操作。','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','导入成功','任务名','amily2_ai_template','没有可导出的表格数据。','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\x0a【字段详解】\x0a-\x20任务名:\x20任务的简洁概括,如\x27寻找失落的神器\x27。\x0a-\x20类型:\x20任务的分类,如\x27主线\x27、\x27支线\x27、\x27个人\x27、\x27约定\x27。\x0a-\x20详情:\x20对任务目标和背景的简要描述。\x0a-\x20状态:\x20任务的当前进展,如\x27未开始\x27、\x27进行中\x27、\x27已完成\x27、\x27已失败\x27、\x27已取消\x27。\x0a-\x20执行者:\x20负责完成此任务的角色名。\x0a-\x20地点:\x20任务关键环节发生的地点。\x0a-\x20开始时间/结束时间:\x20记录任务的起止时间,格式\x27YYYY-MM-DD\x27,若未结束则结束时间留空。\x0a-\x20结果:\x20任务完成或失败后的最终结果。','batch_filler_rule_template','技能名','导入的预设中缺少指令模板字段,模板将不会被更新。','...]','[SuperMemory]\x20Dispatched\x20update\x20event\x20for\x20','【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','charLimitRules',')行以下,但切莫完全删除。】','every',')\x20的第\x20','无法回退:聊天记录不足。','角色名','成功删除了表格\x20','无法创建表格:名为\x20\x22','【增加】:\x20','导入失败:','Amily2-Table-Preset-v3.0-separated_templates','\x20行。','batchFillerRuleTemplate','当前没有设置全局预设。','\x0a---\x0a','表格不存在。','操作成功','导入预设失败:\x20','全局预设已成功导入并保存到扩展设置中。','accept','filter','batchFillerFlowTemplate','未能保存回退状态,操作中止。','18314082vRXQoj','重命名失败','用户取消了导入操作。','forEach','confirm','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','\x20行位置插入了新行。','【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。',')的历史内容已简化并锁定,无需读取或修改。请专注于后续行的内容。\x0a','revokeObjectURL','【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','【修改】:\x20','splice','toString','[SuperMemory]\x20Dispatching\x20update\x20events\x20for\x20ALL\x20tables...','表格名称不能为空。','108045tlrbAd','其他重要信息','aiRuleTemplate','super_memory_enabled','已根据AI的指示成功更新表格!','mes','【删除】:\x20','substring','\x0a【系统提示】:表格前\x20','回退状态保存失败,操作中止。','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','trim','update',']\x20的顺序已调整。','表格\x20[','无法导出:当前表格状态为空。','version','success','【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','61051JhKmCa',')行,请结合剧情缩减至(','aiFlowTemplate','表格系统总开关已关闭,跳过回退填表。','缺少状态或目标消息,无法保存。','(此处省略未选中的表格内容,仅提供表头供索引参考)\x0a','parse','【触发条件】当两个NPC之间的关系性质发生转变(如从\x27盟友\x27变为\x27背叛者\x27)时,必须更新。','appendChild',')行(','开始时间/结束时间','push',')第(','AI指令错误:尝试在不存在的表格索引\x20','rows','clear','body','immediateDelete','【核心作用】专门用于记录除主角以外的角色之间的复杂人际关系网(NPC\x20to\x20NPC)。\x0a【字段详解】\x0a-\x20主动方:\x20关系的发起者或主体(例如\x27艾克\x27)。\x0a-\x20被动方:\x20关系的接收者或对象(例如\x27莉娜\x27)。\x0a-\x20关系:\x20用简短的词汇描述两者之间的关系本质,如\x27暗恋\x27、\x27世仇\x27、\x27师徒\x27。\x0a-\x20详情:\x20对这段关系的具体描述或背景补充。','【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','已成功创建新表格:[','插入了新列。','成功将表格\x20','),已智能转换为在表格\x20[','所有表格的行数据已在内存中清空。','fill','\x20条消息中找到基准表格数据。',']\x20在第\x20',']\x20的第\x20',']\x20末尾新增一行。','设定栏',']\x20的表头“','rule_update','已提交并永久删除了\x20','Amily2-','amily2-force-ui-reload','pending-deletion','完整备份','\x20的列。','【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','charLimitRule','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','add','\x20|\x0a','\x20行(索引\x200\x20到\x20','dispatchEvent','normal','batch_filler_flow_template','note','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','simplifyRowThreshold','状态回退失败,已中止操作。','无法移动列:索引\x20','表格顺序调整后的状态已强制写入最新消息并立即保存。','\x22\x20的表格已存在。','6NEZlpI','href','被动方','1998635VMNQts','未能在上一楼找到可用的表格状态,无法回退。','表格\x20\x22','createObjectURL','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','.json',')字限制,请进行缩减。】','\x22\x20已重命名为\x20\x22','文件格式无效或缺少版本号/表格数据。','extra','tables','type','【触发条件】当两个NPC之间展现出明确的、非临时性的人际关系时,应添加新行。','file','Amily2-Table-Preset-v2.0-clean','删除列失败:在表格\x20','插入行失败:找不到索引为\x20','rule_add','AMILY2_TABLE_UPDATED','重命名失败:名称不能为空。','\x20行已恢复。','input','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','这是一个新创建的表格。','result','导出成功','预设已成功导入并应用。','”已向','...','global_table_preset','limit','warning','isArray','includes','废黜表格后的状态已强制写入最新消息并立即保存。',']\x20已被成功废黜。','download',']\x20新增了一列。','技能栏','4pYkuyg','表格系统总开关已关闭,跳过\x20\x20标签处理。','设置成功','”已更新为“','\x20|\x20','2643683rRnBlH','与关系',')列,字符超出规定(','新表格状态已强制写入最新消息并立即保存。','readAsText','slice','injectionFlowTemplate','warn','\x20行已标记为待删除。',']\x20新增了一行。','用户取消了全局预设导入操作。','join','function','具体描述','size','left','无法清空:当前表格状态为空。','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','【当前(','清空行数据后的状态已强制写入最新消息并立即保存。','table_system_enabled','操作已取消。','rule_delete','导入的表格数据格式不正确:\x20','database','\x20(索引\x20','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','加载全局预设失败:\x20','replace','【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','\x20行移动到第\x20','关系栏','toISOString','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','时空栏','rowLimitRule','some','info','导入全局预设失败:\x20','tableIndex','click','名为\x20\x22','表格系统总开关已关闭,无法执行回退填表。','---已锁定---','AI指令未产生任何实质性变更。','未在聊天记录中找到表格,正在加载全局预设...','导入操作已取消。','移动。','target','aiTemplate','error','全局预设已被清除。','拥有者','createElement','onchange','length','map','表格状态已准备写入消息\x20['];_0x2ea6=function(){return _0x4e4305;};return _0x2ea6();}function dispatchAllTablesUpdate(){const _0x524ccf=_0x2b91;if(!currentTablesState)return;log(_0x524ccf(0x2ad),_0x524ccf(0x238)),currentTablesState['forEach']((_0x3f840b,_0x136917)=>{dispatchTableUpdate(_0x136917);});}export function addHighlight(_0x2ac495,_0xd62f00,_0x4b0f9d){const _0x34a350=_0x2ac495+'-'+_0xd62f00+'-'+_0x4b0f9d;highlightedCells['add'](_0x34a350);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x4a16b3=_0x2b91;highlightedCells['size']>0x0&&(highlightedCells[_0x4a16b3(0x2d1)](),log('已清除所有单元格高亮标记。',_0x4a16b3(0x238)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x3df37e=_0x2b91;updatedTables[_0x3df37e(0x221)]>0x0&&(updatedTables['clear'](),log('已清除所有表格的更新标记。',_0x3df37e(0x238)));}export function setMemoryState(_0xc09dee){currentTablesState=_0xc09dee;}export function loadMemoryState(_0x5c3e47){if(!_0x5c3e47)return;setMemoryState(_0x5c3e47),renderTables(),updateOrInsertTableInChat(),log('[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','info');}export function saveMemoryState(){const _0x17b1ff=_0x2b91,_0x2d2c4c=getContext();if(_0x2d2c4c[_0x17b1ff(0x278)]&&_0x2d2c4c[_0x17b1ff(0x278)][_0x17b1ff(0x24a)]>0x0){const _0x5873f4=_0x2d2c4c[_0x17b1ff(0x278)][_0x2d2c4c['chat'][_0x17b1ff(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x5873f4))return!![];}return![];}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x2c092c(0x235),'headers':['日期','时段','时间','地点','此地角色'],'note':_0x2c092c(0x253),'rule_add':_0x2c092c(0x2b9),'rule_delete':_0x2c092c(0x224),'rule_update':_0x2c092c(0x27b),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':_0x2c092c(0x263),'headers':[_0x2c092c(0x28d),'外貌','身形','衣着','性格','身份','职业',_0x2c092c(0x214),'爱好','住所',_0x2c092c(0x2b0)],'note':_0x2c092c(0x261),'rule_add':_0x2c092c(0x2d5),'rule_delete':_0x2c092c(0x300),'rule_update':_0x2c092c(0x230),'charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0x2c092c(0x232),'headers':['主动方',_0x2c092c(0x2fb),'关系','详情'],'columnWidths':[],'note':_0x2c092c(0x2d4),'rule_add':_0x2c092c(0x1f3),'rule_delete':'【触发条件】当两个NPC之间的关系彻底断绝且不再影响剧情,或者其中一方彻底消失/死亡时,可以删除。','rule_update':_0x2c092c(0x2c9),'charLimitRules':{},'rowLimitRule':0x0,'rows':[],'rowStatuses':[]},{'name':'任务栏','headers':[_0x2c092c(0x27d),'类型','详情','状态','执行者','地点',_0x2c092c(0x2cc),'结果'],'note':_0x2c092c(0x281),'rule_add':_0x2c092c(0x2a6),'rule_delete':'【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','rule_update':'【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':'物品栏','headers':[_0x2c092c(0x274),'类型','详情','状态',_0x2c092c(0x247),'重要原因'],'note':_0x2c092c(0x287),'rule_add':'【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','rule_delete':_0x2c092c(0x2c1),'rule_update':'【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x2c092c(0x20d),'headers':[_0x2c092c(0x283),_0x2c092c(0x270)],'note':'【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','rule_add':'【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','rule_delete':_0x2c092c(0x1fd),'rule_update':_0x2c092c(0x280),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x2c092c(0x2e0),'headers':['类型',_0x2c092c(0x220)],'note':_0x2c092c(0x234),'rule_add':_0x2c092c(0x268),'rule_delete':_0x2c092c(0x2a9),'rule_update':_0x2c092c(0x2e9),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x118005=_0x2c092c;log('从预设模板生成默认表格...',_0x118005(0x238));const _0x48da2b=JSON[_0x118005(0x2c8)](JSON[_0x118005(0x24f)](defaultTemplate['tables']));return _0x48da2b['forEach'](_0x5572d7=>{const _0x377b0b=_0x118005;_0x5572d7[_0x377b0b(0x2ea)]={'columnIndex':-0x1,'limit':0x0},_0x5572d7[_0x377b0b(0x236)]=0x0,_0x5572d7[_0x377b0b(0x272)]=[];}),_0x48da2b;}export function loadTables(_0x2b662c=-0x1){const _0x571a6b=_0x2c092c,_0x23add0=getContext();if(_0x23add0&&_0x23add0[_0x571a6b(0x278)]&&_0x23add0[_0x571a6b(0x278)]['length']>0x0){const _0x323a46=_0x2b662c===-0x1?_0x23add0[_0x571a6b(0x278)][_0x571a6b(0x24a)]-0x1:_0x2b662c-0x1;for(let _0x376573=_0x323a46;_0x376573>=0x0;_0x376573--){const _0x5b87d7=_0x23add0[_0x571a6b(0x278)][_0x376573];if(_0x5b87d7[_0x571a6b(0x1f0)]&&_0x5b87d7[_0x571a6b(0x1f0)][TABLE_DATA_KEY]){log(_0x571a6b(0x250)+_0x376573+_0x571a6b(0x2dc),_0x571a6b(0x238));let _0x50a91d=JSON[_0x571a6b(0x2c8)](JSON['stringify'](_0x5b87d7['extra'][TABLE_DATA_KEY]));return _0x50a91d[_0x571a6b(0x2a2)](_0x5cc23d=>{const _0xe3300d=_0x571a6b;if(_0x5cc23d[_0xe3300d(0x2f2)]===undefined)_0x5cc23d[_0xe3300d(0x2f2)]='无';if(_0x5cc23d[_0xe3300d(0x1f8)]===undefined)_0x5cc23d[_0xe3300d(0x1f8)]='允许';if(_0x5cc23d[_0xe3300d(0x229)]===undefined)_0x5cc23d[_0xe3300d(0x229)]='允许';if(_0x5cc23d[_0xe3300d(0x2e2)]===undefined)_0x5cc23d[_0xe3300d(0x2e2)]='允许';_0x5cc23d[_0xe3300d(0x2ea)]&&!_0x5cc23d[_0xe3300d(0x288)]&&(_0x5cc23d[_0xe3300d(0x288)]={},_0x5cc23d[_0xe3300d(0x2ea)][_0xe3300d(0x273)]!==-0x1&&_0x5cc23d[_0xe3300d(0x2ea)]['limit']>0x0&&(_0x5cc23d[_0xe3300d(0x288)][_0x5cc23d[_0xe3300d(0x2ea)][_0xe3300d(0x273)]]=_0x5cc23d[_0xe3300d(0x2ea)][_0xe3300d(0x205)]));delete _0x5cc23d[_0xe3300d(0x2ea)];if(_0x5cc23d['rowLimitRule']===undefined)_0x5cc23d['rowLimitRule']=0x0;if(_0x5cc23d[_0xe3300d(0x272)]===undefined)_0x5cc23d[_0xe3300d(0x272)]=[];!_0x5cc23d['rowStatuses']&&(_0x5cc23d[_0xe3300d(0x266)]=Array(_0x5cc23d['rows'][_0xe3300d(0x24a)])[_0xe3300d(0x2db)]('normal'));}),currentTablesState=_0x50a91d,dispatchAllTablesUpdate(),currentTablesState;}}}if(extension_settings[extensionName]?.[_0x571a6b(0x204)]){log(_0x571a6b(0x240),'info');try{const _0x327b1b=extension_settings[extensionName][_0x571a6b(0x204)];return currentTablesState=JSON[_0x571a6b(0x2c8)](JSON['stringify'](_0x327b1b[_0x571a6b(0x1f1)])),_0x327b1b[_0x571a6b(0x294)]!==undefined&&saveBatchFillerRuleTemplate(_0x327b1b[_0x571a6b(0x294)]),_0x327b1b[_0x571a6b(0x29d)]!==undefined&&saveBatchFillerFlowTemplate(_0x327b1b[_0x571a6b(0x29d)]),dispatchAllTablesUpdate(),currentTablesState;}catch(_0x4a9f6e){log(_0x571a6b(0x22e)+_0x4a9f6e[_0x571a6b(0x275)],'error');}}return log(_0x571a6b(0x265),_0x571a6b(0x238)),currentTablesState=getDefaultTables(),dispatchAllTablesUpdate(),currentTablesState;}export function saveStateToMessage(_0x5c3f27,_0x9b9aa0){const _0x1d5f6c=_0x2c092c;if(!_0x5c3f27||!_0x9b9aa0)return log(_0x1d5f6c(0x2c6),_0x1d5f6c(0x245)),![];return!_0x9b9aa0[_0x1d5f6c(0x1f0)]&&(_0x9b9aa0[_0x1d5f6c(0x1f0)]={}),_0x9b9aa0[_0x1d5f6c(0x1f0)][TABLE_DATA_KEY]=JSON[_0x1d5f6c(0x2c8)](JSON[_0x1d5f6c(0x24f)](_0x5c3f27)),log(_0x1d5f6c(0x24c)+_0x9b9aa0[_0x1d5f6c(0x2b4)][_0x1d5f6c(0x2b6)](0x0,0x14)+_0x1d5f6c(0x285),'info'),!![];}export function saveTables(_0x430495='未知操作'){const _0xccfd2a=_0x2c092c;return log(_0xccfd2a(0x26a)+_0x430495+'\x22\x20已更新内存状态。',_0xccfd2a(0x238)),!![];}export function deleteColumn(_0x57bf6a,_0x4dcda6){const _0x53a707=_0x2c092c,_0x58c5f8=getMemoryState();if(!_0x58c5f8[_0x57bf6a]||_0x4dcda6<0x0||_0x4dcda6>=_0x58c5f8[_0x57bf6a][_0x53a707(0x264)][_0x53a707(0x24a)]){log(_0x53a707(0x1f6)+_0x57bf6a+_0x53a707(0x25e)+_0x4dcda6+_0x53a707(0x2e8),_0x53a707(0x245));return;}_0x58c5f8[_0x57bf6a][_0x53a707(0x264)][_0x53a707(0x2ab)](_0x4dcda6,0x1),_0x58c5f8[_0x57bf6a][_0x53a707(0x2d0)][_0x53a707(0x2a2)](_0x420e67=>{const _0x2a31f4=_0x53a707;_0x420e67[_0x2a31f4(0x24a)]>_0x4dcda6&&_0x420e67['splice'](_0x4dcda6,0x1);}),_0x58c5f8[_0x57bf6a]['columnWidths']&&_0x58c5f8[_0x57bf6a][_0x53a707(0x272)]['length']>_0x4dcda6&&_0x58c5f8[_0x57bf6a]['columnWidths'][_0x53a707(0x2ab)](_0x4dcda6,0x1),log(_0x53a707(0x28e)+_0x57bf6a+'\x20的第\x20'+(_0x4dcda6+0x1)+'\x20列。',_0x53a707(0x2c0)),saveTables(_0x58c5f8),dispatchTableUpdate(_0x57bf6a);}export function moveRow(_0x4302e1,_0x180056,_0x5a80b0){const _0x55b4ac=_0x2c092c,_0x4b79df=getMemoryState(),_0x9b881a=_0x4b79df[_0x4302e1];if(!_0x9b881a||_0x180056<0x0||_0x180056>=_0x9b881a[_0x55b4ac(0x2d0)][_0x55b4ac(0x24a)])return;const _0x39315e=_0x5a80b0==='up'?_0x180056-0x1:_0x180056+0x1;if(_0x39315e<0x0||_0x39315e>=_0x9b881a[_0x55b4ac(0x2d0)]['length'])return;const [_0x4d5b3b]=_0x9b881a[_0x55b4ac(0x2d0)][_0x55b4ac(0x2ab)](_0x180056,0x1);_0x9b881a['rows']['splice'](_0x39315e,0x0,_0x4d5b3b);if(_0x9b881a[_0x55b4ac(0x266)]&&_0x9b881a[_0x55b4ac(0x266)]['length']===_0x9b881a['rows'][_0x55b4ac(0x24a)]+0x1){const [_0x1f42e6]=_0x9b881a[_0x55b4ac(0x266)][_0x55b4ac(0x2ab)](_0x180056,0x1);_0x9b881a[_0x55b4ac(0x266)][_0x55b4ac(0x2ab)](_0x39315e,0x0,_0x1f42e6);}log(_0x55b4ac(0x2d8)+_0x4302e1+'\x20的第\x20'+(_0x180056+0x1)+_0x55b4ac(0x231)+(_0x39315e+0x1)+_0x55b4ac(0x293),_0x55b4ac(0x2c0)),saveTables(_0x4b79df),dispatchTableUpdate(_0x4302e1);}export function insertRow(_0x49ff5a,_0x2ceb98,_0x5eedb8=_0x2c092c(0x26d)){const _0x24907f=_0x2c092c,_0x354486=getMemoryState(),_0x5dbf2a=_0x354486[_0x49ff5a];if(!_0x5dbf2a){log(_0x24907f(0x1f7)+_0x49ff5a+_0x24907f(0x26b),'error');return;}let _0x672df0;typeof _0x2ceb98===_0x24907f(0x24e)?_0x672df0=_0x5eedb8===_0x24907f(0x257)?_0x2ceb98:_0x2ceb98+0x1:_0x672df0=_0x5dbf2a['rows']['length'];if(_0x672df0<0x0)_0x672df0=0x0;if(_0x672df0>_0x5dbf2a[_0x24907f(0x2d0)][_0x24907f(0x24a)])_0x672df0=_0x5dbf2a[_0x24907f(0x2d0)][_0x24907f(0x24a)];const _0x26949c=new Array(_0x5dbf2a[_0x24907f(0x264)][_0x24907f(0x24a)])[_0x24907f(0x2db)]('');if(typeof _0x2ceb98==='object'&&_0x2ceb98!==null)for(const _0x28eac6 in _0x2ceb98){const _0x5c4dfa=parseInt(_0x28eac6,0xa);!isNaN(_0x5c4dfa)&&_0x5c4dfa<_0x26949c[_0x24907f(0x24a)]&&(_0x26949c[_0x5c4dfa]=_0x2ceb98[_0x28eac6],addHighlight(_0x49ff5a,_0x672df0,_0x5c4dfa));}_0x5dbf2a['rows'][_0x24907f(0x2ab)](_0x672df0,0x0,_0x26949c);if(!_0x5dbf2a[_0x24907f(0x266)])_0x5dbf2a[_0x24907f(0x266)]=Array(_0x5dbf2a[_0x24907f(0x2d0)]['length'])[_0x24907f(0x2db)](_0x24907f(0x2f0));_0x5dbf2a['rowStatuses'][_0x24907f(0x2ab)](_0x672df0,0x0,_0x24907f(0x2f0)),updatedTables[_0x24907f(0x2ec)](_0x49ff5a),dispatchTableUpdate(_0x49ff5a),log('成功在表格\x20'+_0x5dbf2a[_0x24907f(0x26f)]+_0x24907f(0x22c)+_0x49ff5a+_0x24907f(0x28b)+(_0x672df0+0x1)+_0x24907f(0x2a5),'success');const _0x427de5=getContext();if(_0x427de5[_0x24907f(0x278)]&&_0x427de5['chat'][_0x24907f(0x24a)]>0x0){const _0x5d6127=_0x427de5[_0x24907f(0x278)][_0x427de5[_0x24907f(0x278)][_0x24907f(0x24a)]-0x1];if(saveStateToMessage(_0x354486,_0x5d6127)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x458455){const _0x367343=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x458455])return;const _0x5e8ffa=currentTablesState[_0x458455],_0x452377=_0x5e8ffa[_0x367343(0x264)][_0x367343(0x24a)],_0x2da85e=Array(_0x452377)[_0x367343(0x2db)]('');_0x5e8ffa[_0x367343(0x2d0)][_0x367343(0x2cd)](_0x2da85e);if(!_0x5e8ffa[_0x367343(0x266)])_0x5e8ffa[_0x367343(0x266)]=Array(_0x5e8ffa['rows']['length'])[_0x367343(0x2db)](_0x367343(0x2f0));_0x5e8ffa['rowStatuses'][_0x367343(0x2cd)](_0x367343(0x2f0)),updatedTables[_0x367343(0x2ec)](_0x458455),dispatchTableUpdate(_0x458455);const _0x2d4ef6=_0x367343(0x2bd)+_0x5e8ffa[_0x367343(0x26f)]+_0x367343(0x21c);log(_0x2d4ef6,_0x367343(0x238));const _0xaa0367=getContext();if(_0xaa0367[_0x367343(0x278)]&&_0xaa0367[_0x367343(0x278)][_0x367343(0x24a)]>0x0){const _0x386e99=_0xaa0367['chat'][_0xaa0367[_0x367343(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x386e99)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x2f5df8){const _0x4d98d0=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x2f5df8])return;const _0x16df56=currentTablesState[_0x2f5df8],_0x5da21='新列\x20'+(_0x16df56['headers']['length']+0x1);_0x16df56['headers'][_0x4d98d0(0x2cd)](_0x5da21),_0x16df56[_0x4d98d0(0x2d0)]['forEach'](_0x512ac7=>_0x512ac7[_0x4d98d0(0x2cd)](''));if(!_0x16df56[_0x4d98d0(0x272)])_0x16df56[_0x4d98d0(0x272)]=[];_0x16df56[_0x4d98d0(0x272)]['push'](null);const _0x53b740=_0x4d98d0(0x2bd)+_0x16df56[_0x4d98d0(0x26f)]+_0x4d98d0(0x20c);log(_0x53b740,_0x4d98d0(0x238));const _0x48ed46=getContext();if(_0x48ed46['chat']&&_0x48ed46['chat']['length']>0x0){const _0x1b7ee1=_0x48ed46[_0x4d98d0(0x278)][_0x48ed46[_0x4d98d0(0x278)][_0x4d98d0(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x1b7ee1)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x5f10b6,_0x420932,_0x52f634){const _0x6ec151=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x5f10b6]||currentTablesState[_0x5f10b6][_0x6ec151(0x264)][_0x420932]===undefined)return;const _0x2351cb=currentTablesState[_0x5f10b6]['name'],_0x275f2a=currentTablesState[_0x5f10b6][_0x6ec151(0x264)][_0x420932];currentTablesState[_0x5f10b6][_0x6ec151(0x264)][_0x420932]=_0x52f634;const _0x1dc354='表格\x20['+_0x2351cb+_0x6ec151(0x2e1)+_0x275f2a+_0x6ec151(0x211)+_0x52f634+'”。';log(_0x1dc354,_0x6ec151(0x238));const _0x1d7505=getContext();if(_0x1d7505[_0x6ec151(0x278)]&&_0x1d7505['chat'][_0x6ec151(0x24a)]>0x0){const _0x2bfac2=_0x1d7505[_0x6ec151(0x278)][_0x1d7505[_0x6ec151(0x278)][_0x6ec151(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x2bfac2)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x168c44,_0x39b4ab){const _0x428adc=_0x2c092c,_0x5a9d51=currentTablesState?.[_0x168c44];if(!_0x5a9d51||!_0x5a9d51[_0x428adc(0x2d0)][_0x39b4ab])return;!_0x5a9d51['rowStatuses']&&(_0x5a9d51[_0x428adc(0x266)]=Array(_0x5a9d51[_0x428adc(0x2d0)][_0x428adc(0x24a)])['fill'](_0x428adc(0x2f0)));_0x5a9d51[_0x428adc(0x266)][_0x39b4ab]=_0x428adc(0x2e6),updatedTables[_0x428adc(0x2ec)](_0x168c44);const _0xa3dcdf='表格\x20['+_0x5a9d51[_0x428adc(0x26f)]+']\x20的第\x20'+(_0x39b4ab+0x1)+_0x428adc(0x21b);log(_0xa3dcdf,_0x428adc(0x238));const _0x2d2a4f=getContext();if(_0x2d2a4f[_0x428adc(0x278)]?.[_0x428adc(0x24a)]>0x0){const _0x1380f9=_0x2d2a4f[_0x428adc(0x278)][_0x2d2a4f[_0x428adc(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x1380f9)){await saveChat(),renderTables(),dispatchTableUpdate(_0x168c44);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x168c44);}export async function restoreRow(_0x339e1a,_0x5e4eff){const _0x70b263=_0x2c092c,_0xebdbf8=currentTablesState?.[_0x339e1a];if(!_0xebdbf8||!_0xebdbf8[_0x70b263(0x2d0)][_0x5e4eff]||!_0xebdbf8[_0x70b263(0x266)])return;_0xebdbf8[_0x70b263(0x266)][_0x5e4eff]=_0x70b263(0x2f0),updatedTables['add'](_0x339e1a);const _0x2e1ff1=_0x70b263(0x2bd)+_0xebdbf8['name']+_0x70b263(0x2de)+(_0x5e4eff+0x1)+_0x70b263(0x1fb);log(_0x2e1ff1,_0x70b263(0x238));const _0x41983f=getContext();if(_0x41983f[_0x70b263(0x278)]?.[_0x70b263(0x24a)]>0x0){const _0x48593f=_0x41983f[_0x70b263(0x278)][_0x41983f['chat'][_0x70b263(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x48593f)){await saveChat(),renderTables(),dispatchTableUpdate(_0x339e1a);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x339e1a);}export function commitPendingDeletions(){const _0x3fe730=_0x2c092c;if(!currentTablesState)return![];let _0x24c675=0x0;currentTablesState['forEach']((_0x46d05a,_0xe22879)=>{const _0x213618=_0x2b91;if(!_0x46d05a[_0x213618(0x266)]||_0x46d05a[_0x213618(0x266)]['length']===0x0)return;let _0x1e0788=![];for(let _0x523411=_0x46d05a['rows']['length']-0x1;_0x523411>=0x0;_0x523411--){_0x46d05a[_0x213618(0x266)][_0x523411]===_0x213618(0x2e6)&&(_0x46d05a['rows'][_0x213618(0x2ab)](_0x523411,0x1),_0x46d05a[_0x213618(0x266)][_0x213618(0x2ab)](_0x523411,0x1),_0x24c675++,_0x1e0788=!![]);}_0x1e0788&&updatedTables[_0x213618(0x2ec)](_0xe22879);});if(_0x24c675>0x0)return log(_0x3fe730(0x2e3)+_0x24c675+_0x3fe730(0x293),_0x3fe730(0x238)),updatedTables['size']>0x0&&updatedTables['forEach'](_0xe9d50f=>{dispatchTableUpdate(_0xe9d50f);}),!![];return![];}export function insertColumn(_0x361835,_0x180f57,_0x503e64){const _0x44ef80=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x361835])return;const _0x5ede4d=currentTablesState[_0x361835],_0x402366=_0x503e64===_0x44ef80(0x222)?_0x180f57:_0x180f57+0x1,_0x4efab1='新列';_0x5ede4d[_0x44ef80(0x264)][_0x44ef80(0x2ab)](_0x402366,0x0,_0x4efab1),_0x5ede4d[_0x44ef80(0x2d0)][_0x44ef80(0x2a2)](_0x44551f=>_0x44551f[_0x44ef80(0x2ab)](_0x402366,0x0,''));if(!_0x5ede4d['columnWidths'])_0x5ede4d[_0x44ef80(0x272)]=[];_0x5ede4d[_0x44ef80(0x272)][_0x44ef80(0x2ab)](_0x402366,0x0,null);const _0x1197fd=_0x44ef80(0x2bd)+_0x5ede4d[_0x44ef80(0x26f)]+_0x44ef80(0x2dd)+(_0x180f57+0x1)+'\x20列的'+(_0x503e64===_0x44ef80(0x222)?'左侧':'右侧')+_0x44ef80(0x2d7);log(_0x1197fd,'info');const _0x3c5220=getContext();if(_0x3c5220[_0x44ef80(0x278)]&&_0x3c5220[_0x44ef80(0x278)][_0x44ef80(0x24a)]>0x0){const _0xd24625=_0x3c5220[_0x44ef80(0x278)][_0x3c5220[_0x44ef80(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0xd24625)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x17723e,_0x326a58,_0x3db72e){const _0x5a9cef=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x17723e])return;const _0x30e7e5=currentTablesState[_0x17723e],_0x39349b=_0x30e7e5[_0x5a9cef(0x264)],_0x2bf881=_0x30e7e5[_0x5a9cef(0x2d0)],_0x10d543=_0x3db72e===_0x5a9cef(0x222)?_0x326a58-0x1:_0x326a58+0x1;if(_0x10d543<0x0||_0x10d543>=_0x39349b[_0x5a9cef(0x24a)]){log(_0x5a9cef(0x2f6)+_0x326a58+_0x5a9cef(0x251),'warn');return;}const [_0x3b61fb]=_0x39349b[_0x5a9cef(0x2ab)](_0x326a58,0x1);_0x39349b[_0x5a9cef(0x2ab)](_0x10d543,0x0,_0x3b61fb),_0x2bf881[_0x5a9cef(0x2a2)](_0x1f9bb9=>{const _0x8355f0=_0x5a9cef,[_0x476d10]=_0x1f9bb9['splice'](_0x326a58,0x1);_0x1f9bb9[_0x8355f0(0x2ab)](_0x10d543,0x0,_0x476d10);});if(_0x30e7e5['columnWidths']&&_0x30e7e5[_0x5a9cef(0x272)]['length']>_0x326a58){const [_0x340376]=_0x30e7e5[_0x5a9cef(0x272)][_0x5a9cef(0x2ab)](_0x326a58,0x1);_0x30e7e5['columnWidths']['splice'](_0x10d543,0x0,_0x340376);}const _0x253a27=_0x5a9cef(0x2bd)+_0x30e7e5['name']+_0x5a9cef(0x26c)+_0x3b61fb+_0x5a9cef(0x202)+(_0x3db72e==='left'?'左':'右')+_0x5a9cef(0x242);log(_0x253a27,_0x5a9cef(0x238));const _0x3bc14a=getContext();if(_0x3bc14a['chat']&&_0x3bc14a[_0x5a9cef(0x278)][_0x5a9cef(0x24a)]>0x0){const _0x583dd5=_0x3bc14a[_0x5a9cef(0x278)][_0x3bc14a[_0x5a9cef(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x583dd5)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0xea6220){const _0x25e31a=_0x2c092c;if(!currentTablesState||!currentTablesState[_0xea6220])return;const _0x3e4a27=currentTablesState[_0xea6220][_0x25e31a(0x26f)];currentTablesState['splice'](_0xea6220,0x1);const _0x185347=_0x25e31a(0x2bd)+_0x3e4a27+_0x25e31a(0x20a);log(_0x185347,_0x25e31a(0x2c0));const _0x95ba5=getContext();if(_0x95ba5[_0x25e31a(0x278)]&&_0x95ba5[_0x25e31a(0x278)][_0x25e31a(0x24a)]>0x0){const _0x1a7ba6=_0x95ba5[_0x25e31a(0x278)][_0x95ba5[_0x25e31a(0x278)][_0x25e31a(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x1a7ba6)){saveChat(),log(_0x25e31a(0x209),_0x25e31a(0x2c0));return;}}log(_0x25e31a(0x22d),_0x25e31a(0x245)),saveChatDebounced();}export function addTable(_0x9f8776){const _0x2a667f=_0x2c092c;if(!_0x9f8776||!_0x9f8776[_0x2a667f(0x2ba)]()){log('无法创建表格:名称不能为空。',_0x2a667f(0x245)),toastr[_0x2a667f(0x245)]('表格名称不能为空。','创建失败');return;}!currentTablesState&&loadTables();if(currentTablesState[_0x2a667f(0x237)](_0x1dd7af=>_0x1dd7af['name']===_0x9f8776[_0x2a667f(0x2ba)]())){log(_0x2a667f(0x28f)+_0x9f8776+'\x22\x20的表格已存在。',_0x2a667f(0x245)),toastr[_0x2a667f(0x245)](_0x2a667f(0x23c)+_0x9f8776+_0x2a667f(0x2f8),_0x2a667f(0x262));return;}const _0x546cef={'name':_0x9f8776[_0x2a667f(0x2ba)](),'headers':['新列\x201'],'rows':[],'rowStatuses':[],'columnWidths':[],'note':_0x2a667f(0x1fe),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState[_0x2a667f(0x2cd)](_0x546cef);const _0x1a7267=_0x2a667f(0x2d6)+_0x9f8776[_0x2a667f(0x2ba)]()+']。';log(_0x1a7267,_0x2a667f(0x2c0));const _0x56b19a=getContext();if(_0x56b19a[_0x2a667f(0x278)]&&_0x56b19a[_0x2a667f(0x278)][_0x2a667f(0x24a)]>0x0){const _0x59bea3=_0x56b19a[_0x2a667f(0x278)][_0x56b19a[_0x2a667f(0x278)][_0x2a667f(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x59bea3)){saveChat(),log(_0x2a667f(0x216),_0x2a667f(0x2c0));return;}}log(_0x2a667f(0x2eb),_0x2a667f(0x245)),saveChatDebounced();}export function renameTable(_0x2d61ff,_0x83f978){const _0x1dc8eb=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x2d61ff]){log(_0x1dc8eb(0x279),'error'),toastr[_0x1dc8eb(0x245)](_0x1dc8eb(0x297),'重命名失败');return;}const _0x2a8cde=_0x83f978[_0x1dc8eb(0x2ba)]();if(!_0x2a8cde){log(_0x1dc8eb(0x1fa),_0x1dc8eb(0x245)),toastr[_0x1dc8eb(0x245)](_0x1dc8eb(0x2ae),'重命名失败');return;}if(currentTablesState[_0x1dc8eb(0x237)]((_0x1bd895,_0x1d5b70)=>_0x1d5b70!==_0x2d61ff&&_0x1bd895['name']===_0x2a8cde)){log('重命名失败:名为\x20\x22'+_0x2a8cde+'\x22\x20的表格已存在。','error'),toastr[_0x1dc8eb(0x245)](_0x1dc8eb(0x23c)+_0x2a8cde+'\x22\x20的表格已存在。',_0x1dc8eb(0x2a0));return;}const _0x51252b=currentTablesState[_0x2d61ff][_0x1dc8eb(0x26f)];currentTablesState[_0x2d61ff]['name']=_0x2a8cde,log(_0x1dc8eb(0x2fe)+_0x51252b+_0x1dc8eb(0x303)+_0x2a8cde+'\x22。',_0x1dc8eb(0x2c0));const _0x4a8f7a=getContext();if(_0x4a8f7a[_0x1dc8eb(0x278)]&&_0x4a8f7a[_0x1dc8eb(0x278)][_0x1dc8eb(0x24a)]>0x0){const _0x424baf=_0x4a8f7a[_0x1dc8eb(0x278)][_0x4a8f7a[_0x1dc8eb(0x278)][_0x1dc8eb(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x424baf)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x1aa21f,_0x479179){const _0x528226=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x1aa21f])return;const _0x4a121a=_0x479179==='up'?_0x1aa21f-0x1:_0x1aa21f+0x1;if(_0x4a121a<0x0||_0x4a121a>=currentTablesState[_0x528226(0x24a)]){log('无法移动表格:索引\x20'+_0x1aa21f+_0x528226(0x251),'warn');return;}const _0x457ee2=currentTablesState[_0x1aa21f];currentTablesState[_0x1aa21f]=currentTablesState[_0x4a121a],currentTablesState[_0x4a121a]=_0x457ee2;const _0x2463b7=_0x528226(0x2bd)+_0x457ee2[_0x528226(0x26f)]+_0x528226(0x2bc);log(_0x2463b7,'success');const _0x168c7b=getContext();if(_0x168c7b[_0x528226(0x278)]&&_0x168c7b[_0x528226(0x278)][_0x528226(0x24a)]>0x0){const _0x3976e9=_0x168c7b[_0x528226(0x278)][_0x168c7b[_0x528226(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3976e9)){saveChat(),log(_0x528226(0x2f7),_0x528226(0x2c0));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!',_0x528226(0x245)),saveChatDebounced();}export function updateTableRules(_0x565701,_0x59b7d5){const _0x4428a8=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x565701])return;const _0x33cc27=currentTablesState[_0x565701];_0x33cc27[_0x4428a8(0x2f2)]=_0x59b7d5[_0x4428a8(0x2f2)],_0x33cc27[_0x4428a8(0x1f8)]=_0x59b7d5['rule_add'],_0x33cc27[_0x4428a8(0x229)]=_0x59b7d5[_0x4428a8(0x229)],_0x33cc27['rule_update']=_0x59b7d5['rule_update'],_0x33cc27[_0x4428a8(0x288)]=_0x59b7d5[_0x4428a8(0x288)],_0x33cc27[_0x4428a8(0x236)]=_0x59b7d5[_0x4428a8(0x236)],_0x33cc27['simplifyRowThreshold']=_0x59b7d5[_0x4428a8(0x2f4)],delete _0x33cc27[_0x4428a8(0x2ea)];const _0x3060e0=_0x4428a8(0x2bd)+_0x33cc27[_0x4428a8(0x26f)]+']\x20的规则已更新。';log(_0x3060e0,_0x4428a8(0x238));const _0x5e140e=getContext();if(_0x5e140e[_0x4428a8(0x278)]&&_0x5e140e[_0x4428a8(0x278)][_0x4428a8(0x24a)]>0x0){const _0x4f98ae=_0x5e140e[_0x4428a8(0x278)][_0x5e140e[_0x4428a8(0x278)][_0x4428a8(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x4f98ae)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x3b304e,_0x3d3cbd,_0x1933e3){const _0x55d584=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x3b304e]){log(_0x55d584(0x2cf)+_0x3b304e+_0x55d584(0x27a),'error');return;}const _0x1f1ff0=currentTablesState[_0x3b304e];if(_0x3d3cbd>=_0x1f1ff0[_0x55d584(0x2d0)][_0x55d584(0x24a)]){log('AI指令意图更新不存在的行\x20(rowIndex:\x20'+_0x3d3cbd+_0x55d584(0x2d9)+_0x1f1ff0['name']+_0x55d584(0x2df),'warn'),insertRow(_0x3b304e,_0x1933e3);return;}const _0x50ba0b=_0x1f1ff0[_0x55d584(0x2d0)][_0x3d3cbd];for(const _0x278db5 in _0x1933e3){const _0x5cdabc=parseInt(_0x278db5,0xa);_0x5cdabc<_0x50ba0b[_0x55d584(0x24a)]&&(_0x50ba0b[_0x5cdabc]=_0x1933e3[_0x5cdabc],addHighlight(_0x3b304e,_0x3d3cbd,_0x5cdabc));}updatedTables[_0x55d584(0x2ec)](_0x3b304e),dispatchTableUpdate(_0x3b304e);const _0x4d33b6='AI\x20指令更新了表格\x20['+_0x1f1ff0[_0x55d584(0x26f)]+']\x20的第\x20'+(_0x3d3cbd+0x1)+_0x55d584(0x293);log(_0x4d33b6,_0x55d584(0x238));const _0x30e8e2=getContext();if(_0x30e8e2[_0x55d584(0x278)]&&_0x30e8e2[_0x55d584(0x278)][_0x55d584(0x24a)]>0x0){const _0x2c4467=_0x30e8e2['chat'][_0x30e8e2[_0x55d584(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x2c4467)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x37ec58=_0x2c092c;if(!currentTablesState){log(_0x37ec58(0x223),_0x37ec58(0x245));return;}currentTablesState[_0x37ec58(0x2a2)]((_0x2b024b,_0x35be0f)=>{const _0x85743b=_0x37ec58;_0x2b024b[_0x85743b(0x2d0)][_0x85743b(0x24a)]>0x0&&updatedTables[_0x85743b(0x2ec)](_0x35be0f),_0x2b024b[_0x85743b(0x2d0)]=[],_0x2b024b[_0x85743b(0x266)]=[];}),log(_0x37ec58(0x2da),_0x37ec58(0x21a)),dispatchAllTablesUpdate();const _0x2a0d57=getContext();if(_0x2a0d57[_0x37ec58(0x278)]&&_0x2a0d57[_0x37ec58(0x278)][_0x37ec58(0x24a)]>0x0){const _0x128ac6=_0x2a0d57[_0x37ec58(0x278)][_0x2a0d57[_0x37ec58(0x278)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x128ac6)){saveChat(),log(_0x37ec58(0x226),_0x37ec58(0x2c0)),toastr[_0x37ec58(0x2c0)]('所有表格的剧情内容已清空。','操作完成');return;}}log(_0x37ec58(0x2a4),_0x37ec58(0x245)),saveChatDebounced();}function checkTableRules(_0x4de977){const _0x2adeb3=_0x2c092c;let _0x380514=[];_0x4de977['rowLimitRule']&&_0x4de977[_0x2adeb3(0x236)]>0x0&&_0x4de977['rows']['length']>_0x4de977[_0x2adeb3(0x236)]&&_0x380514[_0x2adeb3(0x2cd)](_0x2adeb3(0x225)+_0x4de977['name']+')超出规定('+_0x4de977[_0x2adeb3(0x236)]+_0x2adeb3(0x2c3)+_0x4de977[_0x2adeb3(0x236)]+_0x2adeb3(0x289));const _0x2a03d4=_0x4de977[_0x2adeb3(0x288)]||{};for(const _0x46cb0d in _0x2a03d4){const _0x538c6d=parseInt(_0x46cb0d,0xa),_0x1d27e2=_0x2a03d4[_0x538c6d];if(_0x1d27e2>0x0&&_0x538c6d>=0x0&&_0x538c6d<_0x4de977['headers'][_0x2adeb3(0x24a)]){const _0x5db2f0=_0x4de977[_0x2adeb3(0x264)][_0x538c6d],_0x4fb9e4=[];_0x4de977[_0x2adeb3(0x2d0)][_0x2adeb3(0x2a2)]((_0x2ccec0,_0x5496e5)=>{const _0x173536=_0x2adeb3;if(_0x4de977[_0x173536(0x266)]&&_0x4de977[_0x173536(0x266)][_0x5496e5]===_0x173536(0x2e6))return;const _0x264435=_0x2ccec0[_0x538c6d]||'';_0x264435['length']>_0x1d27e2&&_0x4fb9e4[_0x173536(0x2cd)](_0x5496e5);});if(_0x4fb9e4[_0x2adeb3(0x24a)]>0x0){const _0x2c82bb=_0x4fb9e4[_0x2adeb3(0x21e)]('、');_0x380514['push'](_0x2adeb3(0x225)+_0x4de977[_0x2adeb3(0x26f)]+_0x2adeb3(0x2ce)+_0x2c82bb+_0x2adeb3(0x2cb)+_0x5db2f0+_0x2adeb3(0x215)+_0x1d27e2+_0x2adeb3(0x302));}}}return _0x380514[_0x2adeb3(0x21e)]('\x0a');}export function convertTablesToCsvString(){const _0x38e676=_0x2c092c;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x37ed1a='';return currentTablesState[_0x38e676(0x2a2)]((_0x5bd493,_0x28bf23)=>{const _0x19d940=_0x38e676;_0x37ed1a+=_0x19d940(0x276)+_0x28bf23+':'+_0x5bd493[_0x19d940(0x26f)]+'\x0a',_0x37ed1a+=_0x19d940(0x259)+(_0x5bd493[_0x19d940(0x2f2)]||'无')+'\x0a';const _0x375112=_0x5bd493[_0x19d940(0x26f)][_0x19d940(0x22f)](/\s/g,'')+'内容';_0x37ed1a+='<'+_0x375112+'>\x0a';const _0x4ff340=[_0x19d940(0x24d),..._0x5bd493[_0x19d940(0x264)][_0x19d940(0x24b)]((_0x32a023,_0x1efd74)=>_0x1efd74+':'+_0x32a023)];_0x37ed1a+='|\x20'+_0x4ff340[_0x19d940(0x21e)](_0x19d940(0x212))+_0x19d940(0x2ed),_0x37ed1a+='|'+_0x4ff340[_0x19d940(0x24b)](()=>_0x19d940(0x25c))['join']('|')+'|\x0a';const _0x3fe7d5=_0x5bd493[_0x19d940(0x2d0)][_0x19d940(0x29c)]((_0x4ee16b,_0x1aee4e)=>!_0x5bd493[_0x19d940(0x266)]||_0x5bd493[_0x19d940(0x266)][_0x1aee4e]!==_0x19d940(0x2e6));if(_0x3fe7d5['length']===0x0)_0x37ed1a+=_0x19d940(0x25d);else{const _0x118ab3=_0x5bd493[_0x19d940(0x2f4)]||0x0;let _0x3fc267=0x0;_0x5bd493['rows'][_0x19d940(0x2a2)]((_0x1c721a,_0x20a614)=>{const _0x97cb79=_0x19d940;if(_0x5bd493[_0x97cb79(0x266)]&&_0x5bd493[_0x97cb79(0x266)][_0x20a614]==='pending-deletion')return;if(_0x118ab3>0x0&&_0x20a614<_0x118ab3){if(_0x3fc267===0x0){const _0x3e8cf4=_0x1c721a['map'](()=>_0x97cb79(0x23e));_0x37ed1a+='|\x20'+_0x20a614+_0x97cb79(0x212)+_0x3e8cf4[_0x97cb79(0x21e)](_0x97cb79(0x212))+_0x97cb79(0x2ed),_0x37ed1a+=_0x97cb79(0x25f)+_0x1c721a[_0x97cb79(0x24b)](()=>'...')['join']('\x20|\x20')+'\x20|\x0a';}if(_0x20a614===_0x118ab3-0x1){const _0x577161=_0x1c721a[_0x97cb79(0x24b)](()=>_0x97cb79(0x23e));_0x37ed1a+='|\x20'+_0x20a614+_0x97cb79(0x212)+_0x577161[_0x97cb79(0x21e)]('\x20|\x20')+_0x97cb79(0x2ed);}_0x3fc267++;return;}if(Array[_0x97cb79(0x207)](_0x1c721a)){const _0x1cc486=_0x1c721a[_0x97cb79(0x24b)](_0x1f46f3=>{const _0x126e9e=_0x97cb79,_0x2b6d7c=_0x1f46f3===null||_0x1f46f3===undefined||_0x1f46f3===''?'未知':String(_0x1f46f3);return _0x2b6d7c[_0x126e9e(0x22f)](/\|/g,'|');});_0x37ed1a+='|\x20'+_0x20a614+'\x20|\x20'+_0x1cc486[_0x97cb79(0x21e)]('\x20|\x20')+_0x97cb79(0x2ed);}}),_0x3fc267>0x0&&(_0x37ed1a+=_0x19d940(0x2b7)+_0x3fc267+_0x19d940(0x2ee)+(_0x3fc267-0x1)+_0x19d940(0x2a7));}const _0x43337a=checkTableRules(_0x5bd493);_0x43337a&&(_0x37ed1a+=_0x43337a+'\x0a'),_0x37ed1a+='\x0a',_0x37ed1a+=_0x19d940(0x290)+(_0x5bd493[_0x19d940(0x1f8)]||'允许')+'\x0a',_0x37ed1a+=_0x19d940(0x2b5)+(_0x5bd493['rule_delete']||'允许')+'\x0a',_0x37ed1a+=_0x19d940(0x2aa)+(_0x5bd493[_0x19d940(0x2e2)]||'允许')+'\x0a',_0x28bf23{const _0x498418=_0x435030,_0x3f769f=_0x4f76c0[_0x498418(0x208)](_0x5985bf);_0x434105+='\x0a*\x20'+_0x5985bf+':'+_0x4ab1e9[_0x498418(0x26f)];!_0x3f769f&&(_0x434105+='\x20(本表格无需重新整理,仅供参考)');_0x434105+='\x0a',_0x434105+=_0x498418(0x259)+(_0x4ab1e9[_0x498418(0x2f2)]||'无')+'\x0a';const _0x599cda=_0x4ab1e9[_0x498418(0x26f)]['replace'](/\s/g,'')+'内容';_0x434105+='<'+_0x599cda+'>\x0a';const _0x3f682b=[_0x498418(0x24d),..._0x4ab1e9[_0x498418(0x264)]['map']((_0x3f72be,_0x38a1aa)=>_0x38a1aa+':'+_0x3f72be)];_0x434105+='|\x20'+_0x3f682b[_0x498418(0x21e)](_0x498418(0x212))+_0x498418(0x2ed),_0x434105+='|'+_0x3f682b[_0x498418(0x24b)](()=>_0x498418(0x25c))[_0x498418(0x21e)]('|')+'|\x0a';if(_0x3f769f){const _0xbc44a5=_0x4ab1e9['rows'][_0x498418(0x29c)]((_0x4b32c2,_0x29fe1c)=>!_0x4ab1e9[_0x498418(0x266)]||_0x4ab1e9[_0x498418(0x266)][_0x29fe1c]!==_0x498418(0x2e6));if(_0xbc44a5[_0x498418(0x24a)]===0x0)_0x434105+=_0x498418(0x25d);else{const _0x346468=_0x4ab1e9[_0x498418(0x2f4)]||0x0;let _0x2296df=0x0;_0x4ab1e9[_0x498418(0x2d0)][_0x498418(0x2a2)]((_0x653963,_0x300211)=>{const _0x2de453=_0x498418;if(_0x4ab1e9[_0x2de453(0x266)]&&_0x4ab1e9[_0x2de453(0x266)][_0x300211]===_0x2de453(0x2e6))return;if(_0x346468>0x0&&_0x300211<_0x346468){if(_0x2296df===0x0){const _0x20e5c3=_0x653963[_0x2de453(0x24b)](()=>_0x2de453(0x23e));_0x434105+='|\x20'+_0x300211+'\x20|\x20'+_0x20e5c3[_0x2de453(0x21e)](_0x2de453(0x212))+_0x2de453(0x2ed),_0x434105+=_0x2de453(0x25f)+_0x653963['map'](()=>_0x2de453(0x203))[_0x2de453(0x21e)]('\x20|\x20')+'\x20|\x0a';}if(_0x300211===_0x346468-0x1){const _0x578585=_0x653963[_0x2de453(0x24b)](()=>'---已锁定---');_0x434105+='|\x20'+_0x300211+_0x2de453(0x212)+_0x578585[_0x2de453(0x21e)]('\x20|\x20')+_0x2de453(0x2ed);}_0x2296df++;return;}if(Array[_0x2de453(0x207)](_0x653963)){const _0x44476c=_0x653963[_0x2de453(0x24b)](_0x56f870=>{const _0xd42d94=_0x2de453,_0x30d01c=_0x56f870===null||_0x56f870===undefined||_0x56f870===''?'未知':String(_0x56f870);return _0x30d01c[_0xd42d94(0x22f)](/\|/g,'|');});_0x434105+='|\x20'+_0x300211+_0x2de453(0x212)+_0x44476c['join'](_0x2de453(0x212))+_0x2de453(0x2ed);}}),_0x2296df>0x0&&(_0x434105+=_0x498418(0x2b7)+_0x2296df+_0x498418(0x2ee)+(_0x2296df-0x1)+_0x498418(0x2a7));}const _0x5dc55a=checkTableRules(_0x4ab1e9);_0x5dc55a&&(_0x434105+=_0x5dc55a+'\x0a');}else _0x434105+=_0x498418(0x2c7);_0x434105+='\x0a',_0x3f769f?(_0x434105+=_0x498418(0x290)+(_0x4ab1e9[_0x498418(0x1f8)]||'允许')+'\x0a',_0x434105+=_0x498418(0x2b5)+(_0x4ab1e9['rule_delete']||'允许')+'\x0a',_0x434105+=_0x498418(0x2aa)+(_0x4ab1e9['rule_update']||'允许')+'\x0a'):_0x434105+='【操作权限】:\x20禁止修改此表格\x0a',_0x5985bf{const _0x421ec8=_0x266b20;_0x2891c7+='\x0a<'+_0x57a8ec['name']+'>\x0a';const _0x2e23f6='|\x20'+_0x57a8ec['headers']['join'](_0x421ec8(0x212))+'\x20|';_0x2891c7+=_0x2e23f6+'\x0a';const _0x26c187='|'+_0x57a8ec[_0x421ec8(0x264)][_0x421ec8(0x24b)](()=>_0x421ec8(0x25c))[_0x421ec8(0x21e)]('|')+'|';_0x2891c7+=_0x26c187+'\x0a';const _0xec6cd8=_0x57a8ec[_0x421ec8(0x2d0)][_0x421ec8(0x29c)]((_0xd95922,_0x2b86eb)=>!_0x57a8ec[_0x421ec8(0x266)]||_0x57a8ec[_0x421ec8(0x266)][_0x2b86eb]!==_0x421ec8(0x2e6));_0xec6cd8[_0x421ec8(0x24a)]>0x0?_0xec6cd8[_0x421ec8(0x2a2)](_0x58599a=>{const _0x569218=_0x421ec8;if(Array['isArray'](_0x58599a)){const _0x4ca132=_0x58599a['map'](_0x6cb887=>_0x6cb887===null||_0x6cb887===undefined||_0x6cb887===''?'\x20':_0x6cb887[_0x569218(0x2ac)]()),_0x53ce88='|\x20'+_0x4ca132[_0x569218(0x21e)](_0x569218(0x212))+'\x20|';_0x2891c7+=_0x53ce88+'\x0a';}}):_0x2891c7+=_0x421ec8(0x25d),_0x2891c7+='\x0a';}),_0x2891c7['trim']();}loadTables();export function getBatchFillerRuleTemplate(){const _0x179e6b=_0x2c092c;return extension_settings[extensionName]?.[_0x179e6b(0x282)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0xe20cfa){const _0x51ecf1=_0x2c092c;extension_settings[extensionName][_0x51ecf1(0x282)]=_0xe20cfa,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x5d6e4a=_0x2c092c;return extension_settings[extensionName]?.[_0x5d6e4a(0x2f1)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x461a6f){const _0x25a533=_0x2c092c;extension_settings[extensionName][_0x25a533(0x2f1)]=_0x461a6f,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x5cb1da=_0x2c092c;return extension_settings[extensionName]?.[_0x5cb1da(0x27e)]??DEFAULT_AI_FLOW_TEMPLATE;}function _0x2b91(_0x51eb37,_0x24fb0a){const _0x2ea654=_0x2ea6();return _0x2b91=function(_0x2b9177,_0x4f9851){_0x2b9177=_0x2b9177-0x1f0;let _0x274e4a=_0x2ea654[_0x2b9177];return _0x274e4a;},_0x2b91(_0x51eb37,_0x24fb0a);}export async function updateTableFromText(_0x3861cb,_0x28255c={}){const _0x26ed0a=_0x2c092c,_0x5b41b8=extension_settings[extensionName];if(_0x5b41b8[_0x26ed0a(0x227)]===![]){log(_0x26ed0a(0x20f),_0x26ed0a(0x238));return;}if(!_0x3861cb){log('AI返回内容为空,无法更新表格。',_0x26ed0a(0x21a));return;}const {finalState:_0x3ea257,hasChanges:_0x2e459a,changes:_0x583c25}=executeCommands(_0x3861cb,currentTablesState);if(!_0x2e459a){log(_0x26ed0a(0x23f),_0x26ed0a(0x238));return;}setMemoryState(_0x3ea257);_0x28255c[_0x26ed0a(0x2d3)]&&commitPendingDeletions();_0x583c25[_0x26ed0a(0x2a2)](_0x539bb8=>{const _0x3eba6b=_0x26ed0a;updatedTables[_0x3eba6b(0x2ec)](_0x539bb8['tableIndex']),(_0x539bb8[_0x3eba6b(0x1f2)]===_0x3eba6b(0x2bb)||_0x539bb8[_0x3eba6b(0x1f2)]==='insert')&&(_0x539bb8[_0x3eba6b(0x24d)]!==undefined&&_0x539bb8[_0x3eba6b(0x267)]!==undefined&&addHighlight(_0x539bb8[_0x3eba6b(0x23a)],_0x539bb8[_0x3eba6b(0x24d)],_0x539bb8['colIndex']));}),log('成功执行了\x20'+_0x583c25[_0x26ed0a(0x24a)]+'\x20处变更。',_0x26ed0a(0x2c0));const _0x25b70c=[...new Set(_0x583c25[_0x26ed0a(0x24b)](_0x2ca635=>_0x2ca635[_0x26ed0a(0x23a)]))];_0x25b70c[_0x26ed0a(0x2a2)](_0x2005f7=>{dispatchTableUpdate(_0x2005f7);});const _0x47608f=getContext();if(_0x47608f[_0x26ed0a(0x278)]&&_0x47608f[_0x26ed0a(0x278)][_0x26ed0a(0x24a)]>0x0){const _0x87d121=_0x47608f[_0x26ed0a(0x278)][_0x47608f['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x87d121)){await saveChat(),toastr[_0x26ed0a(0x2c0)]('已根据AI的指示成功更新表格!',_0x26ed0a(0x258)),document[_0x26ed0a(0x2ef)](new CustomEvent(_0x26ed0a(0x2e5)));return;}}saveChatDebounced(),toastr[_0x26ed0a(0x2c0)](_0x26ed0a(0x2b3),'填表完成'),document[_0x26ed0a(0x2ef)](new CustomEvent(_0x26ed0a(0x2e5)));}export function saveAiTemplate(_0x5f4592){const _0x4d7a5a=_0x2c092c;extension_settings[extensionName][_0x4d7a5a(0x27e)]=_0x5f4592,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x4e08ab=![]){const _0x4a70cf=_0x2c092c;if(!currentTablesState){log(_0x4a70cf(0x2be),_0x4a70cf(0x245)),toastr[_0x4a70cf(0x245)](_0x4a70cf(0x27f));return;}let _0x558056,_0x545959,_0x34b049;_0x4e08ab?(_0x558056=JSON[_0x4a70cf(0x2c8)](JSON[_0x4a70cf(0x24f)](currentTablesState)),_0x545959=_0x4a70cf(0x256),_0x34b049=_0x4a70cf(0x2e7)):(_0x558056=currentTablesState[_0x4a70cf(0x24b)](_0x29bbf4=>({'name':_0x29bbf4[_0x4a70cf(0x26f)],'headers':_0x29bbf4[_0x4a70cf(0x264)],'columnWidths':_0x29bbf4[_0x4a70cf(0x272)]||[],'note':_0x29bbf4[_0x4a70cf(0x2f2)],'rule_add':_0x29bbf4[_0x4a70cf(0x1f8)],'rule_delete':_0x29bbf4['rule_delete'],'rule_update':_0x29bbf4[_0x4a70cf(0x2e2)],'charLimitRules':_0x29bbf4['charLimitRules']||{},'rowLimitRule':_0x29bbf4[_0x4a70cf(0x236)]||0x0,'rows':[],'rowStatuses':[]})),_0x545959=_0x4a70cf(0x1f5),_0x34b049='纯净预设');const _0xbe3cb0={'version':_0x4a70cf(0x292),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x558056},_0x4e8b63=new Blob([JSON['stringify'](_0xbe3cb0,null,0x2)],{'type':'application/json'}),_0x47eebf=URL[_0x4a70cf(0x2ff)](_0x4e8b63),_0x1371ec=document[_0x4a70cf(0x248)]('a');_0x1371ec[_0x4a70cf(0x2fa)]=_0x47eebf,_0x1371ec[_0x4a70cf(0x20b)]=_0x4a70cf(0x2e4)+_0x34b049+'-'+new Date()[_0x4a70cf(0x233)]()[_0x4a70cf(0x218)](0x0,0xa)+'.json',document[_0x4a70cf(0x2d2)][_0x4a70cf(0x2ca)](_0x1371ec),_0x1371ec[_0x4a70cf(0x23b)](),document[_0x4a70cf(0x2d2)][_0x4a70cf(0x277)](_0x1371ec),URL[_0x4a70cf(0x2a8)](_0x47eebf),log('【'+_0x34b049+'】已成功导出。',_0x4a70cf(0x2c0)),toastr['success']('【'+_0x34b049+'】已开始下载。',_0x4a70cf(0x200));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x301a23){const _0x42d2e6=_0x2c092c,_0x4d6331=document[_0x42d2e6(0x248)]('input');_0x4d6331[_0x42d2e6(0x1f2)]=_0x42d2e6(0x1f4),_0x4d6331[_0x42d2e6(0x29b)]=_0x42d2e6(0x301),_0x4d6331[_0x42d2e6(0x249)]=_0x2fa253=>{const _0x156d21=_0x42d2e6,_0x499758=_0x2fa253[_0x156d21(0x243)][_0x156d21(0x25b)][0x0];if(!_0x499758)return;const _0x55285b=new FileReader();_0x55285b[_0x156d21(0x252)]=_0x5bac6b=>{const _0x4dd1f2=_0x156d21;try{const _0x4501d7=JSON[_0x4dd1f2(0x2c8)](_0x5bac6b[_0x4dd1f2(0x243)][_0x4dd1f2(0x1ff)]);if(!_0x4501d7[_0x4dd1f2(0x2bf)]||!Array['isArray'](_0x4501d7[_0x4dd1f2(0x1f1)]))throw new Error(_0x4dd1f2(0x304));const _0x3003ed=window[_0x4dd1f2(0x2a3)]('【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?');if(!_0x3003ed){log(_0x4dd1f2(0x2a1),'info'),toastr[_0x4dd1f2(0x238)](_0x4dd1f2(0x241));return;}if(_0x4501d7['version']===_0x4dd1f2(0x292))saveBatchFillerRuleTemplate(_0x4501d7[_0x4dd1f2(0x294)]||''),saveBatchFillerFlowTemplate(_0x4501d7[_0x4dd1f2(0x29d)]||''),saveAiTemplate(_0x4501d7[_0x4dd1f2(0x219)]||'');else{if(_0x4501d7[_0x4dd1f2(0x2b1)]!==undefined&&_0x4501d7[_0x4dd1f2(0x2c4)]!==undefined)saveBatchFillerRuleTemplate(_0x4501d7[_0x4dd1f2(0x2b1)]||''),saveBatchFillerFlowTemplate(_0x4501d7[_0x4dd1f2(0x2c4)]||''),saveAiTemplate(_0x4501d7[_0x4dd1f2(0x2c4)]||'');else _0x4501d7[_0x4dd1f2(0x244)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x4501d7[_0x4dd1f2(0x244)]||''),saveAiTemplate(_0x4501d7['aiTemplate']||'')):log(_0x4dd1f2(0x284),_0x4dd1f2(0x21a));}const _0x4a41f5=_0x4501d7[_0x4dd1f2(0x1f1)];_0x4a41f5['forEach'](_0xe0c707=>{const _0x22f983=_0x4dd1f2;if(_0xe0c707[_0x22f983(0x26f)]===undefined||_0xe0c707[_0x22f983(0x264)]===undefined||_0xe0c707[_0x22f983(0x2d0)]===undefined)throw new Error(_0x22f983(0x22a)+JSON[_0x22f983(0x24f)](_0xe0c707));if(_0xe0c707[_0x22f983(0x2f2)]===undefined)_0xe0c707['note']='无';if(_0xe0c707[_0x22f983(0x1f8)]===undefined)_0xe0c707[_0x22f983(0x1f8)]='允许';if(_0xe0c707[_0x22f983(0x229)]===undefined)_0xe0c707[_0x22f983(0x229)]='允许';if(_0xe0c707['rule_update']===undefined)_0xe0c707[_0x22f983(0x2e2)]='允许';if(_0xe0c707[_0x22f983(0x2ea)]&&!_0xe0c707[_0x22f983(0x288)])_0xe0c707[_0x22f983(0x288)]={},_0xe0c707[_0x22f983(0x2ea)][_0x22f983(0x273)]!==-0x1&&_0xe0c707[_0x22f983(0x2ea)][_0x22f983(0x205)]>0x0&&(_0xe0c707['charLimitRules'][_0xe0c707['charLimitRule'][_0x22f983(0x273)]]=_0xe0c707['charLimitRule'][_0x22f983(0x205)]);else _0xe0c707[_0x22f983(0x288)]===undefined&&(_0xe0c707['charLimitRules']={});delete _0xe0c707[_0x22f983(0x2ea)],!_0xe0c707[_0x22f983(0x266)]&&(_0xe0c707[_0x22f983(0x266)]=Array(_0xe0c707[_0x22f983(0x2d0)][_0x22f983(0x24a)])[_0x22f983(0x2db)](_0x22f983(0x2f0))),_0xe0c707[_0x22f983(0x236)]===undefined&&(_0xe0c707['rowLimitRule']=0x0),_0xe0c707[_0x22f983(0x272)]===undefined&&(_0xe0c707[_0x22f983(0x272)]=[]);}),setMemoryState(_0x4a41f5),dispatchAllTablesUpdate();const _0x43427e=getContext();if(_0x43427e['chat']&&_0x43427e['chat'][_0x4dd1f2(0x24a)]>0x0){const _0x1c59d9=_0x43427e['chat'][_0x43427e[_0x4dd1f2(0x278)][_0x4dd1f2(0x24a)]-0x1];saveStateToMessage(getMemoryState(),_0x1c59d9)&&(saveChat(),log('导入的预设已强制写入最新消息并立即保存。','success'));}else saveChatDebounced();log(_0x4dd1f2(0x201),_0x4dd1f2(0x2c0)),toastr[_0x4dd1f2(0x2c0)]('预设已成功导入!',_0x4dd1f2(0x27c)),typeof _0x301a23===_0x4dd1f2(0x21f)&&_0x301a23();}catch(_0x26faaf){log(_0x4dd1f2(0x299)+_0x26faaf['message'],_0x4dd1f2(0x245)),toastr[_0x4dd1f2(0x245)](_0x4dd1f2(0x291)+_0x26faaf[_0x4dd1f2(0x275)],'错误');}},_0x55285b['readAsText'](_0x499758);},_0x4d6331[_0x42d2e6(0x23b)]();}export async function rollbackState(){const _0x52b131=_0x2c092c,_0x532988=getContext();if(!_0x532988||!_0x532988[_0x52b131(0x278)]||_0x532988['chat'][_0x52b131(0x24a)]<0x2)return log(_0x52b131(0x28c),_0x52b131(0x21a)),toastr[_0x52b131(0x206)](_0x52b131(0x271)),![];const _0x112c05=_0x532988['chat'],_0x359cee=_0x112c05[_0x52b131(0x24a)]-0x1,_0x3f5de8=_0x112c05[_0x359cee];log(_0x52b131(0x254)+(_0x359cee-0x1)+'\x20条消息加载表格状态...',_0x52b131(0x238));const _0x21514a=loadTables(_0x359cee);if(!_0x21514a)return log(_0x52b131(0x2fd),'error'),toastr['error']('未能在上一楼找到可用的表格状态。'),![];setMemoryState(_0x21514a);if(saveStateToMessage(_0x21514a,_0x3f5de8))await saveChat(),log('已成功将回退后的状态保存至最新消息。','success');else return log(_0x52b131(0x2b8),_0x52b131(0x245)),toastr['error'](_0x52b131(0x29e)),![];return renderTables(),updateOrInsertTableInChat(),log('UI已更新以显示回退后的状态。',_0x52b131(0x238)),!![];}export async function rollbackAndRefill(){const _0x24c0a4=_0x2c092c,_0x17931b=extension_settings[extensionName];if(_0x17931b[_0x24c0a4(0x227)]===![]){log(_0x24c0a4(0x2c5),'info'),toastr['info'](_0x24c0a4(0x23d));return;}toastr['info']('正在执行回退并重新填表...');const _0x50033b=await rollbackState();if(!_0x50033b){toastr[_0x24c0a4(0x245)](_0x24c0a4(0x2f5));return;}toastr['success'](_0x24c0a4(0x269));const _0x3ae686=getContext(),_0x3aecd0=_0x3ae686[_0x24c0a4(0x278)][_0x3ae686[_0x24c0a4(0x278)][_0x24c0a4(0x24a)]-0x1];try{await fillWithSecondaryApi(_0x3aecd0,!![]),log('回退并重新填表操作完成。',_0x24c0a4(0x2c0));}catch(_0x2f0729){log('回退重填过程中发生错误:\x20'+_0x2f0729[_0x24c0a4(0x275)],_0x24c0a4(0x245)),toastr[_0x24c0a4(0x245)]('重新填表失败:\x20'+_0x2f0729[_0x24c0a4(0x275)]);}}export function updateColumnWidth(_0x33dc9b,_0x3403c7,_0x50bc1b){const _0x37cebe=_0x2c092c;if(!currentTablesState||!currentTablesState[_0x33dc9b])return;const _0xf01930=currentTablesState[_0x33dc9b];!_0xf01930[_0x37cebe(0x272)]&&(_0xf01930['columnWidths']=[]);while(_0xf01930['columnWidths'][_0x37cebe(0x24a)]<_0xf01930[_0x37cebe(0x264)][_0x37cebe(0x24a)]){_0xf01930[_0x37cebe(0x272)][_0x37cebe(0x2cd)](null);}_0xf01930['columnWidths'][_0x3403c7]=_0x50bc1b;const _0x24c2ff=getContext();if(_0x24c2ff[_0x37cebe(0x278)]&&_0x24c2ff[_0x37cebe(0x278)][_0x37cebe(0x24a)]>0x0){const _0x39c5b8=_0x24c2ff[_0x37cebe(0x278)][_0x24c2ff[_0x37cebe(0x278)][_0x37cebe(0x24a)]-0x1];if(saveStateToMessage(currentTablesState,_0x39c5b8)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x2418af=_0x2c092c,_0x441799=getMemoryState();if(!_0x441799||_0x441799[_0x2418af(0x24a)]===0x0)return!![];return _0x441799[_0x2418af(0x28a)](_0x5cb5c3=>!_0x5cb5c3[_0x2418af(0x2d0)]||_0x5cb5c3[_0x2418af(0x2d0)][_0x2418af(0x24a)]===0x0);}export function clearGlobalPreset(){const _0x37970d=_0x2c092c;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x37970d(0x204)]){const _0xc081bc=window[_0x37970d(0x2a3)](_0x37970d(0x255));_0xc081bc?(delete extension_settings[extensionName][_0x37970d(0x204)],saveSettingsDebounced(),log(_0x37970d(0x246),_0x37970d(0x2c0)),toastr[_0x37970d(0x2c0)]('全局预设已清除,新聊天将使用默认模板。',_0x37970d(0x298))):(log('用户取消了清除全局预设的操作。','info'),toastr[_0x37970d(0x238)](_0x37970d(0x228)));}else log(_0x37970d(0x26e),'info'),toastr['info'](_0x37970d(0x295),'提示');}export function importGlobalPreset(_0x26850b){const _0x481bcf=_0x2c092c,_0x108532=document[_0x481bcf(0x248)](_0x481bcf(0x1fc));_0x108532['type']=_0x481bcf(0x1f4),_0x108532[_0x481bcf(0x29b)]=_0x481bcf(0x301),_0x108532[_0x481bcf(0x249)]=_0x157a4d=>{const _0x35a7a6=_0x481bcf,_0x5a884e=_0x157a4d[_0x35a7a6(0x243)]['files'][0x0];if(!_0x5a884e)return;const _0x132ca8=new FileReader();_0x132ca8['onload']=_0x2dda82=>{const _0x388d5=_0x35a7a6;try{const _0x5d3682=JSON[_0x388d5(0x2c8)](_0x2dda82[_0x388d5(0x243)]['result']);if(!_0x5d3682[_0x388d5(0x2bf)]||!Array[_0x388d5(0x207)](_0x5d3682['tables']))throw new Error(_0x388d5(0x304));const _0x230a51=window[_0x388d5(0x2a3)](_0x388d5(0x2f3));if(!_0x230a51){log(_0x388d5(0x21d),_0x388d5(0x238)),toastr['info'](_0x388d5(0x228));return;}const _0x18f710=_0x5d3682['tables'][_0x388d5(0x24b)](_0x107cdf=>({'name':_0x107cdf['name'],'headers':_0x107cdf[_0x388d5(0x264)],'note':_0x107cdf[_0x388d5(0x2f2)],'rule_add':_0x107cdf['rule_add'],'rule_delete':_0x107cdf['rule_delete'],'rule_update':_0x107cdf[_0x388d5(0x2e2)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x388d5(0x204)]={'version':_0x5d3682['version'],'tables':_0x18f710,'batchFillerRuleTemplate':_0x5d3682['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x5d3682[_0x388d5(0x29d)]},saveSettingsDebounced();if(_0x5d3682['version']===_0x388d5(0x292))saveBatchFillerRuleTemplate(_0x5d3682[_0x388d5(0x294)]||''),saveBatchFillerFlowTemplate(_0x5d3682[_0x388d5(0x29d)]||''),saveAiTemplate(_0x5d3682['injectionFlowTemplate']||'');else{if(_0x5d3682[_0x388d5(0x2b1)]!==undefined&&_0x5d3682[_0x388d5(0x2c4)]!==undefined)saveBatchFillerRuleTemplate(_0x5d3682[_0x388d5(0x2b1)]||''),saveBatchFillerFlowTemplate(_0x5d3682[_0x388d5(0x2c4)]||''),saveAiTemplate(_0x5d3682[_0x388d5(0x2c4)]||'');else _0x5d3682[_0x388d5(0x244)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x5d3682[_0x388d5(0x244)]||''),saveAiTemplate(_0x5d3682[_0x388d5(0x244)]||''));}log(_0x388d5(0x29a),_0x388d5(0x2c0)),toastr['success']('全局预设已设置!新聊天将默认使用此预设。',_0x388d5(0x210)),typeof _0x26850b===_0x388d5(0x21f)&&_0x26850b();}catch(_0x16ce00){log(_0x388d5(0x239)+_0x16ce00['message'],_0x388d5(0x245)),toastr[_0x388d5(0x245)](_0x388d5(0x291)+_0x16ce00[_0x388d5(0x275)],'错误');}},_0x132ca8[_0x35a7a6(0x217)](_0x5a884e);},_0x108532['click']();}