import { z } from "zod";
import { api } from "../services/api.js";
const listActiveMarketsSchema = z.object({
limit: z
.number()
.max(100)
.optional()
.default(20)
.describe("Number of markets to return (default: 20, max: 100)"),
offset: z
.number()
.optional()
.default(0)
.describe("Number of markets to skip for pagination (default: 0)"),
order: z
.string()
.optional()
.default("volume24hr")
.describe(
"Sort field (default: volume24hr). Options: volume24hr, liquidity, startDate, endDate",
),
});
export const listActiveMarketsTool = {
name: "list_active_markets",
description:
"List active markets sorted by volume. Use clobTokenIds/conditionId from results for CLOB or Data API tools. Example: limit=20, order=volume24hr.",
parameters: listActiveMarketsSchema,
execute: async (args: z.infer<typeof listActiveMarketsSchema>) => {
try {
const data = await api.listActiveMarkets(
args.limit,
args.offset,
args.order,
);
return JSON.stringify(data, null, 2);
} catch (error) {
return JSON.stringify({
error: error instanceof Error ? error.message : String(error),
});
}
},
};