mirror of
https://github.com/aljazceru/goose.git
synced 2026-01-08 08:54:22 +01:00
feat: list moderators (#204)
This commit is contained in:
@@ -100,6 +100,26 @@ def list_toolkits() -> None:
|
||||
print(f" - [bold]{toolkit_name}[/bold]: {first_line_of_doc}")
|
||||
|
||||
|
||||
@goose_cli.group()
|
||||
def moderators() -> None:
|
||||
"""Manage moderators"""
|
||||
pass
|
||||
|
||||
|
||||
@moderators.command(name="list")
|
||||
def list_moderators() -> None:
|
||||
"""List available moderators"""
|
||||
from exchange.moderators import load_plugins
|
||||
|
||||
moderators = load_plugins(group="exchange.moderator")
|
||||
|
||||
print("[green]Available moderators:[/green]")
|
||||
for moderator_name, moderator in moderators.items():
|
||||
lines_doc = moderator.__doc__.split("\n") if moderator.__doc__ else ["No description available"]
|
||||
first_line_of_doc = lines_doc[0]
|
||||
print(f" - [bold]{moderator_name}[/bold]: {first_line_of_doc}")
|
||||
|
||||
|
||||
@goose_cli.group()
|
||||
def providers() -> None:
|
||||
"""Manage providers"""
|
||||
|
||||
@@ -163,3 +163,13 @@ def test_goose_no_args_print_help():
|
||||
assert "Usage:" in result.output
|
||||
assert "Options:" in result.output
|
||||
assert "Commands:" in result.output
|
||||
|
||||
|
||||
def test_moderators_list_command():
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(cli, ["moderators", "list"])
|
||||
assert result.exit_code == 0
|
||||
assert "Available moderators:" in result.output
|
||||
assert "passive" in result.output
|
||||
assert "summarize" in result.output
|
||||
assert "truncate" in result.output
|
||||
|
||||
Reference in New Issue
Block a user