pub fn compose(
local: &ResolvedProfile,
sources: &[CompositionInput],
) -> Result<CompositionResult>Expand description
Compose multiple source configs with a local resolved profile. Local config is always priority 1000. Sources are merged according to policy tiers.
The composition algorithm:
- Start with local resolved profile
- For each source (sorted by priority ascending):
- Apply locked items unconditionally
- Apply required items (union for packages, source wins for files/env)
- Apply recommended items if accept_recommended && not rejected
- Apply optional items only if opted in
- Apply subscriber overrides on top
- Validate security constraints