Skip to content

Interface: UIActionRequest

@kortexya/reasoninglayer


@kortexya/reasoninglayer / UIActionRequest

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

Request to execute a UI action.

actionType: string

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

Action type: "submit_form", "update_form", "delete_record", "trigger_inference", "run_osfql".


optional confirm?: boolean

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

Explicit go-ahead for destructive tiers. The server is the boundary: a destructive statement without confirm: true is refused and nothing is mutated.


optional dryRun?: boolean

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

Preview only: classify and (for destructive tiers) return the affected-row preview WITHOUT mutating. Defaults to false.


optional fieldTypes?: object | null

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

Feature name → value type, for the template substitution. Keys are sent verbatim.

A field typed "sort_ref" carries, in values, the id (a UUID) of a term of the range its sort declares; the engine stores it as a Reference to that term. A value that is not a UUID, or a sort_ref field whose sort declares no entity range, is refused with 400. A UUID that names no term, or a term the caller cannot see, answers 200 with success: false.


optional osfql?: string | null

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

Raw OSFQL override — gated server-side, rejected with 400 unless explicitly enabled.


optional osfqlTemplate?: string | null

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

OSFQL template with {field} placeholders the server substitutes from values. Used by run_osfql and by feature-based delete_record.


optional sortName?: string | null

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

The sort a submit_form, update_form or delete_record writes, named exactly as the tenant holds it (a CURIE such as ex:Widget works).

Refused with 400 when no sort has this name, when the name contains a backtick, or when values names a feature the sort does not declare (sort "ex:Widget" declares no feature "nope").


optional statementId?: string | null

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

Catalog statement id echoed from the descriptor action — audit/trace only.


optional termId?: string | null

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

The term to act on. A delete_record with no osfqlTemplate retracts exactly the term this id names, and an update_form edits it; both are refused with 400 when the value is not a UUID. A data view’s row carries this id in the column its descriptor’s props.rowKey names (__osf_term_id for the engine-generated query, the query’s own identity variable for a custom one). A view with no rowKey has rows with no term id. Do not hard-code __osf_term_id.

An update_form edits the term in place: it sets each value sent, removes each feature sent as null, and the term keeps its id, its own sort and every feature not sent. It is refused with 400 when the tenant holds no term under the id, or when sortName does not subsume the term’s own sort.


optional values?: object | null

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

Feature name → value. Sent verbatim at every depth.