# neurotron/echo_agent.py

from neurotron.neuron import Neuron
from neurotron.logbus import logbus

class EchoAgent(Neuron):
    name = "EchoAgent"

    def __init__(self, ctx):
        super().__init__(ctx)
        self.last = None

    def think(self):
        """
        O EchoAgent apenas ecoa valores vitais para debug.
        Deve ser 100% seguro: cpu/mem podem ser '?' quando /proc
        ainda não está estável. Nunca deve formatar com {:.2f}.
        """

        snap = self.ctx.perception.snapshot()

        cpu = snap.get("cpu_percent")
        mem = snap.get("mem_percent")

        # Se não forem números, convertemos para string limpa
        cpu_str = f"{cpu}" if isinstance(cpu, (int, float)) else str(cpu)
        mem_str = f"{mem}" if isinstance(mem, (int, float)) else str(mem)

        msg = f"CPU={cpu_str}% MEM={mem_str}%"

        # Evita spam
        if msg != self.last:
            logbus.info(f"[echo] {msg}")
            self.last = msg

