File size: 1,160 Bytes
30c52ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Pydantic Action and Observation models for DiskPanic."""
from typing import Optional
from pydantic import Field

from openenv.core import Action, Observation


class DiskPanicAction(Action):
    """An SRE agent's action: a single bash-like command."""

    command: str = Field(
        ...,
        description=(
            "A bash-like command. Supported: ls, df, du, cat, rm, find, "
            "sha256sum, systemctl (status/start/is-active), and "
            "'echo \"content\" > /path/to/file' for writing files."
        ),
    )


class DiskPanicObservation(Observation):
    """State of the simulated server after the last command."""

    stdout: str = Field(default="", description="Output of the last command")
    df_output: str = Field(default="", description="Current simulated `df -h /`")
    service_status: str = Field(default="unknown", description="State of app.service")
    task_id: str = Field(default="easy", description="Current task id (easy/medium/hard)")
    step: int = Field(default=0, description="Step count in current episode")
    last_error: Optional[str] = Field(default=None, description="Last command error, if any")