Skip to main content

systemprompt_agent/models/web/
card_input.rs

1use 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}