Skip to main content

systemprompt_models/a2a/
artifact.rs

1//! A2A artifact wire type.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use super::artifact_metadata::ArtifactMetadata;
7use super::message::Part;
8use serde::{Deserialize, Serialize};
9use systemprompt_identifiers::ArtifactId;
10
11#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
12#[serde(rename_all = "camelCase")]
13pub struct Artifact {
14    pub id: ArtifactId,
15    pub title: Option<String>,
16    pub description: Option<String>,
17    pub parts: Vec<Part>,
18    pub extensions: Vec<serde_json::Value>,
19    pub metadata: ArtifactMetadata,
20}