"""DevOps Arena data models — Pydantic v2 for OpenEnv compatibility.""" from pydantic import BaseModel, Field from typing import Optional class DevAction(BaseModel): tool: str = "" parameters: dict = Field(default_factory=dict) class DevObservation(BaseModel): success: bool = False output: str = "" error: Optional[str] = None reward: float = 0.0 done: bool = False step_count: int = 0 task_description: str = "" tools_available: list = Field(default_factory=lambda: [ "read_issue", "list_files", "file_read", "file_write", "shell", "search", "submit" ]) class EpisodeState(BaseModel): task_id: str = "" task_description: str = "" repo_name: str = "" issue_title: str = "" files_modified: list = Field(default_factory=list) commands_run: list = Field(default_factory=list) step_count: int = 0 max_steps: int = 20 completed: bool = False verdict: dict = Field(default_factory=dict)