// Copyright (c) Microsoft. All rights reserved. using System.Text.Json.Serialization; namespace Microsoft.Agents.AI.Workflows; /// /// Base class for -scoped events. /// [JsonDerivedType(typeof(ExecutorEvent))] [JsonDerivedType(typeof(SuperStepEvent))] [JsonDerivedType(typeof(WorkflowStartedEvent))] [JsonDerivedType(typeof(WorkflowErrorEvent))] [JsonDerivedType(typeof(WorkflowWarningEvent))] [JsonDerivedType(typeof(WorkflowOutputEvent))] [JsonDerivedType(typeof(RequestInfoEvent))] public class WorkflowEvent(object? data = null) { /// /// Optional payload /// public object? Data => data; /// public override string ToString() => this.Data is not null ? $"{this.GetType().Name}(Data: {this.Data.GetType()} = {this.Data})" : $"{this.GetType().Name}()"; }