From c3c4165d22814e6b40ffec8170dd0f31e301b514 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 00:38:36 +0000 Subject: [PATCH 1/2] Initial plan From 30e3be5bb4db48befdda81e55be9ac36191d00fb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 13 May 2026 00:43:10 +0000 Subject: [PATCH 2/2] Update ClientCitationIconName: reorder to match docs, add reference and test Agent-Logs-Url: https://github.com/microsoft/Agents-for-python/sessions/60af09f7-12a3-4dd7-8ff0-a99ac981ef2e Co-authored-by: MattB-msft <10568244+MattB-msft@users.noreply.github.com> --- .../activity/entity/ai_entity.py | 11 ++++-- tests/activity/entity/test_serialization.py | 36 +++++++++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/libraries/microsoft-agents-activity/microsoft_agents/activity/entity/ai_entity.py b/libraries/microsoft-agents-activity/microsoft_agents/activity/entity/ai_entity.py index 68f1a6bf..dd5368be 100644 --- a/libraries/microsoft-agents-activity/microsoft_agents/activity/entity/ai_entity.py +++ b/libraries/microsoft-agents-activity/microsoft_agents/activity/entity/ai_entity.py @@ -11,7 +11,12 @@ class ClientCitationIconName(str, Enum): - """Enumeration of supported citation icon names.""" + """Supported citation icon names for ``citation.appearance.image.name``. + + The values mirror the predefined icon names documented for Teams bot + messages with AI-generated content. See "Add citations": + https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/bot-messages-ai-generated-content#add-citations + """ MICROSOFT_WORD = "Microsoft Word" MICROSOFT_EXCEL = "Microsoft Excel" @@ -21,12 +26,12 @@ class ClientCitationIconName(str, Enum): MICROSOFT_VISIO = "Microsoft Visio" MICROSOFT_LOOP = "Microsoft Loop" MICROSOFT_WHITEBOARD = "Microsoft Whiteboard" + SOURCE_CODE = "Source Code" + SKETCH = "Sketch" ADOBE_ILLUSTRATOR = "Adobe Illustrator" ADOBE_PHOTOSHOP = "Adobe Photoshop" ADOBE_INDESIGN = "Adobe InDesign" ADOBE_FLASH = "Adobe Flash" - SKETCH = "Sketch" - SOURCE_CODE = "Source Code" IMAGE = "Image" GIF = "GIF" VIDEO = "Video" diff --git a/tests/activity/entity/test_serialization.py b/tests/activity/entity/test_serialization.py index 3f702f79..99ea7ac6 100644 --- a/tests/activity/entity/test_serialization.py +++ b/tests/activity/entity/test_serialization.py @@ -4,6 +4,7 @@ AIEntity, ClientCitation, ClientCitationAppearance, + ClientCitationIconName, SensitivityPattern, SensitivityUsageInfo, ) @@ -58,3 +59,38 @@ def test_schema_mixin_at_context_serialization(): assert "at_type" not in data assert "at_context" not in data + + +def test_client_citation_icon_name_matches_teams_docs(): + """The icon names must match the predefined values documented for + citation.appearance.image.name in the Teams "Add citations" article: + https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/bot-messages-ai-generated-content#add-citations + """ + expected_values = [ + "Microsoft Word", + "Microsoft Excel", + "Microsoft PowerPoint", + "Microsoft OneNote", + "Microsoft SharePoint", + "Microsoft Visio", + "Microsoft Loop", + "Microsoft Whiteboard", + "Source Code", + "Sketch", + "Adobe Illustrator", + "Adobe Photoshop", + "Adobe InDesign", + "Adobe Flash", + "Image", + "GIF", + "Video", + "Sound", + "ZIP", + "Text", + "PDF", + ] + + actual_values = [member.value for member in ClientCitationIconName] + + assert set(actual_values) == set(expected_values) + assert actual_values == expected_values