mlx-bun library API
    Preparing search index...
    interface CacheHeaderEntry {
        bits?: number;
        dsaHeadDim?: number;
        groupSize?: number;
        headDim?: number;
        idx?: number;
        kBits?: number;
        kind: CacheKind | LatentLegoKind;
        kvLoraRank?: number;
        latentPages?: {
            blockSize: number;
            blockTable: number[];
            numBlocks: number;
        };
        latentShadow?: boolean;
        maxSize?: number;
        maxTokens?: number;
        minimumReusableOffset?: number;
        offset: number;
        paged?: {
            blockSize: number;
            blockTable: number[];
            capacityTokens: number;
            direct: boolean;
            dtype: Dtype;
            headDim: number;
            numBlocks: number;
            vHeadDim: number;
        };
        quantizedKvStart?: number;
        ropeHeadDim?: number;
        tensors: TensorSlot[];
        vBits?: number;
    }
    Index
    bits?: number
    dsaHeadDim?: number
    groupSize?: number

    quantized variants (qkv/rotating-qkv: mlx affine scheme)

    headDim?: number

    turboquant: head_dim, needed to unpack kIdx/vPacked on restore (packed byte width alone doesn't recover the original element count).

    idx?: number

    rotating variants: ring write index

    kBits?: number

    turboquant: per-side bit widths (reuses the bits field's slot class but needs both — asymmetric key/value bit widths, unlike qkv's single bits). groupSize is unused for turboquant (fixed at 32, the BLOCK_SIZE constant — not a configurable field like qkv's).

    kind: CacheKind | LatentLegoKind
    kvLoraRank?: number

    GLM checkpoint-native compressed-cache geometry.

    latentPages?: { blockSize: number; blockTable: number[]; numBlocks: number }

    latent-paged: the row's page layout.

    latentShadow?: boolean
    maxSize?: number

    rotating variants: window size

    maxTokens?: number
    minimumReusableOffset?: number
    offset: number
    paged?: {
        blockSize: number;
        blockTable: number[];
        capacityTokens: number;
        direct: boolean;
        dtype: Dtype;
        headDim: number;
        numBlocks: number;
        vHeadDim: number;
    }
    quantizedKvStart?: number

    latent-encoded: the conversion start, and whether the saved row still reads f32 (its f32 values follow its encoded planes).

    ropeHeadDim?: number
    tensors: TensorSlot[]

    kv/rotating: [k, v] · qkv/rotating-qkv: [kPacked, kScales, kBiases, vPacked, vScales, vBiases] · ssm: [conv, recurrent] · turboquant: [kIdx, kScales, kZeros, vPacked, vScales]

    vBits?: number