@neuroequality/neuroadapt-core
Version:
Core sensory, cognitive, and preference management for NeuroAdapt SDK
58 lines (57 loc) • 2.3 kB
JavaScript
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