| import json, os, time, sys, logging |
| from .kernel import SovereignKernel |
| from .validator import KernelValidator |
| from .ledger import ProjectLedger |
| from .security import CDEPolicyEnforcer |
|
|
| |
| 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') |
| |
| |
| 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 |
| |
| |
| self.memory.record_event("TASK_START", task) |
| |
| |
| if intent == 'scaffold': |
| res = self.kernel.scaffold_module(task.get('module_name')) |
| else: |
| res = self.kernel.write_code(task.get('file'), task.get('code')) |
| |
| |
| 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) |
| |
| |
| 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() |
|
|