UNPKG

@neuroequality/neuroadapt-core

Version:

Core sensory, cognitive, and preference management for NeuroAdapt SDK

58 lines (57 loc) 2.3 kB
import { z } from "zod"; const SCHEMA_VERSION = "1.1.0"; const SensoryPreferencesSchema = z.object({ motionReduction: z.boolean().default(false), highContrast: z.boolean().default(false), colorVisionFilter: z.enum(["none", "protanopia", "deuteranopia", "tritanopia"]).default("none"), fontSize: z.number().min(0.5).max(3).default(1), reducedFlashing: z.boolean().default(false), darkMode: z.boolean().default(false) }); const CognitivePreferencesSchema = z.object({ readingSpeed: z.enum(["slow", "medium", "fast"]).default("medium"), explanationLevel: z.enum(["simple", "detailed", "expert"]).default("detailed"), processingPace: z.enum(["relaxed", "standard", "quick"]).default("standard"), chunkSize: z.number().min(1).max(10).default(5), allowInterruptions: z.boolean().default(true), preferVisualCues: z.boolean().default(false) }); const AIPreferencesSchema = z.object({ tone: z.enum(["calm-supportive", "neutral", "enthusiastic", "professional"]).default("neutral"), responseLength: z.enum(["brief", "standard", "detailed"]).default("standard"), consistencyLevel: z.enum(["adaptive", "moderate", "high"]).default("moderate"), useAnalogies: z.boolean().default(true), allowUndo: z.boolean().default(true) }); const VRPreferencesSchema = z.object({ comfortRadius: z.number().min(0.5).max(5).default(1.5), safeSpaceEnabled: z.boolean().default(true), locomotionType: z.enum(["teleport", "smooth", "comfort"]).default("comfort"), personalSpace: z.number().min(0.5).max(3).default(1), panicButtonEnabled: z.boolean().default(true) }); const PreferencesSchema = z.object({ schemaVersion: z.string().default(SCHEMA_VERSION), userId: z.string().optional(), profileName: z.string().optional(), lastModified: z.string().datetime().optional(), sensory: SensoryPreferencesSchema, cognitive: CognitivePreferencesSchema, ai: AIPreferencesSchema, vr: VRPreferencesSchema, metadata: z.record(z.unknown()).optional() }); const PreferencesUpdateSchema = PreferencesSchema.partial().omit({ schemaVersion: true, lastModified: true }); export { AIPreferencesSchema, CognitivePreferencesSchema, PreferencesSchema, PreferencesUpdateSchema, SCHEMA_VERSION, SensoryPreferencesSchema, VRPreferencesSchema }; //# sourceMappingURL=schemas.js.map