59 writes to AdditionalProperties
Microsoft.Extensions.AI (2)
ChatCompletion\ImageGeneratingChatClient.cs (2)
182AdditionalProperties = dataContent.AdditionalProperties 506imageContent.AdditionalProperties ??= [];
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatResponseExtensions.cs (5)
260AdditionalProperties = existing.AdditionalProperties ?? webSearchCall.AdditionalProperties, 288static (contents, start, end) => new(MergeText(contents, start, end)) { AdditionalProperties = contents[start].AdditionalProperties?.Clone() }); 298AdditionalProperties = contents[start].AdditionalProperties?.Clone() 381AdditionalProperties = firstContent.AdditionalProperties?.Clone(), 418AdditionalProperties = firstContent.AdditionalProperties?.Clone(),
Microsoft.Extensions.AI.Abstractions.Tests (28)
ChatCompletion\ChatMessageTests.cs (4)
257AdditionalProperties = new() { ["metadata-key-1"] = "metadata-value-1" } 261AdditionalProperties = new() { ["metadata-key-2"] = "metadata-value-2" } 265AdditionalProperties = new() { ["metadata-key-3"] = "metadata-value-3" } 269AdditionalProperties = new() { ["metadata-key-4"] = "metadata-value-4" }
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (1)
1029new() { Contents = [new WebSearchToolCallContent("ws1") { Queries = ["second query"], RawRepresentation = rawRepresentation, AdditionalProperties = additionalProps }] },
Contents\AIContentTests.cs (2)
32c.AdditionalProperties = props; 42AdditionalProperties = new AdditionalPropertiesDictionary { { "key", "value" } }
Contents\CodeInterpreterToolCallContentTests.cs (1)
41c.AdditionalProperties = props;
Contents\CodeInterpreterToolResultContentTests.cs (1)
41c.AdditionalProperties = props;
Contents\FunctionCallContentTests.cs (1)
61c.AdditionalProperties = props;
Contents\FunctionResultContentTests.cs (1)
46c.AdditionalProperties = props;
Contents\HostedFileContentTests.cs (1)
56c.AdditionalProperties = props;
Contents\HostedVectorStoreContentTests.cs (1)
50c.AdditionalProperties = props;
Contents\ImageGenerationToolCallContentTests.cs (1)
34c.AdditionalProperties = props;
Contents\ImageGenerationToolResultContentTests.cs (1)
42c.AdditionalProperties = props;
Contents\McpServerToolCallContentTests.cs (1)
39c.AdditionalProperties = props;
Contents\McpServerToolResultContentTests.cs (1)
35c.AdditionalProperties = props;
Contents\TextContentTests.cs (1)
35c.AdditionalProperties = props;
Contents\TextReasoningContentTests.cs (1)
36c.AdditionalProperties = props;
Contents\ToolCallContentTests.cs (1)
41c.AdditionalProperties = props;
Contents\ToolResultContentTests.cs (1)
40c.AdditionalProperties = props;
Contents\WebSearchToolCallContentTests.cs (1)
40c.AdditionalProperties = props;
Contents\WebSearchToolResultContentTests.cs (6)
33new UriContent(new Uri("https://example.com/1"), "text/html") { AdditionalProperties = new() { ["title"] = "Result 1" } } 45c.AdditionalProperties = props; 56new UriContent(new Uri("https://example.com/1"), "text/html") { AdditionalProperties = new() { ["title"] = "First" } }, 57new UriContent(new Uri("https://example.com/2"), "text/html") { AdditionalProperties = new() { ["title"] = "Second" } }, 82new UriContent(new Uri("https://example.com"), "text/html") { AdditionalProperties = new() { ["title"] = "Example Page" } }, 110new UriContent(new Uri("https://test.com"), "text/html") { AdditionalProperties = new() { ["title"] = "Test" } },
Microsoft.Extensions.AI.OpenAI (4)
OpenAIChatClient.cs (2)
803(aiContent.AdditionalProperties ??= [])[nameof(contentPart.ImageDetailLevel)] = detail; 822(aiContent.AdditionalProperties ??= [])[nameof(contentPart.Refusal)] = refusal;
OpenAIResponsesChatClient.cs (2)
940(content.AdditionalProperties ??= [])[ReasoningItemIdKey] = itemId; 1994AdditionalProperties = new()
Microsoft.Extensions.AI.OpenAI.Tests (5)
OpenAIChatClientTests.cs (1)
1597AdditionalProperties = new()
OpenAIResponseClientTests.cs (4)
5678new UriContent(new Uri("https://example.com/image.png"), "image/png") { AdditionalProperties = new AdditionalPropertiesDictionary { ["detail"] = "high" }}, 5680new DataContent(imageData, "image/png") { AdditionalProperties = new AdditionalPropertiesDictionary { ["detail"] = ResponseImageDetailLevel.Low }}, 5683new HostedFileContent("file-img-789") { MediaType = "image/jpeg", AdditionalProperties = new AdditionalPropertiesDictionary { ["detail"] = "high" }}, 5730AdditionalProperties = new AdditionalPropertiesDictionary { ["detail"] = 42 }
Microsoft.Extensions.AI.Stabilization.Tests (12)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\CodeInterpreterToolCallContentTests.cs (1)
41c.AdditionalProperties = props;
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\CodeInterpreterToolResultContentTests.cs (1)
41c.AdditionalProperties = props;
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\HostedFileContentTests.cs (1)
56c.AdditionalProperties = props;
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\ImageGenerationToolCallContentTests.cs (1)
34c.AdditionalProperties = props;
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\ImageGenerationToolResultContentTests.cs (1)
42c.AdditionalProperties = props;
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\WebSearchToolCallContentTests.cs (1)
40c.AdditionalProperties = props;
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\WebSearchToolResultContentTests.cs (6)
33new UriContent(new Uri("https://example.com/1"), "text/html") { AdditionalProperties = new() { ["title"] = "Result 1" } } 45c.AdditionalProperties = props; 56new UriContent(new Uri("https://example.com/1"), "text/html") { AdditionalProperties = new() { ["title"] = "First" } }, 57new UriContent(new Uri("https://example.com/2"), "text/html") { AdditionalProperties = new() { ["title"] = "Second" } }, 82new UriContent(new Uri("https://example.com"), "text/html") { AdditionalProperties = new() { ["title"] = "Example Page" } }, 110new UriContent(new Uri("https://test.com"), "text/html") { AdditionalProperties = new() { ["title"] = "Test" } },
Microsoft.Extensions.AI.Tests (3)
ChatCompletion\DistributedCachingChatClientTest.cs (2)
378AdditionalProperties = new() { ["a"] = "b", ["c"] = "d" }, 389AdditionalProperties = new() { ["e"] = "f", ["g"] = "h" },
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2333AdditionalProperties = fcc.AdditionalProperties,
186 references to AdditionalProperties
Microsoft.Extensions.AI (3)
ChatCompletion\ImageGeneratingChatClient.cs (3)
182AdditionalProperties = dataContent.AdditionalProperties 499if (imageContent.AdditionalProperties?.TryGetValue(ImageKey, out imageId) is false || imageId is null) 507imageContent.AdditionalProperties[ImageKey] = imageId;
Microsoft.Extensions.AI.Abstractions (7)
ChatCompletion\ChatResponseExtensions.cs (6)
260AdditionalProperties = existing.AdditionalProperties ?? webSearchCall.AdditionalProperties, 288static (contents, start, end) => new(MergeText(contents, start, end)) { AdditionalProperties = contents[start].AdditionalProperties?.Clone() }); 298AdditionalProperties = contents[start].AdditionalProperties?.Clone() 381AdditionalProperties = firstContent.AdditionalProperties?.Clone(), 418AdditionalProperties = firstContent.AdditionalProperties?.Clone(),
Contents\WebSearchToolResultContent.cs (1)
32/// If a title is available for a result, it may be stored in the item's <see cref="AIContent.AdditionalProperties"/>
Microsoft.Extensions.AI.Abstractions.Tests (124)
ChatCompletion\ChatMessageTests.cs (12)
299Assert.NotNull(textContent.AdditionalProperties); 300Assert.Single(textContent.AdditionalProperties); 301Assert.Equal("metadata-value-1", textContent.AdditionalProperties["metadata-key-1"]?.ToString()); 307Assert.NotNull(dataContent.AdditionalProperties); 308Assert.Single(dataContent.AdditionalProperties); 309Assert.Equal("metadata-value-2", dataContent.AdditionalProperties["metadata-key-2"]?.ToString()); 315Assert.NotNull(dataContent.AdditionalProperties); 316Assert.Single(dataContent.AdditionalProperties); 317Assert.Equal("metadata-value-3", dataContent.AdditionalProperties["metadata-key-3"]?.ToString()); 322Assert.NotNull(textContent.AdditionalProperties); 323Assert.Single(textContent.AdditionalProperties); 324Assert.Equal("metadata-value-4", textContent.AdditionalProperties["metadata-key-4"]?.ToString());
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (1)
1052Assert.Same(additionalProps, ws1.AdditionalProperties);
Contents\AIContentTests.cs (6)
17Assert.Null(c.AdditionalProperties); 30Assert.Null(c.AdditionalProperties); 33Assert.Same(props, c.AdditionalProperties); 46Assert.Single(original.AdditionalProperties); 54Assert.NotNull(deserialized.AdditionalProperties); 55Assert.Single(deserialized.AdditionalProperties);
Contents\CodeInterpreterToolCallContentTests.cs (5)
17Assert.Null(c.AdditionalProperties); 39Assert.Null(c.AdditionalProperties); 42Assert.Same(props, c.AdditionalProperties); 118Assert.NotNull(ciCall.AdditionalProperties); 119Assert.Equal("val", ciCall.AdditionalProperties["key"]?.ToString());
Contents\CodeInterpreterToolResultContentTests.cs (5)
17Assert.Null(c.AdditionalProperties); 39Assert.Null(c.AdditionalProperties); 42Assert.Same(props, c.AdditionalProperties); 120Assert.NotNull(ciResult.AdditionalProperties); 121Assert.Equal("val", ciResult.AdditionalProperties["key"]?.ToString());
Contents\DataContentTests.cs (3)
204Assert.Equal("value", content.AdditionalProperties!["key"]!.ToString()); 999Assert.NotNull(dataContent.AdditionalProperties); 1000Assert.Equal("microphone", dataContent.AdditionalProperties["source"]?.ToString());
Contents\ErrorContentTests.cs (2)
89Assert.NotNull(errorContent.AdditionalProperties); 90Assert.Equal("high", errorContent.AdditionalProperties["severity"]?.ToString());
Contents\FunctionCallContentTests.cs (6)
24Assert.Null(c.AdditionalProperties); 42Assert.Null(c.AdditionalProperties); 59Assert.Null(c.AdditionalProperties); 62Assert.Same(props, c.AdditionalProperties); 465Assert.NotNull(funcCall.AdditionalProperties); 466Assert.Equal("val", funcCall.AdditionalProperties["key"]?.ToString());
Contents\FunctionResultContentTests.cs (6)
18Assert.Null(c.AdditionalProperties); 28Assert.Null(c.AdditionalProperties); 44Assert.Null(c.AdditionalProperties); 47Assert.Same(props, c.AdditionalProperties); 137Assert.NotNull(funcResult.AdditionalProperties); 138Assert.Equal("val", funcResult.AdditionalProperties["key"]?.ToString());
Contents\HostedFileContentTests.cs (5)
26Assert.Null(c.AdditionalProperties); 54Assert.Null(c.AdditionalProperties); 57Assert.Same(props, c.AdditionalProperties); 270Assert.NotNull(hostedFile.AdditionalProperties); 271Assert.Equal("val", hostedFile.AdditionalProperties["key"]?.ToString());
Contents\HostedVectorStoreContentTests.cs (5)
25Assert.Null(c.AdditionalProperties); 48Assert.Null(c.AdditionalProperties); 51Assert.Same(props, c.AdditionalProperties); 84Assert.NotNull(vectorStore.AdditionalProperties); 85Assert.Equal("val", vectorStore.AdditionalProperties["key"]?.ToString());
Contents\ImageGenerationToolCallContentTests.cs (5)
16Assert.Null(c.AdditionalProperties); 32Assert.Null(c.AdditionalProperties); 35Assert.Same(props, c.AdditionalProperties); 84Assert.NotNull(imgCall.AdditionalProperties); 85Assert.Equal("val", imgCall.AdditionalProperties["key"]?.ToString());
Contents\ImageGenerationToolResultContentTests.cs (5)
18Assert.Null(c.AdditionalProperties); 40Assert.Null(c.AdditionalProperties); 43Assert.Same(props, c.AdditionalProperties); 150Assert.NotNull(imgResult.AdditionalProperties); 151Assert.Equal("val", imgResult.AdditionalProperties["key"]?.ToString());
Contents\InputRequestContentTests.cs (2)
92Assert.NotNull(approvalRequest.AdditionalProperties); 93Assert.Equal("val", approvalRequest.AdditionalProperties["key"]?.ToString());
Contents\InputResponseContentTests.cs (2)
95Assert.NotNull(approvalResponse.AdditionalProperties); 96Assert.Equal("val", approvalResponse.AdditionalProperties["key"]?.ToString());
Contents\McpServerToolCallContentTests.cs (5)
19Assert.Null(c.AdditionalProperties); 37Assert.Null(c.AdditionalProperties); 40Assert.Same(props, c.AdditionalProperties); 117Assert.NotNull(mcpCall.AdditionalProperties); 118Assert.Equal("val", mcpCall.AdditionalProperties["key"]?.ToString());
Contents\McpServerToolResultContentTests.cs (5)
19Assert.Null(c.AdditionalProperties); 33Assert.Null(c.AdditionalProperties); 36Assert.Same(props, c.AdditionalProperties); 107Assert.NotNull(mcpResult.AdditionalProperties); 108Assert.Equal("val", mcpResult.AdditionalProperties["key"]?.ToString());
Contents\TextContentTests.cs (6)
19Assert.Null(c.AdditionalProperties); 33Assert.Null(c.AdditionalProperties); 36Assert.Same(props, c.AdditionalProperties); 82Assert.NotNull(textContent.AdditionalProperties); 83Assert.Single(textContent.AdditionalProperties); 84Assert.Equal("value1", textContent.AdditionalProperties["key1"]?.ToString());
Contents\TextReasoningContentTests.cs (5)
19Assert.Null(c.AdditionalProperties); 34Assert.Null(c.AdditionalProperties); 37Assert.Same(props, c.AdditionalProperties); 92Assert.NotNull(reasoning.AdditionalProperties); 93Assert.Equal("val", reasoning.AdditionalProperties["key"]?.ToString());
Contents\ToolApprovalRequestContentTests.cs (2)
130Assert.NotNull(approvalRequest.AdditionalProperties); 131Assert.Equal("val", approvalRequest.AdditionalProperties["key"]?.ToString());
Contents\ToolApprovalResponseContentTests.cs (2)
131Assert.NotNull(approvalResponse.AdditionalProperties); 132Assert.Equal("val", approvalResponse.AdditionalProperties["key"]?.ToString());
Contents\ToolCallContentTests.cs (5)
20Assert.Null(c.AdditionalProperties); 39Assert.Null(c.AdditionalProperties); 42Assert.Same(props, c.AdditionalProperties); 103Assert.NotNull(toolCall.AdditionalProperties); 104Assert.Equal("val", toolCall.AdditionalProperties["key"]?.ToString());
Contents\ToolResultContentTests.cs (5)
19Assert.Null(c.AdditionalProperties); 38Assert.Null(c.AdditionalProperties); 41Assert.Same(props, c.AdditionalProperties); 102Assert.NotNull(toolResult.AdditionalProperties); 103Assert.Equal("val", toolResult.AdditionalProperties["key"]?.ToString());
Contents\UriContentTests.cs (2)
241Assert.NotNull(uriContent.AdditionalProperties); 242Assert.Equal("My Image", uriContent.AdditionalProperties["title"]?.ToString());
Contents\UsageContentTests.cs (2)
23Assert.Null(c.AdditionalProperties); 40Assert.Null(c.AdditionalProperties);
Contents\WebSearchToolCallContentTests.cs (5)
16Assert.Null(c.AdditionalProperties); 38Assert.Null(c.AdditionalProperties); 41Assert.Same(props, c.AdditionalProperties); 96Assert.NotNull(wsCall.AdditionalProperties); 97Assert.Equal("val", wsCall.AdditionalProperties["key"]?.ToString());
Contents\WebSearchToolResultContentTests.cs (10)
18Assert.Null(c.AdditionalProperties); 43Assert.Null(c.AdditionalProperties); 46Assert.Same(props, c.AdditionalProperties); 66Assert.Equal("First", first.AdditionalProperties?["title"]); 69Assert.Equal("Second", second.AdditionalProperties?["title"]); 72Assert.Null(third.AdditionalProperties); 97Assert.Equal("Example Page", first.AdditionalProperties?["title"]?.ToString()); 123Assert.Equal("Test", first.AdditionalProperties?["title"]?.ToString()); 156Assert.NotNull(wsResult.AdditionalProperties); 157Assert.Equal("val", wsResult.AdditionalProperties["key"]?.ToString());
Microsoft.Extensions.AI.Integration.Tests (1)
ImageGeneratingChatClientIntegrationTests.cs (1)
93var imageId = dataContent.AdditionalProperties?[ImageKey] as string;
Microsoft.Extensions.AI.OpenAI (4)
OpenAIChatClient.cs (1)
331if (content.AdditionalProperties?.TryGetValue("detail", out object? value) is true)
OpenAIResponsesChatClient.cs (3)
929/// in <see cref="AIContent.AdditionalProperties"/> so it roundtrips back to the service.</summary> 1562if (reasoningContent.AdditionalProperties?.TryGetValue(ReasoningItemIdKey, out object? reasoningItemIdValue) is true) 2058if (content.AdditionalProperties?.TryGetValue("detail", out object? value) is true)
Microsoft.Extensions.AI.OpenAI.Tests (6)
OpenAIResponseClientTests.cs (6)
6645result.Outputs != null && result.Outputs.Any(o => o.AdditionalProperties != null && o.AdditionalProperties.ContainsKey("PartialImageIndex")))); 6751result.Outputs != null && result.Outputs.Any(o => o.AdditionalProperties != null && o.AdditionalProperties.ContainsKey("PartialImageIndex")))).ToList(); 6776if (o.AdditionalProperties == null) 6781if (!o.AdditionalProperties.TryGetValue("PartialImageIndex", out var imageIndex))
Microsoft.Extensions.AI.Stabilization.Tests (40)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\CodeInterpreterToolCallContentTests.cs (5)
17Assert.Null(c.AdditionalProperties); 39Assert.Null(c.AdditionalProperties); 42Assert.Same(props, c.AdditionalProperties); 118Assert.NotNull(ciCall.AdditionalProperties); 119Assert.Equal("val", ciCall.AdditionalProperties["key"]?.ToString());
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\CodeInterpreterToolResultContentTests.cs (5)
17Assert.Null(c.AdditionalProperties); 39Assert.Null(c.AdditionalProperties); 42Assert.Same(props, c.AdditionalProperties); 120Assert.NotNull(ciResult.AdditionalProperties); 121Assert.Equal("val", ciResult.AdditionalProperties["key"]?.ToString());
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\HostedFileContentTests.cs (5)
26Assert.Null(c.AdditionalProperties); 54Assert.Null(c.AdditionalProperties); 57Assert.Same(props, c.AdditionalProperties); 270Assert.NotNull(hostedFile.AdditionalProperties); 271Assert.Equal("val", hostedFile.AdditionalProperties["key"]?.ToString());
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\ImageGenerationToolCallContentTests.cs (5)
16Assert.Null(c.AdditionalProperties); 32Assert.Null(c.AdditionalProperties); 35Assert.Same(props, c.AdditionalProperties); 84Assert.NotNull(imgCall.AdditionalProperties); 85Assert.Equal("val", imgCall.AdditionalProperties["key"]?.ToString());
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\ImageGenerationToolResultContentTests.cs (5)
18Assert.Null(c.AdditionalProperties); 40Assert.Null(c.AdditionalProperties); 43Assert.Same(props, c.AdditionalProperties); 150Assert.NotNull(imgResult.AdditionalProperties); 151Assert.Equal("val", imgResult.AdditionalProperties["key"]?.ToString());
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\WebSearchToolCallContentTests.cs (5)
16Assert.Null(c.AdditionalProperties); 38Assert.Null(c.AdditionalProperties); 41Assert.Same(props, c.AdditionalProperties); 96Assert.NotNull(wsCall.AdditionalProperties); 97Assert.Equal("val", wsCall.AdditionalProperties["key"]?.ToString());
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\Contents\WebSearchToolResultContentTests.cs (10)
18Assert.Null(c.AdditionalProperties); 43Assert.Null(c.AdditionalProperties); 46Assert.Same(props, c.AdditionalProperties); 66Assert.Equal("First", first.AdditionalProperties?["title"]); 69Assert.Equal("Second", second.AdditionalProperties?["title"]); 72Assert.Null(third.AdditionalProperties); 97Assert.Equal("Example Page", first.AdditionalProperties?["title"]?.ToString()); 123Assert.Equal("Test", first.AdditionalProperties?["title"]?.ToString()); 156Assert.NotNull(wsResult.AdditionalProperties); 157Assert.Equal("val", wsResult.AdditionalProperties["key"]?.ToString());
Microsoft.Extensions.AI.Tests (1)
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
2333AdditionalProperties = fcc.AdditionalProperties,