# 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 Doc Quality Env Environment. A real-world environment for technical documentation quality assessment and enhancement. Agents evaluate documentation for clarity, completeness, and correctness. """ from typing import List, Literal from openenv.core.env_server.types import Action, Observation from pydantic import Field class DocQualityAction(Action): """Action for doc quality assessment - agents identify issues or suggest improvements.""" action_type: Literal["identify_issue", "suggest_improvement", "rate_quality"] = Field( ..., description="Type of action: identify an issue, suggest an improvement, or provide final quality rating" ) content: str = Field(..., description="The identified issue, improvement suggestion, or reasoning for quality rating") issue_category: str = Field( default="", description="Category of issue: 'clarity', 'completeness', 'accuracy', 'structure', 'consistency'" ) class DocQualityObservation(Observation): """Observation from doc quality assessment environment.""" task_name: str = Field(default="", description="Name of the current task") task_difficulty: Literal["easy", "medium", "hard"] = Field(default="easy", description="Task difficulty level") current_doc: str = Field(default="", description="The documentation being evaluated") doc_section: str = Field(default="", description="The current section being reviewed") issues_identified: List[str] = Field(default=[], description="Issues found so far by the agent") known_issues: List[str] = Field(default=[], description="Known issues in this doc for reference") quality_score: float = Field(default=0.0, description="Current quality assessment score (0.0-1.0)") step_count: int = Field(default=0, description="Number of steps taken so far") max_steps: int = Field(default=10, description="Maximum steps allowed") feedback: str = Field(default="", description="Feedback on last action")