Spaces:
Sleeping
Sleeping
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| """ | |
| Data models for the FitScript Environment. | |
| FitScript simulates a real-world AI fitness prescription task: | |
| generating, evaluating, and refining personalized workout plans. | |
| """ | |
| from openenv.core.env_server.types import Action, Observation | |
| from pydantic import Field | |
| from typing import Optional, Dict, Any | |
| class FitscriptAction(Action): | |
| """Action for the FitScript environment --- fitness plan generation/modification.""" | |
| action_type: str = Field( | |
| ..., | |
| description="One of: 'generate_plan' | 'modify_plan' | 'explain_exercise'" | |
| ) | |
| plan: str = Field( | |
| default="", | |
| description="JSON string of structured workout plan (exercises, sets, reps, rest)" | |
| ) | |
| reasoning: Optional[str] = Field( | |
| default=None, | |
| description="Agent justification for the plan choices" | |
| ) | |
| class FitscriptObservation(Observation): | |
| """Observation from the FitScript environment --- client profile and plan feedback.""" | |
| client_profile: Dict[str, Any] = Field( | |
| default_factory=dict, | |
| description="Client info: age, fitness_level, goal, equipment, injuries, days_per_week" | |
| ) | |
| feedback: str = Field( | |
| default="", | |
| description="Environment feedback on the last submitted plan" | |
| ) | |
| score_breakdown: Dict[str, float] = Field( | |
| default_factory=dict, | |
| description="Partial scores per criterion (safety, completeness, progression)" | |
| ) | |
| task_id: str = Field( | |
| default="", | |
| description="Current task identifier" | |
| ) | |
| step_count: int = Field( | |
| default=0, | |
| description="Current step within the episode" | |
| ) | |
| # done and reward are inherited from the Observation base class |