mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 18:15:50 +00:00
2 lines
59 KiB
JavaScript
2 lines
59 KiB
JavaScript
const _0x23b7a8=_0x1fff;(function(_0x14d7f6,_0x480948){const _0x7b34e6=_0x1fff,_0x4a9127=_0x14d7f6();while(!![]){try{const _0x21d2f1=parseInt(_0x7b34e6(0x187))/0x1*(-parseInt(_0x7b34e6(0x28f))/0x2)+parseInt(_0x7b34e6(0x23b))/0x3*(parseInt(_0x7b34e6(0x18c))/0x4)+-parseInt(_0x7b34e6(0x1d9))/0x5+-parseInt(_0x7b34e6(0x266))/0x6+-parseInt(_0x7b34e6(0x17c))/0x7*(parseInt(_0x7b34e6(0x1a8))/0x8)+-parseInt(_0x7b34e6(0x1a2))/0x9*(parseInt(_0x7b34e6(0x18b))/0xa)+parseInt(_0x7b34e6(0x240))/0xb*(parseInt(_0x7b34e6(0x236))/0xc);if(_0x21d2f1===_0x480948)break;else _0x4a9127['push'](_0x4a9127['shift']());}catch(_0x5aa6b1){_0x4a9127['push'](_0x4a9127['shift']());}}}(_0x47f5,0xd1019));function _0x47f5(){const _0x3e2dc7=['【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\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。','【触发条件】当一个有名有姓的角色首次出现,并与<user>或当前剧情发生有意义的互动时,必须为其创建新的一行。','rule_add','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','用户取消了全局预设导入操作。','getPrototypeOf','废黜表格后的状态已强制写入最新消息并立即保存。','clear','limit',',\x20data=','aiFlowTemplate','成功删除了表格\x20','onload','新列\x20','【说明】:\x0a','mes','readAsText','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。',')列,字符超出规定(',']\x20的第\x20','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','导出成功','800755zfWkVa','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','body','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\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任务完成或失败后的最终结果。','\x22\x20的表格已存在。','confirm',')字限制,请进行缩减。】','技能效果','type','headers','fill','batch_filler_rule_template','\x20|\x0a','无法移动列:索引\x20','\x20列。','number','未在聊天记录中找到表格,正在加载全局预设...','所有表格的行数据已在内存中清空。','未能在上一楼找到可用的表格状态。',']\x20的列“','createElement','表格不存在。','\x20中操作。','\x20的第\x20','),已智能转换为在表格\x20[','.json','【触发条件】只能在<user>明确表示要移除或废弃某条设定时,才能删除对应行。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?',']\x20的顺序已调整。','result','预设已成功导入并应用。','charLimitRules','任务名','warn','填表完成','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与<user>关系:\x20描述该角色与主角<user>之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','\x0a*\x20','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','新列\x201','【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','splice',']\x20的表头“','缺少状态或目标消息,无法保存。','正在执行回退并重新填表...','导入的表格数据格式不正确:\x20','aiTemplate','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','accept','删除列失败:在表格\x20','substring','【修改】:\x20','【核心作用】此表格记录了来自<user>的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录<user>提出的具体要求。','file','物品栏','全局预设已被清除。','AI返回内容为空,无法更新表格。','click','未能在上一楼找到可用的表格状态,无法回退。','Amily2-','执行AI指令:\x20deleteRow(tableIndex=','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非<user>的技能,应立即删除。','columnWidths','aiRuleTemplate','用户取消了清除全局预设的操作。','AMILY2_TABLE_UPDATED','已清除所有单元格高亮标记。','操作成功','无法移动表格:索引\x20','执行失败','function','当前没有设置全局预设。','removeChild',')\x20的第\x20','\x20的表格。','已成功将回退后的状态保存至最新消息。','预设已成功导入!',']\x20新增了一列。','【触发条件】当<user>在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','\x20条消息中找到基准表格数据。','未知操作','完整备份','设置成功','全局预设已设置!新聊天将默认使用此预设。','未能保存回退状态,操作中止。','正在尝试从第\x20','创建失败','导入的预设已强制写入最新消息并立即保存。','【当前(','normal','\x20行已标记为待删除。','pending-deletion','isArray','此地角色','6240372IxEIwD','世界钟','application/json','【删除】:\x20','error','14583stfxpE','这是一个新创建的表格。','执行AI指令:\x20insertRow(tableIndex=','anchor',',\x20rowIndex=','44Ikrkfq','some','table_system_enabled','成功在表格\x20','无法创建表格:名为\x20\x22','chat','”已更新为“','info','操作已取消。','表格\x20\x22','所有AI指令已成功执行完毕。','已提交并永久删除了\x20','\x20|\x20','导入成功','加载全局预设失败:\x20','injectionFlowTemplate','(该表当前内容为空)\x0a','amily2_tables_data','\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','角色名','batchFillerRuleTemplate','时空栏','rowStatuses','push','amily2_ai_template','物品名','extra','trim','UI已更新以显示回退后的状态。','rule_update',']\x20在第\x20','batchFillerFlowTemplate','dispatchEvent','input','所有表格的剧情内容已清空。','表格名称不能为空。','match',']\x20新增了一行。','3278004bVjZjE','join',']\x20已被成功废黜。','name','\x20条表格操作指令...','AI指令块为空,无需执行任何操作。','重要原因','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','表格系统总开关已关闭,跳过\x20<Amily2Edit>\x20标签处理。','Amily2-Table-Preset-v2.0-full','message','设定栏','includes','其他重要信息','rows','---','无需清除,当前未设置任何全局预设。','回退状态保存失败,操作中止。','表格顺序调整后的状态已强制写入最新消息并立即保存。','与<user>关系','Log','\x20行。','\x20行已恢复。','length','】已成功导出。','charLimitRule','log','”已向','version','无法回退:聊天记录不足。','parse','文件格式无效或缺少版本号/表格数据。','导入全局预设失败:\x20','...]','note','导入失败:','在第\x20','从预设模板生成默认表格...','\x20已在边界。','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?',')超出规定(','2hyHCsS','成功将表格\x20','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!',')行以下,但切莫完全删除。】','1547URQdzV','rule_delete','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','forEach','add','download','\x20中找不到索引为\x20','tables','操作完成','开始时间/结束时间','161159pCxvWa','纯净预设','rowLimitRule','插入了新列。','24730HTmdwY','1384BzLcNX','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','\x20行移动到第\x20','Amily2-Table-Preset-v3.0-separated_templates','未找到任何表格数据或全局预设,使用默认模板。','every','\x22\x20已更新内存状态。','target','重命名失败:表格不存在。','表格\x20[','revokeObjectURL','全局预设已成功导入并保存到扩展设置中。','技能名','表格状态已准备写入消息\x20[','success','准备执行从AI返回的\x20','global_table_preset','files','onchange','UI操作\x20\x22','rowIndex','columnIndex','4644DvERCt','AI指令意图更新不存在的行\x20(rowIndex:\x20','重命名失败:名为\x20\x22','AI\x20指令更新了表格\x20[','AI指令错误:尝试在不存在的表格索引\x20','filter','27592cUexIw','【增加】:\x20',')第(','已根据AI的指示成功更新表格!','【核心作用】专门用于记录主角<user>掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','\x20行位置插入了新行。','聊天记录不足,无法执行回退操作。','stringify','名为\x20\x22','size','角色栏','\x22\x20已重命名为\x20\x22','\x0a---\x0a','【触发条件】只能在<user>明确表示要修改某条设定时,才能更新对应行的描述。','状态回退失败,已中止操作。','left','href','】已开始下载。','执行AI指令时出错:\x20','导入预设失败:\x20','\x20列的','重命名失败','[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','map','已清除所有表格的更新标记。','replace'];_0x47f5=function(){return _0x3e2dc7;};return _0x47f5();}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=_0x23b7a8(0x251);let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();function dispatchTableUpdate(_0x2cf4a4){const _0xabea40=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x2cf4a4])return;const _0x307141=currentTablesState[_0x2cf4a4];let _0x34c5a2='database';if(_0x307141[_0xabea40(0x269)][_0xabea40(0x272)]('时空')||_0x307141[_0xabea40(0x269)][_0xabea40(0x272)](_0xabea40(0x237)))_0x34c5a2=_0xabea40(0x23e);if(_0x307141[_0xabea40(0x269)][_0xabea40(0x272)]('日志')||_0x307141['name']['includes'](_0xabea40(0x27a)))_0x34c5a2=_0xabea40(0x280);const _0x120f84=new CustomEvent(_0xabea40(0x219),{'detail':{'tableName':_0x307141[_0xabea40(0x269)],'data':_0x307141[_0xabea40(0x274)],'headers':_0x307141['headers'],'rowStatuses':_0x307141['rowStatuses']||[],'role':_0x34c5a2}});document[_0xabea40(0x260)](_0x120f84),log('[SuperMemory]\x20Dispatched\x20update\x20event\x20for\x20'+_0x307141['name'],_0xabea40(0x247));}export function addHighlight(_0x399b0e,_0x5eb664,_0xbde0a6){const _0x763897=_0x23b7a8,_0x4154fb=_0x399b0e+'-'+_0x5eb664+'-'+_0xbde0a6;highlightedCells[_0x763897(0x181)](_0x4154fb);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x96d147=_0x23b7a8;highlightedCells['size']>0x0&&(highlightedCells[_0x96d147(0x1c9)](),log(_0x96d147(0x21a),_0x96d147(0x247)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x84235b=_0x23b7a8;updatedTables[_0x84235b(0x1b1)]>0x0&&(updatedTables[_0x84235b(0x1c9)](),log(_0x84235b(0x1c0),'info'));}export function setMemoryState(_0x267504){currentTablesState=_0x267504;}export function loadMemoryState(_0x1d3272){const _0x5613da=_0x23b7a8;if(!_0x1d3272)return;setMemoryState(_0x1d3272),renderTables(),updateOrInsertTableInChat(),log(_0x5613da(0x1be),'info');}export function saveMemoryState(){const _0x11598b=_0x23b7a8,_0x1e061a=getContext();if(_0x1e061a[_0x11598b(0x245)]&&_0x1e061a[_0x11598b(0x245)][_0x11598b(0x27d)]>0x0){const _0x2f101f=_0x1e061a[_0x11598b(0x245)][_0x1e061a[_0x11598b(0x245)][_0x11598b(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x2f101f))return!![];}return![];}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x23b7a8(0x255),'headers':['日期','时段','时间','地点',_0x23b7a8(0x235)],'note':_0x23b7a8(0x1d4),'rule_add':_0x23b7a8(0x17e),'rule_delete':_0x23b7a8(0x1d3),'rule_update':'【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':_0x23b7a8(0x1b2),'headers':[_0x23b7a8(0x253),'外貌','身形','衣着','性格','身份','职业',_0x23b7a8(0x279),'爱好','住所',_0x23b7a8(0x273)],'note':_0x23b7a8(0x1fc),'rule_add':_0x23b7a8(0x1c3),'rule_delete':_0x23b7a8(0x1da),'rule_update':'【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与<user>的关系发生根本性转变(如从敌人变为盟友)。','charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':'任务栏','headers':[_0x23b7a8(0x1f9),'类型','详情','状态','执行者','地点',_0x23b7a8(0x186),'结果'],'note':_0x23b7a8(0x1dc),'rule_add':_0x23b7a8(0x200),'rule_delete':_0x23b7a8(0x1fe),'rule_update':_0x23b7a8(0x26d),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x23b7a8(0x20e),'headers':[_0x23b7a8(0x259),'类型','详情','状态','拥有者',_0x23b7a8(0x26c)],'note':_0x23b7a8(0x1c2),'rule_add':'【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','rule_delete':'【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','rule_update':_0x23b7a8(0x18d),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':'技能栏','headers':[_0x23b7a8(0x198),_0x23b7a8(0x1e0)],'note':_0x23b7a8(0x1ac),'rule_add':_0x23b7a8(0x226),'rule_delete':_0x23b7a8(0x215),'rule_update':_0x23b7a8(0x1d7),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x23b7a8(0x271),'headers':['类型','具体描述'],'note':_0x23b7a8(0x20c),'rule_add':'【触发条件】当<user>通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','rule_delete':_0x23b7a8(0x1f3),'rule_update':_0x23b7a8(0x1b5),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x25d8de=_0x23b7a8;log(_0x25d8de(0x28b),_0x25d8de(0x247));const _0xd71791=JSON[_0x25d8de(0x284)](JSON[_0x25d8de(0x1af)](defaultTemplate['tables']));return _0xd71791[_0x25d8de(0x180)](_0x1c098b=>{const _0x4649ce=_0x25d8de;_0x1c098b[_0x4649ce(0x27f)]={'columnIndex':-0x1,'limit':0x0},_0x1c098b[_0x4649ce(0x189)]=0x0,_0x1c098b[_0x4649ce(0x216)]=[];}),_0xd71791;}export function loadTables(_0x2cc81d=-0x1){const _0xf1c1e7=_0x23b7a8,_0x2f3862=getContext();if(_0x2f3862&&_0x2f3862[_0xf1c1e7(0x245)]&&_0x2f3862['chat'][_0xf1c1e7(0x27d)]>0x0){const _0x354387=_0x2cc81d===-0x1?_0x2f3862[_0xf1c1e7(0x245)][_0xf1c1e7(0x27d)]-0x1:_0x2cc81d-0x1;for(let _0x29f7d8=_0x354387;_0x29f7d8>=0x0;_0x29f7d8--){const _0xda9f88=_0x2f3862[_0xf1c1e7(0x245)][_0x29f7d8];if(_0xda9f88[_0xf1c1e7(0x25a)]&&_0xda9f88['extra'][TABLE_DATA_KEY]){log(_0xf1c1e7(0x28a)+_0x29f7d8+_0xf1c1e7(0x227),_0xf1c1e7(0x247));let _0x2d29e5=JSON[_0xf1c1e7(0x284)](JSON[_0xf1c1e7(0x1af)](_0xda9f88[_0xf1c1e7(0x25a)][TABLE_DATA_KEY]));return _0x2d29e5[_0xf1c1e7(0x180)](_0x358278=>{const _0x4b0a4e=_0xf1c1e7;if(_0x358278[_0x4b0a4e(0x288)]===undefined)_0x358278[_0x4b0a4e(0x288)]='无';if(_0x358278['rule_add']===undefined)_0x358278[_0x4b0a4e(0x1c4)]='允许';if(_0x358278[_0x4b0a4e(0x17d)]===undefined)_0x358278[_0x4b0a4e(0x17d)]='允许';if(_0x358278[_0x4b0a4e(0x25d)]===undefined)_0x358278[_0x4b0a4e(0x25d)]='允许';_0x358278[_0x4b0a4e(0x27f)]&&!_0x358278[_0x4b0a4e(0x1f8)]&&(_0x358278[_0x4b0a4e(0x1f8)]={},_0x358278['charLimitRule'][_0x4b0a4e(0x1a1)]!==-0x1&&_0x358278[_0x4b0a4e(0x27f)][_0x4b0a4e(0x1ca)]>0x0&&(_0x358278[_0x4b0a4e(0x1f8)][_0x358278[_0x4b0a4e(0x27f)][_0x4b0a4e(0x1a1)]]=_0x358278['charLimitRule'][_0x4b0a4e(0x1ca)]));delete _0x358278[_0x4b0a4e(0x27f)];if(_0x358278['rowLimitRule']===undefined)_0x358278[_0x4b0a4e(0x189)]=0x0;if(_0x358278[_0x4b0a4e(0x216)]===undefined)_0x358278['columnWidths']=[];!_0x358278[_0x4b0a4e(0x256)]&&(_0x358278[_0x4b0a4e(0x256)]=Array(_0x358278[_0x4b0a4e(0x274)][_0x4b0a4e(0x27d)])[_0x4b0a4e(0x1e3)]('normal'));}),currentTablesState=_0x2d29e5,currentTablesState;}}}if(extension_settings[extensionName]?.['global_table_preset']){log(_0xf1c1e7(0x1e9),'info');try{const _0x503e7a=extension_settings[extensionName]['global_table_preset'];return currentTablesState=JSON[_0xf1c1e7(0x284)](JSON[_0xf1c1e7(0x1af)](_0x503e7a[_0xf1c1e7(0x184)])),_0x503e7a[_0xf1c1e7(0x254)]!==undefined&&saveBatchFillerRuleTemplate(_0x503e7a[_0xf1c1e7(0x254)]),_0x503e7a[_0xf1c1e7(0x25f)]!==undefined&&saveBatchFillerFlowTemplate(_0x503e7a[_0xf1c1e7(0x25f)]),currentTablesState;}catch(_0x5f0b88){log(_0xf1c1e7(0x24e)+_0x5f0b88[_0xf1c1e7(0x270)],_0xf1c1e7(0x23a));}}return log(_0xf1c1e7(0x190),_0xf1c1e7(0x247)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x432764,_0x8f5406){const _0x17f3b2=_0x23b7a8;if(!_0x432764||!_0x8f5406)return log(_0x17f3b2(0x203),_0x17f3b2(0x23a)),![];return!_0x8f5406[_0x17f3b2(0x25a)]&&(_0x8f5406['extra']={}),_0x8f5406[_0x17f3b2(0x25a)][TABLE_DATA_KEY]=JSON[_0x17f3b2(0x284)](JSON['stringify'](_0x432764)),log(_0x17f3b2(0x199)+_0x8f5406[_0x17f3b2(0x1d1)][_0x17f3b2(0x20a)](0x0,0x14)+_0x17f3b2(0x287),'info'),!![];}export function saveTables(_0x283e8e=_0x23b7a8(0x228)){const _0x14675b=_0x23b7a8;return log(_0x14675b(0x19f)+_0x283e8e+_0x14675b(0x192),_0x14675b(0x247)),!![];}export function deleteColumn(_0x5b99cf,_0x28a284){const _0x274bb3=_0x23b7a8,_0x3f1a9d=getMemoryState();if(!_0x3f1a9d[_0x5b99cf]||_0x28a284<0x0||_0x28a284>=_0x3f1a9d[_0x5b99cf][_0x274bb3(0x1e2)][_0x274bb3(0x27d)]){log(_0x274bb3(0x209)+_0x5b99cf+_0x274bb3(0x183)+_0x28a284+'\x20的列。',_0x274bb3(0x23a));return;}_0x3f1a9d[_0x5b99cf][_0x274bb3(0x1e2)][_0x274bb3(0x201)](_0x28a284,0x1),_0x3f1a9d[_0x5b99cf][_0x274bb3(0x274)][_0x274bb3(0x180)](_0x180c76=>{const _0x5923ef=_0x274bb3;_0x180c76[_0x5923ef(0x27d)]>_0x28a284&&_0x180c76[_0x5923ef(0x201)](_0x28a284,0x1);}),_0x3f1a9d[_0x5b99cf][_0x274bb3(0x216)]&&_0x3f1a9d[_0x5b99cf][_0x274bb3(0x216)][_0x274bb3(0x27d)]>_0x28a284&&_0x3f1a9d[_0x5b99cf][_0x274bb3(0x216)]['splice'](_0x28a284,0x1),log(_0x274bb3(0x1cd)+_0x5b99cf+_0x274bb3(0x1f0)+(_0x28a284+0x1)+_0x274bb3(0x1e7),'success'),saveTables(_0x3f1a9d),dispatchTableUpdate(_0x5b99cf);}export function moveRow(_0x58e26d,_0xfc8847,_0xd132ad){const _0x552c31=_0x23b7a8,_0x4efed4=getMemoryState(),_0x16ace5=_0x4efed4[_0x58e26d];if(!_0x16ace5||_0xfc8847<0x0||_0xfc8847>=_0x16ace5['rows'][_0x552c31(0x27d)])return;const _0xdb1851=_0xd132ad==='up'?_0xfc8847-0x1:_0xfc8847+0x1;if(_0xdb1851<0x0||_0xdb1851>=_0x16ace5['rows'][_0x552c31(0x27d)])return;const [_0x44d5b0]=_0x16ace5[_0x552c31(0x274)][_0x552c31(0x201)](_0xfc8847,0x1);_0x16ace5[_0x552c31(0x274)][_0x552c31(0x201)](_0xdb1851,0x0,_0x44d5b0);if(_0x16ace5[_0x552c31(0x256)]&&_0x16ace5['rowStatuses']['length']===_0x16ace5[_0x552c31(0x274)][_0x552c31(0x27d)]+0x1){const [_0x10e939]=_0x16ace5[_0x552c31(0x256)]['splice'](_0xfc8847,0x1);_0x16ace5['rowStatuses'][_0x552c31(0x201)](_0xdb1851,0x0,_0x10e939);}log(_0x552c31(0x290)+_0x58e26d+_0x552c31(0x1f0)+(_0xfc8847+0x1)+_0x552c31(0x18e)+(_0xdb1851+0x1)+'\x20行。',_0x552c31(0x19a)),saveTables(_0x4efed4),dispatchTableUpdate(_0x58e26d);}export function insertRow(_0x403218,_0x5e751e,_0xdcf31d='below'){const _0xb24abe=_0x23b7a8,_0x3fcb58=getMemoryState(),_0x119a7f=_0x3fcb58[_0x403218];if(!_0x119a7f){log('插入行失败:找不到索引为\x20'+_0x403218+_0xb24abe(0x222),_0xb24abe(0x23a));return;}let _0x38733f;typeof _0x5e751e===_0xb24abe(0x1e8)?_0x38733f=_0xdcf31d==='above'?_0x5e751e:_0x5e751e+0x1:_0x38733f=_0x119a7f[_0xb24abe(0x274)][_0xb24abe(0x27d)];if(_0x38733f<0x0)_0x38733f=0x0;if(_0x38733f>_0x119a7f[_0xb24abe(0x274)][_0xb24abe(0x27d)])_0x38733f=_0x119a7f[_0xb24abe(0x274)]['length'];const _0x246ce2=new Array(_0x119a7f[_0xb24abe(0x1e2)][_0xb24abe(0x27d)])[_0xb24abe(0x1e3)]('');if(typeof _0x5e751e==='object'&&_0x5e751e!==null)for(const _0x1952be in _0x5e751e){const _0xaa1059=parseInt(_0x1952be,0xa);!isNaN(_0xaa1059)&&_0xaa1059<_0x246ce2[_0xb24abe(0x27d)]&&(_0x246ce2[_0xaa1059]=_0x5e751e[_0x1952be],addHighlight(_0x403218,_0x38733f,_0xaa1059));}_0x119a7f[_0xb24abe(0x274)][_0xb24abe(0x201)](_0x38733f,0x0,_0x246ce2);if(!_0x119a7f[_0xb24abe(0x256)])_0x119a7f[_0xb24abe(0x256)]=Array(_0x119a7f[_0xb24abe(0x274)]['length'])['fill'](_0xb24abe(0x231));_0x119a7f[_0xb24abe(0x256)][_0xb24abe(0x201)](_0x38733f,0x0,_0xb24abe(0x231)),updatedTables[_0xb24abe(0x181)](_0x403218),dispatchTableUpdate(_0x403218),log(_0xb24abe(0x243)+_0x119a7f[_0xb24abe(0x269)]+'\x20(索引\x20'+_0x403218+_0xb24abe(0x221)+(_0x38733f+0x1)+_0xb24abe(0x1ad),_0xb24abe(0x19a));const _0x56ab84=getContext();if(_0x56ab84[_0xb24abe(0x245)]&&_0x56ab84[_0xb24abe(0x245)][_0xb24abe(0x27d)]>0x0){const _0x951b90=_0x56ab84['chat'][_0x56ab84[_0xb24abe(0x245)][_0xb24abe(0x27d)]-0x1];if(saveStateToMessage(_0x3fcb58,_0x951b90)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x442049){const _0x38ef35=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x442049])return;const _0x10bb0a=currentTablesState[_0x442049],_0x57486f=_0x10bb0a[_0x38ef35(0x1e2)][_0x38ef35(0x27d)],_0x3c1fd1=Array(_0x57486f)[_0x38ef35(0x1e3)]('');_0x10bb0a[_0x38ef35(0x274)][_0x38ef35(0x257)](_0x3c1fd1);if(!_0x10bb0a['rowStatuses'])_0x10bb0a[_0x38ef35(0x256)]=Array(_0x10bb0a[_0x38ef35(0x274)][_0x38ef35(0x27d)])[_0x38ef35(0x1e3)](_0x38ef35(0x231));_0x10bb0a[_0x38ef35(0x256)][_0x38ef35(0x257)](_0x38ef35(0x231)),updatedTables[_0x38ef35(0x181)](_0x442049),dispatchTableUpdate(_0x442049);const _0x4f0236=_0x38ef35(0x195)+_0x10bb0a[_0x38ef35(0x269)]+_0x38ef35(0x265);log(_0x4f0236,_0x38ef35(0x247));const _0x243274=getContext();if(_0x243274[_0x38ef35(0x245)]&&_0x243274[_0x38ef35(0x245)]['length']>0x0){const _0x3c403f=_0x243274[_0x38ef35(0x245)][_0x243274[_0x38ef35(0x245)][_0x38ef35(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x3c403f)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x5ee9ad){const _0x231dfb=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x5ee9ad])return;const _0x11b33c=currentTablesState[_0x5ee9ad],_0x56c6b8=_0x231dfb(0x1cf)+(_0x11b33c[_0x231dfb(0x1e2)][_0x231dfb(0x27d)]+0x1);_0x11b33c[_0x231dfb(0x1e2)][_0x231dfb(0x257)](_0x56c6b8),_0x11b33c[_0x231dfb(0x274)][_0x231dfb(0x180)](_0x5710c8=>_0x5710c8[_0x231dfb(0x257)](''));if(!_0x11b33c['columnWidths'])_0x11b33c[_0x231dfb(0x216)]=[];_0x11b33c[_0x231dfb(0x216)][_0x231dfb(0x257)](null);const _0x644959=_0x231dfb(0x195)+_0x11b33c['name']+_0x231dfb(0x225);log(_0x644959,'info');const _0x59e329=getContext();if(_0x59e329[_0x231dfb(0x245)]&&_0x59e329[_0x231dfb(0x245)][_0x231dfb(0x27d)]>0x0){const _0x16b2f5=_0x59e329['chat'][_0x59e329[_0x231dfb(0x245)][_0x231dfb(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x16b2f5)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x232864,_0xd0035f,_0x1f8f99){const _0x4179bf=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x232864]||currentTablesState[_0x232864][_0x4179bf(0x1e2)][_0xd0035f]===undefined)return;const _0x3880ac=currentTablesState[_0x232864]['name'],_0x26c4b0=currentTablesState[_0x232864]['headers'][_0xd0035f];currentTablesState[_0x232864][_0x4179bf(0x1e2)][_0xd0035f]=_0x1f8f99;const _0xc6d1c5=_0x4179bf(0x195)+_0x3880ac+_0x4179bf(0x202)+_0x26c4b0+_0x4179bf(0x246)+_0x1f8f99+'”。';log(_0xc6d1c5,'info');const _0x24fbfe=getContext();if(_0x24fbfe[_0x4179bf(0x245)]&&_0x24fbfe[_0x4179bf(0x245)][_0x4179bf(0x27d)]>0x0){const _0x41b48c=_0x24fbfe['chat'][_0x24fbfe['chat'][_0x4179bf(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x41b48c)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x2e0592,_0x1a401d){const _0x333cc7=_0x23b7a8,_0x576837=currentTablesState?.[_0x2e0592];if(!_0x576837||!_0x576837[_0x333cc7(0x274)][_0x1a401d])return;!_0x576837['rowStatuses']&&(_0x576837[_0x333cc7(0x256)]=Array(_0x576837[_0x333cc7(0x274)]['length'])[_0x333cc7(0x1e3)](_0x333cc7(0x231)));_0x576837[_0x333cc7(0x256)][_0x1a401d]=_0x333cc7(0x233),updatedTables[_0x333cc7(0x181)](_0x2e0592);const _0x4b634d=_0x333cc7(0x195)+_0x576837['name']+_0x333cc7(0x1d6)+(_0x1a401d+0x1)+_0x333cc7(0x232);log(_0x4b634d,_0x333cc7(0x247));const _0x41dd6f=getContext();if(_0x41dd6f['chat']?.[_0x333cc7(0x27d)]>0x0){const _0x12573e=_0x41dd6f[_0x333cc7(0x245)][_0x41dd6f['chat'][_0x333cc7(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x12573e)){await saveChat(),renderTables(),dispatchTableUpdate(_0x2e0592);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x2e0592);}export async function restoreRow(_0x4dc9de,_0x52bc61){const _0x2d48bb=_0x23b7a8,_0x47708c=currentTablesState?.[_0x4dc9de];if(!_0x47708c||!_0x47708c[_0x2d48bb(0x274)][_0x52bc61]||!_0x47708c[_0x2d48bb(0x256)])return;_0x47708c[_0x2d48bb(0x256)][_0x52bc61]=_0x2d48bb(0x231),updatedTables[_0x2d48bb(0x181)](_0x4dc9de);const _0x1efad0=_0x2d48bb(0x195)+_0x47708c[_0x2d48bb(0x269)]+_0x2d48bb(0x1d6)+(_0x52bc61+0x1)+_0x2d48bb(0x27c);log(_0x1efad0,_0x2d48bb(0x247));const _0x534e3c=getContext();if(_0x534e3c['chat']?.[_0x2d48bb(0x27d)]>0x0){const _0x346b8a=_0x534e3c[_0x2d48bb(0x245)][_0x534e3c[_0x2d48bb(0x245)][_0x2d48bb(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x346b8a)){await saveChat(),renderTables();return;}}await saveChatDebounced(),renderTables();}export function commitPendingDeletions(){const _0x170994=_0x23b7a8;if(!currentTablesState)return![];let _0x478a8b=0x0;currentTablesState[_0x170994(0x180)]((_0x47abeb,_0x3ed956)=>{const _0x3bc728=_0x170994;if(!_0x47abeb['rowStatuses']||_0x47abeb[_0x3bc728(0x256)][_0x3bc728(0x27d)]===0x0)return;let _0x15c07a=![];for(let _0x3026d0=_0x47abeb['rows'][_0x3bc728(0x27d)]-0x1;_0x3026d0>=0x0;_0x3026d0--){_0x47abeb['rowStatuses'][_0x3026d0]===_0x3bc728(0x233)&&(_0x47abeb['rows'][_0x3bc728(0x201)](_0x3026d0,0x1),_0x47abeb['rowStatuses']['splice'](_0x3026d0,0x1),_0x478a8b++,_0x15c07a=!![]);}_0x15c07a&&updatedTables['add'](_0x3ed956);});if(_0x478a8b>0x0)return log(_0x170994(0x24b)+_0x478a8b+_0x170994(0x27b),'info'),updatedTables[_0x170994(0x1b1)]>0x0&&updatedTables['forEach'](_0x144d3b=>{dispatchTableUpdate(_0x144d3b);}),!![];return![];}export function insertColumn(_0x56e4e1,_0x35b533,_0x3060ff){const _0x376d20=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x56e4e1])return;const _0x19ba6e=currentTablesState[_0x56e4e1],_0x310540=_0x3060ff==='left'?_0x35b533:_0x35b533+0x1,_0x361c68='新列';_0x19ba6e['headers'][_0x376d20(0x201)](_0x310540,0x0,_0x361c68),_0x19ba6e['rows'][_0x376d20(0x180)](_0x5d68c0=>_0x5d68c0['splice'](_0x310540,0x0,''));if(!_0x19ba6e['columnWidths'])_0x19ba6e[_0x376d20(0x216)]=[];_0x19ba6e[_0x376d20(0x216)][_0x376d20(0x201)](_0x310540,0x0,null);const _0x244fca=_0x376d20(0x195)+_0x19ba6e[_0x376d20(0x269)]+_0x376d20(0x25e)+(_0x35b533+0x1)+_0x376d20(0x1bc)+(_0x3060ff===_0x376d20(0x1b7)?'左侧':'右侧')+_0x376d20(0x18a);log(_0x244fca,_0x376d20(0x247));const _0x38ea4f=getContext();if(_0x38ea4f[_0x376d20(0x245)]&&_0x38ea4f['chat'][_0x376d20(0x27d)]>0x0){const _0x43db01=_0x38ea4f[_0x376d20(0x245)][_0x38ea4f[_0x376d20(0x245)][_0x376d20(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x43db01)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x28f317,_0x6346d3,_0x4bf18b){const _0x7f223f=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x28f317])return;const _0xfb0eb0=currentTablesState[_0x28f317],_0xf6cd28=_0xfb0eb0[_0x7f223f(0x1e2)],_0x58f23c=_0xfb0eb0[_0x7f223f(0x274)],_0x46acc5=_0x4bf18b===_0x7f223f(0x1b7)?_0x6346d3-0x1:_0x6346d3+0x1;if(_0x46acc5<0x0||_0x46acc5>=_0xf6cd28['length']){log(_0x7f223f(0x1e6)+_0x6346d3+_0x7f223f(0x28c),_0x7f223f(0x1fa));return;}const [_0x4eedef]=_0xf6cd28[_0x7f223f(0x201)](_0x6346d3,0x1);_0xf6cd28[_0x7f223f(0x201)](_0x46acc5,0x0,_0x4eedef),_0x58f23c[_0x7f223f(0x180)](_0x5c44d0=>{const _0x208ecc=_0x7f223f,[_0x47272e]=_0x5c44d0[_0x208ecc(0x201)](_0x6346d3,0x1);_0x5c44d0[_0x208ecc(0x201)](_0x46acc5,0x0,_0x47272e);});if(_0xfb0eb0[_0x7f223f(0x216)]&&_0xfb0eb0['columnWidths'][_0x7f223f(0x27d)]>_0x6346d3){const [_0x2c12c8]=_0xfb0eb0[_0x7f223f(0x216)]['splice'](_0x6346d3,0x1);_0xfb0eb0['columnWidths'][_0x7f223f(0x201)](_0x46acc5,0x0,_0x2c12c8);}const _0x5d5cfb=_0x7f223f(0x195)+_0xfb0eb0[_0x7f223f(0x269)]+_0x7f223f(0x1ec)+_0x4eedef+_0x7f223f(0x281)+(_0x4bf18b===_0x7f223f(0x1b7)?'左':'右')+'移动。';log(_0x5d5cfb,'info');const _0x2fb51d=getContext();if(_0x2fb51d[_0x7f223f(0x245)]&&_0x2fb51d[_0x7f223f(0x245)][_0x7f223f(0x27d)]>0x0){const _0x1bd90b=_0x2fb51d[_0x7f223f(0x245)][_0x2fb51d[_0x7f223f(0x245)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x1bd90b)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x489956){const _0x43ac56=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x489956])return;const _0x22b3dd=currentTablesState[_0x489956][_0x43ac56(0x269)];currentTablesState[_0x43ac56(0x201)](_0x489956,0x1);const _0x55b1dd=_0x43ac56(0x195)+_0x22b3dd+_0x43ac56(0x268);log(_0x55b1dd,_0x43ac56(0x19a));const _0x1f926d=getContext();if(_0x1f926d[_0x43ac56(0x245)]&&_0x1f926d[_0x43ac56(0x245)]['length']>0x0){const _0x421edc=_0x1f926d[_0x43ac56(0x245)][_0x1f926d['chat'][_0x43ac56(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x421edc)){saveChat(),log(_0x43ac56(0x1c8),_0x43ac56(0x19a));return;}}log(_0x43ac56(0x17a),_0x43ac56(0x23a)),saveChatDebounced();}export function addTable(_0x415991){const _0x3348f4=_0x23b7a8;if(!_0x415991||!_0x415991[_0x3348f4(0x25b)]()){log('无法创建表格:名称不能为空。',_0x3348f4(0x23a)),toastr[_0x3348f4(0x23a)](_0x3348f4(0x263),'创建失败');return;}!currentTablesState&&loadTables();if(currentTablesState['some'](_0x51a082=>_0x51a082[_0x3348f4(0x269)]===_0x415991[_0x3348f4(0x25b)]())){log(_0x3348f4(0x244)+_0x415991+_0x3348f4(0x1dd),_0x3348f4(0x23a)),toastr['error']('名为\x20\x22'+_0x415991+_0x3348f4(0x1dd),_0x3348f4(0x22e));return;}const _0x2e871e={'name':_0x415991[_0x3348f4(0x25b)](),'headers':[_0x3348f4(0x1ff)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':_0x3348f4(0x23c),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState['push'](_0x2e871e);const _0x26bc26='已成功创建新表格:['+_0x415991[_0x3348f4(0x25b)]()+']。';log(_0x26bc26,_0x3348f4(0x19a));const _0x5d989e=getContext();if(_0x5d989e[_0x3348f4(0x245)]&&_0x5d989e[_0x3348f4(0x245)][_0x3348f4(0x27d)]>0x0){const _0x2caa75=_0x5d989e[_0x3348f4(0x245)][_0x5d989e['chat'][_0x3348f4(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x2caa75)){saveChat(),log('新表格状态已强制写入最新消息并立即保存。','success');return;}}log(_0x3348f4(0x207),_0x3348f4(0x23a)),saveChatDebounced();}export function renameTable(_0x133370,_0x2a2279){const _0x3dc040=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x133370]){log(_0x3dc040(0x194),_0x3dc040(0x23a)),toastr[_0x3dc040(0x23a)](_0x3dc040(0x1ee),_0x3dc040(0x1bd));return;}const _0x1913f6=_0x2a2279[_0x3dc040(0x25b)]();if(!_0x1913f6){log('重命名失败:名称不能为空。',_0x3dc040(0x23a)),toastr[_0x3dc040(0x23a)](_0x3dc040(0x263),_0x3dc040(0x1bd));return;}if(currentTablesState[_0x3dc040(0x241)]((_0x4342d6,_0x7b3aad)=>_0x7b3aad!==_0x133370&&_0x4342d6[_0x3dc040(0x269)]===_0x1913f6)){log(_0x3dc040(0x1a4)+_0x1913f6+'\x22\x20的表格已存在。',_0x3dc040(0x23a)),toastr[_0x3dc040(0x23a)](_0x3dc040(0x1b0)+_0x1913f6+_0x3dc040(0x1dd),_0x3dc040(0x1bd));return;}const _0x4b87a7=currentTablesState[_0x133370]['name'];currentTablesState[_0x133370][_0x3dc040(0x269)]=_0x1913f6,log(_0x3dc040(0x249)+_0x4b87a7+_0x3dc040(0x1b3)+_0x1913f6+'\x22。',_0x3dc040(0x19a));const _0x374852=getContext();if(_0x374852['chat']&&_0x374852[_0x3dc040(0x245)][_0x3dc040(0x27d)]>0x0){const _0x3b0819=_0x374852[_0x3dc040(0x245)][_0x374852[_0x3dc040(0x245)][_0x3dc040(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x3b0819)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x48caea,_0x6df0cd){const _0x18f6af=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x48caea])return;const _0xf75af6=_0x6df0cd==='up'?_0x48caea-0x1:_0x48caea+0x1;if(_0xf75af6<0x0||_0xf75af6>=currentTablesState[_0x18f6af(0x27d)]){log(_0x18f6af(0x21c)+_0x48caea+_0x18f6af(0x28c),_0x18f6af(0x1fa));return;}const _0x20d381=currentTablesState[_0x48caea];currentTablesState[_0x48caea]=currentTablesState[_0xf75af6],currentTablesState[_0xf75af6]=_0x20d381;const _0x1ef318='表格\x20['+_0x20d381[_0x18f6af(0x269)]+_0x18f6af(0x1f5);log(_0x1ef318,_0x18f6af(0x19a));const _0x1b9e97=getContext();if(_0x1b9e97['chat']&&_0x1b9e97[_0x18f6af(0x245)][_0x18f6af(0x27d)]>0x0){const _0x31c566=_0x1b9e97[_0x18f6af(0x245)][_0x1b9e97['chat'][_0x18f6af(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x31c566)){saveChat(),log(_0x18f6af(0x278),_0x18f6af(0x19a));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!',_0x18f6af(0x23a)),saveChatDebounced();}export function updateTableRules(_0x462de7,_0x3e238f){const _0x40bbad=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x462de7])return;const _0x3af02c=currentTablesState[_0x462de7];_0x3af02c['note']=_0x3e238f[_0x40bbad(0x288)],_0x3af02c[_0x40bbad(0x1c4)]=_0x3e238f['rule_add'],_0x3af02c[_0x40bbad(0x17d)]=_0x3e238f['rule_delete'],_0x3af02c[_0x40bbad(0x25d)]=_0x3e238f['rule_update'],_0x3af02c['charLimitRules']=_0x3e238f[_0x40bbad(0x1f8)],_0x3af02c[_0x40bbad(0x189)]=_0x3e238f[_0x40bbad(0x189)],delete _0x3af02c[_0x40bbad(0x27f)];const _0xa5434=_0x40bbad(0x195)+_0x3af02c['name']+']\x20的规则已更新。';log(_0xa5434,_0x40bbad(0x247));const _0x45fd84=getContext();if(_0x45fd84[_0x40bbad(0x245)]&&_0x45fd84[_0x40bbad(0x245)][_0x40bbad(0x27d)]>0x0){const _0x5d9240=_0x45fd84[_0x40bbad(0x245)][_0x45fd84[_0x40bbad(0x245)][_0x40bbad(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x5d9240)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x3b45ef,_0x49ba61,_0x333881){const _0x25da40=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x3b45ef]){log(_0x25da40(0x1a6)+_0x3b45ef+_0x25da40(0x1ef),_0x25da40(0x23a));return;}const _0x22760a=currentTablesState[_0x3b45ef];if(_0x49ba61>=_0x22760a['rows']['length']){log(_0x25da40(0x1a3)+_0x49ba61+_0x25da40(0x1f1)+_0x22760a['name']+']\x20末尾新增一行。',_0x25da40(0x1fa)),insertRow(_0x3b45ef,_0x333881);return;}const _0x3f96b2=_0x22760a[_0x25da40(0x274)][_0x49ba61];for(const _0x9a4da7 in _0x333881){const _0x3911f0=parseInt(_0x9a4da7,0xa);_0x3911f0<_0x3f96b2[_0x25da40(0x27d)]&&(_0x3f96b2[_0x3911f0]=_0x333881[_0x3911f0],addHighlight(_0x3b45ef,_0x49ba61,_0x3911f0));}updatedTables['add'](_0x3b45ef),dispatchTableUpdate(_0x3b45ef);const _0x2fe151=_0x25da40(0x1a5)+_0x22760a[_0x25da40(0x269)]+_0x25da40(0x1d6)+(_0x49ba61+0x1)+_0x25da40(0x27b);log(_0x2fe151,_0x25da40(0x247));const _0x3fb510=getContext();if(_0x3fb510['chat']&&_0x3fb510[_0x25da40(0x245)]['length']>0x0){const _0x3f6e56=_0x3fb510[_0x25da40(0x245)][_0x3fb510[_0x25da40(0x245)][_0x25da40(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x3f6e56)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x1a00dd=_0x23b7a8;if(!currentTablesState){log('无法清空:当前表格状态为空。',_0x1a00dd(0x23a));return;}currentTablesState[_0x1a00dd(0x180)]((_0x5d78e6,_0x298878)=>{const _0x298065=_0x1a00dd;_0x5d78e6[_0x298065(0x274)]['length']>0x0&&updatedTables[_0x298065(0x181)](_0x298878),_0x5d78e6[_0x298065(0x274)]=[],_0x5d78e6[_0x298065(0x256)]=[];}),log(_0x1a00dd(0x1ea),_0x1a00dd(0x1fa));const _0x862621=getContext();if(_0x862621[_0x1a00dd(0x245)]&&_0x862621[_0x1a00dd(0x245)][_0x1a00dd(0x27d)]>0x0){const _0x51aefd=_0x862621[_0x1a00dd(0x245)][_0x862621[_0x1a00dd(0x245)][_0x1a00dd(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x51aefd)){saveChat(),log('清空行数据后的状态已强制写入最新消息并立即保存。',_0x1a00dd(0x19a)),toastr[_0x1a00dd(0x19a)](_0x1a00dd(0x262),_0x1a00dd(0x185));return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!',_0x1a00dd(0x23a)),saveChatDebounced();}function checkTableRules(_0x3a13ea){const _0x14125c=_0x23b7a8;let _0x6c56f3=[];_0x3a13ea[_0x14125c(0x189)]&&_0x3a13ea['rowLimitRule']>0x0&&_0x3a13ea[_0x14125c(0x274)]['length']>_0x3a13ea[_0x14125c(0x189)]&&_0x6c56f3['push'](_0x14125c(0x230)+_0x3a13ea[_0x14125c(0x269)]+_0x14125c(0x28e)+_0x3a13ea[_0x14125c(0x189)]+')行,请结合剧情缩减至('+_0x3a13ea[_0x14125c(0x189)]+_0x14125c(0x17b));const _0x2ac1e3=_0x3a13ea['charLimitRules']||{};for(const _0x2d2a40 in _0x2ac1e3){const _0x32c79a=parseInt(_0x2d2a40,0xa),_0x19c245=_0x2ac1e3[_0x32c79a];if(_0x19c245>0x0&&_0x32c79a>=0x0&&_0x32c79a<_0x3a13ea[_0x14125c(0x1e2)][_0x14125c(0x27d)]){const _0x3a20cc=_0x3a13ea[_0x14125c(0x1e2)][_0x32c79a],_0x4bfcc8=[];_0x3a13ea['rows'][_0x14125c(0x180)]((_0xdbf3ae,_0x4d61cb)=>{const _0x517aeb=_0x14125c;if(_0x3a13ea[_0x517aeb(0x256)]&&_0x3a13ea[_0x517aeb(0x256)][_0x4d61cb]===_0x517aeb(0x233))return;const _0x417dc3=_0xdbf3ae[_0x32c79a]||'';_0x417dc3[_0x517aeb(0x27d)]>_0x19c245&&_0x4bfcc8[_0x517aeb(0x257)](_0x4d61cb);});if(_0x4bfcc8[_0x14125c(0x27d)]>0x0){const _0x3163a0=_0x4bfcc8[_0x14125c(0x267)]('、');_0x6c56f3['push'](_0x14125c(0x230)+_0x3a13ea[_0x14125c(0x269)]+_0x14125c(0x1aa)+_0x3163a0+')行('+_0x3a20cc+_0x14125c(0x1d5)+_0x19c245+_0x14125c(0x1df));}}}return _0x6c56f3['join']('\x0a');}export function convertTablesToCsvString(){const _0x5108b3=_0x23b7a8;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x305741='';return currentTablesState[_0x5108b3(0x180)]((_0x4bec60,_0x985a78)=>{const _0x400a53=_0x5108b3;_0x305741+=_0x400a53(0x1fd)+_0x985a78+':'+_0x4bec60[_0x400a53(0x269)]+'\x0a',_0x305741+=_0x400a53(0x1d0)+(_0x4bec60['note']||'无')+'\x0a';const _0x202ddf=_0x4bec60[_0x400a53(0x269)][_0x400a53(0x1c1)](/\s/g,'')+'内容';_0x305741+='<'+_0x202ddf+'>\x0a';const _0x1c3fcc=[_0x400a53(0x1a0),..._0x4bec60[_0x400a53(0x1e2)][_0x400a53(0x1bf)]((_0x16e6ca,_0x54c90e)=>_0x54c90e+':'+_0x16e6ca)];_0x305741+='|\x20'+_0x1c3fcc[_0x400a53(0x267)](_0x400a53(0x24c))+_0x400a53(0x1e5),_0x305741+='|'+_0x1c3fcc['map'](()=>'---')['join']('|')+'|\x0a';const _0x54717d=_0x4bec60[_0x400a53(0x274)]['filter']((_0x372530,_0x5bfeb3)=>!_0x4bec60[_0x400a53(0x256)]||_0x4bec60[_0x400a53(0x256)][_0x5bfeb3]!==_0x400a53(0x233));_0x54717d[_0x400a53(0x27d)]===0x0?_0x305741+='(该表当前内容为空)\x0a':_0x4bec60[_0x400a53(0x274)][_0x400a53(0x180)]((_0x49ba36,_0x43252b)=>{const _0x591a84=_0x400a53;if(_0x4bec60[_0x591a84(0x256)]&&_0x4bec60['rowStatuses'][_0x43252b]===_0x591a84(0x233))return;if(Array[_0x591a84(0x234)](_0x49ba36)){const _0x6d9941=_0x49ba36[_0x591a84(0x1bf)](_0x26d579=>{const _0x37954f=_0x591a84,_0x5d8705=_0x26d579===null||_0x26d579===undefined||_0x26d579===''?'未知':String(_0x26d579);return _0x5d8705[_0x37954f(0x1c1)](/\|/g,'|');});_0x305741+='|\x20'+_0x43252b+_0x591a84(0x24c)+_0x6d9941['join'](_0x591a84(0x24c))+'\x20|\x0a';}});const _0x23dbc4=checkTableRules(_0x4bec60);_0x23dbc4&&(_0x305741+=_0x23dbc4+'\x0a'),_0x305741+='</'+_0x202ddf+'>\x0a',_0x305741+=_0x400a53(0x1a9)+(_0x4bec60[_0x400a53(0x1c4)]||'允许')+'\x0a',_0x305741+=_0x400a53(0x239)+(_0x4bec60['rule_delete']||'允许')+'\x0a',_0x305741+=_0x400a53(0x20b)+(_0x4bec60['rule_update']||'允许')+'\x0a',_0x985a78<currentTablesState['length']-0x1&&(_0x305741+=_0x400a53(0x1b4));}),_0x305741;}export function convertTablesToCsvStringForContentOnly(){const _0x143fb4=_0x23b7a8,_0x250dcc=getMemoryState();if(!_0x250dcc||_0x250dcc[_0x143fb4(0x27d)]===0x0)return'';let _0x21cd8f='';return _0x250dcc[_0x143fb4(0x180)](_0x43c826=>{const _0x1487aa=_0x143fb4;_0x21cd8f+='\x0a<'+_0x43c826[_0x1487aa(0x269)]+'>\x0a';const _0x2ff27a='|\x20'+_0x43c826['headers'][_0x1487aa(0x267)]('\x20|\x20')+'\x20|';_0x21cd8f+=_0x2ff27a+'\x0a';const _0xb358ce='|'+_0x43c826[_0x1487aa(0x1e2)]['map'](()=>_0x1487aa(0x275))[_0x1487aa(0x267)]('|')+'|';_0x21cd8f+=_0xb358ce+'\x0a';const _0x4685b7=_0x43c826[_0x1487aa(0x274)]['filter']((_0x240954,_0x5c6352)=>!_0x43c826[_0x1487aa(0x256)]||_0x43c826['rowStatuses'][_0x5c6352]!==_0x1487aa(0x233));_0x4685b7['length']>0x0?_0x4685b7[_0x1487aa(0x180)](_0x3d004d=>{const _0x47c4b7=_0x1487aa;if(Array['isArray'](_0x3d004d)){const _0xde102a=_0x3d004d[_0x47c4b7(0x1bf)](_0x3fa137=>_0x3fa137===null||_0x3fa137===undefined||_0x3fa137===''?'\x20':_0x3fa137['toString']()),_0x249774='|\x20'+_0xde102a['join'](_0x47c4b7(0x24c))+'\x20|';_0x21cd8f+=_0x249774+'\x0a';}}):_0x21cd8f+=_0x1487aa(0x250),_0x21cd8f+='</'+_0x43c826['name']+'>\x0a';}),_0x21cd8f['trim']();}loadTables();export function getBatchFillerRuleTemplate(){const _0x1b4680=_0x23b7a8;return extension_settings[extensionName]?.[_0x1b4680(0x1e4)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x4e4f0b){const _0xc3309d=_0x23b7a8;extension_settings[extensionName][_0xc3309d(0x1e4)]=_0x4e4f0b,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){return extension_settings[extensionName]?.['batch_filler_flow_template']??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x5dc083){extension_settings[extensionName]['batch_filler_flow_template']=_0x5dc083,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){return extension_settings[extensionName]?.['amily2_ai_template']??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x58673e){const _0x129c64=_0x23b7a8,_0x2ee324=extension_settings[extensionName];if(_0x2ee324[_0x129c64(0x242)]===![]){log(_0x129c64(0x26e),_0x129c64(0x247));return;}if(!_0x58673e){log(_0x129c64(0x210),_0x129c64(0x1fa));return;}const _0x38c61b=_0x58673e[_0x129c64(0x264)](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0x38c61b||!_0x38c61b[0x1]){log('未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。',_0x129c64(0x1fa));return;}let _0x1c1175=_0x38c61b[0x1]['replace'](/<!--|-->/g,'')[_0x129c64(0x25b)]();if(!_0x1c1175){log(_0x129c64(0x26b),_0x129c64(0x247));return;}const _0x2aaf26=_0x1c1175['split']('\x0a')[_0x129c64(0x1a7)](_0x463877=>_0x463877[_0x129c64(0x25b)]()!=='');log(_0x129c64(0x19b)+_0x2aaf26[_0x129c64(0x27d)]+_0x129c64(0x26a),_0x129c64(0x247));const _0x17d608={'insertRow':(_0x4b35d5,_0x555d0f)=>{const _0x352356=_0x129c64;log(_0x352356(0x23d)+_0x4b35d5+_0x352356(0x1cb)+JSON[_0x352356(0x1af)](_0x555d0f)+')',_0x352356(0x247)),insertRow(_0x4b35d5,_0x555d0f);},'deleteRow':(_0x255cb5,_0x4f0cd5)=>{const _0x40ab79=_0x129c64;log(_0x40ab79(0x214)+_0x255cb5+_0x40ab79(0x23f)+_0x4f0cd5+')','info'),deleteRow(_0x255cb5,_0x4f0cd5);},'updateRow':(_0x290c6a,_0x128b26,_0x38d810)=>{const _0x3cc94b=_0x129c64;log('执行AI指令:\x20updateRow(tableIndex='+_0x290c6a+_0x3cc94b(0x23f)+_0x128b26+',\x20data='+JSON[_0x3cc94b(0x1af)](_0x38d810)+')',_0x3cc94b(0x247)),updateRow(_0x290c6a,_0x128b26,_0x38d810);}};try{const _0x20c76c=Object[_0x129c64(0x1c7)](async function(){})['constructor'],_0x5bf675=new _0x20c76c('runner',_0x129c64(0x252)+_0x1c1175+_0x129c64(0x1c5));await _0x5bf675(_0x17d608),log(_0x129c64(0x24a),'success'),toastr[_0x129c64(0x19a)](_0x129c64(0x1ab),_0x129c64(0x1fb)),document[_0x129c64(0x260)](new CustomEvent('amily2-force-ui-reload'));}catch(_0xf4cd12){log('执行AI指令时发生错误:\x20'+_0xf4cd12[_0x129c64(0x270)],_0x129c64(0x23a)),toastr[_0x129c64(0x23a)](_0x129c64(0x1ba)+_0xf4cd12[_0x129c64(0x270)],_0x129c64(0x21d));}}export function saveAiTemplate(_0x183237){const _0x4ac927=_0x23b7a8;extension_settings[extensionName][_0x4ac927(0x258)]=_0x183237,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x60258=![]){const _0x27512a=_0x23b7a8;if(!currentTablesState){log('无法导出:当前表格状态为空。',_0x27512a(0x23a)),toastr[_0x27512a(0x23a)]('没有可导出的表格数据。');return;}let _0x29ded3,_0x429d19,_0x43d0f2;_0x60258?(_0x29ded3=JSON['parse'](JSON[_0x27512a(0x1af)](currentTablesState)),_0x429d19=_0x27512a(0x26f),_0x43d0f2=_0x27512a(0x229)):(_0x29ded3=currentTablesState[_0x27512a(0x1bf)](_0x50c7fc=>({'name':_0x50c7fc['name'],'headers':_0x50c7fc[_0x27512a(0x1e2)],'columnWidths':_0x50c7fc['columnWidths']||[],'note':_0x50c7fc['note'],'rule_add':_0x50c7fc[_0x27512a(0x1c4)],'rule_delete':_0x50c7fc[_0x27512a(0x17d)],'rule_update':_0x50c7fc[_0x27512a(0x25d)],'charLimitRules':_0x50c7fc[_0x27512a(0x1f8)]||{},'rowLimitRule':_0x50c7fc[_0x27512a(0x189)]||0x0,'rows':[],'rowStatuses':[]})),_0x429d19='Amily2-Table-Preset-v2.0-clean',_0x43d0f2=_0x27512a(0x188));const _0x390457={'version':_0x27512a(0x18f),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x29ded3},_0x1c7d67=new Blob([JSON[_0x27512a(0x1af)](_0x390457,null,0x2)],{'type':_0x27512a(0x238)}),_0x222943=URL['createObjectURL'](_0x1c7d67),_0x2e9053=document[_0x27512a(0x1ed)]('a');_0x2e9053[_0x27512a(0x1b8)]=_0x222943,_0x2e9053[_0x27512a(0x182)]=_0x27512a(0x213)+_0x43d0f2+'-'+new Date()['toISOString']()['slice'](0x0,0xa)+_0x27512a(0x1f2),document[_0x27512a(0x1db)]['appendChild'](_0x2e9053),_0x2e9053['click'](),document[_0x27512a(0x1db)][_0x27512a(0x220)](_0x2e9053),URL[_0x27512a(0x196)](_0x222943),log('【'+_0x43d0f2+_0x27512a(0x27e),'success'),toastr[_0x27512a(0x19a)]('【'+_0x43d0f2+_0x27512a(0x1b9),_0x27512a(0x1d8));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x1db68f){const _0x1ee422=_0x23b7a8,_0x1bf0bf=document[_0x1ee422(0x1ed)](_0x1ee422(0x261));_0x1bf0bf['type']=_0x1ee422(0x20d),_0x1bf0bf[_0x1ee422(0x208)]=_0x1ee422(0x1f2),_0x1bf0bf[_0x1ee422(0x19e)]=_0x21013b=>{const _0x436c5d=_0x1ee422,_0x1c332a=_0x21013b[_0x436c5d(0x193)][_0x436c5d(0x19d)][0x0];if(!_0x1c332a)return;const _0x22d369=new FileReader();_0x22d369[_0x436c5d(0x1ce)]=_0x26e953=>{const _0x6ef55=_0x436c5d;try{const _0x4699f8=JSON[_0x6ef55(0x284)](_0x26e953[_0x6ef55(0x193)][_0x6ef55(0x1f6)]);if(!_0x4699f8[_0x6ef55(0x282)]||!Array[_0x6ef55(0x234)](_0x4699f8[_0x6ef55(0x184)]))throw new Error(_0x6ef55(0x285));const _0x34c983=window[_0x6ef55(0x1de)](_0x6ef55(0x1f4));if(!_0x34c983){log('用户取消了导入操作。',_0x6ef55(0x247)),toastr['info']('导入操作已取消。');return;}if(_0x4699f8[_0x6ef55(0x282)]===_0x6ef55(0x18f))saveBatchFillerRuleTemplate(_0x4699f8[_0x6ef55(0x254)]||''),saveBatchFillerFlowTemplate(_0x4699f8[_0x6ef55(0x25f)]||''),saveAiTemplate(_0x4699f8['injectionFlowTemplate']||'');else{if(_0x4699f8[_0x6ef55(0x217)]!==undefined&&_0x4699f8['aiFlowTemplate']!==undefined)saveBatchFillerRuleTemplate(_0x4699f8[_0x6ef55(0x217)]||''),saveBatchFillerFlowTemplate(_0x4699f8[_0x6ef55(0x1cc)]||''),saveAiTemplate(_0x4699f8[_0x6ef55(0x1cc)]||'');else _0x4699f8[_0x6ef55(0x206)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x4699f8[_0x6ef55(0x206)]||''),saveAiTemplate(_0x4699f8[_0x6ef55(0x206)]||'')):log('导入的预设中缺少指令模板字段,模板将不会被更新。',_0x6ef55(0x1fa));}const _0x4e40a2=_0x4699f8[_0x6ef55(0x184)];_0x4e40a2[_0x6ef55(0x180)](_0x1781ca=>{const _0x145c76=_0x6ef55;if(_0x1781ca[_0x145c76(0x269)]===undefined||_0x1781ca['headers']===undefined||_0x1781ca['rows']===undefined)throw new Error(_0x145c76(0x205)+JSON['stringify'](_0x1781ca));if(_0x1781ca[_0x145c76(0x288)]===undefined)_0x1781ca['note']='无';if(_0x1781ca[_0x145c76(0x1c4)]===undefined)_0x1781ca[_0x145c76(0x1c4)]='允许';if(_0x1781ca[_0x145c76(0x17d)]===undefined)_0x1781ca[_0x145c76(0x17d)]='允许';if(_0x1781ca[_0x145c76(0x25d)]===undefined)_0x1781ca['rule_update']='允许';if(_0x1781ca[_0x145c76(0x27f)]&&!_0x1781ca[_0x145c76(0x1f8)])_0x1781ca[_0x145c76(0x1f8)]={},_0x1781ca[_0x145c76(0x27f)]['columnIndex']!==-0x1&&_0x1781ca[_0x145c76(0x27f)][_0x145c76(0x1ca)]>0x0&&(_0x1781ca['charLimitRules'][_0x1781ca[_0x145c76(0x27f)][_0x145c76(0x1a1)]]=_0x1781ca[_0x145c76(0x27f)][_0x145c76(0x1ca)]);else _0x1781ca['charLimitRules']===undefined&&(_0x1781ca[_0x145c76(0x1f8)]={});delete _0x1781ca[_0x145c76(0x27f)],!_0x1781ca[_0x145c76(0x256)]&&(_0x1781ca[_0x145c76(0x256)]=Array(_0x1781ca['rows'][_0x145c76(0x27d)])[_0x145c76(0x1e3)]('normal')),_0x1781ca[_0x145c76(0x189)]===undefined&&(_0x1781ca[_0x145c76(0x189)]=0x0),_0x1781ca[_0x145c76(0x216)]===undefined&&(_0x1781ca[_0x145c76(0x216)]=[]);}),setMemoryState(_0x4e40a2);const _0x2bfe52=getContext();if(_0x2bfe52[_0x6ef55(0x245)]&&_0x2bfe52[_0x6ef55(0x245)][_0x6ef55(0x27d)]>0x0){const _0x32df04=_0x2bfe52[_0x6ef55(0x245)][_0x2bfe52[_0x6ef55(0x245)][_0x6ef55(0x27d)]-0x1];saveStateToMessage(getMemoryState(),_0x32df04)&&(saveChat(),log(_0x6ef55(0x22f),_0x6ef55(0x19a)));}else saveChatDebounced();log(_0x6ef55(0x1f7),_0x6ef55(0x19a)),toastr[_0x6ef55(0x19a)](_0x6ef55(0x224),_0x6ef55(0x24d)),typeof _0x1db68f===_0x6ef55(0x21e)&&_0x1db68f();}catch(_0x8f0aac){log(_0x6ef55(0x1bb)+_0x8f0aac[_0x6ef55(0x270)],_0x6ef55(0x23a)),toastr[_0x6ef55(0x23a)](_0x6ef55(0x289)+_0x8f0aac['message'],'错误');}},_0x22d369[_0x436c5d(0x1d2)](_0x1c332a);},_0x1bf0bf[_0x1ee422(0x211)]();}export async function rollbackState(){const _0x5dc201=_0x23b7a8,_0x20721f=getContext();if(!_0x20721f||!_0x20721f['chat']||_0x20721f['chat'][_0x5dc201(0x27d)]<0x2)return log(_0x5dc201(0x283),_0x5dc201(0x1fa)),toastr['warning'](_0x5dc201(0x1ae)),![];const _0x194779=_0x20721f[_0x5dc201(0x245)],_0x3e913a=_0x194779[_0x5dc201(0x27d)]-0x1,_0x1ae9de=_0x194779[_0x3e913a];log(_0x5dc201(0x22d)+(_0x3e913a-0x1)+'\x20条消息加载表格状态...',_0x5dc201(0x247));const _0x18a1ae=loadTables(_0x3e913a);if(!_0x18a1ae)return log(_0x5dc201(0x212),'error'),toastr['error'](_0x5dc201(0x1eb)),![];setMemoryState(_0x18a1ae);if(saveStateToMessage(_0x18a1ae,_0x1ae9de))await saveChat(),log(_0x5dc201(0x223),'success');else return log(_0x5dc201(0x277),_0x5dc201(0x23a)),toastr['error'](_0x5dc201(0x22c)),![];return renderTables(),updateOrInsertTableInChat(),log(_0x5dc201(0x25c),'info'),!![];}export async function rollbackAndRefill(){const _0x329b68=_0x23b7a8,_0x438e28=extension_settings[extensionName];if(_0x438e28[_0x329b68(0x242)]===![]){log('表格系统总开关已关闭,跳过回退填表。','info'),toastr[_0x329b68(0x247)]('表格系统总开关已关闭,无法执行回退填表。');return;}toastr[_0x329b68(0x247)](_0x329b68(0x204));const _0x464e3a=await rollbackState();if(!_0x464e3a){toastr[_0x329b68(0x23a)](_0x329b68(0x1b6));return;}toastr['success']('状态回退成功,准备重新填表...');const _0x3602d5=getContext(),_0x27ece3=_0x3602d5[_0x329b68(0x245)][_0x3602d5[_0x329b68(0x245)][_0x329b68(0x27d)]-0x1];try{await fillWithSecondaryApi(_0x27ece3,!![]),log('回退并重新填表操作完成。',_0x329b68(0x19a));}catch(_0x1eb2c5){log('回退重填过程中发生错误:\x20'+_0x1eb2c5[_0x329b68(0x270)],_0x329b68(0x23a)),toastr['error']('重新填表失败:\x20'+_0x1eb2c5[_0x329b68(0x270)]);}}function _0x1fff(_0x5107bf,_0x1fcc1a){const _0x47f574=_0x47f5();return _0x1fff=function(_0x1fff76,_0x450603){_0x1fff76=_0x1fff76-0x17a;let _0x1a942b=_0x47f574[_0x1fff76];return _0x1a942b;},_0x1fff(_0x5107bf,_0x1fcc1a);}export function updateColumnWidth(_0x267cb8,_0x3cf5e5,_0x4d1bab){const _0x537dbb=_0x23b7a8;if(!currentTablesState||!currentTablesState[_0x267cb8])return;const _0x3cae1a=currentTablesState[_0x267cb8];!_0x3cae1a[_0x537dbb(0x216)]&&(_0x3cae1a[_0x537dbb(0x216)]=[]);while(_0x3cae1a['columnWidths'][_0x537dbb(0x27d)]<_0x3cae1a[_0x537dbb(0x1e2)][_0x537dbb(0x27d)]){_0x3cae1a[_0x537dbb(0x216)][_0x537dbb(0x257)](null);}_0x3cae1a[_0x537dbb(0x216)][_0x3cf5e5]=_0x4d1bab;const _0x5565f6=getContext();if(_0x5565f6[_0x537dbb(0x245)]&&_0x5565f6['chat'][_0x537dbb(0x27d)]>0x0){const _0x234d2d=_0x5565f6['chat'][_0x5565f6[_0x537dbb(0x245)][_0x537dbb(0x27d)]-0x1];if(saveStateToMessage(currentTablesState,_0x234d2d)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x4dcf3f=_0x23b7a8,_0x16129e=getMemoryState();if(!_0x16129e||_0x16129e[_0x4dcf3f(0x27d)]===0x0)return!![];return _0x16129e[_0x4dcf3f(0x191)](_0x125d81=>!_0x125d81['rows']||_0x125d81[_0x4dcf3f(0x274)][_0x4dcf3f(0x27d)]===0x0);}export function clearGlobalPreset(){const _0x1df5ec=_0x23b7a8;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x1df5ec(0x19c)]){const _0x354bd7=window['confirm'](_0x1df5ec(0x17f));_0x354bd7?(delete extension_settings[extensionName][_0x1df5ec(0x19c)],saveSettingsDebounced(),log(_0x1df5ec(0x20f),'success'),toastr[_0x1df5ec(0x19a)]('全局预设已清除,新聊天将使用默认模板。',_0x1df5ec(0x21b))):(log(_0x1df5ec(0x218),_0x1df5ec(0x247)),toastr['info']('操作已取消。'));}else log(_0x1df5ec(0x276),_0x1df5ec(0x247)),toastr[_0x1df5ec(0x247)](_0x1df5ec(0x21f),'提示');}export function importGlobalPreset(_0x3f35dd){const _0x5adf0c=_0x23b7a8,_0x474d67=document['createElement'](_0x5adf0c(0x261));_0x474d67[_0x5adf0c(0x1e1)]='file',_0x474d67[_0x5adf0c(0x208)]=_0x5adf0c(0x1f2),_0x474d67['onchange']=_0x402fec=>{const _0x53d87d=_0x5adf0c,_0xe684e7=_0x402fec[_0x53d87d(0x193)]['files'][0x0];if(!_0xe684e7)return;const _0x33c707=new FileReader();_0x33c707[_0x53d87d(0x1ce)]=_0x4e0125=>{const _0xd2d5d1=_0x53d87d;try{const _0x5018fa=JSON[_0xd2d5d1(0x284)](_0x4e0125['target'][_0xd2d5d1(0x1f6)]);if(!_0x5018fa[_0xd2d5d1(0x282)]||!Array['isArray'](_0x5018fa['tables']))throw new Error(_0xd2d5d1(0x285));const _0x4e6a29=window[_0xd2d5d1(0x1de)](_0xd2d5d1(0x28d));if(!_0x4e6a29){log(_0xd2d5d1(0x1c6),_0xd2d5d1(0x247)),toastr['info'](_0xd2d5d1(0x248));return;}const _0x3aca9e=_0x5018fa[_0xd2d5d1(0x184)][_0xd2d5d1(0x1bf)](_0x424c46=>({'name':_0x424c46[_0xd2d5d1(0x269)],'headers':_0x424c46['headers'],'note':_0x424c46[_0xd2d5d1(0x288)],'rule_add':_0x424c46[_0xd2d5d1(0x1c4)],'rule_delete':_0x424c46[_0xd2d5d1(0x17d)],'rule_update':_0x424c46[_0xd2d5d1(0x25d)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0xd2d5d1(0x19c)]={'version':_0x5018fa['version'],'tables':_0x3aca9e,'batchFillerRuleTemplate':_0x5018fa[_0xd2d5d1(0x254)],'batchFillerFlowTemplate':_0x5018fa[_0xd2d5d1(0x25f)]},saveSettingsDebounced();if(_0x5018fa['version']===_0xd2d5d1(0x18f))saveBatchFillerRuleTemplate(_0x5018fa[_0xd2d5d1(0x254)]||''),saveBatchFillerFlowTemplate(_0x5018fa[_0xd2d5d1(0x25f)]||''),saveAiTemplate(_0x5018fa[_0xd2d5d1(0x24f)]||'');else{if(_0x5018fa[_0xd2d5d1(0x217)]!==undefined&&_0x5018fa['aiFlowTemplate']!==undefined)saveBatchFillerRuleTemplate(_0x5018fa[_0xd2d5d1(0x217)]||''),saveBatchFillerFlowTemplate(_0x5018fa[_0xd2d5d1(0x1cc)]||''),saveAiTemplate(_0x5018fa[_0xd2d5d1(0x1cc)]||'');else _0x5018fa[_0xd2d5d1(0x206)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x5018fa[_0xd2d5d1(0x206)]||''),saveAiTemplate(_0x5018fa[_0xd2d5d1(0x206)]||''));}log(_0xd2d5d1(0x197),_0xd2d5d1(0x19a)),toastr[_0xd2d5d1(0x19a)](_0xd2d5d1(0x22b),_0xd2d5d1(0x22a)),typeof _0x3f35dd===_0xd2d5d1(0x21e)&&_0x3f35dd();}catch(_0x25ecb2){log(_0xd2d5d1(0x286)+_0x25ecb2[_0xd2d5d1(0x270)],'error'),toastr[_0xd2d5d1(0x23a)](_0xd2d5d1(0x289)+_0x25ecb2['message'],'错误');}},_0x33c707[_0x53d87d(0x1d2)](_0xe684e7);},_0x474d67[_0x5adf0c(0x211)]();}
|