@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 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(' Claude Desktop Add to Settings > MCP Servers');
217
- console.log(' Windsurf Open this folder, .mcp.json is auto-detected');
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(' Claude Desktop Add to Settings > MCP Servers');
1622
- console.log(' Windsurf Open this folder, .mcp.json is auto-detected');
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: Permission.EXECUTE,
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
- const name = toolName.toLowerCase();
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: Permission.EXECUTE,
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
- const name = toolName.toLowerCase();
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.41.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": {