diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetFramework.csproj b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetFramework.csproj index df6d55e9e4e6..446626bb8afa 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetFramework.csproj +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetFramework.csproj @@ -37,7 +37,7 @@ - + diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetStandard.csproj b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetStandard.csproj index dde3ae6c2422..97b1a20a55e0 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetStandard.csproj +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.NetStandard.csproj @@ -41,7 +41,7 @@ - + diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec index 22332ee1dca9..789856e6db3a 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec @@ -15,17 +15,17 @@ - + - + - + diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs index 0479bc878232..bfe33dbda368 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs @@ -121,7 +121,7 @@ public async Task GetResponseAsync( if (reasoningContent.ReasoningText.Signature is string signature) { - (trc.AdditionalProperties ??= [])[nameof(reasoningContent.ReasoningText.Signature)] = signature; + trc.ProtectedData = signature; } if (reasoningContent.RedactedContent is { } redactedContent) @@ -249,13 +249,13 @@ public async IAsyncEnumerable GetStreamingResponseAsync( yield return textUpdate; } - if (contentBlockDelta.Delta.ReasoningContent is { Text: not null } reasoningContent) + if (contentBlockDelta.Delta.ReasoningContent is { } reasoningContent) { TextReasoningContent trc = new(reasoningContent.Text); if (reasoningContent.Signature is not null) { - (trc.AdditionalProperties ??= [])[nameof(reasoningContent.Signature)] = reasoningContent.Signature; + trc.ProtectedData = reasoningContent.Signature; } if (reasoningContent.RedactedContent is { } redactedContent) @@ -516,6 +516,8 @@ private static List CreateContents(ChatMessage message) break; case TextReasoningContent trc: + object? redactedContent = null; + trc.AdditionalProperties?.TryGetValue(nameof(ReasoningContentBlock.RedactedContent), out redactedContent); contents.Add(new() { ReasoningContent = new() @@ -523,9 +525,9 @@ private static List CreateContents(ChatMessage message) ReasoningText = new() { Text = trc.Text, - Signature = trc.AdditionalProperties?[nameof(ReasoningContentBlock.ReasoningText.Signature)] as string, + Signature = trc.ProtectedData, }, - RedactedContent = trc.AdditionalProperties?[nameof(ReasoningContentBlock.RedactedContent)] is byte[] array ? new(array) : null, + RedactedContent = redactedContent is byte[] array ? new(array) : null, } }); break; diff --git a/extensions/test/BedrockMEAITests/BedrockMEAITests.NetFramework.csproj b/extensions/test/BedrockMEAITests/BedrockMEAITests.NetFramework.csproj index 42c9d80ffa65..dd9de35ce4a5 100644 --- a/extensions/test/BedrockMEAITests/BedrockMEAITests.NetFramework.csproj +++ b/extensions/test/BedrockMEAITests/BedrockMEAITests.NetFramework.csproj @@ -18,7 +18,7 @@ - + diff --git a/generator/.DevConfigs/6c035145-4fe4-42cd-9339-4f10256de2e7.json b/generator/.DevConfigs/6c035145-4fe4-42cd-9339-4f10256de2e7.json new file mode 100644 index 000000000000..25da818f4561 --- /dev/null +++ b/generator/.DevConfigs/6c035145-4fe4-42cd-9339-4f10256de2e7.json @@ -0,0 +1,11 @@ +{ + "extensions": [ + { + "extensionName": "Extensions.Bedrock.MEAI", + "type": "patch", + "changeLogMessages": [ + "Fix reading/writing ReasoningContent for tool use." + ] + } + ] +} \ No newline at end of file