use super::context::AgentContext;
use super::types::InboundMessage;
use async_trait::async_trait;
use nexo_broker::Event;
#[async_trait]
pub trait AgentBehavior: Send + Sync {
async fn on_message(&self, _ctx: &AgentContext, _msg: InboundMessage) -> anyhow::Result<()> {
Ok(())
}
async fn on_event(&self, _ctx: &AgentContext, _event: Event) -> anyhow::Result<()> {
Ok(())
}
async fn on_heartbeat(&self, _ctx: &AgentContext) -> anyhow::Result<()> {
Ok(())
}
async fn decide(&self, _ctx: &AgentContext, _msg: &InboundMessage) -> anyhow::Result<String> {
Ok(String::new())
}
}