use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum AgentTarget {
Explicit(String),
Auto,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum AgentToolMode {
#[default]
Sync,
Streaming,
Conversational {
max_turns: u32,
max_tokens_per_turn: Option<u32>,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AgentToolBudget {
pub max_cost_usd: Option<f64>,
pub max_tokens: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum InvocationProtocol {
LocalGrpc,
A2a,
Mcp,
}