Curated, durable memory for profile, workspace, session, and agent scopes.
@type entry() :: %{id: String.t(), scope: scope(), text: String.t(), at: DateTime.t()}
@type scope() :: :global | :user | {:workspace, String.t()} | {:session, String.t()} | {:agent, String.t()}
@spec add(scope(), String.t()) :: {:ok, entry()} | {:error, String.t()}
@spec clear(scope()) :: :ok | {:error, term()}
@spec context_block( String.t(), keyword() ) :: String.t()
@spec list(scope()) :: [entry()]
@spec remove(scope(), String.t()) :: :ok | {:error, :not_found | term()}
@spec search( String.t(), keyword() ) :: [entry()]