# `WardrikDaemon.Running`

Runs the daemon once its store is up. `WardrikDaemon.Server` starts it.

It reads `config.yaml` and `policies/`, filling in each `${NAME}` the environment doesn't set from
the vault. Then it starts, in order:

  1. `WardrikBrave`, for `web_search`.
  2. Wardrik.
  3. The HTTP API, as `Wardrik.HTTP`.
  4. A task that defines the agents in `agents/`, writes the `wardrik` command's token, and
     emits `[:wardrik_daemon, :started]`.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `sealed`

```elixir
@spec sealed(WardrikStore.t(), [String.t()]) :: WardrikDaemon.Config.vault()
```

Returns a `t:WardrikDaemon.Config.vault/0` that reads the deployment's secrets from `store` with `keys`.

# `start_link`

```elixir
@spec start_link(keyword()) :: Supervisor.on_start()
```

Starts it, with the options `WardrikDaemon.Server` passes.

---

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