jamjet_core/
agent_tool.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "snake_case")]
6pub enum AgentTarget {
7 Explicit(String),
9 Auto,
11}
12
13#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15#[serde(rename_all = "snake_case")]
16pub enum AgentToolMode {
17 #[default]
19 Sync,
20 Streaming,
22 Conversational {
24 max_turns: u32,
25 max_tokens_per_turn: Option<u32>,
26 },
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct AgentToolBudget {
32 pub max_cost_usd: Option<f64>,
33 pub max_tokens: Option<u32>,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(rename_all = "snake_case")]
39pub enum InvocationProtocol {
40 LocalGrpc,
41 A2a,
42 Mcp,
43}