feat: add retrieve message endpoint and to client sdk (#8719)

* base

* generate openapi

* try again

* now
This commit is contained in:
jnjpng
2026-01-14 16:18:41 -08:00
committed by Sarah Wooders
parent 3eae81cf62
commit e3e758a8c0

View File

@@ -15,6 +15,7 @@ from letta.schemas.message import Message, MessageSearchRequest, MessageSearchRe
from letta.server.rest_api.dependencies import HeaderParams, get_headers, get_letta_server
from letta.server.server import SyncServer
from letta.settings import settings
from letta.validators import MessageId
router = APIRouter(prefix="/messages", tags=["messages"])
@@ -57,6 +58,22 @@ async def list_all_messages(
)
@router.get("/{message_id}", response_model=MessagesResponse, operation_id="retrieve_message")
async def retrieve_message(
message_id: MessageId,
server: SyncServer = Depends(get_letta_server),
headers: HeaderParams = Depends(get_headers),
):
"""
Retrieve a message by ID.
"""
actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id)
message = await server.message_manager.get_message_by_id_async(message_id=message_id, actor=actor)
if message is None:
raise HTTPException(status_code=404, detail=f"Message with id {message_id} not found.")
return message.to_letta_messages()
@router.post("/search", response_model=List[LettaMessageSearchResult], operation_id="search_all_messages")
async def search_all_messages(
request: SearchAllMessagesRequest = Body(...),