See the spec.:
11.3. The BeanManager object
Portable extensions sometimes interact directly with the container via programmatic API call. The interface javax.enterprise.inject.spi.BeanManager provides operations for obtaining contextual references for beans, along with many other operations of use to portable extensions. The container provides a built-in bean with bean type BeanManager, scope @Dependent and qualifier @Default.
The builtin implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies". Thus, any bean may obtain an instance of BeanManager by injecting it:
@Inject BeanManager manager;