From 45dcfe07ca51487030c87d29c1539e294aeb8992 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 10 Apr 2025 10:51:41 -0400 Subject: [PATCH] Fix CreateMessageRule.Role to be of type Role (#264) --- src/ModelContextProtocol/Client/McpClientExtensions.cs | 2 +- .../Protocol/Types/CreateMessageResult.cs | 2 +- src/ModelContextProtocol/Server/McpServerExtensions.cs | 2 +- .../SseServerIntegrationTests.cs | 2 +- .../Utils/TestServerTransport.cs | 2 +- .../Client/McpClientExtensionsTests.cs | 6 +++--- .../Client/McpClientFactoryTests.cs | 2 +- tests/ModelContextProtocol.Tests/ClientIntegrationTests.cs | 2 +- .../DockerEverythingServerTests.cs | 2 +- tests/ModelContextProtocol.Tests/Server/McpServerTests.cs | 2 +- .../ModelContextProtocol.Tests/Utils/TestServerTransport.cs | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/ModelContextProtocol/Client/McpClientExtensions.cs b/src/ModelContextProtocol/Client/McpClientExtensions.cs index 9cc8ab2..aaaa426 100644 --- a/src/ModelContextProtocol/Client/McpClientExtensions.cs +++ b/src/ModelContextProtocol/Client/McpClientExtensions.cs @@ -926,7 +926,7 @@ public static class McpClientExtensions { Content = content, Model = chatResponse.ModelId ?? "unknown", - Role = lastMessage?.Role == ChatRole.User ? "user" : "assistant", + Role = lastMessage?.Role == ChatRole.User ? Role.User : Role.Assistant, StopReason = chatResponse.FinishReason == ChatFinishReason.Length ? "maxTokens" : "endTurn", }; } diff --git a/src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs b/src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs index 04397be..4ae6890 100644 --- a/src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs +++ b/src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs @@ -50,5 +50,5 @@ public class CreateMessageResult /// Gets or sets the role of the user who generated the message. /// [JsonPropertyName("role")] - public required string Role { get; init; } + public required Role Role { get; init; } } diff --git a/src/ModelContextProtocol/Server/McpServerExtensions.cs b/src/ModelContextProtocol/Server/McpServerExtensions.cs index 17b4b35..aa103c3 100644 --- a/src/ModelContextProtocol/Server/McpServerExtensions.cs +++ b/src/ModelContextProtocol/Server/McpServerExtensions.cs @@ -142,7 +142,7 @@ public static class McpServerExtensions ModelPreferences = modelPreferences, }, cancellationToken).ConfigureAwait(false); - return new(new ChatMessage(new(result.Role), [result.Content.ToAIContent()])) + return new(new ChatMessage(result.Role is Role.User ? ChatRole.User : ChatRole.Assistant, [result.Content.ToAIContent()])) { ModelId = result.Model, FinishReason = result.StopReason switch diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs index 7913bbb..280a757 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/SseServerIntegrationTests.cs @@ -219,7 +219,7 @@ public class SseServerIntegrationTests : LoggedTest, IClassFixture