use serde::Deserialize; use serde::Serialize; use ts_rs::TS; // Types for the TODO tool arguments matching codex-vscode/todo-mcp/src/main.rs #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "snake_case")] pub enum StepStatus { Pending, InProgress, Completed, } #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(deny_unknown_fields)] pub struct PlanItemArg { pub step: String, pub status: StepStatus, } #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(deny_unknown_fields)] pub struct UpdatePlanArgs { #[serde(default)] pub explanation: Option, pub plan: Vec, }