Skip to content

Type Alias: GenieThoughtType

GenieThoughtType = "THOUGHT_TYPE_DESCRIPTION" | "THOUGHT_TYPE_DATA_SOURCING" | "THOUGHT_TYPE_STEPS" | "THOUGHT_TYPE_UNDERSTANDING" | string & object

Genie’s per-query “thoughts” surface. These appear on the /messages/{id} wire under attachments[i].query.thoughts[] but are not typed on the SDK’s GenieQueryAttachment at v0.17.

Known thought types observed in production polls:

  • THOUGHT_TYPE_DESCRIPTION: a one-paragraph restatement of what the user asked. The final query.description field on the attachment carries the same text.
  • THOUGHT_TYPE_DATA_SOURCING: markdown bullets of the fully-qualified catalog.schema.table sources Genie chose.
  • THOUGHT_TYPE_STEPS: the high-level plan Genie wrote before running SQL (one bullet per step).
  • THOUGHT_TYPE_UNDERSTANDING: ambiguity / interpretation notes (e.g. “‘revenue’ could be interpreted as gross, net, or recognized revenue…”).

Open at the type level (| (string & {})) so a new server-side thought type doesn’t break compilation; the four known types still narrow correctly under switch.