// Copyright (c) Microsoft. All rights reserved.
namespace Harness.Shared.Console;
///
/// Represents the type of an output entry in the console conversation.
///
internal enum OutputEntryType
{
/// User input echo (e.g. "You: hello").
UserInput,
/// In-progress streaming text from the agent (accumulated chunk by chunk).
StreamingText,
/// Informational line (tool calls, errors, usage, approval requests, etc.).
InfoLine,
/// Stream footer (e.g. "(no text response from agent)").
StreamFooter,
/// Pending injected message notification.
PendingMessage,
}
///
/// Represents a single output entry in the console conversation history.
/// Used internally by to track
/// the in-progress streaming entry and last-entry type for spacing decisions.
///
/// The type of output entry.
/// The text content of the entry.
/// Optional foreground color for rendering.
internal sealed record OutputEntry(OutputEntryType Type, string Text, ConsoleColor? Color = null);