use serde::Deserialize;
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct AddArgs {
pub title: String,
pub body: String,
#[serde(default)]
pub r#type: Option<String>,
#[serde(default)]
pub scope: Option<String>,
#[serde(default)]
pub project: Option<String>,
#[serde(default)]
pub topic: Option<String>,
#[serde(default)]
pub tags: Vec<String>,
#[serde(default)]
pub anchors: Vec<String>,
#[serde(default)]
pub root: Option<String>,
}
#[derive(Debug, Default, Deserialize, schemars::JsonSchema)]
pub struct SearchArgs {
pub query: String,
#[serde(default)]
pub r#type: Option<String>,
#[serde(default)]
pub project: Option<String>,
#[serde(default)]
pub scope: Option<String>,
#[serde(default)]
pub match_any: bool,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct GetArgs {
pub memory_id: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct CheckArgs {
#[serde(default)]
pub root: Option<String>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct UpdateArgs {
pub memory_id: String,
#[serde(default)]
pub title: Option<String>,
#[serde(default)]
pub body: Option<String>,
#[serde(default)]
pub r#type: Option<String>,
#[serde(default)]
pub scope: Option<String>,
#[serde(default)]
pub project: Option<String>,
#[serde(default)]
pub topic: Option<String>,
#[serde(default)]
pub tags: Option<Vec<String>>,
#[serde(default)]
pub anchors: Option<Vec<String>>,
#[serde(default)]
pub root: Option<String>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct DeleteArgs {
pub memory_id: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct ContextArgs {
pub project: String,
#[serde(default)]
pub limit: Option<u32>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct TimelineArgs {
pub memory_id: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct SessionSummaryArgs {
pub summary: String,
#[serde(default)]
pub project: Option<String>,
#[serde(default)]
pub scope: Option<String>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct RelateArgs {
pub from_id: String,
pub to_id: String,
pub relation: String,
#[serde(default)]
pub confidence: Option<f32>,
#[serde(default)]
pub reason: Option<String>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct ConflictsArgs {
pub memory_id: String,
}