mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 05:45:51 +00:00
Compare commits
2 Commits
d6b3b00c86
...
59c4adc1c0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59c4adc1c0 | ||
|
|
e66544f774 |
@@ -68,3 +68,9 @@
|
|||||||
- 修复选择连接配置后报"API Key 未配置"的问题(`apiMode` 现从设置读取而非硬编码 `custom`)
|
- 修复选择连接配置后报"API Key 未配置"的问题(`apiMode` 现从设置读取而非硬编码 `custom`)
|
||||||
- 补全 `hly-rerank-api-mode` 加载绑定及默认值
|
- 补全 `hly-rerank-api-mode` 加载绑定及默认值
|
||||||
- **翰林院 RAG**:补全 `priorityRetrieval.sources` 各来源条目的缺失键,修复设置面板回填 TypeError
|
- **翰林院 RAG**:补全 `priorityRetrieval.sources` 各来源条目的缺失键,修复设置面板回填 TypeError
|
||||||
|
- **二次填表**:
|
||||||
|
- 修复 `secondary-filler.js` 把哈希/重试次数写入非持久化的 `msg.metadata` 字段(ST 标准位是 `msg.extra`),导致刷新后去重与重试计数失效
|
||||||
|
- 修复扫描深度重复计入 `bufferSize`(`contextLimit + buffer + batch + redundancy` → `contextLimit + batch + redundancy`),避免越过预期窗口
|
||||||
|
- SWIPED 事件改走扫描路径,不再用 `targetMessage` bypass 强填最末条,`保留缓冲区(bufferSize)` 设置在滑动场景下正确生效(手动"回退重填"按钮仍保留 bypass,意图明确)
|
||||||
|
- 修复 FC(Function Call)路径下成功填表与"AI 判断无需修改"两种结果均未写回 `amily2_process_hash` 与 `saveChat()` 的问题——之前导致 FC 模式去重完全失效,最旧的未处理楼层会被每次扫描重复发给 AI;现统一回写路径为 `markTargetsProcessed`
|
||||||
|
- FC 空操作时同步输出原始响应 JSON 到控制台(与批量回填日志面板保持一致),便于区分"无需变更"/"格式校验失败"/"JSON 解析失败"
|
||||||
|
|||||||
@@ -39,10 +39,9 @@ async function requestSecondaryContinuation(baseMessages, partialResponse) {
|
|||||||
return `${partialResponse || ''}${continued}`;
|
return `${partialResponse || ''}${continued}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function commitSecondaryFillResult(rawContent, targetMessages) {
|
async function markTargetsProcessed(targetMessages, { skipTableSave = false } = {}) {
|
||||||
await updateTableFromText(rawContent);
|
if (!targetMessages || targetMessages.length === 0) return;
|
||||||
|
|
||||||
const memoryState = getMemoryState();
|
|
||||||
const lastProcessedMsg = targetMessages[targetMessages.length - 1].msg;
|
const lastProcessedMsg = targetMessages[targetMessages.length - 1].msg;
|
||||||
|
|
||||||
for (const target of targetMessages) {
|
for (const target of targetMessages) {
|
||||||
@@ -50,14 +49,22 @@ async function commitSecondaryFillResult(rawContent, targetMessages) {
|
|||||||
target.msg.extra.amily2_process_hash = target.hash;
|
target.msg.extra.amily2_process_hash = target.hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!skipTableSave) {
|
||||||
|
const memoryState = getMemoryState();
|
||||||
if (saveStateToMessage(memoryState, lastProcessedMsg)) {
|
if (saveStateToMessage(memoryState, lastProcessedMsg)) {
|
||||||
renderTables();
|
renderTables();
|
||||||
updateOrInsertTableInChat();
|
updateOrInsertTableInChat();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await saveChat();
|
await saveChat();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function commitSecondaryFillResult(rawContent, targetMessages) {
|
||||||
|
await updateTableFromText(rawContent);
|
||||||
|
await markTargetsProcessed(targetMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
async function getWorldBookContext() {
|
async function getWorldBookContext() {
|
||||||
const settings = extension_settings[extensionName] || {};
|
const settings = extension_settings[extensionName] || {};
|
||||||
@@ -369,10 +376,20 @@ export async function fillWithSecondaryApi(latestMessage, forceRun = false, opts
|
|||||||
}
|
}
|
||||||
const ops = parseToolCallArgs(argsString);
|
const ops = parseToolCallArgs(argsString);
|
||||||
if (ops.length === 0) {
|
if (ops.length === 0) {
|
||||||
console.warn('[Amily2-副API] Function Call 返回操作列表为空,无需变更。');
|
let parseHint = '';
|
||||||
|
try {
|
||||||
|
const rawParsed = JSON.parse(argsString);
|
||||||
|
const rawOpsLen = rawParsed?.operations?.length ?? 0;
|
||||||
|
if (rawOpsLen > 0) parseHint = `(响应含 ${rawOpsLen} 条操作,但全部未通过格式校验)`;
|
||||||
|
} catch {
|
||||||
|
parseHint = '(响应 JSON 解析失败)';
|
||||||
|
}
|
||||||
|
console.warn(`[Amily2-副API] Function Call 返回操作列表为空${parseHint},原始响应:\n${argsString}`);
|
||||||
toastr.info('AI 判断此范围无需修改。', 'Amily2-分步填表');
|
toastr.info('AI 判断此范围无需修改。', 'Amily2-分步填表');
|
||||||
|
await markTargetsProcessed(targetMessages, { skipTableSave: true });
|
||||||
} else {
|
} else {
|
||||||
await updateTableFromOps(ops);
|
await updateTableFromOps(ops);
|
||||||
|
await markTargetsProcessed(targetMessages);
|
||||||
toastr.success('分步填表(Function Call)执行完毕。', 'Amily2-分步填表');
|
toastr.success('分步填表(Function Call)执行完毕。', 'Amily2-分步填表');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
4
index.js
4
index.js
@@ -697,8 +697,8 @@ function registerEventListeners() {
|
|||||||
log(`【监察系统】主填表模式,回退后强制刷新消息ID: ${chat_id}。`, 'info');
|
log(`【监察系统】主填表模式,回退后强制刷新消息ID: ${chat_id}。`, 'info');
|
||||||
await handleTableUpdate(chat_id, true);
|
await handleTableUpdate(chat_id, true);
|
||||||
} else if (fillingMode === 'secondary-api' || fillingMode === 'optimized') {
|
} else if (fillingMode === 'secondary-api' || fillingMode === 'optimized') {
|
||||||
log('【监察系统】分步/优化模式,回退后强制二次填表最新消息。', 'info');
|
log('【监察系统】分步/优化模式,回退后触发二次填表扫描(受保留缓冲区限制)。', 'info');
|
||||||
await fillWithSecondaryApi(latestMessage, true, { targetMessage: latestMessage });
|
await fillWithSecondaryApi(latestMessage, true);
|
||||||
} else {
|
} else {
|
||||||
log('【监察系统】未配置填表模式,跳过填表。', 'info');
|
log('【监察系统】未配置填表模式,跳过填表。', 'info');
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
const a0_0x5c33fc=a0_0xf93d;function a0_0xf93d(_0x2ee01c,_0xb792ba){_0x2ee01c=_0x2ee01c-0x1c1;const _0xc7a774=a0_0xc7a7();let _0xf93df3=_0xc7a774[_0x2ee01c];if(a0_0xf93d['wWWCpB']===undefined){var _0x45b40d=function(_0x273031){const _0xee239d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3516e9='',_0x22161b='';for(let _0x1ccb1e=0x0,_0x117074,_0xda9003,_0x43f52f=0x0;_0xda9003=_0x273031['charAt'](_0x43f52f++);~_0xda9003&&(_0x117074=_0x1ccb1e%0x4?_0x117074*0x40+_0xda9003:_0xda9003,_0x1ccb1e++%0x4)?_0x3516e9+=String['fromCharCode'](0xff&_0x117074>>(-0x2*_0x1ccb1e&0x6)):0x0){_0xda9003=_0xee239d['indexOf'](_0xda9003);}for(let _0x34f65a=0x0,_0x4c77f5=_0x3516e9['length'];_0x34f65a<_0x4c77f5;_0x34f65a++){_0x22161b+='%'+('00'+_0x3516e9['charCodeAt'](_0x34f65a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22161b);};const _0x57640f=function(_0x3b1e83,_0x2117b5){let _0x42951a=[],_0x6a270a=0x0,_0x12755a,_0xf0f080='';_0x3b1e83=_0x45b40d(_0x3b1e83);let _0x5049c9;for(_0x5049c9=0x0;_0x5049c9<0x100;_0x5049c9++){_0x42951a[_0x5049c9]=_0x5049c9;}for(_0x5049c9=0x0;_0x5049c9<0x100;_0x5049c9++){_0x6a270a=(_0x6a270a+_0x42951a[_0x5049c9]+_0x2117b5['charCodeAt'](_0x5049c9%_0x2117b5['length']))%0x100,_0x12755a=_0x42951a[_0x5049c9],_0x42951a[_0x5049c9]=_0x42951a[_0x6a270a],_0x42951a[_0x6a270a]=_0x12755a;}_0x5049c9=0x0,_0x6a270a=0x0;for(let _0x57eb90=0x0;_0x57eb90<_0x3b1e83['length'];_0x57eb90++){_0x5049c9=(_0x5049c9+0x1)%0x100,_0x6a270a=(_0x6a270a+_0x42951a[_0x5049c9])%0x100,_0x12755a=_0x42951a[_0x5049c9],_0x42951a[_0x5049c9]=_0x42951a[_0x6a270a],_0x42951a[_0x6a270a]=_0x12755a,_0xf0f080+=String['fromCharCode'](_0x3b1e83['charCodeAt'](_0x57eb90)^_0x42951a[(_0x42951a[_0x5049c9]+_0x42951a[_0x6a270a])%0x100]);}return _0xf0f080;};a0_0xf93d['VpPgtO']=_0x57640f,a0_0xf93d['bIiVJG']={},a0_0xf93d['wWWCpB']=!![];}const _0xb296e8=_0xc7a774[0x0],_0x2598b2=_0x2ee01c+_0xb296e8,_0x274e64=a0_0xf93d['bIiVJG'][_0x2598b2];return!_0x274e64?(a0_0xf93d['YRQxxx']===undefined&&(a0_0xf93d['YRQxxx']=!![]),_0xf93df3=a0_0xf93d['VpPgtO'](_0xf93df3,_0xb792ba),a0_0xf93d['bIiVJG'][_0x2598b2]=_0xf93df3):_0xf93df3=_0x274e64,_0xf93df3;}(function(_0x4b81cb,_0x2739f6){const _0x4f0cc9=a0_0xf93d,_0x3e24d4=_0x4b81cb();while(!![]){try{const _0x41c00c=parseInt(_0x4f0cc9(0x1c7,'v1)['))/0x1*(parseInt(_0x4f0cc9(0x1d0,'Mqhd'))/0x2)+-parseInt(_0x4f0cc9(0x1d7,'eTOn'))/0x3*(parseInt(_0x4f0cc9(0x1da,'cnHM'))/0x4)+-parseInt(_0x4f0cc9(0x1cf,')9VT'))/0x5*(parseInt(_0x4f0cc9(0x1cc,'Ux3V'))/0x6)+-parseInt(_0x4f0cc9(0x1db,'A#wm'))/0x7+-parseInt(_0x4f0cc9(0x1c4,'bPne'))/0x8+parseInt(_0x4f0cc9(0x1cb,'Mqhd'))/0x9*(parseInt(_0x4f0cc9(0x1dc,'eTOn'))/0xa)+parseInt(_0x4f0cc9(0x1ce,'Ux3V'))/0xb*(parseInt(_0x4f0cc9(0x1df,'Sb&D'))/0xc);if(_0x41c00c===_0x2739f6)break;else _0x3e24d4['push'](_0x3e24d4['shift']());}catch(_0x285479){_0x3e24d4['push'](_0x3e24d4['shift']());}}}(a0_0xc7a7,0x3ab00));function a0_0xc7a7(){const _0xab3c86=['teuJo0VcVGpdNgSHzG','WR9gu8oZW5JcNHFcQW','E8kfW7HcWP8imhXfW5a','A08EWOGUs8kdwdRdTcq','Eg7cI8oeWO0cWRtcGCokW6FdN8ogbHu','E8kjW7LlWOavhN9GW7i','b8obWPDGnrNcKHSXW4GlbSoZ','W69UW6rFngu','WO41aSk7W4mAvmknF8ouW74','WPBdJvTxW6VcVu7dT8knoa','wr/dVSoVW4FcJmoWu0pcGa','nbhdTM7dT8kjW4JdSe98vCkwnq','WOK4W4OOfWu7wufF','W5nUWPbJyeeQDMTmW58Z','WPxcMxBdILNdMCkaWOm','WRLbeCkiWPxdHgNcTCoviCk7fK0','WPFcKWlcHWhdHSk9WP7dPCkNAq','W6hdTmogW6u1BmoiWO/cTSo5ymkJ','W5vPW5eJjbCKwW','W7/dL8oVW5ZdMSo7W5ldHJ0J','W5nUWP1JpYezxxrI','BuXjW7PRt8kgFG','FCkcWRqcWOq+dxO','WQ9rW5xdRtxdN8kUfmkdW5e1W5C','bSohWPrHobtdQYWLW5SGeW','WQddPmoQWP7dRSoghCoO','DX5ufLynW5ywWR5olSkAWQBdKtFdHxTRWP7dLCkPjSkRWO4','W5FdMfxdLhhdHmktWQBdPmkD','beRcOCkRWRtcK8oqE2lcUKG','a8ouWQXlWQTyW6xdL8o6WPDvW7RcSa','WQhdPCo5WPtdRCopg8oj'];a0_0xc7a7=function(){return _0xab3c86;};return a0_0xc7a7();}export const SENSITIVE_KEYS=new Set([a0_0x5c33fc(0x1c5,'3PoJ'),a0_0x5c33fc(0x1c2,'fE$u'),a0_0x5c33fc(0x1d8,'@jc1'),a0_0x5c33fc(0x1c8,'cnHM'),a0_0x5c33fc(0x1ca,'Mqhd'),a0_0x5c33fc(0x1d1,'^Ma^'),a0_0x5c33fc(0x1c6,'ABwv'),a0_0x5c33fc(0x1d9,'Ux3V')]);
|
function a0_0x271c(){const _0x4b7b23=['lhvoW4jRgSoQlXxcIW','EmojW7BcUdLKW4qDhIFcM8oH','WP7dM1RcQ8kAW5HNWOy','WQxcI0VdUCo9Ca','W7ldJHVcGSkSmg7cRexcNmojW7O','sZnjE8kcW7JdJCkTWQyOchm','kmkMWOZdTY5AWQ/cUdWN','W5lcSHLBF8odWQ3dRmk6l8kv','W7jspw7dQI8FpSkjha','WQKlf8kpWQGbW790','WOhcMmoZnx/dG8kJgcaODCk6DeKShmo1vmkzW5bZW6FdGWu','FSoRg2XIW6BcPs45WOj/W77dMq','WQ0gx8othedcGsVdRSkfWQPQWPjW','W5BcGNDMWOxdIGaBFsK','CmktCsNcH8kitH11rYq','WQj4sHTirmoMW7CbWOvopSkP','g3ddGCkLBmouA1BcJCkZW7a','n3dcOtqPWQusaxWo','tdjdECkgW7/cG8kLWPCJb3FcSq','WPFdUmo4W5/dT3XJd8oBoW','WPVcGeVcKCkhW5T/','WQOaw8ossGpdLxldQmkx','E8onW7ZcUtTPW70weZVcQCo3','W4FdQ1a6W5GHE8oebbG','W5urpfBdGCk1kvzIuSkOyCkouG','F8oiW7ZcUJ1JWOOvlYZcLmoLxa','E8k8tH8IWPZdJW','W6HJftmQW6SlWR1rgG','WO7dSmoJW5pdT3XJd8oBoW','stBcKSopomkxntZcO8kfW4XmFSke'];a0_0x271c=function(){return _0x4b7b23;};return a0_0x271c();}function a0_0x29d9(_0x5910a2,_0x31a139){_0x5910a2=_0x5910a2-0x10e;const _0x271c55=a0_0x271c();let _0x29d9db=_0x271c55[_0x5910a2];if(a0_0x29d9['vXrLbK']===undefined){var _0x1f4aa0=function(_0x419a5a){const _0x54ddf3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1487a3='',_0x358070='';for(let _0x556c37=0x0,_0x38eb9b,_0x5849e9,_0x382ad5=0x0;_0x5849e9=_0x419a5a['charAt'](_0x382ad5++);~_0x5849e9&&(_0x38eb9b=_0x556c37%0x4?_0x38eb9b*0x40+_0x5849e9:_0x5849e9,_0x556c37++%0x4)?_0x1487a3+=String['fromCharCode'](0xff&_0x38eb9b>>(-0x2*_0x556c37&0x6)):0x0){_0x5849e9=_0x54ddf3['indexOf'](_0x5849e9);}for(let _0x3f032e=0x0,_0xb58a17=_0x1487a3['length'];_0x3f032e<_0xb58a17;_0x3f032e++){_0x358070+='%'+('00'+_0x1487a3['charCodeAt'](_0x3f032e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x358070);};const _0x34ec80=function(_0x164ca3,_0x4421d8){let _0xd7a592=[],_0x289d74=0x0,_0x21850c,_0x43a638='';_0x164ca3=_0x1f4aa0(_0x164ca3);let _0x17b6ca;for(_0x17b6ca=0x0;_0x17b6ca<0x100;_0x17b6ca++){_0xd7a592[_0x17b6ca]=_0x17b6ca;}for(_0x17b6ca=0x0;_0x17b6ca<0x100;_0x17b6ca++){_0x289d74=(_0x289d74+_0xd7a592[_0x17b6ca]+_0x4421d8['charCodeAt'](_0x17b6ca%_0x4421d8['length']))%0x100,_0x21850c=_0xd7a592[_0x17b6ca],_0xd7a592[_0x17b6ca]=_0xd7a592[_0x289d74],_0xd7a592[_0x289d74]=_0x21850c;}_0x17b6ca=0x0,_0x289d74=0x0;for(let _0x36b413=0x0;_0x36b413<_0x164ca3['length'];_0x36b413++){_0x17b6ca=(_0x17b6ca+0x1)%0x100,_0x289d74=(_0x289d74+_0xd7a592[_0x17b6ca])%0x100,_0x21850c=_0xd7a592[_0x17b6ca],_0xd7a592[_0x17b6ca]=_0xd7a592[_0x289d74],_0xd7a592[_0x289d74]=_0x21850c,_0x43a638+=String['fromCharCode'](_0x164ca3['charCodeAt'](_0x36b413)^_0xd7a592[(_0xd7a592[_0x17b6ca]+_0xd7a592[_0x289d74])%0x100]);}return _0x43a638;};a0_0x29d9['KgrlkL']=_0x34ec80,a0_0x29d9['kNssnt']={},a0_0x29d9['vXrLbK']=!![];}const _0x1b2a57=_0x271c55[0x0],_0x49c2f7=_0x5910a2+_0x1b2a57,_0x1a2216=a0_0x29d9['kNssnt'][_0x49c2f7];return!_0x1a2216?(a0_0x29d9['XDIAAg']===undefined&&(a0_0x29d9['XDIAAg']=!![]),_0x29d9db=a0_0x29d9['KgrlkL'](_0x29d9db,_0x31a139),a0_0x29d9['kNssnt'][_0x49c2f7]=_0x29d9db):_0x29d9db=_0x1a2216,_0x29d9db;}const a0_0x46b8d0=a0_0x29d9;(function(_0x37f9e6,_0xba7d17){const _0xcc4674=a0_0x29d9,_0x15f749=_0x37f9e6();while(!![]){try{const _0x741256=-parseInt(_0xcc4674(0x121,'bDll'))/0x1*(parseInt(_0xcc4674(0x112,'yhY8'))/0x2)+parseInt(_0xcc4674(0x114,'tp0g'))/0x3+-parseInt(_0xcc4674(0x127,'IWny'))/0x4*(-parseInt(_0xcc4674(0x125,'uN)a'))/0x5)+parseInt(_0xcc4674(0x117,'tp0g'))/0x6+-parseInt(_0xcc4674(0x11b,'F@y%'))/0x7+-parseInt(_0xcc4674(0x11c,'MFs7'))/0x8*(-parseInt(_0xcc4674(0x122,'V%T]'))/0x9)+-parseInt(_0xcc4674(0x12a,'vQuU'))/0xa*(-parseInt(_0xcc4674(0x115,'^vxs'))/0xb);if(_0x741256===_0xba7d17)break;else _0x15f749['push'](_0x15f749['shift']());}catch(_0x5665c9){_0x15f749['push'](_0x15f749['shift']());}}}(a0_0x271c,0xdbf20));export const SENSITIVE_KEYS=new Set([a0_0x46b8d0(0x11f,'k^Lf'),a0_0x46b8d0(0x116,'d7&G'),a0_0x46b8d0(0x126,'KWT3'),a0_0x46b8d0(0x119,'EVQd'),a0_0x46b8d0(0x10f,'$OoJ'),a0_0x46b8d0(0x11a,'7SNw'),a0_0x46b8d0(0x10e,'F@y%'),a0_0x46b8d0(0x111,'7SNw')]);
|
||||||
Reference in New Issue
Block a user