Entropic 2.11.1
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
96 const std::string& identity,
97 entropic_compactor_fn compactor,
98 void* user_data);
99
113 const std::string& identity);
114
130 const std::string& identity,
131 const std::vector<Message>& messages,
132 const CompactionConfig& config);
133
143 bool has_custom_compactor(const std::string& identity) const;
144
151 CompactionManager& default_manager() { return default_manager_; }
152
153private:
163 CompactionResult run_default(
164 const std::string& identity,
165 const std::vector<Message>& messages,
166 const CompactionConfig& config);
167
179 CompactionResult run_custom(
180 const CompactorFn& selected,
181 const std::string& source,
182 const std::string& identity,
183 const std::vector<Message>& messages,
184 const CompactionConfig& config);
185
193 static CompactorFn wrap_c_compactor(
194 entropic_compactor_fn compactor,
195 void* user_data);
196
197 CompactionManager& default_manager_;
198 CompactorFn default_compactor_;
199 std::unordered_map<std::string, CompactorEntry> compactors_;
200 mutable std::shared_mutex mutex_;
201};
202
203} // namespace entropic
Manages automatic context compaction.
Definition compaction.h:117
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:2299
entropic_error_t
Error codes returned by all C API functions.
Definition error.h:37
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:742
Result of a compaction operation.
Definition compaction.h:93
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.