Skip to content

Interface: UIGenerateRequest

@kortexya/reasoninglayer


@kortexya/reasoninglayer / UIGenerateRequest

Defined in: src/types/ui.ts:495

Request to generate a certified UI specification from a natural-language prompt.

The pipeline is certify-or-abstain: an LLM proposes a component tree over the UiSort vocabulary, the exact engine screens every component sort, data binding, load query and action against the tenant’s live schema, and either certifies the spec, repairs it once, or abstains with suggestions. Rows always come from OSFQL execution after certification — never from the model.

The tenant is taken from the authenticated principal (never a body field).

optional allowNewSorts?: boolean

Defined in: src/types/ui.ts:500

Allow write actions targeting sorts absent from the live schema (default: false — a generated UI writing to nonexistent schema is a hallucination).


optional basePage?: string | null

Defined in: src/types/ui.ts:506

Iterate on an existing page: its latest version is embedded in the prompt as “the current interface” and UIGenerateRequest.prompt becomes the change instruction. The result saves as the page’s next version.


optional conversationId?: string | null

Defined in: src/types/ui.ts:514

Existing conversation to append this exchange to. Omit to start a new conversation.

It must name a generative_ui conversation of the caller: an id the caller does not own is refused 404, a conversation of another kind 409.


optional interactive?: boolean | null

Defined in: src/types/ui.ts:519

Frontend metadata: whether the generated app renders its write controls as live (interactive) vs preview-only. Passed through untouched; the backend does not branch on it.


optional loadData?: boolean

Defined in: src/types/ui.ts:521

Whether to execute the spec’s load query and inline real rows (default: true).


optional maxComponents?: number

Defined in: src/types/ui.ts:523

Maximum number of components (default: 120).


optional maxDepth?: number

Defined in: src/types/ui.ts:525

Maximum nesting depth (default: 8).


optional pipeline?: string | null

Defined in: src/types/ui.ts:531

Which generation pipeline to run: "classic" (default — single-call certify-or-abstain) or "catalog" (the intent pipeline). Catalog mode only applies to a fresh screen: iteration on a UIGenerateRequest.basePage always runs classic.


prompt: string

Defined in: src/types/ui.ts:533

What the user wants (“a dashboard of drugs with name and dosage…”).


optional saveAsPage?: string | null

Defined in: src/types/ui.ts:535

Save the certified spec as a named, versioned page.


optional trace?: boolean | null

Defined in: src/types/ui.ts:537

Dev/debug: request the per-stage catalog-pipeline trace.