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