# Omni Agent v0.4.0 - Table of Contents

## Pages

- [Changelog](changelog.md)

## Modules

- [Omni.Agent](Omni.Agent.md): **Stateful LLM agents for Elixir** — persistent, branching conversations,
tool approval, steering, and multi-session management.
Built on [Omni](https://github.com/aaronrussell/omni).
- [Omni.Agent.Snapshot](Omni.Agent.Snapshot.md): A consistent view of an `Omni.Agent` at a point in time.
- [Omni.Agent.State](Omni.Agent.State.md): The public state passed to all `Omni.Agent` callbacks.

- Sessions
  - [Omni.Session](Omni.Session.md): A Session wraps `Omni.Agent` with identity, persistence, and a
branching message tree.
  - [Omni.Session.Manager](Omni.Session.Manager.md): Supervises many `Omni.Session` processes and provides id-based
lifecycle management.
  - [Omni.Session.Snapshot](Omni.Session.Snapshot.md): A consistent view of an `Omni.Session` at a point in time.
  - [Omni.Session.Tree](Omni.Session.Tree.md): A branching message tree used by `Omni.Session` to store conversation history.

- Stores
  - [Omni.Session.Store](Omni.Session.Store.md): Persistence contract for `Omni.Session`.
  - [Omni.Session.Stores.FileSystem](Omni.Session.Stores.FileSystem.md): Reference `Omni.Session.Store` adapter using plain files on disk.

