Skip to content

Interface: OsfqlAtomicRefusal

@kortexya/reasoninglayer


@kortexya/reasoninglayer / OsfqlAtomicRefusal

Defined in: src/types/osfql.ts:785

Why a previewed program cannot run as submitted, answered without running it.

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 a DROP SORT beside another statement. A DROP SORT runs 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 an ALTER 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.

const refusal: OsfqlAtomicRefusal = {
code: 'drop_sort_not_alone',
message: 'DROP SORT must be the only statement of its program: …',
};

code: string

Defined in: src/types/osfql.ts:787

Machine-readable cause: drop_sort_not_alone or alter_sort_not_alone.


message: string

Defined in: src/types/osfql.ts:789

Human-readable explanation, identical to the run-time refusal.