systemprompt_agent/models/web/
card_input.rs1use crate::models::a2a::{AgentCapabilities, SecurityScheme, TransportProtocol};
2use serde::Deserialize;
3use std::collections::HashMap;
4
5#[derive(Debug, Clone, Deserialize)]
6pub struct AgentCardInput {
7 #[serde(default = "default_protocol_version")]
8 pub protocol_version: String,
9 pub name: String,
10 pub description: String,
11 #[serde(default)]
12 pub url: Option<String>,
13 pub version: String,
14 #[serde(default)]
15 pub preferred_transport: Option<TransportProtocol>,
16 #[serde(default)]
17 pub capabilities: AgentCapabilities,
18 #[serde(default)]
19 pub default_input_modes: Vec<String>,
20 #[serde(default)]
21 pub default_output_modes: Vec<String>,
22 #[serde(default)]
23 pub skills: Vec<crate::models::a2a::AgentSkill>,
24 #[serde(default)]
25 pub security_schemes: Option<HashMap<String, SecurityScheme>>,
26 #[serde(default)]
27 pub security: Option<Vec<HashMap<String, Vec<String>>>>,
28}
29
30pub fn default_protocol_version() -> String {
31 "0.3.0".to_string()
32}