Coverage for src / lilbee / server / routes / memory.py: 100%
18 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-06-28 01:01 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-06-28 01:01 +0000
1"""Memory route handlers: list, remember, update flags, forget.
3``GET`` is ``@read_only`` so a read-only session token can list memories;
4the mutating routes are unmarked so read-only tokens cannot write memory.
5"""
7from __future__ import annotations
9from litestar import delete, get, patch, post
11from lilbee.server.auth import read_only
12from lilbee.server.handlers.memory import (
13 list_local_memories,
14 remember_memory,
15 remove_memory,
16 update_memory_shared,
17)
18from lilbee.server.models import (
19 MemoryFlagsResponse,
20 MemoryListResponse,
21 MemoryRemoveResponse,
22 MemorySharedRequest,
23 RememberRequest,
24 RememberResponse,
25)
28@get("/api/memories")
29@read_only
30async def memories_list_route() -> MemoryListResponse:
31 """List the human's stored memories."""
32 return await list_local_memories()
35@post("/api/memories")
36async def memories_remember_route(data: RememberRequest) -> RememberResponse:
37 """Store a fact or preference in the human's memory."""
38 return await remember_memory(data.text, data.kind, data.shared)
41@patch("/api/memories/{memory_id:str}")
42async def memories_update_route(memory_id: str, data: MemorySharedRequest) -> MemoryFlagsResponse:
43 """Set a memory's shared-with-agents flag."""
44 return await update_memory_shared(memory_id, data.shared)
47@delete("/api/memories/{memory_id:str}", status_code=200)
48async def memories_remove_route(memory_id: str) -> MemoryRemoveResponse:
49 """Delete a memory by id."""
50 return await remove_memory(memory_id)