# `Wardrik.Declarations`

Agents defined outside the API, such as agent files a daemon reads.

    Wardrik.start_link(name: MyApp.AgentRuntime, declarations: {MyApp.AgentFiles, dir: "agents"})

The API refuses to forget a declared agent, since its declaration would bring it back.
`Wardrik.Deployment.reload/2` reloads declarations before it updates agents to their definitions.

# `declared?`

```elixir
@callback declared?(config :: term(), agent_id :: String.t()) :: boolean()
```

Returns whether `agent_id` is declared. The API won't forget a declared agent.

# `reload`

```elixir
@callback reload(config :: term()) :: [String.t()]
```

Reads the declarations again and defines their agents. Returns a line for each failure.

# `declared?`

```elixir
@spec declared?(Wardrik.t(), String.t()) :: boolean()
```

Returns whether `agent_id` is declared.

# `reload`

```elixir
@spec reload(Wardrik.t()) :: [String.t()]
```

Reloads the declarations, if any. Returns a line for each agent that couldn't be defined.

---

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