import { z } from 'zod'; /** * Notification categories the user can independently toggle. * * - chat_completion: an agent finished generating a response * - new_email: a new email arrived during incremental Gmail sync * - agent_permission: an agent is requesting permission to run a tool */ export const NotificationCategorySchema = z.enum([ 'chat_completion', 'new_email', 'agent_permission', ]); export const NotificationCategoriesSchema = z.object({ chat_completion: z.boolean(), new_email: z.boolean(), agent_permission: z.boolean(), }); export const NotificationSettingsSchema = z.object({ categories: NotificationCategoriesSchema, }); export const DEFAULT_NOTIFICATION_SETTINGS: NotificationSettings = { categories: { chat_completion: true, new_email: true, agent_permission: true, }, }; export type NotificationCategory = z.infer; export type NotificationCategories = z.infer; export type NotificationSettings = z.infer;