codex_protocol/
plan_tool.rs

1use schemars::JsonSchema;
2use serde::Deserialize;
3use serde::Serialize;
4use ts_rs::TS;
5
6// Types for the TODO tool arguments matching codex-vscode/todo-mcp/src/main.rs
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, TS)]
8#[serde(rename_all = "snake_case")]
9pub enum StepStatus {
10    Pending,
11    InProgress,
12    Completed,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, TS)]
16#[serde(deny_unknown_fields)]
17pub struct PlanItemArg {
18    pub step: String,
19    pub status: StepStatus,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, TS)]
23#[serde(deny_unknown_fields)]
24pub struct UpdatePlanArgs {
25    #[serde(default)]
26    pub explanation: Option<String>,
27    pub plan: Vec<PlanItemArg>,
28}