// Copyright (c) Microsoft. All rights reserved.
using Microsoft.Agents.AI.Workflows;
namespace Microsoft.Agents.AI.DurableTask.Workflows;
///
/// Represents an executor in the workflow with its metadata.
///
/// The unique identifier of the executor.
/// Indicates whether this executor is an agentic executor.
/// The request port if this executor is a request port executor; otherwise, null.
/// The sub-workflow if this executor is a sub-workflow executor; otherwise, null.
internal sealed record WorkflowExecutorInfo(
string ExecutorId,
bool IsAgenticExecutor,
RequestPort? RequestPort = null,
Workflow? SubWorkflow = null)
{
///
/// Gets a value indicating whether this executor is a request port executor (human-in-the-loop).
///
public bool IsRequestPortExecutor => this.RequestPort is not null;
///
/// Gets a value indicating whether this executor is a sub-workflow executor.
///
public bool IsSubworkflowExecutor => this.SubWorkflow is not null;
}