Skip to content

Variable: QuestionEventSchema

const QuestionEventSchema: ZodObject<{ content: ZodString; conversation_id: ZodOptional<ZodString>; message_id: ZodOptional<ZodString>; space_id: ZodString; type: ZodLiteral<"question">; }, $strip>

Lifecycle event: the question this turn is asking Genie. Fires once per genieEventChat call, the first time the underlying genieChat loop yields a GenieMessage. Carries the prompt text Genie echoed back on message.content and the assigned message_id so subscribers can group every subsequent event for this turn under one stable key. conversation_id is populated for both opening and follow-up turns (Genie assigns it on startConversation).

Deferred (instead of fired synchronously on entry) so the message_id is available when the event lands - that one round trip costs ~200ms but lets UIs render question / thinking / query / text as a single grouped block per Genie call instead of a flat stream.

attachment_id is intentionally absent - questions are turn scoped, not attachment scoped.