#[before_agent]Expand description
Middleware: run a hook before the agent loop starts.
The decorated async function must accept &mut Vec<Message> and return
Result<(), SynapticError>. The macro generates a struct that implements
AgentMiddleware with only before_agent overridden, plus a factory
function returning Arc<dyn AgentMiddleware>.
§Example
ⓘ
use synaptic_macros::before_agent;
use synaptic_core::{Message, SynapticError};
#[before_agent]
async fn setup(messages: &mut Vec<Message>) -> Result<(), SynapticError> {
println!("Agent starting with {} messages", messages.len());
Ok(())
}
let mw = setup(); // Arc<dyn AgentMiddleware>