@node9/proxy 2.8.2 → 2.8.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/dist/cli.js +14 -7
- package/dist/cli.mjs +14 -7
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -48278,33 +48278,39 @@ REQUIRED ACTIONS:
|
|
|
48278
48278
|
1. Remove the hardcoded credential from your command or code.
|
|
48279
48279
|
2. Use an environment variable or a dedicated secrets manager instead.
|
|
48280
48280
|
3. Treat the leaked credential as compromised and rotate it immediately.
|
|
48281
|
-
Do NOT attempt to bypass this check or pass the credential through another tool
|
|
48281
|
+
Do NOT attempt to bypass this check or pass the credential through another tool.
|
|
48282
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48282
48283
|
}
|
|
48283
48284
|
if (label2.includes("sql safety") && label2.includes("delete without where")) {
|
|
48284
48285
|
return `NODE9: Blocked \u2014 DELETE without WHERE clause would wipe the entire table.
|
|
48285
48286
|
INSTRUCTION: Add a WHERE clause to scope the deletion (e.g. WHERE id = <value>).
|
|
48286
|
-
Do NOT retry without a WHERE clause
|
|
48287
|
+
Do NOT retry without a WHERE clause.
|
|
48288
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48287
48289
|
}
|
|
48288
48290
|
if (label2.includes("sql safety") && label2.includes("update without where")) {
|
|
48289
48291
|
return `NODE9: Blocked \u2014 UPDATE without WHERE clause would update every row.
|
|
48290
48292
|
INSTRUCTION: Add a WHERE clause to scope the update (e.g. WHERE id = <value>).
|
|
48291
|
-
Do NOT retry without a WHERE clause
|
|
48293
|
+
Do NOT retry without a WHERE clause.
|
|
48294
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48292
48295
|
}
|
|
48293
48296
|
if (label2.includes("dangerous word")) {
|
|
48294
48297
|
const match = blockedByLabel.match(/dangerous word: "([^"]+)"/i);
|
|
48295
48298
|
const word = match?.[1] ?? "a dangerous keyword";
|
|
48296
48299
|
return `NODE9: Blocked \u2014 command contains forbidden keyword "${word}".
|
|
48297
48300
|
INSTRUCTION: Do NOT use "${word}". Use a non-destructive alternative.
|
|
48298
|
-
Do NOT attempt to bypass this with shell tricks or aliases \u2014 it will be blocked again
|
|
48301
|
+
Do NOT attempt to bypass this with shell tricks or aliases \u2014 it will be blocked again.
|
|
48302
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48299
48303
|
}
|
|
48300
48304
|
if (label2.includes("path blocked") || label2.includes("sandbox")) {
|
|
48301
48305
|
return `NODE9: Blocked \u2014 operation targets a path outside the allowed sandbox.
|
|
48302
48306
|
INSTRUCTION: Move your output to an allowed directory such as /tmp/ or the project directory.
|
|
48303
|
-
Do NOT retry on the same path
|
|
48307
|
+
Do NOT retry on the same path.
|
|
48308
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48304
48309
|
}
|
|
48305
48310
|
if (label2.includes("inline execution")) {
|
|
48306
48311
|
return `NODE9: Blocked \u2014 inline code execution (e.g. bash -c "...") is not allowed.
|
|
48307
|
-
INSTRUCTION: Use individual tool calls instead of embedding code in a shell string
|
|
48312
|
+
INSTRUCTION: Use individual tool calls instead of embedding code in a shell string.
|
|
48313
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48308
48314
|
}
|
|
48309
48315
|
if (label2.includes("strict mode")) {
|
|
48310
48316
|
return `NODE9: Blocked \u2014 strict mode is active. All tool calls require explicit human approval.
|
|
@@ -48315,7 +48321,8 @@ INSTRUCTION: Inform the user this action is pending approval. Wait for them to a
|
|
|
48315
48321
|
const rule = match?.[1] ?? "a policy rule";
|
|
48316
48322
|
return `NODE9: Blocked \u2014 action "${rule}" is forbidden by security policy.
|
|
48317
48323
|
INSTRUCTION: Do NOT use "${rule}". Find a read-only or non-destructive alternative.
|
|
48318
|
-
Do NOT attempt to bypass this rule
|
|
48324
|
+
Do NOT attempt to bypass this rule.
|
|
48325
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48319
48326
|
}
|
|
48320
48327
|
const recovery = recoveryCommand ? `
|
|
48321
48328
|
REQUIRED ACTION: Run \`${recoveryCommand}\` first, then retry your original command.` : "\n- Pivot to a non-destructive or read-only alternative.";
|
package/dist/cli.mjs
CHANGED
|
@@ -48270,33 +48270,39 @@ REQUIRED ACTIONS:
|
|
|
48270
48270
|
1. Remove the hardcoded credential from your command or code.
|
|
48271
48271
|
2. Use an environment variable or a dedicated secrets manager instead.
|
|
48272
48272
|
3. Treat the leaked credential as compromised and rotate it immediately.
|
|
48273
|
-
Do NOT attempt to bypass this check or pass the credential through another tool
|
|
48273
|
+
Do NOT attempt to bypass this check or pass the credential through another tool.
|
|
48274
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48274
48275
|
}
|
|
48275
48276
|
if (label2.includes("sql safety") && label2.includes("delete without where")) {
|
|
48276
48277
|
return `NODE9: Blocked \u2014 DELETE without WHERE clause would wipe the entire table.
|
|
48277
48278
|
INSTRUCTION: Add a WHERE clause to scope the deletion (e.g. WHERE id = <value>).
|
|
48278
|
-
Do NOT retry without a WHERE clause
|
|
48279
|
+
Do NOT retry without a WHERE clause.
|
|
48280
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48279
48281
|
}
|
|
48280
48282
|
if (label2.includes("sql safety") && label2.includes("update without where")) {
|
|
48281
48283
|
return `NODE9: Blocked \u2014 UPDATE without WHERE clause would update every row.
|
|
48282
48284
|
INSTRUCTION: Add a WHERE clause to scope the update (e.g. WHERE id = <value>).
|
|
48283
|
-
Do NOT retry without a WHERE clause
|
|
48285
|
+
Do NOT retry without a WHERE clause.
|
|
48286
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48284
48287
|
}
|
|
48285
48288
|
if (label2.includes("dangerous word")) {
|
|
48286
48289
|
const match = blockedByLabel.match(/dangerous word: "([^"]+)"/i);
|
|
48287
48290
|
const word = match?.[1] ?? "a dangerous keyword";
|
|
48288
48291
|
return `NODE9: Blocked \u2014 command contains forbidden keyword "${word}".
|
|
48289
48292
|
INSTRUCTION: Do NOT use "${word}". Use a non-destructive alternative.
|
|
48290
|
-
Do NOT attempt to bypass this with shell tricks or aliases \u2014 it will be blocked again
|
|
48293
|
+
Do NOT attempt to bypass this with shell tricks or aliases \u2014 it will be blocked again.
|
|
48294
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48291
48295
|
}
|
|
48292
48296
|
if (label2.includes("path blocked") || label2.includes("sandbox")) {
|
|
48293
48297
|
return `NODE9: Blocked \u2014 operation targets a path outside the allowed sandbox.
|
|
48294
48298
|
INSTRUCTION: Move your output to an allowed directory such as /tmp/ or the project directory.
|
|
48295
|
-
Do NOT retry on the same path
|
|
48299
|
+
Do NOT retry on the same path.
|
|
48300
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48296
48301
|
}
|
|
48297
48302
|
if (label2.includes("inline execution")) {
|
|
48298
48303
|
return `NODE9: Blocked \u2014 inline code execution (e.g. bash -c "...") is not allowed.
|
|
48299
|
-
INSTRUCTION: Use individual tool calls instead of embedding code in a shell string
|
|
48304
|
+
INSTRUCTION: Use individual tool calls instead of embedding code in a shell string.
|
|
48305
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48300
48306
|
}
|
|
48301
48307
|
if (label2.includes("strict mode")) {
|
|
48302
48308
|
return `NODE9: Blocked \u2014 strict mode is active. All tool calls require explicit human approval.
|
|
@@ -48307,7 +48313,8 @@ INSTRUCTION: Inform the user this action is pending approval. Wait for them to a
|
|
|
48307
48313
|
const rule = match?.[1] ?? "a policy rule";
|
|
48308
48314
|
return `NODE9: Blocked \u2014 action "${rule}" is forbidden by security policy.
|
|
48309
48315
|
INSTRUCTION: Do NOT use "${rule}". Find a read-only or non-destructive alternative.
|
|
48310
|
-
Do NOT attempt to bypass this rule
|
|
48316
|
+
Do NOT attempt to bypass this rule.
|
|
48317
|
+
- Tell the user node9 blocked this and why, then ask how to proceed.`;
|
|
48311
48318
|
}
|
|
48312
48319
|
const recovery = recoveryCommand ? `
|
|
48313
48320
|
REQUIRED ACTION: Run \`${recoveryCommand}\` first, then retry your original command.` : "\n- Pivot to a non-destructive or read-only alternative.";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node9/proxy",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.3",
|
|
4
4
|
"description": "The Sudo Command for AI Agents. Execution Security for Claude Code, Codex, Gemini, Cursor, Opencode, Pi, and any MCP server.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|