mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 11:15:50 +00:00
2 lines
65 KiB
JavaScript
2 lines
65 KiB
JavaScript
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<Amily2Edit>\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','【核心作用】专门用于记录除主角<user>以外的角色之间的复杂人际关系网(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列。','【核心作用】专门用于记录主角<user>掌握的各种技能、魔法、被动能力或特殊专长。\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','【触发条件】当<user>在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','未能在上一楼找到可用的表格状态,无法回退。','其他重要信息','【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与<user>的关系发生根本性转变(如从敌人变为盟友)。','未找到任何表格数据或全局预设,使用默认模板。','清空行数据后的状态已强制写入最新消息并立即保存。',']\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','状态回退失败,已中止操作。','【触发条件】只能在<user>明确表示要修改某条设定时,才能更新对应行的描述。','\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与<user>关系:\x20描述该角色与主角<user>之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','log','【修改】:\x20','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','与<user>关系','\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','【触发条件】当<user>通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','创建失败','body','push','表格系统总开关已关闭,无法执行回退填表。','重新填表失败:\x20','技能栏','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','function','\x20|\x20','被动方','clear','状态回退成功,准备重新填表...','rule_update','无需清除,当前未设置任何全局预设。','没有可导出的表格数据。',']\x20在第\x20','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非<user>的技能,应立即删除。','【触发条件】当一个有名有姓的角色首次出现,并与<user>或当前剧情发生有意义的互动时,必须为其创建新的一行。','】已成功导出。','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','【核心作用】此表格记录了来自<user>的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录<user>提出的具体要求。','物品名','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':'【触发条件】只能在<user>明确表示要移除或废弃某条设定时,才能删除对应行。','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+='</'+_0x9e771f+'>\x0a',_0x302527+=_0x52fefd(0x250)+(_0x46aa8d['rule_add']||'允许')+'\x0a',_0x302527+=_0x52fefd(0x2ad)+(_0x46aa8d['rule_delete']||'允许')+'\x0a',_0x302527+=_0x52fefd(0x1c4)+(_0x46aa8d['rule_update']||'允许')+'\x0a',_0x56fa1c<currentTablesState[_0x52fefd(0x1ff)]-0x1&&(_0x302527+=_0x52fefd(0x247));}),_0x302527;}export function convertSelectedTablesToCsvString(_0xdd8502){!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x284c38='';return currentTablesState['forEach']((_0x4db3aa,_0x587e84)=>{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+='</'+_0x1dca19+'>\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<currentTablesState[_0x2619f4(0x1ff)]-0x1&&(_0x284c38+='\x0a---\x0a');}),_0x284c38;}export function convertTablesToCsvStringForContentOnly(){const _0x3f96b4=_0x2b9298,_0x37d03c=getMemoryState();if(!_0x37d03c||_0x37d03c[_0x3f96b4(0x1ff)]===0x0)return'';let _0x4e055d='';return _0x37d03c[_0x3f96b4(0x2a6)](_0x4386ba=>{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+='</'+_0x4386ba[_0x13c051(0x243)]+'>\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<Amily2Edit>\x20标签处理。',_0x16763c(0x276));return;}if(!_0x549ae4){log('AI返回内容为空,无法更新表格。','warn');return;}const _0x3e1b73=_0x549ae4[_0x16763c(0x1df)](/<Amily2Edit>([\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)]();}
|