The call's content tier.
Optional excludeProvider: stringProvider to leave out of the availability suffix (typically the failed primary's). The ladder legs ignore it: another model on the same provider is a valid rescue, and the walk drops the exact failed model.
Build a policy-tier-aware fallback chain, for callers that pass
policyTier: 'mature' | 'private-adult': a refusal or an outage of the primary walks to an uncensored model before the availability legs.Mature and private-adult: the tier's catalog ladder (the catalog's
getFallbackLadder; private-adult keeps the models that permiterotic) as OpenRouter legs in theuncensoredgroup, llama-3.1-8b left out, then the buildFallbackChain suffix. Every entry is taggedorigin: 'policy-default', which lets the walk drop the leg naming the failed first model, keep two standing uncensored legs, and pass over Claude legs after a refusal. Safe, standard and an absent tier get buildFallbackChain unchanged and untagged.Each leg pins
cache: false. A missing key drops its legs instead of throwing, so a partial deploy still gets a shorter usable chain.