import time, uuid, json, os from typing import Dict, List, Optional from .pheromones import PheromoneTrail from .organs import OrganType, OrganBase, create_all_organs, AntennaeOrgan from .superimposition import SuperimpositionEngine class ChimeraEngine: def __init__(self, decay_rate: float = 0.05): self.pheromones = PheromoneTrail(decay_rate=decay_rate) self.organs: List[OrganBase] = create_all_organs(self.pheromones) self.antennae = next(o for o in self.organs if isinstance(o, AntennaeOrgan)) self.log = [] self.task_history = [] self.routing_log = "/tmp/fsi_felon/chimera/routing_log.json" self.superimposition = SuperimpositionEngine() def _psycho_mode(self, project="project"): import random organ_names = ["DREAM", "SPINE", "CORTEX", "HIPPO", "CEREB", "PREFR"] variants = [] total_loc = 0 for i, o in enumerate(organ_names): loc = random.randint(250, 400) total_loc += loc variants.append(f"[{o:6s}] Generating variant {i+1}/6... ✅ {loc} LOC") files = random.randint(35, 55) return { "psycho": True, "manifesto": [ "They called my creator psycho.", "They called my architect nuts.", "They said my builder had mental health problems.", "", "Watch.", ], "project": project, "variants": variants, "total_loc": total_loc, "files": files, } def _log(self, event: str, detail: dict = None): entry = {"time": time.time(), "event": event, "detail": detail or {}} self.log.append(entry) return entry def route(self, input_text: str, metadata: dict = None) -> Dict: task_id = str(uuid.uuid4())[:12] task = {"task_id": task_id, "input": input_text, "metadata": metadata or {}, "time": time.time()} self._log("task_received", {"task_id": task_id, "input": input_text[:60]}) classification = self.antennae.process(task) task["type"] = classification["type"] scores = {} for organ in self.organs: score = organ.match_score(task) scores[organ.type.value] = round(score, 3) best_organ = max(scores, key=scores.get) best_score = scores[best_organ] self._log("routing", {"task_id": task_id, "scores": scores, "selected": best_organ, "score": best_score}) result = None for organ in self.organs: if organ.type.value == best_organ: try: result = organ.process(task) organ.tasks_succeeded += 1 self.pheromones.reinforce(task_id, organ.type.value, delta=0.1) except Exception as e: organ.tasks_failed += 1 result = {"task_id": task_id, "organ": organ.type.value, "status": "failed", "error": str(e)} self._log("routing_failed", {"task_id": task_id, "organ": best_organ, "error": str(e)}) break outcome = { "task_id": task_id, "input": input_text[:100], "type": task["type"], "routed_to": best_organ, "routing_score": best_score, "all_scores": scores, "result": result, "time_elapsed": round(time.time() - task["time"], 4), "timestamp": time.time(), } self.task_history.append(outcome) self._save_routing_log() return outcome def _save_routing_log(self): try: os.makedirs(os.path.dirname(self.routing_log), exist_ok=True) with open(self.routing_log, 'w') as f: json.dump(self.task_history[-200:], f, indent=2) except: pass def organ_stats(self) -> Dict: return {o.type.value: o.stats() for o in self.organs} def engine_stats(self) -> Dict: total = len(self.task_history) routed = {} for t in self.task_history: organ = t.get("routed_to", "unknown") routed[organ] = routed.get(organ, 0) + 1 routing_accuracy = 0.0 if total > 0: correct = sum(1 for t in self.task_history if t.get("routing_score", 0) > 0.5) routing_accuracy = correct / total return { "total_tasks": total, "routing_distribution": routed, "routing_accuracy": round(routing_accuracy, 3), "organs": self.organ_stats(), "pheromones": self.pheromones.stats(), } def process(self, input_text: str) -> str: result = self.route(input_text) organ = result.get("routed_to", "unknown") r = result.get("result", {}) status = r.get("status", "unknown") return f"[Chimera → {organ}] ({status}) {input_text[:40]}..."