diff --git a/core/table-system/manager.js b/core/table-system/manager.js index 6824ddc..e7c69d7 100644 --- a/core/table-system/manager.js +++ b/core/table-system/manager.js @@ -1 +1 @@ -const _0xeadf32=_0x759e;(function(_0x57ce6c,_0x53e05a){const _0x86207a=_0x759e,_0x14ef90=_0x57ce6c();while(!![]){try{const _0x302011=parseInt(_0x86207a(0x1bc))/0x1+parseInt(_0x86207a(0x254))/0x2+parseInt(_0x86207a(0x1ae))/0x3+parseInt(_0x86207a(0x2b1))/0x4+parseInt(_0x86207a(0x286))/0x5+parseInt(_0x86207a(0x1b6))/0x6*(-parseInt(_0x86207a(0x20e))/0x7)+parseInt(_0x86207a(0x1d7))/0x8*(-parseInt(_0x86207a(0x1e9))/0x9);if(_0x302011===_0x53e05a)break;else _0x14ef90['push'](_0x14ef90['shift']());}catch(_0x4f45a6){_0x14ef90['push'](_0x14ef90['shift']());}}}(_0x2207,0xeefda));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{fillWithSecondaryApi}from'./secondary-filler.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();function dispatchTableUpdate(_0x36e41b){const _0x40c167=_0x759e,_0x3a8c0a=extension_settings[extensionName]||{};if(_0x3a8c0a['super_memory_enabled']===![])return;if(!currentTablesState||!currentTablesState[_0x36e41b])return;const _0x825077=currentTablesState[_0x36e41b];let _0x113d59='database';if(_0x825077['name'][_0x40c167(0x290)]('时空')||_0x825077['name'][_0x40c167(0x290)](_0x40c167(0x23d)))_0x113d59=_0x40c167(0x215);if(_0x825077['name']['includes']('日志')||_0x825077[_0x40c167(0x24c)][_0x40c167(0x290)](_0x40c167(0x1e0)))_0x113d59='log';const _0x18559a=new CustomEvent(_0x40c167(0x22a),{'detail':{'tableName':_0x825077[_0x40c167(0x24c)],'data':_0x825077[_0x40c167(0x1ff)],'headers':_0x825077[_0x40c167(0x21a)],'rowStatuses':_0x825077[_0x40c167(0x204)]||[],'role':_0x113d59}});document[_0x40c167(0x221)](_0x18559a),log(_0x40c167(0x1b7)+_0x825077[_0x40c167(0x24c)],_0x40c167(0x28a));}export function addHighlight(_0x1731c7,_0x6f710,_0x25ca13){const _0x38e151=_0x759e,_0x1d00e7=_0x1731c7+'-'+_0x6f710+'-'+_0x25ca13;highlightedCells[_0x38e151(0x25e)](_0x1d00e7);}export function getHighlights(){return highlightedCells;}function _0x759e(_0x382ba9,_0x3a7569){const _0x220770=_0x2207();return _0x759e=function(_0x759e50,_0x39e829){_0x759e50=_0x759e50-0x1a2;let _0x3f6d84=_0x220770[_0x759e50];return _0x3f6d84;},_0x759e(_0x382ba9,_0x3a7569);}export function clearHighlights(){const _0x2bb885=_0x759e;highlightedCells['size']>0x0&&(highlightedCells[_0x2bb885(0x291)](),log(_0x2bb885(0x211),_0x2bb885(0x28a)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x670589=_0x759e;updatedTables[_0x670589(0x1e5)]>0x0&&(updatedTables[_0x670589(0x291)](),log(_0x670589(0x225),_0x670589(0x28a)));}export function setMemoryState(_0x3c2643){currentTablesState=_0x3c2643;}export function loadMemoryState(_0xffeec8){const _0x117b84=_0x759e;if(!_0xffeec8)return;setMemoryState(_0xffeec8),renderTables(),updateOrInsertTableInChat(),log(_0x117b84(0x1fe),_0x117b84(0x28a));}export function saveMemoryState(){const _0x4de30d=_0x759e,_0x53547e=getContext();if(_0x53547e['chat']&&_0x53547e[_0x4de30d(0x1a8)][_0x4de30d(0x255)]>0x0){const _0x22691f=_0x53547e[_0x4de30d(0x1a8)][_0x53547e[_0x4de30d(0x1a8)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x22691f))return!![];}return![];}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0xeadf32(0x1fd),'headers':['日期','时段','时间','地点',_0xeadf32(0x258)],'note':_0xeadf32(0x1aa),'rule_add':_0xeadf32(0x2b9),'rule_delete':_0xeadf32(0x25a),'rule_update':_0xeadf32(0x287),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':_0xeadf32(0x222),'headers':[_0xeadf32(0x22c),'外貌','身形','衣着','性格','身份','职业','与关系','爱好','住所',_0xeadf32(0x1a2)],'note':_0xeadf32(0x271),'rule_add':'【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','rule_delete':_0xeadf32(0x270),'rule_update':_0xeadf32(0x262),'charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':'任务栏','headers':[_0xeadf32(0x1cb),'类型','详情','状态',_0xeadf32(0x1be),'地点',_0xeadf32(0x2a8),'结果'],'note':_0xeadf32(0x26a),'rule_add':_0xeadf32(0x2a4),'rule_delete':_0xeadf32(0x25d),'rule_update':_0xeadf32(0x2af),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0xeadf32(0x279),'headers':[_0xeadf32(0x26e),'类型','详情','状态','拥有者',_0xeadf32(0x292)],'note':'【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','rule_add':'【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','rule_delete':'【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','rule_update':_0xeadf32(0x1ef),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0xeadf32(0x22f),'headers':[_0xeadf32(0x223),_0xeadf32(0x2b3)],'note':_0xeadf32(0x285),'rule_add':_0xeadf32(0x1a4),'rule_delete':_0xeadf32(0x1c5),'rule_update':'【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0xeadf32(0x268),'headers':['类型',_0xeadf32(0x200)],'note':_0xeadf32(0x1f8),'rule_add':_0xeadf32(0x247),'rule_delete':_0xeadf32(0x1cf),'rule_update':_0xeadf32(0x2a5),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x29d529=_0xeadf32;log(_0x29d529(0x24b),_0x29d529(0x28a));const _0x444d91=JSON[_0x29d529(0x21d)](JSON[_0x29d529(0x2b4)](defaultTemplate[_0x29d529(0x295)]));return _0x444d91[_0x29d529(0x1ac)](_0x2240c0=>{const _0x48fab4=_0x29d529;_0x2240c0[_0x48fab4(0x2a0)]={'columnIndex':-0x1,'limit':0x0},_0x2240c0[_0x48fab4(0x1b1)]=0x0,_0x2240c0[_0x48fab4(0x296)]=[];}),_0x444d91;}export function loadTables(_0x901f02=-0x1){const _0x48dfdc=_0xeadf32,_0x39093e=getContext();if(_0x39093e&&_0x39093e['chat']&&_0x39093e[_0x48dfdc(0x1a8)][_0x48dfdc(0x255)]>0x0){const _0x36dc41=_0x901f02===-0x1?_0x39093e[_0x48dfdc(0x1a8)][_0x48dfdc(0x255)]-0x1:_0x901f02-0x1;for(let _0xa1fc8e=_0x36dc41;_0xa1fc8e>=0x0;_0xa1fc8e--){const _0x5e88cf=_0x39093e[_0x48dfdc(0x1a8)][_0xa1fc8e];if(_0x5e88cf[_0x48dfdc(0x21f)]&&_0x5e88cf[_0x48dfdc(0x21f)][TABLE_DATA_KEY]){log(_0x48dfdc(0x1bb)+_0xa1fc8e+_0x48dfdc(0x23b),_0x48dfdc(0x28a));let _0x3530f4=JSON[_0x48dfdc(0x21d)](JSON['stringify'](_0x5e88cf[_0x48dfdc(0x21f)][TABLE_DATA_KEY]));return _0x3530f4[_0x48dfdc(0x1ac)](_0x42d70a=>{const _0x1d952b=_0x48dfdc;if(_0x42d70a[_0x1d952b(0x1ba)]===undefined)_0x42d70a[_0x1d952b(0x1ba)]='无';if(_0x42d70a['rule_add']===undefined)_0x42d70a[_0x1d952b(0x1c6)]='允许';if(_0x42d70a[_0x1d952b(0x214)]===undefined)_0x42d70a[_0x1d952b(0x214)]='允许';if(_0x42d70a[_0x1d952b(0x25b)]===undefined)_0x42d70a[_0x1d952b(0x25b)]='允许';_0x42d70a[_0x1d952b(0x2a0)]&&!_0x42d70a[_0x1d952b(0x1a7)]&&(_0x42d70a['charLimitRules']={},_0x42d70a[_0x1d952b(0x2a0)][_0x1d952b(0x29f)]!==-0x1&&_0x42d70a['charLimitRule']['limit']>0x0&&(_0x42d70a[_0x1d952b(0x1a7)][_0x42d70a[_0x1d952b(0x2a0)][_0x1d952b(0x29f)]]=_0x42d70a[_0x1d952b(0x2a0)]['limit']));delete _0x42d70a[_0x1d952b(0x2a0)];if(_0x42d70a[_0x1d952b(0x1b1)]===undefined)_0x42d70a[_0x1d952b(0x1b1)]=0x0;if(_0x42d70a['columnWidths']===undefined)_0x42d70a[_0x1d952b(0x296)]=[];!_0x42d70a[_0x1d952b(0x204)]&&(_0x42d70a[_0x1d952b(0x204)]=Array(_0x42d70a[_0x1d952b(0x1ff)]['length'])['fill'](_0x1d952b(0x23e)));}),currentTablesState=_0x3530f4,currentTablesState;}}}if(extension_settings[extensionName]?.[_0x48dfdc(0x230)]){log(_0x48dfdc(0x1af),'info');try{const _0xd5acb4=extension_settings[extensionName]['global_table_preset'];return currentTablesState=JSON[_0x48dfdc(0x21d)](JSON[_0x48dfdc(0x2b4)](_0xd5acb4[_0x48dfdc(0x295)])),_0xd5acb4[_0x48dfdc(0x1bd)]!==undefined&&saveBatchFillerRuleTemplate(_0xd5acb4[_0x48dfdc(0x1bd)]),_0xd5acb4['batchFillerFlowTemplate']!==undefined&&saveBatchFillerFlowTemplate(_0xd5acb4['batchFillerFlowTemplate']),currentTablesState;}catch(_0x3238fb){log(_0x48dfdc(0x2a1)+_0x3238fb[_0x48dfdc(0x232)],_0x48dfdc(0x220));}}return log('未找到任何表格数据或全局预设,使用默认模板。',_0x48dfdc(0x28a)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x1b6bf3,_0x3dce5e){const _0x561059=_0xeadf32;if(!_0x1b6bf3||!_0x3dce5e)return log('缺少状态或目标消息,无法保存。','error'),![];return!_0x3dce5e['extra']&&(_0x3dce5e['extra']={}),_0x3dce5e[_0x561059(0x21f)][TABLE_DATA_KEY]=JSON[_0x561059(0x21d)](JSON['stringify'](_0x1b6bf3)),log(_0x561059(0x1eb)+_0x3dce5e[_0x561059(0x299)][_0x561059(0x1dd)](0x0,0x14)+_0x561059(0x1db),'info'),!![];}export function saveTables(_0x256fbd=_0xeadf32(0x281)){const _0x29ff4a=_0xeadf32;return log(_0x29ff4a(0x274)+_0x256fbd+_0x29ff4a(0x1b3),_0x29ff4a(0x28a)),!![];}export function deleteColumn(_0x31dfb3,_0x3f0b72){const _0x13b883=_0xeadf32,_0x1c6ea5=getMemoryState();if(!_0x1c6ea5[_0x31dfb3]||_0x3f0b72<0x0||_0x3f0b72>=_0x1c6ea5[_0x31dfb3]['headers'][_0x13b883(0x255)]){log(_0x13b883(0x1e1)+_0x31dfb3+'\x20中找不到索引为\x20'+_0x3f0b72+_0x13b883(0x1c9),_0x13b883(0x220));return;}_0x1c6ea5[_0x31dfb3][_0x13b883(0x21a)][_0x13b883(0x2ab)](_0x3f0b72,0x1),_0x1c6ea5[_0x31dfb3][_0x13b883(0x1ff)][_0x13b883(0x1ac)](_0x20041c=>{const _0x9ea247=_0x13b883;_0x20041c[_0x9ea247(0x255)]>_0x3f0b72&&_0x20041c[_0x9ea247(0x2ab)](_0x3f0b72,0x1);}),_0x1c6ea5[_0x31dfb3][_0x13b883(0x296)]&&_0x1c6ea5[_0x31dfb3][_0x13b883(0x296)]['length']>_0x3f0b72&&_0x1c6ea5[_0x31dfb3][_0x13b883(0x296)][_0x13b883(0x2ab)](_0x3f0b72,0x1),log(_0x13b883(0x28e)+_0x31dfb3+_0x13b883(0x28f)+(_0x3f0b72+0x1)+'\x20列。',_0x13b883(0x273)),saveTables(_0x1c6ea5),dispatchTableUpdate(_0x31dfb3);}function _0x2207(){const _0x4e6451=['onload',')行以下,但切莫完全删除。】','用户取消了导入操作。','aiTemplate','Amily2-','),已智能转换为在表格\x20[','12320696ewCMAx','function','无法导出:当前表格状态为空。','插入行失败:找不到索引为\x20','...]','表格系统总开关已关闭,跳过\x20\x20标签处理。','substring','(该表当前内容为空)\x0a','aiFlowTemplate','Log','删除列失败:在表格\x20',']\x20的列“','amily2_ai_template','AI指令意图更新不存在的行\x20(rowIndex:\x20','size','【说明】:\x0a','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','constructor','18xsrYzS','导入预设失败:\x20','表格状态已准备写入消息\x20[','injectionFlowTemplate','准备执行从AI返回的\x20','回退重填过程中发生错误:\x20','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','\x20已在边界。','【增加】:\x20','状态回退成功,准备重新填表...','AI\x20指令更新了表格\x20[','\x20行已恢复。','表格不存在。','table_system_enabled','file','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!',')超出规定(','---','回退状态保存失败,操作中止。','时空栏','[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','rows','具体描述','\x22\x20已重命名为\x20\x22','\x22\x20的表格已存在。','onchange','rowStatuses','新列\x201',')第(','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','filter','Amily2-Table-Preset-v3.0-separated_templates','没有可导出的表格数据。','trim','replace','every','260218miYAVr','已成功创建新表格:[','重命名失败:表格不存在。','已清除所有单元格高亮标记。','执行AI指令:\x20deleteRow(tableIndex=','version','rule_delete','anchor','执行AI指令:\x20insertRow(tableIndex=','”已向','limit','pending-deletion','headers','清空行数据后的状态已强制写入最新消息并立即保存。','aiRuleTemplate','parse','readAsText','extra','error','dispatchEvent','角色栏','技能名','未能在上一楼找到可用的表格状态。','已清除所有表格的更新标记。',')字限制,请进行缩减。】','无法创建表格:名为\x20\x22','重命名失败','download','AMILY2_TABLE_UPDATED','所有表格的剧情内容已清空。','角色名','未能保存回退状态,操作中止。','执行AI指令时发生错误:\x20','技能栏','global_table_preset','【修改】:\x20','message','\x20条消息加载表格状态...','\x20的表格。','执行AI指令:\x20updateRow(tableIndex=',')\x20的第\x20','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','AI指令块为空,无需执行任何操作。','toISOString','AI指令错误:尝试在不存在的表格索引\x20','\x20条消息中找到基准表格数据。','导入成功','世界钟','normal',']\x20新增了一列。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','移动。','废黜表格后的状态已强制写入最新消息并立即保存。','全局预设已设置!新聊天将默认使用此预设。','join','\x20行。','\x20条表格操作指令...','【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','】已成功导出。','\x20列的','重命名失败:名为\x20\x22','从预设模板生成默认表格...','name','导入全局预设失败:\x20','无法移动表格:索引\x20','正在尝试从第\x20','全局预设已被清除。','batch_filler_flow_template','全局预设已成功导入并保存到扩展设置中。','confirm','800098rojSjT','length','removeChild','【当前(','此地角色','batchFillerFlowTemplate','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','rule_update','appendChild','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','add','getPrototypeOf','createElement','href','【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','这是一个新创建的表格。','无法创建表格:名称不能为空。','操作成功','isArray','用户取消了全局预设导入操作。','设定栏','表格\x20\x22','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\x0a【字段详解】\x0a-\x20任务名:\x20任务的简洁概括,如\x27寻找失落的神器\x27。\x0a-\x20类型:\x20任务的分类,如\x27主线\x27、\x27支线\x27、\x27个人\x27、\x27约定\x27。\x0a-\x20详情:\x20对任务目标和背景的简要描述。\x0a-\x20状态:\x20任务的当前进展,如\x27未开始\x27、\x27进行中\x27、\x27已完成\x27、\x27已失败\x27、\x27已取消\x27。\x0a-\x20执行者:\x20负责完成此任务的角色名。\x0a-\x20地点:\x20任务关键环节发生的地点。\x0a-\x20开始时间/结束时间:\x20记录任务的起止时间,格式\x27YYYY-MM-DD\x27,若未结束则结束时间留空。\x0a-\x20结果:\x20任务完成或失败后的最终结果。','导入操作已取消。',']\x20的第\x20','Amily2-Table-Preset-v2.0-full','物品名','导出成功','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与关系:\x20描述该角色与主角之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','map','success','UI操作\x20\x22',']\x20已被成功废黜。','已成功将回退后的状态保存至最新消息。','创建失败','全局预设已清除,新聊天将使用默认模板。','物品栏','\x20中操作。','target','amily2-force-ui-reload','body','warn','\x0a*\x20','【删除】:\x20','未知操作','无法回退:聊天记录不足。',']\x20末尾新增一行。','预设已成功导入并应用。','【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','6988105AkuPKb','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','设置成功',']\x20的表头“','info','\x20(索引\x20','warning','导入的预设已强制写入最新消息并立即保存。','成功删除了表格\x20','\x20的第\x20','includes','clear','重要原因','left','input','tables','columnWidths','表格名称不能为空。','名为\x20\x22','mes','纯净预设','执行失败',')行(','files','”已更新为“','columnIndex','charLimitRule','加载全局预设失败:\x20','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','填表完成','【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','slice','】已开始下载。','开始时间/结束时间','已根据AI的指示成功更新表格!','toString','splice','文件格式无效或缺少版本号/表格数据。','表格系统总开关已关闭,无法执行回退填表。','正在执行回退并重新填表...','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','表格\x20[','6072276Povmtt','\x20|\x0a','技能效果','stringify','push','导入失败:','accept','表格顺序调整后的状态已强制写入最新消息并立即保存。','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','其他重要信息','回退并重新填表操作完成。','【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','聊天记录不足,无法执行回退操作。','charLimitRules','chat','click','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。','match','forEach',']\x20新增了一行。','1936263YhPuKr','未在聊天记录中找到表格,正在加载全局预设...',',\x20rowIndex=','rowLimitRule','number','\x22\x20已更新内存状态。','重新填表失败:\x20','batch_filler_rule_template','174TXPQoW','[SuperMemory]\x20Dispatched\x20update\x20event\x20for\x20','fill','\x20行位置插入了新行。','note','在第\x20','1175966jVZixO','batchFillerRuleTemplate','执行者','type','.json','split','所有AI指令已成功执行完毕。','Amily2-Table-Preset-v2.0-clean','\x20行移动到第\x20','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','rule_add',',\x20data=','result','\x20的列。','below','任务名','\x20|\x20','\x20行已标记为待删除。','成功将表格\x20','【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','UI已更新以显示回退后的状态。'];_0x2207=function(){return _0x4e6451;};return _0x2207();}export function moveRow(_0x19d5cf,_0x22fbea,_0x5db155){const _0x48889c=_0xeadf32,_0xa89c37=getMemoryState(),_0x2cb035=_0xa89c37[_0x19d5cf];if(!_0x2cb035||_0x22fbea<0x0||_0x22fbea>=_0x2cb035[_0x48889c(0x1ff)][_0x48889c(0x255)])return;const _0x23dfc6=_0x5db155==='up'?_0x22fbea-0x1:_0x22fbea+0x1;if(_0x23dfc6<0x0||_0x23dfc6>=_0x2cb035[_0x48889c(0x1ff)]['length'])return;const [_0x1eb8e9]=_0x2cb035[_0x48889c(0x1ff)][_0x48889c(0x2ab)](_0x22fbea,0x1);_0x2cb035[_0x48889c(0x1ff)][_0x48889c(0x2ab)](_0x23dfc6,0x0,_0x1eb8e9);if(_0x2cb035['rowStatuses']&&_0x2cb035['rowStatuses'][_0x48889c(0x255)]===_0x2cb035[_0x48889c(0x1ff)][_0x48889c(0x255)]+0x1){const [_0x329b27]=_0x2cb035[_0x48889c(0x204)][_0x48889c(0x2ab)](_0x22fbea,0x1);_0x2cb035['rowStatuses'][_0x48889c(0x2ab)](_0x23dfc6,0x0,_0x329b27);}log(_0x48889c(0x1ce)+_0x19d5cf+_0x48889c(0x28f)+(_0x22fbea+0x1)+_0x48889c(0x1c4)+(_0x23dfc6+0x1)+'\x20行。',_0x48889c(0x273)),saveTables(_0xa89c37),dispatchTableUpdate(_0x19d5cf);}export function insertRow(_0x2b05b7,_0x32508c,_0x31889f=_0xeadf32(0x1ca)){const _0x3eee5a=_0xeadf32,_0x2668a1=getMemoryState(),_0x1682f0=_0x2668a1[_0x2b05b7];if(!_0x1682f0){log(_0x3eee5a(0x1da)+_0x2b05b7+_0x3eee5a(0x234),_0x3eee5a(0x220));return;}let _0x34dc71;typeof _0x32508c===_0x3eee5a(0x1b2)?_0x34dc71=_0x31889f==='above'?_0x32508c:_0x32508c+0x1:_0x34dc71=_0x1682f0[_0x3eee5a(0x1ff)][_0x3eee5a(0x255)];if(_0x34dc71<0x0)_0x34dc71=0x0;if(_0x34dc71>_0x1682f0[_0x3eee5a(0x1ff)]['length'])_0x34dc71=_0x1682f0[_0x3eee5a(0x1ff)][_0x3eee5a(0x255)];const _0x4b4cb1=new Array(_0x1682f0[_0x3eee5a(0x21a)][_0x3eee5a(0x255)])[_0x3eee5a(0x1b8)]('');if(typeof _0x32508c==='object'&&_0x32508c!==null)for(const _0x5727c1 in _0x32508c){const _0x9d8ed0=parseInt(_0x5727c1,0xa);!isNaN(_0x9d8ed0)&&_0x9d8ed0<_0x4b4cb1[_0x3eee5a(0x255)]&&(_0x4b4cb1[_0x9d8ed0]=_0x32508c[_0x5727c1],addHighlight(_0x2b05b7,_0x34dc71,_0x9d8ed0));}_0x1682f0['rows'][_0x3eee5a(0x2ab)](_0x34dc71,0x0,_0x4b4cb1);if(!_0x1682f0[_0x3eee5a(0x204)])_0x1682f0[_0x3eee5a(0x204)]=Array(_0x1682f0['rows']['length'])[_0x3eee5a(0x1b8)]('normal');_0x1682f0[_0x3eee5a(0x204)]['splice'](_0x34dc71,0x0,_0x3eee5a(0x23e)),updatedTables[_0x3eee5a(0x25e)](_0x2b05b7),dispatchTableUpdate(_0x2b05b7),log('成功在表格\x20'+_0x1682f0[_0x3eee5a(0x24c)]+_0x3eee5a(0x28b)+_0x2b05b7+_0x3eee5a(0x236)+(_0x34dc71+0x1)+_0x3eee5a(0x1b9),_0x3eee5a(0x273));const _0xc7d654=getContext();if(_0xc7d654[_0x3eee5a(0x1a8)]&&_0xc7d654['chat'][_0x3eee5a(0x255)]>0x0){const _0x7f35cc=_0xc7d654[_0x3eee5a(0x1a8)][_0xc7d654[_0x3eee5a(0x1a8)]['length']-0x1];if(saveStateToMessage(_0x2668a1,_0x7f35cc)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x16de3d){const _0x4cc8ca=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x16de3d])return;const _0xe1231f=currentTablesState[_0x16de3d],_0x38ade0=_0xe1231f[_0x4cc8ca(0x21a)][_0x4cc8ca(0x255)],_0x530645=Array(_0x38ade0)[_0x4cc8ca(0x1b8)]('');_0xe1231f[_0x4cc8ca(0x1ff)][_0x4cc8ca(0x2b5)](_0x530645);if(!_0xe1231f[_0x4cc8ca(0x204)])_0xe1231f['rowStatuses']=Array(_0xe1231f['rows'][_0x4cc8ca(0x255)])['fill'](_0x4cc8ca(0x23e));_0xe1231f[_0x4cc8ca(0x204)]['push'](_0x4cc8ca(0x23e)),updatedTables[_0x4cc8ca(0x25e)](_0x16de3d),dispatchTableUpdate(_0x16de3d);const _0x589ef6='表格\x20['+_0xe1231f[_0x4cc8ca(0x24c)]+_0x4cc8ca(0x1ad);log(_0x589ef6,'info');const _0x2ae831=getContext();if(_0x2ae831[_0x4cc8ca(0x1a8)]&&_0x2ae831[_0x4cc8ca(0x1a8)][_0x4cc8ca(0x255)]>0x0){const _0x459640=_0x2ae831[_0x4cc8ca(0x1a8)][_0x2ae831[_0x4cc8ca(0x1a8)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x459640)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x40f20f){const _0x10aebd=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x40f20f])return;const _0x5c3c6a=currentTablesState[_0x40f20f],_0x1d4933='新列\x20'+(_0x5c3c6a['headers'][_0x10aebd(0x255)]+0x1);_0x5c3c6a['headers'][_0x10aebd(0x2b5)](_0x1d4933),_0x5c3c6a[_0x10aebd(0x1ff)][_0x10aebd(0x1ac)](_0x124c8d=>_0x124c8d[_0x10aebd(0x2b5)](''));if(!_0x5c3c6a[_0x10aebd(0x296)])_0x5c3c6a[_0x10aebd(0x296)]=[];_0x5c3c6a[_0x10aebd(0x296)][_0x10aebd(0x2b5)](null);const _0x33aea7=_0x10aebd(0x2b0)+_0x5c3c6a[_0x10aebd(0x24c)]+_0x10aebd(0x23f);log(_0x33aea7,_0x10aebd(0x28a));const _0x5b91e3=getContext();if(_0x5b91e3[_0x10aebd(0x1a8)]&&_0x5b91e3[_0x10aebd(0x1a8)]['length']>0x0){const _0x4dfbe4=_0x5b91e3[_0x10aebd(0x1a8)][_0x5b91e3['chat'][_0x10aebd(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x4dfbe4)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x316c3a,_0x1d3153,_0x46bc6b){const _0x3853ce=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x316c3a]||currentTablesState[_0x316c3a][_0x3853ce(0x21a)][_0x1d3153]===undefined)return;const _0x164187=currentTablesState[_0x316c3a]['name'],_0x44d4d3=currentTablesState[_0x316c3a]['headers'][_0x1d3153];currentTablesState[_0x316c3a][_0x3853ce(0x21a)][_0x1d3153]=_0x46bc6b;const _0x8be45b=_0x3853ce(0x2b0)+_0x164187+_0x3853ce(0x289)+_0x44d4d3+_0x3853ce(0x29e)+_0x46bc6b+'”。';log(_0x8be45b,'info');const _0x4da39f=getContext();if(_0x4da39f[_0x3853ce(0x1a8)]&&_0x4da39f[_0x3853ce(0x1a8)]['length']>0x0){const _0x501864=_0x4da39f[_0x3853ce(0x1a8)][_0x4da39f[_0x3853ce(0x1a8)][_0x3853ce(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x501864)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x15afae,_0x51b374){const _0x4db7c1=_0xeadf32,_0x55841c=currentTablesState?.[_0x15afae];if(!_0x55841c||!_0x55841c[_0x4db7c1(0x1ff)][_0x51b374])return;!_0x55841c[_0x4db7c1(0x204)]&&(_0x55841c[_0x4db7c1(0x204)]=Array(_0x55841c[_0x4db7c1(0x1ff)]['length'])[_0x4db7c1(0x1b8)](_0x4db7c1(0x23e)));_0x55841c['rowStatuses'][_0x51b374]='pending-deletion',updatedTables[_0x4db7c1(0x25e)](_0x15afae);const _0x41ddec=_0x4db7c1(0x2b0)+_0x55841c['name']+_0x4db7c1(0x26c)+(_0x51b374+0x1)+_0x4db7c1(0x1cd);log(_0x41ddec,_0x4db7c1(0x28a));const _0x48455d=getContext();if(_0x48455d[_0x4db7c1(0x1a8)]?.['length']>0x0){const _0x3778de=_0x48455d[_0x4db7c1(0x1a8)][_0x48455d['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3778de)){await saveChat(),renderTables(),dispatchTableUpdate(_0x15afae);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x15afae);}export async function restoreRow(_0x464c85,_0x5a820c){const _0xc1e348=_0xeadf32,_0x134ac7=currentTablesState?.[_0x464c85];if(!_0x134ac7||!_0x134ac7[_0xc1e348(0x1ff)][_0x5a820c]||!_0x134ac7[_0xc1e348(0x204)])return;_0x134ac7[_0xc1e348(0x204)][_0x5a820c]=_0xc1e348(0x23e),updatedTables['add'](_0x464c85);const _0x45692d=_0xc1e348(0x2b0)+_0x134ac7[_0xc1e348(0x24c)]+_0xc1e348(0x26c)+(_0x5a820c+0x1)+_0xc1e348(0x1f4);log(_0x45692d,'info');const _0x429ada=getContext();if(_0x429ada[_0xc1e348(0x1a8)]?.[_0xc1e348(0x255)]>0x0){const _0x4652f9=_0x429ada[_0xc1e348(0x1a8)][_0x429ada['chat'][_0xc1e348(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x4652f9)){await saveChat(),renderTables(),dispatchTableUpdate(_0x464c85);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x464c85);}export function commitPendingDeletions(){const _0x505883=_0xeadf32;if(!currentTablesState)return![];let _0x374a3f=0x0;currentTablesState[_0x505883(0x1ac)]((_0x18f8ff,_0xc9ff90)=>{const _0xaf37f2=_0x505883;if(!_0x18f8ff[_0xaf37f2(0x204)]||_0x18f8ff[_0xaf37f2(0x204)][_0xaf37f2(0x255)]===0x0)return;let _0x4836fc=![];for(let _0x490ebf=_0x18f8ff[_0xaf37f2(0x1ff)][_0xaf37f2(0x255)]-0x1;_0x490ebf>=0x0;_0x490ebf--){_0x18f8ff[_0xaf37f2(0x204)][_0x490ebf]===_0xaf37f2(0x219)&&(_0x18f8ff[_0xaf37f2(0x1ff)][_0xaf37f2(0x2ab)](_0x490ebf,0x1),_0x18f8ff[_0xaf37f2(0x204)]['splice'](_0x490ebf,0x1),_0x374a3f++,_0x4836fc=!![]);}_0x4836fc&&updatedTables[_0xaf37f2(0x25e)](_0xc9ff90);});if(_0x374a3f>0x0)return log('已提交并永久删除了\x20'+_0x374a3f+_0x505883(0x245),_0x505883(0x28a)),updatedTables[_0x505883(0x1e5)]>0x0&&updatedTables[_0x505883(0x1ac)](_0x9b3113=>{dispatchTableUpdate(_0x9b3113);}),!![];return![];}export function insertColumn(_0x1752bb,_0x2b6261,_0x179b3b){const _0x328ac5=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x1752bb])return;const _0x4dce0b=currentTablesState[_0x1752bb],_0x369779=_0x179b3b===_0x328ac5(0x293)?_0x2b6261:_0x2b6261+0x1,_0x401903='新列';_0x4dce0b[_0x328ac5(0x21a)]['splice'](_0x369779,0x0,_0x401903),_0x4dce0b['rows'][_0x328ac5(0x1ac)](_0x53b28a=>_0x53b28a['splice'](_0x369779,0x0,''));if(!_0x4dce0b[_0x328ac5(0x296)])_0x4dce0b['columnWidths']=[];_0x4dce0b[_0x328ac5(0x296)][_0x328ac5(0x2ab)](_0x369779,0x0,null);const _0x55ded6=_0x328ac5(0x2b0)+_0x4dce0b[_0x328ac5(0x24c)]+']\x20在第\x20'+(_0x2b6261+0x1)+_0x328ac5(0x249)+(_0x179b3b==='left'?'左侧':'右侧')+'插入了新列。';log(_0x55ded6,_0x328ac5(0x28a));const _0x11a8bc=getContext();if(_0x11a8bc[_0x328ac5(0x1a8)]&&_0x11a8bc[_0x328ac5(0x1a8)]['length']>0x0){const _0x40da16=_0x11a8bc[_0x328ac5(0x1a8)][_0x11a8bc[_0x328ac5(0x1a8)][_0x328ac5(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x40da16)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x4210f0,_0x25bd32,_0x5d04ba){const _0x3ae770=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x4210f0])return;const _0x111a45=currentTablesState[_0x4210f0],_0x39d76f=_0x111a45[_0x3ae770(0x21a)],_0x41062b=_0x111a45[_0x3ae770(0x1ff)],_0x59c21b=_0x5d04ba===_0x3ae770(0x293)?_0x25bd32-0x1:_0x25bd32+0x1;if(_0x59c21b<0x0||_0x59c21b>=_0x39d76f[_0x3ae770(0x255)]){log('无法移动列:索引\x20'+_0x25bd32+_0x3ae770(0x1f0),'warn');return;}const [_0x1d91f8]=_0x39d76f['splice'](_0x25bd32,0x1);_0x39d76f[_0x3ae770(0x2ab)](_0x59c21b,0x0,_0x1d91f8),_0x41062b[_0x3ae770(0x1ac)](_0x1edeb6=>{const [_0x1b37d8]=_0x1edeb6['splice'](_0x25bd32,0x1);_0x1edeb6['splice'](_0x59c21b,0x0,_0x1b37d8);});if(_0x111a45[_0x3ae770(0x296)]&&_0x111a45['columnWidths']['length']>_0x25bd32){const [_0x4ab627]=_0x111a45[_0x3ae770(0x296)]['splice'](_0x25bd32,0x1);_0x111a45['columnWidths']['splice'](_0x59c21b,0x0,_0x4ab627);}const _0x485ef9='表格\x20['+_0x111a45[_0x3ae770(0x24c)]+_0x3ae770(0x1e2)+_0x1d91f8+_0x3ae770(0x217)+(_0x5d04ba===_0x3ae770(0x293)?'左':'右')+_0x3ae770(0x241);log(_0x485ef9,_0x3ae770(0x28a));const _0x5578b7=getContext();if(_0x5578b7[_0x3ae770(0x1a8)]&&_0x5578b7[_0x3ae770(0x1a8)][_0x3ae770(0x255)]>0x0){const _0x588558=_0x5578b7[_0x3ae770(0x1a8)][_0x5578b7[_0x3ae770(0x1a8)][_0x3ae770(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x588558)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x56449c){const _0x12b4f5=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x56449c])return;const _0x2bfe69=currentTablesState[_0x56449c][_0x12b4f5(0x24c)];currentTablesState[_0x12b4f5(0x2ab)](_0x56449c,0x1);const _0x288a2f=_0x12b4f5(0x2b0)+_0x2bfe69+_0x12b4f5(0x275);log(_0x288a2f,_0x12b4f5(0x273));const _0x26b36b=getContext();if(_0x26b36b[_0x12b4f5(0x1a8)]&&_0x26b36b[_0x12b4f5(0x1a8)][_0x12b4f5(0x255)]>0x0){const _0x1a1b74=_0x26b36b[_0x12b4f5(0x1a8)][_0x26b36b[_0x12b4f5(0x1a8)][_0x12b4f5(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x1a1b74)){saveChat(),log(_0x12b4f5(0x242),_0x12b4f5(0x273));return;}}log(_0x12b4f5(0x2a2),_0x12b4f5(0x220)),saveChatDebounced();}export function addTable(_0x4a2aad){const _0x44d9d8=_0xeadf32;if(!_0x4a2aad||!_0x4a2aad['trim']()){log(_0x44d9d8(0x264),_0x44d9d8(0x220)),toastr[_0x44d9d8(0x220)](_0x44d9d8(0x297),_0x44d9d8(0x277));return;}!currentTablesState&&loadTables();if(currentTablesState['some'](_0x4df81f=>_0x4df81f[_0x44d9d8(0x24c)]===_0x4a2aad[_0x44d9d8(0x20b)]())){log(_0x44d9d8(0x227)+_0x4a2aad+_0x44d9d8(0x202),_0x44d9d8(0x220)),toastr[_0x44d9d8(0x220)](_0x44d9d8(0x298)+_0x4a2aad+'\x22\x20的表格已存在。',_0x44d9d8(0x277));return;}const _0x50dcbf={'name':_0x4a2aad[_0x44d9d8(0x20b)](),'headers':[_0x44d9d8(0x205)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':_0x44d9d8(0x263),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState[_0x44d9d8(0x2b5)](_0x50dcbf);const _0x5ee9a9=_0x44d9d8(0x20f)+_0x4a2aad[_0x44d9d8(0x20b)]()+']。';log(_0x5ee9a9,_0x44d9d8(0x273));const _0x283b38=getContext();if(_0x283b38[_0x44d9d8(0x1a8)]&&_0x283b38[_0x44d9d8(0x1a8)][_0x44d9d8(0x255)]>0x0){const _0xb1733b=_0x283b38[_0x44d9d8(0x1a8)][_0x283b38[_0x44d9d8(0x1a8)][_0x44d9d8(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0xb1733b)){saveChat(),log('新表格状态已强制写入最新消息并立即保存。',_0x44d9d8(0x273));return;}}log('无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',_0x44d9d8(0x220)),saveChatDebounced();}export function renameTable(_0x2bbc55,_0x12e277){const _0x2f5c1e=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x2bbc55]){log(_0x2f5c1e(0x210),_0x2f5c1e(0x220)),toastr['error'](_0x2f5c1e(0x1f5),_0x2f5c1e(0x228));return;}const _0x1d5663=_0x12e277[_0x2f5c1e(0x20b)]();if(!_0x1d5663){log('重命名失败:名称不能为空。',_0x2f5c1e(0x220)),toastr['error'](_0x2f5c1e(0x297),_0x2f5c1e(0x228));return;}if(currentTablesState['some']((_0x10cb09,_0x14e6da)=>_0x14e6da!==_0x2bbc55&&_0x10cb09[_0x2f5c1e(0x24c)]===_0x1d5663)){log(_0x2f5c1e(0x24a)+_0x1d5663+_0x2f5c1e(0x202),_0x2f5c1e(0x220)),toastr['error'](_0x2f5c1e(0x298)+_0x1d5663+_0x2f5c1e(0x202),_0x2f5c1e(0x228));return;}const _0x503d90=currentTablesState[_0x2bbc55]['name'];currentTablesState[_0x2bbc55][_0x2f5c1e(0x24c)]=_0x1d5663,log(_0x2f5c1e(0x269)+_0x503d90+_0x2f5c1e(0x201)+_0x1d5663+'\x22。',_0x2f5c1e(0x273));const _0x3835b0=getContext();if(_0x3835b0['chat']&&_0x3835b0[_0x2f5c1e(0x1a8)][_0x2f5c1e(0x255)]>0x0){const _0x236981=_0x3835b0['chat'][_0x3835b0[_0x2f5c1e(0x1a8)][_0x2f5c1e(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x236981)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x3c2d76,_0x440cae){const _0x191f5c=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x3c2d76])return;const _0x25ef64=_0x440cae==='up'?_0x3c2d76-0x1:_0x3c2d76+0x1;if(_0x25ef64<0x0||_0x25ef64>=currentTablesState[_0x191f5c(0x255)]){log(_0x191f5c(0x24e)+_0x3c2d76+_0x191f5c(0x1f0),_0x191f5c(0x27e));return;}const _0x270811=currentTablesState[_0x3c2d76];currentTablesState[_0x3c2d76]=currentTablesState[_0x25ef64],currentTablesState[_0x25ef64]=_0x270811;const _0x500a8b=_0x191f5c(0x2b0)+_0x270811[_0x191f5c(0x24c)]+']\x20的顺序已调整。';log(_0x500a8b,_0x191f5c(0x273));const _0x315744=getContext();if(_0x315744[_0x191f5c(0x1a8)]&&_0x315744[_0x191f5c(0x1a8)][_0x191f5c(0x255)]>0x0){const _0x13b055=_0x315744[_0x191f5c(0x1a8)][_0x315744[_0x191f5c(0x1a8)][_0x191f5c(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x13b055)){saveChat(),log(_0x191f5c(0x2b8),'success');return;}}log(_0x191f5c(0x1a5),_0x191f5c(0x220)),saveChatDebounced();}export function updateTableRules(_0x18a022,_0x2af17e){const _0x4e9ea0=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x18a022])return;const _0x20e80d=currentTablesState[_0x18a022];_0x20e80d[_0x4e9ea0(0x1ba)]=_0x2af17e['note'],_0x20e80d[_0x4e9ea0(0x1c6)]=_0x2af17e[_0x4e9ea0(0x1c6)],_0x20e80d[_0x4e9ea0(0x214)]=_0x2af17e[_0x4e9ea0(0x214)],_0x20e80d[_0x4e9ea0(0x25b)]=_0x2af17e[_0x4e9ea0(0x25b)],_0x20e80d[_0x4e9ea0(0x1a7)]=_0x2af17e['charLimitRules'],_0x20e80d[_0x4e9ea0(0x1b1)]=_0x2af17e[_0x4e9ea0(0x1b1)],delete _0x20e80d[_0x4e9ea0(0x2a0)];const _0x291684=_0x4e9ea0(0x2b0)+_0x20e80d['name']+']\x20的规则已更新。';log(_0x291684,_0x4e9ea0(0x28a));const _0x3b682f=getContext();if(_0x3b682f[_0x4e9ea0(0x1a8)]&&_0x3b682f['chat'][_0x4e9ea0(0x255)]>0x0){const _0x51c9f3=_0x3b682f['chat'][_0x3b682f[_0x4e9ea0(0x1a8)][_0x4e9ea0(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x51c9f3)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x35b2d1,_0x10b5ba,_0x67cd3d){const _0x3a8773=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x35b2d1]){log(_0x3a8773(0x23a)+_0x35b2d1+_0x3a8773(0x27a),_0x3a8773(0x220));return;}const _0x7d8b84=currentTablesState[_0x35b2d1];if(_0x10b5ba>=_0x7d8b84[_0x3a8773(0x1ff)][_0x3a8773(0x255)]){log(_0x3a8773(0x1e4)+_0x10b5ba+_0x3a8773(0x1d6)+_0x7d8b84[_0x3a8773(0x24c)]+_0x3a8773(0x283),'warn'),insertRow(_0x35b2d1,_0x67cd3d);return;}const _0x5a24f3=_0x7d8b84[_0x3a8773(0x1ff)][_0x10b5ba];for(const _0x3ee7be in _0x67cd3d){const _0x526f90=parseInt(_0x3ee7be,0xa);_0x526f90<_0x5a24f3[_0x3a8773(0x255)]&&(_0x5a24f3[_0x526f90]=_0x67cd3d[_0x526f90],addHighlight(_0x35b2d1,_0x10b5ba,_0x526f90));}updatedTables[_0x3a8773(0x25e)](_0x35b2d1),dispatchTableUpdate(_0x35b2d1);const _0x30228c=_0x3a8773(0x1f3)+_0x7d8b84[_0x3a8773(0x24c)]+_0x3a8773(0x26c)+(_0x10b5ba+0x1)+_0x3a8773(0x245);log(_0x30228c,_0x3a8773(0x28a));const _0x17c652=getContext();if(_0x17c652[_0x3a8773(0x1a8)]&&_0x17c652['chat']['length']>0x0){const _0x46f005=_0x17c652[_0x3a8773(0x1a8)][_0x17c652[_0x3a8773(0x1a8)][_0x3a8773(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x46f005)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x25e416=_0xeadf32;if(!currentTablesState){log('无法清空:当前表格状态为空。',_0x25e416(0x220));return;}currentTablesState['forEach']((_0x3443cd,_0x1b7e37)=>{const _0x229b7c=_0x25e416;_0x3443cd[_0x229b7c(0x1ff)][_0x229b7c(0x255)]>0x0&&updatedTables[_0x229b7c(0x25e)](_0x1b7e37),_0x3443cd[_0x229b7c(0x1ff)]=[],_0x3443cd[_0x229b7c(0x204)]=[];}),log('所有表格的行数据已在内存中清空。',_0x25e416(0x27e));const _0x4ce87e=getContext();if(_0x4ce87e[_0x25e416(0x1a8)]&&_0x4ce87e[_0x25e416(0x1a8)]['length']>0x0){const _0x28943f=_0x4ce87e[_0x25e416(0x1a8)][_0x4ce87e['chat'][_0x25e416(0x255)]-0x1];if(saveStateToMessage(currentTablesState,_0x28943f)){saveChat(),log(_0x25e416(0x21b),_0x25e416(0x273)),toastr[_0x25e416(0x273)](_0x25e416(0x22b),'操作完成');return;}}log(_0x25e416(0x1f9),_0x25e416(0x220)),saveChatDebounced();}function checkTableRules(_0x2ff406){const _0x37a3c4=_0xeadf32;let _0x40921c=[];_0x2ff406['rowLimitRule']&&_0x2ff406[_0x37a3c4(0x1b1)]>0x0&&_0x2ff406['rows']['length']>_0x2ff406[_0x37a3c4(0x1b1)]&&_0x40921c['push'](_0x37a3c4(0x257)+_0x2ff406['name']+_0x37a3c4(0x1fa)+_0x2ff406['rowLimitRule']+')行,请结合剧情缩减至('+_0x2ff406[_0x37a3c4(0x1b1)]+_0x37a3c4(0x1d2));const _0x31280a=_0x2ff406['charLimitRules']||{};for(const _0x42003f in _0x31280a){const _0x5e58d5=parseInt(_0x42003f,0xa),_0x5099bb=_0x31280a[_0x5e58d5];if(_0x5099bb>0x0&&_0x5e58d5>=0x0&&_0x5e58d5<_0x2ff406[_0x37a3c4(0x21a)]['length']){const _0xdecc94=_0x2ff406[_0x37a3c4(0x21a)][_0x5e58d5],_0x208c37=[];_0x2ff406[_0x37a3c4(0x1ff)][_0x37a3c4(0x1ac)]((_0x1cdd39,_0x34af74)=>{const _0xf34c49=_0x37a3c4;if(_0x2ff406['rowStatuses']&&_0x2ff406[_0xf34c49(0x204)][_0x34af74]===_0xf34c49(0x219))return;const _0x9fd9f1=_0x1cdd39[_0x5e58d5]||'';_0x9fd9f1[_0xf34c49(0x255)]>_0x5099bb&&_0x208c37[_0xf34c49(0x2b5)](_0x34af74);});if(_0x208c37[_0x37a3c4(0x255)]>0x0){const _0x3042a0=_0x208c37[_0x37a3c4(0x244)]('、');_0x40921c[_0x37a3c4(0x2b5)](_0x37a3c4(0x257)+_0x2ff406[_0x37a3c4(0x24c)]+_0x37a3c4(0x206)+_0x3042a0+_0x37a3c4(0x29c)+_0xdecc94+')列,字符超出规定('+_0x5099bb+_0x37a3c4(0x226));}}}return _0x40921c[_0x37a3c4(0x244)]('\x0a');}export function convertTablesToCsvString(){!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x173489='';return currentTablesState['forEach']((_0x343abf,_0x174c67)=>{const _0x4da0f7=_0x759e;_0x173489+=_0x4da0f7(0x27f)+_0x174c67+':'+_0x343abf[_0x4da0f7(0x24c)]+'\x0a',_0x173489+=_0x4da0f7(0x1e6)+(_0x343abf[_0x4da0f7(0x1ba)]||'无')+'\x0a';const _0x4b3feb=_0x343abf[_0x4da0f7(0x24c)][_0x4da0f7(0x20c)](/\s/g,'')+'内容';_0x173489+='<'+_0x4b3feb+'>\x0a';const _0x35d8d8=['rowIndex',..._0x343abf[_0x4da0f7(0x21a)][_0x4da0f7(0x272)]((_0x49d565,_0x47aaf4)=>_0x47aaf4+':'+_0x49d565)];_0x173489+='|\x20'+_0x35d8d8[_0x4da0f7(0x244)]('\x20|\x20')+_0x4da0f7(0x2b2),_0x173489+='|'+_0x35d8d8[_0x4da0f7(0x272)](()=>'---')[_0x4da0f7(0x244)]('|')+'|\x0a';const _0x5999ee=_0x343abf[_0x4da0f7(0x1ff)][_0x4da0f7(0x208)]((_0x4cdc29,_0x32ae4a)=>!_0x343abf[_0x4da0f7(0x204)]||_0x343abf[_0x4da0f7(0x204)][_0x32ae4a]!==_0x4da0f7(0x219));_0x5999ee['length']===0x0?_0x173489+=_0x4da0f7(0x1de):_0x343abf['rows'][_0x4da0f7(0x1ac)]((_0x89fe6f,_0xa49ce3)=>{const _0x5f12b0=_0x4da0f7;if(_0x343abf[_0x5f12b0(0x204)]&&_0x343abf[_0x5f12b0(0x204)][_0xa49ce3]===_0x5f12b0(0x219))return;if(Array[_0x5f12b0(0x266)](_0x89fe6f)){const _0x3459fb=_0x89fe6f[_0x5f12b0(0x272)](_0x5e9d87=>{const _0x4a389d=_0x5f12b0,_0x901320=_0x5e9d87===null||_0x5e9d87===undefined||_0x5e9d87===''?'未知':String(_0x5e9d87);return _0x901320[_0x4a389d(0x20c)](/\|/g,'|');});_0x173489+='|\x20'+_0xa49ce3+_0x5f12b0(0x1cc)+_0x3459fb[_0x5f12b0(0x244)](_0x5f12b0(0x1cc))+_0x5f12b0(0x2b2);}});const _0x256c77=checkTableRules(_0x343abf);_0x256c77&&(_0x173489+=_0x256c77+'\x0a'),_0x173489+='\x0a',_0x173489+=_0x4da0f7(0x1f1)+(_0x343abf[_0x4da0f7(0x1c6)]||'允许')+'\x0a',_0x173489+=_0x4da0f7(0x280)+(_0x343abf[_0x4da0f7(0x214)]||'允许')+'\x0a',_0x173489+=_0x4da0f7(0x231)+(_0x343abf[_0x4da0f7(0x25b)]||'允许')+'\x0a',_0x174c67{const _0x29f2cf=_0x23682e;_0x36d2ce+='\x0a<'+_0x433bbb['name']+'>\x0a';const _0x414d0d='|\x20'+_0x433bbb[_0x29f2cf(0x21a)][_0x29f2cf(0x244)](_0x29f2cf(0x1cc))+'\x20|';_0x36d2ce+=_0x414d0d+'\x0a';const _0x38c9d3='|'+_0x433bbb[_0x29f2cf(0x21a)][_0x29f2cf(0x272)](()=>_0x29f2cf(0x1fb))[_0x29f2cf(0x244)]('|')+'|';_0x36d2ce+=_0x38c9d3+'\x0a';const _0x167da0=_0x433bbb['rows'][_0x29f2cf(0x208)]((_0x41fac2,_0x1066c9)=>!_0x433bbb[_0x29f2cf(0x204)]||_0x433bbb[_0x29f2cf(0x204)][_0x1066c9]!==_0x29f2cf(0x219));_0x167da0['length']>0x0?_0x167da0[_0x29f2cf(0x1ac)](_0x5ef984=>{const _0x5f60fd=_0x29f2cf;if(Array[_0x5f60fd(0x266)](_0x5ef984)){const _0x22460e=_0x5ef984['map'](_0x1150d7=>_0x1150d7===null||_0x1150d7===undefined||_0x1150d7===''?'\x20':_0x1150d7[_0x5f60fd(0x2aa)]()),_0x2bdf43='|\x20'+_0x22460e[_0x5f60fd(0x244)](_0x5f60fd(0x1cc))+'\x20|';_0x36d2ce+=_0x2bdf43+'\x0a';}}):_0x36d2ce+=_0x29f2cf(0x1de),_0x36d2ce+='\x0a';}),_0x36d2ce[_0x23682e(0x20b)]();}loadTables();export function getBatchFillerRuleTemplate(){const _0x15ed55=_0xeadf32;return extension_settings[extensionName]?.[_0x15ed55(0x1b5)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x3be39d){const _0x2b2df9=_0xeadf32;extension_settings[extensionName][_0x2b2df9(0x1b5)]=_0x3be39d,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){return extension_settings[extensionName]?.['batch_filler_flow_template']??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x52e050){const _0x2a8540=_0xeadf32;extension_settings[extensionName][_0x2a8540(0x251)]=_0x52e050,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){return extension_settings[extensionName]?.['amily2_ai_template']??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x43ba11){const _0x4d6df9=_0xeadf32,_0x1fb0fb=extension_settings[extensionName];if(_0x1fb0fb[_0x4d6df9(0x1f6)]===![]){log(_0x4d6df9(0x1dc),'info');return;}if(!_0x43ba11){log('AI返回内容为空,无法更新表格。','warn');return;}const _0xc5ef2a=_0x43ba11[_0x4d6df9(0x1ab)](/([\s\S]*?)<\/Amily2Edit>/);if(!_0xc5ef2a||!_0xc5ef2a[0x1]){log('未在AI返回内容中找到有效的\x20\x20指令块。',_0x4d6df9(0x27e));return;}let _0x3f5f41=_0xc5ef2a[0x1][_0x4d6df9(0x20c)](//g,'')[_0x4d6df9(0x20b)]();if(!_0x3f5f41){log(_0x4d6df9(0x238),_0x4d6df9(0x28a));return;}const _0x3c08c4=_0x3f5f41[_0x4d6df9(0x1c1)]('\x0a')['filter'](_0x5e2379=>_0x5e2379[_0x4d6df9(0x20b)]()!=='');log(_0x4d6df9(0x1ed)+_0x3c08c4[_0x4d6df9(0x255)]+_0x4d6df9(0x246),_0x4d6df9(0x28a));const _0x2c99c3={'insertRow':(_0x148cb6,_0x3a06b3)=>{const _0x5e1c47=_0x4d6df9;log(_0x5e1c47(0x216)+_0x148cb6+_0x5e1c47(0x1c7)+JSON[_0x5e1c47(0x2b4)](_0x3a06b3)+')',_0x5e1c47(0x28a)),insertRow(_0x148cb6,_0x3a06b3);},'deleteRow':(_0x1bfb35,_0x5d7e16)=>{const _0x47b606=_0x4d6df9;log(_0x47b606(0x212)+_0x1bfb35+_0x47b606(0x1b0)+_0x5d7e16+')',_0x47b606(0x28a)),deleteRow(_0x1bfb35,_0x5d7e16);},'updateRow':(_0x6d1eae,_0x19e9b6,_0x15b4d6)=>{const _0x3ca088=_0x4d6df9;log(_0x3ca088(0x235)+_0x6d1eae+_0x3ca088(0x1b0)+_0x19e9b6+_0x3ca088(0x1c7)+JSON[_0x3ca088(0x2b4)](_0x15b4d6)+')',_0x3ca088(0x28a)),updateRow(_0x6d1eae,_0x19e9b6,_0x15b4d6);}};try{const _0x5c6d0c=Object[_0x4d6df9(0x25f)](async function(){})[_0x4d6df9(0x1e8)],_0xee81b9=new _0x5c6d0c('runner','\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'+_0x3f5f41+_0x4d6df9(0x1e7));await _0xee81b9(_0x2c99c3),log(_0x4d6df9(0x1c2),_0x4d6df9(0x273)),toastr[_0x4d6df9(0x273)](_0x4d6df9(0x2a9),_0x4d6df9(0x2a3)),document[_0x4d6df9(0x221)](new CustomEvent(_0x4d6df9(0x27c)));}catch(_0x3dd34f){log(_0x4d6df9(0x22e)+_0x3dd34f['message'],_0x4d6df9(0x220)),toastr[_0x4d6df9(0x220)]('执行AI指令时出错:\x20'+_0x3dd34f[_0x4d6df9(0x232)],_0x4d6df9(0x29b));}}export function saveAiTemplate(_0x4f5417){const _0x350439=_0xeadf32;extension_settings[extensionName][_0x350439(0x1e3)]=_0x4f5417,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x39da80=![]){const _0x5b9f2d=_0xeadf32;if(!currentTablesState){log(_0x5b9f2d(0x1d9),_0x5b9f2d(0x220)),toastr[_0x5b9f2d(0x220)](_0x5b9f2d(0x20a));return;}let _0x50e82d,_0x226366,_0x463772;_0x39da80?(_0x50e82d=JSON[_0x5b9f2d(0x21d)](JSON['stringify'](currentTablesState)),_0x226366=_0x5b9f2d(0x26d),_0x463772='完整备份'):(_0x50e82d=currentTablesState[_0x5b9f2d(0x272)](_0x1016ac=>({'name':_0x1016ac[_0x5b9f2d(0x24c)],'headers':_0x1016ac[_0x5b9f2d(0x21a)],'columnWidths':_0x1016ac['columnWidths']||[],'note':_0x1016ac[_0x5b9f2d(0x1ba)],'rule_add':_0x1016ac[_0x5b9f2d(0x1c6)],'rule_delete':_0x1016ac[_0x5b9f2d(0x214)],'rule_update':_0x1016ac[_0x5b9f2d(0x25b)],'charLimitRules':_0x1016ac[_0x5b9f2d(0x1a7)]||{},'rowLimitRule':_0x1016ac[_0x5b9f2d(0x1b1)]||0x0,'rows':[],'rowStatuses':[]})),_0x226366=_0x5b9f2d(0x1c3),_0x463772=_0x5b9f2d(0x29a));const _0x5d0f84={'version':_0x5b9f2d(0x209),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x50e82d},_0x335048=new Blob([JSON[_0x5b9f2d(0x2b4)](_0x5d0f84,null,0x2)],{'type':'application/json'}),_0x11c199=URL['createObjectURL'](_0x335048),_0xa90443=document[_0x5b9f2d(0x260)]('a');_0xa90443[_0x5b9f2d(0x261)]=_0x11c199,_0xa90443[_0x5b9f2d(0x229)]=_0x5b9f2d(0x1d5)+_0x463772+'-'+new Date()[_0x5b9f2d(0x239)]()[_0x5b9f2d(0x2a6)](0x0,0xa)+_0x5b9f2d(0x1c0),document[_0x5b9f2d(0x27d)][_0x5b9f2d(0x25c)](_0xa90443),_0xa90443[_0x5b9f2d(0x1a9)](),document[_0x5b9f2d(0x27d)][_0x5b9f2d(0x256)](_0xa90443),URL['revokeObjectURL'](_0x11c199),log('【'+_0x463772+_0x5b9f2d(0x248),_0x5b9f2d(0x273)),toastr[_0x5b9f2d(0x273)]('【'+_0x463772+_0x5b9f2d(0x2a7),_0x5b9f2d(0x26f));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x3a4a12){const _0x402ba1=_0xeadf32,_0x473e9f=document['createElement'](_0x402ba1(0x294));_0x473e9f[_0x402ba1(0x1bf)]=_0x402ba1(0x1f7),_0x473e9f[_0x402ba1(0x2b7)]='.json',_0x473e9f[_0x402ba1(0x203)]=_0x2acc3a=>{const _0x22cec4=_0x402ba1,_0x31587a=_0x2acc3a[_0x22cec4(0x27b)]['files'][0x0];if(!_0x31587a)return;const _0x9e870d=new FileReader();_0x9e870d['onload']=_0x3decba=>{const _0x534672=_0x22cec4;try{const _0x28e77f=JSON[_0x534672(0x21d)](_0x3decba['target'][_0x534672(0x1c8)]);if(!_0x28e77f[_0x534672(0x213)]||!Array[_0x534672(0x266)](_0x28e77f['tables']))throw new Error(_0x534672(0x2ac));const _0x3b5a1c=window['confirm'](_0x534672(0x240));if(!_0x3b5a1c){log(_0x534672(0x1d3),_0x534672(0x28a)),toastr[_0x534672(0x28a)](_0x534672(0x26b));return;}if(_0x28e77f[_0x534672(0x213)]==='Amily2-Table-Preset-v3.0-separated_templates')saveBatchFillerRuleTemplate(_0x28e77f[_0x534672(0x1bd)]||''),saveBatchFillerFlowTemplate(_0x28e77f['batchFillerFlowTemplate']||''),saveAiTemplate(_0x28e77f[_0x534672(0x1ec)]||'');else{if(_0x28e77f['aiRuleTemplate']!==undefined&&_0x28e77f[_0x534672(0x1df)]!==undefined)saveBatchFillerRuleTemplate(_0x28e77f[_0x534672(0x21c)]||''),saveBatchFillerFlowTemplate(_0x28e77f['aiFlowTemplate']||''),saveAiTemplate(_0x28e77f[_0x534672(0x1df)]||'');else _0x28e77f[_0x534672(0x1d4)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x28e77f['aiTemplate']||''),saveAiTemplate(_0x28e77f['aiTemplate']||'')):log('导入的预设中缺少指令模板字段,模板将不会被更新。',_0x534672(0x27e));}const _0x346806=_0x28e77f[_0x534672(0x295)];_0x346806[_0x534672(0x1ac)](_0x181edf=>{const _0x12cc74=_0x534672;if(_0x181edf[_0x12cc74(0x24c)]===undefined||_0x181edf[_0x12cc74(0x21a)]===undefined||_0x181edf['rows']===undefined)throw new Error('导入的表格数据格式不正确:\x20'+JSON[_0x12cc74(0x2b4)](_0x181edf));if(_0x181edf[_0x12cc74(0x1ba)]===undefined)_0x181edf[_0x12cc74(0x1ba)]='无';if(_0x181edf[_0x12cc74(0x1c6)]===undefined)_0x181edf[_0x12cc74(0x1c6)]='允许';if(_0x181edf[_0x12cc74(0x214)]===undefined)_0x181edf['rule_delete']='允许';if(_0x181edf['rule_update']===undefined)_0x181edf[_0x12cc74(0x25b)]='允许';if(_0x181edf['charLimitRule']&&!_0x181edf[_0x12cc74(0x1a7)])_0x181edf[_0x12cc74(0x1a7)]={},_0x181edf[_0x12cc74(0x2a0)]['columnIndex']!==-0x1&&_0x181edf['charLimitRule'][_0x12cc74(0x218)]>0x0&&(_0x181edf[_0x12cc74(0x1a7)][_0x181edf[_0x12cc74(0x2a0)][_0x12cc74(0x29f)]]=_0x181edf[_0x12cc74(0x2a0)][_0x12cc74(0x218)]);else _0x181edf[_0x12cc74(0x1a7)]===undefined&&(_0x181edf['charLimitRules']={});delete _0x181edf[_0x12cc74(0x2a0)],!_0x181edf[_0x12cc74(0x204)]&&(_0x181edf[_0x12cc74(0x204)]=Array(_0x181edf[_0x12cc74(0x1ff)][_0x12cc74(0x255)])['fill']('normal')),_0x181edf[_0x12cc74(0x1b1)]===undefined&&(_0x181edf['rowLimitRule']=0x0),_0x181edf[_0x12cc74(0x296)]===undefined&&(_0x181edf['columnWidths']=[]);}),setMemoryState(_0x346806);const _0x4c152e=getContext();if(_0x4c152e[_0x534672(0x1a8)]&&_0x4c152e[_0x534672(0x1a8)][_0x534672(0x255)]>0x0){const _0x5baca8=_0x4c152e['chat'][_0x4c152e['chat'][_0x534672(0x255)]-0x1];saveStateToMessage(getMemoryState(),_0x5baca8)&&(saveChat(),log(_0x534672(0x28d),_0x534672(0x273)));}else saveChatDebounced();log(_0x534672(0x284),_0x534672(0x273)),toastr[_0x534672(0x273)]('预设已成功导入!',_0x534672(0x23c)),typeof _0x3a4a12===_0x534672(0x1d8)&&_0x3a4a12();}catch(_0x451040){log(_0x534672(0x1ea)+_0x451040[_0x534672(0x232)],_0x534672(0x220)),toastr[_0x534672(0x220)]('导入失败:'+_0x451040[_0x534672(0x232)],'错误');}},_0x9e870d[_0x22cec4(0x21e)](_0x31587a);},_0x473e9f['click']();}export async function rollbackState(){const _0x1c102d=_0xeadf32,_0x91a422=getContext();if(!_0x91a422||!_0x91a422['chat']||_0x91a422[_0x1c102d(0x1a8)][_0x1c102d(0x255)]<0x2)return log(_0x1c102d(0x282),'warn'),toastr[_0x1c102d(0x28c)](_0x1c102d(0x1a6)),![];const _0x214abc=_0x91a422[_0x1c102d(0x1a8)],_0xc31d7c=_0x214abc['length']-0x1,_0x556626=_0x214abc[_0xc31d7c];log(_0x1c102d(0x24f)+(_0xc31d7c-0x1)+_0x1c102d(0x233),'info');const _0x20bfa8=loadTables(_0xc31d7c);if(!_0x20bfa8)return log('未能在上一楼找到可用的表格状态,无法回退。',_0x1c102d(0x220)),toastr[_0x1c102d(0x220)](_0x1c102d(0x224)),![];setMemoryState(_0x20bfa8);if(saveStateToMessage(_0x20bfa8,_0x556626))await saveChat(),log(_0x1c102d(0x276),'success');else return log(_0x1c102d(0x1fc),_0x1c102d(0x220)),toastr[_0x1c102d(0x220)](_0x1c102d(0x22d)),![];return renderTables(),updateOrInsertTableInChat(),log(_0x1c102d(0x1d0),_0x1c102d(0x28a)),!![];}export async function rollbackAndRefill(){const _0x40b484=_0xeadf32,_0xc4c92a=extension_settings[extensionName];if(_0xc4c92a[_0x40b484(0x1f6)]===![]){log('表格系统总开关已关闭,跳过回退填表。',_0x40b484(0x28a)),toastr['info'](_0x40b484(0x2ad));return;}toastr[_0x40b484(0x28a)](_0x40b484(0x2ae));const _0x32b19d=await rollbackState();if(!_0x32b19d){toastr[_0x40b484(0x220)]('状态回退失败,已中止操作。');return;}toastr[_0x40b484(0x273)](_0x40b484(0x1f2));const _0x364500=getContext(),_0x24f2e9=_0x364500[_0x40b484(0x1a8)][_0x364500['chat'][_0x40b484(0x255)]-0x1];try{await fillWithSecondaryApi(_0x24f2e9,!![]),log(_0x40b484(0x1a3),_0x40b484(0x273));}catch(_0x5a6ddd){log(_0x40b484(0x1ee)+_0x5a6ddd[_0x40b484(0x232)],'error'),toastr[_0x40b484(0x220)](_0x40b484(0x1b4)+_0x5a6ddd[_0x40b484(0x232)]);}}export function updateColumnWidth(_0x59a49b,_0x1e1d79,_0xa4625a){const _0x109315=_0xeadf32;if(!currentTablesState||!currentTablesState[_0x59a49b])return;const _0x2dd9e3=currentTablesState[_0x59a49b];!_0x2dd9e3[_0x109315(0x296)]&&(_0x2dd9e3['columnWidths']=[]);while(_0x2dd9e3['columnWidths'][_0x109315(0x255)]<_0x2dd9e3[_0x109315(0x21a)][_0x109315(0x255)]){_0x2dd9e3['columnWidths'][_0x109315(0x2b5)](null);}_0x2dd9e3['columnWidths'][_0x1e1d79]=_0xa4625a;const _0x4612f8=getContext();if(_0x4612f8[_0x109315(0x1a8)]&&_0x4612f8[_0x109315(0x1a8)][_0x109315(0x255)]>0x0){const _0x379830=_0x4612f8[_0x109315(0x1a8)][_0x4612f8['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x379830)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x5d4c5e=_0xeadf32,_0x367773=getMemoryState();if(!_0x367773||_0x367773['length']===0x0)return!![];return _0x367773[_0x5d4c5e(0x20d)](_0x3f458f=>!_0x3f458f['rows']||_0x3f458f[_0x5d4c5e(0x1ff)][_0x5d4c5e(0x255)]===0x0);}export function clearGlobalPreset(){const _0x445a5e=_0xeadf32;if(extension_settings[extensionName]&&extension_settings[extensionName]['global_table_preset']){const _0x30ce10=window[_0x445a5e(0x253)](_0x445a5e(0x237));_0x30ce10?(delete extension_settings[extensionName][_0x445a5e(0x230)],saveSettingsDebounced(),log(_0x445a5e(0x250),_0x445a5e(0x273)),toastr[_0x445a5e(0x273)](_0x445a5e(0x278),_0x445a5e(0x265))):(log('用户取消了清除全局预设的操作。',_0x445a5e(0x28a)),toastr[_0x445a5e(0x28a)]('操作已取消。'));}else log('无需清除,当前未设置任何全局预设。','info'),toastr['info']('当前没有设置全局预设。','提示');}export function importGlobalPreset(_0x10d7fc){const _0x1119e8=_0xeadf32,_0x3ec59b=document['createElement'](_0x1119e8(0x294));_0x3ec59b[_0x1119e8(0x1bf)]=_0x1119e8(0x1f7),_0x3ec59b[_0x1119e8(0x2b7)]=_0x1119e8(0x1c0),_0x3ec59b[_0x1119e8(0x203)]=_0x4cb516=>{const _0x524727=_0x1119e8,_0xe7b1b9=_0x4cb516[_0x524727(0x27b)][_0x524727(0x29d)][0x0];if(!_0xe7b1b9)return;const _0xaf187e=new FileReader();_0xaf187e[_0x524727(0x1d1)]=_0x102d80=>{const _0x5c061d=_0x524727;try{const _0x4cf568=JSON[_0x5c061d(0x21d)](_0x102d80['target']['result']);if(!_0x4cf568[_0x5c061d(0x213)]||!Array[_0x5c061d(0x266)](_0x4cf568['tables']))throw new Error(_0x5c061d(0x2ac));const _0x4e6989=window[_0x5c061d(0x253)](_0x5c061d(0x207));if(!_0x4e6989){log(_0x5c061d(0x267),_0x5c061d(0x28a)),toastr['info']('操作已取消。');return;}const _0x45af65=_0x4cf568[_0x5c061d(0x295)][_0x5c061d(0x272)](_0x1154bb=>({'name':_0x1154bb[_0x5c061d(0x24c)],'headers':_0x1154bb['headers'],'note':_0x1154bb[_0x5c061d(0x1ba)],'rule_add':_0x1154bb['rule_add'],'rule_delete':_0x1154bb[_0x5c061d(0x214)],'rule_update':_0x1154bb[_0x5c061d(0x25b)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x5c061d(0x230)]={'version':_0x4cf568['version'],'tables':_0x45af65,'batchFillerRuleTemplate':_0x4cf568[_0x5c061d(0x1bd)],'batchFillerFlowTemplate':_0x4cf568[_0x5c061d(0x259)]},saveSettingsDebounced();if(_0x4cf568[_0x5c061d(0x213)]==='Amily2-Table-Preset-v3.0-separated_templates')saveBatchFillerRuleTemplate(_0x4cf568[_0x5c061d(0x1bd)]||''),saveBatchFillerFlowTemplate(_0x4cf568[_0x5c061d(0x259)]||''),saveAiTemplate(_0x4cf568[_0x5c061d(0x1ec)]||'');else{if(_0x4cf568['aiRuleTemplate']!==undefined&&_0x4cf568['aiFlowTemplate']!==undefined)saveBatchFillerRuleTemplate(_0x4cf568[_0x5c061d(0x21c)]||''),saveBatchFillerFlowTemplate(_0x4cf568[_0x5c061d(0x1df)]||''),saveAiTemplate(_0x4cf568[_0x5c061d(0x1df)]||'');else _0x4cf568[_0x5c061d(0x1d4)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x4cf568[_0x5c061d(0x1d4)]||''),saveAiTemplate(_0x4cf568[_0x5c061d(0x1d4)]||''));}log(_0x5c061d(0x252),'success'),toastr[_0x5c061d(0x273)](_0x5c061d(0x243),_0x5c061d(0x288)),typeof _0x10d7fc==='function'&&_0x10d7fc();}catch(_0x4e8c01){log(_0x5c061d(0x24d)+_0x4e8c01['message'],'error'),toastr[_0x5c061d(0x220)](_0x5c061d(0x2b6)+_0x4e8c01[_0x5c061d(0x232)],'错误');}},_0xaf187e['readAsText'](_0xe7b1b9);},_0x3ec59b[_0x1119e8(0x1a9)]();} +const _0x2f7dd7=_0x22b0;(function(_0x20856b,_0x48ac8f){const _0x26c9a5=_0x22b0,_0x3b9e84=_0x20856b();while(!![]){try{const _0x404a3b=-parseInt(_0x26c9a5(0x136))/0x1+-parseInt(_0x26c9a5(0x171))/0x2+-parseInt(_0x26c9a5(0x1a3))/0x3*(parseInt(_0x26c9a5(0x19b))/0x4)+parseInt(_0x26c9a5(0x233))/0x5+parseInt(_0x26c9a5(0x1fd))/0x6*(parseInt(_0x26c9a5(0x159))/0x7)+parseInt(_0x26c9a5(0x241))/0x8+parseInt(_0x26c9a5(0x1bf))/0x9;if(_0x404a3b===_0x48ac8f)break;else _0x3b9e84['push'](_0x3b9e84['shift']());}catch(_0x3d7d63){_0x3b9e84['push'](_0x3b9e84['shift']());}}}(_0x3dc4,0x6fd3c));import{getContext,extension_settings}from'/scripts/extensions.js';function _0x22b0(_0x5909ac,_0x706dac){_0x5909ac=_0x5909ac-0x12a;const _0x3dc46d=_0x3dc4();let _0x22b02e=_0x3dc46d[_0x5909ac];return _0x22b02e;}import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{fillWithSecondaryApi}from'./secondary-filler.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY=_0x2f7dd7(0x1b3);let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();function dispatchTableUpdate(_0x361144){const _0x514184=_0x2f7dd7,_0x140b7b=extension_settings[extensionName]||{};if(_0x140b7b[_0x514184(0x20f)]===![])return;if(!currentTablesState||!currentTablesState[_0x361144])return;const _0x4517ad=currentTablesState[_0x361144];let _0xa14304='database';if(_0x4517ad[_0x514184(0x17f)]['includes']('时空')||_0x4517ad[_0x514184(0x17f)]['includes'](_0x514184(0x1e7)))_0xa14304=_0x514184(0x1df);if(_0x4517ad['name'][_0x514184(0x229)]('日志')||_0x4517ad[_0x514184(0x17f)][_0x514184(0x229)](_0x514184(0x1ab)))_0xa14304=_0x514184(0x1c0);const _0xb1cd5b=new CustomEvent('AMILY2_TABLE_UPDATED',{'detail':{'tableName':_0x4517ad[_0x514184(0x17f)],'data':_0x4517ad[_0x514184(0x19f)],'headers':_0x4517ad[_0x514184(0x143)],'rowStatuses':_0x4517ad[_0x514184(0x1c9)]||[],'role':_0xa14304}});document[_0x514184(0x1ef)](_0xb1cd5b),log(_0x514184(0x1f6)+_0x4517ad[_0x514184(0x17f)],_0x514184(0x235));}function dispatchAllTablesUpdate(){const _0x4e4365=_0x2f7dd7;if(!currentTablesState)return;log('[SuperMemory]\x20Dispatching\x20update\x20events\x20for\x20ALL\x20tables...',_0x4e4365(0x235)),currentTablesState[_0x4e4365(0x1d8)]((_0x5a4899,_0x33d343)=>{dispatchTableUpdate(_0x33d343);});}export function addHighlight(_0x5ceb3d,_0x26d690,_0x19fa63){const _0x44163a=_0x2f7dd7,_0x53cce4=_0x5ceb3d+'-'+_0x26d690+'-'+_0x19fa63;highlightedCells[_0x44163a(0x19c)](_0x53cce4);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x4a5db2=_0x2f7dd7;highlightedCells[_0x4a5db2(0x166)]>0x0&&(highlightedCells[_0x4a5db2(0x1d1)](),log(_0x4a5db2(0x20e),_0x4a5db2(0x235)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x178018=_0x2f7dd7;updatedTables['size']>0x0&&(updatedTables[_0x178018(0x1d1)](),log(_0x178018(0x1dc),_0x178018(0x235)));}export function setMemoryState(_0x3d6854){currentTablesState=_0x3d6854;}export function loadMemoryState(_0x236249){const _0x4fc7a6=_0x2f7dd7;if(!_0x236249)return;setMemoryState(_0x236249),renderTables(),updateOrInsertTableInChat(),log(_0x4fc7a6(0x1b6),'info');}export function saveMemoryState(){const _0x169a69=_0x2f7dd7,_0x4d4773=getContext();if(_0x4d4773[_0x169a69(0x1de)]&&_0x4d4773[_0x169a69(0x1de)][_0x169a69(0x177)]>0x0){const _0x1c6851=_0x4d4773[_0x169a69(0x1de)][_0x4d4773[_0x169a69(0x1de)][_0x169a69(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x1c6851))return!![];}return![];}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x2f7dd7(0x213),'headers':['日期','时段','时间','地点',_0x2f7dd7(0x1fc)],'note':_0x2f7dd7(0x197),'rule_add':_0x2f7dd7(0x13a),'rule_delete':_0x2f7dd7(0x1e5),'rule_update':_0x2f7dd7(0x22b),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':'角色栏','headers':[_0x2f7dd7(0x1a1),'外貌','身形','衣着','性格','身份','职业',_0x2f7dd7(0x237),'爱好','住所',_0x2f7dd7(0x204)],'note':'【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与关系:\x20描述该角色与主角之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','rule_add':'【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','rule_delete':_0x2f7dd7(0x148),'rule_update':'【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0x2f7dd7(0x16a),'headers':[_0x2f7dd7(0x232),'类型','详情','状态','执行者','地点','开始时间/结束时间','结果'],'note':_0x2f7dd7(0x1f4),'rule_add':'【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','rule_delete':_0x2f7dd7(0x18f),'rule_update':_0x2f7dd7(0x243),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x2f7dd7(0x168),'headers':['物品名','类型','详情','状态',_0x2f7dd7(0x242),_0x2f7dd7(0x1af)],'note':_0x2f7dd7(0x22a),'rule_add':_0x2f7dd7(0x1fe),'rule_delete':_0x2f7dd7(0x1e0),'rule_update':_0x2f7dd7(0x1b1),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x2f7dd7(0x23e),'headers':['技能名','技能效果'],'note':'【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','rule_add':_0x2f7dd7(0x230),'rule_delete':_0x2f7dd7(0x1ae),'rule_update':_0x2f7dd7(0x1fb),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x2f7dd7(0x218),'headers':['类型',_0x2f7dd7(0x18e)],'note':_0x2f7dd7(0x1a9),'rule_add':_0x2f7dd7(0x1f5),'rule_delete':_0x2f7dd7(0x240),'rule_update':'【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x5ac1bb=_0x2f7dd7;log(_0x5ac1bb(0x1a0),'info');const _0x54f191=JSON['parse'](JSON['stringify'](defaultTemplate[_0x5ac1bb(0x246)]));return _0x54f191[_0x5ac1bb(0x1d8)](_0x75fbf8=>{const _0x39eff7=_0x5ac1bb;_0x75fbf8[_0x39eff7(0x1d9)]={'columnIndex':-0x1,'limit':0x0},_0x75fbf8['rowLimitRule']=0x0,_0x75fbf8['columnWidths']=[];}),_0x54f191;}export function loadTables(_0x22d82b=-0x1){const _0x122f52=_0x2f7dd7,_0x11f5fd=getContext();if(_0x11f5fd&&_0x11f5fd['chat']&&_0x11f5fd[_0x122f52(0x1de)][_0x122f52(0x177)]>0x0){const _0x5b9b23=_0x22d82b===-0x1?_0x11f5fd[_0x122f52(0x1de)][_0x122f52(0x177)]-0x1:_0x22d82b-0x1;for(let _0x244423=_0x5b9b23;_0x244423>=0x0;_0x244423--){const _0x14afe4=_0x11f5fd[_0x122f52(0x1de)][_0x244423];if(_0x14afe4[_0x122f52(0x13d)]&&_0x14afe4[_0x122f52(0x13d)][TABLE_DATA_KEY]){log(_0x122f52(0x1ed)+_0x244423+_0x122f52(0x1c7),_0x122f52(0x235));let _0x499d2b=JSON['parse'](JSON['stringify'](_0x14afe4[_0x122f52(0x13d)][TABLE_DATA_KEY]));return _0x499d2b[_0x122f52(0x1d8)](_0x5c2f9d=>{const _0x3e5c0c=_0x122f52;if(_0x5c2f9d[_0x3e5c0c(0x1bb)]===undefined)_0x5c2f9d[_0x3e5c0c(0x1bb)]='无';if(_0x5c2f9d['rule_add']===undefined)_0x5c2f9d[_0x3e5c0c(0x247)]='允许';if(_0x5c2f9d[_0x3e5c0c(0x21c)]===undefined)_0x5c2f9d[_0x3e5c0c(0x21c)]='允许';if(_0x5c2f9d[_0x3e5c0c(0x23c)]===undefined)_0x5c2f9d['rule_update']='允许';_0x5c2f9d[_0x3e5c0c(0x1d9)]&&!_0x5c2f9d[_0x3e5c0c(0x13e)]&&(_0x5c2f9d['charLimitRules']={},_0x5c2f9d[_0x3e5c0c(0x1d9)][_0x3e5c0c(0x1bc)]!==-0x1&&_0x5c2f9d[_0x3e5c0c(0x1d9)][_0x3e5c0c(0x201)]>0x0&&(_0x5c2f9d[_0x3e5c0c(0x13e)][_0x5c2f9d[_0x3e5c0c(0x1d9)]['columnIndex']]=_0x5c2f9d[_0x3e5c0c(0x1d9)][_0x3e5c0c(0x201)]));delete _0x5c2f9d[_0x3e5c0c(0x1d9)];if(_0x5c2f9d['rowLimitRule']===undefined)_0x5c2f9d['rowLimitRule']=0x0;if(_0x5c2f9d[_0x3e5c0c(0x1a2)]===undefined)_0x5c2f9d[_0x3e5c0c(0x1a2)]=[];!_0x5c2f9d[_0x3e5c0c(0x1c9)]&&(_0x5c2f9d[_0x3e5c0c(0x1c9)]=Array(_0x5c2f9d[_0x3e5c0c(0x19f)][_0x3e5c0c(0x177)])[_0x3e5c0c(0x1be)]('normal'));}),currentTablesState=_0x499d2b,dispatchAllTablesUpdate(),currentTablesState;}}}if(extension_settings[extensionName]?.[_0x122f52(0x22f)]){log(_0x122f52(0x1e2),_0x122f52(0x235));try{const _0x329883=extension_settings[extensionName]['global_table_preset'];return currentTablesState=JSON[_0x122f52(0x1b8)](JSON['stringify'](_0x329883[_0x122f52(0x246)])),_0x329883[_0x122f52(0x21d)]!==undefined&&saveBatchFillerRuleTemplate(_0x329883[_0x122f52(0x21d)]),_0x329883[_0x122f52(0x170)]!==undefined&&saveBatchFillerFlowTemplate(_0x329883['batchFillerFlowTemplate']),dispatchAllTablesUpdate(),currentTablesState;}catch(_0x17d823){log(_0x122f52(0x15a)+_0x17d823[_0x122f52(0x20b)],_0x122f52(0x12d));}}return log(_0x122f52(0x174),_0x122f52(0x235)),currentTablesState=getDefaultTables(),dispatchAllTablesUpdate(),currentTablesState;}export function saveStateToMessage(_0x339985,_0x106b8c){const _0x39228c=_0x2f7dd7;if(!_0x339985||!_0x106b8c)return log(_0x39228c(0x236),'error'),![];return!_0x106b8c[_0x39228c(0x13d)]&&(_0x106b8c[_0x39228c(0x13d)]={}),_0x106b8c[_0x39228c(0x13d)][TABLE_DATA_KEY]=JSON[_0x39228c(0x1b8)](JSON[_0x39228c(0x139)](_0x339985)),log(_0x39228c(0x181)+_0x106b8c['mes'][_0x39228c(0x193)](0x0,0x14)+_0x39228c(0x182),_0x39228c(0x235)),!![];}export function saveTables(_0x4e1b72='未知操作'){const _0x4a144d=_0x2f7dd7;return log(_0x4a144d(0x210)+_0x4e1b72+_0x4a144d(0x1c3),_0x4a144d(0x235)),!![];}export function deleteColumn(_0xc183cc,_0x3cae9b){const _0x4e28f5=_0x2f7dd7,_0x55e3a4=getMemoryState();if(!_0x55e3a4[_0xc183cc]||_0x3cae9b<0x0||_0x3cae9b>=_0x55e3a4[_0xc183cc][_0x4e28f5(0x143)][_0x4e28f5(0x177)]){log('删除列失败:在表格\x20'+_0xc183cc+_0x4e28f5(0x15f)+_0x3cae9b+_0x4e28f5(0x18b),_0x4e28f5(0x12d));return;}_0x55e3a4[_0xc183cc][_0x4e28f5(0x143)]['splice'](_0x3cae9b,0x1),_0x55e3a4[_0xc183cc]['rows'][_0x4e28f5(0x1d8)](_0x18f1d2=>{const _0x43731a=_0x4e28f5;_0x18f1d2[_0x43731a(0x177)]>_0x3cae9b&&_0x18f1d2[_0x43731a(0x1e4)](_0x3cae9b,0x1);}),_0x55e3a4[_0xc183cc][_0x4e28f5(0x1a2)]&&_0x55e3a4[_0xc183cc][_0x4e28f5(0x1a2)]['length']>_0x3cae9b&&_0x55e3a4[_0xc183cc][_0x4e28f5(0x1a2)][_0x4e28f5(0x1e4)](_0x3cae9b,0x1),log(_0x4e28f5(0x214)+_0xc183cc+_0x4e28f5(0x153)+(_0x3cae9b+0x1)+_0x4e28f5(0x1b2),_0x4e28f5(0x17c)),saveTables(_0x55e3a4),dispatchTableUpdate(_0xc183cc);}export function moveRow(_0x5917fa,_0x43ff81,_0x4b7533){const _0x14eb31=_0x2f7dd7,_0x461a12=getMemoryState(),_0xb110b7=_0x461a12[_0x5917fa];if(!_0xb110b7||_0x43ff81<0x0||_0x43ff81>=_0xb110b7[_0x14eb31(0x19f)][_0x14eb31(0x177)])return;const _0x3f8aae=_0x4b7533==='up'?_0x43ff81-0x1:_0x43ff81+0x1;if(_0x3f8aae<0x0||_0x3f8aae>=_0xb110b7['rows']['length'])return;const [_0x3da322]=_0xb110b7['rows'][_0x14eb31(0x1e4)](_0x43ff81,0x1);_0xb110b7[_0x14eb31(0x19f)][_0x14eb31(0x1e4)](_0x3f8aae,0x0,_0x3da322);if(_0xb110b7[_0x14eb31(0x1c9)]&&_0xb110b7[_0x14eb31(0x1c9)][_0x14eb31(0x177)]===_0xb110b7[_0x14eb31(0x19f)][_0x14eb31(0x177)]+0x1){const [_0x39d779]=_0xb110b7[_0x14eb31(0x1c9)][_0x14eb31(0x1e4)](_0x43ff81,0x1);_0xb110b7[_0x14eb31(0x1c9)][_0x14eb31(0x1e4)](_0x3f8aae,0x0,_0x39d779);}log(_0x14eb31(0x190)+_0x5917fa+_0x14eb31(0x153)+(_0x43ff81+0x1)+_0x14eb31(0x20a)+(_0x3f8aae+0x1)+'\x20行。',_0x14eb31(0x17c)),saveTables(_0x461a12),dispatchTableUpdate(_0x5917fa);}export function insertRow(_0x3065e8,_0x2d508c,_0xe1fcb2=_0x2f7dd7(0x22e)){const _0x4df1c3=_0x2f7dd7,_0x2bfc7b=getMemoryState(),_0x3187b1=_0x2bfc7b[_0x3065e8];if(!_0x3187b1){log(_0x4df1c3(0x1a6)+_0x3065e8+_0x4df1c3(0x1d2),_0x4df1c3(0x12d));return;}let _0x1e9f7b;typeof _0x2d508c==='number'?_0x1e9f7b=_0xe1fcb2===_0x4df1c3(0x212)?_0x2d508c:_0x2d508c+0x1:_0x1e9f7b=_0x3187b1['rows'][_0x4df1c3(0x177)];if(_0x1e9f7b<0x0)_0x1e9f7b=0x0;if(_0x1e9f7b>_0x3187b1[_0x4df1c3(0x19f)][_0x4df1c3(0x177)])_0x1e9f7b=_0x3187b1['rows'][_0x4df1c3(0x177)];const _0x5b5a33=new Array(_0x3187b1[_0x4df1c3(0x143)]['length'])[_0x4df1c3(0x1be)]('');if(typeof _0x2d508c===_0x4df1c3(0x239)&&_0x2d508c!==null)for(const _0x7a56dc in _0x2d508c){const _0x5ad87d=parseInt(_0x7a56dc,0xa);!isNaN(_0x5ad87d)&&_0x5ad87d<_0x5b5a33[_0x4df1c3(0x177)]&&(_0x5b5a33[_0x5ad87d]=_0x2d508c[_0x7a56dc],addHighlight(_0x3065e8,_0x1e9f7b,_0x5ad87d));}_0x3187b1[_0x4df1c3(0x19f)][_0x4df1c3(0x1e4)](_0x1e9f7b,0x0,_0x5b5a33);if(!_0x3187b1[_0x4df1c3(0x1c9)])_0x3187b1['rowStatuses']=Array(_0x3187b1[_0x4df1c3(0x19f)][_0x4df1c3(0x177)])[_0x4df1c3(0x1be)](_0x4df1c3(0x208));_0x3187b1['rowStatuses'][_0x4df1c3(0x1e4)](_0x1e9f7b,0x0,'normal'),updatedTables[_0x4df1c3(0x19c)](_0x3065e8),dispatchTableUpdate(_0x3065e8),log(_0x4df1c3(0x149)+_0x3187b1[_0x4df1c3(0x17f)]+_0x4df1c3(0x238)+_0x3065e8+_0x4df1c3(0x1e9)+(_0x1e9f7b+0x1)+'\x20行位置插入了新行。',_0x4df1c3(0x17c));const _0xccdf00=getContext();if(_0xccdf00[_0x4df1c3(0x1de)]&&_0xccdf00[_0x4df1c3(0x1de)][_0x4df1c3(0x177)]>0x0){const _0x375de8=_0xccdf00[_0x4df1c3(0x1de)][_0xccdf00[_0x4df1c3(0x1de)][_0x4df1c3(0x177)]-0x1];if(saveStateToMessage(_0x2bfc7b,_0x375de8)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x4a95c2){const _0x3edf1e=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x4a95c2])return;const _0x34c452=currentTablesState[_0x4a95c2],_0x1245ef=_0x34c452[_0x3edf1e(0x143)][_0x3edf1e(0x177)],_0x53b6cf=Array(_0x1245ef)[_0x3edf1e(0x1be)]('');_0x34c452['rows']['push'](_0x53b6cf);if(!_0x34c452[_0x3edf1e(0x1c9)])_0x34c452[_0x3edf1e(0x1c9)]=Array(_0x34c452['rows'][_0x3edf1e(0x177)])['fill'](_0x3edf1e(0x208));_0x34c452[_0x3edf1e(0x1c9)][_0x3edf1e(0x1cf)](_0x3edf1e(0x208)),updatedTables['add'](_0x4a95c2),dispatchTableUpdate(_0x4a95c2);const _0x586949=_0x3edf1e(0x17b)+_0x34c452['name']+_0x3edf1e(0x17e);log(_0x586949,_0x3edf1e(0x235));const _0x3648ba=getContext();if(_0x3648ba[_0x3edf1e(0x1de)]&&_0x3648ba['chat']['length']>0x0){const _0x2c0495=_0x3648ba[_0x3edf1e(0x1de)][_0x3648ba[_0x3edf1e(0x1de)][_0x3edf1e(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x2c0495)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x9a485e){const _0xf16c7f=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x9a485e])return;const _0x2d13f3=currentTablesState[_0x9a485e],_0x9a045f=_0xf16c7f(0x179)+(_0x2d13f3['headers'][_0xf16c7f(0x177)]+0x1);_0x2d13f3[_0xf16c7f(0x143)][_0xf16c7f(0x1cf)](_0x9a045f),_0x2d13f3[_0xf16c7f(0x19f)][_0xf16c7f(0x1d8)](_0x59bf97=>_0x59bf97['push'](''));if(!_0x2d13f3['columnWidths'])_0x2d13f3[_0xf16c7f(0x1a2)]=[];_0x2d13f3[_0xf16c7f(0x1a2)]['push'](null);const _0x2a02c8='表格\x20['+_0x2d13f3[_0xf16c7f(0x17f)]+_0xf16c7f(0x144);log(_0x2a02c8,_0xf16c7f(0x235));const _0x37a365=getContext();if(_0x37a365[_0xf16c7f(0x1de)]&&_0x37a365['chat'][_0xf16c7f(0x177)]>0x0){const _0x1c1720=_0x37a365[_0xf16c7f(0x1de)][_0x37a365['chat'][_0xf16c7f(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x1c1720)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x197560,_0x49b405,_0x363873){const _0x152334=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x197560]||currentTablesState[_0x197560][_0x152334(0x143)][_0x49b405]===undefined)return;const _0x50ca66=currentTablesState[_0x197560]['name'],_0x5f09fd=currentTablesState[_0x197560][_0x152334(0x143)][_0x49b405];currentTablesState[_0x197560]['headers'][_0x49b405]=_0x363873;const _0x2e229c='表格\x20['+_0x50ca66+_0x152334(0x164)+_0x5f09fd+_0x152334(0x15e)+_0x363873+'”。';log(_0x2e229c,_0x152334(0x235));const _0x2e251d=getContext();if(_0x2e251d[_0x152334(0x1de)]&&_0x2e251d[_0x152334(0x1de)][_0x152334(0x177)]>0x0){const _0x45a3ef=_0x2e251d[_0x152334(0x1de)][_0x2e251d[_0x152334(0x1de)][_0x152334(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x45a3ef)){saveChat();return;}}saveChatDebounced();}function _0x3dc4(){const _0x3c80bf=['\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条消息中找到基准表格数据。','重命名失败','rowStatuses','version','【当前(','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','batch_filler_flow_template','),已智能转换为在表格\x20[','push','warn','clear','\x20的表格。','aiRuleTemplate','全局预设已清除,新聊天将使用默认模板。','createObjectURL','回退并重新填表操作完成。','全局预设已被清除。','forEach','charLimitRule','type','amily2_ai_template','已清除所有表格的更新标记。','body','chat','anchor','【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','导入失败:','未在聊天记录中找到表格,正在加载全局预设...','准备执行从AI返回的\x20','splice','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','table_system_enabled','世界钟','\x0a---\x0a',')\x20的第\x20','\x20行已恢复。','导出成功',')行,请结合剧情缩减至(','在第\x20','\x20行。','dispatchEvent','aiFlowTemplate','target','createElement','表格系统总开关已关闭,无法执行回退填表。','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\x0a【字段详解】\x0a-\x20任务名:\x20任务的简洁概括,如\x27寻找失落的神器\x27。\x0a-\x20类型:\x20任务的分类,如\x27主线\x27、\x27支线\x27、\x27个人\x27、\x27约定\x27。\x0a-\x20详情:\x20对任务目标和背景的简要描述。\x0a-\x20状态:\x20任务的当前进展,如\x27未开始\x27、\x27进行中\x27、\x27已完成\x27、\x27已失败\x27、\x27已取消\x27。\x0a-\x20执行者:\x20负责完成此任务的角色名。\x0a-\x20地点:\x20任务关键环节发生的地点。\x0a-\x20开始时间/结束时间:\x20记录任务的起止时间,格式\x27YYYY-MM-DD\x27,若未结束则结束时间留空。\x0a-\x20结果:\x20任务完成或失败后的最终结果。','【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','[SuperMemory]\x20Dispatched\x20update\x20event\x20for\x20','appendChild',']\x20的列“','some','重命名失败:名称不能为空。','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','此地角色','537714ROrouK','【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','rowIndex','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','limit','无法创建表格:名称不能为空。','\x0a*\x20','其他重要信息',']\x20的第\x20','---','(该表当前内容为空)\x0a','normal','新表格状态已强制写入最新消息并立即保存。','\x20行移动到第\x20','message','trim','回退状态保存失败,操作中止。','已清除所有单元格高亮标记。','super_memory_enabled','UI操作\x20\x22','无法清空:当前表格状态为空。','above','时空栏','成功删除了表格\x20','回退重填过程中发生错误:\x20','onload','amily2-force-ui-reload','设定栏','join','click','用户取消了全局预设导入操作。','rule_delete','batchFillerRuleTemplate','执行AI指令:\x20updateRow(tableIndex=','\x20列的','AI返回内容为空,无法更新表格。',')字限制,请进行缩减。】','Amily2-Table-Preset-v3.0-separated_templates','files','表格顺序调整后的状态已强制写入最新消息并立即保存。','重命名失败:名为\x20\x22',',\x20data=',']\x20的顺序已调整。','未能保存回退状态,操作中止。','includes','【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','用户取消了导入操作。','readAsText','below','global_table_preset','【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','application/json','任务名','2755075ngHbYk','match','info','缺少状态或目标消息,无法保存。','与关系','\x20(索引\x20','object','聊天记录不足,无法执行回退操作。','未能在上一楼找到可用的表格状态。','rule_update','aiTemplate','技能栏','无法移动列:索引\x20','【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','3213656aHeQii','拥有者','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','input','Amily2-Table-Preset-v2.0-clean','tables','rule_add','isArray','map','导入的表格数据格式不正确:\x20','error','已根据AI的指示成功更新表格!','\x22\x20的表格已存在。','无法回退:聊天记录不足。','正在尝试从第\x20','已提交并永久删除了\x20','表格名称不能为空。','left','pending-deletion','785009GOORkH','导入预设失败:\x20',']\x20在第\x20','stringify','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','填表完成','Amily2-','extra','charLimitRules','【删除】:\x20','正在执行回退并重新填表...','清空行数据后的状态已强制写入最新消息并立即保存。','表格不存在。','headers',']\x20新增了一列。',']\x20末尾新增一行。',']\x20已被成功废黜。','已成功将回退后的状态保存至最新消息。','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','成功在表格\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','\x20已在边界。','移动。',')行以下,但切莫完全删除。】','function','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','导入全局预设失败:\x20','设置成功','操作已取消。','\x20的第\x20','新列\x201','预设已成功导入并应用。','AI指令意图更新不存在的行\x20(rowIndex:\x20','AI指令块为空,无需执行任何操作。','状态回退成功,准备重新填表...','21CRRYps','加载全局预设失败:\x20','【说明】:\x0a','runner','toISOString','”已更新为“','\x20中找不到索引为\x20','slice','rowLimitRule','所有表格的剧情内容已清空。','未在AI返回内容中找到有效的\x20\x20指令块。',']\x20的表头“','状态回退失败,已中止操作。','size','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','物品栏','废黜表格后的状态已强制写入最新消息并立即保存。','任务栏','表格系统总开关已关闭,跳过\x20\x20标签处理。','】已开始下载。','纯净预设','confirm','replace','batchFillerFlowTemplate','536672DhjWXw','导入成功','执行AI指令:\x20insertRow(tableIndex=','未找到任何表格数据或全局预设,使用默认模板。','result','完整备份','length','\x20条表格操作指令...','新列\x20','every','表格\x20[','success','UI已更新以显示回退后的状态。',']\x20新增了一行。','name','\x22\x20已重命名为\x20\x22','表格状态已准备写入消息\x20[','...]',')行(','injectionFlowTemplate','表格\x20\x22',',\x20rowIndex=','全局预设已设置!新聊天将默认使用此预设。','\x20|\x20','onchange','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','\x20的列。',']\x20的规则已更新。','当前没有设置全局预设。','具体描述','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','成功将表格\x20','未能在上一楼找到可用的表格状态,无法回退。','【增加】:\x20','substring','\x20行已标记为待删除。','AI指令错误:尝试在不存在的表格索引\x20','导入操作已取消。','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。','文件格式无效或缺少版本号/表格数据。','没有可导出的表格数据。','.json','78096uJCKxy','add','【修改】:\x20','batch_filler_rule_template','rows','从预设模板生成默认表格...','角色名','columnWidths','9hBlejq','创建失败','重命名失败:表格不存在。','插入行失败:找不到索引为\x20','filter','\x20|\x0a','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','getPrototypeOf','Log','已成功创建新表格:[','Amily2-Table-Preset-v2.0-full','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','重要原因','名为\x20\x22','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','\x20列。','amily2_tables_data','执行AI指令时出错:\x20','warning','[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','无法导出:当前表格状态为空。','parse','预设已成功导入!','removeChild','note','columnIndex','执行AI指令时发生错误:\x20','fill','3135438QITyoB','log','accept','导入的预设中缺少指令模板字段,模板将不会被更新。','\x22\x20已更新内存状态。','file','操作成功'];_0x3dc4=function(){return _0x3c80bf;};return _0x3dc4();}export async function deleteRow(_0x178ca0,_0x5428cc){const _0x21538e=_0x2f7dd7,_0x9adcc9=currentTablesState?.[_0x178ca0];if(!_0x9adcc9||!_0x9adcc9[_0x21538e(0x19f)][_0x5428cc])return;!_0x9adcc9['rowStatuses']&&(_0x9adcc9['rowStatuses']=Array(_0x9adcc9[_0x21538e(0x19f)]['length'])[_0x21538e(0x1be)](_0x21538e(0x208)));_0x9adcc9[_0x21538e(0x1c9)][_0x5428cc]=_0x21538e(0x135),updatedTables[_0x21538e(0x19c)](_0x178ca0);const _0x74d4db=_0x21538e(0x17b)+_0x9adcc9['name']+_0x21538e(0x205)+(_0x5428cc+0x1)+_0x21538e(0x194);log(_0x74d4db,'info');const _0x411e0f=getContext();if(_0x411e0f[_0x21538e(0x1de)]?.[_0x21538e(0x177)]>0x0){const _0x3333f3=_0x411e0f['chat'][_0x411e0f['chat'][_0x21538e(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x3333f3)){await saveChat(),renderTables(),dispatchTableUpdate(_0x178ca0);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x178ca0);}export async function restoreRow(_0x1c5a27,_0x1cbdfc){const _0x2be92f=_0x2f7dd7,_0x2dcd97=currentTablesState?.[_0x1c5a27];if(!_0x2dcd97||!_0x2dcd97[_0x2be92f(0x19f)][_0x1cbdfc]||!_0x2dcd97[_0x2be92f(0x1c9)])return;_0x2dcd97[_0x2be92f(0x1c9)][_0x1cbdfc]=_0x2be92f(0x208),updatedTables[_0x2be92f(0x19c)](_0x1c5a27);const _0x2a5737='表格\x20['+_0x2dcd97[_0x2be92f(0x17f)]+_0x2be92f(0x205)+(_0x1cbdfc+0x1)+_0x2be92f(0x1ea);log(_0x2a5737,_0x2be92f(0x235));const _0x416e99=getContext();if(_0x416e99[_0x2be92f(0x1de)]?.[_0x2be92f(0x177)]>0x0){const _0x888fb3=_0x416e99['chat'][_0x416e99[_0x2be92f(0x1de)][_0x2be92f(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x888fb3)){await saveChat(),renderTables(),dispatchTableUpdate(_0x1c5a27);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x1c5a27);}export function commitPendingDeletions(){const _0x1c6bb8=_0x2f7dd7;if(!currentTablesState)return![];let _0x2409b1=0x0;currentTablesState[_0x1c6bb8(0x1d8)]((_0x12461f,_0x1ec68)=>{const _0x347c83=_0x1c6bb8;if(!_0x12461f['rowStatuses']||_0x12461f[_0x347c83(0x1c9)]['length']===0x0)return;let _0x47a94d=![];for(let _0x349fd5=_0x12461f[_0x347c83(0x19f)][_0x347c83(0x177)]-0x1;_0x349fd5>=0x0;_0x349fd5--){_0x12461f['rowStatuses'][_0x349fd5]===_0x347c83(0x135)&&(_0x12461f[_0x347c83(0x19f)]['splice'](_0x349fd5,0x1),_0x12461f['rowStatuses'][_0x347c83(0x1e4)](_0x349fd5,0x1),_0x2409b1++,_0x47a94d=!![]);}_0x47a94d&&updatedTables[_0x347c83(0x19c)](_0x1ec68);});if(_0x2409b1>0x0)return log(_0x1c6bb8(0x132)+_0x2409b1+'\x20行。','info'),updatedTables['size']>0x0&&updatedTables['forEach'](_0x1bd274=>{dispatchTableUpdate(_0x1bd274);}),!![];return![];}export function insertColumn(_0x17ebbb,_0x2fd891,_0x2005e4){const _0x59d9a6=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x17ebbb])return;const _0x5ad783=currentTablesState[_0x17ebbb],_0x187104=_0x2005e4===_0x59d9a6(0x134)?_0x2fd891:_0x2fd891+0x1,_0xcfefd5='新列';_0x5ad783[_0x59d9a6(0x143)][_0x59d9a6(0x1e4)](_0x187104,0x0,_0xcfefd5),_0x5ad783['rows'][_0x59d9a6(0x1d8)](_0x1e4b15=>_0x1e4b15[_0x59d9a6(0x1e4)](_0x187104,0x0,''));if(!_0x5ad783['columnWidths'])_0x5ad783['columnWidths']=[];_0x5ad783['columnWidths'][_0x59d9a6(0x1e4)](_0x187104,0x0,null);const _0x20b6e7='表格\x20['+_0x5ad783['name']+_0x59d9a6(0x138)+(_0x2fd891+0x1)+_0x59d9a6(0x21f)+(_0x2005e4==='left'?'左侧':'右侧')+'插入了新列。';log(_0x20b6e7,_0x59d9a6(0x235));const _0x227dd4=getContext();if(_0x227dd4[_0x59d9a6(0x1de)]&&_0x227dd4[_0x59d9a6(0x1de)]['length']>0x0){const _0x206161=_0x227dd4[_0x59d9a6(0x1de)][_0x227dd4[_0x59d9a6(0x1de)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x206161)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x183bb0,_0x20ef29,_0x136c2b){const _0x15ed7d=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x183bb0])return;const _0x6f87f7=currentTablesState[_0x183bb0],_0x186c42=_0x6f87f7[_0x15ed7d(0x143)],_0x363ccf=_0x6f87f7[_0x15ed7d(0x19f)],_0x5515c9=_0x136c2b==='left'?_0x20ef29-0x1:_0x20ef29+0x1;if(_0x5515c9<0x0||_0x5515c9>=_0x186c42[_0x15ed7d(0x177)]){log(_0x15ed7d(0x23f)+_0x20ef29+_0x15ed7d(0x14b),'warn');return;}const [_0x1dbb8f]=_0x186c42[_0x15ed7d(0x1e4)](_0x20ef29,0x1);_0x186c42[_0x15ed7d(0x1e4)](_0x5515c9,0x0,_0x1dbb8f),_0x363ccf['forEach'](_0x377dba=>{const _0x28ef1f=_0x15ed7d,[_0x5d7ac9]=_0x377dba['splice'](_0x20ef29,0x1);_0x377dba[_0x28ef1f(0x1e4)](_0x5515c9,0x0,_0x5d7ac9);});if(_0x6f87f7[_0x15ed7d(0x1a2)]&&_0x6f87f7[_0x15ed7d(0x1a2)][_0x15ed7d(0x177)]>_0x20ef29){const [_0x4be663]=_0x6f87f7[_0x15ed7d(0x1a2)][_0x15ed7d(0x1e4)](_0x20ef29,0x1);_0x6f87f7[_0x15ed7d(0x1a2)][_0x15ed7d(0x1e4)](_0x5515c9,0x0,_0x4be663);}const _0x59a97b='表格\x20['+_0x6f87f7[_0x15ed7d(0x17f)]+_0x15ed7d(0x1f8)+_0x1dbb8f+'”已向'+(_0x136c2b===_0x15ed7d(0x134)?'左':'右')+_0x15ed7d(0x14c);log(_0x59a97b,_0x15ed7d(0x235));const _0x4c19b0=getContext();if(_0x4c19b0[_0x15ed7d(0x1de)]&&_0x4c19b0[_0x15ed7d(0x1de)][_0x15ed7d(0x177)]>0x0){const _0x14e60b=_0x4c19b0[_0x15ed7d(0x1de)][_0x4c19b0[_0x15ed7d(0x1de)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x14e60b)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x366dd0){const _0x139115=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x366dd0])return;const _0x27ab67=currentTablesState[_0x366dd0][_0x139115(0x17f)];currentTablesState[_0x139115(0x1e4)](_0x366dd0,0x1);const _0x52b735=_0x139115(0x17b)+_0x27ab67+_0x139115(0x146);log(_0x52b735,_0x139115(0x17c));const _0x1eab5a=getContext();if(_0x1eab5a[_0x139115(0x1de)]&&_0x1eab5a[_0x139115(0x1de)][_0x139115(0x177)]>0x0){const _0x2fcbc6=_0x1eab5a['chat'][_0x1eab5a[_0x139115(0x1de)][_0x139115(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x2fcbc6)){saveChat(),log(_0x139115(0x169),_0x139115(0x17c));return;}}log(_0x139115(0x200),_0x139115(0x12d)),saveChatDebounced();}export function addTable(_0x27cd52){const _0x1831dc=_0x2f7dd7;if(!_0x27cd52||!_0x27cd52[_0x1831dc(0x20c)]()){log(_0x1831dc(0x202),'error'),toastr['error'](_0x1831dc(0x133),_0x1831dc(0x1a4));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x1831dc(0x1f9)](_0x35aebf=>_0x35aebf[_0x1831dc(0x17f)]===_0x27cd52[_0x1831dc(0x20c)]())){log('无法创建表格:名为\x20\x22'+_0x27cd52+_0x1831dc(0x12f),_0x1831dc(0x12d)),toastr[_0x1831dc(0x12d)](_0x1831dc(0x1b0)+_0x27cd52+_0x1831dc(0x12f),_0x1831dc(0x1a4));return;}const _0x547ddb={'name':_0x27cd52['trim'](),'headers':[_0x1831dc(0x154)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState['push'](_0x547ddb);const _0x319e6f=_0x1831dc(0x1ac)+_0x27cd52[_0x1831dc(0x20c)]()+']。';log(_0x319e6f,_0x1831dc(0x17c));const _0x2bfa71=getContext();if(_0x2bfa71[_0x1831dc(0x1de)]&&_0x2bfa71[_0x1831dc(0x1de)][_0x1831dc(0x177)]>0x0){const _0x33737d=_0x2bfa71[_0x1831dc(0x1de)][_0x2bfa71[_0x1831dc(0x1de)][_0x1831dc(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x33737d)){saveChat(),log(_0x1831dc(0x209),_0x1831dc(0x17c));return;}}log(_0x1831dc(0x167),_0x1831dc(0x12d)),saveChatDebounced();}export function renameTable(_0x7d781e,_0x5e32f0){const _0x535dae=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x7d781e]){log(_0x535dae(0x1a5),_0x535dae(0x12d)),toastr[_0x535dae(0x12d)](_0x535dae(0x142),_0x535dae(0x1c8));return;}const _0x24cd9c=_0x5e32f0[_0x535dae(0x20c)]();if(!_0x24cd9c){log(_0x535dae(0x1fa),'error'),toastr[_0x535dae(0x12d)](_0x535dae(0x133),_0x535dae(0x1c8));return;}if(currentTablesState[_0x535dae(0x1f9)]((_0x33a359,_0x4ed9ea)=>_0x4ed9ea!==_0x7d781e&&_0x33a359[_0x535dae(0x17f)]===_0x24cd9c)){log(_0x535dae(0x225)+_0x24cd9c+_0x535dae(0x12f),'error'),toastr[_0x535dae(0x12d)](_0x535dae(0x1b0)+_0x24cd9c+_0x535dae(0x12f),'重命名失败');return;}const _0x3707d2=currentTablesState[_0x7d781e][_0x535dae(0x17f)];currentTablesState[_0x7d781e][_0x535dae(0x17f)]=_0x24cd9c,log(_0x535dae(0x185)+_0x3707d2+_0x535dae(0x180)+_0x24cd9c+'\x22。','success');const _0x13f409=getContext();if(_0x13f409['chat']&&_0x13f409[_0x535dae(0x1de)]['length']>0x0){const _0x6224f8=_0x13f409['chat'][_0x13f409[_0x535dae(0x1de)][_0x535dae(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x6224f8)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x565a07,_0x30fcd4){const _0x43985e=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x565a07])return;const _0x2e46fe=_0x30fcd4==='up'?_0x565a07-0x1:_0x565a07+0x1;if(_0x2e46fe<0x0||_0x2e46fe>=currentTablesState[_0x43985e(0x177)]){log('无法移动表格:索引\x20'+_0x565a07+_0x43985e(0x14b),_0x43985e(0x1d0));return;}const _0x1d65d0=currentTablesState[_0x565a07];currentTablesState[_0x565a07]=currentTablesState[_0x2e46fe],currentTablesState[_0x2e46fe]=_0x1d65d0;const _0x15b232=_0x43985e(0x17b)+_0x1d65d0[_0x43985e(0x17f)]+_0x43985e(0x227);log(_0x15b232,_0x43985e(0x17c));const _0xfa5e65=getContext();if(_0xfa5e65[_0x43985e(0x1de)]&&_0xfa5e65[_0x43985e(0x1de)][_0x43985e(0x177)]>0x0){const _0xed06d3=_0xfa5e65[_0x43985e(0x1de)][_0xfa5e65['chat'][_0x43985e(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0xed06d3)){saveChat(),log(_0x43985e(0x224),_0x43985e(0x17c));return;}}log(_0x43985e(0x18a),_0x43985e(0x12d)),saveChatDebounced();}export function updateTableRules(_0x1caef1,_0x395857){const _0x251421=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x1caef1])return;const _0x410832=currentTablesState[_0x1caef1];_0x410832[_0x251421(0x1bb)]=_0x395857[_0x251421(0x1bb)],_0x410832[_0x251421(0x247)]=_0x395857[_0x251421(0x247)],_0x410832['rule_delete']=_0x395857['rule_delete'],_0x410832[_0x251421(0x23c)]=_0x395857['rule_update'],_0x410832['charLimitRules']=_0x395857[_0x251421(0x13e)],_0x410832[_0x251421(0x161)]=_0x395857[_0x251421(0x161)],delete _0x410832['charLimitRule'];const _0x5f258e=_0x251421(0x17b)+_0x410832[_0x251421(0x17f)]+_0x251421(0x18c);log(_0x5f258e,_0x251421(0x235));const _0x155428=getContext();if(_0x155428['chat']&&_0x155428[_0x251421(0x1de)][_0x251421(0x177)]>0x0){const _0x3bd512=_0x155428[_0x251421(0x1de)][_0x155428['chat'][_0x251421(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x3bd512)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x5eba07,_0x3f9831,_0x49a0f1){const _0x353aa0=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x5eba07]){log(_0x353aa0(0x195)+_0x5eba07+'\x20中操作。','error');return;}const _0x1e6ffe=currentTablesState[_0x5eba07];if(_0x3f9831>=_0x1e6ffe[_0x353aa0(0x19f)][_0x353aa0(0x177)]){log(_0x353aa0(0x156)+_0x3f9831+_0x353aa0(0x1ce)+_0x1e6ffe['name']+_0x353aa0(0x145),_0x353aa0(0x1d0)),insertRow(_0x5eba07,_0x49a0f1);return;}const _0x15db73=_0x1e6ffe[_0x353aa0(0x19f)][_0x3f9831];for(const _0x51dd9b in _0x49a0f1){const _0x3cc00b=parseInt(_0x51dd9b,0xa);_0x3cc00b<_0x15db73[_0x353aa0(0x177)]&&(_0x15db73[_0x3cc00b]=_0x49a0f1[_0x3cc00b],addHighlight(_0x5eba07,_0x3f9831,_0x3cc00b));}updatedTables[_0x353aa0(0x19c)](_0x5eba07),dispatchTableUpdate(_0x5eba07);const _0x4996b7='AI\x20指令更新了表格\x20['+_0x1e6ffe[_0x353aa0(0x17f)]+_0x353aa0(0x205)+(_0x3f9831+0x1)+_0x353aa0(0x1ee);log(_0x4996b7,_0x353aa0(0x235));const _0x4e8f94=getContext();if(_0x4e8f94[_0x353aa0(0x1de)]&&_0x4e8f94[_0x353aa0(0x1de)]['length']>0x0){const _0xe68e59=_0x4e8f94['chat'][_0x4e8f94['chat'][_0x353aa0(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0xe68e59)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x10f803=_0x2f7dd7;if(!currentTablesState){log(_0x10f803(0x211),_0x10f803(0x12d));return;}currentTablesState[_0x10f803(0x1d8)]((_0x1fa6fa,_0x2f3810)=>{const _0xc09c83=_0x10f803;_0x1fa6fa[_0xc09c83(0x19f)]['length']>0x0&&updatedTables[_0xc09c83(0x19c)](_0x2f3810),_0x1fa6fa[_0xc09c83(0x19f)]=[],_0x1fa6fa[_0xc09c83(0x1c9)]=[];}),log('所有表格的行数据已在内存中清空。','warn'),dispatchAllTablesUpdate();const _0x53bdcd=getContext();if(_0x53bdcd[_0x10f803(0x1de)]&&_0x53bdcd[_0x10f803(0x1de)][_0x10f803(0x177)]>0x0){const _0x13ef83=_0x53bdcd[_0x10f803(0x1de)][_0x53bdcd[_0x10f803(0x1de)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x13ef83)){saveChat(),log(_0x10f803(0x141),_0x10f803(0x17c)),toastr[_0x10f803(0x17c)](_0x10f803(0x162),'操作完成');return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!',_0x10f803(0x12d)),saveChatDebounced();}function checkTableRules(_0x5e5a44){const _0x12855e=_0x2f7dd7;let _0x45688f=[];_0x5e5a44[_0x12855e(0x161)]&&_0x5e5a44[_0x12855e(0x161)]>0x0&&_0x5e5a44[_0x12855e(0x19f)][_0x12855e(0x177)]>_0x5e5a44['rowLimitRule']&&_0x45688f[_0x12855e(0x1cf)](_0x12855e(0x1cb)+_0x5e5a44[_0x12855e(0x17f)]+')超出规定('+_0x5e5a44[_0x12855e(0x161)]+_0x12855e(0x1ec)+_0x5e5a44[_0x12855e(0x161)]+_0x12855e(0x14d));const _0x3b62e4=_0x5e5a44[_0x12855e(0x13e)]||{};for(const _0x106e37 in _0x3b62e4){const _0x41c93d=parseInt(_0x106e37,0xa),_0x2f56d4=_0x3b62e4[_0x41c93d];if(_0x2f56d4>0x0&&_0x41c93d>=0x0&&_0x41c93d<_0x5e5a44['headers'][_0x12855e(0x177)]){const _0x4a3970=_0x5e5a44[_0x12855e(0x143)][_0x41c93d],_0x7144ca=[];_0x5e5a44[_0x12855e(0x19f)][_0x12855e(0x1d8)]((_0x1c3f8f,_0x949a4f)=>{const _0x48a7e4=_0x12855e;if(_0x5e5a44[_0x48a7e4(0x1c9)]&&_0x5e5a44[_0x48a7e4(0x1c9)][_0x949a4f]===_0x48a7e4(0x135))return;const _0x316fc7=_0x1c3f8f[_0x41c93d]||'';_0x316fc7[_0x48a7e4(0x177)]>_0x2f56d4&&_0x7144ca['push'](_0x949a4f);});if(_0x7144ca[_0x12855e(0x177)]>0x0){const _0x18bc96=_0x7144ca[_0x12855e(0x219)]('、');_0x45688f[_0x12855e(0x1cf)](_0x12855e(0x1cb)+_0x5e5a44['name']+')第('+_0x18bc96+_0x12855e(0x183)+_0x4a3970+')列,字符超出规定('+_0x2f56d4+_0x12855e(0x221));}}}return _0x45688f[_0x12855e(0x219)]('\x0a');}export function convertTablesToCsvString(){const _0x4e3900=_0x2f7dd7;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x23cd40='';return currentTablesState[_0x4e3900(0x1d8)]((_0x44fd16,_0xe951ed)=>{const _0x1bb532=_0x4e3900;_0x23cd40+=_0x1bb532(0x203)+_0xe951ed+':'+_0x44fd16[_0x1bb532(0x17f)]+'\x0a',_0x23cd40+=_0x1bb532(0x15b)+(_0x44fd16[_0x1bb532(0x1bb)]||'无')+'\x0a';const _0x441897=_0x44fd16[_0x1bb532(0x17f)]['replace'](/\s/g,'')+'内容';_0x23cd40+='<'+_0x441897+'>\x0a';const _0x5f1554=[_0x1bb532(0x1ff),..._0x44fd16['headers'][_0x1bb532(0x12b)]((_0x41ca52,_0x4097a0)=>_0x4097a0+':'+_0x41ca52)];_0x23cd40+='|\x20'+_0x5f1554['join']('\x20|\x20')+_0x1bb532(0x1a8),_0x23cd40+='|'+_0x5f1554['map'](()=>_0x1bb532(0x206))['join']('|')+'|\x0a';const _0x1fc678=_0x44fd16[_0x1bb532(0x19f)][_0x1bb532(0x1a7)]((_0x4417cb,_0x36ea8f)=>!_0x44fd16[_0x1bb532(0x1c9)]||_0x44fd16[_0x1bb532(0x1c9)][_0x36ea8f]!==_0x1bb532(0x135));_0x1fc678['length']===0x0?_0x23cd40+=_0x1bb532(0x207):_0x44fd16[_0x1bb532(0x19f)]['forEach']((_0x4204aa,_0x127c6c)=>{const _0x39d65b=_0x1bb532;if(_0x44fd16[_0x39d65b(0x1c9)]&&_0x44fd16[_0x39d65b(0x1c9)][_0x127c6c]===_0x39d65b(0x135))return;if(Array[_0x39d65b(0x12a)](_0x4204aa)){const _0x3076cd=_0x4204aa[_0x39d65b(0x12b)](_0x5d445a=>{const _0x40baaf=_0x39d65b,_0x333dbf=_0x5d445a===null||_0x5d445a===undefined||_0x5d445a===''?'未知':String(_0x5d445a);return _0x333dbf[_0x40baaf(0x16f)](/\|/g,'|');});_0x23cd40+='|\x20'+_0x127c6c+_0x39d65b(0x188)+_0x3076cd['join'](_0x39d65b(0x188))+'\x20|\x0a';}});const _0x43407a=checkTableRules(_0x44fd16);_0x43407a&&(_0x23cd40+=_0x43407a+'\x0a'),_0x23cd40+='\x0a',_0x23cd40+=_0x1bb532(0x192)+(_0x44fd16[_0x1bb532(0x247)]||'允许')+'\x0a',_0x23cd40+=_0x1bb532(0x13f)+(_0x44fd16[_0x1bb532(0x21c)]||'允许')+'\x0a',_0x23cd40+=_0x1bb532(0x19d)+(_0x44fd16['rule_update']||'允许')+'\x0a',_0xe951ed{const _0x2d090c=_0x4b4bac;_0x369723+='\x0a<'+_0x38f492[_0x2d090c(0x17f)]+'>\x0a';const _0x213797='|\x20'+_0x38f492[_0x2d090c(0x143)][_0x2d090c(0x219)](_0x2d090c(0x188))+'\x20|';_0x369723+=_0x213797+'\x0a';const _0x29213f='|'+_0x38f492[_0x2d090c(0x143)][_0x2d090c(0x12b)](()=>_0x2d090c(0x206))['join']('|')+'|';_0x369723+=_0x29213f+'\x0a';const _0x4efc62=_0x38f492['rows'][_0x2d090c(0x1a7)]((_0x417d81,_0x36f92e)=>!_0x38f492['rowStatuses']||_0x38f492[_0x2d090c(0x1c9)][_0x36f92e]!==_0x2d090c(0x135));_0x4efc62['length']>0x0?_0x4efc62['forEach'](_0x34a412=>{const _0x31575f=_0x2d090c;if(Array[_0x31575f(0x12a)](_0x34a412)){const _0x5b76e0=_0x34a412[_0x31575f(0x12b)](_0x43aae7=>_0x43aae7===null||_0x43aae7===undefined||_0x43aae7===''?'\x20':_0x43aae7['toString']()),_0xe4f8d1='|\x20'+_0x5b76e0[_0x31575f(0x219)](_0x31575f(0x188))+'\x20|';_0x369723+=_0xe4f8d1+'\x0a';}}):_0x369723+=_0x2d090c(0x207),_0x369723+='\x0a';}),_0x369723[_0x4b4bac(0x20c)]();}loadTables();export function getBatchFillerRuleTemplate(){const _0x4d5489=_0x2f7dd7;return extension_settings[extensionName]?.[_0x4d5489(0x19e)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x4d7746){const _0x60522b=_0x2f7dd7;extension_settings[extensionName][_0x60522b(0x19e)]=_0x4d7746,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x261dd1=_0x2f7dd7;return extension_settings[extensionName]?.[_0x261dd1(0x1cd)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x258fbe){const _0x57c4b5=_0x2f7dd7;extension_settings[extensionName][_0x57c4b5(0x1cd)]=_0x258fbe,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){return extension_settings[extensionName]?.['amily2_ai_template']??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0xe94605){const _0x548c10=_0x2f7dd7,_0x1724ea=extension_settings[extensionName];if(_0x1724ea[_0x548c10(0x1e6)]===![]){log(_0x548c10(0x16b),_0x548c10(0x235));return;}if(!_0xe94605){log(_0x548c10(0x220),'warn');return;}const _0x1b36a9=_0xe94605[_0x548c10(0x234)](/([\s\S]*?)<\/Amily2Edit>/);if(!_0x1b36a9||!_0x1b36a9[0x1]){log(_0x548c10(0x163),_0x548c10(0x1d0));return;}let _0x171bd9=_0x1b36a9[0x1][_0x548c10(0x16f)](//g,'')[_0x548c10(0x20c)]();if(!_0x171bd9){log(_0x548c10(0x157),_0x548c10(0x235));return;}const _0x2121d2=_0x171bd9['split']('\x0a')[_0x548c10(0x1a7)](_0x5d810f=>_0x5d810f[_0x548c10(0x20c)]()!=='');log(_0x548c10(0x1e3)+_0x2121d2['length']+_0x548c10(0x178),_0x548c10(0x235));const _0x251f7e={'insertRow':(_0x454dcf,_0x56a51f)=>{const _0x280d9c=_0x548c10;log(_0x280d9c(0x173)+_0x454dcf+',\x20data='+JSON[_0x280d9c(0x139)](_0x56a51f)+')','info'),insertRow(_0x454dcf,_0x56a51f);},'deleteRow':(_0x532e0d,_0x349a91)=>{const _0x67b545=_0x548c10;log('执行AI指令:\x20deleteRow(tableIndex='+_0x532e0d+_0x67b545(0x186)+_0x349a91+')',_0x67b545(0x235)),deleteRow(_0x532e0d,_0x349a91);},'updateRow':(_0x129994,_0x5a88f,_0x5335f9)=>{const _0x5a6256=_0x548c10;log(_0x5a6256(0x21e)+_0x129994+_0x5a6256(0x186)+_0x5a88f+_0x5a6256(0x226)+JSON[_0x5a6256(0x139)](_0x5335f9)+')',_0x5a6256(0x235)),updateRow(_0x129994,_0x5a88f,_0x5335f9);}};try{const _0x144a1d=Object[_0x548c10(0x1aa)](async function(){})['constructor'],_0x3da524=new _0x144a1d(_0x548c10(0x15c),_0x548c10(0x1c6)+_0x171bd9+_0x548c10(0x14a));await _0x3da524(_0x251f7e),log('所有AI指令已成功执行完毕。',_0x548c10(0x17c)),toastr[_0x548c10(0x17c)](_0x548c10(0x12e),_0x548c10(0x13b)),document[_0x548c10(0x1ef)](new CustomEvent(_0x548c10(0x217)));}catch(_0x4f17b0){log(_0x548c10(0x1bd)+_0x4f17b0['message'],_0x548c10(0x12d)),toastr['error'](_0x548c10(0x1b4)+_0x4f17b0[_0x548c10(0x20b)],'执行失败');}}export function saveAiTemplate(_0x14c6e3){const _0x2268c3=_0x2f7dd7;extension_settings[extensionName][_0x2268c3(0x1db)]=_0x14c6e3,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0xc3d7b9=![]){const _0x4100ac=_0x2f7dd7;if(!currentTablesState){log(_0x4100ac(0x1b7),_0x4100ac(0x12d)),toastr[_0x4100ac(0x12d)](_0x4100ac(0x199));return;}let _0x4b58ce,_0x114426,_0x5dd062;_0xc3d7b9?(_0x4b58ce=JSON[_0x4100ac(0x1b8)](JSON[_0x4100ac(0x139)](currentTablesState)),_0x114426=_0x4100ac(0x1ad),_0x5dd062=_0x4100ac(0x176)):(_0x4b58ce=currentTablesState[_0x4100ac(0x12b)](_0x360879=>({'name':_0x360879['name'],'headers':_0x360879[_0x4100ac(0x143)],'columnWidths':_0x360879[_0x4100ac(0x1a2)]||[],'note':_0x360879['note'],'rule_add':_0x360879[_0x4100ac(0x247)],'rule_delete':_0x360879[_0x4100ac(0x21c)],'rule_update':_0x360879['rule_update'],'charLimitRules':_0x360879[_0x4100ac(0x13e)]||{},'rowLimitRule':_0x360879[_0x4100ac(0x161)]||0x0,'rows':[],'rowStatuses':[]})),_0x114426=_0x4100ac(0x245),_0x5dd062=_0x4100ac(0x16d));const _0x27f206={'version':_0x4100ac(0x222),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x4b58ce},_0xb361db=new Blob([JSON[_0x4100ac(0x139)](_0x27f206,null,0x2)],{'type':_0x4100ac(0x231)}),_0x57dd2c=URL[_0x4100ac(0x1d5)](_0xb361db),_0x5bcfa6=document[_0x4100ac(0x1f2)]('a');_0x5bcfa6['href']=_0x57dd2c,_0x5bcfa6['download']=_0x4100ac(0x13c)+_0x5dd062+'-'+new Date()[_0x4100ac(0x15d)]()[_0x4100ac(0x160)](0x0,0xa)+_0x4100ac(0x19a),document['body'][_0x4100ac(0x1f7)](_0x5bcfa6),_0x5bcfa6[_0x4100ac(0x21a)](),document[_0x4100ac(0x1dd)][_0x4100ac(0x1ba)](_0x5bcfa6),URL['revokeObjectURL'](_0x57dd2c),log('【'+_0x5dd062+'】已成功导出。',_0x4100ac(0x17c)),toastr[_0x4100ac(0x17c)]('【'+_0x5dd062+_0x4100ac(0x16c),_0x4100ac(0x1eb));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x1a34ed){const _0x80a459=_0x2f7dd7,_0x468df7=document[_0x80a459(0x1f2)](_0x80a459(0x244));_0x468df7[_0x80a459(0x1da)]=_0x80a459(0x1c4),_0x468df7[_0x80a459(0x1c1)]=_0x80a459(0x19a),_0x468df7[_0x80a459(0x189)]=_0x461154=>{const _0xafb95b=_0x80a459,_0x19602c=_0x461154[_0xafb95b(0x1f1)][_0xafb95b(0x223)][0x0];if(!_0x19602c)return;const _0x8e1466=new FileReader();_0x8e1466[_0xafb95b(0x216)]=_0x1422e6=>{const _0x1ae42e=_0xafb95b;try{const _0x58f1ab=JSON['parse'](_0x1422e6[_0x1ae42e(0x1f1)]['result']);if(!_0x58f1ab['version']||!Array[_0x1ae42e(0x12a)](_0x58f1ab[_0x1ae42e(0x246)]))throw new Error(_0x1ae42e(0x198));const _0x4d5651=window[_0x1ae42e(0x16e)](_0x1ae42e(0x14f));if(!_0x4d5651){log(_0x1ae42e(0x22c),_0x1ae42e(0x235)),toastr[_0x1ae42e(0x235)](_0x1ae42e(0x196));return;}if(_0x58f1ab[_0x1ae42e(0x1ca)]===_0x1ae42e(0x222))saveBatchFillerRuleTemplate(_0x58f1ab[_0x1ae42e(0x21d)]||''),saveBatchFillerFlowTemplate(_0x58f1ab[_0x1ae42e(0x170)]||''),saveAiTemplate(_0x58f1ab[_0x1ae42e(0x184)]||'');else{if(_0x58f1ab[_0x1ae42e(0x1d3)]!==undefined&&_0x58f1ab['aiFlowTemplate']!==undefined)saveBatchFillerRuleTemplate(_0x58f1ab[_0x1ae42e(0x1d3)]||''),saveBatchFillerFlowTemplate(_0x58f1ab[_0x1ae42e(0x1f0)]||''),saveAiTemplate(_0x58f1ab[_0x1ae42e(0x1f0)]||'');else _0x58f1ab[_0x1ae42e(0x23d)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x58f1ab[_0x1ae42e(0x23d)]||''),saveAiTemplate(_0x58f1ab['aiTemplate']||'')):log(_0x1ae42e(0x1c2),_0x1ae42e(0x1d0));}const _0x678a9e=_0x58f1ab[_0x1ae42e(0x246)];_0x678a9e['forEach'](_0x10aa70=>{const _0x2c45c7=_0x1ae42e;if(_0x10aa70[_0x2c45c7(0x17f)]===undefined||_0x10aa70['headers']===undefined||_0x10aa70[_0x2c45c7(0x19f)]===undefined)throw new Error(_0x2c45c7(0x12c)+JSON['stringify'](_0x10aa70));if(_0x10aa70[_0x2c45c7(0x1bb)]===undefined)_0x10aa70['note']='无';if(_0x10aa70[_0x2c45c7(0x247)]===undefined)_0x10aa70[_0x2c45c7(0x247)]='允许';if(_0x10aa70[_0x2c45c7(0x21c)]===undefined)_0x10aa70[_0x2c45c7(0x21c)]='允许';if(_0x10aa70['rule_update']===undefined)_0x10aa70[_0x2c45c7(0x23c)]='允许';if(_0x10aa70[_0x2c45c7(0x1d9)]&&!_0x10aa70[_0x2c45c7(0x13e)])_0x10aa70[_0x2c45c7(0x13e)]={},_0x10aa70[_0x2c45c7(0x1d9)][_0x2c45c7(0x1bc)]!==-0x1&&_0x10aa70['charLimitRule'][_0x2c45c7(0x201)]>0x0&&(_0x10aa70[_0x2c45c7(0x13e)][_0x10aa70[_0x2c45c7(0x1d9)][_0x2c45c7(0x1bc)]]=_0x10aa70[_0x2c45c7(0x1d9)][_0x2c45c7(0x201)]);else _0x10aa70[_0x2c45c7(0x13e)]===undefined&&(_0x10aa70[_0x2c45c7(0x13e)]={});delete _0x10aa70[_0x2c45c7(0x1d9)],!_0x10aa70[_0x2c45c7(0x1c9)]&&(_0x10aa70[_0x2c45c7(0x1c9)]=Array(_0x10aa70[_0x2c45c7(0x19f)][_0x2c45c7(0x177)])[_0x2c45c7(0x1be)]('normal')),_0x10aa70[_0x2c45c7(0x161)]===undefined&&(_0x10aa70[_0x2c45c7(0x161)]=0x0),_0x10aa70[_0x2c45c7(0x1a2)]===undefined&&(_0x10aa70[_0x2c45c7(0x1a2)]=[]);}),setMemoryState(_0x678a9e),dispatchAllTablesUpdate();const _0x233a52=getContext();if(_0x233a52[_0x1ae42e(0x1de)]&&_0x233a52[_0x1ae42e(0x1de)]['length']>0x0){const _0x2bd198=_0x233a52['chat'][_0x233a52['chat'][_0x1ae42e(0x177)]-0x1];saveStateToMessage(getMemoryState(),_0x2bd198)&&(saveChat(),log('导入的预设已强制写入最新消息并立即保存。',_0x1ae42e(0x17c)));}else saveChatDebounced();log(_0x1ae42e(0x155),_0x1ae42e(0x17c)),toastr[_0x1ae42e(0x17c)](_0x1ae42e(0x1b9),_0x1ae42e(0x172)),typeof _0x1a34ed===_0x1ae42e(0x14e)&&_0x1a34ed();}catch(_0x269c92){log(_0x1ae42e(0x137)+_0x269c92['message'],_0x1ae42e(0x12d)),toastr[_0x1ae42e(0x12d)]('导入失败:'+_0x269c92['message'],'错误');}},_0x8e1466[_0xafb95b(0x22d)](_0x19602c);},_0x468df7[_0x80a459(0x21a)]();}export async function rollbackState(){const _0x258c36=_0x2f7dd7,_0x29f13b=getContext();if(!_0x29f13b||!_0x29f13b['chat']||_0x29f13b['chat'][_0x258c36(0x177)]<0x2)return log(_0x258c36(0x130),_0x258c36(0x1d0)),toastr[_0x258c36(0x1b5)](_0x258c36(0x23a)),![];const _0x2e5668=_0x29f13b[_0x258c36(0x1de)],_0x55316a=_0x2e5668[_0x258c36(0x177)]-0x1,_0x33aa6f=_0x2e5668[_0x55316a];log(_0x258c36(0x131)+(_0x55316a-0x1)+'\x20条消息加载表格状态...',_0x258c36(0x235));const _0x41e136=loadTables(_0x55316a);if(!_0x41e136)return log(_0x258c36(0x191),_0x258c36(0x12d)),toastr['error'](_0x258c36(0x23b)),![];setMemoryState(_0x41e136);if(saveStateToMessage(_0x41e136,_0x33aa6f))await saveChat(),log(_0x258c36(0x147),_0x258c36(0x17c));else return log(_0x258c36(0x20d),_0x258c36(0x12d)),toastr['error'](_0x258c36(0x228)),![];return renderTables(),updateOrInsertTableInChat(),log(_0x258c36(0x17d),_0x258c36(0x235)),!![];}export async function rollbackAndRefill(){const _0x1904dc=_0x2f7dd7,_0x13c570=extension_settings[extensionName];if(_0x13c570['table_system_enabled']===![]){log('表格系统总开关已关闭,跳过回退填表。',_0x1904dc(0x235)),toastr[_0x1904dc(0x235)](_0x1904dc(0x1f3));return;}toastr['info'](_0x1904dc(0x140));const _0x46bbdb=await rollbackState();if(!_0x46bbdb){toastr[_0x1904dc(0x12d)](_0x1904dc(0x165));return;}toastr[_0x1904dc(0x17c)](_0x1904dc(0x158));const _0x342569=getContext(),_0x19e834=_0x342569[_0x1904dc(0x1de)][_0x342569[_0x1904dc(0x1de)][_0x1904dc(0x177)]-0x1];try{await fillWithSecondaryApi(_0x19e834,!![]),log(_0x1904dc(0x1d6),_0x1904dc(0x17c));}catch(_0x17980c){log(_0x1904dc(0x215)+_0x17980c[_0x1904dc(0x20b)],_0x1904dc(0x12d)),toastr[_0x1904dc(0x12d)]('重新填表失败:\x20'+_0x17980c[_0x1904dc(0x20b)]);}}export function updateColumnWidth(_0x2ac640,_0x291e79,_0x3e9894){const _0x5c1c29=_0x2f7dd7;if(!currentTablesState||!currentTablesState[_0x2ac640])return;const _0x43d44f=currentTablesState[_0x2ac640];!_0x43d44f[_0x5c1c29(0x1a2)]&&(_0x43d44f[_0x5c1c29(0x1a2)]=[]);while(_0x43d44f[_0x5c1c29(0x1a2)][_0x5c1c29(0x177)]<_0x43d44f[_0x5c1c29(0x143)]['length']){_0x43d44f[_0x5c1c29(0x1a2)]['push'](null);}_0x43d44f[_0x5c1c29(0x1a2)][_0x291e79]=_0x3e9894;const _0x3f358c=getContext();if(_0x3f358c[_0x5c1c29(0x1de)]&&_0x3f358c[_0x5c1c29(0x1de)][_0x5c1c29(0x177)]>0x0){const _0x4c1490=_0x3f358c['chat'][_0x3f358c[_0x5c1c29(0x1de)][_0x5c1c29(0x177)]-0x1];if(saveStateToMessage(currentTablesState,_0x4c1490)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x49adf6=_0x2f7dd7,_0x49bfdd=getMemoryState();if(!_0x49bfdd||_0x49bfdd[_0x49adf6(0x177)]===0x0)return!![];return _0x49bfdd[_0x49adf6(0x17a)](_0x45b449=>!_0x45b449['rows']||_0x45b449['rows'][_0x49adf6(0x177)]===0x0);}export function clearGlobalPreset(){const _0x39c2c1=_0x2f7dd7;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x39c2c1(0x22f)]){const _0x4e766e=window['confirm']('【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。');_0x4e766e?(delete extension_settings[extensionName][_0x39c2c1(0x22f)],saveSettingsDebounced(),log(_0x39c2c1(0x1d7),_0x39c2c1(0x17c)),toastr['success'](_0x39c2c1(0x1d4),_0x39c2c1(0x1c5))):(log('用户取消了清除全局预设的操作。',_0x39c2c1(0x235)),toastr[_0x39c2c1(0x235)](_0x39c2c1(0x152)));}else log('无需清除,当前未设置任何全局预设。','info'),toastr[_0x39c2c1(0x235)](_0x39c2c1(0x18d),'提示');}export function importGlobalPreset(_0x5d5de9){const _0x129502=_0x2f7dd7,_0xd14e20=document[_0x129502(0x1f2)]('input');_0xd14e20['type']=_0x129502(0x1c4),_0xd14e20[_0x129502(0x1c1)]='.json',_0xd14e20[_0x129502(0x189)]=_0x405894=>{const _0x4de312=_0x129502,_0x4059a6=_0x405894[_0x4de312(0x1f1)][_0x4de312(0x223)][0x0];if(!_0x4059a6)return;const _0x65ef5=new FileReader();_0x65ef5[_0x4de312(0x216)]=_0x5aee87=>{const _0xcb391a=_0x4de312;try{const _0x54ab37=JSON[_0xcb391a(0x1b8)](_0x5aee87[_0xcb391a(0x1f1)][_0xcb391a(0x175)]);if(!_0x54ab37['version']||!Array[_0xcb391a(0x12a)](_0x54ab37['tables']))throw new Error(_0xcb391a(0x198));const _0x2311c2=window[_0xcb391a(0x16e)](_0xcb391a(0x1cc));if(!_0x2311c2){log(_0xcb391a(0x21b),_0xcb391a(0x235)),toastr[_0xcb391a(0x235)](_0xcb391a(0x152));return;}const _0x277999=_0x54ab37[_0xcb391a(0x246)]['map'](_0x44f8c4=>({'name':_0x44f8c4['name'],'headers':_0x44f8c4[_0xcb391a(0x143)],'note':_0x44f8c4['note'],'rule_add':_0x44f8c4[_0xcb391a(0x247)],'rule_delete':_0x44f8c4['rule_delete'],'rule_update':_0x44f8c4['rule_update'],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0xcb391a(0x22f)]={'version':_0x54ab37[_0xcb391a(0x1ca)],'tables':_0x277999,'batchFillerRuleTemplate':_0x54ab37[_0xcb391a(0x21d)],'batchFillerFlowTemplate':_0x54ab37[_0xcb391a(0x170)]},saveSettingsDebounced();if(_0x54ab37[_0xcb391a(0x1ca)]===_0xcb391a(0x222))saveBatchFillerRuleTemplate(_0x54ab37['batchFillerRuleTemplate']||''),saveBatchFillerFlowTemplate(_0x54ab37[_0xcb391a(0x170)]||''),saveAiTemplate(_0x54ab37['injectionFlowTemplate']||'');else{if(_0x54ab37[_0xcb391a(0x1d3)]!==undefined&&_0x54ab37['aiFlowTemplate']!==undefined)saveBatchFillerRuleTemplate(_0x54ab37['aiRuleTemplate']||''),saveBatchFillerFlowTemplate(_0x54ab37[_0xcb391a(0x1f0)]||''),saveAiTemplate(_0x54ab37[_0xcb391a(0x1f0)]||'');else _0x54ab37[_0xcb391a(0x23d)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x54ab37[_0xcb391a(0x23d)]||''),saveAiTemplate(_0x54ab37[_0xcb391a(0x23d)]||''));}log('全局预设已成功导入并保存到扩展设置中。',_0xcb391a(0x17c)),toastr['success'](_0xcb391a(0x187),_0xcb391a(0x151)),typeof _0x5d5de9===_0xcb391a(0x14e)&&_0x5d5de9();}catch(_0x3139f3){log(_0xcb391a(0x150)+_0x3139f3['message'],_0xcb391a(0x12d)),toastr[_0xcb391a(0x12d)](_0xcb391a(0x1e1)+_0x3139f3[_0xcb391a(0x20b)],'错误');}},_0x65ef5[_0x4de312(0x22d)](_0x4059a6);},_0xd14e20[_0x129502(0x21a)]();}