using LLM.Editor.Data; namespace LLM.Editor.Commands { /// /// Defines the possible outcomes of a command's execution. /// public enum CommandOutcome { /// /// The command completed successfully and the queue can proceed. /// Success, /// /// The command failed and the queue should be stopped. /// Error, /// /// The command has gathered context and is now waiting for the next /// turn of conversation with the LLM before the queue can proceed. /// AwaitingNextTurn } public interface ICommand { /// /// Executes the command. /// /// A context object to pass runtime data between commands. public CommandOutcome Execute(CommandContext context); } }