From deb599f7067f300cf769c8114ccc47babcab2db7 Mon Sep 17 00:00:00 2001 From: Ari Webb Date: Fri, 17 Oct 2025 10:12:29 -0700 Subject: [PATCH] archives [LET-4629] (#5485) archives Co-authored-by: Ari Webb --- letta/server/rest_api/routers/v1/archives.py | 62 ++++++++------------ 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/letta/server/rest_api/routers/v1/archives.py b/letta/server/rest_api/routers/v1/archives.py index 45f88311..d2790da6 100644 --- a/letta/server/rest_api/routers/v1/archives.py +++ b/letta/server/rest_api/routers/v1/archives.py @@ -1,9 +1,8 @@ from typing import List, Literal, Optional -from fastapi import APIRouter, Body, Depends, HTTPException, Query +from fastapi import APIRouter, Body, Depends, Query from pydantic import BaseModel -from letta.orm.errors import NoResultFound from letta.schemas.archive import Archive as PydanticArchive from letta.server.rest_api.dependencies import HeaderParams, get_headers, get_letta_server from letta.server.server import SyncServer @@ -40,15 +39,12 @@ async def create_archive( """ Create a new archive. """ - try: - actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id) - return await server.archive_manager.create_archive_async( - name=archive.name, - description=archive.description, - actor=actor, - ) - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) + actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id) + return await server.archive_manager.create_archive_async( + name=archive.name, + description=archive.description, + actor=actor, + ) @router.get("/", response_model=List[PydanticArchive], operation_id="list_archives") @@ -73,20 +69,17 @@ async def list_archives( """ Get a list of all archives for the current organization with optional filters and pagination. """ - try: - actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id) - archives = await server.archive_manager.list_archives_async( - actor=actor, - before=before, - after=after, - limit=limit, - ascending=(order == "asc"), - name=name, - agent_id=agent_id, - ) - return archives - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) + actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id) + archives = await server.archive_manager.list_archives_async( + actor=actor, + before=before, + after=after, + limit=limit, + ascending=(order == "asc"), + name=name, + agent_id=agent_id, + ) + return archives @router.patch("/{archive_id}", response_model=PydanticArchive, operation_id="modify_archive") @@ -99,15 +92,10 @@ async def modify_archive( """ Update an existing archive's name and/or description. """ - try: - actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id) - return await server.archive_manager.update_archive_async( - archive_id=archive_id, - name=archive.name, - description=archive.description, - actor=actor, - ) - except NoResultFound as e: - raise HTTPException(status_code=404, detail=str(e)) - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) + actor = await server.user_manager.get_actor_or_default_async(actor_id=headers.actor_id) + return await server.archive_manager.update_archive_async( + archive_id=archive_id, + name=archive.name, + description=archive.description, + actor=actor, + )