File size: 1,251 Bytes
4e23b01 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import { z } from 'zod';
import { taskSchema, taskStatusSchema } from './task';
export const listTasksQuerySchema = z.object({
status: taskStatusSchema.optional(),
});
export type ListTasksQuery = z.infer<typeof listTasksQuerySchema>;
export const listTasksResponseSchema = z.object({
items: z.array(taskSchema),
});
export type ListTasksResponse = z.infer<typeof listTasksResponseSchema>;
export const getTaskQuerySchema = z.object({
with_output: z.coerce.boolean().optional(),
output_bytes: z.coerce.number().int().nonnegative().optional(),
});
export type GetTaskQuery = z.infer<typeof getTaskQuerySchema>;
export const getTaskResponseSchema = taskSchema;
export type GetTaskResponse = z.infer<typeof getTaskResponseSchema>;
export const cancelTaskResultSchema = z.object({
cancelled: z.literal(true),
});
export type CancelTaskResult = z.infer<typeof cancelTaskResultSchema>;
export const detachTaskResultSchema = z.object({
detached: z.boolean(),
status: taskStatusSchema,
});
export type DetachTaskResult = z.infer<typeof detachTaskResultSchema>;
export const taskAlreadyFinishedDataSchema = z.object({
cancelled: z.literal(false),
});
export type TaskAlreadyFinishedData = z.infer<typeof taskAlreadyFinishedDataSchema>;
|