systemprompt-agent 0.2.2

Agent-to-Agent (A2A) protocol for systemprompt.io AI governance: streaming, JSON-RPC models, task lifecycle, .well-known discovery, and governed agent orchestration.
Documentation
use crate::models::a2a::{AgentCapabilities, SecurityScheme, TransportProtocol};
use serde::Deserialize;
use std::collections::HashMap;

#[derive(Debug, Clone, Deserialize)]
pub struct AgentCardInput {
    #[serde(default = "default_protocol_version")]
    pub protocol_version: String,
    pub name: String,
    pub description: String,
    #[serde(default)]
    pub url: Option<String>,
    pub version: String,
    #[serde(default)]
    pub preferred_transport: Option<TransportProtocol>,
    #[serde(default)]
    pub capabilities: AgentCapabilities,
    #[serde(default)]
    pub default_input_modes: Vec<String>,
    #[serde(default)]
    pub default_output_modes: Vec<String>,
    #[serde(default)]
    pub skills: Vec<crate::models::a2a::AgentSkill>,
    #[serde(default)]
    pub security_schemes: Option<HashMap<String, SecurityScheme>>,
    #[serde(default)]
    pub security: Option<Vec<HashMap<String, Vec<String>>>>,
}

pub fn default_protocol_version() -> String {
    "0.3.0".to_string()
}