File size: 990 Bytes
5aeebf2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""DevOps Arena data models — Pydantic v2 for OpenEnv compatibility."""
from pydantic import BaseModel, Field
from typing import Optional


class DevAction(BaseModel):
    tool: str = ""
    parameters: dict = Field(default_factory=dict)


class DevObservation(BaseModel):
    success: bool = False
    output: str = ""
    error: Optional[str] = None
    reward: float = 0.0
    done: bool = False
    step_count: int = 0
    task_description: str = ""
    tools_available: list = Field(default_factory=lambda: [
        "read_issue", "list_files", "file_read", "file_write",
        "shell", "search", "submit"
    ])


class EpisodeState(BaseModel):
    task_id: str = ""
    task_description: str = ""
    repo_name: str = ""
    issue_title: str = ""
    files_modified: list = Field(default_factory=list)
    commands_run: list = Field(default_factory=list)
    step_count: int = 0
    max_steps: int = 20
    completed: bool = False
    verdict: dict = Field(default_factory=dict)