// Copyright (c) Microsoft. All rights reserved.
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Microsoft.Shared.DiagnosticIds;
namespace Microsoft.Agents.AI.Foundry.Hosting;
///
/// Options for Foundry Toolbox MCP integration.
///
[Experimental(DiagnosticIds.Experiments.AIOpenAIResponses)]
public sealed class FoundryToolboxOptions
{
///
/// Gets the list of toolbox names to connect to at startup.
/// Each name corresponds to a toolbox registered in the Foundry project.
/// The platform proxy URL is constructed as:
/// {FOUNDRY_PROJECT_ENDPOINT}/toolboxes/{toolboxName}/mcp?api-version={ApiVersion}
/// per tools-integration-spec.md §2–§3.
///
public IList ToolboxNames { get; } = [];
///
/// Gets or sets the Toolboxes API version to use when constructing proxy URLs.
///
public string ApiVersion { get; set; } = "v1";
///
/// Gets or sets a value indicating whether per-request toolbox markers (referenced via
/// foundry-toolbox:// on the wire) are restricted to toolboxes pre-registered
/// via . When (the default), a request
/// that references an unknown toolbox is rejected. When , the
/// server lazily opens an MCP connection for the referenced toolbox on first use and
/// caches it.
///
public bool StrictMode { get; set; } = true;
///
/// For testing only: overrides the toolbox proxy base URL (skipping the
/// FOUNDRY_PROJECT_ENDPOINT-derived default). When set, the proxy URL
/// becomes {EndpointOverride}/toolboxes/{toolboxName}/mcp?api-version={ApiVersion}.
/// Not part of the public API.
///
internal string? EndpointOverride { get; set; }
}