- Created tests/pod_executor/ with adapted tests from old locations
- tests/pod_executor/simple/test_executor.py: 17/17 tests passing
- tests/pod_executor/security/test_resource_limits.py: 22/23 tests passing
- Removed old test locations (will be deleted with mcp_forge cleanup)
- Fixed all corrupted files from sed/quote issues using Python scripts
- Removed mcp_forge dependencies from pod_executor:
- Removed ForgeConfig from backend.py (explicit parameters)
- Removed SessionConfig from sessions.py (explicit parameters)
- Fixed all audit logger calls to use string-based events
- Updated mcp_forge/security/__init__.py:
- Removed resource_limits imports (now in pod_executor)
- Added comment directing to pod_executor.security.resource_limits
- Deleted from mcp_forge:
- src/mcp_forge/execution/ (simple and jupyter backends)
- src/mcp_forge/podman/ (container management)
- src/mcp_forge/security/resource_limits.py
Total: 39/40 tests passing in pod_executor package
Created a standalone code execution package independent of MCP-Forge:
Structure:
- pod_executor/security/ - Resource limits, audit protocols, validation
- pod_executor/containers/ - Podman client and container management
- pod_executor/simple/ - Stateless code executor
- pod_executor/jupyter/ - Stateful Jupyter backend with sessions
Key changes:
- Removed ForgeConfig dependency - all parameters explicit
- Audit logger now a protocol with NullAuditLogger/SimpleFileAuditLogger
- Validator now a protocol with NoOpValidator/BasicValidator
- All imports updated to pod_executor namespace
- Audit calls use simple strings instead of enums
Benefits:
- Standalone package usable without MCP-Forge
- Clear separation between execution engine and MCP protocol
- Easier testing and development
- Reusable in other projects