Skip to content

Commit a93d74e

Browse files
Zhangxunmtrithin-pullela-aws
authored andcommitted
remove opensearch-ml-2.4.0.0.zip file that was added by random mistake (#3763)
Signed-off-by: Xun Zhang <[email protected]>
1 parent 7d6a2d3 commit a93d74e

File tree

8 files changed

+52
-90
lines changed

8 files changed

+52
-90
lines changed

common/src/main/java/org/opensearch/ml/common/CommonValue.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ public class CommonValue {
9393
public static final String MCP_TOOL_DESCRIPTION_FIELD = "description";
9494
public static final String MCP_TOOL_INPUT_SCHEMA_FIELD = "inputSchema";
9595
public static final String MCP_SYNC_CLIENT = "mcp_sync_client";
96-
public static final String MCP_EXECUTOR_SERVICE = "mcp_executor_service";
9796
public static final String MCP_TOOLS_FIELD = "tools";
9897
public static final String MCP_CONNECTORS_FIELD = "mcp_connectors";
9998
public static final String MCP_CONNECTOR_ID_FIELD = "mcp_connector_id";

ml-algorithms/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ dependencies {
8585
implementation('net.minidev:json-smart:2.5.2')
8686
implementation group: 'org.json', name: 'json', version: '20231013'
8787
implementation group: 'software.amazon.awssdk', name: 'netty-nio-client', version: "2.30.18"
88+
// TODO: Replace the custom jar with dependency implementation 'io.modelcontextprotocol.sdk:mcp:0.10.0' after its release
8889
implementation files('libs/mcp-0.10.0-SNAPSHOT.jar')
8990
testImplementation("com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}")
9091
testImplementation("com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}")
8.36 KB
Binary file not shown.

ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/agent/AgentUtils.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -915,13 +915,11 @@ public static Map<String, String> constructToolParams(
915915
}
916916

917917
public static void cleanUpResource(Map<String, Tool> tools) {
918-
// TODO: Add cleanup for other agents
919918
for (Map.Entry<String, Tool> entry : tools.entrySet()) {
920919
Tool tool = entry.getValue();
921920
if (tool instanceof McpSseTool) {
922921
// TODO: make this more general, avoid checking specific tool type
923922
((McpSseTool) tool).getMcpSyncClient().closeGracefully();
924-
((McpSseTool) tool).getExecutorService().shutdown();
925923
}
926924
}
927925
}

ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/McpConnectorExecutor.java

Lines changed: 49 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package org.opensearch.ml.engine.algorithms.remote;
77

8-
import static org.opensearch.ml.common.CommonValue.MCP_EXECUTOR_SERVICE;
98
import static org.opensearch.ml.common.CommonValue.MCP_SYNC_CLIENT;
109
import static org.opensearch.ml.common.CommonValue.MCP_TOOLS_FIELD;
1110
import static org.opensearch.ml.common.CommonValue.MCP_TOOL_DESCRIPTION_FIELD;
@@ -15,18 +14,12 @@
1514
import static org.opensearch.ml.common.connector.ConnectorProtocols.MCP_SSE;
1615

1716
import java.net.http.HttpRequest;
18-
import java.security.AccessController;
19-
import java.security.PrivilegedExceptionAction;
2017
import java.time.Duration;
2118
import java.util.ArrayList;
2219
import java.util.Collections;
2320
import java.util.HashMap;
2421
import java.util.List;
2522
import java.util.Map;
26-
import java.util.concurrent.ExecutorService;
27-
import java.util.concurrent.SynchronousQueue;
28-
import java.util.concurrent.ThreadPoolExecutor;
29-
import java.util.concurrent.TimeUnit;
3023
import java.util.function.Consumer;
3124

3225
import org.apache.logging.log4j.Logger;
@@ -85,71 +78,57 @@ public List<MLToolSpec> getMcpToolSpecs() {
8578
}
8679
List<MLToolSpec> mcpToolSpecs = new ArrayList<>();
8780
try {
88-
AccessController.doPrivileged((PrivilegedExceptionAction<Void>) () -> {
89-
90-
// TODO: USE DEFAULT EXECUTOR AFTER JSM SHUTDOWN
91-
// Create a privileged executor service
92-
// TODO: Make these hardcoded numbers configurable
93-
ExecutorService executor = new ThreadPoolExecutor(2, 10, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(), r -> {
94-
Thread thread = new Thread(r);
95-
thread.setDaemon(true);
96-
return thread;
97-
});
98-
99-
Duration connectionTimeout = Duration.ofSeconds(super.getConnectorClientConfig().getConnectionTimeout());
100-
Duration readTimeout = Duration.ofSeconds(super.getConnectorClientConfig().getReadTimeout());
101-
102-
Consumer<HttpRequest.Builder> headerConfig = builder -> {
103-
builder.header("Content-Type", "application/json");
104-
105-
for (Map.Entry<String, String> entry : connector.getDecryptedHeaders().entrySet()) {
106-
builder.header(entry.getKey(), entry.getValue());
107-
}
108-
};
109-
110-
// Create transport
111-
McpClientTransport transport = HttpClientSseClientTransport.builder(mcpServerUrl).customizeClient(clientBuilder -> {
112-
clientBuilder.executor(executor).connectTimeout(connectionTimeout);
113-
}).customizeRequest(headerConfig).build();
114-
115-
// Create and initialize client
116-
McpSyncClient client = McpClient
117-
.sync(transport)
118-
.requestTimeout(readTimeout)
119-
.capabilities(McpSchema.ClientCapabilities.builder().roots(false).build())
120-
.build();
81+
Duration connectionTimeout = Duration.ofSeconds(super.getConnectorClientConfig().getConnectionTimeout());
82+
Duration readTimeout = Duration.ofSeconds(super.getConnectorClientConfig().getReadTimeout());
83+
84+
Consumer<HttpRequest.Builder> headerConfig = builder -> {
85+
builder.header("Content-Type", "application/json");
12186

122-
client.initialize();
123-
McpSchema.ListToolsResult tools = client.listTools();
124-
125-
// Process the results
126-
Gson gson = new Gson();
127-
String json = gson.toJson(tools, McpSchema.ListToolsResult.class);
128-
Map<String, Object> map = gson.fromJson(json, Map.class);
129-
130-
List<Object> mcpTools = (List<Object>) map.get(MCP_TOOLS_FIELD);
131-
132-
for (Object tool : mcpTools) {
133-
Map<String, Object> toolMap = (Map<String, Object>) tool;
134-
Map<String, String> attributes = new HashMap<>();
135-
attributes.put(TOOL_INPUT_SCHEMA_FIELD, StringUtils.toJson(toolMap.get(MCP_TOOL_INPUT_SCHEMA_FIELD)));
136-
137-
String description = (toolMap.containsKey(MCP_TOOL_DESCRIPTION_FIELD))
138-
? StringUtils.processTextDoc(toolMap.get(MCP_TOOL_DESCRIPTION_FIELD).toString())
139-
: McpSseTool.DEFAULT_DESCRIPTION;
140-
MLToolSpec mlToolSpec = MLToolSpec
141-
.builder()
142-
.type(McpSseTool.TYPE)
143-
.name(toolMap.get(MCP_TOOL_NAME_FIELD).toString())
144-
.description(description)
145-
.attributes(attributes)
146-
.build();
147-
mlToolSpec.addRuntimeResource(MCP_SYNC_CLIENT, client);
148-
mlToolSpec.addRuntimeResource(MCP_EXECUTOR_SERVICE, executor);
149-
mcpToolSpecs.add(mlToolSpec);
87+
for (Map.Entry<String, String> entry : connector.getDecryptedHeaders().entrySet()) {
88+
builder.header(entry.getKey(), entry.getValue());
15089
}
151-
return null;
152-
});
90+
};
91+
92+
// Create transport
93+
McpClientTransport transport = HttpClientSseClientTransport.builder(mcpServerUrl).customizeClient(clientBuilder -> {
94+
clientBuilder.connectTimeout(connectionTimeout);
95+
}).customizeRequest(headerConfig).build();
96+
97+
// Create and initialize client
98+
McpSyncClient client = McpClient
99+
.sync(transport)
100+
.requestTimeout(readTimeout)
101+
.capabilities(McpSchema.ClientCapabilities.builder().roots(false).build())
102+
.build();
103+
104+
client.initialize();
105+
McpSchema.ListToolsResult tools = client.listTools();
106+
107+
// Process the results
108+
Gson gson = new Gson();
109+
String json = gson.toJson(tools, McpSchema.ListToolsResult.class);
110+
Map<String, Object> map = gson.fromJson(json, Map.class);
111+
112+
List<Object> mcpTools = (List<Object>) map.get(MCP_TOOLS_FIELD);
113+
114+
for (Object tool : mcpTools) {
115+
Map<String, Object> toolMap = (Map<String, Object>) tool;
116+
Map<String, String> attributes = new HashMap<>();
117+
attributes.put(TOOL_INPUT_SCHEMA_FIELD, StringUtils.toJson(toolMap.get(MCP_TOOL_INPUT_SCHEMA_FIELD)));
118+
119+
String description = (toolMap.containsKey(MCP_TOOL_DESCRIPTION_FIELD))
120+
? StringUtils.processTextDoc(toolMap.get(MCP_TOOL_DESCRIPTION_FIELD).toString())
121+
: McpSseTool.DEFAULT_DESCRIPTION;
122+
MLToolSpec mlToolSpec = MLToolSpec
123+
.builder()
124+
.type(McpSseTool.TYPE)
125+
.name(toolMap.get(MCP_TOOL_NAME_FIELD).toString())
126+
.description(description)
127+
.attributes(attributes)
128+
.build();
129+
mlToolSpec.addRuntimeResource(MCP_SYNC_CLIENT, client);
130+
mcpToolSpecs.add(mlToolSpec);
131+
}
153132

154133
return mcpToolSpecs;
155134
} catch (Exception e) {

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/McpSseTool.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@
55

66
package org.opensearch.ml.engine.tools;
77

8-
import static org.opensearch.ml.common.CommonValue.MCP_EXECUTOR_SERVICE;
98
import static org.opensearch.ml.common.CommonValue.MCP_SYNC_CLIENT;
109

1110
import java.util.List;
1211
import java.util.Map;
13-
import java.util.concurrent.ExecutorService;
1412

1513
import org.opensearch.core.action.ActionListener;
1614
import org.opensearch.ml.common.spi.tools.Parser;
@@ -52,13 +50,9 @@ public class McpSseTool implements WithModelTool {
5250
@Getter
5351
@VisibleForTesting
5452
private Parser outputParser;
55-
// TODO: USE DEFAULT EXECUTOR AFTER JSM SHUTDOWN
56-
@Getter
57-
private ExecutorService executorService;
5853

59-
public McpSseTool(McpSyncClient mcpSyncClient, ExecutorService executorService) {
54+
public McpSseTool(McpSyncClient mcpSyncClient) {
6055
this.mcpSyncClient = mcpSyncClient;
61-
this.executorService = executorService;
6256
}
6357

6458
@Override
@@ -123,7 +117,7 @@ public void init() {}
123117

124118
@Override
125119
public McpSseTool create(Map<String, Object> map) {
126-
return new McpSseTool((McpSyncClient) map.get(MCP_SYNC_CLIENT), (ExecutorService) map.get(MCP_EXECUTOR_SERVICE));
120+
return new McpSseTool((McpSyncClient) map.get(MCP_SYNC_CLIENT));
127121
}
128122

129123
@Override

plugin/src/main/plugin-metadata/plugin-security.policy

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,4 @@ grant {
3737
// for accessing Unix domain socket on windows
3838
permission java.net.NetPermission "accessUnixDomainSocket";
3939

40-
permission java.lang.RuntimePermission "modifyThread";
41-
permission java.lang.RuntimePermission "modifyThreadGroup";
42-
permission org.opensearch.secure_sm.ThreadPermission "modifyArbitraryThread";
43-
44-
permission java.net.SocketPermission "*:*", "accept,connect,listen,resolve";
45-
permission java.net.URLPermission "http://*:*/*", "*:*";
46-
permission java.net.URLPermission "https://*:*/*", "*:*";
47-
permission java.net.URLPermission "http://*:*/messages/*", "*:*";
48-
permission java.net.URLPermission "https://*:*/messages/*", "*:*";
4940
};
Binary file not shown.

0 commit comments

Comments
 (0)