mlx-bun library API
    Preparing search index...

    The rows of the rotating affine bf16-first lego (Bf16FirstRotatingQuantizedKVCache) for continuous batching. Precision changes preserve each row's physical columns. The model owns queries and scale; the shared lifecycle owns membership and the transition (when a row converts is described on TransitioningKvRows). A start of Infinity never converts: the prefill cohort's layout for plain rings. The reads are the graph's call today: this layout's mask before the append, under the ring's window, then its attention view. Converted rings and the packed layout attend with kernelSet, taken when the layout is built; the rows a cohort extracts carry it into the layouts they join.

    Hierarchy

    • SpeculativeTransitioningKvRows<RotatingAffineLayout>
      • DelayedRotatingQuantizedKVCache

    Implements

    Index
    bits: number
    compose?: (storage: Cache) => Cache

    How the lego these rings came from composes the rings this layout hands back to serial use (ComposedStorage.over).

    groupSize: number
    kernelSet: AffineKernelSet

    The affine kernel set converted rings and every read attend with, named by the composition (composedAffineKernels).

    maxSize: number
    speculative: boolean = false
    start: number
    stateNeedsDispose: true

    state() returned temporary views that the caller must release.

    transition: KvRowTransition<RotatingAffineLayout>
    • The fetch of the coming compiled step: the lego's while it holds the row, else the rows' (decodePhaseOfRows), without moving the row.

      Returns "concat" | "ring"

    • A ring's lone row fetches by its ring: concat until the next write lands at the window, the ring after (RotatingKVCache.decodePhase).

      Returns "concat" | "ring"

    • Stable storage identity for compatibility guards and persistence. REQUIRED: every capability predicate (isPlainKvCache, isRotating*, packages/inference/src/state/persistence.ts codecs) is a string compare on this value, so a missing override used to fail OPEN into wrong routing (PRs #42/#43: BatchedRotatingCache shipped without one and batched joins dropped running rows). Wrappers report their own kind plus the inner kind.

      Returns string

    • Speculative verify-round support for NON-trimmable recurrent caches (SSMCache — gated-DeltaNet conv + recurrent state). A cache exposing these is spec-eligible without isTrimmable(): the serve loop arms a round before the verify forward (the layer snapshots pre-round state — free, MLX arrays are immutable — and records its position-local kernel inputs), then resolves it: commit on full accept, or rollback(keep) which restores the snapshot and bit-exactly REPLAYS the first keep window tokens through the recurrence (identical arithmetic prefix ⇒ identical state). Trimmable caches leave these unset and keep trim().

      Returns void

    • Drop the last n tokens (future writes overwrite them). bypass (default false → unchanged behavior) skips the isTrimmable guard for the speculative-decode rollback case (trim the last n ≤ γ tips right after a

      1 concat write); rotating caches then physically shrink the buffer tail.

      Parameters

      • count: number

      Returns void