<#@ template language="C#" inherits="ActionTemplate" visibility="internal" linePragmas="false" #> <#@ output extension=".cs" #> <#@ assembly name="System.Core" #> <#@ include file="Snippets/Index.tt" once="true" #> /// /// Retrieves a specific message from an agent conversation. /// internal sealed class <#= this.Name #>Executor(FormulaSession session, WorkflowAgentProvider agentProvider) : ActionExecutor(id: "<#= this.Id #>", session) { // protected override async ValueTask ExecuteAsync(IWorkflowContext context, CancellationToken cancellationToken) {<# EvaluateStringExpression(this.Model.ConversationId, "conversationId"); EvaluateIntExpression(this.Model.Limit, "limit"); EvaluateStringExpression(this.Model.MessageAfter, "after", isNullable: true); EvaluateStringExpression(this.Model.MessageBefore, "before", isNullable: true); EvaluateEnumExpression(this.Model.SortOrder, "newestFirst", SortMap, defaultValue: DefaultSort); #> IAsyncEnumerable messagesResult = agentProvider.GetMessagesAsync( conversationId, limit, after, before, newestFirst, cancellationToken); List messages = []; await foreach (ChatMessage message in messagesResult.ConfigureAwait(false)) { messages.Add(message); }<# AssignVariable(this.Model.Messages, "messages"); #> return default; } }