codex_protocol/
plan_tool.rs1use schemars::JsonSchema;
2use serde::Deserialize;
3use serde::Serialize;
4use ts_rs::TS;
5
6#[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}