openenv-codereview / client.py
Karthikrv's picture
Initial commit
922c4d1
Raw
History Blame Contribute Delete
1.84 kB
"""
IncidentOps Environment Client.
Provides the client for connecting to a running IncidentOps environment server.
IncidentOpsEnv extends EnvClient with type-safe action/observation handling.
Example (sync):
with IncidentOpsEnv(base_url="http://localhost:8000").sync() as env:
result = env.reset()
result = env.step(IncidentAction(command="alerts"))
Example (async):
async with IncidentOpsEnv(base_url="https://your-space.hf.space") as env:
result = await env.reset()
result = await env.step(IncidentAction(command="status"))
Example (from Docker):
env = IncidentOpsEnv.from_docker_image("incident-ops-env:latest")
try:
env.reset()
env.step(IncidentAction(command="alerts"))
finally:
env.close()
"""
from openenv.core.env_client import EnvClient
from .models import IncidentAction, IncidentObservation
class IncidentOpsEnv(EnvClient):
"""
Client for the IncidentOps SRE Incident Response Environment.
Connects to a running IncidentOps server and provides type-safe wrappers
around the standard OpenEnv reset() / step() / state() interface.
The agent interacts using text commands that mirror a real ops terminal.
See IncidentAction and IncidentObservation in models.py for the full
action/observation schema.
Attributes:
base_url: URL of the running environment server.
Usage:
with IncidentOpsEnv(base_url="http://localhost:8000").sync() as env:
result = env.reset(task_name="service-restart")
while not result.observation.done:
action = IncidentAction(command="alerts")
result = env.step(action)
print(f"Final score: {result.reward:.3f}")
"""
action_class = IncidentAction
observation_class = IncidentObservation