diff --git a/core/table-system/manager.js b/core/table-system/manager.js index dce7036..50ca39b 100644 --- a/core/table-system/manager.js +++ b/core/table-system/manager.js @@ -1 +1 @@ -const _0x26d07d=_0x4c3b;(function(_0x31a92f,_0x533030){const _0x3ae2c6=_0x4c3b,_0x1435b3=_0x31a92f();while(!![]){try{const _0x77293b=-parseInt(_0x3ae2c6(0x243))/0x1*(parseInt(_0x3ae2c6(0x26c))/0x2)+parseInt(_0x3ae2c6(0x240))/0x3+parseInt(_0x3ae2c6(0x218))/0x4*(parseInt(_0x3ae2c6(0x1b9))/0x5)+-parseInt(_0x3ae2c6(0x1b0))/0x6+parseInt(_0x3ae2c6(0x262))/0x7+parseInt(_0x3ae2c6(0x232))/0x8*(parseInt(_0x3ae2c6(0x1f4))/0x9)+parseInt(_0x3ae2c6(0x1af))/0xa*(parseInt(_0x3ae2c6(0x23e))/0xb);if(_0x77293b===_0x533030)break;else _0x1435b3['push'](_0x1435b3['shift']());}catch(_0x37fe5d){_0x1435b3['push'](_0x1435b3['shift']());}}}(_0x1ea2,0x549aa));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=_0x26d07d(0x242);let currentTablesState=null;export function setMemoryState(_0x4c9c7e){currentTablesState=_0x4c9c7e;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x26d07d(0x22f),'headers':['日期','时间',_0x26d07d(0x26f),'此地角色'],'note':_0x26d07d(0x1e1),'rule_add':_0x26d07d(0x207),'rule_delete':'当行数超过了1行时。','rule_update':'当日期、时间、地点、此地角色发生变化时。','rows':[]},{'name':_0x26d07d(0x209),'headers':[_0x26d07d(0x1e4),'身体特征','性格','职业','爱好',_0x26d07d(0x255),'住所',_0x26d07d(0x261)],'note':'·\x20角色天生或不易改变的特征csv表格,思考本轮有否有其中的角色,他应作出什么反应\x0a·\x20身体特征、性格要保持在三条及三条以内','rule_add':_0x26d07d(0x21b),'rule_delete':'允许','rule_update':_0x26d07d(0x257),'rows':[]},{'name':_0x26d07d(0x1db),'headers':[_0x26d07d(0x1e4),_0x26d07d(0x1f8),'对{{user}}态度(保持三条)'],'note':_0x26d07d(0x24c),'rule_add':_0x26d07d(0x264),'rule_delete':'·\x20当角色明确死亡时,应删除。','rule_update':_0x26d07d(0x23f),'rows':[]},{'name':_0x26d07d(0x214),'headers':[_0x26d07d(0x1bf),'类型','详情','执行者','状态','结果',_0x26d07d(0x228),_0x26d07d(0x1ce)],'note':_0x26d07d(0x23b),'rule_add':'当{{user}}或者角色确定执行某一个重要事情时,或者收到某件重要事情的执行命令或任务时。','rule_delete':_0x26d07d(0x227),'rule_update':_0x26d07d(0x233),'rows':[]},{'name':_0x26d07d(0x24a),'headers':[_0x26d07d(0x229),_0x26d07d(0x20c),'持有者',_0x26d07d(0x268)],'note':_0x26d07d(0x20b),'rule_add':_0x26d07d(0x1e7),'rule_delete':_0x26d07d(0x201),'rule_update':_0x26d07d(0x22c),'rows':[]},{'name':_0x26d07d(0x249),'headers':['名字',_0x26d07d(0x1d7)],'note':'仅作为用户对你的提示,不允许你擅自修改。','rule_add':_0x26d07d(0x237),'rule_delete':_0x26d07d(0x1c1),'rule_update':_0x26d07d(0x248),'rows':[]}]};function getDefaultTables(){const _0x3baae3=_0x26d07d;return log(_0x3baae3(0x211),_0x3baae3(0x1f2)),JSON[_0x3baae3(0x208)](JSON['stringify'](defaultTemplate['tables']));}export function loadTables(_0x185809=-0x1){const _0x2f810c=_0x26d07d,_0xc4e85a=getContext();if(!_0xc4e85a||!_0xc4e85a[_0x2f810c(0x1e3)]||_0xc4e85a[_0x2f810c(0x1e3)]['length']===0x0)return currentTablesState=getDefaultTables(),currentTablesState;const _0x23aca3=_0x185809===-0x1?_0xc4e85a[_0x2f810c(0x1e3)][_0x2f810c(0x1ed)]-0x1:_0x185809-0x1;if(_0x23aca3<0x0)return currentTablesState=getDefaultTables(),currentTablesState;for(let _0xa90326=_0x23aca3;_0xa90326>=0x0;_0xa90326--){const _0x2ec69c=_0xc4e85a[_0x2f810c(0x1e3)][_0xa90326];if(_0x2ec69c[_0x2f810c(0x20f)]&&_0x2ec69c['extra'][TABLE_DATA_KEY]){log(_0x2f810c(0x203)+_0xa90326+_0x2f810c(0x1fb),_0x2f810c(0x1f2));let _0x56753a=JSON[_0x2f810c(0x208)](JSON['stringify'](_0x2ec69c[_0x2f810c(0x20f)][TABLE_DATA_KEY]));return _0x56753a[_0x2f810c(0x222)](_0xe6eb07=>{const _0x25dd43=_0x2f810c;if(_0xe6eb07[_0x25dd43(0x226)]===undefined)_0xe6eb07[_0x25dd43(0x226)]='无';if(_0xe6eb07[_0x25dd43(0x1c9)]===undefined)_0xe6eb07['rule_add']='允许';if(_0xe6eb07[_0x25dd43(0x1eb)]===undefined)_0xe6eb07[_0x25dd43(0x1eb)]='允许';if(_0xe6eb07[_0x25dd43(0x26b)]===undefined)_0xe6eb07[_0x25dd43(0x26b)]='允许';}),currentTablesState=_0x56753a,currentTablesState;}}return log(_0x2f810c(0x1d3),_0x2f810c(0x1f2)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x44f62a,_0x2380a5){const _0x2c2d12=_0x26d07d;if(!_0x44f62a||!_0x2380a5)return log(_0x2c2d12(0x1f1),_0x2c2d12(0x244)),![];return!_0x2380a5[_0x2c2d12(0x20f)]&&(_0x2380a5[_0x2c2d12(0x20f)]={}),_0x2380a5[_0x2c2d12(0x20f)][TABLE_DATA_KEY]=JSON[_0x2c2d12(0x208)](JSON[_0x2c2d12(0x22d)](_0x44f62a)),log('表格状态已准备写入消息\x20['+_0x2380a5[_0x2c2d12(0x224)][_0x2c2d12(0x1d5)](0x0,0x14)+_0x2c2d12(0x1d2),_0x2c2d12(0x1f2)),!![];}function _0x4c3b(_0x2f81a9,_0x3f454b){const _0x1ea2cb=_0x1ea2();return _0x4c3b=function(_0x4c3b7f,_0x450458){_0x4c3b7f=_0x4c3b7f-0x1af;let _0x32ff66=_0x1ea2cb[_0x4c3b7f];return _0x32ff66;},_0x4c3b(_0x2f81a9,_0x3f454b);}export function saveTables(_0x4169a4=_0x26d07d(0x20a)){const _0xd0ab9a=_0x26d07d;return log(_0xd0ab9a(0x1ca)+_0x4169a4+_0xd0ab9a(0x24f),_0xd0ab9a(0x1f2)),!![];}export function updateCell(_0x82166d,_0xeb14a0,_0x2ebb29,_0x2203ee){const _0xffee0e=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x82166d]||!currentTablesState[_0x82166d][_0xffee0e(0x241)][_0xeb14a0])return;const _0xdfdb39=currentTablesState[_0x82166d]['name'],_0xbaa7cc=currentTablesState[_0x82166d][_0xffee0e(0x1b5)][_0x2ebb29];currentTablesState[_0x82166d]['rows'][_0xeb14a0][_0x2ebb29]=_0x2203ee;const _0x2d687f='表格\x20['+_0xdfdb39+_0xffee0e(0x265)+_0xbaa7cc+_0xffee0e(0x235)+(_0xeb14a0+0x1)+_0xffee0e(0x21f);log(_0x2d687f,_0xffee0e(0x1f2));const _0xb4f412=getContext();if(_0xb4f412[_0xffee0e(0x1e3)]&&_0xb4f412[_0xffee0e(0x1e3)][_0xffee0e(0x1ed)]>0x0){const _0x4b2b64=_0xb4f412[_0xffee0e(0x1e3)][_0xb4f412[_0xffee0e(0x1e3)][_0xffee0e(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x4b2b64)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x2036ac){const _0x5a22a7=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x2036ac])return;const _0x4bb221=currentTablesState[_0x2036ac],_0x3ca03b=_0x4bb221['headers'][_0x5a22a7(0x1ed)],_0x2dab2e=Array(_0x3ca03b)[_0x5a22a7(0x1b3)]('');_0x4bb221[_0x5a22a7(0x241)][_0x5a22a7(0x267)](_0x2dab2e);const _0x4cce54='表格\x20['+_0x4bb221['name']+_0x5a22a7(0x1d6);log(_0x4cce54,_0x5a22a7(0x1f2));const _0x1150e9=getContext();if(_0x1150e9['chat']&&_0x1150e9[_0x5a22a7(0x1e3)][_0x5a22a7(0x1ed)]>0x0){const _0x3470f1=_0x1150e9[_0x5a22a7(0x1e3)][_0x1150e9[_0x5a22a7(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3470f1)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x5df3b3){const _0x5e4130=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x5df3b3])return;const _0x6c8052=currentTablesState[_0x5df3b3],_0x40b3aa='新列\x20'+(_0x6c8052['headers'][_0x5e4130(0x1ed)]+0x1);_0x6c8052[_0x5e4130(0x1b5)][_0x5e4130(0x267)](_0x40b3aa),_0x6c8052['rows'][_0x5e4130(0x222)](_0x420105=>_0x420105[_0x5e4130(0x267)](''));const _0x4938c0='表格\x20['+_0x6c8052[_0x5e4130(0x230)]+_0x5e4130(0x204);log(_0x4938c0,_0x5e4130(0x1f2));const _0x1b21b7=getContext();if(_0x1b21b7[_0x5e4130(0x1e3)]&&_0x1b21b7[_0x5e4130(0x1e3)][_0x5e4130(0x1ed)]>0x0){const _0x184881=_0x1b21b7[_0x5e4130(0x1e3)][_0x1b21b7[_0x5e4130(0x1e3)][_0x5e4130(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x184881)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x423a84,_0xbc21df,_0x5ecca8){const _0x297461=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x423a84]||currentTablesState[_0x423a84][_0x297461(0x1b5)][_0xbc21df]===undefined)return;const _0x53fa79=currentTablesState[_0x423a84][_0x297461(0x230)],_0x2e94ff=currentTablesState[_0x423a84][_0x297461(0x1b5)][_0xbc21df];currentTablesState[_0x423a84][_0x297461(0x1b5)][_0xbc21df]=_0x5ecca8;const _0x32a354=_0x297461(0x21e)+_0x53fa79+_0x297461(0x246)+_0x2e94ff+_0x297461(0x225)+_0x5ecca8+'”。';log(_0x32a354,_0x297461(0x1f2));const _0x4b2a66=getContext();if(_0x4b2a66[_0x297461(0x1e3)]&&_0x4b2a66[_0x297461(0x1e3)][_0x297461(0x1ed)]>0x0){const _0x3a4e17=_0x4b2a66[_0x297461(0x1e3)][_0x4b2a66[_0x297461(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3a4e17)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x35afa5,_0x1a72cf){const _0x10ca1a=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x35afa5]||!currentTablesState[_0x35afa5][_0x10ca1a(0x241)][_0x1a72cf])return;const _0x3ee676=currentTablesState[_0x35afa5][_0x10ca1a(0x230)];currentTablesState[_0x35afa5]['rows'][_0x10ca1a(0x213)](_0x1a72cf,0x1);const _0x126d03=_0x10ca1a(0x21e)+_0x3ee676+']\x20的第\x20'+(_0x1a72cf+0x1)+_0x10ca1a(0x1fd);log(_0x126d03,'info');const _0x4187a2=getContext();if(_0x4187a2[_0x10ca1a(0x1e3)]&&_0x4187a2['chat'][_0x10ca1a(0x1ed)]>0x0){const _0x57b9d3=_0x4187a2[_0x10ca1a(0x1e3)][_0x4187a2['chat'][_0x10ca1a(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x57b9d3)){await saveChat();return;}}await saveChatDebounced();}export function deleteColumn(_0x809e91,_0x588899){const _0x195636=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x809e91]||currentTablesState[_0x809e91][_0x195636(0x1b5)][_0x588899]===undefined)return;const _0x2a16a4=currentTablesState[_0x809e91][_0x195636(0x230)],_0x3ca75f=currentTablesState[_0x809e91][_0x195636(0x1b5)][_0x588899];currentTablesState[_0x809e91][_0x195636(0x1b5)][_0x195636(0x213)](_0x588899,0x1),currentTablesState[_0x809e91]['rows'][_0x195636(0x222)](_0x586387=>{const _0x159a71=_0x195636;_0x586387[_0x159a71(0x213)](_0x588899,0x1);});const _0x1ca68f=_0x195636(0x21e)+_0x2a16a4+']\x20的列“'+_0x3ca75f+_0x195636(0x20e);log(_0x1ca68f,_0x195636(0x1f2));const _0x3bdc4d=getContext();if(_0x3bdc4d[_0x195636(0x1e3)]&&_0x3bdc4d['chat'][_0x195636(0x1ed)]>0x0){const _0x5639b6=_0x3bdc4d[_0x195636(0x1e3)][_0x3bdc4d[_0x195636(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5639b6)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x1f8fb9){const _0x44d7d5=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x1f8fb9])return;const _0x107294=currentTablesState[_0x1f8fb9]['name'];currentTablesState[_0x44d7d5(0x213)](_0x1f8fb9,0x1);const _0x370c02=_0x44d7d5(0x21e)+_0x107294+_0x44d7d5(0x263);log(_0x370c02,_0x44d7d5(0x220));const _0xa410fe=getContext();if(_0xa410fe[_0x44d7d5(0x1e3)]&&_0xa410fe['chat'][_0x44d7d5(0x1ed)]>0x0){const _0xe1e9f1=_0xa410fe[_0x44d7d5(0x1e3)][_0xa410fe[_0x44d7d5(0x1e3)][_0x44d7d5(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0xe1e9f1)){saveChat(),log(_0x44d7d5(0x238),_0x44d7d5(0x220));return;}}log('无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','error'),saveChatDebounced();}export function addTable(_0xbf8af5){const _0x32db61=_0x26d07d;if(!_0xbf8af5||!_0xbf8af5[_0x32db61(0x1b2)]()){log(_0x32db61(0x22b),_0x32db61(0x244)),toastr['error'](_0x32db61(0x1e0),_0x32db61(0x217));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x32db61(0x1da)](_0x104638=>_0x104638[_0x32db61(0x230)]===_0xbf8af5[_0x32db61(0x1b2)]())){log('无法创建表格:名为\x20\x22'+_0xbf8af5+'\x22\x20的表格已存在。',_0x32db61(0x244)),toastr['error'](_0x32db61(0x223)+_0xbf8af5+_0x32db61(0x215),_0x32db61(0x217));return;}const _0x307f50={'name':_0xbf8af5[_0x32db61(0x1b2)](),'headers':[_0x32db61(0x216)],'rows':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState[_0x32db61(0x267)](_0x307f50);const _0x124159='已成功创建新表格:['+_0xbf8af5[_0x32db61(0x1b2)]()+']。';log(_0x124159,_0x32db61(0x220));const _0x472f2f=getContext();if(_0x472f2f['chat']&&_0x472f2f[_0x32db61(0x1e3)][_0x32db61(0x1ed)]>0x0){const _0x30044b=_0x472f2f['chat'][_0x472f2f['chat'][_0x32db61(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x30044b)){saveChat(),log(_0x32db61(0x221),_0x32db61(0x220));return;}}log(_0x32db61(0x205),_0x32db61(0x244)),saveChatDebounced();}export function moveTable(_0x31d0b4,_0x24e6c7){const _0x251d15=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x31d0b4])return;const _0x292a6c=_0x24e6c7==='up'?_0x31d0b4-0x1:_0x31d0b4+0x1;if(_0x292a6c<0x0||_0x292a6c>=currentTablesState[_0x251d15(0x1ed)]){log(_0x251d15(0x21c)+_0x31d0b4+_0x251d15(0x1e5),_0x251d15(0x1dd));return;}const _0x1cc796=currentTablesState[_0x31d0b4];currentTablesState[_0x31d0b4]=currentTablesState[_0x292a6c],currentTablesState[_0x292a6c]=_0x1cc796;const _0x3aedd2=_0x251d15(0x21e)+_0x1cc796['name']+']\x20的顺序已调整。';log(_0x3aedd2,_0x251d15(0x220));const _0x29530f=getContext();if(_0x29530f[_0x251d15(0x1e3)]&&_0x29530f[_0x251d15(0x1e3)]['length']>0x0){const _0x2247a7=_0x29530f[_0x251d15(0x1e3)][_0x29530f['chat'][_0x251d15(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x2247a7)){saveChat(),log(_0x251d15(0x1c4),_0x251d15(0x220));return;}}log(_0x251d15(0x1bc),_0x251d15(0x244)),saveChatDebounced();}export function updateTableRules(_0x569e69,_0x49fde8){const _0x3b9dea=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x569e69])return;const _0x4d729b=currentTablesState[_0x569e69];_0x4d729b['note']=_0x49fde8[_0x3b9dea(0x226)],_0x4d729b[_0x3b9dea(0x1c9)]=_0x49fde8['rule_add'],_0x4d729b[_0x3b9dea(0x1eb)]=_0x49fde8['rule_delete'],_0x4d729b[_0x3b9dea(0x26b)]=_0x49fde8[_0x3b9dea(0x26b)];const _0x586c80=_0x3b9dea(0x21e)+_0x4d729b[_0x3b9dea(0x230)]+']\x20的规则已更新。';log(_0x586c80,_0x3b9dea(0x1f2));const _0x257f38=getContext();if(_0x257f38[_0x3b9dea(0x1e3)]&&_0x257f38[_0x3b9dea(0x1e3)][_0x3b9dea(0x1ed)]>0x0){const _0x4217a1=_0x257f38[_0x3b9dea(0x1e3)][_0x257f38[_0x3b9dea(0x1e3)][_0x3b9dea(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x4217a1)){saveChat();return;}}saveChatDebounced();}export function insertRow(_0x28188b,_0x205362){const _0x293638=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x28188b]){log(_0x293638(0x251)+_0x28188b+_0x293638(0x219),_0x293638(0x244));return;}const _0x165c2f=currentTablesState[_0x28188b],_0x163e02=_0x165c2f[_0x293638(0x1b5)][_0x293638(0x1ed)],_0x136893=Array(_0x163e02)[_0x293638(0x1b3)]('');for(const _0x78491c in _0x205362){parseInt(_0x78491c,0xa)<_0x163e02&&(_0x136893[_0x78491c]=_0x205362[_0x78491c]);}_0x165c2f[_0x293638(0x241)][_0x293638(0x267)](_0x136893);const _0x5475e2=_0x293638(0x25a)+_0x165c2f[_0x293638(0x230)]+_0x293638(0x259);log(_0x5475e2,'info');const _0x3fb80a=getContext();if(_0x3fb80a[_0x293638(0x1e3)]&&_0x3fb80a[_0x293638(0x1e3)][_0x293638(0x1ed)]>0x0){const _0x29a038=_0x3fb80a[_0x293638(0x1e3)][_0x3fb80a[_0x293638(0x1e3)][_0x293638(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x29a038)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x38cb94,_0x205e48,_0x269fe6){const _0x33994e=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x38cb94]){log(_0x33994e(0x251)+_0x38cb94+_0x33994e(0x1ea),_0x33994e(0x244));return;}const _0x32b800=currentTablesState[_0x38cb94];if(_0x205e48>=_0x32b800['rows'][_0x33994e(0x1ed)]){log(_0x33994e(0x25b)+_0x205e48+'),已智能转换为在表格\x20['+_0x32b800[_0x33994e(0x230)]+_0x33994e(0x212),_0x33994e(0x1dd)),insertRow(_0x38cb94,_0x269fe6);return;}const _0x2b810f=_0x32b800[_0x33994e(0x241)][_0x205e48];for(const _0x336711 in _0x269fe6){parseInt(_0x336711,0xa)<_0x2b810f[_0x33994e(0x1ed)]&&(_0x2b810f[_0x336711]=_0x269fe6[_0x336711]);}const _0x33bde2=_0x33994e(0x25e)+_0x32b800[_0x33994e(0x230)]+_0x33994e(0x1be)+(_0x205e48+0x1)+_0x33994e(0x1d0);log(_0x33bde2,_0x33994e(0x1f2));const _0x29bcc9=getContext();if(_0x29bcc9[_0x33994e(0x1e3)]&&_0x29bcc9[_0x33994e(0x1e3)][_0x33994e(0x1ed)]>0x0){const _0x451cd4=_0x29bcc9['chat'][_0x29bcc9[_0x33994e(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x451cd4)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x10965b=_0x26d07d;if(!currentTablesState){log(_0x10965b(0x252),_0x10965b(0x244));return;}currentTablesState[_0x10965b(0x222)](_0x5c63b9=>{_0x5c63b9['rows']=[];}),log('所有表格的行数据已在内存中清空。',_0x10965b(0x1dd));const _0x2056da=getContext();if(_0x2056da[_0x10965b(0x1e3)]&&_0x2056da[_0x10965b(0x1e3)][_0x10965b(0x1ed)]>0x0){const _0x4ce097=_0x2056da['chat'][_0x2056da[_0x10965b(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x4ce097)){saveChat(),log(_0x10965b(0x1ff),_0x10965b(0x220)),toastr[_0x10965b(0x220)](_0x10965b(0x260),_0x10965b(0x269));return;}}log(_0x10965b(0x24e),_0x10965b(0x244)),saveChatDebounced();}export function convertTablesToCsvString(){const _0x5e7279=_0x26d07d;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x5e8bca='';return currentTablesState[_0x5e7279(0x222)]((_0x3370ed,_0x105e05)=>{const _0x31db35=_0x5e7279;_0x5e8bca+=_0x31db35(0x1f7)+_0x105e05+':'+_0x3370ed['name']+'\x0a',_0x5e8bca+=_0x31db35(0x1fa)+(_0x3370ed['note']||'无')+'\x0a';const _0x27730c=_0x3370ed[_0x31db35(0x230)][_0x31db35(0x250)](/\s/g,'')+'内容';_0x5e8bca+='<'+_0x27730c+'>\x0a';const _0x1de4a4=_0x3370ed[_0x31db35(0x1b5)]['map']((_0x1bc137,_0x3c4b22)=>_0x3c4b22+':'+_0x1bc137)['join'](',');_0x5e8bca+=_0x31db35(0x23a)+_0x1de4a4+'\x0a',_0x3370ed[_0x31db35(0x241)][_0x31db35(0x222)]((_0x258919,_0x10b7ed)=>{const _0x2dad8f=_0x31db35;if(Array['isArray'](_0x258919)){const _0xcabef=_0x258919[_0x2dad8f(0x25d)](_0x5f38f9=>{const _0x3b044e=_0x2dad8f;return _0x5f38f9===null||_0x5f38f9===undefined||_0x5f38f9===''?'无':_0x5f38f9[_0x3b044e(0x253)]();})[_0x2dad8f(0x1d1)](',');_0x5e8bca+=_0x10b7ed+','+_0xcabef+'\x0a';}}),_0x5e8bca+='\x0a',_0x5e8bca+=_0x31db35(0x25f)+(_0x3370ed[_0x31db35(0x1c9)]||'允许')+'\x0a',_0x5e8bca+=_0x31db35(0x231)+(_0x3370ed[_0x31db35(0x1eb)]||'允许')+'\x0a',_0x5e8bca+=_0x31db35(0x1c6)+(_0x3370ed['rule_update']||'允许')+'\x0a',_0x105e05([\s\S]*?)<\/Amily2Edit>/);if(!_0x4ddde0||!_0x4ddde0[0x1]){log(_0x29d2bf(0x1c8),_0x29d2bf(0x1dd));return;}let _0x4c0056=_0x4ddde0[0x1][_0x29d2bf(0x250)](//g,'')[_0x29d2bf(0x1b2)]();if(!_0x4c0056){log(_0x29d2bf(0x1ec),_0x29d2bf(0x1f2));return;}const _0x216e75=_0x4c0056[_0x29d2bf(0x1b1)]('\x0a')['filter'](_0x15dd08=>_0x15dd08[_0x29d2bf(0x1b2)]()!=='');log(_0x29d2bf(0x1bd)+_0x216e75[_0x29d2bf(0x1ed)]+_0x29d2bf(0x1ef),_0x29d2bf(0x1f2));const _0x5b319f={'insertRow':(_0x4b9585,_0x368c20)=>{const _0x1b9394=_0x29d2bf;log(_0x1b9394(0x239)+_0x4b9585+_0x1b9394(0x20d)+JSON[_0x1b9394(0x22d)](_0x368c20)+')','info'),insertRow(_0x4b9585,_0x368c20);},'deleteRow':(_0x2d0e8a,_0x21a330)=>{const _0x95d1e0=_0x29d2bf;log(_0x95d1e0(0x202)+_0x2d0e8a+_0x95d1e0(0x256)+_0x21a330+')',_0x95d1e0(0x1f2)),deleteRow(_0x2d0e8a,_0x21a330);},'updateRow':(_0x4945ef,_0xcf91d3,_0x162365)=>{const _0x4ed902=_0x29d2bf;log(_0x4ed902(0x1b6)+_0x4945ef+',\x20rowIndex='+_0xcf91d3+_0x4ed902(0x20d)+JSON[_0x4ed902(0x22d)](_0x162365)+')','info'),updateRow(_0x4945ef,_0xcf91d3,_0x162365);}};try{const _0x1c241d=new Function(_0x29d2bf(0x26e),_0x29d2bf(0x22e)+_0x4c0056+_0x29d2bf(0x254));_0x1c241d(_0x5b319f),log(_0x29d2bf(0x1b7),'success'),toastr[_0x29d2bf(0x220)](_0x29d2bf(0x1df),_0x29d2bf(0x1c5)),saveChatDebounced();}catch(_0x34cf38){log(_0x29d2bf(0x258)+_0x34cf38[_0x29d2bf(0x21d)],'error'),toastr[_0x29d2bf(0x244)]('执行AI指令时出错:\x20'+_0x34cf38[_0x29d2bf(0x21d)],'执行失败');}}export function saveAiTemplate(_0xc7c062){const _0x26ef75=_0x26d07d;extension_settings[extensionName][_0x26ef75(0x1c0)]=_0xc7c062,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x32ab22=![]){const _0x5bb682=_0x26d07d;if(!currentTablesState){log('无法导出:当前表格状态为空。',_0x5bb682(0x244)),toastr['error'](_0x5bb682(0x1cd));return;}let _0x1b6a39,_0x21e964,_0x5c0746;_0x32ab22?(_0x1b6a39=JSON[_0x5bb682(0x208)](JSON['stringify'](currentTablesState)),_0x21e964=_0x5bb682(0x247),_0x5c0746=_0x5bb682(0x1cc)):(_0x1b6a39=currentTablesState[_0x5bb682(0x25d)](_0x1f6308=>({'name':_0x1f6308[_0x5bb682(0x230)],'headers':_0x1f6308['headers'],'note':_0x1f6308[_0x5bb682(0x226)],'rule_add':_0x1f6308[_0x5bb682(0x1c9)],'rule_delete':_0x1f6308[_0x5bb682(0x1eb)],'rule_update':_0x1f6308[_0x5bb682(0x26b)],'rows':[]})),_0x21e964=_0x5bb682(0x200),_0x5c0746=_0x5bb682(0x210));const _0x46ae07={'version':_0x5bb682(0x23c),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x1b6a39},_0x55631b=new Blob([JSON[_0x5bb682(0x22d)](_0x46ae07,null,0x2)],{'type':'application/json'}),_0x5af8e6=URL[_0x5bb682(0x23d)](_0x55631b),_0x5b623a=document[_0x5bb682(0x1bb)]('a');_0x5b623a[_0x5bb682(0x1d8)]=_0x5af8e6,_0x5b623a['download']=_0x5bb682(0x1e2)+_0x5c0746+'-'+new Date()[_0x5bb682(0x1b8)]()[_0x5bb682(0x266)](0x0,0xa)+_0x5bb682(0x1c2),document[_0x5bb682(0x1fe)][_0x5bb682(0x206)](_0x5b623a),_0x5b623a[_0x5bb682(0x24b)](),document[_0x5bb682(0x1fe)]['removeChild'](_0x5b623a),URL['revokeObjectURL'](_0x5af8e6),log('【'+_0x5c0746+'】已成功导出。',_0x5bb682(0x220)),toastr[_0x5bb682(0x220)]('【'+_0x5c0746+_0x5bb682(0x22a),_0x5bb682(0x1f0));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x2fa89f){const _0x18cb6c=_0x26d07d,_0x5efaac=document['createElement']('input');_0x5efaac[_0x18cb6c(0x26a)]=_0x18cb6c(0x1c3),_0x5efaac[_0x18cb6c(0x1d4)]=_0x18cb6c(0x1c2),_0x5efaac[_0x18cb6c(0x234)]=_0x4015db=>{const _0x5bce8b=_0x18cb6c,_0x332a89=_0x4015db[_0x5bce8b(0x245)]['files'][0x0];if(!_0x332a89)return;const _0x3dbaea=new FileReader();_0x3dbaea['onload']=_0x246d5d=>{const _0x5adbc1=_0x5bce8b;try{const _0x2d5ec9=JSON[_0x5adbc1(0x208)](_0x246d5d[_0x5adbc1(0x245)][_0x5adbc1(0x236)]);if(!_0x2d5ec9[_0x5adbc1(0x21a)]||!Array['isArray'](_0x2d5ec9[_0x5adbc1(0x24d)]))throw new Error(_0x5adbc1(0x1ee));const _0x23caef=window['confirm'](_0x5adbc1(0x1f6));if(!_0x23caef){log(_0x5adbc1(0x1cb),_0x5adbc1(0x1f2)),toastr['info']('导入操作已取消。');return;}if(_0x2d5ec9['version']===_0x5adbc1(0x23c))saveBatchFillerRuleTemplate(_0x2d5ec9[_0x5adbc1(0x1f9)]),saveBatchFillerFlowTemplate(_0x2d5ec9[_0x5adbc1(0x1e8)]),saveAiTemplate(_0x2d5ec9['injectionFlowTemplate']);else{if(_0x2d5ec9[_0x5adbc1(0x26d)]!==undefined&&_0x2d5ec9[_0x5adbc1(0x1dc)]!==undefined)saveBatchFillerRuleTemplate(_0x2d5ec9[_0x5adbc1(0x26d)]),saveBatchFillerFlowTemplate(_0x2d5ec9[_0x5adbc1(0x1dc)]),saveAiTemplate(_0x2d5ec9['aiFlowTemplate']);else{if(_0x2d5ec9['aiTemplate'])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x2d5ec9[_0x5adbc1(0x1e6)]),saveAiTemplate(_0x2d5ec9['aiTemplate']);else throw new Error(_0x5adbc1(0x1f5));}}const _0x177aec=_0x2d5ec9[_0x5adbc1(0x24d)];_0x177aec['forEach'](_0x5e3a68=>{const _0x250e15=_0x5adbc1;if(_0x5e3a68[_0x250e15(0x230)]===undefined||_0x5e3a68[_0x250e15(0x1b5)]===undefined||_0x5e3a68[_0x250e15(0x241)]===undefined)throw new Error(_0x250e15(0x25c)+JSON['stringify'](_0x5e3a68));if(_0x5e3a68[_0x250e15(0x226)]===undefined)_0x5e3a68[_0x250e15(0x226)]='无';if(_0x5e3a68[_0x250e15(0x1c9)]===undefined)_0x5e3a68[_0x250e15(0x1c9)]='允许';if(_0x5e3a68[_0x250e15(0x1eb)]===undefined)_0x5e3a68[_0x250e15(0x1eb)]='允许';if(_0x5e3a68['rule_update']===undefined)_0x5e3a68[_0x250e15(0x26b)]='允许';}),setMemoryState(_0x177aec);const _0x482018=getContext();if(_0x482018[_0x5adbc1(0x1e3)]&&_0x482018[_0x5adbc1(0x1e3)][_0x5adbc1(0x1ed)]>0x0){const _0x36deb7=_0x482018[_0x5adbc1(0x1e3)][_0x482018[_0x5adbc1(0x1e3)][_0x5adbc1(0x1ed)]-0x1];saveStateToMessage(getMemoryState(),_0x36deb7)&&(saveChat(),log(_0x5adbc1(0x1de),_0x5adbc1(0x220)));}else saveChatDebounced();log('预设已成功导入并应用。','success'),toastr['success'](_0x5adbc1(0x1c7),'导入成功'),typeof _0x2fa89f===_0x5adbc1(0x1d9)&&_0x2fa89f();}catch(_0x386b6f){log(_0x5adbc1(0x1cf)+_0x386b6f[_0x5adbc1(0x21d)],_0x5adbc1(0x244)),toastr[_0x5adbc1(0x244)](_0x5adbc1(0x1fc)+_0x386b6f[_0x5adbc1(0x21d)],'错误');}},_0x3dbaea[_0x5bce8b(0x1f3)](_0x332a89);},_0x5efaac['click']();}function _0x1ea2(){const _0x6847f8=['当日期、时间、地点、此地角色发生变化且1行都没有时。','parse','角色特征表格','未知操作','对某人很贵重或有特殊纪念意义的物品','物品描述',',\x20data=','”已删除。','extra','纯净预设','从预设模板生成默认表格...',']\x20末尾新增一行。','splice','“任务&命令&约定”表格','\x22\x20的表格已存在。','新列\x201','创建失败','744jrRRWB','\x20中插入行。','version','当本轮出现表中没有的新角色时,应插入','无法移动表格:索引\x20','message','表格\x20[','\x20行内容已更新。','success','新表格状态已强制写入最新消息并立即保存。','forEach','名为\x20\x22','mes','”已更新为“','note','冻结留存,不做任何删除操作。','开始时间','物品名称','】已开始下载。','无法创建表格:名称不能为空。','·\x20当物品发生变化时。\x0a·\x20当消耗品被使用却没有使用完时','stringify','\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','时空表格','name','【删除】:\x20','416264MBHKEM','·\x20当任务、约定有新的进展时\x0a·\x20任务或命令完成时\x0a·\x20任务,命令或约定被取消时。','onchange','”列的第\x20','result','当用户以剧情外的身份对你进行提示时、或者以括号的方式提醒你时。','废黜表格后的状态已强制写入最新消息并立即保存。','执行AI指令:\x20insertRow(tableIndex=','rowIndex,','记录已完成/进展中的任务、约定。','Amily2-Table-Preset-v3.0-separated_templates','createObjectURL','141779qwQSls','·\x20当角色和{{user}}的交互不再符合原有的记录时。\x0a·\x20当角色和{{user}}的关系改变时。','724110ilYwfi','rows','amily2_tables_data','25OhQRkl','error','target',']\x20的表头“','Amily2-Table-Preset-v2.0-full','当用户以括号的方式要求你进行修改时。','玩家提示','重要物品表格','click','·\x20思考如果有角色和{{user}}互动,应什么态度\x0a·\x20角色对{{user}}的态度保持在最突出的三条及三条以内','tables','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','\x22\x20已更新内存状态。','replace','AI指令错误:尝试在不存在的表格索引\x20','无法清空:当前表格状态为空。','toString','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','喜欢的人事物',',\x20rowIndex=','·\x20当角色的身体出现持久性变化时,例如伤痕。\x0a·\x20当角色有新的爱好,职业,喜欢的事物时\x0a·\x20当角色更换住所时\x0a·\x20当角色提到重要信息时。','执行AI指令时发生错误:\x20',']\x20中插入了一行。','AI\x20指令在表格\x20[','AI指令意图更新不存在的行\x20(rowIndex:\x20','导入的表格数据格式不正确:\x20','map','AI\x20指令更新了表格\x20[','【增加】:\x20','所有表格的剧情内容已清空。','其他重要信息','1672244tUcYYQ',']\x20已被成功废黜。','·\x20当本轮出现表中没有的新角色时,应新增。',']\x20中“','slice','push','重要原因','操作完成','type','rule_update','20766hryEMD','aiRuleTemplate','runner','地点(当前描写)','80PaKaqd','3815298zxCdqT','split','trim','fill','batch_filler_rule_template','headers','执行AI指令:\x20updateRow(tableIndex=','所有AI指令已成功执行完毕。','toISOString','6515nFVZAy','batch_filler_flow_template','createElement','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','准备执行从AI返回的\x20',']\x20的第\x20','任务名称','amily2_ai_template','除非用户要求,否则不允许删除。','.json','file','表格顺序调整后的状态已强制写入最新消息并立即保存。','填表完成','【修改】:\x20','预设已成功导入!','未在AI返回内容中找到有效的\x20\x20指令块。','rule_add','UI操作\x20\x22','用户取消了导入操作。','完整备份','没有可导出的表格数据。','结束时间','导入预设失败:\x20','\x20行。','join','...]','未在聊天记录中找到表格数据,使用默认模板。','accept','substring',']\x20新增了一行。','重要提示','href','function','some','角色与{{user}}社交表格','aiFlowTemplate','warn','导入的预设已强制写入最新消息并立即保存。','已根据AI的指示成功更新表格!','表格名称不能为空。','·\x20记录时空信息的表格,应保持在一行\x0a·\x20日期一览记录当前的日期(如几年几月几日)\x0a·\x20时间一览记录当前时段,但需注意不存在次日清晨,若有次日清晨请自动更新日期,且将时段更新为清晨','Amily2-','chat','角色名','\x20已在边界。','aiTemplate','·\x20当某人获得了贵重或有特殊意义的物品时\x0a·\x20当某个已有物品有了特殊意义时','batchFillerFlowTemplate','match','\x20中操作。','rule_delete','AI指令块为空,无需执行任何操作。','length','文件格式无效或缺少版本号/表格数据。','\x20条表格操作指令...','导出成功','缺少状态或目标消息,无法保存。','info','readAsText','72ImVpKT','预设中缺少必要的指令模板字段。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','\x0a*\x20','对{{user}}关系','batchFillerRuleTemplate','【说明】:\x0a','\x20条消息中找到基准表格数据。','导入失败:','\x20行已删除。','body','清空行数据后的状态已强制写入最新消息并立即保存。','Amily2-Table-Preset-v2.0-clean','消耗性物品完全使用完,或一次性物品被使用后。','执行AI指令:\x20deleteRow(tableIndex=','在第\x20',']\x20新增了一列。','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','appendChild'];_0x1ea2=function(){return _0x6847f8;};return _0x1ea2();} \ No newline at end of file +const _0x174347=_0x55f1;(function(_0x3190c9,_0x3306d5){const _0x5e31b7=_0x55f1,_0x21ab4d=_0x3190c9();while(!![]){try{const _0x3101c0=parseInt(_0x5e31b7(0x269))/0x1*(parseInt(_0x5e31b7(0x26e))/0x2)+-parseInt(_0x5e31b7(0x1f8))/0x3+-parseInt(_0x5e31b7(0x1c6))/0x4+-parseInt(_0x5e31b7(0x222))/0x5+parseInt(_0x5e31b7(0x239))/0x6+-parseInt(_0x5e31b7(0x1ad))/0x7*(parseInt(_0x5e31b7(0x27c))/0x8)+-parseInt(_0x5e31b7(0x204))/0x9*(-parseInt(_0x5e31b7(0x1b8))/0xa);if(_0x3101c0===_0x3306d5)break;else _0x21ab4d['push'](_0x21ab4d['shift']());}catch(_0x543fb8){_0x21ab4d['push'](_0x21ab4d['shift']());}}}(_0x892a,0xbf65f));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=_0x174347(0x26a);let currentTablesState=null;export function setMemoryState(_0xf1d69a){currentTablesState=_0xf1d69a;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x174347(0x1f1),'headers':['日期','时段','时间','地点',_0x174347(0x21c)],'note':_0x174347(0x1b4),'rule_add':'此表不存在任何一行时','rule_delete':_0x174347(0x265),'rule_update':_0x174347(0x272),'rows':[]},{'name':_0x174347(0x20d),'headers':[_0x174347(0x201),'外貌','身体','衣着','性格','身份','职业',_0x174347(0x276),'对态度','爱好','住所',_0x174347(0x1b5)],'note':_0x174347(0x1fa),'rule_add':_0x174347(0x262),'rule_delete':_0x174347(0x1e1),'rule_update':_0x174347(0x22a),'rows':[]},{'name':_0x174347(0x225),'headers':['任务名','类型','详情','状态',_0x174347(0x244),'地点','结果',_0x174347(0x230),_0x174347(0x1e7)],'note':_0x174347(0x1d2),'rule_add':_0x174347(0x26d),'rule_delete':_0x174347(0x1d7),'rule_update':_0x174347(0x22c),'rows':[]},{'name':_0x174347(0x1ff),'headers':['物品名','类型','详情','状态','拥有者',_0x174347(0x217)],'note':'对某人很贵重或有特殊纪念意义的物品','rule_add':_0x174347(0x211),'rule_delete':'消耗品彻底使用完后/一次性物品被使用后','rule_update':_0x174347(0x248),'rows':[]},{'name':_0x174347(0x1f6),'headers':['类型',_0x174347(0x23e)],'note':_0x174347(0x1f3),'rule_add':'上层叙事者在第四面墙外对故事或游戏进行提示、要求、命令时/上层叙事者使用括号包裹提示、要求、命令时','rule_delete':_0x174347(0x219),'rule_update':_0x174347(0x1bc),'rows':[]}]};function getDefaultTables(){const _0x2eda37=_0x174347;return log(_0x2eda37(0x1b7),_0x2eda37(0x221)),JSON['parse'](JSON[_0x2eda37(0x279)](defaultTemplate[_0x2eda37(0x250)]));}export function loadTables(_0x9033b7=-0x1){const _0x52a20d=_0x174347,_0x2842aa=getContext();if(!_0x2842aa||!_0x2842aa[_0x52a20d(0x267)]||_0x2842aa[_0x52a20d(0x267)][_0x52a20d(0x1e9)]===0x0)return currentTablesState=getDefaultTables(),currentTablesState;const _0xea8b4c=_0x9033b7===-0x1?_0x2842aa[_0x52a20d(0x267)][_0x52a20d(0x1e9)]-0x1:_0x9033b7-0x1;if(_0xea8b4c<0x0)return currentTablesState=getDefaultTables(),currentTablesState;for(let _0x40bccc=_0xea8b4c;_0x40bccc>=0x0;_0x40bccc--){const _0x213376=_0x2842aa[_0x52a20d(0x267)][_0x40bccc];if(_0x213376[_0x52a20d(0x1ae)]&&_0x213376[_0x52a20d(0x1ae)][TABLE_DATA_KEY]){log(_0x52a20d(0x1d8)+_0x40bccc+_0x52a20d(0x1ed),_0x52a20d(0x221));let _0x74546f=JSON[_0x52a20d(0x25e)](JSON['stringify'](_0x213376[_0x52a20d(0x1ae)][TABLE_DATA_KEY]));return _0x74546f[_0x52a20d(0x207)](_0x4ccbd8=>{const _0x4f0b6c=_0x52a20d;if(_0x4ccbd8[_0x4f0b6c(0x27d)]===undefined)_0x4ccbd8[_0x4f0b6c(0x27d)]='无';if(_0x4ccbd8[_0x4f0b6c(0x237)]===undefined)_0x4ccbd8[_0x4f0b6c(0x237)]='允许';if(_0x4ccbd8['rule_delete']===undefined)_0x4ccbd8[_0x4f0b6c(0x257)]='允许';if(_0x4ccbd8[_0x4f0b6c(0x259)]===undefined)_0x4ccbd8[_0x4f0b6c(0x259)]='允许';}),currentTablesState=_0x74546f,currentTablesState;}}return log('未在聊天记录中找到表格数据,使用默认模板。',_0x52a20d(0x221)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x471639,_0x453189){const _0x396716=_0x174347;if(!_0x471639||!_0x453189)return log('缺少状态或目标消息,无法保存。','error'),![];return!_0x453189[_0x396716(0x1ae)]&&(_0x453189[_0x396716(0x1ae)]={}),_0x453189[_0x396716(0x1ae)][TABLE_DATA_KEY]=JSON[_0x396716(0x25e)](JSON[_0x396716(0x279)](_0x471639)),log(_0x396716(0x1de)+_0x453189[_0x396716(0x1f4)]['substring'](0x0,0x14)+_0x396716(0x1ea),'info'),!![];}export function saveTables(_0x3f5393='未知操作'){const _0x405cd0=_0x174347;return log(_0x405cd0(0x261)+_0x3f5393+_0x405cd0(0x228),_0x405cd0(0x221)),!![];}export function deleteColumn(_0x507748,_0x3fdda9){const _0x25af31=_0x174347,_0x17eb42=getMemoryState();if(!_0x17eb42[_0x507748]||_0x3fdda9<0x0||_0x3fdda9>=_0x17eb42[_0x507748]['headers'][_0x25af31(0x1e9)]){log(_0x25af31(0x232)+_0x507748+_0x25af31(0x277)+_0x3fdda9+_0x25af31(0x1ac),_0x25af31(0x1b3));return;}_0x17eb42[_0x507748]['headers'][_0x25af31(0x252)](_0x3fdda9,0x1),_0x17eb42[_0x507748]['rows'][_0x25af31(0x207)](_0x504ba0=>{const _0xf57f8c=_0x25af31;_0x504ba0[_0xf57f8c(0x1e9)]>_0x3fdda9&&_0x504ba0['splice'](_0x3fdda9,0x1);}),log(_0x25af31(0x255)+_0x507748+_0x25af31(0x223)+(_0x3fdda9+0x1)+_0x25af31(0x226),_0x25af31(0x1e4)),saveTables(_0x17eb42);}function _0x55f1(_0x513d16,_0x1c6409){const _0x892a10=_0x892a();return _0x55f1=function(_0x55f1d4,_0x423f52){_0x55f1d4=_0x55f1d4-0x1ab;let _0x502572=_0x892a10[_0x55f1d4];return _0x502572;},_0x55f1(_0x513d16,_0x1c6409);}export function moveRow(_0x373b2f,_0x3b5f1a,_0x1e8580){const _0x31388d=_0x174347,_0x47d64c=getMemoryState(),_0x38971e=_0x47d64c[_0x373b2f];if(!_0x38971e||_0x3b5f1a<0x0||_0x3b5f1a>=_0x38971e[_0x31388d(0x278)][_0x31388d(0x1e9)])return;const _0x3fa126=_0x1e8580==='up'?_0x3b5f1a-0x1:_0x3b5f1a+0x1;if(_0x3fa126<0x0||_0x3fa126>=_0x38971e['rows'][_0x31388d(0x1e9)])return;const [_0x3fb970]=_0x38971e['rows'][_0x31388d(0x252)](_0x3b5f1a,0x1);_0x38971e[_0x31388d(0x278)]['splice'](_0x3fa126,0x0,_0x3fb970),log(_0x31388d(0x238)+_0x373b2f+_0x31388d(0x223)+(_0x3b5f1a+0x1)+_0x31388d(0x1e5)+(_0x3fa126+0x1)+'\x20行。',_0x31388d(0x1e4)),saveTables(_0x47d64c);}export function insertRow(_0x536b57,_0xe9b135,_0x21411b=_0x174347(0x27a)){const _0x266fd4=_0x174347,_0x3ac742=getMemoryState(),_0x8d4665=_0x3ac742[_0x536b57];if(!_0x8d4665){log(_0x266fd4(0x208)+_0x536b57+_0x266fd4(0x253),_0x266fd4(0x1b3));return;}const _0x2934c0=new Array(_0x8d4665[_0x266fd4(0x23f)][_0x266fd4(0x1e9)])[_0x266fd4(0x202)]('');if(typeof _0xe9b135===_0x266fd4(0x215)&&_0xe9b135!==null)for(const _0x1f3d64 in _0xe9b135){const _0x503697=parseInt(_0x1f3d64,0xa);!isNaN(_0x503697)&&_0x503697<_0x2934c0[_0x266fd4(0x1e9)]&&(_0x2934c0[_0x503697]=_0xe9b135[_0x1f3d64]);}let _0x5ea4f4;typeof _0xe9b135===_0x266fd4(0x1fc)?_0x5ea4f4=_0x21411b===_0x266fd4(0x1e6)?_0xe9b135:_0xe9b135+0x1:_0x5ea4f4=_0x8d4665[_0x266fd4(0x278)][_0x266fd4(0x1e9)];if(_0x5ea4f4<0x0)_0x5ea4f4=0x0;if(_0x5ea4f4>_0x8d4665[_0x266fd4(0x278)][_0x266fd4(0x1e9)])_0x5ea4f4=_0x8d4665['rows'][_0x266fd4(0x1e9)];_0x8d4665[_0x266fd4(0x278)]['splice'](_0x5ea4f4,0x0,_0x2934c0),log(_0x266fd4(0x254)+_0x8d4665['name']+'\x20(索引\x20'+_0x536b57+_0x266fd4(0x233)+(_0x5ea4f4+0x1)+_0x266fd4(0x24a),'success');const _0x518414=getContext();if(_0x518414[_0x266fd4(0x267)]&&_0x518414['chat'][_0x266fd4(0x1e9)]>0x0){const _0x592706=_0x518414[_0x266fd4(0x267)][_0x518414[_0x266fd4(0x267)]['length']-0x1];if(saveStateToMessage(_0x3ac742,_0x592706)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x3f98ae){const _0x69155=_0x174347;if(!currentTablesState||!currentTablesState[_0x3f98ae])return;const _0x4d29cb=currentTablesState[_0x3f98ae],_0x3a9447=_0x4d29cb[_0x69155(0x23f)]['length'],_0xffcc12=Array(_0x3a9447)['fill']('');_0x4d29cb[_0x69155(0x278)][_0x69155(0x1f7)](_0xffcc12);const _0x1c3a33=_0x69155(0x26b)+_0x4d29cb[_0x69155(0x25c)]+_0x69155(0x236);log(_0x1c3a33,'info');const _0x57921e=getContext();if(_0x57921e['chat']&&_0x57921e[_0x69155(0x267)]['length']>0x0){const _0x4633a5=_0x57921e[_0x69155(0x267)][_0x57921e['chat'][_0x69155(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x4633a5)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x3bd0ad){const _0x256dcc=_0x174347;if(!currentTablesState||!currentTablesState[_0x3bd0ad])return;const _0x431204=currentTablesState[_0x3bd0ad],_0x2cb617=_0x256dcc(0x227)+(_0x431204['headers'][_0x256dcc(0x1e9)]+0x1);_0x431204[_0x256dcc(0x23f)][_0x256dcc(0x1f7)](_0x2cb617),_0x431204[_0x256dcc(0x278)][_0x256dcc(0x207)](_0x246e2c=>_0x246e2c[_0x256dcc(0x1f7)](''));const _0x7cfc6='表格\x20['+_0x431204[_0x256dcc(0x25c)]+_0x256dcc(0x264);log(_0x7cfc6,_0x256dcc(0x221));const _0x480115=getContext();if(_0x480115[_0x256dcc(0x267)]&&_0x480115['chat'][_0x256dcc(0x1e9)]>0x0){const _0x2fa395=_0x480115[_0x256dcc(0x267)][_0x480115['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x2fa395)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x440fca,_0x3ef843,_0x130db9){const _0x2eb36f=_0x174347;if(!currentTablesState||!currentTablesState[_0x440fca]||currentTablesState[_0x440fca][_0x2eb36f(0x23f)][_0x3ef843]===undefined)return;const _0x3f3924=currentTablesState[_0x440fca][_0x2eb36f(0x25c)],_0x3191fc=currentTablesState[_0x440fca][_0x2eb36f(0x23f)][_0x3ef843];currentTablesState[_0x440fca]['headers'][_0x3ef843]=_0x130db9;const _0x2ad985=_0x2eb36f(0x26b)+_0x3f3924+_0x2eb36f(0x22b)+_0x3191fc+_0x2eb36f(0x231)+_0x130db9+'”。';log(_0x2ad985,_0x2eb36f(0x221));const _0x26551e=getContext();if(_0x26551e[_0x2eb36f(0x267)]&&_0x26551e[_0x2eb36f(0x267)]['length']>0x0){const _0xd1a4bf=_0x26551e[_0x2eb36f(0x267)][_0x26551e['chat'][_0x2eb36f(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0xd1a4bf)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0xe6063d,_0xb6476c){const _0x591bd4=_0x174347;if(!currentTablesState||!currentTablesState[_0xe6063d]||!currentTablesState[_0xe6063d]['rows'][_0xb6476c])return;const _0xad770c=currentTablesState[_0xe6063d]['name'];currentTablesState[_0xe6063d][_0x591bd4(0x278)]['splice'](_0xb6476c,0x1);const _0x5a8a15='表格\x20['+_0xad770c+']\x20的第\x20'+(_0xb6476c+0x1)+_0x591bd4(0x246);log(_0x5a8a15,_0x591bd4(0x221));const _0x19dde8=getContext();if(_0x19dde8[_0x591bd4(0x267)]&&_0x19dde8['chat']['length']>0x0){const _0x830b0f=_0x19dde8[_0x591bd4(0x267)][_0x19dde8[_0x591bd4(0x267)][_0x591bd4(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x830b0f)){await saveChat();return;}}await saveChatDebounced();}export function insertColumn(_0x52cad3,_0x1e2fc2,_0x308e3d){const _0x51eeb2=_0x174347;if(!currentTablesState||!currentTablesState[_0x52cad3])return;const _0x2018f5=currentTablesState[_0x52cad3],_0x445358=_0x308e3d===_0x51eeb2(0x26f)?_0x1e2fc2:_0x1e2fc2+0x1,_0x1ac33c='新列';_0x2018f5[_0x51eeb2(0x23f)][_0x51eeb2(0x252)](_0x445358,0x0,_0x1ac33c),_0x2018f5['rows'][_0x51eeb2(0x207)](_0x1d4640=>_0x1d4640[_0x51eeb2(0x252)](_0x445358,0x0,''));const _0x1a069b=_0x51eeb2(0x26b)+_0x2018f5[_0x51eeb2(0x25c)]+_0x51eeb2(0x200)+(_0x1e2fc2+0x1)+_0x51eeb2(0x260)+(_0x308e3d===_0x51eeb2(0x26f)?'左侧':'右侧')+'插入了新列。';log(_0x1a069b,'info');const _0x3722a8=getContext();if(_0x3722a8[_0x51eeb2(0x267)]&&_0x3722a8['chat']['length']>0x0){const _0x3bf7f6=_0x3722a8[_0x51eeb2(0x267)][_0x3722a8['chat'][_0x51eeb2(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x3bf7f6)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x43dfed,_0x3713c4,_0x5ca81a){const _0x123855=_0x174347;if(!currentTablesState||!currentTablesState[_0x43dfed])return;const _0x200a0b=currentTablesState[_0x43dfed],_0x41864e=_0x200a0b[_0x123855(0x23f)],_0x1ad00b=_0x200a0b[_0x123855(0x278)],_0x27d0c7=_0x5ca81a===_0x123855(0x26f)?_0x3713c4-0x1:_0x3713c4+0x1;if(_0x27d0c7<0x0||_0x27d0c7>=_0x41864e[_0x123855(0x1e9)]){log(_0x123855(0x1ef)+_0x3713c4+_0x123855(0x1f0),_0x123855(0x258));return;}const [_0x1a50be]=_0x41864e[_0x123855(0x252)](_0x3713c4,0x1);_0x41864e[_0x123855(0x252)](_0x27d0c7,0x0,_0x1a50be),_0x1ad00b[_0x123855(0x207)](_0x4eb13a=>{const _0x2bf39d=_0x123855,[_0x574595]=_0x4eb13a[_0x2bf39d(0x252)](_0x3713c4,0x1);_0x4eb13a[_0x2bf39d(0x252)](_0x27d0c7,0x0,_0x574595);});const _0x34875f='表格\x20['+_0x200a0b['name']+_0x123855(0x21b)+_0x1a50be+'”已向'+(_0x5ca81a===_0x123855(0x26f)?'左':'右')+_0x123855(0x206);log(_0x34875f,_0x123855(0x221));const _0x25b0b9=getContext();if(_0x25b0b9[_0x123855(0x267)]&&_0x25b0b9[_0x123855(0x267)][_0x123855(0x1e9)]>0x0){const _0x1a6b87=_0x25b0b9[_0x123855(0x267)][_0x25b0b9[_0x123855(0x267)][_0x123855(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x1a6b87)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x1fbd93){const _0x47df25=_0x174347;if(!currentTablesState||!currentTablesState[_0x1fbd93])return;const _0x3c2945=currentTablesState[_0x1fbd93]['name'];currentTablesState['splice'](_0x1fbd93,0x1);const _0x53c36c=_0x47df25(0x26b)+_0x3c2945+_0x47df25(0x203);log(_0x53c36c,_0x47df25(0x1e4));const _0x50c5d8=getContext();if(_0x50c5d8[_0x47df25(0x267)]&&_0x50c5d8[_0x47df25(0x267)]['length']>0x0){const _0x3df964=_0x50c5d8['chat'][_0x50c5d8[_0x47df25(0x267)][_0x47df25(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x3df964)){saveChat(),log(_0x47df25(0x1dc),_0x47df25(0x1e4));return;}}log(_0x47df25(0x1c5),_0x47df25(0x1b3)),saveChatDebounced();}export function addTable(_0x3caa4b){const _0x5e37ef=_0x174347;if(!_0x3caa4b||!_0x3caa4b[_0x5e37ef(0x1ee)]()){log(_0x5e37ef(0x1d5),_0x5e37ef(0x1b3)),toastr[_0x5e37ef(0x1b3)](_0x5e37ef(0x20a),_0x5e37ef(0x210));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x5e37ef(0x24c)](_0x12c2b5=>_0x12c2b5[_0x5e37ef(0x25c)]===_0x3caa4b[_0x5e37ef(0x1ee)]())){log(_0x5e37ef(0x1b9)+_0x3caa4b+_0x5e37ef(0x247),'error'),toastr['error'](_0x5e37ef(0x1dd)+_0x3caa4b+'\x22\x20的表格已存在。','创建失败');return;}const _0x3357e6={'name':_0x3caa4b['trim'](),'headers':[_0x5e37ef(0x270)],'rows':[],'note':_0x5e37ef(0x1e0),'rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState[_0x5e37ef(0x1f7)](_0x3357e6);const _0x468163=_0x5e37ef(0x1be)+_0x3caa4b[_0x5e37ef(0x1ee)]()+']。';log(_0x468163,'success');const _0x397d5c=getContext();if(_0x397d5c[_0x5e37ef(0x267)]&&_0x397d5c[_0x5e37ef(0x267)][_0x5e37ef(0x1e9)]>0x0){const _0x2f3d96=_0x397d5c[_0x5e37ef(0x267)][_0x397d5c[_0x5e37ef(0x267)][_0x5e37ef(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x2f3d96)){saveChat(),log(_0x5e37ef(0x1c8),'success');return;}}log(_0x5e37ef(0x1af),_0x5e37ef(0x1b3)),saveChatDebounced();}export function moveTable(_0x2f7cf0,_0x576cc9){const _0x4ea4d3=_0x174347;if(!currentTablesState||!currentTablesState[_0x2f7cf0])return;const _0x4d3f2d=_0x576cc9==='up'?_0x2f7cf0-0x1:_0x2f7cf0+0x1;if(_0x4d3f2d<0x0||_0x4d3f2d>=currentTablesState['length']){log('无法移动表格:索引\x20'+_0x2f7cf0+_0x4ea4d3(0x1f0),_0x4ea4d3(0x258));return;}const _0x5210f1=currentTablesState[_0x2f7cf0];currentTablesState[_0x2f7cf0]=currentTablesState[_0x4d3f2d],currentTablesState[_0x4d3f2d]=_0x5210f1;const _0x4bdbcb='表格\x20['+_0x5210f1[_0x4ea4d3(0x25c)]+_0x4ea4d3(0x220);log(_0x4bdbcb,_0x4ea4d3(0x1e4));const _0x3d3442=getContext();if(_0x3d3442[_0x4ea4d3(0x267)]&&_0x3d3442[_0x4ea4d3(0x267)][_0x4ea4d3(0x1e9)]>0x0){const _0x962d97=_0x3d3442['chat'][_0x3d3442[_0x4ea4d3(0x267)][_0x4ea4d3(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x962d97)){saveChat(),log(_0x4ea4d3(0x1c1),_0x4ea4d3(0x1e4));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!',_0x4ea4d3(0x1b3)),saveChatDebounced();}export function updateTableRules(_0x1b211b,_0x21d5a1){const _0x526471=_0x174347;if(!currentTablesState||!currentTablesState[_0x1b211b])return;const _0xb98ec=currentTablesState[_0x1b211b];_0xb98ec['note']=_0x21d5a1[_0x526471(0x27d)],_0xb98ec[_0x526471(0x237)]=_0x21d5a1[_0x526471(0x237)],_0xb98ec[_0x526471(0x257)]=_0x21d5a1[_0x526471(0x257)],_0xb98ec[_0x526471(0x259)]=_0x21d5a1[_0x526471(0x259)];const _0x2dbb23='表格\x20['+_0xb98ec[_0x526471(0x25c)]+_0x526471(0x234);log(_0x2dbb23,'info');const _0x65a017=getContext();if(_0x65a017[_0x526471(0x267)]&&_0x65a017[_0x526471(0x267)][_0x526471(0x1e9)]>0x0){const _0x3236ca=_0x65a017[_0x526471(0x267)][_0x65a017[_0x526471(0x267)][_0x526471(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x3236ca)){saveChat();return;}}saveChatDebounced();}function _0x892a(){const _0x46ee7a=['与关系','\x20中找不到索引为\x20','rows','stringify','below','files','763160MnHBaL','note','所有AI指令已成功执行完毕。','\x20的列。','98BSIvgW','extra','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',',\x20rowIndex=','Amily2-','导入的预设已强制写入最新消息并立即保存。','error','记录时空信息的表格,应保持在一行/日期信息应精确到至几年几月几日(如果日期未知,应随便胡编一个日期)/时段规定(凌晨:0时至5时;早晨:5时至8时;上午:8时至11时;中午:11时至13时;下午:13时至16时;傍晚:16时至19时;晚上:19时至24时)/时间信息应精确至几时几分(如果时间未知,应随便胡编一个时间)/地点应为当前叙述的地点,且约精确越好','其他重要信息','appendChild','从预设模板生成默认表格...','13592730IwNFpt','无法创建表格:名为\x20\x22','join','所有表格的行数据已在内存中清空。','上层叙事者明确要求需要修改时','AI指令块为空,无需执行任何操作。','已成功创建新表格:[','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','createElement','表格顺序调整后的状态已强制写入最新消息并立即保存。','toISOString',']\x20的第\x20','执行AI指令:\x20updateRow(tableIndex=','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','1228628mRzVrJ','\x20行。','新表格状态已强制写入最新消息并立即保存。','createObjectURL','fromCharCode','【删除】:\x20','map','href','filter','准备执行从AI返回的\x20','getPrototypeOf','amily2-force-ui-reload','记录已完成或进展中重要、关键事情的任务、命令、约定/禁止记录不重要、不关键的事情/开始和结束时间应精确至具体日期、时段、时间','body',']\x20末尾新增一行。','无法创建表格:名称不能为空。','预设已成功导入!','冻结留存/禁止删除','在第\x20','download','纯净预设','执行AI指令时出错:\x20','废黜表格后的状态已强制写入最新消息并立即保存。','名为\x20\x22','表格状态已准备写入消息\x20[','removeChild','这是一个新创建的表格。','角色明确死亡且以后绝不会再出场时','执行AI指令:\x20deleteRow(tableIndex=','导出成功','success','\x20行移动到第\x20','above','结束时间','click','length','...]','【增加】:\x20','constructor','\x20条消息中找到基准表格数据。','trim','无法移动列:索引\x20','\x20已在边界。','时空栏','aiRuleTemplate','上层叙事者留下的各种提示、要求、命令/禁止私自增、删、改','mes','input','公告栏','push','3840102Mhgpei','revokeObjectURL','角色的基础信息csv表格,思考本轮有否有其中的角色,他应作出什么反应/外貌指:五官、面容、肤色、发型等/身体指:体型、身材、肤色、罩杯等/衣着指:身上的穿戴、服装的式样等/身份指:出身、社会地位等/职业指职责、岗位等/与关系指:角色与的社会关系(如:父亲、母亲、姐姐、妻子等)/爱好指:拥有浓厚兴趣和喜爱的某种事物、人物、活动/住所指:经常居住地','Amily2-Table-Preset-v3.0-separated_templates','number','【修改】:\x20','导入操作已取消。','物品栏',']\x20在第\x20','角色名','fill',']\x20已被成功废黜。','27ElbXWj','batchFillerRuleTemplate','移动。','forEach','插入行失败:找不到索引为\x20','】已成功导出。','表格名称不能为空。','文件格式无效或缺少版本号/表格数据。','\x0a---\x0a','角色栏','application/json','amily2_ai_template','创建失败','当某人获得贵重或含有特殊意义的物品时/当某个已有物品获得特殊意义时','执行失败','导入成功','操作完成','object','onchange','重要原因','未在AI返回内容中找到有效的\x20\x20指令块。','上层叙事者明确要求需要删除时','toString',']\x20的列“','此地角色','aiTemplate','导入失败:','AI返回内容为空,无法更新表格。',']\x20的顺序已调整。','info','6650510xXfnLk','\x20的第\x20','\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','任务栏','\x20列。','新列\x20','\x22\x20已更新内存状态。','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','当角色的外貌、身体、衣着出现持久性变化时(如:五官长开、伤痕、减肥、染发、更衣、衣物破损等)/当角色有新的身份、职业、爱好时/当角色和的关系改变时/当角色更换住所时/当角色提到重要信息时',']\x20的表头“','当大家赴约时/任务或命令有进展、完成、失败时/任务、命令、约定被取消时','batchFillerFlowTemplate','rowIndex,','\x0a*\x20','开始时间','”已更新为“','删除列失败:在表格\x20',')\x20的第\x20',']\x20的规则已更新。','【说明】:\x0a',']\x20新增了一行。','rule_add','成功将表格\x20','293340BUHtKT','清空行数据后的状态已强制写入最新消息并立即保存。','slice','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','target','具体描述','headers','dispatchEvent','message','readAsText','batch_filler_rule_template','执行者','onload','\x20行已删除。','\x22\x20的表格已存在。','物品发生变化时/消耗品产生损耗时','】已开始下载。','\x20行位置插入了新行。','AI指令错误:尝试在不存在的表格索引\x20','some',',\x20data=','无法清空:当前表格状态为空。','runner','tables','aiFlowTemplate','splice','\x20的表格。','成功在表格\x20','成功删除了表格\x20','导入的表格数据格式不正确:\x20','rule_delete','warn','rule_update','Amily2-Table-Preset-v2.0-full','导入预设失败:\x20','name','\x20中操作。','parse','injectionFlowTemplate','\x20列的','UI操作\x20\x22','当本轮出现表中没有的新角色时,应插入','isArray',']\x20新增了一列。','此表大于一行时应删除多余行','result','chat','batch_filler_flow_template','47899XKeBdU','amily2_tables_data','表格\x20[','.json','当特定时间约定一起去做某件重要、关键的事时/某角色收到做某件重要、关键事情的命令或任务时/某角色确定执行某件重要、关键的事时','38buETgn','left','新列\x201','accept','当叙述的场景、时间、人物变更时','function','version','AI\x20指令更新了表格\x20['];_0x892a=function(){return _0x46ee7a;};return _0x892a();}export function updateRow(_0x5ea083,_0x2bb3bd,_0x1d5360){const _0x3cca5b=_0x174347;if(!currentTablesState||!currentTablesState[_0x5ea083]){log(_0x3cca5b(0x24b)+_0x5ea083+_0x3cca5b(0x25d),_0x3cca5b(0x1b3));return;}const _0x6a4f26=currentTablesState[_0x5ea083];if(_0x2bb3bd>=_0x6a4f26[_0x3cca5b(0x278)][_0x3cca5b(0x1e9)]){log('AI指令意图更新不存在的行\x20(rowIndex:\x20'+_0x2bb3bd+'),已智能转换为在表格\x20['+_0x6a4f26[_0x3cca5b(0x25c)]+_0x3cca5b(0x1d4),_0x3cca5b(0x258)),insertRow(_0x5ea083,_0x1d5360);return;}const _0x28b09b=_0x6a4f26[_0x3cca5b(0x278)][_0x2bb3bd];for(const _0x4b6844 in _0x1d5360){const _0x1335ed=parseInt(_0x4b6844,0xa);_0x1335ed<_0x28b09b[_0x3cca5b(0x1e9)]&&(_0x28b09b[_0x1335ed]=_0x1d5360[_0x1335ed]);}const _0x3e7ee5=_0x3cca5b(0x275)+_0x6a4f26[_0x3cca5b(0x25c)]+_0x3cca5b(0x1c3)+(_0x2bb3bd+0x1)+_0x3cca5b(0x1c7);log(_0x3e7ee5,_0x3cca5b(0x221));const _0x1c1ec5=getContext();if(_0x1c1ec5[_0x3cca5b(0x267)]&&_0x1c1ec5[_0x3cca5b(0x267)][_0x3cca5b(0x1e9)]>0x0){const _0x134dcd=_0x1c1ec5['chat'][_0x1c1ec5[_0x3cca5b(0x267)][_0x3cca5b(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x134dcd)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x311911=_0x174347;if(!currentTablesState){log(_0x311911(0x24e),'error');return;}currentTablesState[_0x311911(0x207)](_0x284b19=>{const _0x57d3ef=_0x311911;_0x284b19[_0x57d3ef(0x278)]=[];}),log(_0x311911(0x1bb),'warn');const _0x19a767=getContext();if(_0x19a767[_0x311911(0x267)]&&_0x19a767[_0x311911(0x267)][_0x311911(0x1e9)]>0x0){const _0x5e0177=_0x19a767['chat'][_0x19a767[_0x311911(0x267)][_0x311911(0x1e9)]-0x1];if(saveStateToMessage(currentTablesState,_0x5e0177)){saveChat(),log(_0x311911(0x23a),'success'),toastr['success']('所有表格的剧情内容已清空。',_0x311911(0x214));return;}}log(_0x311911(0x229),_0x311911(0x1b3)),saveChatDebounced();}export function convertTablesToCsvString(){const _0x1ae518=_0x174347;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x44fa5e='';return currentTablesState[_0x1ae518(0x207)]((_0x5f4621,_0x4166d0)=>{const _0x57df55=_0x1ae518;_0x44fa5e+=_0x57df55(0x22f)+_0x4166d0+':'+_0x5f4621['name']+'\x0a',_0x44fa5e+=_0x57df55(0x235)+(_0x5f4621[_0x57df55(0x27d)]||'无')+'\x0a';const _0x159b43=_0x5f4621[_0x57df55(0x25c)]['replace'](/\s/g,'')+'内容';_0x44fa5e+='<'+_0x159b43+'>\x0a';const _0x15aca8=_0x5f4621[_0x57df55(0x23f)][_0x57df55(0x1cc)]((_0x38c72e,_0x4b1e1d)=>_0x4b1e1d+':'+_0x38c72e)['join'](',');_0x44fa5e+=_0x57df55(0x22e)+_0x15aca8+'\x0a',_0x5f4621['rows'][_0x57df55(0x207)]((_0x56f0e0,_0x32a01d)=>{const _0xa80e58=_0x57df55;if(Array['isArray'](_0x56f0e0)){const _0xed2b25=_0x56f0e0[_0xa80e58(0x1cc)](_0x32fcb8=>{const _0x381d4b=_0xa80e58;return _0x32fcb8===null||_0x32fcb8===undefined||_0x32fcb8===''?'未知':_0x32fcb8[_0x381d4b(0x21a)]();})[_0xa80e58(0x1ba)](',');_0x44fa5e+=_0x32a01d+','+_0xed2b25+'\x0a';}}),_0x44fa5e+='\x0a',_0x44fa5e+=_0x57df55(0x1eb)+(_0x5f4621[_0x57df55(0x237)]||'允许')+'\x0a',_0x44fa5e+=_0x57df55(0x1cb)+(_0x5f4621[_0x57df55(0x257)]||'允许')+'\x0a',_0x44fa5e+=_0x57df55(0x1fd)+(_0x5f4621['rule_update']||'允许')+'\x0a',_0x4166d0{const _0x56606d=_0x230066;_0x7d9a94+='\x0a<'+_0x3fdff6[_0x56606d(0x25c)]+'>\x0a';const _0xc5fb4=_0x3fdff6[_0x56606d(0x23f)][_0x56606d(0x1cc)]((_0x52ca2c,_0x2e64cd)=>String[_0x56606d(0x1ca)](0x41+_0x2e64cd)+':'+_0x52ca2c)['join'](',');_0x7d9a94+=_0xc5fb4+'\x0a',Array[_0x56606d(0x263)](_0x3fdff6[_0x56606d(0x278)])&&_0x3fdff6[_0x56606d(0x278)]['forEach']((_0xbfc234,_0xf0d34)=>{const _0x41c11e=_0x56606d;if(Array[_0x41c11e(0x263)](_0xbfc234)){const _0x46ac75=_0xbfc234[_0x41c11e(0x1ba)](',');_0x7d9a94+=_0xf0d34+0x1+':'+_0x46ac75+'\x0a';}}),_0x7d9a94+='\x0a';}),_0x7d9a94[_0x230066(0x1ee)]();}loadTables();export function getBatchFillerRuleTemplate(){const _0xff4d27=_0x174347;return extension_settings[extensionName]?.[_0xff4d27(0x243)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0xc3e41){const _0x5c176e=_0x174347;extension_settings[extensionName][_0x5c176e(0x243)]=_0xc3e41,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x4001f0=_0x174347;return extension_settings[extensionName]?.[_0x4001f0(0x268)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x120dce){extension_settings[extensionName]['batch_filler_flow_template']=_0x120dce,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x1bd9ba=_0x174347;return extension_settings[extensionName]?.[_0x1bd9ba(0x20f)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x5ac7a6){const _0x4d89be=_0x174347;if(!_0x5ac7a6){log(_0x4d89be(0x21f),_0x4d89be(0x258));return;}const _0x504082=_0x5ac7a6['match'](/([\s\S]*?)<\/Amily2Edit>/);if(!_0x504082||!_0x504082[0x1]){log(_0x4d89be(0x218),_0x4d89be(0x258));return;}let _0x53bb95=_0x504082[0x1]['replace'](//g,'')[_0x4d89be(0x1ee)]();if(!_0x53bb95){log(_0x4d89be(0x1bd),_0x4d89be(0x221));return;}const _0x2b972d=_0x53bb95['split']('\x0a')[_0x4d89be(0x1ce)](_0xbeff9=>_0xbeff9[_0x4d89be(0x1ee)]()!=='');log(_0x4d89be(0x1cf)+_0x2b972d[_0x4d89be(0x1e9)]+'\x20条表格操作指令...','info');const _0x21ff5b={'insertRow':(_0xff6294,_0x35d841)=>{const _0x1f9040=_0x4d89be;log('执行AI指令:\x20insertRow(tableIndex='+_0xff6294+_0x1f9040(0x24d)+JSON['stringify'](_0x35d841)+')',_0x1f9040(0x221)),insertRow(_0xff6294,_0x35d841);},'deleteRow':(_0x1e4a80,_0x59faff)=>{const _0x324e55=_0x4d89be;log(_0x324e55(0x1e2)+_0x1e4a80+_0x324e55(0x1b0)+_0x59faff+')','info'),deleteRow(_0x1e4a80,_0x59faff);},'updateRow':(_0x431518,_0x1a4aba,_0x2d94d5)=>{const _0x2bfbe7=_0x4d89be;log(_0x2bfbe7(0x1c4)+_0x431518+_0x2bfbe7(0x1b0)+_0x1a4aba+_0x2bfbe7(0x24d)+JSON[_0x2bfbe7(0x279)](_0x2d94d5)+')','info'),updateRow(_0x431518,_0x1a4aba,_0x2d94d5);}};try{const _0x1ad05a=Object[_0x4d89be(0x1d0)](async function(){})[_0x4d89be(0x1ec)],_0x15d6d8=new _0x1ad05a(_0x4d89be(0x24f),_0x4d89be(0x224)+_0x53bb95+_0x4d89be(0x1bf));await _0x15d6d8(_0x21ff5b),log(_0x4d89be(0x1ab),_0x4d89be(0x1e4)),toastr[_0x4d89be(0x1e4)]('已根据AI的指示成功更新表格!','填表完成'),document[_0x4d89be(0x240)](new CustomEvent(_0x4d89be(0x1d1)));}catch(_0x542373){log('执行AI指令时发生错误:\x20'+_0x542373['message'],'error'),toastr[_0x4d89be(0x1b3)](_0x4d89be(0x1db)+_0x542373[_0x4d89be(0x241)],_0x4d89be(0x212));}}export function saveAiTemplate(_0x3d4ef6){const _0x49c97b=_0x174347;extension_settings[extensionName][_0x49c97b(0x20f)]=_0x3d4ef6,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x51d1fc=![]){const _0x4ad87c=_0x174347;if(!currentTablesState){log('无法导出:当前表格状态为空。','error'),toastr[_0x4ad87c(0x1b3)]('没有可导出的表格数据。');return;}let _0x16bfb5,_0x1ab8c5,_0x3ba3cf;_0x51d1fc?(_0x16bfb5=JSON[_0x4ad87c(0x25e)](JSON[_0x4ad87c(0x279)](currentTablesState)),_0x1ab8c5=_0x4ad87c(0x25a),_0x3ba3cf='完整备份'):(_0x16bfb5=currentTablesState[_0x4ad87c(0x1cc)](_0x354f05=>({'name':_0x354f05[_0x4ad87c(0x25c)],'headers':_0x354f05[_0x4ad87c(0x23f)],'note':_0x354f05[_0x4ad87c(0x27d)],'rule_add':_0x354f05[_0x4ad87c(0x237)],'rule_delete':_0x354f05[_0x4ad87c(0x257)],'rule_update':_0x354f05[_0x4ad87c(0x259)],'rows':[]})),_0x1ab8c5='Amily2-Table-Preset-v2.0-clean',_0x3ba3cf=_0x4ad87c(0x1da));const _0x4b4fa5={'version':_0x4ad87c(0x1fb),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x16bfb5},_0x2b1017=new Blob([JSON[_0x4ad87c(0x279)](_0x4b4fa5,null,0x2)],{'type':_0x4ad87c(0x20e)}),_0x5449d2=URL[_0x4ad87c(0x1c9)](_0x2b1017),_0x10452a=document[_0x4ad87c(0x1c0)]('a');_0x10452a[_0x4ad87c(0x1cd)]=_0x5449d2,_0x10452a[_0x4ad87c(0x1d9)]=_0x4ad87c(0x1b1)+_0x3ba3cf+'-'+new Date()[_0x4ad87c(0x1c2)]()[_0x4ad87c(0x23b)](0x0,0xa)+_0x4ad87c(0x26c),document[_0x4ad87c(0x1d3)][_0x4ad87c(0x1b6)](_0x10452a),_0x10452a[_0x4ad87c(0x1e8)](),document[_0x4ad87c(0x1d3)][_0x4ad87c(0x1df)](_0x10452a),URL[_0x4ad87c(0x1f9)](_0x5449d2),log('【'+_0x3ba3cf+_0x4ad87c(0x209),_0x4ad87c(0x1e4)),toastr[_0x4ad87c(0x1e4)]('【'+_0x3ba3cf+_0x4ad87c(0x249),_0x4ad87c(0x1e3));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x46e9d8){const _0x430763=_0x174347,_0x873833=document['createElement'](_0x430763(0x1f5));_0x873833['type']='file',_0x873833[_0x430763(0x271)]='.json',_0x873833[_0x430763(0x216)]=_0x5509c4=>{const _0x558b0e=_0x430763,_0x11ea17=_0x5509c4[_0x558b0e(0x23d)][_0x558b0e(0x27b)][0x0];if(!_0x11ea17)return;const _0x2dcdc4=new FileReader();_0x2dcdc4[_0x558b0e(0x245)]=_0x29d9c7=>{const _0x3a831e=_0x558b0e;try{const _0xfe1007=JSON[_0x3a831e(0x25e)](_0x29d9c7[_0x3a831e(0x23d)][_0x3a831e(0x266)]);if(!_0xfe1007[_0x3a831e(0x274)]||!Array['isArray'](_0xfe1007['tables']))throw new Error(_0x3a831e(0x20b));const _0x9c3cd8=window['confirm'](_0x3a831e(0x23c));if(!_0x9c3cd8){log('用户取消了导入操作。',_0x3a831e(0x221)),toastr[_0x3a831e(0x221)](_0x3a831e(0x1fe));return;}if(_0xfe1007[_0x3a831e(0x274)]===_0x3a831e(0x1fb))saveBatchFillerRuleTemplate(_0xfe1007[_0x3a831e(0x205)]),saveBatchFillerFlowTemplate(_0xfe1007[_0x3a831e(0x22d)]),saveAiTemplate(_0xfe1007[_0x3a831e(0x25f)]);else{if(_0xfe1007['aiRuleTemplate']!==undefined&&_0xfe1007[_0x3a831e(0x251)]!==undefined)saveBatchFillerRuleTemplate(_0xfe1007[_0x3a831e(0x1f2)]),saveBatchFillerFlowTemplate(_0xfe1007[_0x3a831e(0x251)]),saveAiTemplate(_0xfe1007[_0x3a831e(0x251)]);else{if(_0xfe1007[_0x3a831e(0x21d)])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0xfe1007[_0x3a831e(0x21d)]),saveAiTemplate(_0xfe1007['aiTemplate']);else throw new Error('预设中缺少必要的指令模板字段。');}}const _0x442640=_0xfe1007[_0x3a831e(0x250)];_0x442640[_0x3a831e(0x207)](_0x5de337=>{const _0xaa5cc7=_0x3a831e;if(_0x5de337[_0xaa5cc7(0x25c)]===undefined||_0x5de337[_0xaa5cc7(0x23f)]===undefined||_0x5de337[_0xaa5cc7(0x278)]===undefined)throw new Error(_0xaa5cc7(0x256)+JSON['stringify'](_0x5de337));if(_0x5de337[_0xaa5cc7(0x27d)]===undefined)_0x5de337[_0xaa5cc7(0x27d)]='无';if(_0x5de337[_0xaa5cc7(0x237)]===undefined)_0x5de337['rule_add']='允许';if(_0x5de337[_0xaa5cc7(0x257)]===undefined)_0x5de337[_0xaa5cc7(0x257)]='允许';if(_0x5de337[_0xaa5cc7(0x259)]===undefined)_0x5de337[_0xaa5cc7(0x259)]='允许';}),setMemoryState(_0x442640);const _0x318fec=getContext();if(_0x318fec[_0x3a831e(0x267)]&&_0x318fec['chat']['length']>0x0){const _0x1c65b6=_0x318fec[_0x3a831e(0x267)][_0x318fec[_0x3a831e(0x267)][_0x3a831e(0x1e9)]-0x1];saveStateToMessage(getMemoryState(),_0x1c65b6)&&(saveChat(),log(_0x3a831e(0x1b2),'success'));}else saveChatDebounced();log('预设已成功导入并应用。','success'),toastr['success'](_0x3a831e(0x1d6),_0x3a831e(0x213)),typeof _0x46e9d8===_0x3a831e(0x273)&&_0x46e9d8();}catch(_0x8ab390){log(_0x3a831e(0x25b)+_0x8ab390[_0x3a831e(0x241)],_0x3a831e(0x1b3)),toastr['error'](_0x3a831e(0x21e)+_0x8ab390[_0x3a831e(0x241)],'错误');}},_0x2dcdc4[_0x558b0e(0x242)](_0x11ea17);},_0x873833[_0x430763(0x1e8)]();}