ion7-core / context.kv

module

context.kv

Functions

M.kv_can_shift

True if this context's KV cache supports position shifting. Returns `false` for recurrent models (Mamba, RWKV) — they have no positional index to shift.

M.kv_can_shift(self)
→ boolean

M.kv_seq_pos_min

Smallest KV position currently held by `seq_id`, or `-1` when the sequence is empty / the memory accessor is missing.

M.kv_seq_pos_min(self, seq_id)
seq_idinteger?Default 0.
→ integer

M.kv_seq_pos_max

Largest KV position currently held by `seq_id`, or `-1` for empty sequences.

M.kv_seq_pos_max(self, seq_id)
seq_idinteger?Default 0.
→ integer

M.kv_clear

Wipe the entire KV cache and reset our Lua-tracked `n_past` mirror to 0. This is the brutal "start over" reset used after big context changes (e.g. switching prompt entirely).

M.kv_clear(self)

M.kv_seq_rm

Drop KV entries for `seq_id` in `[p0, p1)`.

M.kv_seq_rm(self, seq_id, p0, p1)
seq_idinteger
p0integerInclusive start.
p1integerExclusive end (`-1` for "to end").
→ booleantrue if the request fully removed the slice.

M.kv_seq_cp

Copy KV entries from `src_seq` to `dst_seq` in `[p0, p1)`. Used to fork sequences for parallel decoding or beam search.

M.kv_seq_cp(self, src_seq, dst_seq, p0, p1)
src_seqinteger
dst_seqinteger
p0integer
p1integer

M.kv_seq_keep

Drop EVERY sequence in the KV cache except `seq_id`.

M.kv_seq_keep(self, seq_id)
seq_idinteger

M.kv_seq_shift

Add `delta` to every position in `[p0, p1)` for `seq_id`. Positive shifts the window forward, negative drops it back. Only valid when `kv_can_shift()` returns true.

M.kv_seq_shift(self, seq_id, delta, p0, p1)
seq_idinteger
deltaintegerShift amount.
p0integer?Inclusive start (default 0).
p1integer?Exclusive end (default -1).

M.kv_seq_div

Divide every position in `[p0, p1)` for `seq_id` by `d`. Used for context compression (group multiple positions together to fit a longer effective prompt in the same window).

M.kv_seq_div(self, seq_id, d, p0, p1)
seq_idinteger
dintegerDivisor (must be > 1).
p0integer?Inclusive start (default 0).
p1integer?Exclusive end (default -1).