Source code for ralph.mcp.artifacts.plan._plan_step
from __future__ import annotations
from typing import Literal
from pydantic import ConfigDict, Field
from ralph.mcp.artifacts.plan._step_target import StepTarget
from ralph.pydantic_compat import RalphBaseModel
[docs]
class PlanStep(RalphBaseModel):
model_config = ConfigDict(extra="forbid")
number: int = Field(..., ge=1)
title: str = Field(..., min_length=1)
content: str = Field(..., min_length=1)
step_type: Literal["file_change", "action", "research"] = "file_change"
priority: Literal["critical", "high", "medium", "low"] | None = None
targets: list[StepTarget] = Field(default_factory=list)
location: str | None = None
rationale: str | None = None
depends_on: list[int] = Field(default_factory=list)