from pydantic import Field from typing import Optional, List from openenv.core.env_server import Action, Observation class MyEnvV4Observation(Observation): """What the Agent sees.""" sender: str subject: str body: str headers: List[str] echoed_message: str = "" # Required by sample inference script contract class MyEnvV4Action(Action): """What the Agent chooses.""" message: str = Field(..., description="Action string: 'INBOX', 'SPAM', or 'QUARANTINE'")