Files
ST-Amily2-Chat-Optimisation/utils/config/api-key-store/crypto-utils.js
Jenkins CI 3e217e8ed8 release: v2.2.2 [2026-05-27 19:39:34]
### 新功能
- **Function Call 填表模式**:在填表设置中新增独立开关,启用后支持通过 OpenAI 兼容接口(DeepSeek / OpenRouter / 各类中转等)直接返回结构化操作列表,绕过 `<Amily2Edit>` 文本解析路径,填表更稳定
  - 遇到不支持 `tool_choice` 的接口时自动降级重试
  - 对思考模型注入强制调用指令,防止绕过工具直接输出文本
  - 全部走 ST 后端代理,修复 CSP 拦截直连外部 URL 的问题
- **主界面新增提示词链编辑器入口**,同时调换了记忆管理与角色世界书的按钮位置
- **规则中心**新增"自动排除用户楼层"选项
### 修复
- 提示词链按钮点击无响应(改为事件委托方式绑定)
- 拖拽组件微抖误触发(加 5px 移动阈值过滤)
- 填表检查窗若干问题修复;翰林院(批量回填)修复;防抖逻辑落地
- 角色世界书入口添加使用警告弹窗(强制 10 秒倒计时),提示该功能长期未维护
- ApiProfile `fakeStream` 字段保存丢失问题
- 正文优化默认改为关闭状态
- NGMS / NCCS API 配置槽位标签修正(NGMS→总结,NCCS→填表)
- API Profile 面板选择逻辑统一重构,修复多处旧字段覆盖新配置的问题
- 世界书控制参数兼容性修复(排除递归、插入位置、扫描深度等,适配 ST 1.17.0+)
2026-05-27 19:39:34 +08:00

1 line
11 KiB
JavaScript

function a0_0x55eb(_0x13cb77,_0x2ab98a){_0x13cb77=_0x13cb77-0xb4;const _0x1e60ee=a0_0x1e60();let _0x55eb5d=_0x1e60ee[_0x13cb77];if(a0_0x55eb['VBiYrT']===undefined){var _0xc29d47=function(_0x4e6dee){const _0x8dc96b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c9c1a='',_0xcacc45='';for(let _0x3643e3=0x0,_0x5cc985,_0x40c1ea,_0x4b1875=0x0;_0x40c1ea=_0x4e6dee['charAt'](_0x4b1875++);~_0x40c1ea&&(_0x5cc985=_0x3643e3%0x4?_0x5cc985*0x40+_0x40c1ea:_0x40c1ea,_0x3643e3++%0x4)?_0x4c9c1a+=String['fromCharCode'](0xff&_0x5cc985>>(-0x2*_0x3643e3&0x6)):0x0){_0x40c1ea=_0x8dc96b['indexOf'](_0x40c1ea);}for(let _0x5ad71e=0x0,_0x23d1c7=_0x4c9c1a['length'];_0x5ad71e<_0x23d1c7;_0x5ad71e++){_0xcacc45+='%'+('00'+_0x4c9c1a['charCodeAt'](_0x5ad71e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcacc45);};const _0x48e717=function(_0x1f0828,_0x45df4b){let _0x4f3495=[],_0x1d1bcb=0x0,_0x4e6d9a,_0x12f82b='';_0x1f0828=_0xc29d47(_0x1f0828);let _0x1d1487;for(_0x1d1487=0x0;_0x1d1487<0x100;_0x1d1487++){_0x4f3495[_0x1d1487]=_0x1d1487;}for(_0x1d1487=0x0;_0x1d1487<0x100;_0x1d1487++){_0x1d1bcb=(_0x1d1bcb+_0x4f3495[_0x1d1487]+_0x45df4b['charCodeAt'](_0x1d1487%_0x45df4b['length']))%0x100,_0x4e6d9a=_0x4f3495[_0x1d1487],_0x4f3495[_0x1d1487]=_0x4f3495[_0x1d1bcb],_0x4f3495[_0x1d1bcb]=_0x4e6d9a;}_0x1d1487=0x0,_0x1d1bcb=0x0;for(let _0x4925fa=0x0;_0x4925fa<_0x1f0828['length'];_0x4925fa++){_0x1d1487=(_0x1d1487+0x1)%0x100,_0x1d1bcb=(_0x1d1bcb+_0x4f3495[_0x1d1487])%0x100,_0x4e6d9a=_0x4f3495[_0x1d1487],_0x4f3495[_0x1d1487]=_0x4f3495[_0x1d1bcb],_0x4f3495[_0x1d1bcb]=_0x4e6d9a,_0x12f82b+=String['fromCharCode'](_0x1f0828['charCodeAt'](_0x4925fa)^_0x4f3495[(_0x4f3495[_0x1d1487]+_0x4f3495[_0x1d1bcb])%0x100]);}return _0x12f82b;};a0_0x55eb['KlnJXx']=_0x48e717,a0_0x55eb['FFclbO']={},a0_0x55eb['VBiYrT']=!![];}const _0x79900d=_0x1e60ee[0x0],_0x918c67=_0x13cb77+_0x79900d,_0x23d233=a0_0x55eb['FFclbO'][_0x918c67];return!_0x23d233?(a0_0x55eb['jxepDe']===undefined&&(a0_0x55eb['jxepDe']=!![]),_0x55eb5d=a0_0x55eb['KlnJXx'](_0x55eb5d,_0x2ab98a),a0_0x55eb['FFclbO'][_0x918c67]=_0x55eb5d):_0x55eb5d=_0x23d233,_0x55eb5d;}(function(_0x2cfc72,_0x3ddfe1){const _0x2e2ead=a0_0x55eb,_0x59b2d4=_0x2cfc72();while(!![]){try{const _0x2cd735=parseInt(_0x2e2ead(0xf0,'mp*S'))/0x1*(parseInt(_0x2e2ead(0x125,'gj3z'))/0x2)+parseInt(_0x2e2ead(0x123,'SV]b'))/0x3*(-parseInt(_0x2e2ead(0x110,'Hcn6'))/0x4)+parseInt(_0x2e2ead(0xe8,'tPCg'))/0x5*(-parseInt(_0x2e2ead(0xb5,'(rat'))/0x6)+-parseInt(_0x2e2ead(0x11d,'vtLh'))/0x7+-parseInt(_0x2e2ead(0xcc,'(Qu6'))/0x8*(-parseInt(_0x2e2ead(0x132,'xo[b'))/0x9)+parseInt(_0x2e2ead(0xb9,'3zer'))/0xa+parseInt(_0x2e2ead(0xdc,'tPCg'))/0xb;if(_0x2cd735===_0x3ddfe1)break;else _0x59b2d4['push'](_0x59b2d4['shift']());}catch(_0x50b734){_0x59b2d4['push'](_0x59b2d4['shift']());}}}(a0_0x1e60,0xc6e72));export async function generateKeyPair(){const _0x53ffac=a0_0x55eb,_0x359335={};_0x359335[_0x53ffac(0x116,'Hcn6')]=_0x53ffac(0xee,')YNw'),_0x359335[_0x53ffac(0xd4,'HFL8')]=_0x53ffac(0x10d,'aG^D'),_0x359335[_0x53ffac(0xc7,'SV]b')]=_0x53ffac(0xcf,'*P#a'),_0x359335[_0x53ffac(0xf5,'cwv)')]=_0x53ffac(0xd7,'W2jD');const _0x244c5a=_0x359335;return crypto[_0x53ffac(0xf4,'P6%2')][_0x53ffac(0xc9,'KBo8')]({'name':_0x244c5a[_0x53ffac(0xd1,'5dZ1')],'modulusLength':0x800,'publicExponent':new Uint8Array([0x1,0x0,0x1]),'hash':_0x244c5a[_0x53ffac(0xd0,'b93H')]},!![],[_0x244c5a[_0x53ffac(0xce,'vtLh')],_0x244c5a[_0x53ffac(0xd3,'HFL8')]]);}export async function serializeKeyPair(_0x4528a9){const _0x30b163=a0_0x55eb,_0x4a7dff={};_0x4a7dff[_0x30b163(0x10f,'vtLh')]=_0x30b163(0x113,'*P#a');const _0x49ee1f=_0x4a7dff,[_0x33569c,_0x286bb3]=await Promise[_0x30b163(0x134,'mp*S')]([crypto[_0x30b163(0x120,'FR6S')][_0x30b163(0xef,'W2jD')](_0x49ee1f[_0x30b163(0xf7,'SV]b')],_0x4528a9[_0x30b163(0xfd,'KBo8')]),crypto[_0x30b163(0xfb,'W2jD')][_0x30b163(0xfe,'lJrY')](_0x49ee1f[_0x30b163(0xf6,'xo[b')],_0x4528a9[_0x30b163(0xbc,'SV]b')])]);return{'publicJwk':JSON[_0x30b163(0x117,'Hcn6')](_0x33569c),'privateJwk':JSON[_0x30b163(0xc3,'(rat')](_0x286bb3)};}export async function importPublicKey(_0x3aca86){const _0x4396d7=a0_0x55eb,_0x545e1b={};_0x545e1b[_0x4396d7(0xbf,'b93H')]=_0x4396d7(0xbd,'Fo]$'),_0x545e1b[_0x4396d7(0x103,'3zer')]=_0x4396d7(0x112,'EvS5'),_0x545e1b[_0x4396d7(0xbe,'mp*S')]=_0x4396d7(0xba,'KBo8'),_0x545e1b[_0x4396d7(0xea,'(imC')]=_0x4396d7(0xdd,'P6%2');const _0x4f6258=_0x545e1b;return crypto[_0x4396d7(0xf3,'13SK')][_0x4396d7(0x126,'KBo8')](_0x4f6258[_0x4396d7(0x122,'N]Uf')],JSON[_0x4396d7(0x124,'X3yG')](_0x3aca86),{'name':_0x4f6258[_0x4396d7(0x130,'Hi7J')],'hash':_0x4f6258[_0x4396d7(0x108,'cwv)')]},![],[_0x4f6258[_0x4396d7(0xbb,'tPCg')]]);}export async function importPrivateKey(_0x240b5d){const _0x273df6=a0_0x55eb,_0x3bdf94={};_0x3bdf94[_0x273df6(0x102,'HFL8')]=_0x273df6(0x12a,'baon'),_0x3bdf94[_0x273df6(0xc4,'w1HG')]=_0x273df6(0xde,'#2eE'),_0x3bdf94[_0x273df6(0xd2,'b93H')]=_0x273df6(0xe5,'(imC'),_0x3bdf94[_0x273df6(0xc5,'KBo8')]=_0x273df6(0x12b,'SV]b');const _0x51bf30=_0x3bdf94;return crypto[_0x273df6(0x104,'5d60')][_0x273df6(0x10b,'lJrY')](_0x51bf30[_0x273df6(0x121,'FR6S')],JSON[_0x273df6(0xed,'(imC')](_0x240b5d),{'name':_0x51bf30[_0x273df6(0xe3,'xo[b')],'hash':_0x51bf30[_0x273df6(0x107,'5dZ1')]},![],[_0x51bf30[_0x273df6(0xfc,'rLgo')]]);}export async function encrypt(_0x1b0077,_0x1aeb98){const _0x5ed8d6=a0_0x55eb,_0x52cffd={'ZYnjo':_0x5ed8d6(0xda,'HQM&'),'HbTDD':_0x5ed8d6(0x11f,'lJrY'),'cZdHQ':_0x5ed8d6(0xeb,'(imC'),'wTtdq':_0x5ed8d6(0x10a,'(rat'),'bMyIn':function(_0x520d71,_0x230ba2){return _0x520d71(_0x230ba2);},'nWFtv':function(_0x5c530f,_0x4ada36){return _0x5c530f(_0x4ada36);},'HHLQO':function(_0x407310,_0xb5b096){return _0x407310(_0xb5b096);}},_0x47070b={};_0x47070b[_0x5ed8d6(0xf1,'HQM&')]=_0x52cffd[_0x5ed8d6(0x100,'vtLh')],_0x47070b[_0x5ed8d6(0xf9,'HQM&')]=0x100;const _0x3709c0=await crypto[_0x5ed8d6(0xb8,'baon')][_0x5ed8d6(0x11a,')YNw')](_0x47070b,!![],[_0x52cffd[_0x5ed8d6(0xdb,'uRo3')]]),_0x5326fa=crypto[_0x5ed8d6(0xe6,'^V1V')](new Uint8Array(0xc)),_0x36aa01=new TextEncoder()[_0x5ed8d6(0xe9,'jObZ')](_0x1aeb98),_0x5a921b={};_0x5a921b[_0x5ed8d6(0x101,'N]Uf')]=_0x52cffd[_0x5ed8d6(0x133,'Hcn6')],_0x5a921b['iv']=_0x5326fa;const _0x39d084=await crypto[_0x5ed8d6(0xf2,'b93H')][_0x5ed8d6(0xdd,'P6%2')](_0x5a921b,_0x3709c0,_0x36aa01),_0x397aec=await crypto[_0x5ed8d6(0x104,'5d60')][_0x5ed8d6(0x11e,'*P#a')](_0x52cffd[_0x5ed8d6(0x109,'UnA6')],_0x3709c0),_0x2b190f={};_0x2b190f[_0x5ed8d6(0x12e,'(imC')]=_0x52cffd[_0x5ed8d6(0xf8,'FR6S')];const _0x680908=await crypto[_0x5ed8d6(0x129,'lJrY')][_0x5ed8d6(0xd8,'uRo3')](_0x2b190f,_0x1b0077,_0x397aec);return JSON[_0x5ed8d6(0xb4,'^V1V')]({'wrappedKey':_0x52cffd[_0x5ed8d6(0x118,'3zer')](a0_0x12cc6a,_0x680908),'iv':_0x52cffd[_0x5ed8d6(0xe0,'(rat')](a0_0x12cc6a,_0x5326fa),'ciphertext':_0x52cffd[_0x5ed8d6(0xd6,'(rat')](a0_0x12cc6a,_0x39d084)});}function a0_0x1e60(){const _0xa6e1dd=['W7RcMSkdDmoPWPC','W6XAW7vfW63cHCki','WO/cLCkKW6v+','hSoDpYegzSksrSoUWPZdUtHr','oCkoxXyswb8','WRJdUuOdWRdcVSk2W4G','WQpcPCkrBCo9WONcQq','WR7cN8kTW55y','DmoZWQldVdpdLq','W67cQZxcImk3rGRcRdFcGq/dOha','mSkXzCoGW4W','vmknFG','uCk4bW3cIaZcHW','WQrcW6XeA2pdSmoWz8oIWPpdNSkzWRz3','xSk5BCo9WPCxxmkXWObfWO/cI28','eSozoICbBSkrrmorWRNdVc1L','s3qvcmkkWO0','B8kbmxxdSa','Cmkrmq','W5iwW6Od','CSkrnfpdNW','WOTCf8kneXPYW6q','lCkxu8kcWQFcUdqYxa','WOLaWR5wWPCPhwyrWO7cL0q','W4n+W4Sn','W7VdPSocqSoHW4m','W6hdO8kxgmkuEG','l8kvxHahtq','nCobW64kpG','pmkXECooW5G','W71LWRXsta','E8oUW5dcN2i','W4f6W4GpW57cRG','WPdcTs8jhCkYW4BdNsO','o8kAqCkzWRNcQq','W70bwCoyaq','uXWka17cVb3cOHC','ESkmkM7cOg8romoY','WOjIW4S7tu7dMq','WRJcGmoAWPT6','WQmMW4BdLW','CCk9u8kvW40','WOxcKKPhW4i','e8oso8kVWO3cLa','qCk4cwFdUa','WPpcR8o+b8kj','mSomW6lcNdK','lSogW4Wokq','cCoxmCknW7q','WOlcM8kQWODHWQeZW7K','DSkzkM7cOg8romoY','tJqFvfS','lSoWsSkxWRegea','WPOezIq8W5tdPq','WQtcTCogWPzu','W45aWPlcNCoIAxO','W4RdKZzpWPtdLq','WQlcHmoQE8kZvmkvWQG','W514W40','FmomAKJdJW','s8oLomkBWQVdRxtcKmknwCoTW5ZcVW','WR1HWPlcNCoz','WOL2WPdcOCoMshtdTSkk','WQJcSfrCW6G','d8oIW6ulkW','WR5QomoflJPdW5hdJrVcIW','o8kHrCkHWQu','WQBcOSocwSoal1XIWO/cGSkKiLO','W5BdRCkdW4CToSoqWRpdOba2W4pdMW','W5j3W5BdVCk9g8omW5JcHa','ESkAoxpcQ2SU','F8opW4BcJ3/cPW','yCo/W7ZcSKm','WOuiW4hdM8kH','WOOXW70hp1NdNK9vDN8Auq','D8oNWRldUZO','WP/cSmovgCoXW5pcRa','sGqyaexcQX3cOHC','ESkkzmkX','W6HnWRr2WR5YpG','BmkbohxcVN4','W7VcV8kV','W59SWQ1hDb/cKG','WR9NWQvrWPDBpwdcQru','qmkTA3HX','Bmkrk0u','WRP9WQToWPDCohFcQW5shG','wSocwNJdVW','nmk0W7dcVMJcHW04W7BdO2bKpa','smoQzCoHW5xcKG7cPW','WQbBWOZcOSoN','W50BW6S','WRdcISo1W5XAs8kKWPe','WRbtW6P/zgRdVCo5CW','W6BcMmkkW5bdWPeD','uWGAhfi','WQaZWOLjlLa','W6lcVCkMsmo0WOu','W77dIruTWRq1WQHiW7VdSmkSft8','CcePqGxdQMa','s8kDFKr/','W4T7WQDdBbVcG2vJrW','WOZcKee','W64DW4GVW50','W4ddNmokx8oj','mCkAzSo5W4a','W4ZdR2zwv8oWW5/dOGNcGZNcKG','jeuyAK4DW5ldTG','WQpcVmkzW4naWOCFW49S','WRhcTdeVoG','uYqRhuu','emk8AgTyj8op','W6PXWOTIqW','WP09W6ldTSkh','raWgcKxcVIlcOIxcIXm','W4L6W4uAW5pcTSkX','iCkydHZcJ8oPo8kcWP7cP8oXWOJcNq','jubgfdvJWQBdPhqEW6RdLe4','bSknC8k8WOa','WRpcOCoXWQzB','W5jHW4xdOmk2h8oZ','W4VdLCodECo9','m8o4W73cUau','W47dHmopr8oG','vCkvzSkrW7G','x8k+AmktW60','EmkDAmkUW6tdJCkS','WPJcGmkNW7TH','lmkkqmkFWQZcVaS','WQlcMCktW5ndW7GQ'];a0_0x1e60=function(){return _0xa6e1dd;};return a0_0x1e60();}export async function decrypt(_0x2eec0e,_0x528ce7){const _0x3fbde0=a0_0x55eb,_0x351676={'XFivY':_0x3fbde0(0x135,'vtLh'),'NbPQU':function(_0x30e063,_0x536976){return _0x30e063(_0x536976);},'CHOGB':_0x3fbde0(0xe4,'tPCg'),'sNfLp':_0x3fbde0(0xff,'^V1V'),'cxUQu':_0x3fbde0(0xd5,'HFL8'),'fAbiD':function(_0x411bc0,_0xa16f8d){return _0x411bc0(_0xa16f8d);},'KGmPY':function(_0x2eb523,_0x5db2c4){return _0x2eb523(_0x5db2c4);}},{wrappedKey:_0x2f8a52,iv:_0x72a26,ciphertext:_0x51d968}=JSON[_0x3fbde0(0xb6,'KBo8')](_0x528ce7),_0x1420d3={};_0x1420d3[_0x3fbde0(0xec,'mp*S')]=_0x351676[_0x3fbde0(0x10c,'(Qu6')];const _0x4e3464=await crypto[_0x3fbde0(0xe1,'X3yG')][_0x3fbde0(0xca,'HQM&')](_0x1420d3,_0x2eec0e,_0x351676[_0x3fbde0(0xcd,'W2jD')](a0_0x55c3db,_0x2f8a52)),_0x411b29=await crypto[_0x3fbde0(0xb7,'Yl#R')][_0x3fbde0(0xfa,'w1HG')](_0x351676[_0x3fbde0(0x105,'(imC')],_0x4e3464,{'name':_0x351676[_0x3fbde0(0x119,'cwv)')]},![],[_0x351676[_0x3fbde0(0x106,'EvS5')]]),_0x2d7f32=await crypto[_0x3fbde0(0x111,'i#Oe')][_0x3fbde0(0x10e,'z%wk')]({'name':_0x351676[_0x3fbde0(0x11b,'W2jD')],'iv':_0x351676[_0x3fbde0(0x12d,'tPCg')](a0_0x55c3db,_0x72a26)},_0x411b29,_0x351676[_0x3fbde0(0xc0,'xo[b')](a0_0x55c3db,_0x51d968));return new TextDecoder()[_0x3fbde0(0xd9,'AuYt')](_0x2d7f32);}function a0_0x12cc6a(_0x13e3e4){const _0x129c47=a0_0x55eb,_0x2d509f={'PzIDb':function(_0x48a8ad,_0x51379c){return _0x48a8ad(_0x51379c);}};return _0x2d509f[_0x129c47(0xc8,'N]Uf')](btoa,String[_0x129c47(0x12f,'SeUh')](...new Uint8Array(_0x13e3e4)));}function a0_0x55c3db(_0x3ad098){const _0x32f6e8=a0_0x55eb,_0x9ee17f={'iaWbt':function(_0xe6b0aa,_0x41f725){return _0xe6b0aa(_0x41f725);}};return Uint8Array[_0x32f6e8(0x127,'HFL8')](_0x9ee17f[_0x32f6e8(0x114,'Hi7J')](atob,_0x3ad098),_0x4d8a9d=>_0x4d8a9d[_0x32f6e8(0x12c,'SeUh')](0x0));}