Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from typing import Any | |
| from openenv.core.env_server.types import Action, Observation | |
| from pydantic import Field | |
| class ContainerAction(Action): | |
| """Place the current container into a stack.""" | |
| stack_index: int = Field( | |
| ..., | |
| description="Zero-indexed stack to place the incoming container into", | |
| ge=0, | |
| ) | |
| class ContainerObservation(Observation): | |
| """Observation returned after each step.""" | |
| stack_states: list[list[dict[str, Any]]] = Field( | |
| ..., description="Each stack is a list of {id, priority} dicts (bottom->top)" | |
| ) | |
| current_container: dict[str, Any] | None = Field( | |
| None, description="Container to place now: {id, priority, weight}" | |
| ) | |
| upcoming_retrievals: list[str] = Field( | |
| default_factory=list, | |
| description="IDs of next containers to be retrieved (lookahead)", | |
| ) | |
| rehandle_count: int = Field(0, description="Cumulative rehandles so far") | |
| step: int = Field(0, description="Steps completed") | |
| containers_remaining: int = Field(0) | |
| n_stacks: int = Field(0) | |
| max_height: int = Field(0) | |
| difficulty: str = Field("medium") | |
| last_reward: float = Field(0.0) | |
| score: float = Field( | |
| 0.5, | |
| description="Normalized score strictly in (0.0, 1.0)", | |
| gt=0.0, | |
| lt=1.0, | |
| ) | |
| done: bool = Field(False) | |