spb/autoscholar
Public
1import { z } from "zod";2import { Discipline } from "./modes.js";34export const LoginRequest = z.object({5 username: z.string().min(1).max(64),6 password: z.string().min(1).max(512),7});8export const ChangePasswordRequest = z9 .object({10 currentPassword: z.string().min(1).max(512),11 newPassword: z.string().min(12).max(512),12 confirm: z.string(),13 })14 .refine((v) => v.newPassword === v.confirm, { message: "Passwords do not match", path: ["confirm"] });1516export const CreateProjectRequest = z.object({17 title: z.string().min(3).max(200),18 discipline: Discipline,19 description: z.string().max(2000).default(""),20});2122export const UploadInstructionRequest = z.object({23 filename: z.string().max(200).default("CLAUDE.md"),24 content: z.string().min(1),25 note: z.string().max(500).optional(),26});2728export const INSTRUCTION_MAX_BYTES = 256 * 1024;29