Interface: OsfqlAtomicRefusal
@kortexya/reasoninglayer / OsfqlAtomicRefusal
Interface: OsfqlAtomicRefusal
Section titled “Interface: OsfqlAtomicRefusal”Defined in: src/types/osfql.ts:785
Why a previewed program cannot run as submitted, answered without running it.
Remarks
Section titled “Remarks”The same verdict POST /api/v1/osfql refuses the program with (HTTP 400,
error_type: "refused"). code is one of:
drop_sort_not_alone— the program holds aDROP SORTbeside another statement. ADROP SORTruns the durable sort delete after the program, so it must be the only statement of its program.alter_sort_not_alone— the same rule for anALTER SORT … PARENTS, whose move also runs after the program.
The rule holds in BOTH atomic modes: atomic: false does not lift it. The
engine renamed drop_sort_in_atomic_program to drop_sort_not_alone with
no alias. Keep a default branch in a switch over code: the engine may add
a value.
Both routes carry the code: the preview as
OsfqlPreviewResponse.atomicRefusal, and POST /api/v1/osfql as
OsfqlError.atomicRefusal on its refused error. Nothing runs either way.
Example
Section titled “Example”const refusal: OsfqlAtomicRefusal = { code: 'drop_sort_not_alone', message: 'DROP SORT must be the only statement of its program: …',};Properties
Section titled “Properties”code:
string
Defined in: src/types/osfql.ts:787
Machine-readable cause: drop_sort_not_alone or alter_sort_not_alone.
message
Section titled “message”message:
string
Defined in: src/types/osfql.ts:789
Human-readable explanation, identical to the run-time refusal.