import { z } from "zod";
import { wsManager } from "../services/websocket-manager.js";
const schema = z.object({
subscription_id: z.string().describe("Subscription ID to remove"),
});
export const unsubscribeRealtimeTool = {
name: "unsubscribe_realtime",
description: "Unsubscribe from a real-time feed. Source: subscription_id from subscribe_* response. Example: subscription_id=abc.",
parameters: schema,
execute: async (args: z.infer<typeof schema>) => {
try {
const removed = wsManager.unsubscribe(args.subscription_id);
return JSON.stringify({
subscription_id: args.subscription_id,
removed,
status: removed ? "unsubscribed" : "not_found",
});
} catch (error) {
return JSON.stringify({ error: error instanceof Error ? error.message : String(error) });
}
},
};