Compare commits
5 Commits
mimo/code/
...
mimo/creat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5099a18c6 | ||
| aab3e607eb | |||
| fe56ece1ad | |||
| bf477382ba | |||
| fba972f8be |
6
app.js
6
app.js
@@ -1,4 +1,4 @@
|
|||||||
import * as THREE from 'three';
|
import ResonanceVisualizer from './nexus/components/resonance-visualizer.js';\nimport * as THREE from 'three';
|
||||||
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
|
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
|
||||||
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
|
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
|
||||||
import { UnrealBloomPass } from 'three/addons/postprocessing/UnrealBloomPass.js';
|
import { UnrealBloomPass } from 'three/addons/postprocessing/UnrealBloomPass.js';
|
||||||
@@ -597,7 +597,7 @@ class PSELayer {
|
|||||||
|
|
||||||
let pseLayer;
|
let pseLayer;
|
||||||
|
|
||||||
let metaLayer, neuroBridge, cbr, symbolicPlanner, knowledgeGraph, blackboard, symbolicEngine, calibrator;
|
let resonanceViz, metaLayer, neuroBridge, cbr, symbolicPlanner, knowledgeGraph, blackboard, symbolicEngine, calibrator;
|
||||||
let agentFSMs = {};
|
let agentFSMs = {};
|
||||||
|
|
||||||
function setupGOFAI() {
|
function setupGOFAI() {
|
||||||
@@ -666,7 +666,7 @@ async function init() {
|
|||||||
scene = new THREE.Scene();
|
scene = new THREE.Scene();
|
||||||
scene.fog = new THREE.FogExp2(0x050510, 0.012);
|
scene.fog = new THREE.FogExp2(0x050510, 0.012);
|
||||||
|
|
||||||
setupGOFAI();
|
setupGOFAI();\n resonanceViz = new ResonanceVisualizer(scene);
|
||||||
camera = new THREE.PerspectiveCamera(65, window.innerWidth / window.innerHeight, 0.1, 1000);
|
camera = new THREE.PerspectiveCamera(65, window.innerWidth / window.innerHeight, 0.1, 1000);
|
||||||
camera.position.copy(playerPos);
|
camera.position.copy(playerPos);
|
||||||
|
|
||||||
|
|||||||
22
nexus/mnemosyne/resonance_linker.py
Normal file
22
nexus/mnemosyne/resonance_linker.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
"""Resonance Linker — Finds second-degree connections in the holographic graph."""
|
||||||
|
|
||||||
|
class ResonanceLinker:
|
||||||
|
def __init__(self, archive):
|
||||||
|
self.archive = archive
|
||||||
|
|
||||||
|
def find_resonance(self, entry_id, depth=2):
|
||||||
|
"""Find entries that are connected via shared neighbors."""
|
||||||
|
if entry_id not in self.archive._entries: return []
|
||||||
|
|
||||||
|
entry = self.archive._entries[entry_id]
|
||||||
|
neighbors = set(entry.links)
|
||||||
|
resonance = {}
|
||||||
|
|
||||||
|
for neighbor_id in neighbors:
|
||||||
|
if neighbor_id in self.archive._entries:
|
||||||
|
for second_neighbor in self.archive._entries[neighbor_id].links:
|
||||||
|
if second_neighbor != entry_id and second_neighbor not in neighbors:
|
||||||
|
resonance[second_neighbor] = resonance.get(second_neighbor, 0) + 1
|
||||||
|
|
||||||
|
return sorted(resonance.items(), key=lambda x: x[1], reverse=True)
|
||||||
@@ -45,6 +45,7 @@ from nexus.perception_adapter import (
|
|||||||
)
|
)
|
||||||
from nexus.experience_store import ExperienceStore
|
from nexus.experience_store import ExperienceStore
|
||||||
from nexus.groq_worker import GroqWorker
|
from nexus.groq_worker import GroqWorker
|
||||||
|
from nexus.heartbeat import write_heartbeat
|
||||||
from nexus.trajectory_logger import TrajectoryLogger
|
from nexus.trajectory_logger import TrajectoryLogger
|
||||||
|
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
@@ -286,6 +287,13 @@ class NexusMind:
|
|||||||
|
|
||||||
self.cycle_count += 1
|
self.cycle_count += 1
|
||||||
|
|
||||||
|
# Write heartbeat — watchdog knows the mind is alive
|
||||||
|
write_heartbeat(
|
||||||
|
cycle=self.cycle_count,
|
||||||
|
model=self.model,
|
||||||
|
status="thinking",
|
||||||
|
)
|
||||||
|
|
||||||
# Periodically distill old memories
|
# Periodically distill old memories
|
||||||
if self.cycle_count % 50 == 0 and self.cycle_count > 0:
|
if self.cycle_count % 50 == 0 and self.cycle_count > 0:
|
||||||
await self._distill_memories()
|
await self._distill_memories()
|
||||||
@@ -383,6 +391,13 @@ class NexusMind:
|
|||||||
salience=1.0,
|
salience=1.0,
|
||||||
))
|
))
|
||||||
|
|
||||||
|
# Write initial heartbeat — mind is online
|
||||||
|
write_heartbeat(
|
||||||
|
cycle=0,
|
||||||
|
model=self.model,
|
||||||
|
status="thinking",
|
||||||
|
)
|
||||||
|
|
||||||
while self.running:
|
while self.running:
|
||||||
try:
|
try:
|
||||||
await self.think_once()
|
await self.think_once()
|
||||||
@@ -423,6 +438,13 @@ class NexusMind:
|
|||||||
log.info("Nexus Mind shutting down...")
|
log.info("Nexus Mind shutting down...")
|
||||||
self.running = False
|
self.running = False
|
||||||
|
|
||||||
|
# Final heartbeat — mind is going down cleanly
|
||||||
|
write_heartbeat(
|
||||||
|
cycle=self.cycle_count,
|
||||||
|
model=self.model,
|
||||||
|
status="idle",
|
||||||
|
)
|
||||||
|
|
||||||
# Final stats
|
# Final stats
|
||||||
stats = self.trajectory_logger.get_session_stats()
|
stats = self.trajectory_logger.get_session_stats()
|
||||||
log.info(f"Session stats: {json.dumps(stats, indent=2)}")
|
log.info(f"Session stats: {json.dumps(stats, indent=2)}")
|
||||||
|
|||||||
Reference in New Issue
Block a user