import { z } from "zod"; import { Discipline } from "./modes.js"; export const LoginRequest = z.object({ username: z.string().min(1).max(64), password: z.string().min(1).max(512), }); export const ChangePasswordRequest = z .object({ currentPassword: z.string().min(1).max(512), newPassword: z.string().min(12).max(512), confirm: z.string(), }) .refine((v) => v.newPassword === v.confirm, { message: "Passwords do not match", path: ["confirm"] }); export const CreateProjectRequest = z.object({ title: z.string().min(3).max(200), discipline: Discipline, description: z.string().max(2000).default(""), }); export const UploadInstructionRequest = z.object({ filename: z.string().max(200).default("CLAUDE.md"), content: z.string().min(1), note: z.string().max(500).optional(), }); export const INSTRUCTION_MAX_BYTES = 256 * 1024;