camouf 0.2.2 → 0.2.4

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.
Files changed (35) hide show
  1. package/README.md +89 -2
  2. package/dist/cli/commands/init.d.ts +1 -0
  3. package/dist/cli/commands/init.d.ts.map +1 -1
  4. package/dist/cli/commands/init.js +120 -1
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/commands/validate.d.ts.map +1 -1
  7. package/dist/cli/commands/validate.js +2 -1
  8. package/dist/cli/commands/validate.js.map +1 -1
  9. package/dist/cli/commands/watch.d.ts.map +1 -1
  10. package/dist/cli/commands/watch.js +77 -20
  11. package/dist/cli/commands/watch.js.map +1 -1
  12. package/dist/core/reporter/violation-reporter.d.ts +15 -1
  13. package/dist/core/reporter/violation-reporter.d.ts.map +1 -1
  14. package/dist/core/reporter/violation-reporter.js +56 -0
  15. package/dist/core/reporter/violation-reporter.js.map +1 -1
  16. package/dist/core/rules/builtin/hardcoded-secrets.rule.d.ts +5 -0
  17. package/dist/core/rules/builtin/hardcoded-secrets.rule.d.ts.map +1 -1
  18. package/dist/core/rules/builtin/hardcoded-secrets.rule.js +108 -18
  19. package/dist/core/rules/builtin/hardcoded-secrets.rule.js.map +1 -1
  20. package/dist/core/rules/rule-engine.d.ts +2 -2
  21. package/dist/core/rules/rule-engine.d.ts.map +1 -1
  22. package/dist/core/rules/rule-engine.js +6 -5
  23. package/dist/core/rules/rule-engine.js.map +1 -1
  24. package/dist/core/scanner/project-detector.d.ts +1 -1
  25. package/dist/core/scanner/project-detector.d.ts.map +1 -1
  26. package/dist/core/scanner/project-detector.js +159 -20
  27. package/dist/core/scanner/project-detector.js.map +1 -1
  28. package/dist/core/scanner/project-scanner.d.ts +5 -0
  29. package/dist/core/scanner/project-scanner.d.ts.map +1 -1
  30. package/dist/core/scanner/project-scanner.js +14 -2
  31. package/dist/core/scanner/project-scanner.js.map +1 -1
  32. package/dist/core/watcher/file-watcher.d.ts.map +1 -1
  33. package/dist/core/watcher/file-watcher.js +41 -28
  34. package/dist/core/watcher/file-watcher.js.map +1 -1
  35. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"violation-reporter.js","sourceRoot":"","sources":["../../../src/core/reporter/violation-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"violation-reporter.js","sourceRoot":"","sources":["../../../src/core/reporter/violation-reporter.ts"],"names":[],"mappings":"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"}
@@ -25,11 +25,16 @@ export declare class HardcodedSecretsRule implements IRule {
25
25
  readonly severity: "error";
26
26
  readonly tags: string[];
27
27
  readonly category: "security";
28
+ readonly supportsIncremental = true;
28
29
  private config;
29
30
  private readonly secretPatterns;
30
31
  private readonly excludePatterns;
31
32
  configure(options: Partial<HardcodedSecretsConfig>): void;
32
33
  check(context: RuleContext): Promise<RuleResult>;
34
+ /**
35
+ * Check a single file for secrets (incremental/real-time validation)
36
+ */
37
+ checkFile(filePath: string, context: RuleContext): Promise<RuleResult>;
33
38
  private shouldIgnorePath;
34
39
  private checkForSecrets;
35
40
  private checkEnvAssignments;
@@ -1 +1 @@
1
- {"version":3,"file":"hardcoded-secrets.rule.d.ts","sourceRoot":"","sources":["../../../../src/core/rules/builtin/hardcoded-secrets.rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASlF,UAAU,sBAAuB,SAAQ,UAAU;IACjD,+CAA+C;IAC/C,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,oBAAqB,YAAW,KAAK;IAChD,QAAQ,CAAC,EAAE,uBAAuB;IAClC,QAAQ,CAAC,IAAI,iCAAiC;IAC9C,QAAQ,CAAC,WAAW,0FAA0F;IAC9G,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,IAAI,WAA4D;IACzE,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,OAAO,CAAC,MAAM,CAMZ;IAGF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAiK7B;IAGF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAiB9B;IAEF,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAInD,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBtD,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAwDvB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;CAYxB"}
1
+ {"version":3,"file":"hardcoded-secrets.rule.d.ts","sourceRoot":"","sources":["../../../../src/core/rules/builtin/hardcoded-secrets.rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASlF,UAAU,sBAAuB,SAAQ,UAAU;IACjD,+CAA+C;IAC/C,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,oBAAqB,YAAW,KAAK;IAChD,QAAQ,CAAC,EAAE,uBAAuB;IAClC,QAAQ,CAAC,IAAI,iCAAiC;IAC9C,QAAQ,CAAC,WAAW,0FAA0F;IAC9G,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,IAAI,WAA4D;IACzE,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,mBAAmB,QAAQ;IAEpC,OAAO,CAAC,MAAM,CAMZ;IAGF,OAAO,CAAC,QAAQ,CAAC,cAAc,CA+N7B;IAKF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAW9B;IAEF,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAInD,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBtD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAmC5E,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAwDvB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;CAYxB"}
@@ -10,10 +10,11 @@ export class HardcodedSecretsRule {
10
10
  severity = 'error';
11
11
  tags = ['security', 'secrets', 'credentials', 'best-practices'];
12
12
  category = 'security';
13
+ supportsIncremental = true; // Enable real-time checking
13
14
  config = {
14
15
  enabled: true,
15
16
  severity: 'error',
16
- ignorePaths: ['test', 'spec', 'mock', 'fixture', 'example', '__test__', '.test.', '.spec.'],
17
+ ignorePaths: [], // Intentionally empty: AI agents often hide secrets in test/mock files
17
18
  minSecretLength: 8,
18
19
  checkEnvAssignments: true,
19
20
  };
@@ -37,9 +38,24 @@ export class HardcodedSecretsRule {
37
38
  },
38
39
  {
39
40
  name: 'OpenAI API Key',
40
- pattern: /sk-[A-Za-z0-9]{20,}T3BlbkFJ[A-Za-z0-9]{20,}/g,
41
+ pattern: /sk-(?:proj-)?[A-Za-z0-9]{20,}/g,
41
42
  description: 'OpenAI API key detected',
42
43
  },
44
+ {
45
+ name: 'Anthropic API Key',
46
+ pattern: /sk-ant-[A-Za-z0-9_-]{40,}/g,
47
+ description: 'Anthropic API key detected',
48
+ },
49
+ {
50
+ name: 'Azure OpenAI Key',
51
+ pattern: /[A-Fa-f0-9]{32}/g,
52
+ description: 'Potential Azure API key detected (32-char hex)',
53
+ },
54
+ {
55
+ name: 'Hugging Face Token',
56
+ pattern: /hf_[A-Za-z0-9]{34,}/g,
57
+ description: 'Hugging Face API token detected',
58
+ },
43
59
  {
44
60
  name: 'Stripe API Key',
45
61
  pattern: /(?:sk|pk)_(?:test|live)_[A-Za-z0-9]{24,}/g,
@@ -167,25 +183,67 @@ export class HardcodedSecretsRule {
167
183
  pattern: /['"`]?(?:token|access[_-]?token|refresh[_-]?token)['"`]?\s*[:=]\s*['"`]([A-Za-z0-9_-]{20,})['"`]/gi,
168
184
  description: 'Hardcoded token detected',
169
185
  },
186
+ // AI Agent common patterns - these are often used to "hide" real secrets
187
+ {
188
+ name: 'Variable with Secret Value',
189
+ pattern: /(?:const|let|var)\s+(?:[A-Z_]*(?:KEY|SECRET|TOKEN|PASSWORD|CREDENTIAL|AUTH)[A-Z_]*)\s*=\s*['"`]([^'"`]{8,})['"`]/g,
190
+ description: 'Variable name suggests sensitive value',
191
+ },
192
+ {
193
+ name: 'Supabase Key',
194
+ pattern: /eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,
195
+ description: 'Supabase anon/service key detected (JWT format)',
196
+ },
197
+ {
198
+ name: 'Discord Token',
199
+ pattern: /[MN][A-Za-z0-9]{23,}\.[A-Za-z0-9-_]{6}\.[A-Za-z0-9-_]{27}/g,
200
+ description: 'Discord bot token detected',
201
+ },
202
+ {
203
+ name: 'Telegram Bot Token',
204
+ pattern: /\d{8,10}:[A-Za-z0-9_-]{35}/g,
205
+ description: 'Telegram bot token detected',
206
+ },
207
+ {
208
+ name: 'Replicate API Token',
209
+ pattern: /r8_[A-Za-z0-9]{40}/g,
210
+ description: 'Replicate API token detected',
211
+ },
212
+ {
213
+ name: 'Linear API Key',
214
+ pattern: /lin_api_[A-Za-z0-9]{40}/g,
215
+ description: 'Linear API key detected',
216
+ },
217
+ {
218
+ name: 'Notion API Key',
219
+ pattern: /secret_[A-Za-z0-9]{43}/g,
220
+ description: 'Notion API key detected',
221
+ },
222
+ {
223
+ name: 'Airtable API Key',
224
+ pattern: /key[A-Za-z0-9]{14}/g,
225
+ description: 'Airtable API key detected',
226
+ },
227
+ {
228
+ name: 'Doppler Token',
229
+ pattern: /dp\.pt\.[A-Za-z0-9]{43}/g,
230
+ description: 'Doppler token detected',
231
+ },
170
232
  ];
171
233
  // Patterns to exclude (false positives)
234
+ // NOTE: Intentionally minimal - AI agents often use words like "test", "mock", "example"
235
+ // to disguise real hardcoded secrets. We only exclude obvious template patterns.
172
236
  excludePatterns = [
173
- /process\.env\./,
174
- /import\.meta\.env\./,
175
- /config\.\w+/,
176
- /\$\{.*\}/, // Template literals with variables
177
- /<%.*%>/, // EJS templates
178
- /\{\{.*\}\}/, // Handlebars/Mustache templates
179
- /placeholder/i,
180
- /example/i,
181
- /dummy/i,
182
- /test/i,
183
- /mock/i,
184
- /fake/i,
185
- /xxx+/i,
186
- /your[_-]?(?:api[_-]?key|password|secret)/i,
187
- /\*{3,}/, // Masked values like ****
188
- /\.\.\.$/, // Truncated values
237
+ /process\.env\.[A-Z_]+\s*$/, // Only pure env var references (no fallback)
238
+ /import\.meta\.env\.[A-Z_]+\s*$/, // Only pure env var references
239
+ /\$\{[A-Z_]+\}/, // Template literals with env-style variables only
240
+ /<%[=]?\s*\w+\s*%>/, // EJS templates
241
+ /\{\{\s*\w+\s*\}\}/, // Handlebars/Mustache templates
242
+ /your[_-]?(?:api[_-]?key|password|secret|token)(?:[_-]?here)?/i, // Obvious placeholders
243
+ /\*{8,}/, // Heavily masked values like ********
244
+ /^x{8,}$/i, // Only pure xxx... strings
245
+ /<[A-Z_]+>/, // Placeholder patterns like <API_KEY>
246
+ /\[(?:YOUR|INSERT|REPLACE)[_\s].*\]/i, // [YOUR_API_KEY] style placeholders
189
247
  ];
190
248
  configure(options) {
191
249
  this.config = { ...this.config, ...options };
@@ -207,6 +265,38 @@ export class HardcodedSecretsRule {
207
265
  }
208
266
  return { violations };
209
267
  }
268
+ /**
269
+ * Check a single file for secrets (incremental/real-time validation)
270
+ */
271
+ async checkFile(filePath, context) {
272
+ const violations = [];
273
+ // Skip ignored paths
274
+ if (this.shouldIgnorePath(filePath)) {
275
+ return { violations };
276
+ }
277
+ // Convert to relative path for fileContents lookup
278
+ const path = await import('path');
279
+ const relativePath = path.relative(context.config.root, filePath).replace(/\\/g, '/');
280
+ // Get file content from context or read directly
281
+ let content = context.fileContents?.get(relativePath);
282
+ if (!content) {
283
+ // Try with backslashes (Windows)
284
+ content = context.fileContents?.get(relativePath.replace(/\//g, '\\'));
285
+ }
286
+ if (!content) {
287
+ // Read file directly as fallback
288
+ try {
289
+ const fs = await import('fs/promises');
290
+ content = await fs.readFile(filePath, 'utf-8');
291
+ }
292
+ catch {
293
+ // File might not exist or be readable
294
+ return { violations };
295
+ }
296
+ }
297
+ this.checkForSecrets(relativePath, content, violations);
298
+ return { violations };
299
+ }
210
300
  shouldIgnorePath(filePath) {
211
301
  const normalizedPath = filePath.toLowerCase();
212
302
  return (this.config.ignorePaths || []).some(ignorePath => normalizedPath.includes(ignorePath.toLowerCase()));
@@ -1 +1 @@
1
- {"version":3,"file":"hardcoded-secrets.rule.js","sourceRoot":"","sources":["../../../../src/core/rules/builtin/hardcoded-secrets.rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hardcoded-secrets.rule.js","sourceRoot":"","sources":["../../../../src/core/rules/builtin/hardcoded-secrets.rule.ts"],"names":[],"mappings":"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"}
@@ -39,11 +39,11 @@ export declare class RuleEngine {
39
39
  /**
40
40
  * Validate the entire project
41
41
  */
42
- validate(graph: DependencyGraph): Promise<Violation[]>;
42
+ validate(graph: DependencyGraph, fileContents?: Map<string, string>): Promise<Violation[]>;
43
43
  /**
44
44
  * Validate a single file
45
45
  */
46
- validateFile(filePath: string, graph: DependencyGraph): Promise<Violation[]>;
46
+ validateFile(filePath: string, graph: DependencyGraph, fileContents?: Map<string, string>): Promise<Violation[]>;
47
47
  /**
48
48
  * Attempt to auto-fix violations
49
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../../src/core/rules/rule-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAA8B,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,SAAS,EAAqB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,KAAK,EAA2B,MAAM,qBAAqB,CAAC;AAgBrE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAA0B;gBAElC,MAAM,EAAE,YAAY;IAKhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAI/B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAWpC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA4B5D;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA8BlF;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD;;OAEG;IACH,QAAQ,IAAI,KAAK,EAAE;IAInB;;OAEG;IACH,eAAe,IAAI,KAAK,EAAE;IAM1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;CASxB"}
1
+ {"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../../src/core/rules/rule-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAA8B,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,SAAS,EAAqB,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,KAAK,EAA2B,MAAM,qBAAqB,CAAC;AAgBrE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAA0B;gBAElC,MAAM,EAAE,YAAY;IAKhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAI/B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAWpC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA4BhG;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA8BtH;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD;;OAEG;IACH,QAAQ,IAAI,KAAK,EAAE;IAInB;;OAEG;IACH,eAAe,IAAI,KAAK,EAAE;IAM1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;CASxB"}
@@ -100,9 +100,9 @@ export class RuleEngine {
100
100
  /**
101
101
  * Validate the entire project
102
102
  */
103
- async validate(graph) {
103
+ async validate(graph, fileContents) {
104
104
  const violations = [];
105
- const context = this.createContext(graph);
105
+ const context = this.createContext(graph, undefined, fileContents);
106
106
  for (const ruleId of this.enabledRules) {
107
107
  const rule = this.rules.get(ruleId);
108
108
  if (!rule || !rule.check)
@@ -128,9 +128,9 @@ export class RuleEngine {
128
128
  /**
129
129
  * Validate a single file
130
130
  */
131
- async validateFile(filePath, graph) {
131
+ async validateFile(filePath, graph, fileContents) {
132
132
  const violations = [];
133
- const context = this.createContext(graph, filePath);
133
+ const context = this.createContext(graph, filePath, fileContents);
134
134
  for (const ruleId of this.enabledRules) {
135
135
  const rule = this.rules.get(ruleId);
136
136
  if (!rule)
@@ -192,11 +192,12 @@ export class RuleEngine {
192
192
  /**
193
193
  * Create rule context
194
194
  */
195
- createContext(graph, focusFile) {
195
+ createContext(graph, focusFile, fileContents) {
196
196
  return {
197
197
  config: this.config,
198
198
  graph,
199
199
  focusFile,
200
+ fileContents,
200
201
  getNodeData: (id) => graph.node(id),
201
202
  getEdgeData: (source, target) => graph.edge(source, target),
202
203
  getIncomingEdges: (id) => graph.inEdges(id) || [],
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../../../src/core/rules/rule-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../../../src/core/rules/rule-engine.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export declare class ProjectDetector {
27
27
  */
28
28
  private detectLanguages;
29
29
  /**
30
- * Detect directory structure
30
+ * Detect directory structure by analyzing content
31
31
  */
32
32
  private detectDirectories;
33
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../../src/core/scanner/project-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,UAAU,gBAAgB;IACxB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAkClC;IAEF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAmBhC;IAEF;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBxD;;OAEG;YACW,eAAe;IA2E7B;;OAEG;YACW,iBAAiB;IA+C/B;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;YACW,eAAe;IA4B7B;;OAEG;YACW,cAAc;IAuC5B;;OAEG;IACH,OAAO,CAAC,eAAe;CASxB"}
1
+ {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../../src/core/scanner/project-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,UAAU,gBAAgB;IACxB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAkClC;IAEF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAmBhC;IAEF;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBxD;;OAEG;YACW,eAAe;IA2E7B;;OAEG;YACW,iBAAiB;IAgM/B;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;YACW,eAAe;IA4B7B;;OAEG;YACW,cAAc;IAuC5B;;OAEG;IACH,OAAO,CAAC,eAAe;CASxB"}
@@ -153,43 +153,182 @@ export class ProjectDetector {
153
153
  return Array.from(languages);
154
154
  }
155
155
  /**
156
- * Detect directory structure
156
+ * Detect directory structure by analyzing content
157
157
  */
158
158
  async detectDirectories(rootDir) {
159
- const directories = await fg('**/', {
160
- cwd: rootDir,
161
- ignore: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.git/**'],
162
- onlyDirectories: true,
163
- deep: 3,
164
- suppressErrors: true,
165
- });
166
159
  const result = {
167
160
  client: [],
168
161
  server: [],
169
162
  shared: [],
170
163
  };
164
+ // Get all directories
165
+ const directories = await fg('**/', {
166
+ cwd: rootDir,
167
+ ignore: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.git/**', '**/vendor/**', '**/__pycache__/**'],
168
+ onlyDirectories: true,
169
+ deep: 4,
170
+ suppressErrors: true,
171
+ });
172
+ // Get all source files for content analysis
173
+ const sourceFiles = await fg('**/*.{ts,tsx,js,jsx,py,java,go,rs}', {
174
+ cwd: rootDir,
175
+ ignore: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.git/**', '**/vendor/**'],
176
+ onlyFiles: true,
177
+ deep: 5,
178
+ suppressErrors: true,
179
+ });
180
+ // Analyze directories based on content
181
+ const dirScores = new Map();
182
+ // Initialize scores for top-level directories
171
183
  for (const dir of directories) {
172
184
  const normalizedDir = dir.replace(/\/$/, '');
173
- const dirName = path.basename(normalizedDir).toLowerCase();
174
- // Check client patterns
185
+ const topLevel = normalizedDir.split('/')[0];
186
+ if (!dirScores.has(topLevel)) {
187
+ dirScores.set(topLevel, { client: 0, server: 0, shared: 0 });
188
+ }
189
+ }
190
+ // Add 'src' if it exists
191
+ if (directories.some(d => d === 'src/' || d === 'src')) {
192
+ dirScores.set('src', { client: 0, server: 0, shared: 0 });
193
+ }
194
+ // Score based on directory names
195
+ for (const dir of directories) {
196
+ const normalizedDir = dir.replace(/\/$/, '');
197
+ const topLevel = normalizedDir.split('/')[0];
198
+ const scores = dirScores.get(topLevel);
199
+ if (!scores)
200
+ continue;
201
+ // Client indicators in path
175
202
  if (this.matchesPatterns(normalizedDir, this.directoryPatterns.client)) {
176
- result.client.push(normalizedDir);
203
+ scores.client += 5;
177
204
  }
178
- // Check server patterns
205
+ // Server indicators in path
179
206
  if (this.matchesPatterns(normalizedDir, this.directoryPatterns.server)) {
180
- result.server.push(normalizedDir);
207
+ scores.server += 5;
181
208
  }
182
- // Check shared patterns
209
+ // Shared indicators in path
183
210
  if (this.matchesPatterns(normalizedDir, this.directoryPatterns.shared)) {
184
- result.shared.push(normalizedDir);
211
+ scores.shared += 5;
212
+ }
213
+ }
214
+ // Score based on file content patterns
215
+ for (const file of sourceFiles.slice(0, 500)) {
216
+ const topLevel = file.split('/')[0];
217
+ const scores = dirScores.get(topLevel);
218
+ if (!scores)
219
+ continue;
220
+ try {
221
+ const filePath = path.join(rootDir, file);
222
+ const content = await fs.readFile(filePath, 'utf-8');
223
+ const lowerContent = content.toLowerCase();
224
+ // Client indicators (frontend code patterns)
225
+ const clientPatterns = [
226
+ /import.*from ['"]react['"]/i,
227
+ /import.*from ['"]vue['"]/i,
228
+ /import.*from ['"]@angular/i,
229
+ /import.*from ['"]svelte['"]/i,
230
+ /usestate|useeffect|usememo/i,
231
+ /\bdom\b|document\.|window\./i,
232
+ /classname=|classname:/i,
233
+ /onclick|onchange|onsubmit/i,
234
+ /<div|<span|<button|<input/i,
235
+ /\.module\.css|\.module\.scss/i,
236
+ /tailwind|styled-components/i,
237
+ /router.*navigate|usenavigation|userouter/i,
238
+ ];
239
+ // Server indicators (backend code patterns)
240
+ const serverPatterns = [
241
+ /express\(\)|fastify\(\)|koa\(\)/i,
242
+ /app\.(get|post|put|delete|patch)\s*\(/i,
243
+ /router\.(get|post|put|delete|patch)\s*\(/i,
244
+ /@controller|@get|@post|@injectable/i,
245
+ /prisma|sequelize|typeorm|mongoose/i,
246
+ /\.createserver|\.listen\s*\(/i,
247
+ /req\s*,\s*res|request\s*,\s*response/i,
248
+ /middleware|authentication|authorization/i,
249
+ /database|repository|service.*\{/i,
250
+ /sql|query\(|execute\(/i,
251
+ /jwt|bcrypt|passport/i,
252
+ /sendmail|smtp|nodemailer/i,
253
+ /fastapi|flask|django/i,
254
+ /gin\.|echo\.|fiber\./i,
255
+ ];
256
+ // Shared indicators (utilities, types, etc.)
257
+ const sharedPatterns = [
258
+ /export\s+(interface|type)\s+\w+/i,
259
+ /export\s+const\s+\w+\s*=/i,
260
+ /\.d\.ts$/i,
261
+ /validation|validator|schema/i,
262
+ /constant|config|enum/i,
263
+ /util|helper|common/i,
264
+ ];
265
+ for (const pattern of clientPatterns) {
266
+ if (pattern.test(content)) {
267
+ scores.client += 1;
268
+ }
269
+ }
270
+ for (const pattern of serverPatterns) {
271
+ if (pattern.test(content)) {
272
+ scores.server += 1;
273
+ }
274
+ }
275
+ for (const pattern of sharedPatterns) {
276
+ if (pattern.test(content)) {
277
+ scores.shared += 0.5;
278
+ }
279
+ }
280
+ }
281
+ catch {
282
+ // Can't read file, skip
185
283
  }
186
284
  }
187
- // If no directories found, use reasonable defaults
285
+ // Determine directory types based on scores
286
+ for (const [dir, scores] of dirScores) {
287
+ const total = scores.client + scores.server + scores.shared;
288
+ if (total === 0)
289
+ continue;
290
+ // Calculate percentages
291
+ const clientPct = scores.client / total;
292
+ const serverPct = scores.server / total;
293
+ const sharedPct = scores.shared / total;
294
+ // Assign based on dominant type (threshold 40%)
295
+ if (clientPct > 0.4 && scores.client > 2) {
296
+ result.client.push(dir);
297
+ }
298
+ else if (serverPct > 0.4 && scores.server > 2) {
299
+ result.server.push(dir);
300
+ }
301
+ else if (sharedPct > 0.4 && scores.shared > 2) {
302
+ result.shared.push(dir);
303
+ }
304
+ else if (scores.client > scores.server && scores.client > 2) {
305
+ result.client.push(dir);
306
+ }
307
+ else if (scores.server > scores.client && scores.server > 2) {
308
+ result.server.push(dir);
309
+ }
310
+ }
311
+ // If still nothing detected, use heuristics
188
312
  if (result.client.length === 0 && result.server.length === 0) {
189
- // Check if src exists
190
- const srcExists = directories.some(d => d === 'src/' || d === 'src');
191
- if (srcExists) {
192
- result.client.push('src');
313
+ // Single 'src' directory - check what's inside
314
+ if (directories.some(d => d.startsWith('src/'))) {
315
+ const srcSubdirs = directories.filter(d => d.startsWith('src/') && d.split('/').length === 2);
316
+ for (const subdir of srcSubdirs) {
317
+ const name = subdir.replace('src/', '').replace('/', '');
318
+ if (['app', 'pages', 'components', 'views'].includes(name.toLowerCase())) {
319
+ result.client.push('src');
320
+ break;
321
+ }
322
+ if (['api', 'server', 'controllers', 'routes'].includes(name.toLowerCase())) {
323
+ result.server.push('src');
324
+ break;
325
+ }
326
+ }
327
+ // Default: if src has no clear type, assume fullstack
328
+ if (result.client.length === 0 && result.server.length === 0) {
329
+ result.client.push('src');
330
+ result.server.push('src');
331
+ }
193
332
  }
194
333
  }
195
334
  return result;