# `Rho.Dyn.Source`
[🔗](https://github.com/GenericJam/rho/blob/v0.1.0/lib/rho/dyn/source.ex#L1)

The Dyn layer as a `Rho.ToolRegistry.Source`: the current generation's
tools, read from the Keeper's registry table on every call, so an
activation or a revert (by hand, or automatic) changes the tools the
loop offers from its next model call. Every tool call's task is handed
to the Keeper first (`c:Rho.ToolRegistry.Source.watch/2`), so a Dyn tool's crash, or the kill at
its timeout, counts against its generation.

`Rho.Supervisor` adds it to the registry's sources when Dyn is enabled
(`Rho.Dyn.Config`); a host starting the registry itself lists it in
`:tool_sources`. It reads the app's Keeper (`Rho.Dyn.Keeper`).

# `core_tools`

```elixir
@spec core_tools() :: [module()]
```

The core tools that edit and propose the Dyn layer (`dyn_*`), which a
host offers with it. There is deliberately none that activates or
reverts: those take the human's approval.

---

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