Project Files
src / schemas.ts
import { z } from "zod";
export const patchSchema = z.object({
file: z.string().min(1),
operation: z.enum(["overwrite", "replace", "insert_before", "insert_after", "delete"]),
target: z.string().optional(),
content: z.string().optional(),
});
export const buildPlanSchema = z.object({
pluginName: z.string().min(1),
summary: z.string().min(1),
targetDir: z.string().optional(),
files: z.array(z.object({ path: z.string().min(1), purpose: z.string().min(1) })).default([]),
notes: z.array(z.string()).optional(),
});
export const buildReviewSchema = z.object({
passed: z.boolean(),
issues: z.array(z.string()).default([]),
});
export const patchListSchema = z.object({
patches: z.array(patchSchema).max(40),
});