import { createTool } from "@mastra/core/tools"; import { z } from "zod"; import type { ChatMemberService } from "../../chat-member-service.js"; import { formatChatMembers } from "../format-chat-members.js"; import { assistantRequestContextSchema } from "./request-context.js"; export const createListChatMembersTool = (chatMemberService: ChatMemberService) => createTool({ id: "list_chat_members", description: "Список участников текущего чата, которых бот видел: имя, фамилия, ник, число сообщений и последняя активность. " + "Вызывай, чтобы понять, о ком речь, когда человека называют по имени, прозвищу или уменьшительной форме " + "(«Ваня» — это Иван), или когда спрашивают про участников и их активность.", inputSchema: z.object({}), requestContextSchema: assistantRequestContextSchema, execute: async (_input, { requestContext }) => { const members = chatMemberService.list(requestContext.get("chatId")); return { count: members.length, members: members.length > 0 ? formatChatMembers(members) : "Бот пока не видел участников в этом чате.", }; }, });