• Interrupts the execution of a graph node. This function can be used to pause execution of a node, and return the value of the resume input when the graph is re-invoked using Command. Multiple interrupts can be called within a single node, and each will be handled sequentially.

    When an interrupt is called:

    1. If there's a resume value available (from a previous Command), it returns that value.
    2. Otherwise, it throws a GraphInterrupt with the provided value
    3. The graph can be resumed by passing a Command with a resume value

    Type Parameters

    • I = unknown
    • R = unknown

    Parameters

    • value: I

      The value to include in the interrupt. This will be available in task.interrupts[].value

    Returns R

    The resume value provided when the graph is re-invoked with a Command

    Example

    // Define a node that uses multiple interrupts
    const nodeWithInterrupts = () => {
    // First interrupt - will pause execution and include {value: 1} in task values
    const answer1 = interrupt({ value: 1 });

    // Second interrupt - only called after first interrupt is resumed
    const answer2 = interrupt({ value: 2 });

    // Use the resume values
    return { myKey: answer1 + " " + answer2 };
    };

    // Resume the graph after first interrupt
    await graph.stream(new Command({ resume: "answer 1" }));

    // Resume the graph after second interrupt
    await graph.stream(new Command({ resume: "answer 2" }));
    // Final result: { myKey: "answer 1 answer 2" }

    Throws

    If called outside the context of a graph

    Throws

    When no resume value is available