# `PromptRunner.Runtime`
[🔗](https://github.com/nshkrdotcom/prompt_runner_sdk/blob/v0.12.1/lib/prompt_runner/runtime.ex#L1)

Packet-local runtime state persisted under `.prompt_runner/state.json`.

# `state`

```elixir
@type state() :: map()
```

# `get_attempts`

```elixir
@spec get_attempts(String.t() | PromptRunner.Plan.t(), String.t()) :: {:ok, [map()]}
```

# `get_failures`

```elixir
@spec get_failures(String.t() | PromptRunner.Plan.t(), String.t()) :: {:ok, [map()]}
```

# `get_status`

```elixir
@spec get_status(String.t() | PromptRunner.Plan.t()) :: {:ok, state()}
```

# `mark_status`

```elixir
@spec mark_status(String.t() | PromptRunner.Plan.t(), String.t(), String.t(), map()) ::
  :ok
```

# `prompt_state`

```elixir
@spec prompt_state(String.t() | PromptRunner.Plan.t(), String.t()) :: {:ok, map()}
```

# `record_attempt_result`

```elixir
@spec record_attempt_result(
  String.t() | PromptRunner.Plan.t(),
  String.t(),
  integer(),
  map()
) :: :ok
```

# `record_attempt_started`

```elixir
@spec record_attempt_started(
  String.t() | PromptRunner.Plan.t(),
  map(),
  integer(),
  String.t()
) :: :ok
```

# `state_path`

```elixir
@spec state_path(String.t() | PromptRunner.Plan.t()) :: String.t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
