| """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) |
|
|