diff --git a/Directory.Build.props b/Directory.Build.props index aa949470..f9ba7ee5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,7 +9,7 @@ -0.13.1 +0.14.0 diff --git a/src/McpServer.Introspection/McpServer.Introspection.csproj b/src/McpServer.Introspection/McpServer.Introspection.csproj index 40aeccea..ccf5cb15 100644 --- a/src/McpServer.Introspection/McpServer.Introspection.csproj +++ b/src/McpServer.Introspection/McpServer.Introspection.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj b/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj index b08bb800..9d8b0a91 100644 --- a/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj +++ b/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/McpServer.TodoApp/McpServer.TodoApp.csproj b/src/McpServer.TodoApp/McpServer.TodoApp.csproj index fb8656c3..41ac7754 100644 --- a/src/McpServer.TodoApp/McpServer.TodoApp.csproj +++ b/src/McpServer.TodoApp/McpServer.TodoApp.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/RockBot.Agent/RockBot.Agent.csproj b/src/RockBot.Agent/RockBot.Agent.csproj index 10e66c5b..f5b9f105 100644 --- a/src/RockBot.Agent/RockBot.Agent.csproj +++ b/src/RockBot.Agent/RockBot.Agent.csproj @@ -19,7 +19,12 @@ - + + + + diff --git a/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj b/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj index eb436cac..a5b3ab42 100644 --- a/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj +++ b/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj @@ -17,6 +17,10 @@ + + + diff --git a/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj b/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj index d495cd76..474c7148 100644 --- a/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj +++ b/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/RockBot.Tools.Mcp/McpToolExecutor.cs b/src/RockBot.Tools.Mcp/McpToolExecutor.cs index 2d6d97a0..70166fa4 100644 --- a/src/RockBot.Tools.Mcp/McpToolExecutor.cs +++ b/src/RockBot.Tools.Mcp/McpToolExecutor.cs @@ -78,8 +78,8 @@ public async Task ExecuteAsync(ToolInvokeRequest request, Ca blocks.Add(block switch { TextContentBlock text => new ToolContentBlock { Type = "text", Text = text.Text }, - ImageContentBlock img => new ToolContentBlock { Type = "image", Data = img.Data, MimeType = img.MimeType }, - AudioContentBlock audio => new ToolContentBlock { Type = "audio", Data = audio.Data, MimeType = audio.MimeType }, + ImageContentBlock img => new ToolContentBlock { Type = "image", Data = Convert.ToBase64String(img.Data.Span), MimeType = img.MimeType }, + AudioContentBlock audio => new ToolContentBlock { Type = "audio", Data = Convert.ToBase64String(audio.Data.Span), MimeType = audio.MimeType }, _ => new ToolContentBlock { Type = block.Type ?? "unknown", Text = $"[{block.Type ?? "unknown"} content block]" } }); } diff --git a/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj b/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj index d8d474f5..55c26ff5 100644 --- a/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj +++ b/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj @@ -18,7 +18,7 @@ - + diff --git a/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj b/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj index cd86234e..63afd546 100644 --- a/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj +++ b/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs b/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs index 1750a34a..a145d558 100644 --- a/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs +++ b/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs @@ -240,12 +240,13 @@ public void MapContentBlocks_ExtractsTextContent() [TestMethod] public void MapContentBlocks_PreservesImageContent() { + var imageBytes = new byte[] { 0xDE, 0xAD, 0xBE, 0xEF }; var result = new CallToolResult { Content = [ new TextContentBlock { Text = "Here is an image:" }, - new ImageContentBlock { Data = "abc123", MimeType = "image/png" } + new ImageContentBlock { Data = imageBytes, MimeType = "image/png" } ] }; var blocks = McpToolExecutor.MapContentBlocks(result); @@ -253,7 +254,7 @@ public void MapContentBlocks_PreservesImageContent() Assert.AreEqual(2, blocks.Count); Assert.AreEqual("text", blocks[0].Type); Assert.AreEqual("image", blocks[1].Type); - Assert.AreEqual("abc123", blocks[1].Data); + Assert.AreEqual(Convert.ToBase64String(imageBytes), blocks[1].Data); Assert.AreEqual("image/png", blocks[1].MimeType); // TextFromBlocks only returns text parts Assert.AreEqual("Here is an image:", McpToolExecutor.TextFromBlocks(blocks));