14#include <unordered_map>
20class LayerKVCacheIndex;
21class MemoryGraphStore;
40 std::int32_t potential_prefix_len)
const {
64 std::vector<ReuseStepRecord>
steps;
76 return total > 0 ?
static_cast<double>(
total_tokens_saved) /
static_cast<double>(total) : 0.0;
99 std::size_t max_cache_entries = 8192);
103 std::vector<continuum::Value>
run(
104 const ir::Graph& g,
const std::unordered_map<ir::NodeId, continuum::Value>& inputs);
131 const std::string&
id()
const {
return session_id_; }
139 std::string session_id_;
141 std::unique_ptr<KVCacheIndex> owned_cache_;
150 std::string cache_namespace_;
Definition backend.hpp:54
Definition kv_prefix_cache.hpp:35
Definition layer_cache.hpp:66
Definition memo_table.hpp:55
Definition memory_graph.hpp:33
Definition observer.hpp:47
Definition semantic_cache.hpp:54
Definition session.hpp:96
const KVCacheIndex & cache() const
Definition session.hpp:124
Session(const std::string &id, backend::BackendRegistry &backends, std::size_t max_cache_entries=8192)
void set_observer(ReuseObserver *observer)
Definition session.hpp:117
std::size_t cache_size() const
Definition session.hpp:133
void set_semantic_cache(SemanticCacheIndex *sc)
Definition session.hpp:109
void set_embedding_provider(EmbeddingProvider *ep)
Definition session.hpp:110
MemoTable * memo_table() const
Definition session.hpp:125
Session(const std::string &id, backend::BackendRegistry &backends, KVCacheIndex &external_cache)
std::int64_t run_count() const
Definition session.hpp:132
const std::string & id() const
Definition session.hpp:131
void set_cache_namespace(std::string ns)
Definition session.hpp:113
const ReusePolicy & policy() const
Definition session.hpp:106
bool save_cache_metadata(const std::string &path) const
std::vector< continuum::Value > run(const ir::Graph &g, const std::unordered_map< ir::NodeId, continuum::Value > &inputs)
const ReuseMetrics & metrics() const
Definition session.hpp:120
void set_memo_table(MemoTable *memo)
Definition session.hpp:108
void reset_metrics()
Definition session.hpp:121
void set_policy(const ReusePolicy &policy)
Definition session.hpp:107
void set_memory_graph(MemoryGraphStore *mg)
Definition session.hpp:112
void set_layer_cache(LayerKVCacheIndex *lc)
Definition session.hpp:111
const std::string & cache_namespace() const
Definition session.hpp:114
bool load_cache_metadata(const std::string &path)
std::vector< CacheTierStats > cache_stats() const
Occupancy of every attached tier; detached tiers are omitted.
SemanticCacheIndex * semantic_cache() const
Definition session.hpp:126
KVCacheIndex & cache()
Definition session.hpp:123
ReuseObserver * observer() const
Definition session.hpp:118
Definition checkpoint.hpp:12
ReusePolicyKind
Definition session.hpp:23
Occupancy snapshot of one reuse tier, for observability.
Definition session.hpp:89
std::size_t entries
Resident entries.
Definition session.hpp:91
std::size_t bytes
Approximate resident bytes (see each tier's estimated_bytes).
Definition session.hpp:93
std::string tier
"prefix_kv", "memo", "semantic", "layer_kv", or "memory_graph".
Definition session.hpp:90
std::size_t capacity
Entry bound the tier evicts at.
Definition session.hpp:92
Definition semantic_cache.hpp:20
Definition session.hpp:62
std::vector< ReuseStepRecord > steps
Definition session.hpp:64
std::int64_t total_tokens_saved
Definition session.hpp:67
double token_reduction_ratio() const
Definition session.hpp:74
std::int64_t total_lookups
Definition session.hpp:65
double hit_rate() const
Definition session.hpp:71
std::int64_t total_hits
Definition session.hpp:66
std::int64_t run_count
Definition session.hpp:69
std::int64_t total_tokens_processed
Definition session.hpp:68
void reset()
Definition session.hpp:78
std::string session_id
Definition session.hpp:63
Definition session.hpp:29
static ReusePolicy never()
Definition session.hpp:34
static ReusePolicy always()
Definition session.hpp:33
bool should_attempt(const std::vector< std::int32_t > &, std::int32_t potential_prefix_len) const
Definition session.hpp:39
std::int32_t min_prefix_len
Definition session.hpp:31
static ReusePolicy threshold(std::int32_t min_len)
Definition session.hpp:35
ReusePolicyKind kind
Definition session.hpp:30
Definition session.hpp:49
std::int32_t total_tokens
Definition session.hpp:56
std::string node_name
Definition session.hpp:50
bool cache_hit
Definition session.hpp:51
std::int32_t tokens_sent
Definition session.hpp:58
std::int32_t compute_steps
Definition session.hpp:59
std::int32_t tokens_saved
Definition session.hpp:57
float semantic_similarity
Definition session.hpp:54
bool memo_hit
Definition session.hpp:52
std::int32_t prefix_hit_len
Definition session.hpp:55
bool semantic_hit
Definition session.hpp:53