@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 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.2",
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",