diff --git a/core/table-system/manager.js b/core/table-system/manager.js index 67bfabc..0c680b5 100644 --- a/core/table-system/manager.js +++ b/core/table-system/manager.js @@ -1 +1 @@ -const _0x2b9298=_0x5104;(function(_0x3120e5,_0x356fec){const _0xc5394f=_0x5104,_0x5b6bac=_0x3120e5();while(!![]){try{const _0x5f4e40=parseInt(_0xc5394f(0x1ce))/0x1+-parseInt(_0xc5394f(0x288))/0x2+parseInt(_0xc5394f(0x2a2))/0x3+-parseInt(_0xc5394f(0x216))/0x4*(-parseInt(_0xc5394f(0x217))/0x5)+parseInt(_0xc5394f(0x27b))/0x6*(-parseInt(_0xc5394f(0x1f4))/0x7)+parseInt(_0xc5394f(0x23e))/0x8+-parseInt(_0xc5394f(0x1ba))/0x9;if(_0x5f4e40===_0x356fec)break;else _0x5b6bac['push'](_0x5b6bac['shift']());}catch(_0x4008d3){_0x5b6bac['push'](_0x5b6bac['shift']());}}}(_0x1362,0xbc4f0));import{getContext,extension_settings}from'/scripts/extensions.js';function _0x5104(_0xbadaaf,_0x5a94a3){const _0x136221=_0x1362();return _0x5104=function(_0x51044f,_0x525f07){_0x51044f=_0x51044f-0x18c;let _0x5cff2f=_0x136221[_0x51044f];return _0x5cff2f;},_0x5104(_0xbadaaf,_0x5a94a3);}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(_0xf9e7d){const _0x2e73b6=_0x5104,_0x42d80f=extension_settings[extensionName]||{};if(_0x42d80f[_0x2e73b6(0x1fe)]===![])return;if(!currentTablesState||!currentTablesState[_0xf9e7d])return;const _0x23c8fc=currentTablesState[_0xf9e7d];let _0x514caf='database';if(_0x23c8fc[_0x2e73b6(0x243)][_0x2e73b6(0x22f)]('时空')||_0x23c8fc['name'][_0x2e73b6(0x22f)](_0x2e73b6(0x19a)))_0x514caf='anchor';if(_0x23c8fc[_0x2e73b6(0x243)][_0x2e73b6(0x22f)]('日志')||_0x23c8fc[_0x2e73b6(0x243)][_0x2e73b6(0x22f)](_0x2e73b6(0x2b5)))_0x514caf=_0x2e73b6(0x1c3);const _0x5a1853=new CustomEvent(_0x2e73b6(0x285),{'detail':{'tableName':_0x23c8fc[_0x2e73b6(0x243)],'data':_0x23c8fc[_0x2e73b6(0x1da)],'headers':_0x23c8fc[_0x2e73b6(0x29d)],'rowStatuses':_0x23c8fc[_0x2e73b6(0x210)]||[],'role':_0x514caf}});document[_0x2e73b6(0x249)](_0x5a1853),log(_0x2e73b6(0x19f)+_0x23c8fc[_0x2e73b6(0x243)],_0x2e73b6(0x276));}function dispatchAllTablesUpdate(){const _0x224424=_0x5104;if(!currentTablesState)return;log(_0x224424(0x20e),_0x224424(0x276)),currentTablesState[_0x224424(0x2a6)]((_0x5137bc,_0x1c6fc6)=>{dispatchTableUpdate(_0x1c6fc6);});}export function addHighlight(_0x3ad4ee,_0x4983ab,_0x111c85){const _0xec55c6=_0x3ad4ee+'-'+_0x4983ab+'-'+_0x111c85;highlightedCells['add'](_0xec55c6);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x2f8431=_0x5104;highlightedCells['size']>0x0&&(highlightedCells['clear'](),log('已清除所有单元格高亮标记。',_0x2f8431(0x276)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x58d11d=_0x5104;updatedTables[_0x58d11d(0x200)]>0x0&&(updatedTables[_0x58d11d(0x1eb)](),log(_0x58d11d(0x238),_0x58d11d(0x276)));}export function setMemoryState(_0x2905ee){currentTablesState=_0x2905ee;}export function loadMemoryState(_0x5f2d21){const _0x29aff7=_0x5104;if(!_0x5f2d21)return;setMemoryState(_0x5f2d21),renderTables(),updateOrInsertTableInChat(),log(_0x29aff7(0x2ab),_0x29aff7(0x276));}export function saveMemoryState(){const _0x21f7a1=_0x5104,_0x480c38=getContext();if(_0x480c38[_0x21f7a1(0x28d)]&&_0x480c38['chat'][_0x21f7a1(0x1ff)]>0x0){const _0x3b8f3b=_0x480c38[_0x21f7a1(0x28d)][_0x480c38[_0x21f7a1(0x28d)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3b8f3b))return!![];}return![];}function _0x1362(){const _0x37ba99=['name','执行AI指令:\x20updateRow(tableIndex=','global_table_preset','\x0a*\x20','\x0a---\x0a','rowLimitRule','dispatchEvent','执行者','未能在上一楼找到可用的表格状态。','success','填表完成','),已智能转换为在表格\x20[','执行AI指令:\x20deleteRow(tableIndex=','【增加】:\x20','操作成功','fill','任务栏','设定栏','slice','全局预设已被清除。','rule_add','\x20行(索引\x200\x20到\x20',',\x20rowIndex=','成功在表格\x20','新列\x201','type','AI指令块为空,无需执行任何操作。',']\x20的表头“','confirm','【触发条件】当两个NPC之间的关系性质发生转变(如从\x27盟友\x27变为\x27背叛者\x27)时,必须更新。','无法回退:聊天记录不足。','UI操作\x20\x22','从预设模板生成默认表格...',')超出规定(','用户取消了导入操作。','below','createElement','table_system_enabled','pending-deletion','开始时间/结束时间','AI指令错误:尝试在不存在的表格索引\x20','(该表当前内容为空)\x0a','aiTemplate','全局预设已设置!新聊天将默认使用此预设。','新表格状态已强制写入最新消息并立即保存。','removeChild','every','createObjectURL','message','已成功将回退后的状态保存至最新消息。',')行以下,但切莫完全删除。】','info','预设已成功导入并应用。','已提交并永久删除了\x20','simplifyRowThreshold','在第\x20','210138sMkmdw','已成功创建新表格:[','设置成功','全局预设已清除,新聊天将使用默认模板。','导入失败:','left','这是一个新创建的表格。','number','技能名','未在AI返回内容中找到有效的\x20\x20指令块。','AMILY2_TABLE_UPDATED','download','无法移动表格:索引\x20','1249442hBrEpv',',\x20data=','replace','toISOString',']\x20新增了一列。','chat','技能效果','getPrototypeOf','\x20行。','target','未在聊天记录中找到表格,正在加载全局预设...','splice','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','导出成功','object','\x22\x20已重命名为\x20\x22','\x0a【系统提示】:表格前\x20','【核心作用】专门用于记录除主角以外的角色之间的复杂人际关系网(NPC\x20to\x20NPC)。\x0a【字段详解】\x0a-\x20主动方:\x20关系的发起者或主体(例如\x27艾克\x27)。\x0a-\x20被动方:\x20关系的接收者或对象(例如\x27莉娜\x27)。\x0a-\x20关系:\x20用简短的词汇描述两者之间的关系本质,如\x27暗恋\x27、\x27世仇\x27、\x27师徒\x27。\x0a-\x20详情:\x20对这段关系的具体描述或背景补充。','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\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任务完成或失败后的最终结果。','【当前(','”已更新为“','headers','UI已更新以显示回退后的状态。','\x20列。','【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','导入操作已取消。','2280420ADnToH','删除列失败:在表格\x20','limit','\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','forEach','|\x20...\x20|\x20','\x20的列。','表格状态已准备写入消息\x20[','插入行失败:找不到索引为\x20','[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','trim','【删除】:\x20','导入预设失败:\x20','表格顺序调整后的状态已强制写入最新消息并立即保存。','时空栏','【触发条件】当两个NPC之间的关系彻底断绝且不再影响剧情,或者其中一方彻底消失/死亡时,可以删除。','add','batch_filler_flow_template','【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','Log','此地角色','文件格式无效或缺少版本号/表格数据。','所有表格的剧情内容已清空。','rule_delete','未能保存回退状态,操作中止。','constructor','【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','未能在上一楼找到可用的表格状态,无法回退。','其他重要信息','【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','未找到任何表格数据或全局预设,使用默认模板。','清空行数据后的状态已强制写入最新消息并立即保存。',']\x20的规则已更新。','parse','charLimitRule','世界钟','用户取消了全局预设导入操作。','角色名','表格系统总开关已关闭,跳过回退填表。','tables','[SuperMemory]\x20Dispatched\x20update\x20event\x20for\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分隔。','正在尝试从第\x20','”已向','---','normal','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','rowIndex','插入了新列。','角色栏','some','map','onload','files','表格名称不能为空。','\x20|\x0a','application/json','join','状态回退失败,已中止操作。','【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','\x20行已恢复。','.json',')的历史内容已简化并锁定,无需读取或修改。请专注于后续行的内容。\x0a','\x20的第\x20','columnIndex','filter','8731431lqmIgG','input','操作已取消。','\x20行位置插入了新行。','【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','拥有者','...]','\x20行已标记为待删除。','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\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记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','log','【修改】:\x20','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','与关系','\x20已在边界。','用户取消了清除全局预设的操作。','\x20(本表格无需重新整理,仅供参考)','amily2-force-ui-reload','\x20行移动到第\x20','click','version','143185KJniqV','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','substring',']\x20已被成功废黜。','...','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','charLimitRules','执行AI指令:\x20insertRow(tableIndex=','操作完成','Amily2-Table-Preset-v3.0-separated_templates','aiRuleTemplate','rows','名为\x20\x22','batch_filler_rule_template','重命名失败','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','match','【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','创建失败','body','push','表格系统总开关已关闭,无法执行回退填表。','重新填表失败:\x20','技能栏','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','function','\x20|\x20','被动方','clear','状态回退成功,准备重新填表...','rule_update','无需清除,当前未设置任何全局预设。','没有可导出的表格数据。',']\x20在第\x20','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','】已成功导出。','7DqOnbu','物品栏','\x20的表格。','injectionFlowTemplate','【触发条件】当两个NPC之间展现出明确的、非临时性的人际关系时,应添加新行。','revokeObjectURL','Amily2-','表格\x20[','所有表格的行数据已在内存中清空。','【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\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。','super_memory_enabled','length','size','导入成功','\x22\x20的表格已存在。','执行AI指令时发生错误:\x20','mes','warn','stringify','batchFillerFlowTemplate','href','(此处省略未选中的表格内容,仅提供表头供索引参考)\x0a','\x20条消息中找到基准表格数据。','导入的表格数据格式不正确:\x20','】已开始下载。','columnWidths','[SuperMemory]\x20Dispatching\x20update\x20events\x20for\x20ALL\x20tables...','主动方','rowStatuses',')行(','纯净预设',']\x20的第\x20',')列,字符超出规定(','导入的预设已强制写入最新消息并立即保存。','32MuvIAl','405425SelQhH','Amily2-Table-Preset-v2.0-full','toString','当前没有设置全局预设。','所有AI指令已成功执行完毕。','batchFillerRuleTemplate','split','未知操作','isArray','【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','result','error',')字限制,请进行缩减。】','导入全局预设失败:\x20',')行,请结合剧情缩减至(','无法创建表格:名称不能为空。','新列\x20','file','加载全局预设失败:\x20','aiFlowTemplate','无法清空:当前表格状态为空。','无法导出:当前表格状态为空。','无法移动列:索引\x20','---已锁定---','includes','amily2_ai_template','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','物品名','note','表格\x20\x22','accept','\x22\x20已更新内存状态。','回退状态保存失败,操作中止。','已清除所有表格的更新标记。','执行AI指令时出错:\x20','导入的预设中缺少指令模板字段,模板将不会被更新。','【说明】:\x0a','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','具体描述','6793680HplZfY','extra','重命名失败:名称不能为空。','【操作权限】:\x20禁止修改此表格\x0a','成功删除了表格\x20'];_0x1362=function(){return _0x37ba99;};return _0x1362();}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x2b9298(0x2b0),'headers':['日期','时段','时间','地点',_0x2b9298(0x2b6)],'note':_0x2b9298(0x1a0),'rule_add':_0x2b9298(0x1cf),'rule_delete':'【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','rule_update':'【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':_0x2b9298(0x1a9),'headers':[_0x2b9298(0x19c),'外貌','身形','衣着','性格','身份','职业',_0x2b9298(0x1c6),'爱好','住所',_0x2b9298(0x193)],'note':_0x2b9298(0x1c2),'rule_add':_0x2b9298(0x1f2),'rule_delete':_0x2b9298(0x23c),'rule_update':_0x2b9298(0x194),'charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':'关系栏','headers':[_0x2b9298(0x20f),_0x2b9298(0x1ea),'关系','详情'],'columnWidths':[],'note':_0x2b9298(0x299),'rule_add':_0x2b9298(0x1f8),'rule_delete':_0x2b9298(0x2b1),'rule_update':_0x2b9298(0x260),'charLimitRules':{},'rowLimitRule':0x0,'rows':[],'rowStatuses':[]},{'name':_0x2b9298(0x253),'headers':['任务名','类型','详情','状态',_0x2b9298(0x24a),'地点',_0x2b9298(0x26a),'结果'],'note':_0x2b9298(0x29a),'rule_add':_0x2b9298(0x1be),'rule_delete':_0x2b9298(0x1d4),'rule_update':_0x2b9298(0x1de),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x2b9298(0x1f5),'headers':[_0x2b9298(0x232),'类型','详情','状态',_0x2b9298(0x1bf),'重要原因'],'note':_0x2b9298(0x1fd),'rule_add':_0x2b9298(0x2b4),'rule_delete':_0x2b9298(0x220),'rule_update':_0x2b9298(0x1d3),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x2b9298(0x1e6),'headers':[_0x2b9298(0x283),_0x2b9298(0x28e)],'note':_0x2b9298(0x2a0),'rule_add':_0x2b9298(0x191),'rule_delete':_0x2b9298(0x1f1),'rule_update':_0x2b9298(0x1e7),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x2b9298(0x254),'headers':['类型',_0x2b9298(0x23d)],'note':_0x2b9298(0x231),'rule_add':_0x2b9298(0x1e0),'rule_delete':'【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','rule_update':_0x2b9298(0x1b3),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x5e83af=_0x2b9298;log(_0x5e83af(0x263),'info');const _0x3d2811=JSON['parse'](JSON[_0x5e83af(0x206)](defaultTemplate['tables']));return _0x3d2811[_0x5e83af(0x2a6)](_0x2475db=>{const _0x4ebfb4=_0x5e83af;_0x2475db[_0x4ebfb4(0x199)]={'columnIndex':-0x1,'limit':0x0},_0x2475db[_0x4ebfb4(0x248)]=0x0,_0x2475db[_0x4ebfb4(0x20d)]=[];}),_0x3d2811;}export function loadTables(_0x39fbda=-0x1){const _0x159000=_0x2b9298,_0x18c2ee=getContext();if(_0x18c2ee&&_0x18c2ee[_0x159000(0x28d)]&&_0x18c2ee[_0x159000(0x28d)][_0x159000(0x1ff)]>0x0){const _0x3c2aa5=_0x39fbda===-0x1?_0x18c2ee['chat'][_0x159000(0x1ff)]-0x1:_0x39fbda-0x1;for(let _0x48f413=_0x3c2aa5;_0x48f413>=0x0;_0x48f413--){const _0x5dd016=_0x18c2ee[_0x159000(0x28d)][_0x48f413];if(_0x5dd016[_0x159000(0x23f)]&&_0x5dd016[_0x159000(0x23f)][TABLE_DATA_KEY]){log(_0x159000(0x27a)+_0x48f413+_0x159000(0x20a),_0x159000(0x276));let _0x419a26=JSON['parse'](JSON['stringify'](_0x5dd016['extra'][TABLE_DATA_KEY]));return _0x419a26['forEach'](_0x6c47e6=>{const _0x3fbcf0=_0x159000;if(_0x6c47e6[_0x3fbcf0(0x233)]===undefined)_0x6c47e6[_0x3fbcf0(0x233)]='无';if(_0x6c47e6[_0x3fbcf0(0x257)]===undefined)_0x6c47e6[_0x3fbcf0(0x257)]='允许';if(_0x6c47e6[_0x3fbcf0(0x18e)]===undefined)_0x6c47e6[_0x3fbcf0(0x18e)]='允许';if(_0x6c47e6[_0x3fbcf0(0x1ed)]===undefined)_0x6c47e6[_0x3fbcf0(0x1ed)]='允许';_0x6c47e6[_0x3fbcf0(0x199)]&&!_0x6c47e6[_0x3fbcf0(0x1d5)]&&(_0x6c47e6[_0x3fbcf0(0x1d5)]={},_0x6c47e6['charLimitRule']['columnIndex']!==-0x1&&_0x6c47e6['charLimitRule'][_0x3fbcf0(0x2a4)]>0x0&&(_0x6c47e6['charLimitRules'][_0x6c47e6[_0x3fbcf0(0x199)][_0x3fbcf0(0x1b8)]]=_0x6c47e6[_0x3fbcf0(0x199)]['limit']));delete _0x6c47e6[_0x3fbcf0(0x199)];if(_0x6c47e6[_0x3fbcf0(0x248)]===undefined)_0x6c47e6[_0x3fbcf0(0x248)]=0x0;if(_0x6c47e6['columnWidths']===undefined)_0x6c47e6[_0x3fbcf0(0x20d)]=[];!_0x6c47e6['rowStatuses']&&(_0x6c47e6[_0x3fbcf0(0x210)]=Array(_0x6c47e6['rows']['length'])[_0x3fbcf0(0x252)](_0x3fbcf0(0x1a4)));}),currentTablesState=_0x419a26,dispatchAllTablesUpdate(),currentTablesState;}}}if(extension_settings[extensionName]?.[_0x159000(0x245)]){log(_0x159000(0x292),_0x159000(0x276));try{const _0x196f1b=extension_settings[extensionName][_0x159000(0x245)];return currentTablesState=JSON['parse'](JSON['stringify'](_0x196f1b[_0x159000(0x19e)])),_0x196f1b[_0x159000(0x21c)]!==undefined&&saveBatchFillerRuleTemplate(_0x196f1b[_0x159000(0x21c)]),_0x196f1b[_0x159000(0x207)]!==undefined&&saveBatchFillerFlowTemplate(_0x196f1b[_0x159000(0x207)]),dispatchAllTablesUpdate(),currentTablesState;}catch(_0x25e472){log(_0x159000(0x229)+_0x25e472['message'],_0x159000(0x222));}}return log(_0x159000(0x195),_0x159000(0x276)),currentTablesState=getDefaultTables(),dispatchAllTablesUpdate(),currentTablesState;}export function saveStateToMessage(_0x3b4696,_0x1be52c){const _0x500014=_0x2b9298;if(!_0x3b4696||!_0x1be52c)return log('缺少状态或目标消息,无法保存。',_0x500014(0x222)),![];return!_0x1be52c[_0x500014(0x23f)]&&(_0x1be52c[_0x500014(0x23f)]={}),_0x1be52c[_0x500014(0x23f)][TABLE_DATA_KEY]=JSON[_0x500014(0x198)](JSON[_0x500014(0x206)](_0x3b4696)),log(_0x500014(0x2a9)+_0x1be52c[_0x500014(0x204)][_0x500014(0x1d0)](0x0,0x14)+_0x500014(0x1c0),'info'),!![];}export function saveTables(_0x2c2cce=_0x2b9298(0x21e)){const _0x19e1fa=_0x2b9298;return log(_0x19e1fa(0x262)+_0x2c2cce+_0x19e1fa(0x236),_0x19e1fa(0x276)),!![];}export function deleteColumn(_0x4713f7,_0x5de253){const _0x14a040=_0x2b9298,_0x3f1d07=getMemoryState();if(!_0x3f1d07[_0x4713f7]||_0x5de253<0x0||_0x5de253>=_0x3f1d07[_0x4713f7][_0x14a040(0x29d)][_0x14a040(0x1ff)]){log(_0x14a040(0x2a3)+_0x4713f7+'\x20中找不到索引为\x20'+_0x5de253+_0x14a040(0x2a8),'error');return;}_0x3f1d07[_0x4713f7][_0x14a040(0x29d)][_0x14a040(0x293)](_0x5de253,0x1),_0x3f1d07[_0x4713f7]['rows'][_0x14a040(0x2a6)](_0x19b23f=>{const _0x46cd3d=_0x14a040;_0x19b23f[_0x46cd3d(0x1ff)]>_0x5de253&&_0x19b23f[_0x46cd3d(0x293)](_0x5de253,0x1);}),_0x3f1d07[_0x4713f7][_0x14a040(0x20d)]&&_0x3f1d07[_0x4713f7][_0x14a040(0x20d)][_0x14a040(0x1ff)]>_0x5de253&&_0x3f1d07[_0x4713f7][_0x14a040(0x20d)][_0x14a040(0x293)](_0x5de253,0x1),log(_0x14a040(0x242)+_0x4713f7+_0x14a040(0x1b7)+(_0x5de253+0x1)+_0x14a040(0x29f),_0x14a040(0x24c)),saveTables(_0x3f1d07),dispatchTableUpdate(_0x4713f7);}export function moveRow(_0x5807c,_0x5d79e9,_0x573ab0){const _0x3b49c0=_0x2b9298,_0x515d82=getMemoryState(),_0x28edd8=_0x515d82[_0x5807c];if(!_0x28edd8||_0x5d79e9<0x0||_0x5d79e9>=_0x28edd8[_0x3b49c0(0x1da)][_0x3b49c0(0x1ff)])return;const _0x5d6149=_0x573ab0==='up'?_0x5d79e9-0x1:_0x5d79e9+0x1;if(_0x5d6149<0x0||_0x5d6149>=_0x28edd8[_0x3b49c0(0x1da)][_0x3b49c0(0x1ff)])return;const [_0x1b124f]=_0x28edd8[_0x3b49c0(0x1da)][_0x3b49c0(0x293)](_0x5d79e9,0x1);_0x28edd8[_0x3b49c0(0x1da)][_0x3b49c0(0x293)](_0x5d6149,0x0,_0x1b124f);if(_0x28edd8[_0x3b49c0(0x210)]&&_0x28edd8[_0x3b49c0(0x210)][_0x3b49c0(0x1ff)]===_0x28edd8[_0x3b49c0(0x1da)][_0x3b49c0(0x1ff)]+0x1){const [_0xd96db6]=_0x28edd8[_0x3b49c0(0x210)][_0x3b49c0(0x293)](_0x5d79e9,0x1);_0x28edd8[_0x3b49c0(0x210)]['splice'](_0x5d6149,0x0,_0xd96db6);}log('成功将表格\x20'+_0x5807c+_0x3b49c0(0x1b7)+(_0x5d79e9+0x1)+_0x3b49c0(0x1cb)+(_0x5d6149+0x1)+'\x20行。',_0x3b49c0(0x24c)),saveTables(_0x515d82),dispatchTableUpdate(_0x5807c);}export function insertRow(_0x2e9909,_0x530dc7,_0x1db628=_0x2b9298(0x266)){const _0x13eced=_0x2b9298,_0x15c0bd=getMemoryState(),_0x56989d=_0x15c0bd[_0x2e9909];if(!_0x56989d){log(_0x13eced(0x2aa)+_0x2e9909+_0x13eced(0x1f6),_0x13eced(0x222));return;}let _0x2f1e99;typeof _0x530dc7===_0x13eced(0x282)?_0x2f1e99=_0x1db628==='above'?_0x530dc7:_0x530dc7+0x1:_0x2f1e99=_0x56989d[_0x13eced(0x1da)][_0x13eced(0x1ff)];if(_0x2f1e99<0x0)_0x2f1e99=0x0;if(_0x2f1e99>_0x56989d[_0x13eced(0x1da)][_0x13eced(0x1ff)])_0x2f1e99=_0x56989d['rows'][_0x13eced(0x1ff)];const _0x21e03c=new Array(_0x56989d[_0x13eced(0x29d)][_0x13eced(0x1ff)])[_0x13eced(0x252)]('');if(typeof _0x530dc7===_0x13eced(0x296)&&_0x530dc7!==null)for(const _0x26cf96 in _0x530dc7){const _0x2a288b=parseInt(_0x26cf96,0xa);!isNaN(_0x2a288b)&&_0x2a288b<_0x21e03c['length']&&(_0x21e03c[_0x2a288b]=_0x530dc7[_0x26cf96],addHighlight(_0x2e9909,_0x2f1e99,_0x2a288b));}_0x56989d[_0x13eced(0x1da)][_0x13eced(0x293)](_0x2f1e99,0x0,_0x21e03c);if(!_0x56989d[_0x13eced(0x210)])_0x56989d[_0x13eced(0x210)]=Array(_0x56989d[_0x13eced(0x1da)][_0x13eced(0x1ff)])[_0x13eced(0x252)](_0x13eced(0x1a4));_0x56989d[_0x13eced(0x210)][_0x13eced(0x293)](_0x2f1e99,0x0,'normal'),updatedTables[_0x13eced(0x2b2)](_0x2e9909),dispatchTableUpdate(_0x2e9909),log(_0x13eced(0x25a)+_0x56989d[_0x13eced(0x243)]+'\x20(索引\x20'+_0x2e9909+')\x20的第\x20'+(_0x2f1e99+0x1)+_0x13eced(0x1bd),_0x13eced(0x24c));const _0x38559a=getContext();if(_0x38559a[_0x13eced(0x28d)]&&_0x38559a[_0x13eced(0x28d)][_0x13eced(0x1ff)]>0x0){const _0x17450f=_0x38559a[_0x13eced(0x28d)][_0x38559a[_0x13eced(0x28d)][_0x13eced(0x1ff)]-0x1];if(saveStateToMessage(_0x15c0bd,_0x17450f)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x3e9f07){const _0x554d5b=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x3e9f07])return;const _0x250b9c=currentTablesState[_0x3e9f07],_0x3cfdad=_0x250b9c[_0x554d5b(0x29d)][_0x554d5b(0x1ff)],_0x18a99a=Array(_0x3cfdad)[_0x554d5b(0x252)]('');_0x250b9c[_0x554d5b(0x1da)]['push'](_0x18a99a);if(!_0x250b9c['rowStatuses'])_0x250b9c[_0x554d5b(0x210)]=Array(_0x250b9c[_0x554d5b(0x1da)]['length'])[_0x554d5b(0x252)](_0x554d5b(0x1a4));_0x250b9c[_0x554d5b(0x210)][_0x554d5b(0x1e3)](_0x554d5b(0x1a4)),updatedTables[_0x554d5b(0x2b2)](_0x3e9f07),dispatchTableUpdate(_0x3e9f07);const _0x373332=_0x554d5b(0x1fb)+_0x250b9c[_0x554d5b(0x243)]+']\x20新增了一行。';log(_0x373332,_0x554d5b(0x276));const _0x2395fe=getContext();if(_0x2395fe[_0x554d5b(0x28d)]&&_0x2395fe['chat'][_0x554d5b(0x1ff)]>0x0){const _0x45256b=_0x2395fe[_0x554d5b(0x28d)][_0x2395fe['chat'][_0x554d5b(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x45256b)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x11dd6d){const _0x95a228=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x11dd6d])return;const _0x4a88e9=currentTablesState[_0x11dd6d],_0x4708d0=_0x95a228(0x227)+(_0x4a88e9[_0x95a228(0x29d)]['length']+0x1);_0x4a88e9[_0x95a228(0x29d)][_0x95a228(0x1e3)](_0x4708d0),_0x4a88e9[_0x95a228(0x1da)]['forEach'](_0x353096=>_0x353096[_0x95a228(0x1e3)](''));if(!_0x4a88e9[_0x95a228(0x20d)])_0x4a88e9['columnWidths']=[];_0x4a88e9[_0x95a228(0x20d)]['push'](null);const _0x15af49=_0x95a228(0x1fb)+_0x4a88e9[_0x95a228(0x243)]+_0x95a228(0x28c);log(_0x15af49,_0x95a228(0x276));const _0x1223c4=getContext();if(_0x1223c4['chat']&&_0x1223c4[_0x95a228(0x28d)][_0x95a228(0x1ff)]>0x0){const _0x46dfae=_0x1223c4['chat'][_0x1223c4[_0x95a228(0x28d)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x46dfae)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x366130,_0x4038fa,_0x43e45e){const _0x3f71a5=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x366130]||currentTablesState[_0x366130]['headers'][_0x4038fa]===undefined)return;const _0x4fea36=currentTablesState[_0x366130][_0x3f71a5(0x243)],_0x5c6963=currentTablesState[_0x366130]['headers'][_0x4038fa];currentTablesState[_0x366130][_0x3f71a5(0x29d)][_0x4038fa]=_0x43e45e;const _0x2750e9='表格\x20['+_0x4fea36+_0x3f71a5(0x25e)+_0x5c6963+_0x3f71a5(0x29c)+_0x43e45e+'”。';log(_0x2750e9,'info');const _0x1e9a32=getContext();if(_0x1e9a32[_0x3f71a5(0x28d)]&&_0x1e9a32[_0x3f71a5(0x28d)][_0x3f71a5(0x1ff)]>0x0){const _0x1009dd=_0x1e9a32[_0x3f71a5(0x28d)][_0x1e9a32[_0x3f71a5(0x28d)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x1009dd)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x341bb,_0x326278){const _0x2545ec=_0x2b9298,_0x1438c3=currentTablesState?.[_0x341bb];if(!_0x1438c3||!_0x1438c3[_0x2545ec(0x1da)][_0x326278])return;!_0x1438c3[_0x2545ec(0x210)]&&(_0x1438c3[_0x2545ec(0x210)]=Array(_0x1438c3[_0x2545ec(0x1da)][_0x2545ec(0x1ff)])[_0x2545ec(0x252)](_0x2545ec(0x1a4)));_0x1438c3['rowStatuses'][_0x326278]=_0x2545ec(0x269),updatedTables[_0x2545ec(0x2b2)](_0x341bb);const _0x46297e=_0x2545ec(0x1fb)+_0x1438c3[_0x2545ec(0x243)]+_0x2545ec(0x213)+(_0x326278+0x1)+_0x2545ec(0x1c1);log(_0x46297e,_0x2545ec(0x276));const _0x1f8991=getContext();if(_0x1f8991[_0x2545ec(0x28d)]?.[_0x2545ec(0x1ff)]>0x0){const _0x29658a=_0x1f8991[_0x2545ec(0x28d)][_0x1f8991[_0x2545ec(0x28d)][_0x2545ec(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x29658a)){await saveChat(),renderTables(),dispatchTableUpdate(_0x341bb);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x341bb);}export async function restoreRow(_0x1b0a74,_0x2cf92b){const _0x4fb08a=_0x2b9298,_0x547108=currentTablesState?.[_0x1b0a74];if(!_0x547108||!_0x547108[_0x4fb08a(0x1da)][_0x2cf92b]||!_0x547108['rowStatuses'])return;_0x547108[_0x4fb08a(0x210)][_0x2cf92b]=_0x4fb08a(0x1a4),updatedTables[_0x4fb08a(0x2b2)](_0x1b0a74);const _0x486b80=_0x4fb08a(0x1fb)+_0x547108[_0x4fb08a(0x243)]+']\x20的第\x20'+(_0x2cf92b+0x1)+_0x4fb08a(0x1b4);log(_0x486b80,_0x4fb08a(0x276));const _0x589e43=getContext();if(_0x589e43['chat']?.['length']>0x0){const _0x3e6eb7=_0x589e43[_0x4fb08a(0x28d)][_0x589e43[_0x4fb08a(0x28d)][_0x4fb08a(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3e6eb7)){await saveChat(),renderTables(),dispatchTableUpdate(_0x1b0a74);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x1b0a74);}export function commitPendingDeletions(){const _0x499a33=_0x2b9298;if(!currentTablesState)return![];let _0x405426=0x0;currentTablesState[_0x499a33(0x2a6)]((_0x3f82b4,_0x27352c)=>{const _0x4556ff=_0x499a33;if(!_0x3f82b4[_0x4556ff(0x210)]||_0x3f82b4['rowStatuses'][_0x4556ff(0x1ff)]===0x0)return;let _0x2952f6=![];for(let _0x32315a=_0x3f82b4[_0x4556ff(0x1da)]['length']-0x1;_0x32315a>=0x0;_0x32315a--){_0x3f82b4['rowStatuses'][_0x32315a]===_0x4556ff(0x269)&&(_0x3f82b4[_0x4556ff(0x1da)]['splice'](_0x32315a,0x1),_0x3f82b4[_0x4556ff(0x210)][_0x4556ff(0x293)](_0x32315a,0x1),_0x405426++,_0x2952f6=!![]);}_0x2952f6&&updatedTables['add'](_0x27352c);});if(_0x405426>0x0)return log(_0x499a33(0x278)+_0x405426+'\x20行。',_0x499a33(0x276)),updatedTables[_0x499a33(0x200)]>0x0&&updatedTables[_0x499a33(0x2a6)](_0x44f2af=>{dispatchTableUpdate(_0x44f2af);}),!![];return![];}export function insertColumn(_0x4af7fa,_0x37d9cf,_0x55505b){const _0x32af32=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x4af7fa])return;const _0x434cc7=currentTablesState[_0x4af7fa],_0x4bff03=_0x55505b==='left'?_0x37d9cf:_0x37d9cf+0x1,_0x8c2f12='新列';_0x434cc7['headers'][_0x32af32(0x293)](_0x4bff03,0x0,_0x8c2f12),_0x434cc7[_0x32af32(0x1da)][_0x32af32(0x2a6)](_0x17e7a5=>_0x17e7a5['splice'](_0x4bff03,0x0,''));if(!_0x434cc7[_0x32af32(0x20d)])_0x434cc7[_0x32af32(0x20d)]=[];_0x434cc7['columnWidths'][_0x32af32(0x293)](_0x4bff03,0x0,null);const _0x4bc7b9='表格\x20['+_0x434cc7['name']+_0x32af32(0x1f0)+(_0x37d9cf+0x1)+'\x20列的'+(_0x55505b===_0x32af32(0x280)?'左侧':'右侧')+_0x32af32(0x1a8);log(_0x4bc7b9,_0x32af32(0x276));const _0x42d2ba=getContext();if(_0x42d2ba[_0x32af32(0x28d)]&&_0x42d2ba['chat']['length']>0x0){const _0x2f9abb=_0x42d2ba[_0x32af32(0x28d)][_0x42d2ba[_0x32af32(0x28d)][_0x32af32(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x2f9abb)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x38ab53,_0x54a145,_0x12e3f6){const _0x38f4fd=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x38ab53])return;const _0x1e99a8=currentTablesState[_0x38ab53],_0x77d15e=_0x1e99a8[_0x38f4fd(0x29d)],_0x3a4473=_0x1e99a8[_0x38f4fd(0x1da)],_0x577654=_0x12e3f6==='left'?_0x54a145-0x1:_0x54a145+0x1;if(_0x577654<0x0||_0x577654>=_0x77d15e[_0x38f4fd(0x1ff)]){log(_0x38f4fd(0x22d)+_0x54a145+_0x38f4fd(0x1c7),_0x38f4fd(0x205));return;}const [_0x1beb2e]=_0x77d15e[_0x38f4fd(0x293)](_0x54a145,0x1);_0x77d15e[_0x38f4fd(0x293)](_0x577654,0x0,_0x1beb2e),_0x3a4473[_0x38f4fd(0x2a6)](_0x5269cf=>{const _0x2eae79=_0x38f4fd,[_0x22732f]=_0x5269cf['splice'](_0x54a145,0x1);_0x5269cf[_0x2eae79(0x293)](_0x577654,0x0,_0x22732f);});if(_0x1e99a8['columnWidths']&&_0x1e99a8['columnWidths'][_0x38f4fd(0x1ff)]>_0x54a145){const [_0x3c4fab]=_0x1e99a8[_0x38f4fd(0x20d)][_0x38f4fd(0x293)](_0x54a145,0x1);_0x1e99a8[_0x38f4fd(0x20d)][_0x38f4fd(0x293)](_0x577654,0x0,_0x3c4fab);}const _0x29d643='表格\x20['+_0x1e99a8[_0x38f4fd(0x243)]+']\x20的列“'+_0x1beb2e+_0x38f4fd(0x1a2)+(_0x12e3f6===_0x38f4fd(0x280)?'左':'右')+'移动。';log(_0x29d643,_0x38f4fd(0x276));const _0x47153a=getContext();if(_0x47153a[_0x38f4fd(0x28d)]&&_0x47153a['chat']['length']>0x0){const _0x44a1c2=_0x47153a[_0x38f4fd(0x28d)][_0x47153a[_0x38f4fd(0x28d)][_0x38f4fd(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x44a1c2)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0xacb978){const _0x50e777=_0x2b9298;if(!currentTablesState||!currentTablesState[_0xacb978])return;const _0x3f2396=currentTablesState[_0xacb978]['name'];currentTablesState['splice'](_0xacb978,0x1);const _0x3258c5=_0x50e777(0x1fb)+_0x3f2396+_0x50e777(0x1d1);log(_0x3258c5,_0x50e777(0x24c));const _0x101fbd=getContext();if(_0x101fbd[_0x50e777(0x28d)]&&_0x101fbd[_0x50e777(0x28d)][_0x50e777(0x1ff)]>0x0){const _0x30684a=_0x101fbd[_0x50e777(0x28d)][_0x101fbd[_0x50e777(0x28d)][_0x50e777(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x30684a)){saveChat(),log('废黜表格后的状态已强制写入最新消息并立即保存。',_0x50e777(0x24c));return;}}log('无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!',_0x50e777(0x222)),saveChatDebounced();}export function addTable(_0x425051){const _0x401fca=_0x2b9298;if(!_0x425051||!_0x425051[_0x401fca(0x2ac)]()){log(_0x401fca(0x226),_0x401fca(0x222)),toastr['error']('表格名称不能为空。',_0x401fca(0x1e1));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x401fca(0x1aa)](_0x3f62bf=>_0x3f62bf[_0x401fca(0x243)]===_0x425051[_0x401fca(0x2ac)]())){log('无法创建表格:名为\x20\x22'+_0x425051+_0x401fca(0x202),'error'),toastr['error'](_0x401fca(0x1db)+_0x425051+_0x401fca(0x202),_0x401fca(0x1e1));return;}const _0x43a72f={'name':_0x425051[_0x401fca(0x2ac)](),'headers':[_0x401fca(0x25b)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':_0x401fca(0x281),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState['push'](_0x43a72f);const _0x2415fe=_0x401fca(0x27c)+_0x425051[_0x401fca(0x2ac)]()+']。';log(_0x2415fe,_0x401fca(0x24c));const _0x1fe5e8=getContext();if(_0x1fe5e8[_0x401fca(0x28d)]&&_0x1fe5e8['chat'][_0x401fca(0x1ff)]>0x0){const _0xda68d5=_0x1fe5e8[_0x401fca(0x28d)][_0x1fe5e8[_0x401fca(0x28d)][_0x401fca(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0xda68d5)){saveChat(),log(_0x401fca(0x26f),_0x401fca(0x24c));return;}}log('无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',_0x401fca(0x222)),saveChatDebounced();}export function renameTable(_0xe41ef7,_0x305011){const _0xd100ad=_0x2b9298;if(!currentTablesState||!currentTablesState[_0xe41ef7]){log('重命名失败:表格不存在。',_0xd100ad(0x222)),toastr['error']('表格不存在。','重命名失败');return;}const _0x1267e8=_0x305011[_0xd100ad(0x2ac)]();if(!_0x1267e8){log(_0xd100ad(0x240),_0xd100ad(0x222)),toastr[_0xd100ad(0x222)](_0xd100ad(0x1ae),'重命名失败');return;}if(currentTablesState[_0xd100ad(0x1aa)]((_0x472b89,_0x9abb84)=>_0x9abb84!==_0xe41ef7&&_0x472b89[_0xd100ad(0x243)]===_0x1267e8)){log('重命名失败:名为\x20\x22'+_0x1267e8+_0xd100ad(0x202),'error'),toastr[_0xd100ad(0x222)](_0xd100ad(0x1db)+_0x1267e8+'\x22\x20的表格已存在。',_0xd100ad(0x1dd));return;}const _0x171be7=currentTablesState[_0xe41ef7]['name'];currentTablesState[_0xe41ef7][_0xd100ad(0x243)]=_0x1267e8,log(_0xd100ad(0x234)+_0x171be7+_0xd100ad(0x297)+_0x1267e8+'\x22。',_0xd100ad(0x24c));const _0x7bed21=getContext();if(_0x7bed21['chat']&&_0x7bed21[_0xd100ad(0x28d)][_0xd100ad(0x1ff)]>0x0){const _0x5607c7=_0x7bed21[_0xd100ad(0x28d)][_0x7bed21[_0xd100ad(0x28d)][_0xd100ad(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x5607c7)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x10765c,_0x36cafa){const _0x50f740=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x10765c])return;const _0x15eaab=_0x36cafa==='up'?_0x10765c-0x1:_0x10765c+0x1;if(_0x15eaab<0x0||_0x15eaab>=currentTablesState[_0x50f740(0x1ff)]){log(_0x50f740(0x287)+_0x10765c+_0x50f740(0x1c7),_0x50f740(0x205));return;}const _0x52e5f8=currentTablesState[_0x10765c];currentTablesState[_0x10765c]=currentTablesState[_0x15eaab],currentTablesState[_0x15eaab]=_0x52e5f8;const _0x53857e='表格\x20['+_0x52e5f8[_0x50f740(0x243)]+']\x20的顺序已调整。';log(_0x53857e,_0x50f740(0x24c));const _0x24e71b=getContext();if(_0x24e71b[_0x50f740(0x28d)]&&_0x24e71b['chat'][_0x50f740(0x1ff)]>0x0){const _0x11c5c5=_0x24e71b[_0x50f740(0x28d)][_0x24e71b[_0x50f740(0x28d)][_0x50f740(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x11c5c5)){saveChat(),log(_0x50f740(0x2af),_0x50f740(0x24c));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!',_0x50f740(0x222)),saveChatDebounced();}export function updateTableRules(_0x298c80,_0x23840c){const _0x2b6a93=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x298c80])return;const _0x31d40a=currentTablesState[_0x298c80];_0x31d40a[_0x2b6a93(0x233)]=_0x23840c[_0x2b6a93(0x233)],_0x31d40a[_0x2b6a93(0x257)]=_0x23840c['rule_add'],_0x31d40a[_0x2b6a93(0x18e)]=_0x23840c[_0x2b6a93(0x18e)],_0x31d40a[_0x2b6a93(0x1ed)]=_0x23840c['rule_update'],_0x31d40a[_0x2b6a93(0x1d5)]=_0x23840c[_0x2b6a93(0x1d5)],_0x31d40a[_0x2b6a93(0x248)]=_0x23840c[_0x2b6a93(0x248)],_0x31d40a['simplifyRowThreshold']=_0x23840c[_0x2b6a93(0x279)],delete _0x31d40a[_0x2b6a93(0x199)];const _0xf45064=_0x2b6a93(0x1fb)+_0x31d40a[_0x2b6a93(0x243)]+_0x2b6a93(0x197);log(_0xf45064,'info');const _0x1d14ed=getContext();if(_0x1d14ed[_0x2b6a93(0x28d)]&&_0x1d14ed['chat']['length']>0x0){const _0x456ec1=_0x1d14ed[_0x2b6a93(0x28d)][_0x1d14ed[_0x2b6a93(0x28d)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x456ec1)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x394be4,_0x4f03d0,_0x6a9847){const _0x805b84=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x394be4]){log(_0x805b84(0x26b)+_0x394be4+'\x20中操作。',_0x805b84(0x222));return;}const _0x50505e=currentTablesState[_0x394be4];if(_0x4f03d0>=_0x50505e[_0x805b84(0x1da)][_0x805b84(0x1ff)]){log('AI指令意图更新不存在的行\x20(rowIndex:\x20'+_0x4f03d0+_0x805b84(0x24e)+_0x50505e[_0x805b84(0x243)]+']\x20末尾新增一行。',_0x805b84(0x205)),insertRow(_0x394be4,_0x6a9847);return;}const _0x1b5cc8=_0x50505e[_0x805b84(0x1da)][_0x4f03d0];for(const _0x3869d6 in _0x6a9847){const _0x1d2626=parseInt(_0x3869d6,0xa);_0x1d2626<_0x1b5cc8[_0x805b84(0x1ff)]&&(_0x1b5cc8[_0x1d2626]=_0x6a9847[_0x1d2626],addHighlight(_0x394be4,_0x4f03d0,_0x1d2626));}updatedTables[_0x805b84(0x2b2)](_0x394be4),dispatchTableUpdate(_0x394be4);const _0x583e88='AI\x20指令更新了表格\x20['+_0x50505e[_0x805b84(0x243)]+_0x805b84(0x213)+(_0x4f03d0+0x1)+_0x805b84(0x290);log(_0x583e88,_0x805b84(0x276));const _0x4ca04a=getContext();if(_0x4ca04a['chat']&&_0x4ca04a[_0x805b84(0x28d)][_0x805b84(0x1ff)]>0x0){const _0x2df8a3=_0x4ca04a[_0x805b84(0x28d)][_0x4ca04a['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x2df8a3)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x486fff=_0x2b9298;if(!currentTablesState){log(_0x486fff(0x22b),_0x486fff(0x222));return;}currentTablesState['forEach']((_0x5a00e3,_0x4f1652)=>{const _0x4eafe3=_0x486fff;_0x5a00e3[_0x4eafe3(0x1da)][_0x4eafe3(0x1ff)]>0x0&&updatedTables['add'](_0x4f1652),_0x5a00e3['rows']=[],_0x5a00e3[_0x4eafe3(0x210)]=[];}),log(_0x486fff(0x1fc),_0x486fff(0x205)),dispatchAllTablesUpdate();const _0x1194b2=getContext();if(_0x1194b2[_0x486fff(0x28d)]&&_0x1194b2[_0x486fff(0x28d)][_0x486fff(0x1ff)]>0x0){const _0x1a11cb=_0x1194b2['chat'][_0x1194b2[_0x486fff(0x28d)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x1a11cb)){saveChat(),log(_0x486fff(0x196),_0x486fff(0x24c)),toastr[_0x486fff(0x24c)](_0x486fff(0x18d),_0x486fff(0x1d7));return;}}log(_0x486fff(0x1c5),_0x486fff(0x222)),saveChatDebounced();}function checkTableRules(_0x4f3d84){const _0x189af8=_0x2b9298;let _0x5a582f=[];_0x4f3d84[_0x189af8(0x248)]&&_0x4f3d84[_0x189af8(0x248)]>0x0&&_0x4f3d84[_0x189af8(0x1da)][_0x189af8(0x1ff)]>_0x4f3d84[_0x189af8(0x248)]&&_0x5a582f[_0x189af8(0x1e3)](_0x189af8(0x29b)+_0x4f3d84[_0x189af8(0x243)]+_0x189af8(0x264)+_0x4f3d84[_0x189af8(0x248)]+_0x189af8(0x225)+_0x4f3d84[_0x189af8(0x248)]+_0x189af8(0x275));const _0x42561e=_0x4f3d84[_0x189af8(0x1d5)]||{};for(const _0x27ce22 in _0x42561e){const _0x332f08=parseInt(_0x27ce22,0xa),_0x591079=_0x42561e[_0x332f08];if(_0x591079>0x0&&_0x332f08>=0x0&&_0x332f08<_0x4f3d84[_0x189af8(0x29d)][_0x189af8(0x1ff)]){const _0x97056e=_0x4f3d84[_0x189af8(0x29d)][_0x332f08],_0x5d3850=[];_0x4f3d84['rows']['forEach']((_0x3e8cf6,_0x312e13)=>{const _0x12464f=_0x189af8;if(_0x4f3d84[_0x12464f(0x210)]&&_0x4f3d84['rowStatuses'][_0x312e13]===_0x12464f(0x269))return;const _0x5de6fb=_0x3e8cf6[_0x332f08]||'';_0x5de6fb[_0x12464f(0x1ff)]>_0x591079&&_0x5d3850['push'](_0x312e13);});if(_0x5d3850[_0x189af8(0x1ff)]>0x0){const _0x2405fd=_0x5d3850['join']('、');_0x5a582f[_0x189af8(0x1e3)](_0x189af8(0x29b)+_0x4f3d84[_0x189af8(0x243)]+')第('+_0x2405fd+_0x189af8(0x211)+_0x97056e+_0x189af8(0x214)+_0x591079+_0x189af8(0x223));}}}return _0x5a582f['join']('\x0a');}export function convertTablesToCsvString(){const _0x1d6dbd=_0x2b9298;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x302527='';return currentTablesState[_0x1d6dbd(0x2a6)]((_0x46aa8d,_0x56fa1c)=>{const _0x52fefd=_0x1d6dbd;_0x302527+='\x0a*\x20'+_0x56fa1c+':'+_0x46aa8d['name']+'\x0a',_0x302527+=_0x52fefd(0x23b)+(_0x46aa8d[_0x52fefd(0x233)]||'无')+'\x0a';const _0x9e771f=_0x46aa8d['name']['replace'](/\s/g,'')+'内容';_0x302527+='<'+_0x9e771f+'>\x0a';const _0x5a0956=[_0x52fefd(0x1a7),..._0x46aa8d[_0x52fefd(0x29d)]['map']((_0x265a8d,_0x39bc14)=>_0x39bc14+':'+_0x265a8d)];_0x302527+='|\x20'+_0x5a0956[_0x52fefd(0x1b1)](_0x52fefd(0x1e9))+_0x52fefd(0x1af),_0x302527+='|'+_0x5a0956['map'](()=>_0x52fefd(0x1a3))[_0x52fefd(0x1b1)]('|')+'|\x0a';const _0x2eb353=_0x46aa8d[_0x52fefd(0x1da)]['filter']((_0x561e7a,_0x34e9ef)=>!_0x46aa8d[_0x52fefd(0x210)]||_0x46aa8d[_0x52fefd(0x210)][_0x34e9ef]!==_0x52fefd(0x269));if(_0x2eb353[_0x52fefd(0x1ff)]===0x0)_0x302527+=_0x52fefd(0x26c);else{const _0x462675=_0x46aa8d[_0x52fefd(0x279)]||0x0;let _0x4e084f=0x0;_0x46aa8d[_0x52fefd(0x1da)]['forEach']((_0x30fd17,_0x2ddd80)=>{const _0x2a998e=_0x52fefd;if(_0x46aa8d[_0x2a998e(0x210)]&&_0x46aa8d[_0x2a998e(0x210)][_0x2ddd80]==='pending-deletion')return;if(_0x462675>0x0&&_0x2ddd80<_0x462675){if(_0x4e084f===0x0){const _0x3693d5=_0x30fd17['map'](()=>'---已锁定---');_0x302527+='|\x20'+_0x2ddd80+'\x20|\x20'+_0x3693d5[_0x2a998e(0x1b1)]('\x20|\x20')+_0x2a998e(0x1af),_0x302527+=_0x2a998e(0x2a7)+_0x30fd17[_0x2a998e(0x1ab)](()=>_0x2a998e(0x1d2))['join'](_0x2a998e(0x1e9))+_0x2a998e(0x1af);}if(_0x2ddd80===_0x462675-0x1){const _0x3d5c66=_0x30fd17['map'](()=>'---已锁定---');_0x302527+='|\x20'+_0x2ddd80+_0x2a998e(0x1e9)+_0x3d5c66[_0x2a998e(0x1b1)](_0x2a998e(0x1e9))+_0x2a998e(0x1af);}_0x4e084f++;return;}if(Array[_0x2a998e(0x21f)](_0x30fd17)){const _0x480f0c=_0x30fd17[_0x2a998e(0x1ab)](_0x184c36=>{const _0x550372=_0x2a998e,_0x171450=_0x184c36===null||_0x184c36===undefined||_0x184c36===''?'未知':String(_0x184c36);return _0x171450[_0x550372(0x28a)](/\|/g,'|');});_0x302527+='|\x20'+_0x2ddd80+_0x2a998e(0x1e9)+_0x480f0c[_0x2a998e(0x1b1)](_0x2a998e(0x1e9))+_0x2a998e(0x1af);}}),_0x4e084f>0x0&&(_0x302527+=_0x52fefd(0x298)+_0x4e084f+_0x52fefd(0x258)+(_0x4e084f-0x1)+_0x52fefd(0x1b6));}const _0xe62cdd=checkTableRules(_0x46aa8d);_0xe62cdd&&(_0x302527+=_0xe62cdd+'\x0a'),_0x302527+='\x0a',_0x302527+=_0x52fefd(0x250)+(_0x46aa8d['rule_add']||'允许')+'\x0a',_0x302527+=_0x52fefd(0x2ad)+(_0x46aa8d['rule_delete']||'允许')+'\x0a',_0x302527+=_0x52fefd(0x1c4)+(_0x46aa8d['rule_update']||'允许')+'\x0a',_0x56fa1c{const _0x2619f4=_0x5104,_0x15b2d0=_0xdd8502['includes'](_0x587e84);_0x284c38+=_0x2619f4(0x246)+_0x587e84+':'+_0x4db3aa[_0x2619f4(0x243)];!_0x15b2d0&&(_0x284c38+=_0x2619f4(0x1c9));_0x284c38+='\x0a',_0x284c38+=_0x2619f4(0x23b)+(_0x4db3aa['note']||'无')+'\x0a';const _0x1dca19=_0x4db3aa[_0x2619f4(0x243)][_0x2619f4(0x28a)](/\s/g,'')+'内容';_0x284c38+='<'+_0x1dca19+'>\x0a';const _0x2d2569=[_0x2619f4(0x1a7),..._0x4db3aa[_0x2619f4(0x29d)][_0x2619f4(0x1ab)]((_0x3add20,_0xd00447)=>_0xd00447+':'+_0x3add20)];_0x284c38+='|\x20'+_0x2d2569[_0x2619f4(0x1b1)]('\x20|\x20')+'\x20|\x0a',_0x284c38+='|'+_0x2d2569['map'](()=>_0x2619f4(0x1a3))['join']('|')+'|\x0a';if(_0x15b2d0){const _0x5666e8=_0x4db3aa[_0x2619f4(0x1da)][_0x2619f4(0x1b9)]((_0x2ecfb8,_0x9b2be8)=>!_0x4db3aa[_0x2619f4(0x210)]||_0x4db3aa[_0x2619f4(0x210)][_0x9b2be8]!=='pending-deletion');if(_0x5666e8[_0x2619f4(0x1ff)]===0x0)_0x284c38+=_0x2619f4(0x26c);else{const _0x38866e=_0x4db3aa[_0x2619f4(0x279)]||0x0;let _0x20b987=0x0;_0x4db3aa[_0x2619f4(0x1da)][_0x2619f4(0x2a6)]((_0x516a9c,_0x50a73e)=>{const _0x5329ca=_0x2619f4;if(_0x4db3aa[_0x5329ca(0x210)]&&_0x4db3aa[_0x5329ca(0x210)][_0x50a73e]===_0x5329ca(0x269))return;if(_0x38866e>0x0&&_0x50a73e<_0x38866e){if(_0x20b987===0x0){const _0x292cca=_0x516a9c[_0x5329ca(0x1ab)](()=>_0x5329ca(0x22e));_0x284c38+='|\x20'+_0x50a73e+_0x5329ca(0x1e9)+_0x292cca[_0x5329ca(0x1b1)](_0x5329ca(0x1e9))+_0x5329ca(0x1af),_0x284c38+='|\x20...\x20|\x20'+_0x516a9c['map'](()=>_0x5329ca(0x1d2))['join'](_0x5329ca(0x1e9))+_0x5329ca(0x1af);}if(_0x50a73e===_0x38866e-0x1){const _0x6736c3=_0x516a9c[_0x5329ca(0x1ab)](()=>'---已锁定---');_0x284c38+='|\x20'+_0x50a73e+_0x5329ca(0x1e9)+_0x6736c3[_0x5329ca(0x1b1)](_0x5329ca(0x1e9))+_0x5329ca(0x1af);}_0x20b987++;return;}if(Array[_0x5329ca(0x21f)](_0x516a9c)){const _0x466b9c=_0x516a9c[_0x5329ca(0x1ab)](_0x121b1a=>{const _0x25d75e=_0x5329ca,_0x916a9e=_0x121b1a===null||_0x121b1a===undefined||_0x121b1a===''?'未知':String(_0x121b1a);return _0x916a9e[_0x25d75e(0x28a)](/\|/g,'|');});_0x284c38+='|\x20'+_0x50a73e+'\x20|\x20'+_0x466b9c[_0x5329ca(0x1b1)](_0x5329ca(0x1e9))+_0x5329ca(0x1af);}}),_0x20b987>0x0&&(_0x284c38+=_0x2619f4(0x298)+_0x20b987+_0x2619f4(0x258)+(_0x20b987-0x1)+_0x2619f4(0x1b6));}const _0x5ca48b=checkTableRules(_0x4db3aa);_0x5ca48b&&(_0x284c38+=_0x5ca48b+'\x0a');}else _0x284c38+=_0x2619f4(0x209);_0x284c38+='\x0a',_0x15b2d0?(_0x284c38+=_0x2619f4(0x250)+(_0x4db3aa[_0x2619f4(0x257)]||'允许')+'\x0a',_0x284c38+=_0x2619f4(0x2ad)+(_0x4db3aa[_0x2619f4(0x18e)]||'允许')+'\x0a',_0x284c38+=_0x2619f4(0x1c4)+(_0x4db3aa['rule_update']||'允许')+'\x0a'):_0x284c38+=_0x2619f4(0x241),_0x587e84{const _0x13c051=_0x3f96b4;_0x4e055d+='\x0a<'+_0x4386ba[_0x13c051(0x243)]+'>\x0a';const _0x4b8514='|\x20'+_0x4386ba['headers'][_0x13c051(0x1b1)](_0x13c051(0x1e9))+'\x20|';_0x4e055d+=_0x4b8514+'\x0a';const _0x58b75e='|'+_0x4386ba[_0x13c051(0x29d)][_0x13c051(0x1ab)](()=>_0x13c051(0x1a3))[_0x13c051(0x1b1)]('|')+'|';_0x4e055d+=_0x58b75e+'\x0a';const _0x2a8a5d=_0x4386ba[_0x13c051(0x1da)][_0x13c051(0x1b9)]((_0x2d7d05,_0x4d083e)=>!_0x4386ba['rowStatuses']||_0x4386ba[_0x13c051(0x210)][_0x4d083e]!==_0x13c051(0x269));_0x2a8a5d[_0x13c051(0x1ff)]>0x0?_0x2a8a5d[_0x13c051(0x2a6)](_0x3d8840=>{const _0x4e56fd=_0x13c051;if(Array[_0x4e56fd(0x21f)](_0x3d8840)){const _0x44440b=_0x3d8840[_0x4e56fd(0x1ab)](_0x1c5137=>_0x1c5137===null||_0x1c5137===undefined||_0x1c5137===''?'\x20':_0x1c5137[_0x4e56fd(0x219)]()),_0x57c3b8='|\x20'+_0x44440b[_0x4e56fd(0x1b1)](_0x4e56fd(0x1e9))+'\x20|';_0x4e055d+=_0x57c3b8+'\x0a';}}):_0x4e055d+=_0x13c051(0x26c),_0x4e055d+='\x0a';}),_0x4e055d['trim']();}loadTables();export function getBatchFillerRuleTemplate(){const _0x5f335e=_0x2b9298;return extension_settings[extensionName]?.[_0x5f335e(0x1dc)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x480b47){const _0x43f04=_0x2b9298;extension_settings[extensionName][_0x43f04(0x1dc)]=_0x480b47,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x412f52=_0x2b9298;return extension_settings[extensionName]?.[_0x412f52(0x2b3)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x4f232c){const _0x39dbba=_0x2b9298;extension_settings[extensionName][_0x39dbba(0x2b3)]=_0x4f232c,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0xc08632=_0x2b9298;return extension_settings[extensionName]?.[_0xc08632(0x230)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x549ae4){const _0x16763c=_0x2b9298,_0x527c76=extension_settings[extensionName];if(_0x527c76['table_system_enabled']===![]){log('表格系统总开关已关闭,跳过\x20\x20标签处理。',_0x16763c(0x276));return;}if(!_0x549ae4){log('AI返回内容为空,无法更新表格。','warn');return;}const _0x3e1b73=_0x549ae4[_0x16763c(0x1df)](/([\s\S]*?)<\/Amily2Edit>/);if(!_0x3e1b73||!_0x3e1b73[0x1]){log(_0x16763c(0x284),_0x16763c(0x205));return;}let _0x55453a=_0x3e1b73[0x1][_0x16763c(0x28a)](//g,'')[_0x16763c(0x2ac)]();if(!_0x55453a){log(_0x16763c(0x25d),_0x16763c(0x276));return;}const _0x257079=_0x55453a[_0x16763c(0x21d)]('\x0a')[_0x16763c(0x1b9)](_0x2919d0=>_0x2919d0['trim']()!=='');log('准备执行从AI返回的\x20'+_0x257079[_0x16763c(0x1ff)]+'\x20条表格操作指令...',_0x16763c(0x276));const _0x5883b4={'insertRow':(_0x2ba890,_0x1cb4de)=>{const _0x3d62d9=_0x16763c;log(_0x3d62d9(0x1d6)+_0x2ba890+_0x3d62d9(0x289)+JSON[_0x3d62d9(0x206)](_0x1cb4de)+')','info'),insertRow(_0x2ba890,_0x1cb4de);},'deleteRow':(_0xbf8e13,_0x4495f2)=>{const _0x7031b4=_0x16763c;log(_0x7031b4(0x24f)+_0xbf8e13+',\x20rowIndex='+_0x4495f2+')',_0x7031b4(0x276)),deleteRow(_0xbf8e13,_0x4495f2);},'updateRow':(_0x937c79,_0x2e6795,_0x2c01d8)=>{const _0x498610=_0x16763c;log(_0x498610(0x244)+_0x937c79+_0x498610(0x259)+_0x2e6795+_0x498610(0x289)+JSON[_0x498610(0x206)](_0x2c01d8)+')',_0x498610(0x276)),updateRow(_0x937c79,_0x2e6795,_0x2c01d8);}};try{const _0x1054f1=Object[_0x16763c(0x28f)](async function(){})[_0x16763c(0x190)],_0x1d0ffb=new _0x1054f1('runner',_0x16763c(0x2a5)+_0x55453a+_0x16763c(0x1a6));await _0x1d0ffb(_0x5883b4),log(_0x16763c(0x21b),_0x16763c(0x24c)),toastr[_0x16763c(0x24c)]('已根据AI的指示成功更新表格!',_0x16763c(0x24d)),document[_0x16763c(0x249)](new CustomEvent(_0x16763c(0x1ca)));}catch(_0x49627d){log(_0x16763c(0x203)+_0x49627d[_0x16763c(0x273)],'error'),toastr[_0x16763c(0x222)](_0x16763c(0x239)+_0x49627d[_0x16763c(0x273)],'执行失败');}}export function saveAiTemplate(_0x382c8c){const _0xfa4411=_0x2b9298;extension_settings[extensionName][_0xfa4411(0x230)]=_0x382c8c,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x52f27a=![]){const _0x38b241=_0x2b9298;if(!currentTablesState){log(_0x38b241(0x22c),_0x38b241(0x222)),toastr[_0x38b241(0x222)](_0x38b241(0x1ef));return;}let _0x6ae24d,_0x13e8a6,_0x328f94;_0x52f27a?(_0x6ae24d=JSON[_0x38b241(0x198)](JSON[_0x38b241(0x206)](currentTablesState)),_0x13e8a6=_0x38b241(0x218),_0x328f94='完整备份'):(_0x6ae24d=currentTablesState[_0x38b241(0x1ab)](_0x53f17c=>({'name':_0x53f17c[_0x38b241(0x243)],'headers':_0x53f17c[_0x38b241(0x29d)],'columnWidths':_0x53f17c[_0x38b241(0x20d)]||[],'note':_0x53f17c[_0x38b241(0x233)],'rule_add':_0x53f17c[_0x38b241(0x257)],'rule_delete':_0x53f17c[_0x38b241(0x18e)],'rule_update':_0x53f17c[_0x38b241(0x1ed)],'charLimitRules':_0x53f17c[_0x38b241(0x1d5)]||{},'rowLimitRule':_0x53f17c[_0x38b241(0x248)]||0x0,'rows':[],'rowStatuses':[]})),_0x13e8a6='Amily2-Table-Preset-v2.0-clean',_0x328f94=_0x38b241(0x212));const _0x488fe0={'version':_0x38b241(0x1d8),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x6ae24d},_0xac831=new Blob([JSON[_0x38b241(0x206)](_0x488fe0,null,0x2)],{'type':_0x38b241(0x1b0)}),_0x1ae358=URL[_0x38b241(0x272)](_0xac831),_0x2051df=document[_0x38b241(0x267)]('a');_0x2051df[_0x38b241(0x208)]=_0x1ae358,_0x2051df[_0x38b241(0x286)]=_0x38b241(0x1fa)+_0x328f94+'-'+new Date()[_0x38b241(0x28b)]()[_0x38b241(0x255)](0x0,0xa)+_0x38b241(0x1b5),document[_0x38b241(0x1e2)]['appendChild'](_0x2051df),_0x2051df[_0x38b241(0x1cc)](),document[_0x38b241(0x1e2)][_0x38b241(0x270)](_0x2051df),URL[_0x38b241(0x1f9)](_0x1ae358),log('【'+_0x328f94+_0x38b241(0x1f3),_0x38b241(0x24c)),toastr[_0x38b241(0x24c)]('【'+_0x328f94+_0x38b241(0x20c),_0x38b241(0x295));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0xfb09e9){const _0x4dc077=_0x2b9298,_0x17277f=document[_0x4dc077(0x267)]('input');_0x17277f[_0x4dc077(0x25c)]=_0x4dc077(0x228),_0x17277f[_0x4dc077(0x235)]=_0x4dc077(0x1b5),_0x17277f['onchange']=_0x40018b=>{const _0x44a7a6=_0x4dc077,_0x4e60a9=_0x40018b['target'][_0x44a7a6(0x1ad)][0x0];if(!_0x4e60a9)return;const _0x4e7a40=new FileReader();_0x4e7a40[_0x44a7a6(0x1ac)]=_0xc77d47=>{const _0x172ddf=_0x44a7a6;try{const _0x16277c=JSON[_0x172ddf(0x198)](_0xc77d47[_0x172ddf(0x291)][_0x172ddf(0x221)]);if(!_0x16277c[_0x172ddf(0x1cd)]||!Array[_0x172ddf(0x21f)](_0x16277c[_0x172ddf(0x19e)]))throw new Error(_0x172ddf(0x18c));const _0x2aa8f4=window[_0x172ddf(0x25f)]('【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?');if(!_0x2aa8f4){log(_0x172ddf(0x265),_0x172ddf(0x276)),toastr[_0x172ddf(0x276)](_0x172ddf(0x2a1));return;}if(_0x16277c[_0x172ddf(0x1cd)]===_0x172ddf(0x1d8))saveBatchFillerRuleTemplate(_0x16277c[_0x172ddf(0x21c)]||''),saveBatchFillerFlowTemplate(_0x16277c[_0x172ddf(0x207)]||''),saveAiTemplate(_0x16277c[_0x172ddf(0x1f7)]||'');else{if(_0x16277c['aiRuleTemplate']!==undefined&&_0x16277c[_0x172ddf(0x22a)]!==undefined)saveBatchFillerRuleTemplate(_0x16277c[_0x172ddf(0x1d9)]||''),saveBatchFillerFlowTemplate(_0x16277c[_0x172ddf(0x22a)]||''),saveAiTemplate(_0x16277c['aiFlowTemplate']||'');else _0x16277c[_0x172ddf(0x26d)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x16277c['aiTemplate']||''),saveAiTemplate(_0x16277c[_0x172ddf(0x26d)]||'')):log(_0x172ddf(0x23a),_0x172ddf(0x205));}const _0x49cec4=_0x16277c[_0x172ddf(0x19e)];_0x49cec4[_0x172ddf(0x2a6)](_0xa84e5a=>{const _0x2fa73e=_0x172ddf;if(_0xa84e5a['name']===undefined||_0xa84e5a[_0x2fa73e(0x29d)]===undefined||_0xa84e5a['rows']===undefined)throw new Error(_0x2fa73e(0x20b)+JSON[_0x2fa73e(0x206)](_0xa84e5a));if(_0xa84e5a[_0x2fa73e(0x233)]===undefined)_0xa84e5a[_0x2fa73e(0x233)]='无';if(_0xa84e5a['rule_add']===undefined)_0xa84e5a[_0x2fa73e(0x257)]='允许';if(_0xa84e5a[_0x2fa73e(0x18e)]===undefined)_0xa84e5a[_0x2fa73e(0x18e)]='允许';if(_0xa84e5a[_0x2fa73e(0x1ed)]===undefined)_0xa84e5a[_0x2fa73e(0x1ed)]='允许';if(_0xa84e5a[_0x2fa73e(0x199)]&&!_0xa84e5a[_0x2fa73e(0x1d5)])_0xa84e5a[_0x2fa73e(0x1d5)]={},_0xa84e5a[_0x2fa73e(0x199)][_0x2fa73e(0x1b8)]!==-0x1&&_0xa84e5a[_0x2fa73e(0x199)][_0x2fa73e(0x2a4)]>0x0&&(_0xa84e5a[_0x2fa73e(0x1d5)][_0xa84e5a['charLimitRule'][_0x2fa73e(0x1b8)]]=_0xa84e5a[_0x2fa73e(0x199)][_0x2fa73e(0x2a4)]);else _0xa84e5a['charLimitRules']===undefined&&(_0xa84e5a[_0x2fa73e(0x1d5)]={});delete _0xa84e5a[_0x2fa73e(0x199)],!_0xa84e5a['rowStatuses']&&(_0xa84e5a[_0x2fa73e(0x210)]=Array(_0xa84e5a[_0x2fa73e(0x1da)][_0x2fa73e(0x1ff)])[_0x2fa73e(0x252)](_0x2fa73e(0x1a4))),_0xa84e5a[_0x2fa73e(0x248)]===undefined&&(_0xa84e5a['rowLimitRule']=0x0),_0xa84e5a[_0x2fa73e(0x20d)]===undefined&&(_0xa84e5a[_0x2fa73e(0x20d)]=[]);}),setMemoryState(_0x49cec4),dispatchAllTablesUpdate();const _0x30965d=getContext();if(_0x30965d[_0x172ddf(0x28d)]&&_0x30965d[_0x172ddf(0x28d)][_0x172ddf(0x1ff)]>0x0){const _0x2e994d=_0x30965d[_0x172ddf(0x28d)][_0x30965d['chat']['length']-0x1];saveStateToMessage(getMemoryState(),_0x2e994d)&&(saveChat(),log(_0x172ddf(0x215),_0x172ddf(0x24c)));}else saveChatDebounced();log(_0x172ddf(0x277),_0x172ddf(0x24c)),toastr[_0x172ddf(0x24c)]('预设已成功导入!',_0x172ddf(0x201)),typeof _0xfb09e9===_0x172ddf(0x1e8)&&_0xfb09e9();}catch(_0x2b1ba1){log(_0x172ddf(0x2ae)+_0x2b1ba1['message'],_0x172ddf(0x222)),toastr[_0x172ddf(0x222)]('导入失败:'+_0x2b1ba1['message'],'错误');}},_0x4e7a40['readAsText'](_0x4e60a9);},_0x17277f[_0x4dc077(0x1cc)]();}export async function rollbackState(){const _0x159026=_0x2b9298,_0x370c01=getContext();if(!_0x370c01||!_0x370c01['chat']||_0x370c01[_0x159026(0x28d)][_0x159026(0x1ff)]<0x2)return log(_0x159026(0x261),'warn'),toastr['warning']('聊天记录不足,无法执行回退操作。'),![];const _0xaa7c1f=_0x370c01[_0x159026(0x28d)],_0x25dd49=_0xaa7c1f[_0x159026(0x1ff)]-0x1,_0x57f220=_0xaa7c1f[_0x25dd49];log(_0x159026(0x1a1)+(_0x25dd49-0x1)+'\x20条消息加载表格状态...',_0x159026(0x276));const _0x293224=loadTables(_0x25dd49);if(!_0x293224)return log(_0x159026(0x192),'error'),toastr[_0x159026(0x222)](_0x159026(0x24b)),![];setMemoryState(_0x293224);if(saveStateToMessage(_0x293224,_0x57f220))await saveChat(),log(_0x159026(0x274),_0x159026(0x24c));else return log(_0x159026(0x237),_0x159026(0x222)),toastr['error'](_0x159026(0x18f)),![];return renderTables(),updateOrInsertTableInChat(),log(_0x159026(0x29e),_0x159026(0x276)),!![];}export async function rollbackAndRefill(){const _0x179a49=_0x2b9298,_0x2b353f=extension_settings[extensionName];if(_0x2b353f[_0x179a49(0x268)]===![]){log(_0x179a49(0x19d),_0x179a49(0x276)),toastr[_0x179a49(0x276)](_0x179a49(0x1e4));return;}toastr[_0x179a49(0x276)]('正在执行回退并重新填表...');const _0x4230bf=await rollbackState();if(!_0x4230bf){toastr[_0x179a49(0x222)](_0x179a49(0x1b2));return;}toastr['success'](_0x179a49(0x1ec));const _0x5769b3=getContext(),_0x4c99b3=_0x5769b3[_0x179a49(0x28d)][_0x5769b3[_0x179a49(0x28d)]['length']-0x1];try{await fillWithSecondaryApi(_0x4c99b3,!![]),log('回退并重新填表操作完成。',_0x179a49(0x24c));}catch(_0x391047){log('回退重填过程中发生错误:\x20'+_0x391047['message'],_0x179a49(0x222)),toastr[_0x179a49(0x222)](_0x179a49(0x1e5)+_0x391047[_0x179a49(0x273)]);}}export function updateColumnWidth(_0x5438bb,_0x356626,_0xaaf4e3){const _0x56eeb1=_0x2b9298;if(!currentTablesState||!currentTablesState[_0x5438bb])return;const _0x4a4118=currentTablesState[_0x5438bb];!_0x4a4118[_0x56eeb1(0x20d)]&&(_0x4a4118[_0x56eeb1(0x20d)]=[]);while(_0x4a4118[_0x56eeb1(0x20d)][_0x56eeb1(0x1ff)]<_0x4a4118['headers'][_0x56eeb1(0x1ff)]){_0x4a4118[_0x56eeb1(0x20d)][_0x56eeb1(0x1e3)](null);}_0x4a4118[_0x56eeb1(0x20d)][_0x356626]=_0xaaf4e3;const _0x48eee8=getContext();if(_0x48eee8[_0x56eeb1(0x28d)]&&_0x48eee8[_0x56eeb1(0x28d)][_0x56eeb1(0x1ff)]>0x0){const _0x51165e=_0x48eee8[_0x56eeb1(0x28d)][_0x48eee8['chat'][_0x56eeb1(0x1ff)]-0x1];if(saveStateToMessage(currentTablesState,_0x51165e)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x501ad3=_0x2b9298,_0xb9bc0b=getMemoryState();if(!_0xb9bc0b||_0xb9bc0b[_0x501ad3(0x1ff)]===0x0)return!![];return _0xb9bc0b[_0x501ad3(0x271)](_0x85fd9e=>!_0x85fd9e[_0x501ad3(0x1da)]||_0x85fd9e['rows'][_0x501ad3(0x1ff)]===0x0);}export function clearGlobalPreset(){const _0x210411=_0x2b9298;if(extension_settings[extensionName]&&extension_settings[extensionName]['global_table_preset']){const _0x185db1=window[_0x210411(0x25f)](_0x210411(0x1a5));_0x185db1?(delete extension_settings[extensionName][_0x210411(0x245)],saveSettingsDebounced(),log(_0x210411(0x256),_0x210411(0x24c)),toastr[_0x210411(0x24c)](_0x210411(0x27e),_0x210411(0x251))):(log(_0x210411(0x1c8),_0x210411(0x276)),toastr[_0x210411(0x276)](_0x210411(0x1bc)));}else log(_0x210411(0x1ee),'info'),toastr[_0x210411(0x276)](_0x210411(0x21a),'提示');}export function importGlobalPreset(_0x4b6883){const _0x343ad8=_0x2b9298,_0x506815=document[_0x343ad8(0x267)](_0x343ad8(0x1bb));_0x506815[_0x343ad8(0x25c)]='file',_0x506815[_0x343ad8(0x235)]=_0x343ad8(0x1b5),_0x506815['onchange']=_0x1d2760=>{const _0x1de910=_0x343ad8,_0x1277df=_0x1d2760[_0x1de910(0x291)]['files'][0x0];if(!_0x1277df)return;const _0x2313c3=new FileReader();_0x2313c3[_0x1de910(0x1ac)]=_0x2217f3=>{const _0x2374fc=_0x1de910;try{const _0x54ea5c=JSON[_0x2374fc(0x198)](_0x2217f3[_0x2374fc(0x291)][_0x2374fc(0x221)]);if(!_0x54ea5c['version']||!Array['isArray'](_0x54ea5c[_0x2374fc(0x19e)]))throw new Error(_0x2374fc(0x18c));const _0x430542=window[_0x2374fc(0x25f)](_0x2374fc(0x294));if(!_0x430542){log(_0x2374fc(0x19b),_0x2374fc(0x276)),toastr[_0x2374fc(0x276)](_0x2374fc(0x1bc));return;}const _0x53b24b=_0x54ea5c[_0x2374fc(0x19e)][_0x2374fc(0x1ab)](_0x1011a9=>({'name':_0x1011a9[_0x2374fc(0x243)],'headers':_0x1011a9[_0x2374fc(0x29d)],'note':_0x1011a9[_0x2374fc(0x233)],'rule_add':_0x1011a9[_0x2374fc(0x257)],'rule_delete':_0x1011a9[_0x2374fc(0x18e)],'rule_update':_0x1011a9[_0x2374fc(0x1ed)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x2374fc(0x245)]={'version':_0x54ea5c['version'],'tables':_0x53b24b,'batchFillerRuleTemplate':_0x54ea5c['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x54ea5c['batchFillerFlowTemplate']},saveSettingsDebounced();if(_0x54ea5c[_0x2374fc(0x1cd)]==='Amily2-Table-Preset-v3.0-separated_templates')saveBatchFillerRuleTemplate(_0x54ea5c[_0x2374fc(0x21c)]||''),saveBatchFillerFlowTemplate(_0x54ea5c[_0x2374fc(0x207)]||''),saveAiTemplate(_0x54ea5c[_0x2374fc(0x1f7)]||'');else{if(_0x54ea5c[_0x2374fc(0x1d9)]!==undefined&&_0x54ea5c[_0x2374fc(0x22a)]!==undefined)saveBatchFillerRuleTemplate(_0x54ea5c[_0x2374fc(0x1d9)]||''),saveBatchFillerFlowTemplate(_0x54ea5c['aiFlowTemplate']||''),saveAiTemplate(_0x54ea5c[_0x2374fc(0x22a)]||'');else _0x54ea5c[_0x2374fc(0x26d)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x54ea5c['aiTemplate']||''),saveAiTemplate(_0x54ea5c[_0x2374fc(0x26d)]||''));}log('全局预设已成功导入并保存到扩展设置中。',_0x2374fc(0x24c)),toastr[_0x2374fc(0x24c)](_0x2374fc(0x26e),_0x2374fc(0x27d)),typeof _0x4b6883===_0x2374fc(0x1e8)&&_0x4b6883();}catch(_0x4aa4a4){log(_0x2374fc(0x224)+_0x4aa4a4['message'],'error'),toastr[_0x2374fc(0x222)](_0x2374fc(0x27f)+_0x4aa4a4[_0x2374fc(0x273)],'错误');}},_0x2313c3['readAsText'](_0x1277df);},_0x506815[_0x343ad8(0x1cc)]();} +const _0x6350c4=_0xd105;(function(_0x364eab,_0x1efc3a){const _0xced5c6=_0xd105,_0x361163=_0x364eab();while(!![]){try{const _0x3fb34e=parseInt(_0xced5c6(0x11a))/0x1*(parseInt(_0xced5c6(0x185))/0x2)+-parseInt(_0xced5c6(0xa8))/0x3*(parseInt(_0xced5c6(0xfe))/0x4)+-parseInt(_0xced5c6(0xd9))/0x5+parseInt(_0xced5c6(0x179))/0x6+parseInt(_0xced5c6(0x18c))/0x7+parseInt(_0xced5c6(0x130))/0x8*(parseInt(_0xced5c6(0xb3))/0x9)+-parseInt(_0xced5c6(0x169))/0xa;if(_0x3fb34e===_0x1efc3a)break;else _0x361163['push'](_0x361163['shift']());}catch(_0x5d4a41){_0x361163['push'](_0x361163['shift']());}}}(_0x50a6,0xbfed4));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{executeCommands}from'./executor.js';import{fillWithSecondaryApi}from'./secondary-filler.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();function dispatchTableUpdate(_0x1a544e){const _0x370083=_0xd105,_0x2101de=extension_settings[extensionName]||{};if(_0x2101de[_0x370083(0x10a)]===![])return;if(!currentTablesState||!currentTablesState[_0x1a544e])return;const _0x30fcd6=currentTablesState[_0x1a544e];let _0xf94e1=_0x370083(0xe3);if(_0x30fcd6[_0x370083(0xec)]['includes']('时空')||_0x30fcd6[_0x370083(0xec)]['includes'](_0x370083(0x134)))_0xf94e1=_0x370083(0x135);if(_0x30fcd6[_0x370083(0xec)][_0x370083(0xd7)]('日志')||_0x30fcd6[_0x370083(0xec)][_0x370083(0xd7)]('Log'))_0xf94e1=_0x370083(0xf0);const _0x2ba635=new CustomEvent(_0x370083(0x116),{'detail':{'tableName':_0x30fcd6[_0x370083(0xec)],'data':_0x30fcd6['rows'],'headers':_0x30fcd6[_0x370083(0x19c)],'rowStatuses':_0x30fcd6[_0x370083(0x142)]||[],'role':_0xf94e1}});document[_0x370083(0x174)](_0x2ba635),log('[SuperMemory]\x20Dispatched\x20update\x20event\x20for\x20'+_0x30fcd6[_0x370083(0xec)],_0x370083(0xe0));}function dispatchAllTablesUpdate(){const _0x43336d=_0xd105;if(!currentTablesState)return;log('[SuperMemory]\x20Dispatching\x20update\x20events\x20for\x20ALL\x20tables...',_0x43336d(0xe0)),currentTablesState[_0x43336d(0xbd)]((_0x3224bf,_0xb3db58)=>{dispatchTableUpdate(_0xb3db58);});}export function addHighlight(_0x54ab8b,_0x5725aa,_0x5a384c){const _0x31f086=_0xd105,_0x3a6efb=_0x54ab8b+'-'+_0x5725aa+'-'+_0x5a384c;highlightedCells[_0x31f086(0x15a)](_0x3a6efb);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x2ff358=_0xd105;highlightedCells[_0x2ff358(0x188)]>0x0&&(highlightedCells[_0x2ff358(0x189)](),log(_0x2ff358(0x109),'info'));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x503a8d=_0xd105;updatedTables[_0x503a8d(0x188)]>0x0&&(updatedTables['clear'](),log(_0x503a8d(0x175),_0x503a8d(0xe0)));}export function setMemoryState(_0x1ac2db){currentTablesState=_0x1ac2db;}export function loadMemoryState(_0x789a40){const _0x16d4cc=_0xd105;if(!_0x789a40)return;setMemoryState(_0x789a40),renderTables(),updateOrInsertTableInChat(),log(_0x16d4cc(0xf6),'info');}export function saveMemoryState(){const _0x1f531a=_0xd105,_0x1fcb3d=getContext();if(_0x1fcb3d[_0x1f531a(0xac)]&&_0x1fcb3d['chat'][_0x1f531a(0xff)]>0x0){const _0x1f007a=_0x1fcb3d[_0x1f531a(0xac)][_0x1fcb3d['chat'][_0x1f531a(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x1f007a))return!![];}return![];}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':'时空栏','headers':['日期','时段','时间','地点',_0x6350c4(0xa4)],'note':_0x6350c4(0x114),'rule_add':'【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','rule_delete':_0x6350c4(0x18e),'rule_update':_0x6350c4(0x102),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':'角色栏','headers':[_0x6350c4(0x13c),'外貌','身形','衣着','性格','身份','职业','与关系','爱好','住所',_0x6350c4(0xd8)],'note':_0x6350c4(0x11e),'rule_add':_0x6350c4(0x195),'rule_delete':_0x6350c4(0x17c),'rule_update':'【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0x6350c4(0xe4),'headers':[_0x6350c4(0xb2),_0x6350c4(0x106),'关系','详情'],'columnWidths':[],'note':_0x6350c4(0xf4),'rule_add':_0x6350c4(0x124),'rule_delete':'【触发条件】当两个NPC之间的关系彻底断绝且不再影响剧情,或者其中一方彻底消失/死亡时,可以删除。','rule_update':_0x6350c4(0x166),'charLimitRules':{},'rowLimitRule':0x0,'rows':[],'rowStatuses':[]},{'name':'任务栏','headers':[_0x6350c4(0x138),'类型','详情','状态',_0x6350c4(0x11c),'地点',_0x6350c4(0x117),'结果'],'note':_0x6350c4(0xca),'rule_add':'【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','rule_delete':_0x6350c4(0x147),'rule_update':_0x6350c4(0x191),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x6350c4(0xc3),'headers':['物品名','类型','详情','状态',_0x6350c4(0x8b),_0x6350c4(0x120)],'note':_0x6350c4(0xbc),'rule_add':_0x6350c4(0x128),'rule_delete':'【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','rule_update':_0x6350c4(0x196),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':'技能栏','headers':[_0x6350c4(0x167),_0x6350c4(0x96)],'note':'【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','rule_add':'【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','rule_delete':_0x6350c4(0x8c),'rule_update':_0x6350c4(0x168),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':'设定栏','headers':['类型',_0x6350c4(0x119)],'note':_0x6350c4(0x14e),'rule_add':'【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','rule_delete':_0x6350c4(0xb7),'rule_update':'【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x328549=_0x6350c4;log(_0x328549(0x14a),_0x328549(0xe0));const _0x47fc0b=JSON[_0x328549(0x163)](JSON['stringify'](defaultTemplate[_0x328549(0x13e)]));return _0x47fc0b[_0x328549(0xbd)](_0x57bce5=>{const _0x2208f4=_0x328549;_0x57bce5['charLimitRule']={'columnIndex':-0x1,'limit':0x0},_0x57bce5['rowLimitRule']=0x0,_0x57bce5[_0x2208f4(0xbb)]=[];}),_0x47fc0b;}export function loadTables(_0x532eee=-0x1){const _0x35bc53=_0x6350c4,_0x58f745=getContext();if(_0x58f745&&_0x58f745[_0x35bc53(0xac)]&&_0x58f745['chat']['length']>0x0){const _0x5903cb=_0x532eee===-0x1?_0x58f745['chat'][_0x35bc53(0xff)]-0x1:_0x532eee-0x1;for(let _0x9ceb7=_0x5903cb;_0x9ceb7>=0x0;_0x9ceb7--){const _0x4617df=_0x58f745[_0x35bc53(0xac)][_0x9ceb7];if(_0x4617df['extra']&&_0x4617df[_0x35bc53(0x19d)][TABLE_DATA_KEY]){log('在第\x20'+_0x9ceb7+_0x35bc53(0xeb),'info');let _0xf19d02=JSON[_0x35bc53(0x163)](JSON[_0x35bc53(0x198)](_0x4617df['extra'][TABLE_DATA_KEY]));return _0xf19d02[_0x35bc53(0xbd)](_0x1c3794=>{const _0x90dbc5=_0x35bc53;if(_0x1c3794[_0x90dbc5(0x8d)]===undefined)_0x1c3794[_0x90dbc5(0x8d)]='无';if(_0x1c3794[_0x90dbc5(0xb8)]===undefined)_0x1c3794['rule_add']='允许';if(_0x1c3794[_0x90dbc5(0xe9)]===undefined)_0x1c3794['rule_delete']='允许';if(_0x1c3794[_0x90dbc5(0x187)]===undefined)_0x1c3794[_0x90dbc5(0x187)]='允许';_0x1c3794[_0x90dbc5(0xc7)]&&!_0x1c3794['charLimitRules']&&(_0x1c3794['charLimitRules']={},_0x1c3794[_0x90dbc5(0xc7)][_0x90dbc5(0x107)]!==-0x1&&_0x1c3794[_0x90dbc5(0xc7)]['limit']>0x0&&(_0x1c3794['charLimitRules'][_0x1c3794['charLimitRule'][_0x90dbc5(0x107)]]=_0x1c3794[_0x90dbc5(0xc7)][_0x90dbc5(0x9e)]));delete _0x1c3794[_0x90dbc5(0xc7)];if(_0x1c3794['rowLimitRule']===undefined)_0x1c3794[_0x90dbc5(0x16d)]=0x0;if(_0x1c3794[_0x90dbc5(0xbb)]===undefined)_0x1c3794[_0x90dbc5(0xbb)]=[];!_0x1c3794['rowStatuses']&&(_0x1c3794['rowStatuses']=Array(_0x1c3794['rows']['length'])[_0x90dbc5(0x10b)]('normal'));}),currentTablesState=_0xf19d02,dispatchAllTablesUpdate(),currentTablesState;}}}if(extension_settings[extensionName]?.[_0x35bc53(0x105)]){log(_0x35bc53(0x93),_0x35bc53(0xe0));try{const _0x23b188=extension_settings[extensionName]['global_table_preset'];return currentTablesState=JSON[_0x35bc53(0x163)](JSON['stringify'](_0x23b188[_0x35bc53(0x13e)])),_0x23b188[_0x35bc53(0x192)]!==undefined&&saveBatchFillerRuleTemplate(_0x23b188[_0x35bc53(0x192)]),_0x23b188[_0x35bc53(0x15f)]!==undefined&&saveBatchFillerFlowTemplate(_0x23b188[_0x35bc53(0x15f)]),dispatchAllTablesUpdate(),currentTablesState;}catch(_0x39639c){log('加载全局预设失败:\x20'+_0x39639c[_0x35bc53(0xb9)],_0x35bc53(0xd6));}}return log(_0x35bc53(0xb4),'info'),currentTablesState=getDefaultTables(),dispatchAllTablesUpdate(),currentTablesState;}export function saveStateToMessage(_0x4a46ce,_0x11e3de){const _0x38421f=_0x6350c4;if(!_0x4a46ce||!_0x11e3de)return log(_0x38421f(0x17a),_0x38421f(0xd6)),![];return!_0x11e3de[_0x38421f(0x19d)]&&(_0x11e3de[_0x38421f(0x19d)]={}),_0x11e3de[_0x38421f(0x19d)][TABLE_DATA_KEY]=JSON[_0x38421f(0x163)](JSON[_0x38421f(0x198)](_0x4a46ce)),log('表格状态已准备写入消息\x20['+_0x11e3de['mes']['substring'](0x0,0x14)+_0x38421f(0x9a),_0x38421f(0xe0)),!![];}export function saveTables(_0x175d9e=_0x6350c4(0x186)){const _0x3baa19=_0x6350c4;return log(_0x3baa19(0x10d)+_0x175d9e+'\x22\x20已更新内存状态。',_0x3baa19(0xe0)),!![];}export function deleteColumn(_0xdaf84b,_0x10e2e2){const _0x223506=_0x6350c4,_0x39acc1=getMemoryState();if(!_0x39acc1[_0xdaf84b]||_0x10e2e2<0x0||_0x10e2e2>=_0x39acc1[_0xdaf84b][_0x223506(0x19c)][_0x223506(0xff)]){log(_0x223506(0x144)+_0xdaf84b+'\x20中找不到索引为\x20'+_0x10e2e2+'\x20的列。','error');return;}_0x39acc1[_0xdaf84b][_0x223506(0x19c)]['splice'](_0x10e2e2,0x1),_0x39acc1[_0xdaf84b][_0x223506(0xd2)][_0x223506(0xbd)](_0x3a3700=>{const _0x34d40c=_0x223506;_0x3a3700[_0x34d40c(0xff)]>_0x10e2e2&&_0x3a3700[_0x34d40c(0x19a)](_0x10e2e2,0x1);}),_0x39acc1[_0xdaf84b]['columnWidths']&&_0x39acc1[_0xdaf84b][_0x223506(0xbb)][_0x223506(0xff)]>_0x10e2e2&&_0x39acc1[_0xdaf84b][_0x223506(0xbb)][_0x223506(0x19a)](_0x10e2e2,0x1),log(_0x223506(0x121)+_0xdaf84b+_0x223506(0xea)+(_0x10e2e2+0x1)+_0x223506(0x16a),_0x223506(0x127)),saveTables(_0x39acc1),dispatchTableUpdate(_0xdaf84b);}export function moveRow(_0x6f37a6,_0x3c5afc,_0x49b563){const _0x5622bb=_0x6350c4,_0x245327=getMemoryState(),_0x367769=_0x245327[_0x6f37a6];if(!_0x367769||_0x3c5afc<0x0||_0x3c5afc>=_0x367769[_0x5622bb(0xd2)]['length'])return;const _0x5ec75f=_0x49b563==='up'?_0x3c5afc-0x1:_0x3c5afc+0x1;if(_0x5ec75f<0x0||_0x5ec75f>=_0x367769[_0x5622bb(0xd2)]['length'])return;const [_0x57a14a]=_0x367769['rows'][_0x5622bb(0x19a)](_0x3c5afc,0x1);_0x367769[_0x5622bb(0xd2)][_0x5622bb(0x19a)](_0x5ec75f,0x0,_0x57a14a);if(_0x367769[_0x5622bb(0x142)]&&_0x367769[_0x5622bb(0x142)][_0x5622bb(0xff)]===_0x367769[_0x5622bb(0xd2)][_0x5622bb(0xff)]+0x1){const [_0xe1d7b8]=_0x367769[_0x5622bb(0x142)][_0x5622bb(0x19a)](_0x3c5afc,0x1);_0x367769[_0x5622bb(0x142)][_0x5622bb(0x19a)](_0x5ec75f,0x0,_0xe1d7b8);}log('成功将表格\x20'+_0x6f37a6+_0x5622bb(0xea)+(_0x3c5afc+0x1)+_0x5622bb(0x19b)+(_0x5ec75f+0x1)+_0x5622bb(0x9f),_0x5622bb(0x127)),saveTables(_0x245327),dispatchTableUpdate(_0x6f37a6);}export function insertRow(_0x9c8b96,_0x2fed55,_0x4d4786=_0x6350c4(0x17b)){const _0x295187=_0x6350c4,_0x25dd5e=getMemoryState(),_0x5b7b14=_0x25dd5e[_0x9c8b96];if(!_0x5b7b14){log(_0x295187(0xa7)+_0x9c8b96+_0x295187(0x172),_0x295187(0xd6));return;}let _0x5c1e1d;typeof _0x2fed55===_0x295187(0x97)?_0x5c1e1d=_0x4d4786===_0x295187(0x115)?_0x2fed55:_0x2fed55+0x1:_0x5c1e1d=_0x5b7b14['rows']['length'];if(_0x5c1e1d<0x0)_0x5c1e1d=0x0;if(_0x5c1e1d>_0x5b7b14[_0x295187(0xd2)][_0x295187(0xff)])_0x5c1e1d=_0x5b7b14[_0x295187(0xd2)][_0x295187(0xff)];const _0x149a39=new Array(_0x5b7b14[_0x295187(0x19c)][_0x295187(0xff)])[_0x295187(0x10b)]('');if(typeof _0x2fed55===_0x295187(0x13f)&&_0x2fed55!==null)for(const _0x46e265 in _0x2fed55){const _0x4d8ee2=parseInt(_0x46e265,0xa);!isNaN(_0x4d8ee2)&&_0x4d8ee2<_0x149a39[_0x295187(0xff)]&&(_0x149a39[_0x4d8ee2]=_0x2fed55[_0x46e265],addHighlight(_0x9c8b96,_0x5c1e1d,_0x4d8ee2));}_0x5b7b14['rows'][_0x295187(0x19a)](_0x5c1e1d,0x0,_0x149a39);if(!_0x5b7b14[_0x295187(0x142)])_0x5b7b14[_0x295187(0x142)]=Array(_0x5b7b14['rows'][_0x295187(0xff)])[_0x295187(0x10b)]('normal');_0x5b7b14['rowStatuses']['splice'](_0x5c1e1d,0x0,_0x295187(0x94)),updatedTables[_0x295187(0x15a)](_0x9c8b96),dispatchTableUpdate(_0x9c8b96),log(_0x295187(0x10c)+_0x5b7b14['name']+_0x295187(0x170)+_0x9c8b96+')\x20的第\x20'+(_0x5c1e1d+0x1)+_0x295187(0x122),'success');const _0x29d3dc=getContext();if(_0x29d3dc['chat']&&_0x29d3dc[_0x295187(0xac)][_0x295187(0xff)]>0x0){const _0x2cee05=_0x29d3dc[_0x295187(0xac)][_0x29d3dc[_0x295187(0xac)][_0x295187(0xff)]-0x1];if(saveStateToMessage(_0x25dd5e,_0x2cee05)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x7058b5){const _0x46359d=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x7058b5])return;const _0x5e9e08=currentTablesState[_0x7058b5],_0x292964=_0x5e9e08[_0x46359d(0x19c)][_0x46359d(0xff)],_0x2cd959=Array(_0x292964)[_0x46359d(0x10b)]('');_0x5e9e08[_0x46359d(0xd2)]['push'](_0x2cd959);if(!_0x5e9e08[_0x46359d(0x142)])_0x5e9e08[_0x46359d(0x142)]=Array(_0x5e9e08[_0x46359d(0xd2)]['length'])['fill']('normal');_0x5e9e08[_0x46359d(0x142)][_0x46359d(0x14f)](_0x46359d(0x94)),updatedTables[_0x46359d(0x15a)](_0x7058b5),dispatchTableUpdate(_0x7058b5);const _0x1a26b1=_0x46359d(0x99)+_0x5e9e08[_0x46359d(0xec)]+_0x46359d(0x164);log(_0x1a26b1,_0x46359d(0xe0));const _0xfde81f=getContext();if(_0xfde81f[_0x46359d(0xac)]&&_0xfde81f['chat'][_0x46359d(0xff)]>0x0){const _0x487f5a=_0xfde81f[_0x46359d(0xac)][_0xfde81f[_0x46359d(0xac)][_0x46359d(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x487f5a)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x3b5a9a){const _0x4ea86b=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x3b5a9a])return;const _0x4141da=currentTablesState[_0x3b5a9a],_0x53fcd9=_0x4ea86b(0x13a)+(_0x4141da[_0x4ea86b(0x19c)]['length']+0x1);_0x4141da[_0x4ea86b(0x19c)][_0x4ea86b(0x14f)](_0x53fcd9),_0x4141da[_0x4ea86b(0xd2)][_0x4ea86b(0xbd)](_0x6ed0=>_0x6ed0[_0x4ea86b(0x14f)](''));if(!_0x4141da['columnWidths'])_0x4141da[_0x4ea86b(0xbb)]=[];_0x4141da[_0x4ea86b(0xbb)][_0x4ea86b(0x14f)](null);const _0x517626=_0x4ea86b(0x99)+_0x4141da[_0x4ea86b(0xec)]+_0x4ea86b(0xef);log(_0x517626,_0x4ea86b(0xe0));const _0x3687eb=getContext();if(_0x3687eb['chat']&&_0x3687eb[_0x4ea86b(0xac)][_0x4ea86b(0xff)]>0x0){const _0x467ddf=_0x3687eb['chat'][_0x3687eb[_0x4ea86b(0xac)][_0x4ea86b(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x467ddf)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x3646d6,_0x43f3fc,_0x2b76aa){const _0x504b3b=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x3646d6]||currentTablesState[_0x3646d6][_0x504b3b(0x19c)][_0x43f3fc]===undefined)return;const _0x5de374=currentTablesState[_0x3646d6]['name'],_0x13cfec=currentTablesState[_0x3646d6]['headers'][_0x43f3fc];currentTablesState[_0x3646d6]['headers'][_0x43f3fc]=_0x2b76aa;const _0x5da2c9=_0x504b3b(0x99)+_0x5de374+_0x504b3b(0xfa)+_0x13cfec+_0x504b3b(0x160)+_0x2b76aa+'”。';log(_0x5da2c9,_0x504b3b(0xe0));const _0x4e0db3=getContext();if(_0x4e0db3[_0x504b3b(0xac)]&&_0x4e0db3[_0x504b3b(0xac)][_0x504b3b(0xff)]>0x0){const _0x5e2847=_0x4e0db3[_0x504b3b(0xac)][_0x4e0db3['chat'][_0x504b3b(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x5e2847)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x318b5d,_0x12a223){const _0x1cf232=_0x6350c4,_0x43bff5=currentTablesState?.[_0x318b5d];if(!_0x43bff5||!_0x43bff5[_0x1cf232(0xd2)][_0x12a223])return;!_0x43bff5[_0x1cf232(0x142)]&&(_0x43bff5['rowStatuses']=Array(_0x43bff5[_0x1cf232(0xd2)][_0x1cf232(0xff)])['fill'](_0x1cf232(0x94)));_0x43bff5['rowStatuses'][_0x12a223]=_0x1cf232(0xa2),updatedTables[_0x1cf232(0x15a)](_0x318b5d);const _0x110609=_0x1cf232(0x99)+_0x43bff5[_0x1cf232(0xec)]+_0x1cf232(0x131)+(_0x12a223+0x1)+_0x1cf232(0x15d);log(_0x110609,_0x1cf232(0xe0));const _0xc94a29=getContext();if(_0xc94a29[_0x1cf232(0xac)]?.[_0x1cf232(0xff)]>0x0){const _0xa14bd=_0xc94a29[_0x1cf232(0xac)][_0xc94a29[_0x1cf232(0xac)][_0x1cf232(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0xa14bd)){await saveChat(),renderTables(),dispatchTableUpdate(_0x318b5d);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x318b5d);}export async function restoreRow(_0x296af3,_0x4cd1c4){const _0x4436ff=_0x6350c4,_0x152a9d=currentTablesState?.[_0x296af3];if(!_0x152a9d||!_0x152a9d[_0x4436ff(0xd2)][_0x4cd1c4]||!_0x152a9d[_0x4436ff(0x142)])return;_0x152a9d['rowStatuses'][_0x4cd1c4]=_0x4436ff(0x94),updatedTables[_0x4436ff(0x15a)](_0x296af3);const _0x2d92e9='表格\x20['+_0x152a9d[_0x4436ff(0xec)]+_0x4436ff(0x131)+(_0x4cd1c4+0x1)+_0x4436ff(0x159);log(_0x2d92e9,'info');const _0x14c3f2=getContext();if(_0x14c3f2[_0x4436ff(0xac)]?.['length']>0x0){const _0x1b851a=_0x14c3f2[_0x4436ff(0xac)][_0x14c3f2[_0x4436ff(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x1b851a)){await saveChat(),renderTables(),dispatchTableUpdate(_0x296af3);return;}}await saveChatDebounced(),renderTables(),dispatchTableUpdate(_0x296af3);}export function commitPendingDeletions(){const _0x520c4a=_0x6350c4;if(!currentTablesState)return![];let _0x4e80dd=0x0;currentTablesState[_0x520c4a(0xbd)]((_0x2914a0,_0xefddf)=>{const _0x8ee36b=_0x520c4a;if(!_0x2914a0[_0x8ee36b(0x142)]||_0x2914a0[_0x8ee36b(0x142)][_0x8ee36b(0xff)]===0x0)return;let _0x2e8831=![];for(let _0x370ebc=_0x2914a0['rows'][_0x8ee36b(0xff)]-0x1;_0x370ebc>=0x0;_0x370ebc--){_0x2914a0[_0x8ee36b(0x142)][_0x370ebc]===_0x8ee36b(0xa2)&&(_0x2914a0['rows'][_0x8ee36b(0x19a)](_0x370ebc,0x1),_0x2914a0[_0x8ee36b(0x142)][_0x8ee36b(0x19a)](_0x370ebc,0x1),_0x4e80dd++,_0x2e8831=!![]);}_0x2e8831&&updatedTables['add'](_0xefddf);});if(_0x4e80dd>0x0)return log(_0x520c4a(0x16b)+_0x4e80dd+_0x520c4a(0x9f),_0x520c4a(0xe0)),updatedTables[_0x520c4a(0x188)]>0x0&&updatedTables[_0x520c4a(0xbd)](_0xe92721=>{dispatchTableUpdate(_0xe92721);}),!![];return![];}export function insertColumn(_0x27f9d7,_0x198f50,_0x21e510){const _0x3b6ace=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x27f9d7])return;const _0x1a117d=currentTablesState[_0x27f9d7],_0x388463=_0x21e510===_0x3b6ace(0x176)?_0x198f50:_0x198f50+0x1,_0x10f2d7='新列';_0x1a117d[_0x3b6ace(0x19c)]['splice'](_0x388463,0x0,_0x10f2d7),_0x1a117d[_0x3b6ace(0xd2)][_0x3b6ace(0xbd)](_0x4548fa=>_0x4548fa[_0x3b6ace(0x19a)](_0x388463,0x0,''));if(!_0x1a117d[_0x3b6ace(0xbb)])_0x1a117d[_0x3b6ace(0xbb)]=[];_0x1a117d[_0x3b6ace(0xbb)][_0x3b6ace(0x19a)](_0x388463,0x0,null);const _0x381ad5=_0x3b6ace(0x99)+_0x1a117d[_0x3b6ace(0xec)]+']\x20在第\x20'+(_0x198f50+0x1)+_0x3b6ace(0x136)+(_0x21e510===_0x3b6ace(0x176)?'左侧':'右侧')+_0x3b6ace(0x145);log(_0x381ad5,'info');const _0x4002d7=getContext();if(_0x4002d7[_0x3b6ace(0xac)]&&_0x4002d7['chat']['length']>0x0){const _0x3b47f5=_0x4002d7[_0x3b6ace(0xac)][_0x4002d7['chat'][_0x3b6ace(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3b47f5)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x2b7f25,_0xc2f383,_0xf44188){const _0x598b8e=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x2b7f25])return;const _0x1e1d84=currentTablesState[_0x2b7f25],_0x3b3943=_0x1e1d84['headers'],_0x5d7739=_0x1e1d84[_0x598b8e(0xd2)],_0x125f4a=_0xf44188===_0x598b8e(0x176)?_0xc2f383-0x1:_0xc2f383+0x1;if(_0x125f4a<0x0||_0x125f4a>=_0x3b3943[_0x598b8e(0xff)]){log('无法移动列:索引\x20'+_0xc2f383+_0x598b8e(0x19e),_0x598b8e(0xa6));return;}const [_0x31adb7]=_0x3b3943[_0x598b8e(0x19a)](_0xc2f383,0x1);_0x3b3943[_0x598b8e(0x19a)](_0x125f4a,0x0,_0x31adb7),_0x5d7739['forEach'](_0x59aed9=>{const [_0x4c14e1]=_0x59aed9['splice'](_0xc2f383,0x1);_0x59aed9['splice'](_0x125f4a,0x0,_0x4c14e1);});if(_0x1e1d84['columnWidths']&&_0x1e1d84[_0x598b8e(0xbb)][_0x598b8e(0xff)]>_0xc2f383){const [_0x5d785f]=_0x1e1d84[_0x598b8e(0xbb)]['splice'](_0xc2f383,0x1);_0x1e1d84[_0x598b8e(0xbb)][_0x598b8e(0x19a)](_0x125f4a,0x0,_0x5d785f);}const _0x4aab9a=_0x598b8e(0x99)+_0x1e1d84[_0x598b8e(0xec)]+_0x598b8e(0x149)+_0x31adb7+_0x598b8e(0xd4)+(_0xf44188===_0x598b8e(0x176)?'左':'右')+_0x598b8e(0xa9);log(_0x4aab9a,_0x598b8e(0xe0));const _0x33e99e=getContext();if(_0x33e99e[_0x598b8e(0xac)]&&_0x33e99e[_0x598b8e(0xac)]['length']>0x0){const _0xda2880=_0x33e99e[_0x598b8e(0xac)][_0x33e99e['chat'][_0x598b8e(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0xda2880)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x4bb4a9){const _0x19b6f5=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x4bb4a9])return;const _0x311d38=currentTablesState[_0x4bb4a9]['name'];currentTablesState[_0x19b6f5(0x19a)](_0x4bb4a9,0x1);const _0x28b67d=_0x19b6f5(0x99)+_0x311d38+']\x20已被成功废黜。';log(_0x28b67d,_0x19b6f5(0x127));const _0x56b8a1=getContext();if(_0x56b8a1['chat']&&_0x56b8a1[_0x19b6f5(0xac)][_0x19b6f5(0xff)]>0x0){const _0x5b2906=_0x56b8a1[_0x19b6f5(0xac)][_0x56b8a1[_0x19b6f5(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5b2906)){saveChat(),log(_0x19b6f5(0x154),_0x19b6f5(0x127));return;}}log(_0x19b6f5(0x151),_0x19b6f5(0xd6)),saveChatDebounced();}export function addTable(_0x50fb52){const _0x27a09c=_0x6350c4;if(!_0x50fb52||!_0x50fb52['trim']()){log(_0x27a09c(0x14c),_0x27a09c(0xd6)),toastr[_0x27a09c(0xd6)](_0x27a09c(0xb6),_0x27a09c(0xc8));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x27a09c(0x12c)](_0x56e5b9=>_0x56e5b9[_0x27a09c(0xec)]===_0x50fb52[_0x27a09c(0x10e)]())){log(_0x27a09c(0xc6)+_0x50fb52+_0x27a09c(0xb5),'error'),toastr[_0x27a09c(0xd6)](_0x27a09c(0xdf)+_0x50fb52+'\x22\x20的表格已存在。',_0x27a09c(0xc8));return;}const _0xa1af45={'name':_0x50fb52[_0x27a09c(0x10e)](),'headers':[_0x27a09c(0x129)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState['push'](_0xa1af45);const _0x36cec6=_0x27a09c(0x12a)+_0x50fb52[_0x27a09c(0x10e)]()+']。';log(_0x36cec6,_0x27a09c(0x127));const _0x20e72b=getContext();if(_0x20e72b['chat']&&_0x20e72b['chat'][_0x27a09c(0xff)]>0x0){const _0x12098f=_0x20e72b['chat'][_0x20e72b[_0x27a09c(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x12098f)){saveChat(),log(_0x27a09c(0x125),_0x27a09c(0x127));return;}}log(_0x27a09c(0x112),_0x27a09c(0xd6)),saveChatDebounced();}export function renameTable(_0x495cca,_0x4f9491){const _0x372463=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x495cca]){log('重命名失败:表格不存在。',_0x372463(0xd6)),toastr[_0x372463(0xd6)]('表格不存在。','重命名失败');return;}const _0x31a9f9=_0x4f9491[_0x372463(0x10e)]();if(!_0x31a9f9){log(_0x372463(0x139),'error'),toastr[_0x372463(0xd6)](_0x372463(0xb6),'重命名失败');return;}if(currentTablesState['some']((_0xff9fb9,_0xa7f785)=>_0xa7f785!==_0x495cca&&_0xff9fb9[_0x372463(0xec)]===_0x31a9f9)){log(_0x372463(0xb1)+_0x31a9f9+_0x372463(0xb5),'error'),toastr[_0x372463(0xd6)](_0x372463(0xdf)+_0x31a9f9+_0x372463(0xb5),_0x372463(0x183));return;}const _0x5d90ef=currentTablesState[_0x495cca][_0x372463(0xec)];currentTablesState[_0x495cca][_0x372463(0xec)]=_0x31a9f9,log('表格\x20\x22'+_0x5d90ef+_0x372463(0x12f)+_0x31a9f9+'\x22。','success');const _0x54e2bc=getContext();if(_0x54e2bc[_0x372463(0xac)]&&_0x54e2bc['chat'][_0x372463(0xff)]>0x0){const _0x560206=_0x54e2bc[_0x372463(0xac)][_0x54e2bc[_0x372463(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x560206)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x764c5,_0x2044d9){const _0x37c5a4=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x764c5])return;const _0x7e5c6f=_0x2044d9==='up'?_0x764c5-0x1:_0x764c5+0x1;if(_0x7e5c6f<0x0||_0x7e5c6f>=currentTablesState['length']){log(_0x37c5a4(0x178)+_0x764c5+_0x37c5a4(0x19e),'warn');return;}const _0xd6a6cb=currentTablesState[_0x764c5];currentTablesState[_0x764c5]=currentTablesState[_0x7e5c6f],currentTablesState[_0x7e5c6f]=_0xd6a6cb;const _0x2f1b80=_0x37c5a4(0x99)+_0xd6a6cb[_0x37c5a4(0xec)]+_0x37c5a4(0xda);log(_0x2f1b80,'success');const _0xc96c36=getContext();if(_0xc96c36[_0x37c5a4(0xac)]&&_0xc96c36['chat'][_0x37c5a4(0xff)]>0x0){const _0x449259=_0xc96c36[_0x37c5a4(0xac)][_0xc96c36[_0x37c5a4(0xac)][_0x37c5a4(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x449259)){saveChat(),log(_0x37c5a4(0x146),_0x37c5a4(0x127));return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','error'),saveChatDebounced();}export function updateTableRules(_0x226288,_0x1d3480){const _0x5c10b1=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x226288])return;const _0xb575d2=currentTablesState[_0x226288];_0xb575d2[_0x5c10b1(0x8d)]=_0x1d3480['note'],_0xb575d2['rule_add']=_0x1d3480[_0x5c10b1(0xb8)],_0xb575d2[_0x5c10b1(0xe9)]=_0x1d3480[_0x5c10b1(0xe9)],_0xb575d2['rule_update']=_0x1d3480['rule_update'],_0xb575d2[_0x5c10b1(0xab)]=_0x1d3480[_0x5c10b1(0xab)],_0xb575d2[_0x5c10b1(0x16d)]=_0x1d3480[_0x5c10b1(0x16d)],_0xb575d2[_0x5c10b1(0xd1)]=_0x1d3480['simplifyRowThreshold'],delete _0xb575d2['charLimitRule'];const _0x512d23=_0x5c10b1(0x99)+_0xb575d2['name']+_0x5c10b1(0xe8);log(_0x512d23,_0x5c10b1(0xe0));const _0x45128a=getContext();if(_0x45128a[_0x5c10b1(0xac)]&&_0x45128a['chat'][_0x5c10b1(0xff)]>0x0){const _0x4bb7b9=_0x45128a[_0x5c10b1(0xac)][_0x45128a['chat'][_0x5c10b1(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x4bb7b9)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x27402c,_0x4282b3,_0x358c69){const _0x561f85=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x27402c]){log(_0x561f85(0xde)+_0x27402c+_0x561f85(0xee),'error');return;}const _0x4fae0e=currentTablesState[_0x27402c];if(_0x4282b3>=_0x4fae0e[_0x561f85(0xd2)][_0x561f85(0xff)]){log('AI指令意图更新不存在的行\x20(rowIndex:\x20'+_0x4282b3+_0x561f85(0x18f)+_0x4fae0e[_0x561f85(0xec)]+_0x561f85(0x13b),'warn'),insertRow(_0x27402c,_0x358c69);return;}const _0x23ed3b=_0x4fae0e[_0x561f85(0xd2)][_0x4282b3];for(const _0x259c26 in _0x358c69){const _0x1263d4=parseInt(_0x259c26,0xa);_0x1263d4<_0x23ed3b[_0x561f85(0xff)]&&(_0x23ed3b[_0x1263d4]=_0x358c69[_0x1263d4],addHighlight(_0x27402c,_0x4282b3,_0x1263d4));}updatedTables[_0x561f85(0x15a)](_0x27402c),dispatchTableUpdate(_0x27402c);const _0x47d5b3=_0x561f85(0x14d)+_0x4fae0e['name']+']\x20的第\x20'+(_0x4282b3+0x1)+_0x561f85(0x9f);log(_0x47d5b3,_0x561f85(0xe0));const _0x5153ea=getContext();if(_0x5153ea[_0x561f85(0xac)]&&_0x5153ea[_0x561f85(0xac)][_0x561f85(0xff)]>0x0){const _0x3dc6af=_0x5153ea[_0x561f85(0xac)][_0x5153ea[_0x561f85(0xac)][_0x561f85(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3dc6af)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x1f8442=_0x6350c4;if(!currentTablesState){log(_0x1f8442(0x1a0),_0x1f8442(0xd6));return;}currentTablesState[_0x1f8442(0xbd)]((_0x572c97,_0x566c7a)=>{const _0x1a2790=_0x1f8442;_0x572c97['rows'][_0x1a2790(0xff)]>0x0&&updatedTables[_0x1a2790(0x15a)](_0x566c7a),_0x572c97['rows']=[],_0x572c97[_0x1a2790(0x142)]=[];}),log('所有表格的行数据已在内存中清空。',_0x1f8442(0xa6)),dispatchAllTablesUpdate();const _0x31fb22=getContext();if(_0x31fb22[_0x1f8442(0xac)]&&_0x31fb22[_0x1f8442(0xac)][_0x1f8442(0xff)]>0x0){const _0x724b8b=_0x31fb22[_0x1f8442(0xac)][_0x31fb22[_0x1f8442(0xac)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x724b8b)){saveChat(),log(_0x1f8442(0x11f),_0x1f8442(0x127)),toastr[_0x1f8442(0x127)]('所有表格的剧情内容已清空。',_0x1f8442(0xf1));return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','error'),saveChatDebounced();}function checkTableRules(_0x239317){const _0x481b37=_0x6350c4;let _0x3e85ef=[];_0x239317[_0x481b37(0x16d)]&&_0x239317['rowLimitRule']>0x0&&_0x239317[_0x481b37(0xd2)][_0x481b37(0xff)]>_0x239317[_0x481b37(0x16d)]&&_0x3e85ef[_0x481b37(0x14f)](_0x481b37(0x16c)+_0x239317[_0x481b37(0xec)]+')超出规定('+_0x239317[_0x481b37(0x16d)]+_0x481b37(0x12e)+_0x239317['rowLimitRule']+_0x481b37(0x177));const _0x12b1f5=_0x239317[_0x481b37(0xab)]||{};for(const _0x2e82e8 in _0x12b1f5){const _0x40a5ca=parseInt(_0x2e82e8,0xa),_0x5ef63f=_0x12b1f5[_0x40a5ca];if(_0x5ef63f>0x0&&_0x40a5ca>=0x0&&_0x40a5ca<_0x239317[_0x481b37(0x19c)][_0x481b37(0xff)]){const _0x4375ea=_0x239317[_0x481b37(0x19c)][_0x40a5ca],_0x594583=[];_0x239317[_0x481b37(0xd2)]['forEach']((_0x4d139d,_0x3930d5)=>{const _0x5f5cb0=_0x481b37;if(_0x239317['rowStatuses']&&_0x239317[_0x5f5cb0(0x142)][_0x3930d5]==='pending-deletion')return;const _0x44d776=_0x4d139d[_0x40a5ca]||'';_0x44d776[_0x5f5cb0(0xff)]>_0x5ef63f&&_0x594583[_0x5f5cb0(0x14f)](_0x3930d5);});if(_0x594583[_0x481b37(0xff)]>0x0){const _0x109db8=_0x594583[_0x481b37(0x11b)]('、');_0x3e85ef[_0x481b37(0x14f)](_0x481b37(0x16c)+_0x239317[_0x481b37(0xec)]+')第('+_0x109db8+_0x481b37(0x110)+_0x4375ea+_0x481b37(0x95)+_0x5ef63f+')字限制,请进行缩减。】');}}}return _0x3e85ef[_0x481b37(0x11b)]('\x0a');}export function convertTablesToCsvString(){const _0x480e2d=_0x6350c4;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x4014c9='';return currentTablesState[_0x480e2d(0xbd)]((_0x317365,_0x13dfad)=>{const _0x1e9064=_0x480e2d;_0x4014c9+=_0x1e9064(0x143)+_0x13dfad+':'+_0x317365[_0x1e9064(0xec)]+'\x0a',_0x4014c9+='【说明】:\x0a'+(_0x317365[_0x1e9064(0x8d)]||'无')+'\x0a';const _0x2f1ca0=_0x317365['name']['replace'](/\s/g,'')+'内容';_0x4014c9+='<'+_0x2f1ca0+'>\x0a';const _0x5bed32=[_0x1e9064(0xd5),..._0x317365[_0x1e9064(0x19c)][_0x1e9064(0x153)]((_0x102c22,_0x79f0c4)=>_0x79f0c4+':'+_0x102c22)];_0x4014c9+='|\x20'+_0x5bed32[_0x1e9064(0x11b)]('\x20|\x20')+_0x1e9064(0x12b),_0x4014c9+='|'+_0x5bed32[_0x1e9064(0x153)](()=>_0x1e9064(0x90))[_0x1e9064(0x11b)]('|')+'|\x0a';const _0x1ae0be=_0x317365['rows'][_0x1e9064(0x16e)]((_0x10c7b4,_0x3e2f14)=>!_0x317365[_0x1e9064(0x142)]||_0x317365['rowStatuses'][_0x3e2f14]!==_0x1e9064(0xa2));if(_0x1ae0be['length']===0x0)_0x4014c9+=_0x1e9064(0x137);else{const _0x6f8836=_0x317365[_0x1e9064(0xd1)]||0x0;let _0x4966bd=0x0;_0x317365[_0x1e9064(0xd2)]['forEach']((_0x27a3bf,_0xe9c28)=>{const _0xe4fec4=_0x1e9064;if(_0x317365[_0xe4fec4(0x142)]&&_0x317365[_0xe4fec4(0x142)][_0xe9c28]===_0xe4fec4(0xa2))return;if(_0x6f8836>0x0&&_0xe9c28<_0x6f8836){if(_0x4966bd===0x0){const _0x13acd5=_0x27a3bf['map'](()=>_0xe4fec4(0xcf));_0x4014c9+='|\x20'+_0xe9c28+_0xe4fec4(0x13d)+_0x13acd5[_0xe4fec4(0x11b)](_0xe4fec4(0x13d))+_0xe4fec4(0x12b),_0x4014c9+='|\x20...\x20|\x20'+_0x27a3bf[_0xe4fec4(0x153)](()=>_0xe4fec4(0xe2))['join'](_0xe4fec4(0x13d))+_0xe4fec4(0x12b);}if(_0xe9c28===_0x6f8836-0x1){const _0x5cf311=_0x27a3bf[_0xe4fec4(0x153)](()=>_0xe4fec4(0xcf));_0x4014c9+='|\x20'+_0xe9c28+_0xe4fec4(0x13d)+_0x5cf311[_0xe4fec4(0x11b)](_0xe4fec4(0x13d))+_0xe4fec4(0x12b);}_0x4966bd++;return;}if(Array[_0xe4fec4(0x15b)](_0x27a3bf)){const _0x46247b=_0x27a3bf['map'](_0x5191e8=>{const _0x4640cb=_0xe4fec4,_0x5ae61d=_0x5191e8===null||_0x5191e8===undefined||_0x5191e8===''?'未知':String(_0x5191e8);return _0x5ae61d[_0x4640cb(0x18a)](/\|/g,'|');});_0x4014c9+='|\x20'+_0xe9c28+_0xe4fec4(0x13d)+_0x46247b[_0xe4fec4(0x11b)]('\x20|\x20')+_0xe4fec4(0x12b);}}),_0x4966bd>0x0&&(_0x4014c9+='\x0a【系统提示】:表格前\x20'+_0x4966bd+_0x1e9064(0x193)+(_0x4966bd-0x1)+_0x1e9064(0x15c));}const _0x48667a=checkTableRules(_0x317365);_0x48667a&&(_0x4014c9+=_0x48667a+'\x0a'),_0x4014c9+='\x0a',_0x4014c9+=_0x1e9064(0xf7)+(_0x317365[_0x1e9064(0xb8)]||'允许')+'\x0a',_0x4014c9+='【删除】:\x20'+(_0x317365[_0x1e9064(0xe9)]||'允许')+'\x0a',_0x4014c9+='【修改】:\x20'+(_0x317365['rule_update']||'允许')+'\x0a',_0x13dfad{const _0x1d536e=_0x376b19,_0xb432be=_0x422c47[_0x1d536e(0xd7)](_0x9bef7e);_0x2e5b48+=_0x1d536e(0x143)+_0x9bef7e+':'+_0x2695e1[_0x1d536e(0xec)];!_0xb432be&&(_0x2e5b48+=_0x1d536e(0xdd));_0x2e5b48+='\x0a',_0x2e5b48+=_0x1d536e(0x101)+(_0x2695e1[_0x1d536e(0x8d)]||'无')+'\x0a';const _0x438d6b=_0x2695e1[_0x1d536e(0xec)][_0x1d536e(0x18a)](/\s/g,'')+'内容';_0x2e5b48+='<'+_0x438d6b+'>\x0a';const _0x34339b=[_0x1d536e(0xd5),..._0x2695e1['headers']['map']((_0x3b2c3c,_0x1aa2f8)=>_0x1aa2f8+':'+_0x3b2c3c)];_0x2e5b48+='|\x20'+_0x34339b[_0x1d536e(0x11b)](_0x1d536e(0x13d))+_0x1d536e(0x12b),_0x2e5b48+='|'+_0x34339b['map'](()=>'---')[_0x1d536e(0x11b)]('|')+'|\x0a';if(_0xb432be){const _0x419cd9=_0x2695e1[_0x1d536e(0xd2)][_0x1d536e(0x16e)]((_0x1fc44f,_0x468cb5)=>!_0x2695e1[_0x1d536e(0x142)]||_0x2695e1[_0x1d536e(0x142)][_0x468cb5]!==_0x1d536e(0xa2));if(_0x419cd9[_0x1d536e(0xff)]===0x0)_0x2e5b48+=_0x1d536e(0x137);else{const _0x4ffa68=_0x2695e1[_0x1d536e(0xd1)]||0x0;let _0x20ae13=0x0;_0x2695e1[_0x1d536e(0xd2)][_0x1d536e(0xbd)]((_0x527bd7,_0x1e6b35)=>{const _0x3f67c6=_0x1d536e;if(_0x2695e1[_0x3f67c6(0x142)]&&_0x2695e1[_0x3f67c6(0x142)][_0x1e6b35]===_0x3f67c6(0xa2))return;if(_0x4ffa68>0x0&&_0x1e6b35<_0x4ffa68){if(_0x20ae13===0x0){const _0x2af21a=_0x527bd7['map'](()=>_0x3f67c6(0xcf));_0x2e5b48+='|\x20'+_0x1e6b35+_0x3f67c6(0x13d)+_0x2af21a['join']('\x20|\x20')+'\x20|\x0a',_0x2e5b48+=_0x3f67c6(0x8f)+_0x527bd7[_0x3f67c6(0x153)](()=>'...')['join'](_0x3f67c6(0x13d))+_0x3f67c6(0x12b);}if(_0x1e6b35===_0x4ffa68-0x1){const _0x5ae5ec=_0x527bd7[_0x3f67c6(0x153)](()=>'---已锁定---');_0x2e5b48+='|\x20'+_0x1e6b35+_0x3f67c6(0x13d)+_0x5ae5ec['join']('\x20|\x20')+_0x3f67c6(0x12b);}_0x20ae13++;return;}if(Array[_0x3f67c6(0x15b)](_0x527bd7)){const _0x21f6c7=_0x527bd7[_0x3f67c6(0x153)](_0x2a524a=>{const _0x440fff=_0x3f67c6,_0x5868ab=_0x2a524a===null||_0x2a524a===undefined||_0x2a524a===''?'未知':String(_0x2a524a);return _0x5868ab[_0x440fff(0x18a)](/\|/g,'|');});_0x2e5b48+='|\x20'+_0x1e6b35+_0x3f67c6(0x13d)+_0x21f6c7['join'](_0x3f67c6(0x13d))+_0x3f67c6(0x12b);}}),_0x20ae13>0x0&&(_0x2e5b48+=_0x1d536e(0x148)+_0x20ae13+_0x1d536e(0x193)+(_0x20ae13-0x1)+_0x1d536e(0x15c));}const _0x597fe7=checkTableRules(_0x2695e1);_0x597fe7&&(_0x2e5b48+=_0x597fe7+'\x0a');}else _0x2e5b48+=_0x1d536e(0xfc);_0x2e5b48+='\x0a',_0xb432be?(_0x2e5b48+='【增加】:\x20'+(_0x2695e1[_0x1d536e(0xb8)]||'允许')+'\x0a',_0x2e5b48+=_0x1d536e(0xa5)+(_0x2695e1[_0x1d536e(0xe9)]||'允许')+'\x0a',_0x2e5b48+=_0x1d536e(0xcd)+(_0x2695e1[_0x1d536e(0x187)]||'允许')+'\x0a'):_0x2e5b48+='【操作权限】:\x20禁止修改此表格\x0a',_0x9bef7e{const _0x1c4476=_0x27e6b6;_0x9da06f+='\x0a<'+_0x58b155[_0x1c4476(0xec)]+'>\x0a';const _0x586d21='|\x20'+_0x58b155['headers'][_0x1c4476(0x11b)]('\x20|\x20')+'\x20|';_0x9da06f+=_0x586d21+'\x0a';const _0x10e268='|'+_0x58b155[_0x1c4476(0x19c)][_0x1c4476(0x153)](()=>_0x1c4476(0x90))['join']('|')+'|';_0x9da06f+=_0x10e268+'\x0a';const _0x3ab004=_0x58b155[_0x1c4476(0xd2)][_0x1c4476(0x16e)]((_0x1f5eb6,_0x27ef5b)=>!_0x58b155[_0x1c4476(0x142)]||_0x58b155[_0x1c4476(0x142)][_0x27ef5b]!==_0x1c4476(0xa2));_0x3ab004[_0x1c4476(0xff)]>0x0?_0x3ab004[_0x1c4476(0xbd)](_0x44e095=>{const _0x3e15fa=_0x1c4476;if(Array[_0x3e15fa(0x15b)](_0x44e095)){const _0x586ca2=_0x44e095[_0x3e15fa(0x153)](_0x44fdde=>_0x44fdde===null||_0x44fdde===undefined||_0x44fdde===''?'\x20':_0x44fdde[_0x3e15fa(0xc5)]()),_0x4b6f60='|\x20'+_0x586ca2[_0x3e15fa(0x11b)](_0x3e15fa(0x13d))+'\x20|';_0x9da06f+=_0x4b6f60+'\x0a';}}):_0x9da06f+='(该表当前内容为空)\x0a',_0x9da06f+='\x0a';}),_0x9da06f['trim']();}loadTables();function _0xd105(_0x3d4c23,_0x330c1f){const _0x50a6c6=_0x50a6();return _0xd105=function(_0xd1052,_0x5aaf83){_0xd1052=_0xd1052-0x8b;let _0x298597=_0x50a6c6[_0xd1052];return _0x298597;},_0xd105(_0x3d4c23,_0x330c1f);}export function getBatchFillerRuleTemplate(){const _0x4bd9b2=_0x6350c4;return extension_settings[extensionName]?.[_0x4bd9b2(0x161)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x15f8fe){const _0x12c8ae=_0x6350c4;extension_settings[extensionName][_0x12c8ae(0x161)]=_0x15f8fe,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x137af2=_0x6350c4;return extension_settings[extensionName]?.[_0x137af2(0xf3)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x4d931b){const _0x462e0c=_0x6350c4;extension_settings[extensionName][_0x462e0c(0xf3)]=_0x4d931b,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x432d24=_0x6350c4;return extension_settings[extensionName]?.[_0x432d24(0xc1)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x3134fb){const _0x463d27=_0x6350c4,_0x5133a7=extension_settings[extensionName];if(_0x5133a7['table_system_enabled']===![]){log(_0x463d27(0xb0),'info');return;}if(!_0x3134fb){log(_0x463d27(0x162),'warn');return;}const {finalState:_0x43ebc9,hasChanges:_0x5dbdac,changes:_0x57ff48}=executeCommands(_0x3134fb,currentTablesState);if(!_0x5dbdac){log(_0x463d27(0x17e),_0x463d27(0xe0));return;}setMemoryState(_0x43ebc9),_0x57ff48['forEach'](_0xcf007=>{const _0x1ea573=_0x463d27;updatedTables[_0x1ea573(0x15a)](_0xcf007[_0x1ea573(0x155)]),(_0xcf007[_0x1ea573(0x184)]===_0x1ea573(0x14b)||_0xcf007[_0x1ea573(0x184)]==='insert')&&(_0xcf007[_0x1ea573(0xd5)]!==undefined&&_0xcf007[_0x1ea573(0x171)]!==undefined&&addHighlight(_0xcf007[_0x1ea573(0x155)],_0xcf007['rowIndex'],_0xcf007['colIndex']));}),log(_0x463d27(0xa0)+_0x57ff48['length']+_0x463d27(0x157),_0x463d27(0x127));const _0x213fd7=[...new Set(_0x57ff48[_0x463d27(0x153)](_0x3bc672=>_0x3bc672[_0x463d27(0x155)]))];_0x213fd7[_0x463d27(0xbd)](_0x4ff372=>{dispatchTableUpdate(_0x4ff372);});const _0x23cbda=getContext();if(_0x23cbda['chat']&&_0x23cbda[_0x463d27(0xac)][_0x463d27(0xff)]>0x0){const _0x5f0f9c=_0x23cbda[_0x463d27(0xac)][_0x23cbda['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5f0f9c)){await saveChat(),toastr[_0x463d27(0x127)](_0x463d27(0xaf),_0x463d27(0xf2)),document[_0x463d27(0x174)](new CustomEvent('amily2-force-ui-reload'));return;}}saveChatDebounced(),toastr['success'](_0x463d27(0xaf),_0x463d27(0xf2)),document[_0x463d27(0x174)](new CustomEvent('amily2-force-ui-reload'));}export function saveAiTemplate(_0x2ce482){extension_settings[extensionName]['amily2_ai_template']=_0x2ce482,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x4c7d9b=![]){const _0x3ab90b=_0x6350c4;if(!currentTablesState){log(_0x3ab90b(0x199),_0x3ab90b(0xd6)),toastr['error'](_0x3ab90b(0x111));return;}let _0x4aa4e5,_0x45393f,_0x3bccf8;_0x4c7d9b?(_0x4aa4e5=JSON['parse'](JSON[_0x3ab90b(0x198)](currentTablesState)),_0x45393f='Amily2-Table-Preset-v2.0-full',_0x3bccf8=_0x3ab90b(0x9b)):(_0x4aa4e5=currentTablesState[_0x3ab90b(0x153)](_0x24ceb1=>({'name':_0x24ceb1[_0x3ab90b(0xec)],'headers':_0x24ceb1['headers'],'columnWidths':_0x24ceb1['columnWidths']||[],'note':_0x24ceb1[_0x3ab90b(0x8d)],'rule_add':_0x24ceb1[_0x3ab90b(0xb8)],'rule_delete':_0x24ceb1['rule_delete'],'rule_update':_0x24ceb1[_0x3ab90b(0x187)],'charLimitRules':_0x24ceb1['charLimitRules']||{},'rowLimitRule':_0x24ceb1[_0x3ab90b(0x16d)]||0x0,'rows':[],'rowStatuses':[]})),_0x45393f='Amily2-Table-Preset-v2.0-clean',_0x3bccf8=_0x3ab90b(0x156));const _0x4cb216={'version':_0x3ab90b(0x104),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x4aa4e5},_0x2e6862=new Blob([JSON[_0x3ab90b(0x198)](_0x4cb216,null,0x2)],{'type':_0x3ab90b(0xaa)}),_0x270f0e=URL[_0x3ab90b(0xc2)](_0x2e6862),_0x4358e7=document[_0x3ab90b(0xcc)]('a');_0x4358e7[_0x3ab90b(0xcb)]=_0x270f0e,_0x4358e7[_0x3ab90b(0x126)]='Amily2-'+_0x3bccf8+'-'+new Date()[_0x3ab90b(0xce)]()['slice'](0x0,0xa)+'.json',document[_0x3ab90b(0x98)][_0x3ab90b(0xf8)](_0x4358e7),_0x4358e7[_0x3ab90b(0x108)](),document[_0x3ab90b(0x98)][_0x3ab90b(0x15e)](_0x4358e7),URL['revokeObjectURL'](_0x270f0e),log('【'+_0x3bccf8+'】已成功导出。','success'),toastr['success']('【'+_0x3bccf8+_0x3ab90b(0xba),_0x3ab90b(0x8e));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0xa0592){const _0x46708f=_0x6350c4,_0x1bd7a4=document[_0x46708f(0xcc)](_0x46708f(0xed));_0x1bd7a4['type']='file',_0x1bd7a4[_0x46708f(0xad)]='.json',_0x1bd7a4[_0x46708f(0x18d)]=_0x2a91da=>{const _0x2d18c8=_0x46708f,_0x9c8929=_0x2a91da[_0x2d18c8(0x10f)][_0x2d18c8(0x182)][0x0];if(!_0x9c8929)return;const _0x4588e2=new FileReader();_0x4588e2[_0x2d18c8(0x17d)]=_0x3b6473=>{const _0x17149c=_0x2d18c8;try{const _0x18537d=JSON[_0x17149c(0x163)](_0x3b6473[_0x17149c(0x10f)][_0x17149c(0x113)]);if(!_0x18537d[_0x17149c(0x150)]||!Array[_0x17149c(0x15b)](_0x18537d[_0x17149c(0x13e)]))throw new Error(_0x17149c(0xa3));const _0x4cc49a=window[_0x17149c(0x92)](_0x17149c(0x194));if(!_0x4cc49a){log(_0x17149c(0x180),_0x17149c(0xe0)),toastr[_0x17149c(0xe0)](_0x17149c(0x9c));return;}if(_0x18537d[_0x17149c(0x150)]==='Amily2-Table-Preset-v3.0-separated_templates')saveBatchFillerRuleTemplate(_0x18537d['batchFillerRuleTemplate']||''),saveBatchFillerFlowTemplate(_0x18537d[_0x17149c(0x15f)]||''),saveAiTemplate(_0x18537d[_0x17149c(0xc0)]||'');else{if(_0x18537d[_0x17149c(0x197)]!==undefined&&_0x18537d[_0x17149c(0x103)]!==undefined)saveBatchFillerRuleTemplate(_0x18537d[_0x17149c(0x197)]||''),saveBatchFillerFlowTemplate(_0x18537d['aiFlowTemplate']||''),saveAiTemplate(_0x18537d[_0x17149c(0x103)]||'');else _0x18537d[_0x17149c(0x9d)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x18537d[_0x17149c(0x9d)]||''),saveAiTemplate(_0x18537d[_0x17149c(0x9d)]||'')):log(_0x17149c(0xd3),_0x17149c(0xa6));}const _0x41d6b9=_0x18537d[_0x17149c(0x13e)];_0x41d6b9['forEach'](_0x36571e=>{const _0xcb3009=_0x17149c;if(_0x36571e['name']===undefined||_0x36571e[_0xcb3009(0x19c)]===undefined||_0x36571e[_0xcb3009(0xd2)]===undefined)throw new Error(_0xcb3009(0xae)+JSON[_0xcb3009(0x198)](_0x36571e));if(_0x36571e[_0xcb3009(0x8d)]===undefined)_0x36571e['note']='无';if(_0x36571e['rule_add']===undefined)_0x36571e[_0xcb3009(0xb8)]='允许';if(_0x36571e['rule_delete']===undefined)_0x36571e[_0xcb3009(0xe9)]='允许';if(_0x36571e['rule_update']===undefined)_0x36571e[_0xcb3009(0x187)]='允许';if(_0x36571e[_0xcb3009(0xc7)]&&!_0x36571e['charLimitRules'])_0x36571e['charLimitRules']={},_0x36571e[_0xcb3009(0xc7)][_0xcb3009(0x107)]!==-0x1&&_0x36571e[_0xcb3009(0xc7)]['limit']>0x0&&(_0x36571e[_0xcb3009(0xab)][_0x36571e['charLimitRule'][_0xcb3009(0x107)]]=_0x36571e[_0xcb3009(0xc7)][_0xcb3009(0x9e)]);else _0x36571e[_0xcb3009(0xab)]===undefined&&(_0x36571e[_0xcb3009(0xab)]={});delete _0x36571e['charLimitRule'],!_0x36571e[_0xcb3009(0x142)]&&(_0x36571e['rowStatuses']=Array(_0x36571e['rows'][_0xcb3009(0xff)])[_0xcb3009(0x10b)](_0xcb3009(0x94))),_0x36571e[_0xcb3009(0x16d)]===undefined&&(_0x36571e['rowLimitRule']=0x0),_0x36571e[_0xcb3009(0xbb)]===undefined&&(_0x36571e[_0xcb3009(0xbb)]=[]);}),setMemoryState(_0x41d6b9),dispatchAllTablesUpdate();const _0x2c9b77=getContext();if(_0x2c9b77[_0x17149c(0xac)]&&_0x2c9b77['chat']['length']>0x0){const _0x246ece=_0x2c9b77[_0x17149c(0xac)][_0x2c9b77[_0x17149c(0xac)]['length']-0x1];saveStateToMessage(getMemoryState(),_0x246ece)&&(saveChat(),log('导入的预设已强制写入最新消息并立即保存。',_0x17149c(0x127)));}else saveChatDebounced();log(_0x17149c(0xfb),_0x17149c(0x127)),toastr['success']('预设已成功导入!','导入成功'),typeof _0xa0592===_0x17149c(0x123)&&_0xa0592();}catch(_0x54d642){log(_0x17149c(0xf9)+_0x54d642[_0x17149c(0xb9)],_0x17149c(0xd6)),toastr[_0x17149c(0xd6)](_0x17149c(0x118)+_0x54d642[_0x17149c(0xb9)],'错误');}},_0x4588e2[_0x2d18c8(0xf5)](_0x9c8929);},_0x1bd7a4[_0x46708f(0x108)]();}export async function rollbackState(){const _0x3c7f12=_0x6350c4,_0x15e99d=getContext();if(!_0x15e99d||!_0x15e99d['chat']||_0x15e99d['chat'][_0x3c7f12(0xff)]<0x2)return log(_0x3c7f12(0xe1),_0x3c7f12(0xa6)),toastr['warning'](_0x3c7f12(0x12d)),![];const _0x48ef1e=_0x15e99d[_0x3c7f12(0xac)],_0xc87758=_0x48ef1e[_0x3c7f12(0xff)]-0x1,_0xda7397=_0x48ef1e[_0xc87758];log('正在尝试从第\x20'+(_0xc87758-0x1)+_0x3c7f12(0x165),_0x3c7f12(0xe0));const _0x482f9e=loadTables(_0xc87758);if(!_0x482f9e)return log('未能在上一楼找到可用的表格状态,无法回退。',_0x3c7f12(0xd6)),toastr[_0x3c7f12(0xd6)]('未能在上一楼找到可用的表格状态。'),![];setMemoryState(_0x482f9e);if(saveStateToMessage(_0x482f9e,_0xda7397))await saveChat(),log(_0x3c7f12(0xc9),_0x3c7f12(0x127));else return log(_0x3c7f12(0xbe),'error'),toastr['error'](_0x3c7f12(0xdb)),![];return renderTables(),updateOrInsertTableInChat(),log(_0x3c7f12(0x141),'info'),!![];}export async function rollbackAndRefill(){const _0x2c1d14=_0x6350c4,_0x15d6dd=extension_settings[extensionName];if(_0x15d6dd[_0x2c1d14(0x16f)]===![]){log(_0x2c1d14(0xc4),'info'),toastr[_0x2c1d14(0xe0)](_0x2c1d14(0xe7));return;}toastr[_0x2c1d14(0xe0)](_0x2c1d14(0xe6));const _0x9fdbee=await rollbackState();if(!_0x9fdbee){toastr['error'](_0x2c1d14(0x132));return;}toastr['success'](_0x2c1d14(0xa1));const _0x127b38=getContext(),_0x5c6b1e=_0x127b38['chat'][_0x127b38['chat'][_0x2c1d14(0xff)]-0x1];try{await fillWithSecondaryApi(_0x5c6b1e,!![]),log(_0x2c1d14(0xd0),_0x2c1d14(0x127));}catch(_0x143040){log(_0x2c1d14(0x91)+_0x143040[_0x2c1d14(0xb9)],_0x2c1d14(0xd6)),toastr[_0x2c1d14(0xd6)]('重新填表失败:\x20'+_0x143040[_0x2c1d14(0xb9)]);}}export function updateColumnWidth(_0x45ffac,_0x27f061,_0x1e332){const _0x23c7cb=_0x6350c4;if(!currentTablesState||!currentTablesState[_0x45ffac])return;const _0x3b7e5d=currentTablesState[_0x45ffac];!_0x3b7e5d[_0x23c7cb(0xbb)]&&(_0x3b7e5d[_0x23c7cb(0xbb)]=[]);while(_0x3b7e5d[_0x23c7cb(0xbb)]['length']<_0x3b7e5d['headers']['length']){_0x3b7e5d[_0x23c7cb(0xbb)][_0x23c7cb(0x14f)](null);}_0x3b7e5d['columnWidths'][_0x27f061]=_0x1e332;const _0x552f3b=getContext();if(_0x552f3b[_0x23c7cb(0xac)]&&_0x552f3b[_0x23c7cb(0xac)][_0x23c7cb(0xff)]>0x0){const _0x3e6b5e=_0x552f3b[_0x23c7cb(0xac)][_0x552f3b[_0x23c7cb(0xac)][_0x23c7cb(0xff)]-0x1];if(saveStateToMessage(currentTablesState,_0x3e6b5e)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x477558=_0x6350c4,_0x188c91=getMemoryState();if(!_0x188c91||_0x188c91['length']===0x0)return!![];return _0x188c91[_0x477558(0xdc)](_0x537d54=>!_0x537d54[_0x477558(0xd2)]||_0x537d54[_0x477558(0xd2)][_0x477558(0xff)]===0x0);}function _0x50a6(){const _0xcb06c0=['rule_delete','\x20的第\x20','\x20条消息中找到基准表格数据。','name','input','\x20中操作。',']\x20新增了一列。','log','操作完成','填表完成','batch_filler_flow_template','【核心作用】专门用于记录除主角以外的角色之间的复杂人际关系网(NPC\x20to\x20NPC)。\x0a【字段详解】\x0a-\x20主动方:\x20关系的发起者或主体(例如\x27艾克\x27)。\x0a-\x20被动方:\x20关系的接收者或对象(例如\x27莉娜\x27)。\x0a-\x20关系:\x20用简短的词汇描述两者之间的关系本质,如\x27暗恋\x27、\x27世仇\x27、\x27师徒\x27。\x0a-\x20详情:\x20对这段关系的具体描述或背景补充。','readAsText','[SuperMemory]\x20已从元数据恢复内存状态并刷新\x20UI。','【增加】:\x20','appendChild','导入预设失败:\x20',']\x20的表头“','预设已成功导入并应用。','(此处省略未选中的表格内容,仅提供表头供索引参考)\x0a','操作成功','63816AedSYr','length','设置成功','【说明】:\x0a','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','aiFlowTemplate','Amily2-Table-Preset-v3.0-separated_templates','global_table_preset','被动方','columnIndex','click','已清除所有单元格高亮标记。','super_memory_enabled','fill','成功在表格\x20','UI操作\x20\x22','trim','target',')行(','没有可导出的表格数据。','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','result','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。','above','AMILY2_TABLE_UPDATED','开始时间/结束时间','导入失败:','具体描述','5NXqnAa','join','执行者','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与关系:\x20描述该角色与主角之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','清空行数据后的状态已强制写入最新消息并立即保存。','重要原因','成功删除了表格\x20','\x20行位置插入了新行。','function','【触发条件】当两个NPC之间展现出明确的、非临时性的人际关系时,应添加新行。','新表格状态已强制写入最新消息并立即保存。','download','success','【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','新列\x201','已成功创建新表格:[','\x20|\x0a','some','聊天记录不足,无法执行回退操作。',')行,请结合剧情缩减至(','\x22\x20已重命名为\x20\x22','8kvbwGD',']\x20的第\x20','状态回退失败,已中止操作。','当前没有设置全局预设。','世界钟','anchor','\x20列的','(该表当前内容为空)\x0a','任务名','重命名失败:名称不能为空。','新列\x20',']\x20末尾新增一行。','角色名','\x20|\x20','tables','object','无需清除,当前未设置任何全局预设。','UI已更新以显示回退后的状态。','rowStatuses','\x0a*\x20','删除列失败:在表格\x20','插入了新列。','表格顺序调整后的状态已强制写入最新消息并立即保存。','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','\x0a【系统提示】:表格前\x20',']\x20的列“','从预设模板生成默认表格...','update','无法创建表格:名称不能为空。','AI\x20指令更新了表格\x20[','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','push','version','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','file','map','废黜表格后的状态已强制写入最新消息并立即保存。','tableIndex','纯净预设','\x20处变更。','导入全局预设失败:\x20','\x20行已恢复。','add','isArray',')的历史内容已简化并锁定,无需读取或修改。请专注于后续行的内容。\x0a','\x20行已标记为待删除。','removeChild','batchFillerFlowTemplate','”已更新为“','batch_filler_rule_template','AI返回内容为空,无法更新表格。','parse',']\x20新增了一行。','\x20条消息加载表格状态...','【触发条件】当两个NPC之间的关系性质发生转变(如从\x27盟友\x27变为\x27背叛者\x27)时,必须更新。','技能名','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','6404780whqpPp','\x20列。','已提交并永久删除了\x20','【当前(','rowLimitRule','filter','table_system_enabled','\x20(索引\x20','colIndex','\x20的表格。','全局预设已清除,新聊天将使用默认模板。','dispatchEvent','已清除所有表格的更新标记。','left',')行以下,但切莫完全删除。】','无法移动表格:索引\x20','8227716MQvjnW','缺少状态或目标消息,无法保存。','below','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','onload','AI指令未产生任何实质性变更。','用户取消了全局预设导入操作。','用户取消了导入操作。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','files','重命名失败','type','218010CZudom','未知操作','rule_update','size','clear','replace','用户取消了清除全局预设的操作。','539798NPQccH','onchange','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','),已智能转换为在表格\x20[','全局预设已被清除。','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','batchFillerRuleTemplate','\x20行(索引\x200\x20到\x20','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','aiRuleTemplate','stringify','无法导出:当前表格状态为空。','splice','\x20行移动到第\x20','headers','extra','\x20已在边界。','\x0a---\x0a','无法清空:当前表格状态为空。','拥有者','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','note','导出成功','|\x20...\x20|\x20','---','回退重填过程中发生错误:\x20','confirm','未在聊天记录中找到表格,正在加载全局预设...','normal',')列,字符超出规定(','技能效果','number','body','表格\x20[','...]','完整备份','导入操作已取消。','aiTemplate','limit','\x20行。','成功执行了\x20','状态回退成功,准备重新填表...','pending-deletion','文件格式无效或缺少版本号/表格数据。','此地角色','【删除】:\x20','warn','插入行失败:找不到索引为\x20','204ykIUKP','移动。','application/json','charLimitRules','chat','accept','导入的表格数据格式不正确:\x20','已根据AI的指示成功更新表格!','表格系统总开关已关闭,跳过\x20\x20标签处理。','重命名失败:名为\x20\x22','主动方','5449887Hoiqqs','未找到任何表格数据或全局预设,使用默认模板。','\x22\x20的表格已存在。','表格名称不能为空。','【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','rule_add','message','】已开始下载。','columnWidths','【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','forEach','回退状态保存失败,操作中止。','.json','injectionFlowTemplate','amily2_ai_template','createObjectURL','物品栏','表格系统总开关已关闭,跳过回退填表。','toString','无法创建表格:名为\x20\x22','charLimitRule','创建失败','已成功将回退后的状态保存至最新消息。','【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\x0a【字段详解】\x0a-\x20任务名:\x20任务的简洁概括,如\x27寻找失落的神器\x27。\x0a-\x20类型:\x20任务的分类,如\x27主线\x27、\x27支线\x27、\x27个人\x27、\x27约定\x27。\x0a-\x20详情:\x20对任务目标和背景的简要描述。\x0a-\x20状态:\x20任务的当前进展,如\x27未开始\x27、\x27进行中\x27、\x27已完成\x27、\x27已失败\x27、\x27已取消\x27。\x0a-\x20执行者:\x20负责完成此任务的角色名。\x0a-\x20地点:\x20任务关键环节发生的地点。\x0a-\x20开始时间/结束时间:\x20记录任务的起止时间,格式\x27YYYY-MM-DD\x27,若未结束则结束时间留空。\x0a-\x20结果:\x20任务完成或失败后的最终结果。','href','createElement','【修改】:\x20','toISOString','---已锁定---','回退并重新填表操作完成。','simplifyRowThreshold','rows','导入的预设中缺少指令模板字段,模板将不会被更新。','”已向','rowIndex','error','includes','其他重要信息','437430YETzzU',']\x20的顺序已调整。','未能保存回退状态,操作中止。','every','\x20(本表格无需重新整理,仅供参考)','AI指令错误:尝试在不存在的表格索引\x20','名为\x20\x22','info','无法回退:聊天记录不足。','...','database','关系栏','操作已取消。','正在执行回退并重新填表...','表格系统总开关已关闭,无法执行回退填表。',']\x20的规则已更新。'];_0x50a6=function(){return _0xcb06c0;};return _0x50a6();}export function clearGlobalPreset(){const _0x485dc0=_0x6350c4;if(extension_settings[extensionName]&&extension_settings[extensionName]['global_table_preset']){const _0x196003=window[_0x485dc0(0x92)](_0x485dc0(0x181));_0x196003?(delete extension_settings[extensionName][_0x485dc0(0x105)],saveSettingsDebounced(),log(_0x485dc0(0x190),_0x485dc0(0x127)),toastr[_0x485dc0(0x127)](_0x485dc0(0x173),_0x485dc0(0xfd))):(log(_0x485dc0(0x18b),_0x485dc0(0xe0)),toastr['info'](_0x485dc0(0xe5)));}else log(_0x485dc0(0x140),_0x485dc0(0xe0)),toastr['info'](_0x485dc0(0x133),'提示');}export function importGlobalPreset(_0x18a9bf){const _0x2067d7=_0x6350c4,_0x59f4cd=document[_0x2067d7(0xcc)](_0x2067d7(0xed));_0x59f4cd['type']=_0x2067d7(0x152),_0x59f4cd[_0x2067d7(0xad)]=_0x2067d7(0xbf),_0x59f4cd[_0x2067d7(0x18d)]=_0x596a56=>{const _0x27a25b=_0x2067d7,_0x81669d=_0x596a56['target']['files'][0x0];if(!_0x81669d)return;const _0x3dbd14=new FileReader();_0x3dbd14[_0x27a25b(0x17d)]=_0x320ffb=>{const _0x5f67cc=_0x27a25b;try{const _0x2c5c36=JSON[_0x5f67cc(0x163)](_0x320ffb['target'][_0x5f67cc(0x113)]);if(!_0x2c5c36[_0x5f67cc(0x150)]||!Array[_0x5f67cc(0x15b)](_0x2c5c36[_0x5f67cc(0x13e)]))throw new Error(_0x5f67cc(0xa3));const _0x38513a=window[_0x5f67cc(0x92)](_0x5f67cc(0x11d));if(!_0x38513a){log(_0x5f67cc(0x17f),_0x5f67cc(0xe0)),toastr[_0x5f67cc(0xe0)](_0x5f67cc(0xe5));return;}const _0x468c47=_0x2c5c36[_0x5f67cc(0x13e)][_0x5f67cc(0x153)](_0x2a0ee6=>({'name':_0x2a0ee6[_0x5f67cc(0xec)],'headers':_0x2a0ee6[_0x5f67cc(0x19c)],'note':_0x2a0ee6[_0x5f67cc(0x8d)],'rule_add':_0x2a0ee6[_0x5f67cc(0xb8)],'rule_delete':_0x2a0ee6[_0x5f67cc(0xe9)],'rule_update':_0x2a0ee6['rule_update'],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x5f67cc(0x105)]={'version':_0x2c5c36[_0x5f67cc(0x150)],'tables':_0x468c47,'batchFillerRuleTemplate':_0x2c5c36[_0x5f67cc(0x192)],'batchFillerFlowTemplate':_0x2c5c36['batchFillerFlowTemplate']},saveSettingsDebounced();if(_0x2c5c36['version']===_0x5f67cc(0x104))saveBatchFillerRuleTemplate(_0x2c5c36[_0x5f67cc(0x192)]||''),saveBatchFillerFlowTemplate(_0x2c5c36[_0x5f67cc(0x15f)]||''),saveAiTemplate(_0x2c5c36['injectionFlowTemplate']||'');else{if(_0x2c5c36[_0x5f67cc(0x197)]!==undefined&&_0x2c5c36[_0x5f67cc(0x103)]!==undefined)saveBatchFillerRuleTemplate(_0x2c5c36[_0x5f67cc(0x197)]||''),saveBatchFillerFlowTemplate(_0x2c5c36['aiFlowTemplate']||''),saveAiTemplate(_0x2c5c36[_0x5f67cc(0x103)]||'');else _0x2c5c36[_0x5f67cc(0x9d)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x2c5c36[_0x5f67cc(0x9d)]||''),saveAiTemplate(_0x2c5c36[_0x5f67cc(0x9d)]||''));}log('全局预设已成功导入并保存到扩展设置中。','success'),toastr[_0x5f67cc(0x127)]('全局预设已设置!新聊天将默认使用此预设。',_0x5f67cc(0x100)),typeof _0x18a9bf===_0x5f67cc(0x123)&&_0x18a9bf();}catch(_0x4c6ae0){log(_0x5f67cc(0x158)+_0x4c6ae0[_0x5f67cc(0xb9)],_0x5f67cc(0xd6)),toastr[_0x5f67cc(0xd6)]('导入失败:'+_0x4c6ae0['message'],'错误');}},_0x3dbd14[_0x27a25b(0xf5)](_0x81669d);},_0x59f4cd[_0x2067d7(0x108)]();}