ocr improved

This commit is contained in:
2026-01-13 18:25:49 +08:00
parent 9745ca2476
commit a5eb381384
104 changed files with 818 additions and 229 deletions

View File

@@ -21,6 +21,10 @@ class WorkspaceCreateRequest(BaseModel):
name: str = Field(..., min_length=1, max_length=100, description="Workspace name (alphanumeric, underscores, hyphens)")
class WorkspaceRenameRequest(BaseModel):
new_name: str = Field(..., min_length=1, max_length=100, description="New workspace name (alphanumeric, underscores, hyphens)")
class WorkspaceResponse(BaseModel):
name: str
path: str
@@ -74,6 +78,26 @@ async def create_workspace(
raise HTTPException(status_code=500, detail=str(e))
@router.patch("/{workspace_name}", response_model=WorkspaceResponse)
async def rename_workspace(
workspace_name: str,
rename_request: WorkspaceRenameRequest,
workspace_manager: WorkspaceManager = Depends(get_workspace_manager),
):
"""Rename a workspace."""
try:
await workspace_manager.rename_workspace(workspace_name, rename_request.new_name)
return WorkspaceResponse(
name=rename_request.new_name,
path=str(workspace_manager.base_working_dir / rename_request.new_name)
)
except ValueError as e:
raise HTTPException(status_code=400, detail=str(e))
except Exception as e:
logger.error(f"Error renaming workspace: {e}")
raise HTTPException(status_code=500, detail=str(e))
@router.delete("/{workspace_name}")
async def delete_workspace(
workspace_name: str,