# Zep v1.0.0 - Table of Contents

> A complete, production-grade Elixir client for the Zep AI memory API (Threads, Users, Graph, Context, Batch, Project, Task) with typed structs, retries, telemetry, and strict dialyzer/credo compliance.

## Pages

- [Zep](readme.md)
- [Changelog](changelog.md)

## Modules

- [Zep](Zep.md): A complete Elixir client for the [Zep](https://www.getzep.com) AI memory API.
- [Zep.Config](Zep.Config.md): Resolves client configuration from explicit options, application
environment, and OS environment variables, in that order of precedence.
- [Zep.Schemas.BatchItem](Zep.Schemas.BatchItem.md): A single item within a batch, as returned by `Zep.Batch.list_items/2`.
- [Zep.Schemas.BatchProgress](Zep.Schemas.BatchProgress.md): Item-count progress for a batch job, as returned nested in `Zep.Schemas.BatchJob`.
- [Zep.Schemas.GraphList](Zep.Schemas.GraphList.md): Paginated envelope returned by `Zep.Graph.list_all/2`.
- [Zep.Schemas.MessageList](Zep.Schemas.MessageList.md): Paginated envelope returned by `Zep.Thread.get_messages/3`.
- [Zep.Schemas.Project](Zep.Schemas.Project.md): Project-level settings for the API key in use.
- [Zep.Schemas.SearchResults](Zep.Schemas.SearchResults.md): Results of `Zep.Graph.search/3` - facts (edges) and/or nodes, depending on scope.
- [Zep.Schemas.Task](Zep.Schemas.Task.md): An async task/job handle, as returned by long-running operations.
- [Zep.Schemas.ThreadContext](Zep.Schemas.ThreadContext.md): The assembled context block returned by `Zep.Thread.get_user_context/3`.
- [Zep.Schemas.ThreadList](Zep.Schemas.ThreadList.md): Paginated envelope returned by `Zep.Thread.list/2`.
- [Zep.Schemas.ThreadSummary](Zep.Schemas.ThreadSummary.md): The rolling, incrementally-generated summary of a thread.
- [Zep.Schemas.UserList](Zep.Schemas.UserList.md): Paginated envelope returned by `Zep.User.list_ordered/2`.
- [Zep.Webhook](Zep.Webhook.md): Verifies the authenticity of incoming Zep webhook deliveries.

- Resources
  - [Zep.Batch](Zep.Batch.md): The Batch API - the recommended way to load large historical datasets
(backfills, document collections, archived conversations, migrations)
into Context Graphs. Replaces the deprecated
`Zep.Thread.add_messages_batch/4` and (for large jobs) `Zep.Graph.add_batch/3`.
  - [Zep.Context](Zep.Context.md): Custom context-rendering templates, referenced by `template_id` from
`Zep.Thread.get_user_context/3` and `Zep.Thread.add_messages/4`.

  - [Zep.Graph.CustomInstructions](Zep.Graph.CustomInstructions.md): Custom entity/edge extraction instructions for a user's or graph's graph -
free-text guidance steering what Zep extracts during ingestion (e.g.
"always extract monetary amounts as Money-labeled nodes").

  - [Zep.Graph.Edge](Zep.Graph.Edge.md): Operations on individual graph edges (facts/relationships between nodes).

  - [Zep.Graph.Episode](Zep.Graph.Episode.md): Operations on individual graph episodes (units of ingested data).

  - [Zep.Graph.Node](Zep.Graph.Node.md): Operations on individual graph entity nodes.

  - [Zep.Graph.Observations](Zep.Graph.Observations.md): Observations - standalone, timestamped notes attached directly to a
user's or graph's graph outside of the thread/episode ingestion flow.

  - [Zep.Graph.ThreadSummaries](Zep.Graph.ThreadSummaries.md): Access to the thread summaries that have been folded into a user's or
graph's knowledge graph (as distinct from `Zep.Thread.get_summary/2`,
which returns a single thread's own rolling summary directly).

  - [Zep.Project](Zep.Project.md): Project-level settings for the API key currently in use (the project the
key was issued under).

  - [Zep.Task](Zep.Task.md): Status polling for asynchronous, long-running Zep operations (e.g. bulk
ingestion, pattern detection jobs).

  - [Zep.Thread.Message](Zep.Thread.Message.md): Operations on individual thread messages, addressed by message `uuid`
(as opposed to `Zep.Thread.add_messages/4`, which appends to a thread).

- Schemas
  - [Zep.Schemas.BatchJob](Zep.Schemas.BatchJob.md): A batch ingestion job, as created/listed via `Zep.Batch`.
  - [Zep.Schemas.ContextTemplate](Zep.Schemas.ContextTemplate.md): A custom context-rendering template, referenced by `template_id`.
  - [Zep.Schemas.Edge](Zep.Schemas.Edge.md): A fact/relationship edge between two nodes in a graph.
  - [Zep.Schemas.Episode](Zep.Schemas.Episode.md): An episode - a single unit of data ingested into a graph via `graph.add`.
  - [Zep.Schemas.Graph](Zep.Schemas.Graph.md): A named graph - either a user graph or a standalone/group graph.
  - [Zep.Schemas.Message](Zep.Schemas.Message.md): A single chat message, as stored on a thread.
  - [Zep.Schemas.Node](Zep.Schemas.Node.md): An entity node in a graph.
  - [Zep.Schemas.Thread](Zep.Schemas.Thread.md): A Zep thread - a sequence of messages between a user and an assistant.
  - [Zep.Schemas.User](Zep.Schemas.User.md): A Zep user - the identity that threads and graph memory are attached to.

- Internals
  - [Zep.Client](Zep.Client.md): A configured handle for talking to the Zep API.
  - [Zep.Error](Zep.Error.md): A structured representation of a failed Zep API call.
  - [Zep.HTTP](Zep.HTTP.md): Low-level request execution shared by every resource module.
  - [Zep.Pagination](Zep.Pagination.md): Helper for turning a paginated `list/2`-style function into a lazy
`Stream` that walks every page automatically.

- Exceptions
  - [Zep.ConfigError](Zep.ConfigError.md): Raised when a `Zep.Client` cannot be built due to missing configuration.
  - [Zep.TransportError](Zep.TransportError.md): Raised/returned when a request never reached the Zep API (timeouts,
connection refused, DNS failures, etc), as distinct from `Zep.Error`
which represents an API response with a non-2xx status.

