Interface: UIGenerateRequest
@kortexya/reasoninglayer / UI / UIGenerateRequest
Interface: UIGenerateRequest
Defined in: src/types/ui.ts:249
Request to generate a certified UI specification from a natural-language prompt.
Remarks
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).
Properties
allowNewSorts?
optionalallowNewSorts:boolean
Defined in: src/types/ui.ts:254
Allow write actions targeting sorts absent from the live schema
(default: false — a generated UI writing to nonexistent schema is a hallucination).
basePage?
optionalbasePage:string|null
Defined in: src/types/ui.ts:260
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.
conversationId?
optionalconversationId:string|null
Defined in: src/types/ui.ts:264
Existing conversation to append this exchange to. Omit to start a new conversation.
interactive?
optionalinteractive:boolean|null
Defined in: src/types/ui.ts:269
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.
loadData?
optionalloadData:boolean
Defined in: src/types/ui.ts:271
Whether to execute the spec’s load query and inline real rows (default: true).
maxComponents?
optionalmaxComponents:number
Defined in: src/types/ui.ts:273
Maximum number of components (default: 120).
maxDepth?
optionalmaxDepth:number
Defined in: src/types/ui.ts:275
Maximum nesting depth (default: 8).
pipeline?
optionalpipeline:string|null
Defined in: src/types/ui.ts:281
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
prompt:
string
Defined in: src/types/ui.ts:283
What the user wants (“a dashboard of drugs with name and dosage…“).
saveAsPage?
optionalsaveAsPage:string|null
Defined in: src/types/ui.ts:285
Save the certified spec as a named, versioned page.
trace?
optionaltrace:boolean|null
Defined in: src/types/ui.ts:287
Dev/debug: request the per-stage catalog-pipeline trace.