mise API - v0.0.0
    Preparing search index...

    Interface BackendFallback

    What a backend does with a command word the registry does not answer.

    The core runs a line in one of two ways: directly, its output going to the surface, or captured, its output feeding a pipe or a redirect. Each asks the backend at fixed points, so a backend's words are found where they always were.

    interface BackendFallback {
        claim?: (
            command: string,
            args: string[],
        ) => Promise<
            | {
                errors?: { message: string; type: "error"
                | "warning" }[];
                model?: { data: unknown; kind: string };
                rendered: string;
                renderedErr?: string;
                status: "error" | "ok";
                trace?: {
                    executed?: string;
                    input: string;
                    proposed: string;
                    validated: boolean;
                };
            }
            | null,
        >;
        help?: (command: string) => Promise<string | null>;
        unknown?: (
            command: string,
            args: string[],
            captured: boolean,
        ) => Promise<
            | {
                errors?: { message: string; type: "error"
                | "warning" }[];
                model?: { data: unknown; kind: string };
                rendered: string;
                renderedErr?: string;
                status: "error" | "ok";
                trace?: {
                    executed?: string;
                    input: string;
                    proposed: string;
                    validated: boolean;
                };
            }
            | null,
        >;
    }
    Index
    claim?: (
        command: string,
        args: string[],
    ) => Promise<
        | {
            errors?: { message: string; type: "error"
            | "warning" }[];
            model?: { data: unknown; kind: string };
            rendered: string;
            renderedErr?: string;
            status: "error" | "ok";
            trace?: {
                executed?: string;
                input: string;
                proposed: string;
                validated: boolean;
            };
        }
        | null,
    >

    A word the backend runs ahead of the registry on a direct line, and after the registry's envelope commands on a captured one (ChRIS: a plugin named with its version). Null when the word is not one.

    help?: (command: string) => Promise<string | null>

    Help for a word the registry has no page for, or null to let the core say it has none.

    unknown?: (
        command: string,
        args: string[],
        captured: boolean,
    ) => Promise<
        | {
            errors?: { message: string; type: "error"
            | "warning" }[];
            model?: { data: unknown; kind: string };
            rendered: string;
            renderedErr?: string;
            status: "error" | "ok";
            trace?: {
                executed?: string;
                input: string;
                proposed: string;
                validated: boolean;
            };
        }
        | null,
    >

    A word nothing else answered. The envelope it returns has been delivered; null means the backend does not know the word either, and the core says command not found.