@node9/proxy 1.0.11 → 1.0.13

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/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  [![NPM Version](https://img.shields.io/npm/v/@node9/proxy.svg)](https://www.npmjs.com/package/@node9/proxy)
6
6
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
+ [![Open in HF Spaces](https://huggingface.co/datasets/huggingface/badges/resolve/main/open-in-hf-spaces-sm.svg)](https://huggingface.co/spaces/Node9ai/node9-security-demo)
7
8
 
8
9
  **Node9** is the execution security layer for the Agentic Era. It encases autonomous AI Agents (Claude Code, Gemini CLI, Cursor, MCP Servers) in a deterministic security wrapper, intercepting dangerous shell commands and tool calls before they execute.
9
10
 
@@ -87,9 +88,22 @@ Security posture is resolved using a strict 5-tier waterfall:
87
88
 
88
89
  ---
89
90
 
91
+ ## 🎮 Try it Live
92
+
93
+ No install needed — test Node9's AST parser against real commands in the browser:
94
+
95
+ [![Open in HF Spaces](https://huggingface.co/datasets/huggingface/badges/resolve/main/open-in-hf-spaces-sm.svg)](https://huggingface.co/spaces/Node9ai/node9-security-demo)
96
+
97
+ ---
98
+
90
99
  ## 🚀 Quick Start
91
100
 
92
101
  ```bash
102
+ # Recommended — via Homebrew (macOS / Linux)
103
+ brew tap node9-ai/node9
104
+ brew install node9
105
+
106
+ # Or via npm
93
107
  npm install -g @node9/proxy
94
108
 
95
109
  # 1. Setup protection for your favorite agent
@@ -316,6 +330,12 @@ A corporate policy has locked this action. You must click the "Approve" button i
316
330
 
317
331
  ---
318
332
 
333
+ ## 🔗 Related
334
+
335
+ - [node9-python](https://github.com/node9-ai/node9-python) — Python SDK for Node9
336
+
337
+ ---
338
+
319
339
  ## 🏢 Enterprise & Compliance
320
340
 
321
341
  Node9 Pro provides **Governance Locking**, **SAML/SSO**, and **VPC Deployment**.
package/dist/cli.js CHANGED
@@ -4998,12 +4998,24 @@ program.argument("[command...]", "The agent command to run (e.g., gemini)").acti
4998
4998
  }
4999
4999
  });
5000
5000
  program.command("undo").description(
5001
- "Revert files to a pre-AI snapshot. Shows a diff and asks for confirmation before reverting. Use --steps N to go back N actions."
5002
- ).option("--steps <n>", "Number of snapshots to go back (default: 1)", "1").action(async (options) => {
5001
+ "Revert files to a pre-AI snapshot. Shows a diff and asks for confirmation before reverting. Use --steps N to go back N actions, --all to include snapshots from other directories."
5002
+ ).option("--steps <n>", "Number of snapshots to go back (default: 1)", "1").option("--all", "Show snapshots from all directories, not just the current one").action(async (options) => {
5003
5003
  const steps = Math.max(1, parseInt(options.steps, 10) || 1);
5004
- const history = getSnapshotHistory();
5004
+ const allHistory = getSnapshotHistory();
5005
+ const history = options.all ? allHistory : allHistory.filter((s) => s.cwd === process.cwd());
5005
5006
  if (history.length === 0) {
5006
- console.log(import_chalk5.default.yellow("\n\u2139\uFE0F No undo snapshots found.\n"));
5007
+ if (!options.all && allHistory.length > 0) {
5008
+ console.log(
5009
+ import_chalk5.default.yellow(
5010
+ `
5011
+ \u2139\uFE0F No snapshots found for the current directory (${process.cwd()}).
5012
+ Run ${import_chalk5.default.cyan("node9 undo --all")} to see snapshots from all projects.
5013
+ `
5014
+ )
5015
+ );
5016
+ } else {
5017
+ console.log(import_chalk5.default.yellow("\n\u2139\uFE0F No undo snapshots found.\n"));
5018
+ }
5007
5019
  return;
5008
5020
  }
5009
5021
  const idx = history.length - steps;
package/dist/cli.mjs CHANGED
@@ -4975,12 +4975,24 @@ program.argument("[command...]", "The agent command to run (e.g., gemini)").acti
4975
4975
  }
4976
4976
  });
4977
4977
  program.command("undo").description(
4978
- "Revert files to a pre-AI snapshot. Shows a diff and asks for confirmation before reverting. Use --steps N to go back N actions."
4979
- ).option("--steps <n>", "Number of snapshots to go back (default: 1)", "1").action(async (options) => {
4978
+ "Revert files to a pre-AI snapshot. Shows a diff and asks for confirmation before reverting. Use --steps N to go back N actions, --all to include snapshots from other directories."
4979
+ ).option("--steps <n>", "Number of snapshots to go back (default: 1)", "1").option("--all", "Show snapshots from all directories, not just the current one").action(async (options) => {
4980
4980
  const steps = Math.max(1, parseInt(options.steps, 10) || 1);
4981
- const history = getSnapshotHistory();
4981
+ const allHistory = getSnapshotHistory();
4982
+ const history = options.all ? allHistory : allHistory.filter((s) => s.cwd === process.cwd());
4982
4983
  if (history.length === 0) {
4983
- console.log(chalk5.yellow("\n\u2139\uFE0F No undo snapshots found.\n"));
4984
+ if (!options.all && allHistory.length > 0) {
4985
+ console.log(
4986
+ chalk5.yellow(
4987
+ `
4988
+ \u2139\uFE0F No snapshots found for the current directory (${process.cwd()}).
4989
+ Run ${chalk5.cyan("node9 undo --all")} to see snapshots from all projects.
4990
+ `
4991
+ )
4992
+ );
4993
+ } else {
4994
+ console.log(chalk5.yellow("\n\u2139\uFE0F No undo snapshots found.\n"));
4995
+ }
4984
4996
  return;
4985
4997
  }
4986
4998
  const idx = history.length - steps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node9/proxy",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "The Sudo Command for AI Agents. Execution Security for Claude Code & MCP.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",