mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 23:15:50 +00:00
2 lines
63 KiB
JavaScript
2 lines
63 KiB
JavaScript
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),'外貌','身形','衣着','性格','身份','职业','与<user>关系','爱好','住所',_0x6350c4(0xd8)],'note':_0x6350c4(0x11e),'rule_add':_0x6350c4(0x195),'rule_delete':_0x6350c4(0x17c),'rule_update':'【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与<user>的关系发生根本性转变(如从敌人变为盟友)。','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':'【核心作用】专门用于记录主角<user>掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','rule_add':'【触发条件】当<user>在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','rule_delete':_0x6350c4(0x8c),'rule_update':_0x6350c4(0x168),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':'设定栏','headers':['类型',_0x6350c4(0x119)],'note':_0x6350c4(0x14e),'rule_add':'【触发条件】当<user>通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','rule_delete':_0x6350c4(0xb7),'rule_update':'【触发条件】只能在<user>明确表示要修改某条设定时,才能更新对应行的描述。','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+='</'+_0x2f1ca0+'>\x0a',_0x4014c9+=_0x1e9064(0xf7)+(_0x317365[_0x1e9064(0xb8)]||'允许')+'\x0a',_0x4014c9+='【删除】:\x20'+(_0x317365[_0x1e9064(0xe9)]||'允许')+'\x0a',_0x4014c9+='【修改】:\x20'+(_0x317365['rule_update']||'允许')+'\x0a',_0x13dfad<currentTablesState[_0x1e9064(0xff)]-0x1&&(_0x4014c9+=_0x1e9064(0x19f));}),_0x4014c9;}export function convertSelectedTablesToCsvString(_0x422c47){const _0x376b19=_0x6350c4;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x2e5b48='';return currentTablesState[_0x376b19(0xbd)]((_0x2695e1,_0x9bef7e)=>{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+='</'+_0x438d6b+'>\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<currentTablesState[_0x1d536e(0xff)]-0x1&&(_0x2e5b48+=_0x1d536e(0x19f));}),_0x2e5b48;}export function convertTablesToCsvStringForContentOnly(){const _0x27e6b6=_0x6350c4,_0x4534ee=getMemoryState();if(!_0x4534ee||_0x4534ee[_0x27e6b6(0xff)]===0x0)return'';let _0x9da06f='';return _0x4534ee[_0x27e6b6(0xbd)](_0x58b155=>{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+='</'+_0x58b155[_0x1c4476(0xec)]+'>\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','【核心作用】专门用于记录除主角<user>以外的角色之间的复杂人际关系网(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与<user>关系:\x20描述该角色与主角<user>之间的社会或情感关系,如\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[','【核心作用】此表格记录了来自<user>的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录<user>提出的具体要求。','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此操作不可逆,是否确定要继续?','【触发条件】当一个有名有姓的角色首次出现,并与<user>或当前剧情发生有意义的互动时,必须为其创建新的一行。','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','aiRuleTemplate','stringify','无法导出:当前表格状态为空。','splice','\x20行移动到第\x20','headers','extra','\x20已在边界。','\x0a---\x0a','无法清空:当前表格状态为空。','拥有者','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非<user>的技能,应立即删除。','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<Amily2Edit>\x20标签处理。','重命名失败:名为\x20\x22','主动方','5449887Hoiqqs','未找到任何表格数据或全局预设,使用默认模板。','\x22\x20的表格已存在。','表格名称不能为空。','【触发条件】只能在<user>明确表示要移除或废弃某条设定时,才能删除对应行。','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)]();}
|