Entropic 2.3.8
Local-first agentic inference engine
Loading...
Searching...
No Matches
compactor_registry.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
23#pragma once
24
26#include <entropic/entropic.h>
27
28#include <functional>
29#include <shared_mutex>
30#include <string>
31#include <unordered_map>
32
33namespace entropic {
34
43using CompactorFn = std::function<CompactionResult(
44 const std::vector<Message>& messages,
45 const CompactionConfig& config,
46 const std::string& identity)>;
47
57
73public:
80
95 const std::string& identity,
96 entropic_compactor_fn compactor,
97 void* user_data);
98
111 const std::string& identity);
112
127 const std::string& identity,
128 const std::vector<Message>& messages,
129 const CompactionConfig& config);
130
139 bool has_custom_compactor(const std::string& identity) const;
140
147 CompactionManager& default_manager() { return default_manager_; }
148
149private:
158 CompactionResult run_default(
159 const std::string& identity,
160 const std::vector<Message>& messages,
161 const CompactionConfig& config);
162
173 CompactionResult run_custom(
174 const CompactorFn& selected,
175 const std::string& source,
176 const std::string& identity,
177 const std::vector<Message>& messages,
178 const CompactionConfig& config);
179
187 static CompactorFn wrap_c_compactor(
188 entropic_compactor_fn compactor,
189 void* user_data);
190
191 CompactionManager& default_manager_;
192 CompactorFn default_compactor_;
193 std::unordered_map<std::string, CompactorEntry> compactors_;
194 mutable std::shared_mutex mutex_;
195};
196
197} // namespace entropic
Manages automatic context compaction.
Definition compaction.h:113
Per-identity compactor registry and dispatch.
entropic_error_t register_compactor(const std::string &identity, entropic_compactor_fn compactor, void *user_data)
Register a compactor for a specific identity.
CompactionResult compact(const std::string &identity, const std::vector< Message > &messages, const CompactionConfig &config)
Run compaction using the appropriate compactor.
CompactionManager & default_manager()
Get the default CompactionManager reference.
bool has_custom_compactor(const std::string &identity) const
Check if a custom compactor is registered for an identity.
entropic_error_t deregister_compactor(const std::string &identity)
Deregister a compactor for a specific identity.
Auto-compaction for context management.
Public C API for the Entropic inference engine.
int(* entropic_compactor_fn)(const char *messages_json, const char *config_json, char **out_messages, char **out_summary, void *user_data)
Compactor function type.
Definition entropic.h:1966
entropic_error_t
Error codes returned by all C API functions.
Definition error.h:35
Activate model on GPU (WARM → ACTIVE).
std::function< CompactionResult(const std::vector< Message > &messages, const CompactionConfig &config, const std::string &identity)> CompactorFn
Internal C++ compactor function type.
Auto-compaction configuration.
Definition config.h:508
Result of a compaction operation.
Definition compaction.h:89
A registered compactor entry.
entropic_compactor_fn c_callback
C function pointer (NULL for C++ compactors)
CompactorFn cpp_fn
C++ function (wraps c_callback or native)
void * user_data
Opaque data for C callback.