# `Sagents.ProcessSupervisor`

Abstraction over dynamic supervisor implementations.

Supports two backends:

- `:local` — Elixir's `DynamicSupervisor` (single-node)
- `:horde` — `Horde.DynamicSupervisor` (distributed cluster)

## Configuration

    # Single-node (default — no config needed)
    config :sagents, :distribution, :local

    # Distributed cluster
    config :sagents, :distribution, :horde

    # Horde options (optional)
    config :sagents, :horde,
      members: :auto,
      distribution_strategy: Horde.UniformDistribution

# `agents_supervisor_child_spec`

Returns the child spec for the agents dynamic supervisor.

Used in `Sagents.Application` supervision tree.

# `count_children`

Count children of the specified supervisor.

# `distribution_type`

Returns the configured distribution type (`:local` or `:horde`).

# `filesystem_supervisor_child_spec`

Returns the child spec for the filesystem dynamic supervisor.

Used in `Sagents.Application` supervision tree.

# `start_child`

Start a child process under the specified supervisor.

# `supervisor_module`

Returns the supervisor module (`DynamicSupervisor` or `Horde.DynamicSupervisor`).

# `terminate_child`

Terminate a child process.

# `which_children`

List all children of the specified supervisor.

---

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