@solongate/proxy 0.41.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create.js +2 -4
- package/dist/index.js +20 -15
- package/dist/lib.js +18 -11
- package/package.json +1 -1
package/dist/create.js
CHANGED
|
@@ -213,10 +213,8 @@ console.log('MCP servers communicate over stdin/stdout \u2014 not HTTP.');
|
|
|
213
213
|
console.log('You need an MCP client to connect:');
|
|
214
214
|
console.log('');
|
|
215
215
|
console.log(' Claude Code Open this folder, .mcp.json is auto-detected');
|
|
216
|
-
console.log('
|
|
217
|
-
console.log('
|
|
218
|
-
console.log(' Cline VS Code extension, add server in settings');
|
|
219
|
-
console.log(' Zed Add to settings.json under mcp_servers');
|
|
216
|
+
console.log(' Gemini CLI Open this folder, .mcp.json is auto-detected');
|
|
217
|
+
console.log(' OpenClaw Uses openclaw.plugin.json config');
|
|
220
218
|
console.log('');
|
|
221
219
|
console.log('Press Ctrl+C to stop.');
|
|
222
220
|
`
|
package/dist/index.js
CHANGED
|
@@ -1618,10 +1618,8 @@ console.log('MCP servers communicate over stdin/stdout \u2014 not HTTP.');
|
|
|
1618
1618
|
console.log('You need an MCP client to connect:');
|
|
1619
1619
|
console.log('');
|
|
1620
1620
|
console.log(' Claude Code Open this folder, .mcp.json is auto-detected');
|
|
1621
|
-
console.log('
|
|
1622
|
-
console.log('
|
|
1623
|
-
console.log(' Cline VS Code extension, add server in settings');
|
|
1624
|
-
console.log(' Zed Add to settings.json under mcp_servers');
|
|
1621
|
+
console.log(' Gemini CLI Open this folder, .mcp.json is auto-detected');
|
|
1622
|
+
console.log(' OpenClaw Uses openclaw.plugin.json config');
|
|
1625
1623
|
console.log('');
|
|
1626
1624
|
console.log('Press Ctrl+C to stop.');
|
|
1627
1625
|
`
|
|
@@ -2689,9 +2687,23 @@ var TrustLevel = {
|
|
|
2689
2687
|
var Permission = {
|
|
2690
2688
|
READ: "READ",
|
|
2691
2689
|
WRITE: "WRITE",
|
|
2692
|
-
EXECUTE: "EXECUTE"
|
|
2690
|
+
EXECUTE: "EXECUTE",
|
|
2691
|
+
NETWORK: "NETWORK"
|
|
2693
2692
|
};
|
|
2694
|
-
var PermissionSchema = z.enum(["READ", "WRITE", "EXECUTE"]);
|
|
2693
|
+
var PermissionSchema = z.enum(["READ", "WRITE", "EXECUTE", "NETWORK"]);
|
|
2694
|
+
function guessPermission(toolName) {
|
|
2695
|
+
const name = toolName.toLowerCase();
|
|
2696
|
+
if (name.includes("exec") || name.includes("shell") || name.includes("run") || name.includes("eval")) {
|
|
2697
|
+
return Permission.EXECUTE;
|
|
2698
|
+
}
|
|
2699
|
+
if (name.includes("fetch") || name.includes("http") || name.includes("request") || name.includes("curl") || name.includes("network") || name.includes("download") || name.includes("upload")) {
|
|
2700
|
+
return Permission.NETWORK;
|
|
2701
|
+
}
|
|
2702
|
+
if (name.includes("write") || name.includes("create") || name.includes("delete") || name.includes("update") || name.includes("set") || name.includes("edit") || name.includes("remove") || name.includes("insert")) {
|
|
2703
|
+
return Permission.WRITE;
|
|
2704
|
+
}
|
|
2705
|
+
return Permission.READ;
|
|
2706
|
+
}
|
|
2695
2707
|
var NO_PERMISSIONS = Object.freeze(
|
|
2696
2708
|
/* @__PURE__ */ new Set()
|
|
2697
2709
|
);
|
|
@@ -4573,7 +4585,7 @@ async function interceptToolCall(params, upstreamCall, options) {
|
|
|
4573
4585
|
toolName: params.name,
|
|
4574
4586
|
serverName: "default",
|
|
4575
4587
|
arguments: params.arguments ?? {},
|
|
4576
|
-
requiredPermission:
|
|
4588
|
+
requiredPermission: guessPermission(params.name),
|
|
4577
4589
|
timestamp
|
|
4578
4590
|
};
|
|
4579
4591
|
if (options.rateLimiter) {
|
|
@@ -6483,14 +6495,7 @@ ${msg.content.text}`;
|
|
|
6483
6495
|
* Guess tool permissions from tool name.
|
|
6484
6496
|
*/
|
|
6485
6497
|
guessPermissions(toolName) {
|
|
6486
|
-
|
|
6487
|
-
if (name.includes("exec") || name.includes("shell") || name.includes("run") || name.includes("eval")) {
|
|
6488
|
-
return ["EXECUTE"];
|
|
6489
|
-
}
|
|
6490
|
-
if (name.includes("write") || name.includes("create") || name.includes("delete") || name.includes("update") || name.includes("set")) {
|
|
6491
|
-
return ["WRITE"];
|
|
6492
|
-
}
|
|
6493
|
-
return ["READ"];
|
|
6498
|
+
return [guessPermission(toolName)];
|
|
6494
6499
|
}
|
|
6495
6500
|
/**
|
|
6496
6501
|
* Register the upstream MCP server to the SolonGate Cloud API.
|
package/dist/lib.js
CHANGED
|
@@ -634,9 +634,23 @@ var TrustLevel = {
|
|
|
634
634
|
var Permission = {
|
|
635
635
|
READ: "READ",
|
|
636
636
|
WRITE: "WRITE",
|
|
637
|
-
EXECUTE: "EXECUTE"
|
|
637
|
+
EXECUTE: "EXECUTE",
|
|
638
|
+
NETWORK: "NETWORK"
|
|
638
639
|
};
|
|
639
|
-
var PermissionSchema = z.enum(["READ", "WRITE", "EXECUTE"]);
|
|
640
|
+
var PermissionSchema = z.enum(["READ", "WRITE", "EXECUTE", "NETWORK"]);
|
|
641
|
+
function guessPermission(toolName) {
|
|
642
|
+
const name = toolName.toLowerCase();
|
|
643
|
+
if (name.includes("exec") || name.includes("shell") || name.includes("run") || name.includes("eval")) {
|
|
644
|
+
return Permission.EXECUTE;
|
|
645
|
+
}
|
|
646
|
+
if (name.includes("fetch") || name.includes("http") || name.includes("request") || name.includes("curl") || name.includes("network") || name.includes("download") || name.includes("upload")) {
|
|
647
|
+
return Permission.NETWORK;
|
|
648
|
+
}
|
|
649
|
+
if (name.includes("write") || name.includes("create") || name.includes("delete") || name.includes("update") || name.includes("set") || name.includes("edit") || name.includes("remove") || name.includes("insert")) {
|
|
650
|
+
return Permission.WRITE;
|
|
651
|
+
}
|
|
652
|
+
return Permission.READ;
|
|
653
|
+
}
|
|
640
654
|
var NO_PERMISSIONS = Object.freeze(
|
|
641
655
|
/* @__PURE__ */ new Set()
|
|
642
656
|
);
|
|
@@ -2694,7 +2708,7 @@ async function interceptToolCall(params, upstreamCall, options) {
|
|
|
2694
2708
|
toolName: params.name,
|
|
2695
2709
|
serverName: "default",
|
|
2696
2710
|
arguments: params.arguments ?? {},
|
|
2697
|
-
requiredPermission:
|
|
2711
|
+
requiredPermission: guessPermission(params.name),
|
|
2698
2712
|
timestamp
|
|
2699
2713
|
};
|
|
2700
2714
|
if (options.rateLimiter) {
|
|
@@ -4807,14 +4821,7 @@ ${msg.content.text}`;
|
|
|
4807
4821
|
* Guess tool permissions from tool name.
|
|
4808
4822
|
*/
|
|
4809
4823
|
guessPermissions(toolName) {
|
|
4810
|
-
|
|
4811
|
-
if (name.includes("exec") || name.includes("shell") || name.includes("run") || name.includes("eval")) {
|
|
4812
|
-
return ["EXECUTE"];
|
|
4813
|
-
}
|
|
4814
|
-
if (name.includes("write") || name.includes("create") || name.includes("delete") || name.includes("update") || name.includes("set")) {
|
|
4815
|
-
return ["WRITE"];
|
|
4816
|
-
}
|
|
4817
|
-
return ["READ"];
|
|
4824
|
+
return [guessPermission(toolName)];
|
|
4818
4825
|
}
|
|
4819
4826
|
/**
|
|
4820
4827
|
* Register the upstream MCP server to the SolonGate Cloud API.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solongate/proxy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.42.0",
|
|
4
4
|
"description": "AI tool security proxy — protect any AI tool server with customizable policies, path/command constraints, rate limiting, and audit logging. Zero code changes required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|