From 4ee32fc7d17bf40301dfcd810b9e94696da00d03 Mon Sep 17 00:00:00 2001 From: Greyson Lalonde Date: Sat, 14 Mar 2026 02:43:49 -0400 Subject: [PATCH] feat: add A2UI content type to A2A utils --- lib/crewai/src/crewai/a2a/utils/content_type.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/crewai/src/crewai/a2a/utils/content_type.py b/lib/crewai/src/crewai/a2a/utils/content_type.py index f063fef19..4cfefa070 100644 --- a/lib/crewai/src/crewai/a2a/utils/content_type.py +++ b/lib/crewai/src/crewai/a2a/utils/content_type.py @@ -28,6 +28,7 @@ APPLICATION_PDF: Literal["application/pdf"] = "application/pdf" APPLICATION_OCTET_STREAM: Literal["application/octet-stream"] = ( "application/octet-stream" ) +APPLICATION_A2UI_JSON: Literal["application/json+a2ui"] = "application/json+a2ui" DEFAULT_CLIENT_INPUT_MODES: Final[list[Literal["text/plain", "application/json"]]] = [ TEXT_PLAIN, @@ -311,6 +312,10 @@ def get_part_content_type(part: Part) -> str: if root.kind == "text": return TEXT_PLAIN if root.kind == "data": + metadata = getattr(root, "metadata", None) or {} + mime = metadata.get("mimeType", "") + if mime == APPLICATION_A2UI_JSON: + return APPLICATION_A2UI_JSON return APPLICATION_JSON if root.kind == "file": return root.file.mime_type or APPLICATION_OCTET_STREAM