Files
ST-Amily2-Chat-Optimisation…/core/api.js
2025-07-16 04:13:03 +08:00

2 lines
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const _0x2c0904=_0x560c;(function(_0x2b6cb3,_0x5befb5){const _0x420457=_0x560c,_0x2f05ab=_0x2b6cb3();while(!![]){try{const _0x30f94f=-parseInt(_0x420457(0x118))/0x1*(-parseInt(_0x420457(0x16b))/0x2)+parseInt(_0x420457(0x158))/0x3*(-parseInt(_0x420457(0x189))/0x4)+-parseInt(_0x420457(0x1a0))/0x5*(-parseInt(_0x420457(0x1a8))/0x6)+parseInt(_0x420457(0x161))/0x7*(-parseInt(_0x420457(0x183))/0x8)+-parseInt(_0x420457(0x13e))/0x9*(-parseInt(_0x420457(0x10f))/0xa)+parseInt(_0x420457(0x1af))/0xb*(parseInt(_0x420457(0x191))/0xc)+-parseInt(_0x420457(0x149))/0xd;if(_0x30f94f===_0x5befb5)break;else _0x2f05ab['push'](_0x2f05ab['shift']());}catch(_0x4b9758){_0x2f05ab['push'](_0x2f05ab['shift']());}}}(_0x4c76,0x61dd0));import{extension_settings,getContext}from'/scripts/extensions.js';function _0x560c(_0x537422,_0x5dc7a5){const _0x4c7629=_0x4c76();return _0x560c=function(_0x560c08,_0x49edf6){_0x560c08=_0x560c08-0x10a;let _0x518bf2=_0x4c7629[_0x560c08];return _0x518bf2;},_0x560c(_0x537422,_0x5dc7a5);}import{characters}from'/script.js';import{world_names}from'/scripts/world-info.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';let ChatCompletionService=undefined;function _0x4c76(){const _0x549cef=['Amily2-ChatPlugin','AMILY2_LOCK_MODEL_FETCHING','loreActivationMode','log','8qTpOTi','上次任务尚未完成,请稍后再试。','content','cors','\x20个模型\x20(使用第\x20','成功获取\x20','4TJEPeo','API\x20Key无效','[Amily2号-外交部]\x20已派遣使者前往云端获取最新情报...','[Amily2-外交部]\x20已将史册律法附加至国书准备发往下一站。','<option>','characterId','audio','lorebookTarget','4190148UjORxB','endsWith','disabled','json','[Amily2-制裁]\x20系统完整性已受损所有外交活动被无限期中止。','\x20个可用模型','任务成功','任务总结','[Amily2-外交部]\x20发生严重错误:','[Amily2号-使节团]\x20第\x20','includes','仅总结','未知的模型列表格式','[Amily2号-外交部]\x20最终国书将发往:\x20','X-Custom-Proxy','10RjRKWB','aiplatform.googleapis.com','<i\x20class=\x22fas\x20fa-sync-alt\x22></i>\x20刷新模型','生成一段简短的剧情摘要。','name1','依赖缺失','systemPrompt','正在轮换使节团获取模型...','2348556SyxzQh','loreSettings','\x20位使节成功带回\x20','[Amily2号-外交部]\x20情报已成功获取并解析。','[Amily2号-使节团]\x20失败详情汇总:\x0a','info','Bearer\x20','22uEKTmH','pathname','[轮询错误]','optimizationEnabled','轮询失败:\x20','外交任务总耗时','toLocaleTimeString','love.qinyan.xyz','所有使节团任务完成,找到\x20','prop','summarizationPrompt','map','[Amily2号-外交部]\x20已成功召唤“皇家信使”(ChatCompletionService)。','[Amily2号-外交部]\x20使节团尝试使用地址:\x20','join','filter','外交任务失败','/v1','[Amily2号-使节团]\x20上次任务尚未完成本次任务取消。','[Amily2号-外交任务]\x20','GET','slice','data','sort','search','location','API\x20URL\x20未配置。','<无法提取错误正文>','严重错误','[Amily2号-Google外交部]\x20修正后的API地址:\x20','[Amily2号-使节团]\x20使用\x20Google\x20API\x20Key:\x20...','[Amily2号-原始回复]','append','push','worldbookEnabled','[Amily2号-外交部]\x20未能召唤“皇家信使”部分高级功能如Claw代理将受限。请考虑更新SillyTavern版本。','AMILY2_SYSTEM_PARALYZED','<i\x20class=\x22fas\x20fa-spinner\x20fa-spin\x22></i>\x20加载中','is_user','1800PKXqLE','extensions','[输出格式与附加任务指令]:\x0a你的输出必须严格遵循以下完整结构\x0a\x0a','任务排队中','forceProxyForCustomApi','apiKey','val','\x20个Key)','done','877ElpnnX','custom','[Amily2号-外交部]\x20API\x20类型:\x20','/chat/completions','temperature','模式切换','loreKeywords','success','generativelanguage.googleapis.com','/v1beta/projects/locations/global/models','[Amily2-外交部]\x20未能获取AI响应内容','processRequest','\x0a\x0a###AMILY2-SUMMARY###\x0a\x0a这里是根据对话生成的剧情摘要...\x0a\x0a[总结核心要求]:\x0a','start','mes','string','远方服务器响应异常,状态:\x20','warn','embed','POST','[上下文参考]:\x0a','/models','href','[Amily2号-外交部]\x20递交通关文牒至皇家信使...','陛下,您提供的\x20API\x20Key\x20无效或为空。','groupEnd','Google','Authorization','system','trim','model','Key\x20...','similarity','split','[Amily2-外交部]\x20目标标签\x20<','\x20个\x20Google\x20模型\x20(使用第\x20','#amily2_refresh_models','[Amily2号-外交部]\x20紧急军情外交任务失败','10359fYoiZq','application/json','API返回错误:\x20','+总结','###AMILY2-SUMMARY###','replace','statusText','[Amily2号-使节团]\x20已启用“皇家密道”模式跳过模型列表获取。请手动输入模型ID并保存。','/v1beta/models','us-central1','user','10602449mURCfM','未知的\x20Google\x20模型列表格式','whisper','/api/proxy','通过“皇家密道”调用API时发生错误:','\x20位使节\x20(Key:\x20...','/v1/chat/completions','name','timeEnd','https://raw.githubusercontent.com/Wx-2025/ST-Amily2-Chat-Optimisation/refs/heads/main/amily2_update_info.json','isArray','轮询完成但未获得有效响应','error','substring','status','1477875kEalDj','\x20|\x20模式:\x20','toLowerCase','html','empty','models','maxTokens','groupCollapsed','response','3090661ZQJDDb','这里是优化后的文本内容...','dir','/v1/','apiUrl','world','[世界书档案]:\x0a','已启用手动模式请直接输入模型ID。','stringify','\x20-\x20','1054WUiAxb','配置缺失','[Amily2号-使节团]\x20派遣第\x20','summarizationEnabled','onAttempt','ai.google.dev','text','hostname','localeCompare','omit','手动模式已启用','所有使节均未能完成任务。详情请见控制台(F12)。','undefined','陛下,请先赐予\x20API\x20地址与至少一枚\x20API\x20Key。','ChatCompletionService','time','length','message','[核心处理内容]:\x0a','choices'];_0x4c76=function(){return _0x549cef;};return _0x4c76();}try{const module=await import('/scripts/custom-request.js');ChatCompletionService=module[_0x2c0904(0x179)],console[_0x2c0904(0x182)](_0x2c0904(0x1bb));}catch(_0x57bd03){console['warn'](_0x2c0904(0x10b),_0x57bd03);}const UPDATE_CHECK_URL=_0x2c0904(0x152);export async function checkForUpdates(){const _0x4d5ab9=_0x2c0904;if(!UPDATE_CHECK_URL||UPDATE_CHECK_URL[_0x4d5ab9(0x19b)]('YourUsername'))return console[_0x4d5ab9(0x182)]('[Amily2号-外交部]\x20任务取消陛下尚未配置情报来源URL。'),null;try{console[_0x4d5ab9(0x182)](_0x4d5ab9(0x18b));const _0x254b23=await fetch(UPDATE_CHECK_URL,{'method':_0x4d5ab9(0x1c3),'cache':'no-store','mode':_0x4d5ab9(0x186)});if(!_0x254b23['ok'])throw new Error(_0x4d5ab9(0x128)+_0x254b23[_0x4d5ab9(0x157)]);const _0x3d2312=await _0x254b23['json']();return console[_0x4d5ab9(0x182)](_0x4d5ab9(0x1ab)),_0x3d2312;}catch(_0x195c72){return console[_0x4d5ab9(0x155)](_0x4d5ab9(0x13d),_0x195c72),null;}}let isFetchingModels=![];export async function fetchSupportedModels(){const _0x40e1e2=_0x2c0904,_0x838c97=extension_settings[extensionName];if(_0x838c97&&_0x838c97[_0x40e1e2(0x113)]){console[_0x40e1e2(0x182)](_0x40e1e2(0x145)),toastr['info'](_0x40e1e2(0x168),_0x40e1e2(0x11d));const _0x4a2521=$('#amily2_model');return _0x4a2521[_0x40e1e2(0x15c)]()[_0x40e1e2(0x1cf)]($(_0x40e1e2(0x18d),{'value':'','text':_0x40e1e2(0x175)})),[];}if(window[_0x40e1e2(0x180)])return console[_0x40e1e2(0x129)](_0x40e1e2(0x1c1)),toastr[_0x40e1e2(0x1ad)](_0x40e1e2(0x184),_0x40e1e2(0x112)),[];window[_0x40e1e2(0x180)]=!![];try{const _0x4c2607=$('#amily2_api_url')[_0x40e1e2(0x115)]()[_0x40e1e2(0x135)](),_0xdee8f7=$('#amily2_api_key')[_0x40e1e2(0x115)]()[_0x40e1e2(0x135)](),_0x175906=$('#amily2_refresh_models'),_0x23c26a=$('#amily2_model');if(!_0x4c2607||!_0xdee8f7)return toastr['error'](_0x40e1e2(0x178),_0x40e1e2(0x16c)),[];_0x175906['prop'](_0x40e1e2(0x193),!![])['html'](_0x40e1e2(0x10d)),_0x23c26a[_0x40e1e2(0x15c)]()[_0x40e1e2(0x1cf)]($(_0x40e1e2(0x18d),{'value':'','text':_0x40e1e2(0x1a7)}));const _0x24df52=_0xdee8f7[_0x40e1e2(0x139)](',')['map'](_0x156fdd=>_0x156fdd[_0x40e1e2(0x135)]())[_0x40e1e2(0x1be)](Boolean);if(_0x24df52[_0x40e1e2(0x17b)]===0x0)return toastr[_0x40e1e2(0x155)](_0x40e1e2(0x130),_0x40e1e2(0x18a)),_0x23c26a[_0x40e1e2(0x15c)]()[_0x40e1e2(0x1cf)]($('<option>',{'value':'','text':_0x40e1e2(0x18a)})),[];const _0x298e4d=[];let _0x56d0c9=[];for(let _0x3e9982=0x0;_0x3e9982<_0x24df52[_0x40e1e2(0x17b)];_0x3e9982++){const _0xac4900=_0x24df52[_0x3e9982];console[_0x40e1e2(0x182)](_0x40e1e2(0x16d)+(_0x3e9982+0x1)+'/'+_0x24df52['length']+_0x40e1e2(0x14e)+_0xac4900[_0x40e1e2(0x1c4)](-0x4)+')\x20...');try{let _0xdd41d4;const _0x4342f2=new URL(_0x4c2607),_0x277782=isGoogleEndpoint(_0x4c2607);if(_0x277782){if(_0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)](_0x40e1e2(0x120))||_0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)](_0x40e1e2(0x170)))_0x4342f2[_0x40e1e2(0x1b0)]=_0x40e1e2(0x146);else{if(_0x4342f2[_0x40e1e2(0x172)]['includes'](_0x40e1e2(0x1a1)))_0x4342f2[_0x40e1e2(0x1b0)]=_0x40e1e2(0x121);else throw new Error('无法识别的\x20Google\x20API\x20端点');}_0xdd41d4=_0x4342f2[_0x40e1e2(0x12e)];}else{let _0x284b18=_0x4342f2['pathname'];if(_0x284b18[_0x40e1e2(0x192)]('/v1/chat/completions'))_0x284b18=_0x284b18[_0x40e1e2(0x156)](0x0,_0x284b18['length']-_0x40e1e2(0x11b)[_0x40e1e2(0x17b)]);else{if(_0x284b18[_0x40e1e2(0x192)](_0x40e1e2(0x164)))_0x284b18=_0x284b18[_0x40e1e2(0x1c4)](0x0,-0x1);else!_0x284b18['endsWith'](_0x40e1e2(0x1c0))&&(_0x284b18=_0x284b18[_0x40e1e2(0x143)](/\/$/,'')+_0x40e1e2(0x1c0));}_0x4342f2[_0x40e1e2(0x1b0)]=_0x284b18[_0x40e1e2(0x143)](/\/$/,'')+_0x40e1e2(0x12d),_0xdd41d4=_0x4342f2['href'];}console[_0x40e1e2(0x182)](_0x40e1e2(0x1bc)+_0xdd41d4),console[_0x40e1e2(0x182)](_0x40e1e2(0x11a)+(_0x277782?_0x40e1e2(0x132):'OpenAI\x20兼容'));const _0x167b77={'Content-Type':_0x40e1e2(0x13f),'Accept':_0x40e1e2(0x13f)};if(_0x277782){console[_0x40e1e2(0x182)](_0x40e1e2(0x1cd)+_0xac4900[_0x40e1e2(0x1c4)](-0x4));if(_0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)]('generativelanguage.googleapis.com')||_0x4342f2['hostname'][_0x40e1e2(0x19b)](_0x40e1e2(0x170)))_0x167b77['X-goog-api-key']=_0xac4900;else _0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)](_0x40e1e2(0x1a1))&&(_0x167b77[_0x40e1e2(0x133)]=_0x40e1e2(0x1ae)+_0xac4900);}else _0x167b77['Authorization']=_0x40e1e2(0x1ae)+_0xac4900;_0xdd41d4['includes'](_0x40e1e2(0x1b6))&&(_0x167b77[_0x40e1e2(0x19f)]=_0x40e1e2(0x17f),_0x167b77['Origin']=window[_0x40e1e2(0x1c8)]['origin']);const _0x4c799f=await fetch(_0xdd41d4,{'method':_0x40e1e2(0x1c3),'headers':_0x167b77,'mode':'cors','credentials':_0x40e1e2(0x174)});if(!_0x4c799f['ok']){let _0x2fe1cd='';try{const _0x4ed9b2=await _0x4c799f[_0x40e1e2(0x194)]();_0x2fe1cd=JSON['stringify'](_0x4ed9b2,null,0x2);}catch{try{_0x2fe1cd=await _0x4c799f[_0x40e1e2(0x171)]();}catch(_0x12ec65){_0x2fe1cd=_0x40e1e2(0x1ca);}}throw new Error(_0x40e1e2(0x140)+_0x4c799f['status']+'\x20'+_0x4c799f[_0x40e1e2(0x144)]+'\x0a'+_0x2fe1cd);}const _0x3dc038=await _0x4c799f[_0x40e1e2(0x194)]();let _0x4ab840=[];if(_0x277782){if(_0x3dc038[_0x40e1e2(0x15d)]&&Array['isArray'](_0x3dc038[_0x40e1e2(0x15d)]))_0x4ab840=_0x3dc038['models'][_0x40e1e2(0x1ba)](_0x3a0a23=>_0x3a0a23[_0x40e1e2(0x150)]);else{if(_0x3dc038['data']&&Array[_0x40e1e2(0x153)](_0x3dc038[_0x40e1e2(0x1c5)]))_0x4ab840=_0x3dc038[_0x40e1e2(0x1c5)][_0x40e1e2(0x1ba)](_0x4a725e=>_0x4a725e[_0x40e1e2(0x150)]||_0x4a725e['id']);else{if(Array['isArray'](_0x3dc038))_0x4ab840=_0x3dc038[_0x40e1e2(0x1ba)](_0x2cce90=>_0x2cce90[_0x40e1e2(0x150)]);else throw new Error(_0x40e1e2(0x14a));}}}else{if(Array[_0x40e1e2(0x153)](_0x3dc038))_0x4ab840=_0x3dc038[_0x40e1e2(0x1ba)](_0x53f232=>_0x53f232['id']||_0x53f232);else{if(_0x3dc038[_0x40e1e2(0x1c5)]&&Array['isArray'](_0x3dc038[_0x40e1e2(0x1c5)]))_0x4ab840=_0x3dc038[_0x40e1e2(0x1c5)][_0x40e1e2(0x1ba)](_0x483b61=>_0x483b61['id']);else{if(_0x3dc038[_0x40e1e2(0x15d)]&&Array['isArray'](_0x3dc038[_0x40e1e2(0x15d)]))_0x4ab840=_0x3dc038['models'][_0x40e1e2(0x1ba)](_0x427d51=>_0x427d51['id']);else throw new Error(_0x40e1e2(0x19d));}}}const _0x2af39f=_0x4ab840[_0x40e1e2(0x1be)](_0x454233=>typeof _0x454233===_0x40e1e2(0x127))[_0x40e1e2(0x1be)](_0x444f6c=>!_0x444f6c['toLowerCase']()[_0x40e1e2(0x19b)](_0x40e1e2(0x12a)))[_0x40e1e2(0x1be)](_0x3b2d5f=>!_0x3b2d5f['toLowerCase']()[_0x40e1e2(0x19b)](_0x40e1e2(0x1c7)))[_0x40e1e2(0x1be)](_0x4ec92f=>!_0x4ec92f[_0x40e1e2(0x15a)]()[_0x40e1e2(0x19b)](_0x40e1e2(0x138)))[_0x40e1e2(0x1be)](_0x98a72a=>!_0x98a72a[_0x40e1e2(0x15a)]()[_0x40e1e2(0x19b)](_0x40e1e2(0x18f)))[_0x40e1e2(0x1be)](_0x5bff96=>!_0x5bff96[_0x40e1e2(0x15a)]()['includes']('code'))['filter'](_0x56c546=>!_0x56c546[_0x40e1e2(0x15a)]()[_0x40e1e2(0x19b)](_0x40e1e2(0x14b)));_0x2af39f[_0x40e1e2(0x1c6)]((_0x5d0e54,_0x27bf58)=>_0x5d0e54[_0x40e1e2(0x173)](_0x27bf58)),console[_0x40e1e2(0x182)](_0x40e1e2(0x19a)+(_0x3e9982+0x1)+_0x40e1e2(0x1aa)+_0x2af39f['length']+'\x20个模型'),_0x56d0c9=[...new Set([..._0x56d0c9,..._0x2af39f])],_0x56d0c9[_0x40e1e2(0x1c6)]();_0x277782?toastr[_0x40e1e2(0x11f)]('成功获取\x20'+_0x2af39f[_0x40e1e2(0x17b)]+_0x40e1e2(0x13b)+(_0x3e9982+0x1)+_0x40e1e2(0x116),_0x40e1e2(0x197)):toastr[_0x40e1e2(0x11f)](_0x40e1e2(0x188)+_0x2af39f[_0x40e1e2(0x17b)]+_0x40e1e2(0x187)+(_0x3e9982+0x1)+_0x40e1e2(0x116),_0x40e1e2(0x197));break;}catch(_0x5b83b9){const _0x1b38b5=_0x40e1e2(0x137)+_0xac4900[_0x40e1e2(0x1c4)](-0x4)+'\x20失败:\x20'+_0x5b83b9['message'];console['error'](_0x40e1e2(0x19a)+(_0x3e9982+0x1)+'\x20位使节任务失败:',_0x5b83b9),_0x298e4d[_0x40e1e2(0x1d0)](_0x1b38b5);}}if(_0x56d0c9['length']>0x0)return console[_0x40e1e2(0x182)]('[Amily2号-使节团]\x20最终带回\x20'+_0x56d0c9[_0x40e1e2(0x17b)]+_0x40e1e2(0x196)),toastr['info'](_0x40e1e2(0x1b7)+_0x56d0c9['length']+_0x40e1e2(0x196),_0x40e1e2(0x198)),_0x56d0c9;return toastr[_0x40e1e2(0x155)](_0x40e1e2(0x176),_0x40e1e2(0x1bf)),console[_0x40e1e2(0x155)](_0x40e1e2(0x1ac)+_0x298e4d['join']('\x0a')),[];}catch(_0xf3eb92){return console[_0x40e1e2(0x155)]('[Amily2号-使节团]\x20全局错误:',_0xf3eb92),toastr[_0x40e1e2(0x155)]('模型获取失败:\x20'+_0xf3eb92[_0x40e1e2(0x17c)],'系统错误'),[];}finally{window[_0x40e1e2(0x180)]=![];const _0x438b50=$(_0x40e1e2(0x13c));_0x438b50[_0x40e1e2(0x1b8)](_0x40e1e2(0x193),![])[_0x40e1e2(0x15b)](_0x40e1e2(0x1a2));}}export async function checkAndFixWithAPI(_0x12d1a9,_0x553bca){const _0x3b87d5=_0x2c0904;if(window[_0x3b87d5(0x10c)]===!![])return console[_0x3b87d5(0x155)](_0x3b87d5(0x195)),null;const _0x1173a4=extension_settings[extensionName],_0x2de943=_0x1173a4[_0x3b87d5(0x1b2)],_0x17717d=_0x1173a4[_0x3b87d5(0x16e)];if(!_0x2de943&&!_0x17717d)return null;if(!_0x1173a4[_0x3b87d5(0x165)]||!_0x1173a4[_0x3b87d5(0x165)][_0x3b87d5(0x135)]())return toastr['error'](_0x3b87d5(0x1c9),'Amily2-外交部'),null;console[_0x3b87d5(0x15f)](_0x3b87d5(0x1c2)+new Date()[_0x3b87d5(0x1b5)]()+_0x3b87d5(0x159)+(_0x2de943?'优化':'')+(_0x17717d?_0x2de943?_0x3b87d5(0x141):_0x3b87d5(0x19c):'')),console[_0x3b87d5(0x17a)](_0x3b87d5(0x1b4));try{const _0x1edfd4=_0x12d1a9['mes'],_0x2d63fa=_0x1173a4['optimizationTargetTag']||_0x3b87d5(0x185);let _0x4946dd;if(_0x2de943){_0x4946dd=extractFullTagBlock(_0x1edfd4,_0x2d63fa);if(!_0x4946dd||extractContentByTag(_0x4946dd,_0x2d63fa)?.[_0x3b87d5(0x135)]()===''){console['log'](_0x3b87d5(0x13a)+_0x2d63fa+'>\x20未找到或为空优化任务已跳过。'),_0x4946dd=_0x1edfd4;if(!_0x17717d)return console[_0x3b87d5(0x151)]('外交任务总耗时'),console[_0x3b87d5(0x131)](),{'optimizedContent':_0x1edfd4,'summary':null};}}else _0x4946dd=_0x1edfd4;const _0x2ae644=getContext(),_0x47ff17=_0x2ae644[_0x3b87d5(0x1a4)]||'用户',_0x8886bf=_0x2ae644['name2']||'角色',_0x52d3fa=_0x553bca[_0x3b87d5(0x17b)]>0x0&&_0x553bca[_0x553bca[_0x3b87d5(0x17b)]-0x1][_0x3b87d5(0x10e)]?_0x553bca[_0x553bca['length']-0x1]:null,_0x11c55d=_0x52d3fa?_0x553bca['slice'](0x0,-0x1):_0x553bca,_0x5c4ea3=_0x11c55d['map'](_0x4a7f8d=>_0x4a7f8d[_0x3b87d5(0x126)]&&_0x4a7f8d[_0x3b87d5(0x126)][_0x3b87d5(0x135)]()?(_0x4a7f8d[_0x3b87d5(0x10e)]?_0x47ff17:_0x8886bf)+':\x20'+_0x4a7f8d[_0x3b87d5(0x126)]['trim']():null)[_0x3b87d5(0x1be)](Boolean)[_0x3b87d5(0x1bd)]('\x0a');let _0x347ede='';if(_0x1173a4[_0x3b87d5(0x10a)]){const _0xc79d90=characters[_0x2ae644[_0x3b87d5(0x18e)]];_0xc79d90?.[_0x3b87d5(0x1c5)]?.[_0x3b87d5(0x110)]?.[_0x3b87d5(0x166)]&&(_0x347ede=await getCombinedWorldbookContent(_0xc79d90[_0x3b87d5(0x1c5)][_0x3b87d5(0x110)][_0x3b87d5(0x166)]));}const _0x43e613=[];_0x1173a4['mainPrompt']?.[_0x3b87d5(0x135)]()&&_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x134),'content':_0x1173a4['mainPrompt']['trim']()});if(_0x2de943){if(_0x1173a4['systemPrompt']?.['trim']())_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x134),'content':_0x1173a4[_0x3b87d5(0x1a6)][_0x3b87d5(0x135)]()});}if(_0x2de943&&_0x17717d){const _0x4976ea=(_0x3b87d5(0x111)+_0x4946dd[_0x3b87d5(0x143)](extractContentByTag(_0x4946dd,_0x2d63fa),_0x3b87d5(0x162))+_0x3b87d5(0x124)+(_0x1173a4[_0x3b87d5(0x1b9)]?.['trim']()||_0x3b87d5(0x1a3)))[_0x3b87d5(0x135)]();_0x43e613['push']({'role':_0x3b87d5(0x134),'content':_0x4976ea});}else{if(!_0x2de943&&_0x17717d){const _0x4e2536='请严格遵循以下指令:基于所有提供的背景和对话内容,生成一段精炼的剧情摘要。直接输出摘要文本,不要包含任何多余的解释、标签或前缀。\x0a\x0a[总结核心要求]:\x0a'+_0x1173a4[_0x3b87d5(0x1b9)]['trim']();_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x134),'content':_0x4e2536});}}if(_0x347ede)_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x148),'content':_0x3b87d5(0x167)+_0x347ede});if(_0x5c4ea3)_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x148),'content':_0x3b87d5(0x12c)+_0x5c4ea3});let _0x10edd0=_0x52d3fa?_0x47ff17+':\x20'+_0x52d3fa[_0x3b87d5(0x126)]+'\x0a'+_0x8886bf+':\x20'+_0x4946dd:_0x4946dd;_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x148),'content':_0x3b87d5(0x17d)+_0x10edd0}),console['groupCollapsed']('[Amily2号-最终国书内容\x20(发往AI)]'),console[_0x3b87d5(0x163)](_0x43e613),console[_0x3b87d5(0x131)]();const _0x25807c=isGoogleEndpoint(_0x1173a4[_0x3b87d5(0x165)]);let _0x5d9d8b=_0x1173a4[_0x3b87d5(0x165)]['trim']();const _0x49d207=_0x1173a4[_0x3b87d5(0x136)];let _0x522a5a;if(_0x1173a4[_0x3b87d5(0x113)]){console[_0x3b87d5(0x182)]('[Amily2号-外交部]\x20执行“皇家密道”协议...');if(typeof ChatCompletionService===_0x3b87d5(0x177)||!ChatCompletionService?.[_0x3b87d5(0x123)]){const _0x3da65b='无法使用“皇家密道”当前SillyTavern版本过低或缺少核心文件\x20/scripts/custom-request.js。';toastr[_0x3b87d5(0x155)](_0x3da65b,_0x3b87d5(0x1a5));throw new Error(_0x3da65b);}try{const _0x4ae4bf={'stream':![],'messages':_0x43e613,'max_tokens':_0x1173a4[_0x3b87d5(0x15e)],'temperature':_0x1173a4['temperature'],'model':_0x1173a4['model'],'chat_completion_source':_0x3b87d5(0x119),'custom_url':_0x1173a4['apiUrl'],'reverse_proxy':_0x3b87d5(0x14c)};console[_0x3b87d5(0x182)](_0x3b87d5(0x12f),_0x4ae4bf);const _0x326f03=await ChatCompletionService['processRequest'](_0x4ae4bf,{},!![]);if(!_0x326f03||!_0x326f03[_0x3b87d5(0x185)])throw new Error('皇家信使未能带回有效情报(响应为空)。');_0x522a5a=_0x326f03[_0x3b87d5(0x185)];}catch(_0x473094){console[_0x3b87d5(0x155)](_0x3b87d5(0x14d),_0x473094);throw _0x473094;}}else{console[_0x3b87d5(0x182)]('[Amily2号-外交部]\x20执行“帝国直通车”协议直接通讯...');const _0x4a33cb=isGoogleEndpoint(_0x1173a4['apiUrl']);let _0x2b9134=_0x1173a4[_0x3b87d5(0x165)][_0x3b87d5(0x135)]();const _0x621612=_0x1173a4['model'],_0x1d4ca1=_0x1173a4[_0x3b87d5(0x15e)],_0x3342d9=_0x1173a4[_0x3b87d5(0x11c)];let _0x488e88;if(_0x4a33cb)_0x488e88=buildGoogleApiUrl(_0x2b9134,_0x621612),console['log'](_0x3b87d5(0x1cc)+_0x488e88);else{let _0x1786ca=_0x2b9134;_0x1786ca['endsWith']('/')&&(_0x1786ca=_0x1786ca['slice'](0x0,-0x1)),_0x1786ca[_0x3b87d5(0x192)]('/v1')&&(_0x1786ca=_0x1786ca[_0x3b87d5(0x1c4)](0x0,-0x3)),_0x1786ca['endsWith'](_0x3b87d5(0x14f))||_0x1786ca[_0x3b87d5(0x192)]('/v1beta/openai')?_0x488e88=_0x1786ca:_0x488e88=_0x1786ca+'/v1/chat/completions';}console[_0x3b87d5(0x182)](_0x3b87d5(0x19e)+_0x488e88);const _0x336f0f=_0x1173a4[_0x3b87d5(0x114)]?.[_0x3b87d5(0x135)](),_0x310ff1={'Content-Type':_0x3b87d5(0x13f)};_0x4a33cb?urlObject['hostname'][_0x3b87d5(0x19b)](_0x3b87d5(0x1a1))||_0x2b9134[_0x3b87d5(0x19b)](_0x3b87d5(0x147))?_0x310ff1[_0x3b87d5(0x133)]=_0x3b87d5(0x1ae)+_0x336f0f:_0x310ff1['X-goog-api-key']=_0x336f0f:_0x310ff1[_0x3b87d5(0x133)]=_0x3b87d5(0x1ae)+_0x336f0f;let _0x39526e;_0x4a33cb?_0x39526e=JSON['stringify'](convertToGoogleRequest({'model':_0x621612,'messages':_0x43e613,'max_tokens':_0x1d4ca1,'temperature':_0x3342d9})):_0x39526e=JSON[_0x3b87d5(0x169)]({'model':_0x621612,'messages':_0x43e613,'max_tokens':_0x1d4ca1,'temperature':_0x3342d9,'stream':![]});const _0x263fb4=await fetch(_0x488e88,{'method':_0x3b87d5(0x12b),'headers':_0x310ff1,'body':_0x39526e});if(!_0x263fb4['ok'])throw new Error('API请求失败:\x20'+_0x263fb4[_0x3b87d5(0x157)]+'\x20'+_0x263fb4[_0x3b87d5(0x144)]+_0x3b87d5(0x16a)+await _0x263fb4['text']());let _0x75daec=await _0x263fb4[_0x3b87d5(0x194)]();if(_0x4a33cb&&_0x75daec[_0x3b87d5(0x150)]&&_0x75daec['metadata']){console['log']('[Amily2号-Google外交部]\x20收到异步操作ID启用轮询机制...');const _0xc715f7=_0x75daec['name'],_0x155398=progressTracker(_0xc715f7,0x6);_0x155398[_0x3b87d5(0x125)]();try{const _0x71f275=createGooglePollingTask(_0xc715f7,urlObject['origin'],_0x310ff1),_0x38bdec={'maxAttempts':0x6,'baseDelay':0xbb8,'shouldStop':_0x4dc6f8=>_0x4dc6f8[_0x3b87d5(0x117)],'onAttempt':(_0x13bdf7,_0x46bea7)=>{const _0x524202=_0x3b87d5;_0x155398[_0x524202(0x16f)](_0x13bdf7,_0x46bea7);},'onError':(_0x5315a2,_0x1209d3)=>{_0x155398['error'](_0x5315a2['message']);}},_0xc3d4f0=await intelligentPoll(_0x71f275,_0x38bdec);_0x155398['complete']();if(!_0xc3d4f0[_0x3b87d5(0x160)])throw new Error(_0x3b87d5(0x154));_0x75daec=_0xc3d4f0[_0x3b87d5(0x160)],_0x522a5a=parseGoogleResponse(_0x75daec)?.[_0x3b87d5(0x17e)]?.[0x0]?.[_0x3b87d5(0x17c)]?.[_0x3b87d5(0x185)];}catch(_0x237da6){console[_0x3b87d5(0x155)](_0x3b87d5(0x1b1),_0x237da6),_0x155398[_0x3b87d5(0x155)](_0x3b87d5(0x1b3)+_0x237da6['message']);throw new Error('轮询任务失败:\x20'+_0x237da6['message']);}}else _0x522a5a=_0x4a33cb?parseGoogleResponse(_0x75daec)?.[_0x3b87d5(0x17e)]?.[0x0]?.[_0x3b87d5(0x17c)]?.[_0x3b87d5(0x185)]:_0x75daec?.[_0x3b87d5(0x17e)]?.[0x0]?.['message']?.[_0x3b87d5(0x185)];}if(!_0x522a5a)return console[_0x3b87d5(0x155)](_0x3b87d5(0x122),_0x522a5a),null;console[_0x3b87d5(0x15f)](_0x3b87d5(0x1ce)),console[_0x3b87d5(0x182)](_0x522a5a),console[_0x3b87d5(0x131)]();let _0x15eff4=_0x1edfd4,_0x5f32c4=null;if(_0x2de943&&_0x17717d){const _0x17a002=_0x3b87d5(0x142),_0x55639c=_0x522a5a['split'](_0x17a002),_0x3c4b3e=_0x55639c[0x0]?.[_0x3b87d5(0x135)]();_0x5f32c4=_0x55639c[0x1]?.[_0x3b87d5(0x135)]()||null;if(_0x3c4b3e){const _0x30bf5b=extractContentByTag(_0x3c4b3e,_0x2d63fa);_0x30bf5b?.[_0x3b87d5(0x135)]()&&(_0x15eff4=replaceContentByTag(_0x1edfd4,_0x2d63fa,_0x30bf5b));}}else{if(_0x2de943){const _0x365105=extractContentByTag(_0x522a5a,_0x2d63fa);_0x365105?.[_0x3b87d5(0x135)]()&&(_0x15eff4=replaceContentByTag(_0x1edfd4,_0x2d63fa,_0x365105));}else _0x5f32c4=_0x522a5a['trim']();}const _0xca2c41={'optimizedContent':_0x15eff4,'summary':_0x5f32c4};return _0x5f32c4&&_0x17717d&&(_0xca2c41[_0x3b87d5(0x1a9)]={'activationMode':_0x1173a4[_0x3b87d5(0x181)],'insertionPosition':_0x1173a4['loreInsertionPosition'],'depth':_0x1173a4['loreDepth'],'keywords':_0x1173a4[_0x3b87d5(0x11e)],'target':_0x1173a4[_0x3b87d5(0x190)]},console[_0x3b87d5(0x182)](_0x3b87d5(0x18c),_0xca2c41['loreSettings'])),console[_0x3b87d5(0x151)](_0x3b87d5(0x1b4)),console[_0x3b87d5(0x131)](),_0xca2c41;}catch(_0x1ae4e0){return console['error'](_0x3b87d5(0x199),_0x1ae4e0),toastr[_0x3b87d5(0x155)]('Amily2号任务失败:\x20'+_0x1ae4e0[_0x3b87d5(0x17c)],_0x3b87d5(0x1cb)),console[_0x3b87d5(0x151)]('外交任务总耗时'),console[_0x3b87d5(0x131)](),null;}}