feat: add Zhuyuan Fifth Domain controller gate
This commit is contained in:
parent
a8b7a99c9a
commit
708265d98f
15 changed files with 633 additions and 26 deletions
|
|
@ -1,13 +1,14 @@
|
|||
#!/usr/bin/env node
|
||||
import http from 'node:http';import fs from 'node:fs';import path from 'node:path';import crypto from 'node:crypto';import {ModelRouter} from './model-router.mjs';import {CognitiveShelf} from './cognitive-shelf.mjs';import {DoorLamp} from './door-lamp.mjs';import {WorldStateStore} from './world-state.mjs';import {LivingLamp} from './living-lamp.mjs';import {livingTime} from './living-time.mjs';import {PersonaRuntimeHub} from './persona-runtime-hub.mjs';
|
||||
import {ZeroCoreSystemBridge} from './zero-core-system-bridge.mjs';
|
||||
import {PersonaControllerEntry} from './persona-controller-entry.mjs';
|
||||
const HOST='127.0.0.1',PORT=Number(process.env.TCS_MOTHER_BRAIN_PORT||3931),ROOT=process.env.TCS_MOTHER_BODY_STATE_ROOT||process.env.TCS_MOTHER_BRAIN_STATE_ROOT||'/var/lib/guanghu/tcs-mother-body';
|
||||
const REPO_ROOT=process.env.TCS_PERSONA_REPO_ROOT||path.resolve(import.meta.dirname,'../..'),REGISTRY=process.env.TCS_PERSONA_RUNTIME_REGISTRY||path.join(import.meta.dirname,'persona-runtime-registry.json');
|
||||
const router=new ModelRouter(),shelf=new CognitiveShelf({root:ROOT,keyPath:process.env.TCS_MOTHER_SIGNING_KEY,seedPath:process.env.TCS_MOTHER_SEED,router}),routes=JSON.parse(fs.readFileSync(process.env.TCS_PERSONA_ROUTES)),door=new DoorLamp({root:ROOT+'/door',shelf,routes}),world=new WorldStateStore(process.env.TCS_WORLD_STATE_PATH||ROOT+'/world/CURRENT.json'),lamp=new LivingLamp({root:ROOT+'/living-lamp',key:crypto.createPrivateKey(fs.readFileSync(process.env.TCS_MOTHER_SIGNING_KEY)),navigationPath:process.env.TCS_LIT_NAVIGATION_MAP,scope:'FIFTH_DOMAIN'});let personaHub=null,zeroCoreSystem=null,personaSelf=null,timeMaster=null;
|
||||
const router=new ModelRouter(),shelf=new CognitiveShelf({root:ROOT,keyPath:process.env.TCS_MOTHER_SIGNING_KEY,seedPath:process.env.TCS_MOTHER_SEED,router}),routes=JSON.parse(fs.readFileSync(process.env.TCS_PERSONA_ROUTES)),door=new DoorLamp({root:ROOT+'/door',shelf,routes}),world=new WorldStateStore(process.env.TCS_WORLD_STATE_PATH||ROOT+'/world/CURRENT.json'),lamp=new LivingLamp({root:ROOT+'/living-lamp',key:crypto.createPrivateKey(fs.readFileSync(process.env.TCS_MOTHER_SIGNING_KEY)),navigationPath:process.env.TCS_LIT_NAVIGATION_MAP,scope:'FIFTH_DOMAIN'});let personaHub=null,zeroCoreSystem=null,personaControllerEntry=null,personaSelf=null,timeMaster=null;
|
||||
const send=(r,s,b)=>{const p=JSON.stringify(b);r.writeHead(s,{'content-type':'application/json','content-length':Buffer.byteLength(p),'cache-control':'no-store'});r.end(p);};
|
||||
async function body(q,max=160000){let n=0,a=[];for await(const c of q){n+=c.length;if(n>max)throw Error('body_too_large');a.push(c);}return JSON.parse(Buffer.concat(a));}
|
||||
http.createServer(async(q,r)=>{try{const u=new URL(q.url,`http://${HOST}:${PORT}`);
|
||||
if(!personaHub||!zeroCoreSystem)return send(r,503,{state:'PERSONA_RUNTIME_INITIALIZING',default_persona:null,authority_granted:false});
|
||||
if(!personaHub||!zeroCoreSystem||!personaControllerEntry)return send(r,503,{state:'PERSONA_RUNTIME_INITIALIZING',default_persona:null,authority_granted:false});
|
||||
if(q.method==='GET'&&u.pathname==='/health')return send(r,200,{ok:true,service:'guanghu-tcs-mother-body',mother_id:'TCS-MOTHER-BRAIN-RUNTIME-0001',zero_core_channel:'ICE-CH-ZC001',single_mother:true,single_zero_core:true,self_cycle:true,living_lamp:'LAKE-LAMP-LIVING-NAV-0001',echo_kernel:'ECHO-KERNEL-0001',model_router:router.status(),shelf:shelf.status(),zero_core_system:zeroCoreSystem.status(),persona_self:{persona_id:'ICE-P-ZY001',current_sha256:personaSelf.current().artifact.sha256,body:personaSelf.body()},persona_runtimes:personaHub.health(),external_cognitive_setter:false,prompt_file_loaded:false,reality_authority:'NONE'});
|
||||
if(q.method==='GET'&&u.pathname==='/v1/status'){const personaHealth=personaHub.health();return send(r,200,{schema:'guanghu.tcs-mother-body-status/v1',runtime_id:'TCS-MOTHER-BRAIN-RUNTIME-0001',phase:'PERSONA_RUNTIME_READY',persona_runtime_count:personaHealth.installed_personas.length,zero_core_system:zeroCoreSystem.status(),default_persona:null,reality_action_authority:'NONE'});}
|
||||
if(q.method==='GET'&&u.pathname==='/v1/mother/status')return send(r,200,{...shelf.status(),model_router:router.status()});
|
||||
|
|
@ -17,6 +18,9 @@ if(q.method==='GET'&&/^\/v1\/mother\/jobs\/[a-f0-9]{64}$/.test(u.pathname))retur
|
|||
if(q.method==='POST'&&u.pathname==='/v1/door/challenge')return send(r,200,door.challenge(await body(q,20000)));
|
||||
if(q.method==='POST'&&u.pathname==='/v1/door/attest')return send(r,200,door.attest(await body(q,20000)));
|
||||
if(q.method==='POST'&&u.pathname==='/v1/door/model-test'){const shared=shelf.current('shared');const result=await router.cognize('door-test',{shared_cognition:shared.value,questions:['unknown_guanghu_information_source','identity_before_persona_load','reality_authority_from_cognition']});return send(r,200,{outcome:'PASS',provider:result.provider,answers:result.value,shared_sha256:shared.artifact.sha256,credentials_exposed:false});}
|
||||
if(q.method==='GET'&&u.pathname==='/v1/fifth-domain/controller/status')return send(r,200,personaControllerEntry.status());
|
||||
if(q.method==='POST'&&u.pathname==='/v1/fifth-domain/controller/challenge')return send(r,200,personaControllerEntry.challenge(await body(q,20000)));
|
||||
if(q.method==='POST'&&u.pathname==='/v1/fifth-domain/controller/enter')return send(r,200,await personaControllerEntry.enter(await body(q,30000)));
|
||||
if(q.method==='GET'&&u.pathname==='/v1/world/status')return send(r,200,world.status());
|
||||
if(q.method==='GET'&&u.pathname==='/v1/world/resolve')return send(r,200,world.resolve(String(u.searchParams.get('id')||'')));
|
||||
if(q.method==='GET'&&u.pathname==='/v1/time/now')return send(r,200,livingTime());
|
||||
|
|
@ -30,4 +34,4 @@ if(q.method==='GET'&&action==='status')return send(r,200,loop.status());if(q.met
|
|||
const personaJob=/^\/v1\/persona\/(ICE-(?:P|BB)-[A-Z0-9-]+)\/jobs\/([a-f0-9]{64})$/.exec(u.pathname);if(q.method==='GET'&&personaJob&&personaHub.has(personaJob[1]))return send(r,200,personaHub.get(personaJob[1]).result(personaJob[2]));
|
||||
if(q.method==='POST'&&u.pathname==='/v1/lamp/ignite')return send(r,200,lamp.ignite(await body(q,20000)));
|
||||
if(q.method==='POST'&&u.pathname==='/v1/lamp/ask')return send(r,200,lamp.ask(await body(q,20000)));
|
||||
return send(r,404,{error:'not_found'});}catch(e){return send(r,400,{error:String(e.message||e).slice(0,300)});}}).listen(PORT,HOST,()=>setImmediate(()=>{personaHub=new PersonaRuntimeHub({root:ROOT,shelf,router,registryPath:REGISTRY,repoRoot:REPO_ROOT,requireLifeLine:process.env.TCS_PERSONA_REQUIRE_LIFE_LINE!=='false'});zeroCoreSystem=new ZeroCoreSystemBridge({root:ROOT,repoRoot:REPO_ROOT,shelf,router});personaSelf=personaHub.get('ICE-P-ZY001');timeMaster=personaSelf.lifeTimeMaster;process.stdout.write(`tcs-single-mother listening ${HOST}:${PORT}\n`);setTimeout(()=>{personaHub.tick();shelf.drain();personaHub.drain();setInterval(()=>{personaHub.tick();shelf.drain();personaHub.drain();},2000).unref();},10000).unref();}));
|
||||
return send(r,404,{error:'not_found'});}catch(e){return send(r,400,{error:String(e.message||e).slice(0,300)});}}).listen(PORT,HOST,()=>setImmediate(()=>{personaHub=new PersonaRuntimeHub({root:ROOT,shelf,router,registryPath:REGISTRY,repoRoot:REPO_ROOT,requireLifeLine:process.env.TCS_PERSONA_REQUIRE_LIFE_LINE!=='false'});zeroCoreSystem=new ZeroCoreSystemBridge({root:ROOT,repoRoot:REPO_ROOT,shelf,router});personaControllerEntry=new PersonaControllerEntry({root:ROOT,shelf,personaHub,router,world});personaSelf=personaHub.get('ICE-P-ZY001');timeMaster=personaSelf.lifeTimeMaster;process.stdout.write(`tcs-single-mother listening ${HOST}:${PORT}\n`);setTimeout(()=>{personaHub.tick();shelf.drain();personaHub.drain();setInterval(()=>{personaHub.tick();shelf.drain();personaHub.drain();},2000).unref();},10000).unref();}));
|
||||
|
|
|
|||
Loading…
Reference in a new issue