File size: 1,497 Bytes
06ca7e4
 
06b0d69
 
 
4fb7a60
 
 
 
 
4423d13
06b0d69
 
 
 
 
 
 
06ca7e4
06b0d69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3424779
06b0d69
 
 
 
431d2c4
06b0d69
3424779
4423d13
3424779
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from __future__ import annotations

try:
    from openenv.core.env_server.types import Action, Observation, State
except ImportError:
    try:
        from openenv.core.models import Action, Observation, State
    except ImportError:
        from openenv.core.env_server import Action, Observation, State

from typing import Set
from pydantic import Field


class APIAction(Action):
    method: str = Field(default="GET")
    url: str = Field(default="/mock_api/users")
    headers: dict = Field(default_factory=dict)
    body: dict = Field(default_factory=dict)
    query_params: dict = Field(default_factory=dict)


class APIObservation(Observation):
    task_id: str = Field(default="easy")
    task_description: str = Field(default="")
    broken_request: dict = Field(default_factory=dict)
    last_status_code: int = Field(default=0)
    last_response_headers: dict = Field(default_factory=dict)
    last_response_body: str = Field(default="")
    step_feedback: str = Field(default="")
    current_score: float = Field(default=0.0)
    attempt: int = Field(default=0)
    reward: float = Field(default=0.0)
    done: bool = Field(default=False)
    current_step_index: int = Field(default=0)


class APIState(State):
    task_id: str = Field(default="easy")
    max_steps: int = Field(default=10)
    solved: bool = Field(default=False)
    current_step_index: int = Field(default=0)
    visited_endpoints: Set[str] = Field(default_factory=set)
    curriculum_level: int = Field(default=0)