Vitalis_Devcore / src /loop /self_healing.py
FerrellSyntheticIntelligence
Fix import chain, add self-healing loop, add brain stubs, add model card
41b685b
#!/usr/bin/env python3
import os
import json
import time
from src.ide_kernel.kernel import SovereignKernel
from src.ide_kernel.validator import KernelValidator
from src.ide_kernel.ledger import ProjectLedger
class SelfHealingLoop:
def __init__(self, workspace_path=None):
self.root = os.path.abspath(workspace_path or os.getcwd())
self.failure_file = os.path.join(self.root, "failure_report.json")
self.kernel = SovereignKernel(self.root)
self.ledger = ProjectLedger(self.root)
def run(self):
print("[LOOP] Self-healing active. Watching for failures...")
while True:
if os.path.exists(self.failure_file):
with open(self.failure_file, 'r') as f:
report = json.load(f)
task = report.get("original_task", {})
intent = task.get("intent")
print(f"[LOOP] Failure detected for: {intent}. Attempting recovery...")
try:
if intent == "scaffold":
self.kernel.scaffold_module(task.get("module_name"))
else:
self.kernel.write_code(task.get("file"), task.get("code"))
success, output = KernelValidator.run_tests(self.root)
if success:
self.ledger.update_state(intent, "Recovered")
print(f"[LOOP] Recovery successful: {intent}")
os.remove(self.failure_file)
else:
print(f"[LOOP] Recovery failed. Manual review needed.\n{output}")
except Exception as e:
print(f"[LOOP] Critical recovery error: {e}")
time.sleep(3)