feat: add letta-style memory tools with request/user debug tracing
This commit is contained in:
@@ -229,6 +229,40 @@ async def test_update_core_upsert(db_session, user_with_key):
|
||||
assert _dec(rows[0].value_encrypted) == "fr"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_core_block_edit_ops(db_session, user_with_key):
|
||||
middleware = MemoryMiddleware(db_session)
|
||||
|
||||
await middleware.update_core(USER_ID, "human", "Name: Roberto")
|
||||
await middleware.append_core(USER_ID, "human", "Timezone: Europe/Rome")
|
||||
replaced = await middleware.replace_core(USER_ID, "human", "Roberto", "Robert")
|
||||
|
||||
blocks = await middleware.list_core_blocks(USER_ID)
|
||||
human = next(b for b in blocks if b["label"] == "human")
|
||||
|
||||
assert replaced is True
|
||||
assert "Name: Robert" in human["value"]
|
||||
assert "Timezone: Europe/Rome" in human["value"]
|
||||
|
||||
deleted = await middleware.delete_core(USER_ID, "human")
|
||||
assert deleted is True
|
||||
assert await middleware.get_core_block(USER_ID, "human") is None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_archival_and_recall_search_helpers(db_session, user_with_key):
|
||||
middleware = MemoryMiddleware(db_session)
|
||||
|
||||
await middleware.insert_archival(USER_ID, "Project whitelist has release risk", source="assistant")
|
||||
await middleware.store_episode(USER_ID, str(uuid.uuid4()), "How is whitelist?", "Whitelist is delayed")
|
||||
|
||||
arch = await middleware.search_archival(USER_ID, "whitelist", top_k=3)
|
||||
rec = await middleware.search_recall(USER_ID, "delayed", top_k=3)
|
||||
|
||||
assert any("whitelist" in item.lower() for item in arch)
|
||||
assert any("delayed" in item.lower() for item in rec)
|
||||
|
||||
|
||||
# ── End-to-end WS: memory middleware is called during home_request ────────────
|
||||
|
||||
def test_home_request_calls_memory_middleware(client):
|
||||
|
||||
Reference in New Issue
Block a user