From 62e422f75a72d4c0bc111861469977312ef2ef90 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Wed, 31 Dec 2025 18:09:14 +0800 Subject: [PATCH] feat: add NotSupportedOperationError and update E2BEnvironment to raise it for unsupported command status retrieval --- api/core/virtual_environment/__base/exec.py | 6 ++++++ api/core/virtual_environment/providers/e2b_sandbox.py | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/api/core/virtual_environment/__base/exec.py b/api/core/virtual_environment/__base/exec.py index 3c6ab8a22f..e4239ee354 100644 --- a/api/core/virtual_environment/__base/exec.py +++ b/api/core/virtual_environment/__base/exec.py @@ -8,3 +8,9 @@ class VirtualEnvironmentLaunchFailedError(Exception): """Exception raised when launching the virtual environment fails.""" pass + + +class NotSupportedOperationError(Exception): + """Exception raised when an operation is not supported.""" + + pass diff --git a/api/core/virtual_environment/providers/e2b_sandbox.py b/api/core/virtual_environment/providers/e2b_sandbox.py index ff853f3048..dd5551170a 100644 --- a/api/core/virtual_environment/providers/e2b_sandbox.py +++ b/api/core/virtual_environment/providers/e2b_sandbox.py @@ -10,7 +10,7 @@ from uuid import uuid4 from e2b_code_interpreter import Sandbox from core.virtual_environment.__base.entities import Arch, CommandStatus, ConnectionHandle, FileState, Metadata -from core.virtual_environment.__base.exec import ArchNotSupportedError +from core.virtual_environment.__base.exec import ArchNotSupportedError, NotSupportedOperationError from core.virtual_environment.__base.virtual_environment import VirtualEnvironment from core.virtual_environment.channel.queue_transport import QueueTransportReadCloser from core.virtual_environment.channel.transport import ( @@ -180,7 +180,10 @@ class E2BEnvironment(VirtualEnvironment): ) def get_command_status(self, connection_handle: ConnectionHandle, pid: str) -> CommandStatus: - return super().get_command_status(connection_handle, pid) + """ + Nop, E2B does not support getting command status yet. + """ + raise NotSupportedOperationError("E2B does not support getting command status yet.") def _cmd_thread( self,