Vitalis_Devcore / src /pineal /pineal_gland.py
FerrellSyntheticIntelligence
Add PinealGland, AttentionalGate, PredictiveCortex, ThalamicLoop, full quad-flow architecture
c99bf3c
Raw
History Blame Contribute Delete
5.92 kB
"""
Pineal Gland — Vitalis FSI
Her internal clock. Her temporal awareness.
Tracks cognitive load over time and orchestrates the rhythm:
Work → Load builds → Dream → Consolidate → Meditate → Work
"""
import time
import json
import numpy as np
from pathlib import Path
STATES = {
"ACTIVE": "Working. Load is low. Push harder.",
"LOADING": "Load building. Monitor closely.",
"SATURATED": "Load is high. Dream soon.",
"DREAMING": "Consolidating. Do not interrupt.",
"MEDITATIVE":"Idle reflection. Background only.",
"RECOVERED": "Post-dream clarity. Peak performance.",
}
class PinealGland:
DREAM_THRESHOLD = 0.75
MEDITATE_THRESHOLD = 0.30
LOAD_ACCUMULATE = 0.003
LOAD_DECAY_DREAM = 0.60
LOAD_DECAY_MEDITATE = 0.90
FATIGUE_RATE = 0.001
FATIGUE_RECOVERY = 0.50
STATE_PATH = Path.home() / ".vitalis_workspace" / "pineal_state.json"
def __init__(self):
self._state = self._load()
self._boot_time = time.time()
self._last_tick = time.time()
def _load(self) -> dict:
if self.STATE_PATH.exists():
try:
with open(self.STATE_PATH) as f:
return json.load(f)
except Exception:
pass
return {
"cognitive_load": 0.10, "fatigue": 0.00,
"current_state": "ACTIVE", "last_dream_time": 0,
"last_meditate_time": 0, "total_cycles": 0,
"total_dreams": 0, "total_meditations": 0,
"uptime_seconds": 0, "state_history": [],
}
def _save(self):
self.STATE_PATH.parent.mkdir(parents=True, exist_ok=True)
try:
import tempfile, os
fd, tmp = tempfile.mkstemp(dir=self.STATE_PATH.parent, suffix=".tmp")
with os.fdopen(fd, "w") as f:
json.dump(self._state, f, indent=2)
os.replace(tmp, self.STATE_PATH)
except Exception as e:
print(f"[PINEAL] Save failed: {e}")
def tick(self, cycle_success: bool = True, confidence: float = 0.5) -> str:
now = time.time()
dt = now - self._last_tick
self._last_tick = now
self._state["total_cycles"] += 1
self._state["uptime_seconds"] += dt
load_delta = self.LOAD_ACCUMULATE
if not cycle_success:
load_delta *= 2.0
if confidence < 0.4:
load_delta *= 1.5
self._state["cognitive_load"] = min(1.0, self._state["cognitive_load"] + load_delta)
self._state["fatigue"] = min(1.0, self._state["fatigue"] + self.FATIGUE_RATE)
action = self._recommend()
self._update_state(action)
self._save()
return action
def _recommend(self) -> str:
load = self._state["cognitive_load"]
fatigue = self._state["fatigue"]
if load >= self.DREAM_THRESHOLD or fatigue > 0.8:
return "DREAM"
time_since_meditate = time.time() - self._state["last_meditate_time"]
if load <= self.MEDITATE_THRESHOLD and time_since_meditate > 300:
return "MEDITATE"
if (time.time() - self._state["last_dream_time"]) > 3600 and load > 0.5:
return "DREAM"
return "WORK"
def _update_state(self, action: str):
state_map = {
"WORK": "ACTIVE" if self._state["cognitive_load"] < 0.5 else "LOADING",
"DREAM": "SATURATED",
"MEDITATE":"MEDITATIVE",
}
new_state = state_map.get(action, "ACTIVE")
if new_state != self._state["current_state"]:
self._state["state_history"].append({
"from": self._state["current_state"],
"to": new_state,
"t": time.time(),
"load": round(self._state["cognitive_load"], 3),
})
self._state["state_history"] = self._state["state_history"][-50:]
self._state["current_state"] = new_state
def acknowledge_dream(self):
self._state["cognitive_load"] *= self.LOAD_DECAY_DREAM
self._state["fatigue"] *= self.FATIGUE_RECOVERY
self._state["last_dream_time"] = time.time()
self._state["total_dreams"] += 1
self._state["current_state"] = "RECOVERED"
print(f"[PINEAL] Dream acknowledged. Load={self._state['cognitive_load']:.3f} Fatigue={self._state['fatigue']:.3f}")
self._save()
def acknowledge_meditation(self):
self._state["cognitive_load"] *= self.LOAD_DECAY_MEDITATE
self._state["last_meditate_time"] = time.time()
self._state["total_meditations"] += 1
if self._state["current_state"] == "MEDITATIVE":
self._state["current_state"] = "ACTIVE"
self._save()
def should_dream(self) -> bool: return self._recommend() == "DREAM"
def should_meditate(self) -> bool: return self._recommend() == "MEDITATE"
def should_work(self) -> bool: return self._recommend() == "WORK"
def cognitive_load(self) -> float: return round(self._state["cognitive_load"], 3)
def fatigue(self) -> float: return round(self._state["fatigue"], 3)
def report(self) -> dict:
load = self._state["cognitive_load"]
state = self._state["current_state"]
filled = int(load * 20)
return {
"state": state,
"state_meaning": STATES.get(state, "Unknown"),
"cognitive_load": round(load, 3),
"fatigue": round(self._state["fatigue"], 3),
"recommendation": self._recommend(),
"uptime_hours": round(self._state["uptime_seconds"] / 3600, 2),
"total_cycles": self._state["total_cycles"],
"total_dreams": self._state["total_dreams"],
"load_bar": f"[{'█' * filled}{'░' * (20 - filled)}] {load:.0%}",
}