@node9/proxy 2.19.2 → 2.20.0

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.
@@ -2946,7 +2946,14 @@ var init_dist = __esm({
2946
2946
  // reader right after `"` / `'`, and without these two characters the
2947
2947
  // prescreen rejected every string-wrapped read before the parser ran.
2948
2948
  // Found 2026-09-11 by instrumenting the walk -- no CallExpr was ever visited.
2949
- `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`
2949
+ `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`,
2950
+ // Case-insensitive on purpose. Without `i`, `CAT .env` failed this fast path
2951
+ // and analyzeFsOperation returned before the AST ran at all — a live bypass
2952
+ // on macOS and Windows, whose filesystems resolve `CAT` to `cat`, and on
2953
+ // PowerShell, which is case-insensitive by language. Linux is unaffected in
2954
+ // practice (`CAT` is not an executable there) but folding costs nothing.
2955
+ // Dogfound 2026-09-22; pinned by verb-case-coverage.spec.ts.
2956
+ "i"
2950
2957
  );
2951
2958
  HOME_CACHE_ALLOWLIST = [
2952
2959
  ".cache",
@@ -5602,7 +5609,7 @@ var init_config = __esm({
5602
5609
  description: "The AI wants to download a script from the internet and run it immediately, without you seeing what it contains. This is one of the most common ways malware gets installed."
5603
5610
  }
5604
5611
  ],
5605
- dlp: { enabled: true, scanIgnoredTools: true, pii: "off" },
5612
+ dlp: { enabled: true, scanIgnoredTools: true, pii: "block" },
5606
5613
  egress: {
5607
5614
  enabled: false,
5608
5615
  mode: "review",
@@ -6650,6 +6657,22 @@ var init_scan_summary = __esm({
6650
6657
  }
6651
6658
  });
6652
6659
 
6660
+ // src/utils/platform-shell.ts
6661
+ var init_platform_shell = __esm({
6662
+ "src/utils/platform-shell.ts"() {
6663
+ "use strict";
6664
+ }
6665
+ });
6666
+
6667
+ // src/codex-trust.ts
6668
+ import { parse as parseToml } from "smol-toml";
6669
+ var init_codex_trust = __esm({
6670
+ "src/codex-trust.ts"() {
6671
+ "use strict";
6672
+ init_platform_shell();
6673
+ }
6674
+ });
6675
+
6653
6676
  // src/mcp-pin.ts
6654
6677
  var init_mcp_pin = __esm({
6655
6678
  "src/mcp-pin.ts"() {
@@ -6693,11 +6716,12 @@ var init_atomic_write = __esm({
6693
6716
  // src/setup.ts
6694
6717
  import chalk3 from "chalk";
6695
6718
  import { confirm as rawConfirm } from "@inquirer/prompts";
6696
- import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
6719
+ import { parse as parseToml2, stringify as stringifyToml } from "smol-toml";
6697
6720
  import * as yaml from "yaml";
6698
6721
  var init_setup = __esm({
6699
6722
  "src/setup.ts"() {
6700
6723
  "use strict";
6724
+ init_codex_trust();
6701
6725
  init_mcp_pin();
6702
6726
  init_hook_baseline();
6703
6727
  init_setup_opencode_shim();
package/dist/index.js CHANGED
@@ -2123,7 +2123,14 @@ var FS_OP_PRESCREEN_RE = new RegExp(
2123
2123
  // reader right after `"` / `'`, and without these two characters the
2124
2124
  // prescreen rejected every string-wrapped read before the parser ran.
2125
2125
  // Found 2026-09-11 by instrumenting the walk -- no CallExpr was ever visited.
2126
- `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`
2126
+ `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`,
2127
+ // Case-insensitive on purpose. Without `i`, `CAT .env` failed this fast path
2128
+ // and analyzeFsOperation returned before the AST ran at all — a live bypass
2129
+ // on macOS and Windows, whose filesystems resolve `CAT` to `cat`, and on
2130
+ // PowerShell, which is case-insensitive by language. Linux is unaffected in
2131
+ // practice (`CAT` is not an executable there) but folding costs nothing.
2132
+ // Dogfound 2026-09-22; pinned by verb-case-coverage.spec.ts.
2133
+ "i"
2127
2134
  );
2128
2135
  var HOME_CACHE_ALLOWLIST = [
2129
2136
  ".cache",
@@ -6183,7 +6190,7 @@ var DEFAULT_CONFIG = {
6183
6190
  description: "The AI wants to download a script from the internet and run it immediately, without you seeing what it contains. This is one of the most common ways malware gets installed."
6184
6191
  }
6185
6192
  ],
6186
- dlp: { enabled: true, scanIgnoredTools: true, pii: "off" },
6193
+ dlp: { enabled: true, scanIgnoredTools: true, pii: "block" },
6187
6194
  egress: {
6188
6195
  enabled: false,
6189
6196
  mode: "review",
package/dist/index.mjs CHANGED
@@ -2093,7 +2093,14 @@ var FS_OP_PRESCREEN_RE = new RegExp(
2093
2093
  // reader right after `"` / `'`, and without these two characters the
2094
2094
  // prescreen rejected every string-wrapped read before the parser ran.
2095
2095
  // Found 2026-09-11 by instrumenting the walk -- no CallExpr was ever visited.
2096
- `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`
2096
+ `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`,
2097
+ // Case-insensitive on purpose. Without `i`, `CAT .env` failed this fast path
2098
+ // and analyzeFsOperation returned before the AST ran at all — a live bypass
2099
+ // on macOS and Windows, whose filesystems resolve `CAT` to `cat`, and on
2100
+ // PowerShell, which is case-insensitive by language. Linux is unaffected in
2101
+ // practice (`CAT` is not an executable there) but folding costs nothing.
2102
+ // Dogfound 2026-09-22; pinned by verb-case-coverage.spec.ts.
2103
+ "i"
2097
2104
  );
2098
2105
  var HOME_CACHE_ALLOWLIST = [
2099
2106
  ".cache",
@@ -6153,7 +6160,7 @@ var DEFAULT_CONFIG = {
6153
6160
  description: "The AI wants to download a script from the internet and run it immediately, without you seeing what it contains. This is one of the most common ways malware gets installed."
6154
6161
  }
6155
6162
  ],
6156
- dlp: { enabled: true, scanIgnoredTools: true, pii: "off" },
6163
+ dlp: { enabled: true, scanIgnoredTools: true, pii: "block" },
6157
6164
  egress: {
6158
6165
  enabled: false,
6159
6166
  mode: "review",
package/dist/scan-ink.mjs CHANGED
@@ -1188,7 +1188,14 @@ var FS_OP_PRESCREEN_RE = new RegExp(
1188
1188
  // reader right after `"` / `'`, and without these two characters the
1189
1189
  // prescreen rejected every string-wrapped read before the parser ran.
1190
1190
  // Found 2026-09-11 by instrumenting the walk -- no CallExpr was ever visited.
1191
- `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`
1191
+ `(?:^|[\\s|;&("'\`\\n/])(?:rm|${[...FS_READ_TOOLS, ...COPY_VERB_HEADS].map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\b|(?<!<)<(?!<)`,
1192
+ // Case-insensitive on purpose. Without `i`, `CAT .env` failed this fast path
1193
+ // and analyzeFsOperation returned before the AST ran at all — a live bypass
1194
+ // on macOS and Windows, whose filesystems resolve `CAT` to `cat`, and on
1195
+ // PowerShell, which is case-insensitive by language. Linux is unaffected in
1196
+ // practice (`CAT` is not an executable there) but folding costs nothing.
1197
+ // Dogfound 2026-09-22; pinned by verb-case-coverage.spec.ts.
1198
+ "i"
1192
1199
  );
1193
1200
  function deriveRedirOp(sample) {
1194
1201
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node9/proxy",
3
- "version": "2.19.2",
3
+ "version": "2.20.0",
4
4
  "description": "IAM for your AI agents. Set what Claude Code, Codex, Gemini, Cursor and any MCP server are allowed to do, review risky actions before they run, and keep every action on the record.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -107,7 +107,7 @@
107
107
  "mvdan-sh"
108
108
  ],
109
109
  "devDependencies": {
110
- "@anthropic-ai/sdk": "^0.125.0",
110
+ "@anthropic-ai/sdk": "^0.127.0",
111
111
  "@octokit/rest": "^22.0.1",
112
112
  "@semantic-release/commit-analyzer": "^13.0.1",
113
113
  "@semantic-release/git": "^10.0.1",