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

Recovery decisions for Prompt Runner attempts.

# `config`

```elixir
@spec config(PromptRunner.Plan.t(), map() | nil) :: map()
```

# `final_action`

```elixir
@spec final_action(
  PromptRunner.Plan.t(),
  map(),
  atom(),
  :ok | {:error, term()},
  map()
) ::
  {:complete, boolean(), map()}
  | {:provider_failed, term(), map()}
  | {:verification_failed, term(), map()}
  | {:retry, term(), map(), non_neg_integer()}
  | {:repair, map(), term(), map()}
```

# `max_steers`

```elixir
@spec max_steers(PromptRunner.Plan.t(), map() | nil) :: non_neg_integer()
```

How many steers this prompt may take before further ones are refused.

# `resume_allowed?`

```elixir
@spec resume_allowed?(
  PromptRunner.Plan.t(),
  map(),
  :ok | {:error, term()},
  non_neg_integer()
) ::
  boolean()
```

---

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