use polyc_llm::ToolSpec;
use serde_json::json;
pub const TOOL_NAME: &str = "list_admins";
pub const ALL: &[&str] = &[TOOL_NAME];
#[must_use]
pub fn all_specs() -> Vec<ToolSpec> {
vec![list_admins_spec()]
}
#[must_use]
pub fn list_admins_spec() -> ToolSpec {
ToolSpec::new(
TOOL_NAME,
"For an admin only: list who currently has the admin role. Use it when an admin asks \
who the admins are, who else can approve something, or who can invite and remove \
people — for example \"who are the admins here\" or \"who else has admin\". Takes no \
arguments. The list is complete: every admin on this Polychrome instance, named, \
wherever each of them works with it — so you can answer with all of them. Each entry \
carries reachable_here. When that is false the entry has no user_id: there is no \
account here to mention, so name that person in plain text. It never means they are \
unknown or that anything went wrong, so name them like anyone else. An entry with no \
name at all came through without one — say that entry has no name rather than guessing \
at who it is. If the person asking isn't an admin, it returns a refusal instead of a \
list.",
json!({
"type": "object",
"properties": {},
"additionalProperties": false
}),
)
.titled("List the admins (admin)")
.read_only()
}