Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import io.agentscope.runtime.engine.agents.agentscope.tools.mcp.AsMCPTool;
import io.agentscope.runtime.sandbox.box.Sandbox;
import io.agentscope.runtime.sandbox.manager.SandboxManager;
import io.agentscope.runtime.sandbox.manager.model.container.SandboxType;
import io.agentscope.runtime.sandbox.tools.MCPTool;
import io.agentscope.runtime.sandbox.tools.McpConfigConverter;

Expand Down Expand Up @@ -298,19 +297,19 @@ public static AgentTool SearchFilesTool(Sandbox sandbox) {
}

public static List<AgentTool> getMcpTools(String serverConfigs,
SandboxType sandboxType,
String sandboxType,
SandboxManager sandboxManager) {
return getMcpTools(serverConfigs, sandboxType, sandboxManager, null, null);
}

public static List<AgentTool> getMcpTools(Map<String, Object> serverConfigs,
SandboxType sandboxType,
String sandboxType,
SandboxManager sandboxManager) {
return getMcpTools(serverConfigs, sandboxType, sandboxManager, null, null);
}

public static List<AgentTool> getMcpTools(String serverConfigs,
SandboxType sandboxType,
String sandboxType,
SandboxManager sandboxManager,
Set<String> whitelist,
Set<String> blacklist) {
Expand All @@ -326,7 +325,7 @@ public static List<AgentTool> getMcpTools(String serverConfigs,
}

public static List<AgentTool> getMcpTools(Map<String, Object> serverConfigs,
SandboxType sandboxType,
String sandboxType,
SandboxManager sandboxManager,
Set<String> whitelist,
Set<String> blacklist) {
Expand All @@ -352,7 +351,7 @@ public static List<AgentTool> getMcpTools(Map<String, Object> serverConfigs,
}

// public static List<AgentTool> getAllToolsWithMcp(String mcpServerConfigs,
// SandboxType sandboxType,
// String sandboxType,
// SandboxManager sandboxManager) {
// List<AgentTool> allTools = new ArrayList<>(getAllTools());
//
Expand All @@ -370,7 +369,7 @@ public static List<AgentTool> getMcpTools(Map<String, Object> serverConfigs,
// }

// public static List<AgentTool> getAllToolsWithMcp(Map<String, Object> mcpServerConfigs,
// SandboxType sandboxType,
// String sandboxType,
// SandboxManager sandboxManager) {
// List<AgentTool> allTools = new ArrayList<>(getAllTools());
//
Expand All @@ -388,7 +387,7 @@ public static List<AgentTool> getMcpTools(Map<String, Object> serverConfigs,
// }

public static List<MCPTool> createMcpToolInstances(String serverConfigs,
SandboxType sandboxType,
String sandboxType,
SandboxManager sandboxManager) {
McpConfigConverter converter = McpConfigConverter.builder()
.serverConfigs(serverConfigs)
Expand All @@ -400,7 +399,7 @@ public static List<MCPTool> createMcpToolInstances(String serverConfigs,
}

public static List<MCPTool> createMcpToolInstances(Map<String, Object> serverConfigs,
SandboxType sandboxType,
String sandboxType,
SandboxManager sandboxManager) {
McpConfigConverter converter = McpConfigConverter.builder()
.serverConfigs(serverConfigs)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import io.agentscope.core.message.ToolResultBlock;
import io.agentscope.runtime.engine.agents.agentscope.tools.AgentScopeSandboxAwareTool;
import io.agentscope.runtime.sandbox.manager.SandboxManager;
import io.agentscope.runtime.sandbox.manager.model.container.SandboxType;
import io.agentscope.runtime.sandbox.tools.MCPTool;
import reactor.core.publisher.Mono;

Expand All @@ -29,7 +28,7 @@
public class AsMCPTool extends AgentScopeSandboxAwareTool<MCPTool> {
public AsMCPTool(String name, String toolType, String description,
Map<String, Object> schema, Map<String, Object> serverConfigs,
SandboxType sandboxType, SandboxManager sandboxManager) {
String sandboxType, SandboxManager sandboxManager) {
super(new MCPTool(name,
toolType,
description,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@
package io.agentscope.runtime.sandbox.box;

import io.agentscope.runtime.sandbox.manager.SandboxManager;
import io.agentscope.runtime.sandbox.manager.model.container.SandboxType;

public abstract class CloudSandbox extends Sandbox {
public CloudSandbox(SandboxManager managerApi, String userId, String sessionId, SandboxType sandboxType) {
public CloudSandbox(SandboxManager managerApi, String userId, String sessionId, String sandboxType) {
this(managerApi, userId, sessionId, 3000, sandboxType);
}

Expand All @@ -29,7 +28,7 @@ public CloudSandbox(
String userId,
String sessionId,
int timeout,
SandboxType sandboxType) {
String sandboxType) {
super(managerApi, userId, sessionId, sandboxType, timeout);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public class DummySandbox implements AutoCloseable {
private final String sandboxId;
private final String userId;
private final String sessionId;
private final SandboxType sandboxType;
private final String sandboxType;
private boolean closed = false;

public DummySandbox(SandboxManager managerApi, String userId, String sessionId) {
Expand Down Expand Up @@ -63,7 +63,7 @@ public String getSessionId() {
return sessionId;
}

public SandboxType getSandboxType() {
public String getSandboxType() {
return sandboxType;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public abstract class Sandbox implements AutoCloseable {
protected String sandboxId;
protected final String userId;
protected final String sessionId;
protected final SandboxType sandboxType;
protected final String sandboxType;
protected final int timeout;
protected final boolean autoRelease;
protected boolean closed = false;
Expand All @@ -38,7 +38,7 @@ public Sandbox(
SandboxManager managerApi,
String userId,
String sessionId,
SandboxType sandboxType,
String sandboxType,
int timeout) {
this(managerApi, userId, sessionId, sandboxType, timeout, true);
}
Expand All @@ -47,7 +47,7 @@ public Sandbox(
SandboxManager managerApi,
String userId,
String sessionId,
SandboxType sandboxType,
String sandboxType,
int timeout,
boolean autoRelease) {
this.managerApi = managerApi;
Expand Down Expand Up @@ -88,7 +88,7 @@ public String getSessionId() {
return sessionId;
}

public SandboxType getSandboxType() {
public String getSandboxType() {
return sandboxType;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
package io.agentscope.runtime.sandbox.box;

import io.agentscope.runtime.sandbox.manager.SandboxManager;
import io.agentscope.runtime.sandbox.manager.model.container.SandboxType;

import java.util.HashMap;
import java.util.Map;
Expand All @@ -27,15 +26,15 @@ public TrainingSandbox(
SandboxManager managerApi,
String userId,
String sessionId,
SandboxType sandboxType) {
String sandboxType) {
this(managerApi, userId, sessionId, sandboxType, 3000);
}

public TrainingSandbox(
SandboxManager managerApi,
String userId,
String sessionId,
SandboxType sandboxType,
String sandboxType,
int timeout) {
super(managerApi, userId, sessionId, sandboxType, timeout);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,8 @@ private void initContainerPool() {
logger.info("Initializing container pool with size: " + poolSize);

while (poolQueue.size() < poolSize) {
for (SandboxType type : managerConfig.getDefaultSandboxType()) {
if (type == SandboxType.AGENTBAY) {
for (String type : managerConfig.getDefaultSandboxType()) {
if (Objects.equals(type, SandboxType.AGENTBAY)) {
logger.warning("Skipping AgentBay sandbox type for container pool initialization");
continue;
}
Expand Down Expand Up @@ -241,7 +241,7 @@ private void initContainerPool() {
logger.info("Container pool initialization complete. Pool size: " + poolQueue.size());
}

public ContainerModel createFromPool(SandboxType sandboxType, String imageId, Map<String, String> labels) {
public ContainerModel createFromPool(String sandboxType, String imageId, Map<String, String> labels) {
int attempts = 0;
int maxAttempts = poolSize + 1;

Expand Down Expand Up @@ -296,16 +296,16 @@ public ContainerModel createFromPool(SandboxType sandboxType, String imageId, Ma
return createContainer(sandboxType, null, null, null, imageId, labels);
}

public ContainerModel createFromPool(SandboxType sandboxType, String userID, String sessionID) {
public ContainerModel createFromPool(String sandboxType, String userID, String sessionID) {
return createFromPool(sandboxType, userID, sessionID, null, null);
}

@RemoteWrapper
public ContainerModel createFromPool(SandboxType sandboxType, String userID, String sessionID, String imageId, Map<String, String> labels) {
public ContainerModel createFromPool(String sandboxType, String userID, String sessionID, String imageId, Map<String, String> labels) {
if (remoteHttpClient != null && remoteHttpClient.isConfigured()) {
logger.info("Remote mode: forwarding createFromPool(with userID/sessionID) to remote server");
Map<String, Object> requestData = new HashMap<>();
requestData.put("sandboxType", sandboxType != null ? sandboxType.name() : null);
requestData.put("sandboxType", sandboxType);
requestData.put("userID", userID);
requestData.put("sessionID", sessionID);
requestData.put("imageId", imageId);
Expand Down Expand Up @@ -362,20 +362,20 @@ public ContainerModel createFromPool(SandboxType sandboxType, String userID, Str
return containerModel;
}

public ContainerModel createContainer(SandboxType sandboxType) {
public ContainerModel createContainer(String sandboxType) {
return createContainer(sandboxType, null, null, null);
}

public ContainerModel createContainer(SandboxType sandboxType, String mountDir, String storagePath, Map<String, String> environment) {
public ContainerModel createContainer(String sandboxType, String mountDir, String storagePath, Map<String, String> environment) {
return createContainer(sandboxType, mountDir, storagePath, environment, null, null);
}

@RemoteWrapper
public ContainerModel createContainer(SandboxType sandboxType, String mountDir, String storagePath, Map<String, String> environment, String imageId, Map<String, String> labels) {
public ContainerModel createContainer(String sandboxType, String mountDir, String storagePath, Map<String, String> environment, String imageId, Map<String, String> labels) {
if (remoteHttpClient != null && remoteHttpClient.isConfigured()) {
logger.info("Remote mode: forwarding createContainer to remote server");
Map<String, Object> requestData = new HashMap<>();
requestData.put("sandboxType", sandboxType != null ? sandboxType.name() : null);
requestData.put("sandboxType", sandboxType);
requestData.put("mountDir", mountDir);
requestData.put("storagePath", storagePath);
requestData.put("environment", environment);
Expand Down Expand Up @@ -615,19 +615,19 @@ private void releaseContainer(ContainerModel containerModel) {
}
}

public ContainerModel getSandbox(SandboxType sandboxType, String userID, String sessionID) {
public ContainerModel getSandbox(String sandboxType, String userID, String sessionID) {
return getSandbox(sandboxType, null, null, null, userID, sessionID, null, null);
}

public ContainerModel getSandbox(SandboxType sandboxType, String userID, String sessionID, String imageId, Map<String, String> labels) {
public ContainerModel getSandbox(String sandboxType, String userID, String sessionID, String imageId, Map<String, String> labels) {
return getSandbox(sandboxType, null, null, null, userID, sessionID, imageId, labels);
}

public ContainerModel getSandbox(SandboxType sandboxType, String mountDir, String storagePath, Map<String, String> environment, String userID, String sessionID) {
public ContainerModel getSandbox(String sandboxType, String mountDir, String storagePath, Map<String, String> environment, String userID, String sessionID) {
return getSandbox(sandboxType, mountDir, storagePath, environment, userID, sessionID, null, null);
}

public ContainerModel getSandbox(SandboxType sandboxType, String mountDir, String storagePath, Map<String, String> environment, String userID, String sessionID, String imageId, Map<String, String> labels) {
public ContainerModel getSandbox(String sandboxType, String mountDir, String storagePath, Map<String, String> environment, String userID, String sessionID, String imageId, Map<String, String> labels) {
SandboxKey key = new SandboxKey(userID, sessionID, sandboxType);

if (redisEnabled && redisContainerMapping != null) {
Expand Down Expand Up @@ -657,11 +657,11 @@ public ContainerModel getSandbox(SandboxType sandboxType, String mountDir, Strin
}

@RemoteWrapper
public void startSandbox(SandboxType sandboxType, String userID, String sessionID) {
public void startSandbox(String sandboxType, String userID, String sessionID) {
if (remoteHttpClient != null && remoteHttpClient.isConfigured()) {
logger.info("Remote mode: forwarding startSandbox to remote server");
Map<String, Object> requestData = new HashMap<>();
requestData.put("sandboxType", sandboxType != null ? sandboxType.name() : null);
requestData.put("sandboxType", sandboxType);
requestData.put("userID", userID);
requestData.put("sessionID", sessionID);
remoteHttpClient.makeRequest(
Expand Down Expand Up @@ -692,11 +692,11 @@ public void startSandbox(SandboxType sandboxType, String userID, String sessionI
}

@RemoteWrapper
public void stopSandbox(SandboxType sandboxType, String userID, String sessionID) {
public void stopSandbox(String sandboxType, String userID, String sessionID) {
if (remoteHttpClient != null && remoteHttpClient.isConfigured()) {
logger.info("Remote mode: forwarding stopSandbox to remote server");
Map<String, Object> requestData = new HashMap<>();
requestData.put("sandboxType", sandboxType != null ? sandboxType.name() : null);
requestData.put("sandboxType", sandboxType);
requestData.put("userID", userID);
requestData.put("sessionID", sessionID);
remoteHttpClient.makeRequest(
Expand Down Expand Up @@ -726,7 +726,7 @@ public void stopSandbox(SandboxType sandboxType, String userID, String sessionID
}
}

public void removeSandbox(SandboxType sandboxType, String userID, String sessionID) {
public void removeSandbox(String sandboxType, String userID, String sessionID) {
SandboxKey key = new SandboxKey(userID, sessionID, sandboxType);
ContainerModel containerModel = sandboxMap.get(key);

Expand All @@ -745,7 +745,7 @@ public void removeSandbox(SandboxType sandboxType, String userID, String session
}
}

public void stopAndRemoveSandbox(SandboxType sandboxType, String userID, String sessionID) {
public void stopAndRemoveSandbox(String sandboxType, String userID, String sessionID) {
SandboxKey key = new SandboxKey(userID, sessionID, sandboxType);
ContainerModel containerModel = sandboxMap.get(key);

Expand Down Expand Up @@ -787,11 +787,11 @@ public void stopAndRemoveSandbox(SandboxType sandboxType, String userID, String
}

@RemoteWrapper
public String getSandboxStatus(SandboxType sandboxType, String userID, String sessionID) {
public String getSandboxStatus(String sandboxType, String userID, String sessionID) {
if (remoteHttpClient != null && remoteHttpClient.isConfigured()) {
logger.info("Remote mode: forwarding getSandboxStatus to remote server");
Map<String, Object> requestData = new HashMap<>();
requestData.put("sandboxType", sandboxType != null ? sandboxType.name() : null);
requestData.put("sandboxType", sandboxType);
requestData.put("userID", userID);
requestData.put("sessionID", sessionID);
Object result = remoteHttpClient.makeRequest(
Expand Down Expand Up @@ -1166,7 +1166,7 @@ public Map<String, Object> addMcpServers(String sandboxId, String userId, String
}
}

public boolean releaseSandbox(SandboxType sandboxType, String userId, String sessionId) {
public boolean releaseSandbox(String sandboxType, String userId, String sessionId) {
try {
stopAndRemoveSandbox(sandboxType, userId, sessionId);
logger.info("Released sandbox: type=" + sandboxType + ", user=" + userId + ", session=" + sessionId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import io.agentscope.runtime.sandbox.manager.model.container.ContainerModel;
import io.agentscope.runtime.sandbox.manager.model.container.SandboxKey;
import io.agentscope.runtime.sandbox.manager.model.container.SandboxType;
import io.agentscope.runtime.sandbox.manager.util.RedisClientWrapper;

import java.util.HashMap;
Expand Down Expand Up @@ -52,7 +51,7 @@ private String getFullKey(SandboxKey key) {
prefix,
key.getUserID(),
key.getSessionID(),
key.getSandboxType().getTypeName(),
key.getSandboxType(),
key.getImageID());
}

Expand Down Expand Up @@ -184,10 +183,8 @@ private SandboxKey parseSandboxKey(String keyString) {

String userID = parts[0];
String sessionID = parts[1];
String sandboxTypeStr = parts[2];

SandboxType sandboxType = SandboxType.valueOf(sandboxTypeStr.toUpperCase());

String sandboxType = parts[2];

return new SandboxKey(userID, sessionID, sandboxType);
} catch (Exception e) {
logger.warning("Failed to parse SandboxKey from: " + keyString + ", error: " + e.getMessage());
Expand Down
Loading
Loading