IFClite TypeScript API
    Preparing search index...

    Interface NodeDef<H, P>

    interface NodeDef<H = unknown, P = Readonly<Record<string, unknown>>> {
        capabilities: readonly string[];
        category: string;
        doc?: string;
        headless?: "run" | "noop";
        inputs: readonly PortDef[];
        laneKeyPort?: string;
        outputs: readonly PortDef[];
        params: readonly ParamDef[];
        reads?: "model";
        requires?: NodeRequirements;
        requiresForParams?: (
            params: Readonly<Record<string, unknown>>,
        ) => NodeRequirements;
        review?: "required";
        title: string;
        tracked?: boolean;
        type: string;
        volatile?: boolean;
        writes?: "model";
        remove?(ctx: NodeRunContext<H>, globalId: string): void | Promise<void>;
        run(
            ctx: NodeRunContext<H>,
            inputs: Readonly<Record<string, unknown>>,
            params: P,
        ):
            | Readonly<Record<string, unknown>>
            | Promise<Readonly<Record<string, unknown>>>;
    }

    Type Parameters

    • H = unknown
    • P = Readonly<Record<string, unknown>>
    Index
    capabilities: readonly string[]

    Capability strings in the extension grammar (model.read, model.mutate:Pset_X).

    category: string
    doc?: string
    headless?: "run" | "noop"

    Headless behaviour when a required backend feature is absent: noop runs as no-op.

    inputs: readonly PortDef[]
    laneKeyPort?: string

    Name of the item input whose EntityRef value keys lanes (defaults to the first entity item port).

    outputs: readonly PortDef[]
    params: readonly ParamDef[]
    reads?: "model"

    Memo key includes model revisions when set; write nodes are never memoised.

    requires?: NodeRequirements

    Host prerequisites the availability check tests for.

    requiresForParams?: (
        params: Readonly<Record<string, unknown>>,
    ) => NodeRequirements

    Pure additional host prerequisites from resolved defaults/Player params. Checked before any node executes, and again at the node's execution.

    review?: "required"

    The node's outputs are a proposal: a run stops downstream of it (status review, dependants paused) until the caller resumes with the reviewed outputs (RunOptions.resume). Nothing downstream of an unreviewed proposal ever runs.

    title: string
    tracked?: boolean

    A tracked node owns the elements it creates: the scheduler plans each lane as create / update / keep against the node's tracked set and calls remove for lanes that vanished since the last run.

    type: string

    Stable id, e.g. model.queryByType.

    volatile?: boolean

    Outputs depend on the world outside the graph (a network response), so the node is never memoised: a rerun must send the request again. A node that only sometimes reaches out calls ctx.markVolatile() instead.

    writes?: "model"
    • Parameters

      Returns void | Promise<void>

    • Parameters

      Returns Readonly<Record<string, unknown>> | Promise<Readonly<Record<string, unknown>>>