Entropic 2.11.1
Local-first agentic inference engine
Loading...
Searching...
No Matches
backend.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
13#pragma once
14
17
18#include <cstdint>
19#include <optional>
20#include <string>
21#include <vector>
22
23namespace entropic {
24
44public:
50 explicit SqliteStorageBackend(const std::filesystem::path& db_path);
51
58 bool initialize();
59
65 void close();
66
67 // ── Conversation CRUD ─────────────────────────────────
68
78 std::string create_conversation(
79 const std::string& title = "New Conversation",
80 const std::optional<std::string>& project_path = std::nullopt,
81 const std::optional<std::string>& model_id = std::nullopt);
82
91 bool save_messages(const std::string& conversation_id,
92 const std::string& messages_json);
93
102 bool load_conversation(const std::string& conversation_id,
103 std::string& result_json);
104
114 bool list_conversations(int limit, int offset,
115 std::string& result_json);
116
125 bool delete_conversation(const std::string& conversation_id);
126
135 bool update_title(const std::string& conversation_id,
136 const std::string& title);
137
138 // ── Search ────────────────────────────────────────────
139
149 bool search_conversations(const std::string& query, int limit,
150 std::string& result_json);
151
152 // ── Delegation storage ────────────────────────────────
153
168 const std::string& parent_conversation_id,
169 const std::string& delegating_tier,
170 const std::string& target_tier,
171 const std::string& task,
172 int max_turns,
173 std::string& delegation_id,
174 std::string& child_conversation_id);
175
186 const std::string& delegation_id,
187 const std::string& status,
188 const std::optional<std::string>& result_summary = std::nullopt);
189
199 bool get_delegations(const std::string& conversation_id,
200 std::string& result_json);
201
216 bool get_delegation_by_id(const std::string& delegation_id,
217 std::string& result_json);
218
234 bool search_delegations(const std::string& query, int max_results,
235 std::string& result_json);
236
237 // ── Compaction snapshots ──────────────────────────────
238
247 bool save_snapshot(const std::string& conversation_id,
248 const std::string& messages_json);
249
250 // ── Statistics ────────────────────────────────────────
251
259 bool get_stats(std::string& result_json);
260
261private:
262 SqliteDatabase db_;
263};
264
265} // namespace entropic
Thread-safe SQLite database wrapper.
Definition database.h:42
SQLite-based storage backend.
Definition backend.h:43
bool save_messages(const std::string &conversation_id, const std::string &messages_json)
Save messages to a conversation.
Definition backend.cpp:324
bool get_delegation_by_id(const std::string &delegation_id, std::string &result_json)
Look up a single delegation record by id (gh#32, v2.1.6).
Definition backend.cpp:817
bool complete_delegation(const std::string &delegation_id, const std::string &status, const std::optional< std::string > &result_summary=std::nullopt)
Mark a delegation as completed or failed.
Definition backend.cpp:711
bool update_title(const std::string &conversation_id, const std::string &title)
Update a conversation's title.
Definition backend.cpp:513
bool create_delegation(const std::string &parent_conversation_id, const std::string &delegating_tier, const std::string &target_tier, const std::string &task, int max_turns, std::string &delegation_id, std::string &child_conversation_id)
Create a delegation record with a child conversation.
Definition backend.cpp:649
bool search_conversations(const std::string &query, int limit, std::string &result_json)
Full-text search across conversations.
Definition backend.cpp:535
bool get_delegations(const std::string &conversation_id, std::string &result_json)
Get delegations for a parent conversation.
Definition backend.cpp:789
bool save_snapshot(const std::string &conversation_id, const std::string &messages_json)
Save a pre-compaction snapshot of full conversation history.
Definition backend.cpp:884
std::string create_conversation(const std::string &title="New Conversation", const std::optional< std::string > &project_path=std::nullopt, const std::optional< std::string > &model_id=std::nullopt)
Create a new conversation.
Definition backend.cpp:222
void close()
Close storage and database connection.
Definition backend.cpp:207
bool load_conversation(const std::string &conversation_id, std::string &result_json)
Load a conversation with messages.
Definition backend.cpp:417
bool get_stats(std::string &result_json)
Get storage statistics.
Definition backend.cpp:917
bool delete_conversation(const std::string &conversation_id)
Delete a conversation and all associated records.
Definition backend.cpp:494
bool search_delegations(const std::string &query, int max_results, std::string &result_json)
Search delegations across all conversations (gh#32, v2.1.6).
Definition backend.cpp:854
bool list_conversations(int limit, int offset, std::string &result_json)
List conversations with pagination.
Definition backend.cpp:457
bool initialize()
Initialize storage (open database, run migrations).
Definition backend.cpp:198
Thread-safe SQLite database wrapper with migration support.
Activate model on GPU (WARM → ACTIVE).
Typed record structs for storage persistence.