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

Curated, durable memory for profile, workspace, session, and agent scopes.

# `entry`

```elixir
@type entry() :: %{id: String.t(), scope: scope(), text: String.t(), at: DateTime.t()}
```

# `scope`

```elixir
@type scope() ::
  :global
  | :user
  | {:workspace, String.t()}
  | {:session, String.t()}
  | {:agent, String.t()}
```

# `add`

```elixir
@spec add(scope(), String.t()) :: {:ok, entry()} | {:error, String.t()}
```

# `clear`

```elixir
@spec clear(scope()) :: :ok | {:error, term()}
```

# `context_block`

```elixir
@spec context_block(
  String.t(),
  keyword()
) :: String.t()
```

# `list`

```elixir
@spec list(scope()) :: [entry()]
```

# `remove`

```elixir
@spec remove(scope(), String.t()) :: :ok | {:error, :not_found | term()}
```

# `search`

```elixir
@spec search(
  String.t(),
  keyword()
) :: [entry()]
```

---

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