Files
ST-Amily2-Chat-Optimisation/core/table-system/manager.js
2025-08-24 11:55:12 +08:00

2 lines
38 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const _0x16d82b=_0x4696;(function(_0x573089,_0x2d98b9){const _0x524c53=_0x4696,_0x5b8558=_0x573089();while(!![]){try{const _0x441728=parseInt(_0x524c53(0x244))/0x1+-parseInt(_0x524c53(0x26b))/0x2+parseInt(_0x524c53(0x1d6))/0x3*(-parseInt(_0x524c53(0x21a))/0x4)+-parseInt(_0x524c53(0x258))/0x5*(-parseInt(_0x524c53(0x1a5))/0x6)+parseInt(_0x524c53(0x265))/0x7*(parseInt(_0x524c53(0x268))/0x8)+-parseInt(_0x524c53(0x22b))/0x9*(parseInt(_0x524c53(0x1ea))/0xa)+-parseInt(_0x524c53(0x1e3))/0xb*(-parseInt(_0x524c53(0x266))/0xc);if(_0x441728===_0x2d98b9)break;else _0x5b8558['push'](_0x5b8558['shift']());}catch(_0x24a92b){_0x5b8558['push'](_0x5b8558['shift']());}}}(_0x3af9,0xa2532));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set();export function addHighlight(_0x5bcaf8,_0xd184e2,_0x5c2ab8){const _0x4fc59b=_0x4696,_0x43d337=_0x5bcaf8+'-'+_0xd184e2+'-'+_0x5c2ab8;highlightedCells[_0x4fc59b(0x1e1)](_0x43d337);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x4200b6=_0x4696;highlightedCells[_0x4200b6(0x1d1)]>0x0&&(highlightedCells[_0x4200b6(0x232)](),log(_0x4200b6(0x262),_0x4200b6(0x202)));}export function setMemoryState(_0x14f10d){currentTablesState=_0x14f10d;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':'时空栏','headers':['日期','时段','时间','地点',_0x16d82b(0x237)],'note':_0x16d82b(0x230),'rule_add':_0x16d82b(0x1cd),'rule_delete':_0x16d82b(0x23a),'rule_update':_0x16d82b(0x229),'rows':[]},{'name':'角色栏','headers':[_0x16d82b(0x1be),'外貌','身体','衣着','性格','身份','职业',_0x16d82b(0x240),_0x16d82b(0x216),'爱好','住所',_0x16d82b(0x1af)],'note':'角色的基础信息csv表格思考本轮有否有其中的角色他应作出什么反应/外貌指:五官、面容、肤色、发型等/身体指:体型、身材、肤色、罩杯等/衣着指:身上的穿戴、服装的式样等/身份指:出身、社会地位等/职业指职责、岗位等/与<user>关系指:角色与<user>的社会关系(如:父亲、母亲、姐姐、妻子等)/爱好指:拥有浓厚兴趣和喜爱的某种事物、人物、活动/住所指:经常居住地','rule_add':_0x16d82b(0x1bf),'rule_delete':_0x16d82b(0x201),'rule_update':_0x16d82b(0x24f),'rows':[]},{'name':_0x16d82b(0x21c),'headers':[_0x16d82b(0x1f5),'类型','详情','状态',_0x16d82b(0x259),'地点','结果','开始时间',_0x16d82b(0x1ab)],'note':'记录已完成或进展中重要、关键事情的任务、命令、约定/禁止记录不重要、不关键的事情/开始和结束时间应精确至具体日期、时段、时间','rule_add':_0x16d82b(0x248),'rule_delete':_0x16d82b(0x223),'rule_update':_0x16d82b(0x256),'rows':[]},{'name':_0x16d82b(0x1d4),'headers':[_0x16d82b(0x20a),'类型','详情','状态',_0x16d82b(0x22c),_0x16d82b(0x238)],'note':_0x16d82b(0x235),'rule_add':_0x16d82b(0x1a8),'rule_delete':'消耗品彻底使用完后/一次性物品被使用后','rule_update':_0x16d82b(0x246),'rows':[]},{'name':'公告栏','headers':['类型',_0x16d82b(0x25e)],'note':'上层叙事者留下的各种提示、要求、命令/禁止私自增、删、改','rule_add':'上层叙事者在第四面墙外对故事或游戏进行提示、要求、命令时/上层叙事者使用括号包裹提示、要求、命令时','rule_delete':'上层叙事者明确要求需要删除时','rule_update':'上层叙事者明确要求需要修改时','rows':[]}]};function getDefaultTables(){const _0x15aff2=_0x16d82b;return log(_0x15aff2(0x22f),_0x15aff2(0x202)),JSON['parse'](JSON[_0x15aff2(0x1c2)](defaultTemplate[_0x15aff2(0x1d0)]));}export function loadTables(_0xfd6cee=-0x1){const _0x21bbc0=_0x16d82b,_0x39b0b5=getContext();if(_0x39b0b5&&_0x39b0b5[_0x21bbc0(0x19c)]&&_0x39b0b5[_0x21bbc0(0x19c)]['length']>0x0){const _0x4b75b9=_0xfd6cee===-0x1?_0x39b0b5[_0x21bbc0(0x19c)]['length']-0x1:_0xfd6cee-0x1;for(let _0x34a727=_0x4b75b9;_0x34a727>=0x0;_0x34a727--){const _0x20524e=_0x39b0b5[_0x21bbc0(0x19c)][_0x34a727];if(_0x20524e[_0x21bbc0(0x1de)]&&_0x20524e['extra'][TABLE_DATA_KEY]){log(_0x21bbc0(0x1ef)+_0x34a727+_0x21bbc0(0x1fa),_0x21bbc0(0x202));let _0x73d864=JSON[_0x21bbc0(0x204)](JSON['stringify'](_0x20524e[_0x21bbc0(0x1de)][TABLE_DATA_KEY]));return _0x73d864['forEach'](_0x3de6c0=>{const _0x16eeb5=_0x21bbc0;if(_0x3de6c0[_0x16eeb5(0x1d2)]===undefined)_0x3de6c0[_0x16eeb5(0x1d2)]='无';if(_0x3de6c0['rule_add']===undefined)_0x3de6c0[_0x16eeb5(0x23e)]='允许';if(_0x3de6c0[_0x16eeb5(0x23b)]===undefined)_0x3de6c0['rule_delete']='允许';if(_0x3de6c0[_0x16eeb5(0x1b1)]===undefined)_0x3de6c0[_0x16eeb5(0x1b1)]='允许';}),currentTablesState=_0x73d864,currentTablesState;}}}if(extension_settings[extensionName]?.[_0x21bbc0(0x19a)]){log(_0x21bbc0(0x20e),_0x21bbc0(0x202));try{const _0x155b08=extension_settings[extensionName][_0x21bbc0(0x19a)];return currentTablesState=JSON[_0x21bbc0(0x204)](JSON[_0x21bbc0(0x1c2)](_0x155b08[_0x21bbc0(0x1d0)])),currentTablesState;}catch(_0x2fbe07){log(_0x21bbc0(0x1ca)+_0x2fbe07['message'],_0x21bbc0(0x1eb));}}return log(_0x21bbc0(0x198),_0x21bbc0(0x202)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x1a5ab4,_0x6808a8){const _0x29b6db=_0x16d82b;if(!_0x1a5ab4||!_0x6808a8)return log(_0x29b6db(0x263),_0x29b6db(0x1eb)),![];return!_0x6808a8[_0x29b6db(0x1de)]&&(_0x6808a8[_0x29b6db(0x1de)]={}),_0x6808a8[_0x29b6db(0x1de)][TABLE_DATA_KEY]=JSON[_0x29b6db(0x204)](JSON[_0x29b6db(0x1c2)](_0x1a5ab4)),log(_0x29b6db(0x24a)+_0x6808a8[_0x29b6db(0x20c)]['substring'](0x0,0x14)+_0x29b6db(0x1a7),_0x29b6db(0x202)),!![];}export function saveTables(_0x5bd9e6='未知操作'){const _0x3149bb=_0x16d82b;return log(_0x3149bb(0x1c1)+_0x5bd9e6+_0x3149bb(0x1e7),_0x3149bb(0x202)),!![];}export function deleteColumn(_0x114ce0,_0x5602ae){const _0x3c9335=_0x16d82b,_0x2fb394=getMemoryState();if(!_0x2fb394[_0x114ce0]||_0x5602ae<0x0||_0x5602ae>=_0x2fb394[_0x114ce0]['headers'][_0x3c9335(0x19f)]){log(_0x3c9335(0x1cb)+_0x114ce0+_0x3c9335(0x24d)+_0x5602ae+'\x20的列。',_0x3c9335(0x1eb));return;}_0x2fb394[_0x114ce0][_0x3c9335(0x200)][_0x3c9335(0x1e0)](_0x5602ae,0x1),_0x2fb394[_0x114ce0][_0x3c9335(0x26d)][_0x3c9335(0x1a2)](_0x2e4ec6=>{const _0x49c2f8=_0x3c9335;_0x2e4ec6[_0x49c2f8(0x19f)]>_0x5602ae&&_0x2e4ec6[_0x49c2f8(0x1e0)](_0x5602ae,0x1);}),log(_0x3c9335(0x1a1)+_0x114ce0+_0x3c9335(0x234)+(_0x5602ae+0x1)+'\x20列。','success'),saveTables(_0x2fb394);}export function moveRow(_0x948c61,_0x5a7c19,_0x54f2a2){const _0x3d23ea=_0x16d82b,_0x5ab251=getMemoryState(),_0x52b5ac=_0x5ab251[_0x948c61];if(!_0x52b5ac||_0x5a7c19<0x0||_0x5a7c19>=_0x52b5ac[_0x3d23ea(0x26d)][_0x3d23ea(0x19f)])return;const _0x248c07=_0x54f2a2==='up'?_0x5a7c19-0x1:_0x5a7c19+0x1;if(_0x248c07<0x0||_0x248c07>=_0x52b5ac['rows']['length'])return;const [_0x524e85]=_0x52b5ac['rows']['splice'](_0x5a7c19,0x1);_0x52b5ac[_0x3d23ea(0x26d)][_0x3d23ea(0x1e0)](_0x248c07,0x0,_0x524e85),log('成功将表格\x20'+_0x948c61+_0x3d23ea(0x234)+(_0x5a7c19+0x1)+'\x20行移动到第\x20'+(_0x248c07+0x1)+_0x3d23ea(0x207),_0x3d23ea(0x264)),saveTables(_0x5ab251);}export function insertRow(_0x14d34b,_0x3b54c7,_0x26f8f7=_0x16d82b(0x1f2)){const _0x5686ac=_0x16d82b,_0x24376a=getMemoryState(),_0x16cef5=_0x24376a[_0x14d34b];if(!_0x16cef5){log(_0x5686ac(0x260)+_0x14d34b+_0x5686ac(0x19b),_0x5686ac(0x1eb));return;}let _0x3ede41;typeof _0x3b54c7===_0x5686ac(0x214)?_0x3ede41=_0x26f8f7==='above'?_0x3b54c7:_0x3b54c7+0x1:_0x3ede41=_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x19f)];if(_0x3ede41<0x0)_0x3ede41=0x0;if(_0x3ede41>_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x19f)])_0x3ede41=_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x19f)];const _0x43eb8b=new Array(_0x16cef5['headers'][_0x5686ac(0x19f)])['fill']('');if(typeof _0x3b54c7==='object'&&_0x3b54c7!==null)for(const _0x340b16 in _0x3b54c7){const _0x19e6d8=parseInt(_0x340b16,0xa);!isNaN(_0x19e6d8)&&_0x19e6d8<_0x43eb8b[_0x5686ac(0x19f)]&&(_0x43eb8b[_0x19e6d8]=_0x3b54c7[_0x340b16],addHighlight(_0x14d34b,_0x3ede41,_0x19e6d8));}_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x1e0)](_0x3ede41,0x0,_0x43eb8b),log('成功在表格\x20'+_0x16cef5[_0x5686ac(0x220)]+_0x5686ac(0x1a0)+_0x14d34b+_0x5686ac(0x226)+(_0x3ede41+0x1)+_0x5686ac(0x25c),_0x5686ac(0x264));const _0x246de4=getContext();if(_0x246de4[_0x5686ac(0x19c)]&&_0x246de4[_0x5686ac(0x19c)][_0x5686ac(0x19f)]>0x0){const _0x4b848c=_0x246de4['chat'][_0x246de4[_0x5686ac(0x19c)]['length']-0x1];if(saveStateToMessage(_0x24376a,_0x4b848c)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x4ac3b3){const _0x42bebc=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x4ac3b3])return;const _0x2c4bf2=currentTablesState[_0x4ac3b3],_0x4c2aea=_0x2c4bf2[_0x42bebc(0x200)][_0x42bebc(0x19f)],_0x42fa6e=Array(_0x4c2aea)[_0x42bebc(0x1ce)]('');_0x2c4bf2[_0x42bebc(0x26d)][_0x42bebc(0x21e)](_0x42fa6e);const _0x50e9f6=_0x42bebc(0x22e)+_0x2c4bf2['name']+_0x42bebc(0x1c4);log(_0x50e9f6,_0x42bebc(0x202));const _0x4a122d=getContext();if(_0x4a122d[_0x42bebc(0x19c)]&&_0x4a122d[_0x42bebc(0x19c)][_0x42bebc(0x19f)]>0x0){const _0x228968=_0x4a122d[_0x42bebc(0x19c)][_0x4a122d[_0x42bebc(0x19c)][_0x42bebc(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x228968)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x4c3c8b){const _0x1b2ec0=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x4c3c8b])return;const _0x4eb83c=currentTablesState[_0x4c3c8b],_0x3c911e=_0x1b2ec0(0x206)+(_0x4eb83c[_0x1b2ec0(0x200)][_0x1b2ec0(0x19f)]+0x1);_0x4eb83c[_0x1b2ec0(0x200)][_0x1b2ec0(0x21e)](_0x3c911e),_0x4eb83c[_0x1b2ec0(0x26d)][_0x1b2ec0(0x1a2)](_0x491b3a=>_0x491b3a[_0x1b2ec0(0x21e)](''));const _0x3a649e=_0x1b2ec0(0x22e)+_0x4eb83c[_0x1b2ec0(0x220)]+']\x20新增了一列。';log(_0x3a649e,_0x1b2ec0(0x202));const _0xd09ab1=getContext();if(_0xd09ab1[_0x1b2ec0(0x19c)]&&_0xd09ab1[_0x1b2ec0(0x19c)]['length']>0x0){const _0x433057=_0xd09ab1['chat'][_0xd09ab1[_0x1b2ec0(0x19c)][_0x1b2ec0(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x433057)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0xc3cfac,_0x25cee8,_0x22d4f2){const _0x5a62ec=_0x16d82b;if(!currentTablesState||!currentTablesState[_0xc3cfac]||currentTablesState[_0xc3cfac][_0x5a62ec(0x200)][_0x25cee8]===undefined)return;const _0x103429=currentTablesState[_0xc3cfac][_0x5a62ec(0x220)],_0x580a4d=currentTablesState[_0xc3cfac][_0x5a62ec(0x200)][_0x25cee8];currentTablesState[_0xc3cfac][_0x5a62ec(0x200)][_0x25cee8]=_0x22d4f2;const _0x3d6769=_0x5a62ec(0x22e)+_0x103429+_0x5a62ec(0x1b5)+_0x580a4d+_0x5a62ec(0x26c)+_0x22d4f2+'”。';log(_0x3d6769,_0x5a62ec(0x202));const _0x12d661=getContext();if(_0x12d661[_0x5a62ec(0x19c)]&&_0x12d661[_0x5a62ec(0x19c)][_0x5a62ec(0x19f)]>0x0){const _0x3793ab=_0x12d661[_0x5a62ec(0x19c)][_0x12d661[_0x5a62ec(0x19c)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3793ab)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x3c6a04,_0x1e9082){const _0x7a2e03=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x3c6a04]||!currentTablesState[_0x3c6a04][_0x7a2e03(0x26d)][_0x1e9082])return;const _0x4f8a82=currentTablesState[_0x3c6a04][_0x7a2e03(0x220)];currentTablesState[_0x3c6a04]['rows'][_0x7a2e03(0x1e0)](_0x1e9082,0x1);const _0x5f3315=_0x7a2e03(0x22e)+_0x4f8a82+']\x20的第\x20'+(_0x1e9082+0x1)+_0x7a2e03(0x253);log(_0x5f3315,_0x7a2e03(0x202));const _0x5f1b5d=getContext();if(_0x5f1b5d[_0x7a2e03(0x19c)]&&_0x5f1b5d[_0x7a2e03(0x19c)][_0x7a2e03(0x19f)]>0x0){const _0xf75991=_0x5f1b5d[_0x7a2e03(0x19c)][_0x5f1b5d['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0xf75991)){await saveChat();return;}}await saveChatDebounced();}export function insertColumn(_0x4865eb,_0xb6d7d5,_0x56d963){const _0xa52bb0=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x4865eb])return;const _0x23921c=currentTablesState[_0x4865eb],_0x4a2493=_0x56d963===_0xa52bb0(0x1ed)?_0xb6d7d5:_0xb6d7d5+0x1,_0x48b1b2='新列';_0x23921c[_0xa52bb0(0x200)][_0xa52bb0(0x1e0)](_0x4a2493,0x0,_0x48b1b2),_0x23921c[_0xa52bb0(0x26d)][_0xa52bb0(0x1a2)](_0x4cc54d=>_0x4cc54d['splice'](_0x4a2493,0x0,''));const _0x500199=_0xa52bb0(0x22e)+_0x23921c[_0xa52bb0(0x220)]+_0xa52bb0(0x25d)+(_0xb6d7d5+0x1)+'\x20列的'+(_0x56d963===_0xa52bb0(0x1ed)?'左侧':'右侧')+_0xa52bb0(0x24b);log(_0x500199,_0xa52bb0(0x202));const _0x1a3def=getContext();if(_0x1a3def[_0xa52bb0(0x19c)]&&_0x1a3def[_0xa52bb0(0x19c)][_0xa52bb0(0x19f)]>0x0){const _0x5dde8f=_0x1a3def[_0xa52bb0(0x19c)][_0x1a3def[_0xa52bb0(0x19c)][_0xa52bb0(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x5dde8f)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x24909c,_0x3d6045,_0x37cc09){const _0x488044=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x24909c])return;const _0x2d0e52=currentTablesState[_0x24909c],_0x3190df=_0x2d0e52[_0x488044(0x200)],_0x3e737c=_0x2d0e52[_0x488044(0x26d)],_0x3356f8=_0x37cc09===_0x488044(0x1ed)?_0x3d6045-0x1:_0x3d6045+0x1;if(_0x3356f8<0x0||_0x3356f8>=_0x3190df['length']){log(_0x488044(0x241)+_0x3d6045+_0x488044(0x261),_0x488044(0x26a));return;}const [_0x203832]=_0x3190df['splice'](_0x3d6045,0x1);_0x3190df[_0x488044(0x1e0)](_0x3356f8,0x0,_0x203832),_0x3e737c[_0x488044(0x1a2)](_0x4ed154=>{const _0x26372c=_0x488044,[_0x344f0f]=_0x4ed154[_0x26372c(0x1e0)](_0x3d6045,0x1);_0x4ed154['splice'](_0x3356f8,0x0,_0x344f0f);});const _0x33acab='表格\x20['+_0x2d0e52[_0x488044(0x220)]+_0x488044(0x1e5)+_0x203832+_0x488044(0x22d)+(_0x37cc09===_0x488044(0x1ed)?'左':'右')+_0x488044(0x1f0);log(_0x33acab,_0x488044(0x202));const _0x17232b=getContext();if(_0x17232b[_0x488044(0x19c)]&&_0x17232b[_0x488044(0x19c)][_0x488044(0x19f)]>0x0){const _0x308896=_0x17232b['chat'][_0x17232b[_0x488044(0x19c)][_0x488044(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x308896)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x198b9d){const _0x4254ae=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x198b9d])return;const _0xbebc7b=currentTablesState[_0x198b9d][_0x4254ae(0x220)];currentTablesState[_0x4254ae(0x1e0)](_0x198b9d,0x1);const _0x222ae1=_0x4254ae(0x22e)+_0xbebc7b+_0x4254ae(0x257);log(_0x222ae1,_0x4254ae(0x264));const _0x81ccad=getContext();if(_0x81ccad[_0x4254ae(0x19c)]&&_0x81ccad[_0x4254ae(0x19c)]['length']>0x0){const _0x1af2c8=_0x81ccad[_0x4254ae(0x19c)][_0x81ccad[_0x4254ae(0x19c)][_0x4254ae(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x1af2c8)){saveChat(),log('废黜表格后的状态已强制写入最新消息并立即保存。','success');return;}}log('无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!',_0x4254ae(0x1eb)),saveChatDebounced();}export function addTable(_0x49cc8a){const _0xa251b1=_0x16d82b;if(!_0x49cc8a||!_0x49cc8a[_0xa251b1(0x25b)]()){log('无法创建表格:名称不能为空。',_0xa251b1(0x1eb)),toastr[_0xa251b1(0x1eb)](_0xa251b1(0x1fb),_0xa251b1(0x1c8));return;}!currentTablesState&&loadTables();if(currentTablesState[_0xa251b1(0x1a9)](_0x10315e=>_0x10315e[_0xa251b1(0x220)]===_0x49cc8a[_0xa251b1(0x25b)]())){log('无法创建表格:名为\x20\x22'+_0x49cc8a+_0xa251b1(0x1fe),_0xa251b1(0x1eb)),toastr['error'](_0xa251b1(0x1d3)+_0x49cc8a+'\x22\x20的表格已存在。',_0xa251b1(0x1c8));return;}const _0xa32cd3={'name':_0x49cc8a[_0xa251b1(0x25b)](),'headers':[_0xa251b1(0x211)],'rows':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState['push'](_0xa32cd3);const _0x133339=_0xa251b1(0x1dd)+_0x49cc8a[_0xa251b1(0x25b)]()+']。';log(_0x133339,'success');const _0x2fd449=getContext();if(_0x2fd449[_0xa251b1(0x19c)]&&_0x2fd449['chat'][_0xa251b1(0x19f)]>0x0){const _0x2ff0aa=_0x2fd449['chat'][_0x2fd449[_0xa251b1(0x19c)][_0xa251b1(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2ff0aa)){saveChat(),log(_0xa251b1(0x215),'success');return;}}log('无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',_0xa251b1(0x1eb)),saveChatDebounced();}export function moveTable(_0x40ad9e,_0x419528){const _0x3c7093=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x40ad9e])return;const _0x51fb7a=_0x419528==='up'?_0x40ad9e-0x1:_0x40ad9e+0x1;if(_0x51fb7a<0x0||_0x51fb7a>=currentTablesState['length']){log('无法移动表格:索引\x20'+_0x40ad9e+_0x3c7093(0x261),_0x3c7093(0x26a));return;}const _0x4fc411=currentTablesState[_0x40ad9e];currentTablesState[_0x40ad9e]=currentTablesState[_0x51fb7a],currentTablesState[_0x51fb7a]=_0x4fc411;const _0x260c0a=_0x3c7093(0x22e)+_0x4fc411[_0x3c7093(0x220)]+_0x3c7093(0x1db);log(_0x260c0a,_0x3c7093(0x264));const _0x7ada72=getContext();if(_0x7ada72[_0x3c7093(0x19c)]&&_0x7ada72[_0x3c7093(0x19c)][_0x3c7093(0x19f)]>0x0){const _0x2eee80=_0x7ada72[_0x3c7093(0x19c)][_0x7ada72['chat'][_0x3c7093(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2eee80)){saveChat(),log(_0x3c7093(0x20f),'success');return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','error'),saveChatDebounced();}export function updateTableRules(_0x20029e,_0x104be){const _0x4dfdb7=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x20029e])return;const _0x22fc67=currentTablesState[_0x20029e];_0x22fc67['note']=_0x104be[_0x4dfdb7(0x1d2)],_0x22fc67[_0x4dfdb7(0x23e)]=_0x104be[_0x4dfdb7(0x23e)],_0x22fc67['rule_delete']=_0x104be[_0x4dfdb7(0x23b)],_0x22fc67[_0x4dfdb7(0x1b1)]=_0x104be[_0x4dfdb7(0x1b1)];const _0x32e26f=_0x4dfdb7(0x22e)+_0x22fc67[_0x4dfdb7(0x220)]+']\x20的规则已更新。';log(_0x32e26f,_0x4dfdb7(0x202));const _0x5eece7=getContext();if(_0x5eece7[_0x4dfdb7(0x19c)]&&_0x5eece7[_0x4dfdb7(0x19c)]['length']>0x0){const _0x3f4784=_0x5eece7[_0x4dfdb7(0x19c)][_0x5eece7[_0x4dfdb7(0x19c)][_0x4dfdb7(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x3f4784)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x1e3769,_0x5c62e8,_0x20d9f8){const _0x56f9df=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x1e3769]){log(_0x56f9df(0x1ec)+_0x1e3769+_0x56f9df(0x23d),_0x56f9df(0x1eb));return;}const _0x2371f0=currentTablesState[_0x1e3769];if(_0x5c62e8>=_0x2371f0['rows']['length']){log(_0x56f9df(0x1f8)+_0x5c62e8+_0x56f9df(0x1b7)+_0x2371f0[_0x56f9df(0x220)]+_0x56f9df(0x243),_0x56f9df(0x26a)),insertRow(_0x1e3769,_0x20d9f8);return;}const _0x263a87=_0x2371f0[_0x56f9df(0x26d)][_0x5c62e8];for(const _0x420c54 in _0x20d9f8){const _0x46fe9e=parseInt(_0x420c54,0xa);_0x46fe9e<_0x263a87[_0x56f9df(0x19f)]&&(_0x263a87[_0x46fe9e]=_0x20d9f8[_0x46fe9e],addHighlight(_0x1e3769,_0x5c62e8,_0x46fe9e));}const _0x16c471=_0x56f9df(0x1dc)+_0x2371f0[_0x56f9df(0x220)]+']\x20的第\x20'+(_0x5c62e8+0x1)+_0x56f9df(0x207);log(_0x16c471,'info');const _0x45de6b=getContext();if(_0x45de6b['chat']&&_0x45de6b[_0x56f9df(0x19c)][_0x56f9df(0x19f)]>0x0){const _0x2c07bd=_0x45de6b['chat'][_0x45de6b['chat'][_0x56f9df(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2c07bd)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x48eca8=_0x16d82b;if(!currentTablesState){log(_0x48eca8(0x212),'error');return;}currentTablesState[_0x48eca8(0x1a2)](_0x6d1e6b=>{const _0x519a4f=_0x48eca8;_0x6d1e6b[_0x519a4f(0x26d)]=[];}),log(_0x48eca8(0x254),_0x48eca8(0x26a));const _0x3d0d33=getContext();if(_0x3d0d33[_0x48eca8(0x19c)]&&_0x3d0d33['chat'][_0x48eca8(0x19f)]>0x0){const _0x2b69fa=_0x3d0d33['chat'][_0x3d0d33[_0x48eca8(0x19c)][_0x48eca8(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2b69fa)){saveChat(),log(_0x48eca8(0x210),_0x48eca8(0x264)),toastr['success'](_0x48eca8(0x221),'操作完成');return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','error'),saveChatDebounced();}export function convertTablesToCsvString(){const _0x47ea07=_0x16d82b;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x587f30='';return currentTablesState[_0x47ea07(0x1a2)]((_0x30a98b,_0x3fc50a)=>{const _0x8a640d=_0x47ea07;_0x587f30+='\x0a*\x20'+_0x3fc50a+':'+_0x30a98b[_0x8a640d(0x220)]+'\x0a',_0x587f30+=_0x8a640d(0x1b3)+(_0x30a98b[_0x8a640d(0x1d2)]||'无')+'\x0a';const _0x2d935b=_0x30a98b['name'][_0x8a640d(0x1c9)](/\s/g,'')+'内容';_0x587f30+='<'+_0x2d935b+'>\x0a';const _0x5eef68=_0x30a98b[_0x8a640d(0x200)]['map']((_0x1991b1,_0x168ee3)=>_0x168ee3+':'+_0x1991b1)[_0x8a640d(0x236)](',');_0x587f30+=_0x8a640d(0x1e8)+_0x5eef68+'\x0a',_0x30a98b[_0x8a640d(0x26d)][_0x8a640d(0x1a2)]((_0x33d9c5,_0x35a2d3)=>{const _0x1f01a8=_0x8a640d;if(Array[_0x1f01a8(0x1cc)](_0x33d9c5)){const _0x5bee12=_0x33d9c5[_0x1f01a8(0x1bb)](_0x297e46=>{const _0x530057=_0x1f01a8;return _0x297e46===null||_0x297e46===undefined||_0x297e46===''?'未知':_0x297e46[_0x530057(0x227)]();})['join'](',');_0x587f30+=_0x35a2d3+','+_0x5bee12+'\x0a';}}),_0x587f30+='</'+_0x2d935b+'>\x0a',_0x587f30+=_0x8a640d(0x1b6)+(_0x30a98b[_0x8a640d(0x23e)]||'允许')+'\x0a',_0x587f30+=_0x8a640d(0x24c)+(_0x30a98b['rule_delete']||'允许')+'\x0a',_0x587f30+=_0x8a640d(0x199)+(_0x30a98b[_0x8a640d(0x1b1)]||'允许')+'\x0a',_0x3fc50a<currentTablesState[_0x8a640d(0x19f)]-0x1&&(_0x587f30+=_0x8a640d(0x1da));}),_0x587f30;}function _0x3af9(){const _0x1483d1=['every','AI指令意图更新不存在的行\x20(rowIndex:\x20','batch_filler_flow_template','\x20条消息中找到基准表格数据。','表格名称不能为空。','】已开始下载。','完整备份','\x22\x20的表格已存在。','batch_filler_rule_template','headers','角色明确死亡且以后绝不会再出场时','info','用户取消了导入操作。','parse',',\x20data=','新列\x20','\x20行。','纯净预设','onchange','物品名','导入的表格数据格式不正确:\x20','mes','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20{\x20insertRow,\x20deleteRow,\x20updateRow\x20}\x20=\x20runner;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','未在聊天记录中找到表格,正在加载全局预设...','表格顺序调整后的状态已强制写入最新消息并立即保存。','清空行数据后的状态已强制写入最新消息并立即保存。','新列\x201','无法清空:当前表格状态为空。','Amily2-Table-Preset-v3.0-separated_templates','number','新表格状态已强制写入最新消息并立即保存。','对<user>态度','全局预设已成功导入并保存到扩展设置中。','slice','removeChild','6148xGQtlN','Amily2-Table-Preset-v2.0-clean','任务栏','导入预设失败:\x20','push','导入失败:','name','所有表格的剧情内容已清空。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格包括结构和内容。\x0a\x0a此操作不可逆是否确定要继续','冻结留存/禁止删除','createElement','导入全局预设失败:\x20',')\x20的第\x20','toString','AI指令块为空无需执行任何操作。','当叙述的场景、时间、人物变更时','aiFlowTemplate','27qtlisD','拥有者','”已向','表格\x20[','从预设模板生成默认表格...','记录时空信息的表格,应保持在一行/日期信息应精确到至几年几月几日(如果日期未知,应随便胡编一个日期)/时段规定凌晨0时至5时早晨5时至8时上午8时至11时中午11时至13时下午13时至16时傍晚16时至19时晚上19时至24时/时间信息应精确至几时几分(如果时间未知,应随便胡编一个时间)/地点应为当前叙述的地点,且约精确越好','readAsText','clear','createObjectURL','\x20的第\x20','对某人很贵重或有特殊纪念意义的物品','join','此地角色','重要原因','files','此表大于一行时应删除多余行','rule_delete','】已成功导出。','\x20中操作。','rule_add','执行失败','与<user>关系','无法移动列:索引\x20','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗\x0a\x0a清除后新聊天将恢复使用扩展内置的默认表格模板。',']\x20末尾新增一行。','1296373YzLhDO','split','物品发生变化时/消耗品产生损耗时','预设已成功导入!','当特定时间约定一起去做某件重要、关键的事时/某角色收到做某件重要、关键事情的命令或任务时/某角色确定执行某件重要、关键的事时',',\x20rowIndex=','表格状态已准备写入消息\x20[','插入了新列。','【删除】:\x20','\x20中找不到索引为\x20','\x20条表格操作指令...','当角色的外貌、身体、衣着出现持久性变化时(如:五官长开、伤痕、减肥、染发、更衣、衣物破损等)/当角色有新的身份、职业、爱好时/当角色和<user>的关系改变时/当角色更换住所时/当角色提到重要信息时','Amily2-','导入操作已取消。','function','\x20行已删除。','所有表格的行数据已在内存中清空。','无法导出:当前表格状态为空。','当大家赴约时/任务或命令有进展、完成、失败时/任务、命令、约定被取消时',']\x20已被成功废黜。','4790lkMxyh','执行者','type','trim','\x20行位置插入了新行。',']\x20在第\x20','具体描述','result','插入行失败:找不到索引为\x20','\x20已在边界。','已清除所有单元格高亮标记。','缺少状态或目标消息,无法保存。','success','14nRgiLF','1801356McTmoi','revokeObjectURL','334216SiggNM','message','warn','702212AcJMGo','”已更新为“','rows','未找到任何表格数据或全局预设,使用默认模板。','【修改】:\x20','global_table_preset','\x20的表格。','chat','预设中缺少必要的指令模板字段。','click','length','\x20(索引\x20','成功删除了表格\x20','forEach','toISOString','file','1308pAHnlY','match','...]','当某人获得贵重或含有特殊意义的物品时/当某个已有物品获得特殊意义时','some','accept','结束时间','fromCharCode','aiTemplate','input','其他重要信息','target','rule_update','confirm','【说明】:\x0a','导入成功',']\x20的表头“','【增加】:\x20','),已智能转换为在表格\x20[','aiRuleTemplate','amily2_ai_template','文件格式无效或缺少版本号/表格数据。','map','application/json','batchFillerFlowTemplate','角色名','当本轮出现表中没有的新角色时,应插入','onload','UI操作\x20\x22','stringify','constructor',']\x20新增了一行。','batchFillerRuleTemplate','Amily2-Table-Preset-v2.0-full','download','创建失败','replace','加载全局预设失败:\x20','删除列失败:在表格\x20','isArray','此表不存在任何一行时','fill','用户取消了全局预设导入操作。','tables','size','note','名为\x20\x22','物品栏','AI返回内容为空无法更新表格。','3MmMyvY','body','没有可导出的表格数据。','getPrototypeOf','\x0a---\x0a',']\x20的顺序已调整。','AI\x20指令更新了表格\x20[','已成功创建新表格:[','extra','version','splice','add','用户取消了清除全局预设的操作。','11XFxVRK','\x0a\x20\x20\x20\x20\x20\x20\x20\x20',']\x20的列“','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设是否确定','\x22\x20已更新内存状态。','rowIndex,','执行AI指令时出错:\x20','2404530xzbmzf','error','AI指令错误尝试在不存在的表格索引\x20','left','准备执行从AI返回的\x20','在第\x20','移动。','导入的预设已强制写入最新消息并立即保存。','below','injectionFlowTemplate','当前没有设置全局预设。','任务名','执行AI指令时发生错误:\x20'];_0x3af9=function(){return _0x1483d1;};return _0x3af9();}export function convertTablesToCsvStringForContentOnly(){const _0x6ef71e=_0x16d82b,_0x82a72f=getMemoryState();if(!_0x82a72f||_0x82a72f[_0x6ef71e(0x19f)]===0x0)return'';let _0x2cfd36='';return _0x82a72f[_0x6ef71e(0x1a2)](_0x11ece5=>{const _0x48aae9=_0x6ef71e;_0x2cfd36+='\x0a<'+_0x11ece5[_0x48aae9(0x220)]+'>\x0a';const _0x3c912d=_0x11ece5['headers'][_0x48aae9(0x1bb)]((_0x4ae8b1,_0x34e909)=>String[_0x48aae9(0x1ac)](0x41+_0x34e909)+':'+_0x4ae8b1)['join'](',');_0x2cfd36+=_0x3c912d+'\x0a',Array[_0x48aae9(0x1cc)](_0x11ece5[_0x48aae9(0x26d)])&&_0x11ece5[_0x48aae9(0x26d)][_0x48aae9(0x1a2)]((_0x359c19,_0x20f97c)=>{const _0x349982=_0x48aae9;if(Array[_0x349982(0x1cc)](_0x359c19)){const _0x387ca5=_0x359c19[_0x349982(0x236)](',');_0x2cfd36+=_0x20f97c+0x1+':'+_0x387ca5+'\x0a';}}),_0x2cfd36+='</'+_0x11ece5['name']+'>\x0a';}),_0x2cfd36['trim']();}loadTables();export function getBatchFillerRuleTemplate(){const _0x308051=_0x16d82b;return extension_settings[extensionName]?.[_0x308051(0x1ff)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x1e0782){const _0x1ede00=_0x16d82b;extension_settings[extensionName][_0x1ede00(0x1ff)]=_0x1e0782,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x48bc9f=_0x16d82b;return extension_settings[extensionName]?.[_0x48bc9f(0x1f9)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x2f1735){const _0x3f5058=_0x16d82b;extension_settings[extensionName][_0x3f5058(0x1f9)]=_0x2f1735,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x3da17d=_0x16d82b;return extension_settings[extensionName]?.[_0x3da17d(0x1b9)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x37ce28){const _0x1ee5be=_0x16d82b;if(!_0x37ce28){log(_0x1ee5be(0x1d5),_0x1ee5be(0x26a));return;}const _0xb35af9=_0x37ce28[_0x1ee5be(0x1a6)](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0xb35af9||!_0xb35af9[0x1]){log('未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。','warn');return;}let _0x9c75bb=_0xb35af9[0x1][_0x1ee5be(0x1c9)](/<!--|-->/g,'')[_0x1ee5be(0x25b)]();if(!_0x9c75bb){log(_0x1ee5be(0x228),_0x1ee5be(0x202));return;}const _0xa4f700=_0x9c75bb[_0x1ee5be(0x245)]('\x0a')['filter'](_0x4b2062=>_0x4b2062[_0x1ee5be(0x25b)]()!=='');log(_0x1ee5be(0x1ee)+_0xa4f700[_0x1ee5be(0x19f)]+_0x1ee5be(0x24e),_0x1ee5be(0x202));const _0x198fea={'insertRow':(_0x104290,_0x154344)=>{const _0x28b17b=_0x1ee5be;log('执行AI指令:\x20insertRow(tableIndex='+_0x104290+_0x28b17b(0x205)+JSON[_0x28b17b(0x1c2)](_0x154344)+')',_0x28b17b(0x202)),insertRow(_0x104290,_0x154344);},'deleteRow':(_0x40fa97,_0x27d8a9)=>{const _0x52019f=_0x1ee5be;log('执行AI指令:\x20deleteRow(tableIndex='+_0x40fa97+_0x52019f(0x249)+_0x27d8a9+')',_0x52019f(0x202)),deleteRow(_0x40fa97,_0x27d8a9);},'updateRow':(_0xe314,_0x7f62da,_0x472ca0)=>{const _0x2f961b=_0x1ee5be;log('执行AI指令:\x20updateRow(tableIndex='+_0xe314+_0x2f961b(0x249)+_0x7f62da+',\x20data='+JSON[_0x2f961b(0x1c2)](_0x472ca0)+')',_0x2f961b(0x202)),updateRow(_0xe314,_0x7f62da,_0x472ca0);}};try{const _0x3915ac=Object[_0x1ee5be(0x1d9)](async function(){})[_0x1ee5be(0x1c3)],_0x3df6b7=new _0x3915ac('runner',_0x1ee5be(0x20d)+_0x9c75bb+_0x1ee5be(0x1e4));await _0x3df6b7(_0x198fea),log('所有AI指令已成功执行完毕。','success'),toastr['success']('已根据AI的指示成功更新表格','填表完成'),document['dispatchEvent'](new CustomEvent('amily2-force-ui-reload'));}catch(_0x142247){log(_0x1ee5be(0x1f6)+_0x142247['message'],_0x1ee5be(0x1eb)),toastr[_0x1ee5be(0x1eb)](_0x1ee5be(0x1e9)+_0x142247['message'],_0x1ee5be(0x23f));}}export function saveAiTemplate(_0x7aafcd){const _0x1b4b9f=_0x16d82b;extension_settings[extensionName][_0x1b4b9f(0x1b9)]=_0x7aafcd,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x2e1880=![]){const _0x3c961b=_0x16d82b;if(!currentTablesState){log(_0x3c961b(0x255),_0x3c961b(0x1eb)),toastr[_0x3c961b(0x1eb)](_0x3c961b(0x1d8));return;}let _0x852910,_0x234cd1,_0x146300;_0x2e1880?(_0x852910=JSON[_0x3c961b(0x204)](JSON[_0x3c961b(0x1c2)](currentTablesState)),_0x234cd1=_0x3c961b(0x1c6),_0x146300=_0x3c961b(0x1fd)):(_0x852910=currentTablesState[_0x3c961b(0x1bb)](_0x4563cf=>({'name':_0x4563cf['name'],'headers':_0x4563cf['headers'],'note':_0x4563cf['note'],'rule_add':_0x4563cf[_0x3c961b(0x23e)],'rule_delete':_0x4563cf[_0x3c961b(0x23b)],'rule_update':_0x4563cf[_0x3c961b(0x1b1)],'rows':[]})),_0x234cd1=_0x3c961b(0x21b),_0x146300=_0x3c961b(0x208));const _0x2e0578={'version':'Amily2-Table-Preset-v3.0-separated_templates','batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x852910},_0x1d9bb3=new Blob([JSON['stringify'](_0x2e0578,null,0x2)],{'type':_0x3c961b(0x1bc)}),_0x4d2f6b=URL[_0x3c961b(0x233)](_0x1d9bb3),_0x5497b1=document[_0x3c961b(0x224)]('a');_0x5497b1['href']=_0x4d2f6b,_0x5497b1[_0x3c961b(0x1c7)]=_0x3c961b(0x250)+_0x146300+'-'+new Date()[_0x3c961b(0x1a3)]()[_0x3c961b(0x218)](0x0,0xa)+'.json',document[_0x3c961b(0x1d7)]['appendChild'](_0x5497b1),_0x5497b1[_0x3c961b(0x19e)](),document[_0x3c961b(0x1d7)][_0x3c961b(0x219)](_0x5497b1),URL[_0x3c961b(0x267)](_0x4d2f6b),log('【'+_0x146300+_0x3c961b(0x23c),_0x3c961b(0x264)),toastr['success']('【'+_0x146300+_0x3c961b(0x1fc),'导出成功');}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x587208){const _0x45b860=_0x16d82b,_0x311ce7=document[_0x45b860(0x224)](_0x45b860(0x1ae));_0x311ce7['type']='file',_0x311ce7[_0x45b860(0x1aa)]='.json',_0x311ce7[_0x45b860(0x209)]=_0x8f4da7=>{const _0x18223c=_0x45b860,_0x27c060=_0x8f4da7[_0x18223c(0x1b0)][_0x18223c(0x239)][0x0];if(!_0x27c060)return;const _0x35f601=new FileReader();_0x35f601[_0x18223c(0x1c0)]=_0x2c9a82=>{const _0x1969c1=_0x18223c;try{const _0x1dcaeb=JSON['parse'](_0x2c9a82[_0x1969c1(0x1b0)][_0x1969c1(0x25f)]);if(!_0x1dcaeb[_0x1969c1(0x1df)]||!Array[_0x1969c1(0x1cc)](_0x1dcaeb[_0x1969c1(0x1d0)]))throw new Error('文件格式无效或缺少版本号/表格数据。');const _0x2f2f30=window[_0x1969c1(0x1b2)](_0x1969c1(0x222));if(!_0x2f2f30){log(_0x1969c1(0x203),_0x1969c1(0x202)),toastr['info'](_0x1969c1(0x251));return;}if(_0x1dcaeb['version']===_0x1969c1(0x213))saveBatchFillerRuleTemplate(_0x1dcaeb[_0x1969c1(0x1c5)]),saveBatchFillerFlowTemplate(_0x1dcaeb[_0x1969c1(0x1bd)]),saveAiTemplate(_0x1dcaeb['injectionFlowTemplate']);else{if(_0x1dcaeb[_0x1969c1(0x1b8)]!==undefined&&_0x1dcaeb[_0x1969c1(0x22a)]!==undefined)saveBatchFillerRuleTemplate(_0x1dcaeb[_0x1969c1(0x1b8)]),saveBatchFillerFlowTemplate(_0x1dcaeb[_0x1969c1(0x22a)]),saveAiTemplate(_0x1dcaeb[_0x1969c1(0x22a)]);else{if(_0x1dcaeb[_0x1969c1(0x1ad)])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x1dcaeb[_0x1969c1(0x1ad)]),saveAiTemplate(_0x1dcaeb['aiTemplate']);else throw new Error(_0x1969c1(0x19d));}}const _0x14846e=_0x1dcaeb[_0x1969c1(0x1d0)];_0x14846e[_0x1969c1(0x1a2)](_0x3ba55a=>{const _0x1750fd=_0x1969c1;if(_0x3ba55a[_0x1750fd(0x220)]===undefined||_0x3ba55a[_0x1750fd(0x200)]===undefined||_0x3ba55a[_0x1750fd(0x26d)]===undefined)throw new Error(_0x1750fd(0x20b)+JSON[_0x1750fd(0x1c2)](_0x3ba55a));if(_0x3ba55a[_0x1750fd(0x1d2)]===undefined)_0x3ba55a[_0x1750fd(0x1d2)]='无';if(_0x3ba55a[_0x1750fd(0x23e)]===undefined)_0x3ba55a[_0x1750fd(0x23e)]='允许';if(_0x3ba55a['rule_delete']===undefined)_0x3ba55a[_0x1750fd(0x23b)]='允许';if(_0x3ba55a['rule_update']===undefined)_0x3ba55a['rule_update']='允许';}),setMemoryState(_0x14846e);const _0xe51d1f=getContext();if(_0xe51d1f[_0x1969c1(0x19c)]&&_0xe51d1f[_0x1969c1(0x19c)][_0x1969c1(0x19f)]>0x0){const _0x1c63a7=_0xe51d1f['chat'][_0xe51d1f['chat']['length']-0x1];saveStateToMessage(getMemoryState(),_0x1c63a7)&&(saveChat(),log(_0x1969c1(0x1f1),_0x1969c1(0x264)));}else saveChatDebounced();log('预设已成功导入并应用。',_0x1969c1(0x264)),toastr['success'](_0x1969c1(0x247),_0x1969c1(0x1b4)),typeof _0x587208===_0x1969c1(0x252)&&_0x587208();}catch(_0x551436){log(_0x1969c1(0x21d)+_0x551436[_0x1969c1(0x269)],_0x1969c1(0x1eb)),toastr[_0x1969c1(0x1eb)](_0x1969c1(0x21f)+_0x551436[_0x1969c1(0x269)],'错误');}},_0x35f601[_0x18223c(0x231)](_0x27c060);},_0x311ce7[_0x45b860(0x19e)]();}export function isCurrentTablesEmpty(){const _0x3f75d8=_0x16d82b,_0x5e6d2e=getMemoryState();if(!_0x5e6d2e||_0x5e6d2e[_0x3f75d8(0x19f)]===0x0)return!![];return _0x5e6d2e[_0x3f75d8(0x1f7)](_0xa28c1e=>!_0xa28c1e[_0x3f75d8(0x26d)]||_0xa28c1e[_0x3f75d8(0x26d)][_0x3f75d8(0x19f)]===0x0);}function _0x4696(_0x423c08,_0x554313){const _0x3af949=_0x3af9();return _0x4696=function(_0x469625,_0x2ac74b){_0x469625=_0x469625-0x198;let _0x4a36de=_0x3af949[_0x469625];return _0x4a36de;},_0x4696(_0x423c08,_0x554313);}export function clearGlobalPreset(){const _0x142c86=_0x16d82b;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x142c86(0x19a)]){const _0x5bc15b=window['confirm'](_0x142c86(0x242));_0x5bc15b?(delete extension_settings[extensionName][_0x142c86(0x19a)],saveSettingsDebounced(),log('全局预设已被清除。',_0x142c86(0x264)),toastr['success']('全局预设已清除,新聊天将使用默认模板。','操作成功')):(log(_0x142c86(0x1e2),_0x142c86(0x202)),toastr[_0x142c86(0x202)]('操作已取消。'));}else log('无需清除,当前未设置任何全局预设。','info'),toastr[_0x142c86(0x202)](_0x142c86(0x1f4),'提示');}export function importGlobalPreset(_0x467cf9){const _0x24f7cd=_0x16d82b,_0x2c5659=document['createElement'](_0x24f7cd(0x1ae));_0x2c5659[_0x24f7cd(0x25a)]=_0x24f7cd(0x1a4),_0x2c5659[_0x24f7cd(0x1aa)]='.json',_0x2c5659['onchange']=_0x15d2f9=>{const _0x11b619=_0x24f7cd,_0x18c8ae=_0x15d2f9[_0x11b619(0x1b0)][_0x11b619(0x239)][0x0];if(!_0x18c8ae)return;const _0x2c9dda=new FileReader();_0x2c9dda[_0x11b619(0x1c0)]=_0x9f20f=>{const _0x51f9ef=_0x11b619;try{const _0x4c9e92=JSON['parse'](_0x9f20f[_0x51f9ef(0x1b0)][_0x51f9ef(0x25f)]);if(!_0x4c9e92[_0x51f9ef(0x1df)]||!Array[_0x51f9ef(0x1cc)](_0x4c9e92[_0x51f9ef(0x1d0)]))throw new Error(_0x51f9ef(0x1ba));const _0x28966f=window[_0x51f9ef(0x1b2)](_0x51f9ef(0x1e6));if(!_0x28966f){log(_0x51f9ef(0x1cf),_0x51f9ef(0x202)),toastr[_0x51f9ef(0x202)]('操作已取消。');return;}const _0x4594ae=_0x4c9e92['tables']['map'](_0x27bffa=>({'name':_0x27bffa[_0x51f9ef(0x220)],'headers':_0x27bffa[_0x51f9ef(0x200)],'note':_0x27bffa['note'],'rule_add':_0x27bffa[_0x51f9ef(0x23e)],'rule_delete':_0x27bffa[_0x51f9ef(0x23b)],'rule_update':_0x27bffa[_0x51f9ef(0x1b1)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={}),extension_settings[extensionName][_0x51f9ef(0x19a)]={'version':_0x4c9e92[_0x51f9ef(0x1df)],'tables':_0x4594ae,'batchFillerRuleTemplate':_0x4c9e92['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x4c9e92[_0x51f9ef(0x1bd)],'injectionFlowTemplate':_0x4c9e92[_0x51f9ef(0x1f3)]},saveSettingsDebounced(),log(_0x51f9ef(0x217),'success'),toastr[_0x51f9ef(0x264)]('全局预设已设置!新聊天将默认使用此预设。','设置成功'),typeof _0x467cf9==='function'&&_0x467cf9();}catch(_0x1de3e4){log(_0x51f9ef(0x225)+_0x1de3e4[_0x51f9ef(0x269)],_0x51f9ef(0x1eb)),toastr[_0x51f9ef(0x1eb)](_0x51f9ef(0x21f)+_0x1de3e4[_0x51f9ef(0x269)],'错误');}},_0x2c9dda[_0x11b619(0x231)](_0x18c8ae);},_0x2c5659[_0x24f7cd(0x19e)]();}