Skip to content

ClientEnvelopeSchema

const ClientEnvelopeSchema: ZodDiscriminatedUnion<[ZodObject<{ id: ZodPipe<ZodString, ZodTransform<MessageId, string>>; request: ZodObject<{ context: ZodObject<{ chartDimensions: ZodObject<{ columns: ZodNumber; rows: ZodNumber; }, $strip>; layoutMode: ZodEnum<{ grid: "grid"; tiling: "tiling"; }>; updateReasons: ZodArray<ZodDiscriminatedUnion<[…, …, …], "type">>; }, $strip>; instances: ZodArray<ZodObject<{ instanceId: ZodPipe<ZodString, ZodTransform<…, …>>; variant: ZodPipe<ZodString, ZodTransform<…, …>>; vesselId: ZodPipe<ZodString, ZodTransform<…, …>>; }, $strip>>; layout: ZodDiscriminatedUnion<[ZodObject<{ positions: ZodArray<…>; type: ZodLiteral<…>; }, $strip>, ZodObject<{ instances: ZodArray<…>; tree: ZodArray<…>; type: ZodLiteral<…>; }, $strip>], "type">; type: ZodLiteral<"chart_request">; vessels: ZodArray<ZodObject<{ defaultVariant: ZodPipe<ZodString, ZodTransform<…, …>>; description: ZodString; id: ZodPipe<ZodString, ZodTransform<…, …>>; name: ZodString; variants: ZodRecord<ZodPipe<…, …>, ZodObject<…, …>>; }, $strip>>; }, $strip>; sessionId: ZodPipe<ZodString, ZodTransform<SessionId, string>>; timestamp: ZodNumber; type: ZodLiteral<"chart_request">; }, $strip>, ZodObject<{ content: ZodString; id: ZodPipe<ZodString, ZodTransform<MessageId, string>>; sessionId: ZodPipe<ZodString, ZodTransform<SessionId, string>>; timestamp: ZodNumber; type: ZodLiteral<"assistant_message">; }, $strip>, ZodObject<{ content: ZodString; id: ZodPipe<ZodString, ZodTransform<MessageId, string>>; sessionId: ZodPipe<ZodString, ZodTransform<SessionId, string>>; timestamp: ZodNumber; type: ZodLiteral<"client.assistant_message.acknowledged">; }, $strip>, ZodObject<{ id: ZodPipe<ZodString, ZodTransform<MessageId, string>>; sessionId: ZodPipe<ZodString, ZodTransform<SessionId, string>>; type: ZodLiteral<"client.history.get">; }, $strip>], "type">

Defined in: packages/protocol/src/lib/envelope.ts:191

Wire-format Zod parser for the ClientEnvelope union. Reuses EngineMessageSchema’s members by reference and adds the transport arms, so the chart_request / assistant_message contracts stay defined in exactly one place.