> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akhara.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Company name is Akhara AI (never Rubric AI). Keep lowercase rubric/rubrics only when meaning grading criteria.
> Expert Review (docs path talent/) is enterprise BYO experts for audit and review: invite customer specialists; do not pitch Akhara recruiting or a public expert career portal. RLHF and domain writing are secondary work types.
> Prefer concrete API examples against public hosts: Environments eval API https://agi.akhara.ai, Control plane PDP https://api.akhara.dev, Evaluation https://app.akhara.ai / https://api.akhara.ai, Expert Review portal https://talent.akhara.ai.
> Do not invent a public hostname for private orchestrators or env API internals.
> Do not confuse control-plane latches with Environments confirmation latches.
> Environments SDK/API examples: curl against https://agi.akhara.ai. Evaluation SDK: from akhara import Akhara and AKHARA_API_KEY.
> Start with /llms.txt for the docs index and OpenAPI links; fetch individual pages as .md exports.

# Actions

> Action vocabulary the agent uses to drive the environment app.

Agents return one action per step. The wrapper/orchestrator translate into executor device operations.

## Real-app (Android) surface

Primary production actions:

| Action                    | Params                           | Notes                                                                                                                     |
| ------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `click`                   | `point_2d: [x, y]`               | Tap in screenshot coordinates                                                                                             |
| `type`                    | `text`                           | Type into focused field                                                                                                   |
| `drag`                    | start/end points (impl-specific) | Scroll / swipe gestures                                                                                                   |
| `press_back`              | -                                | Android back                                                                                                              |
| `start_app`               | -                                | Foreground app only (not a full reset)                                                                                    |
| `needs_confirmation`      | message / content                | Required before irreversible actions when gated. See [Confirmation latches](/environments/mechanics/confirmation-latches) |
| `finished`                | optional `text`                  | Agent claims success → terminal                                                                                           |
| `failed_to_complete_task` | optional reason                  | Structured give-up                                                                                                        |

Example:

```json theme={null}
{
  "action": "click",
  "params": { "point_2d": [310, 125] }
}
```

## Canonical schema types

Capabilities also advertise schema types used in mock / element-id mode:

`tap`, `type_text`, `scroll`, `select`, `copy`, `paste`, `back`, `finish`

with optional `target.element_id` (e.g. `home.search.input`).

```json theme={null}
{
  "episode_id": "ep_demo_001",
  "step_id": 1,
  "type": "type_text",
  "target": { "element_id": "home.search.input" },
  "params": { "text": "hoodie" }
}
```

## Reset vs `start_app`

| Call                                                     | Semantics                                                |
| -------------------------------------------------------- | -------------------------------------------------------- |
| `POST /v1/env/reset` / worker run start / executor reset | Full episode reset: force-stop, relaunch, reseed session |
| `start_app` step action                                  | Foreground only: no DB wipe, no fixture reseed           |

## Termination

Episodes end when:

* Agent emits `finished` / `failed_to_complete_task` (or schema `finish`)
* `max_steps` hit → truncated (`reward` often `0` or fail depending on verifiers)
* Infra error → treat as infrastructure failure, not model skill

Terminal UI success for checkout is usually `screen_id=ORDER_CONFIRMATION` **plus** verifier PASS. UI alone is not enough.
