use serde::{Deserialize, Serialize};
use super::runtime::ToolRunMetadata;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[must_use]
pub enum ActionResult {
Success {
output: String,
#[serde(default)]
images: Option<Vec<String>>,
},
Error {
error: String,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ActionDisplay {
pub action_type: String,
pub target: String,
pub result: ActionResult,
#[serde(default)]
pub details: ActionDetails,
pub duration_seconds: Option<f64>,
#[serde(default)]
pub metadata: Option<ToolRunMetadata>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub enum ActionDetails {
#[default]
Simple,
Preview {
text: String,
line_count: Option<usize>,
},
FileContent { line_count: usize, content: String },
Diff { summary: String, diff: String },
}