Diagnostics for configuration supplied alongside an injected orchestrator.
warn_if_disagreement
warn_if_disagreement(config: FrameworkConfig, orchestrator: Any, logger: Any) -> None
Log an explicit selector conflict with the injected config snapshot.
Source code in src/symfonic/agent/configuration/injected_orchestrator.py
| def warn_if_disagreement(
config: FrameworkConfig, orchestrator: Any, logger: Any,
) -> None:
"""Log an explicit selector conflict with the injected config snapshot."""
if "enabled_layers" not in config.model_fields_set:
return
injected = getattr(getattr(orchestrator, "config", None), "enabled_layers", None)
if not isinstance(injected, (set, frozenset, tuple, list)):
return
framework_names = frozenset(config.enabled_layers)
injected_names = frozenset(getattr(layer, "value", layer) for layer in injected)
if framework_names == injected_names:
return
logger.warning(
"FrameworkConfig.enabled_layers=%s disagrees with injected "
"orchestrator.config.enabled_layers snapshot=%s; "
"the supplied orchestrator is retained unchanged. Check its "
"retrieval engine policy for the effective layer selector.",
sorted(framework_names),
sorted(injected_names),
)
|