import { z } from 'zod';
export const InstructionMapSchema = z.record(z.string());
export const ToolConfigSchema = z.object({
title: z.string().min(1, 'Title is required'),
description: z.string().min(1, 'Description is required'),
default: z.string().optional(),
instructions: InstructionMapSchema,
});
export const ConfigSchema = z.object({
version: z.literal('1'),
tools: z.record(ToolConfigSchema),
});
export type InstructionMap = z.infer<typeof InstructionMapSchema>;
export type ToolConfig = z.infer<typeof ToolConfigSchema>;
export type Config = z.infer<typeof ConfigSchema>;
export interface MCPTool {
name: string;
description: string;
inputSchema: {
type: 'object';
properties: {
instruction: {
type: 'string';
enum: string[];
description: string;
default?: string;
};
};
required: string[];
};
}
export interface ToolCallArgs {
instruction?: string;
}
export interface ValidationError {
tool: string;
message: string;
}