File size: 1,144 Bytes
98977eb
19b940c
98977eb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ea0048
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
import gymnasium as gym
from envhub.core.base_env import EnvHubEnv
from envhub.registry import register_env

# MiniWoB imports
try:
    import miniwob
except ImportError:
    raise ImportError("Please install MiniWoB: `pip install miniwob`")

def load_env(task: str = "click-button", max_episode_steps: int = 50, **kwargs):
    """
    Loader for a MiniWoB browser interaction environment.

    Args:
        task (str): MiniWoB task name (e.g., "click-button", "book-flight", "choose-date").
        max_episode_steps (int): maximum number of steps per episode.
        kwargs: additional arguments passed to gym.make()

    Returns:
        EnvHubEnv: unified environment wrapper.
    """

    # compose the MiniWoB env ID (e.g. "miniwob/click-button-v1")
    env_id = f"miniwob/{task}-v1"

    # Make the environment
    env = gym.make(env_id, max_episode_steps=max_episode_steps, **kwargs)

    # Wrap it as an EnvHubEnv
    return EnvHubEnv(
        env=env,
        name=f"browser/{task}",
        observation_space=env.observation_space,
        action_space=env.action_space,
    )
register_env("browser/miniwob_click_button", load_env)