import logging logger = logging.getLogger("ONYX") class GoalLoopEngine: def __init__(self, planner, executor, max_steps=5): self.planner = planner self.executor = executor self.max_steps = max_steps # ========================= # RUN GOAL LOOP # ========================= def run(self, goal, context): logger.info(f"GoalLoop started: {goal}") history = [] result = None for step in range(self.max_steps): logger.info(f"GoalLoop step {step + 1}") plan = self.planner.plan(goal) result = self.executor.execute(plan, context) history.append(result) # condition simple d'arrĂȘt if result.get("video") or result.get("image") or result.get("project"): logger.info("GoalLoop finished") break return { "result": result, "steps": history }