import { z } from "zod";
/**
* Zod schemas for tool input validation
*/
export const SearXNGSearchSchema = z.object({
query: z.string().min(1, "Search query is required"),
categories: z.string().optional().describe("Comma-separated categories: general, images, news, videos, etc."),
engines: z.string().optional().describe("Comma-separated engine names to use"),
language: z.string().optional().describe("Search language (e.g., 'en', 'ja')"),
pageno: z.number().int().positive().max(100).optional().describe("Page number (default: 1)"),
});
export type SearXNGSearchArgs = z.infer<typeof SearXNGSearchSchema>;
export const SearXNGImagesSchema = z.object({
query: z.string().min(1, "Search query is required"),
engines: z.string().optional().describe("Comma-separated engine names to use"),
language: z.string().optional().describe("Search language (e.g., 'en', 'ja')"),
pageno: z.number().int().positive().max(100).optional().describe("Page number (default: 1)"),
});
export type SearXNGImagesArgs = z.infer<typeof SearXNGImagesSchema>;
export const SearXNGNewsSchema = z.object({
query: z.string().min(1, "Search query is required"),
engines: z.string().optional().describe("Comma-separated engine names to use"),
language: z.string().optional().describe("Search language (e.g., 'en', 'ja')"),
pageno: z.number().int().positive().max(100).optional().describe("Page number (default: 1)"),
});
export type SearXNGNewsArgs = z.infer<typeof SearXNGNewsSchema>;