p3x-redis-ui-server
Version:
🏍️ P3X Redis UI server — Socket.IO backend for the dual Angular + React frontend with AI queries, 54 languages, and auto data decompression
2 lines (1 loc) • 975 B
JavaScript
import e from"fs";export default async r=>{const{socket:s,payload:o}=r;try{if(!0===p3xrs.cfg.groqApiKeyReadonly)throw new Error("GROQ_API_KEY_READONLY");const t=!1!==o.aiEnabled,a=!0===o.aiUseOwnKey,n="number"==typeof o.groqMaxTokens&&o.groqMaxTokens>0?o.groqMaxTokens:p3xrs.cfg.groqMaxTokens||16384,p=o.hasOwnProperty("apiKey"),i=p?(o.apiKey||"").trim():void 0;if(p&&(p3xrs.cfg.groqApiKey=i||void 0),p3xrs.cfg.aiEnabled=t,p3xrs.cfg.aiUseOwnKey=a,p3xrs.cfg.groqMaxTokens=n,p3xrs.configPath)try{const r=e.readFileSync(p3xrs.configPath,"utf8"),s=JSON.parse(r);s.p3xrs&&"object"==typeof s.p3xrs||(s.p3xrs={}),p&&(i?s.p3xrs.groqApiKey=i:delete s.p3xrs.groqApiKey),s.p3xrs.aiEnabled=t,s.p3xrs.aiUseOwnKey=a,s.p3xrs.groqMaxTokens=n,e.writeFileSync(p3xrs.configPath,JSON.stringify(s,null,4))}catch(e){console.error("failed to persist AI settings",e.message)}s.emit(r.responseEvent,{status:"ok"})}catch(e){console.error(e),s.emit(r.responseEvent,{status:"error",error:e.message})}};