// Copyright (c) Microsoft. All rights reserved. using System.Diagnostics.CodeAnalysis; using System.Text.Json.Serialization; using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; /// /// Represents the state of the agent's operating mode, stored in the session's . /// [Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] internal sealed class AgentModeState { /// /// Gets or sets the current operating mode of the agent. /// [JsonPropertyName("currentMode")] public string CurrentMode { get; set; } = "plan"; /// /// Gets or sets the previous mode before the last external change, if a mode change notification is pending. /// When non-null, indicates that the mode was changed externally and a notification should be injected. /// [JsonPropertyName("previousModeForNotification")] public string? PreviousModeForNotification { get; set; } }