diff --git a/ui/hanlinyuan-bindings.js b/ui/hanlinyuan-bindings.js
index ead5dad..b33f558 100644
--- a/ui/hanlinyuan-bindings.js
+++ b/ui/hanlinyuan-bindings.js
@@ -1 +1 @@
-const _0x3ad8df=_0x2a4d;(function(_0xd21b7d,_0x43c720){const _0x29a77a=_0x2a4d,_0x3315f1=_0xd21b7d();while(!![]){try{const _0x1e44ff=-parseInt(_0x29a77a(0x23a))/0x1+-parseInt(_0x29a77a(0x2f2))/0x2+parseInt(_0x29a77a(0x2d8))/0x3+-parseInt(_0x29a77a(0x1da))/0x4+-parseInt(_0x29a77a(0x285))/0x5*(parseInt(_0x29a77a(0x1bc))/0x6)+parseInt(_0x29a77a(0x1af))/0x7+-parseInt(_0x29a77a(0x275))/0x8*(-parseInt(_0x29a77a(0x1ac))/0x9);if(_0x1e44ff===_0x43c720)break;else _0x3315f1['push'](_0x3315f1['shift']());}catch(_0x13b10a){_0x3315f1['push'](_0x3315f1['shift']());}}}(_0x34d8,0x730f7));import{getContext}from'/scripts/extensions.js';import*as _0x3ae7b8 from'../core/rag-processor.js';import*as _0x3162d4 from'../core/historiographer.js';import*as _0x376d9a from'../core/utils/context-utils.js';import*as _0x3cc817 from'../core/ingestion-manager.js';import{showContentModal,showHtmlModal}from'./page-window.js';function _0x2a4d(_0x27f132,_0x188e02){const _0x34d828=_0x34d8();return _0x2a4d=function(_0x2a4d4f,_0x23f97f){_0x2a4d4f=_0x2a4d4f-0x196;let _0x2e78b4=_0x34d828[_0x2a4d4f];return _0x2e78b4;},_0x2a4d(_0x27f132,_0x188e02);}import{extractBlocksByTags,applyExclusionRules}from'../core/utils/rag-tag-extractor.js';_0x3ad8df(0x1a6);function setupGlobalEventHandlers(){const _0x364a18=_0x3ad8df;window[_0x364a18(0x1b8)]=()=>saveSettingsFromUI(![]),window[_0x364a18(0x1e8)]=resetSettingsToUI,window['testHLYApi']=testApi,window['fetchHLYEmbeddingModels']=fetchHLYEmbeddingModels,window[_0x364a18(0x2e9)]=fetchHLYRerankModels,window['updateHLYMemoryCount']=updatePanelStatus,window['purgeHLYStorage']=purgeStorage,window[_0x364a18(0x29a)]=startCondensation,window['previewHLYCondensation']=previewCondensation,window[_0x364a18(0x1db)]=ingestManualText,window[_0x364a18(0x204)]=log,window[_0x364a18(0x2bf)]=showStats,window['startHLYHistoriography']=startHistoriography;}function updateAndSaveSetting(_0x15f64a,_0x245a44){const _0x2f2482=_0x3ad8df,_0x1ba27e=_0x3ae7b8[_0x2f2482(0x2a4)]();if(!_0x1ba27e)return;const _0x4a3799=_0x15f64a[_0x2f2482(0x23d)]('.');let _0x473997=_0x1ba27e;for(let _0x4dc3bc=0x0;_0x4dc3bc<_0x4a3799[_0x2f2482(0x2fa)]-0x1;_0x4dc3bc++){_0x473997=_0x473997[_0x4a3799[_0x4dc3bc]]=_0x473997[_0x4a3799[_0x4dc3bc]]||{};}_0x473997[_0x4a3799[_0x4a3799[_0x2f2482(0x2fa)]-0x1]]=_0x245a44,_0x3ae7b8[_0x2f2482(0x200)](),log(_0x2f2482(0x248)+_0x15f64a+_0x2f2482(0x2ae)+JSON[_0x2f2482(0x289)](_0x245a44),_0x2f2482(0x2aa));}function bindAutoSaveEvents(){const _0x219c80=_0x3ad8df,_0x5e4c2d=document[_0x219c80(0x2ce)]('hly-modal-container');if(!_0x5e4c2d)return;_0x5e4c2d['addEventListener']('change',_0x119baf=>{const _0xbf507a=_0x219c80,_0x18fce7=_0x119baf[_0xbf507a(0x257)],_0x5c76c4=_0x18fce7[_0xbf507a(0x25e)][_0xbf507a(0x26f)];if(!_0x5c76c4)return;let _0x1e0fa7;const _0x253afa=_0x18fce7['dataset'][_0xbf507a(0x1a1)]||_0xbf507a(0x201);if(_0x18fce7[_0xbf507a(0x1a1)]===_0xbf507a(0x24e))_0x1e0fa7=_0x18fce7[_0xbf507a(0x2d3)];else{if(_0x18fce7[_0xbf507a(0x1a1)]==='radio'){if(_0x18fce7[_0xbf507a(0x2d3)]){const _0x40ecf1=_0x5e4c2d[_0xbf507a(0x2d4)]('input[name=\x22'+_0x18fce7[_0xbf507a(0x1b3)]+'\x22]'),_0x563b1e=Array[_0xbf507a(0x1b6)](_0x40ecf1)[_0xbf507a(0x1d4)](_0x239479=>_0x239479[_0xbf507a(0x2d3)]);_0x1e0fa7=_0x563b1e[_0xbf507a(0x232)];}else return;}else _0x1e0fa7=_0x18fce7['value'];}switch(_0x253afa){case'integer':_0x1e0fa7=parseInt(_0x1e0fa7,0xa);break;case _0xbf507a(0x2f5):_0x1e0fa7=parseFloat(_0x1e0fa7);break;case _0xbf507a(0x2d6):typeof _0x1e0fa7!==_0xbf507a(0x2d6)&&(_0x1e0fa7=_0x1e0fa7===_0xbf507a(0x249));break;}if(_0x18fce7['type']===_0xbf507a(0x2ee)&&!_0x18fce7[_0xbf507a(0x2d3)])return;updateAndSaveSetting(_0x5c76c4,_0x1e0fa7);});}export function bindHanlinyuanEvents(){const _0x417f13=_0x3ad8df,_0x59a51c=getContext();if(!_0x59a51c){console[_0x417f13(0x262)](_0x417f13(0x287));return;}setupGlobalEventHandlers(),bindPanelToggleEvents(),bindInternalUIEvents(),bindTutorialEvents(),bindAutoSaveEvents(),bindSessionLockEvent();if(_0x3ae7b8['initialize'])_0x3ae7b8[_0x417f13(0x2a3)]();else{console[_0x417f13(0x262)](_0x417f13(0x241));return;}loadSettingsToUI(),loadWorldbookList(),log(_0x417f13(0x239),_0x417f13(0x2ef));const _0x275b76=document[_0x417f13(0x2ce)]('hanlinyuan-ingest-novel-file-input'),_0x4949ca=document['getElementById'](_0x417f13(0x244)),_0x1672ab=document[_0x417f13(0x2ce)](_0x417f13(0x265)),_0x27bd03=document['getElementById']('hanlinyuan-ingest-abort'),_0x11c07c=document['getElementById'](_0x417f13(0x1f0)),_0x465d82=document[_0x417f13(0x2ce)](_0x417f13(0x1c9)),_0x2f060c=document['getElementById'](_0x417f13(0x2fc)),_0x13ab74=document[_0x417f13(0x2ce)](_0x417f13(0x1be));let _0x1793eb=null,_0x1c3492=null;_0x275b76[_0x417f13(0x2f1)](_0x417f13(0x27e),_0x557352=>{const _0x1942e5=_0x417f13;_0x1793eb=_0x557352['target'][_0x1942e5(0x20c)][0x0],_0x1793eb?(_0x4949ca['textContent']=_0x1793eb[_0x1942e5(0x1b3)],_0x4949ca[_0x1942e5(0x240)]=_0x1793eb['name']):_0x4949ca['textContent']=_0x1942e5(0x258);}),_0x1672ab['addEventListener'](_0x417f13(0x27c),async()=>{const _0x2e81d8=_0x417f13;if(!_0x1793eb){toastr['warning'](_0x2e81d8(0x235));return;}let _0x56f9df=0x0;const _0x241c49=_0x3cc817[_0x2e81d8(0x2e2)](_0x1793eb),_0x208509=_0x3cc817['loadProgress'](_0x241c49);if(_0x208509){const _0x3ab78b=(_0x208509[_0x2e81d8(0x21c)]/_0x208509['totalChunks']*0x64)[_0x2e81d8(0x2b7)](0x1),_0x74f031=confirm(_0x2e81d8(0x2f0)+_0x3ab78b+_0x2e81d8(0x24f));_0x74f031?(_0x56f9df=_0x208509['processedChunks'],toastr[_0x2e81d8(0x2ef)](_0x2e81d8(0x19e)+(_0x56f9df+0x1)+_0x2e81d8(0x254),_0x2e81d8(0x1dc)),log(_0x2e81d8(0x1c7)+_0x241c49+_0x2e81d8(0x271)+_0x56f9df+_0x2e81d8(0x1a4),'info')):(_0x3cc817[_0x2e81d8(0x213)](_0x241c49),toastr[_0x2e81d8(0x2ef)](_0x2e81d8(0x227),_0x2e81d8(0x1dc)),log(_0x2e81d8(0x222)+_0x241c49+',重新开始。','warn'));}_0x1c3492=new AbortController();const _0x1c3467=_0x1c3492['signal'];_0x13ab74['style'][_0x2e81d8(0x1e6)]=_0x2e81d8(0x2d1),_0x11c07c['style']['display']=_0x2e81d8(0x1c8),_0x2f060c[_0x2e81d8(0x1e9)]=_0x2e81d8(0x1f5),_0x465d82[_0x2e81d8(0x232)]=0x0;try{const _0x82198=await _0x1793eb[_0x2e81d8(0x251)](),_0x105c1c=_0x1b1d19=>{const _0x51fd43=_0x2e81d8;_0x2f060c['textContent']=_0x51fd43(0x1a3)+_0x1b1d19['message']+'\x20('+_0x1b1d19[_0x51fd43(0x2e7)]+'/'+_0x1b1d19[_0x51fd43(0x1ec)]+')',_0x465d82['value']=_0x1b1d19[_0x51fd43(0x2e7)]/_0x1b1d19[_0x51fd43(0x1ec)]*0x64;},_0x548904=()=>{const _0x1ed63c=_0x2e81d8;updatePanelStatus(),log('[实时刷新]\x20批次完成,忆识总数已更新。',_0x1ed63c(0x2ef));},_0x20ef38=await _0x3ae7b8[_0x2e81d8(0x26d)](_0x82198,'novel',_0x1793eb[_0x2e81d8(0x1b3)],_0x105c1c,_0x1c3467,log,_0x548904,_0x241c49,_0x56f9df);if(_0x20ef38[_0x2e81d8(0x2aa)])toastr[_0x2e81d8(0x2aa)](_0x2e81d8(0x1c5)+_0x20ef38[_0x2e81d8(0x1d9)]+'\x20个知识块'),_0x2f060c[_0x2e81d8(0x1e9)]=_0x2e81d8(0x1ad)+_0x20ef38[_0x2e81d8(0x1d9)]+_0x2e81d8(0x24a),_0x465d82[_0x2e81d8(0x232)]=0x64,updatePanelStatus();else throw new Error(_0x20ef38[_0x2e81d8(0x262)]||_0x2e81d8(0x2b2));}catch(_0x5073f5){_0x5073f5[_0x2e81d8(0x1b3)]===_0x2e81d8(0x2a8)?(toastr[_0x2e81d8(0x2ef)](_0x2e81d8(0x29c)),_0x2f060c[_0x2e81d8(0x1e9)]=_0x2e81d8(0x266)):(toastr[_0x2e81d8(0x262)](_0x2e81d8(0x1bb)+_0x5073f5['message']+_0x2e81d8(0x24b)),_0x2f060c[_0x2e81d8(0x1e9)]='错误:\x20'+_0x5073f5[_0x2e81d8(0x1c4)]);}finally{setTimeout(()=>{const _0x4ad322=_0x2e81d8;_0x13ab74['style'][_0x4ad322(0x1e6)]='flex',_0x11c07c[_0x4ad322(0x2d0)][_0x4ad322(0x1e6)]=_0x4ad322(0x2d1),_0x275b76[_0x4ad322(0x232)]='',_0x1793eb=null,_0x4949ca[_0x4ad322(0x1e9)]='未选择文件';},0xbb8);}}),_0x27bd03[_0x417f13(0x2f1)](_0x417f13(0x27c),()=>{_0x1c3492&&_0x1c3492['abort']();});}function bindSessionLockEvent(){const _0x4c87f8=_0x3ad8df,_0x52b9ed=document[_0x4c87f8(0x2ce)](_0x4c87f8(0x2df));if(!_0x52b9ed)return;_0x52b9ed[_0x4c87f8(0x2f1)](_0x4c87f8(0x27c),async()=>{const _0x3173bc=_0x4c87f8,_0x1f75eb=await _0x3ae7b8[_0x3173bc(0x1de)]();updateSessionLockUI(_0x1f75eb);if(_0x1f75eb){const _0x28953a=_0x3ae7b8[_0x3173bc(0x1e7)]();_0x28953a&&(toastr['success'](_0x3173bc(0x22c)+_0x28953a['id'],_0x3173bc(0x273)),log('会话已锁定到宝库:\x20'+_0x28953a['id'],_0x3173bc(0x2aa)));}else toastr[_0x3173bc(0x2ef)](_0x3173bc(0x22a),'诏曰'),log(_0x3173bc(0x250),_0x3173bc(0x2ef));updatePanelStatus();}),updateSessionLockUI(_0x3ae7b8[_0x4c87f8(0x27d)]());}function _0x34d8(){const _0x25505a=['title','[翰林院-枢纽]\x20核心法典未能提供初始化圣旨!','\x20条忆识。','根据标签提取或内容排除条件,未找到任何有效内容。','hanlinyuan-ingest-novel-file-name','appendChild','rerank','hly-rerank-hybrid-alpha','[自动保存]\x20设置项\x20\x27','true','\x20个知识块。','。进度已保存,可稍后重试。','成功加载\x20','hly-','checkbox','%。是否从上次中断之处继续?','会话已解锁。','text','hly-log-output','content','\x20块继续录入。','hly-match-threshold','检测到预览后待处理的文本,开始直接凝识...','target','未选择文件','innerHTML','\x20进行编纂...','大功告成','','用户尝试录入空文本。','dataset','手动录入成功,新增\x20','点击以解锁,让翰林院跟随当前角色','comment','error','查看宝库状态成功:集合ID=','[翰林院-枢纽]\x20获取Rerank模型列表失败:','hanlinyuan-ingest-novel-start','任务已中止。','hly-exclusion-rules-btn','.hly-preview-item-v2','翰林院使用教程','queryMessageCount','手动录入','testApiConnection','ingestTextToHanlinyuan','用户请求查看宝库状态。','settingKey','fetchRerankModels',',从第\x20','hly-historiography-results','圣旨已下','聊天记录从第\x20','7556368gQnRVB','\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 上次已从第\x20','AbortError','编纂任务已完成。','success','\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\x20\x20\x20\x20\x20\x20\x20\x20第\x20','》获取条目列表...','retrieval','凝识完成!新增\x20','hly-layer-start','template','click','isSessionLocked','change','\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20正在加载条目...','depth','hly-delete-rule-btn','hly-layer-end','加载书库列表失败:\x20','\x20楼凝识至第\x20','请先选择一个书库和要编纂的条目。','预览并编辑凝识内容','hly-retrieval-enabled','hly-rerank-url','\x0a所用模型:\x20','hly-api-endpoint',')\x20的编纂任务已完成。','startHLYCondensation','beforeend','任务已由用户中止。进度已保存,可随时继续。','hly-include-ai','condensationHistory','点击以锁定,让翰林院固定操作当前角色的宝库','createElement','\x20个书库。','hly-current-chat-id','initialize','getSettings','join','hly-embedding-model','