pipeline-env / models.py
Pratham
initial commit: PipelineEnv OpenEnv hackathon submission
9682da5
Raw
History Blame Contribute Delete
1.82 kB
# models.py β€” Typed models for PipelineEnv
from openenv.core.env_server import Action, Observation, State
from pydantic import BaseModel, Field
from typing import List, Optional
from enum import Enum
# ─── ACTION ──────────────────────────────────────────
class RepairAction(str, Enum):
fix_test = "fix_test"
set_env_var = "set_env_var"
fix_docker_config = "fix_docker_config"
fix_yaml_config = "fix_yaml_config"
retry_stage = "retry_stage"
rollback_commit = "rollback_commit"
add_dependency = "add_dependency"
no_op = "no_op"
class PipelineAction(Action):
action: RepairAction
target: Optional[str] = Field(None, description="Stage or component to act on")
value: Optional[str] = Field(None, description="Value for set_env_var or add_dependency")
# ─── OBSERVATION ─────────────────────────────────────
class PipelineStage(BaseModel):
name: str
status: str
error: Optional[str] = None
runtime: float = 0.0
class PipelineObservation(Observation):
pipeline_name: str
stages: List[dict]
failing_count: int
health_score: float
error_messages: List[str]
available_actions: List[str]
task_description: str
step_number: int
max_steps: int
# ─── STATE ───────────────────────────────────────────
class PipelineState(State):
task_id: str
episode_id: str
step_count: int
health_score: float
scenario_name: str
is_done: bool