| """ |
| Data models for the Trace Environment. |
| |
| The Trace environment provides Gmail financial transaction intelligence. |
| It retrieves emails, parses PDF/HTML attachments, and builds summaries. |
| """ |
|
|
| from openenv.core.env_server.types import Action, Observation |
| from pydantic import Field |
| from typing import Any, Optional |
|
|
|
|
| class TraceAction(Action): |
| """Action for the Trace environment — agent sends a tool command.""" |
|
|
| action_type: str = Field( |
| ..., description="PLAN | RETRIEVE | MEMORIZE | VERIFY | ANSWER | EXPORT" |
| ) |
| content: str = Field(..., description="The payload (query, answer, claim…)") |
| source: Optional[str] = Field( |
| None, description="Used with RETRIEVE: 'gmail' | 'drive' | 'image'" |
| ) |
| metadata: dict[str, Any] = Field(default_factory=dict) |
|
|
|
|
| class TraceObservation(Observation): |
| """Observation from the Trace environment — environment returns state.""" |
|
|
| episode_id: str = Field(default="", description="Unique ID for the episode") |
| step: int = Field(default=0, description="Current step count") |
| instruction: str = Field(default="", description="The original goal") |
| available_sources: list[str] = Field( |
| default_factory=list, description="Available data sources" |
| ) |
| context: str = Field(default="", description="Result of the last action") |
| memory_summary: str = Field( |
| default="", description="Compressed episodic memory" |
| ) |
| world_state: dict[str, Any] = Field( |
| default_factory=dict, description="Snapshot of the Semantic World Model" |
| ) |
| metadata: dict[str, Any] = Field( |
| default_factory=dict, description="Metadata from tools/actions" |
| ) |
|
|