CODECRACK / models.py
jmadhan's picture
Initial submission: Code Review Assistant OpenEnv environment
5cdae37
Raw
History Blame Contribute Delete
1.82 kB
from pydantic import BaseModel, Field
from typing import List, Dict, Optional, Literal
class Observation(BaseModel):
"""Agent's view of the code review environment."""
code: str = Field(description="Code snippet under review")
task_description: str = Field(description="What the agent should review for")
review_history: List[Dict] = Field(default_factory=list, description="Previous review actions")
step_count: int = Field(description="Current step number")
remaining_steps: int = Field(description="Steps left before timeout")
class Action(BaseModel):
"""Actions the agent can take during code review."""
action_type: Literal["identify_issue", "suggest_fix", "approve", "request_changes"] = Field(
description="Type of review action"
)
issue_type: Optional[Literal["bug", "security", "style", "logic", "performance"]] = Field(
default=None,
description="Category of issue (required for identify_issue)"
)
line_number: Optional[int] = Field(
default=None,
description="Line number of issue (required for identify_issue)"
)
description: Optional[str] = Field(
default=None,
description="Description of the issue"
)
severity: Optional[Literal["critical", "high", "medium", "low"]] = Field(
default=None,
description="Issue severity"
)
suggested_fix: Optional[str] = Field(
default=None,
description="Code fix suggestion (required for suggest_fix)"
)
class Reward(BaseModel):
"""Reward signal for the agent."""
value: float = Field(description="Total reward for this step")
breakdown: Dict[str, float] = Field(description="Reward components")
final_score: float = Field(default=0.0, description="Task completion score (0.0-1.0)")