Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions shell/AIShell.Kernel/Command/ClearCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public ClearCommand()
: base("cls", "Clear the screen.")
{
this.SetHandler(ClearAction);
this.AddAlias("clear");
}

private void ClearAction()
Expand Down
17 changes: 15 additions & 2 deletions shell/AIShell.Kernel/Command/CommandRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,14 @@ internal void LoadCommands(IEnumerable<CommandBase> commands, string agentName)
{
command.Shell = _shell;
command.Source = agentName;
_commands.Add(command.Name, command);

// The 'command.Name' is included in the 'command.Aliases' collection.
// TODO: need to think about how to handle command names/aliases collision.
// We don't handle collision today -- it will throw when collision happens.
foreach (string alias in command.Aliases)
{
_commands.Add(alias, command);
}
}
}

Expand All @@ -79,7 +86,13 @@ internal void UnloadAgentCommands()

foreach (var command in agentCommands)
{
_commands.Remove(command.Name);
// The 'command.Name' is included in the 'command.Aliases' collection.
// TODO: need to update accordingly when we handle command names/aliases collision.
foreach (string alias in command.Aliases)
{
_commands.Remove(alias);
}

command.Dispose();
}
}
Expand Down
2 changes: 1 addition & 1 deletion shell/AIShell.Kernel/Command/HelpCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ private void HelpAction()
var host = shellImpl.Host;

var commands = shellImpl.CommandRunner.Commands;
var list = commands.Values.Order(new CommandComparer()).ToList();
var list = commands.Values.Distinct().Order(new CommandComparer()).ToList();

host.WriteLine();
host.MarkupLine("[bold white]-[/] Type then press [bold olive underline]Enter[/] to chat with the chosen AI agent.");
Expand Down