From cf831b034840fbd7cc7d1bc6b0a272966f52e8bc Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Fri, 3 Oct 2025 05:31:31 -0400 Subject: [PATCH] Update A2A library to 0.3.1-preview (#1141) Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com> --- dotnet/Directory.Build.props | 2 +- dotnet/Directory.Packages.props | 4 +- .../AgentWebChat.Web/A2AAgentClient.cs | 12 ++-- .../src/Microsoft.Agents.AI.A2A/A2AAgent.cs | 6 +- .../Microsoft.Agents.AI.A2A/A2AHostAgent.cs | 4 +- .../Extensions/A2AMessageExtensions.cs | 4 +- .../Extensions/ChatMessageExtensions.cs | 4 +- .../AIAgentExtensions.cs | 4 +- .../Converters/MessageConverter.cs | 12 ++-- .../A2AAgentTests.cs | 24 ++++---- .../A2ACardResolverExtensionsTests.cs | 4 +- .../Extensions/A2AClientExtensionsTests.cs | 2 +- .../Extensions/A2AMessageExtensionsTests.cs | 2 +- .../Converters/MessageConverterTests.cs | 60 +++++++++---------- 14 files changed, 72 insertions(+), 72 deletions(-) diff --git a/dotnet/Directory.Build.props b/dotnet/Directory.Build.props index da2e3f1960..98d593acaf 100644 --- a/dotnet/Directory.Build.props +++ b/dotnet/Directory.Build.props @@ -8,7 +8,7 @@ true 13 enable - $(NoWarn);NU5128;CS8002 + $(NoWarn);NU5128 true net9.0 net9.0;net8.0;netstandard2.0;net472 diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index 03a45afb23..7133efad8f 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -83,8 +83,8 @@ - - + + diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs b/dotnet/samples/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs index eec82ee37c..a785990f1a 100644 --- a/dotnet/samples/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs +++ b/dotnet/samples/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs @@ -43,7 +43,7 @@ internal sealed class A2AAgentClient : IAgentClient { // Convert all messages to A2A parts and create a single message var parts = messages.ToParts(); - var a2aMessage = new Message + var a2aMessage = new AgentMessage { MessageId = Guid.NewGuid().ToString("N"), ContextId = contextId, @@ -55,9 +55,9 @@ internal sealed class A2AAgentClient : IAgentClient var a2aResponse = await a2aClient.SendMessageAsync(messageSendParams, cancellationToken); // Handle different response types - if (a2aResponse is Message message) + if (a2aResponse is AgentMessage message) { - var responseMessage = MessageConverter.ToChatMessage(message); + var responseMessage = message.ToChatMessage(); if (responseMessage is not null) { results.Add(new AgentRunResponseUpdate(responseMessage.Role, responseMessage.Contents) @@ -188,17 +188,17 @@ internal sealed class A2AAgentClient : IAgentClient // Extension method to convert multiple chat messages to A2A messages internal static class ChatMessageExtensions { - public static List ToA2AMessages(this IList chatMessages) + public static List ToA2AMessages(this IList chatMessages) { if (chatMessages is null || chatMessages.Count == 0) { return []; } - var result = new List(); + var result = new List(); foreach (var chatMessage in chatMessages) { - result.Add(MessageConverter.ToA2AMessage(chatMessage)); + result.Add(chatMessage.ToA2AMessage()); } return result; } diff --git a/dotnet/src/Microsoft.Agents.AI.A2A/A2AAgent.cs b/dotnet/src/Microsoft.Agents.AI.A2A/A2AAgent.cs index 39009b725f..87abcbc372 100644 --- a/dotnet/src/Microsoft.Agents.AI.A2A/A2AAgent.cs +++ b/dotnet/src/Microsoft.Agents.AI.A2A/A2AAgent.cs @@ -91,7 +91,7 @@ internal sealed class A2AAgent : AIAgent this._logger.LogAgentChatClientInvokedAgent(nameof(RunAsync), this.Id, this.Name); - if (a2aResponse is Message message) + if (a2aResponse is AgentMessage message) { UpdateThreadConversationId(typedThread, message.ContextId); @@ -139,13 +139,13 @@ internal sealed class A2AAgent : AIAgent this._logger.LogA2AAgentInvokingAgent(nameof(RunStreamingAsync), this.Id, this.Name); - var a2aSseEvents = this._a2aClient.SendMessageStreamAsync(new MessageSendParams { Message = a2aMessage }, cancellationToken).ConfigureAwait(false); + var a2aSseEvents = this._a2aClient.SendMessageStreamingAsync(new MessageSendParams { Message = a2aMessage }, cancellationToken).ConfigureAwait(false); this._logger.LogAgentChatClientInvokedAgent(nameof(RunStreamingAsync), this.Id, this.Name); await foreach (var sseEvent in a2aSseEvents) { - if (sseEvent.Data is not Message message) + if (sseEvent.Data is not AgentMessage message) { throw new NotSupportedException($"Only message responses are supported from A2A agents. Received: {sseEvent.Data?.GetType().FullName ?? "null"}"); } diff --git a/dotnet/src/Microsoft.Agents.AI.A2A/A2AHostAgent.cs b/dotnet/src/Microsoft.Agents.AI.A2A/A2AHostAgent.cs index 725c80b871..a59bbab39e 100644 --- a/dotnet/src/Microsoft.Agents.AI.A2A/A2AHostAgent.cs +++ b/dotnet/src/Microsoft.Agents.AI.A2A/A2AHostAgent.cs @@ -66,7 +66,7 @@ public sealed class A2AHostAgent /// /// The to handle. /// The to monitor for cancellation requests. The default is . - public async Task OnMessageReceivedAsync(MessageSendParams messageSend, CancellationToken cancellationToken = default) + public async Task OnMessageReceivedAsync(MessageSendParams messageSend, CancellationToken cancellationToken = default) { Throw.IfNull(messageSend); Throw.IfNull(this.Agent); @@ -80,7 +80,7 @@ public sealed class A2AHostAgent var userMessage = messageSend.Message.ToChatMessage(); // Get the response from the agent - var message = new Message(); + var message = new AgentMessage(); var agentResponse = await this.Agent.RunAsync(userMessage, cancellationToken: cancellationToken).ConfigureAwait(false); foreach (var chatMessage in agentResponse.Messages) { diff --git a/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/A2AMessageExtensions.cs b/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/A2AMessageExtensions.cs index e5550fcbf9..51e7545cfc 100644 --- a/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/A2AMessageExtensions.cs +++ b/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/A2AMessageExtensions.cs @@ -6,11 +6,11 @@ using Microsoft.Extensions.AI; namespace A2A; /// -/// Extension methods for the class. +/// Extension methods for the class. /// internal static class A2AMessageExtensions { - internal static ChatMessage ToChatMessage(this Message message) + internal static ChatMessage ToChatMessage(this AgentMessage message) { List? aiContents = null; diff --git a/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/ChatMessageExtensions.cs b/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/ChatMessageExtensions.cs index cd1e0ef956..7165fcc628 100644 --- a/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/ChatMessageExtensions.cs +++ b/dotnet/src/Microsoft.Agents.AI.A2A/Extensions/ChatMessageExtensions.cs @@ -11,7 +11,7 @@ namespace Microsoft.Extensions.AI; /// internal static class ChatMessageExtensions { - internal static Message ToA2AMessage(this IEnumerable messages) + internal static AgentMessage ToA2AMessage(this IEnumerable messages) { List allParts = []; @@ -23,7 +23,7 @@ internal static class ChatMessageExtensions } } - return new Message + return new AgentMessage { MessageId = Guid.NewGuid().ToString("N"), Role = MessageRole.User, diff --git a/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/AIAgentExtensions.cs b/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/AIAgentExtensions.cs index 000504b860..68f93d44aa 100644 --- a/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/AIAgentExtensions.cs +++ b/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/AIAgentExtensions.cs @@ -35,7 +35,7 @@ public static class AIAgentExtensions return taskManager; - async Task OnMessageReceivedAsync(MessageSendParams messageSendParams, CancellationToken cancellationToken) + async Task OnMessageReceivedAsync(MessageSendParams messageSendParams, CancellationToken cancellationToken) { var response = await agent.RunAsync( messageSendParams.ToChatMessages(), @@ -43,7 +43,7 @@ public static class AIAgentExtensions var contextId = messageSendParams.Message.ContextId ?? Guid.NewGuid().ToString("N"); var parts = response.Messages.ToParts(); - return new Message + return new AgentMessage { MessageId = response.ResponseId ?? Guid.NewGuid().ToString("N"), ContextId = contextId, diff --git a/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/Converters/MessageConverter.cs b/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/Converters/MessageConverter.cs index 57b59d3abb..705db9fbb1 100644 --- a/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/Converters/MessageConverter.cs +++ b/dotnet/src/Microsoft.Agents.AI.Hosting.A2A/Converters/MessageConverter.cs @@ -65,10 +65,10 @@ internal static class MessageConverter } /// - /// Converts collection of A2A to a collection of objects. + /// Converts collection of A2A to a collection of objects. /// /// A read-only collection of ChatMessage objects. - public static IReadOnlyCollection ToChatMessages(this ICollection messages) + public static IReadOnlyCollection ToChatMessages(this ICollection messages) { if (messages is null || messages.Count == 0) { @@ -89,11 +89,11 @@ internal static class MessageConverter } /// - /// Converts a single to a . + /// Converts a single to a . /// /// The A2A message to convert. /// A ChatMessage object, or null if conversion is not possible. - public static ChatMessage? ToChatMessage(this Message message) + public static ChatMessage? ToChatMessage(this AgentMessage message) { if (message?.Parts is not { Count: > 0 }) { @@ -169,14 +169,14 @@ internal static class MessageConverter /// /// The ChatMessage to convert. /// An A2A Message object. - public static Message ToA2AMessage(this ChatMessage chatMessage) + public static AgentMessage ToA2AMessage(this ChatMessage chatMessage) { if (chatMessage is null) { throw new ArgumentNullException(nameof(chatMessage)); } - var message = new Message + var message = new AgentMessage { MessageId = chatMessage.MessageId ?? Guid.NewGuid().ToString("N"), Role = ConvertChatRoleToMessageRole(chatMessage.Role), diff --git a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/A2AAgentTests.cs b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/A2AAgentTests.cs index 1810bfa298..a7c6b42359 100644 --- a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/A2AAgentTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/A2AAgentTests.cs @@ -91,7 +91,7 @@ public sealed class A2AAgentTests : IDisposable public async Task RunAsync_WithValidUserMessage_RunsSuccessfullyAsync() { // Arrange - this._handler.ResponseToReturn = new Message + this._handler.ResponseToReturn = new AgentMessage { MessageId = "response-123", Role = MessageRole.Agent, @@ -122,8 +122,8 @@ public sealed class A2AAgentTests : IDisposable Assert.Equal("response-123", result.ResponseId); Assert.NotNull(result.RawRepresentation); - Assert.IsType(result.RawRepresentation); - Assert.Equal("response-123", ((Message)result.RawRepresentation).MessageId); + Assert.IsType(result.RawRepresentation); + Assert.Equal("response-123", ((AgentMessage)result.RawRepresentation).MessageId); Assert.Single(result.Messages); Assert.Equal(ChatRole.Assistant, result.Messages[0].Role); @@ -134,7 +134,7 @@ public sealed class A2AAgentTests : IDisposable public async Task RunAsync_WithNewThread_UpdatesThreadConversationIdAsync() { // Arrange - this._handler.ResponseToReturn = new Message + this._handler.ResponseToReturn = new AgentMessage { MessageId = "response-123", Role = MessageRole.Agent, @@ -192,7 +192,7 @@ public sealed class A2AAgentTests : IDisposable new(ChatRole.User, "Test message") }; - this._handler.ResponseToReturn = new Message + this._handler.ResponseToReturn = new AgentMessage { MessageId = "response-123", Role = MessageRole.Agent, @@ -220,7 +220,7 @@ public sealed class A2AAgentTests : IDisposable new(ChatRole.User, "Hello, streaming!") }; - this._handler.StreamingResponseToReturn = new Message() + this._handler.StreamingResponseToReturn = new AgentMessage() { MessageId = "stream-1", Role = MessageRole.Agent, @@ -253,8 +253,8 @@ public sealed class A2AAgentTests : IDisposable Assert.Equal("stream-1", updates[0].ResponseId); Assert.NotNull(updates[0].RawRepresentation); - Assert.IsType(updates[0].RawRepresentation); - Assert.Equal("stream-1", ((Message)updates[0].RawRepresentation!).MessageId); + Assert.IsType(updates[0].RawRepresentation); + Assert.Equal("stream-1", ((AgentMessage)updates[0].RawRepresentation!).MessageId); } [Fact] @@ -266,7 +266,7 @@ public sealed class A2AAgentTests : IDisposable new(ChatRole.User, "Test streaming") }; - this._handler.StreamingResponseToReturn = new Message() + this._handler.StreamingResponseToReturn = new AgentMessage() { MessageId = "stream-1", Role = MessageRole.Agent, @@ -296,7 +296,7 @@ public sealed class A2AAgentTests : IDisposable new(ChatRole.User, "Test streaming") }; - this._handler.StreamingResponseToReturn = new Message(); + this._handler.StreamingResponseToReturn = new AgentMessage(); var thread = this._agent.GetNewThread(); var a2aThread = (A2AAgentThread)thread; @@ -327,7 +327,7 @@ public sealed class A2AAgentTests : IDisposable new(ChatRole.User, "Test streaming") }; - this._handler.StreamingResponseToReturn = new Message() + this._handler.StreamingResponseToReturn = new AgentMessage() { MessageId = "stream-1", Role = MessageRole.Agent, @@ -453,7 +453,7 @@ public sealed class A2AAgentTests : IDisposable } else { - var jsonRpcResponse = JsonRpcResponse.CreateJsonRpcResponse("response-id", new Message()); + var jsonRpcResponse = JsonRpcResponse.CreateJsonRpcResponse("response-id", new AgentMessage()); return new HttpResponseMessage(HttpStatusCode.OK) { diff --git a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2ACardResolverExtensionsTests.cs b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2ACardResolverExtensionsTests.cs index d2245aec20..dcc45e8fce 100644 --- a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2ACardResolverExtensionsTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2ACardResolverExtensionsTests.cs @@ -62,7 +62,7 @@ public sealed class A2ACardResolverExtensionsTests : IDisposable { Url = "http://test-endpoint/agent" }); - this._handler.ResponsesToReturn.Enqueue(new Message + this._handler.ResponsesToReturn.Enqueue(new AgentMessage { Role = MessageRole.Agent, Parts = [new TextPart { Text = "Response" }], @@ -104,7 +104,7 @@ public sealed class A2ACardResolverExtensionsTests : IDisposable Content = new StringContent(json, Encoding.UTF8, "application/json") }; } - else if (response is Message message) + else if (response is AgentMessage message) { var jsonRpcResponse = JsonRpcResponse.CreateJsonRpcResponse("response-id", message); diff --git a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AClientExtensionsTests.cs b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AClientExtensionsTests.cs index 9d6ef01f2e..e21035003e 100644 --- a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AClientExtensionsTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AClientExtensionsTests.cs @@ -6,7 +6,7 @@ using A2A; namespace Microsoft.Agents.AI.A2A.UnitTests; /// -/// Unit tests for the class. +/// Unit tests for the A2AClientExtensions class. /// public sealed class A2AClientExtensionsTests { diff --git a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AMessageExtensionsTests.cs b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AMessageExtensionsTests.cs index c4f43e5a6d..96fca5f34c 100644 --- a/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AMessageExtensionsTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AMessageExtensionsTests.cs @@ -23,7 +23,7 @@ public sealed class A2AMessageExtensionsTests ["isUrgent"] = JsonDocument.Parse("true").RootElement }; - var message = new Message + var message = new AgentMessage { MessageId = "mixed-parts-id", Role = MessageRole.Agent, diff --git a/dotnet/tests/Microsoft.Agents.AI.Hosting.A2A.Tests/Converters/MessageConverterTests.cs b/dotnet/tests/Microsoft.Agents.AI.Hosting.A2A.Tests/Converters/MessageConverterTests.cs index 3b8072149d..53a7445d0b 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Hosting.A2A.Tests/Converters/MessageConverterTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Hosting.A2A.Tests/Converters/MessageConverterTests.cs @@ -42,7 +42,7 @@ public class MessageConverterTests { var messageSendParams = new MessageSendParams { - Message = new Message + Message = new AgentMessage { MessageId = "test-id", Role = MessageRole.User, @@ -61,7 +61,7 @@ public class MessageConverterTests { var messageSendParams = new MessageSendParams { - Message = new Message + Message = new AgentMessage { MessageId = "test-id", Role = MessageRole.User, @@ -89,7 +89,7 @@ public class MessageConverterTests [Fact] public void ToChatMessages_MessageCollection_Null_ReturnsEmptyCollection() { - ICollection? messages = null; + ICollection? messages = null; var result = messages!.ToChatMessages(); @@ -100,7 +100,7 @@ public class MessageConverterTests [Fact] public void ToChatMessages_MessageCollection_Empty_ReturnsEmptyCollection() { - var messages = new List(); + var messages = new List(); var result = messages.ToChatMessages(); @@ -111,7 +111,7 @@ public class MessageConverterTests [Fact] public void ToChatMessages_MessageCollection_WithValidMessages_ReturnsCorrectChatMessages() { - var messages = new List + var messages = new List { new() { @@ -146,7 +146,7 @@ public class MessageConverterTests [Fact] public void ToChatMessages_MessageCollection_SkipsInvalidMessages_ReturnsValidChatMessages() { - var messages = new List + var messages = new List { new() { @@ -254,14 +254,14 @@ public class MessageConverterTests [Fact] public void ConvertMessageRoleToChatRole_UserRole_ReturnsUserChatRole() { - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = MessageRole.User, Parts = [new TextPart { Text = "Test" }] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.Equal(ChatRole.User, chatMessage.Role); @@ -270,14 +270,14 @@ public class MessageConverterTests [Fact] public void ConvertMessageRoleToChatRole_AgentRole_ReturnsAssistantChatRole() { - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = MessageRole.Agent, Parts = [new TextPart { Text = "Test" }] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.Equal(ChatRole.Assistant, chatMessage.Role); @@ -286,14 +286,14 @@ public class MessageConverterTests [Fact] public void ConvertMessageRoleToChatRole_UnknownRole_ReturnsUserChatRole() { - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = (MessageRole)999, // Unknown role Parts = [new TextPart { Text = "Test" }] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.Equal(ChatRole.User, chatMessage.Role); @@ -343,14 +343,14 @@ public class MessageConverterTests public void ConvertPartToAIContent_TextPart_ReturnsTextContent() { var textPart = new TextPart { Text = "Sample text" }; - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = MessageRole.User, Parts = [textPart] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); var textContent = Assert.IsType(chatMessage.Contents.First()); @@ -371,14 +371,14 @@ public class MessageConverterTests Text = "Text with metadata", Metadata = metadata }; - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = MessageRole.User, Parts = [textPart] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); var textContent = Assert.IsType(chatMessage.Contents.First()); @@ -392,14 +392,14 @@ public class MessageConverterTests public void ConvertPartToAIContent_FilePart_ThrowsNotSupportedException() { var filePart = new FilePart(); - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = MessageRole.User, Parts = [filePart] }; - var exception = Assert.Throws(() => new List { message }.ToChatMessages()); + var exception = Assert.Throws(() => new List { message }.ToChatMessages()); Assert.Contains("Part type 'FilePart' is not supported", exception.Message); } @@ -407,14 +407,14 @@ public class MessageConverterTests public void ConvertPartToAIContent_DataPart_ThrowsNotSupportedException() { var dataPart = new DataPart(); - var message = new Message + var message = new AgentMessage { MessageId = "test", Role = MessageRole.User, Parts = [dataPart] }; - var exception = Assert.Throws(() => new List { message }.ToChatMessages()); + var exception = Assert.Throws(() => new List { message }.ToChatMessages()); Assert.Contains("Part type 'DataPart' is not supported", exception.Message); } @@ -426,7 +426,7 @@ public class MessageConverterTests ["timestamp"] = JsonDocument.Parse("\"2024-01-01T00:00:00Z\"").RootElement, ["priority"] = JsonDocument.Parse("1").RootElement }; - var message = new Message + var message = new AgentMessage { MessageId = "test-id", Role = MessageRole.User, @@ -434,7 +434,7 @@ public class MessageConverterTests Metadata = metadata }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.NotNull(chatMessage.AdditionalProperties); @@ -446,14 +446,14 @@ public class MessageConverterTests [Fact] public void ConvertMessageToChatMessage_WithRawRepresentation_PreservesOriginalMessage() { - var message = new Message + var message = new AgentMessage { MessageId = "test-id", Role = MessageRole.Agent, Parts = [new TextPart { Text = "Test response" }] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.Equal(message, chatMessage.RawRepresentation); @@ -462,14 +462,14 @@ public class MessageConverterTests [Fact] public void ToChatMessages_MessageWithEmptyParts_ReturnsEmptyCollection() { - var message = new Message + var message = new AgentMessage { MessageId = "test-id", Role = MessageRole.User, Parts = [] // Empty list }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); Assert.NotNull(result); Assert.Empty(result); @@ -499,7 +499,7 @@ public class MessageConverterTests [Fact] public void ToAdditionalPropertiesDictionary_NullMetadata_ReturnsNull() { - var message = new Message + var message = new AgentMessage { MessageId = "test-id", Role = MessageRole.User, @@ -507,7 +507,7 @@ public class MessageConverterTests Metadata = null }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.Null(chatMessage.AdditionalProperties); @@ -516,7 +516,7 @@ public class MessageConverterTests [Fact] public void ToAdditionalPropertiesDictionary_EmptyMetadata_ReturnsNull() { - var message = new Message + var message = new AgentMessage { MessageId = "test-id", Role = MessageRole.User, @@ -524,7 +524,7 @@ public class MessageConverterTests Metadata = [] }; - var result = new List { message }.ToChatMessages(); + var result = new List { message }.ToChatMessages(); var chatMessage = result.First(); Assert.Null(chatMessage.AdditionalProperties);