Moved all extension methods into extension blocks (#1155)

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2026-11-04 10:46:18 +01:00
1 parent acc7d09fa2
commit c0a75f39ac
138 files changed
+5884 -4954

No files matched your search

@@ -56,6 +56,12 @@ internal static class MailToolArguments
/// <param name="toolAction">What the tool does with the mails, e.g., "search", completing "the mailboxes to ...".</param>
/// <param name="mailboxIds">The ids of the mailboxes the tool offers, or none while no mailboxes are known.</param>
/// <returns>The schema, for further arguments.</returns>
/// <remarks>
/// A classic extension method instead of a member of an extension block: for those, the compiler of
/// the .NET 10.0.1xx SDK warns about every mailbox id passed one by one to the params parameter
/// (CS8620, dotnet/roslyn#80024). Move it once the SDK in metadata.txt carries the fix; MWAIS0016 makes
/// the same exception until then.
/// </remarks>
public static ToolParameterSchemaBuilder AddMailConditions(this ToolParameterSchemaBuilder builder, string toolAction, params string[] mailboxIds) => builder
.OptionalStringArray(MAILBOX_IDS_ARGUMENT, $"Optional IDs of the mailboxes to {toolAction}, out of those listed in the description of this tool. Leave it out to {toolAction} all of them.", mailboxIds)
.OptionalString(FROM_ARGUMENT, $"Optional part of the address or the name of the sender, such as 'alice@example.org', 'example.org', or 'Alice'. At most {MAX_ADDRESS_CHARACTERS} characters.")
@@ -2,21 +2,24 @@ namespace AIStudio.Tools.ToolCallingSystem.ToolCallingImplementations.WebSearch;
public static class WebSearchBackendExtensions
{
/// <summary>
/// The name of one search service, as the user reads it and as a search result reports it.
/// </summary>
/// <remarks>
/// Product names, so they are not translated: SearXNG is called SearXNG in every language.
/// What gets stored is the enum member name instead, which is what leaves this free to be
/// worded for people — in the settings dropdown, in a note explaining which service
/// answered, and in the result the model reads.
/// </remarks>
public static string ToName(this WebSearchBackend backend) => backend switch
extension(WebSearchBackend backend)
{
WebSearchBackend.SEARXNG => "SearXNG",
WebSearchBackend.STAAN => "Staan",
WebSearchBackend.TAVILY => "Tavily",
/// <summary>
/// The name of one search service, as the user reads it and as a search result reports it.
/// </summary>
/// <remarks>
/// Product names, so they are not translated: SearXNG is called SearXNG in every language.
/// What gets stored is the enum member name instead, which is what leaves this free to be
/// worded for people — in the settings dropdown, in a note explaining which service
/// answered, and in the result the model reads.
/// </remarks>
public string ToName() => backend switch
{
WebSearchBackend.SEARXNG => "SearXNG",
WebSearchBackend.STAAN => "Staan",
WebSearchBackend.TAVILY => "Tavily",
_ => backend.ToString(),
};
_ => backend.ToString(),
};
}
}