incidentops / models.py
Bot
Add root client.py, models.py, __init__.py and outputs/ for openenv push compliance
89a3c91
Raw History Blame Contribute Delete
1.77 kB
"""
Data models for the Incidentops Environment.
Re-exports the typed Pydantic models used by the OpenEnv client interface.
"""
from openenv.core.env_server.types import Action, Observation
from pydantic import Field
from typing import Dict, Any, List, Literal, Optional
class IncidentopsAction(Action):
"""Action for the IncidentOps environment — an SRE action to take."""
action_type: str = Field(..., description="Type of SRE action (e.g. triage_alert, query_logs, hypothesize, apply_fix)")
parameters: Dict[str, Any] = Field(default_factory=dict, description="Parameters specific to the action_type")
class IncidentopsObservation(Observation):
"""Observation from the IncidentOps environment — current incident state."""
step: int = Field(default=0, description="Current step number")
alerts: List[Dict[str, Any]] = Field(default_factory=list, description="Active production alerts")
recent_logs: List[Dict[str, Any]] = Field(default_factory=list, description="Recent log entries")
metrics: Dict[str, Any] = Field(default_factory=dict, description="Time-series metrics")
deploy_history: List[Dict[str, Any]] = Field(default_factory=list, description="Recent deployment events")
incident_timeline: List[str] = Field(default_factory=list, description="Agent's action history")
resolution_status: str = Field(default="open", description="Current incident status")
runbook_draft: str = Field(default="", description="Accumulated runbook text")
comms_draft: str = Field(default="", description="Accumulated customer comms text")
last_action_result: str = Field(default="", description="Feedback from last action")
done: bool = Field(default=False, description="Whether the episode is finished")