node9-ai 1.11.3
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 +30 -0
- package/bin/node9.js +20 -0
- package/npm +1 -0
- package/package.json +30 -0
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# node9
|
|
2
|
+
|
|
3
|
+
Security layer for AI coding agents β intercepts dangerous tool calls before they execute.
|
|
4
|
+
|
|
5
|
+
## Try it instantly (no install)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx node9 scan
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Scans your Claude Code / Gemini CLI history and shows what node9 would have blocked.
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g node9
|
|
17
|
+
node9 init
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
node9 sits between your AI agent (Claude Code, Gemini CLI, Cursorβ¦) and the system.
|
|
23
|
+
Every tool call is checked before it runs β dangerous commands are blocked or sent to you for approval.
|
|
24
|
+
|
|
25
|
+
- π **Blocks** irreversible operations (rm -rf, force push, disk wipes, eval of remote code)
|
|
26
|
+
- π **Reviews** risky commands β you approve or deny before they execute
|
|
27
|
+
- π **DLP** β catches credentials and secrets before they leak
|
|
28
|
+
- πΈ **Undo** β snapshots files before every edit so you can roll back
|
|
29
|
+
|
|
30
|
+
β [node9.ai](https://node9.ai) Β· [Docs](https://github.com/node9-ai/node9-proxy)
|
package/bin/node9.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawnSync } from 'child_process';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
|
|
7
|
+
// Locate @node9/proxy's bin via node_modules lookup
|
|
8
|
+
const here = fileURLToPath(new URL('.', import.meta.url));
|
|
9
|
+
const proxyBin = path.resolve(here, '../node_modules/@node9/proxy/dist/cli.js');
|
|
10
|
+
|
|
11
|
+
if (!fs.existsSync(proxyBin)) {
|
|
12
|
+
process.stderr.write(`node9: could not find @node9/proxy at ${proxyBin}\n`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const result = spawnSync(process.execPath, [proxyBin, ...process.argv.slice(2)], {
|
|
17
|
+
stdio: 'inherit',
|
|
18
|
+
env: process.env,
|
|
19
|
+
});
|
|
20
|
+
process.exit(result.status ?? 0);
|
package/npm
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nadav
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "node9-ai",
|
|
3
|
+
"version": "1.11.3",
|
|
4
|
+
"description": "Security layer for AI coding agents β intercepts dangerous tool calls before they execute",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"security",
|
|
8
|
+
"claude",
|
|
9
|
+
"claude-code",
|
|
10
|
+
"mcp",
|
|
11
|
+
"agent",
|
|
12
|
+
"guardrails"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://node9.ai",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/node9-ai/node9-proxy"
|
|
18
|
+
},
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"bin": {
|
|
21
|
+
"node9": "bin/node9.js"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@node9/proxy": ">=1.11.3"
|
|
25
|
+
},
|
|
26
|
+
"type": "module",
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=18"
|
|
29
|
+
}
|
|
30
|
+
}
|