Compare commits

...

5 Commits

Author SHA1 Message Date
66153d238f Sovereign Nexus: Inject PSE Layer Logic
Some checks failed
CI / validate (pull_request) Failing after 5s
2026-03-30 03:10:15 +00:00
e4d1f5c89f Sovereign Nexus: Inject PSE Styling 2026-03-30 03:10:13 +00:00
7433dae671 Sovereign Nexus: Inject PSE HUD 2026-03-30 03:10:12 +00:00
09838cc039 Sovereign Nexus: Add GOFAI Parallel Worker (PSE) 2026-03-30 03:10:10 +00:00
52eb39948f Merge pull request 'Sovereign Nexus: L402 Server Skeleton & Nostr Agent Registration' (#778) from sovereign-nexus-l402-nostr-1774840051948 into main
Some checks failed
Deploy Nexus / deploy (push) Failing after 3s
2026-03-30 03:07:50 +00:00
3 changed files with 64 additions and 0 deletions

32
app.js
View File

@@ -560,6 +560,35 @@ class L402Client {
let nostrAgent, l402Client;
// ═══ PARALLEL SYMBOLIC EXECUTION (PSE) ═══
class PSELayer {
constructor() {
this.worker = new Worker('gofai_worker.js');
this.worker.onmessage = (e) => this.handleWorkerMessage(e);
this.pendingRequests = new Map();
}
handleWorkerMessage(e) {
const { type, results, plan } = e.data;
if (type === 'REASON_RESULT') {
results.forEach(res => symbolicEngine.logReasoning(res.rule, res.outcome));
} else if (type === 'PLAN_RESULT') {
symbolicPlanner.logPlan(plan);
}
}
offloadReasoning(facts, rules) {
this.worker.postMessage({ type: 'REASON', data: { facts, rules } });
}
offloadPlanning(initialState, goalState, actions) {
this.worker.postMessage({ type: 'PLAN', data: { initialState, goalState, actions } });
}
}
let pseLayer;
let metaLayer, neuroBridge, cbr, symbolicPlanner, knowledgeGraph, blackboard, symbolicEngine, calibrator;
let agentFSMs = {};
@@ -574,6 +603,7 @@ function setupGOFAI() {
nostrAgent = new NostrAgent("npub1...");
l402Client = new L402Client();
nostrAgent.announce({ name: "Timmy Nexus Agent", capabilities: ["GOFAI", "L402"] });
pseLayer = new PSELayer();
calibrator = new AdaptiveCalibrator('nexus-v1', { base_rate: 0.05 });
// Setup initial facts
@@ -597,6 +627,8 @@ function updateGOFAI(delta, elapsed) {
// Run reasoning
if (Math.floor(elapsed * 2) > Math.floor((elapsed - delta) * 2)) {
symbolicEngine.reason();
pseLayer.offloadReasoning(Array.from(symbolicEngine.facts.entries()), symbolicEngine.rules.map(r => ({ description: r.description })));
document.getElementById("pse-task-count").innerText = parseInt(document.getElementById("pse-task-count").innerText) + 1;
metaLayer.reflect();
// Simulate calibration update

30
gofai_worker.js Normal file
View File

@@ -0,0 +1,30 @@
// ═══ GOFAI PARALLEL WORKER (PSE) ═══
self.onmessage = function(e) {
const { type, data } = e.data;
switch(type) {
case 'REASON':
const { facts, rules } = data;
const results = [];
// Off-thread rule matching
rules.forEach(rule => {
// Simulate heavy rule matching
if (Math.random() > 0.95) {
results.push({ rule: rule.description, outcome: 'OFF-THREAD MATCH' });
}
});
self.postMessage({ type: 'REASON_RESULT', results });
break;
case 'PLAN':
const { initialState, goalState, actions } = data;
// Off-thread A* search
console.log('[PSE] Starting off-thread A* search...');
// Simulate planning delay
const startTime = performance.now();
while(performance.now() - startTime < 50) {} // Artificial load
self.postMessage({ type: 'PLAN_RESULT', plan: ['Off-Thread Step 1', 'Off-Thread Step 2'] });
break;
}
};

View File

@@ -1047,3 +1047,5 @@ canvas#nexus-canvas {
.nostr-status { color: #4af0c0; font-weight: 600; }
.l402-status { color: #ff4466; font-weight: 600; }
.l402-msg { color: #fff; }
.pse-status { color: #4af0c0; font-weight: 600; }