Files
ST-Amily2-Chat-Optimisation/core/api.js
2025-07-16 13:21:57 +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 _0x4f8fd1=_0xd822;(function(_0x9669f1,_0x3e5373){const _0xa4d2db=_0xd822,_0x14aebc=_0x9669f1();while(!![]){try{const _0x3753dc=-parseInt(_0xa4d2db(0x1a6))/0x1+parseInt(_0xa4d2db(0x1dd))/0x2+-parseInt(_0xa4d2db(0x189))/0x3+parseInt(_0xa4d2db(0x179))/0x4*(parseInt(_0xa4d2db(0x1e2))/0x5)+-parseInt(_0xa4d2db(0x1b2))/0x6+-parseInt(_0xa4d2db(0x1fc))/0x7*(parseInt(_0xa4d2db(0x216))/0x8)+-parseInt(_0xa4d2db(0x194))/0x9*(-parseInt(_0xa4d2db(0x204))/0xa);if(_0x3753dc===_0x3e5373)break;else _0x14aebc['push'](_0x14aebc['shift']());}catch(_0x4eaaf2){_0x14aebc['push'](_0x14aebc['shift']());}}}(_0x5a12,0x97118));import{extension_settings,getContext}from'/scripts/extensions.js';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;try{const module=await import('/scripts/custom-request.js');ChatCompletionService=module['ChatCompletionService'],console['log'](_0x4f8fd1(0x1cc));}catch(_0x5de009){console[_0x4f8fd1(0x206)]('[Amily2号-外交部]\x20未能召唤“皇家信使”部分高级功能如Claw代理将受限。请考虑更新SillyTavern版本。',_0x5de009);}function _0x5a12(){const _0x356b6f=['14095YlJUUN','#amily2_model','time','timeEnd','[Amily2号-外交部]\x20任务取消陛下尚未配置情报来源URL。','[Amily2号-Google外交部]\x20修正后的API地址:\x20','prop','data','[Amily2号-使节团]\x20已启用“皇家密道”模式跳过模型列表获取。请手动输入模型ID并保存。','join','audio','手动模式已启用','[Amily2号-外交部]\x20已派遣使者前往云端获取最新情报...','disabled','皇家信使未能带回有效情报(响应为空)。','slice','[Amily2号-外交部]\x20情报已成功获取并解析。','/models','is_user','[Amily2号-使节团]\x20上次任务尚未完成本次任务取消。','Amily2-外交部','summarizationPrompt','no-store','worldbookEnabled','loreKeywords','user','4577475JAwvZv','apiKey','apiUrl','未知的\x20Google\x20模型列表格式','[世界书档案]:\x0a','/chat/completions','陛下,请先赐予\x20API\x20地址与至少一枚\x20API\x20Key。','split','780mhoFZt','Bearer\x20','warn','aiplatform.googleapis.com','optimizationEnabled','Amily2号任务失败:\x20','length','上次任务尚未完成,请稍后再试。','application/json','cors','[核心处理内容]:\x0a','append','world','forceProxyForCustomApi','complete','search','val','optimizationTargetTag','8ADrvOR','model','\x20个可用模型','Key\x20...','temperature','/v1beta/openai','###AMILY2-SUMMARY###','code','groupCollapsed','无法识别的\x20Google\x20API\x20端点','仅总结','characterId','POST','任务总结','外交任务总耗时','filter','AMILY2_SYSTEM_PARALYZED','name1','X-goog-api-key','success','start','omit','Amily2-ChatPlugin','[Amily2号-使节团]\x20失败详情汇总:\x0a','stringify','[Amily2-外交部]\x20发生严重错误:','[Amily2号-外交部]\x20最终国书将发往:\x20','[Amily2号-外交任务]\x20','embed','isArray','href','[Amily2号-外交部]\x20使节团尝试使用地址:\x20','replace','API返回错误:\x20','任务成功','#amily2_api_key','所有使节团任务完成,找到\x20','ai.google.dev','配置缺失','远方服务器响应异常,状态:\x20','loreSettings','GET','模式切换','loreInsertionPosition','error','508kHuIft','<option>','map','[Amily2号-外交部]\x20递交通关文牒至皇家信使...','AMILY2_LOCK_MODEL_FETCHING','origin','#amily2_refresh_models','[Amily2号-最终国书内容\x20(发往AI)]','log','\x20失败:\x20','[Amily2号-原始回复]','未知的模型列表格式','<i\x20class=\x22fas\x20fa-sync-alt\x22></i>\x20刷新模型','choices','正在轮换使节团获取模型...','Google','1711773JxmmGp','#amily2_api_url','includes','Origin','/v1/chat/completions','API请求失败:\x20','API\x20Key无效','onAttempt','<无法提取错误正文>','loreDepth','Authorization','185823lXNrdh','love.qinyan.xyz','undefined','endsWith','content','成功获取\x20','push','statusText','name2','>\x20未找到或为空优化任务已跳过。','[Amily2号-外交部]\x20紧急军情外交任务失败','metadata','\x20位使节成功带回\x20','mes','OpenAI\x20兼容','\x20位使节\x20(Key:\x20...','/v1','json','220116SNyzas','maxTokens','https://raw.githubusercontent.com/Wx-2025/ST-Amily2-Chat-Optimisation/refs/heads/main/amily2_update_info.json','message','API\x20URL\x20未配置。','这里是优化后的文本内容...','\x0a\x0a###AMILY2-SUMMARY###\x0a\x0a这里是根据对话生成的剧情摘要...\x0a\x0a[总结核心要求]:\x0a','systemPrompt','[Amily2号-使节团]\x20最终带回\x20','\x20个模型\x20(使用第\x20','[输出格式与附加任务指令]:\x0a你的输出必须严格遵循以下完整结构\x0a\x0a','extensions','5057628JXYhmD','轮询任务失败:\x20','[Amily2-外交部]\x20已将史册律法附加至国书准备发往下一站。','模型获取失败:\x20','+总结','hostname','[Amily2-制裁]\x20系统完整性已受损所有外交活动被无限期中止。','轮询完成但未获得有效响应','[Amily2-外交部]\x20未能获取AI响应内容','lorebookTarget','localeCompare','summarizationEnabled','toLowerCase','X-Custom-Proxy','trim','任务排队中','严重错误','substring','mainPrompt','sort','所有使节均未能完成任务。详情请见控制台(F12)。','\x20个Key)','location','info','groupEnd','us-central1','[Amily2号-外交部]\x20已成功召唤“皇家信使”(ChatCompletionService)。','processRequest','response','[Amily2号-使节团]\x20派遣第\x20','models','empty','已启用手动模式请直接输入模型ID。','whisper','[Amily2号-使节团]\x20第\x20','generativelanguage.googleapis.com','string','YourUsername','toLocaleTimeString','name','loreActivationMode','system','[轮询错误]','1875734zPjgJG','\x20位使节任务失败:','text','pathname','\x20-\x20'];_0x5a12=function(){return _0x356b6f;};return _0x5a12();}const UPDATE_CHECK_URL=_0x4f8fd1(0x1a8);export async function checkForUpdates(){const _0xe68506=_0x4f8fd1;if(!UPDATE_CHECK_URL||UPDATE_CHECK_URL[_0xe68506(0x18b)](_0xe68506(0x1d7)))return console[_0xe68506(0x181)](_0xe68506(0x1e6)),null;try{console[_0xe68506(0x181)](_0xe68506(0x1ee));const _0x16e535=await fetch(UPDATE_CHECK_URL,{'method':_0xe68506(0x175),'cache':_0xe68506(0x1f8),'mode':_0xe68506(0x20d)});if(!_0x16e535['ok'])throw new Error(_0xe68506(0x173)+_0x16e535['status']);const _0x494b9c=await _0x16e535[_0xe68506(0x1a5)]();return console['log'](_0xe68506(0x1f2)),_0x494b9c;}catch(_0x2ca172){return console[_0xe68506(0x178)](_0xe68506(0x19e),_0x2ca172),null;}}let isFetchingModels=![];function _0xd822(_0x106397,_0xad91a8){const _0x5a12db=_0x5a12();return _0xd822=function(_0xd82279,_0x34456e){_0xd82279=_0xd82279-0x158;let _0x13acd4=_0x5a12db[_0xd82279];return _0x13acd4;},_0xd822(_0x106397,_0xad91a8);}export async function fetchSupportedModels(){const _0x3c9d39=_0x4f8fd1,_0x3733f4=extension_settings[extensionName];if(_0x3733f4&&_0x3733f4[_0x3c9d39(0x211)]){console[_0x3c9d39(0x181)](_0x3c9d39(0x1ea)),toastr[_0x3c9d39(0x1c9)](_0x3c9d39(0x1d2),_0x3c9d39(0x176));const _0x2a5dd3=$(_0x3c9d39(0x1e3));return _0x2a5dd3[_0x3c9d39(0x1d1)]()[_0x3c9d39(0x20f)]($(_0x3c9d39(0x17a),{'value':'','text':_0x3c9d39(0x1ed)})),[];}if(window['AMILY2_LOCK_MODEL_FETCHING'])return console[_0x3c9d39(0x206)](_0x3c9d39(0x1f5)),toastr[_0x3c9d39(0x1c9)](_0x3c9d39(0x20b),_0x3c9d39(0x1c1)),[];window[_0x3c9d39(0x17d)]=!![];try{const _0x2c3ecb=$(_0x3c9d39(0x18a))[_0x3c9d39(0x214)]()[_0x3c9d39(0x1c0)](),_0x5e0692=$(_0x3c9d39(0x16f))[_0x3c9d39(0x214)]()[_0x3c9d39(0x1c0)](),_0x55761c=$('#amily2_refresh_models'),_0x51af73=$('#amily2_model');if(!_0x2c3ecb||!_0x5e0692)return toastr[_0x3c9d39(0x178)](_0x3c9d39(0x202),_0x3c9d39(0x172)),[];_0x55761c[_0x3c9d39(0x1e8)](_0x3c9d39(0x1ef),!![])['html']('<i\x20class=\x22fas\x20fa-spinner\x20fa-spin\x22></i>\x20加载中'),_0x51af73['empty']()['append']($(_0x3c9d39(0x17a),{'value':'','text':_0x3c9d39(0x187)}));const _0x5aee1f=_0x5e0692[_0x3c9d39(0x203)](',')[_0x3c9d39(0x17b)](_0x4953c0=>_0x4953c0[_0x3c9d39(0x1c0)]())['filter'](Boolean);if(_0x5aee1f['length']===0x0)return toastr[_0x3c9d39(0x178)]('陛下,您提供的\x20API\x20Key\x20无效或为空。',_0x3c9d39(0x18f)),_0x51af73['empty']()['append']($(_0x3c9d39(0x17a),{'value':'','text':_0x3c9d39(0x18f)})),[];const _0x4deda4=[];let _0x3ed0c1=[];for(let _0xbd716a=0x0;_0xbd716a<_0x5aee1f[_0x3c9d39(0x20a)];_0xbd716a++){const _0x22f73c=_0x5aee1f[_0xbd716a];console[_0x3c9d39(0x181)](_0x3c9d39(0x1cf)+(_0xbd716a+0x1)+'/'+_0x5aee1f[_0x3c9d39(0x20a)]+_0x3c9d39(0x1a3)+_0x22f73c[_0x3c9d39(0x1f1)](-0x4)+')\x20...');try{let _0x2d6b6f;const _0x388a00=new URL(_0x2c3ecb),_0x483bf3=isGoogleEndpoint(_0x2c3ecb);if(_0x483bf3){if(_0x388a00[_0x3c9d39(0x1b7)][_0x3c9d39(0x18b)](_0x3c9d39(0x1d5))||_0x388a00['hostname'][_0x3c9d39(0x18b)](_0x3c9d39(0x171)))_0x388a00[_0x3c9d39(0x1e0)]='/v1beta/models';else{if(_0x388a00[_0x3c9d39(0x1b7)][_0x3c9d39(0x18b)](_0x3c9d39(0x207)))_0x388a00[_0x3c9d39(0x1e0)]='/v1beta/projects/locations/global/models';else throw new Error(_0x3c9d39(0x21f));}_0x2d6b6f=_0x388a00[_0x3c9d39(0x16a)];}else{let _0x4b2946=_0x388a00['pathname'];if(_0x4b2946[_0x3c9d39(0x197)]('/v1/chat/completions'))_0x4b2946=_0x4b2946[_0x3c9d39(0x1c3)](0x0,_0x4b2946[_0x3c9d39(0x20a)]-_0x3c9d39(0x201)['length']);else{if(_0x4b2946[_0x3c9d39(0x197)]('/v1/'))_0x4b2946=_0x4b2946[_0x3c9d39(0x1f1)](0x0,-0x1);else!_0x4b2946[_0x3c9d39(0x197)](_0x3c9d39(0x1a4))&&(_0x4b2946=_0x4b2946[_0x3c9d39(0x16c)](/\/$/,'')+_0x3c9d39(0x1a4));}_0x388a00[_0x3c9d39(0x1e0)]=_0x4b2946[_0x3c9d39(0x16c)](/\/$/,'')+_0x3c9d39(0x1f3),_0x2d6b6f=_0x388a00[_0x3c9d39(0x16a)];}console[_0x3c9d39(0x181)](_0x3c9d39(0x16b)+_0x2d6b6f),console[_0x3c9d39(0x181)]('[Amily2号-外交部]\x20API\x20类型:\x20'+(_0x483bf3?_0x3c9d39(0x188):_0x3c9d39(0x1a2)));const _0x472990={'Content-Type':'application/json','Accept':_0x3c9d39(0x20c)};if(_0x483bf3){console[_0x3c9d39(0x181)]('[Amily2号-使节团]\x20使用\x20Google\x20API\x20Key:\x20...'+_0x22f73c[_0x3c9d39(0x1f1)](-0x4));if(_0x388a00[_0x3c9d39(0x1b7)][_0x3c9d39(0x18b)]('generativelanguage.googleapis.com')||_0x388a00['hostname'][_0x3c9d39(0x18b)](_0x3c9d39(0x171)))_0x472990['X-goog-api-key']=_0x22f73c;else _0x388a00['hostname'][_0x3c9d39(0x18b)](_0x3c9d39(0x207))&&(_0x472990['Authorization']=_0x3c9d39(0x205)+_0x22f73c);}else _0x472990['Authorization']=_0x3c9d39(0x205)+_0x22f73c;_0x2d6b6f[_0x3c9d39(0x18b)](_0x3c9d39(0x195))&&(_0x472990[_0x3c9d39(0x1bf)]=_0x3c9d39(0x162),_0x472990[_0x3c9d39(0x18c)]=window[_0x3c9d39(0x1c8)]['origin']);const _0x5c5801=await fetch(_0x2d6b6f,{'method':_0x3c9d39(0x175),'headers':_0x472990,'mode':_0x3c9d39(0x20d),'credentials':_0x3c9d39(0x161)});if(!_0x5c5801['ok']){let _0x559794='';try{const _0x2da0fd=await _0x5c5801[_0x3c9d39(0x1a5)]();_0x559794=JSON[_0x3c9d39(0x164)](_0x2da0fd,null,0x2);}catch{try{_0x559794=await _0x5c5801['text']();}catch(_0x4950b5){_0x559794=_0x3c9d39(0x191);}}throw new Error(_0x3c9d39(0x16d)+_0x5c5801['status']+'\x20'+_0x5c5801[_0x3c9d39(0x19b)]+'\x0a'+_0x559794);}const _0x19626d=await _0x5c5801[_0x3c9d39(0x1a5)]();let _0x5a1435=[];if(_0x483bf3){if(_0x19626d[_0x3c9d39(0x1d0)]&&Array['isArray'](_0x19626d[_0x3c9d39(0x1d0)]))_0x5a1435=_0x19626d[_0x3c9d39(0x1d0)]['map'](_0x1ffde6=>_0x1ffde6[_0x3c9d39(0x1d9)]);else{if(_0x19626d[_0x3c9d39(0x1e9)]&&Array[_0x3c9d39(0x169)](_0x19626d[_0x3c9d39(0x1e9)]))_0x5a1435=_0x19626d[_0x3c9d39(0x1e9)][_0x3c9d39(0x17b)](_0xff7a8e=>_0xff7a8e[_0x3c9d39(0x1d9)]||_0xff7a8e['id']);else{if(Array[_0x3c9d39(0x169)](_0x19626d))_0x5a1435=_0x19626d[_0x3c9d39(0x17b)](_0x3ad2d3=>_0x3ad2d3['name']);else throw new Error(_0x3c9d39(0x1ff));}}}else{if(Array[_0x3c9d39(0x169)](_0x19626d))_0x5a1435=_0x19626d[_0x3c9d39(0x17b)](_0x49b38b=>_0x49b38b['id']||_0x49b38b);else{if(_0x19626d[_0x3c9d39(0x1e9)]&&Array[_0x3c9d39(0x169)](_0x19626d[_0x3c9d39(0x1e9)]))_0x5a1435=_0x19626d[_0x3c9d39(0x1e9)][_0x3c9d39(0x17b)](_0x930f02=>_0x930f02['id']);else{if(_0x19626d['models']&&Array[_0x3c9d39(0x169)](_0x19626d[_0x3c9d39(0x1d0)]))_0x5a1435=_0x19626d[_0x3c9d39(0x1d0)][_0x3c9d39(0x17b)](_0x5d3bd1=>_0x5d3bd1['id']);else throw new Error(_0x3c9d39(0x184));}}}const _0x15278e=_0x5a1435[_0x3c9d39(0x15b)](_0x13c20e=>typeof _0x13c20e===_0x3c9d39(0x1d6))[_0x3c9d39(0x15b)](_0x118829=>!_0x118829[_0x3c9d39(0x1be)]()[_0x3c9d39(0x18b)](_0x3c9d39(0x168)))[_0x3c9d39(0x15b)](_0x507c88=>!_0x507c88[_0x3c9d39(0x1be)]()['includes'](_0x3c9d39(0x213)))['filter'](_0x1c9706=>!_0x1c9706[_0x3c9d39(0x1be)]()[_0x3c9d39(0x18b)]('similarity'))[_0x3c9d39(0x15b)](_0x57193f=>!_0x57193f[_0x3c9d39(0x1be)]()['includes'](_0x3c9d39(0x1ec)))['filter'](_0x1cfe1d=>!_0x1cfe1d['toLowerCase']()[_0x3c9d39(0x18b)](_0x3c9d39(0x21d)))[_0x3c9d39(0x15b)](_0xaf9747=>!_0xaf9747[_0x3c9d39(0x1be)]()[_0x3c9d39(0x18b)](_0x3c9d39(0x1d3)));_0x15278e[_0x3c9d39(0x1c5)]((_0x51469f,_0x33aa9a)=>_0x51469f[_0x3c9d39(0x1bc)](_0x33aa9a)),console[_0x3c9d39(0x181)](_0x3c9d39(0x1d4)+(_0xbd716a+0x1)+_0x3c9d39(0x1a0)+_0x15278e[_0x3c9d39(0x20a)]+'\x20个模型'),_0x3ed0c1=[...new Set([..._0x3ed0c1,..._0x15278e])],_0x3ed0c1[_0x3c9d39(0x1c5)]();_0x483bf3?toastr[_0x3c9d39(0x15f)]('成功获取\x20'+_0x15278e[_0x3c9d39(0x20a)]+'\x20个\x20Google\x20模型\x20(使用第\x20'+(_0xbd716a+0x1)+_0x3c9d39(0x1c7),_0x3c9d39(0x16e)):toastr[_0x3c9d39(0x15f)](_0x3c9d39(0x199)+_0x15278e[_0x3c9d39(0x20a)]+_0x3c9d39(0x1af)+(_0xbd716a+0x1)+_0x3c9d39(0x1c7),_0x3c9d39(0x16e));break;}catch(_0xca98dd){const _0x2986d1=_0x3c9d39(0x219)+_0x22f73c[_0x3c9d39(0x1f1)](-0x4)+_0x3c9d39(0x182)+_0xca98dd[_0x3c9d39(0x1a9)];console[_0x3c9d39(0x178)](_0x3c9d39(0x1d4)+(_0xbd716a+0x1)+_0x3c9d39(0x1de),_0xca98dd),_0x4deda4[_0x3c9d39(0x19a)](_0x2986d1);}}if(_0x3ed0c1[_0x3c9d39(0x20a)]>0x0)return console[_0x3c9d39(0x181)](_0x3c9d39(0x1ae)+_0x3ed0c1[_0x3c9d39(0x20a)]+_0x3c9d39(0x218)),toastr['info'](_0x3c9d39(0x170)+_0x3ed0c1[_0x3c9d39(0x20a)]+_0x3c9d39(0x218),_0x3c9d39(0x159)),_0x3ed0c1;return toastr['error'](_0x3c9d39(0x1c6),'外交任务失败'),console[_0x3c9d39(0x178)](_0x3c9d39(0x163)+_0x4deda4[_0x3c9d39(0x1eb)]('\x0a')),[];}catch(_0x490d04){return console[_0x3c9d39(0x178)]('[Amily2号-使节团]\x20全局错误:',_0x490d04),toastr[_0x3c9d39(0x178)](_0x3c9d39(0x1b5)+_0x490d04['message'],'系统错误'),[];}finally{window[_0x3c9d39(0x17d)]=![];const _0x3b32e5=$(_0x3c9d39(0x17f));_0x3b32e5[_0x3c9d39(0x1e8)](_0x3c9d39(0x1ef),![])['html'](_0x3c9d39(0x185));}}export async function checkAndFixWithAPI(_0x5e0441,_0x56d3a9){const _0x4df3da=_0x4f8fd1;if(window[_0x4df3da(0x15c)]===!![])return console[_0x4df3da(0x178)](_0x4df3da(0x1b8)),null;const _0x922331=extension_settings[extensionName],_0x5833ca=_0x922331[_0x4df3da(0x208)],_0x364bca=_0x922331[_0x4df3da(0x1bd)];if(!_0x5833ca&&!_0x364bca)return null;if(!_0x922331[_0x4df3da(0x1fe)]||!_0x922331[_0x4df3da(0x1fe)][_0x4df3da(0x1c0)]())return toastr[_0x4df3da(0x178)](_0x4df3da(0x1aa),_0x4df3da(0x1f6)),null;console[_0x4df3da(0x21e)](_0x4df3da(0x167)+new Date()[_0x4df3da(0x1d8)]()+'\x20|\x20模式:\x20'+(_0x5833ca?'优化':'')+(_0x364bca?_0x5833ca?_0x4df3da(0x1b6):_0x4df3da(0x220):'')),console[_0x4df3da(0x1e4)]('外交任务总耗时');try{const _0x3581f7=_0x5e0441[_0x4df3da(0x1a1)],_0x319239=_0x922331[_0x4df3da(0x215)]||'content';let _0x5bdaa1;if(_0x5833ca){_0x5bdaa1=extractFullTagBlock(_0x3581f7,_0x319239);if(!_0x5bdaa1||extractContentByTag(_0x5bdaa1,_0x319239)?.[_0x4df3da(0x1c0)]()===''){console['log']('[Amily2-外交部]\x20目标标签\x20<'+_0x319239+_0x4df3da(0x19d)),_0x5bdaa1=_0x3581f7;if(!_0x364bca)return console[_0x4df3da(0x1e5)](_0x4df3da(0x15a)),console[_0x4df3da(0x1ca)](),{'optimizedContent':_0x3581f7,'summary':null};}}else _0x5bdaa1=_0x3581f7;const _0x185e2b=getContext(),_0x2a878d=_0x185e2b[_0x4df3da(0x15d)]||'用户',_0x27dc15=_0x185e2b[_0x4df3da(0x19c)]||'角色',_0x911023=_0x56d3a9[_0x4df3da(0x20a)]>0x0&&_0x56d3a9[_0x56d3a9[_0x4df3da(0x20a)]-0x1][_0x4df3da(0x1f4)]?_0x56d3a9[_0x56d3a9[_0x4df3da(0x20a)]-0x1]:null,_0x29e59f=_0x911023?_0x56d3a9[_0x4df3da(0x1f1)](0x0,-0x1):_0x56d3a9,_0x235a94=_0x29e59f['map'](_0x402ad3=>_0x402ad3[_0x4df3da(0x1a1)]&&_0x402ad3[_0x4df3da(0x1a1)]['trim']()?(_0x402ad3[_0x4df3da(0x1f4)]?_0x2a878d:_0x27dc15)+':\x20'+_0x402ad3[_0x4df3da(0x1a1)][_0x4df3da(0x1c0)]():null)[_0x4df3da(0x15b)](Boolean)[_0x4df3da(0x1eb)]('\x0a');let _0xa1f684='';if(_0x922331[_0x4df3da(0x1f9)]){const _0x43e145=characters[_0x185e2b[_0x4df3da(0x221)]];_0x43e145?.[_0x4df3da(0x1e9)]?.[_0x4df3da(0x1b1)]?.['world']&&(_0xa1f684=await getCombinedWorldbookContent(_0x43e145[_0x4df3da(0x1e9)][_0x4df3da(0x1b1)][_0x4df3da(0x210)]));}const _0x3b6aa6=[];_0x922331[_0x4df3da(0x1c4)]?.[_0x4df3da(0x1c0)]()&&_0x3b6aa6[_0x4df3da(0x19a)]({'role':_0x4df3da(0x1db),'content':_0x922331[_0x4df3da(0x1c4)]['trim']()});if(_0x5833ca){if(_0x922331['systemPrompt']?.[_0x4df3da(0x1c0)]())_0x3b6aa6[_0x4df3da(0x19a)]({'role':'system','content':_0x922331[_0x4df3da(0x1ad)][_0x4df3da(0x1c0)]()});}if(_0x5833ca&&_0x364bca){const _0xe1140e=(_0x4df3da(0x1b0)+_0x5bdaa1[_0x4df3da(0x16c)](extractContentByTag(_0x5bdaa1,_0x319239),_0x4df3da(0x1ab))+_0x4df3da(0x1ac)+(_0x922331[_0x4df3da(0x1f7)]?.[_0x4df3da(0x1c0)]()||'生成一段简短的剧情摘要。'))['trim']();_0x3b6aa6[_0x4df3da(0x19a)]({'role':_0x4df3da(0x1db),'content':_0xe1140e});}else{if(!_0x5833ca&&_0x364bca){const _0x5a00cf='请严格遵循以下指令:基于所有提供的背景和对话内容,生成一段精炼的剧情摘要。直接输出摘要文本,不要包含任何多余的解释、标签或前缀。\x0a\x0a[总结核心要求]:\x0a'+_0x922331[_0x4df3da(0x1f7)][_0x4df3da(0x1c0)]();_0x3b6aa6[_0x4df3da(0x19a)]({'role':'system','content':_0x5a00cf});}}if(_0xa1f684)_0x3b6aa6[_0x4df3da(0x19a)]({'role':'user','content':_0x4df3da(0x200)+_0xa1f684});if(_0x235a94)_0x3b6aa6[_0x4df3da(0x19a)]({'role':_0x4df3da(0x1fb),'content':'[上下文参考]:\x0a'+_0x235a94});let _0x99acea=_0x911023?_0x2a878d+':\x20'+_0x911023[_0x4df3da(0x1a1)]+'\x0a'+_0x27dc15+':\x20'+_0x5bdaa1:_0x5bdaa1;_0x3b6aa6[_0x4df3da(0x19a)]({'role':_0x4df3da(0x1fb),'content':_0x4df3da(0x20e)+_0x99acea}),console[_0x4df3da(0x21e)](_0x4df3da(0x180)),console['dir'](_0x3b6aa6),console[_0x4df3da(0x1ca)]();const _0x36520f=isGoogleEndpoint(_0x922331[_0x4df3da(0x1fe)]);let _0x5c25ca=_0x922331['apiUrl'][_0x4df3da(0x1c0)]();const _0x162900=_0x922331[_0x4df3da(0x217)];let _0xf7449e;if(_0x922331[_0x4df3da(0x211)]){console[_0x4df3da(0x181)]('[Amily2号-外交部]\x20执行“皇家密道”协议...');if(typeof ChatCompletionService===_0x4df3da(0x196)||!ChatCompletionService?.[_0x4df3da(0x1cd)]){const _0x524762='无法使用“皇家密道”当前SillyTavern版本过低或缺少核心文件\x20/scripts/custom-request.js。';toastr[_0x4df3da(0x178)](_0x524762,'依赖缺失');throw new Error(_0x524762);}try{const _0x17ac00={'stream':![],'messages':_0x3b6aa6,'max_tokens':_0x922331[_0x4df3da(0x1a7)],'temperature':_0x922331[_0x4df3da(0x21a)],'model':_0x922331[_0x4df3da(0x217)],'chat_completion_source':'custom','custom_url':_0x922331[_0x4df3da(0x1fe)],'reverse_proxy':'/api/proxy'};console['log'](_0x4df3da(0x17c),_0x17ac00);const _0x1785f7=await ChatCompletionService[_0x4df3da(0x1cd)](_0x17ac00,{},!![]);if(!_0x1785f7||!_0x1785f7['content'])throw new Error(_0x4df3da(0x1f0));_0xf7449e=_0x1785f7[_0x4df3da(0x198)];}catch(_0x4d17fd){console[_0x4df3da(0x178)]('通过“皇家密道”调用API时发生错误:',_0x4d17fd);throw _0x4d17fd;}}else{console[_0x4df3da(0x181)]('[Amily2号-外交部]\x20执行“帝国直通车”协议直接通讯...');const _0x35388e=isGoogleEndpoint(_0x922331[_0x4df3da(0x1fe)]);let _0x2b1a44=_0x922331[_0x4df3da(0x1fe)]['trim']();const _0x1c0b6f=_0x922331[_0x4df3da(0x217)],_0xaa8c20=_0x922331['maxTokens'],_0x299218=_0x922331[_0x4df3da(0x21a)];let _0x4477c6;if(_0x35388e)_0x4477c6=buildGoogleApiUrl(_0x2b1a44,_0x1c0b6f),console['log'](_0x4df3da(0x1e7)+_0x4477c6);else{let _0x350a0a=_0x2b1a44;_0x350a0a[_0x4df3da(0x197)]('/')&&(_0x350a0a=_0x350a0a['slice'](0x0,-0x1)),_0x350a0a[_0x4df3da(0x197)]('/v1')&&(_0x350a0a=_0x350a0a[_0x4df3da(0x1f1)](0x0,-0x3)),_0x350a0a['endsWith'](_0x4df3da(0x18d))||_0x350a0a['endsWith'](_0x4df3da(0x21b))?_0x4477c6=_0x350a0a:_0x4477c6=_0x350a0a+_0x4df3da(0x18d);}console[_0x4df3da(0x181)](_0x4df3da(0x166)+_0x4477c6);const _0x5f2f99=_0x922331[_0x4df3da(0x1fd)]?.[_0x4df3da(0x1c0)](),_0xfdb354={'Content-Type':_0x4df3da(0x20c)};if(_0x35388e){const _0x3f8e64=new URL(_0x2b1a44);_0x3f8e64[_0x4df3da(0x1b7)]['includes']('aiplatform.googleapis.com')||_0x2b1a44[_0x4df3da(0x18b)](_0x4df3da(0x1cb))?_0xfdb354[_0x4df3da(0x193)]=_0x4df3da(0x205)+_0x5f2f99:_0xfdb354[_0x4df3da(0x15e)]=_0x5f2f99;}else _0xfdb354['Authorization']=_0x4df3da(0x205)+_0x5f2f99;let _0x58109c;_0x35388e?_0x58109c=JSON[_0x4df3da(0x164)](convertToGoogleRequest({'model':_0x1c0b6f,'messages':_0x3b6aa6,'max_tokens':_0xaa8c20,'temperature':_0x299218})):_0x58109c=JSON[_0x4df3da(0x164)]({'model':_0x1c0b6f,'messages':_0x3b6aa6,'max_tokens':_0xaa8c20,'temperature':_0x299218,'stream':![]});const _0x4b1b74=await fetch(_0x4477c6,{'method':_0x4df3da(0x158),'headers':_0xfdb354,'body':_0x58109c});if(!_0x4b1b74['ok'])throw new Error(_0x4df3da(0x18e)+_0x4b1b74['status']+'\x20'+_0x4b1b74[_0x4df3da(0x19b)]+_0x4df3da(0x1e1)+await _0x4b1b74[_0x4df3da(0x1df)]());let _0x5a5c42=await _0x4b1b74['json']();if(_0x35388e&&_0x5a5c42[_0x4df3da(0x1d9)]&&_0x5a5c42[_0x4df3da(0x19f)]){console[_0x4df3da(0x181)]('[Amily2号-Google外交部]\x20收到异步操作ID启用轮询机制...');const _0x2b109e=_0x5a5c42[_0x4df3da(0x1d9)],_0x112340=progressTracker(_0x2b109e,0x6);_0x112340[_0x4df3da(0x160)]();try{const _0x104b91=new URL(_0x2b1a44),_0x5adb2a=createGooglePollingTask(_0x2b109e,_0x104b91[_0x4df3da(0x17e)],_0xfdb354),_0x1b5f09={'maxAttempts':0x6,'baseDelay':0xbb8,'shouldStop':_0x42c605=>_0x42c605['done'],'onAttempt':(_0x1383a1,_0x31c171)=>{const _0x42e5ce=_0x4df3da;_0x112340[_0x42e5ce(0x190)](_0x1383a1,_0x31c171);},'onError':(_0x2fcf96,_0x28fc22)=>{const _0x56e1ff=_0x4df3da;_0x112340['error'](_0x2fcf96[_0x56e1ff(0x1a9)]);}},_0x484fd2=await intelligentPoll(_0x5adb2a,_0x1b5f09);_0x112340[_0x4df3da(0x212)]();if(!_0x484fd2[_0x4df3da(0x1ce)])throw new Error(_0x4df3da(0x1b9));_0x5a5c42=_0x484fd2[_0x4df3da(0x1ce)],_0xf7449e=parseGoogleResponse(_0x5a5c42)?.['choices']?.[0x0]?.[_0x4df3da(0x1a9)]?.['content'];}catch(_0x2d6d23){console[_0x4df3da(0x178)](_0x4df3da(0x1dc),_0x2d6d23),_0x112340['error']('轮询失败:\x20'+_0x2d6d23[_0x4df3da(0x1a9)]);throw new Error(_0x4df3da(0x1b3)+_0x2d6d23['message']);}}else _0xf7449e=_0x35388e?parseGoogleResponse(_0x5a5c42)?.[_0x4df3da(0x186)]?.[0x0]?.[_0x4df3da(0x1a9)]?.[_0x4df3da(0x198)]:_0x5a5c42?.['choices']?.[0x0]?.[_0x4df3da(0x1a9)]?.[_0x4df3da(0x198)];}if(!_0xf7449e)return console[_0x4df3da(0x178)](_0x4df3da(0x1ba),_0xf7449e),null;console['groupCollapsed'](_0x4df3da(0x183)),console[_0x4df3da(0x181)](_0xf7449e),console['groupEnd']();let _0x45eec4=_0x3581f7,_0x16f53b=null;if(_0x5833ca&&_0x364bca){const _0x2a278d=_0x4df3da(0x21c),_0x53a63a=_0xf7449e[_0x4df3da(0x203)](_0x2a278d),_0x59edb5=_0x53a63a[0x0]?.[_0x4df3da(0x1c0)]();_0x16f53b=_0x53a63a[0x1]?.['trim']()||null;if(_0x59edb5){const _0x3e37f3=extractContentByTag(_0x59edb5,_0x319239);_0x3e37f3?.[_0x4df3da(0x1c0)]()&&(_0x45eec4=replaceContentByTag(_0x3581f7,_0x319239,_0x3e37f3));}}else{if(_0x5833ca){const _0xaec648=extractContentByTag(_0xf7449e,_0x319239);_0xaec648?.['trim']()&&(_0x45eec4=replaceContentByTag(_0x3581f7,_0x319239,_0xaec648));}else _0x16f53b=_0xf7449e[_0x4df3da(0x1c0)]();}const _0x388749={'optimizedContent':_0x45eec4,'summary':_0x16f53b};return _0x16f53b&&_0x364bca&&(_0x388749[_0x4df3da(0x174)]={'activationMode':_0x922331[_0x4df3da(0x1da)],'insertionPosition':_0x922331[_0x4df3da(0x177)],'depth':_0x922331[_0x4df3da(0x192)],'keywords':_0x922331[_0x4df3da(0x1fa)],'target':_0x922331[_0x4df3da(0x1bb)]},console[_0x4df3da(0x181)](_0x4df3da(0x1b4),_0x388749[_0x4df3da(0x174)])),console['timeEnd'](_0x4df3da(0x15a)),console[_0x4df3da(0x1ca)](),_0x388749;}catch(_0x13ba24){return console[_0x4df3da(0x178)](_0x4df3da(0x165),_0x13ba24),toastr['error'](_0x4df3da(0x209)+_0x13ba24[_0x4df3da(0x1a9)],_0x4df3da(0x1c2)),console['timeEnd'](_0x4df3da(0x15a)),console[_0x4df3da(0x1ca)](),null;}}