MANAGED_TABLE_PATHS = frozenset(
{('themes',), ('ui', 'terminal_themes'), ('models', 'providers'), ('async_subagents'Sections whose managed value must be a TOML table.
The manifest also uses STRUCTURED for list-valued settings such as MCP
allowlists, so this cannot be derived from OptionKind alone. Parent paths
for every manifest option are added dynamically by
managed_section_shape_violations below.
("effort",) has no manifest option at all — it is written and read by
model_config.load_effort_for_model — so nothing else here would cover it, and
a managed scalar would replace the user's whole [effort] table.
("effort", "by_model") needs its own entry for the same reason: a managed
scalar there passes the top-level shape check and no manifest option gives the
merge validator a type for that path, so it would replace the user's
[effort.by_model] table.
test_every_managed_table_path_is_enforced pins every entry, because a renamed
section would otherwise stop being guarded silently.