import type { ToolRegistration } from "@/types";
import { evolutionApi } from "@/utils/evolutionApi";
import { makeJsonSchema } from "@/utils/makeJsonSchema";
import { getEvolutionSettingsSchema, type GetEvolutionSettingsSchema } from "./schema";
export async function getEvolutionSettings(args: GetEvolutionSettingsSchema) {
const { instanceName } = args;
const result = await evolutionApi.getSettings(instanceName);
return result;
}
export const getEvolutionSettingsTool: ToolRegistration<GetEvolutionSettingsSchema> = {
name: "get_evolution_settings",
description: "Retrieve the current behavior settings for a WhatsApp instance including call handling, message receipts, and online status settings",
inputSchema: makeJsonSchema(getEvolutionSettingsSchema),
handler: async (args: GetEvolutionSettingsSchema) => {
try {
const result = await getEvolutionSettings(args);
const settings = result.settings.settings;
return {
content: [
{
type: "text",
text: `π Settings for ${args.instanceName}:
β’ ${settings.alwaysOnline ? 'β' : 'β'} Always online
β’ ${settings.readMessages ? 'β' : 'β'} Read receipts
β’ ${settings.readStatus ? 'β' : 'β'} Read status
β’ ${settings.rejectCall ? 'β' : 'β'} Auto-reject calls
β’ ${settings.groupsIgnore ? 'β' : 'β'} Ignore groups
β’ ${settings.syncFullHistory ? 'β' : 'β'} Sync full history
${settings.msgCall ? 'β’ Call rejection message: "' + settings.msgCall + '"' : ''}`
}
]
};
} catch (error) {
console.error("Error in getEvolutionSettingsTool handler:", error);
return {
content: [
{
type: "text",
text: `β Failed to retrieve settings: ${error instanceof Error ? error.message : String(error)}`
}
]
};
}
},
};