// Copyright (c) Microsoft. All rights reserved. using System; using Microsoft.SemanticKernel; using ModelContextProtocol.Protocol; namespace MCPClient; /// /// Extension methods for the class. /// public static class ContentBlockExtensions { /// /// Converts a object to a object. /// /// The object to convert. /// The corresponding object. public static KernelContent ToKernelContent(this ContentBlock content) { return content switch { TextContentBlock textContentBlock => new TextContent(textContentBlock.Text), ImageContentBlock imageContentBlock => new ImageContent(Convert.FromBase64String(imageContentBlock.Data!), imageContentBlock.MimeType), AudioContentBlock audioContentBlock => new AudioContent(Convert.FromBase64String(audioContentBlock.Data!), audioContentBlock.MimeType), _ => throw new InvalidOperationException($"Unexpected message content type '{content.Type}'"), }; } }