import { z } from "zod";
import { wsManager } from "../services/websocket-manager.js";
const schema = z.object({
market_ids: z
.array(z.string())
.min(1)
.describe("List of market condition IDs to monitor for resolution"),
callback_type: z
.enum(["notification", "log"])
.optional()
.default("notification")
.describe("How to receive updates"),
});
export const subscribeMarketResolutionTool = {
name: "subscribe_market_resolution",
description:
"Subscribe to market resolution alerts by condition IDs. Source: list_markets/list_active_markets/get_market_by_slug. Example: market_ids=[conditionId].",
parameters: schema,
execute: async (args: z.infer<typeof schema>) => {
try {
const id = wsManager.subscribe({
type: "market_resolved",
markets: args.market_ids,
callbackType: args.callback_type,
});
return JSON.stringify({ subscription_id: id, status: "subscribed", markets: args.market_ids });
} catch (error) {
return JSON.stringify({ error: error instanceof Error ? error.message : String(error) });
}
},
};