@node9/proxy 1.11.0 → 1.11.1
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 +52 -0
- package/dist/cli.js +1017 -487
- package/dist/cli.mjs +1013 -483
- package/dist/index.js +48 -24
- package/dist/index.mjs +48 -24
- package/dist/shields/builtin/bash-safe.json +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -128,6 +128,7 @@ configure(agent_name="my-agent", policy="require_approval")
|
|
|
128
128
|
- **SQL:** blocks `DELETE`/`UPDATE` without `WHERE`, `DROP TABLE`, `TRUNCATE`
|
|
129
129
|
- **Shell:** blocks `curl | bash`, `sudo` commands
|
|
130
130
|
- **DLP:** blocks AWS keys, GitHub tokens, Stripe keys, PEM private keys in any tool call argument
|
|
131
|
+
- **Response DLP:** background scanner reads Claude's JSONL history hourly and alerts you if a secret appears in Claude's _response text_ (not just tool args) — see [`node9 dlp`](#node9-dlp--response-secret-scanner)
|
|
131
132
|
- **Auto-undo:** git snapshot before every AI file edit → `node9 undo` to revert
|
|
132
133
|
- **Skills Pinning:** SHA-256 verification of agent skill files between sessions; quarantines on drift (AST 02 + AST 07 — supply chain & update drift)
|
|
133
134
|
|
|
@@ -166,6 +167,14 @@ node9 tail --all # include all projects
|
|
|
166
167
|
|
|
167
168
|
Each line shows the tool name, a summary of its arguments, and the decision (allowed / blocked / DLP hit).
|
|
168
169
|
|
|
170
|
+
At startup, `tail` prints a one-line context summary:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
ctx: 34% (68k/200k out 2k · claude-sonnet-4-6)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
This shows how full the context window is, how many output tokens were generated, and which model is running. Color-coded: cyan < 50%, yellow 50–79%, red ≥ 80%.
|
|
177
|
+
|
|
169
178
|
### `node9 report` — security dashboard
|
|
170
179
|
|
|
171
180
|
Run after a session to get a summary of what was allowed, blocked, DLP hits, cost, and daily activity:
|
|
@@ -193,8 +202,12 @@ $ node9 report --period 7d
|
|
|
193
202
|
Apr 11 ██████████████████████░░░░░░░░ 617 139 blocked
|
|
194
203
|
```
|
|
195
204
|
|
|
205
|
+
The report also includes a **Tokens** section showing a breakdown of input, output, cache-write, and cache-read tokens with a cache hit-rate percentage — useful for spotting sessions that are burning tokens without getting cache savings.
|
|
206
|
+
|
|
196
207
|
Periods: `today`, `7d` (default), `30d`, `month`. Cost data is read from `~/.claude/projects/` — no API calls, fully offline.
|
|
197
208
|
|
|
209
|
+
If the response DLP scanner found secrets during the period, the report shows a `⚠️ DLP ALERT` banner at the top and a dedicated **Response DLP** section listing each finding with the pattern name, a masked sample, and the project it came from.
|
|
210
|
+
|
|
198
211
|
### `node9 sessions` — session history
|
|
199
212
|
|
|
200
213
|
See what your AI agent did across sessions — prompt, tool calls, cost, files modified, and whether a snapshot was taken. Useful when you hand off a task and come back to review what happened:
|
|
@@ -281,6 +294,45 @@ node9 scan --all # all time
|
|
|
281
294
|
node9 scan --days 30 # custom window
|
|
282
295
|
```
|
|
283
296
|
|
|
297
|
+
### `node9 dlp` — response secret scanner
|
|
298
|
+
|
|
299
|
+
Node9's tool-call DLP blocks secrets _before_ they leave your machine. But Claude can also write secrets into its **response text** — a curl example with a real token, a config snippet with a live key — and that text bypasses tool-call interception entirely.
|
|
300
|
+
|
|
301
|
+
The **response DLP scanner** runs as a background daemon. It reads Claude's JSONL conversation history incrementally (delta scan — only new bytes since the last check), looks for secret patterns in assistant response text, and fires a desktop notification the moment it finds one.
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
⚠️ node9 DLP alert
|
|
305
|
+
AWS Access Key found in Claude response text.
|
|
306
|
+
Sample: AKIA****MPLE — run: node9 dlp
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
node9 dlp # show all open findings with pattern, sample, project, date
|
|
311
|
+
node9 dlp resolve # acknowledge all current findings (clears the banner)
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
The `node9 dlp` command shows a guided remediation workflow:
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
🔐 node9 dlp — secrets found in Claude response text
|
|
318
|
+
|
|
319
|
+
⚠️ 1 open finding
|
|
320
|
+
|
|
321
|
+
These secrets were included in Claude's response text — NOT blocked.
|
|
322
|
+
Rotate each affected key immediately.
|
|
323
|
+
|
|
324
|
+
● AWS Access Key ID Apr 14, 2026
|
|
325
|
+
Sample: AKIA****MPLE
|
|
326
|
+
Project: ~/node9
|
|
327
|
+
|
|
328
|
+
Next steps:
|
|
329
|
+
1. Rotate any exposed keys shown above
|
|
330
|
+
2. Run node9 dlp resolve to acknowledge
|
|
331
|
+
3. Run node9 report for full audit history
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Findings are never re-shown after `node9 dlp resolve`. The scanner stores resolved keys in `~/.node9/dlp-resolved.json` so only genuinely new secrets surface.
|
|
335
|
+
|
|
284
336
|
---
|
|
285
337
|
|
|
286
338
|
## 📖 Full docs
|