mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-06-24 20:28:16 +02:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
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<typeof NotificationCategorySchema>;
|
|
export type NotificationCategories = z.infer<typeof NotificationCategoriesSchema>;
|
|
export type NotificationSettings = z.infer<typeof NotificationSettingsSchema>;
|