mlx-bun library API
    Preparing search index...

    The facts that fix one served configuration, resolved once by the application before the loader builds the graph and consumed as data. Every field holds a resolved value; nothing here is "unset" or "auto".

    interface Composition {
        device: string;
        draftDepth: DraftDepth;
        grammarJump: boolean;
        greedyDraft: boolean;
        kv: KvStorageScheme;
        maxRows: number;
        mixedPrefill: boolean;
        mixedTokenBudget: number;
        pagedKv: PagedKvComposition | null;
        prefillChunkTokens: number;
        prefillTailSplit: boolean;
        vectorGreedySampling: boolean;
    }
    Index
    device: string

    The GPU's architecture identifier as MLX reports it (for example applegpu_g16s).

    draftDepth: DraftDepth
    grammarJump: boolean

    Grammar-forced continuations enter the KV without one forward per token (jump-forward decoding, default off).

    greedyDraft: boolean

    Every speculative row drafts by argmax instead of the request sampler's coupled draw (default off). The draft moves acceptance and draft cost, not the output distribution (see generation/speculative/draft-policy).

    The storage and reads of every attention cache the graph's makeCache composes.

    maxRows: number

    The most rows one forward carries (--batch, mlx-lm's --batch-size).

    mixedPrefill: boolean

    One forward carries a decode group and a prefill group where the graph declares mixed rows (default off).

    mixedTokenBudget: number

    Prompt tokens one mixed forward carries beside its decode rows (default 256).

    pagedKv: PagedKvComposition | null

    Full-attention keys and values held in pages of blockSize positions (--paged-kv), or null. Every request's state takes the paged lego in place of the plain full-attention storage the graph composes; its pages store what kv names.

    prefillChunkTokens: number

    The prefill chunk size, in prompt tokens, the composition is built for. The prefill planner may hand the graph fewer rows than this as a prompt's tail. Its per-prompt halving for a graph with a bounded prefill workspace is the planner's business and does not change what the composition built.

    prefillTailSplit: boolean

    A prompt's last token prefills alone, as the first one-position step (mlx-lm's convention, default on); off, the final chunk prefills whole and token zero samples from it.

    vectorGreedySampling: boolean

    A decode step whose live rows are all plain greedy samples them with one argmax over the batch instead of one sampler call per row (default on): the same per-row arithmetic in one graph. Off, every row samples alone.