Spaces:
Sleeping
Sleeping
feat: update to pass the validation checks
Browse files- pyproject.toml +16 -0
- server/app.py +35 -1
- uv.lock +0 -0
pyproject.toml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[project]
|
| 2 |
+
name = "sre-incident-response"
|
| 3 |
+
version = "1.0.0"
|
| 4 |
+
description = "SRE Incident Response OpenEnv environment"
|
| 5 |
+
requires-python = ">=3.11"
|
| 6 |
+
dependencies = [
|
| 7 |
+
"fastapi>=0.104.0",
|
| 8 |
+
"uvicorn>=0.24.0",
|
| 9 |
+
"pydantic>=2.0.0",
|
| 10 |
+
"openai>=1.0.0",
|
| 11 |
+
"pyyaml>=6.0",
|
| 12 |
+
"openenv-core>=0.2.0",
|
| 13 |
+
]
|
| 14 |
+
|
| 15 |
+
[project.scripts]
|
| 16 |
+
server = "server.app:main"
|
server/app.py
CHANGED
|
@@ -57,6 +57,40 @@ class TaskInfo(BaseModel):
|
|
| 57 |
description: str
|
| 58 |
|
| 59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
# ββ Endpoints ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 61 |
|
| 62 |
@app.get("/")
|
|
@@ -64,7 +98,7 @@ def root():
|
|
| 64 |
return {
|
| 65 |
"name": "SRE Incident Response Environment",
|
| 66 |
"version": "1.0.0",
|
| 67 |
-
"endpoints": ["/reset", "/step", "/state/{session_id}", "/tasks"],
|
| 68 |
}
|
| 69 |
|
| 70 |
|
|
|
|
| 57 |
description: str
|
| 58 |
|
| 59 |
|
| 60 |
+
# ββ OpenEnv spec endpoints βββββββββββββββββββββββββββββββββββββββββββββ
|
| 61 |
+
|
| 62 |
+
@app.get("/health")
|
| 63 |
+
def health():
|
| 64 |
+
return {"status": "healthy"}
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
@app.get("/metadata")
|
| 68 |
+
def metadata():
|
| 69 |
+
return {
|
| 70 |
+
"name": "sre-incident-response",
|
| 71 |
+
"description": "SRE Incident Response environment β train AI agents to diagnose and fix production incidents",
|
| 72 |
+
"version": "1.0.0",
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
@app.get("/schema")
|
| 77 |
+
def schema():
|
| 78 |
+
return {
|
| 79 |
+
"action": Action.model_json_schema(),
|
| 80 |
+
"observation": Observation.model_json_schema(),
|
| 81 |
+
"state": State.model_json_schema(),
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
@app.get("/state")
|
| 86 |
+
def state_no_session():
|
| 87 |
+
"""Return state for the most recent session, or empty state if none."""
|
| 88 |
+
if env.sessions:
|
| 89 |
+
last_sid = list(env.sessions.keys())[-1]
|
| 90 |
+
return env.state(last_sid)
|
| 91 |
+
return State()
|
| 92 |
+
|
| 93 |
+
|
| 94 |
# ββ Endpoints ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 95 |
|
| 96 |
@app.get("/")
|
|
|
|
| 98 |
return {
|
| 99 |
"name": "SRE Incident Response Environment",
|
| 100 |
"version": "1.0.0",
|
| 101 |
+
"endpoints": ["/reset", "/step", "/state/{session_id}", "/tasks", "/health", "/metadata", "/schema"],
|
| 102 |
}
|
| 103 |
|
| 104 |
|
uv.lock
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|