@node9/proxy 1.67.4 → 1.67.5

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.
@@ -2376,7 +2376,11 @@ var init_config_schema = __esm({
2376
2376
  settings: z.object({
2377
2377
  mode: z.enum(["standard", "strict", "audit", "observe"]).optional(),
2378
2378
  autoStartDaemon: z.boolean().optional(),
2379
- enableUndo: z.boolean().optional(),
2379
+ // enableUndo / policy.snapshot: removed with the undo feature. The
2380
+ // schema strips undeclared keys silently (plain zod object — no
2381
+ // .strict(), no .passthrough()), so a config still carrying them stays
2382
+ // valid and simply loses them. Keeping the fields would instead make
2383
+ // `node9_config_get` advertise a removed feature as a live knob.
2380
2384
  enableHookLogDebug: z.boolean().optional(),
2381
2385
  approvalTimeoutMs: z.number().nonnegative().optional(),
2382
2386
  approvalTimeoutSeconds: z.number().nonnegative().optional(),
@@ -2428,11 +2432,6 @@ var init_config_schema = __esm({
2428
2432
  ignoredTools: z.array(z.string()).optional(),
2429
2433
  toolInspection: z.record(z.string()).optional(),
2430
2434
  smartRules: z.array(SmartRuleSchema).optional(),
2431
- snapshot: z.object({
2432
- tools: z.array(z.string()).optional(),
2433
- onlyPaths: z.array(z.string()).optional(),
2434
- ignorePaths: z.array(z.string()).optional()
2435
- }).optional(),
2436
2435
  dlp: z.object({
2437
2436
  enabled: z.boolean().optional(),
2438
2437
  scanIgnoredTools: z.boolean().optional(),
@@ -2597,13 +2596,18 @@ var init_config = __esm({
2597
2596
  settings: {
2598
2597
  mode: "standard",
2599
2598
  autoStartDaemon: true,
2600
- // OFF by default. The snapshot store is a per-project bare git repo with
2601
- // no size ceiling, and eviction drops the index row without deleting the
2602
- // objects on one machine it reached 378G (352G of it orphaned tmp_pack_*
2603
- // from interrupted `git gc`) and filled the disk. A security tool must not
2604
- // be what fills a customer's disk. Re-enable per install with
2605
- // `{"settings":{"enableUndo":true}}`; the default flips back when the
2606
- // bounded copy-store lands (doc/undo-v2-copy-store-design.md).
2599
+ // The undo feature was REMOVED. This default is one of two places that say
2600
+ // so; the other is the pin further down, which overwrites whatever a config
2601
+ // file, the dashboard or the cloud supplies. Setting `enableUndo` anywhere
2602
+ // has no effect do not restore the advice that used to live here, because
2603
+ // a comment recommending a knob that is silently discarded is the same lie
2604
+ // on disk the pin exists to prevent.
2605
+ //
2606
+ // Why it went: the store was a per-project bare git repo with no size
2607
+ // ceiling, and eviction dropped the index row without deleting the objects.
2608
+ // On one machine it reached 378G (352G of it orphaned tmp_pack_* from an
2609
+ // interrupted `git gc`) and filled the disk. A security tool must not be
2610
+ // what fills a customer's disk. Leftovers: `node9 undo --purge`.
2607
2611
  enableUndo: false,
2608
2612
  enableHookLogDebug: true,
2609
2613
  approvalTimeoutMs: 12e4,
package/dist/index.js CHANGED
@@ -295,7 +295,11 @@ var ConfigFileSchema = import_zod.z.object({
295
295
  settings: import_zod.z.object({
296
296
  mode: import_zod.z.enum(["standard", "strict", "audit", "observe"]).optional(),
297
297
  autoStartDaemon: import_zod.z.boolean().optional(),
298
- enableUndo: import_zod.z.boolean().optional(),
298
+ // enableUndo / policy.snapshot: removed with the undo feature. The
299
+ // schema strips undeclared keys silently (plain zod object — no
300
+ // .strict(), no .passthrough()), so a config still carrying them stays
301
+ // valid and simply loses them. Keeping the fields would instead make
302
+ // `node9_config_get` advertise a removed feature as a live knob.
299
303
  enableHookLogDebug: import_zod.z.boolean().optional(),
300
304
  approvalTimeoutMs: import_zod.z.number().nonnegative().optional(),
301
305
  approvalTimeoutSeconds: import_zod.z.number().nonnegative().optional(),
@@ -347,11 +351,6 @@ var ConfigFileSchema = import_zod.z.object({
347
351
  ignoredTools: import_zod.z.array(import_zod.z.string()).optional(),
348
352
  toolInspection: import_zod.z.record(import_zod.z.string()).optional(),
349
353
  smartRules: import_zod.z.array(SmartRuleSchema).optional(),
350
- snapshot: import_zod.z.object({
351
- tools: import_zod.z.array(import_zod.z.string()).optional(),
352
- onlyPaths: import_zod.z.array(import_zod.z.string()).optional(),
353
- ignorePaths: import_zod.z.array(import_zod.z.string()).optional()
354
- }).optional(),
355
354
  dlp: import_zod.z.object({
356
355
  enabled: import_zod.z.boolean().optional(),
357
356
  scanIgnoredTools: import_zod.z.boolean().optional(),
@@ -4181,13 +4180,18 @@ var DEFAULT_CONFIG = {
4181
4180
  settings: {
4182
4181
  mode: "standard",
4183
4182
  autoStartDaemon: true,
4184
- // OFF by default. The snapshot store is a per-project bare git repo with
4185
- // no size ceiling, and eviction drops the index row without deleting the
4186
- // objects on one machine it reached 378G (352G of it orphaned tmp_pack_*
4187
- // from interrupted `git gc`) and filled the disk. A security tool must not
4188
- // be what fills a customer's disk. Re-enable per install with
4189
- // `{"settings":{"enableUndo":true}}`; the default flips back when the
4190
- // bounded copy-store lands (doc/undo-v2-copy-store-design.md).
4183
+ // The undo feature was REMOVED. This default is one of two places that say
4184
+ // so; the other is the pin further down, which overwrites whatever a config
4185
+ // file, the dashboard or the cloud supplies. Setting `enableUndo` anywhere
4186
+ // has no effect do not restore the advice that used to live here, because
4187
+ // a comment recommending a knob that is silently discarded is the same lie
4188
+ // on disk the pin exists to prevent.
4189
+ //
4190
+ // Why it went: the store was a per-project bare git repo with no size
4191
+ // ceiling, and eviction dropped the index row without deleting the objects.
4192
+ // On one machine it reached 378G (352G of it orphaned tmp_pack_* from an
4193
+ // interrupted `git gc`) and filled the disk. A security tool must not be
4194
+ // what fills a customer's disk. Leftovers: `node9 undo --purge`.
4191
4195
  enableUndo: false,
4192
4196
  enableHookLogDebug: true,
4193
4197
  approvalTimeoutMs: 12e4,
@@ -4597,7 +4601,6 @@ function getConfig(cwd) {
4597
4601
  const p = source.policy || {};
4598
4602
  if (s.mode !== void 0) mergedSettings.mode = s.mode;
4599
4603
  if (s.autoStartDaemon !== void 0) mergedSettings.autoStartDaemon = s.autoStartDaemon;
4600
- if (s.enableUndo !== void 0) mergedSettings.enableUndo = s.enableUndo;
4601
4604
  if (s.enableHookLogDebug !== void 0)
4602
4605
  mergedSettings.enableHookLogDebug = s.enableHookLogDebug;
4603
4606
  if (s.approvers) mergedSettings.approvers = { ...mergedSettings.approvers, ...s.approvers };
@@ -4974,6 +4977,7 @@ function getConfig(cwd) {
4974
4977
  mergedPolicy.snapshot.tools = [...new Set(mergedPolicy.snapshot.tools)];
4975
4978
  mergedPolicy.snapshot.onlyPaths = [...new Set(mergedPolicy.snapshot.onlyPaths)];
4976
4979
  mergedPolicy.snapshot.ignorePaths = [...new Set(mergedPolicy.snapshot.ignorePaths)];
4980
+ mergedSettings.enableUndo = false;
4977
4981
  const result = {
4978
4982
  settings: mergedSettings,
4979
4983
  policy: mergedPolicy,
package/dist/index.mjs CHANGED
@@ -265,7 +265,11 @@ var ConfigFileSchema = z.object({
265
265
  settings: z.object({
266
266
  mode: z.enum(["standard", "strict", "audit", "observe"]).optional(),
267
267
  autoStartDaemon: z.boolean().optional(),
268
- enableUndo: z.boolean().optional(),
268
+ // enableUndo / policy.snapshot: removed with the undo feature. The
269
+ // schema strips undeclared keys silently (plain zod object — no
270
+ // .strict(), no .passthrough()), so a config still carrying them stays
271
+ // valid and simply loses them. Keeping the fields would instead make
272
+ // `node9_config_get` advertise a removed feature as a live knob.
269
273
  enableHookLogDebug: z.boolean().optional(),
270
274
  approvalTimeoutMs: z.number().nonnegative().optional(),
271
275
  approvalTimeoutSeconds: z.number().nonnegative().optional(),
@@ -317,11 +321,6 @@ var ConfigFileSchema = z.object({
317
321
  ignoredTools: z.array(z.string()).optional(),
318
322
  toolInspection: z.record(z.string()).optional(),
319
323
  smartRules: z.array(SmartRuleSchema).optional(),
320
- snapshot: z.object({
321
- tools: z.array(z.string()).optional(),
322
- onlyPaths: z.array(z.string()).optional(),
323
- ignorePaths: z.array(z.string()).optional()
324
- }).optional(),
325
324
  dlp: z.object({
326
325
  enabled: z.boolean().optional(),
327
326
  scanIgnoredTools: z.boolean().optional(),
@@ -4151,13 +4150,18 @@ var DEFAULT_CONFIG = {
4151
4150
  settings: {
4152
4151
  mode: "standard",
4153
4152
  autoStartDaemon: true,
4154
- // OFF by default. The snapshot store is a per-project bare git repo with
4155
- // no size ceiling, and eviction drops the index row without deleting the
4156
- // objects on one machine it reached 378G (352G of it orphaned tmp_pack_*
4157
- // from interrupted `git gc`) and filled the disk. A security tool must not
4158
- // be what fills a customer's disk. Re-enable per install with
4159
- // `{"settings":{"enableUndo":true}}`; the default flips back when the
4160
- // bounded copy-store lands (doc/undo-v2-copy-store-design.md).
4153
+ // The undo feature was REMOVED. This default is one of two places that say
4154
+ // so; the other is the pin further down, which overwrites whatever a config
4155
+ // file, the dashboard or the cloud supplies. Setting `enableUndo` anywhere
4156
+ // has no effect do not restore the advice that used to live here, because
4157
+ // a comment recommending a knob that is silently discarded is the same lie
4158
+ // on disk the pin exists to prevent.
4159
+ //
4160
+ // Why it went: the store was a per-project bare git repo with no size
4161
+ // ceiling, and eviction dropped the index row without deleting the objects.
4162
+ // On one machine it reached 378G (352G of it orphaned tmp_pack_* from an
4163
+ // interrupted `git gc`) and filled the disk. A security tool must not be
4164
+ // what fills a customer's disk. Leftovers: `node9 undo --purge`.
4161
4165
  enableUndo: false,
4162
4166
  enableHookLogDebug: true,
4163
4167
  approvalTimeoutMs: 12e4,
@@ -4567,7 +4571,6 @@ function getConfig(cwd) {
4567
4571
  const p = source.policy || {};
4568
4572
  if (s.mode !== void 0) mergedSettings.mode = s.mode;
4569
4573
  if (s.autoStartDaemon !== void 0) mergedSettings.autoStartDaemon = s.autoStartDaemon;
4570
- if (s.enableUndo !== void 0) mergedSettings.enableUndo = s.enableUndo;
4571
4574
  if (s.enableHookLogDebug !== void 0)
4572
4575
  mergedSettings.enableHookLogDebug = s.enableHookLogDebug;
4573
4576
  if (s.approvers) mergedSettings.approvers = { ...mergedSettings.approvers, ...s.approvers };
@@ -4944,6 +4947,7 @@ function getConfig(cwd) {
4944
4947
  mergedPolicy.snapshot.tools = [...new Set(mergedPolicy.snapshot.tools)];
4945
4948
  mergedPolicy.snapshot.onlyPaths = [...new Set(mergedPolicy.snapshot.onlyPaths)];
4946
4949
  mergedPolicy.snapshot.ignorePaths = [...new Set(mergedPolicy.snapshot.ignorePaths)];
4950
+ mergedSettings.enableUndo = false;
4947
4951
  const result = {
4948
4952
  settings: mergedSettings,
4949
4953
  policy: mergedPolicy,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node9/proxy",
3
- "version": "1.67.4",
3
+ "version": "1.67.5",
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",