# `Vibe.Memory.Manager`
[🔗](https://github.com/elixir-vibe/vibe/blob/v0.2.3/lib/vibe/memory/manager.ex#L1)

Curated long-term memory lifecycle: turn hooks, sync, and recall.

# `provider_entry`

```elixir
@type provider_entry() :: %{module: module(), state: term(), external?: boolean()}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `load`

```elixir
@spec load(
  module(),
  keyword()
) :: :ok | {:error, term()}
```

# `on_delegation`

```elixir
@spec on_delegation(String.t(), String.t(), map()) :: :ok
```

# `on_pre_compress`

```elixir
@spec on_pre_compress([map()], map()) :: String.t()
```

# `on_session_end`

```elixir
@spec on_session_end([map()], map()) :: :ok
```

# `on_turn_start`

```elixir
@spec on_turn_start(non_neg_integer(), String.t(), map()) :: :ok
```

# `prefetch`

```elixir
@spec prefetch(String.t(), map()) :: String.t()
```

# `providers`

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

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

# `sync_turn`

```elixir
@spec sync_turn(String.t(), String.t(), map()) :: :ok
```

# `system_prompt_block`

```elixir
@spec system_prompt_block() :: String.t()
```

# `unload`

```elixir
@spec unload(module()) :: :ok
```

---

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