fix(orchestrator): _topology_personas accepts TopologySummary or dict
This commit is contained in:
@@ -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 []
|
||||||
raw = topology.get("email_personas")
|
if isinstance(topology, dict):
|
||||||
|
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 []
|
||||||
|
|||||||
Reference in New Issue
Block a user