| """Pydantic observation model for ForgeEnv.""" | |
| from __future__ import annotations | |
| from typing import Any, Optional | |
| from pydantic import Field | |
| from openenv.core import Observation | |
| class ForgeObservation(Observation): | |
| """What the agent (or the trainer's rollout function) sees at each step. | |
| Inherits `done`, `reward`, `metadata` from the OpenEnv `Observation` base. | |
| """ | |
| current_phase: str = Field( | |
| ..., description="One of 'drift_gen', 'repair', 'verify', 'done'" | |
| ) | |
| task_id: str = "" | |
| task_description: str = "" | |
| target_category: str = "" | |
| script_content: str = Field(default="", description="Current state of the script") | |
| error_trace: Optional[str] = None | |
| library_versions: dict[str, str] = Field(default_factory=dict) | |
| reward_breakdown: dict[str, Any] = Field(default_factory=dict) | |
| held_out_breakdown: dict[str, float] = Field(default_factory=dict) | |
| episode_step: int = 0 | |
| info: dict[str, Any] = Field(default_factory=dict) | |