safemode 2.0.2 → 2.0.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.
@@ -17,10 +17,10 @@ export interface ScanResult {
17
17
  scan_duration_ms: number;
18
18
  }
19
19
  export declare class FirstRunScanner {
20
- private homeDir;
20
+ private scanRoot;
21
21
  private maxFilesToScan;
22
22
  private maxFileSize;
23
- constructor();
23
+ constructor(scanRoot?: string);
24
24
  /**
25
25
  * Run a full scan
26
26
  */
@@ -29,6 +29,10 @@ export declare class FirstRunScanner {
29
29
  * Scan for files that may contain secrets
30
30
  */
31
31
  private scanForSecretFiles;
32
+ /**
33
+ * Quick check of well-known dotfiles in $HOME (no recursive glob)
34
+ */
35
+ private scanHomeDotfiles;
32
36
  /**
33
37
  * Scan environment for issues
34
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAiCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAe;;IAMlC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IA2BjC;;OAEG;YACW,kBAAkB;IAqDhC;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;YACW,WAAW;CAoD1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAiCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAe;gBAEtB,QAAQ,CAAC,EAAE,MAAM;IAI7B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAgCjC;;OAEG;YACW,kBAAkB;IA8DhC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;YACW,WAAW;CAqD1B"}
@@ -36,11 +36,11 @@ const SECRET_CONTENT_PATTERNS = [
36
36
  // First-Run Scanner
37
37
  // ============================================================================
38
38
  export class FirstRunScanner {
39
- homeDir;
39
+ scanRoot;
40
40
  maxFilesToScan = 1000;
41
41
  maxFileSize = 1024 * 1024; // 1MB
42
- constructor() {
43
- this.homeDir = os.homedir();
42
+ constructor(scanRoot) {
43
+ this.scanRoot = scanRoot || process.cwd();
44
44
  }
45
45
  /**
46
46
  * Run a full scan
@@ -49,10 +49,14 @@ export class FirstRunScanner {
49
49
  const startTime = performance.now();
50
50
  const findings = [];
51
51
  let scannedFiles = 0;
52
- // Scan for secret files
52
+ // Scan project directory for secret files
53
53
  const secretFindings = await this.scanForSecretFiles();
54
54
  findings.push(...secretFindings.findings);
55
55
  scannedFiles += secretFindings.scanned;
56
+ // Quick check of well-known dotfiles in $HOME (no recursive glob)
57
+ const homeFindings = this.scanHomeDotfiles();
58
+ findings.push(...homeFindings.findings);
59
+ scannedFiles += homeFindings.scanned;
56
60
  // Scan for environment issues
57
61
  const envFindings = this.scanEnvironment();
58
62
  findings.push(...envFindings);
@@ -76,10 +80,19 @@ export class FirstRunScanner {
76
80
  for (const pattern of SECRET_FILE_PATTERNS) {
77
81
  try {
78
82
  const files = await glob(pattern, {
79
- cwd: this.homeDir,
83
+ cwd: this.scanRoot,
80
84
  absolute: true,
81
85
  nodir: true,
82
- ignore: ['**/node_modules/**', '**/.git/**'],
86
+ dot: true,
87
+ ignore: [
88
+ '**/node_modules/**',
89
+ '**/.git/**',
90
+ '**/dist/**',
91
+ '**/build/**',
92
+ '**/.cache/**',
93
+ '**/Library/**',
94
+ '**/.Trash/**',
95
+ ],
83
96
  });
84
97
  for (const file of files.slice(0, 100)) {
85
98
  if (scanned >= this.maxFilesToScan)
@@ -116,6 +129,48 @@ export class FirstRunScanner {
116
129
  }
117
130
  return { findings, scanned };
118
131
  }
132
+ /**
133
+ * Quick check of well-known dotfiles in $HOME (no recursive glob)
134
+ */
135
+ scanHomeDotfiles() {
136
+ const findings = [];
137
+ let scanned = 0;
138
+ const home = os.homedir();
139
+ const dotfiles = [
140
+ path.join(home, '.env'),
141
+ path.join(home, '.env.local'),
142
+ path.join(home, '.aws', 'credentials'),
143
+ path.join(home, '.npmrc'),
144
+ ];
145
+ for (const file of dotfiles) {
146
+ try {
147
+ if (!fs.existsSync(file))
148
+ continue;
149
+ const stats = fs.statSync(file);
150
+ if (stats.size > this.maxFileSize)
151
+ continue;
152
+ const content = fs.readFileSync(file, 'utf8');
153
+ scanned++;
154
+ for (const { pattern: secretPattern, name } of SECRET_CONTENT_PATTERNS) {
155
+ secretPattern.lastIndex = 0;
156
+ if (secretPattern.test(content)) {
157
+ findings.push({
158
+ type: 'secret',
159
+ severity: 'high',
160
+ description: `${name} found in file`,
161
+ path: file,
162
+ recommendation: 'Consider using environment variables or a secrets manager',
163
+ });
164
+ break;
165
+ }
166
+ }
167
+ }
168
+ catch {
169
+ // Skip files we can't read
170
+ }
171
+ }
172
+ return { findings, scanned };
173
+ }
119
174
  /**
120
175
  * Scan environment for issues
121
176
  */
@@ -149,10 +204,11 @@ export class FirstRunScanner {
149
204
  async scanConfigs() {
150
205
  const findings = [];
151
206
  // Check for insecure MCP server configurations
207
+ const home = os.homedir();
152
208
  const mcpConfigPaths = [
153
- path.join(this.homeDir, 'Library/Application Support/Claude/claude_desktop_config.json'),
154
- path.join(this.homeDir, '.cursor/mcp.json'),
155
- path.join(this.homeDir, '.claude/mcp_servers.json'),
209
+ path.join(home, 'Library/Application Support/Claude/claude_desktop_config.json'),
210
+ path.join(home, '.cursor/mcp.json'),
211
+ path.join(home, '.claude/mcp_servers.json'),
156
212
  ];
157
213
  for (const configPath of mcpConfigPaths) {
158
214
  if (!fs.existsSync(configPath))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAoB5B,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,oBAAoB,GAAG;IAC3B,SAAS;IACT,WAAW;IACX,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,UAAU;IACV,UAAU;IACV,WAAW;IACX,eAAe;IACf,qBAAqB;IACrB,WAAW;CACZ,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACxD,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACjE,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,YAAY,EAAE;IACvD,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAC1D,EAAE,OAAO,EAAE,4BAA4B,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACpE,EAAE,OAAO,EAAE,2CAA2C,EAAE,IAAI,EAAE,aAAa,EAAE;CAC9E,CAAC;AAEF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,OAAO,eAAe;IAClB,OAAO,CAAS;IAChB,cAAc,GAAG,IAAI,CAAC;IACtB,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;IAEzC;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,wBAAwB;QACxB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,YAAY,IAAI,cAAc,CAAC,OAAO,CAAC;QAEvC,8BAA8B;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAE9B,yBAAyB;QACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE/C,OAAO;YACL,QAAQ;YACR,aAAa,EAAE,YAAY;YAC3B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAI9B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,8BAA8B;QAC9B,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;oBAChC,GAAG,EAAE,IAAI,CAAC,OAAO;oBACjB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;iBAC7C,CAAC,CAAC;gBAEH,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvC,IAAI,OAAO,IAAI,IAAI,CAAC,cAAc;wBAAE,MAAM;oBAE1C,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAChC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW;4BAAE,SAAS;wBAE5C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAC9C,OAAO,EAAE,CAAC;wBAEV,4BAA4B;wBAC5B,KAAK,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,uBAAuB,EAAE,CAAC;4BACvE,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;4BAC5B,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gCAChC,QAAQ,CAAC,IAAI,CAAC;oCACZ,IAAI,EAAE,QAAQ;oCACd,QAAQ,EAAE,MAAM;oCAChB,WAAW,EAAE,GAAG,IAAI,gBAAgB;oCACpC,IAAI,EAAE,IAAI;oCACV,cAAc,EAAE,2DAA2D;iCAC5E,CAAC,CAAC;gCACH,MAAM,CAAC,uBAAuB;4BAChC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,2BAA2B;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,kEAAkE;QAClE,MAAM,gBAAgB,GAAG;YACvB,mBAAmB;YACnB,uBAAuB;YACvB,mBAAmB;YACnB,gBAAgB;YAChB,mBAAmB;YACnB,cAAc;YACd,WAAW;SACZ,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK;oBACX,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,GAAG,MAAM,wBAAwB;oBAC9C,cAAc,EAAE,8DAA8D;iBAC/E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,+CAA+C;QAC/C,MAAM,cAAc,GAAG;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,+DAA+D,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC;SACpD,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,SAAS;YAEzC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEnC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/D,MAAM,YAAY,GAAG,MAA+C,CAAC;wBAErE,uBAAuB;wBACvB,IAAI,YAAY,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;4BACpC,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,MAAM;gCAChB,WAAW,EAAE,eAAe,IAAI,kBAAkB;gCAClD,IAAI,EAAE,UAAU;gCAChB,cAAc,EAAE,mCAAmC;6BACpD,CAAC,CAAC;wBACL,CAAC;wBAED,4BAA4B;wBAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;wBAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;4BACvD,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,QAAQ;gCAClB,WAAW,EAAE,eAAe,IAAI,wBAAwB;gCACxD,IAAI,EAAE,UAAU;gCAChB,cAAc,EAAE,yCAAyC;6BAC1D,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scanner/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safemode",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Stop your AI coding agent from doing something you'll regret.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",