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);
}
}