Coverage for src/lilbee/server/routes/memory.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-08-14 11:46 +0000

1"""Memory routes: list, remember, update, forget. 

2 

3Every route requires the token: memories are the human's notes about themselves. 

4""" 

5 

6from __future__ import annotations 

7 

8from litestar import delete, get, patch, post 

9from litestar.params import FromPath 

10 

11from lilbee.server.handlers.memory import ( 

12 list_local_memories, 

13 remember_memory, 

14 remove_memory, 

15 update_memory_shared, 

16) 

17from lilbee.server.models import ( 

18 MemoryFlagsResponse, 

19 MemoryListResponse, 

20 MemoryRemoveResponse, 

21 MemorySharedRequest, 

22 RememberRequest, 

23 RememberResponse, 

24) 

25 

26 

27@get("/api/memories") 

28async def memories_list_route() -> MemoryListResponse: 

29 """List the human's stored memories.""" 

30 return await list_local_memories() 

31 

32 

33@post("/api/memories") 

34async def memories_remember_route(data: RememberRequest) -> RememberResponse: 

35 """Store a fact or preference in the human's memory.""" 

36 return await remember_memory(data.text, data.kind, data.shared) 

37 

38 

39@patch("/api/memories/{memory_id:str}") 

40async def memories_update_route( 

41 memory_id: FromPath[str], data: MemorySharedRequest 

42) -> MemoryFlagsResponse: 

43 """Set a memory's shared-with-agents flag.""" 

44 return await update_memory_shared(memory_id, data.shared) 

45 

46 

47@delete("/api/memories/{memory_id:str}", status_code=200) 

48async def memories_remove_route(memory_id: FromPath[str]) -> MemoryRemoveResponse: 

49 """Delete a memory by id.""" 

50 return await remove_memory(memory_id)