name: DevOpsEnv version: "1.0.0" description: > An OpenEnv-compliant Linux DevOps and SRE troubleshooting environment. Agents act as a junior SRE to diagnose and fix broken simulated server states using bash commands and file edits. domain: software_engineering tags: - openenv - devops - sre - troubleshooting - linux license: MIT author: SolvorLabs # ------------------------------------------------- # Environment interface # ------------------------------------------------- interface: reset: method: POST path: /reset request: task_id: string # task1 | task2 | task3 response: Observation step: method: POST path: /step request: episode_id: string action: Action response: StepResult state: method: GET path: /state params: episode_id: string response: State tasks: method: GET path: /tasks response: List[TaskInfo] grader: method: POST path: /grader request: episode_id: string response: GraderResponse health: method: GET path: /health # ------------------------------------------------- # Typed models (Matches your models.py) # ------------------------------------------------- models: Observation: task_id: string task_description: string episode_id: string system_state: SystemState thread_history: list[dict] available_actions: list[string] step_number: integer max_steps: integer hint: string | null SystemState: task_id: string available_commands: list[string] filesystem_snapshot: string running_processes: list[dict] service_status: dict[string, string] logs: string http_ports_open: list[integer] docker_containers: list[dict] cpu_usage: float memory_usage_mb: integer Action: action_type: string # bash_cmd | file_edit | submit command: string | null file_path: string | null file_content: string | null summary: string | null Reward: step_reward: float total_reward: float explanation: string StepResult: observation: Observation reward: Reward done: boolean info: dict State: task_id: string episode_id: string step_number: integer max_steps: integer done: boolean total_reward: float history: list[dict] final_score: float | null GraderResponse: episode_id: string task_id: string score: float # 0.0 – 1.0 breakdown: dict[string, float] feedback: string # ------------------------------------------------- # Tasks (Matches your data.py) # ------------------------------------------------- tasks: task1: name: "Nginx Service Recovery" difficulty: easy max_steps: 10 description: > The Nginx web server has crashed. The agent must restart the service and ensure port 80 is returning an HTTP 200 OK status. task2: name: "Docker Compose Fix" difficulty: medium max_steps: 15 description: > A Docker container is misconfigured with the wrong port mapping. The agent must edit docker-compose.yml to fix the port and spin the container up. task3: name: "API Memory Leak" difficulty: hard max_steps: 20 description: > A Python mock API is experiencing a memory leak. The agent must diagnose the running processes, kill the faulty process, patch the python file, and restart. # ------------------------------------------------- # Deployment # ------------------------------------------------- deployment: framework: FastAPI python: ">=3.11" port: 7860 dockerfile: Dockerfile huggingface_space: true space_sdk: docker