rename: 光湖驱动引擎 v2.0 (Guanghu Drive Engine),服务名 guanghu-engine

This commit is contained in:
bingshuo 2026-05-30 18:52:54 +08:00
parent 35e08a6a18
commit bd3f58c18f

View File

@ -1,12 +1,12 @@
#!/usr/bin/env node #!/usr/bin/env node
/* /*
铸渊守门人 v2.0 · HLDP万能语言接口 光湖驱动引擎 v2.0 · Guanghu Drive Engine
新增 /hlpd 端点 HLDP模块翻译执行 HLDP万能语言接口 HLDP进指令出
*/ */
const http=require('http'),fs=require('fs'),path=require('path'),crypto=require('crypto'),{exec}=require('child_process'),os=require('os'); const http=require('http'),fs=require('fs'),path=require('path'),crypto=require('crypto'),{exec}=require('child_process'),os=require('os');
const PORT=parseInt(process.env.GATEKEEPER_PORT||process.argv[2]||'3910',10); const PORT=parseInt(process.env.ENGINE_PORT||process.env.GATEKEEPER_PORT||process.argv[2]||'3910',10);
const DATA_DIR=path.join(os.homedir(),'.gatekeeper'); const DATA_DIR=path.join(os.homedir(),'.gatekeeper');
const CMD_TIMEOUT=30000,MAX_OUTPUT=100000,RATE_LIMIT=60; const CMD_TIMEOUT=30000,MAX_OUTPUT=100000,RATE_LIMIT=60;
@ -21,7 +21,7 @@ if(!API_SECRET){
fs.writeFileSync(SECRET_FILE,API_SECRET,{mode:0o600}); fs.writeFileSync(SECRET_FILE,API_SECRET,{mode:0o600});
console.log(''); console.log('');
console.log('══════════════════════════════════════════════'); console.log('══════════════════════════════════════════════');
console.log(' 🔐 铸渊看门人 · 首次启动'); console.log(' 🔐 光湖驱动引擎 · 首次启动');
console.log(''); console.log('');
console.log(' ╭─ API 密钥(请复制保存)'); console.log(' ╭─ API 密钥(请复制保存)');
console.log(' ├─ '+API_SECRET); console.log(' ├─ '+API_SECRET);
@ -37,7 +37,7 @@ function log(level,action,detail){
const ts=new Date().toISOString(); const ts=new Date().toISOString();
const line='['+ts+'] ['+level+'] '+action+(detail?' | '+detail:''); const line='['+ts+'] ['+level+'] '+action+(detail?' | '+detail:'');
console.log(line); console.log(line);
try{const lf=path.join(DATA_DIR,'gatekeeper.log');fs.appendFileSync(lf,line+'\n');}catch(e){} try{const lf=path.join(DATA_DIR,'engine.log');fs.appendFileSync(lf,line+'\n');}catch(e){}
} }
const RC={}; const RC={};
@ -74,7 +74,7 @@ function fmtBytes(b){if(b===0)return'0 B';const k=1024,sizes=['B','KB','MB','GB'
/* /*
HLDP 翻译层 v1.0 守门人 v2.0 新增 HLDP 翻译层 v1.0 光湖驱动引擎 v2.0
*/ */
function parseHLDP(text){ function parseHLDP(text){
@ -150,11 +150,11 @@ const server=http.createServer(async(req,res)=>{
log('INFO','exec_result','exit='+r.code); log('INFO','exec_result','exit='+r.code);
jr(res,200,{ok:r.code===0,stdout:r.stdout,stderr:r.stderr,exitCode:r.code}); jr(res,200,{ok:r.code===0,stdout:r.stdout,stderr:r.stderr,exitCode:r.code});
}else if(route==='/health'){ }else if(route==='/health'){
jr(res,200,{ok:true,service:'zhuyuan-gatekeeper',version:'2.0.0',uptime:process.uptime().toFixed(0)+'s',timestamp:new Date().toISOString()}); jr(res,200,{ok:true,service:'guanghu-engine',version:'2.0.0',uptime:process.uptime().toFixed(0)+'s',timestamp:new Date().toISOString()});
}else if(route==='/status'){ }else if(route==='/status'){
log('INFO','status',''); log('INFO','status','');
const total=os.totalmem(),free=os.freemem(); const total=os.totalmem(),free=os.freemem();
jr(res,200,{ok:true,hostname:os.hostname(),platform:os.platform(),arch:os.arch(),cpus:os.cpus().length,uptime:os.uptime(),uptime_str:fmtUptime(os.uptime()),memory:{total:fmtBytes(total),free:fmtBytes(free),used:fmtBytes(total-free),usage:((total-free)/total*100).toFixed(1)+'%'},load:os.loadavg().map(n=>+n.toFixed(2)),gatekeeper:{version:'2.0.0',port:PORT,uptime:process.uptime().toFixed(0)+'s'}}); jr(res,200,{ok:true,hostname:os.hostname(),platform:os.platform(),arch:os.arch(),cpus:os.cpus().length,uptime:os.uptime(),uptime_str:fmtUptime(os.uptime()),memory:{total:fmtBytes(total),free:fmtBytes(free),used:fmtBytes(total-free),usage:((total-free)/total*100).toFixed(1)+'%'},load:os.loadavg().map(n=>+n.toFixed(2)),engine:{version:'2.0.0',port:PORT,uptime:process.uptime().toFixed(0)+'s'}});
}else if(route==='/hlpd'){ }else if(route==='/hlpd'){
const b=await parseBody(req); const b=await parseBody(req);
if(!b||!b.hlpd){jr(res,400,{error:'缺少 hlpd 参数'});return;} if(!b||!b.hlpd){jr(res,400,{error:'缺少 hlpd 参数'});return;}
@ -214,7 +214,7 @@ server.on('error',(e)=>{
server.listen(PORT,'0.0.0.0',()=>{ server.listen(PORT,'0.0.0.0',()=>{
const h=os.hostname(); const h=os.hostname();
log('INFO','startup','host='+h+' port='+PORT+' v2.0'); log('INFO','startup','host='+h+' port='+PORT+' v2.0');
console.log(' ⚔️ 铸渊守门人 v2.0 · HLDP 已就绪'); console.log(' ⚔️ 光湖驱动引擎 v2.0 · HLDP 已就绪');
console.log(' 主机名: '+h+' 端口: '+PORT); console.log(' 主机名: '+h+' 端口: '+PORT);
}); });