> This page is for version 0.3.0.
> For other versions, use one of these documentation indexes:
> - Main (default): https://docs.nvidia.com/nemo/gym/main/llms.txt
> - 0.7.0: https://docs.nvidia.com/nemo/gym/v0.7.0/llms.txt
> - 0.6.0: https://docs.nvidia.com/nemo/gym/v0.6.0/llms.txt
> - 0.5.1: https://docs.nvidia.com/nemo/gym/v0.5.1/llms.txt
> - 0.5.0: https://docs.nvidia.com/nemo/gym/v0.5.0/llms.txt
> - 0.4.0: https://docs.nvidia.com/nemo/gym/v0.4.0/llms.txt
> - 0.3.0: https://docs.nvidia.com/nemo/gym/v0.3.0/llms.txt
> - 0.2.1: https://docs.nvidia.com/nemo/gym/v0.2.1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.

# nemo_gym.web.actions

Safe parsing and normalization for visual-browser computer-use actions.

## Module Contents

### Classes

| Name                                                         | Description                                                         |
| ------------------------------------------------------------ | ------------------------------------------------------------------- |
| [`ActionParseError`](#nemo_gym-web-actions-ActionParseError) | Raised when a policy adapter emits an unsafe or unsupported action. |

### Functions

| Name                                                                                         | Description                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [`_nano_omni_action`](#nemo_gym-web-actions-_nano_omni_action)                               | -                                                                          |
| [`_native_coordinate`](#nemo_gym-web-actions-_native_coordinate)                             | -                                                                          |
| [`_native_number`](#nemo_gym-web-actions-_native_number)                                     | -                                                                          |
| [`_requested_wait_seconds`](#nemo_gym-web-actions-_requested_wait_seconds)                   | -                                                                          |
| [`_validate_native_computer_action`](#nemo_gym-web-actions-_validate_native_computer_action) | -                                                                          |
| [`_validate_native_tool_arguments`](#nemo_gym-web-actions-_validate_native_tool_arguments)   | -                                                                          |
| [`parse_nano_omni_tool_calls`](#nemo_gym-web-actions-parse_nano_omni_tool_calls)             | Validate parser-produced Nano Omni calls without repairing their contents. |

### Data

[`CLICK_ACTIONS`](#nemo_gym-web-actions-CLICK_ACTIONS)

[`COMPUTER_ACTIONS`](#nemo_gym-web-actions-COMPUTER_ACTIONS)

[`MAX_SCROLL_AMOUNT`](#nemo_gym-web-actions-MAX_SCROLL_AMOUNT)

[`NANO_OMNI_TOOL_NAMES`](#nemo_gym-web-actions-NANO_OMNI_TOOL_NAMES)

### API

```python
class nemo_gym.web.actions.ActionParseError(
    message: str,
    validated_prefix: nemo_gym.web.models.WebAction | None = None,
    reason: str = 'invalid_tool_arguments'
)
```

**Bases:** `ValueError`

Raised when a policy adapter emits an unsafe or unsupported action.

```python
nemo_gym.web.actions._nano_omni_action(
    calls: list[dict[str, typing.Any]],
    parse_records: list[dict[str, typing.Any]]
) -> nemo_gym.web.models.WebAction
```

```python
nemo_gym.web.actions._native_coordinate(
    value: typing.Any,
    field: str
) -> None
```

```python
nemo_gym.web.actions._native_number(
    value: typing.Any,
    field: str,
    minimum: float,
    maximum: float
) -> float
```

```python
nemo_gym.web.actions._requested_wait_seconds(
    calls: list[dict[str, typing.Any]]
) -> float
```

```python
nemo_gym.web.actions._validate_native_computer_action(
    action: typing.Any,
    index: int,
    limits: nemo_gym.web.models.WebActionLimits
) -> dict[str, typing.Any]
```

```python
nemo_gym.web.actions._validate_native_tool_arguments(
    name: str,
    arguments: dict[str, typing.Any],
    max_computer_actions: int,
    limits: nemo_gym.web.models.WebActionLimits
) -> tuple[dict[str, typing.Any], int]
```

```python
nemo_gym.web.actions.parse_nano_omni_tool_calls(
    items: list[typing.Any],
    max_calls: int | None = 8,
    max_computer_actions: int = 20,
    limits: nemo_gym.web.models.WebActionLimits | None = None
) -> nemo_gym.web.models.WebAction
```

Validate parser-produced Nano Omni calls without repairing their contents.

```python
nemo_gym.web.actions.CLICK_ACTIONS = frozenset({'double_click', 'left_click', 'middle_click', 'right_click', 'triple_...
```

```python
nemo_gym.web.actions.COMPUTER_ACTIONS = frozenset({'double_click', 'key_down', 'key_press', 'key_up', 'left_click', 'lef...
```

```python
nemo_gym.web.actions.MAX_SCROLL_AMOUNT = 50
```

```python
nemo_gym.web.actions.NANO_OMNI_TOOL_NAMES = frozenset({'computer', 'navigate', 'tabs_create', 'tabs_focus', 'terminate'})
```