fix(orchestrator): _topology_personas accepts TopologySummary or dict

This commit is contained in:
2026-05-10 07:08:39 -04:00
parent 64610bf96e
commit 4c8ef2f104

View File

@@ -311,17 +311,22 @@ async def _resolve_personas(
return enriched return enriched
def _topology_personas(topology: Optional[dict[str, Any]]) -> list[EmailPersona]: def _topology_personas(topology) -> list[EmailPersona]:
if not topology: if not topology:
return [] return []
if isinstance(topology, dict):
raw = topology.get("email_personas") raw = topology.get("email_personas")
lang = topology.get("language_default") or "en"
else:
raw = topology.email_personas
lang = topology.language_default or "en"
if raw is None: if raw is None:
return [] return []
if isinstance(raw, list): if isinstance(raw, list):
return parse_personas(raw, language_default=topology.get("language_default") or "en") return parse_personas(raw, language_default=lang)
if isinstance(raw, str): if isinstance(raw, str):
try: try:
return parse_personas(json.loads(raw), language_default=topology.get("language_default") or "en") return parse_personas(json.loads(raw), language_default=lang)
except json.JSONDecodeError: except json.JSONDecodeError:
return [] return []
return [] return []