Entropic 2.3.8
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
57 bool initialize();
58
63 void close();
64
65 // ── Conversation CRUD ─────────────────────────────────
66
75 std::string create_conversation(
76 const std::string& title = "New Conversation",
77 const std::optional<std::string>& project_path = std::nullopt,
78 const std::optional<std::string>& model_id = std::nullopt);
79
87 bool save_messages(const std::string& conversation_id,
88 const std::string& messages_json);
89
97 bool load_conversation(const std::string& conversation_id,
98 std::string& result_json);
99
108 bool list_conversations(int limit, int offset,
109 std::string& result_json);
110
117 bool delete_conversation(const std::string& conversation_id);
118
126 bool update_title(const std::string& conversation_id,
127 const std::string& title);
128
129 // ── Search ────────────────────────────────────────────
130
139 bool search_conversations(const std::string& query, int limit,
140 std::string& result_json);
141
142 // ── Delegation storage ────────────────────────────────
143
157 const std::string& parent_conversation_id,
158 const std::string& delegating_tier,
159 const std::string& target_tier,
160 const std::string& task,
161 int max_turns,
162 std::string& delegation_id,
163 std::string& child_conversation_id);
164
174 const std::string& delegation_id,
175 const std::string& status,
176 const std::optional<std::string>& result_summary = std::nullopt);
177
185 bool get_delegations(const std::string& conversation_id,
186 std::string& result_json);
187
200 bool get_delegation_by_id(const std::string& delegation_id,
201 std::string& result_json);
202
216 bool search_delegations(const std::string& query, int max_results,
217 std::string& result_json);
218
219 // ── Compaction snapshots ──────────────────────────────
220
228 bool save_snapshot(const std::string& conversation_id,
229 const std::string& messages_json);
230
231 // ── Statistics ────────────────────────────────────────
232
239 bool get_stats(std::string& result_json);
240
241private:
242 SqliteDatabase db_;
243};
244
245} // 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:225
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:708
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:602
bool update_title(const std::string &conversation_id, const std::string &title)
Update a conversation's title.
Definition backend.cpp:404
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:540
bool search_conversations(const std::string &query, int limit, std::string &result_json)
Full-text search across conversations.
Definition backend.cpp:426
bool get_delegations(const std::string &conversation_id, std::string &result_json)
Get delegations for a parent conversation.
Definition backend.cpp:681
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:774
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:131
void close()
Close storage and database connection.
Definition backend.cpp:116
bool load_conversation(const std::string &conversation_id, std::string &result_json)
Load a conversation with messages.
Definition backend.cpp:309
bool get_stats(std::string &result_json)
Get storage statistics.
Definition backend.cpp:807
bool delete_conversation(const std::string &conversation_id)
Delete a conversation and all associated records.
Definition backend.cpp:385
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:744
bool list_conversations(int limit, int offset, std::string &result_json)
List conversations with pagination.
Definition backend.cpp:349
bool initialize()
Initialize storage (open database, run migrations).
Definition backend.cpp:107
Thread-safe SQLite database wrapper with migration support.
Activate model on GPU (WARM → ACTIVE).
Typed record structs for storage persistence.