Manager API¶
SandboxManager
¶
flowchart TD
ms_enclave.sandbox.manager.base.SandboxManager[SandboxManager]
click ms_enclave.sandbox.manager.base.SandboxManager href "" "ms_enclave.sandbox.manager.base.SandboxManager"
Abstract base class for sandbox managers.
Parameters:
-
API Reference
SandboxManagerFactorycreate_manager
Methods:
-
__aenter__–Async context manager entry.
-
__aexit__–Async context manager exit.
-
cleanup_all_sandboxes–Clean up all sandboxes.
-
create_sandbox–Create a new sandbox.
-
delete_sandbox–Delete a sandbox.
-
execute_tool–Execute tool in sandbox.
-
execute_tool_in_pool–Execute tool using an available sandbox from the pool.
-
get_sandbox_info–Get sandbox information.
-
get_sandbox_tools–Get available tools for a sandbox.
-
get_stats–Get manager statistics.
-
initialize_pool–Initialize sandbox pool.
-
list_sandboxes–List all sandboxes.
-
start–Start the sandbox manager.
-
stop–Stop the sandbox manager.
-
stop_sandbox–Stop a sandbox.
Source code in ms_enclave/sandbox/manager/base.py
__aenter__
async
¶
__aexit__
async
¶
cleanup_all_sandboxes
abstractmethod
async
¶
create_sandbox
abstractmethod
async
¶
create_sandbox(sandbox_type: SandboxType, config: Optional[Union[SandboxConfig, Dict]] = None, sandbox_id: Optional[str] = None) -> str
Create a new sandbox.
Parameters:
-
(sandbox_type¶SandboxType) –Type of sandbox to create
-
(config¶Optional[Union[SandboxConfig, Dict]], default:None) –Sandbox configuration
-
(sandbox_id¶Optional[str], default:None) –Optional sandbox ID
Returns:
-
str–Sandbox ID
Raises:
-
ValueError–If sandbox type is not supported
-
RuntimeError–If sandbox creation fails
Source code in ms_enclave/sandbox/manager/base.py
delete_sandbox
abstractmethod
async
¶
delete_sandbox(sandbox_id: str) -> bool
execute_tool
abstractmethod
async
¶
execute_tool(sandbox_id: str, tool_name: str, parameters: Dict[str, Any]) -> ToolResult
Execute tool in sandbox.
Parameters:
-
(sandbox_id¶str) –Sandbox ID
-
(tool_name¶str) –Tool name to execute
-
(parameters¶Dict[str, Any]) –Tool parameters
Returns:
-
ToolResult–Tool execution result
Raises:
-
ValueError–If sandbox or tool not found
Source code in ms_enclave/sandbox/manager/base.py
execute_tool_in_pool
abstractmethod
async
¶
execute_tool_in_pool(tool_name: str, parameters: Dict[str, Any], timeout: Optional[float] = None) -> ToolResult
Execute tool using an available sandbox from the pool.
Uses FIFO queue to get an idle sandbox, marks it as busy during execution, then returns it to the pool as idle.
Parameters:
-
(tool_name¶str) –Tool name to execute
-
(parameters¶Dict[str, Any]) –Tool parameters
-
(timeout¶Optional[float], default:None) –Optional timeout for waiting for available sandbox
Returns:
-
ToolResult–Tool execution result
Raises:
-
ValueError–If pool is empty or no sandbox available
-
TimeoutError–If timeout waiting for available sandbox
Source code in ms_enclave/sandbox/manager/base.py
get_sandbox_info
abstractmethod
async
¶
get_sandbox_info(sandbox_id: str) -> Optional[SandboxInfo]
Get sandbox information.
Parameters:
Returns:
-
Optional[SandboxInfo]–Sandbox information or None if not found
get_sandbox_tools
abstractmethod
async
¶
get_sandbox_tools(sandbox_id: str) -> Dict[str, Any]
Get available tools for a sandbox.
Parameters:
Returns:
Raises:
-
ValueError–If sandbox not found
Source code in ms_enclave/sandbox/manager/base.py
get_stats
abstractmethod
async
¶
initialize_pool
abstractmethod
async
¶
initialize_pool(pool_size: Optional[int] = None, sandbox_type: Optional[SandboxType] = None, config: Optional[Union[SandboxConfig, Dict]] = None) -> List[str]
Initialize sandbox pool.
Parameters:
-
(pool_size¶Optional[int], default:None) –Number of sandboxes in pool (uses config if not provided)
-
(sandbox_type¶Optional[SandboxType], default:None) –Type of sandbox to create
-
(config¶Optional[Union[SandboxConfig, Dict]], default:None) –Sandbox configuration (uses config.sandbox_config if not provided)
Returns:
Source code in ms_enclave/sandbox/manager/base.py
list_sandboxes
abstractmethod
async
¶
list_sandboxes(status_filter: Optional[SandboxStatus] = None) -> List[SandboxInfo]
List all sandboxes.
Parameters:
Returns:
-
List[SandboxInfo]–List of sandbox information
Source code in ms_enclave/sandbox/manager/base.py
start
abstractmethod
async
¶
stop
abstractmethod
async
¶
stop_sandbox
abstractmethod
async
¶
stop_sandbox(sandbox_id: str) -> bool
SandboxManagerFactory
¶
Factory for creating sandbox managers.
Methods:
-
create_manager–Create a sandbox manager instance.
-
get_registered_types–Get list of registered manager types.
-
register–Register a sandbox manager class.
create_manager
classmethod
¶
create_manager(manager_type: Optional[SandboxManagerType] = None, config: Optional[SandboxManagerConfig] = None, **kwargs: Any) -> SandboxManager
Create a sandbox manager instance.
Parameters:
-
(manager_type¶Optional[SandboxManagerType], default:None) –Type of manager to create
-
(config¶Optional[SandboxManagerConfig], default:None) –Manager configuration
-
(**kwargs¶Any, default:{}) –Additional manager-specific parameters
Returns:
-
SandboxManager–Sandbox manager instance
Raises:
-
ValueError–If manager type is not registered
Source code in ms_enclave/sandbox/manager/base.py
get_registered_types
classmethod
¶
get_registered_types() -> List[SandboxManagerType]
Get list of registered manager types.
Returns:
-
List[SandboxManagerType]–List of registered manager types
register
classmethod
¶
register(manager_type: SandboxManagerType, manager_class: type) -> None
register_manager
¶
register_manager(manager_type: SandboxManagerType) -> Callable[..., type]
Decorator to register a sandbox manager class.
Parameters:
-
(manager_type¶SandboxManagerType) –Manager type to register
Returns: