<#@ template language="C#" inherits="CodeTemplate, IModeledAction" visibility="internal" linePragmas="false" #> <#@ import namespace="Microsoft.Agents.AI.Workflows.Declarative.Extensions" #> <#@ import namespace="Microsoft.Agents.AI.Workflows.Declarative.Interpreter" #> <#@ import namespace="Microsoft.Bot.ObjectModel" #> <#@ assembly name="System.Core" #> /// /// The root executor for a declarative workflow. /// internal sealed class <#= this.TypeName #>Executor( DeclarativeWorkflowOptions options, Func inputTransform) : RootExecutor("<#= this.Id #>", options, inputTransform) where TInput : notnull { protected override async ValueTask ExecuteAsync(TInput message, IWorkflowContext context, CancellationToken cancellationToken) {<# if (this.TypeInfo.EnvironmentVariables.Count > 0) { #> // Set environment variables await this.InitializeEnvironmentAsync( context,<# int index = this.TypeInfo.EnvironmentVariables.Count - 1; foreach (string variableName in this.TypeInfo.EnvironmentVariables) {#> "<#= variableName #>"<#= index > 0 ? "," : "" #><# --index; }#>).ConfigureAwait(false); <#} if (this.TypeInfo.UserVariables.Count > 0) { #> // Initialize variables<# foreach (VariableInformationDiagnostic variableInfo in this.TypeInfo.UserVariables) {#> await context.QueueStateUpdateAsync("<#= variableInfo.Path.VariableName #>", UnassignedValue.Instance, "<#= variableInfo.Path.NamespaceAlias #>").ConfigureAwait(false);<# } }#> } }