import * as z from "zod/mini"; export const HOST_ACTION_OBSERVATION_LIMITS = { maxDefinitions: 100, maxKeyCharacters: 128, } as const; const hostActionObservationDefinitionSchema = z.strictObject({ version: z .number() .check(z.int(), z.positive(), z.maximum(Number.MAX_SAFE_INTEGER)), key: z .string() .check( z.trim(), z.minLength(1), z.maxLength(HOST_ACTION_OBSERVATION_LIMITS.maxKeyCharacters), ), }); export type HostActionObservationDefinition = z.output< typeof hostActionObservationDefinitionSchema >; export const hostActionDefinitionsObservationRequestSchema = z.strictObject({ definitions: z .array(hostActionObservationDefinitionSchema) .check( z.minLength(1), z.maxLength(HOST_ACTION_OBSERVATION_LIMITS.maxDefinitions), ), }); export type HostActionDefinitionsObservationRequest = z.output< typeof hostActionDefinitionsObservationRequestSchema >; export const hostActionDefinitionsObservationResponseSchema = z.strictObject({ observed: z.literal(true), }); export type HostActionDefinitionsObservationResponse = z.output< typeof hostActionDefinitionsObservationResponseSchema >;