# `Wardrik.Answers`

Follows the run that answers a message, through the agent's log.

It subscribes before sending the message, so it misses nothing.

# `follow`

```elixir
@spec follow(Wardrik.Scope.t(), String.t() | struct(), term(), keyword()) ::
  Enumerable.t()
```

Sends `input` to `agent`, and returns a stream of its answer.

The stream yields `{:text, chunk}` as text arrives, then one of:

  * `{:done, %Wardrik.Reply{}}` - the run completed.
  * `{:waiting, interrupts}` - the run waits on a person.
  * `{:failed, why}` - the run failed, was cancelled, or timed out, and why, for people.

## Options

  * `:timeout` - milliseconds to wait for each event. 10 minutes unless set.

---

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