diff --git a/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs b/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs index 506956cac8..fefbc969ba 100644 --- a/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs +++ b/dotnet/src/Microsoft.Agents.AI.AGUI/Shared/AGUIChatMessageExtensions.cs @@ -51,7 +51,10 @@ public static IEnumerable AsChatMessages( new FunctionResultContent( toolMessage.ToolCallId, result) - ]); + ]) + { + MessageId = message.Id + }; break; } diff --git a/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs b/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs index bc3a73fb4c..40b723b7bc 100644 --- a/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.AGUI.UnitTests/AGUIChatMessageExtensionsTests.cs @@ -102,18 +102,20 @@ public void AsChatMessages_MapsAllSupportedRoleTypes_Correctly() new AGUISystemMessage { Id = "msg1", Content = "System message" }, new AGUIUserMessage { Id = "msg2", Content = "User message" }, new AGUIAssistantMessage { Id = "msg3", Content = "Assistant message" }, - new AGUIDeveloperMessage { Id = "msg4", Content = "Developer message" } + new AGUIDeveloperMessage { Id = "msg4", Content = "Developer message" }, + new AGUIToolMessage { Id = "msg5", Content = "Tool message" } ]; // Act List chatMessages = aguiMessages.AsChatMessages(AGUIJsonSerializerContext.Default.Options).ToList(); // Assert - Assert.Equal(4, chatMessages.Count); + Assert.Equal(5, chatMessages.Count); Assert.Equal(ChatRole.System, chatMessages[0].Role); Assert.Equal(ChatRole.User, chatMessages[1].Role); Assert.Equal(ChatRole.Assistant, chatMessages[2].Role); Assert.Equal("developer", chatMessages[3].Role.Value); + Assert.Equal(ChatRole.Tool, chatMessages[4].Role); } [Fact] @@ -192,6 +194,7 @@ public void AsAGUIMessages_PreservesMessageId_WhenPresent() [InlineData(AGUIRoles.User, "user")] [InlineData(AGUIRoles.Assistant, "assistant")] [InlineData(AGUIRoles.Developer, "developer")] + [InlineData(AGUIRoles.Tool, "tool")] public void MapChatRole_WithValidRole_ReturnsCorrectChatRole(string aguiRole, string expectedRoleValue) { // Arrange & Act @@ -283,6 +286,7 @@ public void AsChatMessages_WithToolMessage_DeserializesResultCorrectly() // Assert ChatMessage message = Assert.Single(chatMessages); Assert.Equal(ChatRole.Tool, message.Role); + Assert.Equal("msg1", message.MessageId); FunctionResultContent result = Assert.IsType(message.Contents[0]); Assert.Equal("call_abc", result.CallId); Assert.NotNull(result.Result);