From 23567554bb6ab7448ee4e3f3b52673f20d50ca9b Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 00:16:44 +0800 Subject: [PATCH 01/32] Update amily2-glossary.html --- assets/amily2-glossary.html | 52 ++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/assets/amily2-glossary.html b/assets/amily2-glossary.html index fc858b9..d5ae8dc 100644 --- a/assets/amily2-glossary.html +++ b/assets/amily2-glossary.html @@ -8,7 +8,6 @@
-
-
-
-
Sybd API 调用系统
@@ -100,15 +97,28 @@
- -
+
-
待开发
-

待开发

+
按标题重组条目
+ + 在下方文本框中输入您想要合并的标题 (不带'#'),每行一个。
+ 插件将精确查找这些标题,并将它们的内容合并到同名的新条目中。 +
+
+ + +
+
+ +
+
+ 请选择一个世界书并开始操作... +
-
世界书条目预览
@@ -119,28 +129,31 @@
- +
-
小说文件处理流程
-
- -
+
+ +
+
@@ -148,9 +161,13 @@
+
+ + +
+
-
@@ -158,7 +175,6 @@
-
';_0x273eac[_0x37e41d(0x212)](_0x4025e8);}),_0x273eac['on'](_0x3a0e67(0x310),_0x3a0e67(0x2e9),function(){const _0x168c3c=_0x3a0e67;$(this)['closest'](_0x168c3c(0x1e7))['remove']();});}});}function openRuleEditor(_0x5be7ee){const _0x8c843a=_0x1d3fcf,_0x16e870=_0x3ab42[_0x8c843a(0x25b)]();if(!_0x16e870||!_0x16e870[_0x5be7ee])return;const _0x2aed84=_0x16e870[_0x5be7ee];_0x2aed84['charLimitRule']&&!_0x2aed84[_0x8c843a(0x318)]&&(_0x2aed84['charLimitRules']={},_0x2aed84[_0x8c843a(0x154)][_0x8c843a(0x2d2)]!==-0x1&&(_0x2aed84['charLimitRules'][_0x2aed84['charLimitRule'][_0x8c843a(0x2d2)]]=_0x2aed84[_0x8c843a(0x154)][_0x8c843a(0x2da)]));const _0x4c0b72=_0x2aed84[_0x8c843a(0x318)]||{},_0x2e8366=_0x29e3f9=>{const _0x3aea11=_0x8c843a;return Object[_0x3aea11(0x273)](_0x29e3f9)['map'](([_0x26ed39,_0x2dd070])=>{const _0x589347=_0x3aea11,_0x233a3f=_0x2aed84[_0x589347(0x174)][_0x26ed39]||_0x589347(0x1d2)+_0x26ed39+')';return _0x589347(0x30e)+_0x233a3f+_0x589347(0x162)+_0x2dd070+_0x589347(0x26a)+_0x26ed39+'\x22\x20title=\x22删除此规则\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20';})['join']('');},_0x1e75cc=_0x1ce088=>{return _0x2aed84['headers']['map']((_0x821d82,_0x578345)=>{const _0x38cdfe=_0x2e5f;if(_0x1ce088[_0x578345])return'';return _0x38cdfe(0x181)+_0x578345+'\x22>'+_0x821d82+_0x38cdfe(0x331);})['join']('');},_0x3e8d17='\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20编辑\x20“'+_0x2aed84[_0x8c843a(0x210)]+_0x8c843a(0x1b5)+_0x2e8366(_0x4c0b72)+_0x8c843a(0x30b)+_0x1e75cc(_0x4c0b72)+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20添加\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20您可以为多个不同的列添加字符数限制规则。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20表格行数限制\x20(0为禁用)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20【增加】:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2aed84[_0x8c843a(0x25f)]||'')+_0x8c843a(0x347)+(_0x2aed84[_0x8c843a(0x27d)]||'')+_0x8c843a(0x22b)+(_0x2aed84[_0x8c843a(0x1a1)]||'')+_0x8c843a(0x206),_0x532a3c=$(_0x3e8d17)[_0x8c843a(0x2ae)](_0x8c843a(0x221)),_0x1c43dc=()=>{const _0x4289b9=_0x8c843a;_0x532a3c[0x0][_0x4289b9(0x1a6)](),_0x532a3c[_0x4289b9(0x24d)]();},_0x4e5b13=()=>{const _0x53078b=_0x8c843a,_0x226cd9=JSON['parse'](_0x532a3c[_0x53078b(0x2cc)]('#current-char-limit-rules')[_0x53078b(0x226)]('data-rules')||'{}');_0x532a3c[_0x53078b(0x2cc)]('#current-char-limit-rules')[_0x53078b(0x17f)](_0x2e8366(_0x226cd9)),_0x532a3c[_0x53078b(0x2cc)](_0x53078b(0x227))[_0x53078b(0x17f)]('--\x20选择要添加规则的列\x20--'+_0x1e75cc(_0x226cd9));};_0x532a3c[_0x8c843a(0x2cc)](_0x8c843a(0x1c2))['attr']('data-rules',JSON[_0x8c843a(0x164)](_0x4c0b72)),_0x532a3c['on'](_0x8c843a(0x310),_0x8c843a(0x1e2),()=>{const _0x100e0a=_0x8c843a,_0x3efc04=parseInt(_0x532a3c[_0x100e0a(0x2cc)]('#new-rule-column-select')[_0x100e0a(0x2aa)](),0xa),_0x31e462=parseInt(_0x532a3c['find']('#new-rule-limit-input')[_0x100e0a(0x2aa)](),0xa);if(_0x3efc04===-0x1){toastr[_0x100e0a(0x327)]('请选择一个列。');return;}if(isNaN(_0x31e462)||_0x31e462<0x0){toastr[_0x100e0a(0x327)](_0x100e0a(0x248));return;}const _0x2e383c=JSON[_0x100e0a(0x2a8)](_0x532a3c[_0x100e0a(0x2cc)]('#current-char-limit-rules')[_0x100e0a(0x226)](_0x100e0a(0x317))||'{}');_0x31e462>0x0?(_0x2e383c[_0x3efc04]=_0x31e462,_0x532a3c['find']('#current-char-limit-rules')['attr']('data-rules',JSON['stringify'](_0x2e383c)),_0x4e5b13()):toastr[_0x100e0a(0x234)](_0x100e0a(0x1d0));}),_0x532a3c['on'](_0x8c843a(0x310),_0x8c843a(0x1c3),function(){const _0x541d58=_0x8c843a,_0x390e70=$(this)[_0x541d58(0x1b1)](_0x541d58(0x2ee)),_0x4a45c1=JSON[_0x541d58(0x2a8)](_0x532a3c[_0x541d58(0x2cc)](_0x541d58(0x1c2))['attr'](_0x541d58(0x317))||'{}');delete _0x4a45c1[_0x390e70],_0x532a3c[_0x541d58(0x2cc)](_0x541d58(0x1c2))[_0x541d58(0x226)](_0x541d58(0x317),JSON[_0x541d58(0x164)](_0x4a45c1)),_0x4e5b13();}),_0x532a3c['find']('.popup-button-ok')['on'](_0x8c843a(0x310),()=>{const _0x2996a9=_0x8c843a,_0x2102aa=JSON[_0x2996a9(0x2a8)](_0x532a3c[_0x2996a9(0x2cc)](_0x2996a9(0x1c2))[_0x2996a9(0x226)](_0x2996a9(0x317))||'{}'),_0x3002c1=parseInt(_0x532a3c['find'](_0x2996a9(0x22a))[_0x2996a9(0x2aa)](),0xa),_0x18424b={'note':_0x532a3c[_0x2996a9(0x2cc)](_0x2996a9(0x223))[_0x2996a9(0x2aa)](),'rule_add':_0x532a3c[_0x2996a9(0x2cc)](_0x2996a9(0x282))[_0x2996a9(0x2aa)](),'rule_delete':_0x532a3c[_0x2996a9(0x2cc)](_0x2996a9(0x2ed))[_0x2996a9(0x2aa)](),'rule_update':_0x532a3c[_0x2996a9(0x2cc)](_0x2996a9(0x328))['val'](),'charLimitRules':_0x2102aa,'rowLimitRule':_0x3002c1};_0x3ab42['updateTableRules'](_0x5be7ee,_0x18424b),_0x1c43dc();}),_0x532a3c[_0x8c843a(0x2cc)](_0x8c843a(0x1e0))['on'](_0x8c843a(0x310),_0x1c43dc),_0x532a3c[0x0][_0x8c843a(0x24c)]();}function bindInjectionSettings(){const _0x2fd596=_0x1d3fcf,_0x111fd0=extension_settings[extensionName],_0x44c843=document[_0x2fd596(0x303)](_0x2fd596(0x1bf)),_0x49bf08=document[_0x2fd596(0x303)](_0x2fd596(0x2b1)),_0xe8c31d=document['getElementById']('table-injection-position'),_0x12e7fb=document['getElementById'](_0x2fd596(0x313)),_0x53c674=document['querySelectorAll'](_0x2fd596(0x335));if(!_0x44c843||!_0x49bf08||!_0xe8c31d||!_0x12e7fb||!_0x53c674['length'])return;const _0x230c89=()=>{const _0x29ecf6=_0x2fd596,_0x114a51=_0xe8c31d['value'],_0x5c5f4b=_0x44c843[_0x29ecf6(0x28d)],_0x364f6e=_0x114a51==='1';_0x49bf08['disabled']=!_0x5c5f4b,_0xe8c31d[_0x29ecf6(0x31d)]=!_0x5c5f4b,_0x12e7fb[_0x29ecf6(0x31d)]=!_0x5c5f4b||!_0x364f6e,_0x53c674[_0x29ecf6(0x29d)](_0xfb3210=>_0xfb3210[_0x29ecf6(0x31d)]=!_0x5c5f4b||!_0x364f6e);const _0x3bcad0=_0x5c5f4b?'1':_0x29ecf6(0x233);_0x49bf08[_0x29ecf6(0x255)]['opacity']=_0x3bcad0;_0x49bf08[_0x29ecf6(0x26f)](_0x29ecf6(0x1d3))&&(_0x49bf08[_0x29ecf6(0x26f)]('.control-block-with-switch')[_0x29ecf6(0x255)]['opacity']=_0x3bcad0);_0xe8c31d[_0x29ecf6(0x255)][_0x29ecf6(0x1d7)]=_0x3bcad0;_0xe8c31d[_0x29ecf6(0x344)]&&(_0xe8c31d[_0x29ecf6(0x344)]['style'][_0x29ecf6(0x1d7)]=_0x3bcad0);const _0x1d2d44=_0x5c5f4b&&_0x364f6e?'1':_0x29ecf6(0x233);_0x12e7fb[_0x29ecf6(0x255)][_0x29ecf6(0x1d7)]=_0x1d2d44;_0x12e7fb[_0x29ecf6(0x344)]&&(_0x12e7fb[_0x29ecf6(0x344)][_0x29ecf6(0x255)][_0x29ecf6(0x1d7)]=_0x1d2d44);const _0x5cb4a8=_0x5c5f4b&&_0x364f6e?'1':_0x29ecf6(0x233),_0x61d6c3=document[_0x29ecf6(0x303)](_0x29ecf6(0x2a5))?.[_0x29ecf6(0x26f)](_0x29ecf6(0x2af));_0x61d6c3&&(_0x61d6c3['style']['opacity']=_0x5cb4a8,_0x61d6c3[_0x29ecf6(0x344)]&&(_0x61d6c3[_0x29ecf6(0x344)][_0x29ecf6(0x255)][_0x29ecf6(0x1d7)]=_0x5cb4a8));const _0x1f0e07=document['querySelectorAll'](_0x29ecf6(0x295));_0x1f0e07[_0x29ecf6(0x29d)](_0x5134a7=>{const _0x2a4617=_0x29ecf6;_0x5134a7[_0x2a4617(0x31d)]=!_0x5c5f4b;const _0x24024a=_0x5134a7[_0x2a4617(0x26f)](_0x2a4617(0x33e));_0x24024a&&(_0x24024a['style'][_0x2a4617(0x1d7)]=_0x5c5f4b?'1':_0x2a4617(0x233));});const _0x60920b=document['getElementById'](_0x29ecf6(0x2df));_0x60920b&&(_0x60920b[_0x29ecf6(0x31d)]=!_0x5c5f4b,_0x60920b[_0x29ecf6(0x255)][_0x29ecf6(0x1d7)]=_0x5c5f4b?'1':_0x29ecf6(0x233));};_0x44c843[_0x2fd596(0x28d)]=_0x111fd0[_0x2fd596(0x348)]!==![],_0x49bf08[_0x2fd596(0x28d)]=_0x111fd0['table_injection_enabled'],_0xe8c31d[_0x2fd596(0x15a)]=_0x111fd0['injection'][_0x2fd596(0x2f7)],_0x12e7fb[_0x2fd596(0x15a)]=_0x111fd0[_0x2fd596(0x21f)]['depth'],_0x53c674['forEach'](_0xb8088b=>{const _0x32489d=_0x2fd596;parseInt(_0xb8088b['value'],0xa)===_0x111fd0['injection'][_0x32489d(0x1ea)]&&(_0xb8088b[_0x32489d(0x28d)]=!![]);}),_0x230c89(),_0x44c843[_0x2fd596(0x196)](_0x2fd596(0x26e),()=>{const _0x308e21=_0x2fd596;_0x111fd0['table_system_enabled']=_0x44c843[_0x308e21(0x28d)],saveSettingsDebounced(),_0x230c89();const _0x32bda3=_0x44c843[_0x308e21(0x28d)]?_0x308e21(0x159):_0x308e21(0x349);toastr['info'](_0x308e21(0x338)+_0x32bda3+'。'),log(_0x308e21(0x338)+_0x32bda3+'。',_0x308e21(0x234));}),_0x49bf08[_0x2fd596(0x196)](_0x2fd596(0x26e),()=>{const _0x1700bb=_0x2fd596;_0x111fd0[_0x1700bb(0x27c)]=_0x49bf08['checked'],saveSettingsDebounced();}),_0xe8c31d[_0x2fd596(0x196)](_0x2fd596(0x26e),()=>{const _0x504b14=_0x2fd596;_0x111fd0[_0x504b14(0x21f)][_0x504b14(0x2f7)]=parseInt(_0xe8c31d['value'],0xa),saveSettingsDebounced(),_0x230c89();}),_0x12e7fb[_0x2fd596(0x196)](_0x2fd596(0x25d),()=>{const _0x5de9b7=_0x2fd596;_0x111fd0[_0x5de9b7(0x21f)][_0x5de9b7(0x342)]=parseInt(_0x12e7fb['value'],0xa),saveSettingsDebounced();}),_0x53c674[_0x2fd596(0x29d)](_0x7aabf7=>{const _0x1c76b7=_0x2fd596;_0x7aabf7[_0x1c76b7(0x196)](_0x1c76b7(0x26e),()=>{const _0x4475d5=_0x1c76b7;_0x7aabf7[_0x4475d5(0x28d)]&&(_0x111fd0['injection'][_0x4475d5(0x1ea)]=parseInt(_0x7aabf7[_0x4475d5(0x15a)],0xa),saveSettingsDebounced());});}),log(_0x2fd596(0x16d),_0x2fd596(0x2e0));}function updateAndSaveTableSetting(_0x2ffee2,_0x21457e){!extension_settings[extensionName]&&(extension_settings[extensionName]={}),extension_settings[extensionName][_0x2ffee2]=_0x21457e,saveSettingsDebounced();}function bindWorldBookSettings(){const _0x1498a3=_0x1d3fcf,_0x22863b=extension_settings[extensionName];if(_0x22863b[_0x1498a3(0x180)]===undefined)_0x22863b[_0x1498a3(0x180)]=![];if(_0x22863b[_0x1498a3(0x259)]===undefined)_0x22863b[_0x1498a3(0x259)]=0x7530;if(_0x22863b[_0x1498a3(0x1a3)]===undefined)_0x22863b[_0x1498a3(0x1a3)]=_0x1498a3(0x261);if(_0x22863b[_0x1498a3(0x333)]===undefined)_0x22863b[_0x1498a3(0x333)]=[];if(_0x22863b['table_selected_entries']===undefined)_0x22863b['table_selected_entries']={};const _0x2e00cd=document[_0x1498a3(0x303)](_0x1498a3(0x180)),_0x5cb37d=document[_0x1498a3(0x303)](_0x1498a3(0x259)),_0x5e3c76=document[_0x1498a3(0x303)](_0x1498a3(0x320)),_0x2f7cbe=document[_0x1498a3(0x20c)]('input[name=\x22table_worldbook_source\x22]'),_0x288f46=document['getElementById'](_0x1498a3(0x306)),_0x395755=document[_0x1498a3(0x303)](_0x1498a3(0x2ce)),_0xef431f=document[_0x1498a3(0x303)](_0x1498a3(0x2a3)),_0x37ea83=document[_0x1498a3(0x303)](_0x1498a3(0x1c4));if(!_0x2e00cd||!_0x5cb37d||!_0x5e3c76||!_0x2f7cbe[_0x1498a3(0x2e6)]||!_0x288f46||!_0x395755||!_0xef431f||!_0x37ea83){log(_0x1498a3(0x2ac),_0x1498a3(0x2e1));return;}const _0x3bf7ad=()=>{const _0x3b0059=_0x1498a3,_0x2f8886={};_0x37ea83[_0x3b0059(0x20c)](_0x3b0059(0x296))[_0x3b0059(0x29d)](_0x3e7ed1=>{const _0xabf5db=_0x3b0059,_0x30d073=_0x3e7ed1[_0xabf5db(0x275)][_0xabf5db(0x1ac)],_0x2da4f9=_0x3e7ed1[_0xabf5db(0x275)][_0xabf5db(0x183)];!_0x2f8886[_0x30d073]&&(_0x2f8886[_0x30d073]=[]),_0x2f8886[_0x30d073]['push'](_0x2da4f9);}),_0x22863b[_0x3b0059(0x1f3)]=_0x2f8886,saveSettingsDebounced();},_0x46f366=async()=>{const _0x2dbcbf=_0x1498a3;_0x37ea83[_0x2dbcbf(0x2d0)]='

加载条目中...

';const _0x39b8e5=_0x22863b[_0x2dbcbf(0x1a3)]||'character';let _0x510857=[];if(_0x39b8e5==='manual')_0x510857=_0x22863b[_0x2dbcbf(0x333)]||[];else{if(this_chid!==undefined&&this_chid>=0x0&&characters[this_chid])try{const _0x30ec7e=await safeCharLorebooks({'type':_0x2dbcbf(0x15c)});if(_0x30ec7e[_0x2dbcbf(0x1b7)])_0x510857[_0x2dbcbf(0x32e)](_0x30ec7e[_0x2dbcbf(0x1b7)]);if(_0x30ec7e[_0x2dbcbf(0x23c)]?.[_0x2dbcbf(0x2e6)])_0x510857[_0x2dbcbf(0x32e)](..._0x30ec7e[_0x2dbcbf(0x23c)]);}catch(_0x1f266f){console[_0x2dbcbf(0x31f)]('[内存储司]\x20获取角色世界书失败:',_0x1f266f),_0x37ea83['innerHTML']=_0x2dbcbf(0x2e3);return;}else{_0x37ea83['innerHTML']=_0x2dbcbf(0x272);return;}}if(_0x510857['length']===0x0){_0x37ea83[_0x2dbcbf(0x2d0)]=_0x2dbcbf(0x316);return;}try{const _0x3c7695=[];for(const _0x22e8ec of _0x510857){const _0x17801e=await safeLorebookEntries(_0x22e8ec);_0x17801e['forEach'](_0x12f0ec=>_0x3c7695[_0x2dbcbf(0x32e)]({..._0x12f0ec,'bookName':_0x22e8ec}));}_0x37ea83['innerHTML']='';if(_0x3c7695[_0x2dbcbf(0x2e6)]===0x0){_0x37ea83['innerHTML']=_0x2dbcbf(0x2c3);return;}_0x3c7695['forEach'](_0x4c49e1=>{const _0x560963=_0x2dbcbf,_0x2c4ebe=document[_0x560963(0x266)](_0x560963(0x163));_0x2c4ebe[_0x560963(0x202)]=_0x560963(0x155),_0x2c4ebe[_0x560963(0x22e)]=_0x560963(0x2de)+_0x4c49e1[_0x560963(0x2ab)]+_0x560963(0x1ef)+_0x4c49e1[_0x560963(0x183)];const _0x6cf560=document[_0x560963(0x266)](_0x560963(0x25d));_0x6cf560['type']=_0x560963(0x182),_0x6cf560['id']=_0x560963(0x1aa)+_0x4c49e1[_0x560963(0x2ab)]+'-'+_0x4c49e1[_0x560963(0x183)],_0x6cf560['dataset'][_0x560963(0x1ac)]=_0x4c49e1[_0x560963(0x2ab)],_0x6cf560[_0x560963(0x275)][_0x560963(0x183)]=_0x4c49e1[_0x560963(0x183)];const _0x537387=_0x22863b[_0x560963(0x1f3)][_0x4c49e1[_0x560963(0x2ab)]]?.[_0x560963(0x2f5)](String(_0x4c49e1[_0x560963(0x183)]));_0x6cf560[_0x560963(0x28d)]=!!_0x537387;const _0x23135b=document[_0x560963(0x266)](_0x560963(0x33e));_0x23135b[_0x560963(0x278)]=_0x6cf560['id'],_0x23135b[_0x560963(0x1d1)]=_0x4c49e1['comment']||_0x560963(0x33c),_0x2c4ebe['appendChild'](_0x6cf560),_0x2c4ebe[_0x560963(0x222)](_0x23135b),_0x37ea83['appendChild'](_0x2c4ebe);});}catch(_0x491f11){console['error']('[内存储司]\x20加载世界书条目失败:',_0x491f11),_0x37ea83['innerHTML']=_0x2dbcbf(0x294);}},_0x251ecb=()=>{const _0x56fd95=_0x1498a3,_0xf846ec=world_names[_0x56fd95(0x2b9)](_0xd82dec=>({'name':_0xd82dec[_0x56fd95(0x301)](_0x56fd95(0x2d5),''),'file_name':_0xd82dec}));_0xef431f[_0x56fd95(0x2d0)]='',_0xf846ec&&_0xf846ec[_0x56fd95(0x2e6)]>0x0?_0xf846ec[_0x56fd95(0x29d)](_0x235612=>{const _0x3ad173=_0x56fd95,_0x253ad7=document['createElement'](_0x3ad173(0x163));_0x253ad7[_0x3ad173(0x202)]='checkbox-item',_0x253ad7[_0x3ad173(0x22e)]=_0x235612[_0x3ad173(0x210)];const _0x21b36f=document[_0x3ad173(0x266)](_0x3ad173(0x25d));_0x21b36f[_0x3ad173(0x24e)]=_0x3ad173(0x182),_0x21b36f['id']=_0x3ad173(0x1cd)+_0x235612[_0x3ad173(0x23d)],_0x21b36f['value']=_0x235612[_0x3ad173(0x23d)],_0x21b36f[_0x3ad173(0x28d)]=_0x22863b[_0x3ad173(0x333)]['includes'](_0x235612[_0x3ad173(0x23d)]),_0x21b36f[_0x3ad173(0x196)](_0x3ad173(0x26e),()=>{const _0x4e0b95=_0x3ad173;_0x21b36f[_0x4e0b95(0x28d)]?!_0x22863b[_0x4e0b95(0x333)][_0x4e0b95(0x2f5)](_0x235612[_0x4e0b95(0x23d)])&&_0x22863b[_0x4e0b95(0x333)][_0x4e0b95(0x32e)](_0x235612[_0x4e0b95(0x23d)]):_0x22863b[_0x4e0b95(0x333)]=_0x22863b['table_selected_worldbooks']['filter'](_0x5ef317=>_0x5ef317!==_0x235612['file_name']),saveSettingsDebounced(),_0x46f366();});const _0x442e8e=document[_0x3ad173(0x266)](_0x3ad173(0x33e));_0x442e8e['htmlFor']=_0x3ad173(0x1cd)+_0x235612['file_name'],_0x442e8e[_0x3ad173(0x1d1)]=_0x235612['name'],_0x253ad7[_0x3ad173(0x222)](_0x21b36f),_0x253ad7[_0x3ad173(0x222)](_0x442e8e),_0xef431f[_0x3ad173(0x222)](_0x253ad7);}):_0xef431f[_0x56fd95(0x2d0)]=_0x56fd95(0x280),_0x46f366();},_0x1d4f06=()=>{const _0x4f3931=_0x1498a3,_0x4f489d=_0x22863b[_0x4f3931(0x1a3)]===_0x4f3931(0x16a);_0x288f46['style'][_0x4f3931(0x2c4)]=_0x4f489d?_0x4f3931(0x2bd):'none',_0x46f366(),_0x4f489d&&_0x251ecb();};_0x2e00cd[_0x1498a3(0x28d)]=_0x22863b[_0x1498a3(0x180)],_0x5cb37d[_0x1498a3(0x15a)]=_0x22863b[_0x1498a3(0x259)],_0x5e3c76['textContent']=_0x22863b[_0x1498a3(0x259)],_0x2f7cbe['forEach'](_0x42a327=>{const _0x328585=_0x1498a3;_0x42a327[_0x328585(0x28d)]=_0x42a327[_0x328585(0x15a)]===_0x22863b['table_worldbook_source'];}),_0x1d4f06(),_0x2e00cd[_0x1498a3(0x196)](_0x1498a3(0x26e),()=>{_0x22863b['table_worldbook_enabled']=_0x2e00cd['checked'],saveSettingsDebounced();}),_0x5cb37d[_0x1498a3(0x196)]('input',()=>{const _0x3f69da=_0x1498a3;_0x5e3c76[_0x3f69da(0x1d1)]=_0x5cb37d[_0x3f69da(0x15a)];}),_0x5cb37d['addEventListener']('change',()=>{const _0x3157dd=_0x1498a3;_0x22863b[_0x3157dd(0x259)]=parseInt(_0x5cb37d[_0x3157dd(0x15a)],0xa),saveSettingsDebounced();}),_0x2f7cbe[_0x1498a3(0x29d)](_0x491077=>{const _0x30669b=_0x1498a3;_0x491077[_0x30669b(0x196)](_0x30669b(0x26e),()=>{const _0x169550=_0x30669b;_0x491077['checked']&&(_0x22863b['table_worldbook_source']=_0x491077[_0x169550(0x15a)],_0x1d4f06(),saveSettingsDebounced());});}),_0x395755['addEventListener'](_0x1498a3(0x310),_0x251ecb),_0x37ea83[_0x1498a3(0x196)](_0x1498a3(0x26e),_0x133875=>{const _0x23b72b=_0x1498a3;_0x133875[_0x23b72b(0x21d)]['type']===_0x23b72b(0x182)&&_0x3bf7ad();}),log(_0x1498a3(0x211),_0x1498a3(0x2e0));}export function bindTableEvents(){const _0x28d7ad=_0x1d3fcf,_0x339cd2=document['getElementById'](_0x28d7ad(0x18f));if(!_0x339cd2||_0x339cd2['dataset'][_0x28d7ad(0x20d)])return;log(_0x28d7ad(0x153),_0x28d7ad(0x234));const _0x31a715=_0x339cd2[_0x28d7ad(0x20c)]('input[name=\x22filling-mode\x22]'),_0x4d5b49=document['getElementById'](_0x28d7ad(0x270)),_0x38ce16=document[_0x28d7ad(0x303)](_0x28d7ad(0x2f3)),_0x4f9138=document[_0x28d7ad(0x303)]('context-reading-value'),_0x125ed3=document[_0x28d7ad(0x303)](_0x28d7ad(0x204)),_0x5677fa=document['getElementById'](_0x28d7ad(0x2b5)),_0x2be367=document[_0x28d7ad(0x303)](_0x28d7ad(0x322)),_0x1366da=()=>{const _0x122370=_0x28d7ad,_0x2f1bc7=extension_settings[extensionName]?.['filling_mode']||_0x122370(0x2c1);_0x31a715[_0x122370(0x29d)](_0x85f068=>{const _0x59490a=_0x122370;_0x85f068[_0x59490a(0x28d)]=_0x85f068['value']===_0x2f1bc7;});const _0x2f554a=_0x2f1bc7===_0x122370(0x2fe);_0x4d5b49&&(_0x4d5b49[_0x122370(0x255)]['display']=_0x2f554a?_0x122370(0x2bd):_0x122370(0x1a8)),_0x125ed3&&(_0x125ed3[_0x122370(0x255)][_0x122370(0x2c4)]=_0x122370(0x285)),_0x5677fa&&_0x2be367&&(_0x2be367[_0x122370(0x255)][_0x122370(0x2c4)]=_0x5677fa[_0x122370(0x28d)]?_0x122370(0x2bd):_0x122370(0x1a8));};_0x31a715[_0x28d7ad(0x29d)](_0x317fa2=>{const _0x84da22=_0x28d7ad;_0x317fa2['addEventListener'](_0x84da22(0x26e),function(){const _0x3e6737=_0x84da22,_0x1277ad=this['value'];updateAndSaveTableSetting(_0x3e6737(0x336),_0x1277ad);let _0xbd17e1=_0x3e6737(0x19f);if(_0x1277ad===_0x3e6737(0x2fe))_0xbd17e1=_0x3e6737(0x329);if(_0x1277ad===_0x3e6737(0x1fe))_0xbd17e1=_0x3e6737(0x198);toastr[_0x3e6737(0x234)](_0x3e6737(0x150)+_0xbd17e1+'。'),_0x1366da();});});if(_0x38ce16&&_0x4f9138){const _0x2812f1=extension_settings[extensionName]?.[_0x28d7ad(0x31c)]||0x4;_0x38ce16['value']=_0x2812f1,_0x4f9138[_0x28d7ad(0x1d1)]=_0x2812f1,_0x38ce16['addEventListener'](_0x28d7ad(0x25d),function(){const _0x5b7c1a=_0x28d7ad;_0x4f9138['textContent']=this[_0x5b7c1a(0x15a)];}),_0x38ce16[_0x28d7ad(0x196)](_0x28d7ad(0x26e),function(){const _0x55d3b1=_0x28d7ad;updateAndSaveTableSetting(_0x55d3b1(0x31c),parseInt(this[_0x55d3b1(0x15a)],0xa)),toastr['info']('上下文读取级别已设置为\x20'+this['value']+'。');});}_0x5677fa&&(_0x5677fa[_0x28d7ad(0x28d)]=extension_settings[extensionName]?.['table_independent_rules_enabled']??![],_0x5677fa[_0x28d7ad(0x196)](_0x28d7ad(0x26e),()=>{const _0x54d618=_0x28d7ad;updateAndSaveTableSetting(_0x54d618(0x20e),_0x5677fa[_0x54d618(0x28d)]),_0x1366da();}));_0x1366da();_0x2be367&&_0x2be367[_0x28d7ad(0x196)](_0x28d7ad(0x310),openTableRuleEditor);const _0x5acbe5=()=>{renderTables(),bindInjectionSettings(),bindTemplateEditors();};_0x5acbe5(),bindWorldBookSettings(),bindBatchFillButton(),bindFloorFillButtons(),bindReorganizeButton(),bindTemplateEditors(),bindNccsApiEvents(),bindChatTableDisplaySetting();const _0x38a1ad=document[_0x28d7ad(0x1d6)](_0x28d7ad(0x2c8));_0x38a1ad&&_0x38a1ad[_0x28d7ad(0x196)](_0x28d7ad(0x310),_0x2ac7ed=>{const _0x351786=_0x28d7ad,_0x327841=_0x2ac7ed[_0x351786(0x21d)][_0x351786(0x26f)]('.sinan-nav-item');if(!_0x327841)return;const _0xe74625=_0x327841['dataset']['tab'];if(!_0xe74625)return;const _0x1c154c=_0x327841['closest']('.settings-group');if(!_0x1c154c)return;_0x1c154c['querySelectorAll'](_0x351786(0x166))[_0x351786(0x29d)](_0x28b3bc=>_0x28b3bc[_0x351786(0x257)][_0x351786(0x24d)](_0x351786(0x14e))),_0x327841[_0x351786(0x257)][_0x351786(0x32a)](_0x351786(0x14e)),_0x1c154c[_0x351786(0x20c)](_0x351786(0x169))[_0x351786(0x29d)](_0x1d567b=>_0x1d567b[_0x351786(0x257)]['remove']('active'));const _0x4cf30b=_0x1c154c[_0x351786(0x1d6)]('#sinan-'+_0xe74625+_0x351786(0x1c1));_0x4cf30b&&_0x4cf30b[_0x351786(0x257)][_0x351786(0x32a)]('active');});const _0x33f30f=document[_0x28d7ad(0x303)](_0x28d7ad(0x235)),_0x536284=document['getElementById'](_0x28d7ad(0x243)),_0x2ff911=document[_0x28d7ad(0x303)](_0x28d7ad(0x2e2)),_0xb2a658=document[_0x28d7ad(0x303)](_0x28d7ad(0x308)),_0x3a2c08=document[_0x28d7ad(0x303)](_0x28d7ad(0x1d9));_0x33f30f&&_0x33f30f[_0x28d7ad(0x196)](_0x28d7ad(0x310),()=>_0x3ab42['exportPreset']());_0x536284&&_0x536284[_0x28d7ad(0x196)](_0x28d7ad(0x310),()=>_0x3ab42[_0x28d7ad(0x17b)]());_0x2ff911&&_0x2ff911[_0x28d7ad(0x196)]('click',()=>_0x3ab42['importPreset'](_0x5acbe5));_0xb2a658&&_0xb2a658[_0x28d7ad(0x196)](_0x28d7ad(0x310),()=>{const _0x30b3e4=_0x28d7ad,_0x3bd2f4=_0x3ab42['isCurrentTablesEmpty']();_0x3ab42[_0x30b3e4(0x29f)](()=>{_0x3bd2f4&&(_0x3ab42['loadTables'](),_0x5acbe5());});});_0x3a2c08&&_0x3a2c08[_0x28d7ad(0x196)](_0x28d7ad(0x310),()=>{const _0x4baea4=_0x28d7ad,_0x139ab1=_0x3ab42[_0x4baea4(0x253)]();_0x3ab42[_0x4baea4(0x28a)](),_0x139ab1&&(_0x3ab42['loadTables'](),_0x5acbe5());});const _0x30c6d6=document['getElementById'](_0x28d7ad(0x1e4));_0x30c6d6&&_0x30c6d6[_0x28d7ad(0x196)](_0x28d7ad(0x310),()=>{const _0x79bc1f=_0x28d7ad;confirm(_0x79bc1f(0x1c8))&&(_0x3ab42[_0x79bc1f(0x209)](),_0x5acbe5());});const _0x3671c3=document['getElementById'](_0x28d7ad(0x157));_0x3671c3&&_0x3671c3[_0x28d7ad(0x196)](_0x28d7ad(0x310),()=>{const _0x24d335=_0x28d7ad,_0x29c331=prompt(_0x24d335(0x305),'新表格');_0x29c331&&_0x29c331['trim']()&&(_0x3ab42[_0x24d335(0x188)](_0x29c331[_0x24d335(0x1c7)]()),_0x5acbe5());});const _0x49a16a=getAllTablesContainer();if(_0x49a16a){_0x49a16a['addEventListener'](_0x28d7ad(0x310),_0x2db4f4=>{const _0x3b5dcb=_0x28d7ad,_0x2dc244=_0x2db4f4[_0x3b5dcb(0x21d)][_0x3b5dcb(0x26f)]('th');if(_0x2dc244&&_0x2dc244[_0x3b5dcb(0x257)][_0x3b5dcb(0x2dd)](_0x3b5dcb(0x2cf))){toggleHeaderIndexContextMenu(_0x2db4f4);return;}if(_0x2dc244&&!_0x2dc244[_0x3b5dcb(0x257)]['contains'](_0x3b5dcb(0x2cf))){toggleColumnContextMenu(_0x2db4f4);return;}const _0x55f1ec=_0x2db4f4['target'][_0x3b5dcb(0x26f)](_0x3b5dcb(0x260));if(_0x55f1ec){toggleRowContextMenu(_0x2db4f4);return;}const _0x43e220=_0x2db4f4[_0x3b5dcb(0x21d)][_0x3b5dcb(0x26f)](_0x3b5dcb(0x1cf));if(_0x43e220){const _0x5a981b=parseInt(_0x43e220[_0x3b5dcb(0x275)][_0x3b5dcb(0x229)],0xa),_0x365fc1=_0x3ab42[_0x3b5dcb(0x25b)](),_0x2464c=_0x365fc1[_0x5a981b]?.['name']||'';showTableNameEditor(_0x5a981b,_0x2464c);return;}const _0x17db28=_0x2db4f4[_0x3b5dcb(0x21d)][_0x3b5dcb(0x26f)](_0x3b5dcb(0x21b));if(!_0x17db28)return;const _0x289365=parseInt(_0x17db28[_0x3b5dcb(0x275)][_0x3b5dcb(0x229)],0xa);if(_0x17db28['matches'](_0x3b5dcb(0x1ba)))_0x3ab42[_0x3b5dcb(0x252)](_0x289365),_0x5acbe5();else{if(_0x17db28[_0x3b5dcb(0x2db)]('.add-col-btn'))_0x3ab42[_0x3b5dcb(0x207)](_0x289365),_0x5acbe5();else{if(_0x17db28[_0x3b5dcb(0x2db)](_0x3b5dcb(0x1a5))||_0x17db28[_0x3b5dcb(0x2db)](_0x3b5dcb(0x2bf))){const _0x38d852=_0x17db28[_0x3b5dcb(0x257)][_0x3b5dcb(0x2dd)](_0x3b5dcb(0x1dc))?'up':_0x3b5dcb(0x168);_0x3ab42[_0x3b5dcb(0x17c)](_0x289365,_0x38d852),_0x5acbe5();}else{if(_0x17db28[_0x3b5dcb(0x2db)](_0x3b5dcb(0x1e1)))openRuleEditor(_0x289365);else{if(_0x17db28[_0x3b5dcb(0x2db)](_0x3b5dcb(0x30c))){const _0x2db85b=_0x3ab42[_0x3b5dcb(0x25b)](),_0x578074=_0x2db85b[_0x289365]?.[_0x3b5dcb(0x210)]||'未知表格';confirm(_0x3b5dcb(0x1f5)+_0x578074+_0x3b5dcb(0x315))&&(_0x3ab42['deleteTable'](_0x289365),_0x5acbe5());}}}}}});if(isTouchDevice()){let _0x1ea68c=0x0,_0x2fadc8=null;_0x49a16a[_0x28d7ad(0x196)]('touchstart',_0x432997=>{const _0x25e80b=_0x28d7ad,_0x205b23=_0x432997[_0x25e80b(0x21d)][_0x25e80b(0x26f)]('td');if(!_0x205b23||_0x205b23['dataset']['colIndex']===undefined)return;const _0x2ec73b=new Date()[_0x25e80b(0x27f)](),_0x31e24c=_0x2ec73b-_0x1ea68c;_0x31e24c<0x12c&&_0x31e24c>0x0&&_0x2fadc8===_0x205b23&&(_0x432997[_0x25e80b(0x1dd)](),_0x205b23[_0x25e80b(0x218)](_0x25e80b(0x1ee))!==_0x25e80b(0x18c)&&(_0x205b23[_0x25e80b(0x2f9)](_0x25e80b(0x1ee),'true'),setTimeout(()=>_0x205b23[_0x25e80b(0x298)](),0x0))),_0x1ea68c=_0x2ec73b,_0x2fadc8=_0x205b23;});}_0x49a16a[_0x28d7ad(0x196)](_0x28d7ad(0x345),_0x3dee6e=>{const _0x3b64d0=_0x28d7ad,_0x23786b=_0x3dee6e[_0x3b64d0(0x21d)];if(_0x23786b[_0x3b64d0(0x2ca)]!=='TD'||_0x23786b[_0x3b64d0(0x218)](_0x3b64d0(0x1ee))!==_0x3b64d0(0x18c))return;isTouchDevice()&&_0x23786b['setAttribute'](_0x3b64d0(0x1ee),'false');const _0xd9bbc7=_0x23786b[_0x3b64d0(0x26f)]('table');if(!_0xd9bbc7)return;const _0x5ac41a=parseInt(_0xd9bbc7['dataset']['tableIndex'],0xa),_0x45fb92=parseInt(_0x23786b['closest']('tr')[_0x3b64d0(0x275)]['rowIndex'],0xa),_0x110e29=parseInt(_0x23786b[_0x3b64d0(0x275)][_0x3b64d0(0x228)],0xa),_0x588854=_0x23786b[_0x3b64d0(0x1d1)],_0x26808f=_0xd9bbc7[_0x3b64d0(0x26f)](_0x3b64d0(0x24b)),_0x247815=_0x26808f?_0x26808f[_0x3b64d0(0x23e)]:0x0,_0x441df3=_0x49a16a['scrollTop'];_0x3ab42[_0x3b64d0(0x219)](_0x5ac41a,_0x45fb92,_0x110e29);const _0x34a586={[_0x110e29]:_0x588854};_0x3ab42['updateRow'](_0x5ac41a,_0x45fb92,_0x34a586),_0x5acbe5();const _0x4385b3=document['getElementById'](_0x3b64d0(0x1f8)+_0x5ac41a)?.[_0x3b64d0(0x26f)](_0x3b64d0(0x24b));_0x4385b3&&(_0x4385b3[_0x3b64d0(0x23e)]=_0x247815),_0x49a16a[_0x3b64d0(0x1f9)]=_0x441df3;},!![]);}_0x339cd2[_0x28d7ad(0x275)][_0x28d7ad(0x20d)]='true',log(_0x28d7ad(0x247),_0x28d7ad(0x2e0)),eventSource['on'](event_types[_0x28d7ad(0x2ff)],()=>{const _0x4269f7=_0x28d7ad;console[_0x4269f7(0x214)]('['+extensionName+_0x4269f7(0x30a)),_0x5acbe5(),setTimeout(()=>{const _0x515dec=_0x4269f7,_0x1116d6=extension_settings[extensionName];if(_0x1116d6&&_0x1116d6[_0x515dec(0x180)])try{bindWorldBookSettings(),console['log']('['+extensionName+_0x515dec(0x1a0));}catch(_0x3f8ddb){console['error']('['+extensionName+_0x515dec(0x15e),_0x3f8ddb);}},0x64);});}function bindBatchFillButton(){const _0x4ff377=_0x1d3fcf,_0x3a8cd3=document[_0x4ff377(0x303)](_0x4ff377(0x2df));if(_0x3a8cd3){if(_0x3a8cd3['dataset'][_0x4ff377(0x2ef)])return;_0x3a8cd3[_0x4ff377(0x196)](_0x4ff377(0x310),_0xc53e8e=>{const _0x70275c=_0x4ff377,_0x1c6953=extension_settings[extensionName],_0x434f50=_0x1c6953[_0x70275c(0x348)]!==![];if(!_0x434f50){_0xc53e8e['preventDefault'](),toastr[_0x70275c(0x327)](_0x70275c(0x1b8));return;}startBatchFilling();}),_0x3a8cd3[_0x4ff377(0x275)]['batchEventBound']='true',log(_0x4ff377(0x31a),'success');}}function bindReorganizeButton(){const _0x5662e1=_0x1d3fcf,_0x4e7e10=document[_0x5662e1(0x303)](_0x5662e1(0x2e4));if(_0x4e7e10){if(_0x4e7e10['dataset'][_0x5662e1(0x245)])return;_0x4e7e10[_0x5662e1(0x196)](_0x5662e1(0x310),async _0x3f127b=>{const _0x361d4e=_0x5662e1,_0x7d06e7=extension_settings[extensionName],_0x59aab2=_0x7d06e7[_0x361d4e(0x348)]!==![];if(!_0x59aab2){_0x3f127b[_0x361d4e(0x1dd)](),toastr[_0x361d4e(0x327)]('表格系统总开关已关闭,请先启用总开关。');return;}try{const {reorganizeTableContent:_0x2b91f8}=await import(_0x361d4e(0x311));await _0x2b91f8();}catch(_0x1c3ce2){console[_0x361d4e(0x31f)](_0x361d4e(0x191),_0x1c3ce2),toastr[_0x361d4e(0x31f)](_0x361d4e(0x2e8));}}),_0x4e7e10['dataset']['reorganizeEventBound']=_0x5662e1(0x18c),log(_0x5662e1(0x300),'success');}}function bindFloorFillButtons(){const _0x54a330=_0x1d3fcf,_0x7d423a=document[_0x54a330(0x303)](_0x54a330(0x156)),_0xcbd255=document[_0x54a330(0x303)](_0x54a330(0x1ab)),_0xd7d177=document[_0x54a330(0x303)](_0x54a330(0x27b));if(_0x7d423a){if(_0x7d423a[_0x54a330(0x275)][_0x54a330(0x28f)])return;_0x7d423a[_0x54a330(0x196)](_0x54a330(0x310),_0x1e3329=>{const _0x293e0c=_0x54a330,_0x215a03=extension_settings[extensionName],_0x3e68b6=_0x215a03[_0x293e0c(0x348)]!==![];if(!_0x3e68b6){_0x1e3329[_0x293e0c(0x1dd)](),toastr[_0x293e0c(0x327)](_0x293e0c(0x1b8));return;}const _0x52852b=document['getElementById'](_0x293e0c(0x32d)),_0x200b68=document[_0x293e0c(0x303)](_0x293e0c(0x18d)),_0x15c464=parseInt(_0x52852b[_0x293e0c(0x15a)],0xa),_0x5e6e44=parseInt(_0x200b68[_0x293e0c(0x15a)],0xa);if(!_0x15c464||!_0x5e6e44){toastr[_0x293e0c(0x327)](_0x293e0c(0x1f7));return;}if(_0x15c464>_0x5e6e44){toastr[_0x293e0c(0x327)](_0x293e0c(0x312));return;}if(_0x15c464<0x1){toastr['warning'](_0x293e0c(0x279));return;}import(_0x293e0c(0x2f4))['then'](_0x5cb63d=>{_0x5cb63d['startFloorRangeFilling'](_0x15c464,_0x5e6e44);});}),_0x7d423a[_0x54a330(0x275)]['floorEventBound']=_0x54a330(0x18c),log(_0x54a330(0x29a),_0x54a330(0x2e0));}if(_0xcbd255){if(_0xcbd255[_0x54a330(0x275)][_0x54a330(0x2a1)])return;_0xcbd255[_0x54a330(0x196)]('click',_0x1793d1=>{const _0x515510=_0x54a330,_0x218afa=extension_settings[extensionName],_0xe00a27=_0x218afa['table_system_enabled']!==![];if(!_0xe00a27){_0x1793d1[_0x515510(0x1dd)](),toastr['warning'](_0x515510(0x1b8));return;}import(_0x515510(0x2f4))['then'](_0x2ed051=>{const _0x495c61=_0x515510;_0x2ed051[_0x495c61(0x203)]();});}),_0xcbd255[_0x54a330(0x275)][_0x54a330(0x2a1)]=_0x54a330(0x18c),log('\x22填当前楼层\x22按钮已成功绑定。',_0x54a330(0x2e0));}if(_0xd7d177){if(_0xd7d177[_0x54a330(0x275)][_0x54a330(0x297)])return;_0xd7d177[_0x54a330(0x196)]('click',async _0x2dcb55=>{const _0x148de6=_0x54a330,_0x1ee5ce=extension_settings[extensionName],_0x3bed7c=_0x1ee5ce[_0x148de6(0x348)]!==![];if(!_0x3bed7c){_0x2dcb55[_0x148de6(0x1dd)](),toastr[_0x148de6(0x327)](_0x148de6(0x1b8));return;}if(confirm(_0x148de6(0x14f)))try{await _0x3ab42[_0x148de6(0x1fd)]();}catch(_0x4990e7){console[_0x148de6(0x31f)](_0x148de6(0x286),_0x4990e7),toastr[_0x148de6(0x31f)](_0x148de6(0x326));}}),_0xd7d177['dataset'][_0x54a330(0x297)]=_0x54a330(0x18c),log(_0x54a330(0x1f6),_0x54a330(0x2e0));}}function bindTemplateEditors(){const _0x91a511=_0x1d3fcf,_0x242c8b=document[_0x91a511(0x303)]('ai-rule-template-editor'),_0x17ed21=document[_0x91a511(0x303)](_0x91a511(0x1bb)),_0x10b8ec=document[_0x91a511(0x303)](_0x91a511(0x2d1)),_0x52668c=document[_0x91a511(0x303)]('ai-flow-template-editor'),_0x24d1bd=document[_0x91a511(0x303)](_0x91a511(0x283)),_0x12bd19=document[_0x91a511(0x303)]('ai-flow-template-restore-btn');if(!_0x242c8b||!_0x52668c){log(_0x91a511(0x2fa),_0x91a511(0x2e1));return;}_0x242c8b['value']=_0x3ab42[_0x91a511(0x20b)](),_0x52668c['value']=_0x3ab42[_0x91a511(0x1e6)](),_0x17ed21[_0x91a511(0x196)](_0x91a511(0x310),()=>{const _0x59bdef=_0x91a511;_0x3ab42[_0x59bdef(0x16c)](_0x242c8b['value']),toastr[_0x59bdef(0x2e0)](_0x59bdef(0x246)),log(_0x59bdef(0x19d),_0x59bdef(0x2e0));}),_0x24d1bd[_0x91a511(0x196)](_0x91a511(0x310),()=>{const _0x4bcf68=_0x91a511;_0x3ab42[_0x4bcf68(0x330)](_0x52668c[_0x4bcf68(0x15a)]),toastr[_0x4bcf68(0x2e0)](_0x4bcf68(0x1cc)),log(_0x4bcf68(0x291),_0x4bcf68(0x2e0));}),_0x10b8ec[_0x91a511(0x196)](_0x91a511(0x310),()=>{const _0x233aae=_0x91a511;confirm(_0x233aae(0x197))&&(_0x242c8b['value']=DEFAULT_AI_RULE_TEMPLATE,_0x3ab42[_0x233aae(0x16c)](_0x242c8b['value']),toastr[_0x233aae(0x234)](_0x233aae(0x237)),log(_0x233aae(0x193),_0x233aae(0x234)));}),_0x12bd19[_0x91a511(0x196)](_0x91a511(0x310),()=>{const _0x5a64b4=_0x91a511;confirm(_0x5a64b4(0x28b))&&(_0x52668c['value']=DEFAULT_AI_FLOW_TEMPLATE,_0x3ab42[_0x5a64b4(0x330)](_0x52668c['value']),toastr[_0x5a64b4(0x234)](_0x5a64b4(0x1f2)),log(_0x5a64b4(0x325),_0x5a64b4(0x234)));}),log('指令模板编辑器已成功绑定。',_0x91a511(0x2e0));}function bindNccsApiEvents(){const _0x374ef3=_0x1d3fcf,_0xa8c59f=extension_settings[extensionName];if(_0xa8c59f[_0x374ef3(0x176)]===undefined)_0xa8c59f[_0x374ef3(0x176)]=![];if(_0xa8c59f['nccsApiMode']===undefined)_0xa8c59f['nccsApiMode']=_0x374ef3(0x2b6);if(_0xa8c59f[_0x374ef3(0x186)]===undefined)_0xa8c59f[_0x374ef3(0x186)]=_0x374ef3(0x268);if(_0xa8c59f[_0x374ef3(0x21c)]===undefined)_0xa8c59f[_0x374ef3(0x21c)]='';if(_0xa8c59f[_0x374ef3(0x2ba)]===undefined)_0xa8c59f[_0x374ef3(0x2ba)]='';if(_0xa8c59f[_0x374ef3(0x33b)]===undefined)_0xa8c59f['nccsMaxTokens']=0x7d0;if(_0xa8c59f[_0x374ef3(0x151)]===undefined)_0xa8c59f[_0x374ef3(0x151)]=0.7;if(_0xa8c59f[_0x374ef3(0x1c6)]===undefined)_0xa8c59f[_0x374ef3(0x1c6)]='';const _0x46d7fa=document['getElementById'](_0x374ef3(0x258)),_0x139975=document[_0x374ef3(0x303)](_0x374ef3(0x19e)),_0x506a9c=document[_0x374ef3(0x303)](_0x374ef3(0x254)),_0x523d40=document[_0x374ef3(0x303)](_0x374ef3(0x2ad)),_0x39595d=document['getElementById'](_0x374ef3(0x208)),_0x3d9646=document[_0x374ef3(0x303)]('nccs-api-model'),_0x1a5429=document[_0x374ef3(0x303)]('nccs-max-tokens'),_0x2733b6=document[_0x374ef3(0x303)](_0x374ef3(0x2a2)),_0x5da5ea=document[_0x374ef3(0x303)](_0x374ef3(0x1ec)),_0x332108=document['getElementById'](_0x374ef3(0x2d8)),_0x39c6cf=document['getElementById'](_0x374ef3(0x290)),_0x2e5f07=document[_0x374ef3(0x303)](_0x374ef3(0x18a)),_0x507fe8=document[_0x374ef3(0x303)](_0x374ef3(0x1cb));if(!_0x46d7fa||!_0x139975)return;_0x46d7fa[_0x374ef3(0x28d)]=_0xa8c59f[_0x374ef3(0x176)];if(_0x506a9c)_0x506a9c['value']=_0xa8c59f[_0x374ef3(0x27e)];if(_0x523d40)_0x523d40[_0x374ef3(0x15a)]=_0xa8c59f['nccsApiUrl'];if(_0x39595d)_0x39595d[_0x374ef3(0x15a)]=_0xa8c59f[_0x374ef3(0x21c)];if(_0x3d9646)_0x3d9646['value']=_0xa8c59f[_0x374ef3(0x2ba)];if(_0x1a5429){_0x1a5429[_0x374ef3(0x15a)]=_0xa8c59f['nccsMaxTokens'];if(_0x2733b6)_0x2733b6[_0x374ef3(0x1d1)]=_0xa8c59f[_0x374ef3(0x33b)];}if(_0x5da5ea){_0x5da5ea[_0x374ef3(0x15a)]=_0xa8c59f[_0x374ef3(0x151)];if(_0x332108)_0x332108[_0x374ef3(0x1d1)]=_0xa8c59f[_0x374ef3(0x151)];}if(_0x39c6cf)_0x39c6cf['value']=_0xa8c59f[_0x374ef3(0x1c6)]||'';const _0x588af2=()=>{const _0xc3d96c=_0x374ef3;_0x139975[_0xc3d96c(0x255)][_0xc3d96c(0x2c4)]=_0x46d7fa[_0xc3d96c(0x28d)]?_0xc3d96c(0x2bd):_0xc3d96c(0x1a8);};_0x588af2();const _0x482d07=()=>{const _0x236688=_0x374ef3;if(!_0x506a9c)return;const _0x368c4a=_0x506a9c[_0x236688(0x15a)]===_0x236688(0x24a),_0x35ad6c=_0x506a9c['value']===_0x236688(0x2b6),_0xe44eb4=_0x39c6cf?.[_0x236688(0x26f)](_0x236688(0x190));_0xe44eb4&&(_0xe44eb4[_0x236688(0x255)][_0x236688(0x2c4)]=_0x368c4a?'block':'none');const _0x1b1790=[{'element':_0x523d40,'containerId':null},{'element':_0x39595d,'containerId':null},{'element':_0x3d9646,'containerId':null},{'element':_0x1a5429,'containerId':null},{'element':_0x5da5ea,'containerId':null}];_0x1b1790[_0x236688(0x29d)](({element:_0x1ce605})=>{const _0x4180cc=_0x236688;if(_0x1ce605){const _0x1663f9=_0x1ce605[_0x4180cc(0x26f)](_0x4180cc(0x190));_0x1663f9&&(_0x1663f9[_0x4180cc(0x255)]['display']=_0x368c4a?_0x4180cc(0x1a8):_0x4180cc(0x2bd));}});const _0x41a662=_0x2e5f07?.[_0x236688(0x26f)](_0x236688(0x1f0));_0x41a662&&(_0x41a662[_0x236688(0x255)][_0x236688(0x2c4)]=_0x236688(0x285));};_0x482d07(),_0x46d7fa[_0x374ef3(0x196)](_0x374ef3(0x26e),()=>{const _0x211aca=_0x374ef3;_0xa8c59f[_0x211aca(0x176)]=_0x46d7fa[_0x211aca(0x28d)],saveSettingsDebounced(),_0x588af2(),log(_0x211aca(0x241)+(_0x46d7fa[_0x211aca(0x28d)]?_0x211aca(0x159):'已禁用'),'info');});_0x506a9c&&_0x506a9c['addEventListener'](_0x374ef3(0x26e),()=>{const _0x38a92f=_0x374ef3;_0xa8c59f[_0x38a92f(0x27e)]=_0x506a9c['value'],saveSettingsDebounced(),_0x482d07(),log(_0x38a92f(0x1f4)+_0x506a9c[_0x38a92f(0x15a)],'info');});if(_0x523d40){const _0x229dfe=()=>{const _0x84ace1=_0x374ef3;_0xa8c59f[_0x84ace1(0x186)]=_0x523d40[_0x84ace1(0x15a)],saveSettingsDebounced();};_0x523d40['addEventListener'](_0x374ef3(0x345),_0x229dfe);}if(_0x39595d){const _0x14973a=()=>{const _0x4cefd5=_0x374ef3;_0xa8c59f['nccsApiKey']=_0x39595d[_0x4cefd5(0x15a)],saveSettingsDebounced();};_0x39595d[_0x374ef3(0x196)](_0x374ef3(0x345),_0x14973a);}if(_0x3d9646){const _0x207cc5=()=>{const _0x8e4d81=_0x374ef3;_0xa8c59f['nccsModel']=_0x3d9646[_0x8e4d81(0x15a)],saveSettingsDebounced();};_0x3d9646['addEventListener'](_0x374ef3(0x345),_0x207cc5),_0x3d9646[_0x374ef3(0x196)](_0x374ef3(0x25d),_0x207cc5);}_0x1a5429&&_0x2733b6&&(_0x1a5429[_0x374ef3(0x196)](_0x374ef3(0x25d),()=>{const _0x13d8aa=_0x374ef3;_0x2733b6[_0x13d8aa(0x1d1)]=_0x1a5429[_0x13d8aa(0x15a)];}),_0x1a5429[_0x374ef3(0x196)](_0x374ef3(0x26e),()=>{const _0x1e87d9=_0x374ef3;_0xa8c59f[_0x1e87d9(0x33b)]=parseInt(_0x1a5429['value']),saveSettingsDebounced();}));_0x5da5ea&&_0x332108&&(_0x5da5ea['addEventListener']('input',()=>{const _0x44e990=_0x374ef3;_0x332108[_0x44e990(0x1d1)]=_0x5da5ea[_0x44e990(0x15a)];}),_0x5da5ea[_0x374ef3(0x196)](_0x374ef3(0x26e),()=>{const _0x3d2f29=_0x374ef3;_0xa8c59f['nccsTemperature']=parseFloat(_0x5da5ea[_0x3d2f29(0x15a)]),saveSettingsDebounced();}));_0x39c6cf&&_0x39c6cf[_0x374ef3(0x196)](_0x374ef3(0x26e),()=>{const _0x5dde8c=_0x374ef3;_0xa8c59f[_0x5dde8c(0x1c6)]=_0x39c6cf[_0x5dde8c(0x15a)],saveSettingsDebounced();});_0x2e5f07&&_0x2e5f07[_0x374ef3(0x196)]('click',async()=>{const _0xbbcfff=_0x374ef3;_0x2e5f07[_0xbbcfff(0x31d)]=!![],_0x2e5f07[_0xbbcfff(0x2d0)]='\x20测试中...';try{const _0xafe5dc=await testNccsApiConnection();_0xafe5dc?(toastr[_0xbbcfff(0x2e0)](_0xbbcfff(0x19b)),log(_0xbbcfff(0x284),_0xbbcfff(0x2e0))):(toastr[_0xbbcfff(0x31f)](_0xbbcfff(0x292)),log(_0xbbcfff(0x175),_0xbbcfff(0x31f)));}catch(_0x4add87){toastr[_0xbbcfff(0x31f)](_0xbbcfff(0x21a)+_0x4add87['message']),log('Nccs\x20API连接测试出错:'+_0x4add87[_0xbbcfff(0x1de)],_0xbbcfff(0x31f));}finally{_0x2e5f07[_0xbbcfff(0x31d)]=![],_0x2e5f07[_0xbbcfff(0x2d0)]=_0xbbcfff(0x2f1);}});_0x507fe8&&_0x507fe8[_0x374ef3(0x196)]('click',async()=>{const _0x556539=_0x374ef3;_0x507fe8[_0x556539(0x31d)]=!![],_0x507fe8[_0x556539(0x2d0)]=_0x556539(0x271);_0x523d40&&(_0xa8c59f[_0x556539(0x186)]=_0x523d40[_0x556539(0x15a)]);_0x39595d&&(_0xa8c59f[_0x556539(0x21c)]=_0x39595d['value']);saveSettingsDebounced();try{const _0x58eed0=await fetchNccsModels();if(_0x58eed0&&_0x58eed0[_0x556539(0x2e6)]>0x0){let _0x585c6b=document[_0x556539(0x303)](_0x556539(0x1c5));!_0x585c6b&&(_0x585c6b=document[_0x556539(0x266)](_0x556539(0x23b)),_0x585c6b['id']=_0x556539(0x1c5),_0x585c6b['className']=_0x556539(0x230),_0x3d9646['parentNode']['insertBefore'](_0x585c6b,_0x3d9646['nextSibling'])),_0x585c6b['innerHTML']=_0x556539(0x2a6),_0x58eed0[_0x556539(0x29d)](_0x455396=>{const _0x30947e=_0x556539,_0x5cc609=document['createElement']('option');_0x5cc609[_0x30947e(0x15a)]=_0x455396['id']||_0x455396[_0x30947e(0x210)],_0x5cc609[_0x30947e(0x1d1)]=_0x455396['name']||_0x455396['id'],(_0x455396['id']||_0x455396[_0x30947e(0x210)])===_0xa8c59f[_0x30947e(0x2ba)]&&(_0x5cc609['selected']=!![]),_0x585c6b[_0x30947e(0x222)](_0x5cc609);}),_0x3d9646[_0x556539(0x255)][_0x556539(0x2c4)]=_0x556539(0x1a8),_0x585c6b['style']['display']=_0x556539(0x2bd),_0x585c6b[_0x556539(0x196)](_0x556539(0x26e),()=>{const _0x27818b=_0x556539,_0x42585d=_0x585c6b[_0x27818b(0x15a)];_0xa8c59f[_0x27818b(0x2ba)]=_0x42585d,_0x3d9646[_0x27818b(0x15a)]=_0x42585d,saveSettingsDebounced();}),toastr['success'](_0x556539(0x1ca)+_0x58eed0[_0x556539(0x2e6)]+_0x556539(0x25a)),log(_0x556539(0x201)+_0x58eed0['length']+_0x556539(0x25a),_0x556539(0x2e0));}else toastr[_0x556539(0x327)](_0x556539(0x192)),log('Nccs\x20API未获取到可用模型','warn');}catch(_0x2d005f){toastr[_0x556539(0x31f)](_0x556539(0x346)+_0x2d005f[_0x556539(0x1de)]),log(_0x556539(0x274)+_0x2d005f[_0x556539(0x1de)],_0x556539(0x31f));}finally{_0x507fe8[_0x556539(0x31d)]=![],_0x507fe8[_0x556539(0x2d0)]=_0x556539(0x31b);}});const _0x233d42=async()=>{const _0x5ce4fd=_0x374ef3;if(!_0x39c6cf)return;try{const _0x457fdb=getContext();if(!_0x457fdb?.[_0x5ce4fd(0x244)]?.[_0x5ce4fd(0x2fc)]?.['profiles'])throw new Error(_0x5ce4fd(0x189));const _0x2f5780=_0x457fdb[_0x5ce4fd(0x244)]['connectionManager'][_0x5ce4fd(0x216)],_0x3937f9=_0xa8c59f[_0x5ce4fd(0x1c6)];_0x39c6cf[_0x5ce4fd(0x2d0)]='',_0x39c6cf[_0x5ce4fd(0x222)](new Option(_0x5ce4fd(0x2c5),'',![],![])),_0x2f5780&&_0x2f5780[_0x5ce4fd(0x2e6)]>0x0?(_0x2f5780['forEach'](_0x160fda=>{const _0x5e9733=_0x5ce4fd,_0x3bd05c=_0x160fda['id']===_0x3937f9,_0x375436=new Option(_0x160fda[_0x5e9733(0x210)],_0x160fda['id'],_0x3bd05c,_0x3bd05c);_0x39c6cf['appendChild'](_0x375436);}),log(_0x5ce4fd(0x1eb)+_0x2f5780['length']+_0x5ce4fd(0x2f6),_0x5ce4fd(0x2e0))):log(_0x5ce4fd(0x1df),_0x5ce4fd(0x2e1));}catch(_0x3ff537){log(_0x5ce4fd(0x1c9)+_0x3ff537['message'],'error');}};_0x506a9c&&_0x39c6cf&&(_0x506a9c[_0x374ef3(0x196)]('change',()=>{const _0x747793=_0x374ef3;_0x506a9c[_0x747793(0x15a)]==='sillytavern_preset'&&_0x233d42();}),_0xa8c59f[_0x374ef3(0x27e)]===_0x374ef3(0x24a)&&_0x233d42()),log(_0x374ef3(0x33a),_0x374ef3(0x2e0));}function _0x2b0c(){const _0x48e847=['table-updated','map','nccsModel','Header\x20#\x20clicked\x20for\x20table','2px','block','所选世界书中没有条目。

','display','选择预设','delete-row','restore-row','#amily2_memorisation_forms_panel\x20.sinan-navigation-deck','justifyContent','tagName','marginTop','find','100%','table_refresh_worldbooks','index-col','innerHTML','ai-rule-template-restore-btn','columnIndex','\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20提示:输入内容将用于更新项目。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20取消\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20确认\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20','\x22\x20title=\x22废黜此表\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20','.json','overflowY','moveRow','nccs-temperature-value','#add-exclusion-rule-btn','limit','matches','获取角色世界书失败。

','reorganize-table-btn','th.amily2-menu-open','length','width','重新整理功能启动失败,请检查系统状态。','.remove-rule-btn','deleteColumn','createTBody','add-row-below-btn','#rule-delete','col-index','batchEventBound','touch','\x20测试连接','您确定要删除\x20“','context-reading-slider','../core/table-system/batch-filler.js','includes','\x20个SillyTavern配置文件','position','innerHeight','setAttribute','无法找到指令模板编辑器,绑定失败。','\x22\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22padding:\x2010px;\x20border-radius:\x206px;\x20border:\x201px\x20solid\x20rgba(255,255,255,0.3);\x20background:\x20rgba(0,0,0,0.2);\x20color:\x20#fff;\x20font-size:\x201em;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20placeholder=\x22','connectionManager','amily2-cell-content','secondary-api','CHAT_CHANGED','\x22重新整理\x22按钮已成功绑定。','replace','alignItems','getElementById','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20--\x20选择要添加规则的列\x20--\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','.delete-table-btn','table_tags_to_extract','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','keypress','click','../core/table-system/reorganizer.js','起始楼层不能大于结束楼层。','table-injection-depth','move-up',']”\x20吗?此操作不可逆!','未选择或绑定世界书。

','data-rules','charLimitRules','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20添加规则\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20移除所有被起始和结束标记包裹的内容(例如\x20OOC\x20部分)。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20','\x22立即填表\x22按钮已成功绑定。','\x20获取模型','context_reading_level','disabled','rows','error','table_worldbook_char_limit_value','已添加第一行','table-configure-rules-btn','列名已更新为\x20\x22','restore-row-btn','批量填表-流程提示词已恢复默认。','回退重填失败,请检查系统状态。','warning','#rule-update','分步填表','add','fa-arrow-down','rowLimitRule','floor-start-input','push','fa-arrow-right','saveBatchFillerFlowTemplate','','聊天内表格显示设置及其依赖关系已成功绑定。','table_selected_worldbooks','add-above','input[name=\x22table-injection-role\x22]','filling_mode','在右加列','表格系统总开关','left','Nccs\x20API事件绑定完成','nccsMaxTokens','无标题条目','table-controls','label','amily2-menu-open','visible','表名:','depth','编辑表名','previousElementSibling','blur','获取模型失败:','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20【删除】:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','table_system_enabled','已禁用','insertColumn','active','您确定要将表格状态回退到上一楼,并使用最新消息重新填表吗?','填表模式已切换为\x20','nccsTemperature','\x22\x20title=\x22上移\x22>','开始为表格视图绑定交互事件...','charLimitRule','checkbox-item','fill-selected-floors-btn','add-table-placeholder','touches','已启用','value','配置独立提取规则','all','move-left',']\x20刷新世界书设置时出错:','amily2-context-menu\x20amily2-row-context-menu','move-down','note','
:\x20不超过\x20','div','stringify','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20标签提取\x20(半角逗号分隔)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x22\x20placeholder=\x22例如:\x20content,game,time\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20仅提取指定XML标签的内容,例如填“content”,即提取...中的内容。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','addEventListener','您确定要将规则提示词恢复为默认设置吗?','优化中填表','rowIndex','\x22\x20style=\x22width:\x20100px;\x20margin-top:\x2010px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20当表格总行数超过设定值时,将在表格底部显示警告。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20【说明】:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Nccs\x20API连接测试成功!','编辑列名','批量填表-规则提示词已保存。','nccs-api-config','原始填表',']\x20世界书设置已刷新','rule_update','add-right','table_worldbook_source','持续渲染最新消息功能已','.move-table-up-btn','close','auto','none','。请切换聊天以应用更改。','wb-entry-check-','fill-current-floor-btn','book','zIndex','end','touchend','show-table-in-chat-toggle','data','min','\x20创建第一行','top','”\x20的规则\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20内容长度限制\x20(0为禁用)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','.rule-end','primary','表格系统总开关已关闭,请先启用总开关。','10585162sKJUue','.add-row-btn','ai-rule-template-save-btn','add-row-above-btn','div[style*=\x22overflowX\x22]','amily2-menu-active','table-system-master-switch','1194614dhYecy','-tab','#current-char-limit-rules','.remove-char-limit-rule-btn','table_worldbook_entry_list','nccs-api-model-select','nccsTavernProfile','trim','【确认】您确定要清空所有表格的剧情内容吗?此操作将保留表格结构,但会删除所有已填写的行。','加载SillyTavern预设失败:','成功获取\x20','nccs-fetch-models','流程提示词已保存。','wb-check-','20560bmPwhX','.table-rename-icon','字数限制为0表示不设置规则。','textContent','未知列\x20(','.control-block-with-switch','relative','\x22>\x20','querySelector','opacity','[内存储司-工部]\x20缺少表格数据或容器,无法渲染。','amily2-clear-global-preset-btn','delete','moveColumn','move-table-up-btn','preventDefault','message','未找到可用的SillyTavern配置文件','.popup-button-cancel','.edit-rules-btn','#add-char-limit-rule-btn','deleteRow','amily2-clear-all-tables-btn','all-tables-container','getBatchFillerFlowTemplate','.exclusion-rule-item','mousemove','join','role','成功加载\x20','nccs-temperature','cursor','contenteditable','\x0aUID:\x20','.nccs-button-row','parentElement','流程提示词已恢复为默认。','table_selected_entries','Nccs\x20API模式已切换为:\x20','【最终警告】您确定要永久废黜表格\x20“[','\x22回退重填\x22按钮已成功绑定。','请输入有效的起始楼层和结束楼层。','amily2-table-','scrollTop','cellIndex','名称不能为空!','表名已更新为\x20\x22','rollbackAndRefill','optimized','startsWith','insertCell','Nccs\x20API获取到\x20','className','startCurrentFloorFilling','table-independent-rules-container','show_table_in_chat','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20保存\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20取消\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20','addColumn','nccs-api-key','clearAllTables','\x22\x20placeholder=\x22起始标记\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20col:nth-child(','injection','insertRow','body','appendChild','#rule-note','columnWidths','pointer','attr','#new-rule-column-select','colIndex','tableIndex','#rule-row-limit-value','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20【修改】:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','fa-arrow-left','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','title','matchMedia','text_pole','11358XHfzle','\x22\x20title=\x22下移\x22>','0.5','info','amily2-export-preset-btn','span','规则提示词已恢复为默认。','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20获取中...','请先加载一个角色。

','entries','Nccs\x20API获取模型失败:','dataset','向右移动','getHighlights','htmlFor','楼层不能小于1。','clientX','rollback-and-refill-btn','table_injection_enabled','rule_delete','nccsApiMode','getTime','没有找到世界书。

','rowStatuses','#rule-add','ai-flow-template-save-btn','Nccs\x20API连接测试成功','flex','[内存储司]\x20回退重填功能失败:','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','”\x20列吗?','toggle','clearGlobalPreset','您确定要将流程提示词恢复为默认设置吗?','rename','checked','3322814ftyQdj','floorEventBound','nccs-sillytavern-preset','批量填表-流程提示词已保存。','Nccs\x20API连接测试失败,请检查配置','请输入表名...','加载条目失败。

','input[name=\x22filling-mode\x22]','input[type=\x22checkbox\x22]:checked','rollbackEventBound','focus','add-below','\x22选定楼层填表\x22按钮已成功绑定。','render_on_every_message','has','forEach','向上移动','importGlobalPreset','table','currentEventBound','nccs-max-tokens-value','table_worldbook_checkbox_list','removeEventListener','table-role-system','--\x20请选择模型\x20--','恢复该行','parse','col','val','bookName','无法找到世界书设置的相关UI元素,绑定失败。','nccs-api-url','appendTo','.radio-group','在下加行','table-injection-enabled','amily2-table-wrapper','\x22\x20placeholder=\x22结束标记\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20','{const _0x411de5=_0x3dd8be;_0x5e5786[_0x411de5(0x28d)]?(_0x54a5d0['disabled']=![],_0x54a5d0[_0x411de5(0x26f)]('.control-block-with-switch')['style']['opacity']='1'):(_0x54a5d0[_0x411de5(0x31d)]=!![],_0x54a5d0['closest'](_0x411de5(0x1d3))[_0x411de5(0x255)][_0x411de5(0x1d7)]=_0x411de5(0x233));};_0x1b9627(),_0x5e5786[_0x3dd8be(0x196)](_0x3dd8be(0x26e),()=>{const _0x4f65b2=_0x3dd8be;_0x3dbb40['show_table_in_chat']=_0x5e5786[_0x4f65b2(0x28d)],saveSettingsDebounced(),toastr['info']('聊天内表格显示已'+(_0x5e5786['checked']?'开启':'关闭')+'。'),_0x1b9627();}),_0x54a5d0[_0x3dd8be(0x196)](_0x3dd8be(0x26e),()=>{const _0x331027=_0x3dd8be;_0x3dbb40[_0x331027(0x29b)]=_0x54a5d0['checked'],saveSettingsDebounced(),toastr[_0x331027(0x234)](_0x331027(0x1a4)+(_0x54a5d0[_0x331027(0x28d)]?'开启':'关闭')+_0x331027(0x1a9));}),log(_0x3dd8be(0x332),_0x3dd8be(0x2e0));} From 7ee83826d14e57c0a3d8021f73710cb7596981a1 Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:03:09 +0800 Subject: [PATCH 08/32] Update manager.js --- core/table-system/manager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/table-system/manager.js b/core/table-system/manager.js index aeade93..1548e27 100644 --- a/core/table-system/manager.js +++ b/core/table-system/manager.js @@ -1 +1 @@ -const _0xddd662=_0x1489;(function(_0x271c7e,_0x142fa2){const _0x52ef9f=_0x1489,_0x575db5=_0x271c7e();while(!![]){try{const _0x221ee6=-parseInt(_0x52ef9f(0x2c2))/0x1*(parseInt(_0x52ef9f(0x23f))/0x2)+-parseInt(_0x52ef9f(0x272))/0x3+parseInt(_0x52ef9f(0x2a0))/0x4+parseInt(_0x52ef9f(0x281))/0x5+parseInt(_0x52ef9f(0x219))/0x6*(parseInt(_0x52ef9f(0x21c))/0x7)+-parseInt(_0x52ef9f(0x24c))/0x8+parseInt(_0x52ef9f(0x27e))/0x9;if(_0x221ee6===_0x142fa2)break;else _0x575db5['push'](_0x575db5['shift']());}catch(_0xd08797){_0x575db5['push'](_0x575db5['shift']());}}}(_0x1c91,0x66b46));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{fillWithSecondaryApi}from'./secondary-filler.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';function _0x1c91(){const _0x28d39c=['AI指令错误:尝试在不存在的表格索引\x20','\x20的第\x20','map','5901816mhKbRy','状态回退失败,已中止操作。','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','拥有者','amily2_ai_template','回退重填过程中发生错误:\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。','name','没有可导出的表格数据。','操作完成','【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','rule_delete','onload','执行AI指令:\x20updateRow(tableIndex=','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','...]','readAsText','新列\x20','所有AI指令已成功执行完毕。','length','导入的预设已强制写入最新消息并立即保存。','mes',']\x20在第\x20','无法导出:当前表格状态为空。','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','\x20的表格。','toString','新列\x201','rows','amily2-force-ui-reload','click','\x22\x20的表格已存在。','accept','设置成功',')超出规定(','导入全局预设失败:\x20','batch_filler_rule_template','缺少状态或目标消息,无法保存。','2162607XKSlSF','\x20中找不到索引为\x20','成功在表格\x20','\x20条消息中找到基准表格数据。','AI返回内容为空,无法更新表格。','Amily2-Table-Preset-v3.0-separated_templates','正在执行回退并重新填表...','revokeObjectURL','表格状态已准备写入消息\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记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','fromCharCode','13485537WGmjpr','\x20行已删除。','chat','2647625diJpXw','任务栏','已清除所有单元格高亮标记。','执行者','message','columnWidths','type','全局预设已设置!新聊天将默认使用此预设。',')行以下,但切莫完全删除。】','执行AI指令:\x20insertRow(tableIndex=','\x0a---\x0a','filter','Amily2-','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','Amily2-Table-Preset-v2.0-clean','\x20列。','表格\x20[','target','slice','全局预设已清除,新聊天将使用默认模板。','UI已更新以显示回退后的状态。','\x20行位置插入了新行。','未知操作','below','\x20行移动到第\x20','状态回退成功,准备重新填表...','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。',']\x20的规则已更新。','replace','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','getPrototypeOf','158944yddSIu','成功将表格\x20','回退状态保存失败,操作中止。','number','version','全局预设已成功导入并保存到扩展设置中。',')行(','纯净预设','其他重要信息','substring','toISOString',']\x20新增了一列。','】已成功导出。','在第\x20','\x20行。','extra','\x20列的','onchange','技能效果','clear','全局预设已被清除。','文件格式无效或缺少版本号/表格数据。','runner',')\x20的第\x20','tables','appendChild','【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','未在AI返回内容中找到有效的\x20\x20指令块。','input','success','charLimitRule','\x0a*\x20','无法移动表格:索引\x20','constructor','7sEnrwu','准备执行从AI返回的\x20','object','aiRuleTemplate','result',']\x20的表头“','【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','导入失败:','无需清除,当前未设置任何全局预设。','】已开始下载。','从预设模板生成默认表格...','导入成功','rule_update','导入操作已取消。','重命名失败:名称不能为空。','splice','【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','charLimitRules',')字限制,请进行缩减。】','global_table_preset','【修改】:\x20','导入的表格数据格式不正确:\x20','limit','删除列失败:在表格\x20','【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','aiTemplate','batchFillerFlowTemplate','fill','填表完成','info','files','执行AI指令时出错:\x20','stringify','size','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','预设已成功导入!',']\x20的列“',',\x20rowIndex=','amily2_tables_data','batchFillerRuleTemplate','【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','用户取消了导入操作。','无法移动列:索引\x20','【当前(','forEach','表格不存在。','trim','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','无法创建表格:名称不能为空。','重命名失败:表格不存在。','表格顺序调整后的状态已强制写入最新消息并立即保存。','createObjectURL','重要原因','执行AI指令时发生错误:\x20','正在尝试从第\x20','\x22\x20已更新内存状态。','join','\x20条消息加载表格状态...','重命名失败:名为\x20\x22','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。',']\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任务完成或失败后的最终结果。','body','\x20(索引\x20','left','AI\x20指令更新了表格\x20[','【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。',']\x20末尾新增一行。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','\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','file',']\x20的顺序已调整。','表格名称不能为空。','.json','some','执行失败','rowLimitRule','这是一个新创建的表格。',')第(','error','parse','headers','回退并重新填表操作完成。','移动。','名为\x20\x22','every','columnIndex','\x22\x20已重命名为\x20\x22','injectionFlowTemplate','插入行失败:找不到索引为\x20','download','导入预设失败:\x20','【增加】:\x20','角色名','(该表当前内容为空)\x0a','物品栏','\x20中操作。','任务名','warning','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','12PVtutP','用户取消了全局预设导入操作。','导出成功','341103FNmmaX','aiFlowTemplate','技能名','无法创建表格:名为\x20\x22','UI操作\x20\x22','confirm','创建失败','),已智能转换为在表格\x20[','push','已根据AI的指示成功更新表格!','与关系','href','插入了新列。','”已向','AI指令块为空,无需执行任何操作。','Amily2-Table-Preset-v2.0-full','导入的预设中缺少指令模板字段,模板将不会被更新。','AI指令意图更新不存在的行\x20(rowIndex:\x20',']\x20的第\x20','时空栏','所有表格的剧情内容已清空。','note','操作已取消。',')列,字符超出规定(','isArray','重命名失败','dispatchEvent','warn','function',',\x20data=','createElement','此地角色','”已更新为“','操作成功','技能栏','81668DEPdaq','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','当前没有设置全局预设。','用户取消了清除全局预设的操作。','batch_filler_flow_template','已成功将回退后的状态保存至最新消息。','未在聊天记录中找到表格,正在加载全局预设...','设定栏','rule_add',')行,请结合剧情缩减至('];_0x1c91=function(){return _0x28d39c;};return _0x1c91();}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=_0xddd662(0x1da);let currentTablesState=null,highlightedCells=new Set();export function addHighlight(_0x23877c,_0xde3965,_0x44b11){const _0x4e69b1=_0x23877c+'-'+_0xde3965+'-'+_0x44b11;highlightedCells['add'](_0x4e69b1);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x53a8bd=_0xddd662;highlightedCells[_0x53a8bd(0x1d5)]>0x0&&(highlightedCells[_0x53a8bd(0x2b3)](),log(_0x53a8bd(0x283),_0x53a8bd(0x1d1)));}export function setMemoryState(_0x44f735){currentTablesState=_0x44f735;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0xddd662(0x22f),'headers':['日期','时段','时间','地点',_0xddd662(0x23b)],'note':'【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\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分隔。','rule_add':_0xddd662(0x29e),'rule_delete':_0xddd662(0x264),'rule_update':_0xddd662(0x29b),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':'角色栏','headers':[_0xddd662(0x212),'外貌','身形','衣着','性格','身份','职业',_0xddd662(0x226),'爱好','住所',_0xddd662(0x2a8)],'note':_0xddd662(0x27c),'rule_add':_0xddd662(0x1cb),'rule_delete':_0xddd662(0x2ca),'rule_update':'【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0xddd662(0x282),'headers':[_0xddd662(0x216),'类型','详情','状态',_0xddd662(0x284),'地点','开始时间/结束时间','结果'],'note':_0xddd662(0x1f2),'rule_add':'【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','rule_delete':_0xddd662(0x1f0),'rule_update':_0xddd662(0x2d4),'charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0xddd662(0x214),'headers':['物品名','类型','详情','状态',_0xddd662(0x24f),_0xddd662(0x1e9)],'note':_0xddd662(0x252),'rule_add':'【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','rule_delete':_0xddd662(0x1f7),'rule_update':_0xddd662(0x256),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0xddd662(0x23e),'headers':[_0xddd662(0x21e),_0xddd662(0x2b2)],'note':_0xddd662(0x2ba),'rule_add':_0xddd662(0x1dc),'rule_delete':_0xddd662(0x218),'rule_update':_0xddd662(0x1e4),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0xddd662(0x246),'headers':['类型','具体描述'],'note':_0xddd662(0x240),'rule_add':_0xddd662(0x2c9),'rule_delete':'【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','rule_update':_0xddd662(0x2c8),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x4a5e14=_0xddd662;log(_0x4a5e14(0x2ce),_0x4a5e14(0x1d1));const _0x13a9cb=JSON[_0x4a5e14(0x205)](JSON[_0x4a5e14(0x1d4)](defaultTemplate[_0x4a5e14(0x2b8)]));return _0x13a9cb['forEach'](_0x35c5d3=>{const _0x405468=_0x4a5e14;_0x35c5d3[_0x405468(0x2be)]={'columnIndex':-0x1,'limit':0x0},_0x35c5d3[_0x405468(0x201)]=0x0,_0x35c5d3[_0x405468(0x286)]=[];}),_0x13a9cb;}export function loadTables(_0x981a1b=-0x1){const _0x33b769=_0xddd662,_0x5d3706=getContext();if(_0x5d3706&&_0x5d3706[_0x33b769(0x280)]&&_0x5d3706['chat'][_0x33b769(0x25f)]>0x0){const _0x2f1ae4=_0x981a1b===-0x1?_0x5d3706['chat'][_0x33b769(0x25f)]-0x1:_0x981a1b-0x1;for(let _0x4be0c9=_0x2f1ae4;_0x4be0c9>=0x0;_0x4be0c9--){const _0x48eb4e=_0x5d3706[_0x33b769(0x280)][_0x4be0c9];if(_0x48eb4e[_0x33b769(0x2af)]&&_0x48eb4e[_0x33b769(0x2af)][TABLE_DATA_KEY]){log(_0x33b769(0x2ad)+_0x4be0c9+_0x33b769(0x275),_0x33b769(0x1d1));let _0x1e228f=JSON[_0x33b769(0x205)](JSON[_0x33b769(0x1d4)](_0x48eb4e[_0x33b769(0x2af)][TABLE_DATA_KEY]));return _0x1e228f[_0x33b769(0x1e1)](_0x38c974=>{const _0x313729=_0x33b769;if(_0x38c974[_0x313729(0x231)]===undefined)_0x38c974[_0x313729(0x231)]='无';if(_0x38c974['rule_add']===undefined)_0x38c974[_0x313729(0x247)]='允许';if(_0x38c974['rule_delete']===undefined)_0x38c974[_0x313729(0x257)]='允许';if(_0x38c974['rule_update']===undefined)_0x38c974['rule_update']='允许';_0x38c974[_0x313729(0x2be)]&&!_0x38c974[_0x313729(0x2d5)]&&(_0x38c974['charLimitRules']={},_0x38c974[_0x313729(0x2be)][_0x313729(0x20b)]!==-0x1&&_0x38c974[_0x313729(0x2be)]['limit']>0x0&&(_0x38c974[_0x313729(0x2d5)][_0x38c974[_0x313729(0x2be)][_0x313729(0x20b)]]=_0x38c974[_0x313729(0x2be)][_0x313729(0x1c9)]));delete _0x38c974['charLimitRule'];if(_0x38c974[_0x313729(0x201)]===undefined)_0x38c974[_0x313729(0x201)]=0x0;if(_0x38c974['columnWidths']===undefined)_0x38c974['columnWidths']=[];}),currentTablesState=_0x1e228f,currentTablesState;}}}if(extension_settings[extensionName]?.[_0x33b769(0x2d7)]){log(_0x33b769(0x245),_0x33b769(0x1d1));try{const _0x517b03=extension_settings[extensionName][_0x33b769(0x2d7)];return currentTablesState=JSON[_0x33b769(0x205)](JSON[_0x33b769(0x1d4)](_0x517b03[_0x33b769(0x2b8)])),_0x517b03[_0x33b769(0x1db)]!==undefined&&saveBatchFillerRuleTemplate(_0x517b03[_0x33b769(0x1db)]),_0x517b03[_0x33b769(0x1ce)]!==undefined&&saveBatchFillerFlowTemplate(_0x517b03[_0x33b769(0x1ce)]),currentTablesState;}catch(_0x2aed16){log('加载全局预设失败:\x20'+_0x2aed16[_0x33b769(0x285)],'error');}}return log('未找到任何表格数据或全局预设,使用默认模板。','info'),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x9428db,_0x2fe120){const _0x5b49a5=_0xddd662;if(!_0x9428db||!_0x2fe120)return log(_0x5b49a5(0x271),'error'),![];return!_0x2fe120[_0x5b49a5(0x2af)]&&(_0x2fe120[_0x5b49a5(0x2af)]={}),_0x2fe120['extra'][TABLE_DATA_KEY]=JSON[_0x5b49a5(0x205)](JSON[_0x5b49a5(0x1d4)](_0x9428db)),log(_0x5b49a5(0x27a)+_0x2fe120[_0x5b49a5(0x261)][_0x5b49a5(0x2a9)](0x0,0x14)+_0x5b49a5(0x25b),'info'),!![];}export function saveTables(_0x13ed5c=_0xddd662(0x297)){const _0xb48d64=_0xddd662;return log(_0xb48d64(0x220)+_0x13ed5c+_0xb48d64(0x1ec),_0xb48d64(0x1d1)),!![];}export function deleteColumn(_0x592b9b,_0x408a68){const _0x21ebc9=_0xddd662,_0x365ab6=getMemoryState();if(!_0x365ab6[_0x592b9b]||_0x408a68<0x0||_0x408a68>=_0x365ab6[_0x592b9b][_0x21ebc9(0x206)]['length']){log(_0x21ebc9(0x1ca)+_0x592b9b+_0x21ebc9(0x273)+_0x408a68+'\x20的列。',_0x21ebc9(0x204));return;}_0x365ab6[_0x592b9b][_0x21ebc9(0x206)][_0x21ebc9(0x2d3)](_0x408a68,0x1),_0x365ab6[_0x592b9b][_0x21ebc9(0x268)][_0x21ebc9(0x1e1)](_0x561db5=>{const _0x1a40f3=_0x21ebc9;_0x561db5[_0x1a40f3(0x25f)]>_0x408a68&&_0x561db5[_0x1a40f3(0x2d3)](_0x408a68,0x1);}),_0x365ab6[_0x592b9b][_0x21ebc9(0x286)]&&_0x365ab6[_0x592b9b][_0x21ebc9(0x286)][_0x21ebc9(0x25f)]>_0x408a68&&_0x365ab6[_0x592b9b][_0x21ebc9(0x286)]['splice'](_0x408a68,0x1),log('成功删除了表格\x20'+_0x592b9b+_0x21ebc9(0x24a)+(_0x408a68+0x1)+_0x21ebc9(0x290),_0x21ebc9(0x2bd)),saveTables(_0x365ab6);}export function moveRow(_0x28fdf6,_0x590a70,_0x4a5f2d){const _0x2107ac=_0xddd662,_0x34c9d0=getMemoryState(),_0x291a34=_0x34c9d0[_0x28fdf6];if(!_0x291a34||_0x590a70<0x0||_0x590a70>=_0x291a34[_0x2107ac(0x268)][_0x2107ac(0x25f)])return;const _0x25defe=_0x4a5f2d==='up'?_0x590a70-0x1:_0x590a70+0x1;if(_0x25defe<0x0||_0x25defe>=_0x291a34[_0x2107ac(0x268)][_0x2107ac(0x25f)])return;const [_0xf1839]=_0x291a34['rows']['splice'](_0x590a70,0x1);_0x291a34['rows']['splice'](_0x25defe,0x0,_0xf1839),log(_0x2107ac(0x2a1)+_0x28fdf6+'\x20的第\x20'+(_0x590a70+0x1)+_0x2107ac(0x299)+(_0x25defe+0x1)+_0x2107ac(0x2ae),_0x2107ac(0x2bd)),saveTables(_0x34c9d0);}export function insertRow(_0x452681,_0x4dda82,_0x4eae2c=_0xddd662(0x298)){const _0x2e02b3=_0xddd662,_0x398aee=getMemoryState(),_0xbce510=_0x398aee[_0x452681];if(!_0xbce510){log(_0x2e02b3(0x20e)+_0x452681+_0x2e02b3(0x265),_0x2e02b3(0x204));return;}let _0x21fa02;typeof _0x4dda82===_0x2e02b3(0x2a3)?_0x21fa02=_0x4eae2c==='above'?_0x4dda82:_0x4dda82+0x1:_0x21fa02=_0xbce510['rows'][_0x2e02b3(0x25f)];if(_0x21fa02<0x0)_0x21fa02=0x0;if(_0x21fa02>_0xbce510[_0x2e02b3(0x268)][_0x2e02b3(0x25f)])_0x21fa02=_0xbce510['rows'][_0x2e02b3(0x25f)];const _0x24f7fe=new Array(_0xbce510[_0x2e02b3(0x206)][_0x2e02b3(0x25f)])[_0x2e02b3(0x1cf)]('');if(typeof _0x4dda82===_0x2e02b3(0x2c4)&&_0x4dda82!==null)for(const _0x114513 in _0x4dda82){const _0x3b8520=parseInt(_0x114513,0xa);!isNaN(_0x3b8520)&&_0x3b8520<_0x24f7fe[_0x2e02b3(0x25f)]&&(_0x24f7fe[_0x3b8520]=_0x4dda82[_0x114513],addHighlight(_0x452681,_0x21fa02,_0x3b8520));}_0xbce510[_0x2e02b3(0x268)][_0x2e02b3(0x2d3)](_0x21fa02,0x0,_0x24f7fe),log(_0x2e02b3(0x274)+_0xbce510[_0x2e02b3(0x253)]+_0x2e02b3(0x1f4)+_0x452681+_0x2e02b3(0x2b7)+(_0x21fa02+0x1)+_0x2e02b3(0x296),'success');const _0x474fce=getContext();if(_0x474fce[_0x2e02b3(0x280)]&&_0x474fce['chat'][_0x2e02b3(0x25f)]>0x0){const _0xfd4bba=_0x474fce[_0x2e02b3(0x280)][_0x474fce['chat'][_0x2e02b3(0x25f)]-0x1];if(saveStateToMessage(_0x398aee,_0xfd4bba)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x118f7d){const _0x79167b=_0xddd662;if(!currentTablesState||!currentTablesState[_0x118f7d])return;const _0x2cf3ec=currentTablesState[_0x118f7d],_0x13c38d=_0x2cf3ec[_0x79167b(0x206)][_0x79167b(0x25f)],_0xf60b3d=Array(_0x13c38d)[_0x79167b(0x1cf)]('');_0x2cf3ec[_0x79167b(0x268)]['push'](_0xf60b3d);const _0xc43f65=_0x79167b(0x291)+_0x2cf3ec[_0x79167b(0x253)]+_0x79167b(0x1f1);log(_0xc43f65,_0x79167b(0x1d1));const _0x334508=getContext();if(_0x334508['chat']&&_0x334508[_0x79167b(0x280)]['length']>0x0){const _0x1c5a8b=_0x334508[_0x79167b(0x280)][_0x334508[_0x79167b(0x280)][_0x79167b(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x1c5a8b)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x357c59){const _0x19fc29=_0xddd662;if(!currentTablesState||!currentTablesState[_0x357c59])return;const _0x3846c6=currentTablesState[_0x357c59],_0x5d59e3=_0x19fc29(0x25d)+(_0x3846c6[_0x19fc29(0x206)]['length']+0x1);_0x3846c6['headers']['push'](_0x5d59e3),_0x3846c6['rows'][_0x19fc29(0x1e1)](_0x21e647=>_0x21e647['push'](''));if(!_0x3846c6[_0x19fc29(0x286)])_0x3846c6[_0x19fc29(0x286)]=[];_0x3846c6[_0x19fc29(0x286)][_0x19fc29(0x224)](null);const _0x2c18e7=_0x19fc29(0x291)+_0x3846c6[_0x19fc29(0x253)]+_0x19fc29(0x2ab);log(_0x2c18e7,_0x19fc29(0x1d1));const _0x4f8e68=getContext();if(_0x4f8e68[_0x19fc29(0x280)]&&_0x4f8e68[_0x19fc29(0x280)]['length']>0x0){const _0x78cb9a=_0x4f8e68[_0x19fc29(0x280)][_0x4f8e68[_0x19fc29(0x280)][_0x19fc29(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x78cb9a)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0xd9edf4,_0x34a900,_0x104dcc){const _0x1a7b87=_0xddd662;if(!currentTablesState||!currentTablesState[_0xd9edf4]||currentTablesState[_0xd9edf4][_0x1a7b87(0x206)][_0x34a900]===undefined)return;const _0x459365=currentTablesState[_0xd9edf4]['name'],_0x5ad3f4=currentTablesState[_0xd9edf4][_0x1a7b87(0x206)][_0x34a900];currentTablesState[_0xd9edf4]['headers'][_0x34a900]=_0x104dcc;const _0x54a9f1=_0x1a7b87(0x291)+_0x459365+_0x1a7b87(0x2c7)+_0x5ad3f4+_0x1a7b87(0x23c)+_0x104dcc+'”。';log(_0x54a9f1,_0x1a7b87(0x1d1));const _0x4ded95=getContext();if(_0x4ded95[_0x1a7b87(0x280)]&&_0x4ded95[_0x1a7b87(0x280)][_0x1a7b87(0x25f)]>0x0){const _0x252789=_0x4ded95[_0x1a7b87(0x280)][_0x4ded95[_0x1a7b87(0x280)][_0x1a7b87(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x252789)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x151d4b,_0x1aab8c){const _0x22848e=_0xddd662;if(!currentTablesState||!currentTablesState[_0x151d4b]||!currentTablesState[_0x151d4b][_0x22848e(0x268)][_0x1aab8c])return;const _0x10e220=currentTablesState[_0x151d4b]['name'];currentTablesState[_0x151d4b][_0x22848e(0x268)][_0x22848e(0x2d3)](_0x1aab8c,0x1);const _0x4921ff=_0x22848e(0x291)+_0x10e220+_0x22848e(0x22e)+(_0x1aab8c+0x1)+_0x22848e(0x27f);log(_0x4921ff,_0x22848e(0x1d1));const _0x11efcf=getContext();if(_0x11efcf[_0x22848e(0x280)]&&_0x11efcf[_0x22848e(0x280)][_0x22848e(0x25f)]>0x0){const _0x43a9c0=_0x11efcf['chat'][_0x11efcf['chat'][_0x22848e(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x43a9c0)){await saveChat();return;}}await saveChatDebounced();}export function insertColumn(_0x16df1d,_0xee8149,_0x36cae0){const _0xa5f703=_0xddd662;if(!currentTablesState||!currentTablesState[_0x16df1d])return;const _0x7dd2da=currentTablesState[_0x16df1d],_0xb2cd8c=_0x36cae0==='left'?_0xee8149:_0xee8149+0x1,_0x90a970='新列';_0x7dd2da[_0xa5f703(0x206)]['splice'](_0xb2cd8c,0x0,_0x90a970),_0x7dd2da[_0xa5f703(0x268)][_0xa5f703(0x1e1)](_0xad9605=>_0xad9605['splice'](_0xb2cd8c,0x0,''));if(!_0x7dd2da['columnWidths'])_0x7dd2da['columnWidths']=[];_0x7dd2da[_0xa5f703(0x286)][_0xa5f703(0x2d3)](_0xb2cd8c,0x0,null);const _0x48abcc=_0xa5f703(0x291)+_0x7dd2da[_0xa5f703(0x253)]+_0xa5f703(0x262)+(_0xee8149+0x1)+_0xa5f703(0x2b0)+(_0x36cae0===_0xa5f703(0x1f5)?'左侧':'右侧')+_0xa5f703(0x228);log(_0x48abcc,_0xa5f703(0x1d1));const _0x3a878e=getContext();if(_0x3a878e['chat']&&_0x3a878e[_0xa5f703(0x280)][_0xa5f703(0x25f)]>0x0){const _0x3b30b9=_0x3a878e['chat'][_0x3a878e['chat'][_0xa5f703(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x3b30b9)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x36dd23,_0x50f737,_0x1c5cd1){const _0x9db41c=_0xddd662;if(!currentTablesState||!currentTablesState[_0x36dd23])return;const _0x418989=currentTablesState[_0x36dd23],_0x222190=_0x418989['headers'],_0x2adf7c=_0x418989[_0x9db41c(0x268)],_0x5a7dc6=_0x1c5cd1===_0x9db41c(0x1f5)?_0x50f737-0x1:_0x50f737+0x1;if(_0x5a7dc6<0x0||_0x5a7dc6>=_0x222190[_0x9db41c(0x25f)]){log(_0x9db41c(0x1df)+_0x50f737+'\x20已在边界。','warn');return;}const [_0x21bcde]=_0x222190[_0x9db41c(0x2d3)](_0x50f737,0x1);_0x222190[_0x9db41c(0x2d3)](_0x5a7dc6,0x0,_0x21bcde),_0x2adf7c[_0x9db41c(0x1e1)](_0x429d66=>{const _0x148033=_0x9db41c,[_0x4850fc]=_0x429d66[_0x148033(0x2d3)](_0x50f737,0x1);_0x429d66[_0x148033(0x2d3)](_0x5a7dc6,0x0,_0x4850fc);});if(_0x418989['columnWidths']&&_0x418989['columnWidths']['length']>_0x50f737){const [_0x469775]=_0x418989[_0x9db41c(0x286)][_0x9db41c(0x2d3)](_0x50f737,0x1);_0x418989[_0x9db41c(0x286)][_0x9db41c(0x2d3)](_0x5a7dc6,0x0,_0x469775);}const _0x3a20d9=_0x9db41c(0x291)+_0x418989[_0x9db41c(0x253)]+_0x9db41c(0x1d8)+_0x21bcde+_0x9db41c(0x229)+(_0x1c5cd1===_0x9db41c(0x1f5)?'左':'右')+_0x9db41c(0x208);log(_0x3a20d9,'info');const _0x4e0275=getContext();if(_0x4e0275[_0x9db41c(0x280)]&&_0x4e0275[_0x9db41c(0x280)][_0x9db41c(0x25f)]>0x0){const _0x262194=_0x4e0275['chat'][_0x4e0275[_0x9db41c(0x280)][_0x9db41c(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x262194)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x19622c){const _0x335aba=_0xddd662;if(!currentTablesState||!currentTablesState[_0x19622c])return;const _0x10ed22=currentTablesState[_0x19622c][_0x335aba(0x253)];currentTablesState[_0x335aba(0x2d3)](_0x19622c,0x1);const _0x42116a=_0x335aba(0x291)+_0x10ed22+']\x20已被成功废黜。';log(_0x42116a,_0x335aba(0x2bd));const _0xa3332d=getContext();if(_0xa3332d[_0x335aba(0x280)]&&_0xa3332d[_0x335aba(0x280)][_0x335aba(0x25f)]>0x0){const _0x47d87e=_0xa3332d[_0x335aba(0x280)][_0xa3332d['chat'][_0x335aba(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x47d87e)){saveChat(),log('废黜表格后的状态已强制写入最新消息并立即保存。',_0x335aba(0x2bd));return;}}log(_0x335aba(0x28e),_0x335aba(0x204)),saveChatDebounced();}export function addTable(_0x3f1f96){const _0x36045e=_0xddd662;if(!_0x3f1f96||!_0x3f1f96[_0x36045e(0x1e3)]()){log(_0x36045e(0x1e5),_0x36045e(0x204)),toastr[_0x36045e(0x204)]('表格名称不能为空。',_0x36045e(0x222));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x36045e(0x1ff)](_0x82c593=>_0x82c593[_0x36045e(0x253)]===_0x3f1f96[_0x36045e(0x1e3)]())){log(_0x36045e(0x21f)+_0x3f1f96+_0x36045e(0x26b),_0x36045e(0x204)),toastr[_0x36045e(0x204)]('名为\x20\x22'+_0x3f1f96+_0x36045e(0x26b),'创建失败');return;}const _0x15b8f0={'name':_0x3f1f96[_0x36045e(0x1e3)](),'headers':[_0x36045e(0x267)],'rows':[],'columnWidths':[],'note':_0x36045e(0x202),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState[_0x36045e(0x224)](_0x15b8f0);const _0x255c35='已成功创建新表格:['+_0x3f1f96[_0x36045e(0x1e3)]()+']。';log(_0x255c35,_0x36045e(0x2bd));const _0x38206b=getContext();if(_0x38206b[_0x36045e(0x280)]&&_0x38206b[_0x36045e(0x280)][_0x36045e(0x25f)]>0x0){const _0x7cb1bc=_0x38206b[_0x36045e(0x280)][_0x38206b[_0x36045e(0x280)][_0x36045e(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x7cb1bc)){saveChat(),log('新表格状态已强制写入最新消息并立即保存。',_0x36045e(0x2bd));return;}}log(_0x36045e(0x24e),_0x36045e(0x204)),saveChatDebounced();}function _0x1489(_0x5cbf34,_0x232054){const _0x1c9136=_0x1c91();return _0x1489=function(_0x14894c,_0x625047){_0x14894c=_0x14894c-0x1c8;let _0x20e7b4=_0x1c9136[_0x14894c];return _0x20e7b4;},_0x1489(_0x5cbf34,_0x232054);}export function renameTable(_0x224cff,_0x4928d2){const _0xc2069=_0xddd662;if(!currentTablesState||!currentTablesState[_0x224cff]){log(_0xc2069(0x1e6),_0xc2069(0x204)),toastr[_0xc2069(0x204)](_0xc2069(0x1e2),_0xc2069(0x235));return;}const _0x46fa0b=_0x4928d2['trim']();if(!_0x46fa0b){log(_0xc2069(0x2d2),_0xc2069(0x204)),toastr[_0xc2069(0x204)](_0xc2069(0x1fd),_0xc2069(0x235));return;}if(currentTablesState[_0xc2069(0x1ff)]((_0x26521c,_0x23be0e)=>_0x23be0e!==_0x224cff&&_0x26521c[_0xc2069(0x253)]===_0x46fa0b)){log(_0xc2069(0x1ef)+_0x46fa0b+_0xc2069(0x26b),'error'),toastr[_0xc2069(0x204)](_0xc2069(0x209)+_0x46fa0b+_0xc2069(0x26b),'重命名失败');return;}const _0xbd9d5d=currentTablesState[_0x224cff][_0xc2069(0x253)];currentTablesState[_0x224cff][_0xc2069(0x253)]=_0x46fa0b,log('表格\x20\x22'+_0xbd9d5d+_0xc2069(0x20c)+_0x46fa0b+'\x22。',_0xc2069(0x2bd));const _0x51557a=getContext();if(_0x51557a[_0xc2069(0x280)]&&_0x51557a[_0xc2069(0x280)][_0xc2069(0x25f)]>0x0){const _0x2577f5=_0x51557a[_0xc2069(0x280)][_0x51557a[_0xc2069(0x280)][_0xc2069(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2577f5)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x51ef4d,_0x3f3765){const _0x2e3758=_0xddd662;if(!currentTablesState||!currentTablesState[_0x51ef4d])return;const _0xbcb55a=_0x3f3765==='up'?_0x51ef4d-0x1:_0x51ef4d+0x1;if(_0xbcb55a<0x0||_0xbcb55a>=currentTablesState[_0x2e3758(0x25f)]){log(_0x2e3758(0x2c0)+_0x51ef4d+'\x20已在边界。',_0x2e3758(0x237));return;}const _0x2111db=currentTablesState[_0x51ef4d];currentTablesState[_0x51ef4d]=currentTablesState[_0xbcb55a],currentTablesState[_0xbcb55a]=_0x2111db;const _0x31c107='表格\x20['+_0x2111db[_0x2e3758(0x253)]+_0x2e3758(0x1fc);log(_0x31c107,'success');const _0x42bbd7=getContext();if(_0x42bbd7['chat']&&_0x42bbd7[_0x2e3758(0x280)][_0x2e3758(0x25f)]>0x0){const _0x5dcf80=_0x42bbd7[_0x2e3758(0x280)][_0x42bbd7[_0x2e3758(0x280)][_0x2e3758(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x5dcf80)){saveChat(),log(_0x2e3758(0x1e7),_0x2e3758(0x2bd));return;}}log(_0x2e3758(0x1dd),_0x2e3758(0x204)),saveChatDebounced();}export function updateTableRules(_0x4a80a4,_0x237491){const _0x30c090=_0xddd662;if(!currentTablesState||!currentTablesState[_0x4a80a4])return;const _0x50783d=currentTablesState[_0x4a80a4];_0x50783d[_0x30c090(0x231)]=_0x237491['note'],_0x50783d[_0x30c090(0x247)]=_0x237491[_0x30c090(0x247)],_0x50783d['rule_delete']=_0x237491[_0x30c090(0x257)],_0x50783d[_0x30c090(0x2d0)]=_0x237491['rule_update'],_0x50783d[_0x30c090(0x2d5)]=_0x237491['charLimitRules'],_0x50783d['rowLimitRule']=_0x237491[_0x30c090(0x201)],delete _0x50783d[_0x30c090(0x2be)];const _0x2ea15e=_0x30c090(0x291)+_0x50783d[_0x30c090(0x253)]+_0x30c090(0x29c);log(_0x2ea15e,_0x30c090(0x1d1));const _0x186531=getContext();if(_0x186531[_0x30c090(0x280)]&&_0x186531[_0x30c090(0x280)][_0x30c090(0x25f)]>0x0){const _0x224d4e=_0x186531[_0x30c090(0x280)][_0x186531[_0x30c090(0x280)][_0x30c090(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x224d4e)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x47d6ed,_0x477530,_0x3790a7){const _0x994ad1=_0xddd662;if(!currentTablesState||!currentTablesState[_0x47d6ed]){log(_0x994ad1(0x249)+_0x47d6ed+_0x994ad1(0x215),_0x994ad1(0x204));return;}const _0x30b11c=currentTablesState[_0x47d6ed];if(_0x477530>=_0x30b11c[_0x994ad1(0x268)]['length']){log(_0x994ad1(0x22d)+_0x477530+_0x994ad1(0x223)+_0x30b11c['name']+_0x994ad1(0x1f8),_0x994ad1(0x237)),insertRow(_0x47d6ed,_0x3790a7);return;}const _0x48ba16=_0x30b11c[_0x994ad1(0x268)][_0x477530];for(const _0x3c840e in _0x3790a7){const _0x109d8e=parseInt(_0x3c840e,0xa);_0x109d8e<_0x48ba16[_0x994ad1(0x25f)]&&(_0x48ba16[_0x109d8e]=_0x3790a7[_0x109d8e],addHighlight(_0x47d6ed,_0x477530,_0x109d8e));}const _0x31042e=_0x994ad1(0x1f6)+_0x30b11c[_0x994ad1(0x253)]+']\x20的第\x20'+(_0x477530+0x1)+_0x994ad1(0x2ae);log(_0x31042e,_0x994ad1(0x1d1));const _0x1055a9=getContext();if(_0x1055a9['chat']&&_0x1055a9['chat'][_0x994ad1(0x25f)]>0x0){const _0x2ad3f7=_0x1055a9[_0x994ad1(0x280)][_0x1055a9[_0x994ad1(0x280)][_0x994ad1(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2ad3f7)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0xe472ba=_0xddd662;if(!currentTablesState){log('无法清空:当前表格状态为空。',_0xe472ba(0x204));return;}currentTablesState['forEach'](_0x505bcc=>{const _0x2730ad=_0xe472ba;_0x505bcc[_0x2730ad(0x268)]=[];}),log('所有表格的行数据已在内存中清空。',_0xe472ba(0x237));const _0x58f561=getContext();if(_0x58f561['chat']&&_0x58f561[_0xe472ba(0x280)][_0xe472ba(0x25f)]>0x0){const _0x5dceab=_0x58f561['chat'][_0x58f561[_0xe472ba(0x280)][_0xe472ba(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x5dceab)){saveChat(),log('清空行数据后的状态已强制写入最新消息并立即保存。',_0xe472ba(0x2bd)),toastr[_0xe472ba(0x2bd)](_0xe472ba(0x230),_0xe472ba(0x255));return;}}log(_0xe472ba(0x1d6),_0xe472ba(0x204)),saveChatDebounced();}function checkTableRules(_0x415589){const _0x2c43d8=_0xddd662;let _0x1dd5a9=[];_0x415589[_0x2c43d8(0x201)]&&_0x415589[_0x2c43d8(0x201)]>0x0&&_0x415589[_0x2c43d8(0x268)][_0x2c43d8(0x25f)]>_0x415589[_0x2c43d8(0x201)]&&_0x1dd5a9[_0x2c43d8(0x224)](_0x2c43d8(0x1e0)+_0x415589[_0x2c43d8(0x253)]+_0x2c43d8(0x26e)+_0x415589[_0x2c43d8(0x201)]+_0x2c43d8(0x248)+_0x415589[_0x2c43d8(0x201)]+_0x2c43d8(0x289));const _0x4da9f2=_0x415589[_0x2c43d8(0x2d5)]||{};for(const _0x59f2bb in _0x4da9f2){const _0x6da406=parseInt(_0x59f2bb,0xa),_0x36f3f1=_0x4da9f2[_0x6da406];if(_0x36f3f1>0x0&&_0x6da406>=0x0&&_0x6da406<_0x415589['headers'][_0x2c43d8(0x25f)]){const _0x2d9acc=_0x415589[_0x2c43d8(0x206)][_0x6da406],_0x569eda=[];_0x415589[_0x2c43d8(0x268)][_0x2c43d8(0x1e1)]((_0x29ef06,_0x3cf51)=>{const _0x435c4f=_0x2c43d8,_0x2e455e=_0x29ef06[_0x6da406]||'';_0x2e455e[_0x435c4f(0x25f)]>_0x36f3f1&&_0x569eda['push'](_0x3cf51);});if(_0x569eda[_0x2c43d8(0x25f)]>0x0){const _0x10cb9c=_0x569eda[_0x2c43d8(0x1ed)]('、');_0x1dd5a9[_0x2c43d8(0x224)](_0x2c43d8(0x1e0)+_0x415589[_0x2c43d8(0x253)]+_0x2c43d8(0x203)+_0x10cb9c+_0x2c43d8(0x2a6)+_0x2d9acc+_0x2c43d8(0x233)+_0x36f3f1+_0x2c43d8(0x2d6));}}}return _0x1dd5a9['join']('\x0a');}export function convertTablesToCsvString(){const _0xa4da16=_0xddd662;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x58e6f7='';return currentTablesState[_0xa4da16(0x1e1)]((_0x32a3e8,_0x2208ba)=>{const _0x372ec8=_0xa4da16;_0x58e6f7+=_0x372ec8(0x2bf)+_0x2208ba+':'+_0x32a3e8[_0x372ec8(0x253)]+'\x0a',_0x58e6f7+='【说明】:\x0a'+(_0x32a3e8[_0x372ec8(0x231)]||'无')+'\x0a';const _0x3753ca=_0x32a3e8['name'][_0x372ec8(0x29d)](/\s/g,'')+'内容';_0x58e6f7+='<'+_0x3753ca+'>\x0a';const _0x5c2a7d=_0x32a3e8[_0x372ec8(0x206)][_0x372ec8(0x24b)]((_0x51403b,_0x79c8b9)=>_0x79c8b9+':'+_0x51403b)[_0x372ec8(0x1ed)](',');_0x58e6f7+='rowIndex,'+_0x5c2a7d+'\x0a';_0x32a3e8['rows'][_0x372ec8(0x25f)]===0x0?_0x58e6f7+=_0x372ec8(0x213):_0x32a3e8[_0x372ec8(0x268)][_0x372ec8(0x1e1)]((_0x41fdb5,_0x320d1f)=>{const _0xdb3ef9=_0x372ec8;if(Array[_0xdb3ef9(0x234)](_0x41fdb5)){const _0x3d831e=_0x41fdb5[_0xdb3ef9(0x24b)](_0x57db69=>{const _0x326b06=_0xdb3ef9;return _0x57db69===null||_0x57db69===undefined||_0x57db69===''?'未知':_0x57db69[_0x326b06(0x266)]();})[_0xdb3ef9(0x1ed)](',');_0x58e6f7+=_0x320d1f+','+_0x3d831e+'\x0a';}});const _0x27b891=checkTableRules(_0x32a3e8);_0x27b891&&(_0x58e6f7+=_0x27b891+'\x0a'),_0x58e6f7+='\x0a',_0x58e6f7+=_0x372ec8(0x211)+(_0x32a3e8[_0x372ec8(0x247)]||'允许')+'\x0a',_0x58e6f7+='【删除】:\x20'+(_0x32a3e8[_0x372ec8(0x257)]||'允许')+'\x0a',_0x58e6f7+=_0x372ec8(0x2d8)+(_0x32a3e8['rule_update']||'允许')+'\x0a',_0x2208ba{const _0x290597=_0x56a5b3;_0x3e7eed+='\x0a<'+_0x26719b[_0x290597(0x253)]+'>\x0a';const _0x22b097=_0x26719b[_0x290597(0x206)][_0x290597(0x24b)]((_0x8476a8,_0x24c9a0)=>String[_0x290597(0x27d)](0x41+_0x24c9a0)+':'+_0x8476a8)[_0x290597(0x1ed)](',');_0x3e7eed+=_0x22b097+'\x0a',Array[_0x290597(0x234)](_0x26719b['rows'])&&_0x26719b[_0x290597(0x268)]['length']>0x0?_0x26719b['rows'][_0x290597(0x1e1)]((_0x43b9c0,_0x422eb1)=>{const _0x3309b0=_0x290597;if(Array[_0x3309b0(0x234)](_0x43b9c0)){const _0x13206a=_0x43b9c0[_0x3309b0(0x1ed)](',');_0x3e7eed+=_0x422eb1+0x1+':'+_0x13206a+'\x0a';}}):_0x3e7eed+=_0x290597(0x213),_0x3e7eed+='\x0a';}),_0x3e7eed[_0x56a5b3(0x1e3)]();}loadTables();export function getBatchFillerRuleTemplate(){return extension_settings[extensionName]?.['batch_filler_rule_template']??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x483ead){const _0x8e28a5=_0xddd662;extension_settings[extensionName][_0x8e28a5(0x270)]=_0x483ead,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x445f14=_0xddd662;return extension_settings[extensionName]?.[_0x445f14(0x243)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x50c9bb){const _0x58064b=_0xddd662;extension_settings[extensionName][_0x58064b(0x243)]=_0x50c9bb,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){return extension_settings[extensionName]?.['amily2_ai_template']??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x4e0c1f){const _0xcdd25b=_0xddd662;if(!_0x4e0c1f){log(_0xcdd25b(0x276),_0xcdd25b(0x237));return;}const _0x1d2f37=_0x4e0c1f['match'](/([\s\S]*?)<\/Amily2Edit>/);if(!_0x1d2f37||!_0x1d2f37[0x1]){log(_0xcdd25b(0x2bb),_0xcdd25b(0x237));return;}let _0x1d246b=_0x1d2f37[0x1][_0xcdd25b(0x29d)](//g,'')[_0xcdd25b(0x1e3)]();if(!_0x1d246b){log(_0xcdd25b(0x22a),_0xcdd25b(0x1d1));return;}const _0x2fd6a6=_0x1d246b['split']('\x0a')[_0xcdd25b(0x28c)](_0x46cda0=>_0x46cda0[_0xcdd25b(0x1e3)]()!=='');log(_0xcdd25b(0x2c3)+_0x2fd6a6[_0xcdd25b(0x25f)]+'\x20条表格操作指令...',_0xcdd25b(0x1d1));const _0x1a49ad={'insertRow':(_0x1a10ad,_0x4647cc)=>{const _0x4a8f50=_0xcdd25b;log(_0x4a8f50(0x28a)+_0x1a10ad+_0x4a8f50(0x239)+JSON[_0x4a8f50(0x1d4)](_0x4647cc)+')',_0x4a8f50(0x1d1)),insertRow(_0x1a10ad,_0x4647cc);},'deleteRow':(_0x25cbd1,_0x1de975)=>{const _0x3987d2=_0xcdd25b;log('执行AI指令:\x20deleteRow(tableIndex='+_0x25cbd1+_0x3987d2(0x1d9)+_0x1de975+')','info'),deleteRow(_0x25cbd1,_0x1de975);},'updateRow':(_0x88146e,_0x1594db,_0x360107)=>{const _0x3d3c3e=_0xcdd25b;log(_0x3d3c3e(0x259)+_0x88146e+',\x20rowIndex='+_0x1594db+',\x20data='+JSON[_0x3d3c3e(0x1d4)](_0x360107)+')',_0x3d3c3e(0x1d1)),updateRow(_0x88146e,_0x1594db,_0x360107);}};try{const _0x33d92b=Object[_0xcdd25b(0x29f)](async function(){})[_0xcdd25b(0x2c1)],_0x3024ce=new _0x33d92b(_0xcdd25b(0x2b6),_0xcdd25b(0x1fa)+_0x1d246b+_0xcdd25b(0x25a));await _0x3024ce(_0x1a49ad),log(_0xcdd25b(0x25e),_0xcdd25b(0x2bd)),toastr[_0xcdd25b(0x2bd)](_0xcdd25b(0x225),_0xcdd25b(0x1d0)),document[_0xcdd25b(0x236)](new CustomEvent(_0xcdd25b(0x269)));}catch(_0x2a1ce1){log(_0xcdd25b(0x1ea)+_0x2a1ce1[_0xcdd25b(0x285)],'error'),toastr['error'](_0xcdd25b(0x1d3)+_0x2a1ce1[_0xcdd25b(0x285)],_0xcdd25b(0x200));}}export function saveAiTemplate(_0x3289c6){const _0x15fd06=_0xddd662;extension_settings[extensionName][_0x15fd06(0x250)]=_0x3289c6,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x5cdce2=![]){const _0x313e77=_0xddd662;if(!currentTablesState){log(_0x313e77(0x263),'error'),toastr['error'](_0x313e77(0x254));return;}let _0x3a8d67,_0x23fa8c,_0x13e866;_0x5cdce2?(_0x3a8d67=JSON[_0x313e77(0x205)](JSON[_0x313e77(0x1d4)](currentTablesState)),_0x23fa8c=_0x313e77(0x22b),_0x13e866='完整备份'):(_0x3a8d67=currentTablesState[_0x313e77(0x24b)](_0xe8e40d=>({'name':_0xe8e40d[_0x313e77(0x253)],'headers':_0xe8e40d[_0x313e77(0x206)],'columnWidths':_0xe8e40d[_0x313e77(0x286)]||[],'note':_0xe8e40d[_0x313e77(0x231)],'rule_add':_0xe8e40d[_0x313e77(0x247)],'rule_delete':_0xe8e40d['rule_delete'],'rule_update':_0xe8e40d['rule_update'],'charLimitRules':_0xe8e40d['charLimitRules']||{},'rowLimitRule':_0xe8e40d[_0x313e77(0x201)]||0x0,'rows':[]})),_0x23fa8c=_0x313e77(0x28f),_0x13e866=_0x313e77(0x2a7));const _0x541a42={'version':'Amily2-Table-Preset-v3.0-separated_templates','batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x3a8d67},_0x468822=new Blob([JSON[_0x313e77(0x1d4)](_0x541a42,null,0x2)],{'type':'application/json'}),_0x27ca9e=URL[_0x313e77(0x1e8)](_0x468822),_0x329769=document[_0x313e77(0x23a)]('a');_0x329769[_0x313e77(0x227)]=_0x27ca9e,_0x329769[_0x313e77(0x20f)]=_0x313e77(0x28d)+_0x13e866+'-'+new Date()[_0x313e77(0x2aa)]()[_0x313e77(0x293)](0x0,0xa)+_0x313e77(0x1fe),document[_0x313e77(0x1f3)][_0x313e77(0x2b9)](_0x329769),_0x329769[_0x313e77(0x26a)](),document['body']['removeChild'](_0x329769),URL[_0x313e77(0x279)](_0x27ca9e),log('【'+_0x13e866+_0x313e77(0x2ac),_0x313e77(0x2bd)),toastr[_0x313e77(0x2bd)]('【'+_0x13e866+_0x313e77(0x2cd),_0x313e77(0x21b));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0xbe8ac1){const _0x54a6d4=_0xddd662,_0x150b7d=document[_0x54a6d4(0x23a)](_0x54a6d4(0x2bc));_0x150b7d['type']=_0x54a6d4(0x1fb),_0x150b7d[_0x54a6d4(0x26c)]='.json',_0x150b7d[_0x54a6d4(0x2b1)]=_0x42eb8f=>{const _0x3c1c07=_0x54a6d4,_0x456e4c=_0x42eb8f['target'][_0x3c1c07(0x1d2)][0x0];if(!_0x456e4c)return;const _0x35cda9=new FileReader();_0x35cda9[_0x3c1c07(0x258)]=_0x8cb791=>{const _0x2e7f97=_0x3c1c07;try{const _0x28c095=JSON['parse'](_0x8cb791[_0x2e7f97(0x292)][_0x2e7f97(0x2c6)]);if(!_0x28c095['version']||!Array[_0x2e7f97(0x234)](_0x28c095[_0x2e7f97(0x2b8)]))throw new Error(_0x2e7f97(0x2b5));const _0x158cec=window[_0x2e7f97(0x221)](_0x2e7f97(0x1f9));if(!_0x158cec){log(_0x2e7f97(0x1de),_0x2e7f97(0x1d1)),toastr[_0x2e7f97(0x1d1)](_0x2e7f97(0x2d1));return;}if(_0x28c095[_0x2e7f97(0x2a4)]===_0x2e7f97(0x277))saveBatchFillerRuleTemplate(_0x28c095[_0x2e7f97(0x1db)]||''),saveBatchFillerFlowTemplate(_0x28c095[_0x2e7f97(0x1ce)]||''),saveAiTemplate(_0x28c095[_0x2e7f97(0x20d)]||'');else{if(_0x28c095[_0x2e7f97(0x2c5)]!==undefined&&_0x28c095[_0x2e7f97(0x21d)]!==undefined)saveBatchFillerRuleTemplate(_0x28c095[_0x2e7f97(0x2c5)]||''),saveBatchFillerFlowTemplate(_0x28c095[_0x2e7f97(0x21d)]||''),saveAiTemplate(_0x28c095['aiFlowTemplate']||'');else _0x28c095[_0x2e7f97(0x1cd)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x28c095[_0x2e7f97(0x1cd)]||''),saveAiTemplate(_0x28c095[_0x2e7f97(0x1cd)]||'')):log(_0x2e7f97(0x22c),_0x2e7f97(0x237));}const _0x2bcd25=_0x28c095[_0x2e7f97(0x2b8)];_0x2bcd25[_0x2e7f97(0x1e1)](_0xe4fd5d=>{const _0x56e5b2=_0x2e7f97;if(_0xe4fd5d[_0x56e5b2(0x253)]===undefined||_0xe4fd5d[_0x56e5b2(0x206)]===undefined||_0xe4fd5d[_0x56e5b2(0x268)]===undefined)throw new Error(_0x56e5b2(0x1c8)+JSON['stringify'](_0xe4fd5d));if(_0xe4fd5d[_0x56e5b2(0x231)]===undefined)_0xe4fd5d[_0x56e5b2(0x231)]='无';if(_0xe4fd5d['rule_add']===undefined)_0xe4fd5d[_0x56e5b2(0x247)]='允许';if(_0xe4fd5d[_0x56e5b2(0x257)]===undefined)_0xe4fd5d['rule_delete']='允许';if(_0xe4fd5d[_0x56e5b2(0x2d0)]===undefined)_0xe4fd5d['rule_update']='允许';if(_0xe4fd5d['charLimitRule']&&!_0xe4fd5d['charLimitRules'])_0xe4fd5d[_0x56e5b2(0x2d5)]={},_0xe4fd5d[_0x56e5b2(0x2be)][_0x56e5b2(0x20b)]!==-0x1&&_0xe4fd5d[_0x56e5b2(0x2be)][_0x56e5b2(0x1c9)]>0x0&&(_0xe4fd5d[_0x56e5b2(0x2d5)][_0xe4fd5d[_0x56e5b2(0x2be)][_0x56e5b2(0x20b)]]=_0xe4fd5d[_0x56e5b2(0x2be)]['limit']);else _0xe4fd5d[_0x56e5b2(0x2d5)]===undefined&&(_0xe4fd5d[_0x56e5b2(0x2d5)]={});delete _0xe4fd5d[_0x56e5b2(0x2be)],_0xe4fd5d[_0x56e5b2(0x201)]===undefined&&(_0xe4fd5d['rowLimitRule']=0x0),_0xe4fd5d[_0x56e5b2(0x286)]===undefined&&(_0xe4fd5d[_0x56e5b2(0x286)]=[]);}),setMemoryState(_0x2bcd25);const _0x5d8a79=getContext();if(_0x5d8a79[_0x2e7f97(0x280)]&&_0x5d8a79[_0x2e7f97(0x280)]['length']>0x0){const _0x2ef0ca=_0x5d8a79[_0x2e7f97(0x280)][_0x5d8a79['chat'][_0x2e7f97(0x25f)]-0x1];saveStateToMessage(getMemoryState(),_0x2ef0ca)&&(saveChat(),log(_0x2e7f97(0x260),_0x2e7f97(0x2bd)));}else saveChatDebounced();log('预设已成功导入并应用。',_0x2e7f97(0x2bd)),toastr['success'](_0x2e7f97(0x1d7),_0x2e7f97(0x2cf)),typeof _0xbe8ac1===_0x2e7f97(0x238)&&_0xbe8ac1();}catch(_0x1e9ac4){log(_0x2e7f97(0x210)+_0x1e9ac4[_0x2e7f97(0x285)],_0x2e7f97(0x204)),toastr[_0x2e7f97(0x204)](_0x2e7f97(0x2cb)+_0x1e9ac4['message'],'错误');}},_0x35cda9[_0x3c1c07(0x25c)](_0x456e4c);},_0x150b7d[_0x54a6d4(0x26a)]();}export async function rollbackState(){const _0x216112=_0xddd662,_0x552f8e=getContext();if(!_0x552f8e||!_0x552f8e[_0x216112(0x280)]||_0x552f8e['chat'][_0x216112(0x25f)]<0x2)return log('无法回退:聊天记录不足。',_0x216112(0x237)),toastr[_0x216112(0x217)]('聊天记录不足,无法执行回退操作。'),![];const _0x5a0d62=_0x552f8e[_0x216112(0x280)],_0x50a325=_0x5a0d62[_0x216112(0x25f)]-0x1,_0x21c4bc=_0x5a0d62[_0x50a325];log(_0x216112(0x1eb)+(_0x50a325-0x1)+_0x216112(0x1ee),_0x216112(0x1d1));const _0x44c804=loadTables(_0x50a325);if(!_0x44c804)return log('未能在上一楼找到可用的表格状态,无法回退。',_0x216112(0x204)),toastr[_0x216112(0x204)]('未能在上一楼找到可用的表格状态。'),![];setMemoryState(_0x44c804);if(saveStateToMessage(_0x44c804,_0x21c4bc))await saveChat(),log(_0x216112(0x244),'success');else return log(_0x216112(0x2a2),'error'),toastr[_0x216112(0x204)]('未能保存回退状态,操作中止。'),![];return renderTables(),updateOrInsertTableInChat(),log(_0x216112(0x295),_0x216112(0x1d1)),!![];}export async function rollbackAndRefill(){const _0x39e048=_0xddd662;toastr[_0x39e048(0x1d1)](_0x39e048(0x278));const _0x2e6558=await rollbackState();if(!_0x2e6558){toastr['error'](_0x39e048(0x24d));return;}toastr['success'](_0x39e048(0x29a));const _0x3fd262=getContext(),_0x54e5e0=_0x3fd262[_0x39e048(0x280)][_0x3fd262[_0x39e048(0x280)][_0x39e048(0x25f)]-0x1];try{await fillWithSecondaryApi(_0x54e5e0,!![]),log(_0x39e048(0x207),_0x39e048(0x2bd));}catch(_0x18b149){log(_0x39e048(0x251)+_0x18b149[_0x39e048(0x285)],'error'),toastr[_0x39e048(0x204)](_0x39e048(0x27b)+_0x18b149[_0x39e048(0x285)]);}}export function updateColumnWidth(_0x11a2d0,_0x5dc2fd,_0x5f2dc9){const _0x19d756=_0xddd662;if(!currentTablesState||!currentTablesState[_0x11a2d0])return;const _0x201dad=currentTablesState[_0x11a2d0];!_0x201dad[_0x19d756(0x286)]&&(_0x201dad[_0x19d756(0x286)]=[]);while(_0x201dad['columnWidths'][_0x19d756(0x25f)]<_0x201dad[_0x19d756(0x206)]['length']){_0x201dad['columnWidths'][_0x19d756(0x224)](null);}_0x201dad['columnWidths'][_0x5dc2fd]=_0x5f2dc9;const _0x452f48=getContext();if(_0x452f48[_0x19d756(0x280)]&&_0x452f48[_0x19d756(0x280)][_0x19d756(0x25f)]>0x0){const _0x9999ee=_0x452f48[_0x19d756(0x280)][_0x452f48[_0x19d756(0x280)][_0x19d756(0x25f)]-0x1];if(saveStateToMessage(currentTablesState,_0x9999ee)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x413e1a=_0xddd662,_0x2d9352=getMemoryState();if(!_0x2d9352||_0x2d9352[_0x413e1a(0x25f)]===0x0)return!![];return _0x2d9352[_0x413e1a(0x20a)](_0x4986ec=>!_0x4986ec['rows']||_0x4986ec[_0x413e1a(0x268)][_0x413e1a(0x25f)]===0x0);}export function clearGlobalPreset(){const _0x31044e=_0xddd662;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x31044e(0x2d7)]){const _0x572eb7=window[_0x31044e(0x221)](_0x31044e(0x1cc));_0x572eb7?(delete extension_settings[extensionName][_0x31044e(0x2d7)],saveSettingsDebounced(),log(_0x31044e(0x2b4),'success'),toastr[_0x31044e(0x2bd)](_0x31044e(0x294),_0x31044e(0x23d))):(log(_0x31044e(0x242),_0x31044e(0x1d1)),toastr['info'](_0x31044e(0x232)));}else log(_0x31044e(0x2cc),_0x31044e(0x1d1)),toastr['info'](_0x31044e(0x241),'提示');}export function importGlobalPreset(_0x557ceb){const _0x2ea079=_0xddd662,_0x362e90=document[_0x2ea079(0x23a)](_0x2ea079(0x2bc));_0x362e90[_0x2ea079(0x287)]=_0x2ea079(0x1fb),_0x362e90[_0x2ea079(0x26c)]=_0x2ea079(0x1fe),_0x362e90['onchange']=_0x1ca937=>{const _0x2eb366=_0x2ea079,_0x35cc0d=_0x1ca937[_0x2eb366(0x292)][_0x2eb366(0x1d2)][0x0];if(!_0x35cc0d)return;const _0x3760f8=new FileReader();_0x3760f8[_0x2eb366(0x258)]=_0x1b4595=>{const _0x4180a4=_0x2eb366;try{const _0x24be6d=JSON[_0x4180a4(0x205)](_0x1b4595[_0x4180a4(0x292)][_0x4180a4(0x2c6)]);if(!_0x24be6d[_0x4180a4(0x2a4)]||!Array[_0x4180a4(0x234)](_0x24be6d[_0x4180a4(0x2b8)]))throw new Error(_0x4180a4(0x2b5));const _0x10b154=window[_0x4180a4(0x221)]('【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?');if(!_0x10b154){log(_0x4180a4(0x21a),_0x4180a4(0x1d1)),toastr[_0x4180a4(0x1d1)]('操作已取消。');return;}const _0x79b343=_0x24be6d[_0x4180a4(0x2b8)]['map'](_0x582c49=>({'name':_0x582c49[_0x4180a4(0x253)],'headers':_0x582c49[_0x4180a4(0x206)],'note':_0x582c49[_0x4180a4(0x231)],'rule_add':_0x582c49['rule_add'],'rule_delete':_0x582c49[_0x4180a4(0x257)],'rule_update':_0x582c49[_0x4180a4(0x2d0)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName]['global_table_preset']={'version':_0x24be6d[_0x4180a4(0x2a4)],'tables':_0x79b343,'batchFillerRuleTemplate':_0x24be6d['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x24be6d[_0x4180a4(0x1ce)]},saveSettingsDebounced();if(_0x24be6d[_0x4180a4(0x2a4)]===_0x4180a4(0x277))saveBatchFillerRuleTemplate(_0x24be6d['batchFillerRuleTemplate']||''),saveBatchFillerFlowTemplate(_0x24be6d[_0x4180a4(0x1ce)]||''),saveAiTemplate(_0x24be6d[_0x4180a4(0x20d)]||'');else{if(_0x24be6d[_0x4180a4(0x2c5)]!==undefined&&_0x24be6d[_0x4180a4(0x21d)]!==undefined)saveBatchFillerRuleTemplate(_0x24be6d['aiRuleTemplate']||''),saveBatchFillerFlowTemplate(_0x24be6d[_0x4180a4(0x21d)]||''),saveAiTemplate(_0x24be6d[_0x4180a4(0x21d)]||'');else _0x24be6d[_0x4180a4(0x1cd)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x24be6d[_0x4180a4(0x1cd)]||''),saveAiTemplate(_0x24be6d[_0x4180a4(0x1cd)]||''));}log(_0x4180a4(0x2a5),_0x4180a4(0x2bd)),toastr[_0x4180a4(0x2bd)](_0x4180a4(0x288),_0x4180a4(0x26d)),typeof _0x557ceb===_0x4180a4(0x238)&&_0x557ceb();}catch(_0x26ea21){log(_0x4180a4(0x26f)+_0x26ea21[_0x4180a4(0x285)],_0x4180a4(0x204)),toastr[_0x4180a4(0x204)]('导入失败:'+_0x26ea21[_0x4180a4(0x285)],'错误');}},_0x3760f8[_0x2eb366(0x25c)](_0x35cc0d);},_0x362e90[_0x2ea079(0x26a)]();} +const _0x373225=_0x4c40;(function(_0x45d635,_0x52df80){const _0x2711f3=_0x4c40,_0x4d7555=_0x45d635();while(!![]){try{const _0x479196=-parseInt(_0x2711f3(0x18a))/0x1+parseInt(_0x2711f3(0x103))/0x2*(-parseInt(_0x2711f3(0x1fe))/0x3)+-parseInt(_0x2711f3(0x17b))/0x4+parseInt(_0x2711f3(0x12d))/0x5+-parseInt(_0x2711f3(0x166))/0x6*(parseInt(_0x2711f3(0x122))/0x7)+parseInt(_0x2711f3(0x192))/0x8*(-parseInt(_0x2711f3(0x15a))/0x9)+-parseInt(_0x2711f3(0x1aa))/0xa*(-parseInt(_0x2711f3(0x13d))/0xb);if(_0x479196===_0x52df80)break;else _0x4d7555['push'](_0x4d7555['shift']());}catch(_0x114787){_0x4d7555['push'](_0x4d7555['shift']());}}}(_0x162f,0x7b19f));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{fillWithSecondaryApi}from'./secondary-filler.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY=_0x373225(0x13c);let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();export function addHighlight(_0xec6508,_0x20f3cf,_0xc55595){const _0x7e5a16=_0x373225,_0x4606da=_0xec6508+'-'+_0x20f3cf+'-'+_0xc55595;highlightedCells[_0x7e5a16(0x189)](_0x4606da);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x14d4ef=_0x373225;highlightedCells[_0x14d4ef(0x1d3)]>0x0&&(highlightedCells[_0x14d4ef(0x1a1)](),log('已清除所有单元格高亮标记。',_0x14d4ef(0x14e)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x1713dc=_0x373225;updatedTables[_0x1713dc(0x1d3)]>0x0&&(updatedTables[_0x1713dc(0x1a1)](),log(_0x1713dc(0x1e0),_0x1713dc(0x14e)));}export function setMemoryState(_0x3cb563){currentTablesState=_0x3cb563;}function _0x162f(){const _0xd3f53f=['rowStatuses','删除列失败:在表格\x20','\x20中操作。','isArray','push','warn','【触发条件】只能在明确表示要移除或废弃某条设定时,才能删除对应行。','size','状态回退失败,已中止操作。','回退并重新填表操作完成。','\x22\x20的表格已存在。','Amily2-','执行AI指令:\x20insertRow(tableIndex=','batch_filler_rule_template','columnWidths','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','tables','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','导入的预设已强制写入最新消息并立即保存。','body','已清除所有表格的更新标记。','amily2-force-ui-reload','object','未找到任何表格数据或全局预设,使用默认模板。','导入成功','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',']\x20已被成功废黜。','创建失败','every','【说明】:\x0a','\x20条消息加载表格状态...','some','global_table_preset','这是一个新创建的表格。','\x20的列。','\x22\x20已更新内存状态。','getPrototypeOf','createElement','number','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','\x20已在边界。','未在AI返回内容中找到有效的\x20\x20指令块。','mes','全局预设已设置!新聊天将默认使用此预设。','below','download','UI操作\x20\x22',']\x20末尾新增一行。',')行,请结合剧情缩减至(',')超出规定(','1866TIdLsG','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','导入全局预设失败:\x20',']\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分隔。','file','”已更新为“','rule_delete','filter','batch_filler_flow_template','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','886Jlohav',',\x20rowIndex=','执行AI指令时发生错误:\x20','AI\x20指令更新了表格\x20[','【当前(','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','【删除】:\x20','无法创建表格:名称不能为空。','trim','rowIndex,','stringify','聊天记录不足,无法执行回退操作。','导入的预设中缺少指令模板字段,模板将不会被更新。','所有表格的剧情内容已清空。','表格\x20\x22','无法移动列:索引\x20','UI已更新以显示回退后的状态。',')列,字符超出规定(','填表完成','readAsText','\x20行。','重要原因','新列\x201','charLimitRule','\x20行位置插入了新行。','onload','\x20(索引\x20','input','rows',')第(','6889127DtLHLb','全局预设已清除,新聊天将使用默认模板。','正在尝试从第\x20','已成功创建新表格:[','runner','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20{\x20insertRow,\x20deleteRow,\x20updateRow\x20}\x20=\x20runner;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',')\x20的第\x20','】已开始下载。','accept',')行以下,但切莫完全删除。】','\x20条消息中找到基准表格数据。','1582890nzrWVY','version','AI指令意图更新不存在的行\x20(rowIndex:\x20','length','插入了新列。','【核心作用】专门用于记录主角掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','onchange','replace','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','导入的表格数据格式不正确:\x20','全局预设已被清除。','】已成功导出。','AI指令错误:尝试在不存在的表格索引\x20','【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','amily2_tables_data','234817NYVYjj','\x20的表格。','全局预设已成功导入并保存到扩展设置中。','技能名','normal','用户取消了清除全局预设的操作。','【核心作用】此表格记录了来自的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录提出的具体要求。','表格不存在。','Amily2-Table-Preset-v3.0-separated_templates','split','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\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记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','createObjectURL','”已向','...]','constructor','操作已取消。','info','appendChild','无需清除,当前未设置任何全局预设。','重命名失败:表格不存在。','已根据AI的指示成功更新表格!','无法移动表格:索引\x20','pending-deletion','parse','Amily2-Table-Preset-v2.0-clean','执行失败','Amily2-Table-Preset-v2.0-full','\x20行已标记为待删除。','90189WsluXB','\x20行移动到第\x20','type','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','batchFillerFlowTemplate','toString','具体描述',']\x20的列“','状态回退成功,准备重新填表...','文件格式无效或缺少版本号/表格数据。','已成功将回退后的状态保存至最新消息。','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非的技能,应立即删除。','6iCjRWE','角色名','物品栏','无法清空:当前表格状态为空。','charLimitRules','target','\x20条表格操作指令...','纯净预设','batchFillerRuleTemplate','rowLimitRule','【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','回退状态保存失败,操作中止。','join','技能效果','click',',\x20data=','当前没有设置全局预设。','columnIndex','success','表格状态已准备写入消息\x20[','时空栏','2298796NEtxPp',']\x20的规则已更新。','limit','完整备份','其他重要信息','aiTemplate','技能栏','加载全局预设失败:\x20','开始时间/结束时间','缺少状态或目标消息,无法保存。','【触发条件】当在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','预设已成功导入并应用。','设定栏','导入预设失败:\x20','add','894610IQtMEn','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','headers','rule_update','【触发条件】当一个有名有姓的角色首次出现,并与或当前剧情发生有意义的互动时,必须为其创建新的一行。','任务栏','aiFlowTemplate','error','296PVxRgA','成功删除了表格\x20','插入行失败:找不到索引为\x20','fill','message',']\x20的第\x20','rule_add','note','重新填表失败:\x20','操作完成','indexOf','confirm','无法导出:当前表格状态为空。','重命名失败','aiRuleTemplate','clear','【触发条件】只能在明确表示要修改某条设定时,才能更新对应行的描述。','href','回退重填过程中发生错误:\x20','splice','名为\x20\x22','result','removeChild','【触发条件】当通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','1540XRKBSe','【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与的关系发生根本性转变(如从敌人变为盟友)。','新列\x20','injectionFlowTemplate','物品名','forEach',')行(','执行AI指令:\x20deleteRow(tableIndex=','files','amily2_ai_template','.json','AI返回内容为空,无法更新表格。','left','表格\x20[','操作成功','extra','revokeObjectURL','从预设模板生成默认表格...','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','【增加】:\x20','准备执行从AI返回的\x20','无法回退:聊天记录不足。','name','废黜表格后的状态已强制写入最新消息并立即保存。','\x0a*\x20','导入失败:','AI指令块为空,无需执行任何操作。','map','无法创建表格:名为\x20\x22','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?',']\x20的表头“','chat',')字限制,请进行缩减。】','正在执行回退并重新填表...'];_0x162f=function(){return _0xd3f53f;};return _0x162f();}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x373225(0x17a),'headers':['日期','时段','时间','地点','此地角色'],'note':_0x373225(0x202),'rule_add':_0x373225(0x1bc),'rule_delete':_0x373225(0x1db),'rule_update':_0x373225(0x1dd),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':'角色栏','headers':[_0x373225(0x167),'外貌','身形','衣着','性格','身份','职业','与关系','爱好','住所',_0x373225(0x17f)],'note':_0x373225(0x147),'rule_add':_0x373225(0x18e),'rule_delete':_0x373225(0x133),'rule_update':_0x373225(0x1ab),'charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0x373225(0x18f),'headers':['任务名','类型','详情','状态','执行者','地点',_0x373225(0x183),'结果'],'note':'【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\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任务完成或失败后的最终结果。','rule_add':_0x373225(0x170),'rule_delete':_0x373225(0x102),'rule_update':'【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x373225(0x168),'headers':[_0x373225(0x1ae),'类型','详情','状态','拥有者',_0x373225(0x119)],'note':'【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','rule_add':_0x373225(0x13b),'rule_delete':_0x373225(0x109),'rule_update':'【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x373225(0x181),'headers':[_0x373225(0x140),_0x373225(0x173)],'note':_0x373225(0x132),'rule_add':_0x373225(0x185),'rule_delete':_0x373225(0x165),'rule_update':_0x373225(0x136),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x373225(0x187),'headers':['类型',_0x373225(0x160)],'note':_0x373225(0x143),'rule_add':_0x373225(0x1a9),'rule_delete':_0x373225(0x1d2),'rule_update':_0x373225(0x1a2),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x4a6b89=_0x373225;log(_0x4a6b89(0x1bb),_0x4a6b89(0x14e));const _0x936259=JSON[_0x4a6b89(0x155)](JSON[_0x4a6b89(0x10e)](defaultTemplate[_0x4a6b89(0x1dc)]));return _0x936259['forEach'](_0x105556=>{const _0x441803=_0x4a6b89;_0x105556[_0x441803(0x11b)]={'columnIndex':-0x1,'limit':0x0},_0x105556[_0x441803(0x16f)]=0x0,_0x105556[_0x441803(0x1da)]=[];}),_0x936259;}export function loadTables(_0x2d26d5=-0x1){const _0x17ad1c=_0x373225,_0xde1ec3=getContext();if(_0xde1ec3&&_0xde1ec3[_0x17ad1c(0x1c9)]&&_0xde1ec3[_0x17ad1c(0x1c9)][_0x17ad1c(0x130)]>0x0){const _0xc61b3f=_0x2d26d5===-0x1?_0xde1ec3['chat'][_0x17ad1c(0x130)]-0x1:_0x2d26d5-0x1;for(let _0x3d537d=_0xc61b3f;_0x3d537d>=0x0;_0x3d537d--){const _0x5a35bf=_0xde1ec3[_0x17ad1c(0x1c9)][_0x3d537d];if(_0x5a35bf[_0x17ad1c(0x1b9)]&&_0x5a35bf[_0x17ad1c(0x1b9)][TABLE_DATA_KEY]){log('在第\x20'+_0x3d537d+_0x17ad1c(0x12c),'info');let _0x18938a=JSON['parse'](JSON[_0x17ad1c(0x10e)](_0x5a35bf[_0x17ad1c(0x1b9)][TABLE_DATA_KEY]));return _0x18938a['forEach'](_0x153a73=>{const _0x51697e=_0x17ad1c;if(_0x153a73[_0x51697e(0x199)]===undefined)_0x153a73[_0x51697e(0x199)]='无';if(_0x153a73[_0x51697e(0x198)]===undefined)_0x153a73[_0x51697e(0x198)]='允许';if(_0x153a73[_0x51697e(0x205)]===undefined)_0x153a73['rule_delete']='允许';if(_0x153a73[_0x51697e(0x18d)]===undefined)_0x153a73[_0x51697e(0x18d)]='允许';_0x153a73[_0x51697e(0x11b)]&&!_0x153a73[_0x51697e(0x16a)]&&(_0x153a73[_0x51697e(0x16a)]={},_0x153a73[_0x51697e(0x11b)][_0x51697e(0x177)]!==-0x1&&_0x153a73[_0x51697e(0x11b)][_0x51697e(0x17d)]>0x0&&(_0x153a73[_0x51697e(0x16a)][_0x153a73[_0x51697e(0x11b)][_0x51697e(0x177)]]=_0x153a73[_0x51697e(0x11b)][_0x51697e(0x17d)]));delete _0x153a73[_0x51697e(0x11b)];if(_0x153a73[_0x51697e(0x16f)]===undefined)_0x153a73[_0x51697e(0x16f)]=0x0;if(_0x153a73['columnWidths']===undefined)_0x153a73['columnWidths']=[];!_0x153a73[_0x51697e(0x1cc)]&&(_0x153a73['rowStatuses']=Array(_0x153a73[_0x51697e(0x120)]['length'])[_0x51697e(0x195)]('normal'));}),currentTablesState=_0x18938a,currentTablesState;}}}if(extension_settings[extensionName]?.[_0x17ad1c(0x1ec)]){log('未在聊天记录中找到表格,正在加载全局预设...',_0x17ad1c(0x14e));try{const _0x2f22f0=extension_settings[extensionName][_0x17ad1c(0x1ec)];return currentTablesState=JSON['parse'](JSON[_0x17ad1c(0x10e)](_0x2f22f0[_0x17ad1c(0x1dc)])),_0x2f22f0['batchFillerRuleTemplate']!==undefined&&saveBatchFillerRuleTemplate(_0x2f22f0[_0x17ad1c(0x16e)]),_0x2f22f0[_0x17ad1c(0x15e)]!==undefined&&saveBatchFillerFlowTemplate(_0x2f22f0[_0x17ad1c(0x15e)]),currentTablesState;}catch(_0x37ea60){log(_0x17ad1c(0x182)+_0x37ea60[_0x17ad1c(0x196)],_0x17ad1c(0x191));}}return log(_0x17ad1c(0x1e3),_0x17ad1c(0x14e)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x13becb,_0x5ede24){const _0x597d3f=_0x373225;if(!_0x13becb||!_0x5ede24)return log(_0x597d3f(0x184),_0x597d3f(0x191)),![];return!_0x5ede24[_0x597d3f(0x1b9)]&&(_0x5ede24[_0x597d3f(0x1b9)]={}),_0x5ede24['extra'][TABLE_DATA_KEY]=JSON[_0x597d3f(0x155)](JSON[_0x597d3f(0x10e)](_0x13becb)),log(_0x597d3f(0x179)+_0x5ede24[_0x597d3f(0x1f6)]['substring'](0x0,0x14)+_0x597d3f(0x14b),_0x597d3f(0x14e)),!![];}export function saveTables(_0x5dfd7e='未知操作'){const _0x27fe7c=_0x373225;return log(_0x27fe7c(0x1fa)+_0x5dfd7e+_0x27fe7c(0x1ef),_0x27fe7c(0x14e)),!![];}export function deleteColumn(_0x55b1d9,_0x3dcf64){const _0x3c1d8b=_0x373225,_0x21f590=getMemoryState();if(!_0x21f590[_0x55b1d9]||_0x3dcf64<0x0||_0x3dcf64>=_0x21f590[_0x55b1d9][_0x3c1d8b(0x18c)][_0x3c1d8b(0x130)]){log(_0x3c1d8b(0x1cd)+_0x55b1d9+'\x20中找不到索引为\x20'+_0x3dcf64+_0x3c1d8b(0x1ee),_0x3c1d8b(0x191));return;}_0x21f590[_0x55b1d9][_0x3c1d8b(0x18c)][_0x3c1d8b(0x1a5)](_0x3dcf64,0x1),_0x21f590[_0x55b1d9]['rows'][_0x3c1d8b(0x1af)](_0x57a3a1=>{const _0x197d5a=_0x3c1d8b;_0x57a3a1[_0x197d5a(0x130)]>_0x3dcf64&&_0x57a3a1[_0x197d5a(0x1a5)](_0x3dcf64,0x1);}),_0x21f590[_0x55b1d9][_0x3c1d8b(0x1da)]&&_0x21f590[_0x55b1d9][_0x3c1d8b(0x1da)][_0x3c1d8b(0x130)]>_0x3dcf64&&_0x21f590[_0x55b1d9][_0x3c1d8b(0x1da)][_0x3c1d8b(0x1a5)](_0x3dcf64,0x1),log(_0x3c1d8b(0x193)+_0x55b1d9+'\x20的第\x20'+(_0x3dcf64+0x1)+'\x20列。',_0x3c1d8b(0x178)),saveTables(_0x21f590);}export function moveRow(_0x1ad4f0,_0x540f2d,_0x29006c){const _0x4fbf60=_0x373225,_0x47579c=getMemoryState(),_0x465cb0=_0x47579c[_0x1ad4f0];if(!_0x465cb0||_0x540f2d<0x0||_0x540f2d>=_0x465cb0[_0x4fbf60(0x120)]['length'])return;const _0x259dd7=_0x29006c==='up'?_0x540f2d-0x1:_0x540f2d+0x1;if(_0x259dd7<0x0||_0x259dd7>=_0x465cb0[_0x4fbf60(0x120)][_0x4fbf60(0x130)])return;const [_0x339ea4]=_0x465cb0[_0x4fbf60(0x120)][_0x4fbf60(0x1a5)](_0x540f2d,0x1);_0x465cb0[_0x4fbf60(0x120)][_0x4fbf60(0x1a5)](_0x259dd7,0x0,_0x339ea4);if(_0x465cb0['rowStatuses']&&_0x465cb0[_0x4fbf60(0x1cc)]['length']===_0x465cb0[_0x4fbf60(0x120)]['length']+0x1){const [_0x11baf6]=_0x465cb0[_0x4fbf60(0x1cc)][_0x4fbf60(0x1a5)](_0x540f2d,0x1);_0x465cb0['rowStatuses']['splice'](_0x259dd7,0x0,_0x11baf6);}log('成功将表格\x20'+_0x1ad4f0+'\x20的第\x20'+(_0x540f2d+0x1)+_0x4fbf60(0x15b)+(_0x259dd7+0x1)+_0x4fbf60(0x118),_0x4fbf60(0x178)),saveTables(_0x47579c);}export function insertRow(_0x295512,_0x1170cd,_0x2498db=_0x373225(0x1f8)){const _0x1845ab=_0x373225,_0x4a7158=getMemoryState(),_0xf8e519=_0x4a7158[_0x295512];if(!_0xf8e519){log(_0x1845ab(0x194)+_0x295512+_0x1845ab(0x13e),_0x1845ab(0x191));return;}let _0x3ab778;typeof _0x1170cd===_0x1845ab(0x1f2)?_0x3ab778=_0x2498db==='above'?_0x1170cd:_0x1170cd+0x1:_0x3ab778=_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x130)];if(_0x3ab778<0x0)_0x3ab778=0x0;if(_0x3ab778>_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x130)])_0x3ab778=_0xf8e519['rows']['length'];const _0xa27ec=new Array(_0xf8e519[_0x1845ab(0x18c)][_0x1845ab(0x130)])[_0x1845ab(0x195)]('');if(typeof _0x1170cd===_0x1845ab(0x1e2)&&_0x1170cd!==null)for(const _0x44e688 in _0x1170cd){const _0x4f381b=parseInt(_0x44e688,0xa);!isNaN(_0x4f381b)&&_0x4f381b<_0xa27ec['length']&&(_0xa27ec[_0x4f381b]=_0x1170cd[_0x44e688],addHighlight(_0x295512,_0x3ab778,_0x4f381b));}_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x1a5)](_0x3ab778,0x0,_0xa27ec);if(!_0xf8e519[_0x1845ab(0x1cc)])_0xf8e519[_0x1845ab(0x1cc)]=Array(_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x130)])[_0x1845ab(0x195)](_0x1845ab(0x141));_0xf8e519[_0x1845ab(0x1cc)][_0x1845ab(0x1a5)](_0x3ab778,0x0,'normal'),updatedTables[_0x1845ab(0x189)](_0x295512),log('成功在表格\x20'+_0xf8e519[_0x1845ab(0x1c0)]+_0x1845ab(0x11e)+_0x295512+_0x1845ab(0x128)+(_0x3ab778+0x1)+_0x1845ab(0x11c),_0x1845ab(0x178));const _0x3abcf6=getContext();if(_0x3abcf6[_0x1845ab(0x1c9)]&&_0x3abcf6[_0x1845ab(0x1c9)][_0x1845ab(0x130)]>0x0){const _0x142d09=_0x3abcf6[_0x1845ab(0x1c9)][_0x3abcf6[_0x1845ab(0x1c9)]['length']-0x1];if(saveStateToMessage(_0x4a7158,_0x142d09)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x2f8220){const _0x353f6e=_0x373225;if(!currentTablesState||!currentTablesState[_0x2f8220])return;const _0x2ac5e2=currentTablesState[_0x2f8220],_0x2796a0=_0x2ac5e2[_0x353f6e(0x18c)][_0x353f6e(0x130)],_0x34480d=Array(_0x2796a0)[_0x353f6e(0x195)]('');_0x2ac5e2['rows'][_0x353f6e(0x1d0)](_0x34480d);if(!_0x2ac5e2[_0x353f6e(0x1cc)])_0x2ac5e2[_0x353f6e(0x1cc)]=Array(_0x2ac5e2[_0x353f6e(0x120)][_0x353f6e(0x130)])[_0x353f6e(0x195)](_0x353f6e(0x141));_0x2ac5e2['rowStatuses'][_0x353f6e(0x1d0)](_0x353f6e(0x141)),updatedTables['add'](_0x2f8220);const _0x3abda9=_0x353f6e(0x1b7)+_0x2ac5e2[_0x353f6e(0x1c0)]+']\x20新增了一行。';log(_0x3abda9,_0x353f6e(0x14e));const _0x2d6a50=getContext();if(_0x2d6a50['chat']&&_0x2d6a50[_0x353f6e(0x1c9)][_0x353f6e(0x130)]>0x0){const _0x16b69e=_0x2d6a50['chat'][_0x2d6a50[_0x353f6e(0x1c9)][_0x353f6e(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x16b69e)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x5be419){const _0x57f62e=_0x373225;if(!currentTablesState||!currentTablesState[_0x5be419])return;const _0x3b7998=currentTablesState[_0x5be419],_0x2d9c7b=_0x57f62e(0x1ac)+(_0x3b7998['headers']['length']+0x1);_0x3b7998[_0x57f62e(0x18c)]['push'](_0x2d9c7b),_0x3b7998[_0x57f62e(0x120)][_0x57f62e(0x1af)](_0x1e9730=>_0x1e9730[_0x57f62e(0x1d0)](''));if(!_0x3b7998['columnWidths'])_0x3b7998['columnWidths']=[];_0x3b7998[_0x57f62e(0x1da)][_0x57f62e(0x1d0)](null);const _0x7eb1aa=_0x57f62e(0x1b7)+_0x3b7998[_0x57f62e(0x1c0)]+']\x20新增了一列。';log(_0x7eb1aa,_0x57f62e(0x14e));const _0x54ee9b=getContext();if(_0x54ee9b[_0x57f62e(0x1c9)]&&_0x54ee9b[_0x57f62e(0x1c9)]['length']>0x0){const _0x5a28b6=_0x54ee9b['chat'][_0x54ee9b['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5a28b6)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x2226f3,_0x1bbbb4,_0x3a1ec1){const _0x2003a3=_0x373225;if(!currentTablesState||!currentTablesState[_0x2226f3]||currentTablesState[_0x2226f3]['headers'][_0x1bbbb4]===undefined)return;const _0x2a4bc8=currentTablesState[_0x2226f3][_0x2003a3(0x1c0)],_0x18f017=currentTablesState[_0x2226f3][_0x2003a3(0x18c)][_0x1bbbb4];currentTablesState[_0x2226f3][_0x2003a3(0x18c)][_0x1bbbb4]=_0x3a1ec1;const _0x16d627='表格\x20['+_0x2a4bc8+_0x2003a3(0x1c8)+_0x18f017+_0x2003a3(0x204)+_0x3a1ec1+'”。';log(_0x16d627,_0x2003a3(0x14e));const _0x1a7529=getContext();if(_0x1a7529[_0x2003a3(0x1c9)]&&_0x1a7529[_0x2003a3(0x1c9)][_0x2003a3(0x130)]>0x0){const _0x337bd2=_0x1a7529[_0x2003a3(0x1c9)][_0x1a7529[_0x2003a3(0x1c9)][_0x2003a3(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x337bd2)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x3a2d9b,_0x988576){const _0x21960e=_0x373225,_0x447db7=currentTablesState?.[_0x3a2d9b];if(!_0x447db7||!_0x447db7[_0x21960e(0x120)][_0x988576])return;!_0x447db7[_0x21960e(0x1cc)]&&(_0x447db7[_0x21960e(0x1cc)]=Array(_0x447db7[_0x21960e(0x120)][_0x21960e(0x130)])[_0x21960e(0x195)](_0x21960e(0x141)));_0x447db7[_0x21960e(0x1cc)][_0x988576]=_0x21960e(0x154),updatedTables['add'](_0x3a2d9b);const _0x5efed5='表格\x20['+_0x447db7['name']+_0x21960e(0x197)+(_0x988576+0x1)+_0x21960e(0x159);log(_0x5efed5,_0x21960e(0x14e));const _0x598313=getContext();if(_0x598313['chat']?.[_0x21960e(0x130)]>0x0){const _0x5e183e=_0x598313['chat'][_0x598313[_0x21960e(0x1c9)][_0x21960e(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x5e183e)){await saveChat(),renderTables();return;}}await saveChatDebounced(),renderTables();}export async function restoreRow(_0x5c1349,_0x56db5a){const _0x41f34d=_0x373225,_0x35522f=currentTablesState?.[_0x5c1349];if(!_0x35522f||!_0x35522f[_0x41f34d(0x120)][_0x56db5a]||!_0x35522f['rowStatuses'])return;_0x35522f[_0x41f34d(0x1cc)][_0x56db5a]=_0x41f34d(0x141),updatedTables[_0x41f34d(0x189)](_0x5c1349);const _0x1970b5=_0x41f34d(0x1b7)+_0x35522f[_0x41f34d(0x1c0)]+_0x41f34d(0x197)+(_0x56db5a+0x1)+'\x20行已恢复。';log(_0x1970b5,_0x41f34d(0x14e));const _0x3118bd=getContext();if(_0x3118bd[_0x41f34d(0x1c9)]?.['length']>0x0){const _0x465d0f=_0x3118bd['chat'][_0x3118bd[_0x41f34d(0x1c9)][_0x41f34d(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x465d0f)){await saveChat(),renderTables();return;}}await saveChatDebounced(),renderTables();}export function commitPendingDeletions(){const _0x297d9f=_0x373225;if(!currentTablesState)return![];let _0xb5528b=0x0;currentTablesState[_0x297d9f(0x1af)]((_0x51fa24,_0x10dbaa)=>{const _0x2e5095=_0x297d9f;if(!_0x51fa24[_0x2e5095(0x1cc)]||_0x51fa24[_0x2e5095(0x1cc)][_0x2e5095(0x130)]===0x0)return;let _0x10658a=![];for(let _0x40fa53=_0x51fa24[_0x2e5095(0x120)][_0x2e5095(0x130)]-0x1;_0x40fa53>=0x0;_0x40fa53--){_0x51fa24[_0x2e5095(0x1cc)][_0x40fa53]===_0x2e5095(0x154)&&(_0x51fa24[_0x2e5095(0x120)][_0x2e5095(0x1a5)](_0x40fa53,0x1),_0x51fa24[_0x2e5095(0x1cc)]['splice'](_0x40fa53,0x1),_0xb5528b++,_0x10658a=!![]);}_0x10658a&&updatedTables[_0x2e5095(0x189)](_0x10dbaa);});if(_0xb5528b>0x0)return log('已提交并永久删除了\x20'+_0xb5528b+_0x297d9f(0x118),_0x297d9f(0x14e)),!![];return![];}export function insertColumn(_0x2969ec,_0x497230,_0x30e7ce){const _0x25a858=_0x373225;if(!currentTablesState||!currentTablesState[_0x2969ec])return;const _0x4be73b=currentTablesState[_0x2969ec],_0x4ac88d=_0x30e7ce==='left'?_0x497230:_0x497230+0x1,_0x3abb4a='新列';_0x4be73b[_0x25a858(0x18c)][_0x25a858(0x1a5)](_0x4ac88d,0x0,_0x3abb4a),_0x4be73b[_0x25a858(0x120)][_0x25a858(0x1af)](_0x3c663a=>_0x3c663a['splice'](_0x4ac88d,0x0,''));if(!_0x4be73b[_0x25a858(0x1da)])_0x4be73b[_0x25a858(0x1da)]=[];_0x4be73b[_0x25a858(0x1da)][_0x25a858(0x1a5)](_0x4ac88d,0x0,null);const _0x5bce12=_0x25a858(0x1b7)+_0x4be73b[_0x25a858(0x1c0)]+']\x20在第\x20'+(_0x497230+0x1)+'\x20列的'+(_0x30e7ce===_0x25a858(0x1b6)?'左侧':'右侧')+_0x25a858(0x131);log(_0x5bce12,_0x25a858(0x14e));const _0x57f0f8=getContext();if(_0x57f0f8[_0x25a858(0x1c9)]&&_0x57f0f8[_0x25a858(0x1c9)][_0x25a858(0x130)]>0x0){const _0x194404=_0x57f0f8[_0x25a858(0x1c9)][_0x57f0f8[_0x25a858(0x1c9)][_0x25a858(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x194404)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x5e0612,_0x486de2,_0x5bb4f2){const _0x551479=_0x373225;if(!currentTablesState||!currentTablesState[_0x5e0612])return;const _0xfbdc80=currentTablesState[_0x5e0612],_0x4de219=_0xfbdc80[_0x551479(0x18c)],_0x4ff5f4=_0xfbdc80[_0x551479(0x120)],_0x45b007=_0x5bb4f2===_0x551479(0x1b6)?_0x486de2-0x1:_0x486de2+0x1;if(_0x45b007<0x0||_0x45b007>=_0x4de219[_0x551479(0x130)]){log(_0x551479(0x113)+_0x486de2+_0x551479(0x1f4),_0x551479(0x1d1));return;}const [_0x16cc01]=_0x4de219['splice'](_0x486de2,0x1);_0x4de219[_0x551479(0x1a5)](_0x45b007,0x0,_0x16cc01),_0x4ff5f4[_0x551479(0x1af)](_0x197523=>{const _0x3f5c1c=_0x551479,[_0x4e3d98]=_0x197523[_0x3f5c1c(0x1a5)](_0x486de2,0x1);_0x197523[_0x3f5c1c(0x1a5)](_0x45b007,0x0,_0x4e3d98);});if(_0xfbdc80[_0x551479(0x1da)]&&_0xfbdc80[_0x551479(0x1da)][_0x551479(0x130)]>_0x486de2){const [_0xe3375e]=_0xfbdc80[_0x551479(0x1da)][_0x551479(0x1a5)](_0x486de2,0x1);_0xfbdc80[_0x551479(0x1da)][_0x551479(0x1a5)](_0x45b007,0x0,_0xe3375e);}const _0x49819c=_0x551479(0x1b7)+_0xfbdc80[_0x551479(0x1c0)]+_0x551479(0x161)+_0x16cc01+_0x551479(0x14a)+(_0x5bb4f2===_0x551479(0x1b6)?'左':'右')+'移动。';log(_0x49819c,_0x551479(0x14e));const _0x2b8a7b=getContext();if(_0x2b8a7b[_0x551479(0x1c9)]&&_0x2b8a7b[_0x551479(0x1c9)][_0x551479(0x130)]>0x0){const _0x12595f=_0x2b8a7b[_0x551479(0x1c9)][_0x2b8a7b['chat'][_0x551479(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x12595f)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x7a9bd1){const _0x195e99=_0x373225;if(!currentTablesState||!currentTablesState[_0x7a9bd1])return;const _0x2537a2=currentTablesState[_0x7a9bd1][_0x195e99(0x1c0)];currentTablesState[_0x195e99(0x1a5)](_0x7a9bd1,0x1);const _0xbe312a=_0x195e99(0x1b7)+_0x2537a2+_0x195e99(0x1e6);log(_0xbe312a,'success');const _0x2c98d2=getContext();if(_0x2c98d2[_0x195e99(0x1c9)]&&_0x2c98d2[_0x195e99(0x1c9)][_0x195e99(0x130)]>0x0){const _0x2408a4=_0x2c98d2[_0x195e99(0x1c9)][_0x2c98d2['chat'][_0x195e99(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x2408a4)){saveChat(),log(_0x195e99(0x1c1),'success');return;}}log(_0x195e99(0x1ff),'error'),saveChatDebounced();}export function addTable(_0x15f10b){const _0x4afac7=_0x373225;if(!_0x15f10b||!_0x15f10b[_0x4afac7(0x10c)]()){log(_0x4afac7(0x10b),_0x4afac7(0x191)),toastr[_0x4afac7(0x191)]('表格名称不能为空。','创建失败');return;}!currentTablesState&&loadTables();if(currentTablesState[_0x4afac7(0x1eb)](_0x46b4a0=>_0x46b4a0[_0x4afac7(0x1c0)]===_0x15f10b[_0x4afac7(0x10c)]())){log(_0x4afac7(0x1c6)+_0x15f10b+_0x4afac7(0x1d6),_0x4afac7(0x191)),toastr[_0x4afac7(0x191)](_0x4afac7(0x1a6)+_0x15f10b+'\x22\x20的表格已存在。',_0x4afac7(0x1e7));return;}const _0x4895a6={'name':_0x15f10b[_0x4afac7(0x10c)](),'headers':[_0x4afac7(0x11a)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':_0x4afac7(0x1ed),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState[_0x4afac7(0x1d0)](_0x4895a6);const _0x416ce9=_0x4afac7(0x125)+_0x15f10b[_0x4afac7(0x10c)]()+']。';log(_0x416ce9,_0x4afac7(0x178));const _0x354f16=getContext();if(_0x354f16[_0x4afac7(0x1c9)]&&_0x354f16['chat']['length']>0x0){const _0x5dbad6=_0x354f16[_0x4afac7(0x1c9)][_0x354f16['chat'][_0x4afac7(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x5dbad6)){saveChat(),log('新表格状态已强制写入最新消息并立即保存。','success');return;}}log(_0x4afac7(0x1e5),_0x4afac7(0x191)),saveChatDebounced();}export function renameTable(_0x1a1824,_0x209595){const _0x55f484=_0x373225;if(!currentTablesState||!currentTablesState[_0x1a1824]){log(_0x55f484(0x151),_0x55f484(0x191)),toastr['error'](_0x55f484(0x144),'重命名失败');return;}const _0x3750ec=_0x209595['trim']();if(!_0x3750ec){log('重命名失败:名称不能为空。','error'),toastr[_0x55f484(0x191)]('表格名称不能为空。',_0x55f484(0x19f));return;}if(currentTablesState['some']((_0x16088a,_0x7ab834)=>_0x7ab834!==_0x1a1824&&_0x16088a[_0x55f484(0x1c0)]===_0x3750ec)){log('重命名失败:名为\x20\x22'+_0x3750ec+_0x55f484(0x1d6),_0x55f484(0x191)),toastr[_0x55f484(0x191)](_0x55f484(0x1a6)+_0x3750ec+'\x22\x20的表格已存在。',_0x55f484(0x19f));return;}const _0x24b43f=currentTablesState[_0x1a1824]['name'];currentTablesState[_0x1a1824][_0x55f484(0x1c0)]=_0x3750ec,log(_0x55f484(0x112)+_0x24b43f+'\x22\x20已重命名为\x20\x22'+_0x3750ec+'\x22。',_0x55f484(0x178));const _0x2ba99d=getContext();if(_0x2ba99d[_0x55f484(0x1c9)]&&_0x2ba99d['chat'][_0x55f484(0x130)]>0x0){const _0x1d7878=_0x2ba99d['chat'][_0x2ba99d[_0x55f484(0x1c9)][_0x55f484(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x1d7878)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x3f7152,_0x5f4f9b){const _0x5c59b8=_0x373225;if(!currentTablesState||!currentTablesState[_0x3f7152])return;const _0x2728b8=_0x5f4f9b==='up'?_0x3f7152-0x1:_0x3f7152+0x1;if(_0x2728b8<0x0||_0x2728b8>=currentTablesState[_0x5c59b8(0x130)]){log(_0x5c59b8(0x153)+_0x3f7152+_0x5c59b8(0x1f4),_0x5c59b8(0x1d1));return;}const _0x251bd2=currentTablesState[_0x3f7152];currentTablesState[_0x3f7152]=currentTablesState[_0x2728b8],currentTablesState[_0x2728b8]=_0x251bd2;const _0x3c1cdb='表格\x20['+_0x251bd2[_0x5c59b8(0x1c0)]+_0x5c59b8(0x201);log(_0x3c1cdb,'success');const _0x59a33c=getContext();if(_0x59a33c[_0x5c59b8(0x1c9)]&&_0x59a33c[_0x5c59b8(0x1c9)][_0x5c59b8(0x130)]>0x0){const _0x13f4ea=_0x59a33c['chat'][_0x59a33c[_0x5c59b8(0x1c9)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x13f4ea)){saveChat(),log('表格顺序调整后的状态已强制写入最新消息并立即保存。',_0x5c59b8(0x178));return;}}log(_0x5c59b8(0x15d),'error'),saveChatDebounced();}export function updateTableRules(_0x2be7e3,_0xad0f1f){const _0x54012b=_0x373225;if(!currentTablesState||!currentTablesState[_0x2be7e3])return;const _0x2e2be5=currentTablesState[_0x2be7e3];_0x2e2be5[_0x54012b(0x199)]=_0xad0f1f[_0x54012b(0x199)],_0x2e2be5[_0x54012b(0x198)]=_0xad0f1f[_0x54012b(0x198)],_0x2e2be5['rule_delete']=_0xad0f1f[_0x54012b(0x205)],_0x2e2be5[_0x54012b(0x18d)]=_0xad0f1f[_0x54012b(0x18d)],_0x2e2be5[_0x54012b(0x16a)]=_0xad0f1f['charLimitRules'],_0x2e2be5[_0x54012b(0x16f)]=_0xad0f1f[_0x54012b(0x16f)],delete _0x2e2be5[_0x54012b(0x11b)];const _0x1997ca='表格\x20['+_0x2e2be5[_0x54012b(0x1c0)]+_0x54012b(0x17c);log(_0x1997ca,_0x54012b(0x14e));const _0x3713ad=getContext();if(_0x3713ad[_0x54012b(0x1c9)]&&_0x3713ad[_0x54012b(0x1c9)]['length']>0x0){const _0x3bd6b2=_0x3713ad['chat'][_0x3713ad[_0x54012b(0x1c9)][_0x54012b(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x3bd6b2)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x5337d1,_0x3bce00,_0x1105fd){const _0x1fbcfd=_0x373225;if(!currentTablesState||!currentTablesState[_0x5337d1]){log(_0x1fbcfd(0x13a)+_0x5337d1+_0x1fbcfd(0x1ce),'error');return;}const _0x433c26=currentTablesState[_0x5337d1];if(_0x3bce00>=_0x433c26[_0x1fbcfd(0x120)][_0x1fbcfd(0x130)]){log(_0x1fbcfd(0x12f)+_0x3bce00+'),已智能转换为在表格\x20['+_0x433c26[_0x1fbcfd(0x1c0)]+_0x1fbcfd(0x1fb),_0x1fbcfd(0x1d1)),insertRow(_0x5337d1,_0x1105fd);return;}const _0x4c46ff=_0x433c26[_0x1fbcfd(0x120)][_0x3bce00];for(const _0x24f69a in _0x1105fd){const _0x2b7530=parseInt(_0x24f69a,0xa);_0x2b7530<_0x4c46ff[_0x1fbcfd(0x130)]&&(_0x4c46ff[_0x2b7530]=_0x1105fd[_0x2b7530],addHighlight(_0x5337d1,_0x3bce00,_0x2b7530));}updatedTables['add'](_0x5337d1);const _0x28c364=_0x1fbcfd(0x106)+_0x433c26['name']+_0x1fbcfd(0x197)+(_0x3bce00+0x1)+_0x1fbcfd(0x118);log(_0x28c364,_0x1fbcfd(0x14e));const _0x564a4a=getContext();if(_0x564a4a[_0x1fbcfd(0x1c9)]&&_0x564a4a[_0x1fbcfd(0x1c9)][_0x1fbcfd(0x130)]>0x0){const _0x2807bc=_0x564a4a[_0x1fbcfd(0x1c9)][_0x564a4a[_0x1fbcfd(0x1c9)][_0x1fbcfd(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x2807bc)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x5cce5c=_0x373225;if(!currentTablesState){log(_0x5cce5c(0x169),_0x5cce5c(0x191));return;}currentTablesState[_0x5cce5c(0x1af)]((_0x1fa511,_0x467623)=>{const _0x3e09aa=_0x5cce5c;_0x1fa511['rows'][_0x3e09aa(0x130)]>0x0&&updatedTables[_0x3e09aa(0x189)](_0x467623),_0x1fa511[_0x3e09aa(0x120)]=[],_0x1fa511[_0x3e09aa(0x1cc)]=[];}),log('所有表格的行数据已在内存中清空。',_0x5cce5c(0x1d1));const _0x6040b5=getContext();if(_0x6040b5[_0x5cce5c(0x1c9)]&&_0x6040b5['chat'][_0x5cce5c(0x130)]>0x0){const _0x5b4891=_0x6040b5['chat'][_0x6040b5[_0x5cce5c(0x1c9)][_0x5cce5c(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x5b4891)){saveChat(),log('清空行数据后的状态已强制写入最新消息并立即保存。',_0x5cce5c(0x178)),toastr[_0x5cce5c(0x178)](_0x5cce5c(0x111),_0x5cce5c(0x19b));return;}}log(_0x5cce5c(0x1f3),_0x5cce5c(0x191)),saveChatDebounced();}function checkTableRules(_0x657002){const _0x5bd2ad=_0x373225;let _0x4c8b39=[];_0x657002[_0x5bd2ad(0x16f)]&&_0x657002[_0x5bd2ad(0x16f)]>0x0&&_0x657002[_0x5bd2ad(0x120)][_0x5bd2ad(0x130)]>_0x657002[_0x5bd2ad(0x16f)]&&_0x4c8b39[_0x5bd2ad(0x1d0)](_0x5bd2ad(0x107)+_0x657002[_0x5bd2ad(0x1c0)]+_0x5bd2ad(0x1fd)+_0x657002['rowLimitRule']+_0x5bd2ad(0x1fc)+_0x657002['rowLimitRule']+_0x5bd2ad(0x12b));const _0x3a7cb5=_0x657002['charLimitRules']||{};for(const _0x4d2ec1 in _0x3a7cb5){const _0x2da230=parseInt(_0x4d2ec1,0xa),_0x37f154=_0x3a7cb5[_0x2da230];if(_0x37f154>0x0&&_0x2da230>=0x0&&_0x2da230<_0x657002[_0x5bd2ad(0x18c)][_0x5bd2ad(0x130)]){const _0x2a4155=_0x657002[_0x5bd2ad(0x18c)][_0x2da230],_0x5a4efa=[];_0x657002[_0x5bd2ad(0x120)]['forEach']((_0x2b14f8,_0x32f6ee)=>{const _0x2eaa0b=_0x5bd2ad;if(_0x657002[_0x2eaa0b(0x1cc)]&&_0x657002[_0x2eaa0b(0x1cc)][_0x32f6ee]===_0x2eaa0b(0x154))return;const _0x21b6c6=_0x2b14f8[_0x2da230]||'';_0x21b6c6[_0x2eaa0b(0x130)]>_0x37f154&&_0x5a4efa[_0x2eaa0b(0x1d0)](_0x32f6ee);});if(_0x5a4efa[_0x5bd2ad(0x130)]>0x0){const _0x2f5a64=_0x5a4efa[_0x5bd2ad(0x172)]('、');_0x4c8b39['push'](_0x5bd2ad(0x107)+_0x657002[_0x5bd2ad(0x1c0)]+_0x5bd2ad(0x121)+_0x2f5a64+_0x5bd2ad(0x1b0)+_0x2a4155+_0x5bd2ad(0x115)+_0x37f154+_0x5bd2ad(0x1ca));}}}return _0x4c8b39[_0x5bd2ad(0x172)]('\x0a');}export function convertTablesToCsvString(){const _0x3ba957=_0x373225;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x3a4154='';return currentTablesState[_0x3ba957(0x1af)]((_0x360180,_0x8b7521)=>{const _0x3c3880=_0x3ba957;_0x3a4154+=_0x3c3880(0x1c2)+_0x8b7521+':'+_0x360180['name']+'\x0a',_0x3a4154+=_0x3c3880(0x1e9)+(_0x360180[_0x3c3880(0x199)]||'无')+'\x0a';const _0x30033f=_0x360180[_0x3c3880(0x1c0)]['replace'](/\s/g,'')+'内容';_0x3a4154+='<'+_0x30033f+'>\x0a';const _0x237579=_0x360180[_0x3c3880(0x18c)]['map']((_0x17e539,_0x2dcaca)=>_0x2dcaca+':'+_0x17e539)['join'](',');_0x3a4154+=_0x3c3880(0x10d)+_0x237579+'\x0a';_0x360180['rows']['length']===0x0||_0x360180[_0x3c3880(0x120)]['every']((_0x4c2d6d,_0xe92f22)=>_0x360180['rowStatuses']&&_0x360180[_0x3c3880(0x1cc)][_0xe92f22]===_0x3c3880(0x154))?_0x3a4154+='(该表当前内容为空)\x0a':_0x360180['rows'][_0x3c3880(0x1af)]((_0x30ec44,_0x2cad0f)=>{const _0x3be45e=_0x3c3880;if(_0x360180[_0x3be45e(0x1cc)]&&_0x360180[_0x3be45e(0x1cc)][_0x2cad0f]==='pending-deletion')return;if(Array['isArray'](_0x30ec44)){const _0x1e7f20=_0x30ec44[_0x3be45e(0x1c5)](_0x504172=>{const _0x27059e=_0x3be45e;return _0x504172===null||_0x504172===undefined||_0x504172===''?'未知':_0x504172[_0x27059e(0x15f)]();})[_0x3be45e(0x172)](',');_0x3a4154+=_0x2cad0f+','+_0x1e7f20+'\x0a';}});const _0x480e7f=checkTableRules(_0x360180);_0x480e7f&&(_0x3a4154+=_0x480e7f+'\x0a'),_0x3a4154+='\x0a',_0x3a4154+=_0x3c3880(0x1bd)+(_0x360180[_0x3c3880(0x198)]||'允许')+'\x0a',_0x3a4154+=_0x3c3880(0x10a)+(_0x360180[_0x3c3880(0x205)]||'允许')+'\x0a',_0x3a4154+='【修改】:\x20'+(_0x360180['rule_update']||'允许')+'\x0a',_0x8b7521{const _0x5deb97=_0x2e82cb;_0x29d7c4+='\x0a<'+_0x5e6b1b[_0x5deb97(0x1c0)]+'>\x0a';const _0x1ee771=_0x5e6b1b[_0x5deb97(0x18c)][_0x5deb97(0x1c5)]((_0x384ffc,_0x5248af)=>String['fromCharCode'](0x41+_0x5248af)+':'+_0x384ffc)[_0x5deb97(0x172)](',');_0x29d7c4+=_0x1ee771+'\x0a';const _0x551152=_0x5e6b1b['rows']['filter']((_0x43aca1,_0x1149a1)=>!_0x5e6b1b['rowStatuses']||_0x5e6b1b[_0x5deb97(0x1cc)][_0x1149a1]!=='pending-deletion');_0x551152[_0x5deb97(0x130)]>0x0?_0x551152[_0x5deb97(0x1af)]((_0xbca138,_0x25672f)=>{const _0x4089b0=_0x5deb97;if(Array['isArray'](_0xbca138)){const _0x670cdf=_0xbca138[_0x4089b0(0x172)](','),_0x2b3f92=_0x5e6b1b[_0x4089b0(0x120)][_0x4089b0(0x19c)](_0xbca138);_0x29d7c4+=_0x2b3f92+0x1+':'+_0x670cdf+'\x0a';}}):_0x29d7c4+='(该表当前内容为空)\x0a',_0x29d7c4+='\x0a';}),_0x29d7c4['trim']();}loadTables();export function getBatchFillerRuleTemplate(){return extension_settings[extensionName]?.['batch_filler_rule_template']??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x4872b2){const _0x41ec1a=_0x373225;extension_settings[extensionName][_0x41ec1a(0x1d9)]=_0x4872b2,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x5b08d9=_0x373225;return extension_settings[extensionName]?.[_0x5b08d9(0x101)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x1751ba){const _0x5673c6=_0x373225;extension_settings[extensionName][_0x5673c6(0x101)]=_0x1751ba,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x53b302=_0x373225;return extension_settings[extensionName]?.[_0x53b302(0x1b3)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x4a3629){const _0x545e83=_0x373225;if(!_0x4a3629){log(_0x545e83(0x1b5),_0x545e83(0x1d1));return;}const _0x2cab68=_0x4a3629['match'](/([\s\S]*?)<\/Amily2Edit>/);if(!_0x2cab68||!_0x2cab68[0x1]){log(_0x545e83(0x1f5),_0x545e83(0x1d1));return;}let _0xe3bf4=_0x2cab68[0x1][_0x545e83(0x135)](//g,'')[_0x545e83(0x10c)]();if(!_0xe3bf4){log(_0x545e83(0x1c4),_0x545e83(0x14e));return;}const _0x472275=_0xe3bf4[_0x545e83(0x146)]('\x0a')[_0x545e83(0x206)](_0x1ec43f=>_0x1ec43f[_0x545e83(0x10c)]()!=='');log(_0x545e83(0x1be)+_0x472275['length']+_0x545e83(0x16c),_0x545e83(0x14e));const _0x354dbf={'insertRow':(_0x19b0db,_0x410929)=>{const _0x2cb702=_0x545e83;log(_0x2cb702(0x1d8)+_0x19b0db+',\x20data='+JSON['stringify'](_0x410929)+')',_0x2cb702(0x14e)),insertRow(_0x19b0db,_0x410929);},'deleteRow':(_0x1d204b,_0x8b3706)=>{const _0x3e6a3d=_0x545e83;log(_0x3e6a3d(0x1b1)+_0x1d204b+',\x20rowIndex='+_0x8b3706+')',_0x3e6a3d(0x14e)),deleteRow(_0x1d204b,_0x8b3706);},'updateRow':(_0x3ec711,_0xd15ecb,_0x55f0c9)=>{const _0x2f42e2=_0x545e83;log('执行AI指令:\x20updateRow(tableIndex='+_0x3ec711+_0x2f42e2(0x104)+_0xd15ecb+_0x2f42e2(0x175)+JSON[_0x2f42e2(0x10e)](_0x55f0c9)+')','info'),updateRow(_0x3ec711,_0xd15ecb,_0x55f0c9);}};try{const _0x495c5a=Object[_0x545e83(0x1f0)](async function(){})[_0x545e83(0x14c)],_0x149dd2=new _0x495c5a(_0x545e83(0x126),_0x545e83(0x127)+_0xe3bf4+_0x545e83(0x18b));await _0x149dd2(_0x354dbf),log('所有AI指令已成功执行完毕。',_0x545e83(0x178)),toastr[_0x545e83(0x178)](_0x545e83(0x152),_0x545e83(0x116)),document['dispatchEvent'](new CustomEvent(_0x545e83(0x1e1)));}catch(_0x7b3204){log(_0x545e83(0x105)+_0x7b3204[_0x545e83(0x196)],_0x545e83(0x191)),toastr[_0x545e83(0x191)]('执行AI指令时出错:\x20'+_0x7b3204[_0x545e83(0x196)],_0x545e83(0x157));}}export function saveAiTemplate(_0x827724){const _0x17d5c5=_0x373225;extension_settings[extensionName][_0x17d5c5(0x1b3)]=_0x827724,saveSettingsDebounced();}function _0x4c40(_0x1d17c2,_0x59ba13){const _0x162f90=_0x162f();return _0x4c40=function(_0x4c4064,_0x49c98d){_0x4c4064=_0x4c4064-0x101;let _0x908124=_0x162f90[_0x4c4064];return _0x908124;},_0x4c40(_0x1d17c2,_0x59ba13);}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x42f269=![]){const _0x42acbc=_0x373225;if(!currentTablesState){log(_0x42acbc(0x19e),'error'),toastr[_0x42acbc(0x191)]('没有可导出的表格数据。');return;}let _0x361a1f,_0x3c84d9,_0xe418bb;_0x42f269?(_0x361a1f=JSON[_0x42acbc(0x155)](JSON[_0x42acbc(0x10e)](currentTablesState)),_0x3c84d9=_0x42acbc(0x158),_0xe418bb=_0x42acbc(0x17e)):(_0x361a1f=currentTablesState[_0x42acbc(0x1c5)](_0x3b8732=>({'name':_0x3b8732[_0x42acbc(0x1c0)],'headers':_0x3b8732[_0x42acbc(0x18c)],'columnWidths':_0x3b8732[_0x42acbc(0x1da)]||[],'note':_0x3b8732[_0x42acbc(0x199)],'rule_add':_0x3b8732['rule_add'],'rule_delete':_0x3b8732[_0x42acbc(0x205)],'rule_update':_0x3b8732[_0x42acbc(0x18d)],'charLimitRules':_0x3b8732['charLimitRules']||{},'rowLimitRule':_0x3b8732[_0x42acbc(0x16f)]||0x0,'rows':[],'rowStatuses':[]})),_0x3c84d9=_0x42acbc(0x156),_0xe418bb=_0x42acbc(0x16d));const _0x78a6b4={'version':_0x42acbc(0x145),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x361a1f},_0x57d598=new Blob([JSON['stringify'](_0x78a6b4,null,0x2)],{'type':'application/json'}),_0x5f3dea=URL[_0x42acbc(0x149)](_0x57d598),_0x17551a=document['createElement']('a');_0x17551a[_0x42acbc(0x1a3)]=_0x5f3dea,_0x17551a[_0x42acbc(0x1f9)]=_0x42acbc(0x1d7)+_0xe418bb+'-'+new Date()['toISOString']()['slice'](0x0,0xa)+'.json',document[_0x42acbc(0x1df)][_0x42acbc(0x14f)](_0x17551a),_0x17551a[_0x42acbc(0x174)](),document[_0x42acbc(0x1df)][_0x42acbc(0x1a8)](_0x17551a),URL[_0x42acbc(0x1ba)](_0x5f3dea),log('【'+_0xe418bb+_0x42acbc(0x139),_0x42acbc(0x178)),toastr[_0x42acbc(0x178)]('【'+_0xe418bb+_0x42acbc(0x129),'导出成功');}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x25de51){const _0x493983=_0x373225,_0x372acd=document[_0x493983(0x1f1)](_0x493983(0x11f));_0x372acd[_0x493983(0x15c)]=_0x493983(0x203),_0x372acd[_0x493983(0x12a)]=_0x493983(0x1b4),_0x372acd['onchange']=_0x5aa18d=>{const _0x2f9252=_0x493983,_0x1c2adf=_0x5aa18d[_0x2f9252(0x16b)]['files'][0x0];if(!_0x1c2adf)return;const _0x3259ac=new FileReader();_0x3259ac['onload']=_0x3914d7=>{const _0x8e6e78=_0x2f9252;try{const _0x368b71=JSON[_0x8e6e78(0x155)](_0x3914d7[_0x8e6e78(0x16b)][_0x8e6e78(0x1a7)]);if(!_0x368b71[_0x8e6e78(0x12e)]||!Array[_0x8e6e78(0x1cf)](_0x368b71['tables']))throw new Error('文件格式无效或缺少版本号/表格数据。');const _0x170f61=window['confirm'](_0x8e6e78(0x1c7));if(!_0x170f61){log('用户取消了导入操作。',_0x8e6e78(0x14e)),toastr[_0x8e6e78(0x14e)]('导入操作已取消。');return;}if(_0x368b71[_0x8e6e78(0x12e)]===_0x8e6e78(0x145))saveBatchFillerRuleTemplate(_0x368b71[_0x8e6e78(0x16e)]||''),saveBatchFillerFlowTemplate(_0x368b71['batchFillerFlowTemplate']||''),saveAiTemplate(_0x368b71[_0x8e6e78(0x1ad)]||'');else{if(_0x368b71[_0x8e6e78(0x1a0)]!==undefined&&_0x368b71[_0x8e6e78(0x190)]!==undefined)saveBatchFillerRuleTemplate(_0x368b71[_0x8e6e78(0x1a0)]||''),saveBatchFillerFlowTemplate(_0x368b71[_0x8e6e78(0x190)]||''),saveAiTemplate(_0x368b71[_0x8e6e78(0x190)]||'');else _0x368b71[_0x8e6e78(0x180)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x368b71[_0x8e6e78(0x180)]||''),saveAiTemplate(_0x368b71[_0x8e6e78(0x180)]||'')):log(_0x8e6e78(0x110),_0x8e6e78(0x1d1));}const _0x1a61f9=_0x368b71[_0x8e6e78(0x1dc)];_0x1a61f9['forEach'](_0x168c4b=>{const _0x2fbfff=_0x8e6e78;if(_0x168c4b[_0x2fbfff(0x1c0)]===undefined||_0x168c4b[_0x2fbfff(0x18c)]===undefined||_0x168c4b[_0x2fbfff(0x120)]===undefined)throw new Error(_0x2fbfff(0x137)+JSON[_0x2fbfff(0x10e)](_0x168c4b));if(_0x168c4b[_0x2fbfff(0x199)]===undefined)_0x168c4b[_0x2fbfff(0x199)]='无';if(_0x168c4b['rule_add']===undefined)_0x168c4b['rule_add']='允许';if(_0x168c4b[_0x2fbfff(0x205)]===undefined)_0x168c4b[_0x2fbfff(0x205)]='允许';if(_0x168c4b[_0x2fbfff(0x18d)]===undefined)_0x168c4b['rule_update']='允许';if(_0x168c4b[_0x2fbfff(0x11b)]&&!_0x168c4b['charLimitRules'])_0x168c4b[_0x2fbfff(0x16a)]={},_0x168c4b[_0x2fbfff(0x11b)]['columnIndex']!==-0x1&&_0x168c4b[_0x2fbfff(0x11b)][_0x2fbfff(0x17d)]>0x0&&(_0x168c4b[_0x2fbfff(0x16a)][_0x168c4b[_0x2fbfff(0x11b)][_0x2fbfff(0x177)]]=_0x168c4b['charLimitRule'][_0x2fbfff(0x17d)]);else _0x168c4b[_0x2fbfff(0x16a)]===undefined&&(_0x168c4b['charLimitRules']={});delete _0x168c4b[_0x2fbfff(0x11b)],!_0x168c4b['rowStatuses']&&(_0x168c4b['rowStatuses']=Array(_0x168c4b[_0x2fbfff(0x120)][_0x2fbfff(0x130)])[_0x2fbfff(0x195)](_0x2fbfff(0x141))),_0x168c4b[_0x2fbfff(0x16f)]===undefined&&(_0x168c4b[_0x2fbfff(0x16f)]=0x0),_0x168c4b[_0x2fbfff(0x1da)]===undefined&&(_0x168c4b[_0x2fbfff(0x1da)]=[]);}),setMemoryState(_0x1a61f9);const _0x575ef5=getContext();if(_0x575ef5[_0x8e6e78(0x1c9)]&&_0x575ef5[_0x8e6e78(0x1c9)][_0x8e6e78(0x130)]>0x0){const _0x536a86=_0x575ef5['chat'][_0x575ef5[_0x8e6e78(0x1c9)][_0x8e6e78(0x130)]-0x1];saveStateToMessage(getMemoryState(),_0x536a86)&&(saveChat(),log(_0x8e6e78(0x1de),'success'));}else saveChatDebounced();log(_0x8e6e78(0x186),_0x8e6e78(0x178)),toastr['success']('预设已成功导入!',_0x8e6e78(0x1e4)),typeof _0x25de51==='function'&&_0x25de51();}catch(_0x4f7ae){log(_0x8e6e78(0x188)+_0x4f7ae[_0x8e6e78(0x196)],'error'),toastr[_0x8e6e78(0x191)](_0x8e6e78(0x1c3)+_0x4f7ae[_0x8e6e78(0x196)],'错误');}},_0x3259ac[_0x2f9252(0x117)](_0x1c2adf);},_0x372acd[_0x493983(0x174)]();}export async function rollbackState(){const _0x43af7e=_0x373225,_0x20654d=getContext();if(!_0x20654d||!_0x20654d[_0x43af7e(0x1c9)]||_0x20654d[_0x43af7e(0x1c9)][_0x43af7e(0x130)]<0x2)return log(_0x43af7e(0x1bf),_0x43af7e(0x1d1)),toastr['warning'](_0x43af7e(0x10f)),![];const _0x11a86e=_0x20654d[_0x43af7e(0x1c9)],_0x2e24bd=_0x11a86e[_0x43af7e(0x130)]-0x1,_0x4142ae=_0x11a86e[_0x2e24bd];log(_0x43af7e(0x124)+(_0x2e24bd-0x1)+_0x43af7e(0x1ea),'info');const _0x33ee25=loadTables(_0x2e24bd);if(!_0x33ee25)return log('未能在上一楼找到可用的表格状态,无法回退。','error'),toastr[_0x43af7e(0x191)]('未能在上一楼找到可用的表格状态。'),![];setMemoryState(_0x33ee25);if(saveStateToMessage(_0x33ee25,_0x4142ae))await saveChat(),log(_0x43af7e(0x164),_0x43af7e(0x178));else return log(_0x43af7e(0x171),_0x43af7e(0x191)),toastr[_0x43af7e(0x191)]('未能保存回退状态,操作中止。'),![];return renderTables(),updateOrInsertTableInChat(),log(_0x43af7e(0x114),'info'),!![];}export async function rollbackAndRefill(){const _0x3d0cf2=_0x373225;toastr[_0x3d0cf2(0x14e)](_0x3d0cf2(0x1cb));const _0x1baf39=await rollbackState();if(!_0x1baf39){toastr[_0x3d0cf2(0x191)](_0x3d0cf2(0x1d4));return;}toastr[_0x3d0cf2(0x178)](_0x3d0cf2(0x162));const _0x35e43d=getContext(),_0x2d479c=_0x35e43d[_0x3d0cf2(0x1c9)][_0x35e43d[_0x3d0cf2(0x1c9)][_0x3d0cf2(0x130)]-0x1];try{await fillWithSecondaryApi(_0x2d479c,!![]),log(_0x3d0cf2(0x1d5),_0x3d0cf2(0x178));}catch(_0x370fde){log(_0x3d0cf2(0x1a4)+_0x370fde[_0x3d0cf2(0x196)],_0x3d0cf2(0x191)),toastr[_0x3d0cf2(0x191)](_0x3d0cf2(0x19a)+_0x370fde[_0x3d0cf2(0x196)]);}}export function updateColumnWidth(_0x46ea10,_0x4d416d,_0x131746){const _0x3f925d=_0x373225;if(!currentTablesState||!currentTablesState[_0x46ea10])return;const _0x40afde=currentTablesState[_0x46ea10];!_0x40afde['columnWidths']&&(_0x40afde[_0x3f925d(0x1da)]=[]);while(_0x40afde[_0x3f925d(0x1da)][_0x3f925d(0x130)]<_0x40afde[_0x3f925d(0x18c)][_0x3f925d(0x130)]){_0x40afde['columnWidths']['push'](null);}_0x40afde[_0x3f925d(0x1da)][_0x4d416d]=_0x131746;const _0x206778=getContext();if(_0x206778[_0x3f925d(0x1c9)]&&_0x206778['chat']['length']>0x0){const _0xfffaa9=_0x206778[_0x3f925d(0x1c9)][_0x206778[_0x3f925d(0x1c9)][_0x3f925d(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0xfffaa9)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x1127af=_0x373225,_0x4ca1bb=getMemoryState();if(!_0x4ca1bb||_0x4ca1bb[_0x1127af(0x130)]===0x0)return!![];return _0x4ca1bb[_0x1127af(0x1e8)](_0x5759ce=>!_0x5759ce[_0x1127af(0x120)]||_0x5759ce[_0x1127af(0x120)][_0x1127af(0x130)]===0x0);}export function clearGlobalPreset(){const _0x31a974=_0x373225;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x31a974(0x1ec)]){const _0xda6e51=window[_0x31a974(0x19d)](_0x31a974(0x148));_0xda6e51?(delete extension_settings[extensionName]['global_table_preset'],saveSettingsDebounced(),log(_0x31a974(0x138),_0x31a974(0x178)),toastr[_0x31a974(0x178)](_0x31a974(0x123),_0x31a974(0x1b8))):(log(_0x31a974(0x142),_0x31a974(0x14e)),toastr[_0x31a974(0x14e)]('操作已取消。'));}else log(_0x31a974(0x150),_0x31a974(0x14e)),toastr[_0x31a974(0x14e)](_0x31a974(0x176),'提示');}export function importGlobalPreset(_0x5a1455){const _0x5c1140=_0x373225,_0x1d0349=document[_0x5c1140(0x1f1)](_0x5c1140(0x11f));_0x1d0349['type']=_0x5c1140(0x203),_0x1d0349[_0x5c1140(0x12a)]=_0x5c1140(0x1b4),_0x1d0349[_0x5c1140(0x134)]=_0x39a6ef=>{const _0x55898a=_0x5c1140,_0x1b23bf=_0x39a6ef[_0x55898a(0x16b)][_0x55898a(0x1b2)][0x0];if(!_0x1b23bf)return;const _0x420294=new FileReader();_0x420294[_0x55898a(0x11d)]=_0x227325=>{const _0x541dbd=_0x55898a;try{const _0x44030c=JSON[_0x541dbd(0x155)](_0x227325['target'][_0x541dbd(0x1a7)]);if(!_0x44030c[_0x541dbd(0x12e)]||!Array[_0x541dbd(0x1cf)](_0x44030c['tables']))throw new Error(_0x541dbd(0x163));const _0x3008f3=window[_0x541dbd(0x19d)](_0x541dbd(0x108));if(!_0x3008f3){log('用户取消了全局预设导入操作。',_0x541dbd(0x14e)),toastr['info'](_0x541dbd(0x14d));return;}const _0x3479bf=_0x44030c[_0x541dbd(0x1dc)]['map'](_0x41e941=>({'name':_0x41e941[_0x541dbd(0x1c0)],'headers':_0x41e941['headers'],'note':_0x41e941['note'],'rule_add':_0x41e941[_0x541dbd(0x198)],'rule_delete':_0x41e941['rule_delete'],'rule_update':_0x41e941[_0x541dbd(0x18d)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x541dbd(0x1ec)]={'version':_0x44030c['version'],'tables':_0x3479bf,'batchFillerRuleTemplate':_0x44030c['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x44030c[_0x541dbd(0x15e)]},saveSettingsDebounced();if(_0x44030c['version']===_0x541dbd(0x145))saveBatchFillerRuleTemplate(_0x44030c[_0x541dbd(0x16e)]||''),saveBatchFillerFlowTemplate(_0x44030c['batchFillerFlowTemplate']||''),saveAiTemplate(_0x44030c[_0x541dbd(0x1ad)]||'');else{if(_0x44030c[_0x541dbd(0x1a0)]!==undefined&&_0x44030c[_0x541dbd(0x190)]!==undefined)saveBatchFillerRuleTemplate(_0x44030c[_0x541dbd(0x1a0)]||''),saveBatchFillerFlowTemplate(_0x44030c[_0x541dbd(0x190)]||''),saveAiTemplate(_0x44030c[_0x541dbd(0x190)]||'');else _0x44030c[_0x541dbd(0x180)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x44030c[_0x541dbd(0x180)]||''),saveAiTemplate(_0x44030c[_0x541dbd(0x180)]||''));}log(_0x541dbd(0x13f),_0x541dbd(0x178)),toastr[_0x541dbd(0x178)](_0x541dbd(0x1f7),'设置成功'),typeof _0x5a1455==='function'&&_0x5a1455();}catch(_0x5dc607){log(_0x541dbd(0x200)+_0x5dc607[_0x541dbd(0x196)],'error'),toastr[_0x541dbd(0x191)](_0x541dbd(0x1c3)+_0x5dc607[_0x541dbd(0x196)],'错误');}},_0x420294[_0x55898a(0x117)](_0x1b23bf);},_0x1d0349[_0x5c1140(0x174)]();} From 2dd2a46b0e32efb9fd087f8379bac83bd17a9dd1 Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:03:49 +0800 Subject: [PATCH 09/32] Update executor.js --- core/table-system/executor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/table-system/executor.js b/core/table-system/executor.js index 10c307c..22fdb4b 100644 --- a/core/table-system/executor.js +++ b/core/table-system/executor.js @@ -1 +1 @@ -(function(_0x2b1dd0,_0x2cb771){const _0x5974f=_0x1140,_0xd42c4d=_0x2b1dd0();while(!![]){try{const _0x5e0023=parseInt(_0x5974f(0xdf))/0x1+parseInt(_0x5974f(0xb8))/0x2+-parseInt(_0x5974f(0xc1))/0x3*(parseInt(_0x5974f(0xc6))/0x4)+-parseInt(_0x5974f(0xbc))/0x5*(-parseInt(_0x5974f(0xb1))/0x6)+-parseInt(_0x5974f(0xb2))/0x7*(-parseInt(_0x5974f(0xda))/0x8)+parseInt(_0x5974f(0xdd))/0x9*(-parseInt(_0x5974f(0xc3))/0xa)+parseInt(_0x5974f(0xc2))/0xb*(-parseInt(_0x5974f(0xb0))/0xc);if(_0x5e0023===_0x2cb771)break;else _0xd42c4d['push'](_0xd42c4d['shift']());}catch(_0x310336){_0xd42c4d['push'](_0xd42c4d['shift']());}}}(_0x5e22,0x8abee));import{log}from'./logger.js';function _0x1140(_0x277865,_0x58e9f3){const _0x5e22b5=_0x5e22();return _0x1140=function(_0x114003,_0x1c4fc0){_0x114003=_0x114003-0xaf;let _0x352a3e=_0x5e22b5[_0x114003];return _0x352a3e;},_0x1140(_0x277865,_0x58e9f3);}function insertRow(_0x3b8a00,_0x483031,_0x57c71c){const _0x3dce36=_0x1140;if(!_0x3b8a00[_0x483031])return log(_0x3dce36(0xd9)+_0x483031+_0x3dce36(0xde),'error'),{'state':_0x3b8a00,'changes':[]};const _0x16e29e=_0x3b8a00[_0x483031],_0x235dca=_0x16e29e[_0x3dce36(0xc4)][_0x3dce36(0xd7)],_0x12a217=Array(_0x235dca)[_0x3dce36(0xd2)](''),_0x242f10=[],_0x253f52=_0x16e29e['rows'][_0x3dce36(0xd7)];for(const _0xba2838 in _0x57c71c){const _0x3b302e=parseInt(_0xba2838,0xa);_0x3b302e<_0x235dca&&(_0x12a217[_0x3b302e]=_0x57c71c[_0xba2838],_0x242f10['push']({'type':_0x3dce36(0xaf),'tableIndex':_0x483031,'rowIndex':_0x253f52,'colIndex':_0x3b302e}));}return _0x16e29e[_0x3dce36(0xc5)][_0x3dce36(0xca)](_0x12a217),{'state':_0x3b8a00,'changes':_0x242f10};}function _0x5e22(){const _0x1a1f94=['99876vaDHak','6oZDQMC','21yzKzQF','AI指令错误:尝试更新不存在的表格\x20','forEach','\x22\x20的参数时出错:\x20','stringify','updateRow(','1386562hUtLPw','info','推演指令\x20\x22','changes','3559895xXJjcp','指令格式错误,无法解析:\x20\x22','deleteRow(','replace','检测到AI指令块,开始推演...','3dyaTfe','671ZAClKH','10MGvrLy','headers','rows','2893880aaQITS','state','splice','parse','push','args','name','AI指令错误:尝试删除不存在的表格\x20','trim','\x20或行\x20','insertRow(','成功推演指令:\x20','fill','解析函数\x20\x22','error','\x22。已阻止执行。','filter','length','\x22\x20时发生运行时错误:\x20','AI指令错误:尝试在不存在的表格索引\x20','2031832FZgnvg','\x20超出范围,自动转换为\x20insertRow。','match','9892710GdYChe','\x20中插入行。','731468OVMKJD','split','startsWith','update'];_0x5e22=function(){return _0x1a1f94;};return _0x5e22();}function updateRow(_0x1cd88e,_0x219933,_0x6bad1a,_0x8d0feb){const _0x33f887=_0x1140;if(!_0x1cd88e[_0x219933])return log(_0x33f887(0xb3)+_0x219933+'。','error'),{'state':_0x1cd88e,'changes':[]};const _0x43c33b=_0x1cd88e[_0x219933];if(_0x6bad1a>=_0x43c33b[_0x33f887(0xc5)]['length'])return log('AI指令修正:updateRow\x20的行索引\x20'+_0x6bad1a+_0x33f887(0xdb),'warn'),insertRow(_0x1cd88e,_0x219933,_0x8d0feb);const _0x16c8d4=_0x43c33b[_0x33f887(0xc5)][_0x6bad1a],_0x194d7e=[];for(const _0x51506e in _0x8d0feb){const _0x32220b=parseInt(_0x51506e,0xa);_0x32220b<_0x16c8d4[_0x33f887(0xd7)]&&(_0x16c8d4[_0x32220b]=_0x8d0feb[_0x51506e],_0x194d7e['push']({'type':_0x33f887(0xaf),'tableIndex':_0x219933,'rowIndex':_0x6bad1a,'colIndex':_0x32220b}));}return{'state':_0x1cd88e,'changes':_0x194d7e};}function deleteRow(_0x42729c,_0x1ae91a,_0x3aaba8){const _0x3e2463=_0x1140;if(!_0x42729c[_0x1ae91a]||!_0x42729c[_0x1ae91a][_0x3e2463(0xc5)][_0x3aaba8])return log(_0x3e2463(0xcd)+_0x1ae91a+_0x3e2463(0xcf)+_0x3aaba8+'。','error'),{'state':_0x42729c,'changes':[]};return _0x42729c[_0x1ae91a][_0x3e2463(0xc5)][_0x3e2463(0xc8)](_0x3aaba8,0x1),{'state':_0x42729c,'changes':[]};}const allowedFunctions={'insertRow':insertRow,'updateRow':updateRow,'deleteRow':deleteRow};function parseFunctionCall(_0x50bff7){const _0xafbf74=_0x1140,_0x2f054c=_0x50bff7['trim']()[_0xafbf74(0xdc)](/(\w+)\((.*)\)/);if(!_0x2f054c)return log(_0xafbf74(0xbd)+_0x50bff7+'\x22',_0xafbf74(0xd4)),null;const _0x5727f2=_0x2f054c[0x1],_0x4bc4ef=_0x2f054c[0x2];if(!allowedFunctions[_0x5727f2])return log('检测到非法函数调用:\x20\x22'+_0x5727f2+_0xafbf74(0xd5),'error'),null;try{const _0x42f4ef=new Function('return\x20['+_0x4bc4ef+']')();return{'name':_0x5727f2,'args':_0x42f4ef};}catch(_0xf12983){return log(_0xafbf74(0xd3)+_0x5727f2+_0xafbf74(0xb5)+_0xf12983['message'],_0xafbf74(0xd4)),null;}}export function executeCommands(_0x1a4acf,_0x2dc07f){const _0x298a47=_0x1140,_0x4b1a9b=/([\s\S]*?)<\/Amily2Edit>/,_0x471b75=_0x1a4acf['match'](_0x4b1a9b);if(!_0x471b75)return{'finalState':_0x2dc07f,'hasChanges':![],'changes':[]};log(_0x298a47(0xc0),_0x298a47(0xb9));const _0x37fb40=_0x471b75[0x1][_0x298a47(0xbf)](//g,'')['trim']();if(!_0x37fb40)return{'finalState':_0x2dc07f,'hasChanges':![],'changes':[]};const _0x12110a=_0x37fb40[_0x298a47(0xe0)]('\x0a')[_0x298a47(0xd6)](_0x44f924=>_0x44f924[_0x298a47(0xce)]()!=='');if(_0x12110a['length']===0x0)return{'finalState':_0x2dc07f,'hasChanges':![],'changes':[]};let _0x471045=JSON[_0x298a47(0xc9)](JSON[_0x298a47(0xb6)](_0x2dc07f)),_0x5dfc50=[];_0x12110a[_0x298a47(0xb4)](_0x27fdf7=>{const _0x548fd9=_0x298a47,_0x4bab69=_0x27fdf7[_0x548fd9(0xce)]();if(_0x4bab69['startsWith'](_0x548fd9(0xd0))||_0x4bab69[_0x548fd9(0xe1)](_0x548fd9(0xbe))||_0x4bab69[_0x548fd9(0xe1)](_0x548fd9(0xb7))){const _0x5aedd7=parseFunctionCall(_0x4bab69);if(_0x5aedd7)try{const _0x4d48bb=allowedFunctions[_0x5aedd7[_0x548fd9(0xcc)]](_0x471045,..._0x5aedd7[_0x548fd9(0xcb)]);_0x471045=_0x4d48bb[_0x548fd9(0xc7)],_0x4d48bb[_0x548fd9(0xbb)]&&_0x4d48bb[_0x548fd9(0xbb)][_0x548fd9(0xd7)]>0x0&&(_0x5dfc50=_0x5dfc50['concat'](_0x4d48bb['changes'])),log(_0x548fd9(0xd1)+_0x27fdf7,'success');}catch(_0x3225ba){log(_0x548fd9(0xba)+_0x27fdf7+_0x548fd9(0xd8)+_0x3225ba['message'],_0x548fd9(0xd4));}}});const _0x431375=_0x5dfc50['length']>0x0;return{'finalState':_0x471045,'hasChanges':_0x431375,'changes':_0x5dfc50};} +(function(_0xe3abef,_0xd086cd){const _0x3442eb=_0x2901,_0x33dea1=_0xe3abef();while(!![]){try{const _0x24e7eb=-parseInt(_0x3442eb(0x122))/0x1+parseInt(_0x3442eb(0x107))/0x2*(parseInt(_0x3442eb(0xf7))/0x3)+parseInt(_0x3442eb(0xfa))/0x4+parseInt(_0x3442eb(0x110))/0x5*(-parseInt(_0x3442eb(0xf9))/0x6)+-parseInt(_0x3442eb(0x102))/0x7+-parseInt(_0x3442eb(0xfd))/0x8+parseInt(_0x3442eb(0x111))/0x9;if(_0x24e7eb===_0xd086cd)break;else _0x33dea1['push'](_0x33dea1['shift']());}catch(_0x48e8a8){_0x33dea1['push'](_0x33dea1['shift']());}}}(_0x1e36,0xe14ef));import{log}from'./logger.js';function _0x1e36(){const _0x1230cb=['updateRow(','replace','stringify','info','insertRow(','split','update','success','startsWith','deleteRow(','forEach','message','推演指令\x20\x22','1250929sUIykP','args','changes','6393gwvnzE','rows','3245676SLwLCL','6244944GEsIGP','warn','concat','7981600lUpBvu','match','检测到AI指令块,开始推演...','rowStatuses','pending-deletion','5189982eddZWR','AI指令错误:尝试删除不存在的表格\x20','trim','AI指令错误:尝试在不存在的表格索引\x20','\x22\x20时发生运行时错误:\x20','1662eDcvjO','length','\x22。已阻止执行。','headers','AI指令错误:尝试更新不存在的表格\x20','delete','error','\x22\x20的参数时出错:\x20','push','10qyacDU','14964417dzThLp','normal','检测到非法函数调用:\x20\x22','fill'];_0x1e36=function(){return _0x1230cb;};return _0x1e36();}function insertRow(_0x2d0e8a,_0x4a4c83,_0x1f2eee){const _0x516a39=_0x2901;if(!_0x2d0e8a[_0x4a4c83])return log(_0x516a39(0x105)+_0x4a4c83+'\x20中插入行。',_0x516a39(0x10d)),{'state':_0x2d0e8a,'changes':[]};const _0x5d1bab=_0x2d0e8a[_0x4a4c83],_0x332490=_0x5d1bab[_0x516a39(0x10a)][_0x516a39(0x108)],_0xfbd250=Array(_0x332490)[_0x516a39(0x114)](''),_0x228568=[],_0x210287=_0x5d1bab['rows']['length'];for(const _0x176933 in _0x1f2eee){const _0x906c0c=parseInt(_0x176933,0xa);_0x906c0c<_0x332490&&(_0xfbd250[_0x906c0c]=_0x1f2eee[_0x176933],_0x228568[_0x516a39(0x10f)]({'type':_0x516a39(0x11b),'tableIndex':_0x4a4c83,'rowIndex':_0x210287,'colIndex':_0x906c0c}));}return _0x5d1bab[_0x516a39(0xf8)][_0x516a39(0x10f)](_0xfbd250),{'state':_0x2d0e8a,'changes':_0x228568};}function updateRow(_0x267e8c,_0x5a9b66,_0x2cb94a,_0x412a41){const _0x1b3329=_0x2901;if(!_0x267e8c[_0x5a9b66])return log(_0x1b3329(0x10b)+_0x5a9b66+'。',_0x1b3329(0x10d)),{'state':_0x267e8c,'changes':[]};const _0x575311=_0x267e8c[_0x5a9b66];if(_0x2cb94a>=_0x575311['rows'][_0x1b3329(0x108)])return log('AI指令修正:updateRow\x20的行索引\x20'+_0x2cb94a+'\x20超出范围,自动转换为\x20insertRow。',_0x1b3329(0xfb)),insertRow(_0x267e8c,_0x5a9b66,_0x412a41);const _0x219432=_0x575311['rows'][_0x2cb94a],_0x3f38d0=[];for(const _0xd80b23 in _0x412a41){const _0xfdbb83=parseInt(_0xd80b23,0xa);_0xfdbb83<_0x219432[_0x1b3329(0x108)]&&(_0x219432[_0xfdbb83]=_0x412a41[_0xd80b23],_0x3f38d0[_0x1b3329(0x10f)]({'type':_0x1b3329(0x11b),'tableIndex':_0x5a9b66,'rowIndex':_0x2cb94a,'colIndex':_0xfdbb83}));}return{'state':_0x267e8c,'changes':_0x3f38d0};}function deleteRow(_0x54a174,_0x113aca,_0x3c4736){const _0x197b8f=_0x2901,_0x3f0cb3=_0x54a174[_0x113aca];if(!_0x3f0cb3||!_0x3f0cb3[_0x197b8f(0xf8)][_0x3c4736])return log(_0x197b8f(0x103)+_0x113aca+'\x20或行\x20'+_0x3c4736+'。',_0x197b8f(0x10d)),{'state':_0x54a174,'changes':[]};!_0x3f0cb3[_0x197b8f(0x100)]&&(_0x3f0cb3[_0x197b8f(0x100)]=Array(_0x3f0cb3['rows'][_0x197b8f(0x108)])[_0x197b8f(0x114)](_0x197b8f(0x112)));if(_0x3f0cb3[_0x197b8f(0x100)][_0x3c4736]!==_0x197b8f(0x101)){_0x3f0cb3[_0x197b8f(0x100)][_0x3c4736]='pending-deletion';const _0x533d8c=[{'type':_0x197b8f(0x10c),'tableIndex':_0x113aca,'rowIndex':_0x3c4736}];return{'state':_0x54a174,'changes':_0x533d8c};}return{'state':_0x54a174,'changes':[]};}const allowedFunctions={'insertRow':insertRow,'updateRow':updateRow,'deleteRow':deleteRow};function _0x2901(_0x529a58,_0x5b6b90){const _0x1e3688=_0x1e36();return _0x2901=function(_0x2901c9,_0x41eb10){_0x2901c9=_0x2901c9-0xf7;let _0x4729a4=_0x1e3688[_0x2901c9];return _0x4729a4;},_0x2901(_0x529a58,_0x5b6b90);}function parseFunctionCall(_0x1b1720){const _0x37769d=_0x2901,_0x4a58ae=_0x1b1720[_0x37769d(0x104)]()[_0x37769d(0xfe)](/(\w+)\((.*)\)/);if(!_0x4a58ae)return log('指令格式错误,无法解析:\x20\x22'+_0x1b1720+'\x22','error'),null;const _0x33abc5=_0x4a58ae[0x1],_0x4a9349=_0x4a58ae[0x2];if(!allowedFunctions[_0x33abc5])return log(_0x37769d(0x113)+_0x33abc5+_0x37769d(0x109),_0x37769d(0x10d)),null;try{const _0x51002f=new Function('return\x20['+_0x4a9349+']')();return{'name':_0x33abc5,'args':_0x51002f};}catch(_0x533dd8){return log('解析函数\x20\x22'+_0x33abc5+_0x37769d(0x10e)+_0x533dd8[_0x37769d(0x120)],_0x37769d(0x10d)),null;}}export function executeCommands(_0x3198f0,_0xfa713f){const _0x53c98d=_0x2901,_0x46f422=/([\s\S]*?)<\/Amily2Edit>/,_0x3c8bc1=_0x3198f0[_0x53c98d(0xfe)](_0x46f422);if(!_0x3c8bc1)return{'finalState':_0xfa713f,'hasChanges':![],'changes':[]};log(_0x53c98d(0xff),_0x53c98d(0x118));const _0x2b2110=_0x3c8bc1[0x1][_0x53c98d(0x116)](//g,'')[_0x53c98d(0x104)]();if(!_0x2b2110)return{'finalState':_0xfa713f,'hasChanges':![],'changes':[]};const _0x179900=_0x2b2110[_0x53c98d(0x11a)]('\x0a')['filter'](_0x20638c=>_0x20638c[_0x53c98d(0x104)]()!=='');if(_0x179900[_0x53c98d(0x108)]===0x0)return{'finalState':_0xfa713f,'hasChanges':![],'changes':[]};let _0x51c825=JSON['parse'](JSON[_0x53c98d(0x117)](_0xfa713f)),_0x213103=[];_0x179900[_0x53c98d(0x11f)](_0x3d6c11=>{const _0x4c2fa5=_0x53c98d,_0x4c4cca=_0x3d6c11[_0x4c2fa5(0x104)]();if(_0x4c4cca[_0x4c2fa5(0x11d)](_0x4c2fa5(0x119))||_0x4c4cca[_0x4c2fa5(0x11d)](_0x4c2fa5(0x11e))||_0x4c4cca[_0x4c2fa5(0x11d)](_0x4c2fa5(0x115))){const _0x5a50e5=parseFunctionCall(_0x4c4cca);if(_0x5a50e5)try{const _0x3edeec=allowedFunctions[_0x5a50e5['name']](_0x51c825,..._0x5a50e5[_0x4c2fa5(0x123)]);_0x51c825=_0x3edeec['state'],_0x3edeec[_0x4c2fa5(0x124)]&&_0x3edeec['changes'][_0x4c2fa5(0x108)]>0x0&&(_0x213103=_0x213103[_0x4c2fa5(0xfc)](_0x3edeec[_0x4c2fa5(0x124)])),log('成功推演指令:\x20'+_0x3d6c11,_0x4c2fa5(0x11c));}catch(_0x22d10d){log(_0x4c2fa5(0x121)+_0x3d6c11+_0x4c2fa5(0x106)+_0x22d10d[_0x4c2fa5(0x120)],_0x4c2fa5(0x10d));}}});const _0x205b4d=_0x213103[_0x53c98d(0x108)]>0x0;return{'finalState':_0x51c825,'hasChanges':_0x205b4d,'changes':_0x213103};} From a66043dad37f63aa15a5aee88a372d4befe2e9ae Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:04:16 +0800 Subject: [PATCH 10/32] Update secondary-filler.js --- core/table-system/secondary-filler.js | 62 --------------------------- 1 file changed, 62 deletions(-) diff --git a/core/table-system/secondary-filler.js b/core/table-system/secondary-filler.js index 005c302..87feb2a 100644 --- a/core/table-system/secondary-filler.js +++ b/core/table-system/secondary-filler.js @@ -201,68 +201,6 @@ export async function fillWithSecondaryApi(latestMessage, forceRun = false) { case 'coreContent': messages.push({ role: 'user', content: `请严格根据以下"最新消息"中的内容进行填写表格,并按照指定的格式输出,不要添加任何额外信息。\n\n<最新消息>\n${currentInteractionContent}\n` }); break; - case 'thinkingFramework': - messages.push({ role: "system", content: `# 通用表格转换思考框架 -## 核心原则 -1. 将叙事内容转化为结构化数据 -2. 聚焦关键元素变更 -3. 保证数据真实性与一致性 -## 思考流程 () -请严格按此框架思考并在标签内输出: - -1. 【时间地点分析】 - - 当前时态:现在是什么年份/季节/日期?具体几点几分? - - 空间定位:故事发生在什么场景(建筑/自然等)?具体位置? - - 变更检测:相比之前,时间地点是否有显著变化? -2. 【角色动态分析】 - - 在场角色:当前场景有哪些角色存在? - - 新增角色:是否有首次出现的角色? - - 角色变化: - - 外貌特征:体型/发型/穿戴着装 - - 状态变化:受伤/情绪/随身物品 - - 关系变动:新建立/改变的关系 - - 角色语录:有否揭示角色背景的关键对话? -3. 【任务进展追踪】 - - 活跃任务:正在进行哪些重要事项? - - 新任务:是否产生新的承诺/任务? - - 状态更新:任何任务进度变化? - - 任务闭环:有无完成或失败的任务? -4. 【关键物品识别】 - - 特殊物品:有无意义重大的物品出现? - - 物品变动: - - 获取/丢失物品 - - 使用/损耗情况 - - 所有权变更 -5. 【系统指令响应】 (仅处理明确指令) - - 识别:是否有来自叙事者的指令?(括号标注) - - 响应:完全执行/拒绝无效指令 -6. 【逻辑校验】 - - 矛盾解决:处理相互冲突的信息 - - 数据溯源:标注信息提取位置(例:第3段) - - 过滤机制:忽略临时/不重要的描写 - - 必须填表:无论表格是否为新,都需要结合正文与现有表格内容,进行更新。 - - 必须填充:当内容为"未知"或者"无"的表格,必须结合现知内容补全。 -7. 【避错填表】 - - 列出当前所有表以及行数,避免信息错误填充。 -## 通用输出规范 -- 时间格式:YYYY-MM-DD HH:MM -- 地点格式:[建筑]>[具体位置] (例:城堡>东侧塔楼) -- 角色引用:统一使用全名首次出现 -- 状态标记:使用标准状态词(进行中/已完成/已取消) -- **插入行示例**: -insertRow(0, {0: "2025-09-04", 1: "晚上", 2: "19:30", 3: "图书馆", 4: "艾克"}) -- **删除行示例**: -deleteRow(1, 5) -- **更新行示例**: -updateRow(1, 0, {8: "警惕/怀疑"}) - - - - -The form filling work has been completed.` }); - break; } } } From ecdc8f4ae9edf095c120ca57b22896f41262bad2 Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:04:57 +0800 Subject: [PATCH 11/32] Update injector.js --- core/table-system/injector.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/core/table-system/injector.js b/core/table-system/injector.js index 2915a74..4808ce0 100644 --- a/core/table-system/injector.js +++ b/core/table-system/injector.js @@ -1,8 +1,12 @@ -import { setExtensionPrompt } from '/script.js'; -import { extension_settings } from '/scripts/extensions.js'; -import { getBatchFillerFlowTemplate, convertTablesToCsvString, convertTablesToCsvStringForContentOnly } from './manager.js'; + +import { setExtensionPrompt, saveChat } from '/script.js'; +import { extension_settings, getContext } from '/scripts/extensions.js'; +import { getBatchFillerFlowTemplate, convertTablesToCsvString, convertTablesToCsvStringForContentOnly, commitPendingDeletions, getMemoryState, saveStateToMessage } from './manager.js'; import { tableSystemDefaultSettings } from './settings.js'; import { extensionName } from '../../utils/settings.js'; +import { log } from './logger.js'; +import { renderTables } from '../../ui/table-bindings.js'; +import { updateOrInsertTableInChat } from '../../ui/message-table-renderer.js'; const INJECTION_KEY = 'AMILY2_TABLE_SYSTEM'; @@ -52,7 +56,26 @@ export function generateTableContent() { -export function injectTableData(chat, contextSize, abort, type) { +export async function injectTableData(chat, contextSize, abort, type) { + // 【V15.3 核心修正】将提交删除的逻辑移至此处,确保在用户发送消息时立即触发 + try { + const hasDeletions = commitPendingDeletions(); + if (hasDeletions) { + const context = getContext(); + if (context.chat && context.chat.length > 0) { + const currentState = getMemoryState(); + const lastMessage = context.chat[context.chat.length - 1]; + if (saveStateToMessage(currentState, lastMessage)) { + await saveChat(); + log('【延迟删除】已在注入前提交待删除行并永久保存状态。', 'info'); + renderTables(); + updateOrInsertTableInChat(); + } + } + } + } catch (error) { + console.error('[Amily2-延迟删除] 在注入前提交待删除行时发生错误:', error); + } if (window.AMILY2_MACRO_REPLACED === true) { console.log('[Amily2-表格注入器] 检测到宏已替换,跳过传统注入。'); From 3d13a0459c8672d9fcbe2624fa556e2b22179fd2 Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:05:42 +0800 Subject: [PATCH 12/32] Update message-table-renderer.js --- ui/message-table-renderer.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/message-table-renderer.js b/ui/message-table-renderer.js index 5eacaa1..745a856 100644 --- a/ui/message-table-renderer.js +++ b/ui/message-table-renderer.js @@ -27,7 +27,9 @@ function renderTablesToHtml(tables, highlights) { html += ''; table.rows.forEach((row, rowIndex) => { - html += ''; + const rowStatus = table.rowStatuses ? table.rowStatuses[rowIndex] : 'normal'; + const deletionClass = rowStatus === 'pending-deletion' ? ' pending-deletion-row' : ''; + html += ``; row.forEach((cell, colIndex) => { const highlightKey = `${tableIndex}-${rowIndex}-${colIndex}`; const isHighlighted = highlights.has(highlightKey); From 646bcb90e01e80f1b54a64898dc0e845a6874e8e Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:06:01 +0800 Subject: [PATCH 13/32] Update state.js --- ui/state.js | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/state.js b/ui/state.js index ee244a0..6c1f0ec 100644 --- a/ui/state.js +++ b/ui/state.js @@ -172,6 +172,7 @@ export function updatePlotOptimizationUI() { if (!settings) return; $('#amily2_opt_enabled').prop('checked', settings.plotOpt_enabled); + $('#amily2_opt_ejs_enabled').prop('checked', settings.plotOpt_ejsEnabled); $('#amily2_opt_worldbook_enabled').prop('checked', settings.plotOpt_worldbook_enabled); $('#amily2_opt_table_enabled').prop('checked', settings.plotOpt_tableEnabled); From 43358f9985efb81bab0f495f3bb0ec448da99d9b Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:08:45 +0800 Subject: [PATCH 14/32] Update lore.js --- core/lore.js | 132 ++++++++++++++++++--------------------------------- 1 file changed, 46 insertions(+), 86 deletions(-) diff --git a/core/lore.js b/core/lore.js index f5d9a19..98c458e 100644 --- a/core/lore.js +++ b/core/lore.js @@ -1,7 +1,7 @@ import { extension_settings, getContext } from "/scripts/extensions.js"; import { characters, eventSource, event_types } from "/script.js"; import { loadWorldInfo, createNewWorldInfo, createWorldInfoEntry, saveWorldInfo, world_names } from "/scripts/world-info.js"; -import { compatibleWriteToLorebook, safeLorebooks, safeCharLorebooks, safeLorebookEntries, isTavernHelperAvailable } from "./tavernhelper-compatibility.js"; +import { compatibleWriteToLorebook, safeLorebooks, safeCharLorebooks, safeLorebookEntries } from "./tavernhelper-compatibility.js"; import { extensionName } from "../utils/settings.js"; @@ -122,7 +122,7 @@ async function refreshWorldbookListOnly(newBookName = null) { export async function writeSummaryToLorebook(pendingData) { if (!pendingData || !pendingData.summary || !pendingData.sourceAiMessageTimestamp || !pendingData.settings) { - console.warn("[Amily2-国史馆] 接到一份残缺的待办文书,写入任务已中止。", pendingData); + console.warn("[Amily助手-国史馆] 接到一份残缺的待办文书,写入任务已中止。", pendingData); return; } @@ -130,32 +130,38 @@ export async function writeSummaryToLorebook(pendingData) { const chat = context.chat; let isSourceMessageValid = false; let sourceMessageCandidate = null; - for (let i = chat.length - 2; i >= 0; i--) { - if (!chat[i].is_user) { sourceMessageCandidate = chat[i]; break; } + // 寻找最新的 AI 消息以进行时间戳验证 + for (let i = chat.length - 1; i >= 0; i--) { + if (!chat[i].is_user) { + sourceMessageCandidate = chat[i]; + break; + } } + if (sourceMessageCandidate && sourceMessageCandidate.send_date === pendingData.sourceAiMessageTimestamp) { isSourceMessageValid = true; } + if (!isSourceMessageValid) { - console.log("[Amily2号-逆时寻踪] 裁决: 源消息已被修改或删除,遵旨废黜过时总结。"); + console.log("[Amily助手-逆时寻踪] 裁决: 源消息已被修改或删除,遵旨废黜过时总结。"); return; } const { summary: summaryToCommit, settings } = pendingData; - console.groupCollapsed(`[Amily2号-存档任务-v21.0 最终圣旨版] ${new Date().toLocaleTimeString()}`); + console.groupCollapsed(`[Amily助手-存档任务] ${new Date().toLocaleTimeString()}`); console.time("总结写入总耗时"); try { const chatIdentifier = await getChatIdentifier(); const character = characters[context.characterId]; let targetLorebookName = null; - let isNewBook = false; + switch (settings.target) { case "character_main": targetLorebookName = character?.data?.extensions?.world; if (!targetLorebookName) { - toastr.warning("角色未绑定主世界书,总结写入任务已中止。", "Amily2号"); + toastr.warning("角色未绑定主世界书,总结写入任务已中止。", "Amily助手"); console.groupEnd(); return; } @@ -164,63 +170,47 @@ export async function writeSummaryToLorebook(pendingData) { targetLorebookName = `${DEDICATED_LOREBOOK_NAME}-${chatIdentifier}`; break; default: - toastr.error(`收到未知的写入指令: "${settings.target}"`, "Amily2号"); + toastr.error(`收到未知的写入指令: "${settings.target}"`, "Amily助手"); console.groupEnd(); return; } - if (!world_names.includes(targetLorebookName)) { - await createNewWorldInfo(targetLorebookName); - isNewBook = true; - } - const uniqueLoreName = `${LOREBOOK_PREFIX}${chatIdentifier}`; - const bookData = await loadWorldInfo(targetLorebookName); - if (!bookData) { - toastr.error(`无法加载世界书《${targetLorebookName}》`, "Amily2号"); - console.groupEnd(); - return; - } - const existingEntry = Object.values(bookData.entries).find(e => e.comment === uniqueLoreName && !e.disable); + // 定义内容更新的回调函数 + const contentUpdateCallback = (existingContent) => { + if (existingContent) { + // 如果条目已存在,追加内容 + const cleanedContent = existingContent.replace(INTRODUCTORY_TEXT, "").trim(); + const lines = cleanedContent ? cleanedContent.split("\n") : []; + const nextNumber = lines.length + 1; + return `${existingContent}\n${nextNumber}. ${summaryToCommit}`; + } else { + // 如果条目不存在,创建新内容 + return `${INTRODUCTORY_TEXT}1. ${summaryToCommit}`; + } + }; - if (existingEntry) { - const existingContent = existingEntry.content.replace(INTRODUCTORY_TEXT, "").trim(); - const lines = existingContent ? existingContent.split("\n") : []; - const nextNumber = lines.length + 1; - existingEntry.content += `\n${nextNumber}. ${summaryToCommit}`; + // 定义写入选项 + const options = { + keys: settings.keywords.split(',').map(k => k.trim()).filter(Boolean), + isConstant: settings.activationMode === 'always', + insertion_position: settings.insertionPosition, + depth: settings.depth, + }; + + // 使用统一的兼容性写入函数 + const success = await compatibleWriteToLorebook(targetLorebookName, uniqueLoreName, contentUpdateCallback, options); + + if (success) { + toastr.success(`总结已成功写入《${targetLorebookName}》!`, "Amily助手"); } else { - - const positionMap = { - 'before_char': 0, 'after_char': 1, 'before_an': 2, - 'after_an': 3, 'at_depth': 4 - }; - - const finalKeywords = settings.keywords.split(',').map(k => k.trim()).filter(Boolean); - const isConstant = settings.activationMode === 'always'; - const newEntry = createWorldInfoEntry(targetLorebookName, bookData); - Object.assign(newEntry, { - comment: uniqueLoreName, - content: `${INTRODUCTORY_TEXT}1. ${summaryToCommit}`, - key: finalKeywords, - constant: isConstant, - position: positionMap[settings.insertionPosition] ?? 4, - depth: settings.depth, - disable: false, - }); + toastr.error(`总结写入《${targetLorebookName}》时失败。`, "Amily助手"); } - - await saveWorldInfo(targetLorebookName, bookData, true); - console.log(`[史官司] 总结已遵旨写入《${targetLorebookName}》文件。`); - - if (isNewBook) { - await refreshWorldbookListOnly(targetLorebookName); - toastr.success(`已创建并写入新档案《${targetLorebookName}》!`, "Amily2号"); - } } catch (error) { - console.error("[Amily2号-写入失败] 写入流程发生意外错误:", error); - toastr.error("后台写入总结时发生错误。", "Amily2号"); + console.error("[Amily助手-写入失败] 写入流程发生意外错误:", error); + toastr.error("后台写入总结时发生错误。", "Amily助手"); } finally { console.timeEnd("总结写入总耗时"); console.groupEnd(); @@ -331,8 +321,8 @@ export async function getPlotOptimizedWorldbookContent(context, apiSettings) { return ''; } - if (!isTavernHelperAvailable() || !context) { - console.warn('[剧情优化大师] TavernHelper API 或 context 未提供,无法获取世界书内容。'); + if (!context) { + console.warn('[剧情优化大师] context 未提供,无法获取世界书内容。'); return ''; } @@ -429,37 +419,7 @@ export async function getPlotOptimizedWorldbookContent(context, apiSettings) { } -export async function writeToLorebookWithTavernHelper(targetLorebookName, entryComment, contentUpdateCallback, options = {}) { - console.log('[国史馆-兼容性] writeToLorebookWithTavernHelper 接收到的选项:', options); - - try { - const success = await compatibleWriteToLorebook(targetLorebookName, entryComment, contentUpdateCallback, options); - - if (success) { - console.log(`[Amily2-国史馆] 已通过兼容性层将内容成功写入《${targetLorebookName}》的条目 "${entryComment}"。`); - - if (eventSource && typeof eventSource.emit === "function" && event_types.CHARACTER_PAGE_LOADED) { - eventSource.emit(event_types.CHARACTER_PAGE_LOADED); - } - - return true; - } else { - throw new Error("兼容性层写入失败,请检查控制台日志。"); - } - } catch (error) { - console.error(`[Amily2-国史馆] 兼容性写入失败:`, error); - toastr.error(`写入世界书失败: ${error.message}`, "Amily2号-国史馆"); - return false; - } -} - - export async function manageLorebookEntriesForChat() { - if (!isTavernHelperAvailable()) { - console.warn("[Amily2-国史馆] TavernHelper API 未找到,无法管理条目状态。"); - return; - } - try { const chatIdentifier = await getChatIdentifier(); if (!chatIdentifier || chatIdentifier.startsWith("unknown_chat")) { From 973d0287fd6f99c35bbc9c5a23b025e0dea4d2ed Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Thu, 23 Oct 2025 22:10:13 +0800 Subject: [PATCH 15/32] Update api.js --- core/api.js | 1142 +++++++++++++++++++-------------------------------- 1 file changed, 428 insertions(+), 714 deletions(-) diff --git a/core/api.js b/core/api.js index 74bfb78..2f41563 100644 --- a/core/api.js +++ b/core/api.js @@ -1,760 +1,474 @@ import { extension_settings, getContext } from "/scripts/extensions.js"; -import { characters } from "/script.js"; -import { world_names } from "/scripts/world-info.js"; +import { characters, eventSource, event_types } from "/script.js"; +import { loadWorldInfo, createNewWorldInfo, createWorldInfoEntry, saveWorldInfo, world_names } from "/scripts/world-info.js"; +import { compatibleWriteToLorebook, safeLorebooks, safeCharLorebooks, safeLorebookEntries } from "./tavernhelper-compatibility.js"; import { extensionName } from "../utils/settings.js"; -import { extractContentByTag, replaceContentByTag, extractFullTagBlock } from '../utils/tagProcessor.js'; -import { - getCombinedWorldbookContent, - findLatestSummaryLore, - DEDICATED_LOREBOOK_NAME, - getChatIdentifier, -} from "./lore.js"; - -import { - isGoogleEndpoint, - convertToGoogleRequest, - parseGoogleResponse, - buildGoogleApiUrl -} from '../core/utils/googleAdapter.js'; - -import { - intelligentPoll, - createGooglePollingTask, - progressTracker -} from '../core/utils/pollingManager.js'; - -import { - buildGoogleEmbeddingRequest, - parseGoogleEmbeddingResponse, - buildGoogleEmbeddingApiUrl -} from './utils/googleAdapter.js'; - -import { getRequestHeaders } from '/script.js'; -let ChatCompletionService = undefined; -try { - const module = await import('/scripts/custom-request.js'); - ChatCompletionService = module.ChatCompletionService; - console.log('[Amily2号-外交部] 已成功召唤“皇家信使”(ChatCompletionService)。'); -} catch (e) { - console.warn("[Amily2号-外交部] 未能召唤“皇家信使”,部分高级功能(如Claw代理)将受限。请考虑更新SillyTavern版本。", e); -} - -const UPDATE_CHECK_URL = - "https://raw.githubusercontent.com/Wx-2025/ST-Amily2-Chat-Optimisation/refs/heads/main/amily2_update_info.json"; +export const LOREBOOK_PREFIX = "Amily2档案-"; +export const DEDICATED_LOREBOOK_NAME = "Amily2号-国史馆"; +export const INTRODUCTORY_TEXT = + "【Amily2号自动档案】\n此卷宗由Amily2号优化助手自动生成并维护,记录核心事件脉络。\n---\n"; -const MESSAGE_BOARD_URL = - "https://raw.githubusercontent.com/Wx-2025/ST-Amily2-Chat-Optimisation/refs/heads/main/amily2_message_board.json"; - -export async function fetchMessageBoardContent() { - if (!MESSAGE_BOARD_URL) { - console.log('[Amily2号-内务府] 任务取消:陛下尚未配置留言板URL。'); - return null; - } +export async function getChatIdentifier() { + let attempts = 0; + const maxAttempts = 50; + const interval = 100; + + while (attempts < maxAttempts) { try { - const response = await fetch(MESSAGE_BOARD_URL, { cache: 'no-store' }); - if (!response.ok) { - throw new Error(`服务器响应异常: ${response.status}`); + const context = getContext(); + if (context && context.characterId) { + const character = characters[context.characterId]; + if (character && character.avatar) { + return `char-${character.avatar.replace(/\.(png|webp|jpg|jpeg|gif)$/, "")}`; } - const data = await response.json(); - return data; + return `char-${context.characterId}`; + } + if (context && context.chat_filename) { + const fileName = context.chat_filename.split(/[\\/]/).pop(); + return fileName.replace(/\.jsonl?$/, ""); + } } catch (error) { - console.error('[Amily2号-内务府] 获取留言板内容失败:', error); - return null; + console.warn( + `[Amily2-户籍管理处] 等待上下文时发生轻微错误 (尝试次数 ${attempts + 1}):`, + error.message, + ); } -} - -export async function checkForUpdates() { - if (!UPDATE_CHECK_URL || UPDATE_CHECK_URL.includes('YourUsername')) { - console.log('[Amily2号-外交部] 任务取消:陛下尚未配置情报来源URL。'); - return null; - } - - - try { - console.log('[Amily2号-外交部] 已派遣使者前往云端获取最新情报...'); - const response = await fetch(UPDATE_CHECK_URL, { - method: 'GET', - cache: 'no-store', - mode: 'cors' - }); - - - - if (!response.ok) { - throw new Error(`远方服务器响应异常,状态: ${response.status}`); - } - - const data = await response.json(); - console.log('[Amily2号-外交部] 情报已成功获取并解析。'); - return data; - - } catch (error) { - console.error('[Amily2号-外交部] 紧急军情:外交任务失败!', error); - return null; - } -} - -function normalizeApiResponse(responseData) { - let data = responseData; - if (typeof data === 'string') { - try { - data = JSON.parse(data); - } catch (e) { - console.error(`[${extensionName}] API响应JSON解析失败:`, e); - return { error: { message: 'Invalid JSON response' } }; - } - } - if (data && typeof data.data === 'object' && data.data !== null && !Array.isArray(data.data)) { - if (Object.hasOwn(data.data, 'data')) { - data = data.data; - } - } - if (data && data.choices && data.choices[0]) { - return { content: data.choices[0].message?.content?.trim() }; - } - if (data && data.content) { - return { content: data.content.trim() }; - } - if (data && data.data) { - return { data: data.data }; - } - if (data && data.error) { - return { error: data.error }; - } - return data; + await new Promise((resolve) => setTimeout(resolve, interval)); + attempts++; + } + + console.error("[Amily2-国史馆] 户籍管理处在长时间等待后,仍无法确定户籍。"); + toastr.warning( + "Amily2号无法确定当前聊天身份,世界书功能将受影响。", + "上下文错误", + ); + return "unknown_chat_timeout"; } - -export async function fetchModels() { - if (window.AMILY2_LOCK_MODEL_FETCHING) { - console.warn("[Amily2号-使节团] 上次任务尚未完成,本次任务取消。"); - toastr.info("上次任务尚未完成,请稍后再试。", "任务排队中"); - return []; - } - - window.AMILY2_LOCK_MODEL_FETCHING = true; - - try { - const apiProvider = $("#amily2_api_provider").val() || 'openai'; - const apiUrl = $("#amily2_api_url").val().trim(); - const apiKey = $("#amily2_api_key").val().trim(); - const $button = $("#amily2_refresh_models"); - const $selector = $("#amily2_model"); - - console.log(`[Amily2号-使节团] 使用 API 提供商: ${apiProvider}`); - - $button.prop("disabled", true).html(' 加载中'); - $selector.empty().append($('