// Copyright (c) Microsoft. All rights reserved.
using Microsoft.Extensions.AI;
namespace Microsoft.Agents.AI.Workflows;
///
/// Configuration options hosting AI Agents as an Executor.
///
public sealed class AIAgentHostOptions
{
///
/// Gets or sets a value indicating whether agent streaming update events should be emitted during execution.
/// If , the value will be taken from the
///
public bool? EmitAgentUpdateEvents { get; set; }
///
/// Gets or sets a value indicating whether aggregated agent response events should be emitted during execution.
///
public bool EmitAgentResponseEvents { get; set; }
///
/// Gets or sets a value indicating whether should be intercepted and sent
/// as a message to the workflow for handling, instead of being raised as a request.
///
public bool InterceptUserInputRequests { get; set; }
///
/// Gets or sets a value indicating whether without a corresponding
/// should be intercepted and sent as a message to the workflow for handling,
/// instead of being raised as a request.
///
public bool InterceptUnterminatedFunctionCalls { get; set; }
///
/// Gets or sets a value indicating whether other messages from other agents should be assigned to the
/// role during execution.
///
public bool ReassignOtherAgentsAsUsers { get; set; } = true;
///
/// Gets or sets a value indicating whether incoming messages are automatically forwarded before new messages generated
/// by the agent during its turn.
///
public bool ForwardIncomingMessages { get; set; } = true;
}