1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct InputSchema {
6 pub properties: serde_json::Map<String, Value>,
7 pub required: Vec<String>,
8 #[serde(rename = "type")]
9 pub schema_type: String,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct ToolSchema {
14 pub name: String,
15 pub description: String,
16 pub input_schema: InputSchema,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
20pub struct ToolCall {
21 pub name: String,
22 pub parameters: Value,
23 pub id: String,
24}