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