codebase-context 1.6.0 → 1.6.2

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 (42) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +282 -292
  3. package/dist/analyzers/angular/index.d.ts +4 -0
  4. package/dist/analyzers/angular/index.d.ts.map +1 -1
  5. package/dist/analyzers/angular/index.js +44 -8
  6. package/dist/analyzers/angular/index.js.map +1 -1
  7. package/dist/cli.d.ts +6 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +113 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/core/indexer.d.ts +0 -5
  12. package/dist/core/indexer.d.ts.map +1 -1
  13. package/dist/core/indexer.js +13 -47
  14. package/dist/core/indexer.js.map +1 -1
  15. package/dist/core/reranker.js +2 -2
  16. package/dist/core/search.js +5 -5
  17. package/dist/core/search.js.map +1 -1
  18. package/dist/embeddings/transformers.js +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +257 -118
  21. package/dist/index.js.map +1 -1
  22. package/dist/memory/store.d.ts +3 -0
  23. package/dist/memory/store.d.ts.map +1 -1
  24. package/dist/memory/store.js +9 -0
  25. package/dist/memory/store.js.map +1 -1
  26. package/dist/patterns/semantics.d.ts +6 -0
  27. package/dist/patterns/semantics.d.ts.map +1 -1
  28. package/dist/patterns/semantics.js +22 -6
  29. package/dist/patterns/semantics.js.map +1 -1
  30. package/dist/preflight/evidence-lock.d.ts +2 -0
  31. package/dist/preflight/evidence-lock.d.ts.map +1 -1
  32. package/dist/preflight/evidence-lock.js +17 -3
  33. package/dist/preflight/evidence-lock.js.map +1 -1
  34. package/dist/types/index.d.ts +2 -0
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/utils/dependency-detection.d.ts +2 -1
  37. package/dist/utils/dependency-detection.d.ts.map +1 -1
  38. package/dist/utils/dependency-detection.js.map +1 -1
  39. package/dist/utils/usage-tracker.js +2 -2
  40. package/dist/utils/usage-tracker.js.map +1 -1
  41. package/docs/capabilities.md +92 -0
  42. package/package.json +157 -122
@@ -9,6 +9,7 @@ export declare class AngularAnalyzer implements FrameworkAnalyzer {
9
9
  readonly version = "1.0.0";
10
10
  readonly supportedExtensions: string[];
11
11
  readonly priority = 100;
12
+ constructor();
12
13
  private angularPatterns;
13
14
  private stateManagementPatterns;
14
15
  private modernAngularPatterns;
@@ -40,5 +41,8 @@ export declare class AngularAnalyzer implements FrameworkAnalyzer {
40
41
  private detectGuardType;
41
42
  private extractFirstComment;
42
43
  private extractFirstLine;
44
+ /** Angular-specific regex patterns for extracting code snippets per detected pattern */
45
+ private static readonly SNIPPET_PATTERNS;
46
+ getSnippetPattern(category: string, name: string): RegExp | null;
43
47
  }
44
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/angular/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,SAAS,EAKV,MAAM,sBAAsB,CAAC;AAQ9B,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,mBAAmB,WAA8D;IAC1F,QAAQ,CAAC,QAAQ,OAAO;IAExB,OAAO,CAAC,eAAe,CAYrB;IAEF,OAAO,CAAC,uBAAuB,CAM7B;IAEF,OAAO,CAAC,qBAAqB,CAa3B;IAEF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAqBjD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YA0B3D,qBAAqB;IAuNnC;;OAEG;IACH,OAAO,CAAC,2BAA2B;YAYrB,uBAAuB;IA+GrC,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,cAAc;YAyCR,mBAAmB;YAiCnB,gBAAgB;IAwB9B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,oBAAoB;IA2BtB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwJzE;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IA2FnC,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,gBAAgB;CAMzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/angular/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,SAAS,EAKV,MAAM,sBAAsB,CAAC;AAS9B,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,mBAAmB,WAA8D;IAC1F,QAAQ,CAAC,QAAQ,OAAO;;IAQxB,OAAO,CAAC,eAAe,CAYrB;IAEF,OAAO,CAAC,uBAAuB,CAM7B;IAEF,OAAO,CAAC,qBAAqB,CAa3B;IAEF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAqBjD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YA0B3D,qBAAqB;IAuNnC;;OAEG;IACH,OAAO,CAAC,2BAA2B;YAYrB,uBAAuB;IAmHrC,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,cAAc;YAyCR,mBAAmB;YAiCnB,gBAAgB;IAwB9B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,oBAAoB;IA2BtB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwJzE;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IA2FnC,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,gBAAgB;IAOxB,wFAAwF;IACxF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAqBtC;IAEF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAGjE"}
@@ -9,11 +9,17 @@ import path from 'path';
9
9
  import { parse } from '@typescript-eslint/typescript-estree';
10
10
  import { createChunksFromCode } from '../../utils/chunking.js';
11
11
  import { CODEBASE_CONTEXT_DIRNAME, KEYWORD_INDEX_FILENAME } from '../../constants/codebase-context.js';
12
+ import { registerComplementaryPatterns } from '../../patterns/semantics.js';
12
13
  export class AngularAnalyzer {
13
14
  name = 'angular';
14
15
  version = '1.0.0';
15
16
  supportedExtensions = ['.ts', '.js', '.html', '.scss', '.css', '.sass', '.less'];
16
17
  priority = 100; // Highest priority for Angular files
18
+ constructor() {
19
+ // Self-register Angular-specific complementary patterns.
20
+ // computed + effect are complementary, not conflicting.
21
+ registerComplementaryPatterns('reactivity', ['Computed', 'Effect']);
22
+ }
17
23
  angularPatterns = {
18
24
  component: /@Component\s*\(/,
19
25
  service: /@Injectable\s*\(/,
@@ -381,10 +387,14 @@ export class AngularAnalyzer {
381
387
  metadata: {
382
388
  angularType,
383
389
  selector: decoratorMetadata.selector,
390
+ providedIn: decoratorMetadata.providedIn,
384
391
  isStandalone: decoratorMetadata.standalone === true,
385
392
  template: decoratorMetadata.template,
386
393
  templateUrl: decoratorMetadata.templateUrl,
387
394
  styleUrls: decoratorMetadata.styleUrls,
395
+ imports: decoratorMetadata.imports,
396
+ declarations: decoratorMetadata.declarations,
397
+ pipeName: decoratorMetadata.name,
388
398
  inputs: inputs.map((i) => i.name),
389
399
  outputs: outputs.map((o) => o.name)
390
400
  }
@@ -804,14 +814,14 @@ export class AngularAnalyzer {
804
814
  const className = classMatch ? classMatch[1] : fileName;
805
815
  switch (componentType) {
806
816
  case 'component': {
807
- const selector = metadata.decorator?.selector || 'unknown';
808
- const inputs = metadata.decorator?.inputs?.length || 0;
809
- const outputs = metadata.decorator?.outputs?.length || 0;
817
+ const selector = metadata?.selector || 'unknown';
818
+ const inputs = metadata?.inputs?.length || 0;
819
+ const outputs = metadata?.outputs?.length || 0;
810
820
  const lifecycle = this.extractLifecycleMethods(content);
811
821
  return `Angular component '${className}' (selector: ${selector})${lifecycle ? ` with ${lifecycle}` : ''}${inputs ? `, ${inputs} inputs` : ''}${outputs ? `, ${outputs} outputs` : ''}.`;
812
822
  }
813
823
  case 'service': {
814
- const providedIn = metadata.decorator?.providedIn || 'unknown';
824
+ const providedIn = metadata?.providedIn || 'unknown';
815
825
  const methods = this.extractPublicMethods(content);
816
826
  return `Angular service '${className}' (providedIn: ${providedIn})${methods ? ` providing ${methods}` : ''}.`;
817
827
  }
@@ -820,16 +830,16 @@ export class AngularAnalyzer {
820
830
  return `Angular ${guardType} guard '${className}' protecting routes.`;
821
831
  }
822
832
  case 'directive': {
823
- const directiveSelector = metadata.decorator?.selector || 'unknown';
833
+ const directiveSelector = metadata?.selector || 'unknown';
824
834
  return `Angular directive '${className}' (selector: ${directiveSelector}).`;
825
835
  }
826
836
  case 'pipe': {
827
- const pipeName = metadata.decorator?.name || 'unknown';
837
+ const pipeName = metadata?.pipeName || 'unknown';
828
838
  return `Angular pipe '${className}' (name: ${pipeName}) for data transformation.`;
829
839
  }
830
840
  case 'module': {
831
- const imports = metadata.decorator?.imports?.length || 0;
832
- const declarations = metadata.decorator?.declarations?.length || 0;
841
+ const imports = metadata?.imports?.length || 0;
842
+ const declarations = metadata?.declarations?.length || 0;
833
843
  return `Angular module '${className}' with ${declarations} declarations and ${imports} imports.`;
834
844
  }
835
845
  case 'interceptor':
@@ -907,5 +917,31 @@ export class AngularAnalyzer {
907
917
  .find((line) => line.trim() && !line.trim().startsWith('import'));
908
918
  return firstLine ? firstLine.trim().slice(0, 60) + '...' : '';
909
919
  }
920
+ /** Angular-specific regex patterns for extracting code snippets per detected pattern */
921
+ static SNIPPET_PATTERNS = {
922
+ dependencyInjection: {
923
+ 'inject() function': /\binject\s*[<(]/,
924
+ 'Constructor injection': /constructor\s*\(/
925
+ },
926
+ stateManagement: {
927
+ RxJS: /BehaviorSubject|ReplaySubject|Subject|Observable/,
928
+ Signals: /\bsignal\s*[<(]/
929
+ },
930
+ reactivity: {
931
+ Effect: /\beffect\s*\(/,
932
+ Computed: /\bcomputed\s*[<(]/
933
+ },
934
+ componentStyle: {
935
+ Standalone: /standalone\s*:\s*true/,
936
+ 'NgModule-based': /@(?:Component|Directive|Pipe)\s*\(/
937
+ },
938
+ componentInputs: {
939
+ 'Signal-based inputs': /\binput\s*[<(]/,
940
+ 'Decorator-based @Input': /@Input\(\)/
941
+ }
942
+ };
943
+ getSnippetPattern(category, name) {
944
+ return AngularAnalyzer.SNIPPET_PATTERNS[category]?.[name] || null;
945
+ }
910
946
  }
911
947
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/angular/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/angular/index.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CLI subcommands for codebase-context.
3
+ * Memory list/add/remove — vendor-neutral access without any AI agent.
4
+ */
5
+ export declare function handleMemoryCli(args: string[]): Promise<void>;
6
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGnE"}
package/dist/cli.js ADDED
@@ -0,0 +1,113 @@
1
+ /**
2
+ * CLI subcommands for codebase-context.
3
+ * Memory list/add/remove — vendor-neutral access without any AI agent.
4
+ */
5
+ import path from 'path';
6
+ import { CODEBASE_CONTEXT_DIRNAME, MEMORY_FILENAME } from './constants/codebase-context.js';
7
+ import { appendMemoryFile, readMemoriesFile, removeMemory, filterMemories, withConfidence } from './memory/store.js';
8
+ export async function handleMemoryCli(args) {
9
+ // Resolve project root: use CODEBASE_ROOT env or cwd (argv[2] is "memory", not a path)
10
+ const cliRoot = process.env.CODEBASE_ROOT || process.cwd();
11
+ const memoryPath = path.join(cliRoot, CODEBASE_CONTEXT_DIRNAME, MEMORY_FILENAME);
12
+ const subcommand = args[0]; // list | add | remove
13
+ if (subcommand === 'list') {
14
+ const memories = await readMemoriesFile(memoryPath);
15
+ const opts = {};
16
+ for (let i = 1; i < args.length; i++) {
17
+ if (args[i] === '--category' && args[i + 1])
18
+ opts.category = args[++i];
19
+ else if (args[i] === '--type' && args[i + 1])
20
+ opts.type = args[++i];
21
+ else if (args[i] === '--query' && args[i + 1])
22
+ opts.query = args[++i];
23
+ else if (args[i] === '--json') {
24
+ // handled below
25
+ }
26
+ }
27
+ const filtered = filterMemories(memories, opts);
28
+ const enriched = withConfidence(filtered);
29
+ const useJson = args.includes('--json');
30
+ if (useJson) {
31
+ console.log(JSON.stringify(enriched, null, 2));
32
+ }
33
+ else {
34
+ if (enriched.length === 0) {
35
+ console.log('No memories found.');
36
+ }
37
+ else {
38
+ for (const m of enriched) {
39
+ const staleTag = m.stale ? ' [STALE]' : '';
40
+ console.log(`[${m.id}] ${m.type}/${m.category}: ${m.memory}${staleTag}`);
41
+ console.log(` Reason: ${m.reason}`);
42
+ console.log(` Date: ${m.date} | Confidence: ${m.effectiveConfidence}`);
43
+ console.log('');
44
+ }
45
+ console.log(`${enriched.length} memor${enriched.length === 1 ? 'y' : 'ies'} total.`);
46
+ }
47
+ }
48
+ }
49
+ else if (subcommand === 'add') {
50
+ let type = 'decision';
51
+ let category;
52
+ let memory;
53
+ let reason;
54
+ for (let i = 1; i < args.length; i++) {
55
+ if (args[i] === '--type' && args[i + 1])
56
+ type = args[++i];
57
+ else if (args[i] === '--category' && args[i + 1])
58
+ category = args[++i];
59
+ else if (args[i] === '--memory' && args[i + 1])
60
+ memory = args[++i];
61
+ else if (args[i] === '--reason' && args[i + 1])
62
+ reason = args[++i];
63
+ }
64
+ if (!category || !memory || !reason) {
65
+ console.error('Usage: codebase-context memory add --type <type> --category <category> --memory <text> --reason <text>');
66
+ console.error('Required: --category, --memory, --reason');
67
+ process.exit(1);
68
+ }
69
+ const crypto = await import('crypto');
70
+ const hashContent = `${type}:${category}:${memory}:${reason}`;
71
+ const hash = crypto.createHash('sha256').update(hashContent).digest('hex');
72
+ const id = hash.substring(0, 12);
73
+ const newMemory = {
74
+ id,
75
+ type,
76
+ category,
77
+ memory,
78
+ reason,
79
+ date: new Date().toISOString()
80
+ };
81
+ const result = await appendMemoryFile(memoryPath, newMemory);
82
+ if (result.status === 'duplicate') {
83
+ console.log(`Already exists: [${id}] ${memory}`);
84
+ }
85
+ else {
86
+ console.log(`Added: [${id}] ${memory}`);
87
+ }
88
+ }
89
+ else if (subcommand === 'remove') {
90
+ const id = args[1];
91
+ if (!id) {
92
+ console.error('Usage: codebase-context memory remove <id>');
93
+ process.exit(1);
94
+ }
95
+ const result = await removeMemory(memoryPath, id);
96
+ if (result.status === 'not_found') {
97
+ console.error(`Memory not found: ${id}`);
98
+ process.exit(1);
99
+ }
100
+ else {
101
+ console.log(`Removed: ${id}`);
102
+ }
103
+ }
104
+ else {
105
+ console.error('Usage: codebase-context memory <list|add|remove>');
106
+ console.error('');
107
+ console.error(' list [--category <cat>] [--type <type>] [--query <text>] [--json]');
108
+ console.error(' add --type <type> --category <category> --memory <text> --reason <text>');
109
+ console.error(' remove <id>');
110
+ process.exit(1);
111
+ }
112
+ }
113
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,6 @@ export declare class CodebaseIndexer {
29
29
  private mergeDependencies;
30
30
  private mergeLayers;
31
31
  private mergeStatistics;
32
- /**
33
- * Get regex pattern for extracting code snippets based on pattern category and name
34
- * This maps abstract pattern names to actual code patterns
35
- */
36
- private getSnippetPatternFor;
37
32
  getProgress(): IndexingProgress;
38
33
  }
39
34
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACf,MAAM,mBAAmB,CAAC;AA+B3B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAuC;IAClE,OAAO,CAAC,eAAe,CAAU;gBAErB,OAAO,EAAE,cAAc;IAiBnC,OAAO,CAAC,WAAW;IAuDb,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;YA6gBvB,SAAS;IAiEvB,OAAO,CAAC,cAAc;IAShB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAqFjD;;;OAGG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAUvB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,WAAW,IAAI,gBAAgB;CAGhC"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACf,MAAM,mBAAmB,CAAC;AA+B3B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAuC;IAClE,OAAO,CAAC,eAAe,CAAU;gBAErB,OAAO,EAAE,cAAc;IAiBnC,OAAO,CAAC,WAAW;IAuDb,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;YAqgBvB,SAAS;IAiEvB,OAAO,CAAC,cAAc;IAShB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAqFjD;;;OAGG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAUvB,WAAW,IAAI,gBAAgB;CAGhC"}
@@ -152,7 +152,7 @@ export class CodebaseIndexer {
152
152
  };
153
153
  // Short-circuit: nothing changed
154
154
  if (diff.added.length === 0 && diff.changed.length === 0 && diff.deleted.length === 0) {
155
- console.error('No files changed skipping re-index.');
155
+ console.error('No files changed - skipping re-index.');
156
156
  this.updateProgress('complete', 100);
157
157
  stats.duration = Date.now() - startTime;
158
158
  stats.completedAt = new Date();
@@ -288,29 +288,24 @@ export class CodebaseIndexer {
288
288
  if (result.metadata?.detectedPatterns) {
289
289
  for (const pattern of result.metadata.detectedPatterns) {
290
290
  // Try to extract a relevant snippet for the pattern
291
- const snippetPattern = this.getSnippetPatternFor(pattern.category, pattern.name);
291
+ // Ask analyzer registry for snippet pattern (framework-agnostic delegation)
292
+ const analyzer = analyzerRegistry.findAnalyzer(file);
293
+ const snippetPattern = analyzer?.getSnippetPattern?.(pattern.category, pattern.name) ?? null;
292
294
  const snippet = snippetPattern ? extractSnippet(snippetPattern) : undefined;
293
295
  patternDetector.track(pattern.category, pattern.name, snippet ? { file: relPath, snippet } : undefined, fileDate);
294
296
  }
295
297
  }
296
- // Track file for Golden File scoring (framework-agnostic based on patterns)
298
+ // Track file for Golden File scoring (framework-agnostic)
299
+ // A golden file = file with patterns in ≥3 distinct categories
297
300
  const detectedPatterns = result.metadata?.detectedPatterns || [];
298
- const hasPattern = (category, name) => detectedPatterns.some((p) => p.category === category && p.name === name);
299
- const patternScore = (hasPattern('dependencyInjection', 'inject() function') ? 1 : 0) +
300
- (hasPattern('stateManagement', 'Signals') ? 1 : 0) +
301
- (hasPattern('reactivity', 'Computed') ? 1 : 0) +
302
- (hasPattern('reactivity', 'Effect') ? 1 : 0) +
303
- (hasPattern('componentStyle', 'Standalone') ? 1 : 0) +
304
- (hasPattern('componentInputs', 'Signal-based inputs') ? 1 : 0);
301
+ const uniqueCategories = new Set(detectedPatterns.map((p) => p.category));
302
+ const patternScore = uniqueCategories.size;
305
303
  if (patternScore >= 3) {
306
- patternDetector.trackGoldenFile(relPath, patternScore, {
307
- inject: hasPattern('dependencyInjection', 'inject() function'),
308
- signals: hasPattern('stateManagement', 'Signals'),
309
- computed: hasPattern('reactivity', 'Computed'),
310
- effect: hasPattern('reactivity', 'Effect'),
311
- standalone: hasPattern('componentStyle', 'Standalone'),
312
- signalInputs: hasPattern('componentInputs', 'Signal-based inputs')
313
- });
304
+ const patternFlags = {};
305
+ for (const p of detectedPatterns) {
306
+ patternFlags[`${p.category}:${p.name}`] = true;
307
+ }
308
+ patternDetector.trackGoldenFile(relPath, patternScore, patternFlags); // TODO: fix type;
314
309
  }
315
310
  // Update component statistics
316
311
  for (const component of result.components) {
@@ -718,35 +713,6 @@ export class CodebaseIndexer {
718
713
  componentsByLayer: this.mergeLayers(base.componentsByLayer, incoming.componentsByLayer)
719
714
  };
720
715
  }
721
- /**
722
- * Get regex pattern for extracting code snippets based on pattern category and name
723
- * This maps abstract pattern names to actual code patterns
724
- */
725
- getSnippetPatternFor(category, name) {
726
- const patterns = {
727
- dependencyInjection: {
728
- 'inject() function': /\binject\s*[<(]/,
729
- 'Constructor injection': /constructor\s*\(/
730
- },
731
- stateManagement: {
732
- RxJS: /BehaviorSubject|ReplaySubject|Subject|Observable/,
733
- Signals: /\bsignal\s*[<(]/
734
- },
735
- reactivity: {
736
- Effect: /\beffect\s*\(/,
737
- Computed: /\bcomputed\s*[<(]/
738
- },
739
- componentStyle: {
740
- Standalone: /standalone\s*:\s*true/,
741
- 'NgModule-based': /@(?:Component|Directive|Pipe)\s*\(/
742
- },
743
- componentInputs: {
744
- 'Signal-based inputs': /\binput\s*[<(]/,
745
- 'Decorator-based @Input': /@Input\(\)/
746
- }
747
- };
748
- return patterns[category]?.[name] || null;
749
- }
750
716
  getProgress() {
751
717
  return { ...this.progress };
752
718
  }