summaryrefslogtreecommitdiff
path: root/src/mcp/tools/common/context.c
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-07-04 14:54:45 +0900
committertanaka takashi <isazaka@gmail.com>2026-07-04 14:54:45 +0900
commit1efecaef1f867cb218366e2b4ab4b901fdd2835f (patch)
tree3080a3d80a1a0671e8e82819d3f785465aace162 /src/mcp/tools/common/context.c
parent34e00404e9561dcaf8d2d99df7470757a4fee915 (diff)
途中経過コミット
Diffstat (limited to 'src/mcp/tools/common/context.c')
-rw-r--r--src/mcp/tools/common/context.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/mcp/tools/common/context.c b/src/mcp/tools/common/context.c
index d79b5de..e833f70 100644
--- a/src/mcp/tools/common/context.c
+++ b/src/mcp/tools/common/context.c
@@ -43,10 +43,12 @@ tiny_mcp_tools_context_new(tiny_store_t *store)
context->store = store;
context->search_index = tiny_mcp_tools_build_search_index(store);
context->history_index = tiny_history_index_build(store);
- if (!context->search_index || !context->history_index)
+ context->memory_index = tiny_memory_index_build(store);
+ if (!context->search_index || !context->history_index || !context->memory_index)
{
tiny_search_index_free(context->search_index);
tiny_history_index_free(context->history_index);
+ tiny_memory_index_free(context->memory_index);
free(context);
return NULL;
}
@@ -62,10 +64,40 @@ tiny_mcp_tools_context_free(tiny_mcp_tools_context_t *context)
}
tiny_search_index_free(context->search_index);
tiny_history_index_free(context->history_index);
+ tiny_memory_index_free(context->memory_index);
free(context);
}
bool
+tiny_mcp_tools_ensure_memory_index(tiny_mcp_tools_context_t *context)
+{
+ if (!context)
+ {
+ return false;
+ }
+ if (!context->memory_index)
+ {
+ context->memory_index = tiny_memory_index_build(context->store);
+ }
+ return context->memory_index != NULL;
+}
+
+void
+tiny_mcp_tools_invalidate_indexes(tiny_mcp_tools_context_t *context)
+{
+ if (!context)
+ {
+ return;
+ }
+ tiny_search_index_free(context->search_index);
+ tiny_history_index_free(context->history_index);
+ tiny_memory_index_free(context->memory_index);
+ context->search_index = NULL;
+ context->history_index = NULL;
+ context->memory_index = NULL;
+}
+
+bool
tiny_mcp_tools_context_activate(tiny_mcp_tools_context_t *context)
{
if (!context || active_context)