Interface: UIActionRequest
@kortexya/reasoninglayer / UIActionRequest
Interface: UIActionRequest
Section titled “Interface: UIActionRequest”Defined in: src/types/ui.ts:301
Request to execute a UI action.
Properties
Section titled “Properties”actionType
Section titled “actionType”actionType:
string
Defined in: src/types/ui.ts:303
Action type: "submit_form", "update_form", "delete_record", "trigger_inference", "run_osfql".
confirm?
Section titled “confirm?”
optionalconfirm?: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.
dryRun?
Section titled “dryRun?”
optionaldryRun?: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.
fieldTypes?
Section titled “fieldTypes?”
optionalfieldTypes?:object|null
Defined in: src/types/ui.ts:324
Feature name → value type, for the template substitution. Keys are sent verbatim.
Remarks
Section titled “Remarks”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.
osfql?
Section titled “osfql?”
optionalosfql?:string|null
Defined in: src/types/ui.ts:326
Raw OSFQL override — gated server-side, rejected with 400 unless explicitly enabled.
osfqlTemplate?
Section titled “osfqlTemplate?”
optionalosfqlTemplate?: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.
sortName?
Section titled “sortName?”
optionalsortName?: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).
Remarks
Section titled “Remarks”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").
statementId?
Section titled “statementId?”
optionalstatementId?:string|null
Defined in: src/types/ui.ts:343
Catalog statement id echoed from the descriptor action — audit/trace only.
termId?
Section titled “termId?”
optionaltermId?: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.
Remarks
Section titled “Remarks”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.
values?
Section titled “values?”
optionalvalues?:object|null
Defined in: src/types/ui.ts:362
Feature name → value. Sent verbatim at every depth.