SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
4e23b01 verified
Raw History Blame Contribute Delete
2.01 kB
import { z } from 'zod';
import { isoDateTimeSchema, timelineMessageBase } from './base';
export const systemRemovedIdsPayloadSchema = z.object({
removed_ids: z.array(z.string().min(1)),
});
export type SystemRemovedIdsPayload = z.infer<typeof systemRemovedIdsPayloadSchema>;
const systemMessageBase = {
type: z.literal('system'),
...timelineMessageBase,
system_id: z.string().min(1),
at: isoDateTimeSchema.optional(),
};
export const systemMessageSchema = z.discriminatedUnion('subtype', [
z.object({
...systemMessageBase,
subtype: z.literal('compaction'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('undo'),
payload: systemRemovedIdsPayloadSchema,
}),
z.object({
...systemMessageBase,
subtype: z.literal('clear'),
payload: systemRemovedIdsPayloadSchema,
}),
z.object({
...systemMessageBase,
subtype: z.literal('goal'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('plan.enter'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('plan.exit'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('plan.revision'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('swarm.enter'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('swarm.exit'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('notice'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('hook'),
payload: z.unknown().optional(),
}),
z.object({
...systemMessageBase,
subtype: z.literal('interruption'),
payload: z.unknown().optional(),
}),
]);
export type SystemMessage = z.infer<typeof systemMessageSchema>;