// Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Agents.AI.Purview.Models.Common; using Microsoft.Extensions.AI; namespace Microsoft.Agents.AI.Purview; /// /// Orchestrates the processing of scoped content by combining protection scope, process content, and content activities operations. /// internal interface IScopedContentProcessor { /// /// Process a list of messages. /// The list of messages should be a prompt or response. /// /// A list of objects sent to the agent or received from the agent.. /// The thread where the messages were sent. /// An activity to indicate prompt or response. /// Purview settings containing tenant id, app name, etc. /// The user who sent the prompt or is receiving the response. /// Cancellation token. /// A bool indicating if the request should be blocked and the user id of the user who made the request. Task<(bool shouldBlock, string? userId)> ProcessMessagesAsync(IEnumerable messages, string? threadId, Activity activity, PurviewSettings purviewSettings, string? userId, CancellationToken cancellationToken); }