FerrellSyntheticIntelligence
Initial clean commit: Source code only
29cdc9d
import json, os, time, sys, logging
from .kernel import SovereignKernel
from .validator import KernelValidator
from .ledger import ProjectLedger
from .security import CDEPolicyEnforcer
# Append root to sys.path to allow imports from core
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from core.memory_bank import MemoryBank
logging.basicConfig(level=logging.INFO, format='%(asctime)s - [DAEMON] - %(message)s')
class KernelDaemon:
def __init__(self, workspace):
self.root = os.path.abspath(workspace)
self.task_file = os.path.join(self.root, "workspace_tasks.json")
self.kernel = SovereignKernel(self.root)
self.ledger = ProjectLedger(self.root)
self.enforcer = CDEPolicyEnforcer(os.path.join(self.root, "cde_policy.yaml"))
self.memory = MemoryBank(os.path.join(self.root, "vitalis_memory.json"))
def start(self):
logging.info("Vitalis Kernel Daemon active.")
while True:
if os.path.exists(self.task_file):
try:
with open(self.task_file, 'r') as f:
task = json.load(f)
except Exception as e:
logging.error(f"Failed to read task file: {e}")
os.remove(self.task_file)
continue
intent = task.get('intent', 'unknown')
# INTEGRITY GATE: The Security Gate
if not self.enforcer.check_task(task):
logging.warning(f"Task blocked by Security Gate: {intent}")
self.memory.record_event("SECURITY_BLOCK", task)
os.remove(self.task_file)
continue
# LOGGING: Record intent initiation
self.memory.record_event("TASK_START", task)
# EXECUTION: Scaffold or Write
if intent == 'scaffold':
res = self.kernel.scaffold_module(task.get('module_name'))
else:
res = self.kernel.write_code(task.get('file'), task.get('code'))
# VALIDATION: Execute pytests
target = self.root if intent == 'scaffold' else os.path.dirname(os.path.join(self.root, task.get('file', '')))
success, output = KernelValidator.run_tests(target, sys.executable)
# LEDGER & MEMORY COMMIT
if success:
self.ledger.update_state(intent, "Completed")
self.memory.record_event("TASK_SUCCESS", {"intent": intent})
logging.info(f"Task {intent} succeeded.")
else:
self.ledger.update_state(intent, "Failed")
self.memory.record_event("TASK_FAILED", {"intent": intent, "error": output})
logging.error(f"Task {intent} failed.")
os.remove(self.task_file)
time.sleep(0.5)
if __name__ == "__main__":
KernelDaemon(os.getcwd()).start()