summaryrefslogtreecommitdiff
path: root/src/storage/store.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/storage/store.c')
-rw-r--r--src/storage/store.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/storage/store.c b/src/storage/store.c
index 060c6f6..e7ade28 100644
--- a/src/storage/store.c
+++ b/src/storage/store.c
@@ -1963,6 +1963,29 @@ tiny_store_health(const tiny_store_t *store, tiny_store_health_t *health)
}
for (index = 0; index < store->entry_count; ++index)
{
+ const tiny_message_t *message = &store->entries[index].message;
+ size_t item;
+ health->memory_entry_bytes += sizeof(store->entries[index]);
+ health->memory_body_bytes += message->session_id ? strlen(message->session_id) + 1U : 0;
+ health->memory_body_bytes += message->content ? strlen(message->content) + 1U : 0;
+ health->memory_metadata_bytes
+ += message->metadata.tool_call_id ? strlen(message->metadata.tool_call_id) + 1U : 0;
+ health->memory_metadata_bytes
+ += message->metadata.summary ? strlen(message->metadata.summary) + 1U : 0;
+ health->memory_metadata_bytes
+ += message->metadata.relation_count * sizeof(*message->metadata.relations);
+ for (item = 0; item < message->metadata.tag_count; ++item)
+ {
+ health->memory_metadata_bytes += strlen(message->metadata.tags[item]) + 1U;
+ }
+ health->memory_metadata_bytes
+ += message->metadata.tag_count * sizeof(*message->metadata.tags);
+ health->memory_metadata_bytes
+ += message->metadata.source_count * sizeof(*message->metadata.source_message_ids);
+ for (item = 0; item < message->metadata.source_count; ++item)
+ {
+ health->memory_metadata_bytes += strlen(message->metadata.source_message_ids[item]) + 1U;
+ }
if (store->entries[index].deleted)
{
health->deleted_messages++;