spb/autoscholar
Public
1import { z } from "zod";23/** Research modes supported by the platform. Mixed-mode studies list a primary mode plus secondary modes. */4export const ResearchMode = z.enum([5 "empirical",6 "computational",7 "theoretical",8 "review",9 "experimental",10 "humanities",11]);12export type ResearchMode = z.infer<typeof ResearchMode>;1314export const RESEARCH_MODE_LABELS: Record<ResearchMode, string> = {15 empirical: "Empirical",16 computational: "Computational",17 theoretical: "Theoretical",18 review: "Review",19 experimental: "Experimental",20 humanities: "Humanities",21};2223export const Discipline = z.enum([24 "economics",25 "finance",26 "mathematics",27 "statistics",28 "computer-science",29 "physics",30 "chemistry",31 "biology",32 "medicine",33 "engineering",34 "earth-sciences",35 "social-sciences",36 "psychology",37 "humanities",38 "law",39 "education",40 "interdisciplinary",41]);42export type Discipline = z.infer<typeof Discipline>;4344export const DISCIPLINE_LABELS: Record<Discipline, string> = {45 economics: "Economics",46 finance: "Finance",47 mathematics: "Mathematics",48 statistics: "Statistics",49 "computer-science": "Computer Science",50 physics: "Physics",51 chemistry: "Chemistry",52 biology: "Biology",53 medicine: "Medicine & Health",54 engineering: "Engineering",55 "earth-sciences": "Earth & Environmental Sciences",56 "social-sciences": "Social Sciences",57 psychology: "Psychology",58 humanities: "Humanities",59 law: "Law",60 education: "Education",61 interdisciplinary: "Interdisciplinary",62};6364/** Research-mode profile: what evidence the artifact contract requires before publication. */65export const ModeProfile = z.object({66 mode: ResearchMode,67 requiredArtifacts: z.array(z.string()),68 requiredEvidence: z.array(z.string()),69 autoPublishAllowed: z.boolean(),70 humanReviewRequired: z.boolean(),71 description: z.string(),72});73export type ModeProfile = z.infer<typeof ModeProfile>;74