// Copyright (c) Microsoft. All rights reserved. namespace Harness.Shared.Console; /// /// Configuration options for . /// public class HarnessConsoleOptions { /// /// Gets or sets the optional maximum context window size in tokens. /// When set, token usage is displayed as a percentage of the budget. /// public int? MaxContextWindowTokens { get; set; } /// /// Gets or sets the optional maximum output tokens. /// Used with to show input/output budget breakdown. /// public int? MaxOutputTokens { get; set; } /// /// Gets or sets a value indicating whether the planning UX is enabled. /// When and the agent is in the mode specified by , /// the console uses structured output to present clarification questions and approval requests /// instead of streaming free-form text. /// /// Defaults to . public bool EnablePlanningUx { get; set; } /// /// Gets or sets the name of the agent mode that activates the planning UX. /// Must be set when is . /// public string? PlanningModeName { get; set; } /// /// Gets or sets the name of the agent mode to switch to when the user approves a plan. /// Must be set when is . /// public string? ExecutionModeName { get; set; } /// /// Gets or sets a mapping of agent mode names to console colors. /// When a mode is not found in this dictionary, the default color () is used. /// public Dictionary ModeColors { get; set; } = new(StringComparer.OrdinalIgnoreCase) { ["plan"] = ConsoleColor.Cyan, ["execute"] = ConsoleColor.Green, }; }