# `LLMDB.Snapshot.Builder`
[🔗](https://github.com/agentjido/llm_db/blob/main/lib/llm_db/snapshot/builder.ex#L1)

Builds canonical snapshot artifacts from configured sources.

This is maintainer-internal orchestration. Direct use is
documentation-deprecated in favor of `mix llm_db.build` (or
`mix llm_db.snapshot.publish` when publishing). The module remains callable
through the current major release.

# `artifact`

```elixir
@type artifact() :: %{
  snapshot: map(),
  snapshot_id: String.t(),
  schema_version: pos_integer(),
  metadata: map(),
  output_dir: String.t(),
  snapshot_path: String.t(),
  metadata_path: String.t()
}
```

# `build`

```elixir
@spec build(keyword()) :: {:ok, artifact()} | {:error, term()}
```

# `up_to_date?`

```elixir
@spec up_to_date?(
  artifact(),
  keyword()
) :: boolean()
```

# `write!`

```elixir
@spec write!(
  artifact(),
  keyword()
) :: artifact()
```

---

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