@solongate/proxy 0.82.19 → 0.82.20

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.
Files changed (2) hide show
  1. package/dist/index.js +80 -32
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -17029,41 +17029,78 @@ function printWelcome() {
17029
17029
  console.log("");
17030
17030
  }
17031
17031
  function printHelp3() {
17032
- const row = (name, desc) => console.log(` ${c.cyan}${name.padEnd(13)}${c.reset}${c.dim}${desc}${c.reset}`);
17033
- console.log("");
17034
- console.log(` ${c.bold}${c.blue4}SolonGate${c.reset} ${c.dim}secure gateway for your AI agents${c.reset}`);
17035
- console.log("");
17036
- console.log(` ${c.dim}Usage:${c.reset} ${c.cyan}solongate${c.reset} ${c.dim}[command]${c.reset}`);
17037
- console.log(` ${c.dim}With no command, opens the dataroom: accounts, policies, rate limits,${c.reset}`);
17038
- console.log(` ${c.dim}DLP, audit and settings in one terminal UI.${c.reset}`);
17039
- console.log("");
17040
- console.log(` ${c.bold}Setup & status${c.reset}`);
17041
- row("doctor", "health check: login, active policy, guard, local logs");
17042
- row("create", "scaffold a guarded MCP server in the current folder");
17043
- row("logs-server", "serve local audit logs to the dashboard");
17044
- console.log("");
17045
- console.log(` ${c.bold}Security config${c.reset}`);
17046
- row("policy", "view and manage policies");
17047
- row("ratelimit", "view and manage rate limits");
17048
- row("dlp", "view and manage DLP (secret) rules");
17049
- row("alerts", "view and manage alerts");
17050
- row("webhooks", "view and manage webhooks");
17032
+ const W = 46;
17033
+ const head = (t) => console.log(`
17034
+ ${c.bold}${t}${c.reset}`);
17035
+ const cmd = (syntax, desc = "") => {
17036
+ if (!desc) {
17037
+ console.log(` ${c.cyan}${syntax}${c.reset}`);
17038
+ return;
17039
+ }
17040
+ if (syntax.length <= W) {
17041
+ console.log(` ${c.cyan}${syntax}${c.reset}${" ".repeat(W - syntax.length)}${c.dim}${desc}${c.reset}`);
17042
+ } else {
17043
+ console.log(` ${c.cyan}${syntax}${c.reset}`);
17044
+ console.log(` ${" ".repeat(W)}${c.dim}${desc}${c.reset}`);
17045
+ }
17046
+ };
17051
17047
  console.log("");
17052
- console.log(` ${c.bold}Monitoring${c.reset}`);
17053
- row("audit", "browse the audit log of tool-call decisions");
17054
- row("stats", "usage statistics");
17055
- row("watch", "live-tail tool calls as they happen");
17056
- row("agents", "list agents and sessions");
17048
+ console.log(` ${c.bold}${c.blue4}SolonGate${c.reset} ${c.dim}secure gateway for your AI agents${c.reset} ${c.dim}v${PKG_VERSION}${c.reset}`);
17057
17049
  console.log("");
17058
- console.log(` ${c.bold}Advanced${c.reset}`);
17059
- row("keys", "manage API keys");
17060
- row("mcp", "manage MCP servers");
17061
- row("shield", "wrap a command with LLM-path secret redaction: shield -- <cmd>");
17062
- row("pull", "pull a cloud policy to a local file");
17063
- row("push", "push a local policy file to the cloud");
17064
- row("list", "list cloud policies");
17050
+ console.log(` ${c.dim}Usage:${c.reset} ${c.cyan}solongate${c.reset} ${c.dim}[command]${c.reset} ${c.dim}(no command opens the dataroom: all of this in a terminal UI)${c.reset}`);
17051
+ head("Setup & status");
17052
+ cmd("solongate", "open the dataroom UI (login, policies, audit, settings)");
17053
+ cmd("doctor [--json]", "health check: login, policy, guard, local logs");
17054
+ cmd("create", "scaffold a guarded MCP server in this folder");
17055
+ cmd("logs-server", "serve local audit logs to the dashboard");
17056
+ head("Policies");
17057
+ cmd("policy list", "list all policies");
17058
+ cmd("policy show <id> [--version N]", "show one policy (rules, mode)");
17059
+ cmd("policy rules <id>", "list a policy's rules");
17060
+ cmd("policy allow <id> --tool <p> [--command|--path|--url <val>]", "add an ALLOW rule");
17061
+ cmd("policy revoke <id> <ruleId>", "remove a rule");
17062
+ cmd("policy activate <id> | --clear", "pin / unpin the active policy");
17063
+ cmd("policy rollback <id> <version>", "roll back to a version");
17064
+ cmd("policy versions <id>", "version history");
17065
+ cmd("policy active", "show the resolved active policy");
17066
+ cmd("policy dry-run <id|file.json> [--mode denylist|whitelist]", "replay recent traffic against rules");
17067
+ head("Rate limits");
17068
+ cmd("ratelimit show", "current limits + change history");
17069
+ cmd("ratelimit set --minute N [--hour N] [--day N] [--mode off|detect|block]", "edit limits (unset fields kept)");
17070
+ cmd("ratelimit history", "recent limit changes");
17071
+ head("DLP (secrets)");
17072
+ cmd("dlp show", "current mode + enabled patterns");
17073
+ cmd("dlp mode <off|detect|block>", "set enforcement mode");
17074
+ cmd("dlp enable <pattern>", "enable a built-in pattern");
17075
+ cmd("dlp disable <pattern>", "disable a built-in pattern");
17076
+ cmd("dlp add-custom --name X --re <regex>", "add a custom pattern");
17077
+ cmd("dlp remove-custom <name>", "remove a custom pattern");
17078
+ head("Monitoring");
17079
+ cmd("audit [--filter ALLOW|DENY] [--tool <s>] [--signal dlp|ratelimit] [--limit N]", "browse the audit log");
17080
+ cmd("audit whitelist <logId> [--scope exact|tool]", "turn a denial into an ALLOW rule");
17081
+ cmd("audit block <logId> [--scope exact|tool]", "turn a call into a DENY rule");
17082
+ cmd("stats [timeseries|drift]", "traffic & security statistics");
17083
+ cmd("watch [--filter DENY] [--tool <s>]", "live-tail tool calls (Ctrl+C to stop)");
17084
+ cmd("agents [--all]", "live agent feed");
17085
+ cmd("agent <agent_id>", "one-agent detail");
17086
+ head("Alerts & webhooks");
17087
+ cmd("alerts list");
17088
+ cmd("alerts add --signal deny|dlp|ratelimit|any --threshold N --window S (--email <a> | --telegram <id> | --slack <url>)", "spike alert");
17089
+ cmd("alerts remove <id>");
17090
+ cmd("webhooks list");
17091
+ cmd("webhooks add --url <https://\u2026> [--events denials|allowed|all]", "event webhook");
17092
+ cmd("webhooks remove <id>");
17093
+ head("Keys, MCP & advanced");
17094
+ cmd("keys list", "list API keys (prefix only)");
17095
+ cmd("keys create --name <name>", "create a key (secret shown once)");
17096
+ cmd("keys revoke <id>", "revoke a key");
17097
+ cmd("mcp", "list protected MCP servers");
17098
+ cmd("shield -- <command>", "wrap a command with LLM-path secret redaction");
17099
+ cmd("pull --policy-id <ID> [--file f]", "pull a cloud policy to a local file");
17100
+ cmd("push --policy-id <ID> [--file f]", "push a local policy file to the cloud");
17065
17101
  console.log("");
17066
- console.log(` ${c.dim}Dashboard: ${c.reset}${c.cyan}https://dashboard.solongate.com${c.reset}`);
17102
+ console.log(` ${c.dim}Add ${c.reset}${c.cyan}--json${c.reset}${c.dim} to most read commands for machine output.${c.reset}`);
17103
+ console.log(` ${c.dim}Details for a command: ${c.reset}${c.cyan}solongate <command> help${c.reset}${c.dim} \xB7 Dashboard: ${c.reset}${c.cyan}https://dashboard.solongate.com${c.reset}`);
17067
17104
  console.log("");
17068
17105
  }
17069
17106
  async function main4() {
@@ -17138,6 +17175,17 @@ async function main4() {
17138
17175
  await Promise.resolve().then(() => (init_pull_push(), pull_push_exports));
17139
17176
  return;
17140
17177
  }
17178
+ const hasProxySeparator = process.argv.includes("--");
17179
+ const looksLikeProxyFlag = (subcommand ?? "").startsWith("-");
17180
+ if (subcommand && !hasProxySeparator && !looksLikeProxyFlag) {
17181
+ process.stdout.write(`
17182
+ Unknown command: ${subcommand}
17183
+ `);
17184
+ process.stdout.write(` Run \`solongate --help\` to see every command, or \`solongate\` for the dataroom.
17185
+
17186
+ `);
17187
+ process.exit(1);
17188
+ }
17141
17189
  try {
17142
17190
  const config = parseArgs(process.argv);
17143
17191
  const proxy = new SolonGateProxy(config);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solongate/proxy",
3
- "version": "0.82.19",
3
+ "version": "0.82.20",
4
4
  "description": "AI tool security proxy: protect any AI tool server with customizable policies, path/command constraints, rate limiting, and audit logging. No code changes required.",
5
5
  "type": "module",
6
6
  "bin": {